第5次进程调度模拟_第1页
第5次进程调度模拟_第2页
第5次进程调度模拟_第3页
第5次进程调度模拟_第4页
第5次进程调度模拟_第5页
已阅读5页,还剩18页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统课程实验报告姓名学号系计算机科学与技 术任课教师贺辉指导教师贺辉评阅教师贺辉实验地点实验时间实验编号与实验名称:第5次进程调度模拟实验目的:进程调度是处理机管理的核心内容。通过本实验可以加深理解有关进程控制块(进程的概念)、进程队列的概念及进程调度算法的理解并体会和了解优先级和时间片轮转调度算法的具 体实施办法。实验内容及要求(详见实验讲义):本实验要求用C语言【也可以是其它你擅长的程序设计语言】编写和调试一个简单的进程 调度模拟程序。须在实验报告中给岀详细算法描述和流程图。设计进程控制块PCB表结构,分別适用于优先级调度算法和轮转调度算法。编制两种进程调度算法:1)优先级调度;2)轮

2、转调度建立进程就绪队列。对两种不同算法编制入队子程序【重点!】。实验用到的软件(:)Vs word实验内容、关键步骤(流程图、代码等)及结果分析(70分)1优先级调度(1)基本思想:为了防止高优先级进程无休止地运行下去,调度程序可以在每个时钟滴答(即 每个时钟中断)降低当前进程的优先级。(2)实现:即给每个进程被赋予一个优先级,允许优先级最高的可运行进程先运行。进程之间再以优先级的髙低,从高到低进行排序,之后开始执行进程,在规左的时间片当中,如果 进程能够执行完毕,就从进程队列当中移除该进程,否则的话,减小该进程的优先级(运行 一次,优先级-8),插入进程队列当中,整个进程队列依旧是按照优先级

3、从髙到低的顺序进行 排序,之后继续执行,判断进程队列是否为空,如果不为空,则就绪队列的首进程投入运行。 最后直到进程队列为空,结朿。(3)算法流程图使用优先级算法给新加的五个进程进行cpu处理。就绪队列为空将首进程置入到 就绪队列中,并 运行。进程状态 变为R。进程开始运行,当时间时间片使用 完,cpu的使用时间+1,进程所需的 时间优先级状态置为W判断进程所需cpu时间是否等于运行时 间。如果等于,那么进程被cpu处理完, 进程状态变为F,将cpu资源分配给英 他进程。重新对进程排序,按照进程的 优先级髙低。如果所有进程状态都为厂 队列为空,即表明所有进 程都被cpu处理完,结束。(4)步骤

4、说明1)char algo;pmitfr选择算法:P/R(优先级算法/时间片轮转算法):输入结束n); scanf_s(%c,/ &algo);printf(“输入进程数:nM);scanf_s(%d舄 &N);选择算法,进程数量2)for (i = 1; i name, na); p-cputime = 0; p-needtime = time; p-state = w; p-prio = 100 time; if (ready != NULL)insertl(p);elsep-next = ready; ready 二 p;初始化并创建进程,排序run = ready;ready = re

5、ady- next;run-state = R;将首进程进入就绪队列run-cputime = run-cputime + 1;run-needtime =eedtime 1;run-prio = run-prio - 8; if (ready != NULL)cha nge(r un);elserun-next = ready; ready = run;run = ready;ready = ready- next; run-state = R;进程运行及重新排序。if(run-needtime = 0)run-next = finish; finish = run; run-state =

6、 F1; run = NULL;if (ready != NULL) firstin();进程处理完,将cpu资源交予其他进程。(5)子函数关系图先选择优先级算法,再输入进程数传入createl函数。再利用createl创建进程。(6)结果将进程传进prtl() 函数输岀信息。将进程传进prt()函数。将进程传进prt2() 函数输出排序后. 进程的所有信息。跳转到priority()函数,并传入参数即进程数量。进程开始运行,时间片使用完,cpu的使用时间+1,进程所需的时间,优先级-8,状态宜为并判断进程是否被处理完,处理完将cpu资源给予其他进程。判断进程所需cpu时间是否等于运行时 间。

7、如果等于,那么进程被cpu处理完, 进程状态变为F,将cpu资源分配给其他 进程。将进程传入change ()函数,重新对进程排序,按照进程的优先级髙低。将新建进程传入insertl()函数进行从优先级程度髙到低排序(优先级“00-所需cpu运行时间) D:xuexi燥作系统作业五次实验五-桂择算法:P/R(优先级算法/时问片轮轶算?4):禰入心站衷 囱入进程数一扁入逬程号、运行时何:m 2p2 3冃3 5刖205 4优先数算祛输出1fl&:KXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX进程号己占用CPU时问所需时间优先数状恣A1e298M餅e

8、298MA2039?MA5e96MA3e595M逬程号已占用CPU时间所需时间优先数状态G298RP2e397MA5e96MA36595WA11190M難捞咅需入法全:己占用CPU时间进程号己占用CPU时何所需时何A5GMA3G5A111姑11A212态 RMWWM状数先99590英89A3G595PI11逬程号A2ASA3A1进程号己占用CPU时问所需时问优先敖A3G5RA111W11WA212MAS13W D:xuexi漲作系统作业第五次实验第五A21289HA51388U进程号己占用CPU时间所需时间优先效状杏A11190RA41190NA21289MA51388MA31487M进程号己

9、占用CPU时间所需时间优先数状态A41136RA21289HA51388WA3187MA12082F进程号已占用CPU时间所需时间优先数状花A21289RA51388MA3187HA42082FA12082F谕入法全:M2082FA12082F进程号己占用CPU时问所签时间优先敷状恣A51388RA31斗87MA22181WM2e82FA12082F进程号己占用CPU时问所誥时何优先数状恣A31斗RA221M22MM20FAI20F进程号己占用CPU时间所希时间优先数状杏A22181RA52289WA323T3MM2032FA12032FtliS 為 5di 亠输入法全X D:xuexiJg作

10、系统作业第五次实验第五_ D:xuexiJg作系统作业谍五次实验第五M2G82FA12G82F迸程号己占用CPU时何所盍时间优先数状态A52286RR32379WM3673FM2G82FA12G82F迸程号己占用CPU时何所畲时间优先效状态A32379RQ53172NM3073FM2G82FA12G82F迸程号己占用CPU时何所需时间优先数状态A53172RR332?1wA23073FM2G82F2G82F:XjXT H输入法全:V D:xuexi燥作系统作业澤五次实验M五进程号 Q5 A3MP1己占用CPU时何舸斋时间优先纹7271738282进程号P3A52MA1己占用CPU时何所需时间优

11、先坡7164738282进程号P3A5Q2A1己占用CPU时何所需时何优先坡636738282结果分析:和优先级算法结果一样。2.轮转调度基本思想:每个进程被分配一个时间段,称为时间片,即允许改进程在i亥时间段中运行。如 果时间片结束时改进程还在运行,则将剥夺cpu并分配给另一个进程。如果该进程在时间片 结朿前阻塞或结朿,则cpu立即进行切换。实现:每个进程都会被分配一个相同的时间片,并按照先来先服务进行排序,允许该进程在 该时间段中运行。如果在时间片结朿时该进程还在运行,则将剥夺CPU并分配给另一个进程。 如果该进程在时间片结束前阻塞或结朿,则CPU立即进行切换。其中每个进程分配的相同时 间

12、片的大小设计为2, 个进程如果在该时间片当中没有结束,则将会被强制结束,将CPU 分配给下一个进程,该进程将会被插入整个进程队列的最后,如果一个进程在规泄的时间结 朿,则将CPU立刻分配给下一个进程,该进程从进程队列中移除。(3)算法流程图时间轮转算法先来先服务算法初始化PCB,输入进程 号及进程所需的cpu运 行时间先来先创建,先排序.后创建的插在队列后就绪队列为空JZ将首进程置入到 就绪队列中,并 运行。进程状态 变为R。进程开始运行,当时间时间片使用完,占用cpu时间+2,进程所需的时间-2,计数+1,时间片长度不变,状态置为并将进程宜于队尾。判断进程所需cpu时间是否等于计数 *2.如

13、果等于,那么进程被cpu处理 完,进程状态变为F,将卬u资源分 配给其他进程。进程被插入到队尾如果所有进程状态都为F,队列为空,即表明所有进程都被cpu处理完.结束。(4)步骤说明char algo;printfC1选择算法:P/R(优先级算法/时间片轮转算法):输入结束n); scan f_s(”c, &algo);printf(”输入进程数:nH);scanf_s(,%d,: &N);选择算法,进程数量p = (PCB *)malloc(sizeof(PCB);cin na;cin time;strcpy_s(p-name, na);p-cputime = 0;pn eedtime = t

14、ime;p-co unt = 0;p-state = w;p-round = 2;if (ready != NULL)insert2(p);elsep-next = ready; ready = p; tail = p;初始化并创建进程,按照先来先服务排序run = ready;ready = ready- next; run-state = R;将首进程进入就绪队列run-cputime = run-cputime + 2;run-needtime = run-needtime 2;if (run-needtime needtime = 0;run-count = run-count + 1

15、;Prt(alg);进程运行if (run-needtime = 0)run-next = fin ish;finish = run;run-state = F;run = NUM;if (ready != NULL) firstin();elseif (run-count*2 = run-round)run-cou nt = 0;if (ready != NULL)run-state = w;in sert2(r un); firstin();处理过的或者处理完的都插入队尾。当所有都为F时,结束。(5)子函数关系图(6)结果 D:xuexi縣作系统作业谍五次实验第五一 felP50e2A12

16、012F逬程号己占用CPU时何所需时间计數时何片长度状态A305e2R曲02e2MA50G2HP221e2MA120i2F逬程号己占用CPU时何所需时间计数时间片长度状态Al02e2RA50e2MA221G2WP323e2MA120i2F逬腔号己占用CPU时间所需时问计數时间片长度A50斗G2RQ221e2MQ32302M20i2FA120i2F搜狗拼咅!尚入法全: P:xuexi臊作系统作业谬五次实验谍五-口M A122001122FF迸程号己占用CPU时问斯羞时何计孩时何片长度状态A22102RR32302wA52202WA42012FA12012F迸程号己占用CPU时问所需时间计效时何片

17、长度状态A32302RR52202wM耳012FM2012FM2G12F进程号己占用CPU时问所希时间计玻时何片长度状态A52202RA34102wA2q012FM2012FM搜狗拼弟2矗入法全:012F D:xuexiw乍系统作业第五次实验第五XM2912FAl2912F逬程号己占用CPU时问所需时问计数时间片长度状态A323G2RR522G2WM耳012FM2912FA12012F迸程号己占用CPU时何所需时问计数时间片长度状态A522G2RR3q1G2WA2耳012FM2e12FA12912F逬程号己占用CPU时问所需时问计数时间片长度状态A31G2RQ5q012FA2斗012FM2e1

18、2FAl2012F输入法全:D:xuexiJg作系统作业五次实验第五.-M2912FAl2012F迸程号己占用CPU时何所需时间计数时何片长度秋誉A52202RA3片102WA24912FM2012FAl2912F迸程号己占用CPU时问所帘时问计纹时问片长度状恣A34102RA54912FM4012FM2012FAl2912F逬程号己占用CPU时何所需时间计数时何片长皮状恣A36012FA5片912FR24912FM2012Fd2912F搜狗拼音禰入法全i结果分析:和时间片轮转调度算法结果一样3 代码/ :定义控制台应用程序的入口点。/includen转 include11,1ffinclud

19、e ,H,include 11,1ffinclude ,1Mffinclude ,H,include,H,#include using namespace std;typedef struct nodechar name10;int prio;int round;int cputime;int needtime;int count;char state;struct node *next;PCB;PCB *finishz * ready, *taiL *run;int N;void firstin()run = ready;run-state = R;ready = ready- next;v

20、oid prtl(char a)if (toupper(a) = P)printf(进程号己占用CPU时间 所需时间 优先数 状态n);else状态n“);printf(进程号已占用CPU时间 所需时间 计数时间片长度void prt2(char a, PCB *q)if (toupper(a) = P)printf(”%-10s%-15d%-10d%-7d %cn,/ q-name,qcputime, q:*needtime, q-prio, q-state);elseprintf(”%-12s%-12d%-12d%-12d%-12d %-cn蔦 qnam巳q-cputimez q-need

21、timez q-count, q-round, q-state);void prt(char algo)PCB *p;prtl(algo);if (run != NULL)pt2(algo, run);p = ready;while (p != NULL)prt2(algo, p);p = p-next;p = fin ish;while (p != NULL)prt2(algo, p);p = p-next;getchar();void insertl(PCB *q)PCB pl, *sz *r;int b;s 二 q;pl = ready;r = pl;b = 1;while (pl !=

22、 NULL) & b) if (pl-prio = s-prio) r = pl;pl = pl-next;elseb = 0;if (r != pl)r-next = s;s-next = pl; elses-next = pl; ready = s;void insert2(PCB*p2)tail-next = p2; tail = p2;p2-next = NULL;void change(PCB #q)PCB pl, *sz *r; int b; q-state = w; s = q; pl = ready; r = pl;b = 1;while (pl != NULL) & b) i

23、f (pl-prio = s-prio) r = pl;pl = pln ext; elseb = 0;if (r != pl)r-next = s; sn ext = pl; elsesn ext = pl; ready = s;void createl(char alg, int N) PCB *p; int i, time; char na10; ready = NULL; finish = NULL;run = NULL;printtf输入进程号.运行时间:n);for (i = 1; i name, na); p-cputime = 0; p-needtime = time; p-s

24、tate = w; p-prio = 100 - time; if (ready != NULL) insertl(p); elsepn ext = ready; ready = p;printf(H优先数算法输出仁息:n);printf(ii #*#*拿拿導專拿拿*拿*拿拿拿茅*拿拿拿*茅*Prt(alg); run = ready;ready = ready-next;run-state = R; void create2(char alg, int N)PCB *p;int i, time; char na10; ready = NULL; finish = NULL;run = NUL

25、L;printfC输入进程号、运冇时间:rf); for (i = 1; i name, na);p-cputime = 0; p-needtime = time; p-count = 0; p-state = w1; p-rou nd = 2;if (ready != NULL)insert2(p);elsep-next = ready; ready = p; tail = p;printf(H谕出伫息n“);printff”*拿拿拿拿*拿*拿*$*nH);Prt(alg); run = ready; ready = ready-next;run-state = R;void priority(char alg)while (run != NULL)run-cputime = run-cputime + 1; run-needtime = runneedtime 1; run-prio = run-prio - 8; if (run-needtime = 0)runn ext = fin ish; finish = run; run-state = F; run = NULL; if (ready != NULL) firstin();if (ready !=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论