xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

用C語(yǔ)言編寫(xiě)的模擬實(shí)現(xiàn)的多道批處理系統(tǒng)的兩級(jí)調(diào)度,可供選擇的作業(yè)調(diào)度算法有:先來(lái)先服務(wù)算法、最小作業(yè)優(yōu)先算法、短作業(yè)優(yōu)先算法。可供選擇的進(jìn)程調(diào)度算法有:先來(lái)先服務(wù)、最短進(jìn)程優(yōu)先算法、高響應(yīng)比者優(yōu)先算法。

資源截圖

代碼片段和文件信息

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

/*?定義作業(yè)控制塊JCB?*/
struct?jcb?{
????char?name[10];??????????//作業(yè)名
????char?state;?????????????//作業(yè)狀態(tài)就緒or執(zhí)行or完成
????float?super;??????????????//優(yōu)先數(shù)
????int?ntime;??????????????//作業(yè)運(yùn)行總共需要的時(shí)間
????int?rtime;??????????????//作業(yè)已經(jīng)執(zhí)行的時(shí)間
????int?atime;??????????????//Arrival?time作業(yè)到達(dá)時(shí)間
????int?wtime;??????????????//wait?time作業(yè)等待的時(shí)間
????int?size;???????????????//作業(yè)請(qǐng)求分配的內(nèi)存空間長(zhǎng)度
????int?ntape;??????????????//作業(yè)需要的磁帶機(jī)數(shù)量
????int?startAddress;???????//首址
????//int?startTime;??????????//開(kāi)始時(shí)間
????int?endTime;????????????//結(jié)束時(shí)間
????struct?jcb*?link;???????//下一個(gè)指針

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

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

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

freeArea?F;?????????//鏈頭
int?tapeNumber;????????//磁帶機(jī)數(shù)量
int?algorithmJob=0;???????//記錄用戶選擇了哪種作業(yè)調(diào)度的算法
int?algorithmProcess=0;???//記錄用戶選擇了哪種進(jìn)程調(diào)度算法
int?ctime?=?0;??????????????????//CPU時(shí)間
struct?jcb?J[20];???????????//記錄已完成的作業(yè)的信息
int?count?=?0;??????????//記錄就緒隊(duì)列中的作業(yè)數(shù)

/*
?*初始化一片可用內(nèi)存空間大小為(length)KB的內(nèi)存空間
?*/
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;
}

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

/*
?*打印輸入井的作業(yè)表信息
?*/
void?printInputShaft(int?flag)
{
????JCB?*pr?=?ready;
????while(pr!=NULL&&pr->state==‘w‘)
????{
????????pr?=?pr->link;
????}
????//pr指向當(dāng)前輸入井第一個(gè)
????printf(“***當(dāng)前輸入井作業(yè)信息如下:\n“);
????//printf(“\n?name?\t?state?\t?needtime?\t?runtime\t?arrivaltime\t?waittime\t?cputime??\n“);
????printf(“作業(yè)名?\t?到達(dá)時(shí)間?\t?服務(wù)時(shí)間?\t?等待時(shí)間?\t?內(nèi)存需要?\t?磁帶機(jī)需要?\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;
????}

}

/*
?*先來(lái)先服務(wù)算法的作業(yè)排序
?*/
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指向輸入井第一個(gè)jjr指向就緒隊(duì)列第一個(gè)
????????readyJ?=?jj;
????}

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

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????????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


評(píng)論

共有 條評(píng)論

相關(guān)資源