特别注意的是:传统操作系统中的进程概念与现代操作系统中的进程概念不同——简单说,传统操作系统中进程具有分配资源、调度运行两大功能,而现代操作系统中进程只作为分配资源单位,线程才作为调度运行单位。 5、 进程的互斥和同步有什么异同点?
答:同步与互斥特点比较见教材127页表6-4。 同步 互斥 进程-进程 进程-资源-进程 时间次序上受到某种限制 竞争到某一物理资源时不允许其他进程工作 相互清楚对方的存在及其作用,交换信息 不一定清楚其他进程情况 往往指有几个进程共同完成一个任务 往往指多个任务多个进程间通讯制约,故更广泛 举例:生产与消费之间,发送与接收之间,举例:交通十字路口,单轨火车的拨道岔。 作者与读者之间,供者与用者之间。 6、一个进程入睡时其断点落在何处?它被唤醒后从何处继续原来的执行? 答:一个进程入睡是指该进程由于缺乏资源不能占用CPU,进入等待状态。一个进程由程序、数据集合和进程控制块(PCB)组成。PCB是进程存在的唯一标志。PCB中包括如下内容:进程标志号、进程状态(执行/就绪/等待)、进程标志、进程优先数、程序地址、现场保护区(通常被保护的信息有程序计数器、程序状态字、各个工作寄存器等)、通信机构、其他信息等。
处于睡眠状态的进程,它的断点在它的PCB中的现场保护区中保护起来。保存程序运行的CPU现场,以便在将来的某一时刻恢复并继续原来的运行。它被唤醒后,把它从等待进程队列中摘下,将进程状态改为就绪,然后将它插入到就绪队列中;等它占用CPU进入执行状态时,从断点处继续执行。 7、 什么是临界区? 答:每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。 8、 试说明进程互斥、同步和通信三者之间的关系。
答:进程的同步与互斥是指进程在推进时的相互制约关系。在多道程序系统中,由于资源共享与进程合作,这种进程间的制约称为可能。为了保证进程的正确运行以及相互合作的进程之间交换信息,需要进程之间的通信。
进程之间的制约关系体现为:进程的同步和互斥。 进程同步:它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。
进程互斥:它主要源于资源共享,是进程之间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。
进程通信是指进程间的信息交换。PV操作作为进程的同步与互斥工具因信息交换量少,效率太低,称为低级通信。而高级通信则以较高的效率传送大批数据。 9、 考虑一个理发店,只有一个理发师,只有n张可供顾客等待理发的椅子,如果没有顾客,
则理发师睡觉;如果有一顾客进入理发店发现理发师在睡觉,则把他叫醒,写一个程序协调理发师和顾客之间的关系。
答:考虑一下理发师(barber)重复的下列活动:(1)睡觉;(2)为顾客理发; 顾客(customers)重复的下列活动:(3)在椅子上等候;(4)理发;离开;
显然,理发师在(1)处要考察是否有顾客等候理发,如果没有,理发师睡觉;在(2)
25
处理发师等待最先进入理发店的顾客唤醒,开始理发。
顾客在(3)处先看是否有座位,没有则离开;等候理发的顾客在(4)处被理发师唤醒(最先理发的顾客要唤醒理发师);理发结束后离开。
在这两个活动中,从资源的角度来看,理发师是顾客争用的资源,用信号量barber表示,初值为0;除此以外,顾客还要争用n张椅子,信号量customers表示等候理发的顾客数,初值为0;最后设置信号灯变量mutex用于这两个活动对资源barber、customers的互斥,初值为1。详细算法见教材131页。
10、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一
座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问: (1)为描述读者的动作,应编写几个程序,设置几个进程? (2)试用PV操作描述读者进程之间的同步关系。
答:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。
算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。 读者进入阅览室的动作描述getin: while(TRUE){
P (seats); /*没有座位则离开*/ P(mutex) /*进入临界区*/ 填写登记表; 进入阅览室读书;
V(mutex) /*离开临界区*/ V(readers) }
读者离开阅览室的动作描述getout: while(TRUE){
P(readers) /*阅览室是否有人读书*/ P(mutex) /*进入临界区*/ 消掉登记;
离开阅览室;
V(mutex) /*离开临界区*/
V(seats) /*释放一个座位资源*/ }
11、进程之间有哪些基本的通信方式?它们分别有什么特点?适用于哪些场合? 答:进程通信根据交换信息量的多少分为高级通信和低级通信。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如PV操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。
高级进程通信方式有很多种,大致可归并为三类:共享存储器、管道文件和消息传递。 共享存储器:在内存种分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消。
管道文件:它是连接两个命令的一个打开文件。一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者。
26
消息传递:它以消息为单位在进程间进行数据交换。具体说明见教材133页的“消息缓冲”。
12、如何尽快熟悉一个计算机操作系统?
答:熟悉一个操作系统,可以从以下几种不同的角度: (1)用户的角度
这是从操作系统向用户提供服务的角度来观察操作系统。从操作系统的外部特性来看,它提供了使用的语言,如命令语言、图形语言、菜单语言等。一般的操作系统向用户提供了命令一级、系统调用一级以及作业控制一级的服务。这些服务涉及到设备控制、文件管理、进程的建立和撤消、内存管理等。此外,操作系统作为计算机硬件功能的扩充,为它的上一层(应用软件)提供了虚拟机环境。 (2)资源管理的角度
从这种静态角度认识操作系统,它是各种资源的管理者。它负责它们的登记、记录状况、分配、回收以及维护其完整性,并操纵其使用,同时向用户提供方便的使用界面。根据资源的分类,操作系统分成处理机管理、存储管理、文件管理、设备管理和作业管理等五个部分。这几个部分相对独立又互相关联,协调配合运行,一起完成用户的服务要求。 (3)进程的角度
这是从动态的、运行的观点来熟悉操作系统。操作系统要通过组织对资源的共享来提高资源的利用率,必然要引入并行机制。在这个意义上,操作系统由若干个可以同时独立运行的程序(即进程)和一个对它们进行管理、协调的系统核心组成。在系统核心的管理下,各个进程此起彼伏地运行,完成用户的服务工作。
13、新一代操作系统采用微内核技术,有什么优缺点? 答:微内核技术的主要优点:
(1)统一的接口,在用户态和核心态之间无需进程识别; (2)可伸缩性好,能适应硬件更新和应用变化;
(3)可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统
要移植到不同的硬件平台上,只需修改微内核中极少代码即可; (4)实时性好,微内核可以方便地支持实时处理;
(5)安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅使用少量应用
编程接口;
(6)支持分布式系统,支持多处理器的体系结构和高度并行的应用程序; (7)真正面向对象的操作系统。
由于操作系统核心常驻内存,而微内核结构精简了操作系统的核心功能,内核规模比较小,一些功能都移到了外存上,所以微内核结构十分适合嵌入式的专用系统,对于通用性较广的系统,将使CPU的通信开销增大,从而影响到计算机的运行速度。 14、在大程序的编程过程中,模块大小如何选择?分块原则是什么? 答:模块是指执行某一特定任务(或实现某一特定的抽象数据类型)的数据结构和程序代码。专家建议,一个模块最好只包含几十条语句(即可打印在一页打印纸上)。这是考虑到开发人员的方便阅读和研究。
划分模块的原则是:各个模块尽可能具有较大的独立性,换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单,以便能方便地把不同场合下写成的程序模块组合成软件系统。(此题的内容涉及到计算机软件设计的知识,若需要进一步了解,可以参考“软件工程”方面的相关教材。)
27