文档介绍:第三章进程、作业、线程管理(2)
并发进程
现化操作系统的两个主要特征是多道程序设计和分布处理,而并发是这两个特征的基础,也是操作系统的设计基础
进程在执行过程中,不同运行阶段进程使用不同的系统资源,有着交替、重叠执行的可能性。正是因为多道程序系统中进程的相对执行速度不可预测,给系统也就带来了一些困难。
这里主要针对单处理器而言,而多处理的情况比复杂
1、并发的存在给系统带来的要求
1)操作系统必须记下诸进程
2)操作系统必须为每个进程分配和释放各类资源
3)操作系统必须保护每个进程的数据和物理资源,避免其他进程的无意干涉
4)操作系统的结果必须与执行速度无关,即不会出现与时间有关的错误
2、进程间的相互制约关系
基于进程间相互知道对方是否存在的程度分三种可能:
1)、进程之间不知道对方
2)、进程间接知道对方
3)、进程直接知道对方
3、进程中的资源竞争
当并发进程竞争使用同一个资源时,它们相互之间会发生冲突,而竞争进程间没有任何信息交换,却可能影响到竞争进程的一些行为。
饿死:因得不到运行所需的资源,而处于长期等待,
临界资源:对一个不可共享的资源;在执行过程中,每个需要使用此资源时都要给其发命令,接收状态信息,发送数据和接收数据的资源
临界区:使用临界资源的那段程序就称为程序的临界区。
注:对临界资源的访问必须满足互斥要求
4、进程间通过共享的合作
通过共享进行合作的进程间相互不确切知道对方的情况下进行交互。如诸进程可能访问同一个共享的变量、文件或数据库,进程在使用修改这些数据时,并不涉及到其他进程,但是它们知道其他进程也可能访问同一数据。
因此系统的控制机制必须要能确保共享数据的完整性。
5、进程间通过通信合作
当进程通过通信进行合作时,各个进程都参与其他进程的连接,而通信就是给其提供同步和协调各种活动的方法。
通常通信可以被描述成由各种类型的消息组成。
并发进程管理的主要任务是:使并发执行的诸进程之间能有效的共享资源和相互合作,从而使程序的执行具有可再现性。
1、进程互斥
当并发的进程要竞争使用某些临界资源时,为了提供互斥的支持,必须满足以下要求:
空闲让进:无进程处于临界区中
忙则等待:
有限等待:要避免出现“死等”即“饿死”
让权等待:要避免出现“忙等”
请大家注意区分死锁、活锁和饿死等概念