第三章计算机操作系统.ppt
《第三章计算机操作系统.ppt》由会员分享,可在线阅读,更多相关《第三章计算机操作系统.ppt(168页珍藏版)》请在三一文库上搜索。
1、计算机操作系统,第三章 进程管理,进程概述,处理机管理是解决处理机的分配问题 处理机管理的两个阶段 处理机时间分配 进程管理的主要功能 进程的三种状态,为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。在本章中,我们将讨论进程概念、进程控制和进程间关系。,预备知识 操作系统概念和特征 操作系统的基本类型:批处理OS、分时OS、实时OS 多道的概念:内存中同时存在多个作业,第3章 进程管理,3.1 进程(PROCESS) 3.2 进程控制 3.3 线程(THREAD) 3.4 进程调度 3.5 进程互斥和同步 3.6 进程间通信(IPC, INTER
2、-PROCESS COMMUNICATION) 3.7 死锁问题(DEADLOCK),3.1 进程(PROCESS),3.1.1 程序的顺序执行和并发执行 3.1.2 进程的定义和描述 3.1.3 进程的状态转换,返回,3.1.1 程序的顺序执行和并发执行,程序的执行有两种方式:顺序执行和并发执行 顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统; 现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。,顺序执行的特征,顺序性:处理机的操作严格按规定顺序执行 封闭性:程序执行时,独占系统资源,计算机的状态只由该程序的控制逻辑所决定 可再现性:当初始条件
3、相同时,程序多次执行的结果相同,一个程序执行的结果可以重复显现,如果出现错误也能在对应的地点出现,P1:a=x+y P2: b=a-5 P3: c=b+1,资源共享,资源共享就是指计算机中并发执行的多个程序交替使用计算机硬件和软件资源。 操作系统提供两种资源共享的方法: 1、由操作系统统一管理和分配,一般系统中的硬件资源采用这种方法共享。 2、由进程自行使用。,并发执行的特征,多个程序共享系统资源、多个程序并发执行 间断(异步)性:“走走停停“,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改
4、,失去原有的不变特征。 失去可再现性:外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。 程序与计算不再一一对应、出现相互制约的关系 并发执行失去封闭性的原因是资源共享,程序并发执行的条件Bernstein,P1: a=5 P2: b=6 P3: c=a+b P4: d=c+1,P1、P2可以并发执行吗? P3、P4可以并发执行呢?,问题?,P1: a=5 P2: b=6 R(P1)= W(P1)=a R(P2)= W(P2)=b R(P1) W(P2)= R(P2) W(P1)= W(P1) W(P2)= R(P1)W(P2)R(P2)W(P1)W(P1)W(P2)= P1、P2可
5、以并发执行,Bernstein条件例1,Bernstein条件例2,P3: c=a+b P4: d=c+1 R(P3)=a,b W(P3)=c R(P4)=c W(P4)=d R(P3) W(P4)= R(P4) W(P3)=c R(P3) W(P4) R(P4) W(P3)W(P3)W(P4) =c P3、P4不能并发执行,2.1.2 进程的定义和描述,1. 进程的定义,可并发执行的一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,即程序在并发环境中的执行过程。是系统进行资源分配和调度与分派的基本单位。,引入多进程,提高了对硬件资源的利用率,但又带来额外的空间和时间开销,增加了O
6、S 的复杂性。,1. 进程与程序的区别,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。 进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。,并发性:进程能真实地描述并发执行,而程序不具有这种特征。 进程具有创建其他进程的功能。 操作系统中的每一个程序都是在一个进程现场中运行。,2. 进程的特征,动态性:进程具
7、有动态的地址空间,地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的生成和删除) 独立性:各进程的地址空间相互独立,除非采用进程间通信手段; 并发性、异步性 结构性:代码段、数据段和核心段(在地址空间中);程序文件中通常也划分了代码段和数据段,而核心段通常就是OS核心(由各个进程共享,包括各进程的PCB),进程分为系统进程和用户进程 系统进程是操作系统用来管理系统资源并行活动的并发软件用户进程是可以独立执行的用户程序段,它是整个操作系统服务的对象,是系统资源的实际享有者。 系统进程和用户进程的区别: (1)系统进程之间的关系由操作系统自己
8、负责,用户进程之间的关系主要由用户自己负责。 (2)系统进程直接管理有关的软、硬设备的活动;用户进程只能间接地和系统资源发生关系。 (3)在进程调度中,系统进程的优先级高于用户进程。,3.2 进程控制,3.2.1 两状态进程模型 3.2.2 三状态进程模型 3.2.3 五状态进程模型 3.2.4 挂起进程模型 3.2.5 进程结构、进程控制块及组织方式 3.2.6 进程控制,3.2.1 两状态进程模型,1. 状态,运行状态(Running):占用处理机资源; 暂停状态(Not-Running):等待进程调度分配处理机资源; 两状态模型无法区分暂停进程表中的就绪和阻塞,2. 转换,进程创建(En
9、ter):系统创建进程,形成PCB,分配所需资源,排入暂停进程表(可为一个队列); 调度运行(Dispatch):从暂停进程表中选择一个进程(要求已完成I/O操作),进入运行状态; 暂停运行(Pause):用完时间片或启动I/O操作后,放弃处理机,进入暂停进程表; 进程结束(Exit):进程运行中止;,3.2.2 三状态进程模型,就绪状态,运行状态,阻塞状态,分到cpu,等待IO或事件,中断,IO或事件完成,进程的基本状态,运行态正在CPU 上执行 就绪态万事俱备,就差cpu 阻塞态等待事件,无法运行 进程的动态性是由它的状态及转换体现出来的 进程的信息存在PCB中 进程的状态转换是在一定条件
10、下实现的,转换,就绪运行 cpu空闲,而且就绪的级别高 运行阻塞 需要等待某个条件,这个条件出现之前就放弃 阻塞就绪 这个进程等待的时间已经满足 运行就绪 运行的进程分给的时间片已经用完 说明: 进程之间的状态转换并非都是可逆的 进程之间的状态转换并非都是主动的 进程在运行态才是真正的运行,3.2.3 五状态进程模型,进程基本状态是对进程动态过程的简单描述, 具有创建和终止状态的进程状态的五状态模型就是对暂停状态的细化。,五状态进程模型(状态变迁),等待事件或I/O完成,1. 状态,运行状态(Running):占用处理机资源;处于此状态的进程的数目小于等于CPU的数目。 在没有其他进程可以执行
11、时(如所有进程都在阻塞状态),通常会自动执行系统的idle进程(相当于空操作)。 就绪状态(Ready):进程已获得除处理机外的所需资源,等待分配处理机资源;只要分配CPU就可执行。 可以按多个优先级来划分队列,如:时间片用完低优,I/O完成中优,页面调入完成高优 阻塞状态(Blocked):由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。,新建状态(New):进程刚创建,但还不能运行(一种可能的原因是OS对并发进程数的限制);如:分配和建立PCB表项(可能有数目限制)、建立资源表格(如打开文件表)并分配资源,加载程
12、序并建立地址空间表。 终止状态(Exit):进程已结束运行,回收除PCB之外的其他资源。,2. 转换,创建新进程:创建一个新进程,以运行一个程序。可能的原因为:用户登录、OS创建以提供某项服务、批处理作业 调度运行(Dispatch):从就绪进程表中选择一个进程,进入运行状态; 释放(Release):由于进程完成或失败而中止进程运行,进入结束状态; 运行到结束:分为正常退出Exit和异常退出abort(执行超时或内存不够,非法指令或地址,I/O失败,被其他进程所终止) 就绪或阻塞到结束:可能的原因有:父进程可在任何时间中止子进程;,超时(Timeout):由于用完时间片或高优先进程就绪等导致
13、进程暂停运行; 事件等待(Event Wait):进程要求的事件未出现而进入阻塞;可能的原因包括:申请系统服务或资源、通信、I/O操作等; 事件出现(Event Occurs):进程等待的事件出现;如:操作完成、申请成功等;,注:对于五状态进程模型,一个重要的问题是当一个事件出现时如何检查阻塞进程表中的进程状态。当进程多时,对系统性能影响很大。一种可能的作法是按等待事件类型,排成多个队列。,3.2.4 挂起进程模型,由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被对换至外存。 挂起: 把内存中暂时不能或不需要运行的进程从内存换到外存. 引起挂起的原因: 系统资源的需要 调节竞争或
14、消除故障的需要 终端用户的需要 调节进程的需要,引入挂起的目的是: 提高处理机效率:就绪进程表为空时,要提交新进程,以提高处理机效率; 为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张 用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写),挂起状态的进程状态转换图,1. 状态,活动就绪状态(Ready):进程在内存且可立即进入运行状态; 活动阻塞状态(Blocked):进程在内存并等待某事件的出现; 静止阻塞状态(Blocked, suspend):进程在外存并等待某事件的出现; 静止就绪状态(Ready, suspend):进程在外存,但
15、只要进入内存,即可运行;,注:这里只列出了意义有变化或新的状态。,2. 转换,挂起(Suspend):把一个进程从内存转到外存;可能有以下几种情况: 活动阻塞到静止阻塞:没有进程处于就绪状态或就绪进程要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程; 活动就绪到静止就绪:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程; 激活(Activate):把一个进程从外存转到内存;可能有以下几种情况: 静止就绪到活动就绪:没有就绪进程或静止就绪进程优先级高于就绪进程时,会进行这种转换; 静止阻塞到活动阻塞:当一个进程释放足够内存时,系统会把
16、一个高优先级静止阻塞进程(系统认为会很快出现所等待的事件)转换为活动阻塞;,事件出现(Event Occurs):进程等待的事件出现;如:操作完成、申请成功等;可能的情况有: 活动阻塞到活动就绪:针对内存进程的事件出现; 静止阻塞到静止就绪:针对外存进程的事件出现,1.进程结构,进程控制块 程序段 每个进程都要有相应的程序,进程是程序的执行过程,当然离不开程序 私有数据块,进程的组成模型,3.2.5 进程结构、进程控制块及组织方式,4. 进程控制块 (PCB, process control block),每个进程在OS中有登记表项(可能有总数目限制),OS据此对进程进行控制和管理(PCB中的
17、内容会动态改变),不同OS则不同 处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统调用。,进程控制块是对进程本质属性的描述,由OS维护的用来记录进程相关信息的一块内存。引入PCB的作用:就是使进程能成为独立运行的单位,并可和其他进程并发执行。,5.进程控制块的内容,进程描述信息: 进程标识符(process ID),唯一,通常是一个整数; 进程名,通常基于可执行文件名(不唯一); 用户标识符(user ID),由进程创建者提供; 进程控制信息: 当前状态; 优先级(priority); 代码执行入口地址; 程序的外存地址; 运行统计信息(执行时间、页面调度); 进程间同步和通信
18、;阻塞原因 资源占用信息:虚拟地址空间的现状、打开文件列表 CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针) 操作系统就是根据进程控制块提供的信息来对进程实行调度和管理。,6.进程与PCB的关系,每个进程有唯一的PCB 操作系统依据PCB管理进程 利用PCB实现进程的动态、并发 PCB是进程存在的唯一标志 进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。,7. PCB的组织方式,线性方式 链接方式:同一状态的进程PCB通过指针链接成一队列,多个状态对应多个不同的队列 各状态的进程形成不同的队列:就绪链表、阻塞链表
19、索引方式:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表,每个索引表中记录着具有相应状态的所有进程的PCB在PCB表中的位置。 各状态的进程行形成不同的索引表:就绪索引表、阻塞索引表,具有较高的特权,能执行一切命令,访问所有寄存器和存储区。,3.2.6 进程控制功能,具有较低特权,只能执行规定的命令, 访问指定的寄存器和存储区。,进程的创建与撤消,硬件的第一次延伸。 系统将一些与硬件紧密相关的模块放在内核 中断处理 时钟管理 内核在执行某些基本操作时,往往是利用原语操作实现的。,内核与原语,原语,原语由若干条指令构成、用于完成一定功能的过程。
20、原语是“原子操作”,是一个不可分割的操作。 原语是操作系统核心,由程序模块组成,运行在管态,常驻内存,由系统进程调用。,primitive,用户登录 新作业进入系统 提供服务 应用请求,进程创建,申请空白PCB 为进程分配资源 初始化PCB 初始化进程描述信息 初始化处理机状态信息 初始化进程控制信息 将新进程插入就绪队列,进程创建,创建,继承(inherit):子进程可以从父进程中继承用户标识符、环境变量、打开文件、文件系统的当前目录、控制终端、已经连接的共享存储区、信号处理例程入口表等 不被继承:进程标识符,父进程标识符 spawn创建并执行一个新进程;新进程与父进程的关系可有多种:覆盖(
21、_P_OVERLAY)、并发(_P_NOWAIT or _P_NOWAITO)、父进程阻塞(_P_WAIT)、后台(_P_DETACH)等。,父子进程的fork()返回值不同,Parent PID的值不同 getppid() fork()创建子进程之后,执行返回父进程,或调度切换到子进程以及其他进程 fork创建一个新进程(子进程),子进程是父进程的精确复制。在子进程中返回为0;在父进程中,返回子进程的标识。子进程是从fork调用返回时在用户态开始运行的。父进程的返回点与子进程的开始点是相同的。 exec用一个新进程覆盖调用进程。它的参数包括新进程对应的文件和命令行参数。成功调用时,不再返回;
22、否则,返回出错原因。,创建:fork(), exec(),UNIX进程创建,进程正常结束 进程异常结束 外界干预,查找撤消进程的PCB 若进程处于执行状态,终止之,并进行进程调度 若有子孙,予以终止 归还资源 从所在队列移出,进程的阻塞与唤醒,请求系统服务 启动某种操作 数据尚未到达 无新工作可做,停止进程的执行 将进程插入阻塞队列,改变进程在PCB中的状态 重新调度,将进程从阻塞队列解下 将进程插入就绪队列 改变进程在PCB中的状态,检查被挂起进程的状态 如进程处于就绪状态,将进程从就绪状态变为静止就绪状态 如进程处于阻塞状态,将进程从阻塞状态变为静止阻塞状态 如进程正在运行,将进程变为静止
23、就绪状态,并重新调度,检查被激活进程的状态 如进程处于静止就绪状态,将进程从静止就绪状态变为就绪状态 如进程处于静止阻塞状态,将进程从静止阻塞状态变为阻塞状态 若系统为抢占式系统,则进行进程调度,3.3 线程(THREAD),3.3.1 线程的引入 3.3.2 进程和线程的比较 3.3.3 线程的类型 3.3.4 线程的特点,返回,引入线程的目的是简化进程间的通信,以小的开销来提高进程内的并发程度。,由于进程是资源拥有者,因而在进程的创建、撤消和切换中系统必须为之付出较大的时间、空间开销。因此,系统中所设置的进程的数目不宜过多,进程切换的频率不宜过高,这就限制了进程并发程度的提高。,进程有两个
24、基本属性 进程是拥有资源的独立单位 进程是独立调度和分派的基本单位,2.3.1 线程的引入,进程:资源分配单位(存储器、文件)和CPU调度(分派)单位。 线程:作为CPU调度单位,而进程只作为其资源分配单位。 只拥有必不可少的资源,如:线程状态、寄存器上下文和栈 同样具有就绪、阻塞和执行三种基本状态 同属一个进程的线程共享进程所拥有的全部资源 一个线程可以创建和撤销另一个线程 线程的优点:减小并发执行的时间和空间开销(线程的创建、退出和调度),因此容许在系统中建立更多的线程来提高并发程度。 线程的创建时间比进程短; 线程的终止时间比进程短; 同进程内的线程切换时间比进程短; 由于同进程内线程间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 计算机 操作系统
链接地址:https://www.31doc.com/p-2554364.html