第3章 进程管理_第1页
第3章 进程管理_第2页
第3章 进程管理_第3页
第3章 进程管理_第4页
第3章 进程管理_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章进程管理操作系统(第三版)操作系统(第三版)操作系统第三版操作系统第三版本章要点本章要点进程的概念线程 进程的控制进程的同步与互斥 进程之间的高级通信进程调度死锁Windows进程管理操作系统第三版操作系统第三版进程的概念进程的概念 1、前趋图前趋图是一个有向无循环图,每个结点用于表示一条语句、一个程序段或一个进程;结点间的有向边表示两个结点之间存在的前趋关系“”。右图的前趋关系:P1 P2,P1 P3,P1 P4,P2 P5,P3 P5,P3 P6,P4 P6,P5 P7,P6 P7操作系统第三版操作系统第三版2、程序的顺序执行和并发执行程序的顺序执行例:语句的顺序执行。一个程序段中的

2、三个语句: S1:a= x+y S2:b=a+8 S3:c=b-9 其中,语句S2 必须在a被赋值后才能执行,同样,S3 也只能在b被赋值后才能执行。因此其前趋图为:S1 S2 S3。程序顺序执行时的特征(1)顺序性(2)封闭性(3)可再现性操作系统第三版操作系统第三版程序的并发执行程序的并发执行是指多个程序所包含的各项操作可以在同一时间段内同时执行。例:程序段中有四个语句:S1:a=x+1S2:b=y+2 S3:c=a+b S4:d=c+a 可画出如下图所示的前趋图,显然S1和S2可并发执行操作系统第三版操作系统第三版例:有两个循环程序A和B,它们共享一个变量n。A和B的程序内容如下:A:

3、S1: n=n+1B: S2: print ( n ) S3: n=0如果A和B以不同的顺序运行,可能出现下述三种情况:(程序开始运行前n的值为a)( 1 ) S1S2S3 运行结果为打印出“a+1”且n值为0 ;( 2 ) S2S3S1 运行结果为打印出“a”且n值为1 ;( 3 ) S2S1S3 运行结果为打印出“a”且n值为0 ;操作系统第三版操作系统第三版程序并发执行时的特性l间断性l通信性l失去封闭性l不可再现性l独立性操作系统第三版操作系统第三版3 3、进程的定义及特征进程的定义及特征进程(Process)的定义进程是可并发执行的程序段在某个数据集合上的一次运行过程,它是系统进行资

4、源分配和调度的一个独立单位。 操作系统第三版操作系统第三版进程的特征l动态性 l并发性l独立性 l异步性l结构特征:系统为每个进程设立一个进程控制块(PCB)。每个进程实体都是由程序段、相关的数据段和一个进程控制块三部分组成。进程和程序的区别和联系进程是一个动态概念,而程序则是一个静态概念一个程序可以对应一个或多个进程,一个进程至少对应一个或多个程序 程序可作为软件资源长期保存,进程只是一次执行过程,是暂时存在的 进程是一个能独立调度并可以和其他进程并发运行的单位,而程序段通常是不能作为独立调度运行单位的 进程具有并行特征,而程序没有 操作系统第三版操作系统第三版4 4、进程的进程的状态及转换

5、状态及转换三种基本状态就绪状态执行状态阻塞状态操作系统第三版操作系统第三版挂起状态 挂起会使进程处于静止状态(对正在执行的进程暂停执行,对就绪的进程暂时不接受调度,而对阻塞的进程,即使引起阻塞的事件消失,也不能进入就绪队列)操作系统第三版操作系统第三版5 5、进程进程实体实体进程控制块PCB(Process Control Block)PCB应包含如下信息:u进程标识符u当前状态u现场保护区u位置信息u资源清单u进程优先级u通信信息u家族关系操作系统第三版操作系统第三版进程实体 由三部分组成:程序段相关的数据段进程控制块PCB操作系统第三版操作系统第三版1、线程的基本概念线程(Thread)的

6、定义进程既是资源分配的基本单位,又是可以独立调度执行的基本单位,这是进程的两个基本属性。为了减少操作系统对进程处理的开销,提高系统中进程并发执行的程度, 20世纪80年代中期,人们引入了线程(Thread)的概念。线程有时也被称为轻量进程(Light Weight Process简称LWP)。在引入线程的操作系统中,人们把进程的两个属性分开处理,将进程作为系统资源分配的单位,但不作为处理机调度的单位,而是在进程中创建一个或多个线程,它们并发执行,作为处理机调度的基本单位。 线程线程操作系统第三版操作系统第三版线程实体线程是一个可独立运行的实体。在一个进程实体中可以包含一个或多个线程实体。当一个

7、进程开始执行时,根据需要可以创建一个或多个线程,线程也可以创建它的子线程。每一个线程有一个线程控制块TCB,用来记录线程的标识符、执行时的寄存器和堆栈等现场状态信息。此外,每个线程有自己的堆栈(系统栈或用户栈)和寄存器(用来存储线程内的局部变量,但不能存储其它线程的相关变量)。堆栈、寄存器和线程的TCB共同构成线程实体。线程的类型内核级线程用户级线程操作系统第三版操作系统第三版拥有资源调度切换通信关系系统开销和并发性 动态性构成2、线程与进程的比较操作系统第三版操作系统第三版在Windows NT/2000/XP系统中线程的状态: 就绪状态(Ready)备用状态(Standby)运行状态(Ru

8、nning)等待状态(Waiting)转换状态(Transition)终止状态(Terminated)初始化状态(Initialized)3、线程的状态与转换操作系统第三版操作系统第三版4、Windows XP系统的进程和线程使用“任务管理器” 查看进程的相关信息 在计算机的键盘上同时按住Ctrl+Alt+Del三键,启动Windows任务管理器,用鼠标单击“进程”选项卡,显示关于计算机上正在运行的进程的信息。使用“系统监视器”查看进程和线程的相关信息 单击“开始”运行输入perfmon.msc来启动;或者单击“开始”“所有程序” “管理工具” “性能”来启动操作系统第三版操作系统第三版进程的

9、控制进程的控制1、创建和撤销进程图 一个进程可以创建 另一个新进程 进程的创建 由进程创建原语实现进程的撤销 由进程撤销原语实现操作系统第三版操作系统第三版2、阻塞与唤醒进程的阻塞 如果正在执行的进程期待的某一事件尚未发生时,该进程调用阻塞原语把自己转到阻塞状态进程的唤醒 当被阻塞的进程期待的某一事件发生时,由“唤醒进程”调用唤醒原语,将该阻塞进程唤醒 操作系统第三版操作系统第三版3、挂起与激活进程的挂起 当由于用户进程或父进程的请求以及其它原因需要把某进程挂起时,系统使用挂起原语将该进程挂起 进程的激活 当由于用户进程或父进程的请求以及其它原因需要把某进程激活时,系统使用激活原语将该进程激活

10、 操作系统第三版操作系统第三版在多道程序系统中,由于资源共享与进程合作,使进程之间可能产生两种形式的制约关系: (1)间接相互制约 (2)直接相互制约 1、基本概念 临界资源与临界区 临界资源(Critical Resource)是指在一段时间内只允许一个进程访问的资源。 临界区(Critical Section)是指进程中访问临界资源的那段代码。 进程同步与互斥进程同步与互斥操作系统第三版操作系统第三版进程的互斥系统对临界区的调度原则空闲让进忙则等待有限等待让权等待唤醒等待进程进程的同步 进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个

11、进程的消息时应等待,直到消息到达才被唤醒 操作系统第三版操作系统第三版进程同步机制进程同步就是多个相关进程在执行次序上的协调。用于保证这种同步关系的相应机制称为进程同步机制。进程同步机制可以用硬件方法实现,也可以用软件方法实现。常见的进程同步机制有锁机制、信号量机制、管程机制等。操作系统第三版操作系统第三版2、锁机制进程进入临界区的操作按三步进行:加锁操作。执行临界区程序开锁操作 开、关中断 (单CPU系统) 使用CPU的硬件中断标志位作为临界区的锁 lock和unlock原语 取值只能是0或1。为0表示资源可以使用,为1表示资源已被占用。加锁原语lock()描述为: while(=1); =

12、1; 开锁原语unlock():0操作系统第三版操作系统第三版3、信号量机制 实现中应注意的问题 整型信号量记录型信号量AND型“信号量集”机制 一般“信号量集”机制 整型信号量信号量的应用 实现进程互斥 实现进程同步 描述前趋关系 操作系统第三版操作系统第三版4、管程机制管程的引入把所有进程对某一临界资源的使用进行集中控制,为每个共享资源设立一个专门的管程,统一管理各进程对该资源的访问 。管程的定义一个管程定义了一个数据结构和能为并发进程调用的在该数据结构上的一组操作,这组操作能同步进程和改变管程中的数据。管程的主要特点模块化抽象数据类型信息封装操作系统第三版操作系统第三版5、经典进程同步问

13、题生产者消费者问题 item Buffern; /*缓冲池有n个缓冲区,用来放产品 */semaphore empty=n; /* 空缓冲区的数量*/semaphore full= 0; /* 满缓冲区的数量 */semaphore mutex= 1; /* 互斥访问缓冲区 */int in = 0, out = 0; /* 放入/取出缓冲区指针 */main ( )cobeginproducer( );/*生产者*/consumer( ); /*消费者*/coend producer( ) while(TRUE) 生产一件产品;P(empty); /* 申请空缓冲区,如没有则等待 */P(m

14、utex); /* 有空缓冲区,进程互斥使用缓冲区 */Bufferin = 把产品放在这里; /* 把生产的产品放在缓冲区*/in = (in + 1) % n;/* 输入指针调整,为下次放入作准备 */V(mutex);/* 释放缓冲区,若有其它进程等待则唤醒之 */V(full); /* 满缓冲区的数量加1 */consumer( ) while(TRUE) P(full);P(mutex);从这里取出产品 = Bufferout;out = (out + 1) % n;V(mutex);V(empty);消费这件产品; 操作系统第三版操作系统第三版读者写者问题int rc = 0; /

15、* 读进程的数量 */semaphore wmutex= 1, rmutex= 1;main ( )cobeginreader( ); /*读者进程*/writer( ); /*写者进程*/coend reader( )while(TRUE)P(rmutex); /*等待无人读rc时再继续*/rc+; /*读者进程数量加1*/if (rc = 1) P(wmutex); /* 只有自己一个读者进程时,测试是否有写者进程 */V(rmutex);读文件;P(rmutex);rc-; /*读完后读者进程数量减1*/if (rc = 0) V(wmutex); /*没有读者进程,允许写*/V(rmu

16、tex); writer( )while(TRUE) P(wmutex);写文件;V(wmutex); 操作系统第三版操作系统第三版进程之间的信息交换称为进程通信,用IPC(Inter-Process Communication)表示。并发进程为了能够协同工作,必须互相交换信息,但交换的信息量可大可小。进程间只能交换少量信息的通信被称为低级通信。进程间大批量数据信息的交换被称为高级通信,通常简称为进程通信。 进程间高级通信方式可分为三大类 共享存储器系统 消息传递系统 共享文件方式(管道通信) 进程通信进程通信操作系统第三版操作系统第三版1、共享存储器系统 (Shared-Memory Sys

17、tem)基于共享数据结构的通信方式基于共享存储区的通信方式 2、消息传递系统 ( Message passing system ) 直接通信方式(消息缓冲通信机制) 间接通信方式(信箱通信方式) 消息传递系统的特点 3、共享文件方式 (Shared File)(管道通信)管道:用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件管道按FIFO方式传送大量数据,且只能单向传送数据操作系统第三版操作系统第三版1、调度的基本概念 高级、中级、低级调度 高级调度(High Level scheduling) 低级调度(Low Level Scheduling) 中级调度(Intermediat

18、e Level Scheduling) 进程调度方式 非抢占式调度 (Non-Preemptive Mode) 抢占式调度 (Preemptive Mode)进程调度进程调度操作系统第三版操作系统第三版 2、进程调度的实现进程切换 操作系统中的进程调度程序使当前正在执行的进程让出处理机,选择另外一个进程占用处理机的过程称为进程切换,也叫进程上下文切换。进程切换的步骤:首先保存现场然后选择要运行的程序最后恢复现场操作系统第三版操作系统第三版3、进程的调度算法先来先服务算法(FCFS) FCFS(First Come First Served) 算法也可称为先进先出算法FIFO(First In

19、First Out),是最简单的调度算法,适用于作业调度和进程调度,采用非抢占式调度方式。 最短进程优先算法(SPF) SPF (Shortest Process First ) 算法适用于作业调度和进程调度,采用非抢占式调度方式。最高优先权优先调度算法(FPF)最高优先级优先算法(HPFHighest Priority First) 本算法考虑到紧迫型进程进入系统后能得到优先处理,适用于作业调度和进程调度,是常用的一种调度算法,可以采用非抢占式或抢占式调度方式。操作系统第三版操作系统第三版时间片轮转算法(RRRound Robin) 前面几种算法主要用于批处理系统,不能作为分时系统的主要调度

20、算法,因为它无法满足分时系统中终端对响应时间的要求。在分时系统中,常采用时间片轮转调度算法,它是抢占式调度算法。该算法又分为简单轮转法和多队列轮转法两种。多级反馈队列算法(Round Robin with Multiple Feedback Queues) 多级反馈队列调度算法是时间片轮转算法和优先级调度算法的综合和发展,是目前公认较好的一种进程调度算法。它采用抢占式调度方式,通过动态调整进程优先级和时间片大小,不必事先估计进程的执行时间,可兼顾多方面的系统目标,是一种考虑全面又灵活实用的调度算法。 操作系统第三版操作系统第三版1、资源可抢占资源和不可抢占资源共享资源和独享资源(独占资源) 永

21、久性资源和临时性资源 进程使用一个资源的顺序是:申请资源系统为进程分配资源使用资源释放资源。如果申请失败,不同的系统可能采用不同的对策:有的系统中,进程自动被阻塞、等待唤醒;有的系统给申请进程返回错误代码,由申请进程等待一段时间后重试。 死死 锁锁操作系统第三版操作系统第三版2、死锁的产生及原因 死锁的产生和定义 在一组并发的进程中,如果每个进程都在等待被该组内其它进程所占有的资源,而不释放自己占有的被其它进程所等待的资源,就会出现僵持局面,导致这些进程因一直得不到所需资源而无法执行,这种现象称为进程死锁,这组进程称为死锁进程。 死锁的定义:死锁是指多个并发的进程竞争资源而形成的一种僵局,若无

22、外力作用,这些进程将永远不能再向前推进。 产生死锁的原因 系统竞争临界资源 进程推进顺序不当操作系统第三版操作系统第三版3、产生死锁的必要条件 互斥条件保持和等待条件 不可抢占条件循环等待条件操作系统第三版操作系统第三版4、解决死锁的基本策略 鸵鸟策略 l象鸵鸟一样对死锁视而不见、不予理睬。 不允许死锁发生l静态策略就是预防死锁 l动态策略就是避免死锁 允许死锁发生l检测和解除 解决死锁的基本方法有以下三种:预防死锁避免死锁检测和解除死锁 操作系统第三版操作系统第三版1、使用“任务管理器”实现进程管理 “任务管理器”提供了正在计算上运行的程序和进程的相关信息,也显示最常用的度量进程性能的单位。

23、使用任务管理器,可以查看正在运行的程序的状态,并终止已停止响应的程序。也可以使用多达 15 个参数评估正在运行的进程的活动,查看反映 CPU 和内存使用情况的图形和数据。查看进程的相关信息终止进程查看进程的优先级更改进程的优先级给处理器指派进程使用“任务管理器” 的其它功能Windows系统的进程管理系统的进程管理操作系统第三版操作系统第三版2、使用Windows XP中的命令行工具实现进程管理Windows XP中的命令行工具tasklist 用来显示应用程序和本地或远程系统上运行的相关任 务/进程的列表,执行tasklist /? 显示详细的帮助信息。 Windows XP中的命令行工具t

24、askkill TASKKILL /F /IM notepad.exe /T TASKKILL /PID 1630 /PID 1641 /T Windows XP中的命令行工具ntsd命令 NTSD -C Q -P PID 操作系统第三版操作系统第三版习 题1. 画出下面四条语句的前趋图:S1:a=x+m;S2:b=y+n;S3:c=a+b;S4:d=c+e。 2. 程序并发执行时有哪些特征? 3. 程序与进程之间有哪些区别和联系?4. 进程实体由哪几个部分组成,进程控制块的作用是什么? 5. 进程有哪几种基本状态?进程是否可从阻塞状态直接转换到运行状态?为什么? 6. 并发的进程之间相互制约

25、关系有哪两种形式?请举例说明。7. 请举例说明什么是临界资源、临界区、进程同步、进程互斥?进程同步与互斥二者之间有何关系?操作系统对临界区的调度原则是什么?8. 为某临界区设置一把锁w,当w=1时,表示关锁;w=0时,表示开锁。请写出开锁原语和关锁原语,并利用它们实现进程互斥。9. P、V操作的物理意义是什么? 在信号量S上执行P、V操作时,S的值发生什么变化?当S0,S=0,S0时,它们的物理意义是什么? 10. 有三个进程A、B、C,进程A通过一个缓冲区不断地向进程B、C发送信息,A 每向缓冲区送入一个信息后,必须等进程B、C都取走后才可以发送下一个信息,B、C对A 送入的每一信息各取一次

26、,请用P、V操作实现它们之间的同步工作。操作系统第三版操作系统第三版11. 两个并发进程的程序如下:int a=9; main( ) cobeginprocess1( );process2( );coend process1( ) while (TRUE) a=a+1; process2( ) while (TRUE) print(a);a=0; 在process1先执行了二次循环后,process1和process2又并发执行了一次循环,会出现哪几种情况?a的打印值应该是多少?如果要求process1必须先执行二次循环,然后process1和process2开始并发循环执行,执行时不出现与时

27、间有关的错误,如何用PV操作来实现?12. 设有n个进程共享一临界区,对于下述情况,说明信号量的初值、含义,并用PV操作写出有关进程的互斥算法:(1)一次只允许一个进程进入临界区。(2)一次允许m(mn个进程进入临界区。13. 某计算机机房有40台计算机,最多可同时容纳40个人上机,机房门很窄,每次只允许一个人出入。开始时机房没有人上机。上机过程为:当机房内有40个人上机时,等待;机房有空位置时,机房门没有人出入,就进入机房上机。上机完成后,机房门没有人出入,就离开机房。多个上机进程可以并发执行。请用PV操作实现上机进程的同步算法。14. 请用PV操作写出下面前趋图的并发程序。(图见教材P85)15. 什么是高级、低级和中级调度?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论