操作系统面试常见问题总结

本文最后更新于:5 个月前

操作系统面试常见问题总结

写在前面

本文记录了一些操作系统面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考!


Q:操作系统的基本特征?

A:并发、共享、虚拟、异步

Q:进程与线程的关系以及区别?

A:

  • 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位
  • 线程是进程的实体,是操作系统能够进行运算调度的最小单位

    • 一个进程可以有多个线程,多个线程也可以并发执行
    • 引入进程的目的:更好地使多道程序并发执行,提高资源利用率和系统吞吐量
    • 引入线程的目的:减小程序在并发执行时的时空开销,提高操作系统的并发性能

Q:进程的状态?

A:运行态、就绪态、阻塞态、创建态、结束态

Q:进程的通信方式?

A:

  • 共享存储:多个进程可以访问同一块内存空间
  • 消息传递:通过发送消息和接收消息两个原语进行数据交换
  • 管道通信:半双工通信

Q:进程调度算法?

A:

  • 先来先服务(FCFS):按照请求的顺序进行调度,非抢占式,开销小,无饥饿问题,对短进程不利
  • 最短作业优先(SJF):按估计运行时间最短的顺序进行调度。非抢占式,可能导致饥饿问题,对长进程不利(平均最优)
  • 优先级调度算法:按优先级进行调度
  • 时间片轮转:将所有就绪进程按 FCFS 的原则排成一个队列,用完时间片的进程排到队列最后
  • 高响应比优先:按照高响应比(已等待时间 + 要求运行时间)/ 要求运行时间 优先
  • 多级反馈队列调度算法:设置多个就绪队列,优先级递减,时间片递增。只有等到优先级更高的队列为空时才会调度当前队列中的进程

Q:同步机制的 4 个准则?

A:

  1. 空闲让进:当无进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区
  2. 忙则等待:当已有进程进入自己的临界区,所有企图进入临界区的进程必须等待
  3. 有限等待:对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区
  4. 让权等待:当进程不能进入自己的临界区,应释放处理机

Q:什么是临界区?

A:每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区

Q:什么是死锁?

A:两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去

Q:死锁产生的必要条件?

A:有一个条件不成立,则不会产生死锁

  • 互斥条件:一个资源一次只能被一个进程使用
  • 不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺
  • 请求并保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放
  • 循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系

Q:死锁的处理基本策略和常用方法?

A:

  1. 死锁预防:破坏四个条件之一
  2. 死锁避免:安全状态(银行家算法)
  3. 死锁检测:死锁定理简化资源分配图
  4. 死锁解除:资源剥夺法、撤销进程法、进程回退法

Q:饥饿与死锁的区别?

A:饥饿与死锁都是由于进程竞争资源导致的

  • 饥饿一般是指,进程在执行的过程中一直有高于当前进程优先级的进程,导致操作系统无法分配资源给当前进程(饥饿并不代表系统已经死锁,进入饥饿的进程可以只有一个)
  • 死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象

Q:程序的链接方式?

A:静态链接、装入时动态链接、运行时动态链接

Q:程序的装入方式?

A:绝对装入、可重定位装入(静态重定位)、动态运行装入(动态重定位)

Q:动态分区分配算法

A:首次适应算法、最佳适应算法、最坏适应算法、邻近适应算法

Q:分段和分页的区别?

A:

  • 目的不同:
    • 分页是由于系统管理的需要,它是信息的物理单位
    • 分段的目的是为了能更好地满足用户的需要,它是信息的逻辑单位,
  • 大小不同:
    • 页的大小固定且由系统决定
    • 段的长度不固定
  • 地址空间不同:
    • 页向用户提供的是一维地址空间
    • 段向用户提供的是二维地址空间
  • 碎片:
    • 页式存储管理方式没有外部碎片,但会产生内部碎片
    • 段式存储管理方式没有内部碎片,但会产生外部碎片

Q:页面置换算法?

A:

  1. 最佳(OPT)置换算法
  2. 先进先出(FIFO)置换算法(Belady 异常)
  3. 最近最久未使用(LRU)算法
  4. 时钟 (CLOCK) 置换算法

Q:颠簸/抖动

A:刚刚换出的页面马上又要换入主存,刚刚换入的页面马上又要换出主存

原因:某个进程频繁访问的页面数高于可用物理页帧数

Q:地址翻译的过程

A:TLB → 页表(TLB 不命中)→ Cache → 主存(Cache 不命中)→ 外存

Q:磁盘调度算法

A:

  1. 先来先服务算法(FCFS)
  2. 最短寻道时间优先算法(SSTF)
  3. 扫描算法(SCAN)电梯调度
  4. 循环扫描算法(CSCAN)

Q:I/O 控制方式

A:

  1. 程序直接控制
  2. 中断驱动方式
  3. DMA 方式
  4. 通道控制方式

相关内容