# 操作系统面试题

# 解释一下什么是操作系统

操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件。它为计算机硬件和软件提供了一种中间层。

# 解释一下操作系统的主要目的是什么

操作系统是一种软件,它的主要目的有三种

  • 管理计算机资源,这些资源包括 CPU、内存、磁盘驱动器、打印机等。
  • 提供一种图形界面,就像我们前面描述的那样,它提供了用户和计算机之间的桥梁。
  • 为其他软件提供服务,操作系统与软件进行交互,以便为其分配运行所需的任何必要资源。

# 操作系统的种类有哪些

1、批处理操作系统(Batch Processing Operation System); 2、分时操作系统(Time Sharing Operating System);
3、实时操作系统(Real Time Operating System);
4、个人操作系统(Personal Operating System);
5、网络操作系统(NOS, Network Operating System);
6、分布式操作系统(Distributed Operating System)。

# 什么是内核

在计算机中,内核是一个计算机程序,它是操作系统的核心,可以控制操作系统中所有的内容。内核通常是在 boot loader 装载程序之前加载的第一个程序。

boot loader 又被称为引导加载程序,它是一个程序,能够将计算机的操作系统放入内存中。在电源通电或者计算机重启时,BIOS 会执行一些初始测试,然后将控制权转移到引导加载程序所在的主引导记录(MBR) 。

# 什么是虚拟内存

基于局部性原理,在程序装入时,将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序进行执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。

另一方面,操作系统将内存中暂时用不到的内容换出到外存上,从而腾出空间存放调入内存的信息。

这样一来,系统好像为用户提供了一个比实际内存大得多的存储器,即为虚拟内存。

# 什么是进程和进程表

进程就是正在执行程序的实例,比如说 Web 程序就是一个进程,shell 也是一个进程,文章编辑器 typora 也是一个进程。

操作系统负责管理所有正在运行的进程,操作系统会为每个进程分配特定的时间来占用 CPU,操作系统还会为每个进程分配特定的资源。

操作系统为了跟踪每个进程的活动状态,维护了一个进程表。在进程表的内部,列出了每个进程的状态以及每个进程使用的资源等。

# 什么是线程,线程和进程的区别

线程的最直接理解就是“轻量级进程”,是一个基本的 CPU 执行单元,也是程序执行流的最小单元

在引入线程的操作系统中,进程是拥有资源的基本单位,线程是独立调度的基本单元。在不同进程中进行线程切换,会引起进程切换。

# 什么是 DMA

Direct Memory Access,直接存储器访问,允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

# 什么是僵尸进程

僵尸进程是已完成且处于终止状态,但在进程表中却仍然存在的进程。僵尸进程通常发生在父子关系的进程中,由于父进程仍需要读取其子进程的退出状态所造成的。

# 进程的通信方式

  • 共享存储
  • 消息传递:直接通信和间接通信
  • 管道通信