实验2进程同步与死锁

实验2进程同步与死锁

ID:46324388

大小:306.00 KB

页数:16页

时间:2019-11-22

实验2进程同步与死锁_第1页
实验2进程同步与死锁_第2页
实验2进程同步与死锁_第3页
实验2进程同步与死锁_第4页
实验2进程同步与死锁_第5页
资源描述:

《实验2进程同步与死锁》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验2进程同步与死锁实验内容1读者—写者问题实验内容2车辆行驶死锁问题读者—写者问题实验目的实验内容准备知识实验原理实验指导实验目的理解进程同步的原理和机制;通过读者—写者问题的设计与实现进一步掌握进程同步在实际中的应用。实验内容编写读者—写者问题的程序,要求如下:(1)在Linux下用C编程,利用信号量操作实现进程同步;(2)读写请求随机产生(比如敲击键盘上的r和w),并动态显示当前的状态(读的时候有多少读者,有多少个写者在等待;写的时候是谁在写,还有多少写者和读者在等待),每个读者和写者用的时间可以预先设定。本

2、例中,有一个初始化的数组,读者和写者均是对此数组进行操作。写者是随机对数组中的数字进行修改,修改的值也是随机的,这样更直观、更有助于理解。准备知识了解如何创建线程及如何销毁线程;分析线程的创建过程,理解同步信号量与互斥信号量的作用实验原理同步同步是指进程间共同完成一项任务时直接发生相互作用的关系,即进程在执行的时间顺序上必须遵循特定的次序,这种时序关系称为同步关系。例如:B进程在运行时需要A进程的输出结果作为资源,那么A进程必须在B进程执行之前完成,这就确定了A、B两进程间的同步关系。互斥这是一种更常见的进程之间的

3、相互关系,通常是由于多个进程共享某些资源而引起的,而这些进程往往彼此独立。例:系统只有一台打印机,有两个进程同时使用它输出数据的话,打印结果将使这两个进程的输出内容混杂在一起。为了保证共享临界资源的各个进程都能正确运行,当临界资源被一个进程访问时,其他访问进程必须等待。多个进程在共享临界资源时的这种制约关系称为进程互斥。实验指导设有一组共享数据DB和两组并发进程,一组进程只对此组数据执行读操作,另一组进程可对此组数据执行写操作(同时也可以执行读操作),将前一组进程称作读者,后一组进程称作写者。为了保证共享数据的完整

4、性,要求:(1)多个读者的操作可以同时进行;(2)多个写者的操作不可同时进行;(3)任何读者与写者的操作不可同时进行。实验指导实验的流程图如图所示车辆行驶死锁问题实验目的实验内容准备知识实验原理实验指导实验目的理解死锁的产生原因,掌握预防和避免死锁的方法,以及死锁的检测方法;通过车辆行驶死锁问题的设计与实现掌握解决死锁的方法。实验内容车辆行驶死锁问题,在Linux下用C语言完成下面模型:设有一个T型路口,其中A、B、C、D处各可容纳一辆车,车行方向如图所示,试找出死锁并用有序分配法消除之。要求资源编号合理。请根据上

5、述介绍,编写车辆行驶死锁问题的程序,要求:(1)在Linux系统下用C编程,利用信号量操作实现进程同步;(2)假设三个方向的车辆数目相等,数值由用户输入,并动态显示车辆的行驶状态,每个车辆行驶所用的时间可以预先设定。准备知识了解进程死锁的原理;掌握自然有序分配法。实验原理死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所占用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:(1)互斥条件(Mutualexclusion):资源不能被共享,只能由一个进程使用。(2)请求与保持条件(

6、Holdandwait):已经得到资源的进程可以再次申请新的资源。(3)非剥夺条件(Nopre-emption):已分配的资源不能从相应的进程中被强制地剥夺。(4)循环等待条件(Circularwait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程已占用的资源。实验指导死锁的可能性有两种:(1)E方向两台车分别位于A和B、S方向一台车位于C、W方向一台车位于D。(2)S方向两台车分别位于B和C、E方向一台车位于A、W方向一台车位于D。实验指导实验的程序流程图如图所示

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

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

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