计算机操作系统原理第二章进程描述与控制.ppt
《计算机操作系统原理第二章进程描述与控制.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统原理第二章进程描述与控制.ppt(255页珍藏版)》请在三一办公上搜索。
1、计算机操作系统,东华大学计算机科学与技术学院,主讲:李继云,2,本章重点,并发程序的特点进程的概念进程和程序的区别进程状态进程控制原语线程的概念进程的同步与互斥,3,2.1 进程描述2.2 进程控制2.3 线程2.4 实例:Solaris,第2章 进程描述与控制主要内容,2.5 进程同步2.6 经典进程的同步问题2.7 管程机制2.8 进程通信,4,2.1 进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,5,2.1.1 程序的顺序执行,程序的顺序执行如图 在计算机系统中只有一个程序
2、在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。,6,程序顺序执行的特点,顺序性:一个程序开始执行必须要等到前一个程序已执行完成。封闭性:程序一旦开始执行,其计算结果不受外界因素影响。可再现性:程序的结果与它的执行速度无关(即与时间无关),只要给定相同的输入,一定会得到相同的结果。,前趋图,前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。结点:一个程序段或进程,乃至一条语句 有向边:偏序或前趋关系 把没有前趋的结点称为初始结点(Initial Nod
3、e)没有后继的结点称为终止结点(Final Node),每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。,前趋图中必须不存在循环,前趋图,9,2.1 进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,10,2.1.2 程序的并发执行,所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。,并发与并行概念的区别?Concurrency,parallel,11,并发执行实
4、例 并发程序的时间相关性,誊抄 用卡片输入机尽快地把一个文本复写(誊抄)到行式打印机上去。由Brinch Hansen提出,12,循环顺序程序的誊抄方案,输入:f 输出:g while(f 不为空)input;output;,13,循环顺序程序的誊抄方案,设读卡机的标定速度是1000卡/分,打印机的标定速度是600行/分,那么此系统的最高传输速度为()行/分?,14,两个并发程序方案,设有一台标准输入设备(键盘),和一台标准输出设备(显示器或打印机),输入程序负责从标准设备中读取一个字符,送缓冲区中。输出程序从缓冲区中取数据,送标准设备输出。,15,两个并发程序方案,16,两个并发程序方案,c
5、obegin while(不为结束符)input;send;while(buffer不为空)receive;output;coend,17,两个并发程序方案,誊抄的速度可以提高到600行/分。存在的问题:读卡机和打印机速度不匹配,导致虽然提高了设备利用率,但是不能正确誊抄。a、若打印的速度高于输入的速度;b、若输入的速度高于打印的速度,18,三个并发程序方案,假设有两个缓冲区,每个缓冲区只存放一个字符,get程序负责从输入序列f中读一个字符,然后,送到缓冲区s中,copy程序负责将s中的字符复制到t中,put负责从t中提取字符打印。,19,三个并发程序方案,缓冲区T,标准输入(键盘),f,标准
6、输出(打印机),get,g,copy,缓冲区S,put,20,三个并发程序方案,如何实现?while(誊抄未完成)cobeginget(s,f);copy(s,t);put(t,g);coend,21,三个并发程序方案,if(f 不为空)get(s,f);while(誊抄未完成)t=s;cobegin put(t,g);get(s,f);coend,22,方案比较,方案1系统利用率最低方案2、3提高了设备利用率,但需要增设缓冲区,且方案2会因速度匹配出错。思考:试举出现实生活中的此类例子。,23,程序并发执行的特点,失去了程序的封闭性如果一个程序的执行可以改变另一个程序的变量,那么后者的输出就
7、可能有赖于各程序执行的相对速度,即失去了程序封闭性的特点。程序与计算不再一一对应 程序静态;计算动态程序并发执行的相互制约 直接制约相互之间有逻辑关系(I,C,P)间接制约由于资源共享引起的联系(I1,I2),24,2.1 进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,25,2.1.3 进程的定义,进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。进程有很多各式各样的定义,如:行为的一个规则叫做程序,程序在处理机上执行时所发生的
8、活动称为进程(Dijkstra)一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程是一个程序与其数据一道通过处理机的执行所发生的活动,26,进程同程序的比较,程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。,27,进程同程序的比较,进程更能真实地描述并发,而程序不能进程是由程序和数据两部分组成的进程具有创建其他进程的功能,而程序没有同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进
9、程,28,思考,为什么要引入进程的概念?,29,2.1 进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,30,2.1.4 进程的特征,动态性:进程是程序的执行并发性:多个进程可同存于内存中,能在一段时间内同时运行独立性:独立运行的基本单位,独立获得资源和调度的基本单位。异步性:各进程按各自独立的不可预知的速度向前推进结构特征:由用户程序、用户数据、系统栈和进程控制块四部分组成,31,进程的类型,按其任务性质分 系统进程 用户进程按其活动特点分 受CPU时间限制科学计算 受I/O限制
10、商业联机事务处理,32,进程产生,通常有4种事件会导致新进程产生:在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统将为该用户建立一个进程。在一个批处理环境中,为了响应一个任务的要求而产生进程。当运行中获取用户程序提出的某种请求后,OS可以代用户程序产生进程以实现某种功能,使用户不必等待。基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。,33,进程终止,导致进程终止的事件大致有14种:正常结束、超时限制、内存不足、超界、保护错误、算术错误、超越时限、I/O失败、非法指令、特权指令、错误使用数据、操作员或OS干预、父进程终止、父进程
11、需要。,34,2.1 进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,35,2.1.5 进程的状态及转换,进程有三种基本状态,进程在生命消亡前处于且仅处于三种基本状态之一。不同系统设置的进程状态数目不同。,36,进程的三种基本状态,就绪状态(Ready):存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。这些进程所处的状态为就绪状态。运行状态(Running):正在运行的进程所处的状态为运行状态。拥有CPU。等待状态(Wait/Blocked):若
12、一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给它CPU,它也无法运行,称该进程处于等待状态、阻塞、睡眠、封锁状态。,37,进程的状态变迁图,38,进程状态模型,运行:进程当前处于运行状态。就绪;进程已准备好运行。阻塞;进程等待某些事件发生(如I/O操作)后才能运行。创建:进程刚产生,但还未被操作系统提交到可运行进程池中。消失(撤销):进程被操作系统从可运行进程池中释放。,39,进程状态模型,进程状态转换(转下表),40,进程状态模型,41,进程挂起,处于非运行状态的进程:内存-外存 由于I/O操作比CPU计算慢得多,故常会出现内存中所有进程都等待I/O的现象。即使运行多个程
13、序,处理器在大多数时间仍处于空闲状态。为此可采用交换方法,将内存中的一部分进程转移到磁盘中。在进程行为模式中需增加一个新的挂起状态,当内存所有进程阻塞时,操作系统可将一进程置为挂起状态并交换到磁盘,再调入另一进程执行。挂起状态与原有的阻塞和就绪状态结合为阻塞挂起状态和就绪挂起状态。,42,有挂起状态的进程转换图,(a)带有一个挂起状态,(b)带有两个挂起状态,进程挂起的原因,进程挂起,44,【思考题】,1在单处理机系统中,如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?2.有没有这样的状态转换,为什么?等待运行;就绪等待,45,2.1
14、进程描述,2.1.1 程序的顺序执行2.1.2 程序的并发执行 2.1.3 进程的定义2.1.4 进程的特征 2.1.5 进程的状态及转换2.1.6 进程控制块,46,2.1.6 进程控制块(PCB),为了描述一个进程和其它进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据块,称为进程控制块(PCB)。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的,47,PCB的内容,进程标识处理器状态信息进程调度信息进程控制信息,48,PCB的内容,进程标识:本进程的标识符(process ID),唯一,通常是一
15、个整数创建本进程的进程(父进程)的标识符用户标识符(user ID);进程组关系,49,PCB的内容,处理器状态信息:通用寄存器指令计数器程序状态字PSW 状态码、状态信息用户栈指针,PCB的内容,进程调度信息:进程状态进程优先级调度所需其他信息 等待时间/执行时间等与调度算法有关等待的事件,50,51,PCB的内容,进程控制信息:程序和数据地址进程同步和通信机制 信号量、消息队列指针资源清单链接指针 下一个PCB的首址,52,PCB表:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度。,PCB表组织
16、方式,53,链接结构,相同状态的进程PCB组成一个链表,不同状态对应多个不同的链表就绪链表、阻塞链表,54,55,索引结构,对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址,56,57,进程队列,不同状态进程分别组成队列运行队列、就绪队列、等待队列,58,59,进程映像,进程映像在内存中可以连续存放或非连续存放。用户程序用户数据栈用于过程调用和参数传递进程控制块PCB在OS空间用户进程不能直接访问、修改自己的PCB,60,思考,请说说PCB的作用。,61,2.1 进程描述2.2 进程控制2.3 线程2.4 实例:Solaris,第2章 进程描述与控制主要内容,2.
17、5 进程同步2.6 经典进程的同步问题2.7 管程机制2.8 进程通信,62,2.2 进程控制,操作系统内核负责控制和管理进程的产生、执行和消亡的整个过程,这主要通过对它们的控制操作实现。操作系统的进程控制操作主要有:创建进程、撤消进程、阻塞(挂起)进程、恢复进程、改变进程优先级、封锁进程、唤醒进程、调度进程等。,63,进程控制的实现,进程控制就是对系统中的所有进程实施管理,进程控制一般由原语来实现。所谓原语是一种特殊的系统功能调用,它可以完成一个特定的功能,其特点是原语执行时不可被中断。,64,思考,如何实现原语?,65,常用的进程控制原语,创建原语撤销原语阻塞原语唤醒原语,66,进程创建,
18、申请空白PCB为新进程分配资源 如内存初始化进程控制块 将新进程插入就绪队列,67,进程创建,进程创建原语的形式:create(name,priority,start-addr),68,进程创建,算法 create输入:新进程的符号名,优先级,开始执行地址输出:新创建进程的内部标志pid 从pcb资源池中申请一个空闲的pcb结构;if(无空pcb结构)return(错误码);用入口参数设置pcb内容;置进程为“就绪”态;将新进程的pcb入就绪队列;将新进程的pcb入总链队列;return(新进程的pid);,69,思考,为什么创建进程要用原语来实现?,70,进程撤销,根据被终止进程的标识符,从
19、PCB集合中检索出该进程的PCB将进程所拥有的资源交给父进程或系统进程释放PCB,71,进程撤销,算法:kill输入:无输出:无 由运行指针得到当前进程的pid;释放本进程占用的资源;该进程从总链队列中摘去;释放PCB;转进程调度程序;,72,进程阻塞,阻塞:当一个进程所期待的某一事件尚未出现时,该进程调用阻塞原语将自己阻塞。进程阻塞是进程的自身的一种主动行为。,73,进程阻塞,算法:susp输入:chan(进程等待的原因)输出:无 保护现进程的CPU的现场到PCB结构中;置该进程的状态为“阻塞”态;将该进程的PCB插入到chan的等待队列;转进程调度程序;,74,进程唤醒,唤醒:处于阻塞状态
20、的进程是绝不可能叫醒它自己的,它必须由它的合作进程用唤醒原语唤醒它。,75,进程唤醒,进程唤醒原语的形式:wakeup(chan)其中:chan 唤醒进程阻塞的原因。,76,进程唤醒,算法 wakeup输入:chan等待的事件(阻塞原因)输出:无保护现行进程的CPU现场到pcb结构中;置该进程为“就绪”态;将该进程入就绪队列;找到该阻塞原因的队列指针;for(该队列上每一个等待的进程)将进程移出此等待队列;置进程状态为“就绪”;将进程入就绪队列;转进程调度;,77,思考,请设想一下进程在什么情况下会变为阻塞状态?阻塞进程在什么情况下会被唤醒?谁来唤醒它?,78,进程切换,在某时刻,一个正在运行
21、的进程被中断,操作系统就将另一个进程置为运行状态,并对其进行控制。当操作系统掌握控制权时,切换随时会发生。可能将控制权交给操作系统的事件有:中断 对外部事件的响应陷阱 处理错误或意外情况系统调用 调用操作系统功能,79,进程切换,操作系统将进行以下步骤完成进程切换:保存处理器内容。对当前运行进程的PCB进行更新。将这个进程的PCB移入适当的队列。挑选其他进程执行。对挑选进程的PCB进行更新。对存储器管理数据结构进行更新。将被选中进程上次移出时的处理器状态进行恢复。,80,思考,OS如何进行进程切换?何时会发生进程切换?,81,2.1 进程描述2.2 进程控制2.3 线程2.4 实例:Solar
22、is,第2章 进程描述与控制主要内容,2.5 进程同步2.6 经典进程的同步问题2.7 管程机制2.8 进程通信,82,2.3 线程,2.3.1 线程的引入 2.3.2 用户级线程和内核支持线程 2.3.3 线程与进程的比较,83,2.3.1 线程的引入,引入进程的目的是为了使多个程序并发执行,以改善资源利用率、提高系统吞吐量。引入线程则是为了减少程序并发执行时所付出的时空开销。,84,进程的两个基本属性,1.进程是一个可拥有资源的基本单位。2.进程同时又是一个可独立调度和分派的基本单位。进程作为一个资源拥有者,在创建、撤消、切换中,系统必须为之付出较大时空开销。所以系统中进程的数量不宜过多,
23、进程切换的频率不宜过高,但这也就限制了并发程度的进一步提高。,85,为解决此问题,人们想到将进程的上述两个属性分开,即对作为调度和分派的基本单位,不同时作为独立分配资源的单位;对拥有资源的单位,不对之进行频繁切换。线程因而产生。,线程,86,线程,在引入线程的OS中,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程;同一进程中的多个线程之间可以并发执行。,87,引入线程的好处,创建一个新线程花费时间少(结束亦如此)两个
24、线程的切换花费时间少因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核适合多处理机系统,88,线程的定义及特征,线程是进程内的一个相对独立的、可独立调度和指派的执行单元。线程具有以下性质:线程是进程内的一个相对独立的可执行单元。线程是操作系统中的基本调度单元。一个进程中至少应有一个线程。线程并不拥有资源,而是共享和使用包含它的进程所拥有的所有资源。线程在需要时也可创建其他线程。,89,线程的状态和管理,线程也有一个从创建到消亡的生命过程,虽然在不同的操作系统,线程的状态设计不完全相同,但就绪、运行、阻塞3个关键的状态是共有的。线程中不具有进程中的挂起状态。对具有多线程的进程状
25、态,若一个线程被阻塞,整个进程不被阻塞。线程使用线程控制块(TCB)来描述其数据结构。线程的状态转换是通过相关的控制原语来实现的。,90,例子,LAN中的一个文件服务器,在一段时间内需要处理几个文件请求。因此有效的方法是:为每一个请求创建一个线程。在一个SMP机器上:多个线程可以同时在不同的处理器上运行。,91,例子,一个线程显示菜单,并读入用户输入;另一个线程执行用户命令。考虑一个应用:由几个独立部分组成,这几个部分不需要顺序执行,则每个部分可以以线程方式实现。当一个线程因I/O阻塞时,可以切换到同一应用的另一个线程。,92,2.3 线程,2.3.1 线程的引入 2.3.2 用户级线程和内核
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理 第二 进程 描述 控制
链接地址:https://www.31ppt.com/p-6606453.html