Operating System Interview Questions

操作系统 (OS) 面试问题

2025年3月17日 | 阅读18分钟

下面列出了最常问的操作系统面试问题和答案。

1) 什么是操作系统?

操作系统是一种软件程序,它促进计算机硬件与计算机软件进行通信和操作。它是计算机系统最重要的组成部分,没有它,计算机就只是一个盒子。


2) 操作系统的主要目的是什么?

操作系统有两个主要目的

  • 它旨在通过管理其计算活动来确保计算机系统良好运行。
  • 它为程序的开发和执行提供了一个环境。

3) 不同的操作系统有哪些?

  • 批处理操作系统
  • 分布式操作系统
  • 分时操作系统
  • 多程序操作系统
  • 实时操作系统

4) 什么是套接字?

套接字用于在两个应用程序之间建立连接。连接的端点称为套接字。


5) 什么是实时系统?

实时系统用于对处理器操作有严格时间要求的情况。它包含定义明确且固定的时间限制。


6) 什么是内核?

内核是计算机操作系统最核心、最重要的部分,它为操作系统的所有部分提供基本服务。


7) 什么是宏内核?

宏内核是一种将所有操作系统代码包含在单个可执行映像中的内核。


8) 进程是什么意思?

正在执行的程序称为进程。进程有两种类型

  • 操作系统进程
  • 用户进程

9) 进程的不同状态有哪些?

进程的不同状态列表

  • 新进程
  • 运行中进程
  • 等待中进程
  • 就绪进程
  • 已终止进程

10) 微内核和宏内核有什么区别?

微内核:微内核是运行对操作系统性能影响最小的服务。在微内核操作系统中,所有其他操作都由处理器执行。

宏内核:宏内核是微内核和宏内核的组合。


11) 可重入性的概念是什么?

它是一种非常有用的内存节省技术,用于多程序分时系统。它提供多用户在同一时期共享程序单个副本的功能。

它有两个关键方面

  • 程序代码不能修改自身。
  • 每个用户进程的本地数据必须单独存储。

12) 进程和程序有什么区别?

正在运行或执行的程序称为进程。


13) 操作系统中分页的作用是什么?

分页用于解决操作系统中的外部碎片问题。此技术可确保您所需的数据尽可能快地可用。


14) 按需分页的概念是什么?

按需分页规定,如果内存区域当前未被使用,则将其交换到磁盘以为应用程序的需求腾出空间。


15) 多处理器系统的优点是什么?

随着处理器数量的增加,吞吐量将显着增加。它也具有成本效益,因为它们可以共享资源。因此,整体可靠性提高。


16) 什么是虚拟内存?

虚拟内存是一种非常有用的内存管理技术,它允许进程在内存之外执行。当正在执行的程序无法适应物理内存时,此技术尤其有用。


17) 什么是抖动?

抖动是虚拟内存方案中的一种现象,此时处理器大部分时间用于页面交换,而不是执行指令。


18) 导致死锁的四个必要和充分条件是什么?

这是 4 个条件

1) 互斥条件:它指定所涉及的资源不可共享。

2) 占有并等待条件:它指定必须有一个进程持有已分配给它的资源,同时等待当前由其他进程持有的额外资源。

3) 不可抢占条件:资源在使用时不能被进程夺走。

4) 循环等待条件:它是第二个条件的解释。它指定系统中的进程形成一个循环列表或链,其中链中的每个进程都在等待链中下一个进程持有的资源。


19) 什么是线程?

线程是 CPU 利用率的基本单位。它由线程 ID、程序计数器、寄存器集和堆栈组成。


20) 什么是 FCFS?

FCFS 代表先到先服务。它是一种调度算法。在此方案中,如果一个进程首先请求 CPU,它就会首先分配给 CPU。它的实现由 FIFO 队列管理。


21) 什么是 SMP?

SMP 代表对称多处理。它是最常见的多处理器系统类型。在 SMP 中,每个处理器运行操作系统的相同副本,并且这些副本在需要时相互通信。


22) 什么是 RAID?不同的 RAID 级别有哪些?

RAID 代表独立磁盘冗余阵列。它用于冗余存储相同数据以提高整体性能。

以下是不同的 RAID 级别

RAID 0 - 无容错的条带化磁盘阵列

RAID 1 - 镜像和双工

RAID 2 - 内存式纠错码

RAID 3 - 位交叉奇偶校验

RAID 4 - 块交叉奇偶校验

RAID 5 - 块交叉分布式奇偶校验

RAID 6 - P+Q 冗余


23) 什么是死锁?解释一下。

死锁是一种特定情况或条件,其中两个进程相互等待完成,以便它们可以启动。但这种情况会导致两者都挂起。


24) 发生死锁的必要条件是什么?

发生死锁有 4 个必要条件

  • 互斥:至少一个资源必须以不可共享模式持有。如果任何其他进程请求此资源,则该进程必须等待资源释放。
  • 占有并等待:一个进程必须同时持有一个或多个资源,并等待至少一个当前由其他进程持有的资源。
  • 不可抢占:一旦一个进程持有一个资源(即一旦其请求被批准),那么在进程自愿释放它之前,不能从该进程手中夺走该资源。
  • 循环等待:必须存在一组进程 { P0, P1, P2, . . ., PN },使得每个 P[ i ] 都在等待 P[ ( i + 1 ) % ( N + 1 ) ]。

注意:此条件隐含占有并等待条件,但如果将这四个条件单独考虑,则更容易处理。


25) 什么是银行家算法?

银行家算法用于避免死锁。它是死锁避免方法之一。它以银行系统命名为银行家算法,银行系统从不以不能满足所有客户要求的方式分配可用现金。


26) 逻辑地址空间和物理地址空间有什么区别?

逻辑地址空间指定由 CPU 生成的地址。另一方面,物理地址空间指定由内存单元看到的地址。


27) 什么是碎片?

碎片是一种内存浪费现象。由于空间利用效率低下,它会降低容量和性能。


28) 操作系统中会发生多少种碎片?

有两种类型的碎片

  • 内部碎片:当处理具有固定大小分配单元的系统时发生。
  • 外部碎片:当处理具有可变大小分配单元的系统时发生。

29) 什么是假脱机?

假脱机是一种将数据暂时收集起来以供设备、程序或系统使用和执行的过程。它与打印相关。当不同的应用程序同时向打印机发送输出时,假脱机会将所有这些作业保留在一个磁盘文件中,并根据打印机对其进行排队。


30) 内部命令和外部命令有什么区别?

内部命令是操作系统的内置部分,而外部命令是存储在单独文件夹或目录中的独立文件程序。


31) 什么是信号量?

信号量是一种受保护的变量或抽象数据类型,用于锁定正在使用的资源。信号量的值表示公共资源的状态。

信号量有两种类型

  • 二进制信号量
  • 计数信号量

32) 什么是二进制信号量?

二进制信号量只取 0 和 1 作为值,用于实现互斥和同步并发进程。


33) 什么是 Belady 异常?

Belady 异常也称为 FIFO 异常。通常,在为进程虚拟内存分配更多帧时,进程执行速度会更快,因为发生的页面错误更少。有时,情况会相反,即即使为进程分配了更多帧,执行时间也会增加。这就是 Belady 异常。对于某些页面引用模式,情况确实如此。


34) 操作系统中的饥饿是什么?

饥饿是资源管理问题。在此问题中,等待中的进程长时间无法获得所需的资源,因为资源被分配给其他进程。


35) 操作系统中的老化是什么?

老化是一种用于避免资源调度系统中饥饿的技术。


36) 多线程编程的优点是什么?

多线程编程的优点列表

  • 增强对用户的响应能力。
  • 进程内的资源共享。
  • 经济
  • 充分利用多处理架构。

37) 逻辑地址空间和物理地址空间有什么区别?

逻辑地址指定由 CPU 生成的地址,而物理地址指定由内存单元看到的地址。

碎片化之后


38) 什么是覆盖?

覆盖使进程大于分配给它的内存量。它确保在任何给定时间只有重要的指令和数据保留在内存中。


39) 抖动何时发生?

抖动指定高分页活动的实例。这发生在它花费更多时间进行分页而不是执行时。


40) 什么是批处理操作系统?

批处理操作系统是一种操作系统,它为某些作业或进程的执行创建批处理。

批处理包含那些在作业或进程遵循的程序中非常相似的作业。批处理操作系统有一个操作员执行这些任务。

操作员将具有相同标准的相似作业或进程分组到批处理中。操作员负责将具有相似要求的作业或进程分组。

批处理操作系统遵循先到先服务原则。


41) 批处理操作系统是否与计算机交互以处理所需的作业或进程的需求?

不,这不是那种试图与计算机交互的操作系统。但是,这项工作由批处理操作系统中的操作员承担。


42) 批处理操作系统的优点是什么?

批处理操作系统的优点

  1. 操作系统处于静止状态的时间非常短,或者也称为操作系统的空闲时间非常短。
  2. 借助批处理操作系统,可以非常轻松地管理非常大的任务
  3. 许多用户可以使用此批处理操作系统。
  4. 估算或确定完成任何任务所需的时间非常具有挑战性。批处理系统处理器知道作业在排队时需要多长时间才能完成。

43) 批处理操作系统的缺点是什么?

批处理操作系统的缺点

  1. 如果批处理操作系统中的任何工作失败,其他作业将不得不无限期地等待。
  2. 批处理操作系统调试起来非常具有挑战性,
  3. 批处理操作系统有时可能很昂贵
  4. 使用批处理操作系统的计算机操作员必须熟悉批处理系统。

44) 批处理操作系统在现实生活中应用于何处

它们用于工资系统和生成银行对账单。


45) 操作系统有哪些功能?

操作系统最重要的功能是

  1. 文件管理
  2. 作业管理
  3. 进程管理
  4. 设备管理
  5. 内存管理

46) 操作系统提供哪些服务?

操作系统提供的服务有

  1. 计算机安全
  2. 保护您的计算机免受外部威胁
  3. 文件管理
  4. 程序执行
  5. 帮助控制输入输出设备
  6. 在程序创建中很有用
  7. 有助于错误检测
  8. 操作系统有助于设备之间的通信
  9. 分析所有设备的性能

47) 操作系统中的系统调用是什么?

程序可以通过进行系统调用与操作系统通信。当计算机应用程序向操作系统的内核请求任何东西时,它会执行系统调用。系统调用使用应用程序编程接口 (API) 向用户程序提供操作系统服务


48) 操作系统中的系统调用类型有哪些?

操作系统中的系统调用有

  1. 沟通
  2. 信息维护
  3. 文件管理
  4. 设备管理
  5. 进程控制

49) 进程控制和文件管理系统调用中包含哪些功能?

进程控制系统调用中包含的功能有

  1. 创建
  2. 分配
  3. 中止
  4. End
  5. 终止
  6. 释放内存

50) 文件管理系统调用中包含哪些功能?

文件管理系统调用中包含的功能有

  1. 创建
  2. 开放
  3. 读取
  4. 关闭
  5. 删除

51) 操作系统中的进程是什么?

进程本质上是在操作系统上运行的软件。进程是必须按顺序执行的过程。

必须在系统中实现的基本工作单元称为进程。

一个活动的程序,即进程,是所有计算的基础。虽然相对相似,但该方法与计算机代码不同。进程是一个“活动”实体,与程序(有时被认为是某种“被动”实体)形成对比。


52) 操作系统中的进程类型有哪些?

操作系统进程的类型有

  1. 操作系统进程
  2. 用户进程

53) 什么是进程控制块 (PCB)?

称为进程控制块的数据结构存储有关与其连接的进程的详细信息。“进程控制块”一词也可以指“任务控制块”、“进程表项”等。

由于进程的数据结构是根据进程控制块 (PCB) 完成的,因此它对于进程管理至关重要。此外,它还描述了操作系统的当前状态。


54) 进程控制块中的数据项有哪些?

进程控制块中的数据项有

  1. 进程状态
  2. 进程号
  3. 程序计数器
  4. 寄存器
  5. 内存限制
  6. 打开文件列表

55) 进程控制块中使用的文件有哪些?

进程控制块中使用的文件有

  1. 中央处理器 (CPU) 调度信息
  2. 内存管理信息
  3. 会计信息
  4. 输入输出状态信息

56) 线程和进程有什么区别?

Thread过程
线程在同一进程内执行进程在不同的内存空间中执行
线程彼此不独立进程彼此独立

57) 操作系统中线程的优点是什么?

操作系统中线程的优点有

  1. 线程的执行速度比开关快得多
  2. 线程确保线程之间的通信非常容易
  3. 如果进程分成多个线程,系统吞吐量会增加
  4. 当多线程进程中的线程完成执行时,其输出可以立即返回。

58) 操作系统中线程的缺点是什么?

操作系统中线程的缺点有

  1. 随着线程数量的增加,代码维护和调试变得更具挑战性。
  2. 创建线程的过程会消耗内存和 CPU 等系统资源。
  3. 由于未处理的异常可能导致应用程序崩溃,我们必须在工作方法中管理它们。

59) 操作系统中线程的类型有哪些?

操作系统中线程的类型有

  1. 用户级线程
  2. 内核级线程

60) 什么是用户内核线程?

内核不知道用户级线程,因为它们是在用户级实现的。

在此系统下,它们被视为单线程进程。用户内核线程比内核级线程更小、更快

用户内核线程由小进程控制块 (PCB)、堆栈、程序计数器 (PC)、堆栈表示。

在这里,用户内核线程独立于内核参与同步。


61) 用户内核线程的优缺点是什么?

以下是用户内核线程的一些优点

  1. 创建用户级线程比创建内核级线程更快、更简单。它们也更容易处理。
  2. 任何操作系统都可以用于执行用户级线程。
  3. 用户级线程中的线程切换不需要内核模式权限。

以下是用户内核线程的一些缺点

  1. 用户级线程中的多线程应用程序无法有效利用多处理。
  2. 如果一个用户级线程参与阻塞操作,则整个进程都会暂停。

62) 什么是内核级线程?

内核级线程是由操作系统直接处理的线程。内核控制进程的线程以及每个线程的上下文信息。因此,内核级线程的执行速度比用户级线程慢。


63) 内核级线程的优缺点是什么?

以下是使用内核级线程的一些好处

  1. 内核级线程允许在多个 CPU 上调度同一进程的许多实例。
  2. 内核功能也支持多线程。
  3. 如果内核级线程被阻塞,内核可能会调度同一进程的另一个线程。

以下列表包含内核级线程的几个缺点

  1. 要将控制从一个进程中的一个线程传递到另一个线程,需要切换到内核模式。
  2. 与用户级线程相比,内核级线程的创建和维护需要更长时间。

64) 操作系统中的进程调度是什么?

进程管理器的任务是根据特定策略从 CPU 中移除活动进程并选择不同的进程,这称为进程调度。

进程调度是多程序操作系统不可或缺的组成部分。此类操作系统提供将许多进程同时加载到可执行内存中,每个进程都利用时间多路复用共享 CPU。


65) 操作系统中进程调度技术的类型有哪些?

操作系统中进程调度技术的类型有

  1. 抢占式进程调度
  2. 非抢占式进程调度

66) 操作系统中的抢占式进程调度是什么?

在这种抢占式进程调度情况下,操作系统在预定时间内为进程分配资源。在资源分配期间,进程从运行状态转换为就绪状态,或从等待状态转换为就绪状态。这种切换发生是因为 CPU 可以将其他进程的优先级更高,并用当前活动进程替换优先级更高的进程。


67) 操作系统中的非抢占式进程调度是什么?

在这种非抢占式进程调度情况下,在进程完成运行之前,不能从进程中撤销资源。当正在运行的进程完成并转换为等待状态时,资源会切换。


68) 什么是上下文切换?

上下文切换是操作系统用来将进程从一种状态移动到另一种状态的技术或方法,以便它可以使用系统 CPU 执行其预期功能。

当系统执行切换时,它以寄存器的形式保持先前操作进程的状态,并将 CPU 分配给新进程以执行其操作。

旧进程必须在就绪队列中等待,而新进程正在系统中运行。当另一个进程中断它时,旧进程会恢复执行。

它概述了操作系统通过允许多个进程共享单个 CPU 而不使用额外处理器来同时支持多个工作负载的功能。


69) 操作系统中调度程序的作用是什么?

调度程序完成进程调度后,一个独特的应用程序(称为调度程序)就会发挥作用。一旦调度程序完成其选择任务,调度程序就是将进程移动到所需状态或队列的人。调度程序模块是在短期调度程序选择进程后授予进程对 CPU 控制权的模块。


70) 调度程序和调度程序有什么区别?

调度器调度器
调度程序是将进程移动到所需状态的人调度程序是选择此时可执行的进程的人。
调度程序花费的时间称为调度延迟调度程序花费的时间基本不计算在内
调度程序依赖于调度程序调度程序不依赖于调度程序
调度程序允许发生上下文切换调度程序只允许进程进入就绪队列

71) 操作系统中的进程同步是什么?

进程同步,通常称为同步,是操作系统管理共享相同内存空间的进程的方法。通过硬件或变量限制可以同时修改共享内存的进程数量,有助于确保数据的一致性。


72) 进程同步的经典问题有哪些?

进程同步的经典问题有

  1. 有界缓冲区问题或生产者消费者问题
  2. 哲学家就餐问题
  3. 读者和写者问题
  4. 睡着的理发师问题

73) 什么是彼得森解决方案?

彼得森对临界区问题的解决方案是一个经典的解决方案。临界区问题确保没有两个进程或作业同时更改或修改资源的值。


74) 信号量中的操作有哪些?

信号量中的操作有

  1. 等待或 P 函数 ()
  2. 信号或 V 函数 ()

75) 什么是临界区问题?

程序中试图访问共享资源的区域称为临界区。

操作系统很难授权和阻止进程进入关键部分,因为一次不能有一个以上的进程在关键区域中运行。


76) 处理死锁的方法有哪些?

处理死锁的方法有

  1. 死锁预防
  2. 死锁检测与恢复
  3. 死锁避免
  4. 死锁忽略

77) 如何避免死锁?

我们可以通过使用银行家算法来避免死锁。


78) 如何检测和恢复操作系统中发生的死锁?

首先,我们需要做的是允许进程进入死锁状态。所以,这是恢复的时候。

我们可以通过一次终止或中止所有死锁进程来从死锁状态恢复进程。

进程抢占也是用于死锁进程恢复的另一种技术。


79) 操作系统中的分页是什么?

分页是一种存储机制。分页用于将进程从辅助内存检索到主内存。

主内存被分成称为页面的小块。现在,每个页面都包含检索到主内存中的进程,并且它存储在内存的一个帧中。

拥有大小相等的页面和帧非常重要,这对于内存的映射和完整利用非常有用。


80) 分页中的地址转换是什么?

逻辑地址和物理内存地址是分页过程中使用的两种类型的内存地址,两者都是不同的。逻辑地址是 CPU 为辅助内存中的每个页面创建的地址,而物理地址是每个页面将分配到的帧的实际位置。我们现在需要一种称为地址转换的技术,由页表执行,以便将此逻辑地址转换为物理地址。


81) 什么是转换后援缓冲器?

每当中央处理器 (CPU) 创建逻辑地址时,页码都会存储在转换后援缓冲器中。同时,帧号也会存储。


82) 操作系统中的页面替换算法有哪些?

操作系统中的页面替换算法有

  1. 先进先出
  2. 最佳
  3. 最近最少使用
  4. 最近最常使用

83) 哪种页面替换算法会出现 Belady 异常?

在先进先出页面替换算法中会出现 Belady 异常。


84) 操作系统中的进程调度算法有哪些?

操作系统中的进程调度算法有

  1. 先到先服务 CPU 调度算法
  2. 优先级调度 CPU 调度算法
  3. 最短作业优先 CPU 调度算法
  4. 轮转 CPU 调度算法
  5. 最长作业优先 CPU 调度算法
  6. 最短剩余时间优先 CPU 调度算法
  7. 多队列 CPU 调度算法

85) 什么是轮转 CPU 调度算法?

轮转是一种 CPU 调度机制,它循环为每个任务分配特定的时间片。它是先到先服务 CPU 调度方法,优先于抢占式进程调度方法。轮转 CPU 算法经常强调时间共享方法。


86) 操作系统中的磁盘调度是什么?

操作系统使用磁盘调度来计划磁盘的输入或输出请求何时到达。输入或输出调度是磁盘调度的另一个名称。


87) 操作系统中磁盘调度的重要性是什么?

  1. 磁盘控制器一次只能满足一个输入或输出请求,即使多个输入或输出请求可能来自其他进程。因此,必须调度其他输入或输出请求并使其在等待队列中等待。
  2. 如果两个或多个请求相距很远,磁盘臂的移动可能会增加。
  3. 由于硬盘是计算机系统中较慢的组件之一,因此必须快速访问它们。

88) 操作系统中使用的磁盘调度算法有哪些?

操作系统中使用的磁盘调度算法有

  1. 先来先服务
  2. 最短寻道时间优先
  3. LOOK
  4. SCAN
  5. C SCAN
  6. C LOOK

89) 操作系统上下文中的监视器是什么?

监视器是编程语言的一种特性,它有助于控制对共享数据的访问。监视器是共享操作、数据结构和并行过程调用之间同步的集合。因此,监视器有时被称为同步工具。支持使用监视器的一些语言包括 Java、C#、Visual Basic、Ada 和并发 Euclid。尽管其他进程无法访问监视器的内部变量,但它们可以调用其方法