欢迎来到天天文库
浏览记录
ID:34070780
大小:53.63 KB
页数:12页
时间:2019-03-03
《操作系统-进程调度实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统实验报告题目:实验3:进程调度实验学院:教师:姓名:学号:班级:1•实验目的(1)撑握进程调度的概念(2)学习Linux内核源码编写风格,重点理解进程调度策略算法,包括FCFS、RR、SRT、Feedback的调度算法。2实验内容木实验要求在Linux的用户态下编程实现进程调度策略算法的模拟程序。(1)验证test4.c:1.FCFS(先到先服务)2.RR(轮循)(2)新建工程schedule,实现3.SRT(最短进程优先)4.Feedback(最短剩余时间)3.实验环境Linux的Ubuntu操作系统4.实验步骤(过程)(1)验证test4.
2、c,理解FIFO和RR两种算法.打开codeblock,运行test4.c的程序。根据程序界面的提示,用FIFO和RR的调度方法调度进程,并且观察显示的进程的调度信息。(2)编写SRT和Feedback两种算法,测试运行结果,编写实验报告。SRT,在FIFO的调度算法上,通过改变FIFO的判断条件,使得函数功能变为,遍历64个进程,找出预期吋间最短的进程,并且开始运行此进程。5.实验结果(1)结果展不osLtnux0osllnux-virtual-machine:-*/Documents/codes$Istestl3、t2.ctestest4.ctests.cosltnux^osltnux・virtual•machine:/Documents/codes$gcctest4•cosltnux0osItnux-virtual-machine:*/Documents/codes$•/test4pleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略q:通岀choice=ftasktdstartexcutetask1:O3task2:26task3:44task4:65task5:82time:620task1:uuutask4、2:uuuunntask3:uuuutask4:nuunutask5:##pleasechoicetheschedulemeasure:•f:先到先服务的调度策略r:轮循的调度策略q:退岀choice=rtaskidstartexcutetask1:O3-otesttasktasktasktasktasknunnnnuunuuuuuuuupleasechoicetheschedulef:先到先服务的调度策略r:轮循的调度策略q:浪岀measure:Terminaltasktasktasktasktinetasktasktasktasktaskpleas5、echoicetheschedulemeasure:f:先到先服务的调度策路r:轮循的调度策略q:通出choice=Epleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略S:SRT的调度策略q:退出choicetaskidtasktasktasktasktaskttrnetasktasktasktasktasksstart023450uunuexcute36420unpleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略S:SRT的调度策略q:退岀ch6、oice=I'i!b:Feedback的调度策略■°=退出choicebtaskidStartSei*uicetinetaskis03task2:26task3:44task4:65task5:82Scbedulincfresulttine020task1:nnUtask2:UUUunntask3:Uuuntask4:uuUtttask5:uu先服务的调度策略丁调度策略SRT的调度策略“.Feedback的调度策略退出pleasechoicetheschedulemeasure:f(2)结果解读第一个图是在所有调度算法屮,最简单的是非抢占式的FCFS算7、法。算法原理:进程按照它们请求CPU的顺序使用CPU•就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了,只能站到队尾去。第二个图是该算法采用剥夺策略。时间片轮转调度是一种最占老,最简单,最公平且使用最广的算法,又称RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。第三个图是根据每个进程的预期时间最短来执行每个进程,依次执行完。最短剩余时间优先,总是选择预期剩余时间最短的进程8、。第四个图是进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。首先调度优先级高的队列
3、t2.ctestest4.ctests.cosltnux^osltnux・virtual•machine:/Documents/codes$gcctest4•cosltnux0osItnux-virtual-machine:*/Documents/codes$•/test4pleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略q:通岀choice=ftasktdstartexcutetask1:O3task2:26task3:44task4:65task5:82time:620task1:uuutask
4、2:uuuunntask3:uuuutask4:nuunutask5:##pleasechoicetheschedulemeasure:•f:先到先服务的调度策略r:轮循的调度策略q:退岀choice=rtaskidstartexcutetask1:O3-otesttasktasktasktasktasknunnnnuunuuuuuuuupleasechoicetheschedulef:先到先服务的调度策略r:轮循的调度策略q:浪岀measure:Terminaltasktasktasktasktinetasktasktasktasktaskpleas
5、echoicetheschedulemeasure:f:先到先服务的调度策路r:轮循的调度策略q:通出choice=Epleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略S:SRT的调度策略q:退出choicetaskidtasktasktasktasktaskttrnetasktasktasktasktasksstart023450uunuexcute36420unpleasechoicetheschedulemeasure:f:先到先服务的调度策略r:轮循的调度策略S:SRT的调度策略q:退岀ch
6、oice=I'i!b:Feedback的调度策略■°=退出choicebtaskidStartSei*uicetinetaskis03task2:26task3:44task4:65task5:82Scbedulincfresulttine020task1:nnUtask2:UUUunntask3:Uuuntask4:uuUtttask5:uu先服务的调度策略丁调度策略SRT的调度策略“.Feedback的调度策略退出pleasechoicetheschedulemeasure:f(2)结果解读第一个图是在所有调度算法屮,最简单的是非抢占式的FCFS算
7、法。算法原理:进程按照它们请求CPU的顺序使用CPU•就像你买东西去排队,谁第一个排,谁就先被执行,在它执行的过程中,不会中断它。当其他人也想进入内存被执行,就要排队等着,如果在执行过程中出现一些事,他现在不想排队了,下一个排队的就补上。此时如果他又想排队了,只能站到队尾去。第二个图是该算法采用剥夺策略。时间片轮转调度是一种最占老,最简单,最公平且使用最广的算法,又称RR调度。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。第三个图是根据每个进程的预期时间最短来执行每个进程,依次执行完。最短剩余时间优先,总是选择预期剩余时间最短的进程
8、。第四个图是进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。首先调度优先级高的队列
此文档下载收益归作者所有