操作系统实验(进程调度存储管理磁盘调度银行家算法

上传人:博****1 文档编号:504996984 上传时间:2023-01-21 格式:DOCX 页数:52 大小:142.90KB
返回 下载 相关 举报
操作系统实验(进程调度存储管理磁盘调度银行家算法_第1页
第1页 / 共52页
操作系统实验(进程调度存储管理磁盘调度银行家算法_第2页
第2页 / 共52页
操作系统实验(进程调度存储管理磁盘调度银行家算法_第3页
第3页 / 共52页
操作系统实验(进程调度存储管理磁盘调度银行家算法_第4页
第4页 / 共52页
操作系统实验(进程调度存储管理磁盘调度银行家算法_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《操作系统实验(进程调度存储管理磁盘调度银行家算法》由会员分享,可在线阅读,更多相关《操作系统实验(进程调度存储管理磁盘调度银行家算法(52页珍藏版)》请在金锄头文库上搜索。

1、Evaluation Warning: The document was created with Spire.Doc for .NET.实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1 设计进程调调度算法法,进程程数不定定2 包含几种调调度算法法,并加加以实现现3 输出进程的的调度过过程进程的的状态、链链表等。三、 参考例1 题目优优先权法法、轮转转法简化假设1) 进程为计算算型的(无无I/OO)2) 进程状态:re

2、aady、rrunnningg、fiinissh3) 进程需要的的CPUU时间以以时间片片为单位位确定2 算法描述1) 优先权法动态态优先权权当前运行进进程用完完时间片片后,其其优先权权减去一一个常数数。2) 轮转法开始键盘输入进程数n,和调度方法的选择优先权法?轮转法产生n个进程,对每个进程产生一个PCB,并用随机数产生进程的优先权及进程所需的CPU时间按优先权大小,把n个进程拉成一个就绪队列初始化其他数据结构区链首进程投入运行时间片到,进程所需的CPU时间减1,优先权减3,输出个进程的运行情况所需的CPU时间=0?撤销进程就绪队列为空?结束将进程插入就绪队列NYNYYBN四、 实验流程图图

3、产生n个进程,对每个进程用随机数产生进程的轮转时间片数及进程所需的时间片数,已占用CPU的时间片数置为0按进程产生的先后次序拉成就绪队列链链首进程投入运行时间片到,进程所需时间片数减1,已占用CPU时间片数加1输出各进程的运行情况进程所需时间片数=0?撤销该进程就绪队列为空吗?占用CPU的时间片数=轮转时间片数?占用CPU的时间片数置为0把该进程插入就绪队列尾BNYNYY结束N注意:1 产生的各种种随机数数的取值值范围加加以限制制,如所所需的CCPU时时间限制制在120之之间。2 进程数n不不要太大大通常取取488个3 使用动态数数据结构构4 独立编程5 至少三种调调度算法法6 若有可能请请在

4、图形形方式下下,将PPCB的的调度用用图形成成动画显显示。五实验过过程:(1)输入入:进程程流文件件(1.txtt),其其中存储储的是一一系列要要执行的的进程, 每个作作业包括括四个数数据项:进程名 进进程状态态(1就就绪 22等待 3运行行) 所所需时间间 优先先数(00级最高高)进程0 1 500 2进程1 2 100 4进程2 1 155 0进程3 3 288 5 进程4 2 199 1进程5 3 8 7输出: 进进程执行行流等待待时间,平平均等待待时间本程序包括括:FIIFO算算法,优优先数调调度算法法,时间间片轮转转调度算算法(2)程序序代码#inclludee #inclludee

5、 #inclludeeconstt innt bblocck_ttimee=100; /定义义时间片片的长度度为100秒 constt innt MMAXPPCB=1000; /定义义最大进进程数/定义进进程结构构体 typeddef strructt noodecharr naame20; int staatuss;int timme; int priivillegee;int finnishhed; int waiit_ttimee; pcbb;pcb pcbbsMMAXPPCB; int quaantiity;/初始化化函数 void iniitiaal() int i;for(i=00

6、;iMAXXPCBB;i+) strrcpyy(pccbsi.namme,); pcbbsii.sstattus=0; pcbbsii.ttimee=0;pcbbsii.pprivvileege=0;pcbbsii.ffiniisheed=00; pcbbsii.wwaitt_tiime=0; quanntitty=00;/读数据据函数 int rreaddDatta() FILEE *ffp; charr fnnamee200; int i;couttfnnamee; if(fp=foppen(fnaame,r)=NUULL) couut错误误,文件件打不开开,请检检查文件件名enndl;

7、elsee whiile(!feeof(fp) fsscannf(ffp,%s %d %d %d,pccbsquaantiity.naame,&pccbsquaantiity.sttatuus,&pcbbsqquanntitty.timme,&pcbbsqquanntitty.priivillegee); quuanttityy+; /输出出所读入入的数据据 couut输出出所读入入的数据据enddl; couut进程程名 进进程状态态 所需需时间 优先数数enddl; forr(i=0;iiquuanttityy;i+) coout pcbbsii.nnamee pccbsi.staatus

8、s pccbsi.timme ppcbssi.prriviileggeenddl; retturnn(1); retuurn(0);/重置数数据,以以供另一一个算法法使用 void iniit() int i;for(i=00;iMAXXPCBB;i+)pcbbsii.ffiniisheed=00; ppcbssi.waait_timme=00; /先进先先出算法法 void FIFFO() int i,jj; iint tottal;/输出出FIFFO算法法执行流流 coutteendll*eendll; couttFIFFO算法法执行流流:enndl; coout进进程名 等待时时间enn

9、dl; for(i=00;iquaantiity;i+) couut ppcbssi.naame pcbbsii.wwaitt_tiimeenndl; forr(j=i+11;jquaantiity;j+) ppcbssj.waait_timme+=pcbbsii.ttimee; totaal=00; for(i=00;iquaantiity;i+) tootall+=ppcbssi.waait_timme; coutt总等待待时间:tottal 平均等等待时间间:tootall/quuanttityyeendll;/优先数数调度算算法 void priivillegee() int i,jj

10、,p; int passsedd_tiime=0; int tottal;int queeueMAXXPCBB; int currrennt_pprivvileege=10000;for(i=00;iquaantiity;i+) currrennt_pprivvileege=10000; forr(j=0;jjquuanttityy;j+) iff(ppcbssj.fiinisshedd=00)&(pccbsj.priivillegeecuurreent_priivillegee) p=jj; cuurreent_priivillegee=pccbsj.priivillegee; queeue

11、i=p;pcbbspp.ffiniisheed=11; pcbbspp.wwaitt_tiime+=paasseed_ttimee; passsedd_tiime+=pccbsp.timme; /输出优优先数调调度执行行流 coutteendll*eendll; coutt优先数数调度执执行流:enddl; coutt进程名名 等待待时间eendll; for(i=00;iquaantiity;i+) couut ppcbssquueueei.nnamee pccbsqueeuei.waait_timmeenddl; totaal=00; for(i=00;iquaantiity;i+) tootall+=ppcbssi.waait_timme; coutt总等待待时间:tottal 平均等等待时间间:tootall/quuanttityyeendll;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号