版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机操作系统第三章 进程管理_33.7
进
程
通
信2023/9/15第三章进程管理第2页通信(communication)意味着在进程间传送数据进程间的通信根据通信内容可以划分为二种:即控制信息的传送与大批量数据传送。低级通信:进程间控制信息的交换。高级通信:进程间大批量数据的交换。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用。高级通信要传送大量数据。高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。在单机系统中,进程间通信可分为4种形式:主从式:终端控制进程和终端进程会话式:通信进程双方可分别称为使用进程和服务进程消息或邮箱机制;共享存储区方式。2023/9/15第三章进程管理第3页主从式通信系统的主要特点是:2023/9/17第三章进程管理第4页①
主进程可自由地使用从进程的资源或数据;②
从进程的动作受主进程的控制;③
主进程和从进程的关系是固定的。主从式通信系统的典型例子是终端控制进程和终端进程。会话方式具有如下特点:2023/9/17第三章进程管理第5页①
使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可;②
服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成。③
使用进程和服务进程在通信时有固定连接关系。用户进程与磁盘管理进程之间的通信是会话系统的一个例子会话方式中,通信进程双方可分别称为使用进程和服务进程。其中,使用进程调用服务进程提供的服务。它们具有如下特点:①
使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可;②
服务进程根据使用进程的要求提供服务,但对所提供服务的控制由服务进程自身完成。③
使用进程和服务进程在通信时有固定连接关系。各用户进程向磁盘管理进程提出使用要求并得到许可之后,才可以使用相应的存储区。而且,由磁盘管理进程自身完成对磁盘存储区的管理和控制。另外,用户进程与磁盘管理进程之间,只有在用户进程要求使用磁盘存储区时才有通信关系。2023/9/17第三章进程管理第6页消息的一般形式为4个部分组成。即:发送进程名、接收进程名、数据和有关数据的操作(图3.15)。图3.15消息的组成2023/9/17第三章进程管理第7页消息或邮箱机制的特点无论接收进程是否已准备好接收消息,发送进程都将把所要发送的消息送入缓冲区或邮箱。消息或邮箱机制的特点是:①
只要存在空缓冲区或邮箱,发送进程就可以发送消息。②
与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到某个发送进程发来的消息之后,又转去接收另一个发送进程发来的消息。③ 发送进程和接收进程之间存在缓冲区或邮箱(图3.16)用来存放被传送消息图3.16缓冲区或邮箱通信结构flash演示:生产者、消费者2023/9/17第三章进程管理第8页共享存储区方式:2023/9/17第三章进程管理第9页共享存储区方式不要求数据移动。两个需要互相交换信息的进程通过对同一共享数据区(shared memory)的操作来达到互相通信的目的。这个共享数据区是每个互相通信进程的一个组成部分。以上几种通信方式都可用于大量数据传送,而且,由于其通信方式不同,需要使用不同的控制方式来达到通信进程之间同步或互斥的目的。3.7.2
消息缓冲机制发送进程在自己的内存空间设置一个把要发送的消息填入发送区发送区接收区接收进程在自己的内存空间设置一个公用缓冲区发送进程和接收进程采用消息缓冲机制进行数据传送时,发送进程在发送消息前,先在自己的内存空间设置一个发送区,把欲发送的消息填入其中,然后再用发送过程将其发送出去。接收进程则在接收消息之前,在自己的内存空间内设置相应的接收区,然后用接收过程接收消息。PCB......Send(R,
M)......SIZE:消息长度
TEXT:消息正文......消息链指针............Receive(pid,
N)......SIZE:消息长度
TEXT:消息正文......M:N:接收进程
R发送进程
S消息消息消息消息由于消息缓冲机制中所使用的缓冲区为公用缓冲区,使用消息缓冲机制传送数据时,两通信进程必须满
足如下条件:①
在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列的访问。否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息缓冲时,也应禁止其他进程对该队列的访问。②
当缓冲区中无消息存在时,接收进程不能接收到任何消息。至于发送进程是否可以发送消息,则由发送进程是否申请到缓冲区决定。2023/9/17第三章进程管理第12页例:设公用信号量mutex 为控制对缓冲区访问的互斥信号量,其初值为1 。设SM为接收进程的私用信号量,表示等待接收的消息个数,2023/9/17第三章进程管理第13页其初值为0 。设发送进程调用过程send(m)将消息m 送往缓冲区,接收进程调用过程Receive(m)将消息m从缓冲区读往自己的数据区,则Send(m)和Receive(n)可分别描述为:Send(m):begin向系统申请一个消息缓冲区P(mutex)P(SM)将发送区消息m送入新申请的消息缓冲区把消息缓冲区挂入接收进程的消息队列V(mutex)V(SM)endReceive(n):beginP(SM)P(mutex)摘下消息队列中的消息n将消息n从缓冲区复制到接收区V(SM)
释放缓冲区
V(mutex)end3.7.3
邮箱通信2023/9/17第三章进程管理第14页邮箱通信就是由发送进程申请建立一与接收进程链接的邮箱。发送进程把消息送往邮箱,接收进程从邮箱中取出消息,从而完成进程间信息交换。设置邮箱的最大好处就是发送进程和接收进程之间没有处理时间上的限制。一个邮箱可考虑成发送进程与接收进程之间的大小固定的私有数据结构,它不像缓冲区那样被系统内所有进程共享。邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮箱体主要用来存放消息(图3.17)。图3.17
邮箱通信结构对于只有一发送进程和一接收进程使用的邮箱,则进程间通信应满足如下条件:①发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。②接收进程接收消息时,邮箱中至少要有一个消息存在。2023/9/17第三章进程管理第15页deposit(m)和remove(m)可描述如下:deposit(m):begin
local
xP(fromnum)选择空格x将消息m放入空格x中置格x的标志为满V(mesnum)end第三章进程管理第16页2023/9/17例:设发送进程调用过程deposit(m)将消息发送到邮箱,接收进程调用过程remove(m)将消息m
从邮箱中取出。另外,为了记录邮箱中空格个数和消息个数,信号量fromnum
为发送进程的私用信号量,信号量mesnum为接收进程的私用信号量。fromnum
的初值为信箱的空格数n,mesnum
的初值为0。remove(m):begin
local
xP(mesnum)选择满格x把满格x中的消息取出放m中置格x标志为空
V(fromnum)end3.7.4
进程通信的实例——和控制台的通信通用计算机中,除了用户终端之外,还有一台由系统操作员控制的控制台终端。各用户进程可将消息送到控制台进程,操作员在读到这些消息后做出相应的处理。图3.18
和控制台通信示例2023/9/17第17页第三章进程管理3.7.5
进程通信的实例——管道2023/9/17第18页第三章进程管理管道pipe进程通信的实用例子之一是UNIX系统的管道通信。UNIX系统从SystemⅤ开始,提供有名管道和无名管道两种数据通信方式.无名管道为建立管道的进程及其子孙提供一条以比特流方
式传送消息的通信管道。该管道在逻辑上被看作管道文件,在物理上则由文件系统的高速缓冲区构成,而很少启动外
设。发送进程利用文件系统的系统调用write(fd[1],buf,size),把buf中的长度为size字符的消息送入管道入口fd[1],接收进程则使用系统调用read(fd[0],buf,size)从管道出口fd[0]读出size字符的消息置入
buf中。这里,管道按FIFO(先进先出)方式传送消息,且只能单向传送消息(图3.20)。图3.20
管道通信利用UNIX提供的系统调用pipe,可建立一条同步通信管道。其格式为:pipe(fd)intfd[2];这里,fd[1] 为写入端,fd[0]为读出端。例:
p71发送进程 接收进程2023/9/17第19页第三章进程管理例2: 编写一程序,建立一个管道。同时,父进程生成子进程P1,P2,这两个子进程分别向管道中写入各自的字符串,父进程读出它们(如图3.21)。图3.21 父进程和子进程P1,P2通信例子解:程序框图如图3.22所示:2023/9/17第20页第三章进程管理图3.22
例2程序流图第三章进程管理源程序如下p第7221页2023/9/173.8
死
锁死锁的概念死锁的排出方法第三章进程管理第22页2023/9/18Bridge
Crossing
Example车辆只允许单向通行。桥上的每个位置可以看作一个资源。如果发生死锁, 可以通过让一辆车后退来解决 (剥夺资源,回滚)。死锁时,可能要求多辆车后退。可能会出现饥饿现象(Starvation )。哲学家进餐问题void
philosoper(inti)
// i为哲学家号{ while
(TRUE){think();//思考,直至饥饿P(
fork[i]
);//试图拿左侧叉子P(
fork[(
i
+
1)
%N
]);//试图拿右侧叉子eat();//取到两把叉子V(
fork[i]
);//放下左侧叉子V(
fork[(
i
+
1)
%N
]);//放下右侧叉子}}
程序有什么问题?flash演示:导致死锁的情况3.8.1死锁的定义死锁:各并发进程彼此互相等待对方所拥有的资源,且这些并发进程在得到对方的资源之前不会释放自己所拥有的资源。从而造成大家都想得到资源而又都得不到资源,各并发进程不能继续向前推进的状态。图3.22
死锁的概念2023/9/18第三章进程管理第25页死锁的描述2023/9/18第三章进程管理第26页有并发进程P1,P2,…,Pn,它们共享资源R1,R2,…,Rm(n>0,m>0,n>=m)。其中,每个Pi(1≤i≤n)拥有资源Rj(1
≤j ≤m),直到不再有剩余资源。同时,各Pi又在不释放Rj
的前提下要求得到Rk(k≠j,1 ≤k≤m),从而造成资源的互相占有和互相等待。在没有外力驱动的情况下,该组并发进程停止往前推进,陷入永久等待状态2.
死锁的起因2023/9/18第三章进程管理第27页死锁的起因是并发进程的资源竞争。产生死锁的根本原因系统提供的资源个数少于并发进程所要求的该类资源数。显然,由于资源的有限性,不可能为所有要求资源的进程无限制地提供资源。消除死锁的方法:采用适当的资源分配算法。3.产生死锁有四个必要条件:2023/9/18第三章进程管理第28页互斥条件:并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的,进程对它所需要的资源进行排他性控制。不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程自己释放。部分分配:进程每次申请它所需要的一部分资源,在等待新资源的同时继续占用已分配到的资源。环路条件:存在一种进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。flash演示:哲学家进餐问题3.产生死锁有四个必要条件:2023/9/18第三章进程管理第29页互斥条件:
一个资源一次只能被一个进程使用不剥夺条件:一个资源仅能被占有它的进程释放部分分配条件:一个进程已占有了一些资源,但仍然要求其它资源环路条件:系统中存在着一个由若干个进程形成的环形请求链资源分配图的实例存在死锁的资源分配图存在环路但是没有死锁3.8.2死锁的排出方法2023/9/18第三章进程管理第33页解决死锁的方法一般可分为预防、避免、检测与恢复等三种。预防是采用某种策略,限制并发进程对资源的请求,从而使得死锁的必要条件在系统执行的任何时间都不满足。避免是指系统在分配资源时,根据资源的使用情况提前做出预测,从而避免死锁的发生。死锁检测与恢复是指系统设有专门的机构,当死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破坏死锁发生的必要条件,从而使得并发进程从死锁状态中恢复出来。注意:在实际操作系统中大都使用检测与恢复法排除死锁。1.死锁的预防2023/9/18第三章进程管理第34页破坏第一个条件使资源可同时访问而不是互斥使用破坏第二个条件采用剥夺式调度方法当进程在申请资源未获准许的情况下,如主动释放资源(一种剥夺式),然后才去等待破坏第三个条件预先分配各并发进程所需要的全部资源,并且直到它所要的资源都得到满足后才开始执行破坏第四个条件把资源分类按顺序排列,使进程在申请、保持资源时不形成环路死锁的预防的缺点2023/9/18第三章进程管理第35页在许多情况下,一个进程在执行之前不可能提出它所需要的全部资源。无论所需资源何时用到,一个进程只有在所有要求资源都得到满足之后才开始执行。对于那些不经常使用的资源,进程在生存过程期间一直占用它们是一种极大的浪费。降低了进程的并发性。限制了进程对资源的请求,而且对资源的分类编序也耗去一定的系统开销2、死锁的避免2023/9/18第三章进程管理第36页死锁避免即动态预防,因为系统采用动态分配资源,在分配过程中预测出死锁发生的可能性并加以避免的方法。死锁避免:–资源被分成多个层次–当进程得到某一层的一个资源后,它只能再申请较高层次的资源–当进程要释放某层的一个资源时,必须先释放占有的较高层次的资源–当进程得到某一层的一个资源后,它想申请该层的另一个资源时,必须先释放该层中的已占资源银行家算法(Banker's
Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾
兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死结产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。2023/9/18第三章进程管理第37页在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明
完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行
家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请
资源的进程。系统安全状态1.安全状态在避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,令进程等待。所谓安全状态,是指系统能按某种进程顺序(P
1
,P
2
,…,Pn
)(称〈P1
,P2
,…,Pn
〉序列为安全序列),来为每个进程Pi
分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。2.安全状态之例我们通过一个例子来说明安全性。假定系统中有三个进程P1、P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得
5台、2台和2台磁带机,尚有3台空闲未分配,如下表所示:进程最大需求已分配可用P11053P242P392安全序列:p2
p1
p33.由安全状态向不安全状态的转换如果不按照安全序列分配资源,则系统可能会由安全状态进入不安全状态。例如,在T0时刻以后,P3又请求1台磁带机,若此时系统把剩余3台中的1台分
配给P3,则系统便进入不安全状态。因为,此时也无法再找到一个安全序列,例如,把其余的2台分配给P2,这样,在P2完成后只能释放出4台,既不能满足P1尚需5台的要求,也不能满足P3尚需6台的要求,致使它们都无法推进到完成,彼此都在等待对方释放资源,即陷入僵局,结果导致死锁。进程最大需求已分配可用P11052P242P393银行家算法原理2023/9/18第三章进程管理第41页我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;顾客可以分期贷款,但贷款的总数不能超过最大需求量;当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需
求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请
资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量。若
超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配银行家算法中的数据结构可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。最大需求矩阵Max
。这是一个n
×m
的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。分配矩阵Allocation。这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的数目为K。需求矩阵Need。这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。Need[i,j]=Max[i,j]-Allocation[i,j]2.银行家算法设Requesti是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查:如果Requesti[j]≤Need[i,j],便转向步骤2;否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。如果Requesti[j]≤Available[j],便转向步骤(3);否则,表示尚无足够资源,Pi须等待。reqi<=needierrorreqi<=availiblock系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:Available[j]∶=Available[j]-Requesti[j];Allocation[i,j]∶=Allocation[i,j]+Requesti[j];Need[i,j]∶=Need[i,j]-Requesti[j];系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。avail=avail-reqialloci=alloci+reqineedi=needi-reqifinish[i]=.F.needi<=workwork=work+allocifinish[i]=.T.3.安全性算法(1)
设置两个向量:①工作向量Work:它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,
Work∶=Available;
②Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做
Finish
[
i
]
∶
=false;
当有足够资源分配给进程时,Finish[i]∶=true。从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false;②Need[i,j]≤Work[j];若找到,执行步骤(3),否则,执行步骤(4)。当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Work[j]∶=Work[i]+Allocation[i,j];Finish[i]∶=true;go
to
step
2;如果所有进程的Finish[i]=true都满足,则表示系统处于安全状态;否则,系统处于不安全状态。银行家算法之例假定系统中有五个进程{P0,P1,P2,P3,P4}和三类资源{A,B,C},各种资源的数量分别为10、5、7,在T0时刻的资源分配情况如图3-15
所示。图3-15
T0时刻的资源分配表MaxA
B
CAllocationA
B
CANeedBCAvailableA
B
Cp07
5
3010743332p13
2
2200122(230)(302)(020)p29
0
2302600p32
2
2211011p44
3
3002431(1)
T0时刻的安全性:图3-16
T0时刻的安全序列WorkA
B
CNeedA
BCAllocA
BCWork+allocA
B
CFinishp1332122200532truep3532011211743truep4743431002745truep27456003021047truep010477430101057true(2)P1
请求资源:P1
发出请求向量Request1
(1,0,2),系统按银行家算法进行检查:①
Request1(1,
0,
2)≤Need1(1,
2,
2)②
Request1(1,
0,
2)≤Available1(3,
3,
2)③系统先假定可为P1
分配资源,并修改Available,
Allocation1
和Need1向量,由此形成的资源变化情况如图3-15
中的圆括号所示。④再利用安全性算法检查此时系统是否安全。图3-17
P1申请资源时的安全性检查WorkA
B
CNeedA
BCAllocA
BCWork+allocA
B
CFinishp1230020302532truep3532011211743truep4743431002745truep0745743010755truep27556003021057true2023/9/18第三章进程管理第53页例如:进程PA,使用资源的顺序是R1,R2; 进程PB,使用资源的顺序是R2,R1;若采用动态分配有可能形成环路条件,造成死锁。
采用有序资源分配法:R1的编号为1,R2的编号为2;PA:申请次序应是:R1,R2PB:申请次序应是:R1,R2这样就破坏了环路条件,避免了死锁的发生。2023/9/18第54页第三章进程管理2.
银行家算法检查申请者对各类资源的最大需求量,如果系统现存的各类资源可以满足它的最大需求量,就满足当前的申请。缺点:①必须事先知道每个进程的资源最大需求量。②算法过于保守。③要求系统资源与用户数不变。2023/9/18第55页第三章进程管理例子:假定系统有10个资源(为了说明问题的简单,不管它是什么资源),目前分配的情况如上表:此时,系统中只剩下2个资源,这时就要考察能满足哪个进程,不能满足P和R的最大要求,能满足Q,于是将剩下的2个资源分配给Q,Q就能完成,然后释放所占用的6个资源。可满足P,也可满足R,这时不论分给谁都能保证完成。2023/9/18第56页第三章进程管理3.
死锁的检测与恢复2023/9/18第57页第三章进程管理1.
死锁的检测①由系统提供检测算法②由计算机操作员检测通常的方法是程序员的经验,如UNIX系统中,可考察进程的运行时间。在UNIX系统中有命令PS可显示进程占用CPU的时间,若发现有一组进程在一段时间内没有占用CPU,就认为这类进程出现了死锁。2.
死锁的恢复2023/9/18第58页第三章进程管理①
撤消陷于死锁的全部进程;②
逐个撤消陷于死锁的进程,直到死锁不存在;③
从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失;④
从某个存在的中间检测点重新启动各死锁进程。3.9
线程2023/9/18第59页第三章进程管理3.9.1
为什么要引入线程3.9.2
线程的基本概念3.9.3
线程与进程的区别3.9.4
线程的实用范围3.9.1
线程的引入2023/9/18第三章进程管理第60页(1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。为了减少进程切换和创建、撤销进程的开销,提高执行效率和节省资源,人们开始在操作系统中引进“线程”的概念。3.9.2
线程的基本概念2023/9/18第三章进程管理第61页引入线程主要是为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理线程是进程内的一个执行单元,也是进程内的一个可调度实体。一个进程内的基本调度单位称为线程或称为轻权进程(Light
weight
process),这个调度单位既可以由操作系统内核控制,也可以由用户程序控制3.9.2
线程的概念2023/9/18第三章进程管理第62页进程是程序的一次执行过程和资源分配的基本单位。线程是一个进程内的基本调度单位,又称为轻权进程(Light
weight
process)调度单位既可以由操作系统内核控制,也可以由用户程序控制引入线程的目的:为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理。3.9.3
线程与进程的比较2023/9/18第三章进程管理第63页1.调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。
2
.并发性:
在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。
3
.拥有资源:
不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。
4
.系统开销:
由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。二. 线程和进程的关系①线程是进程的一个组成部分。②一个进程可以有多个线程,一个进程的多个线程都在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地转让协议书范文6篇
- 七年级上学期教学计划范文六篇
- 2023年一周工作计划
- 形容冬天寒冷的经典句子120句
- 三年级第二学期美术教学计划
- 实习工作总结锦集十篇
- 新年工作计划(3篇)
- 《秋天的水果》中班教案
- 大学生暑期三下乡心得体会
- 防校园欺凌主题班会教案
- 《正态分布理论及其应用研究》4200字(论文)
- GB/T 45086.1-2024车载定位系统技术要求及试验方法第1部分:卫星定位
- 电力电子技术(广东工业大学)智慧树知到期末考试答案章节答案2024年广东工业大学
- 2024年中国移动甘肃公司招聘笔试参考题库含答案解析
- 活动房结构计算书
- 富氢水项目经济效益及投资价值分析(模板参考)
- 小流域水土保持综合治理工程初步设计
- 增强热塑性塑料复合管在我国的发展现状
- 机械设计外文文献翻译、中英文翻译、外文翻译
- 美标渐开线花键计算程序2014.8
- 风动送样手册
评论
0/150
提交评论