2024年4月21日发(作者:)
实验一 进程管理
一、目的
进程调度是处理机管理的核心内容..本实验要求编写和调试一个简单的进程调度程序..通过本实验
加深理解有关进程控制块、进程队列的概念;并体会和了解进程调度算法的具体实施办法..
二、实验内容及要求
1、设计进程控制块PCB的结构PCB结构通常包括以下信息:进程名进程ID、进程优先数、轮转
时间片、进程所占用的CPU时间、进程的状态、当前队列指针等..可根据实验的不同;PCB结构的内容
可以作适当的增删..为了便于处理;程序中的某进程运行时间以时间片为单位计算..各进程的轮转时间数
以及进程需运行的时间片数的初始值均由用户给定..
2、系统资源r
1
…r
w
;共有w类;每类数目为r
1
…r
w
..随 机产生n进程
P
i
id;sj;k;t;0<=i<=n;0<=j<=m;0<=k<=dt为总运行时间;在运行过程中;会随机申请新的资源..
3、每个进程可有三个状态即就绪状态W、运行状态R、等待或阻塞状态B;并假设初始状态为就绪
状态..建立进程就绪队列..
4、编制进程调度算法:时间片轮转调度算法
本程序用该算法对n个进程进行调度;进程每执行一次;CPU时间片数加1;进程还需要的时间片数减
1..在调度算法中;采用固定时间片即:每执行一次进程;该进程的执行时间片数为已执行了1个单位;这
时;CPU时间片数加1;进程还需要的时间片数减1;并排列到就绪队列的尾上..
三、实验环境
操作系统环境:Windows系统..
编程语言:C..
四、实验思路和设计
1、程序流程图
1
开始
对进程进行初始化;建立就绪队列、阻塞队列..Input
触发时钟;调用时间片轮转调度算法..runFcfs
是
就绪队列为空
结束
否
输出就绪队列和阻塞队列的信
息..outputall
取就绪队列的第一个进程;判断其运行的时间片
是否达到所需次数..如果达到;则释放资源
如果没达到;则运行一个时间片..running
检查阻塞队列;对于当前资源数目满足阻塞队列的进程;
由阻塞转入就绪队列..testblock
检查是否有新进程产生;如果有;则判断系统资源是否够
用;如果够用;则分配给该进程;插入就绪队列..如果不够
用;则插入阻塞队列..testnew
显示三类资源情况..rescore
2
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713675872a2296282.html
评论列表(0条)