欢迎来到天天文库
浏览记录
ID:40839777
大小:430.10 KB
页数:49页
时间:2019-08-08
《进程间互斥、同步与通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章进程间互斥、同步与通信授课教师:付勇智fuyongzhi@swfc.edu.cn西南林学院基础部数理教研室问题纲要间接制约和直接制约是什么?什么是临界区?什么是信号量?什么是同步、互斥?如何应用信号量实现同步和互斥?信号量在Windows编程中是如何实现的?进程并发运行所带来的问题由于系统资源的共享性,并发进程的执行结果失去了封闭性和可再现性。满足Bernstein条件的并发进程能够保持封闭性,但是Bernstein条件限制太过严格,不符合大多数实际环境的需要。因而,OS需要寻求一种机制,满足进程间共享资源的需要。进程间通信IPC在两个或多个进程间
2、传递信息或共享数据的机制,称之为进程间通信(Inter-ProcessCommunication)UNIX操作系统中的管道技术(Pipe)就是一种IPC在IPC的过程中,主要要解决两类问题:互斥和同步互斥的需要voidSendPrint(){1if((in+1)%N==out)2exit(0);3else4in=(in+1)%N;5file[in]=printfile;6return;}ProcessA(){……SendPrint()}ProcessB(){……SendPrint()}临界区(CriticalSection)临界资源:一次仅允许一个进程使
3、用的资源称为临界资源。临界区:进程中对于临界资源访问的程序段称为临界区。间接制约:由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源造成的并发进程执行速度的间接制约,简称间接制约。互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致他们不能同时进入临界区称为互斥。互斥(MutualExclusion)互斥方案应满足的4个条件任何两个进程不能同时处于临界区不应对CPU的数目和速度做任何假设临界区外的进程不得阻塞其他进程不得使进程在临界区外无休止地等待互斥的实现方案关中断锁变量严格轮换法Peterson方案TS
4、L硬件指令(Intel平台为BTS指令)信号量管程消息传递关中断处理机的调度都是由中断所引起的(主要是定时器中断)如果进入临界区前将所有外部中断屏蔽,则在运行临界区时将不会响应所有外部中断事件,也就不可能发生进程切换,待进程执行完临界区后再开中断。缺点:交由用户进程管理中断的开关是非常不安全的,一旦用户程序关中断后忘记打开,则整个系统将无法响应外部事件而崩溃;另外,在多处理器系统中,关中断也仅屏蔽本处理器的中断响应,对其他处理器中运行的进程无法屏蔽。因而通常中断屏蔽都由OS进行管理,由OS使用它来保证一些核心操作的不可中断性。锁变量intlock=0;/
5、/初始情况下没有进程进入临界区Processi(){while(lock==1);//当其他进程在临界区工作时,忙等待lock=1;//设置锁变量,防止其他进程进入critical_section();//进行临界区相关操作lock=0;//退出临界区后解锁,使其他进程可以进入non_critical_section();}严格轮转法Peterson方案TSL指令(测试与设置指令)IntelCPU中对应的TSL指令汇编指令码为BTS信号量(semaphore)信号量使E.W.Dijkstra在1965年提出的一种方法,他建议引入一个新的变量类型,称作信号
6、量。信号量是一个整数,其值可以为0或某个正整数,分别表示不可进入临界区以及能够进入的进程数目。信号量:是一个仅能由同步原语对其进行操作的整型变量。原语(原子操作):操作过程不可中断,必须以一个整体进行执行地系统基本操作对于信号量操作的原语只有两个:UP和DOWNDOWN原语(P操作)(1)若信号量S大于0,则将S减1,P操作返回,该进程继续执行(2)若信号量S等于0,则将进程挂入S的等待队列,将进程设置为阻塞状态,并转调度程序P原语S>0S=S-1返回调用进程进入等待队列转进程调度是否UP原语(V操作)(1)若信号量S的等待队列中有等待进程,则取队首进程
7、,将其置为就绪状态并返回。(2)否则信号量S加1,并放回V原语是否有等待进程S=S+1返回取队首进程置为就绪态否是生产者-消费者问题问题描述:两个进程共享一个公共的固定大小的缓冲区。其中的一个,生产者,将信息放入缓冲区;另一个,消费者,从缓冲区中取出信息。当缓冲区已满,而此时生产者还想向其中放入一个新的信息则让生产者睡眠,待消费者从缓冲区取走一个或多个信息时再唤醒它。当消费者试图从缓冲区中取信息而发现缓冲区为空时,它就睡眠,直到生产者向其中放入一些消息再将其唤醒。生产者过程消费者过程直接制约与同步一组在异步环境下的并发进程,各自的执行结果互为对方的执行条
8、件,从而限制各进程的执行速度的过程称为并发进程间的直接制约。异步环境下的一组并发
此文档下载收益归作者所有