进程调度算法磁盘调度算法银行家算法操作系统课程设计大全32576.docx





《进程调度算法磁盘调度算法银行家算法操作系统课程设计大全32576.docx》由会员分享,可在线阅读,更多相关《进程调度算法磁盘调度算法银行家算法操作系统课程设计大全32576.docx(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统课程设计说明书学院名称: 专业班级: 姓 名: 学 号: 2010年7月月16日评分标准优秀:有完整的的符合标准的的文档,文档档有条理、文文笔通顺,格格式正确,程程序完全实现现设计要求,独独立完成;良好:有完整的的符合标准的的文档,文档档有条理、文文笔通顺,格格式正确;程程序完全实现现设计要求,独独立完成,但但存在少量错错误;中等:有完整的的符合标准的的文档,有基基本实现设计计方案的软件件,设计方案案正确;及格:有完整的的符合标准的的文档,有基基本实现设计计方案的软件件,设计方案案基本正确;不及格:没有完完整的符合标标准的文档,软软件没有基本本实现设计方方案,设计方方案不正确。没没有独
2、立完成成,抄袭或雷雷同。成绩评定为: 。 指导教师: 年年 月 日目 录 一进程调度算算法 4-23 页二银行家算法法 24-344 页三磁盘调度算算法 35-466页进程调度算法1设计目的 在多多道程序设计计中,经常是是若干个进程程同时处于就就绪状态,必必须依照某种种策略决定哪哪个进程优先先占有处理机机,因而必须须解决进程调调度的问题,进进程调度算法法就是要解决决进程调度的的问题。2. 任务及要要求2.1 设计任任务 设计计程序来模拟拟进程的四种种调度算法,模模拟实现调度度的基本功能能。2.2 设计要要求 产生生的各种随机机数要加以限限制,如allltimee限制在400以内的整数数。进程的
3、数量n不不能取值过大大。3. 算法及数数据结构3.1算法的总总体思想(流流程) 每个个用来标识进进程的进程控控制块PCBB用结构来描描述,包括以以下字段:(1)进程优先先数ID,其其中0为闲逛逛进程,用户户进程的标识识数为1,22,3。(2)进程优先先级Prioority,闲闲逛进程(iidle)的的优先级为00,用户进程程的优先级大大于0,且随随机产生,优优先数越大,优优先级越高。(3)进程占用用的CPU时时间CPUttime,进进程每运行一一次,累计值值等于4。(4)进程总共共需要运行时时间Allttime,利利用随机函数数产生。(5)进程状态态,0:就绪绪态;1:运运行态;2:阻塞态。
4、利用链表将数数据连接起来来,实现数据据的存储。3.2 链表模模块3.2.1 功功能 实现链链表的存储功功能,以及实实现存储的查查找功能。3.2.2 数数据结构 构造链链表这个数据据结构,以及及链表的初始始化,链表的的插入,链表表的长度。3.2.3 算算法 typeddef sttruct EllemTyppe *eelem; innt leength; innt liistsizze; SqLisst;Status InitLList(SSqListt &l)l.elemm=(EleemTypee*)mallloc(LLIST_IINIT_SSIZE*ssizeoff(ElemmType);i
5、f(!l.elem) exxit(OVVERFLOOW);l.lenggth=0;l.listtsize=LIST_INIT_SIZE;returnn OK;int LisstLenggth(SqqList l)returnn(l.leength);Status ListIInsertt_Sq(SSqListt &L,iint i, ElemmType e)/在顺序表LL的第i个位位置前插入元元素e,i的的合法值为11.L.llengthh+1 if(iL.lenngth+11) retuurn ERRROR; if(L.lengtth=L.listssize) EElemTyype*neew
6、basee=(EleemTypee *)reeallocc(L.ellem,(LL.listtsize+LISTIINCREMMENT)*sizeoof(EleemTypee); iif(!neewbasee) exitt(OVERRFLOW); LL.elemm=newbbase; L.liistsizze+=LIISTINCCREMENNT; ElemTType *q=&L.elemi-1, *p=&L.eleemL.llengthh-1; whilee(p=qq) *(p+1)=*pp; -pp; /插入位置后后的元素右移移 *q=e; +L.llengthh; returrn OK;S
7、tatus GetEllem(SqqList L,intt i,EllemTyppe &e)if(iL.lenngth)returrn ERRROR;elsee=*(LL.elemm+i-1);returnn OK;void Ouutputllist(SSqListt &L)if(0=L.lenngth)printtf(空集集!);else for(int ii=0;iL.lenngth;+i) priintf(%c,*(L.ellem+i);3.3 主函数数模块3.3.1功能能 实现进程程调度的四种种算法,以及及人机交互的的菜单。3.3.2 数数据结构 主要包括括五个部分,分分别是四种算算法
8、,和进程程的输入和菜菜单部分,功功能分别实现。3.3.3算法法void maain()for(1;)int nnumberr; PCBB pcbb100 ;srand(time(0);int maax;int pppp1000;int ttime=00;int ttime1;int mm;int aa100;a0=00;printff(n*进进程调度算法法的模拟*n);printff(* 1.先先到先服务调调度 2.最最短作业优先先调度 *nn);printff(* 3.优优先权调度 44.轮转发调调度 *nn);printff(*);printff(n请请选择调度的的方法: );scanf(
9、%d,&m);if(m!=1&m!=2&mm!=3&m!=4) priintf(输入错误! 重新输入入: ); scaanf(%d,&mm); if(m!=1&m!=22&m!=3&m!=4) prrintf(输入错误误! 重新输输入: ); scannf(%dd,&m); iff(m!=11&m!=2&m!=3&mm!=4) pprintff(输入错错误! 重新新输入: ); scanff(%d,&m); iif(m!=1&m!=2&mm!=3&m!=4) printtf(输入入错误! 重重新输入: ); sscanf(%d,&m); printff(请输入入进程的个数数: );scanf(
10、%d,&numbber);printff(n开开始时用户进进程均为就绪绪状态,运行行时间随机产产生nnn);SqListt sq;InitLiist(sqq);for(innt r=00;rnuumber;r+)pcbrr.CPUUtime=0;for(innt i=00;inuumber;i+) pccbi.Priorrity=rrand()%50;whilee(1) iff(pcbi.Prrioritty20) pcbii.Priiorityy=randd()%500; ellse bbreak; pccbi.Alltiime=raand()%40;whilee(1) iif(pcbbi.
11、AAlltimme10) pcbii.Allltime=rand()%40;elsee breeak;for(innt j=00;jnuumber;j+)ListLLengthh(sq);ListIInsertt_Sq(ssq,LisstLenggth(sqq),pcbbi ); if(m=1) pprintff(n*程序演示开开始*nn); intt counn=0; /计数数变量 intt waitt100; /等待待时间数组 wwait00=0; iint Alllwaitt=0; ffor(innt i1=0;i1numbeer;i1+)priintf(下面开始调调用第%d个个进程;
12、n,i11); printtf(开始始时间为%dd 执执行时间为%dn,coun,pcbii1.Allltimee); coun+=pcbi1.AAlltimme; if(i11!=0)waaiti11=pcbbi1-11.Allltime+waiti1-1; ffor(innt i2=0;i2numbeer;i2+)Alllwait=waiti2+AAllwaiit; pprintff(平均等等待时间为:%dn,Allwwait/nnumberr); if(m=2) innt minn=pcb0.Allltimee; iint waait11100; waitt10=0; int in=0;
13、 innt couun1=0; prrintf(*最短短作业优先调调度!*n); coout进程所需时时间分别是:enndl; foor(i=00;inuumber;i+) ccoutpcbii.Allltimeendll; prrintf(进程调度度的顺序为: ); foor(i=00;inuumber;i+) mmin=500; foor(j=00;jnuumber;j+) if(pccbj.Alltiimemiin) min=pcbjj.Allltime; iin=j; pprintff(%d ,inn+1); ppcbinn.Allltime+=50; if(m=3) prrintf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 调度 算法 磁盘 银行家 操作系统 课程设计 大全 32576

限制150内