山东大学 2017——2018 操作系统考题
一:简答题(35 分)
1.一般情况下,操作系统尽量提高资源的利用率和程序的运行效率,
但有时也违反这一原则,为什么?请举例说明。
2.操作系统提供了许多系统调用供用户和系统使用,操作系统提供系
统调用的目的或作用是什么?
3.操作系统中的 I/O 子系统为每个设备都要提供相应的设备驱动程序,
设备驱动程序的作用是什么?
4.给出一种便于共享的文件系统的目录结构,并简要说明其原理。
5.分段存储管理系统中,如何保证一个进程不能访问其它进程的地址
空间?
6.说明基于请求页式虚拟存储管理的基本思想。
7.在虚拟存储管理系统中,给出两种颠簸的预防措施。
二:回答下列问题(40 分)
1.一个进程从创建到撤销,要经历几个状态。
(1)画出进程状态之间的状态转换图,并注明这些状态之间的转
换条件。
(2)哪些状态之间的转换可引起进程调度?这些状态转换所引起
的进程调度哪些属于抢先式调度?哪些属于非抢先式调度?
2.某计算机系统有多个 CPU,用户使用 pthread 提供的多线程机制创
建了多个用户级线程。问这些用户级线程是否可以分配到多个处理器
上并行执行?说明你的理由。(提示:根据用户进程与核心进程的映
射模型讨论)
3.以哲学家就餐为例:
(1)说明死锁的四个必要条件;
(2)说明系统如何预防死锁。
4.有一 C 程序 test.c,代码如下:
Int main(){
While(1);
}
(1)修改 test.c,当键盘按下 ctrl-c 后,程序不退出并且屏幕输出
按下 ctrl-c 的次数,当第 10 次按下 ctrl-c 键后,程序退出。(提示:可
以省略#include 语句)
(2)若使用工程文件 make(或 gmake)命令生成 test.c 的可执行
文件 mytest,给出文件 MakeFile 的内容。
三:设计算法题(25 分)
1.要求一操作系统的文件系统支持对 ext2、ntfs、fat 等多种文件系统
的访问,请给出一种设计方案满足上述要求,并说明你的设计原理。
2.某操作系统的文件系统要求如下:
(1)一个文件可以分散存放到磁盘逻辑块中;
(2)可对文件进行随机访问;
(3)文件的可靠性比较高。
根据上述要求,请设计一种文件在磁盘上的分配方法,说明你的设
计原理。
3.某单位现有若干磁盘,为提高系统对磁盘的读写性能和数据的可靠
性,该如何对这些磁盘进行有效的组织?请说明你的设计方案和工作
原理。
4.(10 分)UNIX 系统提供的管道文件可提供进程之间的通信,其工
作原理如下:
(1)系统为管道提供了一个写端和一个读端;
(2)对于写进程,当管道不满时,可以将数据从写端写入;当管
道已满时,写进程写入时会进入等待状态,气候当读进程读出数据后
将其唤醒;
(3)对于读进程,当管道尚有数据可读时,可以将管道中的数据
从读端读出;当管道为空时,读进程读出时进入等待,当写进程写入
数据后将其唤醒。
假设管道的容量为 4K 字节,管道创建后开始是空的。请利用信号
量机制及 wait、signal 实现读写进程之间的同步。
Written By 龙堇