重点是:分析与时间有关的错误;用PV操作实现进程的同步与互斥;用信箱实现进程通信。
一、进程的顺序性与并发性(领会)
1 进程的顺序性:任何进程在顺序的处理器上的执行是严格按照顺序进行的,每次只能执行一个操作。这就是进程的顺序性。
当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性 二、可再现性。封闭性是说进程的执行结果只取决于进程本身,不受外界影响。可再现性是说当进程重复执行时,必定获得相同的结果。
2、进程的可同时执行:指一个进程没有完,另一个就可以开始。在时间上是可重叠的,我们把这个叫做进程的可同时执行。
3、进程的并发性:系统中存在一组可同时执行的进程。并发进程相互之间可能是无关的,也可能是交往的。
并发进程的执行速度取决于自身和进程调度策略。二者缺一不可,执行速度不能由自己决定。
4与时间有关的错误 :有交往的并发进程交替使用共享资源时会出现错误,错误与时间有关,称为与时间有关的错误。其错误的根本原因是这些进程交*使用了共享变量。
二、相关临界区
1、并发进程中与共享变量有关的程序段称为“临界区” 。并发进程中涉及到相同变量的那些程序段是相关临界区
2、对相关临界区的管理的基本要求。
对相关临界区管理的基本原则是:如果有进程在相关临界区执行,则不让另一个进程进入相关的临界区执行。
五、进程的同步(综合应用)
1、进程同步的含义:进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。
“生产者”与“消费者”是同步问题的典型例子。
这里有两个消息量:一是“缓冲器里有物品”,二是“可把物品存入缓冲器”,这两个消息量对应需要两个信号量SPut和SGet。SP的初始值为1,如果初始时可用的缓冲器为n个,则SP=n;SG的初始值为0。
生产者进程调用P(SP)和V(SG),
消费者进程调用P(SG)和V(SP),根据SG和SP的值来决定是否可以存或取物。
2、正确使用PV操作实现进程同步。
(1)用一个信号量与一个消息联系起来,当信号量的值为0时表示期望的消息尚未产生,当信号量值为非0时表示期望的消息已经存在。
(2)在用PV操作实现同步时,一个信号量与一个消息量联系在一起,当有多个消息时必须定义多个信号量;测试不同的消息是否到达或发送不同消息时,应对不同的信号调用P操作或V操作。
(3)仔细领会教材中的例子,关于PV操作,在考试中出现的可能性极大,但是难度基本不超过教材上例题.见本栏的高手切磋。
3、使用PV操作实现进程同步与互斥的混合问题。
进程的同步与进程的互斥都涉及到并发进程访问共享资源的问题。可以看到进程的互斥实际上是进程同步的一种特殊情况。若干进程互斥使用资源时,一个等待使用资源的的进程在得到占用资源的进程发出“归还资源”的消息(调用了V操作)后,它就可去使用资源。因此,互斥使用资源的进程之间实际上也存在一个进程依赖另一个进程发出信息的制约关系。所以,也把进程的互斥与进程的同步称为进程的同步。
六、进程通信(领会)
1、进程通信的含义:通过专门的通信机制实现进程间交换大量信息的通信方式称为“进程通信”
2、实现进程通信的基本原语:有两条:“send(发送)”和“receive(接收)”原语。
3、利用信箱通信时“发送”和“接收”原语的功能。
send(N,M) 功能:把信件M送到指定的信箱N中。
receive(N,X) 功能:从指定信箱N中取出一封信,存放到指定的地址X中。
4、信箱的基本结构:一个信箱由“信箱说明”和“信箱体”两部分组成。
七、线程的概念(识记)
线程是进程中可独立执行的子任务,一个进程中可以有一个或多个线程,每个线程都有一个唯一的标识符。
支持线程管理的操作系统有Mach,OS/2,WindowsNT,UNIX等