1.问题:假设一个水果赛选系统由三个进程A、B、C组成。进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果。若货架上存放的是苹果则让进程B取出,并存放到苹果箱中;若货架上存放的是菠萝则让进程C取出后,将其存放到菠萝框中

(1)列出所需的信号量并初始化

(2)请用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码

2.答案

答:

(1)var e,e1,e2:semaphore;

e.value = 1;

e1.value = 0 ;

e2.value = 0;

(2)

A:

Begin

  Repeat

    wait(e);

    去一个水果,存放在货架F上;

    signal(e1) or signal(e2);

  Until false;

End

--------------------------------------------------------

B:

Begin

  Repeat

    wait(e1);

    从货架上取出苹果,并存放到苹果箱中;

    signal(e);

  Until false;

End

---------------------------------------------------------

C:

Begin

  Repeat

    wait(e2);

    从货架上取出菠萝,并存放到菠萝箱中;

    signal(e);

  Unitl false;

End

操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进箱问题-代码补充)”的更多相关文章

  1. Java 硬件同步机制 Swap 指令模拟 + 记录型信号量模拟

    学校实验存档//.. 以经典的生产者消费者问题作为背景. 进程同步方式接口: package method; /** * P表示通过,V表示释放 */ public interface Method ...

  2. Java硬件同步机制Swap指令模拟+记录型信号量模拟

    学校实验存档//.. 以经典的生产者消费者问题作为背景. 进程同步方式接口: package method; /** * P表示通过,V表示释放 */ public interface Method ...

  3. 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串

    写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct Convert ...

  4. 【转】进程同步之信号量机制(pv操作)及三个经典同步问题

    原文地址:http://blog.csdn.net/speedme/article/details/17597373 上篇博客中(进程同步之临界区域问题及Peterson算法),我们对临界区,临界资源 ...

  5. 整型信号量和PV操作(计算机操作系统)

    在整型信号量机制中,信号量被定义为一个整形变量.除初始化外,仅能通过两个标准的原子操作Wait(S)和Signal(S)来访问.其通常分别被称为P.V操作. 描述如下: P操作:S=S-1:如果S小于 ...

  6. 信号量和PV操作写出Bakery算法的同步程序

    面包店烹制面包及蛋糕,由n个销售员卖出.当有顾客进店购买面包或蛋糕时,应先在取号机上取号,然后等待叫号,若有销售员空闲时便叫下一号,试用信号量和PV操作写出Bakery算法的同步程序. 设计要求 1) ...

  7. 操作实践题 - HTML 列表综合应用

    通过对列表的综合应用,编写如下效果网页: 解答: <html> <head> <title>操作实践题</title> <meta http-eq ...

  8. Android学习记录(2)—Android中数据库的常见操作

    android中数据库操作是非常常见了,我们会经常用到,操作的方法也有很多种形式,这里我就把最常见的两种形式记录下来了,以备以后用到方便查看.我就不写注释和解释了,因为android数据库的操作和其它 ...

  9. FreeRTOS 任务通知模拟计数型信号量

    举例 //释放计数型信号量任务函数 void SemapGive_task(void *pvParameters) { u8 key; while(1) { key = KEY_Scan(0); // ...

  10. JavaWeb学习记录(十二)——商城购物之数据库操作的接口定义

    一.基本接口,该项目中所有接口都继承它 package blank.dao; import java.util.List; public interface BaseDao<T,PK> { ...

随机推荐

  1. 安全稳定地远程访问飞牛NAS

    春节前从一个网友那里了解到一个新的NAS--飞牛. 起因是我们一个用户用我们的SD-WAN来远程访问飞牛NAS,市面上做NAS的很多,之所以单独体验这个产品主要是: 不需要购买硬件,这个是非常重要的, ...

  2. 大型语言模型(LLM)为什么处理日语这么“头大”?

    引言 你有没有想过,为什么 AI 大神们处理日语时,总是会挠头?其实,这都要从"token"这个神奇的小东西说起. 在大型语言模型(LLM)中,token 就是文本的基本处理单位. ...

  3. Sqoop1的导入导出

    Sqoop1 和 Sqoop2 的区别 # 版本上 Sqoop1: 1.4.x Sqoop2: 1.99.x # 架构上 Sqoop1 使用 Sqoop客户端直接提交的方式(命令.将命令封装在脚本中) ...

  4. 【BUUCTF】Blacklist

    [BUUCTF]Blacklist (SQL注入) 题目来源 收录于:BUUCTF GYCTF2020 题目描述 纯粹的SQL注入题 当触发黑名单时返回如下 过滤了以下关键字 set prepare ...

  5. 手把手教你用 MicroPython 玩转幻尔串口舵机,代码+教程全公开

    原文链接: FreakStudio的博客 摘要 信号发生扩展板通过SPI接口生成可调频率和幅度的正弦波.方波和三角波,频率小于1MHz.支持幅度调节,提供原始和6倍放大输出接口.配备5阶低通滤波器.噪 ...

  6. vue-element-admin安装趟坑

    1.下载源码 2.执行 npm install --registry=https://registry.npm.taobao.org 如果遇到"git ls-remote -h -t&quo ...

  7. php获取详细访客信息,获取访客IP,IP归属地,访问时间,操作系统,浏览器,移动端/PC端,环境语言,访问URL等信息

    问题描述:需要获取访客访问网站信息 1.代码示例与说明: <?php header("Content-Type: text/html; charset=utf-8");    ...

  8. [tldr]github仓库添加release

    作为一个开源项目开发者,并且把自己的代码仓库托管到了github上面,所以,可以在github上提供自己的程序的release 这通常是通过二进制可执行文件的方式提供 新建草稿 点击create a ...

  9. manim边学边做--移动相机的场景类

    Manim作为强大的数学动画引擎,其核心功能之一是实现复杂的镜头运动控制. MovingCameraScene类正是为满足这种需求而设计的专业场景类. 与基础Scene类相比,它通过以下特性拓展了镜头 ...

  10. docker build 镜像时,无法访问网络

    前言 在使用 docker build 命令构建 Docker 镜像时遇到无法联网的情况,可能会有多种情况的发生. 检查主机网络设置 检查你的主机是否配置了代理服务器或防火墙,这可能会阻止 Docke ...