操作系统 大题模板总结

参考答案在这里

1 环境 & 机制

为什么要将指令集合划分为不同的特权级别?(为什么要有 CPU 状态)

枚举只能在内核态运行的指令

简述中断异常区别

简述内核处理被触发和内核处理流程

简述 IA32 系统调用流程

简述设计增加系统调用过程

系统调用 VS 函数调用/API?

设计 OS 要对“时间与空间”“公平与性能”进行权衡,请各具一个例子说明

2 进程 & 线程

PCB 的作用?在创建,撤销,阻塞,唤醒,切换,调度进程的过程中起什么作用?

PCB 怎么描述进程地址空间?

简述进程创建步骤;为何系统会将56两步一起完成?

简述进程切换的过程与开销

为什么要设置创建 & 挂起状态?

OS 对用户级线程和内核级线程支持有什么不同?各列举一个支持用户级线程和内核级线程的实例操作系统的名字

3 CPU 调度

会导致饥饿的调度方式有哪些?会导致优先级反转的调度方式有哪些?

简述多级反馈队列调度的设计思想。请说明这一设计如何处理 IO 密集型和 CPU 密集型进程?有无饥饿?如何解决?

4 同步 & 互斥

针对单处理器和多处理器,说明自旋锁的优势与劣势

比较自旋锁 VS 读写锁

5 存储模型

简述虚拟地址转换过程

虚存页表项包含哪些内容?为何这样设计?

简述反转页表的设计思路及虚实地址转换过程

详细写出写时复制的实现(包括设计思路,用到的数据结构)

写时拷贝&内存映射文件的相似之处

6 文件系统

简述 Unix FCB 内容及作用

进程通过 fopen 系统调用读取文件的过程 与 PCB FCB 的关系?

简述 Windows 文件缓存

7 IO 系统

以打印机输出为例,说明 IO 软件设计思想

简述内存映射编址 与 IO 独立编址的区别

这段代码会有什么缺点?如何解决?

8 死锁

以哲学家就餐问题为例,描述如何预防死锁

发表评论