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