操作系统学习第二章ppt课件.ppt

上传人:飞****2 文档编号:68966835 上传时间:2022-12-30 格式:PPT 页数:61 大小:372KB
返回 下载 相关 举报
操作系统学习第二章ppt课件.ppt_第1页
第1页 / 共61页
操作系统学习第二章ppt课件.ppt_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《操作系统学习第二章ppt课件.ppt》由会员分享,可在线阅读,更多相关《操作系统学习第二章ppt课件.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二章第二章 进程管理进程管理 在多道程序批处理系统和分时在多道程序批处理系统和分时系统中,系统中,程序程序并不能独立运行,并不能独立运行,作为资源分配和独立运行的基本作为资源分配和独立运行的基本单位是单位是进程进程。本章主要内容本章主要内容1.进程的概念2.进程的描述:PCB、状态、3.进程的控制:创建、撤消、阻塞、唤醒4.进程的低级通信:互斥、同步、P/V操作5.进程的高级通信:消息传递6.进程的调度:分配CPU给某一进程7.死锁:多进程竞争有限资源一、一、程序的顺序执行程序的顺序执行程序的顺序执行:程序的顺序执行:在任何时刻,机器只执行一个操作,只有在前一个操作执行完后,才能执行后继操作

2、。例例 作业i的输入操作、计算操作和打印操作分别用Ii、Ci、Pi表示。则顺序执行过程为:2.1 2.1 进程的引入和概念进程的引入和概念I1I2I3P1C1P2P3C2C3程序顺序执行的特点:程序顺序执行的特点:l顺序性顺序性:在任何时刻,机器只执行一个操作,只有在前一个操作完成后,才进行下一个操作。l封闭性封闭性:程序在运行时独占全机资源。因此,这些资源的状态只能由运行的这个程序决定和改变。不受外界因素影响。l可再现性可再现性:程序执行时,只要初始条件相同,无论程序连续运行,或断断续续地运行,程序的执行结果与其执行速度无关,其最终结果不变。1.优优点点:由于顺序程序的封闭性和可再现性,为程

3、序员调试程序带来了很大方便。2.缺缺点点:由于资源的独占性,使得系统资源利用率非常低。二、二、程序的并发执行程序的并发执行 程序的并发执行程序的并发执行:是指若干个程序(或程序段)同时在系统中运行,这些程序(或程序段)的执行在时间上是重叠的,一个程序(或程序段)的执行尚未结束,另一个程序(或程序段)的执行已经开始。l以资源的共享共享为条件l提高了系统资源利用率、系统吞吐量。例例例例 在下面的在下面的有向无环图有向无环图中,作业中,作业i i的输入操作、的输入操作、计算操作和打印操作分别用计算操作和打印操作分别用I Ii i、C Ci i、P Pi i表示。虽然表示。虽然同一作业中的输入、计算和

4、打印操作必须顺序执行,同一作业中的输入、计算和打印操作必须顺序执行,但对一批作业而言,情况就不同了。但对一批作业而言,情况就不同了。I1I2I3I4P1C1P2P3C2C3P4C4并发执行并发执行程序并发执行的特征:程序并发执行的特征:(1,2,3)1.失去了程序的封闭性和可再现性失去了程序的封闭性和可再现性 程序在并发执行时,多个程序共共享享系系统统中中的的各各种种资资源源,因而这些资源的状状态态将由多个程序来改改变变,致使程序的运行失去了封闭性;由于失去了封闭性,也将导致失去其可再现性。(1)失去了程序的封闭性和可再现性失去了程序的封闭性和可再现性 程程序序的的并并行行执执行行,使使得得系

5、系统统中中的的资资源的状态由并行执行的多道程序决定。源的状态由并行执行的多道程序决定。举例说明:举例说明:假假如如系系统统中中有有两两道道程程序序A和和B,这这两两个个程程序序都都正正在在打打印印机机上上输输出出。程程序序输输出出完成后将打印机释放。完成后将打印机释放。假假定定系系统统用用变变量量N来来记记录录打打印印机机的的可可用用数数量量。假假定定N的的当当前前值值为为1,也也即即还有一台空闲。还有一台空闲。当当A A、B B程序释放打印机后,系统的打印机数量为程序释放打印机后,系统的打印机数量为3 3台台 (即即N=3)N=3)。但由于。但由于两个程序并发执行,各程两个程序并发执行,各程

6、序执行释放操作是随机的,有可能使得序执行释放操作是随机的,有可能使得N的值的值结果不正确。结果不正确。下面是两个程序释放打印机的操作:下面是两个程序释放打印机的操作:int N=1;int N=1;program A:program B:program A:program B:begin beginbegin begin execute program A execute program A;execute program Bexecute program B;释放打印机:释放打印机:N=N+1 N=N+1;释放打印机:释放打印机:N=N+1 N=N+1;endend;endend;“N=N+

7、1”的的操操作作分分解解成成机机器器指指令令为:为:取取N到寄存器到寄存器A;A+1A;存存A到到N;由由于于程程序序A和和B都都以以各各自自独独立立的的速速 度度 向向 前前 推推 进进,故故 程程 序序 A执执 行行N=N+1的的操操作作与与程程序序B执执行行N=N+1操操作作是是随随机机的的。而而这这两两个个程程序序执执行行N的序列可用表描述如下:的序列可用表描述如下:时间 T0 T1 T2 T3 T4 T5程序 A N-A1A1+1-A1A1-N程序 BN-A2A2+1-A2 A2-NN 的值 1 1 2 2 2 3(a)顺序执行时间 T0 T1 T2 T3 T4 T5程序 AN-A1

8、A1+1-A1A1-N程序 B N-A2A2+1-A2A2-NN 的值 1 1 1 1 2 2 (b)交叉执行时间 T0 T1 T2 T3 T4 T5程序 AN-A1A1+1-A1A1-N程序 BN-A2 A2+1-A2A2-NN 的值 1 1 1 1 2 2 (c)交叉执行 若若系系统统只只有有一一台台打打印印机机,分分得得打打印印机机的的程程序序段段(假假设设A得得到到)可可以以继继续续运运行行,而而没没有有得得到到打打印印机机的的程程序序段段B就就不不得得不不暂暂停停执执行行,等等到到有有可可用用打打印印机机时时才才能能继继续续执执行行。我我们们称称这这种制约关系为间接关系。种制约关系为

9、间接关系。还还有有一一种种直直接接制制约约关关系系,是是各各并并发发执执行行的的程程序序段段之之间间需需要要协协调调共共同同完完成成同同一一个个任任务务而而引起的。引起的。例如:例如:type a.c|more 或或 dir|sort;这这两两条条命命令令就就需需要要两两个个程程序序通通过过管管道道实实现现两者之间协作完成用户希望的工作。两者之间协作完成用户希望的工作。在并发环境下程序的执行是间断性的:执行执行停停执行执行2.并行执行的程序间产生了相互制约关系并行执行的程序间产生了相互制约关系 因共共享享资资源源或协协调调完完成成同同一一任任务务,使得并发程序之间发生了相互制约关系。例例 系统

10、中并发执行的程序段A和B在运行过程中都希望使用打印机输出计算结果,若系统只有一台打印机,分得打印机的程序段(假设A得到)可以继续运行,而没有得到打印机的程序段B就不得不暂停,等到有可用打印机时才能继续执行。我们称这种制约关系为间接关系。还还有有一一种种直直接接制制约约关关系系,是是各各并并发发执执行行的的程程序序段段之之间间需需要要协协调调共共同同完完成成同同一一个任务而引起的。个任务而引起的。例如:例如:type a.c|more 或或 dir|sort;这这两两条条命命令令就就需需要要两两个个程程序序通通过过管管道道实现两者之间协作完成用户希望的工作。实现两者之间协作完成用户希望的工作。在

11、并发环境下程序的执行是间断性的:执行停执行3.3.程序与程序与CPUCPU执行的活动之间不再一一对应执行的活动之间不再一一对应l 程程序序:是完成某一特定功能的指令序列,是静态静态的概念;l CPUCPU执执行行的的活活动动:是一个动动态态概念,它是程序的执行过程。例例 在分时系统中,多个用户都调用C编译对自己的源程序进行编译,实际系统只保留一个编译程序,多个用户通过共享执行它完成各自源程序的编译工作。这样,系统虽然只保留一个编译程序,但CPU现正在为多个用户执行编译。由由于于并并发发程程序序的的上上述述这这些些特特点点,使使得得系系统统中中的的活活动动以以及及各各种种活活动动之之间间的的相相

12、互互关关系系非非常常复复杂杂。因因此此,“程程序序”这这个个静静态态的的概概念念已已不不能能如如实实地地反反映映系系统统中中的的活活动动情情况况。为此,现代操作系统引入了为此,现代操作系统引入了进程进程的概念。的概念。三、三、进程的概念进程的概念1 1、进程定义、进程定义 l 进程这个概念是为了描述系统中各并并发发活动活动而引入的。l“进进程程”(process)这一术语,在6060年代初期,首先在美国的麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统中引入的。只是IBM/360使用了另一个术语任任务务(task),但两者的实际含义是相同的。l 进程的定义进程的定义l进程是程

13、序的一次执行。l进程是可以和其它计算并行执行的计算。l进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。l进程是程序在一个数据集合上的运行过程。l进程是系统进行资源分配和调度的一个独立单位。2 2、进程与程序的联系和区别、进程与程序的联系和区别(5(5个个)(1 1)动态性:动态性:进程进程是程序的一次执行,它是一个动态的概念,是临时的,有生命期的,表现在它由创建而产生,完成任务后被撤消。程序程序是完成某个特定功能的指令的有序序列,它是一个静态的概念。程程序序可以作为一种软件资源长期保存。进程进程是把程序作为它的运行实体,没有程序,也就没有进程。我们把程序看成是一个菜谱,而进程则是按

14、照菜谱进行烹调的过程。(2 2)并发性:并发性:多个进程实体,同存于内存中,能在一段时间内同时执行;程序是不能并发执行的。(3 3)独立性:)独立性:进程是系统进行资源分配和调度的一个独立单位;程序则不是。例例 以多用户进程共享一个编译程序为例,为多个用户执行编译时,显然CPUCPU的的分配是以进程为单位分配是以进程为单位,而不是以程序为单位。因为主存只有一个编译程序,但几个用户的源程序都得到编译。(4)异异步步性性:进程以各自独独立立的的、不不可可预预知知的速度向前推进;或者说,进程按异步方式运行。正是这一特征,将导致程序执行的不不可可再再现现性性。因此,在OS中必须采取措施措施来保证各程序

15、之间能协调运行。(5)结结构构特特性性:为了描述和记录进程的运行变化过程,并使之能正确运行,应为每个进程配置一个进进程程控控制制块块。这样,从结构上看,每个进程是由程程序序段段、数数据据段段和和进程控制块进程控制块三部分组成。四、四、OS的控制结构的控制结构lOS为了管理进程和资源,必须掌握关于每个进程和资源当前状态每个进程和资源当前状态的信息。lOS构造并维护它所管理的每个实体的信息表信息表。共分四种不同类型的表。1.存储器存储器-存储表存储表2.I/O设备设备-I/O表表3.文件文件-文件表文件表4.进程进程-基本进程表基本进程表l存储表存储表:用于跟踪主存储器和辅助(虚拟)存储器。保留在

16、辅存中的进程使用某种类型的虚拟存储或简单的交换机制。lI/O表表:用于管理计算机系统中的I/O设备和通道。是否已分配给某个进程?l文件表文件表:提供关于文件是否存在、文件在辅存中的位置、当前状态和其它属性的信息。l进程表进程表:用于管理进程。进程控制块中的基本控制块占有进程表(proc)中的一项。2.2 2.2 进程的描述进程的描述一、进程控制块一、进程控制块PCBPCB(Process Control Block)lOS在管理和控制进程时必须知道什么?1.它必须知道进程的位置。它必须知道进程的位置。2.它必须知道在管理时所必需的进程属性它必须知道在管理时所必需的进程属性l进程控制块进程控制块

17、:与每个进程相关联的所有OS用于控制进程的属性的集合属性的集合。l进程映像进程映像(进程实体进程实体):用户程序、用户数据、系统栈和进程控制块。lPCB是进程存在存在系统中的唯一标识唯一标识。进程映像进程映像(进程实体进程实体)l用户程序用户程序:将被执行的程序。l用户数据用户数据:用户空间中的可修改部分。可以包括包括程序数据、用户栈区域和可修改的程序。l系统栈系统栈:每个进程有一个或多个系统栈,用于保存参数、过程调用地址和系统调用地址。lPCB:OS控制进程所需要的数据。PCB中的基本信息中的基本信息l进程标识符:进程标识符:用于唯一地标识一个进程。外部标识符:外部标识符:由创建者提供,通常

18、是由字母、数字所组成,往往是由用户访问进程时使用,便于记忆。如计算进程、打印进程、发送进程、接收进程等。内部标识符:内部标识符:OS为每一个进程赋予了一个唯一的整数,作为内部标识。父进程标识符、子进程标识符、用户标识符。l进程的状态:进程的状态:说明进程目前所处的状态,进程可能的状态在下一节描述。lCPUCPU现场保护区:现场保护区:当进程由于某种原因不能继续运行时,要将其CPU运行的现场信息保存起来,以便下次继续运行。通常,CPU的现场信息包括:程序计数器程序计数器(PC)(PC)、工作寄存器、程序、工作寄存器、程序状态字状态字等。lCPUCPU的的调调度度信信息息:包括进程优先级、进程所在

19、各种队列的指针。l进进程程要要执执行行的的程程序序在在主主存存和和外外存存起起始始地地址址,及及存存取保护信息。取保护信息。l进进程程使使用用的的资资源源信信息息:包括分配给进程的I/O设备、正在执行的I/O请求信息、当前进程正打开的文件等。l记记帐帐信信息息:包括CPU占用量,实际所用时间量,帐号等。l进进程程之之间间的的家家族族关关系系 在进程的树型结构系统(如UNIX系统)中,进程之间存在着家族关系。创建进程的进程称为父进程,被创建进程称为子进程。二、进程的状态二、进程的状态1 1、三种基本状态。三种基本状态。进程执行时的间断性间断性,决定了进程可能具有多种状态。(1)(1)运行态运行态

20、(running)(running):正在CPU上执行的进程所处状态为运行状态。单CPU系统只有一个进程处于运行状态;多CPU系统可能有多个进程处于执行状态。(2)(2)阻塞态阻塞态(blocked)(blocked):又称等待态。当一个进程因等待某个条件发生而不能运行时处于阻塞态。处于阻塞态的进程在逻辑上是不能运行的,即使CPU空闲,它也不能占用CPU。(3)(3)就绪态就绪态(ready)(ready):已分配到除CPU之外的所有必要的资源后,只要能再获得CPU,便可立即执行。多个处于就绪状态的进程排成一个或多个队列-就绪队列。这三种状态的相互转换如下图所示:这三种状态的相互转换如下图所示

21、:运行态就绪态阻塞态时间片用完进程调度等待某个事件发生某个事件已经发生图2.2 进程的状态及其转换由进程状态转换图可以看出:由进程状态转换图可以看出:l就绪态就绪态-运行态:运行态:处于就绪态的某进程被进进程调度程序程调度程序的执行选中时。l运行态运行态-阻塞态:阻塞态:是由运行进程自己主动改自己主动改变变的。例例 一个正在运行的进程启动了某一外围设备后,等待该外围设备传输完成时,使自己由运行态变为阻塞态。l阻塞态阻塞态-就绪态:就绪态:是由外界事件引起外界事件引起的。例例 上面所述的外围设备传输已经完成时,请求中断,由I/O中断处理程序把因等待这一I/O完成而阻塞的进程变为就绪态。l运行态运

22、行态-就绪态:就绪态:处于运行态的进程被剥进程被剥夺夺CPUCPU时。例例 采用时间片轮转法时间片轮转法调度时,当前运行进程用完分给它的时间片后,将由运行态变为就绪态;或采用优先级调度优先级调度时,若有更高优先级的进程变为就绪态,当前进程被迫放弃CPU,使自己由运行态变为就绪态,之后转进程调度。l由于系统、进程自身和外界的原因,可能使一个进程多次反复地经历三个基本状态使一个进程多次反复地经历三个基本状态的转换的转换,才能最终达到完成而撤消。2 2、新状态和终止状态、新状态和终止状态 l新状态(创建态):新状态(创建态):刚刚建立,还未送入就绪队列的状态。刚创建,并为它分配资源。l终止状态:终止

23、状态:已正常结束或异常结束,但尚未撤消时。暂留在系统中,以便其它进程去收集该进程的有关信息。创建态创建态就绪态就绪态:OS准备好再接纳接纳一个进程时,把一个进程从新建状态转换到就绪状态。大多数系统基于基于现有的进程数现有的进程数或分配给现有进程的虚存数量虚存数量设置一些限制,以确保不会因为活跃进程的数量过多而导致系统的性能下降。图图2.3 进程的五种状态进程的五种状态创建态创建态运行态运行态阻塞阻塞终止态终止态进程调度被抢占事件完成等待事件进程完成就绪态就绪态Fork()接纳 三、三、进程队列进程队列 PCBPCB是是系系统统对对进进程程进进行行统统一一管管理理的的依依据据。一一个个系系统统可

24、可有有几几十十个个、几几百百个个PCBPCB。为为了了便便于于系系统统查查找找,目前常用的组织方式如下:目前常用的组织方式如下:(1)链链接接方方式式:把具有相同状态的PCB,用其中的连接字,链接成一个队列。每一个队列有一个专专用用队队列列指指针针指出该队列中第一个进程PCB所在位置。这样就形成了就就绪绪队队列列、阻阻塞塞队队列列。处于就绪态的进程可按照某种策略排成多个就绪队列。处于阻塞态的进程又可以根据阻塞的原因不同组织成多个阻塞队列。例例 等待磁盘I/O队列,等待磁带I/O队列等。PCB!4PCB23PCB30PCB4PCB5PCB6PCB7PCB8PCB9PCB10879011执行指针就

25、绪队列指针阻塞队列指针空闲队列指针(2)(2)索索引引方方式式:系统根据进程的状态,建立几张索引表,并把索引表在内存的首地址记录于内存中一些专用单元。PCB1PCB2PCB8PCB3PCB4PCB5PCB6PCB7执行指针就绪表指针阻塞表指针阻塞索引表2.3 2.3 进程控制进程控制l进程控制进程控制:指系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间转换。l原语原语:是原子操作。一个操作中的所有动作,要么全做,要么全不做,不允许中断。不可分割的操作。用于进程控制的程序段。l用于进程控制的原语有:创建原语;撤创建原语;撤消原语;阻塞原语;唤醒原语消原语;阻塞原语;唤醒原语等

26、。为了防止为了防止OS及关键数据如及关键数据如PCB等,受到破等,受到破坏坏,通常处理机有两种执行状态:l系统态系统态:核心态。具有较高的特权,能执行一切指令,访问所有寄存器和存储区。l用户态用户态:具有较低特权,只能执行规定的指令,访问指定的寄存器和存储区。用户程序用户程序:运行在用户态,不能去执行OS指令和访问OS区域。OS内核内核:运行在系统态。进程控制进程控制:是由OS内核实现的。一一.创建原语创建原语(UNIX系统用系统用fork()系统调用实现进程创建)系统调用实现进程创建)。1.1.引起创建进程的事件引起创建进程的事件l用户登录用户登录:在分时系统中,用户在终端键入登录命令后,系

27、统将为该终端用户建立一进程,并把它插入就绪队列。l提供服务提供服务:当运行中的用户程序提出某种请请求求后,系统系统将专门创建一个进程来提供用户所需要的服务。如如 用户程序请求文件打印,OS将为之创建一个打印进程,打印进程和用户进程可并发执行。l作业调度作业调度:在批处理系统中,将作业装入内存时,为它分配必要的资源,系统并立即为它创建进程,再插入就绪队列。l应用请求应用请求:基于应用进程的需要,由它自己创建一个新进程(子进程)自己创建一个新进程(子进程),可并发执行。如如某应用程序需要:从键盘读入数据(建立键盘输入进程)、处理数据、以表格形式在屏幕上显示结果(表格输出进程)。2.进程的创建进程的

28、创建一旦OS发现了要求创建新进程的事件后,便调动进程创建原语,步骤如下:l申请空白申请空白PCB,分配唯一的数字标识符。l为新进程分配资源为新进程分配资源。为其程序和数据,以及用户栈分配必要的内存空间。l初始化进程控制块初始化进程控制块。把调用者提供的参数:进程名、进程优先级、实体所在主存的起始地址、所需的资源清单、记帐信息及进程家族关系等填入PCB结构中。l将新进程插入就绪队列将新进程插入就绪队列。二、撤消原语二、撤消原语撤消撤消:是指撤消进程存在的标志(PCB)。1.1.引起进程终止的事件引起进程终止的事件l正正常常结结束束:进程运行完,将产生一个中断,通知OS进程已运行完毕。l异异常常结

29、结束束:进程运行期间,出现某些错误或故障,而迫使进程终止。故障中断。l外界干预外界干预:l 操作员或OS干预。如发生死锁。l 父进程请求。父进程有权有权终止子进程。l 父进程终止。此时,OSOS将其子进程终止。2.进程的终止过程进程的终止过程l 根据被终止进程的标识符,从PCB集合中检索检索出该进程的PCB,从中读出读出其状态状态。l若正正处处于于执执行行状状态态,则终止,置调度标志为真,待以后重调度。l若有子子孙孙进进程程,也须终止,以防成为不可控的。l将其全部资源全部资源或归还其父进程或归还系统。l将其PCBPCB从所在队列中移移出出,等待其它程序来搜集信息。三三.进程的阻塞和唤醒进程的阻

30、塞和唤醒1.1.引起进程的阻塞和唤醒的事件引起进程的阻塞和唤醒的事件l请请求求系系统统服服务务,暂暂得得不不到到满满足足。例例 一进程请求打印机,无,被阻塞,由释放打印机者将其唤醒。l启动某种操作启动某种操作。例例 进程启动某I/O操作。l新新数数据据尚尚未未到到达达。相互合作的进程,一个须等待另一个提供的数据后才能运行。l无无新新工工作作可可做做。例例 发送进程,无新的发送请求时,边将自己阻塞起来。2.2.阻塞过程阻塞过程无法运行的进程自己调用阻塞原语阻塞自己自己调用阻塞原语阻塞自己。l中断CPU.l将其运行现场保存在其PCB中。l置状态为阻塞态。l插入阻塞队列。l转进程调度。3.唤醒过程唤

31、醒过程 被阻塞进程所期待的事件出现所期待的事件出现了,则由有关有关进程进程调用唤醒原语将其唤醒。l把被阻塞进程从阻塞队列中移出。l将其PCB的现行状态改为就绪状态。l插入就绪队列中。4.阻塞原语和唤醒原语是一对作用刚好相反阻塞原语和唤醒原语是一对作用刚好相反的原语。的原语。若在某进程中调用了阻塞原语在某进程中调用了阻塞原语,则须在另一须在另一相关进程调用唤醒原语相关进程调用唤醒原语,否则,被阻塞进程会长久地处于阻塞状态,无机会运行。四四.进程的挂起和激活进程的挂起和激活1.1.挂起状态的引入挂起状态的引入l用户的需要:用户在自己的程序运行期间,发现有问题时,希望暂时使自己的进程静止下来。把这种

32、静止状态称为挂起状态。执行状态暂停执行;就绪状态-暂不接受调度。l父进程的需要:考查和修改子进程或协调子进程间的活动时。l对换的需要:内存不够,从内存换至外存。l负荷调整的需要:实时系统工作负荷较重。2.进程的挂起过程进程的挂起过程l运行态静止就绪l活动就绪静止就绪l活动阻塞静止阻塞3.解挂(激活)过程解挂(激活)过程 发生激活进程的事件,系统调用激活原语激活原语将指定的进程激活。l 静止就绪活动就绪l 静止阻塞活动阻塞l 若在外存处于静止就绪,则从外存调入内存,活动就绪。2.4 线程的概念(线程的概念(thread)1.1.线程的引入线程的引入l引引入入进进程程的的目目的的:为了使多个程序并

33、发执行,以改善资源利用率资源利用率及提高系统吞吐量吞吐量。l进进程程的的两两个个基基本本属属性性:进程是一个可可拥拥有有资资源源的独立单位;进程同时又是一个可可以以独独立立调度和分派调度和分派的基本单位。l进进程程数数目目不不宜宜过过多多,进进程程切切换换的的频频率率也也不不宜宜过过高高。进程是一个资源拥有者,因而在进程的创建、撤消和切换中,系统必须为了付出较大的时时空空开开销销。因而限制了并发程度的进一步提高。l线线程程的的引引入入,则是减少程序并发执行时系统付出的时时空空开开销销,使操作系统更加有效。试试图图提提高高系系统统内内程程序序并并发发执执行行程程度度和和提提高高系系统统吞吐量吞吐

34、量l线程是线程是8080年代引入的。年代引入的。lMS-DOSMS-DOS是一种支持单用户进程和单线程的OS;UNIXUNIX支持多用户进程,但只支持每个进程一个线程;支持多多线线程程的的多多进进程程的包括Windows 2000、Solaris、Linux、OS/2等。l每个进进程程由若干代码和数据块组成,此外它还拥有文件、主存以及至少一个线程至少一个线程。l进进程程被被创创建建时时,系系统统同同时时为为进进程程创创建建第第一一个个线线程程。进进程程中中的的其其它它线线程程是是通通过过调调用用线线程程创创建建原原语语显显式式创创建建;一一线线程程可可创创建和撤消另一线程。建和撤消另一线程。l

35、将进程的两个属性分开。即让让进进程程只只作作为为资资源源的的容容器器,而让让线线程程作作为为系系统统的的调调度单位度单位。l线程是进程中的一个执行单位线程是进程中的一个执行单位。同一进程中的各个线程分别有分别有一组CPU指令、一组CPU寄存器和一个堆栈。它们共享共享进程的主存和文件。这些线程被操作系统调度执行。单线程进程模式:进程控制块用户地址空间用户栈核心栈多线程进程模式:多线程进程模式:进程控制块用户地址空间 线程控制块用户栈核心栈 线程控制块用户栈核心栈 线程控制块用户栈核心栈线程线程线程一个进程内的多线程共享该进程的所有资源l进程在逻辑上表示操作系统必须做的一个作作业业,线程表示完成该

36、作业的许多可能的子任子任务务。l线程是进程中的一个可执行实体可执行实体,是被操作系统独立调度和分派的一个独立单位调度和分派的一个独立单位。l一个进程内的多线程共享共享该进程的全部资源全部资源,如代码段、数据段以及系统资源(已打开文件、I/O设备等)。线程自己拥有很少资源。l同一线程组中的线程共享它们的全局变量,并有相同的堆,因此使用malloc给线程组中的一个线程分配的内存可以被该线程组中的其他线程读写。但拥有不同的堆栈。一个线程一般由如下部分组成:一个线程一般由如下部分组成:有一个唯一的标识符;有一组表示处理机状态的寄存器;有两个堆栈,分别用于用户态执行和核心态执行;有一个独立的程序计数器。

37、由于线程拥有较少的资源,又具有传统进程的许多特性,因此有的把线程叫做轻型进程轻型进程。2 2、线程与进程的比较线程与进程的比较 为了更好地认识进程和线程,下面从拥有的资源、调度和并发性诸方面进行两者的比较:(1 1)拥有的资源)拥有的资源l 进程是拥有资源的一个独立单位。l 线程自己不拥有系统资源(只有一点必不可少的资源),可以访问其隶属进程的资源。(2 2)调度)调度l在引入线程的OS中,把线程作为调度和分派的基本单位。l进程调度时,系统要进行进程上下文的切换,需要系统大量的开销;l线程调度时,由于同一进程内的线程共享进程的资源,其切换是把线程仅有的一小切换是把线程仅有的一小部分资源变换即可

38、部分资源变换即可,从而提高了系统的效率。线程切换比进程切换快得多线程切换比进程切换快得多。l在由一个进程的线程向另一个进程的线程切换时,将引起进程上下文的切换。(3 3)并发性)并发性l引入线程后,使得系统的并发执行程度更高。进程之间可以并发执行,同一进程内的多线程也可并发执行。例例 在引入了线程的操作系统中,可以在一个文件服务进程中,设置多个服务线程,当第一个线程等待时,第二个线程可以继续运行;当第二个线程受阻塞时,第三个线程可以继续执行,从而显著地提高了文件服务的质量以及系统吞吐量。l多线程共享进程的所有资源(如存取同一主存区),使用不当,可能使系统不安全可能使系统不安全。3 3、用户级线程和内核支持线程、用户级线程和内核支持线程l系统进程和用户进程在进行切换时都要依赖于内核中的进程调度内核中的进程调度。l内核支持线程内核支持线程:在内核中保留了一张线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。所有线程的创建、撤消和切换都由内核实现。l用户级线程用户级线程:存在于用户级,内核并不知道其存在,因而其创建、撤消和切换都不利用系统调用来实现(无须通过中断进入OS内核)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁