c語言課程設(shè)計(jì)--處理機(jī)低級調(diào)度模擬系統(tǒng)_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  《高級程序設(shè)計(jì)語言》課程設(shè)計(jì)報告</p><p>  題目: 處理機(jī)低級調(diào)度模擬系統(tǒng) </p><p>  專業(yè): </p><p>  班級: </p><p>  學(xué)號: </p><p>  姓名: <

2、;/p><p>  指導(dǎo)教師: </p><p>  完成日期:2013年03月25日</p><p><b>  課程設(shè)計(jì)目的</b></p><p>  1、掌握C語言數(shù)組、函數(shù)、指針、結(jié)構(gòu)體的綜合應(yīng)用。</p><p>  2、掌握使用C語言,進(jìn)行應(yīng)用性的開發(fā)。</p>

3、;<p>  3、掌握系統(tǒng)數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)。</p><p><b>  二、課程設(shè)計(jì)內(nèi)容</b></p><p>  課程設(shè)計(jì)題目:處理機(jī)低級調(diào)度模擬系統(tǒng)</p><p>  課程設(shè)計(jì)內(nèi)容:根據(jù)操作系統(tǒng)處理機(jī)不同的調(diào)度算法,使用C語言模擬實(shí)現(xiàn)處理機(jī)調(diào)度過程。</p><p><b>  1、

4、系統(tǒng)數(shù)據(jù)結(jié)構(gòu)</b></p><p>  (1)進(jìn)程控制塊(pcb):進(jìn)程名稱、到達(dá)時間、進(jìn)程要求運(yùn)行時間、進(jìn)程已運(yùn)行時間、指針、進(jìn)程狀態(tài)等等(要根據(jù)不同算法的需要定義全面的數(shù)據(jù)結(jié)構(gòu))</p><p>  (2)進(jìn)程隊(duì)列(PQueue):鏈表……</p><p><b>  2、調(diào)度算法</b></p><p&g

5、t;  (1)短進(jìn)程優(yōu)先調(diào)度(SJF):是以進(jìn)入系統(tǒng)的進(jìn)程所提出的“執(zhí)行時間”為標(biāo)準(zhǔn),總是優(yōu)先選取執(zhí)行時間最短的進(jìn)程。</p><p> ?。?)高響應(yīng)比優(yōu)先調(diào)度(HRN):是在每次調(diào)度前都要計(jì)算所有被選進(jìn)程(在后備隊(duì)列中)的響應(yīng)比,然后選擇響應(yīng)比最高的進(jìn)程執(zhí)行。響應(yīng)比=(等待時間+服務(wù)時間)/服務(wù)時間</p><p><b>  三、課程設(shè)計(jì)的要求</b></

6、p><p>  1、按照給出的題目內(nèi)容</p><p>  (1)完成系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)算法設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)總體的設(shè)計(jì)與實(shí)現(xiàn)。</p><p> ?。?)系統(tǒng)需要一個簡單操作界面,例如:</p><p>  ===========================</p><p>  1. 短進(jìn)

7、程優(yōu)先調(diào)度</p><p>  2. 高響應(yīng)比優(yōu)先調(diào)度</p><p><b>  3. 退出</b></p><p> ?。ò磾?shù)字1、2、3,選擇操作)</p><p>  ===========================</p><p> ?。?)對每種調(diào)度算法都要求輸出每個進(jìn)程(進(jìn)程數(shù)

8、不少于5)開始運(yùn)行時刻、完成時刻、周轉(zhuǎn)時間,以及這組進(jìn)程的平均周轉(zhuǎn)時間。</p><p> ?。?)畫出每種調(diào)度算法流程圖。</p><p>  2、寫出課程設(shè)計(jì)報告,設(shè)計(jì)報告提交形式:電子文檔提交</p><p><b>  3、個人獨(dú)立完成。</b></p><p>  4、完成時間(1周)</p>&

9、lt;p><b>  四、課程設(shè)計(jì)過程</b></p><p>  1、系統(tǒng)中所使用的數(shù)據(jù)結(jié)構(gòu)及說明</p><p>  //-----------------數(shù)據(jù)結(jié)構(gòu)的定義----------------------------</p><p>  //定義進(jìn)程控制塊PCB</p><p>  typedef s

10、truct PCB</p><p><b>  {</b></p><p>  char PID[5]; //進(jìn)程標(biāo)示符</p><p>  char Name[10]; //進(jìn)程名稱</p><p>  int PRI; //進(jìn)程的優(yōu)先級(越小越高)</p><p>

11、;  float NeedTime; //進(jìn)程要求運(yùn)行時間(服務(wù)時間)</p><p>  float StartTime; //進(jìn)程進(jìn)入就緒隊(duì)列的時間(到達(dá)時間)</p><p>  float RunBeginTime; //開始運(yùn)行時間</p><p>  float UpTime; //進(jìn)程已運(yùn)行時間</p><p

12、>  float OverTime; //進(jìn)程運(yùn)行完成的時間</p><p>  float TurnaroundTime; //周轉(zhuǎn)時間</p><p>  float RightTTime; //帶權(quán)周轉(zhuǎn)時間</p><p>  struct PCB *next;</p><p>  }PCB,*QueuePtr;&l

13、t;/p><p><b>  //定義進(jìn)程隊(duì)列</b></p><p>  typedef struct</p><p><b>  {</b></p><p>  QueuePtr front,rear;//隊(duì)頭、隊(duì)尾指針 </p><p><b>  }

14、PQueue;</b></p><p><b>  2、系統(tǒng)功能結(jié)構(gòu)</b></p><p>  本系統(tǒng)是處理機(jī)低級調(diào)度模擬系統(tǒng),主要通過模擬來實(shí)現(xiàn)處理機(jī)調(diào)度,調(diào)度方式有短進(jìn)程優(yōu)先調(diào)度(SJF)、高響應(yīng)比優(yōu)先調(diào)度(HRN)、兩種調(diào)度方式。</p><p>  系統(tǒng)運(yùn)行過程如下:輸入進(jìn)程個數(shù),輸入進(jìn)程詳細(xì)信息,通過簡單操作界面來選擇調(diào)

15、度方式,調(diào)度的過程和結(jié)果,重新選擇調(diào)度方式或者選擇結(jié)束。</p><p>  3、調(diào)度算法流程圖(如下圖所示)</p><p>  4、程序清單及其描述</p><p>  #include<stdio.h> </p><p>  #include<stdlib.h> </p><p>  #i

16、nclude<math.h></p><p>  #include<malloc.h> </p><p>  #include<process.h> </p><p>  #include<stdlib.h></p><p>  #define NULL 0</p><p&

17、gt;  int ProcessNum;//進(jìn)程個數(shù)</p><p>  float AverageTurnoverTime;//平均周轉(zhuǎn)時間</p><p>  float AverageRightTTime;//平均帶權(quán)周轉(zhuǎn)時間</p><p>  //-----------------函數(shù)結(jié)果狀態(tài)代碼------------------------

18、----</p><p>  #define TRUE 1</p><p>  #define FALSE 0</p><p>  #define OK 1</p><p>  #define ERROR 0</p><p>  //-----------------數(shù)據(jù)結(jié)構(gòu)的定義-------------------

19、---------</p><p>  //定義進(jìn)程控制塊PCB</p><p>  typedef struct PCB</p><p><b>  {</b></p><p>  char PID[5];//進(jìn)程標(biāo)示符</p><p>  char Name[10];//進(jìn)程

20、名稱</p><p>  int PRI;//進(jìn)程的優(yōu)先級(越小越高)</p><p>  float NeedTime;//進(jìn)程要求運(yùn)行時間(服務(wù)時間)</p><p>  float StartTime;//進(jìn)程進(jìn)入就緒隊(duì)列的時間(到達(dá)時間)</p><p>  float RunBeginTime;//開始運(yùn)行時間

21、</p><p>  float UpTime;//進(jìn)程已運(yùn)行時間</p><p>  float OverTime;//進(jìn)程運(yùn)行完成的時間</p><p>  float TurnaroundTime;//周轉(zhuǎn)時間</p><p>  float RightTTime;//帶權(quán)周轉(zhuǎn)時間</p><p&g

22、t;  struct PCB *next;</p><p>  }PCB,*QueuePtr;</p><p><b>  //定義進(jìn)程隊(duì)列</b></p><p>  typedef struct</p><p><b>  {</b></p><p>  Queu

23、ePtr front,rear;//隊(duì)頭、隊(duì)尾指針 </p><p>  }PQueue;</p><p>  //-----------------函數(shù)的申明---------------------------------</p><p>  int InitQueue(PQueue &Q);//構(gòu)造一個空隊(duì)列</p>&

24、lt;p>  int EnQueue(PQueue &Q);//插入一個新的進(jìn)程到隊(duì)尾</p><p>  int QueueEmpty(PQueue Q);//隊(duì)列判空, 若Q為空隊(duì)列,則返回1,否則返回0</p><p>  void PoolQueue(PQueue *Q);//建立后備隊(duì)列</p><p>  int print(

25、PQueue Q);//進(jìn)程隊(duì)列輸出</p><p>  void SPFsort(PQueue &Q);//短進(jìn)程優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序</p><p>  void HRNsort(PQueue &Q);//高響應(yīng)比優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序</p><p>  void ManagesChooses(PQueue &

26、;Q); //調(diào)度方式選擇</p><p>  //--------------------------------函數(shù)的定義---------------------------------</p><p>  //--------------------------------構(gòu)造一個空隊(duì)列---------------------------------</p><

27、;p>  int InitQueue(PQueue &Q)</p><p><b>  {</b></p><p>  Q.front=Q.rear=(QueuePtr)malloc(sizeof(PCB));</p><p>  if(!Q.front)</p><p><b>  exit(0

28、);</b></p><p>  Q.front->next=NULL;</p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  //--------------------------------插入一個新的進(jìn)程到隊(duì)尾-

29、--------------------------------</p><p>  int EnQueue(PQueue &Q)</p><p>  { </p><p>  QueuePtr p;</p><p>  if(!(p=(

30、QueuePtr)malloc(sizeof(PCB))))//存儲分配失敗</p><p><b>  exit(0);</b></p><p>  scanf("%s",p->PID);//輸入進(jìn)程標(biāo)示符</p><p>  scanf("%s",p->N

31、ame);//輸入進(jìn)程名</p><p>  scanf("%d%f%f",&p->PRI,&p->NeedTime,&p->StartTime);//輸入進(jìn)程優(yōu)先級、要求運(yùn)行時間、到達(dá)時間</p><p>  p->next=NULL;</p><p>  Q.rear-

32、>next=p;</p><p><b>  Q.rear=p;</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  //--------------------------------隊(duì)列判空, 若

33、Q為空隊(duì)列,則返回1,否則返回0---------------------------------</p><p>  int QueueEmpty(PQueue Q)</p><p>  {// 若Q為空隊(duì)列,則返回1,否則返回0</p><p>  if(Q.front==Q.rear)</p><p>&

34、lt;b>  return 1;</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  //--------------------------

35、------建立后備隊(duì)列---------------------------------</p><p>  void PoolQueue(PQueue *Q) </p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf(&qu

36、ot;請輸入進(jìn)程的個數(shù):");</p><p>  scanf("%d",&ProcessNum);</p><p>  printf("請輸入%d個進(jìn)程的信息(T代表時間)\n標(biāo)示符進(jìn)程名優(yōu)先級服務(wù)T到達(dá)T\n",ProcessNum);</p><p>  for(i=1;i<=Proces

37、sNum;i++)</p><p>  EnQueue(*Q);</p><p><b>  }</b></p><p>  //--------------------------------進(jìn)程隊(duì)列輸出---------------------------------</p><p>  int print(PQue

38、ue Q)</p><p><b>  {</b></p><p>  QueuePtr p;</p><p>  if(Q.front==Q.rear)</p><p><b>  return 0;</b></p><p>  p=Q.front->next;<

39、;/p><p>  printf("(T代表時間)\n標(biāo)示符進(jìn)程名優(yōu)先級服務(wù)T到達(dá)T\n");</p><p>  while (p!=NULL)//當(dāng)隊(duì)列不空</p><p><b>  {</b></p><p>  printf("%s\t%s\t%d\t%4.

40、3f\t%4.3f\n",p->PID,p->Name,p->PRI,p->NeedTime,p->StartTime); </p><p>  p=p->next;</p><p><b>  }</b></p><p><b&g

41、t;  }</b></p><p>  //--------------------------------短進(jìn)程優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序---------------------------------</p><p>  void SPFsort(PQueue &Q)</p><p><b>  {</b><

42、;/p><p>  float deltaT,Time=0;//deltaT是時間差</p><p>  QueuePtr temp1,temp2,tail,p=Q.front;</p><p>  QueuePtr q=p->next;</p><p>  tail=NULL;</p><p>  fo

43、r(;q->next!=tail;)//找出第一個到達(dá)而且服務(wù)時間最少的進(jìn)程</p><p><b>  {</b></p><p>  if(p->next->StartTime > q->next->StartTime)</p><p><b>  {</b></p

44、><p>  temp1=p->next;</p><p>  temp2=q->next;</p><p>  p->next=temp2;</p><p>  q->next=temp2->next;</p><p>  p->next->next=temp1;</p&g

45、t;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  q=q->next;</p><p><b>  }</b></p><p

46、><b>  }</b></p><p>  if(p->next->StartTime > Time)</p><p>  Time=p->StartTime;</p><p>  Time=Time+p->next->NeedTime;</p><p>  for(p=p-

47、>next,q=p->next;p->next->next!=tail;p=p->next,q=p->next)//對隊(duì)列按到達(dá)時間與服務(wù)時間長短進(jìn)行選擇排序(從第二個元素開始)</p><p><b>  {</b></p><p>  while(q->next!=tail)</p><p>&

48、lt;b>  {</b></p><p>  if((p->next->StartTime <= Time))</p><p><b>  {</b></p><p>  if((q->next->StartTime <= Time)&&(p->next->Nee

49、dTime > q->next->NeedTime))</p><p><b>  {</b></p><p>  temp1=p->next;</p><p>  temp2=q->next;</p><p>  p->next=temp2;</p><p>

50、  q->next=temp2->next;</p><p>  p->next->next=temp1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

51、<p>  q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if((p->next->StartTime > Time)&&(q->next->StartTime <=

52、Time))</p><p><b>  {</b></p><p>  temp1=p->next;</p><p>  temp2=q->next;</p><p>  p->next=temp2;</p><p>  q->next=temp2->next;&l

53、t;/p><p>  p->next->next=temp1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  q=q->next;</

54、p><p><b>  }</b></p><p><b>  }</b></p><p>  if(p->next->StartTime > Time)</p><p><b>  {</b></p><p>  deltaT=p->

55、;StartTime-Time;</p><p>  Time=Time+deltaT;</p><p><b>  }</b></p><p>  Time=Time+p->next->NeedTime;</p><p><b>  } </b></p><

56、p><b>  }</b></p><p>  //--------------------------------高響應(yīng)比優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序---------------------------------</p><p>  void HRNsort(PQueue &Q)</p><p><b>  {

57、</b></p><p>  float deltaT,PResponseRatio,QResponseRatio,Time=0;//deltaT是時間差,PResponseRatio、QResponseRatio是響應(yīng)比</p><p>  QueuePtr temp1,temp2,tail,p=Q.front;</p><p>  QueuePt

58、r q=p->next;</p><p>  tail=NULL;</p><p>  for(;q->next!=tail;)//找出第一個到達(dá)而且服務(wù)時間最少的進(jìn)程</p><p><b>  {</b></p><p>  if(p->next->StartTime >

59、; q->next->StartTime)</p><p><b>  {</b></p><p>  temp1=p->next;</p><p>  temp2=q->next;</p><p>  p->next=temp2;</p><p>  q->n

60、ext=temp2->next;</p><p>  p->next->next=temp1;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>

61、;  q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(p->next->StartTime > Time)</p><p>  Time=p->StartTime;</p>

62、<p>  Time=Time+p->next->NeedTime;</p><p>  for(p=p->next,q=p->next;p->next->next!=tail;p=p->next,q=p->next)//對隊(duì)列按響應(yīng)比大小排序(從第二個元素開始)</p><p><b>  {</b>&l

63、t;/p><p>  while(q->next!=tail)</p><p><b>  {</b></p><p>  if((p->next->StartTime <= Time)&&(q->next->StartTime <= Time))</p><p>&

64、lt;b>  {</b></p><p>  PResponseRatio=(((Time-p->next->StartTime)+p->next->NeedTime)/(p->next->NeedTime));</p><p>  QResponseRatio=(((Time-q->next->StartTime)+q-&

65、gt;next->NeedTime)/(q->next->NeedTime));</p><p>  if(PResponseRatio<QResponseRatio)</p><p><b>  {</b></p><p>  temp1=p->next;</p><p>  temp2=

66、q->next;</p><p>  p->next=temp2;</p><p>  q->next=temp2->next;</p><p>  p->next->next=temp1;</p><p><b>  }</b></p><p><b&g

67、t;  else</b></p><p><b>  {</b></p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if((p->

68、;next->StartTime > Time)&&(q->next->StartTime <= Time))</p><p><b>  {</b></p><p>  temp1=p->next;</p><p>  temp2=q->next;</p><p&g

69、t;  p->next=temp2;</p><p>  q->next=temp2->next;</p><p>  p->next->next=temp1;</p><p><b>  }</b></p><p><b>  else</b></p>

70、<p><b>  {</b></p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(p->next->StartTime > Time)</p

71、><p><b>  {</b></p><p>  deltaT=p->StartTime-Time;</p><p>  Time=Time+deltaT;</p><p><b>  }</b></p><p>  Time=Time+p->next->N

72、eedTime;</p><p><b>  } </b></p><p><b>  }</b></p><p>  //--------------------------------調(diào)度---------------------------------</p><p>  void Disp

73、atcher(PQueue &Q)</p><p><b>  {</b></p><p>  float SumTurnaroundTime=0;//定義周轉(zhuǎn)時間總和并賦值0</p><p>  float SumRightTTime=0;//定義帶權(quán)周轉(zhuǎn)時間總和并賦值0</p>&

74、lt;p>  float deltaT,Time=0;//deltaT是時間差</p><p>  QueuePtr p=Q.front->next;</p><p>  printf("(T代表時間)\n標(biāo)示符進(jìn)程名到達(dá)T服務(wù)T開始T完成T周轉(zhuǎn)T帶權(quán)周轉(zhuǎn)T\n");</p><p>  for(;p!

75、=NULL;p=p->next)</p><p><b>  {</b></p><p>  if(p->StartTime>Time)</p><p><b>  {</b></p><p>  deltaT=p->StartTime-Time;</p>&l

76、t;p>  Time=deltaT;</p><p><b>  }</b></p><p>  p->RunBeginTime=Time;</p><p>  p->OverTime=Time+p->NeedTime;</p><p>  p->TurnaroundTime=p->

77、OverTime-p->StartTime;</p><p>  p->RightTTime=p->TurnaroundTime/p->NeedTime;</p><p>  printf("%s\t%s\t%4.3f\t%4.3f\t%4.3f\t%4.3f\t%4.3f\t%4.3f\n",p->PID,p->Name,p->

78、;StartTime,p->NeedTime,p->RunBeginTime,p->OverTime,p->TurnaroundTime,p->RightTTime);</p><p>  Time=p->OverTime;</p><p><b>  }</b></p><p>  for(p=Q.fron

79、t->next;p!=NULL;p=p->next)//計(jì)算平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間</p><p><b>  {</b></p><p>  SumTurnaroundTime=SumTurnaroundTime+p->TurnaroundTime;</p><p>  SumRightTTime=SumR

80、ightTTime+p->RightTTime;</p><p><b>  }</b></p><p>  AverageTurnoverTime=SumTurnaroundTime/ProcessNum;</p><p>  AverageRightTTime=SumRightTTime/ProcessNum;</p>

81、<p>  printf("此調(diào)度方式的平均周轉(zhuǎn)時間為%4.3f,平均帶權(quán)周轉(zhuǎn)時間為%4.3f\n",AverageTurnoverTime,AverageRightTTime);</p><p><b>  }</b></p><p>  //--------------------------------調(diào)度方式選擇---------

82、------------------------</p><p>  void ManagesChooses(PQueue &Q)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("\n\n\n\t請選擇

83、調(diào)度方式:\n");</p><p>  printf("===========================\n");</p><p>  printf(" 1. 短進(jìn)程優(yōu)先調(diào)度\n");</p><p>  printf(" 2. 高響應(yīng)比優(yōu)先調(diào)度\n");</p&g

84、t;<p>  printf(" 3. 退出\n");</p><p>  printf("(按數(shù)字1、2、3,選擇操作)\n");</p><p>  printf("===========================\n");</p><p>  scanf("%d

85、",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p>  case 1:SPFsort(Q);</p><p>  printf("短進(jìn)程優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序的排序結(jié)果如下:\n")

86、;</p><p><b>  print(Q);</b></p><p>  printf("\n調(diào)度后的結(jié)果如下:\n");</p><p>  Dispatcher(Q);</p><p>  ManagesChooses(Q);</p><p><b>  b

87、reak;</b></p><p>  case 2:HRNsort(Q);</p><p>  printf("高響應(yīng)比優(yōu)先調(diào)度的對服務(wù)時間進(jìn)行排序的排序結(jié)果如下:\n");</p><p><b>  print(Q);</b></p><p>  printf("\n調(diào)度后

88、的結(jié)果如下:\n");</p><p>  Dispatcher(Q);</p><p>  ManagesChooses(Q);</p><p><b>  break;</b></p><p>  case 3:break;</p><p><b>  }</b>

89、;</p><p><b>  }</b></p><p>  //--------------------------------主函數(shù)---------------------------------</p><p>  void main()</p><p><b>  {</b></p

90、><p><b>  int n;</b></p><p><b>  PQueue Q;</b></p><p>  InitQueue(Q);//初始化后備隊(duì)列</p><p>  PoolQueue(&Q);//進(jìn)程插入后備隊(duì)列中并返回進(jìn)程個數(shù)</p><p

91、>  printf("\n輸入的進(jìn)程情況如下:\n");</p><p><b>  print(Q);</b></p><p>  ManagesChooses(Q);</p><p><b>  }</b></p><p><b>  5、系統(tǒng)運(yùn)行結(jié)果<

92、/b></p><p><b>  五、課程設(shè)計(jì)體會</b></p><p>  處理機(jī)調(diào)度問題實(shí)際上是處理機(jī)分配問題。只有那些參與競爭處理機(jī)所必須的資源都已得到滿足的進(jìn)程才能享受競爭處理機(jī)的資格,這時它們處于內(nèi)存就緒狀態(tài)。這些必須的資源包括內(nèi)存、外設(shè)及有關(guān)數(shù)據(jù)結(jié)構(gòu)等。作業(yè)調(diào)度程序必須先調(diào)用存儲管理、外設(shè)管理,分配資源,讓它們能有競爭資格。</p>

93、<p>  為了提高資源利用率,一部分在內(nèi)存中處于就緒、等待狀態(tài)而短期內(nèi)不能執(zhí)行進(jìn)程、作業(yè)換出內(nèi)存,所以外存中除了處于后備狀態(tài)的作業(yè),還有處于就緒狀態(tài)的作業(yè)。這就需要一定的方法和策略來為這部分作業(yè)分配空間。</p><p>  學(xué)習(xí)完《操作系統(tǒng)原理》課程后,進(jìn)行的這次全面的綜合訓(xùn)練,通過課程設(shè)計(jì),使我更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)方法,加深對操作系統(tǒng)基礎(chǔ)理論和重要算法的理解,加強(qiáng)學(xué)生的動手能力,并與編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論