本文主要适用于计算机类本科操作系统课程的期中考试。

  1. 操作系统分层设计/按模块设计
    分层设计定义层次结构和接口,每个层次建立在下层的基础上。构建和调试简单,难以对层次做准确的定义,层次间交互关系错综复杂,调用开销大。
    按模块设计用面向对象技术,将系统设计为一个核心内核和若干个可加载的内核模块。能动态实现特定功能,比分层系统更加灵活,比微内核更加高效(不需要消息传递)。
  2. 微核
    微内核最大限度地将功能从内核移到服务模块,实现了清晰的分离,具有良好的弹性,方便扩展,可靠安全,也面临巨大的切换/通信开销。
  3. 用户模式/内核模式,模式位的作用
    内核态下可以运行用户态下无法运行的特权指令,通常用户进程运行在用户态,处理系统调用、异常、中断时进入内核态。
    模式位标识了当然是运行在用户态还是内核态。
  4. 线程/进程/程序
    程序是被动实体,通常是可执行文件;进程是活动实体,是程序的一次执行过程,当可执行文件被载入内存,程序才能称为进程。线程是程序执行流的最小单元,进程通常包含多个线程。
    进程与线程的比较:调度;系统资源分配;并发;系统开销;地址空间;通信。
  5. 多道程序设计及其作用
    在内存中同时装载若干道程序并发执行,共享系统中的各种资源。
    作用:具有宏观上并行的特点,使OS能更好地实现管理,使硬件资源得到更充分的利用。
  6. 短期调度/中期调度/长期调度
    进程调度:从就绪队列中选取一个进程,将处理机分配给它,几十毫秒一次。
    内存调度:将暂时不能运行的进程调到外存等待(挂起),具备运行条件的进程在内存有空闲时重新调入内存。
    作业调度:从外存中处于后备状态的作业中选取一个或多个给它分配内存。
    关系:进程调度是必须的;作业调度为进程活动做准备;频率差异。
  7. 什么时候应该进行进程切换?什么时候不应该?
    应该:引起调度条件,或当前进程无法运行下去;中断或陷阱处理结束。
    不应该:处理中断过程中;处于内核程序临界区内;处于需要屏蔽中断的原子操作中。
  8. 上下文切换的时候发生了什么
    Hdw save u-regs(A) to k-stack(A)
    OS save k-regs(A) to PCB(A)
    OS switch to procB
    OS restore k-regs(B) from PCB(B)
    Hdw restore u-regs(B) from k-stack(B)
  9. 共享内存/消息传递
    共享内存:通过对一块可直接访问的共享空间的读写,OS提供存储空间和同步互斥工具。
    消息传递:通过OS提供的发送/接收原语,操作消息缓冲队列。
    消息传递适用于少量信息,便于实现。共享内存虽然快,但面临缓存一致性问题,不适用于多处理器系统。
  10. 多线程的优点
    响应度高,资源共享,开销小,充分利用多处理器。
  11. 多线程模型
    多对一:效率高;集体阻塞,不适用多处理器。
    一对一:并发能力强;开销大。
    多对多:并发度高,同时开销不大。
  12. 评价进程调度的标准
    CPU利用率,吞吐量,周转时间,等待时间,响应时间。
  13. 各种调度算法的优缺点?
    FCFS:简单,效率低,短作业护航。
    SJF:长作业饥饿,未考虑紧迫程度,估计时间不准。
    PRIO:低优先级可能饥饿。
    HRRN:别人家的孩子。
    RR:公平、公平、公平,响应时间短,周转时间长,片小开销大,片大退化。
    PSJF:周转时间短,响应时间长。
    MLQ:级别固定。
    MLFQ:兼顾周转时间和响应时间,具有自适应性。对终端型表现为SJF,对短批表现为周转时间优化,对长批保证不会饥饿。
    FCFS和SJF可靠性差,PRIO适合实时OS,HRRN,RR,MLFQ适合分时OS。
  14. 剥夺调度/非剥夺调度
    剥夺调度会一直让进程运行到终止或阻塞才切换,而剥夺调度在有更重要更紧迫的进程进入时就切换进程。
    剥夺调度能提高系统吞吐率和响应效率,非剥夺调度能够避免竞态条件出现。
  15. 为什么要区分CPU密集和IO密集程序
    作业调度器希望引入混合的CPU-BOUND和I/O-BOUND程序,使得硬件资源得以充分利用。
  16. 临界区问题是什么?与同步问题的不同?解决临界区问题的三个要求?
    设计协议实现进程对临界区(当一个进程在临界区内执行时,不允许其它进程进入邻接区)的访问。
    同步问题是两个进程间的相互等待。
    互斥访问,空闲让进,有限等待。
  17. 为什么自旋锁不适合单处理器系统而适合多处理器系统
    自旋锁(内核态,高优先级)打破条件只可能在执行一个不同的进程时完成,而在单处理器系统中这是不可能发生的。
  18. 忙等是什么?在什么时候是我们想要的什么时候又不是
    通过循环等手段反复检查一个条件是否为真。
    对偶尔发生的或者时间较短的适合使用忙等(没有上下文切换),否则应采用信号量等同步机制阻塞等待替换以节约CPU资源。

操作系统期中复习思考题

UPD: 判断第二题后来 T 和 F 都算对了

操作系统期中复习思考题

UPD:我第五个简答写的有些问题的……另外不用写这么多字,点到为止即可
操作系统期中复习思考题

操作系统期中复习思考题

相关文章: