.(1)设p1和P2两进程共用一缓冲区Buf,P1向Buf写信息,P2从Buf中读出信息,算法
描述如图1所示。
(2)设A1和A2为两并发进程,它们共享一临界资源,执行算法见图2. P1进程 P2进程 A1进程 A2进程 P(S2) P(S1) P(S) 从Buf读出信息 CSA1 CSA2 向Buf写信息 V(S)
V(S1) V(S2) S的初值为0 S1,S2的初值为1 图 1 图 2
图1有错,因为(1)是同步问题,所以它应给A和B两个进程分别设置两个私有信号灯:SA表示缓冲区是否空闲,若空闲则向缓冲区中写信息,否则不写;SB表示缓冲区中有无可取信息,若有可取的信息则读,否则不读。所以SA的初始值为1(表示缓冲区空);SB的初始值为0(表示开始无信息读)。修改如图(3)。图2有错,因为(2)是互斥问题,所以只需设置一个信号灯(公用):S的初值为1,修改如图(4)。A进程 B进程 A进程 B进程 P(SA) P(SB) P(S) P(S)
向Q写信息 从Q中读出信息 CSA CSB
V(SB) V(SA) V(S) V(S) SA的初值为1,SB的初值为0 S的初值为1 图 3 图 4 10
11 操作系统的职能是有效的管理好计算机系统所拥有的硬件资源和软件资源,合理的组织计算机系统的工作流程,为用户使用计算机系统提供一个良好的工作环境和友好的接口。计算机系统的资源包括硬件资源和软件资源,通常可将其划分为四大类:中央处理机(CPU)、存储器、输入/输出设备和文件系统。对这四大资源的管理是计算机操作系统的主要功能之一。
12 批处理系统的主要特征是:用户脱机使用、成批处理、多道程序运行。 分时系统的主要特征是:交互性、多用户同时性、独立性。
实时系统的主要特征是:对实时信息分析处理速度要比进入系统快、要求安全可靠、
资源利用率低。
13多道程序是作业之间自动调度执行、共享系统资源,并不是真正的同时执行多个作业;而多重处理系统配置多个CPU,能真正同时执行多道程序。要有效使用多重处理,必须采用多道程序设计技术,而多道程序设计原则上不一定要求多重处理系统的支持。
14讨论操作系统可以从以下角度出发:1)操作系统是计算机资源的管理者;2)操作系统为
用户提供使用计算机的界面;3)用进程管理观点研究操作系统,即围绕进程运行过程来讨论操作系统。
上述这些观点彼此并不矛盾,只不过代表了同一事物(操作系统)站在不同的角度
来看待。每一种观点都有助于理解、分析和设计操作系统。
15 计算机操作系统的重要功能之一是对硬件资源的管理。因此设计计算机操作系统时
应考虑下述计算机硬件资源: 1)CPU与指令的长度及执行方式; 2)内存、缓存和高速缓存等存储装置;
3)各类寄存器,包括各种通用寄存器、控制寄存器和状态寄存器等; 4)中断机构;
5)外部设备与I/O控制装置;
6)内部总线与外部总线; 7)对硬件进行操作的指令集。
16 解:终端处理程序,主要用于实现人机交互,为此它应具有以下功能: (1)接收从终端键入的字符,并将它传送给用户程序; (2)暂存从终端键入的字符;
(3)回送显示(回显),即每当用户从键盘打入一个字符后,终端处理程序便将该字
符送屏幕显示;
(4)屏幕编辑 ;
(5)对若干特殊字符进行及时处理中断字符。
17 解:主要有以下差别:
1)运行在不同的系统状态 一般的过程调用,其调用和被调用的过程或者都使用子
程序,或者都是系统程序,故都运行在同一系统状态下:系统态或用户态。系统调用的调用过程是用户程序,它运行在用户态;其被调用过程是系统过程,运行在系统态下。
2)通过软中断进入 一般的过程调用可直接由调用过程转向被调用过程;而执行系
统调用时,由于调用和被调用过程是处于不同的系统状态,因而不允许由调用过程直接转向被调用过程,而通常都是通过软中断机制,先进入OS核心,经核心分析后,才能转向相应的命令处理程序。
3)返回问题 对于一般的过程调用,在被调用过程执行完成后,将返回到调用过程
继续执行。然而,在采用了抢占式剥夺调度方式的系统中,在被调用过程执行完后,要对系统中所有要求运行的进程进行优先权的分析。当调用进程仍具有最高优先权时,才返回到调用进程继续执行;否则,将引起重新调度,以便让优先权最高的进程优先执行。此时,将把调用进程放入就绪队列。
18 解:命令解释程序的主要作用是,在屏幕上产生提示符,请用户输入命令,然后读
入命令、识别命令、转到相应的命令处理程序入口地址,再把控制权交给该处理程序去执行,并将处理结果送屏幕上显示,或显示某些出错信息。
19 系统调用的执行过程分成以下几步:(1)设置系统调用号和参数;(2)系统调用命令的一般性处理;(3)系统调用命令处理程序做具体处理。
20 UNIX的主要特点是:
(1)精巧的核心与丰富的实用层 UNIX系统在结构上分成内核层和实用层。核心层
小巧,而实用层丰富。核心层包括进程管理、存储管理、文件系统几个部分。UNIX核心层设计得非常精干简洁,其主要算法经过反复推敲,对其中包含的数据结构和程序进行了精心设计。因此,其核心层只需占用很小的存贮空间,并能常驻内存,以保证系统以较高的效率工作。
(2)使用灵活的命令程序设计语言SHELL
(3)UNIX系统采用树型目录结构来组织各种文件及文件的目录。这样的组织方式有
利于辅存空间分配及快速查找文件,也可以为不同用户的文件提供文件共享和存取控制的能力,且保证用户之间安全有效的合作。
(4)UNIX将外部设备与文件一样看待,外部设备如同磁盘上的普通文件一样被访问、
共享和保护。用户不必区分文件与设备,也不需要知道设备的物理特性就能访问它。这样在用户面前,文件的概念简单了,使用也方便了。
(5)UNIX系统的所有实用程序和核心的90%代码是用C语言写成的,这使得UNIX
成为一个可移植的操作系统,从而又带来了应用程序的可移植性。
21 进程见得互斥是指:一组并发进程中的一个或多个程序端,因共享某一公有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区。
进程间的同步是指:异步环境下的一组并发进程因直接制约相互发送消息而进行互相合作、互相等待,是各进程按一定的速度执行的过程。
22 并发进程所受的制约有两种:直接制约和间接制约。直接制约是由并发进程互相共享对方的私有资源所引起的。间接制约是由竞争公有资源而引起的。
23 main( )
{
int full=0; int empty=n; int mutex=1; cobegin producer( ); consumer( ); coend
}
producer( ) {
while(生产未完成)
{ : 生产一个产品; P(empty); P(mutex);
送一个产品到有界缓冲区; V(full);
}
} consumer( ) { while(还要继续消费)
{
P(full); P(mutex);
从有界缓冲区中取产品; V(mutex); V(empty);
:
V(mutex);