资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
操作系统实验报告学生学院计算机学院专业班级X级网络工程2班学 号 311X学生姓名 X指导教师2013年12月26日计算机 学院 网络工程 专业 2 班学号:JX姓名:X协作者:教师评定:实验 一题目实验一进程调度实验_二 _题目_实验二作业调度实验三题目实验三储存管理空间的分配与回收模拟计算机 学院 网络工程专业 2 班 学号:31X6姓名: X协作者: 教师评定: 实验题目实验一进程调度一、实验目的用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理 解。二、实验原理设计一个有N个进程并发的进程调度程序。要求采用最高级优先数优先算法。每个进程有一个进程控制块PCB表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用 CPU寸间、进程状态等等。进程的优先数以及需要的运行时间可以事先人为地指定。进程的到达时间为进程输入的时间。进程的运行时间以及时间片为单位进行计算。每个进程的状态可以是未准备N(no ready)、就绪 W(wait)、运行R(run)、完成F(finish)四种状态之一。就绪进程获得 CPU后就只能进行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后, 进程的已占用CPU时间已达到所需要的运行时间, 则撤销该进 程,如果运行一个时间片后进程的已占用 CPU寸间还未到达所需要的运行时间, 也就是进程 还需要继续运行,此时,应将进程的优先数减 1,然后把它插入就绪队列等待 CPU每进行 一次调度程序都打印一次运行进程、 就绪队列、以及各个进程的PCE,以便进程检查。重复以上过程,知道所有进程完成为止。三、实验方法、步骤、方案1、动态优先数时间片轮转法:采用时间片轮转法和动态优先数算法的混合思想:一开始给予任务赋予优先数, 如果运行一个时间片后, 进程的已占用 CPU寸间已达到所需要的运 行时间,贝y撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1(即满足动态优先数),然后比较队列的优先数,并把该任务插入比该任务现在的优先数还大的进程的最前面。然后继续进行下一个时间片,直到所有进程完成为止。2、开放式多级反馈队列调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束 时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。开放式实现:允许完成一个时间片后插入进程,对该进程的插入方式是:插入第一队队列的末端。四、重要函数、数据结构说明动态优先数时间片轮转法:struct pcb进程控制块char name10; 进程名char state;/ 进程状态int super;/ 优先数int ntime;/ 需要运行时间int rtime;/已占用CPU时间in t pieces;/时间片struct pcb* link;sort()对进程进行优先级排列函数PCB *first,*seco nd;int in sert=0;if(ready=NULL)|(p_super)(ready_super)p-li nk=ready;ready=p;/优先数最大进入队列头elsefirst=ready;sec on d=first-li nk;while(seco nd!=NULL)if(p-super)(seco nd-super)插入进程优先数大于当前进程优先数/插入到当前进程前面p-li nk=sec ond;first-li nk=p;seco nd=NULL;in sert=1;else/否则进入对尾first=first-li nk;sec on d=sec on d-li nk;if(in sert=0)/不插入则继续first-li nk=p;runnin g()建立进程就绪函数if(p_pieces=1) p-rtime+=3; 时间片运行 else(p-rtime)+;if(p-rtime=p- ntime|p-rtimep- ntime) destroy。;else(p_super)_;p-state=W;sort();开放式多级反馈队列调度算法:typedef struct pcb/进程控制块char name10;进程名char state;/进程状态int queue;/进程所在队列int ntime;/需要运行时间int rtime;/已占用CPU时间int qtime;/进程在当前队列可运行的时间块struct pcb* link;fin dpos()/找到队列函数PCB *ps=pfe nd;if(!ps|!ps-li nk|(ps_li nk_queue_ps_queue)1) pin sert=ps;elsewhile(ps-li nk&ps-li nk-queue!=(pfe nd-queue+2) ps=ps-li nk; pin sert=ps;insert()插入函数if(!ready) ready=p;pfen d=p;pin sert=p;else if(ready-queue=1)p-li nk=pfe nd-li nk;pfen d-li nk=p;pfen d=p;fin dpos();elsep-li nk=ready;ready=p;fin dpos();sort()插入队列过程函数if(!ready-li nk|ready-queueli nk-queue) return;p=ready-li nk;ready-li nk=pi nsert-li nk;pin sert-li nk=ready;pin sert=ready;ready=p;if(read y&ready-queue=p in sert-queue)fin dpos();五、实验效果动态优先数时间片轮转法:输入:第一个时间片:The execute nuiribei*:!n 当前正在运彳亍的进程是i thirdqnanewt atesuperndtimeruntimethird :RIS:2 :0i 当前就绪队列的状态为:qnainestatesuperrndtiniepiintimeEacand EW1412 !0qua mestateswperrudtimeruntimefirstS3!4l&第二个时间片:The execute nunber-S一 当前正在运行的进程是:third nanestatesuperndtineI bird ER171211run t imc 当前就绪队列的状态为1qnantestatesupern d t Ine;S9;ovid :W:4!2:8runt imenamBnuperndt i ne! first :U:3:4:Brunt irne进程rthird已完成*第三个时间片:The execute number:3*当前正在运彳亍的进程是t Secondqname sta te superndt line1*1111 tineSecond ;R!4;2;0*当前就绪灰列的状态为:qnane stasuperndtimeruntine!f ii*st :W:3H:第八个时间片:The execute numbep:8一 当前正在运行的进程是:firstqname state superndtmeruntimefirst :R!0!4!3*当前就绪队列的状态为:誉程 irst 1已完成开放式多级反馈队列调度算法: 输入:#第一个时间片:The execute nunbep:!一 当前正在运行的进程是;fi-stqnantB state queue nt imert imestat ine;fivst :R:1:3!R!2*当前就绪臥列的状态为:inc2qnajmc state queue nt ime rt ine ifiecond U!1!6:0按任意犍继续按i疥加进程第三个时间片:The execute niumibeF:3rt ine!0staytine*当前正在运行的进程是i second qnamie state queue ntine* sBcond !R! 11 i*当前就緖队列的状态为:qnamie ;f irststate queue ntine U1213rt ine12stajit ineM按任意键继练粗添加进程插入进程third :The exBcuote niiLmbe*十当前正在运行的进袒旱:3CcondQRaFae爭 t ate pqueueotioiertipiestaytimeIsecond SR;116;1;1*当前就绪队列的状态为:qnanestatequeuent inert imestayt ineichird 训!1;:2qnane冬七曰quieueolriintiBrt inesitat meIfirst tv12:J12!4第六个时间片:*当前正在运行的进程是:2就 Ft ine:2The execute nunjer:6qriane state queue nt iiitgFirst :R!2!3 当前就绪队列的状态为:qriane state queue I secund IU12nt ine:6rt ine12staytine :4陆程first已完成第十个时间片:The execute nu.Rber:10*当前正在运行
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号