操作系统答案(考试重点题目答案)

1.2 操作系统以什么方式组织用户使用计算机?

答:操作系统以进程的方式组织用户使用计算机。用户所需完成的各种任务必须由相应的程序来表达出来。为了实现用户的任务,必须让相应功能的程序执行。而进程就是指程序的运行,操作系统的进程调度程序决定CPU 在各进程间的切换。操作系统为用户提供进程创建和结束等的系统调用功能,使用户能够创建新进程。操作系统在初始化后,会为每个可能的系统用户创建第一个用户进程,用户的其他进程则可以由母进程通过“进程创建”系统调用进行创建。

1.4 早期监督程序(Monitor )的功能是什么?

答:早期监督程序的功能是代替系统操作员的部分工作,自动控制作业的运行。监督程序首先把第一道作业调入主存,并启动该作业。运行结束后,再把下一道作业调入主存启动运行。它如同一个系统操作员,负责批作业的I/O,并自动根据作业控制说明书以单道串行的方式控制作业运行,同时在程序运行过程中通过提供各种系统调用,控制使用计算机资源。 1.7 试述多道程序设计技术的基本思想。为什么采用多道程序设计技术可以提高资源利用率?

答:多道程序设计技术的基本思想是,在主存同时保持多道程序,主机以交替的方式同时处理多道程序。从宏观上看,主机内同时保持和处理若干道已开始运行但尚未结束的程序。从微观上看,某一时刻处理机只运行某道程序。

可以提高资源利用率的原因:由于任何一道作业的运行总是交替地串行使用CPU 、外设等资源,即使用一段时间的CPU ,然后使用一段时间的I/O设备,由于采用多道程序设计技术,加之对多道程序实施合理的运行调度,则可以实现CPU 和I/O设备的高度并行,可以大大提高CPU 与外设的利用率。

1.8 什么是分时系统?其主要特征是什么?适用于哪些应用?

答:分时系统是以多道程序设计技术为基础的交互式系统,在此系统中,一台计算机与多台终端相连接,用户通过各自的终端和终端命令以交互的方式使用计算机系统。每个用户都感觉到好像是自己在独占计算机系统,而在系统内部则由操作系统以时间片轮转的方式负责协调多个用户分享CPU 。主要特征是:

并行性:系统能协调多个终端用户同时使用计算机系统,能控制多道程序同时运行。 共享性:对资源而言,系统在宏观上使各终端用户共享计算机系统中的各种资源,而在微观上它们则分时使用这些资源。

交互性:人与计算机以交互的方式进行工作。 独占性:使用户感觉到他在独占使用计算机。

现在的系统大部分都是分时系统,主要应用于人机交互的方面。 2.1 什么是中断?什么是异常?它们有何区别?

答:中断是指来自CPU 执行指令以外的事件发生后,处理机暂停正在运行的程序,转去执行处理该事件的程序的过程。

异常是指源自CPU 执行指令内部的事件发生后,处理机暂停正在执行的程序,转去处理该事件的过程。

区别:广义的中断包括中断和异常,统一称为中断。狭义的中断和异常的区别在于是否与正在执行的指令有关,中断可以屏蔽,而异常不可屏蔽。

2.6 什么是中断向量?其内容是什么?试述中断的处理过程。

答:中断向量:为处理方便,一般为系统中每个中断信号编制一个相应的中断处理程序,并把这些程序的入口地址放在特定的主存单元中。通常将这一片存放中断处理程序入口地址的主存单元称为中断向量。

中断向量的内容:对不同的系统,中断向量中的内容也不尽相同。一般每一个中断信号占用连续的两个单元:一个用来存放中断处理程序的入口地址,另一个用来保存在处理中断时CPU 应具有的状态。

中断的处理过程:一般包括保存现场,分析中断原因,进入相应的中断处理程序,最后重新选择程序运行,恢复现场等过程。

2.7 中断/异常处理为什么要保存现场和恢复现场?现场应包括哪几方面的内容?

答:因为中断处理是一项短暂性的工作,逻辑上处理完后还要回到被中断的程序,从其恢复点继续运行。为了能实现正确的返回,并继续运行下去,在中断处理前后必须保存和恢复被中断的程序现场。

现场应包括:PC 寄存器的内容,通用寄存器以及一些与程序运行相关的特殊寄存器中的内容。

3.1 什么是进程?为什么要引入此概念?试述进程的特点及它与程序的区别。

答:进程是支持程序执行的机制,是程序针对某一数据集合的执行过程。引入此概念的原因:随着操作系统的发展而产生。在监督程序时代以作业形式表示程序运行,那时,作业以同步方式串行地运行每个作业步,当操作系统发展到分时系统时,为了开发同一作业中不同作业步之间的并发,作业机制已经不能满足需要,因而引入了进程机制。

进程的特点:

动态性:可动态创建, 结束, 也可是被调度进程 并发性:可以被独立调度,占用处理机运行 独立性:尽量把并发事务安排到不同的进程

制约性:因访问共享数据或进程间同步而产生制约.

与程序的区别:进程是程序的执行过程,程序是静态的,进程是动态的。一个进程至少是一个可执行程序,同一个程序可以由多个进程分别执行。

3.2 进程控制块的作用是什么?PCB 中应包括哪些信息?

答:进程控制块的作用是:进程控制块用于保存每个进程和资源的相关信息,包括进程标识、空间、运行状态、资源等信息。以便于操作系统管理和控制进程和资源。

PCB 中应包括:1、进程标识信息:本进程的标识、父进程的标识、进程所属用户的标识。2、处理机状态信息。保存进程的运行现场信息,包括用户可用寄存器的信息;控制和状态寄存器的信息;栈指针。

3.4 为什么进程状态会发生变化?何时变化?(P54)

答:进程在它的生存周期中,由于系统中各进程并发运行及相互制约的结果,使得它的状态不断发生变化。

状态变化的时机:

空→创建:当一个新进程被产生来执行一个程序时。

创建→就绪:当进程被创建完成,初始化后,一切就绪准备运行时。 就绪→运行:当处于就绪状态的进程被进程调度程序选中后。

运行→结束:当进程指示它已经完成或者因错流产时。 运行→就绪:处于运行状态的进程在其运行过程中,分给它的处理机时间片用完而让出处理机;或者在可剥夺的操作系统中,当有更高优先级的进程就绪时。 运行→阻塞:当进程请求某样东西且必须等待时。

阻塞→就绪:当进程要等待事件到来时。 3.5 进程创建的主要工作是什么?(P54)

答:进程创建时的主要工作如下:

1、接收进程运行现场初始值,初始优先级,初始执行程序描述,其它资源等参数。 2、请求分配进程描述块PCB 空间,得到一个内部数字进程标识。

3、用从父进程传来的参数初始化PCB 表。

4、产生描述进程空间的数据结构,用初始执行文件初始化进程空间,建立程序段,数据段、栈段等。

5、用进程运行现场初始值设置处理机现场保护区。造一个进程运行栈帧。

6、置好父进程等关系域。 7、将进程置成就绪状态。

8、将PCB 表挂入就绪队列,等待时机被调度运行。

3.8 什么时候进行进程调度最为合适?请说明理由。(P63)

答:进程调度的时机: 当发生引起调度条件,且当前进程无法继续运行下去时(如发生各种进程放弃处理机的条件)可以马上进行调度与切换。

当中断处理结束或自陷处理结束返回被中断进程的用户态程序执行前,若请求调度标志置上,即可马上进行进程调度与切换。如果操作系统支持这种情况下运行调度程序,即实现了剥夺方式的调度。

3.10 对于三类进程(I/O为主、CPU 为主和I/O与CPU 均衡),应如何赋予它们的运行优先级并说明理由。(P67) 答:对于这三类进程,赋予的优先级由高到低分别为:I/O为主、I/O与CPU 均衡、CPU 为主。

理由:为了充分利用外部设备,以及对终端交互用户及时地予以响应,通常将I/O型进程列为最高优先级队列。

3.11 假设在单处理机上有五个进程(1、2、3、4、5)争夺运行,其运行时间分别为10,1,2,1,5秒,其优先级分别为3,1,3,4,2,这些进程几乎同时到达,但在就绪队列中的次序依次为1,2,3,4,5,试回答:

①给出这些进程分别适用轮转法、SPF 和非剥夺优先级调度法调度时的运行进度表,其中,轮转法中的时间片取值为2。

②在上述各算法的调度下每个进程的周转时间和等待时间为多少? ③具有最短平均等待时间的算法是哪个? 答:轮转法:

进程的周转时间:进程1:19,进程2:3,进程3:5,进程4:6,进程5:15 进程的等待时间:进程1:9,进程2:2,进程3:3,进程4:5,进程5:10 平均等待时间(9+2+3+5+10)/5=5.8 SPF 算法:

SPF 算法具有最短平均等待时间。

4.1 并行任务如何在程序中表示?(P74)

答:并行任务在程序中主要通过并发语句来表示。如Parbegin/Parend语句

4.2 并行任务并行(并发)运行的操作系统支持基础是什么?

答:支持基础是进程和线程的引入。在多道程序设计系统中,进程之间可以并发执行,这就使多任务并行执行成为可能。同时,线程的引入,同一进程内的多个线程也可以并行运行,这也提供了任务内部的并行。提高了效率。

4.3 题略

答:答:进程P0在flag[0]=false后,进程P1跳出循环,此时刚好来了一个中断。中断使得进程P0又再次执行,此时由于P1并没有给turn 赋值,从而P0可以顺利进入临界段,在P0进入临界段时产生中断,P1恢复执行,将turn 赋值为1,从而P1也可以进入临界段。从而产生错误。

4.4 何谓原语?它与系统调用有何区别?如何实现原语执行的不可分割性?

答:原语是指完成某种功能且不被分割、不被中断执行的操作序列。有时也称为原子操作。

它与系统调用的区别:原语和系统调用是两个不同的概念,原语主要强调操作的不可分割性,可以认为是一个不可中断的子程序调用,但是系统调用是由用户态进入核心态,虽然系统调用一般也不被中断,但是如果有更高更紧迫的系统调用的话,还是能够打断原来的系统调用的。

实现原语执行的不可分割性:通常由硬件来实现,也可以由软件通过中断屏蔽的方法来实现。

4.6 如果P ,V 操作不作为原语(可分割执行),那么是否还可用于解决互斥问题?如果不能,则举例说明。

答:如果P ,V 操作不作为原语,那么不可用于解决互斥问题。因为如果那样的话,则:程序语言s = s-1;翻译成机器语言为:load R1, s; load R2, 1; sub R1, R2; 此时,他们之间的操作可以分割执行,假设有两个进程P1、P2,s 初值为1,当P1进入P 操作时,s 大于0,可以进入,因此会执行上面的机器语言,将s 的值取出来,放入R1寄存器中,而此时,有可能P2进程要进入临界段,因此,它也比较s 的值是否小于0,因为此时s 的值仍为1,所以P2也进入临界段,出现错误。 4.13 题略 答:①

empty1=1; empty2=1; full1=0; full2=0; parbegin P: While(1) {P(empty1); put to buffer1; V(full1); } Q: While(1)

{P(full1);

get from buffer1; V(empty1); 。。。。。。。 P(empty2); put to buffer2; V(full2); }

get from buffer2; V(empty2); } parend; ②

empty1=m; empty2=n; full1=0; full2=0;mutex1=1;mutex2=1; parbegin P: While(1) { P(empty1); P(mutex1); put to buffer1;

V(full1); V(mutex1); } Q: While(1) { P(full1); P(mutex1); get from buffer1; V(empty1); V(mutex1); 。。。。。。。 P(empty2); P(mutex2); put to buffer2; V(full2); V(mutex2); }

R: While(1) { P(full2);

P(mutex2);

get from buffer2; V(empty2); V(mutex2);

} parend; 4.14 题略 答:P1: Sa; V(ac); V(ae); Sb; P(cd); Sd; P(fe); Sf; V(fh); Sg;

V(cd); P3: P(ae); Se; V(fe); P(fh);

Sh;

4.15 “理发师睡觉”问题

答:可以将此题看作N 个生产者和一个消费者问题。顾客作为生产者,每到来一个,就将自己放入计数器RC ,以便让理发师消费至最后一个产品(顾客),因此顾客进程执行的第一个语句便是RC=RC+1。而第一个到来的顾客应该负责唤醒理发师,理发师此时正在信号量W AKEUP 上等待((P(WAKEUP);该信号量的初值为0),由第一个顾客执行V(WAKEUP)。若顾客不是第一个到达,则在信号量WAIT 上等待(P(WAIT) 该信号量的初值为0),等理发师理完一个顾客后,执行V(WAIT)操作便可叫出该顾客理发。以上过程循环反复,理发师没每理完一个顾客,就令计数器减1,RC=0时便知此时无顾客,理发师可以继续睡觉,等待下一批顾客到达。在设信号量MUTEX(初值为1) ,保证对计数器RC 的互斥作用。 parbegin

顾客进程: begin

P(mutex); rc=rc+1;

if rc=1 then V(wakeup); elseP(wait); V(mutex); 理发; end; 理发师进程: begin

P(wakeup); repeat

理发; P(mutex);

rc=rc-1;

if(rc!=0) then V(wait); V(mutex); until rc=0; end; parend;

4.28 题略 答:1、Need 的内容为:[0000,0750,1002,0020,0642]

2、系统是处于安全状态。

3、进程2请求0420,不能立即得到满足,因为如果给进程2分配了0420的话,系统将处于不安全状态。所以不能立即得到满足。 4.11 多元信号量机构允许P ,V 操作同时对多个信号量进行操作。这种机构对同时申请或释放若干个资源是非常有用的。假设二元信号量机构中的P 原语定义为: P(S,R) : While(S≤0 or R≤0);

S=S-1;

R=R-1; 试用一元信号量机构加以实现。

答:mutex: semaphore P(mutex); P(S);

P(R); V(mutex);

1.2 操作系统以什么方式组织用户使用计算机?

答:操作系统以进程的方式组织用户使用计算机。用户所需完成的各种任务必须由相应的程序来表达出来。为了实现用户的任务,必须让相应功能的程序执行。而进程就是指程序的运行,操作系统的进程调度程序决定CPU 在各进程间的切换。操作系统为用户提供进程创建和结束等的系统调用功能,使用户能够创建新进程。操作系统在初始化后,会为每个可能的系统用户创建第一个用户进程,用户的其他进程则可以由母进程通过“进程创建”系统调用进行创建。

1.4 早期监督程序(Monitor )的功能是什么?

答:早期监督程序的功能是代替系统操作员的部分工作,自动控制作业的运行。监督程序首先把第一道作业调入主存,并启动该作业。运行结束后,再把下一道作业调入主存启动运行。它如同一个系统操作员,负责批作业的I/O,并自动根据作业控制说明书以单道串行的方式控制作业运行,同时在程序运行过程中通过提供各种系统调用,控制使用计算机资源。 1.7 试述多道程序设计技术的基本思想。为什么采用多道程序设计技术可以提高资源利用率?

答:多道程序设计技术的基本思想是,在主存同时保持多道程序,主机以交替的方式同时处理多道程序。从宏观上看,主机内同时保持和处理若干道已开始运行但尚未结束的程序。从微观上看,某一时刻处理机只运行某道程序。

可以提高资源利用率的原因:由于任何一道作业的运行总是交替地串行使用CPU 、外设等资源,即使用一段时间的CPU ,然后使用一段时间的I/O设备,由于采用多道程序设计技术,加之对多道程序实施合理的运行调度,则可以实现CPU 和I/O设备的高度并行,可以大大提高CPU 与外设的利用率。

1.8 什么是分时系统?其主要特征是什么?适用于哪些应用?

答:分时系统是以多道程序设计技术为基础的交互式系统,在此系统中,一台计算机与多台终端相连接,用户通过各自的终端和终端命令以交互的方式使用计算机系统。每个用户都感觉到好像是自己在独占计算机系统,而在系统内部则由操作系统以时间片轮转的方式负责协调多个用户分享CPU 。主要特征是:

并行性:系统能协调多个终端用户同时使用计算机系统,能控制多道程序同时运行。 共享性:对资源而言,系统在宏观上使各终端用户共享计算机系统中的各种资源,而在微观上它们则分时使用这些资源。

交互性:人与计算机以交互的方式进行工作。 独占性:使用户感觉到他在独占使用计算机。

现在的系统大部分都是分时系统,主要应用于人机交互的方面。 2.1 什么是中断?什么是异常?它们有何区别?

答:中断是指来自CPU 执行指令以外的事件发生后,处理机暂停正在运行的程序,转去执行处理该事件的程序的过程。

异常是指源自CPU 执行指令内部的事件发生后,处理机暂停正在执行的程序,转去处理该事件的过程。

区别:广义的中断包括中断和异常,统一称为中断。狭义的中断和异常的区别在于是否与正在执行的指令有关,中断可以屏蔽,而异常不可屏蔽。

2.6 什么是中断向量?其内容是什么?试述中断的处理过程。

答:中断向量:为处理方便,一般为系统中每个中断信号编制一个相应的中断处理程序,并把这些程序的入口地址放在特定的主存单元中。通常将这一片存放中断处理程序入口地址的主存单元称为中断向量。

中断向量的内容:对不同的系统,中断向量中的内容也不尽相同。一般每一个中断信号占用连续的两个单元:一个用来存放中断处理程序的入口地址,另一个用来保存在处理中断时CPU 应具有的状态。

中断的处理过程:一般包括保存现场,分析中断原因,进入相应的中断处理程序,最后重新选择程序运行,恢复现场等过程。

2.7 中断/异常处理为什么要保存现场和恢复现场?现场应包括哪几方面的内容?

答:因为中断处理是一项短暂性的工作,逻辑上处理完后还要回到被中断的程序,从其恢复点继续运行。为了能实现正确的返回,并继续运行下去,在中断处理前后必须保存和恢复被中断的程序现场。

现场应包括:PC 寄存器的内容,通用寄存器以及一些与程序运行相关的特殊寄存器中的内容。

3.1 什么是进程?为什么要引入此概念?试述进程的特点及它与程序的区别。

答:进程是支持程序执行的机制,是程序针对某一数据集合的执行过程。引入此概念的原因:随着操作系统的发展而产生。在监督程序时代以作业形式表示程序运行,那时,作业以同步方式串行地运行每个作业步,当操作系统发展到分时系统时,为了开发同一作业中不同作业步之间的并发,作业机制已经不能满足需要,因而引入了进程机制。

进程的特点:

动态性:可动态创建, 结束, 也可是被调度进程 并发性:可以被独立调度,占用处理机运行 独立性:尽量把并发事务安排到不同的进程

制约性:因访问共享数据或进程间同步而产生制约.

与程序的区别:进程是程序的执行过程,程序是静态的,进程是动态的。一个进程至少是一个可执行程序,同一个程序可以由多个进程分别执行。

3.2 进程控制块的作用是什么?PCB 中应包括哪些信息?

答:进程控制块的作用是:进程控制块用于保存每个进程和资源的相关信息,包括进程标识、空间、运行状态、资源等信息。以便于操作系统管理和控制进程和资源。

PCB 中应包括:1、进程标识信息:本进程的标识、父进程的标识、进程所属用户的标识。2、处理机状态信息。保存进程的运行现场信息,包括用户可用寄存器的信息;控制和状态寄存器的信息;栈指针。

3.4 为什么进程状态会发生变化?何时变化?(P54)

答:进程在它的生存周期中,由于系统中各进程并发运行及相互制约的结果,使得它的状态不断发生变化。

状态变化的时机:

空→创建:当一个新进程被产生来执行一个程序时。

创建→就绪:当进程被创建完成,初始化后,一切就绪准备运行时。 就绪→运行:当处于就绪状态的进程被进程调度程序选中后。

运行→结束:当进程指示它已经完成或者因错流产时。 运行→就绪:处于运行状态的进程在其运行过程中,分给它的处理机时间片用完而让出处理机;或者在可剥夺的操作系统中,当有更高优先级的进程就绪时。 运行→阻塞:当进程请求某样东西且必须等待时。

阻塞→就绪:当进程要等待事件到来时。 3.5 进程创建的主要工作是什么?(P54)

答:进程创建时的主要工作如下:

1、接收进程运行现场初始值,初始优先级,初始执行程序描述,其它资源等参数。 2、请求分配进程描述块PCB 空间,得到一个内部数字进程标识。

3、用从父进程传来的参数初始化PCB 表。

4、产生描述进程空间的数据结构,用初始执行文件初始化进程空间,建立程序段,数据段、栈段等。

5、用进程运行现场初始值设置处理机现场保护区。造一个进程运行栈帧。

6、置好父进程等关系域。 7、将进程置成就绪状态。

8、将PCB 表挂入就绪队列,等待时机被调度运行。

3.8 什么时候进行进程调度最为合适?请说明理由。(P63)

答:进程调度的时机: 当发生引起调度条件,且当前进程无法继续运行下去时(如发生各种进程放弃处理机的条件)可以马上进行调度与切换。

当中断处理结束或自陷处理结束返回被中断进程的用户态程序执行前,若请求调度标志置上,即可马上进行进程调度与切换。如果操作系统支持这种情况下运行调度程序,即实现了剥夺方式的调度。

3.10 对于三类进程(I/O为主、CPU 为主和I/O与CPU 均衡),应如何赋予它们的运行优先级并说明理由。(P67) 答:对于这三类进程,赋予的优先级由高到低分别为:I/O为主、I/O与CPU 均衡、CPU 为主。

理由:为了充分利用外部设备,以及对终端交互用户及时地予以响应,通常将I/O型进程列为最高优先级队列。

3.11 假设在单处理机上有五个进程(1、2、3、4、5)争夺运行,其运行时间分别为10,1,2,1,5秒,其优先级分别为3,1,3,4,2,这些进程几乎同时到达,但在就绪队列中的次序依次为1,2,3,4,5,试回答:

①给出这些进程分别适用轮转法、SPF 和非剥夺优先级调度法调度时的运行进度表,其中,轮转法中的时间片取值为2。

②在上述各算法的调度下每个进程的周转时间和等待时间为多少? ③具有最短平均等待时间的算法是哪个? 答:轮转法:

进程的周转时间:进程1:19,进程2:3,进程3:5,进程4:6,进程5:15 进程的等待时间:进程1:9,进程2:2,进程3:3,进程4:5,进程5:10 平均等待时间(9+2+3+5+10)/5=5.8 SPF 算法:

SPF 算法具有最短平均等待时间。

4.1 并行任务如何在程序中表示?(P74)

答:并行任务在程序中主要通过并发语句来表示。如Parbegin/Parend语句

4.2 并行任务并行(并发)运行的操作系统支持基础是什么?

答:支持基础是进程和线程的引入。在多道程序设计系统中,进程之间可以并发执行,这就使多任务并行执行成为可能。同时,线程的引入,同一进程内的多个线程也可以并行运行,这也提供了任务内部的并行。提高了效率。

4.3 题略

答:答:进程P0在flag[0]=false后,进程P1跳出循环,此时刚好来了一个中断。中断使得进程P0又再次执行,此时由于P1并没有给turn 赋值,从而P0可以顺利进入临界段,在P0进入临界段时产生中断,P1恢复执行,将turn 赋值为1,从而P1也可以进入临界段。从而产生错误。

4.4 何谓原语?它与系统调用有何区别?如何实现原语执行的不可分割性?

答:原语是指完成某种功能且不被分割、不被中断执行的操作序列。有时也称为原子操作。

它与系统调用的区别:原语和系统调用是两个不同的概念,原语主要强调操作的不可分割性,可以认为是一个不可中断的子程序调用,但是系统调用是由用户态进入核心态,虽然系统调用一般也不被中断,但是如果有更高更紧迫的系统调用的话,还是能够打断原来的系统调用的。

实现原语执行的不可分割性:通常由硬件来实现,也可以由软件通过中断屏蔽的方法来实现。

4.6 如果P ,V 操作不作为原语(可分割执行),那么是否还可用于解决互斥问题?如果不能,则举例说明。

答:如果P ,V 操作不作为原语,那么不可用于解决互斥问题。因为如果那样的话,则:程序语言s = s-1;翻译成机器语言为:load R1, s; load R2, 1; sub R1, R2; 此时,他们之间的操作可以分割执行,假设有两个进程P1、P2,s 初值为1,当P1进入P 操作时,s 大于0,可以进入,因此会执行上面的机器语言,将s 的值取出来,放入R1寄存器中,而此时,有可能P2进程要进入临界段,因此,它也比较s 的值是否小于0,因为此时s 的值仍为1,所以P2也进入临界段,出现错误。 4.13 题略 答:①

empty1=1; empty2=1; full1=0; full2=0; parbegin P: While(1) {P(empty1); put to buffer1; V(full1); } Q: While(1)

{P(full1);

get from buffer1; V(empty1); 。。。。。。。 P(empty2); put to buffer2; V(full2); }

get from buffer2; V(empty2); } parend; ②

empty1=m; empty2=n; full1=0; full2=0;mutex1=1;mutex2=1; parbegin P: While(1) { P(empty1); P(mutex1); put to buffer1;

V(full1); V(mutex1); } Q: While(1) { P(full1); P(mutex1); get from buffer1; V(empty1); V(mutex1); 。。。。。。。 P(empty2); P(mutex2); put to buffer2; V(full2); V(mutex2); }

R: While(1) { P(full2);

P(mutex2);

get from buffer2; V(empty2); V(mutex2);

} parend; 4.14 题略 答:P1: Sa; V(ac); V(ae); Sb; P(cd); Sd; P(fe); Sf; V(fh); Sg;

V(cd); P3: P(ae); Se; V(fe); P(fh);

Sh;

4.15 “理发师睡觉”问题

答:可以将此题看作N 个生产者和一个消费者问题。顾客作为生产者,每到来一个,就将自己放入计数器RC ,以便让理发师消费至最后一个产品(顾客),因此顾客进程执行的第一个语句便是RC=RC+1。而第一个到来的顾客应该负责唤醒理发师,理发师此时正在信号量W AKEUP 上等待((P(WAKEUP);该信号量的初值为0),由第一个顾客执行V(WAKEUP)。若顾客不是第一个到达,则在信号量WAIT 上等待(P(WAIT) 该信号量的初值为0),等理发师理完一个顾客后,执行V(WAIT)操作便可叫出该顾客理发。以上过程循环反复,理发师没每理完一个顾客,就令计数器减1,RC=0时便知此时无顾客,理发师可以继续睡觉,等待下一批顾客到达。在设信号量MUTEX(初值为1) ,保证对计数器RC 的互斥作用。 parbegin

顾客进程: begin

P(mutex); rc=rc+1;

if rc=1 then V(wakeup); elseP(wait); V(mutex); 理发; end; 理发师进程: begin

P(wakeup); repeat

理发; P(mutex);

rc=rc-1;

if(rc!=0) then V(wait); V(mutex); until rc=0; end; parend;

4.28 题略 答:1、Need 的内容为:[0000,0750,1002,0020,0642]

2、系统是处于安全状态。

3、进程2请求0420,不能立即得到满足,因为如果给进程2分配了0420的话,系统将处于不安全状态。所以不能立即得到满足。 4.11 多元信号量机构允许P ,V 操作同时对多个信号量进行操作。这种机构对同时申请或释放若干个资源是非常有用的。假设二元信号量机构中的P 原语定义为: P(S,R) : While(S≤0 or R≤0);

S=S-1;

R=R-1; 试用一元信号量机构加以实现。

答:mutex: semaphore P(mutex); P(S);

P(R); V(mutex);


相关内容

  • 生物考前指导
  • 亲爱的你: 当老师为你写这个考前叮嘱时,心里充满了信心和信任.不论你之前是什么样的水平,此刻,你不需要再患得患失,而是放下负担,平静心情,踏实的做一些实际.有用的事:然后,在周六下午,带着期待和激动走进考场,发挥出自己的最好水平. ★考前,那些可以做的事: 1. 书和知识点要在手边时时翻阅,不清楚的 ...

  • 司法考试心得
  • 司法考试,是一场智力.毅力和体力以及心理的综合较量,正因为其复习资料多.难度大.通过率低,成就了其"三大名考"之一的名声.一路走来,经历了那段昏天黑地的日子,才发现有那么多值得总结,值得留给后来人-可能这其中大多是个人体会,不具有普遍性,因此我更希望下面的这些东西能成为您行动的参 ...

  • 注册环保工程师基础考试经验之谈
  • 本人今年参加了注册环保工程师基础考试,因为复习的比较充分,考的还可以,估计有上午90,下午90,总分180左右.在论坛里收获了很多,因此把自己的复习经验和心得写出来,作为回报吧. 首先强调一点:注册环保是从07年开始报考,每年9月份举行一次,全国统一,至今举办了07.08, .09.10共4次.上午 ...

  • 韩国语能力等级考试之我见
  • 摘 要: 对于朝鲜语专业的学生来说,韩国语能力等级考试证书的重要性不言而喻.现今,随着就业压力的增大,出国读书学生的数量逐年上升,越来越多的学生开始执著于韩国语能力的等级考试.但是在高校韩国语专业课程日常教学活动中,对于韩国语能力等级考试涉及的内容并不是太多,因此,很多同学面对这一考试,总是感觉迷茫 ...

  • 全国出版专业职业资格考试题型分析及答题策略
  • 全国出版专业职业资格考试题型分析及答题策略 在往年的"每周一讲"以及今年的第8讲中,对全国出版专业职业资格考试的常考题型等都做了一些讲解,但由于是分散讲的(在这一讲结尾我会附上相关帖子链接),同学们查阅可能不方便,以及随着考试教材及大纲的变更等因素影响,考试题型都发生了细微的变化 ...

  • 注册电气工程师资料
  • 天津大学出版社的 注册电气工程师执业资格考试专业基础考试复习教程 注册电气工程师执考公共基础考试复习教程 本书是依据全国勘察设计注册工程师管理委员会颁布的<注册电气工程师执业资格专业基础考试大纲>编写的复习参考资料.内容涵盖了大纲所作的全部要求,即电路的基本概念.电路的分析方法.正弦电流 ...

  • 高二信息技术复习课教案
  • 太仓市明德高级中学 高二信息技术学业水平测试复习教案 李 金 荣 复习内容:word 文档编辑 复习重点: 用WORD 打开文档.首先对WORD 的一些基本功能进行必要的操作演示,让学生回顾以前学过的知识,并归纳这些操作方法. 1.演示WORD 的文档编辑的基本操作 2.字体设置:基本上在编辑栏中可 ...

  • 病案信息技术副高考试考试大纲和考试经验
  • 病案信息技术副高考试考试大纲和考试经验 一.专业知识 (一) 本专业知识 1.基本掌握病案信息学专业的基本理论与基础知识,包括病案管理.病案质控.国际疾病分类.手术分类. 2.掌握病案的管理方法,能独立地设计病案科的基本工作流程并熟悉每一个操作环节. (二) 相关专业知识 基本掌握或了解与本专业密切 ...

  • 中考将至 各科应当如何抓重点
  • 语文:基础知识,一分都不能少 本次考试中基础知识的比重分别占到了18%和21%."这已经是挺大的比重了,意味着150分的卷子中,有30分左右是学生们只要牢记便一定能得分的,这一部分得分是绝对不能放过的."环球雅思的语文组老师告诉记者. 另外,在现代文阅读方面,很多学生阅读题回答不 ...

  • 高三三模考试生物试题分析
  • 高三三模考试生物试题分析 一.试题评价 本次考试试卷从考查内容上看,严格按照高考范围,涵盖了高中生物教材三本必修及选修的内容,既有对新陈代谢.生命活动的调节.遗传和变异.生物与环境等核心知识的考查,也有对非核心知识的考查.从考查目的上看,重在考查高三学生的基础知识和基本能力,其中以图形表格题.实验题 ...