计算机操作系统第2章进程管理ppt课件.ppt
《计算机操作系统第2章进程管理ppt课件.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第2章进程管理ppt课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、计算机操作系统,南京工业大学信息学院,第二章 进程管理, 进程的基本概念 进程控制 进程同步 经典进程同步问题 进程通信 线程,这一章介绍如下几个问题:,2.1 进程的基本概念(1),程序的顺序执行及其特征,顺序执行包含两层含义: 对于多个用户程序来说,所有程序是依次执行的。(外部顺序性) 对于一个程序来说,它的所有指令是按序执行的。(内部顺序性),2.1 进程的基本概念(2),程序顺序执行的特征,(1)顺序性:,处理机的操作严格按照程序所规定的顺序执行,即每一操作必须在下一操作开始之前结束(或者说下一操作必须在当前操作结束后才能开始)。,(2)封闭性:,程序是在封闭的环境下执行的。即程序运行
2、时独占全机资源,资源的状态(除初始态外)只有本程序才能改变它。程序一旦开始执行,其执行结果不受外界影响。,(3)可再现性:,只要程序执行时的环境和初始条件相同,当程序重复执行时,都将获得相同的结果。,2.1 进程的基本概念(3),程序的并发执行及其特征,程序的并发执行包括两层含义:,对于一个程序来说,它的所有指令是按序执行的。(内部顺序性) 对于多个程序(进程)来说,所有进程是交叉执行的。(外部并发性),2.1 进程的基本概念(4),程序并发执行时的特征,1)间断性:,程序在并发执行时,由于它们共享系统资源,以及为完成同一任务而相互合作,致使这些并发执行的程序之间形成了相互制约的关系。(互斥关
3、系、同步关系),相互制约导致并发执行的程序具有“执行暂停执行”这种间断性活动规律。,2)失去封闭性:,程序在并发执行时,由于多个程序共享系统资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。,某程序的执行时,会受到其他程序的影响。,2.1 进程的基本概念(5),程序并发执行时的特征,3)不可再现性与时间有关的错误,程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。例如:有两个循环程序A和B,它们共享一个变量N。,L1:N = N+1; goto L1;,L2:print (N ); N = 0; goto L2;,程序A,程序B,程序A和B并发执行时,可能出
4、现下述三种情况(设某时刻N的值为10):(1)N=N+1在print(N)和N=0之前,此时得到的N值分别为11,11,0。(2)N=N+1在print(N)和N=0之后,此时得到的N值分别为10,0,1。(3)N=N+1在print(N)和N=0之间,此时得到的N值分别为10,11,0。,计算结果已与并发程序的执行速度有关,从而使程序执行失去了可再现性。,2.1 进程的基本概念(6),进程的特征与状态,1进程的定义和特征,进程是程序在一个数据集上的运行过程,是系统进行资源分配和调度的一个独立单位。 (传统OS的定义),定义,1)结构特征:,进程的特征,程序段、相关的数据段、PCB三部分构成了
5、进程实体。,通常的程序是不能并发执行的,为使程序(含数据)能独立运行,应为之配置一进程控制块(即PCB)。,在许多情况下所说的进程,实际上是指进程实体。如,所谓创建进程,,2)动态性:,进程的实质是进程实体的一次执行过程,故动态性是进程的最基本特征。,3)并发性:,这是指多个进程实体同存于内存中,且能在一段时间内同时运行。,2.1 进程的基本概念(7),进程的特征与状态,4)独立性 :,进程的特征:,在传统的OS中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。,5)异步性 :,是指进程按各自独立的、不可预知的速度向前推进,或说进程实体按异步方式运行。,2.1 进程
6、的基本概念(8),进程的特征与状态,进程的三种基本状态:,1)就绪(Ready)状态:,当进程已分配到除CPU以外的所有资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。,系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。,2)执行(Running)状态:,进程已获得CPU,其程序正在执行。,3)阻塞(Blocked)状态:,正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态(或等待状态)。,使进程阻塞的典型事件:请求I/O,申请缓冲空间等等。,2.1 进程的基本概念(9),
7、进程的特征与状态,进程的三种基本状态的转换:,进程调度:就绪态执行态时间片完:执行态就绪态 请求I/O:执行态阻塞态 I/O完成:阻塞态就绪态,引起进程状态转换的典型事件:,2.1 进程的基本概念(10),进程的特征与状态,挂起状态:,有些系统除了进程的三种基本状态外,还有挂起状态。,1)引入挂起状态的原因:,(1)终端用户的请求:,(2)父进程请求:,(3)负荷调节的需要 :,(4)操作系统的需要 :,当终端用户在自己的程序运行期间发现有可疑问题时,希望暂停执行。,希望考察和修改子进程,或协调各子进程间的活动时,实时系统中工作负荷较重时,系统可把一些不重要的进程挂起。,操作系统有时希望挂起某
8、些进程,以便检查运行中的资源使用情况或进行记账。,2.1 进程的基本概念(11),进程的特征与状态,挂起状态:,2)进程状态的转换,活动就绪静止就绪,活动阻塞静止阻塞,静止就绪活动就绪,静止阻塞活动阻塞,挂起原语Suspend,激活原语Active,2.1 进程的基本概念(12),进程控制块(PCB),为了描述和控制进程的运行,系统为每个进程定义了一个数据结构进程控制块。进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。,1. PCB作用:,使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB
9、来对并发进程进行控制和管理的。,例如:进程调度;现场保护和恢复;进程同步和通信。,PCB是进程存在的唯一标志,2.1 进程的基本概念(13),进程控制块(PCB),2进程控制块中的信息,PCB中记录了操作系统所需的、用于描述进程当前情况以及控制进程运行的全部信息。具体包括下述四方面的信息:,1)进程标识符:,内部标识符(进程号);外部标识符(名);父进程标识及子进程标识;用户标识,2)处理机状态:,处理机状态信息主要由处理机的各种寄存器中的内容组成的。寄存器包括:通用寄存器、指令计数器、程序状态字(PSW)寄存器、用户栈指针。(保护、恢复现场),当处理机被中断时,这些信息都必须保存到PCB中,
10、以便该进程重新执行时,能从断点继续执行。,2.1 进程的基本概念(14),进程控制块(PCB),2进程控制块中的信息,3)进程调度信息:,在PCB中还存放一些与进程调度和进程对换有关的信息。包括:,进程状态作为调度和对换时的依据。 进程优先级由于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。 进程调度所需的其它信息它们与所采用的进程调度算法有关。 事件即阻塞原因。,2.1 进程的基本概念(15),进程控制块(PCB),2进程控制块中的信息,4)进程控制信息:,程序和数据的地址指程序和数据所在的内存或外存首地址; 进程同步和通信机制如信号量、消息队列指针等,它们可能全部或
11、部分地存放在PCB中; 资源清单是一张列出了除CPU外的、进程所需的全部资源及已经分配到该进程的资源的清单; 链接指针它给出本进程(PCB)所在队列中下一个进程的PCB的首址。,2.1 进程的基本概念(16),进程控制块(PCB),3进程控制块的组织方式(1),常用的组织方式有两种:链接方式和索引方式。,1)链接方式,把具有同一状态的PCB,用其中的链接字链接成一个队列。形成:就绪队列、阻塞队列、空白队列等,2.1 进程的基本概念(17),进程控制块(PCB),3进程控制块的组织方式(2),2)索引方式:,系统根据所有进程的状态建立几张索引表。如, 就绪索引表 阻塞索引表等,索引表的首址记录在
12、专用单元中;每个索引表的表目中,记录具有相应状态的某个PCB的首址。,2.2 进程控制(1),进程控制是进程管理中最基本的功能。 进程控制包括: 创建进程 终止进程 进程状态转换,进程控制是由OS的内核完成的。,2.2 进程控制(2),2.2.1 进程的创建,1引起创建进程的事件,用户登录 作业调度 提供服务,当用户进程提出某种请求后,系统将专门创建一个进程来提供用户所需的服务。如,文件打印。,上述三种情况,都是由系统内核为它创建一个新进程。,应用请求:,是基于应用进程的需求,由应用进程自己创建一个新进程,以便新进程以并发运行方式完成特定任务。,2.2 进程控制(3),2.2.1 进程的创建(
13、2),2进程的创建,调用进程创建原语Create(),按下述步骤创建一个进程:,(1)申请空白PCB;(2)为新进程分配资源。主要是内存空间。 (3)初始化PCB。包括:,初始化标识信息 初始化处理机状态信息:,程序计数器,堆栈指针等,进程状态就绪或静止就绪、优先级等。,初始化处理机控制信息:,(4)将新进程插入就绪队列。,2.2 进程控制(4),2.2.2 进程的终止,1引起进程终止的事件,正常结束 异常结束,外界干预,常见的异常结束事件有:,越界错误 保护错试图访问不允许访问的资源或文件,或者以不适当方式访问 非法指令 特权指令错用户程序试图执行只允许OS执行的指令运行超时 等待超时算术运
14、算错被0除 I/O故障,操作员或操作系统干预(如发生死锁) 父进程请求 父进程终止,2.2 进程控制(5),2.2.2 进程的终止,2进程的终止过程,OS调用终止原语,按下述过程终止进程:,(1)根据被终止进程的标识,从PCB集合中找除该进程的PCB,读出该进程状态。 (2)若被终止进程正处于执行状态,应立即终止其执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。若该进程还有子孙进程,应将其所有子孙进程终止,以防止它们成为不可控进程。(3)将被终止进程的所有资源,或者归还给其父进程,或者归还给系统。 (4)将被终止进程(它的PCB)从所在队列中移出,等待其他进程来搜索信息。,2.2
15、 进程控制(6),2.2.2进程的阻塞和唤醒,1引起进程阻塞和唤醒的事件,请求系统服务,无新工作可做,当执行进程请求OS服务时,由于某种原因,OS并不立即满足该进程的请求时,该进程只能转变为阻塞状态来等待。如,进程请求打印机,,系统往往设置一些具有特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。如,系统中发送数据的进程,,启动某种操作,当进程启动某种操作后,如果该进程必须在该操作完成后才能继续执行,则必须先使该进程阻塞,以等待操作完成。如,启动了某I/O设备,,新数据尚未到达,对于相互合作的进程,如果其中一个进程需要获得另一个(合作)进程提供的数据才能运行以对数据
16、进行处理,则只要其所需数据尚未到达,该进程只有阻塞(等待)。如,,2.2 进程控制(7),2.2.2进程的阻塞和唤醒,2进程阻塞过程,调用阻塞原语block把自己阻塞。(主动行为),阻塞(block)过程:,立即停止执行;把PCB中进程状态由“执行”改为“阻塞”; 将PCB插入具有相同事件的阻塞队列; 转进程调度程序,将处理机分配给某个就绪进程,并进行进程切换保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中处理机状态设置CPU的环境。,2.2 进程控制(8),2.2.2进程的阻塞和唤醒,3进程唤醒过程,调用唤醒原语wakeup( ),将等待事件的进程唤醒。,唤醒原语执行过程:,将
17、被唤醒进程的PCB从阻塞队列移出; 将其PCB中进程状态由“阻塞”改为“就绪”; 将改PCB插入到就绪队列中。,block()和wakeup()是成对的。,2.2 进程控制(9),2.2.4 进程的挂起和激活,1进程的挂起,当出现了引起进程挂起的事件时(用户进程请求将自己挂起,或父进程请求将子进程挂起),系统将用挂起原语suspend( )将指定进程或处于阻塞状态的进程挂起。,挂起原语的执行过程:,检查被挂起进程的状态:,若处于活动就绪或执行状态,则将其转为静止就绪;若处于活动阻塞,则将其转为静止阻塞。,把该进程的PCB复制到某指定内存区域,为方便用户或父进程考查该进程的运行状态。,若该进程正
18、在执行,则转进程调度程序重新调度。,2.2 进程控制(10),2.2.4 进程的挂起和激活,2进程的激活,当发生激活进程的事件时(如父进程或用户请求激活指定进程,而内存中已有足够空间时),系统利用激活原语active( )将指定进程激活。,激活过程是:,将进程从外存调入内存;,若是静止就绪,则改为活动就绪; 若是静止阻塞,则改为活动阻塞。,若采用的是抢占式调度策略,则应检查被激活就绪进程的优先级,若其优先级比先行执行进程高,则应将处理机分配给被激活进程。,检查该进程现行状态:,2.3 进程同步,由于进程的异步性,尤其是它们竞争临界资源时,可能会给系统造成混乱。进程同步的主要任务,是使并发执行的
19、进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。,2.3 进程同步(2),2.3.1 进程同步的基本概念,1两种形式的制约关系,(1)间接制约关系,间接制约关系源于资源共享。如,共享打印机。,进程互斥,(2)直接制约关系,源于进程间的合作。如,,进程同步,2临界资源,在一段时间内只允许一个进程访问的资源,即仅当一个进程访问完并释放该资源后,才允许另一个进程访问的资源,称为临界资源或独占资源。,如,打印机、磁带机、共享变量、队列、,2.3 进程同步(3),2.3.1 进程同步的基本概念,【例】生产者-消费者问题著名的进程同步问题,共享变量:临界资源,循环缓冲区,生产者投放一个产
20、品后,输入指针in加1:in = ( in + 1 ) % n (n是缓冲区个数,整型常量),in初值为0; 消费者每取出一个产品,输出指针out加1:out = ( out + 1 ) % n,out初值为0;,引入一个共享变量counter,初值为0。生产者投放一个产品,counter加1,counter = n时不能再投放产品 消费者每取一个产品,counter减1,counter = 0时不能再取出产品,前面交通观察站例子亦然。,rocess producer:while (condition) produce an item in nextp;while(counter=n) no-
21、op;/no-op表示空操作bufferin = nextp;in = (in + 1)% n ;counter = counter + 1 ;,生产者进程算法如下:,process consumer:struct item nextc ;while (condition) while (counter = 0)no-op ;nextc = bufferout ;out = (out + 1)% n ;counter = counter 1 ;consume the item in nextc ;,消费者进程算法如下:,上面的生产者程序和消费者程序,在顺序执行时其结果也是正确的。但若并发执行时
22、,可能会出现差错,问题在于这两个进程共享变量counter。生产者对它做加1操作,消费者对它做减1操作,这两个操作在机器语言实现时,常可用下面的形式描述:,生产者执行的操作: register1 = counter ; register1 = register1 + 1 ; counter = register1;,消费者执行的操作: register2 = counter ; register2 = register2 - 1 ; counter = register2;,假设counter当前的值为5,按下述顺序执行:,register1 = counter; (5) register1
23、= register1 + 1; (6)register2 = counter; (5)register2 = register2 1; (4)counter = register1; (6)counter = register2; (4),最终counter的值为4,正确的counter值应是5,出现了差错。,学生可以考虑出现6的情况。,解决此问题的关键,是应将变量counter作为临界资源处理,亦即让生产者进程和消费者进程互斥地访问变量counter。,2.3 进程同步(4),2.3.1 进程同步的基本概念,3临界区(critical section),每个进程中访问临界资源的那段代码称为
24、临界区。,不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它们访问。,显然,若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界区的互斥访问。为此,每个进程在进入临界区之前,应先对欲访问的临界资源进行检查,看是否正被访问,如果此刻该资源未被访问,便可进入临界区对该临界资源进行访问,并设置它正被访问的标志;如果此刻它正被访问,则本进程不能进入临界区。,因此必须在临界区前增加一段用于上述检查的代码,把这段代码称为进入区(entry section);相应地,在临界区后面也要加上一段称为退出区(exit section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。,定义:
25、,进程互斥不允许两个或两个以上进程同时访问同一个临界资源。进程互斥不允许两个或两个以上进程同时进入相关临界区。,2.3 进程同步(5),2.3.1 进程同步的基本概念,4同步机制应遵循的原则,为了实现各进程互斥地进入自己的临界区,一般是在系统中设置专门的同步机制来协调各进程间的运行。,所有同步机制都应遵循如下四条准则:,空闲让进,忙则等待,当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以便有效地利用临界资源。,有限等待,当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。,让权等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 进程 管理 ppt 课件
链接地址:https://www.31ppt.com/p-1443271.html