(7分)某操作系统采用多道程序设计技术,管理5个进程P1~P5,各进程的到达时间、预计运行时间及优先权(数字越小表示优先级越高)如下表所示。系统采用时间片轮转调度(时间片q=1)处理就绪队列中的进程,且当有高优先级进程到达时,会抢占当前运行进程的CPU(即采用抢占式优先权调度确定就绪队列中进程的执行顺序,时间片轮转调度实现同优先级进程的切换)。
\begin{array}{|c|c|c|c|} \hline \text{进程} & \text{到达时间(单位:时间片)} & \text{预计运行时间(单位:时间片)} & \text{优先权} \\ \hline P1 & 0 & 5 & 3 \\ \hline P2 & 2 & 3 & 1 \\ \hline P3 & 3 & 2 & 2 \\ \hline P4 & 5 & 4 & 3 \\ \hline P5 & 6 & 1 & 1 \\ \hline \end{array}
此外,系统中存在一个共享缓冲区B,大小为1(仅能存放1个数据)。P1、P2为生产者进程,分别生产数据A、B;P3、P4为消费者进程,分别消费数据A、B;P5为缓冲区监控进程,仅在缓冲区为空时读取缓冲区状态(读取过程不改变缓冲区内容)。要求:
(1)求出所有进程的平均周转时间和平均带权周转时间;(2分)
(2)请用信号量机制(明确信号量定义、初始值及作用)实现P1~P5对共享缓冲区B的同步与互斥控制,写出各进程的核心伪代码(伪代码需包含信号量操作及数据生产/消费/监控逻辑)。(5分)
登录后提交答案
暂无评论,来抢沙发