2009西工大操作系统考试题(答案) 下载本文

内容发布更新时间 : 2024/12/22 9:40:31星期一 下面是文章的全部内容请认真阅读。

1.C 2.A 3.C 4.B 5.A 6.D 7.A 8.B 9.D 10.B 11.C 12.D 13.B 14.C 15.D

1.并发性 共享性

2.程序 数据集合 进程控制块(PCB) 多 3.3 4.唤醒 5.信箱

6.先请求先服务 优先级高者优先 7.5 8.避免 9.逻辑地址

10.文件命名冲突 11.逻辑地址

12.无结构的流式文件

13. 分段存储系统 动态分区系统 14.3 15.13 15

1.错误 就绪状态 2.错误 3.正确 4错误 5.错误 1

操作系统的概念:通常把操作系统定义为用以控制和管理计算机系统资源方便用户使用的程序和数据结构的集合。

临界资源:一次仅允许一个进程使用的资源称为临界资源。

地址映射 将程序地址空间中使用的逻辑地址变换成主存中的地址的过程

缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。 系统调用,就是用户在程序中调用操作系统所提供的一些子功能。 2.

内核级线程是操作系统内核实现、管理和调度的一种线程。由于有操作系统管理,所以操作系统是知道线程的存在,并为其安排时间片,管理与其有关的内核对象。因为内核级线程是由内核来管理,所以每次线程创建、切换都要执行一个模式切换例程,所以内核级线程效率比较低,而且内核级线程的调度是由操作系统的设计者来决定的,所以缺乏灵活性。但是内核级线程有一个有点就是当一个进程的某个线程因为一个系统调用或者缺页中断而阻塞时,不会导致该进程的所有线程阻塞。内核级线程的优点: 较好的并行能力,一个进程内的线程阻塞不会影响该进程内的其他线程内核级线程的缺点: 线程管理的开销过大,缺乏灵活性。用户级线程是通过运行在用户态的运行时库来管理的,其优点是,线程的一切(包括调度、创建)都可以完全由用户自己决定,所以具有较高的灵活性。而且由于是在用户态上进行管理,所以就省去了内核管理的开销,所以具有高效率。 但是用户级线程有一个致命

的缺点:一个进程内的某一个线程阻塞将导致整个进程内的所有线程全部阻塞。而且由于用户级线程没有时间片概念,所以每个线程必须运行一段时间后将CPU让个其他的线程使用,否则,该线程将独占CPU。用户级线程的优点: 有较高的灵活性和高效率用户级线程的缺点: 较差并发能力 3

设备驱动程序:与硬件直接有关,用来具体实现系统对设备发出的操作指令,驱动I/O设备工作

硬件->中断处理程序->设备驱动程序->设备独立性软件->用户层I/O软件 驱动程序是一个小型的系统级程序,它能够使特定的硬件和软件与操作系统建立联系,让操作系统能够正常运行并启用该设备. 4

当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。若该盘块号已是栈底,即S.FREE(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去(其中的有用数据已读入栈中)。然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1并返回。 在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100个盘块号,记入新回收的盘块中,再将其盘块号作为新栈底。 5

A. 在请求分页系统中,其页表项中包含的数据项有页号,物理块号,状态位P,访问字段A,修改位M和---外存地址;B. 其中状态位P指示该页是否调入内存,供程序访问时参考;C. 访问字段A用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法---选择换出页面时参考;D. 修改位M表示该页在调入内存后是否被修改过;E. 外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用 1

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

算法的信号量有三个: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

(1)当运行进程在执行过程中,需要等待某事件的发生才能继续向下执行,此时会发生变迁3。

当运行进程在分得的时间片(100MS或500MS)内未完成,时间片100MS或时间片500MS到将发生变迁2。

当等待进程等待的事件发生了,将会发生变迁4。

(2)A2->1的因果变迁可能发生

当运行进程在分得的时间片(100MS或500MS)内未完成,时间片100MS或时间片500MS到发生的变迁2,在高优先就绪队列为空时,必然引起低优先就绪队列中的一个就绪进程被调度执行的变迁1。在高优先就绪队列采用优先级调度算法时,当一进程从等待状态变为就绪状态的变迁4,在该进程的优先级最高且系统采用抢占式调度时,就会引起该进程被调度执行的变迁5。

当一进程从等待状态变为就绪状态的变迁4,就会引起该进程被调度执行的变迁5。 正在运行的进程因等待某事件的发生而变为等待状态的变迁3,在高优先就绪队列非空时必然引起一个就绪进程被调度执行的变迁5。 (3)调度策略:

首先调度高就绪队列中的进程(一般由I/O型进程或短进程组成)投入运行(给高优先就绪队列中的进程分配的时间片大小为100MS),只有当高就绪队列中的所有进程全部运行完毕或因等待某事件发生处于阻塞状态,高就绪队列中没有进程可运行时,才调度低优先就绪队列中的进程(一般由计算型进程或长进程组成)(给低优先就绪队列中的进程分配的时间片大小为500MS)。若一个运行进程时间片(100MS或500MS)到还未完成就进入低优先就绪队列。若某进程在运行期间因等待某事件发生而进入阻塞队列,则当其所等待事件完成后,它将进入高优先就绪队列。 调度效果:

这种算法优先照顾了I/O量大的进程或短进程。 3

1)0 ,2,1,6,2,4,4,1,0,1 (2)LRU算法

0 ,2,1,6,2,4,4,1,0,1 0: 0, 0, 0,0,0 ,4,4,4,4,4 1: 2,2,2, 2, 2,2,2, 2,2 2: 1,1,1, 1,1, 1 ,1, 1 3 : 6,6, 6, 6, 6, 0, 0