1、目前使用的计算机基本上是冯·诺依曼(Von Neumann)式的结构,其基本特点是处理器按指令地址的指示顺序执行指令,这样的处理器称为顺序处理器。

2、进程的顺序性是指进程在顺序处理器上的执行是严格按序的,即按照程序规定的操作顺序,只有在前一个操作结束后才能开始后继操作。

3、当一个进程独占处理器顺序执行时,它具有两个特性:(1)封闭性;(2)可再现性。

4、进程的并发性:在一个进程的工作没有全部完成之前,另一个进程就可以开始工作,我们说这些进程是可同时执行的,或称它们具有并发性,并且把可同时执行的进程称为并发进程。进程的并发执行会破坏“封闭性”和“可再现性”。

5、并发进程的执行速度受自身原因以及进程调度策略的影响。

6、并发进程交替使用共享资源会出现与时间有关的错误。

7、我们把并发进程中与共享变量有关的程序段称为临界区。

8、相关临界区是指并发进程中涉及到相同变量的那些临界区。

9、对若干个并发进程共享某一变量的相关临界区的管理有三个要求:

(1)一次最多一个进程能够进入临界区。当有进程在临界区执行时,其他想进入临界区执行的进程必须等待;

(2)不能让一个进程无限制地在临界区执行,即任何一个进入临界区的进程必须在有限的时间内退出临界区;

(3)不能强迫一个进程无限制地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。

10、PV操作由P操作和V操作组成。它们是两个不可中断的过程,这种不可中断的过程称为原语。因此,P操作和V操作也可称为P操作原语和V操作原语,简称PV操作。

11、PV操作是对信号量进行操作,它们的定义如下:

(1)P操作PS):将信号量S减去1,若结果小于0,则把调用PS)的进程置成等待信号量S的状态。

(2)V操作VS):将信号量S1,若结果不大于0,则释放一个等待信号量S的进程。

12、进程的互斥是指当有若干个进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用该资源,其他要使用它的进程必须等待,直到该资源的占用者释放了该资源。

13、PV操作是一种可实现进程互斥地进入相关临界区的工具,但只有合理地使用该工具,才能既保持进程的并发性,又避免交叉使用共享资源造成的错误。在解决具体问题时,应验证是否符合对相关临界区的管理要求。粗心的使用PV操作可能会违反对临界区的管理要求。

14、进程的同步是指在并发进程之间存在的一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。

15、进程的互斥实际上是进程同步的一种特殊情况。实现进程互斥时用P操作测试是否可以使用共享资源,这相当于测试“资源已可使用”的消息是否到达;用V操作归还共享资源,这相当于发送了“共享资源已空闲”的消息。所以,经常把进程的互斥与进程的同步统称为进程的同步,把用来解决进程互斥与进程同步的机制(如PV操作)统称为同步机制。

16、进程的互斥与进程的同步是有差别的,进程的互斥是进程之间竞争共享资源使用权;而进程同步的情况就不同了,涉及共享资源的并发进程之间有一种必然的依赖关系。所以,用PV操作管理共同资源时,一定要正确区分互斥与同步。最关键的是确切地定义信号量,以及合理的调用各信号量上的P操作和V操作。

17、我们把通过专门的通信机制实现进程间交换大量信息的通信方式称为进程通信。目前常用的高级通信方式有信箱通信、消息缓冲通信、管道通信等。

18、一个进程采用信箱方式进行通信时,应先组织好一封信,信件的内容应包括:发送者名(进程名),信息(或信息存放的地址和长度),等/不等回信,回信存放地址。

19、若干个进程都可向同一进程发送信件。接收信件的进程可以设立一个信箱。信箱的大小决定了信箱中可以容纳的信件数,每个信箱由“信箱说明”和“信箱体”两部分组成。

20、信箱通信需要用到两个通信原语:发送原语(send)和接收原语(receive)。

21、使用信箱通信时,为避免信件的丢失和错误地索取信件,通信时应遵循如下规则:

(1)若发送信件时信箱已满,则应把发送信件的进程置成“等信箱”状态,直到信箱有空时才被释放;

(2)若取信件时信箱中无信,则应把接收信件的进程置成“等信件”状态,直到信箱中有信件时才被释放。

22、若系统中存在一组进程(两个或多个进程),它们中的每一个进程都占用了某种资源而又都在等待该组进程中另一个进程所占用的资源,这种等待永远不能结束,则说系统出现了死锁,或说这组进程进入了死锁状态。

23、形成死锁的起因是系统提供的资源数比进程要求的资源数少,或者是若干个进程要求的资源总数大于系统能提供的资源数。这时,进程间就会出现竞争资源的现象,对进程竞争的资源如果管理或分配不当,就会引起死锁。死锁的出现与资源分配策略和并发执行的速度有关。PV操作可实现进程的同步和共享资源的互斥使用,但不能排除死锁。

24、系统产生死锁的四个必要条件:(1)互斥地使用资源;(2)占有且等待资源;(3)非抢夺式分配;(4)循环等待资源。

25、防止死锁的资源分配策略有:

(1)静态分配资源:是指进程必须在开始执行前就申请自己所要的全部资源,仅当系统能满足进程的全部资源申请要求且把资源分配给进程后,该进程才开始执行;

(2)按序分配资源:是指对系统中每一个资源给一个编号。规定任何一个进程申请两个以上资源时,总是先申请编号小的资源,再申请编号大的资源。

(3)剥夺式分配资源:是指当一个进程申请资源得不到满足时,可从另一个进程那里去剥夺。

26、如果操作系统能保证所有的进程在有限时间内得到需要的全部资源,则称系统处于安全状态,否则就说系统是不安全的。

27、死锁的避免:古典的测试方法:银行家算法:该算法规定,只有当系统现存的资源能够满足进程的最大需求量时,才把资源分配给该进程。

28、银行家算法是在保证至少有一个进程能得到所需的全部资源的前提下进行资源分配的,避免了进程共享资源时可能发生的死锁,但这种算法必须不断测试各个进程占用和申请资源的情况,需花费较多的时间。

29、死锁的检测:设置两张表格来记录进程使用和等待资源的情况。“死锁检测”程序定时地检测这两张表。如果发现有循环等待资源的进程,则就有死锁出现了。检测到死锁后,可采用抢夺某些进程占用的资源,或强迫进程结束,重新启动操作系统等办法来解除死锁。