操作系统(进程管理).ppt
文本预览下载声明
第四章 进程管理 4.1 进程(PROCESS) 4.2 进程控制 4.3 线程(THREAD) 4.4 进程互斥和同步 4.5 进程间通信(IPC, INTER-PROCESS COMMUNICATION) 4.6 死锁问题(DEADLOCK) 4.7 进程其他方面的举例 4.1 进程(PROCESS) 4.1.1 程序的顺序执行和并发执行 4.1.2 进程的定义和描述 4.1.3 进程的状态转换 4.1.4 操作系统代码的执行 4.1.1 程序的顺序执行和并发执行 程序的执行有两种方式:顺序执行和并发执行。 顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统; 现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。 顺序执行的特征 顺序性:按照程序结构所指定的次序(可能有分支或循环) 封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定 可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系。 并发执行的特征 间断(异步)性:走走停停,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。 失去可再现性:失去封闭性 -失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 并发执行的条件:达到封闭性和可再现性 程序 P(i) 针对共享变量的读集和写集 R(i)和W(i) 条件:任意两个程序P(i)和P(j),有: R(i)?W(j)=?; W(i)?R(j)=?; W(i)?W(j)=?; 4.1.2 进程的定义和描述 它对应虚拟处理机、虚拟存储器和虚拟外设等资源的分配和回收; 引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了OS 的复杂性; 2. 进程的特征 动态性:进程具有动态的地址空间(数量和内容),地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的生成和删除) 独立性:各进程的地址空间相互独立,除非采用进程间通信手段; 并发性、异步性:虚拟 结构化:代码段、数据段和核心段(在地址空间中);程序文件中通常也划分了代码段和数据段,而核心段通常就是OS核心(由各个进程共享,包括各进程的PCB) 3. 进程与程序的区别 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。 4. 处理机调度器(dispatcher) 把处理机从一个进程切换到另一个进程; 防止某进程独占处理机; 5. 进程控制块(PCB, process control block) 每个进程在OS中的登记表项(可能有总数目限制),OS据此对进程进行控制和管理(PCB中的内容会动态改变),不同OS则不同 处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统调用,或通过UNIX中的进程文件系统(/proc)直接访问进程映象(image)。文件名为进程标识(如:00316),权限为创建者可读写。 进程控制块的内容 进程描述信息: 进程标识符(process ID),唯一,通常是一个整数; 进程名,通常基于可执行文件名(不唯一); 用户标识符(user ID);进程组关系(process group) 进程控制信息: 当前状态; 优先级(priority); 代码执行入口地址; 程序的外存地址; 运行统计信息(执行时间、页面调度); 进程间同步和通信;阻塞原因 资源占用信息:虚拟地址空间的现状、打开文件列表 CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针) 6. PCB的组织方式 链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表 各状态的进程形成不同的链表:就绪链表、阻塞链表 索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表 各状态的进行形成不同的索引表:就绪索引表、阻塞索引表 7. 进程上下文 用户级上下文:进程的用户地址空间(包括用户栈各层次),包括用户正文段、用户数据段和用户栈; 寄存器级上下文:程序寄存器、处理机状态寄存器、栈指针、通用寄存器的值; 系统级上下文: 静态部分(PCB和资源表格) 动态部分:核心栈(核心过程的栈结构,不同进程
显示全部