操作系统死锁问题之单行道问题

操作系统死锁问题之单行道问题

ID:12775835

大小:71.00 KB

页数:31页

时间:2018-07-19

操作系统死锁问题之单行道问题_第1页
操作系统死锁问题之单行道问题_第2页
操作系统死锁问题之单行道问题_第3页
操作系统死锁问题之单行道问题_第4页
操作系统死锁问题之单行道问题_第5页
资源描述:

《操作系统死锁问题之单行道问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件学院操作系统实验报告 实验题目:死锁问题之单行道问题学号:201200301043日期:班级:姓名:Email:实验目的:本实验观察死锁产生的现象,考虑解决死锁问题的方法。从而进一步加深对于死锁问题的理解。掌握解决死锁问题的几种算法的编程和调试技术。练习怎样构造管程和条件变量,利用管程机制来避免死锁和饥俄问题的发生。硬件环境:Ubuntu11.10软件环境:bash终端vi编辑器实验步骤:1.掌握终端的基本命令;2.掌握vi编辑器的接本使用方法;3.掌握C语言基本语法;4.掌握示例程序;5.编写题目要求的代码;代码分析:为了解决本实验的死锁问题,使用c++中的管程。通过控

2、制管程的信号来确定当前单行道上的车辆情况。(1)每一辆车请求单行道,如果,单行道上没有车,那么就进入单行道,并且将单行道的方向改为当目前该辆车的方向;(2)如果单行道上有车并且这辆车的方向与单行道的方向相同那么判断单行道上车辆的数目,如果carNum=maxNum那么此时单行道已经满了,这两策划就会阻塞在目前的信号量上,并且设置一个标志位表示有一辆同向的车等待进入单行道;如果carNum

3、4)每一辆车离开单行道时必须唤醒等待的车辆。(5)定义Arrive(),Cross(),Leave()三个函数(6)通过mutex->down();Count=buff_ptr[*put_ptr+1];mutex->up();判断是否为第一辆车,然后如果是第一辆车要说要设定单行道的方向currentDirec=direc;mutex->down();buff_ptr[*put_ptr+4]=direc设置单行道的方向,buff_ptr[*put_ptr+1]=++count修改目前单行道上的车辆数;(7)在每一个相应的函数里,实现相应的功能,Arrive()函数中判断车辆数,

4、方向,修改单行道方向;在cross()函数中判断几辆车通过单行道,方向如何,从哪个方向进入单行道从哪个方向通过单行道;Leave()函数,判断车辆从哪个方向离开,并且唤醒等待的进程。运行结果:在第一行参数设定一共有几辆车,单行道的maxNum,通过的速度online@online-Lenovo:~/dxb/test6$./Transport7315216号车从西方向等待单行道online@online-Lenovo:~/dxb/test6$5217号车从东方向等待单行道downerror:Invalidargument5218号车从西方向等待单行道5222号车从东方向等待单行

5、道downerror:Invalidargument5221号车从西方向等待单行道5220号车从西方向等待单行道5219号车从东方向等待单行道5216号车从西方向进入单行道downerror:Invalidargument5216号车从西方向通过单行道,道上车数:15218号车从西方向进入单行道5218号车从西方向通过单行道,道上车数:25221号车从西方向进入单行道5221号车从西方向通过单行道,道上车数:35216号车从西方向离开单行道5218号车从西方向离开单行道5221号车从西方向离开单行道结论分析与体会:通过这次试验,我了解到了如何利用管程变量来反映进程间的死锁,饥

6、饿。通过设置信号量来保证每一个进程都有机会来执行,并且运用最基本的goto语句来不断的创建车辆进程,达到要求。代码:Transport.h:#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd

7、;typedefunionsemuns{intval;}Sem_uns;enumState{waiting,running};//哲学家管程中使用的信号量classSema{public:Sema(intid);~Sema();intdown();//信号量加1intup();//信号量减1private:intsem_id;//信号量标识符};//哲学家管程中使用的锁classLock{public:Lock(Sema*lock);~Lock();voidclose_lock();voidopen_l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。