- 5
- 0
- 约4.51万字
- 约 50页
- 2023-07-01 发布于江西
- 举报
实验一 处理机调度
一、实验内容
选择一个调度算法,实现处理机的调度。
二、实验目的
进程调度是处理机管理的核心内容。多道系统中,当就绪进程数大于处理机数时,就必
须按照某种策略决定哪些进程优先占用处理机。本实验摹拟实现处理机调度,以加深对于进
程控制块、进程队列、进程状态(后备、就绪、运行、挂起、解挂等)等概念的理解,从而
较好地了解作业/进程调度的工作过程。此外,通过该实验体味和了解优先权和时间片轮转
调度算法的具体实施办法。
三、实验题目
1) 设计一个按优先权调度算法实现处理机调度的程序;
2) 设计按时间片轮转算法实现处理机调度的程序。
四、提示
1) 对于按优先权调度算法进行调度,PCB所包含的内容如下:
进程名/PID;
要求运行时间(单位时间);
优先权;
状态;
PCB指针;
2) 对于按时间片轮转算法进行调度,PCB所包含的内容如下:
进程名/PID;
要求运行时间(单位时间);
已运行时间;
状态;
PCB指针。
五、要求
1) 可以随机输入若干进程,并按优先权排序(为了方便演示,排序单独写成一个函数
来调用,实际在加入队列时就排序会更好些);
2) 从就绪队列的首选进程开始运行:优先权-1/要求运行时间-1,要求当运行时间=0
时,撤销该进程;
3) 重新排序,进行下一轮调度;
4) 采用图形界面实现,可以适当加入动态动画效果;
5) 可以随时增加进程;
6) 规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可以自动从后
备队列 (不在内存中吗?)调度一作业进入。被挂起进程进入挂起队列,设置解挂功能用于
将指定挂起进程解挂并加入就绪队列。
7) 每次调度后,显示各进程的状态。
《操作系统》实验报告
六、实验内容:
一最高优先级优先调度算法
1)优先级简介
动态优先数是指在进程创建时先确定一个初始优先数, 以后在进程运行中随着进程特
性的改变不断修改优先数,这样,由于开始优先数很低而得不到CPU 的进程,就能因为等
待时间的增长而优先数变为最高而得到CPU 运行。
例如:在进程获得一次CPU 后就将其优先数减少1。或者,进程等待的时间超过某一时
限时增加其优先数的值,等等。
2)详细设计
优先权调度算法:
1、设定系统中有五个进程,每一个进程用一个进程控制块( PCB)表示,进程队列采
用链表数据结构。
2、进程控制块包含如下信息:进程名、优先数、需要运行时间、已用CPU 时间、进
程状态等等。
3、 在每次运行设计的处理调度程序之前,由终端输入五个进程的“优先数”和“要
求运行时间”。
4、进程的优先数及需要的运行时间人为地指定 .进程的运行时间以时间片为单位进
行计算。
5、采用优先权调度算法,将五个进程按给定的优先数从大到小连成就绪队列。用头
指针指出队列首进程,队列采用链表结构。
6、处理机调度总是选队列首进程运行。采用动态优先数办法,进程每运行一次优先
数减“1”,同时将已运行时间加“1”。
7、进程运行一次后,若要求运行时间不等于已运行时间,则再将它加入就绪队列;
否则将其状态置为“结束”,且退出就绪队列。
8、 “就绪”状态的进程队列不为空,则重复上面6,7 步骤,直到所有进程都成为“结
束”状态。
9、在设计的程序中有输入语句,输入5 个进程的“优先数”和“要求运行时间”,也
有显示或者打印语句,能显示或者打印每次被选中进程的进程名、运行一次后队列的
变化,以及结束进程的进程名。
10、最后,为五个进程任意确定一组“优先数”和“要求运行时间”,运行并调试所设计
的程序,显示或者打印出逐次被选中进程的进程名及其进程控制块的动态变化过程。
1
原创力文档

文档评论(0)