欢迎来到天天文库
浏览记录
ID:45554441
大小:310.84 KB
页数:25页
时间:2019-11-14
《【精品】《操作系统》课程设计指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《操作糸统》课程设计指导书勒子信息学院By苏庆別课程设计任务(一、二):使用简单轮转法实现操作系统的进程调度使用优先数法实现操作系统的进程调度一、目的与要求1、目的进程是操作系统最重要的概念之一,进程调度乂是操作系统核心的主要内容。本实习要求学牛独立地用髙级语言编写和调试一个简单的进程调度程序。调度算法可任意选择或口行设计。任务一采用简单轮转法,任务二采用优先数法等。木课题可以加深对进程调度和各种调度算法的理解。2、要求(1)设计一个有n个进程并发的进程调度程序。每个进程由一个进程控制块(PCB)表示。进程控制块一般应该包含下述信息:进程名、进程优先数、进程需要运行的时间、占
2、用CPU的时间以及进程的状态等,且可按调度算法的不同而增删。(2)调度程序应包含2〜3种不同的调度算法,运行吋可任意选一种,以利丁各种算法的分析比较。(3)算法应能显示或打印各个进程的PID、状态(运行状态R、等待状态W等)和参数(已运行时间等)的变化情况,便于观察诸进程的调度过程二、示例1、题目木程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行R(run).就绪W(wait)和完成F(finish)三种状态之一,并假设起始状态都是就绪状态W。为了便于处理,程序进程的运行吋间以吋间片为单位计算。各进程的优先数或轮转吋间片数、以及进程需要运行的时间片数,均由伪
3、随机数发生器产生。进程控制块结构如下:PCB—进程ID一链指针优先数/轮转吋间片数—占用CPU时间片数进程所需时间片数进程状态进程控制块链结构如下:其中:RUN—当前运行进程指针;HEAD—进程就绪链链首指针;TAID—进程就绪链链尾指针。2、算法与框图(1)优先数法。进程就绪链按优先数大小从高到低排列,链首进程首先投入运行。每过一个时间片,运行进程所需运行的吋间片数减1,说明它已运行了一个时间片,优先数也减3,理由是该进程如果在一个时间片中完成不了,优先级应该降低一级。接着比较现行进程和就绪链链首进程的优先数,如果仍是现行进程高或者相同,就让现行进程继续进行,否则,调度就绪
4、链链首进程投入运行。原运行进程再按其优先数人小插入就绪链,且改变它们对应的进程状态,直至所有进程都运行完各H的时间片数。(2)简单轮转法。进程就绪链按各进程进入的先后次序排列,进程每次占用处理机的轮转吋间按其重要程度登入进程控制块中的轮转时间片数记录项(相当于优先数法的优先数记录项位迸)。每过一个时间片,运行进程占川处理机的时间片数加1,然后比较占川处理机的时间片数是否与该进程的轮转吋间片数相等,若相等说明已到达轮转吋间,应将现运行进程排到就绪链末尾,调度链首进程占用处理机,n改变它们的进程状态,直至所有进程完成各白的时间片。⑶程序框图如下图1所示。ID12345PRIORI
5、TY93830290CPUTIME00000ALLTIME33634STATEWRWWWNEXT53410I)Ul▼JUl图1进程调度框图3、程序运行结果格式(1)程序运行结果格式TYPETHEALGORITHM:PRIORITYOUTPUTOFPRIORITYRUNNINGPROC.WAITINGQUEUE3415SYSTEMFINISHED(2)说明:程序启动后,屏幕上显示“TYPETHEALGORITHM”,要求用户打入使用何种调度算法。本程序只编制了优先数法(“priority”)和简单轮转法("RoundRobin”)两种。打入某-•算法后,系统自动形成各进程控制块
6、,实施该算法的进程调度算法,并打印各进程在调度过程中的状态和参数的变化。4、小结本实习简单地模拟了进程调度的二种方法,在进程运行时间和进程状态变化方面都做了简化,但已能反映进程调度的实质。通过实习能加深对进程调度的理解和熟悉它的实施方法。三、实习题(1)编制和调试示例给出的进程调度程序,并使具投入运行。(2)自行设计或改写一个进程调度程序,在相应机器上调试和运行该程序,其功能应该不亚于示例。提示:可编写一个反馈排队法(FB方法)的进程调度程序。该算法的基本思想是设置几个进程就绪队列,如队列1……队列i,同一队列中的进程优先级和同,可采用先进先出方法调度。各队列的进程,其优先级
7、逐队降低。即队列1的进程优先数最高,队列i的最低。而时间片,即以此占用CPU的时间正好相反,队列1的最短,队列i则最长。调度方法是开始进入的进程都在队列1中参加调度,如果在一个时间片内该进程完不成,应排入队列2,即优先级要降低,但下一次运行的吋间可加长(即吋间片加长了)。以此类推,直至排到队列i。调度时现在队列1中找,待队列1中已无进程时,再调度队列2的进程,一旦队列1屮有了进程,乂应返回來调度队列1的进程。这种方法最好设计成运行过程屮能创造一定数量的进程,而不是一开始就生成所有进程。提示:可综合各种算
此文档下载收益归作者所有