城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为
城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为
1)识别那些可以作为进程
信号灯,汽车
2)其次识临界资源,即进程共享的事务
信号灯,汽车
3)定义数据结构
定义共变和私有变量:
Int inter=10;//信号灯延长时间Int number=0;//等待车辆数目
4)定义进程操作
4.1交通信号灯控制进程操作:
交通信号灯延时10秒
交通灯颜色切换为绿色
唤醒所有等待红灯信号的车辆使其同行
重置延时时间为10秒
绿灯信号延时十秒
绿灯颜色切换为红色
重置延时时间为10秒
4.2汽车进程操作
绿灯则通行
否则就使等红灯的车辆数目加一
执行等待动作
红灯变为绿色,结束等待,行车
5)操作进程伪代码实现
交通和信号灯控制进程伪代码实现
int Red = 0;int Green = 1;semaphore mutex = 1, wait = 0;mutex,number//互斥访问信号量,车辆等待信号量inter=10,number=0,Light=Red;//信号灯延长时间、车辆等待数目、信号灯颜色begin/*信号灯进程操作实现*/Process lightControl(){While(inter)//使信号灯延时10秒{Inter--;}Light=Green;//信号灯切换为绿色P(mutex);While(number--)V(wait);//唤醒所有等待红灯信号的车辆使其同行V(mutex);Inter=10;//重新设置延时时间While(inter)//使绿灯延时10秒{Inter--;}Light=Red;//信号灯切换为红色Inter=10;//重置延时时间}/*汽车进程操作实现1*/Process Car-i()//i=1,2,3…….{P(mutex);If(Light==Green){通行;V(mutex);}else{number++;//使等待红灯的车辆数目增加1V(mutex);P(wait);//执行等待动作通行;//信号灯变为绿色,等待结束,行车}}Coend/*汽车进程操作实现2完善版*/Process Car-i()//i=1,2,3…….{While(1){P(mutex);If(Light==Green){通行;V(mutex);break;}else{number++;//使等待红灯的车辆数目加1V(mutex);P(wait);//执行等待动作}}}
城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为相关推荐
- 红灯停绿灯行c语言编程,基于物联网应用的《C语言程序设计》教学模式研究
[摘要] 物联网是信息技术的最新发展发向,C语言程序设计又是物联网相关专业中的基础课,在物联网中的应用广泛,本文结合所任教的技工院校学生特点,在分析了C语言教学中存在的问题后,对C语言的教学模式进行了 ...
- 红灯停绿灯行c语言编程,C语言 实验三C语 实验三.doc
C语言 实验三C语 实验三 1221410042 张锦华 18.3 最简单的C程序设计 -----实验报告 (1)①源程序 #include void main() {int a,b; float d ...
- 李克平教授讲座——《城市道路交叉口规划规范》解读与绿灯间隔问题分析
来源:守护交安天长地久 导读 此讲座内容主要涉及两个方面,一是城市道路交叉口规划规范中重要内容的解读:二是绿灯间隔时间问题的分析.交通安全是一个非常综合的一个课题,是融会贯通于城市或者是交通规划.设计 ...
- ado filter 多条记录_注意!武汉江南中心绿道武九线综合管廊工程开工,青山区多条道路通行规则有变...
楚天都市报10月29日(记者吴昌华 通讯员 李佳 陈菲)今日记者从武汉交管部门获悉,本周六,10月31日,武汉市江南中心绿道武九线综合管廊工程开始施工,青山区多条道路通行规则有变,部分道路禁止通行.交 ...
- 十字路口通行优先权,十字路口通行规则图解
十字路口发生交通事故的概率是比较高的,尤其是没有信号灯的路口,往往需要交警来现场指挥.十字路口通行是有规定优先权的,以下为各种情况时,车辆的通行优先权图解. 1.右转让直行.在绿灯亮起的时候,相对方向 ...
- 公安部交管局:推进城市道路交通信号灯配时智能化工作方案
根据<道路交通安全法>及其实施条例等相关法律规范标准,以排查整改城市道路的设置和使用问题为推进城市道路交通信号灯配时智能化的着力点和着手点,重点解决城市主.次干路上信号灯不符合标准.设置不 ...
- 基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)
基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J013 目录标题 基于51单片机十字路口 ...
- 基于Arduino的多功能智能交通信号灯的设计与实现 ---------对盲人语音播报,红灯结束时铃声提醒,信号灯倒计时和闯红灯语音劝阻
** 基于Arduino的多功能智能交通信号灯的设计与实现 ---------对盲人语音播报,红灯结束时铃声提醒,信号灯倒计时和闯红灯语音劝阻 ** 魏树鸿, 1.系统设计思路 a.: 满足基本信号灯 ...
- 交通灯linux程序,PLC十字路口的交通灯控制编程实例
1. 控制要求 十字路口交通灯的运行如下图所示.当起动开关接通时,信号灯系统开始工作,且先南北红灯亮,东西绿灯亮.当起动开关断开时,所有的信号灯全部熄灭.工作时绿灯亮 25s ,并闪烁 3 次 ...
最新文章
- 陈松松:视频营销成交率低,这三个因素没到位
- 网络性能测试工具iperf的使用与参数解析
- php 网页内容下载,php实现当前页面点击下载文件的简单方法
- 漫游Kafka之过期数据清理
- 2.3.5 操作系统之信号量机制实现进程的互斥、同步与前驱关系
- python输入hello*3_python入门到实践-Hello Python3
- KVM安装、镜像创建(一)
- OpenSceneGraph 笔记–如何导出三角形数据
- C语言 通用工具库 stdlib.h
- Spring使用@PropertySource加载Properties配置文件
- postman电脑版无法安装_Postman 安装及使用入门教程
- 一维二维_Excel教程:二维转一维,方法你绝对没用过
- PHP问题 —— failed to open stream: HTTP request faile
- 批量修改字幕文件中的时间,c语言实现
- tomcat 热部署 生产环境_详解tomcat热部署和热加载的方法
- cesium 页面多 viewer 地图加载过缓解决方案
- 为软件简单加密的小程序,附源码
- wordpress添加Auto Highslide图片灯箱效果
- CMM 关键过程域
- OpenCV4学习笔记(31)——视频背景、前景提取分离及运动检测