久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
C語言時間片輪轉調度算法 進程調度實驗程序
[打印本頁]
作者:
cyu
時間:
2018-12-3 15:17
標題:
C語言時間片輪轉調度算法 進程調度實驗程序
實驗一 進程調度
一、實驗目的
通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態的轉變、進程調度的策略及對系統性能的評價方法。
二、實驗內容
設計程序模擬進程的輪轉法調度過程。假設初始狀態為:有n個進程處于就緒狀態,有m個進程處于阻塞狀態。采用輪轉法進程調度算法進行調度(調度過程中,假設處于執行狀態的進程不會阻塞),且每過t個時間片系統釋放資源,喚醒處于阻塞隊列隊首的進程。
三、源程序
#include<stdio.h>
#define N50
structPCB
{
int pn; //process name進程名字
int at; //arrival time到達時間
int st; //service time服務時間
int ct; //completion time完成時刻
int sc; //sign completion標志是否完成
int st1; //剩余服務時間
}process[N];
intsjp(int n)
{
int i,j,T;
printf("\n請輸入時間片:\n");
scanf("%d",&T);
for(i=1;i<=n;i++) //收集進程信息
{
process[ i].sc=0;
printf("\n%d:\n請依次輸入進程的信息\n請輸入pn:",i);
scanf("%d",&process[ i].pn);
printf("請輸入at:");
scanf("%d",&process[ i].at);
printf("請輸入st:");
scanf("%d",&process[ i].st);
process[ i].st1=process[ i].st;
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++) //按照各進程到達時間升序,對進程排序 注意:穩定的排序
{
if(process[j].at<process[ i].at)
{
process[0]=process[j];
process[j]=process[ i];
process[ i]=process[0];
}
}
//for(i=1;i<=n;i++) //檢查排序是否正確
//printf("%d\t",process[ i].pn);
int time=process[1].at; //當前時間的初值
int flag=1;
int sum=0; //記錄完成的進程數
printf("\n第幾次調度進程 運行的進程pn 開始運行時間 運行時間 剩余服務時間 結束時間\n");
int z=1; //記錄第幾次調度進程
while(sum<n)
{
flag=0; //標志就緒隊列中是否還有進程
for(i=1;i<=n;i++) //時間片輪轉法執行各進程
{
if(process[ i].sc==1)continue; //已完成的進程
else
{
if(process[ i].st1<=T&&time>=process[ i].at)//未完成的進程但是還需服務的時間少于等于一個時間片
{
flag=1;
time=time+process[ i].st1;
process[ i].sc=1;
process[ i].ct=time;
printf("%8d%12d%15d%11d%11d%11d\n",z++,process[ i].pn,time-process[ i].st1,process[ i].st1,0,time);
process[ i].st1=0;
}
elseif(process[ i].st1>T&&time>=process[ i].at)//未完成的進程但其還需服務時間至少大于一個時間片
{
flag=1;
time=time+T;
process[ i].st1-=T;
printf("%8d%12d%15d%11d%11d%11d\n",z++,process[ i].pn,time-T,T,process[ i].st1,time);
}
if(process[ i].sc==1)sum++; //一個進程執行完就+1
}
}
if(flag==0&&sum<n) // 還有沒執行的進程,且沒進入就就緒隊列
{
for(i=1;i<=n;i++)
if(process[ i].sc==0){time=process[ i].at;break;}
}
}
return 0;
}
intmain()
{
int n;
printf("\t\t時間片輪轉調度算法\n");
printf("請輸入總進程數:\n");
scanf("%d",&n);
sjp(n);
return 0;
}
三、運行結果
四、實驗心得體會
這次的實驗有了很大的收獲,加深對進程概念的理解,進一步掌握進程狀態的轉變、進程調度的策略及對系統性能的評價方法。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本午夜精品
|
蜜桃臀av一区二区三区
|
国产精品久久av
|
午夜性色a√在线视频观看9
|
狠狠干狠狠操
|
一级黄a视频
|
欧美国产激情二区三区
|
九九在线精品视频
|
av官网在线
|
成年人国产在线观看
|
国产女人第一次做爰毛片
|
极品在线
|
国产成人免费网站
|
日韩国产在线
|
自拍偷拍在线视频
|
夜夜夜操
|
精品欧美一区二区三区久久久
|
国产精品一区二区不卡
|
久草综合在线视频
|
午夜精品一区二区三区在线视频
|
www.99精品
|
超碰97人人人人人蜜桃
|
一区福利视频
|
国产成人一区二区三区
|
黑人性hd
|
日本又色又爽又黄又高潮
|
欧美精品欧美精品系列
|
日韩美女在线看免费观看
|
国内久久精品
|
精品视频在线一区
|
操久久久
|
日本黄色大片免费看
|
中文字幕精品视频
|
成人美女免费网站视频
|
av中文字幕在线
|
99精品久久
|
特级毛片www
|
99re国产精品
|
日韩一区二区在线观看
|
女人天堂av
|
日韩久久在线
|