第四章进程管理 为了描述程序在并发执行时对系统资源的共享,我们需要一个 描述程序执行时动态特征的概念,这就是进程。在本章中,我 们将讨论进程概念、进程控制和进程间关系。 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给出并发执行的条件。(这里没 有考虑执行速度的影响。) 前两条保证一个程序的两次读之间数据不变化;最后一条 保证写的结果不丢掉。 现在的问题是这个条件不好检查
4.1.2进程的定义和描述 1.进程的定义 个具有一定独立功能的程序在一个数据集合 上的一次动态执行过程 它对应虚拟处理机、虚拟存储器和虚拟外设等 资源的分配和回收; 引入多进程,提高了对硬件资源的利用率,但 又带来额外的空间和时间开销,增加了OS的 复杂性;
4.1.2 进程的定义和描述 • 它对应虚拟处理机、虚拟存储器和虚拟外设等 资源的分配和回收; • 引入多进程,提高了对硬件资源的利用率,但 又带来额外的空间和时间开销,增加了OS 的 复杂性; 1. 进程的定义 一个具有一定独立功能的程序在一个数据集合 上的一次动态执行过程
2.进程的特征 动态性:进程具有动态的地址空间(数量和内容) 地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的生成和删除) 独立性:各进程的地址空间相互独立,除非采用进 程间通信手段 并发性、异步性:"虚拟 结构化:代码段、数据段和核心段(在地址空间 中);程序文件中通常也划分了代码段和数据段 而核心段通常就是OS核心(由各个进程共享,包括 各进程的PCB)
2. 进程的特征 • 动态性:进程具有动态的地址空间(数量和内容), 地址空间上包括: – 代码(指令执行和CPU状态的改变) – 数据(变量的生成和赋值) – 系统控制信息(进程控制块的生成和删除) • 独立性:各进程的地址空间相互独立,除非采用进 程间通信手段; • 并发性、异步性: "虚拟" • 结构化:代码段、数据段和核心段(在地址空间 中);程序文件中通常也划分了代码段和数据段, 而核心段通常就是OS核心(由各个进程共享,包括 各进程的PCB)
3.进程与程序的区别 进程是动态的,程序是静态的:程序是有序代码 的集合;进程是程序的执行。通常进程不可在计 算机之间迁移;而程序通常对应着文件、静态和 可以复制 进程是暂时的,程序的永久的:进程是一个状态 变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序 数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程 序可对应多个进程;通过调用关系,一个进程可 包括多个程序
3. 进程与程序的区别 • 进程是动态的,程序是静态的:程序是有序代码 的集合;进程是程序的执行。通常进程不可在计 算机之间迁移;而程序通常对应着文件、静态和 可以复制。 • 进程是暂时的,程序的永久的:进程是一个状态 变化的过程,程序可长久保存。 • 进程与程序的组成不同:进程的组成包括程序、 数据和进程控制块(即进程状态信息)。 • 进程与程序的对应关系:通过多次执行,一个程 序可对应多个进程;通过调用关系,一个进程可 包括多个程序
4.处理机调度器( dispatcher) 处理机调度器是操作系统中的一段代码, 它完成如下功能: 把处理机从一个进程切换到另 进程 防止某进程独占处理机;
4. 处理机调度器(dispatcher) • 把处理机从一个进程切换到另 一个进程; • 防止某进程独占处理机; 处理机调度器是操作系统中的一段代码, 它完成如下功能:
5.进程控制块 (PCB, process control block) 进程控制块是由OS维护的用来记录进程相关 信息的一块内存。 每个进程在OS中的登记表项(可能有总数目限制), OS据此对进程进行控制和管理(PCB中的内容会动 态改变),不同OS则不同 处于核心段,通常不能由应用程序自身的代码来直 接访问,而要通过系统调用,或通过UNIX中的进程 文件系统(proc)直接访问进程映象( image)。文件名 为进程标识(如:00316),权限为创建者可读写
5. 进程控制块 (PCB, process control block) • 每个进程在OS中的登记表项(可能有总数目限制), OS据此对进程进行控制和管理(PCB中的内容会动 态改变),不同OS则不同 • 处于核心段,通常不能由应用程序自身的代码来直 接访问,而要通过系统调用,或通过UNIX中的进程 文件系统(/proc)直接访问进程映象(image)。文件名 为进程标识(如:00316),权限为创建者可读写。 进程控制块是由OS维护的用来记录进程相关 信息的一块内存