南开大学期末考试试题A卷_2007_参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南开大学信息技术科学学院考试卷

2007-2008年度第一学期期末 操作系统A卷(共16页) 专业▁▁▁▁年级▁▁▁学号▁▁▁▁姓名▁▁▁▁成绩▁▁▁▁

考生注意:请将答案写在空白的答题纸上,答题时标明题号。

第一部分:简答题(共30分,每题6分)

得分

答题要求:请用简洁精练的文字回答以下问题

1.进程调度的策略分为剥夺式调度和不可剥夺式调度,请简要解释两

种策略的含义以及差别,并对每种调度策略列出至少两种对应的调度算法。

剥夺式调度:操作系统按照进程调度算法控制多个进程分享CPU,使得CPU在多个进程之间进行切换,这种机制叫做剥夺式调度。(定义1分)

而非剥夺式调度是指:进程一旦占用CPU,就会一直运行到结束,其他进程只能等待该进程释放CPU后才能依次占用CPU,这种机制叫非剥夺式调度。。(定义1分)

剥夺式调度算法:时间片轮转,优先级调度,最短剩余时间优先等。(每个1分)

非剥夺式调度算法:先来先服务,最短作业优先等。(每个1分) 2.请简要解释DMA机制的工作方式,并分析DMA驱动I/O与中断驱

动I/O的差别。

DMA,即直接存储器存取,是指在外设和存储器之间开辟一个直接

1

的数据通道,数据传输由另外的DMA控制器来完成(2分)。

DMA控制器在开始传输之前获取目的地址,由DMA控制器控制外设将数据写入存储器。(2分)

这种方式驱动I/O和中断驱动I/O的最主要的区别在于不再需要CPU的参与。(2分)

3.虚拟存储管理的内在思想是什么?从技术角度如何实现这种思想?

虚拟存储器的思想是:程序、数据、堆栈的总大小可能超过可用的物理内存的总大小。操作系统通过某种方案来将当前使用的那部分数据方法内存中,而将其他部分放在磁盘上。虚拟存储器管理的本质是利用了程序数据的局部性原理。(3分)

采用分页(Paging)、分段(Segment)一类技术,通过对内存面面的调度来实现。(1分)(具体解释略。)(2分)

4.文件的逻辑结构分为几种形式?文件的磁盘布局分为几种形式?

文件的逻辑结构主要分两大类:字符流式的无结构文件和记录式的有结构文件。(2分)字符流式的文件管理简单,用户操作较为简单,常见的如源代码文件、目标代码文件等。记录式文件将文件中的记录按照一定的方式进行排列,从而形成不同的逻辑结构,用户方便对其进行修改、追加、查找等功能。(1分)

文件的磁盘布局是指文件存储在磁盘上的具体实现方式,主要有连续分配、链表分配、在内存中采用表的链表分配(索引文件)、i结点等几种方式。(3分)

5.请列出至少6种你认为合理的CPU性能评价参数。

主频、倍频、外频、指令集、流水线条数、前端总线频率、一级数

2

据cache、一级指令cache、二级cache等。(每个1分)

3

第二部分:编程计算题(共4题,必做,共45分) 请在下面的表格中指定答题顺序,在对应的分值下列明题得分

号。每格只许列出一个题号,否则做无效处理。

必须写明所有题目的题号,如果填写不完全,视为不指定答题顺序。

如填写内容无效或者不填写表格,则按照默认的答题顺序评分

第一题(15分)第二题(12分)第三题(10分)第四题(8分)

6.进程同步互斥与死锁问题的解决(默认分值:15分)

有一条南北双向的国家公路,其中一段路程共享一个单车道的隧道,行驶的汽车到达隧道入口处时,没有迎面而来的汽车时才能使用隧道。为了避免事故的发生,需要设计一套传感和信号系统。当一辆汽车接近隧道时,传感器通过Arrive函数向信号控制系统传递汽车运行的方向参数;当一辆汽车离开隧道时,传感器通过Depart函数向信号控制系统传递汽车的运行参数。控制系统使用一个单核多线程CPU作为处理器,并在隧道两端设置信号灯如下:绿灯表示行进,红灯表示停止。

图1是该问题的示意图:

请回答以下问题:

1)分析该问题中存在的同步和互斥关系,并确定需要使用几个传感器和信号灯,说明使用方式和设置位置。

隧道是两边车的竞争条件。(1分)

使用两个传感器和两个信号灯,分别在左右进入隧道的路上每条路上设置一个传感器和一个信号灯。信号灯位置在隧道口前,传感器位置

4

在离隧道口更远一点的地方,在经过传感器后如果信号灯立即改变,有充分时间让司机停车。(2分)

2)用伪代码设计该控制系统的软件框架(描述每个进程的处理过程)。

答案参考猴子过桥问题:

1. 信号量定义

typedef int semph;

semph LMutex = 1;

semph RMutex = 1;

semph Concur = 1;

int iL2RCount = 0;

int iR2LCount = 0;

2. 左侧汽车过隧道进程

// 记录过隧道猴子数,对右侧信号量进行P操作

P(Concur); // 在通过传感器时开始

P(LMutex);

iL2RCount++;

if(iL2RCount == 1)

{ P(RMutex); SetRLightRed(); }

V(LMutex);

V(Concur);

// 过隧道

Pass_Bridge(L,R);

// 过隧道后的信号灯恢复

P(LMutex);

5

iL2RCount--;

if(iL2RCount == 0)

{ V(RMutex); SetRLightGreen(); }

V(LMutex);

3. 右侧汽车过隧道进程与左侧类似。(6分)

3)在你设计的软件框架中,是否存在死锁的可能?如果有的话,你如何处理死锁问题?

不会产生死锁。(1分)

7.虚拟存储管理——缺页调度问题的分析(默认分值:12分)

使用“分页式”虚拟存储管理技术,假设一个进程P的页面访问顺

序如下:0 1 2 3 0 1 4 0 1 2 3 4。该进程创建时没有加载任何页面,即

该进程启动时其所有指令和数据都不在内存中。

1)设分配给该进程的物理页帧为3个,使用FIFO页面置换算法时,

请问会发生多少次缺页中断?使用硬件实现的LRU算法,会发生多

少次缺页中断?

FIFO: 9次(2分)

当前页0 1 2 3 0 1 4 0 1 2 3 4

0 0 0 3 3 3 4 4 4 4 4 4 物理桢

/ 1 1 1 0 0 0 0 0 2 2 2

/ / 2 2 2 1 1 1 1 1 3 3 是否中断●●●●●●●●●

替换页/ / / 0 1 2 3 0 1 LRU: 10次(2分)

当前页0 1 2 3 0 1 4 0 1 2 3 4

0 0 0 3 3 3 4 4 4 2 2 2 物理桢

/ 1 1 1 0 0 0 0 0 0 3 3

/ / 2 2 2 1 1 1 1 1 1 4

6

相关文档
最新文档