《计算机操作系统》课程
重难点分析(4)
(第六章、七章)
问题1:怎样理解操作系统的作业调度和进程调度的关系?
考点:作业调度和进程调度间的关系
回答:解:作业调度和进程调度都属于处理机调度。
作业调度是处理机管理的高级形式,它的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。
进程调度是处理机管理的低级形式,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
操作系统中作业的状态主要有:提交、后备、执行、完成,进程的状态主要有等待、就绪、执行。
作业调度和进程调度的转换关系见下图。
作业的状态及其转换
提示:对状态间的转换条件也应该进行掌握。
问题2:考虑一个理发店,只有一个理发师,只有n张可供顾客等待理发的椅子,如果没有顾客,则理发师睡觉;如果有一顾客进入理发店发现理发师在睡觉,则把他叫醒,写一个程序协调理发师和顾客之间的关系。
考点:用PV原语实现同步
回答:理发师进程
V oid barber(void)
{ while (true)
{ P(customers);
P(mutex);
waiting = waiting – 1 ;
V(barber);
V(mutex);
cut_hair( );
}
顾客进程
V oid customers(void)
{P(mutex);
if(waiting<chairs)
{ waiting = waiting + 1 ;
V(customers);
V(mutex);
P(barbers);
get_hair( );}
else {V(mutex);}
}
提示:考虑一下理发师(barber)重复的下列活动:(1)睡觉;(2)为顾客理发;
顾客(customers)重复的下列活动:(3)在椅子上等候;(4)理发;离开;
显然,理发师在(1)处要考察是否有顾客等候理发,如果没有,理发师睡觉;在(2)处理发师等待最先进入理发店的顾客唤醒,开始理发。
顾客在(3)处先看是否有座位,没有则离开;等候理发的顾客在(4)处被理发师唤醒(最先理发的顾客要唤醒理发师);理发结束后离开。
在这两个活动中,从资源的角度来看,理发师是顾客争用的资源,用信号量barber表示,初值为0;除此以外,顾客还要争用n张椅子,信号量customers表示等候理发的顾客数,初值为0;最后设置信号灯变量mutex用于这两个活动对资源barber、customers的互斥,初值为1。
另外:同步的特点,对同一信号量的P操作与V操作分散在不同的进程中。
问题3:有三个用户进程P1、P2、P3,在运行过程中都要使用系统中的一台打印机输出计算结果。
(1)试说明三个进程之间存在什么样的制约关系?
(2)为保证这三个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。
要求给出信号量的含义和初值
考点:用PV原语实现互斥
回答:(1)三个进程之间因为均要使用到临界资源――打印机,所以它们之间是一种互斥的制约关系。
(2)为保证三个进程正确进行。
作如下处理:
设互斥信号量:mutex ,初值为:1进程表示如下:
P1:
…
p(mutex)
申请打印机使用打印机V(mutex)
(2)
…
p(mutex)
申请打印机
使用打印机
V(mutex)
…
P3:
…
p(mutex)
申请打印机
使用打印机
V(mutex)
…
(注:此步无“申请打印机”也正确,此时p(mutex)就同时视为申请打印机的操作
提示:互斥的特点之一,对同一信号量的PV操作集中在一个进程中。
问题4:新一代操作系统采用微内核技术,有什么优缺点?
考点:微内核技术的概念
回答:微内核技术的主要优点:
(1)统一的接口,在用户态和核心态之间无需进程识别;
(2)可伸缩性好,能适应硬件更新和应用变化;
(3)可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统要移植到不同的硬件平台上,只需修改微内核中极少代码即可;
(4)实时性好,微内核可以方便地支持实时处理;
(5)安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅使用少量应用编程接口;
(6)支持分布式系统,支持多处理器的体系结构和高度并行的应用程序;
(7)真正面向对象的操作系统。
由于操作系统核心常驻内存,而微内核结构精简了操作系统的核心功能,内核规模比较小,一些功能都移到了外存上,所以微内核结构十分适合嵌入式的专用系统,对于通用性较广的系统,将使CPU的通信开销增大,从而影响到计算机的运行速度。