应用台导航页
  • 主页
  • 博客
  • 知识库
  • 工作台
  • 集萃
  • 友链
  • 关于
408操作系统真题 进程同步

408操作系统真题 进程同步

应试
更新于 2026-09-29
— 886 字
返回
  1. 45.(7分)三个进程P₁、P₂、P₃互斥使用一个包含N(N>0)个单元的缓冲区。P₁每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P₂每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P₃每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义(要求用伪代码描述)。

解答: 互斥资源: 缓冲区只能互斥访问, 因此设置互斥信号量mutex。 同步问题: P1P_1P1​、P2P_2P2​ 因为奇数的放置与取用而同步, 设同步信号量odd; P1P_1P、 因为偶数的放置与取用而同步, 设置同步信号量even; 、、 因为共享缓冲区, 设同步信号量empty, 初值为N。程序如下:

相关内容

  • 高数真题

    高数真题

    更新于2026-09-29

  • 408 计算机组成原理真题 中央处理器

选项
文章 ID: 624

相关内容

  • 高数真题

    高数真题

    更新于2026-09-29

  • 408 计算机组成原理真题 中央处理器

    408 计算机组成原理真题 中央处理器

    更新于2026-09-29

  • 408 计算机组成原理真题 数据信息的表示

    408 计算机组成原理真题 数据信息的表示

    更新于2026-09-29

  • 8.1~8.4多元函数的基本概念

    8.1~8.4多元函数的基本概念

    更新于2026-09-28

  • 8.5~8.6 多元函数微分法

    8.5~8.6 多元函数微分法

    更新于2026-09-28

dors logoDors

Dors 是花野猫开发为知识工作者打造的数字花园应用,包含的博客、个人记事本、及其他实用功能。

花园

  • 花坛——博客
  • 果园——知识库

工坊——作者开发的实用工具

  • 小记
  • 秒切——一键按秒分割视频
  • 中国重点高校地理位置可视化网站
  • 中国行政区划数据查询平台
  • excel 重命名工具

misc

  • 生活章程
  • 画廊
  • just have fun!

© 2022 - present. All Rights Reserved.滇ICP备2025063395号-1

花野猫打造
1
​
P3P_3P3​
P1P_1P1​
P2P_2P2​
P3P_3P3​
semaphore mutex=1;
semaphore odd=0,even=0;
semaphore empty=N;
main()
cobegin
Process P1()
while(True)
{
x=produce(); //生成一个数
P(empty); //判断缓冲区是否有空单元
P(mutex); //缓冲区是否被占用
Put();
V(mutex); //释放缓冲区
if(x%2==0)
V(even); //如果是偶数,向P3发出信号
else
V(odd); //如果是奇数,向P2发出信号
}
Process P2()
while(True)
{
P(odd); //收到P1发来的信号,已产生一个奇数
P(mutex); //缓冲区是否被占用
getodd();
V(mutex); //释放缓冲区
V(empty); //向P1发信号,多出一个空单元
countodd();
}
Process P3()
while(True)
{
P(even); //收到P1发来的信号,已产生一个偶数
P(mutex); //缓冲区是否被占用
geteven();
V(mutex); //释放缓冲区

408 计算机组成原理真题 中央处理器

更新于2026-09-29

  • 408 计算机组成原理真题 数据信息的表示

    408 计算机组成原理真题 数据信息的表示

    更新于2026-09-29

  • 8.1~8.4多元函数的基本概念
  • 8.5~8.6 多元函数微分法
  • V(empty); //向P1发信号,多出一个空单元
    counteven();
    }
    coend

    8.1~8.4多元函数的基本概念

    更新于2026-09-28

    8.5~8.6 多元函数微分法

    更新于2026-09-28