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