第四章进程管理 为了描述程序在并发执行时对系统资源的共享,我们需要一个 描述程序执行时动态特征的概念,这就是进程。在本章中,我 们将讨论进程概念、进程控制和进程间关系。 41进程( PROCESS 42进程控制 43线程( THREAD 44进程互斥和同步 45进程间通信( PC. INTER-PROCESS COMMUNICATION 46死锁问题 DEADLOCK 47进程其他方面的举例
第四章 进程管理 4.1 进程(PROCESS) 4.2 进程控制 4.3 线程(THREAD) 4.4 进程互斥和同步 4.5 进程间通信(IPC, INTER-PROCESS COMMUNICATION) 4.6 死锁问题(DEADLOCK) 4.7 进程其他方面的举例 为了描述程序在并发执行时对系统资源的共享,我们需要一个 描述程序执行时动态特征的概念,这就是进程。在本章中,我 们将讨论进程概念、进程控制和进程间关系
41进程( PROCESS) 4.1.1程序的顺序执行和并发执行 4.1.2进程的定义和描述 4.1.3进程的状态转换 4.1.4操作系统代码的执行 返回
4.1 进程(PROCESS) 4.1.1 程序的顺序执行和并发执行 4.1.2 进程的定义和描述 4.1.3 进程的状态转换 4.1.4 操作系统代码的执行 返回
4.1.1程序的顺序执行和并发执行 程序的执行有两种方式:顺序执行和并发执 顺序执行是单道批处理系统的执行方式,也用于 简单的单片机系统; 现在的操作系统多为并发执行,具有许多新的特 征。引入并发执行的目的是为了提高资源利用率
4.1.1 程序的顺序执行和并发执行 • 程序的执行有两种方式:顺序执行和并发执 行。 – 顺序执行是单道批处理系统的执行方式,也用于 简单的单片机系统; – 现在的操作系统多为并发执行,具有许多新的特 征。引入并发执行的目的是为了提高资源利用率
顺序执行的特征 顺序性:按照程序结构所指定的次序(可能有分支或循环) 封闭性:独占全部资源,计算机的状态只由于该程序的控 制逻辑所决定 可再现性:初始条件相同则结果相同。如:可通过空指令 控制时间关系。 并发执行的特征 间断(异步)性:"走走停停",一个程序可能走到中途停下 来,失去原有的时序关系; 失去封闭性:共享资源,受其他程序的控制逻辑的影响。 如:一个程序写到存储器中的数据可能被另一个程序修改, 失去原有的不变特征。 失去可再现性:失去封闭性一>失去可再现性;外界环境 在程序的两次执行期间发生变化,失去原有的可重复特征
• 顺序执行的特征 – 顺序性:按照程序结构所指定的次序(可能有分支或循环) – 封闭性:独占全部资源,计算机的状态只由于该程序的控 制逻辑所决定 – 可再现性:初始条件相同则结果相同。如:可通过空指令 控制时间关系。 • 并发执行的特征 – 间断(异步)性: "走走停停",一个程序可能走到中途停下 来,失去原有的时序关系; – 失去封闭性:共享资源,受其他程序的控制逻辑的影响。 如:一个程序写到存储器中的数据可能被另一个程序修改, 失去原有的不变特征。 – 失去可再现性:失去封闭性 ->失去可再现性;外界环境 在程序的两次执行期间发生变化,失去原有的可重复特征
并发执行的条件:达到封闭性和可再现性 并发执行失去封闭性的原因是共享资源的影响,去掉这种影响 就行了。1966年,由 Bernstein给出并发执行的条件。(这里没 有考虑执行速度的影响。) 程序P(i)针对共享变量的读集和写集 R(i)和W(i 条件:任意两个程序P(i)和P(j),有: R(1)W(=① WOnRO=o W(W=① 前两条保证一个程序的两次读之间数据不变化;最后一条 保证写的结果不丢掉 现在的问题是这个条件不好检查
并发执行的条件:达到封闭性和可再现性 • 程序 P(i) 针对共享变量的读集和写集 R(i)和W(i) • 条件:任意两个程序P(i)和P(j),有: – R(i)W(j)=; – W(i)R(j)=; – W(i)W(j)=; 并发执行失去封闭性的原因是共享资源的影响,去掉这种影响 就行了。1966年,由Bernstein给出并发执行的条件。(这里没 有考虑执行速度的影响。) 前两条保证一个程序的两次读之间数据不变化;最后一条 保证写的结果不丢掉。 现在的问题是这个条件不好检查