91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用C語言編寫的模擬實現的多道批處理系統的兩級調度,可供選擇的作業調度算法有:先來先服務算法、最小作業優先算法、短作業優先算法。可供選擇的進程調度算法有:先來先服務、最短進程優先算法、高響應比者優先算法。

資源截圖

代碼片段和文件信息

#include?“stdio.h“
#include?
#include?
#include?
#define?getpch(type)?(type*)malloc(sizeof(type))

/*?定義作業控制塊JCB?*/
struct?jcb?{
????char?name[10];??????????//作業名
????char?state;?????????????//作業狀態就緒or執行or完成
????float?super;??????????????//優先數
????int?ntime;??????????????//作業運行總共需要的時間
????int?rtime;??????????????//作業已經執行的時間
????int?atime;??????????????//Arrival?time作業到達時間
????int?wtime;??????????????//wait?time作業等待的時間
????int?size;???????????????//作業請求分配的內存空間長度
????int?ntape;??????????????//作業需要的磁帶機數量
????int?startAddress;???????//首址
????//int?startTime;??????????//開始時間
????int?endTime;????????????//結束時間
????struct?jcb*?link;???????//下一個指針

}*ready=NULL*j*p*readyP=NULL;????????????//ready指針指向鏈表的第一個jcb

/*
?*空間分區表
?*/
struct?freeArea{
????int?length;?????????????//空閑分區的大小(長度)
????int?startAddress;???????//空閑分區的首址
????int?state;??????????????//該分區的狀態,1為分配出去,0為未分配
????struct?freeArea?*next;?????????//后繼
}*f;

typedef?struct?jcb?JCB?;
typedef?struct?freeArea?freeArea?;

freeArea?F;?????????//鏈頭
int?tapeNumber;????????//磁帶機數量
int?algorithmJob=0;???????//記錄用戶選擇了哪種作業調度的算法
int?algorithmProcess=0;???//記錄用戶選擇了哪種進程調度算法
int?ctime?=?0;??????????????????//CPU時間
struct?jcb?J[20];???????????//記錄已完成的作業的信息
int?count?=?0;??????????//記錄就緒隊列中的作業數

/*
?*初始化一片可用內存空間大小為(length)KB的內存空間
?*/
void?initMainStore(int?length)
{
????f?=?(freeArea*)malloc(sizeof(freeArea));
????f->length?=?length;
????f->startAddress?=?0;
????f->state?=?0;
????f->next?=?NULL;
????F.next?=?f;
????F.length?=?0;
}

/*
?*初始化磁帶機的數量
?*/
void?initTape(int?tapeN)
{
????tapeNumber?=?tapeN;
}

/*
?*打印輸入井的作業表信息
?*/
void?printInputShaft(int?flag)
{
????JCB?*pr?=?ready;
????while(pr!=NULL&&pr->state==‘w‘)
????{
????????pr?=?pr->link;
????}
????//pr指向當前輸入井第一個
????printf(“***當前輸入井作業信息如下:\n“);
????//printf(“\n?name?\t?state?\t?needtime?\t?runtime\t?arrivaltime\t?waittime\t?cputime??\n“);
????printf(“作業名?\t?到達時間?\t?服務時間?\t?等待時間?\t?內存需要?\t?磁帶機需要?\n“);
????while(pr!=NULL)
????{
????????printf(“|%s\t“pr->name);
????????printf(“|%d\t\t“pr->atime);
????????printf(“|%d\t\t“pr->ntime);
????????if(flag==2)
????????{
????????????if(pr->atime????????????{
????????????????pr->wtime++;
????????????}
????????}
????????printf(“|%d\t\t“pr->wtime);
????????printf(“|%d\t\t“pr->size);
????????printf(“|%d\t\t“pr->ntape);
????????printf(“\n“);
????????pr?=?pr->link;
????}

}

/*
?*先來先服務算法的作業排序
?*/
void?FCFSJob(int?tag?JCB?*jr)
{
????JCB?*first?*second?*readyJ;
????JCB?*jj*jjr=NULL;
????int?insert=0;
????if(tag==1)
????{
????????readyJ?=?ready;
????}
????else
????{

????????jj?=?ready;
????????while(jj!=NULL&&jj->state==‘w‘)
????????{
????????????jjr?=?jj;
????????????jj?=?jj->link;
????????}
????????//jj指向輸入井第一個jjr指向就緒隊列第一個
????????readyJ?=?jj;
????}

????if(readyJ==NULL)
????{???????????//隊列為空,插入隊首
????????if(tag==1||jjr==NULL)
????????{
????????????j

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????????58??2018-01-14?02:07??代碼\input.txt

?????文件??????????0??2018-01-15?21:56??代碼\output.txt

?????文件??????66141??2018-01-15?21:01??代碼\TLS.c

?????文件???????1142??2018-01-13?00:07??代碼\TwoLevelScheduling.cbp

?????文件??????56085??2018-01-15?21:01??代碼\TwoLevelScheduling.exe

?????目錄??????????0??2018-01-15?21:57??代碼

-----------?---------??----------?-----??----

???????????????123426????????????????????6


評論

共有 條評論