操作系统(Linux)--按优先数调度算法实现处理器调度

本文介绍了一个实习项目,旨在设计一个基于优先数的处理器调度程序。程序使用C语言编写,处理5个进程的PCB队列,根据优先数选择进程执行,并动态更新优先数和运行时间。当进程运行完所有时间或优先数降为0时,进程结束并从队列中移除。通过srand((unsigned int)time(0))确保每次运行的随机数不同,进程的运行时间设定为1到5单位时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题慢悠悠地做,出现了很多错误,大多都是空指针产生的中断,最后还是实现了,代码写得有点乱,有时间优化下(当然有同学指点下也是不错的,哈哈)。


实习题目:

设计一个按优先数调度算法实现处理器调度的程序。

[提示]:

(1) 假定系统有5个进程,每个进程用一个PCB来代表。PCB的格式为:

进程名、指针、要求运行时间、优先数、状态。

进程名——P1~P5。

指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。

要求运行时间——假设进程需要运行的单位时间数。

优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。

状态——假设两种状态,就绪,用R表示,和结束,用E表示。初始状态都为就绪状态。

(2) 每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。

(3) 处理器总是选队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。

(4) 进程运行一次后,若要求运行时间不等于0,则将它加入队列,否则,将状态改为“结束”,退出队列。

(5) 若就绪队列为空,结束,否则,重复(3)。


思路流程图:


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值