第2章进程的描述与控制2_第1页
第2章进程的描述与控制2_第2页
第2章进程的描述与控制2_第3页
第2章进程的描述与控制2_第4页
第2章进程的描述与控制2_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、进程管理进程管理1第二章 进程控制与描述2.5 经典进程同步问题2.6 进程通信 2.7 线程的基本概念2.8 线程的实现 进程管理进程管理22.5 经典进程的同步问题经典进程的同步问题 1. 生产者消费者问题2. 哲学家进餐问题3. 读者写者问题 通过对经典问题的研究和学习,可以帮助我们更好地理解进程同步的概念及实现方法P60进程管理进程管理32.5.1 生产者生产者消费者问题消费者问题 Producer-consumer problem,又称有限缓冲问题有限缓冲问题(Bounded-buffer problem)两个共享固定大小缓冲区的进程“生产者”和“消费者”进程管理进程管理42.5.1

2、 生产者生产者消费者问题消费者问题 They are, They are, 相互合作进程相互合作进程关系关系1. 用记录型信号量解决用记录型信号量解决 2. 用用ANDAND信号量解决信号量解决3. 利用管程解决生产者利用管程解决生产者- -消费者问题消费者问题n单缓冲区情况单缓冲区情况 生产者生产者P P和消费者和消费者C C共用共用一个缓冲区一个缓冲区,P P生产产品放入生产产品放入缓冲区,缓冲区,C C从缓冲区取产品来消费。从缓冲区取产品来消费。n多个缓冲区情况多个缓冲区情况 生产者和消费者通过一个有界缓冲池生产者和消费者通过一个有界缓冲池(n(n个个) )相互联系。相互联系。 进程管理

3、进程管理5单缓冲区情况单缓冲区情况n单缓冲区的单缓冲区的同步问题同步问题 生产者P进程不能往“满”的缓冲区中放产品,设置信号量为empty(初值为1)消费者C进程不能从“空”的缓冲区中取产品,设置信号量full (初值为0)n单缓冲区的单缓冲区的互斥问题互斥问题P、C进程不能同时使用缓冲区不能同时使用缓冲区进程管理进程管理6Semaphore empty=n ,full=0;(单缓冲区单缓冲区) 生产者生产者消费者问题消费者问题Proceducer : while (true) 生产一个产品生产一个产品; P(empty) ; 送产品到缓冲区送产品到缓冲区; V(full); ;Consume

4、r :while (true) P(full); 从缓冲区取产品从缓冲区取产品; V(empty); 消费产品消费产品; ; 进程管理进程管理7多个缓冲区情况多个缓冲区情况n生产者和消费者共享生产者和消费者共享n n个缓冲区,利用互斥信号个缓冲区,利用互斥信号量量Mutex (Mutual exclusion,缩写Mutex)实现进程对实现进程对缓冲池的缓冲池的互斥使用互斥使用。n信号量信号量empty和和full分别表示缓冲池中分别表示缓冲池中空缓冲区空缓冲区和和满缓冲区满缓冲区的数量。的数量。n生产者和消费者生产者和消费者相互等效相互等效,只要缓冲池未满,只要缓冲池未满,生产者便可将消息送

5、入缓冲池;只要缓冲池未生产者便可将消息送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个消息。空,消费者便可从缓冲池中取走一个消息。进程管理进程管理8.PC生产者生产者消费者消费者n-1n-1n n个个BufferBuffer 同步同步 当缓冲池已放满产品时,当缓冲池已放满产品时,生产者生产者进程必须进程必须等待等待 当缓冲池已空时,当缓冲池已空时,消费者消费者进程应进程应等待等待 互斥:互斥:所有进程应所有进程应互斥使用缓冲池互斥使用缓冲池这一临界资源。这一临界资源。进程管理进程管理91. 用记录型信号量解决用记录型信号量解决 Semaphore empty=n ,full=0;lem

6、pty表示空缓冲个数,初值为表示空缓冲个数,初值为n;lfull表示满缓冲个数,初值为表示满缓冲个数,初值为0。l互斥使用临界区的信号量互斥使用临界区的信号量mutex,初值为初值为1。进程管理进程管理101. 用记录型信号量解决用记录型信号量解决 Semaphore empty=n ,full=0, mutex;item = buffern;int in=0,out=0; Main() cobegin producer(); consumer(); coend 进程管理进程管理11生产者生产者producer( ) do produce an item in nextp; wait(empt

7、y); /*申请空缓冲区 */ wait(mutex); /*实现对缓冲池的互斥使用*/ bufferin = nextp; in = (in+1) % n; signal(mutex); signal(full); /* 满缓冲区的个数加1*/ while (TRUE)进程管理进程管理12消费者消费者consumer() do wait(full); /*申请满缓冲区申请满缓冲区*/ wait(mutex); /*实现互斥实现互斥*/ nextc = bufferout; out = (out+1) mod n; signal(mutex); signal(empty); /*空缓冲区的个数

8、加空缓冲区的个数加1*/ consume the item in nextc; while(TRUE);进程管理进程管理132. 用用ANDAND信号量解决信号量解决 对于生产者对于生产者消费者问题,也可利用消费者问题,也可利用ANDAND信号量信号量来解决,即用:来解决,即用: Swait(empty,mutex)wait(empty)和和wait(mutex) Ssignal(mutex,full)signal(mutex)和和signal(full) Swait(full,mutex) wait(full)和和wait(mutex) Ssignal(mutex,empty)Signal(

9、mutex)和和Signal(empty) 进程管理进程管理14Producer( ) repeat produce an item in nextp; Swait(empty,mutex); bufferin=nextp; in=in+1 % n; Ssignal(mutex,full); until false;Consumer( ) repeat Swait(mutex, full); nextc=bufferout; out=(out+1) % n; Ssignal(mutex,empty); consume the item in nextc; until false;进程管理进程管

10、理152.5.2 哲学家进餐问题哲学家进餐问题 5 5个哲学家围坐在圆桌旁,每人面前有一只空盘子,个哲学家围坐在圆桌旁,每人面前有一只空盘子,每每2 2人之间放一只筷子人之间放一只筷子: :n放在桌子上的放在桌子上的筷子是临界资源筷子是临界资源,可用一个信号量表示一只筷子,五个信号量构成信号量数组。Semaphore chopstick5=1,1,1,1,1;n为了就餐,每个哲学家必须拿到两只筷子,并且只为了就餐,每个哲学家必须拿到两只筷子,并且只能直接从自己的左边或右边去取筷子。能直接从自己的左边或右边去取筷子。 smfr 进程管理进程管理16 1. 利用记录型信号量解决利用记录型信号量解决

11、第第i位哲学家的活动可描述为:位哲学家的活动可描述为:Semaphore chopstick5=1,1,1,1,1; repeat wait(chopsticki); /取左边筷子取左边筷子 wait(chopstick(i+1) % 5); / /取右边筷子取右边筷子 eat; signal(chopsticki); signal(chopstick(i+1) % 5); think; until false; 会死锁会死锁否?否?进程管理进程管理17 哲学家进餐问题哲学家进餐问题n哲学家饥饿时,总是先去拿左边的筷子哲学家饥饿时,总是先去拿左边的筷子( wait(chopsticki) );

12、 成功后,再去拿他右成功后,再去拿他右边的筷子边的筷子(wait(chopstick(i+1)mod 5);又成又成功后便可进餐。功后便可进餐。n进餐完毕,则先放下左边的筷子,然后再放进餐完毕,则先放下左边的筷子,然后再放右边的筷子。右边的筷子。上述解法可保证不会有两个相邻的哲学家上述解法可保证不会有两个相邻的哲学家同时进餐,但有可能引起同时进餐,但有可能引起死锁死锁。 进程管理进程管理18n假如五位哲学家同时饥饿而假如五位哲学家同时饥饿而各自拿起左边的各自拿起左边的筷子筷子时,就会使五个信号量时,就会使五个信号量chopstickchopstick均为均为0 0; 当他们再试图去拿右边的筷子

13、时,都将因无当他们再试图去拿右边的筷子时,都将因无筷子可拿而筷子可拿而无限期地等待无限期地等待。n几种解决方法几种解决方法 :死锁的情况死锁的情况进程管理进程管理19(1)(1)至多允许至多允许4 4个哲学家进餐个哲学家进餐 能保证至少有一位哲学家能够进餐,并在进餐完毕时能释放出他用过的两只筷子,从而使更多的哲学家能够进餐。(2)(2)仅当哲学家的左、右两只筷子均可用时,才仅当哲学家的左、右两只筷子均可用时,才允许他拿起筷子进餐。允许他拿起筷子进餐。(3)(3)规定哲学家拿起筷子的次序规定哲学家拿起筷子的次序给所有哲学家编号,奇数号的哲学家必须首先给所有哲学家编号,奇数号的哲学家必须首先拿左边

14、的筷子,偶数号的哲学家则反之。拿左边的筷子,偶数号的哲学家则反之。1 1、2 2号哲学家竞争号哲学家竞争1 1号筷子,则号筷子,则3 3、4 4号哲学家竞号哲学家竞争争3 3号筷子。即五位哲学家都先竞争奇数号筷子,号筷子。即五位哲学家都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有一获得后,再去竞争偶数号筷子,最后总会有一位哲学家能获得两只筷子而进餐。位哲学家能获得两只筷子而进餐。进程管理进程管理202. 用用ANDAND信号量解决信号量解决var chopstick:array0.4 of semaphore:=(1,1,1,1,1); repeat think; swait(ch

15、opstick(i+1) % 5,chopsticki); eat; signal(chopstick(i+1) % 5,chopsticki); until false;在哲学家进餐问题中,每个哲学家先获得在哲学家进餐问题中,每个哲学家先获得2临界资源临界资源(筷子筷子)方能进餐,用方能进餐,用AND信号量机制可获得信号量机制可获得最简洁的解法最简洁的解法进程管理进程管理212.5.3 “读者读者写者写者”问题问题“读者一写者读者一写者( (ReaderReaderWriter Problem)Writer Problem)问题问题”: 保证一个Writer进程必须与其他进程互斥地访问共享对

16、象。Example:进程管理进程管理222.5.3 “读者读者写者写者”解决方案解决方案读者一写者的同步读者一写者的同步要求要求:1)允许允许多个读者多个读者同时执行同时执行读操作读操作2)不允许读者、不允许读者、写者写者同时操作同时操作3)不允许多个不允许多个写者写者同时操作同时操作1. 用记录型信号量解决用记录型信号量解决2. 用信号量集机制解决用信号量集机制解决WriterWriter在在不能同时不能同时进程管理进程管理231. 用记录型信号量解决用记录型信号量解决 读者读者-写者问题有两种类型:写者问题有两种类型:n读者优先读者优先 当写者提出写的要求后,当写者提出写的要求后,允许允许

17、新的新的读者继续进入读者继续进入n写者优先写者优先 当写者提出写的要求后,当写者提出写的要求后,不允许不允许新的新的读者进入读者进入进程管理进程管理24读者读者-写者问题的信号量设置:写者问题的信号量设置:n为实现为实现ReaderReader与与WriterWriter进程间在读或写时的进程间在读或写时的互斥互斥而设置了一个互斥信号量而设置了一个互斥信号量WmutexWmutex。n设置一个整型变量设置一个整型变量ReadcountReadcount表示正在读的进程数表示正在读的进程数目,也应该为它设置一个互斥信号量目,也应该为它设置一个互斥信号量rmutexrmutex。当当Readcou

18、nt=0,表示无表示无读者进程读者进程在读,在读,读者进程读者进程需要需要执行执行Wait(Wmutex)操作。若成功,操作。若成功,读者进程读者进程便可去读,便可去读,相应地,做相应地,做Readcount+1操作。操作。仅当仅当读者进程读者进程在执行了在执行了Readcount减减1操作后其值为操作后其值为0时,时,才须执行才须执行signal(Wmutex)操作,以便让操作,以便让写者进程写者进程写写。进程管理进程管理25用记录型信号量解决用记录型信号量解决 读者读者reader: begin begin repeat repeat wait(rmutex); if(readcount=

19、0) then wait(wmutex); readcount=readcount+1; signal(rmutex); perform read option; 读操作读操作 wait(rmutex); readcount=readcount-1; if readcount=0 then signal(wmutex); signal(rmutex ); until false; until false; end semaphore rmutex=1,wmutex=1;int Readcount=0; wmutex: 读写互斥读写互斥rmutex: 互斥访问互斥访问readcountReadc

20、ount:读进程数读进程数进程管理进程管理26写者写者writer: begin repeat wait(wmutex); perform write option; 写操作写操作 signal(wmutex); until false;end 进程管理进程管理272. 用信号量集机制解决用信号量集机制解决q引入一个信号量引入一个信号量L,并赋予其初值为并赋予其初值为RN,通通过执行过执行wait(L,1,1)操作来操作来控制读者的数目控制读者的数目qwait(S,d,t)操作来操作来:S 为信号量,总资源数量为信号量,总资源数量d为需求值,运转所需量为需求值,运转所需量t为下线为下线, st

21、 时方能启动时方能启动P66P66进程管理进程管理282. 用信号量集机制解决用信号量集机制解决与前面的略有不同,增加一个限制,即与前面的略有不同,增加一个限制,即最多只允许最多只允许RN个读者同时读。个读者同时读。引入一个信号量引入一个信号量L,并赋予其初值为并赋予其初值为RN,通过执行通过执行wait(L,1,1)操作来操作来控制读者的数目控制读者的数目当有一个读者进入,执行当有一个读者进入,执行wait(L,1,1)操作,使操作,使L的值减的值减1。当有。当有RN个读者进入读后,个读者进入读后,L便减为便减为0,第第RN+1个读者要进入读时,必然会因个读者要进入读时,必然会因wait(L

22、,1,1)操作失败而阻塞。操作失败而阻塞。L=0L=0时表示不允许读者进入时表示不允许读者进入L=RNL=RN时表示写者可以进入时表示写者可以进入进程管理进程管理29var RN:integer;L, mx: semaphore := RN,1;reader: begin repeat swait(L,1,1); swait(mx,1,0); perform read option; ssignal(L,1); until false; end writer: begin repeat swait(mx,1,1;L,RN,0); perform write option; ssignal(mx

23、,1); until false; end进程管理进程管理30Now, the problems are:l信号量机制信号量机制 进程必须自备同步自备同步操作wait(s)和signal(s) wait(s)和signal(s)分布分布在进程中 同步操作使用不当使用不当,造成死锁l同步操作使用问题同步操作使用问题 wait(s)和和signal(s)颠倒颠倒 多个进程同时进入临界区 signal(s)误写成误写成wait(s) 其它不能进入临界区 遗漏遗漏 wait(s) 几个进程同时进入临界区 signal(s) 其它进程无法进入临界区进程管理进程管理烦,晕,谁来帮帮我?31进程管理进程管理

24、Im the monitor,coming! (管程, similar to“城管”:谁在掐架?)Come on! It cant gowrong every time.进程管理进程管理33 管程机制管程机制 1. 管程的定义管程的定义2. 管程的语法描述管程的语法描述3. 条件变量条件变量 解决方法解决方法:把对临界资源的同步操作集中起把对临界资源的同步操作集中起来,由一个进程统一管理来,由一个进程统一管理 进程管理进程管理34 1. “管程管程” 长啥样的?长啥样的? 系统资源系统资源 抽象抽象 数据结构数据结构 (软件硬件) (表示信息操作) 电传机电传机:状态:状态(忙、闲忙、闲) 、

25、请求、请求/释放操作、等待队列释放操作、等待队列 FIFO队列队列:队首、队尾、队长、队列操作:队首、队尾、队长、队列操作 缓冲池缓冲池:大小、指针:大小、指针(空满空满)、放入、放入/获取操作获取操作进程管理进程管理35 1. “管程管程” 长啥样的?长啥样的?一组表征资源的共享数据结构数据结构对共享数据结构操作操作的一组过程管程管程 管程被请求和释放资源的进程所调用管程被请求和释放资源的进程所调用共同数据一组操作过程初始化代码进入队列进程管理进程管理362.7 线程线程n线程的基本概念线程的基本概念n线程间的同步和通信线程间的同步和通信n内核支持线程和用户级线程内核支持线程和用户级线程n线

26、程控制线程控制l20世纪60年代提出进程后,OS中都是以进程进程作为拥有拥有资源和独立运行的基本单位资源和独立运行的基本单位。l80年代中期,提出比进程更小的能独立运行的基本单位-线程线程(Threads);好处:减少程序在并发执行时减少程序在并发执行时所付出的时空开销,使所付出的时空开销,使OSOS具有更好的并发性具有更好的并发性。进程管理进程管理37Comparied with 进程进程协同完成一个任务具体工作人员,多人共享相同空间(资源)进程进程线程线程进程管理进程管理381. 线程的引入线程的引入资源拥有者资源拥有者线程线程进程的两个基本属性进程的两个基本属性: :进程是一个可进程是一

27、个可拥有资源拥有资源的独立单位;的独立单位;进程同时又是一个可独立进程同时又是一个可独立调度和分派调度和分派的基本单位的基本单位P75P75进程管理进程管理39 如何能使多个程序更好地如何能使多个程序更好地并发执行并发执行同时又尽量同时又尽量减少系统减少系统的开销的开销? ? 是追求的是追求的重要目标。重要目标。解决方法解决方法:搬房子累,搬人!好处好处: : (1)对于作为调度和分派的基本单位,不拥有资源,可“轻装上阵”;(2)对拥有资源的基本单位,又不对其进行频繁的切换。进程管理进程管理40在这个想法下,诞生了在这个想法下,诞生了“线程线程” 先把先把“房子房子+ +人人”区分开:区分开:

28、将进程的两个属性分开,由操作系统将进程的两个属性分开,由操作系统分开处理分开处理。进程管理进程管理41进程进程线程线程调度独立调度、分派的基本单位独立调度、分派的基本单位线程为调度分派的基本单位的基本单位进程为拥有资源的基本单位的基本单位并发性仅进程间可以并发执行仅进程间可以并发执行进程和线程都可以并发执行进程和线程都可以并发执行拥有资源拥有资源的独立单位拥有资源的独立单位不拥有系统资源,但可以访问不拥有系统资源,但可以访问其隶属进程的资源其隶属进程的资源系统开销创建或撤消进程时开销较大创建或撤消进程时开销较大切换代价高切换代价高线程创建或撤消时开销很小线程创建或撤消时开销很小切换代价低切换代

29、价低支持多处理机若进程只有一个线程,则只若进程只有一个线程,则只能运行在一个处理机上能运行在一个处理机上若进程拥有多个线程,则可分若进程拥有多个线程,则可分散到多个处理机上运行散到多个处理机上运行2.7.2. 线程和进程的比较线程和进程的比较P76P76进程管理进程管理421.1.轻型实体轻型实体 基本上不拥有系统资源,只有一点必不可少的、能保证独立运行的资源2.2.独立调度和分派的基本单位独立调度和分派的基本单位 线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。线程很“轻”,线程的切换非常迅速线程的切换非常迅速/ /开销小开销小。3.3.可并发执行可并发执行 一个进程中的多个线

30、程间可并发执行;不同进程中的线程也能并发执行。4.4.共享进程资源共享进程资源 同一进程中的各个线程,可以共享该进程所拥有的资源(有相同的地址空间;访问进程所拥有文件、定时器、信号量机构等)。 线程的特点线程的特点进程管理进程管理43用户栈用户栈系统栈系统栈PCB数据数据程序程序单线程进程单线程进程寄存器寄存器PCB数据数据程序程序多线程进程多线程进程用户栈用户栈系统栈系统栈 TCB寄存器寄存器用户栈用户栈系统栈系统栈 TCB寄存器寄存器用户栈用户栈系统栈系统栈 TCB寄存器寄存器线程线程1线程线程2线程线程3进程进程进程进程管理进程管理44多线程和进程模型多线程和进程模型 多线程是指操作系统

31、支持在一个进程中执行多个线程的能多线程是指操作系统支持在一个进程中执行多个线程的能力力。每个进程中只有一个线程在执行,称作单线程方法(MS-DOS);WINDOWS 2000/XP、SOLARIS、 LINUX等支持多线程的多进程。在多线程的环境中,进程被定义成资源分配的实体和保护的实体。进程管理进程管理45l状态参数状态参数 每个线程都可以用线程标识符和一组状态参数进行描述。 寄存器状态寄存器状态 堆栈堆栈 运行状态运行状态 优先级优先级 专有存储器专有存储器 信号屏蔽信号屏蔽l线程运行状态线程运行状态 线程间也存在着共享资源和相互合作的制约关系,在运行时也具有间断性。 三种基本状态:执行状

32、态、就绪状态、阻塞状态执行状态、就绪状态、阻塞状态l线程的创建和终止线程的创建和终止应用程序启动时,通常仅有一个线程在执行,该线程被称为“初始化线程初始化线程”。它可根据需要再去创建若干个线程。2.7.3. 线程的状态和线程的状态和TCBTCB进程管理进程管理461.1.线程标识符线程标识符 每个线程有唯一标示符2.2.一组寄存器一组寄存器 保存程序计数器PC。3.3.线程运行状态线程运行状态 三种基本状态4.4.优先级、线程专用存储区、信号屏蔽、堆栈指针。优先级、线程专用存储区、信号屏蔽、堆栈指针。 2. 线程控制块线程控制块TCBP78P78进程管理进程管理47在多线程在多线程OSOS中,

33、进程是作为中,进程是作为拥有系统资源的基本单位拥有系统资源的基本单位,通,通常的进程都包含常的进程都包含多个线程多个线程并为它们提供资源,但进程不再作为并为它们提供资源,但进程不再作为一个一个执行的实体执行的实体。多线程。多线程OSOS中的进程有以下属性:中的进程有以下属性:l拥有系统分配的资源单位拥有系统分配的资源单位 用户地址空间、进程间和线程间同步和通信的机制、打开的文件和已申请到的I/O设备、地址映射表等。l可包括多个线程可包括多个线程 可含有多个相对独立的线程,但至少要有一个线程;进程为线程提供资源及运行环境,使线程可并发执行。 l进程不是一个可执行的实体进程不是一个可执行的实体 进

34、程仍有与执行相关的状态。进程 “执行”状态实际上是指该进程中的某线程正在执行。进程挂起时,该进程中的所有线程也都将被挂起;进程激活时,属于该进程的所有线程也都将被激活。 3多线程多线程OSOS中的进程中的进程进程管理进程管理48线程的实现线程的实现n多线程若想有条不紊地运行,系统必提供用于实多线程若想有条不紊地运行,系统必提供用于实现线程同步和通信的机制。现线程同步和通信的机制。n为支持不同频率的交互操作、不同程度的并行性,为支持不同频率的交互操作、不同程度的并行性,常需提供多种同步机制,如常需提供多种同步机制,如互斥锁、条件变量、互斥锁、条件变量、信号量以及多读、单写锁信号量以及多读、单写锁

35、等等1 1互斥锁互斥锁( (mutex)mutex)2 2条件变量条件变量3 3信号量机制信号量机制(私用信号量、公用信号量)进程管理进程管理491互斥锁互斥锁(mutex) 互斥锁是一种用于实现线程间对资互斥锁是一种用于实现线程间对资源源互斥访问互斥访问的机制。的机制。操作互斥锁时空开销低,因而较适合于高频度使用的关键共享数据和高频度使用的关键共享数据和程序段程序段。互斥锁可以有两种状态,即开锁开锁(unlock)和关锁关锁(lock)状状态态。相应地,可用两条命令(函数)对互斥锁进行操作。其中的关锁lock操作用于将mutex关上,开锁操作unlock则用于打开mutex。 进程管理进程管

36、理50 内核支持内核支持线程和线程和用户级用户级线程线程l线程在各系统的实现方式不完全相同不完全相同。l一些数据库管理系统(如infomix),实现的是用户级线程l如Macintosh、Windows 和 0S/2操作系统实现的是内核支持线程;lSolaris操作系统( UNIX操作系统的衍生版本之一)同时实现了这两种类型的线程。Kernel Supported ThreadsUser Lever ThreadsP79P79进程管理进程管理51内核支持内核支持线程和线程和用户级用户级线程线程Simlar to :国家统一分配。“政府给钱;快,多生孩子!孩子越多,咱家钱的总数越多。”Simila

37、r to : 已分发到单位(进程),再由单位分配给个人(线程)。“咱家就那么点有限的钱,多生娃,难养活”线程越多,线程越多,速度越快速度越快线程越多,线程越多,速度不变速度不变进程管理进程管理52依赖于依赖于OSOS核心核心,由内核的内部需求进行创建和撤销,用来执行一个指定的函数:n内核维护进程和线程的上下文信息;n线程切换由内核完成;n一个线程阻塞,不会影响其他线程的运行。n时间片分配给线程,所以多线程的进程获得更多CPU时间。1. 内核支持线程内核支持线程(Kernel Supported Threads)进程管理进程管理53KSTKST线程实现的线程实现的4 4优点优点: :1)在多处理器系统中,内核能够同时调度同一进程中多个线程并行执行;2)如果进程中的一个线程被阻塞了,内核可以调度该进程中的其它线程占有处理器运行,也可以运行其它

温馨提示

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

评论

0/150

提交评论