2018-2019学年上学期期末
2018-2019学年上学期期末试卷(A)(含答案)
一、单项选择题(30分,每题3分)
-
操作系统的目标是( )
A. 执行用户程序更容易
B. 使计算机系统更便于使用
C. 计算机硬件利用效率更高
D. 以上均是
答案:
D
-
系统上电后,下面程序中哪个最先运行?( )
A. 内核程序
B. 引导程序
C. 登录程序
D. 自启动程序
答案:
B
-
下面那项不在 PCB 中?( )
A. 进程状态
B. 进程号
C. 进程名
D. 打开文件列表
答案:
C
-
降低进程优先级的合理时机是( )。
A. 进程的时间片用完
B. 进程刚完成 I/O,进入就绪队列
C. 进程长期处于就绪队列中
D. 进程从就绪状态转为运行态
答案:
A
-
同一个进程的不同线程,具有独立的( )
A. 文件
B. 栈
C. 数据段
D. 代码段
答案:
B
-
一般而言,下列哪种调度算法响应时间最短?( )
A. FCFS
B. SJF
C. SRTF
D. RR
答案:
D
-
下面哪个 bit 不在页表里?( )
A. Mode bit
B. valid-invalid bit
C. Dirty bit
D. reference bit
答案:
A
-
下面哪个控制块只存在于内存中?( )
A. PCB
B. FCB
C. BCB
D. VCB
答案:
A
-
菊花链(daisy chain)是一种( )
A. 总线结构
B. 星型结构
C. 并行结构
D. 分布式结构
答案:
A
-
以下哪种存储设备通常只支持顺序访问?( )
A. 软盘
B. 固态硬盘
C. 磁带
D. 光盘
答案:
C
二、判断题(20分,每题2分,请划√或×)
-
现代操作系统都是中断驱动的。陷阱、异常、轮询是软中断的几种形式,通过类似中断处理的方式进行处理。( )
答案:
×。错在“轮询”。
-
系统调用是操作系统提供的服务的编程接口。( )
答案:
√
-
微内核架构中 CPU 调度、内存管理、文件系统等模块运行在内核模式。( )
答案:
X。错在“文件系统”。
-
磁盘上的文件是以页面为单位读写的。( )
答案:
×。错在“页面”。
-
目录是文件的集合,是一种逻辑概念,可以用文件实现。( )
答案:
√
-
银行家算法破坏了死锁必要条件中的“请求和保持”条件( )
答案:
X(预防 vs. 避免)
-
逻辑地址空间的容量取决于逻辑地址位数( )。
答案:
√
-
磁盘划分扇区和磁道称为格式化。( )
答案:
X。错在“格式化”。
-
索引结构的文件物理结构适合随机访问且易于文件扩展( )。
答案:
√
-
文件指针(fp)存在于系统的打开文件列表中( )
答案:
X。错在“系统的”。
三、简答题(20分,每题5分)
-
(5分)请简述 DMA 的过程,说明为什么 DMA 对于高速 I/O 访问效率较高。
答案:
(过程参见英文教材第九版 P596 图 13.6,如下图,图不需要画出来)
程序控制 I/O(PIO)时,CPU 需要介入每一次数据交换;DMA 方式时,CPU 只在数据交换开始/结束时介入,其它时候,由 DMA 控制器协调 I/O 设备和内存利用总线进行数据交换。由于此时 CPU 和 I/O 设备几乎并行,因此与 PIO 方式相比,节省了大量中断、CPU 介入时间。
-
(5分)简要比较短程调度和长程调度。
答案:
P113.
-
(5分)简要比较静态链接和动态链接。
答案:
P357
Static linking -- system libraries and program code combined by the loader into the binary program image
Dynamic linking --linking postponed until execution time
Dynamic linking is particularly useful for libraries
-
(5分)简要说明目录结构、FCB 及相互的关系。
答案:
P546
四、应用题(30分,每题10分)
-
(10分)某页式内存管理系统中,页面大小为 ,一次内存的访问时间是 ,一次快表(TLB)的访问时间是 ,处理一次缺页的平均时间为 (已含更新 TLB 和页表的时间),进程占用物理内存框数固定为 2,采用最近最少使用置换算法(LRU)和局部淘汰策略。某时刻某进程的页表内容如下表所示,此时 TLB 内容无效。
页号 框号 有效位(0无效) 0 0x163 1 1 0x138 0 2 0x551 1 设有逻辑地址访问序列 0x2345、0x1357、0x26AE,请问:
依次访问上述三个逻辑地址,其物理地址各是多少?各需多少时间?(给出计算过程。)
补充说明:地址转换时先访问 TLB,若 TLB 未命中,再访问页表(忽略访问页表之后的 TLB 更新时间)。
答案:
因为页大小为 ,所以逻辑地址中的低 12 位表示页内地址,剩余高位表示页号。则用十六进制表示,低三位数字为页内地址,最高位数字为页号。
(1)0x2345:页号为 2,页内地址为 0x345。
先访问快表(需时 ),
未命中,再访问内存中的页表(),
页表项中的有效位指示该页在内存,根据该页对应的框号形成**物理地址(0x551345)**再次访问内存(),
【共计】。(3分)
(2)0x1357:页号为 1,页内地址为 0x357。
先访问快表 ,
未命中,再访问内存中的页表 ,
页表项中的有效位指示页 1 不在内存,访问时发生缺页。目前页 0、页 2 在内存,根据 LRU 置换算法和局部淘汰策略,将页 0 换出页 1 换入,因此页 1 对应的框号为 0x163,则逻辑地址 0x1357 的物理地址为 0x163357。处理缺页 ,
再次访问快表
命中,根据该页对应的框号形成物理地址再次访问内存 ,
【共计】。(4分)
(3)0x26AE:页号为 2,页内地址为 6AEH。
由于访问 0x2345 时已将页 2 的表项写入 TLB,因此访问快表 ,
命中,根据该页对应的框号形成**物理地址(0x5516AE)**访问内存 ,
【共计】共计 。(3分)
-
(10分)某学校计算机教室有 50 台计算机,全天开放供学生自主上机实验,坐满后须在教室外排队等候。第一个进教室的学生需要开灯,最后一个出教室的需要关灯。请用信号量的方法,使用
wait和signal等操作来描述学生(Student)进程的并发过程。须包含对信号量的定义及其初值的设置。答案:
int stu_count=0; //学生人数
Semaphore mutex=1; //互斥量,对临界段进行操作,处理stu_count及开关灯
Semaphore sem_seats=50; //同步信号量,剩余座位,初值为50,负数表示等候人数
Student()
{
do {
wait(mutex);
wait(sem_seats);
stu_count++;
if (stu_count == 1)
{
/* 开灯 */
}
signal(mutex);
/* 进教室自习 */
wait(mutex);
stu_count--;
if (stu_count == 0)
{
/* 关灯 */
}
signal(sem_seats);
signal(mutex);
} while (true);
}
-
(10分)假定磁盘的磁臂现在处于第 10 柱面,由外向内运动(柱面号由小到大)。现有一组磁盘请求以 60、8、15、4、20、40 柱面的次序到达磁盘驱动器,磁臂移动一个柱面需要 ,请完成下面的问题:
(1)访问磁盘所需的时间由哪几部分构成?(3分)
(2)采用 SSTF 算法和 SCAN 算法进行磁盘调度,请分别给出柱面访问序列,计算平均寻道时间。(4分)
(3)如果把磁盘换成固态盘,用什么算法比较合适,说明理由。(3分))
答案:
磁盘访问时间由:寻道时间、旋转延迟时间和数据传输时间三部分构成。(3分)
SSTF算法:(2分)
柱面访问序列为:8、4、15、20、40、60
平均寻道时间为:
SCAN算法:(2分)
柱面访问序列为:15、20、40、60、8、4
平均寻道时间为:
(3)用 FCFS 即可。固态盘没有寻道时间、旋转延迟时间,支持随机访问,按先来先服务即可。(3分)