六、 软件的中断处理过程主要分为哪几个阶段?试用图画出软件的中断处理过程。
1、保护现场和传递参数; 2、执行相应的中断服务例程; 3、恢复和退出中断。 见书42页,图2.12
七、 进程有哪几种基本状态?在一个系统中为什么必须区分出这几种状态?
三种基本状态:就绪状态,运行状态,等待状态。 如果系统能为每一个进程提供一台处理机,则系统所有进程都可以同时执行,但实际上处理机的数目总是少于进程数,因此往往只有少数几个进程(在单处理机系统中,则只有一个进程)可真正获得处理机控制权。通常把那些获得处理机控制权的进程所处的状态称为运行状态;把那些希望获得处理机控制权,但因为处理机数目太少而暂时分配不到处理机的进程所处的状态称为就绪状态。虽然所有进程并发执行,但它们之间并不完全独立,而是相互制约的,有的进程因某种原因暂时不能运行而处于等待状态。因此在任何系统中,必须有这三种基本状态。
八、 n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程
序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。 设置互斥信号灯mutex,初值是1,表示公共变量Q未被使用。 程序task Main( ) {
Int mutex=1; }
Cobegin P1( ); P2( ); : : Pn( ); Coend
P1( )
{ : P(mutex); 访问Q; V(mutex); : } P2( ) { : P(mutex); 访问Q; V(mutex); : } :
:
Pn( ) { : P(mutex); 访问Q; V(mutex); :
}
若mutex=1,表示没有进程进入临界区;
若mutex=0,表示有一个进程进入临界区访问Q;
若mutex=-i,{i取值1~(n-1)},表示有一个进程进入临界区,有等待进入临界区访问Q。
九、 用于进程控制的原语主要有哪几个?
创建原语,撤销原语,阻塞原语,唤醒原语,延迟原语
十、 对操作系统的服务请求与一般的子程序调用有什么区别?
i个进程在对操作系统的服务请求不能像一般用户子程序那样可以随便调用,因为操作系统中实现各种功能的例行子程序是操作系统的一部分,它运行时,机器处于管态,而用户程序运行时,机器处于用户态。用户用带有不同功能号的访管指令来请求操作系统各种不同的功能。操作系统服务例程与一般子程序的区别在于,服务例程所实现的都是与计算机系统本身有关的,它的调用是通过一条访管指令来实现的。 十一、 (1)
(2)两道程序运行时,CPU有空闲等待,在100ms时刻空闲等待50ms。程序A计算50ms后,进行打印;程序B计算50 ms后进行输入,此时CPU因为没有其他作业计算出现空闲等待。
(3)程序A没有空闲等待,程序B有空闲等待。由于程序B计算之后进行输入,当输入结束需要继续计算时,CPU被作业A使用,所以作业B等待20ms。
十二、(a)设置信号灯S2、S3、S4,分别表示进程P1、P2、P3能否开始运行,其初值0。 Main( ) {
Int S2=0; /*表示进程P2能否开始执行*/ Int S3=0; /*表示进程P3能否开始执行*/
Int S4=0; Cobegin
/*表示进程P4能否开始执行*/
打印机1程序A打印程序A打印结束程序A打印程序A程序B程序A程序B中央处理机输入机程序B 输入程序B 输入打印机2 P1( );
P2( ); P3( ); P4( );
Coend
} P1( ) { :
: V(S2); V(S3) V(S4) } P2( ) { P(S2); : : } P3( ) { P(S3); : : } P4( ) { P(S4); : :
}
(b)设置信号灯S表示进程P3能否开始运行,其初值0。
相关推荐: