计算机操作系统(第03章)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机操作系统(第03章)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 03 课件
- 资源描述:
-
1、第三章第三章 进程管理进程管理 3.1 进程的概念3.2 进程的描述3.3 进程的状态及其转换3.4 进程控制3.5 进程互斥3.6 进程同步3.7 进程通信3.8 死锁问题3.9 线程第1页,共74页。3.1 进程的概念3.1.1 程序的并发执行 1.程序的顺序执行:一个具有独立功能的程序独占处理机直到最终结束的过程。顺序程序执行的特点:(1)程序执行的顺序性:每个操作必须在下一个操作 之前结束。(2)程序运行环境的封闭性:程序的运行环境只有它 自己的动作改变。(3)程序结果的确定性:其计算结果与执行速度、时间无关.(4)计算的可重现性:只要初始条件相同计算结果就必然相同。第2页,共74页。
2、2.多道程序系统中程序执行环境的变化多道程序系统中程序执行环境的变化 多道程序环境下执行环境的特点:(1)独立性:每道程序逻辑上完全独立,不存在相互的制约关系 (2)随机性:程序的开始执行、数据输入输出、完成时间都是随机的。(3)资源共享:系统内的所有资源都是被所有并发进程所共享。正是由于资源的共享,导致了对程序推进速度的制约。3.程序的并发、并行执行的含义程序的并发、并行执行的含义 (1)程序的并发执行:程序的并发执行:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在宏观上互相重叠。(强调时间段)第3页,共74页。(2)程序的并行执行:一组在逻辑上互相独立的程序或程序段在同一时刻
3、同时执行过程。(强调同一时刻)4.程序的并发执行所带来的影响 程序并发、并行执行最大的优点就是提高了计算机系统的处理能力,使计算机系统的资源利用率大大提高,为计算机的在各方面的低成本应用奠定了基础,也为计算机技术发展提供了条件。但是,也正是由于程序的并发执行,将会导致系统资源的共享和竞争,从而影响程序的推进进度,另外,也为操作系统和用户程序的开发带来一定的难度。程序的并发执行带来的问题:(与速度有关的错误)第4页,共74页。例如:x=0;Pa:Pb:printf(“x=%dn”,x);printf(“x=%dn”,x);由于Pa,Pb交替执行,打印出的结果可能是:(x=1,x=2)或(x=1,
4、x=1)结果不唯一,出错结果不唯一,出错!=RX=X R+=RR1+=XX;1=RX=X R+=RR1+=XX;1第5页,共74页。提出进程概念的原因提出进程概念的原因:由于程序的并发执行,导致程序执行的顺序性被打破;并发执行的程序段共享系统的软硬件资源,导致程序运行环境的封闭性不存在了;由于程序运行环境不再封闭,因此运行结果与程序运行速度有了一定的关系,顺序程序的程序结果的确定性和计算的可重现性也不复存在了。在多道程序系统中,如果我们的程序不采取一定的措施来控制和约束它们之间的推进速度的话,就会导致我们设计的程序的运行结果和我们预期完全不符的现象,得到一个错误的结果,从而给我们的计算机应用带
5、来很多的麻烦,这不是所我们期望的。因此必须有一个描述程序段的执执行过程和共享资源行过程和共享资源的基本单位。第6页,共74页。通过它来描述系统内程序段的运行过程中资源的当前对资源的请求情况、当前资源的实际获得情况和当前已使用完毕资源情况,从而为操作系统和用户程序的设计中对并发执行程序的推进速度的控制提供必要条件。但由于程序定义的顺序性、静态性和孤立性程序定义的顺序性、静态性和孤立性,用程序(段)作为描述其执行过程和共享资源的基本单位既增加操作系统设计和实现的复杂性,也无法反应操作系统所应该具有的程序段执行的并发性、用户随机性以及资源共享等特征,因此需要有一个能描述程序执行过程且能用来共享资源的
6、基本单位,这就是进程。第7页,共74页。3.1.2 进程的定义定义:定义:一个具有独立功能的程序对某个数据集在处 理机上的执行过程执行过程和资源分配的基本单位。进程和程序的区别和联系:进程和程序的区别和联系:(1)进程是动态的概念,而程序是静态的概念;(2)进程具有并行特征,而程序没有;(3)进程是竞争资源的基本单位,从而其并行性受到 系统自己的制约,而程序不是;(4)一个进程可以包含多个程序,一个程序可以对应 多个进程;(5)程序是进程的物理基础;(6)进程的生命周期是短暂的,而程序的生命周期与 进程相比则是长久的。第8页,共74页。进程的特征进程的特征:(1)动态性:进程的实质是程序的一次
7、运行过程,所以动态性是进程最基本的特征;动态性还表现在“它由创建而产生,由调度而执行,由撤消而消亡”;因此进程有一定的生命期。(2)并发性:多个进程能在一段时间内同时运行。(3)独立性:进程是一个能独立运行、独立分配资源和独立调度的基本单位。(4)异步性:各进程按各自独立的、不可预知的速度向前推进。(5)结构特征:为每个进程配置一个PCB。第9页,共74页。作业和进程的区别联系:作业和进程的区别联系:(1)作业是用户相计算机系统提交任务的任务实体,而进程则是完成用户任务的执行实体,是向系统 申请分配资源的基本单位。(2)作业在没有进入执行状态时被存入外存的后备作 业队列中等待调度执行;进程一旦
8、被创建,总有 相应部分被放入内存。(3)一个作业可由多个进程组成,且必须至少由一个 进程组成;但反过来不成立。(4)作业的概念应用范围主要局限于批处理系统中,而进程的概念则用于几乎所有多道程序系统中.第10页,共74页。3.2 进程的描述 进程的组成(进程的组成(静态描述):):进程是由程序、数据和进程控制块程序、数据和进程控制块(PCB)组成PCB的作用:的作用:1.PCB中包含进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。2.创建一个进程时首先创建其对应的PCB;当一个进程完成功能后,系统释放其PCB,进程随之消亡。3.系统根据PCB感知进程的存在,通过PCB中所包含的各
9、项变量的变化,掌握进程所处的状态。系统通过修改PCB中相应项的值来调整进程状态和控制进程的活动。4.PCB的全部或部分是常住内存的。第11页,共74页。PCB包含的基本内容:包含的基本内容:(1)进程的描述信息)进程的描述信息:进程名或进程标识号:是唯一的,代表进程身份用户名或用户标识:是代表该进程的归属家族信息:该进程的家族关系(2)进程的控制信息)进程的控制信息:进程状态:运行、就绪、阻塞 进程优先级:包括占用CPU时间、进程初始优先级等程序起始地址 计时信息:进程占用资源的时间 通信信息:进程之间信息交换的情况5.PCB是系统感知进程存在的唯一实体。第12页,共74页。(3)进程的资源管
10、理信息:存储器信息:占用内存信息和管理用数据结构、共享内存信息I/O设备信息:所用I/O设备编号及相应的管理数据结构文件信息:打开文件信息及管理用数据结构(4)CPU现场保护结构现场保护结构:在当前进程被迫让出处理机时,把当前进程运行的现场环境保存在这个结构中,下次恢复运行时又从这儿取出,恢复到系统中,为进程的再次运行作好准备。第13页,共74页。进程上下文进程上下文 是进程执行活动全过程的静态描述,它包括计算机中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集(正文段)、数据集及各种堆栈值和PCB结构。进程上下文可按一定的执行层次组合,如分为用户级上下文和系统级上下
11、文。进程的执行是在该进程的上下文中进行的,当系统调度新进程占用处理机时,新老进程的上下文就进行切换。UNIX System V中,进程上下文由用户级上下文、寄存器上下文、系统级上下文组成。系统级上下文又分为静态和动态两部分。第14页,共74页。进程空间(虚拟地址空间)进程空间(虚拟地址空间)进程中所有能使用地址的集合。所有程序的执行都在自己的进程空间中进行,用户 程序、进程的各种控制表格都按一定结构排列在进程空间中。进程空间的大小与处理机中指令的地址长度有关。在UNIX和Linux系统中,进程空间又被分为用户空间和系统空间两大部分,用户程序在用户空间中执行,处理机状态处于用户态;而系统程序则在
12、系统空间中执行,处理机状态处于核心态。第15页,共74页。3.3 进程状态及其转换 就绪状态就绪状态 进程已经获得了除CPU以外的所有资源,只要一旦由进程调度程序调度得到处理机便可立即投入运行。就绪状态又可分为:活动就绪状态(内存就绪):进程在内存 静止就绪状态(外存就绪):进程不在内存 运行状态运行状态 进程已经获得了包括CPU在内的所有资源,正在处理机上执行的状态。运行状态又可分为:用户执行状态:执行用户程序时的状态系统执行状态:执行系统核心代码时的状态第16页,共74页。等待状态(阻塞状态)等待状态(阻塞状态)进程因等待某事件的发生而放弃处理机后所处的状态。等待状态的分类:按进程是否在内
13、存分类:活动阻塞状态:进程在内存静态阻塞状态:进程不在内存 按等待事件分类:内存等待:当前没有足够内存 设备等待:当前所需设备忙 文件等待:文件输入输出未完成 数据等待:所需数据没有收到第17页,共74页。进程状态转换图之一就绪等待运行被作业调度选中被进程调度选中时间片到等待事件发生运行结束或出错等待事件已经发生第18页,共74页。进程状态转换图之二ReadyaBlockedaRunningReadysBlockeds事件发生事件发生等待事件等待事件时间片完时间片完被调度被调度挂起挂起挂起挂起解挂解挂解挂解挂挂起挂起事件发生事件发生具有挂起和解挂功能的操作系统中进程的状态变化第19页,共74页
14、。进程控制进程控制:系统使用具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换的过程。通过进程控制,可以达到多进程高效率并发执行,同时也能很好地协调并发进程之间的推进速度,实现资源共享。操作系统中是通过原语来完成对进程控制的。操作系统中是通过原语来完成对进程控制的。原语:原语:操作系统提供的为完成某系统功能的最基本的不可分割的操作。原语是不允许并发执行的。原语分为机器指令级的原语和功能级原语两类,它们都在核心态下执行 3.4 进程控制第20页,共74页。控制进程的原语:控制进程的原语:创建、撤销、阻塞、唤醒等 1.进程的创建:进程的创建:(1)创建方式:)创建方式:A)由系统程序统
15、一创建B)由父进程创建不管用那种方式创建进程,都是调用创建进程原语实现的(2)创建进程原语的工作过程:)创建进程原语的工作过程:A)申请空闲的PCB表项B)填PCB表的内容C)把当前PCB加入就绪队列D)将当前PCB加入进程家族或进程链第21页,共74页。2.进程的撤销:进程的撤销:(1)撤销进程的原因:)撤销进程的原因:A)进程完成任务,正常终止B)进程运行出错异常终止C)其祖先进程要求撤销 不管由于那种原因撤销进程,都是调用撤销进程原语实现的。进程的撤销方式有两种:A)仅撤销该PID代表的进程B)撤销该PID代表的进程及其所有子孙进程这两种方式各有优缺点第22页,共74页。(2)撤销进程原
16、语的工作过程:撤销进程原语的工作过程:A)根据进程PID查找进程链或进程家族,a)如找到,则看其有无子进程,如有:再调用撤销进程原语继续查找,若无,继续执行B b)若未找到,调出错处理 B)释放该进程所占有的资源 C)释放该进程的PCB D)返回第23页,共74页。(3)阻塞原语的工作过程:阻塞原语的工作过程:A)保存当前进程的CPU现场B)将其状态修改为等待状态C)将其插入对应的等待队列D)转进程调度程序(4)唤醒原语的工作过程:唤醒原语的工作过程:A)根据唤醒原因,从对应的等待队列中摘下一PCBB)将其状态修改为就绪状态C)将其插入就绪队列D)转进程调度程序或返回第24页,共74页。有关概
17、念有关概念:1.临界资源临界资源:在一段时间内只允许一个进程使用的资源 2.临界区(临界段):临界区(临界段):进程中访问临界资源的代码段 3.间接制约:间接制约:由共享公有资源而造成的对并发进程执行速度的间接制约,称为间接制约;受相互间接制约的各进程在推进顺序上是任意的。4.直接制约:直接制约:一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程的执行速度的过程称为并发进程的直接制约。3.5 进程互斥第25页,共74页。5.进程互斥:进程互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。也就是说,不允许两个以上的共
18、享该资源的并发进程同时进入临界区称为互斥。6.临界段设计原则(互斥执行准则):临界段设计原则(互斥执行准则):(1)不能假设各并发进程的相对推进速度,即各进程享有平等的、独立的竞争共有资源的权利;(2)空闲让进;(3)若有多个进程同时要求进入,应在有限时间内,让其中之一进入。(4)进程只应在临界段内逗留有限的时间。第26页,共74页。互斥的实现互斥的实现 问题:有两个并发进程问题:有两个并发进程P0和和P1,互斥地共享单个资源。互斥地共享单个资源。设设P0和和P1是一个循环进程,每次只使用资源为一个有是一个循环进程,每次只使用资源为一个有限的时间间隔。限的时间间隔。一、软件实现方法一、软件实现
19、方法1.1.方法方法1:1:考虑用标志位来实现判别和处理考虑用标志位来实现判别和处理 用标志位flagi来标示进程i是否在临界段中执行,当flagi为真,则表示它正在执行临界段;反之不在临界段中执行。那么我们的临界区就可以如下设计那么我们的临界区就可以如下设计:第27页,共74页。#definefalse0#definetrue1 int flag2=0,0;Pi:do while(flagj);flagi=true;Pi的临界段代码CSi;flagi=false;while(true);第28页,共74页。2.方法2 用一个指针turn来指示应该哪个进程进入临界段。若turn=i,则进程Pi
20、进入临界段。Pi:int turn=0;dowhile(turn!=i);Pi的临界段代码CSi;turn=j;while(true);第29页,共74页。二、硬件实现方法二、硬件实现方法 1.临界段问题存在的原因:多个进程共同访问、修改同一个公共变量。导致问题出现的具体原因:(1)在单机系统中:由于中断的原因,使得一个进程对一个公共变量先取其值检测,然后修改的这两个动作之间,可以插入其他进程对此公用变量的访问和修改,从而破坏了此公用变量的完整性和正确性。(2)在多机系统中:该公用变量数据的完整性和正确性的破坏,是由于多个处理机共享主存,使得某处理机可以插入另一处理机的两个存储访问周期之间,访
21、问并修改共享变量。第30页,共74页。2.实现功能的硬件指令:(1)TS指令,其功能描述如下:int TestandSet(int*flag)int tmp;tmp=*flag;*flag=true;return(tmp);注意:其功能是由一条处理机指令完成的,其执行过程是连续的.第31页,共74页。用TS指令实现互斥的程序结构为:为临界资源设置一个锁变量lock,lock的值为true时表示临界资源正被访问,为false时空闲。do;while(TS(*lock);进程的临界段代码CS;lock=false;while(true)第32页,共74页。(2)SWAP指令,其功能描述如下:swa
22、p(int*a,int*b)int tmp;tmp=*a;*a=*b;*b=tmp;第33页,共74页。用TS指令实现互斥的程序结构为:(lock的意义同上)do;key=true;do swap(lock,key);while(key=true);进程的临界段代码CS;lock=false;while(true);第34页,共74页。信号量和P、V原语 1.信号量(信号灯)1)问题的引入:为临界资源S设置锁key,当key为1时,资源可用,否则不可用。lock(keyS)测试key,若key为1,则将key赋值为0并退出,unlock(keyS)则将key赋值为1。结果:容易导致一个进程饥饿
23、。结果:容易导致一个进程饥饿。PA:A:lock(keyS)unlock(keyS)GOTO APB:B:lock(keyS)unlock(keyS)GOTO B第35页,共74页。2)信号量定义:信号量定义:信号量:除赋初值外仅能由同步原语(P、V操作)对其操作的整型变量,其值与其所代表的资源使用情况有关.信号量的物理意义:当其值0时,代表可用资源的数量 当其值0时,其绝对值代表因请求使用该信号量所代表的资 源而被阻塞的进程数量3)建立一个信号量时,必须说明所建信号量所代表的意义和赋初值第36页,共74页。4)信号量的分类:按其数据类型分类:整型信号量记录型信号量 struct semaph
展开阅读全文