《操作系统》2进程与线程.ppt
《《操作系统》2进程与线程.ppt》由会员分享,可在线阅读,更多相关《《操作系统》2进程与线程.ppt(29页珍藏版)》请在三一办公上搜索。
1、第2章 进程与线程,本章目录,2.1 进程的概念,2.1.1 多道程序设计环境下的程序特点,2.1.2 进程的定义,2.2 进程的管理,2.2.1 进程控制块,2.2.2 进程控制块队列,2.4.3 Linux进程的生存过程,2.2.3 进程控制的系统调用命令,2.1.3 进程的状态及状态变迁,2.3 线程,2.3.1 线程的概念,2.3.2 线程的实现,2.3.3 线程与进程的关系,2.4 Linux的进程,2.4.1 Linux进程,2.4.2 Linux的几种链接信息,2.1 进程的概念,多道程序设计环境下的程序特点,.,单道程序设计环境下的程序特点,1.,资源的独占性,程序A,程序B,
2、程序C,时间,4,2,3,4,2,4,5,3,3,0,4,6,9,14,18,20,23,26,30,图例:打印机输出 CPU执行,.,.,执行的顺序性,结果的再现性,多道程序设计环境下的程序特点,2.,程序A,时间,0,4,6,9,12,15,17,13,18,22,程序B,程序C,.,执行的并发性:宏观上,在内存的多个程序都按自己程序规定的操作步骤向前推进;微观上,CPU在任何时刻只执行一个程序,它们轮流占用CPU,交替地执行着。,.,相互的制约性:内存里的多个程序共享系统中的资源,相互间必然有各种制约。一种是“间接制约关系”,另一种是“直接制约关系”。,程序P1调用echo()函数,ge
3、tchar()接收到从键盘输入的字符x,在将其存于变量chin后被中断;,程序P1从断点恢复执行。此时由于P2调用了echo(),chin里原先的x被y所覆盖。于是,在屏幕上显示的是y,而不是x。,程序P1调用echo()函数,getchar()接收到从键盘输入的字符x,然后在屏幕上显示出字符x;,.,状态的多变性:诸多程序在运行过程中有着各种制约关系,致使内存中每一个程序的状态总在不断的变化之中:时而获得CPU处于运行状态;时而由于输入/输出或申请某种资源未得到满足而只好挂起来等待。它们走走停停,停停走走,交替式地向前推进,直至终点。,例2-1:,在多道程序设计环境下,“结果再现性”被打破的
4、简单例子,void echo()chin=getchar();chout=chin;putchar(chout);,执行顺序1:,程序P2调用echo()函数,getchar()接收到从键盘输入的字符y,然后在屏幕上显示出字符y。,(1),(2),.,.,执行顺序2:,(1),(2),(3),程序P2获得CPU使用权,调用echo()函数,从头做到尾,屏幕上显示字符y;,返回目录,.,2.1.2 进程的定义,1.,进程的定义,.,进程是程序的一次运行活动;,进程的运行活动是建立在某个数据集合之上的;,进程要在获得资源的基础上从事自己的运行活动。,所谓“进程”是指一个程序在给定数据集合上的一次执
5、行过程,是系统进行资源分配和运行调度的独立单位。,可从三个方面来描述进程:,(1),(2),(3),例2-2:,驼峰溜放控制过程中的进程,驼峰,到达场,编组场,溜放中的一勾车,雷达测速、测长,道岔(轨道电路),一列新货车,一列解体货车,缓行器,1,2,3,4,5,6,7,8,股道号,溜放中的一勾车,扳道岔程序,.,.,缓行器控制程序,.,雷达测速程序,.,雷达测长程序,.,巡回检测程序,2.,进程与程序的关系,进程是一个动态的概念,强调的是程序的一次“执行”过程;程序则是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,是一个静态的概念。,.,.,不同进程可执行同一个程序。由进程的定
6、义可知,区分进程的条件一是所执行的程序,二是数据集合。即使多个进程执行相同的一个程序,只要它们运行在不同的数据集合上,它们就是不同的进程。,.,每个进程都有自己的生命期。进程的本质是程序的一次执行过程,当系统要完成某项工作时,它就“创建”一个进程,以便执行事先编写好的、完成该工作的那段程序。程序执行完毕、完成预定的任务后,系统就“撤消”这个进程,收回它所占用的资源。一个进程创建后,系统就感知到它的存在;一个进程撤消后,系统就无法再感知到它。于是从创建到撤消,这个时间段就是一个进程的“生命期”。,.,进程之间具有并发性。在一个系统中,同时会存在多个进程,与它们对应的多个程序同时在系统中运行,轮流
7、占用CPU和各种资源。这正是多道程序设计的初衷,说明这些进程在系统中并发执行着。,.,进程间会相互制约。由于进程是系统中资源分配和运行调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。,通常,系统进程运行在核心态,用户进程运行在用户态。不过,在微内核模式下,只有那些执行基本功能程序的进程,运行在核心态,那些执行非基本程序的进程,则以各种服务的形式运行在用户态。,系统进程与用户进程都要使用系统中的各种资源,它们都是资源分配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。也就是说,在双方出现对资源的竞争时,系统进程有优先获得资源、优先得到运行的权利。只有
8、这样,才能保证计算机系统高效、有序的工作。,系统进程直接管理软、硬件资源的有关活动;而用户进程则不得插手资源管理,在需要使用资源时,必须向系统提出申请,由系统统一调度与分配。,系统进程间的相互关系由操作系统负责协调,以利于增加系统的并行性,提高资源的整体利用率;用户进程间的相互关系由用户自己(在程序中)安排。不过,操作系统会向用户提供一定的协调手段(以系统调用命令的形式)。,3.,系统进程与用户进程,.,在多道程序设计系统中,既有操作系统程序,又有用户程序,因此整个系统中存在着两类进程:一类是系统进程,一类是用户进程。,.,操作系统中用于管理系统资源的那些可以并发执行的程序,构成了一个个系统进
9、程,它们提供系统的服务,分配系统的资源;而可以并发执行的用户程序段,形成一个个用户进程,它们是操作系统的服务对象,是系统资源的实际享用者。,.,系统进程与用户进程的主要区别:,(1),(2),(3),(4),返回目录,终止:进程或正常结束,或因某种原因被强制结束。这时,系统正在为其进行善后处理。,阻塞:进程正在等待某事件(如I/O完成)的发生。在事件到来之前,即使把CPU分配给这个进程,它也无法运行。阻塞状态有时也被称为等待状态。,运行:进程获得CPU正在被执行中。若系统只有一个CPU,那么任何时候系统中最多只有一个进程处于运行状态。,就绪:进程已具备运行的条件,只要有机会获得CPU,它就可以
10、投入运行。,创建:进程正在初创时期,操作系统还没把它列入可执行的进程行列。,进程的状态及状态变迁,1.,进程的基本状态和状态变迁,.,.,就绪,提交,运行,阻塞,终止,调度,撤销,超时,事件发生,等待事件,三种最基本的状态,创建,进程的五种状态,(1),(2),(3),(4),(5),进程状态的变迁,进程从一个状态改变成另一个状态,称为进程状态的“变迁”。箭头上的文字,是引起状态变迁的原因。并不是所有的进程状态之间都可发生变迁。,.,可能的变迁为:创建就绪,就绪运行,运行就绪,运行阻塞,阻塞就绪,运行终止,就绪/挂起:进程在辅存。只要被激活,进程就可以调入内存,如果获得CPU就可以投入运行。,
11、2.,对进程状态更细致的划分,就绪/挂起,就绪,激活,运行,阻塞,终止,调度,撤销,超时,事件发生,等待事件,挂起,阻塞/挂起,激活,挂起,事件发生,创建,提交,提交,挂起,.,.,若内存中现有的进程都在等待I/O的完成,CPU只能空闲运转。这无疑是对系统资源的一种浪费。,.,使用磁盘与内存间的交换技术,可达到提高CPU利用率的目的。,新增两个状态,(1),(2),阻塞/挂起:进程在辅存等待事件的发生。只要被激活,进程就可以调入到内存里去等待事件的发生。,.,处于这两种状态的进程,表示它们是在辅存而不是内存。只有通过“激活”,才可以使这些进程的状态变迁为“就绪”或“阻塞”,从而进入内存。,.,
12、这时,比较重要的变迁是:阻塞阻塞/挂起,阻塞/挂起就绪/挂起,就绪/挂起就绪,就绪就绪/挂起,创建就绪,创建就绪/挂起,阻塞/挂起阻塞,运行就绪/挂起。,返回目录,进程控制块里包括四种基本信息:标识信息、现场保护区信息、调度信息以及管理信息。,程序代码及与代码相关联的数据集合,是组成一个进程的实体。但它们都是静态文本,无法反映进程的各种动态特征。,2.2 进程的管理,2.2.1 进程控制块,.,.,.,1.,进程控制块,为便于管理和控制进程的执行,为随时刻画进程的动态特性,为反映进程间的相互关系,操作系统用一个与进程有关的数据结构来完成这样的任务。这个数据结构被称为“进程控制块(PCB)”,它
13、由操作系统创建和管理。,标识信息,现场保护区信息,调度信息,管理信息,进程标识符(进程名),进程标识数(PID),家族关系(父进程),家族关系(子孙进程),通用寄存器,指令计算器,程序状态字(PSW),用户栈指针,进程状态,进程优先数(级/权),等待原因,队列指针,程序存放位置,资源使用历史,打开的文件,数据存放位置,由于进程控制块PCB里包含着一个进程所需要的所有信息,因此它是操作系统中最重要的一种数据结构。进程的PCB是系统感知一个进程实际存在的唯一实体。,.,2.,进程的三个组成部分,.,.,操作系统中进程由三个部分组成,称为“进程映像”。,(1),(2),(3),程序:进程将要执行的程
14、序;,数据:用户空间中的可修改部分,如数据、堆栈、可修改程序;,进程控制块PCB:记录操作系统管理、控制进程所需要的数据信息。,进程映像的表示,PCB,PCB,PCB1,PCB2,程序,程序,程序,数据集合,数据集合,数据集合1,数据集合2,(a),(b),(c),3.,进程间的切换,进程P0,进程P1,操作系统,中断或系统调用,保护现场到PCB0,从PCB1现场保护区获取现场信息,中断或系统调用,保护现场到PCB1,从PCB0现场保护区获取现场信息,执行,执行,执行,被打断的断点x,从断点x恢复执行,被打断的断点y,返回目录,PCB中可以有多个队列指针,以反映进程间的不同关系,比如用另一个指
15、针反映出进程间的家族关系。,还可以有就绪/挂起队列、阻塞/挂起队列等;,队列最后一个PCB的“队列指针”里,放队列结束标志,如“-1”;,操作系统要为每个队列设置一个头指针,通过它及队列中各PCB里的队列指针,可以得到该队列里的所有进程的PCB;,2.2.2 进程控制块队列,.,操作系统是通过PCB来管理系统中 的进程的。最常用的办法是根据进程所处状态的不同,通过PCB中的链接指针,形成各种管理队列。,.,运行队列头指针,就绪队列头指针,PCB,PCB,PCB,PCB,PCB,-1,阻塞队列1头指针,PCB,PCB,-1,阻塞队列2头指针,PCB,PCB,PCB,PCB,-1,PCB,队列指针
16、,(a)带有队列指针的PCB,(b)由PCB组成的各种队列,几点说明,(1),(2),(3),(4),返回目录,按系统所采用的调度算法,将其PCB排入就绪队列或就绪/挂起队列。,调用创建进程原语后,系统中出现一个新的进程,就会感知到这个进程的存在。一个进程创建(或“派生”)另一个进程,前者称为父进程,后者称为子进程。,2.2.3 进程控制的系统调用命令,在执行期间不能被打断、不能被分割的程序段,在操作系统里称作“原语”、“原子操作”或“不可分割的操作”。,.,.,.,有关进程控制的系统调用命令都是以原语的形式出现的。,1.,创建进程原语,屏蔽中断,申请一个PCB,分配一个标识,填写PCB,将进
17、程置为就绪或就绪/挂起状态,到相应队列排队,开中断,不能被分割的整体,.,创建进程原语程序主要应该完成的工作,(1),为新进程申请一个PCB;,(2),为新进程分配一个唯一的标识;,(3),根据创建者提供的信息,填写进程控制块PCB里的各项内容;,(4),.,创建进程原语的图中,“屏蔽中断”及“开中断”两个操作,是为了保证整个执行流程不被分割而设置的。也就是说,这四项工作必须作为一个整体一次执行完毕,中间不能被别的操作打断。这是原语的要求。,2.,撤消进程原语,.,调用撤消进程原语后,一个原来在系统里存在的进程就消失了,系统再也不会感知到它的存在。,.,撤消进程原语应该完成的工作,(1),(2
18、),根据进程标识,找到相应的PCB,若该进程正在运行,则立即终止运行;,(3),释放该进程使用的所有资源(如程序、数据所占用的存储空间等);,(4),若有子孙进程,终止它们,释放资源;,归还所占用的PCB空间。,3.,阻塞进程原语,.,在生命期里,进程走走停停。“停”的原因,就是为等待某个事件的发生而被阻塞。调用阻塞原语后,一个原来处于运行的进程变为阻塞状态,操作系统将会重新对CPU进行分配。,.,阻塞进程原语应该完成的工作,(1),(2),停止进程的运行,将CPU的运行现场保护到该进程PCB的现场保护区;,(3),把进程的状态由运行修改为阻塞,并到相关的阻塞队列里排队;,转向操作系统的进程调
19、度程序,将CPU分配给另外一个进程使用。,.,4.,唤醒进程原语,当所等待的事件发生以后,进程就应该被唤醒,让其去参与对CPU的竞争。调用唤醒进程原语后,一个进程又可以“走”了。,.,唤醒进程原语应该完成的工作,(1),(2),将进程从相应的阻塞队列上摘下来;,(3),把进程的状态由阻塞修改为就绪,并到就绪队列里排队;,转向操作系统的进程调度程序,将CPU分配给另外一个进程使用。,5.,挂起进程原语,.,当系统为了获得所需的内存空间,在主-辅存之间交换进程时,进程才会有挂起状态。,.,挂起进程原语应该完成的工作,(1),(2),得到需要挂起的进程的PCB,将其从相应队列里摘下;,(3),申请位
20、于辅存上的交换区空间,将进程映像的部分或全部写入交换区,并将交换区地址记入该进程PCB;,根据进程原先的状态,把其状态修改为阻塞/挂起,或就绪/挂起;,(4),系统收回进程所占用的内存空间。,通过对驼峰溜放控制过程的简略描述,理解进程控制原语的应用。,激活是针对处于“阻塞/挂起”或“就绪/挂起”状态的进程实行的操作。由于它是挂起的“逆”操作,因此激活进程的原因就与挂起的原因相关。,每股道是一个“进路”。对任何一个道岔,知道所来勾车的进路编码,就能知道当前道岔应该是往左扳动还是往右扳动。,.,6.,激活进程原语,.,激活进程原语应该完成的工作,(1),(2),得到需要激活的进程的PCB,将其从相
21、应队列里摘下;,(3),申请所需要的内存空间,将存放在辅存交换区里的进程映像读入该内存区域;,根据进程状态修改为阻塞或就绪,把PCB排入相应的管理队列;,(4),释放所占用的辅存交换区。,勾车进入方向,勾车出清方向,勾车出清方向,道岔,轨道电路,轨道电路,轨道电路,勾车进路表,例2-4:,(1),对每个道岔,都装有“轨道电路”硬设施,当一勾车的第一对车轮从进入方向压到轨道电路时,它会发一个消息给计算机;当这一勾车的最后一对车轮从出清方向压到轨道电路时,它也会发一个消息给计算机。,(2),(3),系统为每一个道岔开设一张勾车进路表,保存所来勾车的进路编码。,返回目录,2.3.1 线程的概念,2.
22、3 线程,1.,引入线程的原因,进程的两个属性,做法是将进程的两个属性拆开来,进程只作为“资源拥有者”,“调度和运行”则赋予线程。这样,CPU的利用率能得到更多的提高,使系统的效率得到更充分地发挥。,.,(1),(2),进程是系统资源分配的单位;,进程是系统调度运行的单位。,.,资源分配和调度运行彼此间是独立的。为提高进程的并发执行程度,减少系统在进程切换时所花费的开销,就出现了与进程管理相关联的更高级的概念:线程。,.,(a)单进程,单线程,(b)单进程,多线程,(c)多进程,每个进程一个线程,(d)多进程,每个进程多个线程,在引入线程的操作系统中,线程是进程中的实体。实施CPU分配时,是把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 进程 线程

链接地址:https://www.31ppt.com/p-4952570.html