




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章进程管理操作系统课程组内容回顾作业调度算法的性能分析用户接口单道程序环境下作业调度算法性能分析多道程序环境下作业调度算法性能分析结论FCFSSJFHRP作业控制级接口程序级接口系统功能调用:程序的状态特权指令访管指令系统功能调用的原理2一、进程的定义曾经的定义进程是程序的一次执行;进程是可以和别的计算并发执行的计算;进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
……教材中的定义进程是程序的一次执行,该进程可与其它进程并发执行;它是一个动态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元,也是基本的执行单元。3二、为什么要引入进程的概念?顺序执行程序指的是在有多个程序需要执行的情况下,处理器严格按照某一顺序按序执行,每次只执行一个程序。其实质是单道程序系统。特点顺序性资源独占性可再现性不足效率低下4二、为什么要引入进程的概念?多道程序设计同一时刻内存中存放了多个作业,处理器交替运行不同的作业。提高了系统的效率,尤其是资源利用率。特点多道宏观上并行微观上串行问题系统管理复杂化程序A程序BCPUI/Otime资源5二、为什么要引入进程的概念?程序并发执行带来的新特征资源共享性;独立性和制约性;程序执行的间断性;结果不可再现。6二、为什么要引入进程的概念?与时间有关的错误…a=n//n表示剩余的票数if(a>=1){a=a-1;//售出一张票
n=a;}…… …a=n//n表示剩余的票数if(a>=1){a=a-1;//售出一张票
n=a;}…… 因为这种错误和相对执行速度有关,因此称为与时间有关的错误。服务器售票员A售票员B7二、为什么要引入进程的概念?结论:程序的并发执行使得程序的执行情况不可预见,其结果不再唯一,成为一个动态的过程。而程序是一个静态的概念,不再能切实反映程序执行的各种特征(独立性、并发性、动态性)。“进程”MIT:60年代初,MULTICS系统中提出;IBM:CTSS/360系统,称为“任务”(task)。8内存三、进程的定义与控制进程与程序的区别和联系(1)程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序的一次执行。(2)进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期,暂时存在,程序没有生命周期,可长久保存。(3)进程还是操作系统资源分配和保护的基本单位,程序没有此功能。(4)进程与程序的对应关系。通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。(5)进程与程序的结构不同。磁盘9三、进程的定义与控制进程的组成PCB
ProcessControlBlock
灵魂,进程存在的唯一标志。数据程序程序:描述了进程要完成的功能,是进程执行时不可修改的部分。数据:进程执行时用到的数据(用户输入的数据、常量、静态变量)。工作区
工作区:参数传递、系统调用时使用的动态区域(堆栈区)。实体10三、进程的定义与控制进程控制块(PCB)定义:是操作系统用来记录进程详细状态和相关信息的基本数据结构,它和进程是一一对应的,是进程存在的唯一标识。作用:提供进程的各种信息,以便操作系统控制和管理。11三、进程的定义与控制类型内容作用标识信息1)进程标识2)用户标识3)父进程标识标识一个进程现场信息1)CPU通用寄存器内容2)CPU状态寄存器内容3)栈指针等记录处理机现场信息,以备恢复之用控制信息1)进程状态2)调度信息3)队列指针4)位置信息5)资源占用信息……用于进程的调度管理PCB结构12三、进程的定义与控制操作系统对PCB的管理:集中统一管理内存PCB表PCBPCBPCBPCB辅存非常驻信息非常驻信息非常驻信息非常驻信息13三、进程的定义与控制进程的创建操作系统为进程创建进程控制块和分配地址空间的过程就是进程创建的过程。创建进程标识分配内存和其它资源初始化进程控制块将创建的进程置于就绪队列
PCBPCBPCBPCB就绪队列14三、进程的定义与控制进程的执行运行Running被调度时间片用完,中断资源释放或事件完成阻塞Blocked等待资源和事件进程占有处理机,处理机正在执行该进程的程序。进程已获得除处理机外的所需资源,等待分配处理机执行。也叫等待、挂起、睡眠态,此时进程因等待某种条件(如I/O操作或进程同步)无法运行。引起进程阻塞的原因很多,系统将根据不同的阻塞原因将进程插入某个相应的阻塞队列中。就绪Ready15三、进程的定义与控制进程状态转换及原因状态转换原因就绪—运行进程被调度程序选中占用CPU。运行—阻塞进程出让CPU,等待系统分配资源或某些事件的发生,如:暂时不能访问某一资源,操作系统尚未完成服务,系统正在初始化I/O设备,等待用户的输入信息等。阻塞—就绪处于等待队列中的进程,当其等待的事件已经发生,或等待的资源可用时,此进程将进入就绪队列竞争CPU。运行—就绪进程分配的时间片已用完,或者在中断机制下,有更高优先级的进程进入系统,这时进程进入就绪队列等待下一次被选中而占用CPU。16三、进程的定义与控制运行就绪阻塞被调度时间片用完,中断资源释放或事件完成等待资源和事件新建创建完毕结束结束执行五种进程状态转换17三、进程的定义与控制七种进程状态转换18三、进程的定义与控制进程的组织管理——队列PCBPCBPCBPCBCPUPCBPCBPCBPCB等待队列1PCBPCBPCBPCB等待队列n就绪队列时间片用完完成等待完成等待入队执行结束19三、进程的定义与控制进程控制进程控制的主要任务是:创建和撤销进程以及进行进程间的状态转换。这包括:创建一个进程撤销一个进程改变进程状态实现进程间的通信这些由操作系统内核通过执行各种原语完成。20三、进程的定义与控制原语(primitive)由若干条机器指令构成的可完成特定功能的程序段,它是一个“原子操作(atomicoperation)”过程,作为一个整体而不可分割--要么全都完成,要么全都不做(类似数据库中的“事务”)。原语主要是通过屏蔽各种中断和固化技术保证其原子性的。分类进程控制原语进程通信原语进程管理原语其他方面的原语1、进程创建原语2、进程撤销原语3、进程阻塞原语4、进程唤醒原语5、进程挂起原语6、进程激活原语21三、进程的定义与控制进程的特征并发性:执行时间可以重叠;动态性:有生命周期,存在不同的状态;独立性:独立执行,是资源分配和调度的独立单位;制约性:虽然独立执行,但可能存在相互制约关系;异步性:各进程执行时间相对独立,不确定;结构性:拥有固定结构。22四、进程调度进程调度:就是按照一定的算法,从就绪队列中选择某个进程占用CPU的方法——对CPU资源进行合理的分配使用,以提高处理机利用率,并使各进程公平得到处理机资源。运行就绪阻塞被调度时间片用完,中断资源释放或事件完成等待资源和事件23四、进程调度确定进程调度算法原则进程调度的任务是:有效的选择占用CPU的进程,控制协调系统安全、高效的工作。设计者系统用户公平性:每个进程(不论优先级)都有机会被运行。较大的吞吐量。及时性:响应速度要快。较短的周转时间:不应当让用户等待时间过长。24四、进程调度进程调度算法先来先服务调度算法(FCFS,FirstComeFirstServed)特点:简单、可靠;容易理解、实现方便;非抢占式的。缺点:作业的平均等待时间过长,系统效率低下;不适合于分时系统。PCBPCBPCBPCB就绪队列CPU公平性吞吐量及时性周转时间25四、进程调度基于优先数的调度算法
(PrioritySchedulingAlgorithm)思想:给每一个进程设置一个优先数(优先级),系统在调度时优先选择具有高优先级的进程占用CPU。具有相同优先数的进程按照FCFS算法执行。优先数的确定:运行前:可根据外设的使用情况,运行时间的长短,紧急程度,重要程度等因素确定。运行中:
1)静态优先数法:进程创建时就规定好它的优先数,这个数值在进程运行时不变。
2)动态优先数法:进程的优先数在执行过程中可以根据情况变化而改变(UNIX中采用的方法)。26四、进程调度优点:灵活。通过不同的优先级设置策略,可以强调不同的性能。实现也较为方便。通过优先级的动态调整,可以平衡系统性能。问题:静态优先数法——无穷阻塞(IndefiniteBlocking)进程占用CPU的方式非抢占式(不可剥夺式)——FCFS。抢占式(可剥夺式)——会使进程频繁调度,在设计时还应考虑进程切换的时间开销。27四、进程调度时间片轮转法(RR,RoundRobin)特点:专门为分时系统设计。类似于FCFS算法但是增加了抢占及进程间的切换功能。思想:系统规定一个时间长度(时间片/时间量)作为允许一个进程运行的时间,如果在这段时间该进程没有执行完,则必须让出CPU等待下一次分配的时间片。原理PCBPCBPCBPCBCPUPCBPCBPCBPCB等待队列1PCBPCBPCBPCB等待队列n就绪队列时间片用完完成等待完成等待执行28四、进程调度时间片的选择方法固定时间片:分配给每个进程时间片相等;可变时间片:根据进程的不同要求对时间片的大小实时修改。优点:公平性,及时性。问题:时间片大小的确定?过大:退化为FCFS算法,响应时间变长。过小:一个任务需要多个时间片执行,增加了进程切换次数,响应时间变长。想法:能不能在减少进程切换次数的同时,又能保持较高的响应速度?29四、进程调度多级反馈队列调度算法
(MultilevelFeedbackQueueScheduling)思想:引入多个就绪队列,通过对各队列的区别对待,达到一个综合的调度目标。原理:CPU降低进程优先级完成PCBPCBPCBPCB最高优先级队列PCBPCBPCBPCB次高优先级队列PCBPCBPCBPCB低优先级队列执行时间递增目前最为通用、灵活的CPU调度算法,但也是最为复杂的。30五、进程间的相互作用同步data定义:进程之间这种相互合作、协同工作的关系称为进程的同步。简单说来就是:多个相关进程在执行次序上的协调。制约关系:直接制约。31五、进程间的相互作用互斥定义:当多个进程因为争夺临界资源而互斥执行称为进程的互斥。制约关系:间接制约。临界资源:也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如打印机,磁带机,也可以是进程共享的数据、变量等。32五、进程间的相互作用临界资源处理不当带来的问题执行结果错误…a=n//n表示剩余的票数if(a>=1){a=a-1;//售出一张票
n=a;}…… …a=n//n表示剩余的票数if(a>=1){a=a-1;//售出一张票
n=a;}…… 服务器售票员A售票员B临界资源临界区:与临界资源操作相关的程序段。33五、进程间的相互作用死锁(DeadLock)在并发系统中,程序执行结果的正确性不仅取决于自身的正确性,还与其在执行过程中能否正确的与其它进程实施同步或互斥有关。必须对临界资源的访问进行控制。34五、进程间的相互作用互斥解决方案关中断法(开关中断指令)也称为“硬件锁”,是实现互斥最简单的方法。做法:每个进程在进入临界区后先关中断,屏蔽其它请求,在离开之前再开中断。优点:实现简单。缺点:中断被关掉后,CPU不再响应任何外部事件,此时进程将会独占CPU,直至关闭中断,如果中断关闭时间过长,会造成严重后果,因此把开关中断的权力交给用户进程是很不明智的。35五、进程间的相互作用锁变量法(测试和设置指令)做法:设置一个共享(锁)变量W,初值为0。当一个进程想进入其临界区时,它首先测试这把锁。如果锁的值为0,则进程将其置为1并进入临界区。若锁已经为1,则进程等待直到其变成0。于是,0就表示临界区内没有进程,1表示已经有某个进程进入了临界区。
优点:较为简单。缺点:当有一个进程进入临界区后,其它试图进入的进程必须反复不断的测试W以便在W为0时进入,此时CPU会一直处于忙状态(busywaiting)。因此这种方法效率也很低。……LOCK(W);//加锁原语临界区;UNLOCK(W);//解锁原语……36五、进程间的相互作用其它方法Dekker算法:进程被强制轮流进入临界区(不管是否愿意)。Peterson算法:设置标识指示是否又要求进入临界区。
……37五、进程间的相互作用原则:互斥:一次只允许一个进程进入临界区中,即各进程互斥访问临界资源。空闲则入,忙则等待:不能让等待进入临界区的进程“死等”,而谁也不能进入,即进程不能无限地停留在等待临界资源的状态。有限等待:每个进程占用临界资源的时间必须是有限的,使用完毕立刻释放资源。38五、进程间的相互作用信号量(Semaphore)和P、V操作信号量:1965年由荷兰学者Dijkstra提出,它是一种特殊的数据结构。功能:表示资源的实体。特殊之处:每个信号量与一个队列关联;其值只能通过初始化和P、V操作来访问。 信号量的类型:公用信号量:用于进程间的互斥,初值通常为1私有信号量:用于进程间的同步,初值通常为0或n39五、进程间的相互作用P、V操作(均是原语)P操作:荷兰语“proberen”——“检测”之意。 意味着请求分配一个单位资源。P(S)://S为信号量{S=S-1;if(S<0){
调用进程被阻塞,进入S的等待队列;
}}PCBPCBPCBPCB和S相关的等待队列PCB40五、进程间的相互作用V操作:荷兰语“verhogen”——“增量”之意, 意味着释放一个单位资源。V(S)://S为信号量{S=S+1;if(S<=0){
从S的等待队列中唤醒一个进程使其进入就绪状态;
}}PCBPCBPCBPCB和S相关的等待队列PCB41五、进程间的相互作用信号量及P、V操作的应用进程的互斥semaphore
S;//设置公有信号量S=1;//初值{…
P(S);
printfile1;V(S);…}{…
P(S);
printfile2;V(S);…}42五、进程间的相互作用进程的同步——生产者与消费者问题
问题描述:生产者缓冲区消费者{cooking;
P(S1);putindish;
V(S2);}semaphoreS1,S2
;//设置私有信号量S1=1;//表示盘子是否空S2=0;//表示盘子里是否有东西{P(S2);takeoutfromdish;
V(S1);eating;}43五、进程间的相互作用使用P、V操作时的注意事项P、V操作总是成对出现的;互斥操作时他们处于同一进程中;同步操作时他们处于不同进程中。{…
P(S);
printfile1;V(S);…}{…
P(S);
printfile2;V(S);…}{cooking;
P(S1);putindish;
V(S2);}{P(S2);takeoutfromdish;
V(S1);eating;}44五、进程间的相互作用P、V操作的位置十分重要,放置不当会造成严重后果,注意逻辑关系。{cooking;
P(S1);putindish;
V(S2);}{V(S1);
takeoutfromdish;
P(S2);eating;}{cooking;
P(S1);putindish;
V(S2);}{P(S2);takeoutfromdish;
V(S1);eating;}45五、进程间的相互作用IPC(Inter-ProcessCommunication)经典问题读者-写者问题问题描述:一个数据对象(文件、记录)可以为多个并发进程共享。其中有的进程只需要读其中的内容,我们称为“读者”;有的进程负责更新其中内容(读/写),我们称为“写者”。“读者”可以同时读取共享数据对象;“写者”不能和其它任何进程同时访问数据对象。如何实现?data读者读者写者写者46五、进程间的相互作用分析:“读-写”:互斥访问“写-写”:互斥访问“读-读”:允许同时访问第一类读者—写者问题:“读者”优先,只要有读进程在读,写进程被迫等待。data读者读者写者写者47五、进程间的相互作用设置信号量:semaphoremutex,write;//公用信号量,用于互斥mutex=1;write=1;//设置初值int
readcount;//计数,用于记录读者的数目写者进程:P(write);//申请使用data资源writing;V(write);//释放data资源读者进程:P(mutex);
//对readcount互斥readcount++;//读者数目加1if(readcount==1)//第一个读进程
P(write);
//申请使用data资源V(mutex);//释放readcountreading;P(mutex);//对readcount互斥readcount--;if(readcount==0)
//最后一个读进程
V(write);//释放data资源V(mutex);//释放readcount48五、进程间的相互作用哲学家问题五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只叉子。每个哲学家的行为是思考,感到饥饿,然后吃通心粉。为了吃通心粉,每个哲学家必须拿到两只叉子,并且每个人只能直接从自己的左边或右边去取叉子。49五、进程间的相互作用使用P、V操作解决每一只叉子用一个信号量表示,通过对信号量执行P操作取得叉子,执行V操作放下叉子。设置信号量:semaphorefork[n];//n=5,公用信号量,用于互斥fork[i]=1;//设置初值,i=1,2,…,5第i个哲学家进程:while(1){ thinking…
P(fork[i])//拿左手的叉子
P(fork[i+1])//拿右手的叉子
eating; V(fork[i+1]);//放下右手的叉子
V(P(fork[i]);//放下左手的叉子}可以确保没有两个相邻的哲学家同时进餐。50五、进程间的相互作用带来的问题:死锁——每个人拿起而且只拿起了一只叉子;饥饿——动作很协调时。原因:P、V操作本身可以很好的解决同步互斥问题,但是实际中遇到的问题并不都是同步互斥问题,并且P、V操作自身也存在着缺点:操作繁琐,同步互斥操作被分散在各个进程中,使得易读性、维护性差,复杂性高,对于一些复杂问题实现不方便,存在隐患。如何解决?——提出了一些高级数据结构。51五、进程间的相互作用管程(monitor)定义:1973年,Hoare和BrinchHanson提出,他们给出的定义“一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据”。简单说来:管程是由若干公共变量和所有访问这些变量的过程所组成的一个特殊的模块或软件包。基本思想:集中管理各进程中的临界区:管程把分散在各个进程中互斥地访问公共变量的那些临界区集中起来管理。特点管程的局部变量只能由该管程的过程存取;系统保证进程只能互斥地调用管程中的过程。52五、进程间的相互作用monitorphilosophers{
statusstate[N]; conditionself[N];
test(inti){ …… };
pickup(inti){ …… };
pickdown(inti){ …… };
philosophers()
{
…… };};管程名称局部变量操作初始化语句管程的组成:第i个哲学家进程:…philosophers.pickup(i);eating;philosophers.putdown(i);…53五、进程间的相互作用管程的特征模块化:一个管程是一个基本程序单位,可以单独编译;抽象数据类型:管程是一种特殊的数据类型,其中不仅有数据,而且有对数据进行操作的代码,是对数据和操作的封装。信息掩蔽:管程如何实现其功能相对于外部程序是半透明的。管程的优点安全性:共享变量外部不可见,只能由管程中的操作存取;互斥性:管程保任何一个时刻只能有一个进程进入;等待机制:设置有等待队列及相应的操作,对资源进行管理。54五、进程间的相互作用管程和进程的区别设置目的不同:管程是对共享资源进行管理,进程是资源分配和执行的基本单位。数据结构不同:管程定义公用数据结构,进程定义私有数据结构。存在方式不同:进程有生命周期,管程是操作系统固有的部分,没有生命周期。执行方式不同:管程被进程调用,没有并发性,进程具有并发执行性。55六、进程通信什么是进程通信?简单来说就是在进程间传输数据(交换信息)。进程通信的分类根据交换信息量的多少和效率的高低,分为:低级通信:只能传递状态和整数值(控制信息)进程1进程2P、V操作缺点:传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信息则需要进行多次通信。编程复杂:用户直接实现通信的细节,容易出错。56六、进程通信高级通信:提高信号通信的效率,传递大量数据,减轻程序编制的复杂度。进程1进程2data提供三种方式:1、共享内存模式2、消息传递模式3、共享文件模式57六、进程通信根据通信方式不同,分为:直接通信:信息直接传递给接收方,如管道。在发送时,指定接收方的地址或标识,也可以指定多个接收方或广播式地址;在接收时,允许接收来自任意发送方的消息,并在读出消息的同时获取发送方的地址。间接通信:借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列。通常收方和发方的数目可以是任意的。58内存六、进程通信共享内存模式(间接通信)最为快捷有效的方式之一,UNIX系统种常被使用。原理进程1进程2申请申请datadata内存共享区的互斥要通过其它机制实现;数据的发送方不关心数据由谁接收,数据的接收方也不关心数据是由谁发送的,存在安全隐患。段表共享区59六、进程通信消息传递模式消息(message):由发送方形成,通过一定的机制传递给接收方的一组信息,它的长度可以固定,也可以变化。消息体消息结构消息头消息缓冲区发送进程指针指向下一个信息缓冲区的指针消息长度消息正文60六、进程通信工作原理进程A进程B原语Send(B,m)消息原语Receive(m)消息缓冲区进程B的消息队列进程C的消息队列进程A的消息队列消息Q:一个进程如何和一个消息队列关联?临界资源是什么?
OS如何实现同步互斥的?PCB现场信息进程标识控制信息HptrmutexSn61六、进程通信Send()和Receive()通信原语ProcedureSend(receiver,Ma)begin
getbuf(Ma,size,i);
i.sender:=Ma.sender;
i.size:=Ma.size;
i.text:=Ms.text;
i.next:=0;
getid(PCBset,receiver,j);
P(j.mutex);
insert(j.Hptr,i);
V(j.Sn);
V(j.mutex);
endProcedureReceive(Mb)beginj:internalname;
P(j.Sn);
P(j.mutex);
remove(j.Hptr,i);
V(j.mutex);
Mb.Sender:=i.Sender;
Mb.Size:=i.Size;
Mb.text:=i.text;
end62六、进程通信消息传递的方式直接通信方式:点到点的发送
Send(DestProcessName,Message);
Receive(SourceProcessName,Message);间接通信方式:以信箱为媒介进行传递,可以广播
Send(MailBox,Message);
Receive(MailBox,Message);进程A进程B原语Send(…)原语Receive(…)Mailbox63六、进程通信管道(直接通信)是一种信息流缓冲机构,UNIX系统中管道基于文件系统,在内核中通过文件描述符表示。管道以先进先出(FIFO)方式组织数据传输。实现方法
调用pipe()函数创建管道
int
pipe(intfd[2]);
fd[0]为管道里的读取端
fd[1]则为管道的写入端。
通过write()函数写入信息
intwrite(int
handle,char*buf,unsigned
len)
进程通过read()函数读取信息
intread(int
handle,void*buf,unsigned
len)64六、进程通信管道的特点:管道是一个单向通信信道,如果进程间要进行双向通信,通常需要定义两个管道管道通过系统调用read(),write()函数进行读写操作管道的分类匿名管道:只适用于父子进程之间通信;管道能够把信息从一个进程的地址空间拷贝到另一个进程的地址空间。命名管道:命名管道有自己的名字和访问权限的限制,就像一个文件一样。它可以用于不相关进程间的通信,进程通过使用管道的名字获得管道。65七、线程为什么要提出线程的概念?进程作为计算机的基本计算调度单位,在现代操作系统的发展中出现了一些问题:进程的并发执行使得进程调度的工作量日益增大,系统将大量精力耗费在进程调度和分配内存上,系统效率得不到有效的提高。进程之间的通信延迟很大,使得频度较高的通信过程效率低下。进程间的并行度没有人们预想的效果好。66七、线程线程的定义线程(thread)也叫轻型进程,是一个可执行的实体单元。它代替以往的进程,成为现代操作系统中处理机调度的基本单位。线程和进程的关系多线程模型1、线程是进程的一个组成部分,线程由进程创建,因此一个进程中至少存在一个线程,线程还可以创建其它线程。2、进程依然是资源分配和保护的基本单位,线程只能在进程的地址空间活动,线程只能使用其所在进程的资源。67七、线程线程的结构PCB程序数据进程地址空间TCB栈线程1TCB栈线程2TCB栈线程3线程的特点:1、线程作为基本的调度单位,其状态有:就绪、运行、阻塞等;2、进程中都所有线程共享进程的存储空间和分配资源。工作区68七、线程线程优势:创建和撤消线程的开销非常小。不需要向系统请求独立的地址空间及进行相关的地址空间复制(例如父子进程),因此创建和撤销线程系统的开销要远小于进程。切换迅速。线程的上下文环境要比进程简单的多,因此线程间的切换远比进程快的多。通信效率高。同一进程中的线程由于共享同一地址空间,通信时不需要借助内核功能。并发度高。在多处理机系统中,对进程的个数是有所限制的,但对线程的个数理论上不存在限制,更发挥了多处理机系统的优势。69七、线程线程的实现机制用户级线程优点:1、核心不用管理线程的切换,处理机在两个线程间切换时不用进入到核心态执行,节省了用户态与核心态之间切换的开销。2、用户级线程的管理机制可以运行在各种操作系统中,方便、灵活。缺点:当线程执行系统调用时,整个进程都被阻塞,不能充分利用多处理机。70七、线程核心级线程核心可以调度一个进程中的多个线程同时运行,当某线程发生阻塞,可以调度其它线程执行。优点:充分发挥了多处理机的并行工作能力。缺点:在同一进程间的线程控制权转移时,用户级与核心级的切换开销很大。71七、线程SolaristhreadkernelthreadLWP72八、UNIX进程模型进程映像基本结构正文段,可以共享常驻内存PCB数据段73八、UNIX进程模型proc结构structproc{charp_stat;/*进程状态*/charp_flag;/*进程标志*/charp_pri;/*进程优先级*/charp_sig;/*软中断号*/charp_uid;/*用户号*/charp_time;/*驻留时间*/charp_cpu;/*进程占据CPU的时间量*/charp_nice;/*用于计算优先级*/int
p_ttyp;/*控制终端tty结构的地址*/int
p_pid;/*进程号*/int
p_ppid;/*父进程号*/int
p_addr;/*数据段地址*/int
p_size;/*数据段大小*/int
p_wchan;/*等待的原因*/int*p_textp;/*对应正文段的text项地址*/}proc[NPROC];74八、UNIX进程模型text结构structtext{int
x_daddr;/*磁盘地址*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校食堂切片机使用操作规范
- 地下管道橡塑保温施工方案
- 黄岩区卫生间拆除施工方案
- 常外小升初数学试卷
- 普陀区运动木地板施工方案
- 企业信息统计工作计划
- 道路施工安全生产培训安全生产责任
- 苏教版四年级下学期语文期中知识点归纳复习摸底练习题单
- 河南电力电缆桥架施工方案
- 2025年会计人员实习期个人计划
- 卒中后抑郁康复治疗
- 煤矿安全质量标准化培训课件
- 2024解析:第十七章欧姆定律-基础练(解析版)
- 新教材 人教版高中化学选择性必修2全册各章节学案(知识点考点精讲及配套习题)
- 感染性休克护理
- 服务项目质量保障体系及措施
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案)
- 电子商务论文3篇(含目录)
- 《现代家政导论》电子教案 1.1模块一项目一家政与家政学认知
- 《人工智能通识教程》(第2版)教学大纲
- 2024年监控摄像头项目建议书
评论
0/150
提交评论