计算机操作系统复习第二章_第1页
计算机操作系统复习第二章_第2页
计算机操作系统复习第二章_第3页
计算机操作系统复习第二章_第4页
计算机操作系统复习第二章_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

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

文档简介

1基础知识总结考核要点:进程的定义及特征、进程与程序的异同、进程的状态及引起状态转换的典型原因。基础要点:(1)进程的并发执行是指若干个进程在执行时间上是重叠的。(2)进程是一个程序对某个数据集的一次运行活动。(3)并发进程在访问共享变量时,可能会出现与时间有关的错误(4)程序并发执行与顺序执行相比产生了一些新特征,分别是:间断性,失去封闭性和不可再现性。2(5)前趋图展示了语句间的一种执行顺序关系,而进程图展示的是进程之间的家族关系。(6)进程的基本特征是:动态性,并发性,独立性,异步性和结构特征。(7)程序的顺序执行通常是在单道程序的工作环境中,具有运行结果可再现的特点。(8)进程的基本状态有执行、就绪和阻塞。(9)进程是动态的概念,而程序是静态的概念。3(10)进程控制块的初始化工作包括初始化标识符信息、初始化处理机状态信息、初始化处理机控制信息。(11)在进程管理中,当进程等待某一事件时,将执行状态从变为阻塞状态。(12)当进程执行的时间片用完时,进程从执行状态变成就绪状态。(13)分配到必要资源并获得处理机时的进程状态是执行状态。4(14)进程从结构上讲,包括程序段、数据段和进程控制块这几部分。(15)在一个单处理机系统中,若有4个用户进程且假定当前时刻有一个进程处于执行状态,同处于就绪状态的进程最多有3个,最少有0个。(16)在操作系统中,不可中断的操作称为原语。(17)进程控制就是对系统中的进程实施有效的管理,通过使用进程创建、进程撤消、进程阻塞、进程唤醒等控制原语实现。5(18)在操作系统引入线程概念的主要目的是减少程序并发执行时所需付出的时空开销,提高程序执行的并发程度。(19)线程是进程内一个相对独立的、可调度的执行单元。(20)线程是系统进行调度的基本单位。6常见考试知识点分析1、多道程序设计(1)定义:是在主存中同时存放多个用户的作业,使之同时处于运行状态而共享系统资源。实现的前提是:中断和通道技术的出现。(2)多道程序的特点:并行性、共享性。(3)多道程序的目标目标:是充分使用系统所有资源并尽可能地使它们并行工作。把硬件的代价交叉分页在大量并行用户之间,而使计算机系统的代价极小化。7(4)多道程序设计的实现解决的3个问题:存储保护、程序浮动处理机的管理和调度、系统资源的管理和调度。(5)多道程序系统所必须解决的问题:提出解决各种冲突的策略;协调并发活动的关系;保证数据的一致性;实现数据的存取控制。2、进程(1)定义与特征83、进程的状态及转换:4、进程控制块PCB:最重要的记录型数据结构,记录了操作系统所需要的、用于描述进程情况及控制进程运行所需要的全部信息。是使用一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。5、进程队列:就绪队列和等待队列,队列的入队和出队。97、中断及中断响应(1)定义:是指CPU对系统中发生的异步事件的响应或处理,异步事件是指无一定时序关系而随机发生的事件。10(2)中断在操作系统中的作用与地位:能充分发挥处理机的使用效率;提高系统的实时处理的能力。(3)中断的功能:发现中断源,提出中断请求;保护现场;启动并运行处理中断事件的程序。(4)中断响应和处理中断响应:是指处理器每执行一条指令后,硬件的中断装置立即检查有无中断事件发生,若有,则暂停现行进程的执行,而让OS的中断处理程序应用处理器的过程。中断处理:OS的中断处理程序对中断事件进行处理时所要做的3方面工作:11保护被中断进程的现场信息:把中断时的通用寄存器、控制寄存器内容以及旧程序状态字PSW保存到被中断进程的进程控制块中。分析中断原因:根据旧程序状态字的中断可知发生中断的具体原因。处理发生的中断事件:由相应的程序去做。8、中断优先级和中断屏蔽中断优先级:中断装置按预定的顺序来响应同时出现的中断事件,这个顺序称为中断优先级。高低顺序:硬件故障中断、自愿中断、程序性中断、外部中断和输入/输出中断。1210、进程的并发性(1)进程的顺序性:封闭性和可再现性(2)进程的并发性11、与时间有关的错误12、临界区与P、V操作(1)临界区:并发进程中与共享变量有关的程序段。相关临界区:并发进程中涉及相同变量的那些程序段。(2)P、V操作1313、进程的互斥与同步(1)进程的互斥:指当有若干个进程使用某一共享资源时,任何时刻最多只允许一个进程使用,而其他要使用该资源的进程必须等待,直到占用资源者释放该资源(2)进程的同步:指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一进程的消息时应等待,直到消息到达才被唤醒。14(3)同步与互斥的混合问题:进程的互斥是进程间竞争共享资源的使用权,这种竞争没有固定的必然关系;进程同步,涉及共享资源的并发进程之间有一种必然的依赖关系。15实战练习现代计算机系统一般都采用(A),其基本思想是在主存中同时存放多个用户的作业,使之同时处于运行状态而共享资源。A

多道程序设计技术B多处理机技术C分布式系统技术D分时系统技术16一个运行进程必须具有的3种基本状态是(C)A就绪状态、挂起状态和执行状态B挂起状态、阻塞状态和执行状态C

就绪状态、执行状态和阻塞状态D就绪状态、执行状态和终止状态17进程和程序的根本区别在于(A)A静态与动态特点B是不是被调入到内存中C是不是具有就绪、运行和等待三种状态D是不是占有处理器下面所列的进程的3种基本状态之间的转换不正确的是(D)A就绪状态→执行状态B执行状态→就绪状态C执行状态→阻塞状态D就绪状态→阻塞状态1819操作系统是根据(B)来对并发执行的进程进行控制和管理的。A进程的基本状态B进程控制块C多道程序设计D进程的优先权在进程进程块中,主要包括4方面用于描述和控制进程运行的信息,其中(C)主要是由处理机各种寄存器中的内容所组成。A进程标识符信息B进程调度信息C处理机状态信息D进程控制信息2021目前,常用的PCB组织方式有两种(A)A链接方式和索引方式B链接方式和顺序方式C顺序方式和索引方式D直接方式和顺序方式22计算机系统采用多道程序设计技术后(D)A缩短了每个程序的执行时间B系统效率随并行工作道数成比例增长C使用设备时不会发生冲突D提高了系统效率多道程序设计是指(D)A程序段执行不是顺序的B有多个程序同时进入CPU中运行C同一个程序可以对应多个不同进程D有多个程序同时进入主存并发执行2324以下不属于进程基本特性的是(A)A进程是具有特定功能的一组指令的集合,它指出了处理器执行操作的步骤B进程可以并发执行C进程具有动态性,多个不同的进程可以包含相同的程序D进程具有3种基本状态:就绪状态、运行状态和阻塞状态25在一个单处理器系统中,处于运行状态的进程(C)A不能被打断B不能请求系统调用C只有一个D可以有多个在单处理器系统中,如果同时存在有10个进程,则处于就绪队列中的进程最多为(C)A

1

B

8

C

9

D

102627进程具有3种基本状态:就绪状态、执行状态和阻塞状态。进程在执行过程中,其状态总是不停地发生变化,下面关于进程状态变化的说法中正确的是(B)A一个进程必须经过进程的3种基本状态才能结束B在分时系统中,一个正在运行进程的时间片如果终结,该进程将转入就绪状态C三种进程状态是进程运行过程中的基本状态,进程可能同时处于某几种状态中D进程一旦形成,首先进入的是运行状态。28操作系统根据(D)控制和管理进程,它是进程存在的标志A中断装置B中断寄存器C程序状态字D进程控制块29在任何时刻,一个进程的状态变化(C)引起另一个进程的状态变化A必定B一定不C不一定D不可能30对于两个并发进程,设互斥信号量为A,若A=0,则(C)A表示有一个进程进入临界区,另一个进程等待进入B表示有两个进程进入临界区C表示有一个进程进入临界区D表示没有进程进入临界区31造成进程发生错误的因素是与进程占用处理器的时间,执行的速度及外界的影响有关。而这些错误都与时间有关,所以称为(B)A时间因素B与时间有关的错误C时间错误D时间问题P、V操作是对(A)进行操作A信号量B执行速度C执行时间D执行结果3233当两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的(C)A调度B执行C同步D互斥信号量被定义为一个整型变量,其初始值是(D)A

0

B无任何限制C负整数D非负数3435在消息缓冲通信中,系统应提供若干(B),用以存放信息。A队列缓冲区B消息缓冲区C容量大的缓冲区D容量小的缓冲区用信箱实现进程间互通信息的通信机制要有两个通信原语,它们是(C)A“发送”原语和“执行”原语B“就绪”原语和“执行”原语C

“发送”原语和“接收”原语D“就绪”原语和“接收”原语3637对若干个并发进程共享某一变量的相关临界区的管理,下列说法不正确的是(A)A相关的进程可以同时进入B不能强迫一个进程无限地等待进入它的临界区C一次至多一个进程能够进入临界区D不能让一个进程无限制地在临界区执行38由于并发进程执行的随机性,一个进程对另一个进程的影响是不可预测的,甚至造成结果的不正确,(c)A造成不正确的因素只与外界的影响有关系B造成不正确的因素只与执行的速度有关C造成不正确的因素与时间有关D造成不正确的因素只与进程占用处理器有关39并发进程之间的关系是(D)A无关的B相关的C可能相关的D可能是无关的,也可能是有交往的40下列关于P、V操作的说法中正确的是(A)A

P、V操作是两个操作,而且都是原语操作B

P、V操作中P操作可以不用原语方式,而V操作必须使用原语操作C

P、V操作是一个过程,同一般函数,过程一样,只是执行管理临界区的操作D

P、V操作中P操作必须使用原语方式,而V操作可以不使用原语操作41如果有4个进程共享同一程序段,每次允许3个进程进入该程序段,若用P、V操作作为同步机制,则信号量的取值范围是(C)A

4,3,2,1,-1

B

2,1,0,-1,-2C

3,2,1,0,-1

D

2,1,0,-2,-342下列关于进程同步和互斥的说法中错误的是(D)A进程互斥和进程同步有时也统称为进程的同步B进程互斥是进程同步的特例,互斥进程是竞争共享资源的使用,而同步进程之间必然有依赖关系C进程的同步和互斥都涉及并发进程访问共享资源的问题D进程同步是进程互斥的一种特殊情况。43在进程通信中,(B)常用信件交换信息。A低级通信B高级通信C信息缓冲D消息通信由于并发进程之间(C)不能由进程本身控制,当它们在共享某些资源的时候可能会产生与时间有关的错误。A分配外部设备B分配内存空间C执行的相对速度D占用存储器的位置4445下面对线程的描述中,错误的是(D)A同一进程中的线程可共享该进程的主存空间B线程是调度和执行单位C不同的线程可执行相同的程序D线程是资源分配单位46P、V操作是(A)。A两条低级进程通信原语B两组不同的机器指令C两条系统调用命令D两条高级进程通信原语47进程间的同步是指进程间在逻辑上的相互(B)关系。A联接B制约C继续D调用下面对进程的描述中,错误的是(D)A进程是动态的概念B进程执行需要处理机C进程是有生命期的D进程是指令的集合4849下面所述步骤中,(A)不是创建进程所必需的。A由调度程序为进程分配CPUB建立一个进程控制块C为进程分配内存D将进程控制块链入就绪队列50为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为(D)。A进程互斥B互斥C进程制约D进程通信51为使进程由活动就绪转变为静止就绪,应利用(A2)原语;为使进程由执行状态转变为阻塞状态,应利用(B4)原语;为使进程由静止就绪变为活动就绪,就应利用(C3)原语;为使进程从阻塞状态变为就绪状态,应利用(D5)原语。

A,B,C,D:(1)create(2)suspend(3)active(4)block(5)wakeup。52对于记录型信号量,在执行一次wait操作时,信号量的值应当(A3),当其值为(B2)时,进程应阻塞。在执行signal操作时,信号量的值应当为(C)2,当其值为(D4)时,应唤醒阻塞队列中的进程。

A,C:(1)不变;(2)加1;(3)减1;(4)加指定数值;(5)减指定数值。

B,D:(1)大于0;(2)小于0;(3)大于等于0;(4)小于等于0。53用信号量S实现对系统中4台打印机的互斥使用,S.value的初值应设置为(A4),若S.value的当前值为-1,则表示S.L队列中有(B2)个等待进程。

A:(1)1;(2)0;(3)-1;(4)4;(5)-4。

B:(1)0;(2)1;(3)2;(4)3;(5)4;(6)5;(7)6。542.4经典进程的同步问题2.4.1生产者和消费者问题:是相互合作进程关系的一种抽象,是有限缓冲区问题BoundedBuffer,常用来说明同步原语的能力。有多种变型,多种不同情况。同步进程之间存在着哪些同步关系:55(1)所有进程间互斥访问公用缓冲池:mutex=1(2)生产者速度快时,缓冲池满,生产者等待。(先消费,后生产):empty=n(3)消费者速度快时,缓冲池空,消费者等待。(先生产,后消费):full=0注意:P、V操作的位置顺序,一般先同步,后互斥。56ProducerConsumerRepeatRepeat

生产一个消息;P(full);P(empty);P(mutex);P(mutex)取消息;投放消息;V(mutex);V(mutex);V(empty);V(full);Untilfalse;Untilfalse572009年综合应用题例:三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。58答案:定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;empty控制生产者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下:

Vars1=0,s2=0,empty=N,mutex=1;ParbeginP1:beginX=produce();/*生成一个数*/P(empty);/*判断缓冲区是否有空单元*/P(mutex);/*缓冲区是否被占用*/ put(x);Ifx%2==0V(s2);/*如果是偶数,向P3发出信号*/elseV(s1);/*如果是奇数,向P2发出信号*/V(mutex);/*使用完缓冲区,释放*/

59P2:beginP(s1);/*收到P1发来的信号,已产生一个奇数*/P(mutex);/*缓冲区是否被占用*/Getodd();Countodd():=coutodd()+1;V(mutex);/*释放缓冲区*/V(empty);/*向P1发信号,多出一个空单元*/End.

60P3:beginP(s2);/*收到P1发来的信号,已产生一个偶数*/P(mutex);/*缓冲区是否被占用*/Geteven();Counteven():=counteven()+1;V(mutex);/*释放缓冲区*/V(empty);/*向P1发信号,多出一个空单元*/End.Parend.61例银行排队问题(北京大学2000)银行有n个柜员,每个顾客进入银行后先取一个号,并且等着叫号,当一个柜员空闲后,就叫下一个号。解:将顾客号码排成一个队列,顾客进入银行领取号码后,将号码由队尾插入;柜员空闲时,从队首取得顾客号码,并且为这个顾客服务,由于队列为若干进程共享,所以需要互斥.柜员空闲时,若有顾客,就叫下一个顾客为之服务.因此,需要设置一个信号量来记录等待服务的顾客数.62Cobeginvarmutex=1,customer_count=0:semaphore;cobeginprocesscustomerbeginrepeat

取号码;

p(mutex);

进入队列;

v(mutex);v(customer_count);untilfalse;end63processservers_i(i=1,...,n)beginrepeatp(customer_count);p(mutex);

从队列中取下一个号码;

v(mutex);

为该号码持有者服务;

untilfalseendCoend64例交通问题有桥如图示:(北京大学1992年研究生试题)桥北南65车流如箭头所示。桥上不允许两车交会,但允许同方向车辆依次通行(即桥上可以有多个同方向的车)。用P、V操作实现交通管理以防止桥上堵塞。解:设置countA和countB表示由南往北、由北往南已在桥上行驶的汽车数目,初值为0,设置SA表示对countA的互斥,初值为1,设置SB表示对countB的互斥,初值为1,设置mutex表示对桥的互斥,初值为166P1:由南往北{行驶到桥头;

P(SA);If(countA=0)P(mutex);countA++;V(SA);过桥;P(SA);countA--;if(countA=0)V(mutex);V(SA);}67P2:由北往南{行驶到桥头;

P(SB);If(countB=0)P(mutex);countB++;V(SB);过桥;P(SB);countB--;if(countB=0)V(mutex);V(SB);}68桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定:当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。69分析:本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果。当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待,若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。本题实际是生产者—消费者问题的一种变形。这里,生产者放入缓冲区产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。70解:本题中,应设置三个信号量s,so,sa,信号量s表示盘子是否为空,其初值为1,信号量so表示盘中是否有桔子,其初值为0,信号量sa表示盘中是否有苹果,其初值为0。同步描述如下:

vars,sa,so:integer=1,0,0;father:beginp(s);

将水果放入盘中;

if(放入的是桔子)v(so);elsev(sa);end;71son:beginp(so);

从盘中取出桔子;

v(s);

吃桔子;

end72daughter:beginp(sa);

从盘中取出苹果;

v(s);

吃苹果;

end73(北京大学90年试题)(略)(1)写出P、V操作的定义

(2)有三个进程PA、PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次,复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。请用P、V操作来保证文件的正确打印。74解:(2)本题中:进程PA、PB和PC之间的关系为:PA与PB共用一个单缓冲区,而PB又与PC共用一个单缓冲区,其合作方式如图示:

从磁盘读入复制缓冲区1缓冲区2PAPCPB打印75

当缓冲区1为空时,PA可将一个记录读入其中,若缓冲区1中有数据且缓冲区2为空,PB可将记录从缓冲区1复制到缓冲区2中;若缓冲区2中有数据,则进程PC可打印记录。其他条件下,相应进程必须等待。实际上,这是一个生产者—消费者问题。(PB既是生产者又是消费者)76

为遵循这一同步规则。应设置四个信号量empty1、empty2、full1、full2,信号量empty1和empty2分别表示缓冲区1及缓冲区2是否为空,其初值为1;信号量full1和full2分别表示缓冲区1和缓冲区2是否有记录可供处理,其初值为0。其同步描述如下:初始化;77PA:beginrepeat

从磁盘读一个记录;

p(empty1);

将记录存入缓冲区1;

v(full1);untilfalse;end78PB:beginrepeatp(full1);

从缓冲区1取出记录;

v(empty1);p(empty2);

将记录存入缓冲区2;

v(full2);untilfalse;end79PC:beginrepeatp(full2);

从缓冲区2中取出记录;

v(empty2);

打印记录;

untilfalseend80

有两个优先级相同的并发进程m1,m2,各自计算过程如下所示。它们利用信号量s1,s2同步,信号量s1,s2初始值设置为0。x,y,z是它们共享的变量。问m1,m2运行结束后,x,y,z在理论上可能的值分别是多少?81进程m1进程m2x=1y=2V(s1)P(s1)z=x+1z=y+1P(s2)V(s2)x=z+xy=y+z82(华中理工大学99年试题)设公共汽车上,司机和售票员的活动分别是:司机的活动:启动车辆正常行车到站停车售票员的活动:关车门售票开车门83

在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。84解:汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。85

本题中,设置两个信号量s1,s2,s1表示是否允许司机启动汽车,其初值为0,s2表示是否允许售票员开门,其初值为0。描述如下:86Driver:beginrepeatp(s1);

启动车辆;正常行驶;到站停车;

v(s2);untilfalse;endBusman:beginrepeat

关车门;

v(s1);

售票;

p(s2);

开车门;上下乘客;

untilfalse;end87(少林寺问题)某寺庙,有小和尚、老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用.水缸可容纳30桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一井中,水井径窄,每次只能容纳一个水桶取水。设水桶个数为5个,试用信号量和PV操作给出老和尚和小和尚的活动。88semaphoreempty=30;//表示缸中目前还能装多少桶水,初始时能装30桶水semaphorefull=0;//表示缸中有多少桶水,初始时缸中没有水semaphorebuckets=5;//表示有多少只空桶可用,初始时有5只桶可用semaphoremutex_well=1;//用于实现对井的互斥操作semaphoremutex_bigjar=1;//用于实现对缸的互斥操作89young_monk(){ while(1){ P(empty); P(buckets); gotothewell; P(mutex_well); getwater; V(mutex_well); gotothetemple; P(mutex_bigjar); purethewaterintothebigjar; V(mutex_bigjar); V(buckets); V(full);}}90old_monk(){while(1){P(full);P(buckets);getabucket;P(mutex_bigjar);getwater;V(mutex_bigjar);V(buckets);V(empty);}}91有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:

(1)为描述读者的动作,应编写几个程序,设置几个进程?

(2)试用PV操作描述读者进程之间的同步关系。92答:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。

算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。93读者进入阅览室的动作描述getin:

while(TRUE){

P(seats);/*没有座位则离开*/

P(mutex)/*进入临界区*/

填写登记表;

进入阅览室读书;

V(mutex)/*离开临界区*/

V(readers)

}94读者离开阅览室的动作描述getout:

while(TRUE){

P(readers)/*阅览室是否有人读书*/

P(mutex)/*进入临界区*/

消掉登记;

离开阅览室;

V(mutex)/*离开临界区*/

V(seats)/*释放一个座位资源*/

}95某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:

(1)用PV操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。

(2)根据所定义的信号量,把应执行的PV操作填入下述方框中,以保证进程能够正确地并发执行。96COBEGIN

PROCESS

PI(I=1,2,……)

begin;

进入售票厅;

购票;

退出;

end;

COEND

(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。97答(1)定义一信号量S,初始值为20。(1分)

意义:S>0

S的值表示可继续进入售

票厅的人数(1分)

S=0表示售票厅中已有20名顾客(购票者)

(1分)

S<0

|S|的值为等待进入售票厅的人数(1分)

(2)上框为P(S)

(1分)

下框为V(S)

(1分)

(3)S的最大值为20

(1分)

S的最小值为20-n

(1分)98(上海交通大学96年试题)

哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论,在讨论的间隙四位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图示:请用信号量及P、V操作说明这四位哲学家的同步、互斥过程。乙丙丁甲刀1刀2叉1叉2食品99分析:本题中,这四位哲学家在讨论问题期间的生活方式为交替地进行讨论和进餐。由于刀、叉资源均为2,而哲学家有四位,就出现了资源竞争,为此要对他们的进餐进行同步控制。100规定:所有哲学家先申请使用刀,申请到刀后再申请使用叉,刀、叉都拿到后才能进餐。本题是标准的哲学家就餐问题。101解:设置四个信号量fork1、fork2、knife1、knife2,其初值都为1,分别表示资源叉1、叉2、刀1、刀2是否可用。同步描述如下:

乙丙丁甲刀1刀2叉1叉2食品Pa:begin甲哲学家

repeatp(knife1);p(fork1);

就餐;

v(knife1);v(fork1);

讨论问题;

untilfalseend102Pb:begin乙哲学家

repeatp(knife2);p(fork1);

就餐;

v(knife2);v(fork1);

讨论问题;

untilfalse;end

乙丙丁甲刀1刀2叉1叉2食品103乙丙丁甲刀1刀2叉1叉2食品Pc:begin丙哲学家

repeatp(knife2);p(fork2);

就餐;

v(knife2);v(fork2);

讨论问题;

untilfalse;end104乙丙丁甲刀1刀2叉1叉2食品Pd:begin丁哲学家

repeatp(knife1);p(fork2);

就餐;

v(knife1);v(fork2);

讨论问题;

untilfalse;end105一条小河上有一座独木桥,规定每次只允许一个人过桥,现在河东河西都有人要过桥,如果把每个过桥者看作一个进程,为保证安全,请用P、V操作实现正确管理。(本题只存在互斥,不存在同步)106semaphores=1;河东进程河西进程While(1)While(1){{p(s);p(s);过桥;过桥;v(s);v(s);}}107假设有一个成品仓库,总共能放8台成品,生产者进程生产产品放入仓库,消费者进程从仓库中取出成品消费.为了防止积压,仓库满的时候就停止生产.由于仓库搬运设备只有一套,故成品的存入和取出只能分别执行,使用P、V操作来实现该方案。108Semaphoremutex=1;//实现互斥Semaphores1,s2;//s1用来表示仓库中可放产品的数目,s2表示仓库中已放的产品的数目S1=8;S2=0;生产者进程消费者进程While(1)while(1){{生产产品;p(s2);p(s1);p(mutex);;p(mutex);取产品产品放入仓库;v(mutex);v(mutex);v(s1);v(s2);消费;}}109进程同步的总结考核要点:临界区的定义及操作原则,进程同步与互斥,用信号量描述进程同步,进程通信。基础要点:(1)进程间的同步是指进程间在逻辑上的相互制约关系。(2)在进程中,访问临界资源的代码段称为临界区。为保证进程互斥访问临界资源,应在进程的临界区前设置进入区,在临界区后设置退出区。(3)进程间的相互制约关系有直接关系和间接关系。(4)临界区是一段程序。110(5)在操作系统中,解决进程间同步和互斥问题的一种方法是使用信号量。(6)并发进程之间的基本关系是合作或共享资源,其中共享资源是指进程之间的一种间接关系。(7)访问临界资源应遵循的准则为:空闲让进,忙则等待,有限等待,让权等待。(8)如果信号量的当前值为-4,则表示系统中在该信号量上有4个等待进程。(9)用P、V原语管理临界区时,信号量的初值应定义为1111(10)在操作系统中,P、V原语是一种低级进程通信原语。(11)除初值外,信号量的值只能通过P操作和V操作来改变。(12)并发进程中涉及到相同变量的程序段叫做临界段,对这些程序段要互斥执行。(13)对于两个并发进程,设互斥信号量为mutex,若mutex=0则表示有一个进程进入临界区。112(14)进程通信的类型有共享存储器、消息传递、管道。(15)用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用P操作,退出临界区时应调用V操作。(16)信号量的物理意义是当信号量值大于零时表示可用资源的数目,当信号量值小于零时,其绝对值为在该信号量上等待的进程个数。113(17)信箱通信是一种间接通信方式。(18)利用消息机制实现通信时,应有发送原语和接收原语。(19)进程通信是指进程之间的信息交换。1142009年23、单处理机系统中,可并行的是(D)

I进程与进程II、处理机与设备

III、处理机与通道IV、设备与设备

A、I、II、和III

B、I、II和IV

C、I、III和IV

D、II、III和IV1152010年24、下列选项中,导致创建新进程的操作是(C)

I用户登陆成功

II设备分配

III启动程序执行A仅I和IIB仅II和IIIC仅I和IIID

I、II、III1162010年25、设与某资源相关联的信号量初值为3,当前值为1,若M表示该资源的可用个数,N表示等待该资源的进程数,则M,N分别是(B)A

0,1B

1,0C

1,2D

2,01172011年25、在支持多线程的系统中,进程P创建的若干个线程不能共享的是()A进程P的代码段B进程P中打开的文件C进程P的全局变量D进程P中某线程的栈指针1182011年32、有两个并发执行的进程P1和P2,共享初值为1的变量x。P1对x加1,P2对x减1。加1和减1操作的指令序列分别如下所示。

//加1操作//减1操作

loadR1,x//取x到寄存器R1中loadR2,xincR1decR2storex,R1//将R1的内存存入xstore

温馨提示

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

评论

0/150

提交评论