版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北科技师范学院大专课程
操作系统第七讲主讲人:曾晓宁网络班调课的事2023/2/113.1进程的引入
3.2进程结构
3.3进程控制3.4进程的同步与互斥3.5进程间通信3.6进程调度3.7死锁3.8线程第3章进程管理2023/2/12 计算机系统中,最宝贵的资源是CPU。为了提高它的利用率,需要引入多道程序设计的概念。当内存储器中同时有多个程序存在时,如果不对人们熟悉的“程序”概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。因此,在本章将给出操作系统中的重要概念:“进程”。它将是在多道程序运行环境下,系统资源分配和独立运行的基本单位。回忆复习2023/2/13在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。
3.1进程的引入
3.1.1顺序程序与并发程序2023/2/141、程序的顺序执行在早期的单道程序系统中,编制一个程序时,通常是按顺序进行设计:先安排输入语句,然后是对输入数据进行处理的语句,最后安排数据处理结果的输出语句。这就是人们所习惯的传统的顺序程序设计方法。程序在执行时也是按顺序依次执行各条语句,而不必考虑其他的用户程序。2023/2/15程序的顺序执行的特征顺序性封闭性可再现性2023/2/16顺序性:处理机的操作严格按照程序所规定的顺序执行,一个程序开始执行必须要等到前一个程序已执行完成。绝对不可能出现在一个程序运行过程中,又夹杂进另一个程序执行的现象存在。2023/2/17封闭性:程序一旦开始执行,就在封闭的环境下执行,其计算结果不受外界因素影响。任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。2023/2/18可再现性:
程序的结果与它的执行速度无关(即与时间无关),只要执行环境和初始条件相同,当多次重复执行一个程序时,无论不停的执行还是“走走停停”,一定会得到相同的结果。2023/2/192、程序的并发执行 所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。
2023/2/110一个有四条语句的程序段:S1:a:=x+2;S2:b:=y+4;S3:c:=a+b;S4:d:=c+b;
2023/2/111程序的并发执行s4S1S2s32023/2/112输入1输入2输入3计算1计算2计算3输出1输出2输出3图:程序的并发执行2023/2/113I1输入设备处理机打印机I2C1I3C2P1C3P2t1t2t3t4t7t5t6t8P3t92023/2/114I1P3输入设备处理机打印机I2C1I3C2P1C3P2t1t2t3t4t52023/2/115间断性:(共享、合作、制约导致)在程序并发执行时,各个程序的执行已经不再可能完全依照自己的执行次序执行了;程序并发执行的特点2023/2/116失去了程序的封闭性:系统资源不再由单个程序独占,因此资源的状态由多道程序的活动共同决定。程序在执行的过程中必然会受到其他程序的影响。2023/2/117不可再现性:在多道环境中,即使初始条件相同,同一个程序多次执行的结果也可能不同。2023/2/118实例两个并发执行的程序A和B,它们共享一个公共变量n,
A:n=7;
程序A和B并发执行,可以出现以下3种情况:①print(n)在n=2和n=7之间执行,则打印结果为2;②print(n)在n=2和n=7之后执行,则打印结果为7;③print(n)在n=7和n=2之后执行,则打印结果为2;B:n=2;
print(n);2023/2/119
综上所述,在单道系统中可以用程序代表顺序程序的执行过程,但在多道系统中,程序的并行、制约等特征使得用程序这个静态概念已不能描述系统中的运行情况了。为此,在操作系统设计中引入了一个新的概念—进程。
2023/2/1203.1.2进程的定义及特性进程的定义进程与程序的区别进程的特性2023/2/121进程的定义
进程是具有独立功能的程序关于某个数据集合的一次执行过程,是系统资源分配和调度的基本单位。2023/2/122C语言编译程序PStartStartPause1End1P1Pause2End2P2进程实例实例:把两个C语言的源程序f1.c和f2.c编译成目标代码文件f1.obj和f2.objf1.cf2.c2023/2/1232、进程的特征动态性并发性独立性异步性结构性2023/2/124(1)动态性:(最基本特征)进程的实质是程序关于某个数据集合的一次执行过程,因此动态性是进程的一个重要特征。进程有一定的生命周期,主要表现为它是由“创建”而产生,由系统“调度”运行,最后由系统“撤消”而消亡。2023/2/125(2)并发性:多个进程同在内存中,且能在一段时间内同时运行;这些进程轮流占用CPU和各种系统资源,同时在系统中运行。没有建立进程的程序是无法并发运行的。2023/2/126(3)独立性:
进程是一个能独立运行、独立分配资源、独立接受调度的基本单位。进程在获得其必需的一切资源后便可执行,而当系统不能提供它所要求的资源时,它便暂停执行。2023/2/127(4)异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的不可预知的速度向前推进。因此,系统必须提供某些设施,来保证程序之间能协调操作和共享资源。2023/2/128(5)结构特征:从结构上看,一个进程都是由程序、数据和进程控制块PCB三部分组成。进程控制块PCB是系统专门为进程设立的数据结构,用来记录进程的状态变化。2023/2/129动态特征的集中反映描述要完成的功能操作对象及工作区2023/2/130进程间由于共同协作和共享资源,导致生命期中的状态不断发生变化。比如一个正在运行的进程如果要等待输入/输出的完成,这时它就不能继续运行。另一种情形是一个进程是可以运行的,但由于操作系统把处理机分配给了别的进程使用,于是它也只能处于等待。只有当前占有CPU的进程,才真正在处于运行。3.1.3进程的状态及转换开始啦2023/2/131从创建到撤消的过程中,具有执行-暂停-再执行的活动规律。于是,进程在其生命期内,可以处于下面3种基本状态之一。2023/2/132就绪状态运行状态阻塞状态1、进程的三种基本状态2023/2/133进程已经分配了除处理机以外的所有必要资源,只要再获得处理机就能够执行的状态。(但CPU正被其它进程占用,它暂时不能执行。)这样的进程可能有多个,通常排成一个队列,称就绪队列。当CPU空闲时,从就绪队列中选择一个进程执行。就绪状态2023/2/134运行状态进程已经获得CPU,正在运行。在单处理机系统只有一个进程处于执行状态。多处理机系统则有多个处于执行状态。2023/2/135阻塞状态又叫等待状态或睡眠状态。正在执行的进程由于等待I/O或某事件的完成而暂时无法继续执行时,这时便放弃CPU而进入的暂停状态,又称等待状态。引起阻塞的事件:请求I/O,申请缓存。根据进程阻塞的不同原因,把进程组织成多个队列,称为阻塞队列。2023/2/136一个进程的状态,可以随着自身的推进和外界环境的变化而变化,从而使其从一种状态变迁到另一种状态。下图是进程状态变迁图,箭头表示的是状态变迁的方向,旁边标识的文字是引起这种状态变迁的原因(依据条件而转换)。注:新创建的进程通常属于就绪状态2023/2/137就绪阻塞执行进程调度等待某事件发生(如I/O请求)某事件发生(I/O完成)时间片用完或出现高优先级进程进程基本状态变迁图2023/2/138对进程状态的转换过程,我们应注意如下4点:(1)进程从阻塞态到运行态,必须经过就绪态而不能直接转换到运行态。
这是因为此进程阻塞原因解除具备可运行条件时,系统中可能有多个进程都处于逻辑上可运行状态,因此系统必须根据一定的算法选择一个就绪进程占用CPU。这种选择过程被称为进程调度。2023/2/139(2)一个进程由运行态转换为阻塞态一般是由运行进程自己主动提出的。
例如,进程在运行过程中需要某一条件而不能满足时,就自己主动放弃CPU而进入阻塞态。2023/2/140(3)一个进程由阻塞态变为就绪态总是由外界事件引起的,而不是由该进程自己引起的。当进程所等待的事件发生后,进程便由阻塞态变为就绪态。
2023/2/141(4)处于就绪状态与阻塞状态的进程,虽然都“暂时无法运行”,但两者有着本质上的区别。
前者已做好了运行的准备,只要获得CPU就可以投入运行;而后者要等待某事件(比如输入/输出)完成后才能继续运行,因此即使此时把CPU分配给它,它也无法运行。2023/2/142进程之间由于存在同步和资源的竞争等相互制约等关系,因此导致了各进程在其生命周期内存在状态的变化。以上三种状态是最基本的状态,在实际的操作系统中,往往不止这三种,不同的系统,出于调度策略的考虑,有时把进程状态做进一步的细化。2023/2/1432、进程的其它两种状态创建状态
是进程刚被创建时的状态,此时该进程正在等待OS完成创建进程的必要操作。(为新进程分配进程标识符、创建管理进程所需的表格及PCB分配进程所需的资源。)当已完成创建进程的必要操作,且此时系统性能和内存容量均允许时,进程从创建状态转换为就绪状态,插入到就绪队列中。2023/2/144终止状态当一个正在执行的进程执行到结束语句,或出现了异常错误时,此进程将被停止执行,并释放其所占有的资源;但仍然驻留在内存中,直到其他进程读取完该进程的有关信息后,才被删除。2023/2/1453、挂起状态(被调出内存的状态)引入原因:系统负荷调节的需要终端用户的请求系统的需要父进程的需要2023/2/146就绪进程运行的需要内存中的所有进程均处于阻塞状态,且CPU空闲,没有足够空间来运行。为了有效地利用CPU,这时需要把一些阻塞进程挂起,即将它们从内存移出到外存,调入外存,以便腾出足够的内存空间装入就绪进程运行。2023/2/147系统负荷调节的需要当系统中进程数太多,资源相对不足,工作负荷较重时,系统希望暂时挂起一些进程(如优先级较低的程序),以减轻负荷保证系统能正常运行。等负荷轻时再将挂起进程恢复运行。2023/2/148终端用户的请求当终端用户在运行自己的程序的发生错误时,希望自己的进程静止下来,即挂起,以便进行检查和修改。2023/2/149系统的需要当系统出现故障或某些功能受到破坏时,需要暂时将系统中的进程挂起,等系统把故障排除后,再恢复原来状态。
2023/2/150父进程的需要有时父进程为了协调各子进程间的活动,或是检查和修改子进程。希望挂起自己的子进程。2023/2/151被挂起的进程可能是就绪进程,也可能是阻塞进程。在五状态基础上再增加两种新的进程状态:挂起就绪状态和挂起阻塞状态。挂起就绪状态是指进程被存放在外存中,但已具备运行条件;挂起阻塞状态是指进程被存放在外存中,正在等待某一事件发生。2023/2/152补:进程调度方式1、非抢占方式一旦把CPU分配给某进程后,便让该进程一直运行下去,直到该进程完成或发生某事件(如提出I/O请求)而自动阻塞时,才把CPU分配给另一进程。优点:简单,系统开销小。缺点:紧急任务到达时,不能立即投入运行,以致延误时机。若干个后到的短作业,须等待长作业运行完毕,致使短作业的时间增长。2023/2/153实例有三个进程P1,P2,P3先后(但又几乎是同时)到达,它们分别需要20、4、2个单位时间即可运行完毕。若它们按P1,P2,P3的顺序执行,且不可抢占,则三个进程各自的周转时间分别为20、24、26个单位时间,三者的平均周转时间是23.3个单位时间。2023/2/1542、抢占方式当一个进程正在执行时,系统可以基于某种原则,抢占已分配给它的处理机,并将处理机分配给其他进程。抢占原则有:优先权原则:即优先权高的进程可以抢占优先权低的进程的处理机而运行;短作业优先原则:当短作业到达时,可立即抢占长进程的处理机而运行;时间片原则:一个时间片完后重新调度。
2023/2/155对前例若采用基于时间片原则的抢占调度方式。由下图可以看出P1、P2、P3的周转时间分别为26、10、和6个单位时间,而平均周转时间则已由非抢占方式的23.3降为14个单位时间。P1P2P1P3P2P1P1P12*2*2*2*2*2*2120246810121426基于时间片原则的抢占高度方式示例图2023/2/156创建就绪阻塞终止挂起就绪
完成激活挂起挂起激活获得资源或某事件完成获得资源或某事件完成等待资源或某事件发生进程调度时间片用完或出现高优先级进程允许不允许运行挂起挂起阻塞
图:具有挂起状态的进程状态图2023/2/1573.2进程的结构一个进程创建后,需要有自己对应的程序以及该程序运行时所需的数据,但仅有程序和数据还不行,进程在其生命期内是走走停停,停停走走的,暂时停下来以后,至少应该要有一个属于它专用的地方,来记录它暂停时的运行现场。否则,它再次被投入运行时,就无法从上次被打断的地方继续运行下去。2023/2/158是对进程的静态描述,它要由3个部分组成:程序段、数据段以及进程控制块PCB。3.2.1进程的实体PCB……程序段数据段图:进程的组成指针指针2023/2/159系统还必须为每个进程设立一个或多个堆栈,用于保存过程调用或系统调用时的现场信息和参数传递。程序段、数据段、PCB及堆栈统称为进程映像。程序段描述了进程运行一次所要完成的功能,通常是纯代码,可以被多个进程共享;数据段是程序运行时加工处理的对象,通常只能为一个进程专用。2023/2/160PCB包含了进程的描述信息和控制信息,是在进程创建时所建立的,PCB标识了进程的存在,当进程撤消时,PCB也随之撤消。PCB与进程一一对应。堆栈分为系统堆栈和用户堆栈。系统堆栈是进程在核心态下运行时使用的堆栈,位于系统区;而用户堆栈是进程在用户态下运行时使用的堆栈,位于用户区。2023/2/161
3.2.2进程控制块(ProcessControlBlock)为了描述一个进程和其它进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,采用了一个与进程相联系的数据块,称为进程控制块(PCB)。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。PCB常驻内存;PCB与进程是一一对应的。2023/2/162通常将所有的PCB组织在一起,并集中存放在内存的系统表格区,构成一个PCB表。OS专门开辟PCB区将所有的PCB组织成若干个链表或队列。PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统并发度。2023/2/163随操作系统的不同,PCB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行工作总结勇攀高峰无往不胜
- 金融行业管理顾问工作心得
- 互联网金融行业销售工作总结
- 体验式餐厅设计师的文化体验与美食创新
- 家居用品采购心得体会
- 骨科护士长的工作总结
- 《消化道常见症状》课件
- 《健康食品排行榜》课件
- 2021年河北省张家口市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2022年四川省自贡市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 幼儿园后勤主任年终总结
- 除颤仪使用护理查房
- 初级消防设施操作员实操题库 (一)
- 2024版《糖尿病健康宣教》课件
- CURTIS1232-1234-1236-SE-SERIES交流控制器手册
- 2024年邮政系统招聘考试-邮政营业员考试近5年真题集锦(频考类试题)带答案
- 交接试验合同模板
- 医学教案SPZ-200型双向道床配碴整形车操作保养维修手册
- 期末 (试题) -2024-2025学年人教PEP版英语四年级上册
- 小流域水土保持综合治理项目工程施工设计方案
- 2024年四川省宜宾市叙州区六年级数学第一学期期末监测试题含解析
评论
0/150
提交评论