加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

   计算机操作系统形成考核册作业解答(5\6\7章)

(2007-06-20 09:48:41)
 

第5 输入输出设备管理

一、单选题(每题1分,共10分)

    1.D        2.A         3.D         4.A         5.C

    6.D        7.A         8.A         9.B         10.A

二、填空题(每空1分,共12分)

1.         SPOOLing   独占  共享

2.         单缓冲  多缓冲  缓冲池

3.         字符 

4.       程序直接控制方式中断控制方式 DMA方式 通道方式

三、简答题

1.按资源分配管理技术,输入输出设备类型可分为哪三类?(3分)

答:按资源特点可分为:输入输出设备可分为独占设备、共享设备和虚拟设备。

2.设备驱动程序是什么?为什么要有设备驱动程序,用户进程怎样使用驱动程序?(6分)

答:设备驱动进程(I/O进程,进程是并发环境下程序的一次执行)与设备控制器之间的通信程序称为设备驱动程序。

设备驱动程序是控制设备动作的核心模块,如设备的打开、关闭、读、写等,用来控制设备上数据的传输。它直接与硬件密切相关,处理用户进程发出的I/O请求。(设备控制的三个关键寄存器内容要素:地址、数据和控制信号寄存器——叫某某人、干、什么事)

用户进程使用设备驱动程序时,设备驱动程序的处理过程为:将用户进程抽象的I/O要求转换为具体的要求,检查I/O请求的合法性,读出和检查设备的状态,传送必要的参数,设置设备工作方式,启动I/O设备。

3.为什么要引入缓冲技术? (3分)

答:为了匹配外设与CPU之间的处理速度,为了减少中断次数以及CPU和中断处理时间,也为了解决DMA和通道方式的瓶颈问题,在设备管理中引入了用来暂存数据的缓冲技术。

4.SPOOLing技术如何使一台打印机虚拟成多台打印机?(4分)

答:当用户进程请求打印输出时,操作系统并不真正把打印机分配给该用户进程,而是为进程在磁盘上的输出井中分配一个空闲盘区,并将要打印的数据送入其中,同时还为用户进程申请一张用户请求打印表,将用户的打印要求填入其中,再将该表挂在请求打印队列上。

    如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存的输出缓冲区,再由打印机进行打印。

第6 进程及处理机管理

一、单选题(每题1分,共15分)

    1.B        2.C         3.C         4.D         5.C

    6.B        7.B         8.C         9.B         10.C

   11. B       12.C        13.A        14.B        15.D

二、填空题(每空1分,共9分)

1.程序  数据集合  进程控制块(或PCB)

2.准备就绪

3.原语

4.互斥使用  保持和等待  非剥夺性  循环等待

四、简答题

1.操作系统为什么要引入进程?进程与程序的关系是怎样的?(6分)

答:引入进程的目的是为了描述程序动态执行时的活动规律和状态变化。

进程和程序是既有联系又有区别的两个概念,它们的主要区别如下:

(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在CPU上的一次执行过程,它是一个动态概念。

(2)程序的存在是永久的。而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。

(3)程序仅是指令的有序集合。而进程则由程序、数据和进程控制块组成。

(4)进程和程序无一一对应关系,即同一个程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程。而一个进程可以执行多个程序。

(5)进程可以生成其他进程,而程序不能生成新的程序。

2.一个进程入睡时其断点落在何处?它被唤醒后从何处继续原来的执行?(5分)

答:一个进程入睡是指该进程由于缺乏资源不能占用CPU,进入等待状态。一个进程由程序、数据集合和进程控制块(PCB)组成。PCB是进程存在的唯一标志。PCB中包括如下内容:进程标志号、进程状态(执行/就绪/等待)、进程标志、进程优先数、程序地址、现场保护区(通常被保护的信息有程序计数器、程序状态字、各个工作寄存器等)、通信机构、其他信息等。

处于睡眠状态的进程,它的断点在它的PCB中的现场保护区中保护起来。保存程序运行的CPU现场,以便在将来的某一时刻恢复并继续原来的运行。它被唤醒后,把它从等待进程队列中摘下,将进程状态改为就绪,然后将它插入到就绪队列中;等它占用CPU进入执行状态时,从断点处继续执行。

3.高级进程通信方式有哪些?(4分)

答:有共享存储器、管道文件和消息传递。

4.什么是死锁?(2分)

答:死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,这种现象称为死锁。

五、综合题

1.有一个阅览室,共有100个座位,读者进人时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:

   (1)为描述读者的动作,应编写几个程序,设置几个进程?

   (2)试用PV操作描述读者进程之间的同步关系。(8分)

解:

读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。

算法的信号量有三个: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)                                   /*释放一个座位资源*/

}

 

2.设公共汽车上,司机和售票员的活动分别是:

    司机的活动:  启动车辆;

                  正常行车;

                  到站停车;

    售票员的活动:关车门;

                  售票;

                  开车门;

    在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。(8分)

解:

在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步,

    在本题中,应设置两个信号量:S1、S2。S1表示是否允许司机启动汽车,其初值为0;S2表示是否允许售票员开门,其初值为0。用P、V原语描述如下:

int Sl=0;

int S2=0;

     main()

     {

        cobegin

          driver();

          busman();

        coend

     

     driver()

     {

           while(1)

           {

              P(S1);

              启动车辆;

              正常行车;

              到站停车;

              V(S2);

           

     

      busman()

     {

           while(1)

         

              关车门;

              V(Sl);

              售票;

              P(S2);

              开车门;

              上下乘客;

          

      }

用P、V操作来控制现实生活中的操作流程是一类常见的试题。这类试题要求解题者能将生活中的控制流程用形式化的方式表达出来。

第7 操作系统结构和程序设计

 

简答题  操作系统设计的基本方法有哪些?(5分)

答:操作系统设计的基本方法主要有模块接口法和层次结构法。

模块接口法是早期操作系统设计中采用的方法,即首先确定操作系统的总体功能,然后将总功能分解为若干子功能,实现每个子功能的程序称为模块。再按照功能将上述每个大模块分解为若干个较小的模块,如此下去,直至每个模块仅包含单一功能和紧密联系的小功能为止,即分解为最基本的模块为止,最后通过接口将所有模块连接起来形成一个整体。

这种方法无需太多的结构设计工作,很快就可以进入编码阶段,而且模块之间转接的灵活性使得系统具有效率高的优点。但是,由于各基本模块之间可以任意相互调用,各开模块之间相互依赖,甚至可能构成循环,形成一个复杂的网络,这使得很难对系统进行局部性修改,因而可靠性、易读性和适应性都很难得到保证。

层次结构法就是将操作系统划分为许多基本模块,把这样一些模块按照调用关系分为若干层,各层之间单向依赖,不构成循环。层次结构又分为两种,即全序层次结构和半序层次结构。

层次结构法的突出优点在于把整体问题局部化,把一个大型系统分解为若干个单向依赖的层次,从而将对整个系统的全局理解变为对各层的局部了解。整个系统的正确性可由各层次的正确性来加以保障,这样易读性和可靠性的目标就易于达到。此外,由于循环调用大量减少,局部修改问题也容易实现。

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有