22 年 408 新大纲操作系统新增考点
一、操作系统引导
操作系统引导指的是将操作系统内核装入内存并启动系统的过程,系统引导通常是由一段被称为启动
引导程序的特殊代码完成的,它位于系统 ROM 中,用来完成定位内核代码在外存的具体位置,按照要求
正确装入内核至内存并最终使内核运行起来的整个系统启动过程。在该过程中,启动引导程序要完成多个 初始化过程,当这些过程顺利完成后才能使用系统的各种服务。这些过程包括初始引导,内核初始化、全
系统初始化。
初始引导过程主要由计算机的 BIOS 完成。 BIOS 是固化在 ROM 中的基本输入输出系统,其内容存储在
主板 ROM 芯片中,主要功能是为内核运作环境进行预先检测,主要包括中断服务程序、系统设置程序、
上电自检和系统启动自举程序等。中断服务程序是系统软硬件间的一个可编程接口,用于完成硬件初始
化;系统设置程序用来设置 CMOS RAM 的各项参数,这些参数通常表示系统基本情况、 CPU 特性、磁盘驱
动器等部件的信息等,开机时一般按 Delete 键即可进入该程序界面;上电自检 POST 所做的工作是在计算
机通电后自动对系统中各关键和主要外设进行检查,一旦在自检中发现问题,将会通过鸣笛或提示信息警
告用户;系统启动自举程序是在 POST 完成工作后执行的,它首先按照系统 CMOS 设置中保存的启动顺序
搜索磁盘驱动器、 CD-ROM 、网络服务器等有效的驱动器,读入操作系统引导程序,接着将系统控制权交
给引导程序,并由引导程序装入内核代码,以便完成系统的顺序启动。
操作系统内核装入内存后,引导程序将 CPU 控制权交给内核,此时内核才可以开始运行。内核将首先
完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)
等。
上述两个步骤完成后,最后要做的就是启动用户接口,使系统处于等待命令输入状态即可,这个阶段
操作系统做的主要工作是为用户创建基本工作环境,接收、解释和执行用户程序与指令。不同系统、不同
设置,全系统初始化完成后的接口表观是不同的。如果选择了图形界面,此时会显示用户账号和密码输入
界面,如 windows 的用户经典登录界面;若使用的是命令接口、则会显示命令行形式的用户登录界面,无
论是图形接口还是命令接口,要全系统初始化完成,即可使用用户名和相应密码进入操作系统环境。
二、虚拟机
虚拟机是通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。
在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机需要将实体机的部分硬盘
和内存容量作为虚拟机的硬盘和内存容量,每一个虚拟机都有独立的 CMOS 、硬盘和操作系统。可以像使
用实体机一样,对虚拟机进行操作,虚拟机技术是虚拟化技术的一种。
Linux 虚拟机:一种安装在 Windows 上的虚拟 Linus 操作环境,就被称为 Linux 虚拟机。它实际上是一
个或一组文件,是虚拟的 Linux 环境,但是它们的实际效果是一样的。
Java 虚拟机 (JVM) :是 Java Virtual Machine 的缩写,它是一个虚构出来的计算机,是通过在实际的计算
机上仿真模拟各种计算机功能来实现的。 Java 虚拟机有自己完善的硬件架构, 如处理器、堆线、寄存器
等,还具有相应的指令系统。 Java 语言的一个非常重要的特点就是与平台的无关性。
而使用 Java 虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编
译成不同的目标代码。而引入 Java 虚拟机后, Java 语言在不同平台上运行时不需要重新编译。 Java 语言使
用 Java 虚拟机屏蔽了与具体平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目
标代码(字节码),就可以在多种平台上不加修改地运行。 Java 虚拟机在执行字节码时,把字节码解释成
具体平台上的机器指令执行。 另外,现在企业内部或互联网上公有云服务商提供的云主机、 VPC 等大多都是虚拟机,易于动态地创
建、回收;集群中所有虚拟机的运行情况都能及时掌握和按需调配。虚拟化可以说是云计算的基础技术支
撑。
三、锁
(
1 )锁的概念
在操作系统中,可以保证互斥的同步机制称为锁。通过锁机制,能够保证临界区中操作数据的一致
性,锁可以理解为一个共享变量,拥有两种状态:空闲状态和上锁状态。
(
2 )锁的基本操作
锁有两个基本操作:闭锁和开锁。闭锁就是将锁锁上,其他进程 / 线程不能进入,开锁就是相关工作完
成后,将锁打开,其他进程 / 线程可以进入了。
闭锁操作有两个步骤:
①等待锁达到打开状态 ;
②获得锁并锁上。
注意,闭锁的两个操作应该是原子操作,不能分开,否则就会留下穿插的空档,造成锁的功效丧失。
可行的方法是采用原子级汇编指令 test and set 和 swap 等。
开锁操作只需一步 : 打开锁,即把锁状态修改为空闲状态。
(
3 )锁应该具备的特性
①锁的初始状态需为打开状态;
②进临界区前必须获得锁;
③出临界区时必须打开锁;
④如果其他进程 / 线程持有锁则必须等待。
四、条件变量
(
1 )管程的引入
信号量同步存在以下缺点:
同步操作分散:同步操作分散在各个进程中,使用不当就可能导致各进程死锁(如 P 、 V 操作的次序
错误、重复或遗漏)
易读性差:要了解对于一组共享变量及信号量的操作是否正确,必须通读整个系统或者并发的。
由于信号量同步存在上述缺点,科学家提出了管程,其基本思想是:
把信号量操作原语封装在一个对象内部,即将共享变量以及对共享变量能够进行的所有操作集中在一
个模块中
(
2 )管程的基本概念
定义:管程是关于共享资源的数据结构及一组针对该资源的操作所构成的软件模块。 进程可在任何需要的时候调用管程中的过程。管程有一个很重要的特性,即任一时刻管程中只能有一
个活跃进程,这一特性使管程能有效地完成互斥。
(
3 )条件变量及其操作
进入管程时的互斥由编译器负责。另外,还需要一种办法使得进程在无法继续运行时被阻塞,解决的
的方法是引入条件变量以及相关的两个操作: wait 和 signal 。
当一个管程过程发现它无法继续运行时(例如,生产者发现缓冲区满),它会在某个条件变量上(如
full )执行 wait 操作。该操作导致调用进程自身阻塞,并且还将另一个以前等在管程之外的进程调入管
程。
另一个进程,比如消费者,可以唤醒正在睡眠的伙伴进程,这可以通过对其伙伴正在等待的一个条件
变量执行 signal 完成。为了避免管程中同时有多个活跃进程,需要一条规则来通知在 signal 之后该怎么
办,不同学者提出了不同的处理方法。
五、进程的调度时机和调度方式
(
1 )调度的时机
调度的时机即何时进行调度。调度处理常见情形包括:
在创建一个新进程之后。需要决定是运行父进程还是运行子进程,由于二者都处于就绪状态,调度程
序可以选择其中的任何一个。
在一个进程退出时必须进行调度。必须从就绪进程集中洗择某个进程,如果没有就绪的进程,通常会
运行一个系统提供的空闲进程(闲逛进程)。
当一个进程阻塞在 I/O 和信号量上或由于其他原因阻塞时,必须选祥另外一个进程运行。
在一个 I/O 中断发生时,必须进行调度。
另外,分给进程的时间片用完、有更紧急的事情需要处理(如 I/O 中断),有更高优先级的进程进入
就绪队列等情况下,当前进程被动放弃 CPU ,将进行调度。
有些情况下不能进行调度。例如,在处理中断的过程中,进程在操作系统内核程序临界区中。执行原
子操作过程中(原语)等。
(
2 )调度方式
非抢占方式:一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完成或发生某事件而
被阻塞时,才把处理机分配给其他进程,决不允许进程抢占已分配出去的处理机。
评价:实现简单、系统开销小;适用于大多数的批处理 OS ,但在要求比较严格的实时系统中,不宜采
用这种调度方式。
抢占方式:允许调度程序根据某种原则,去暂停某个正在执行的进程,将处理机重新分配给另一进
程。
抢占的原则:
优先级原则:为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先
级高于当前运行的进程的优先级,可以剥夺其 CPU 。 短作业(进程)优先原则:若一个作业(进程)到达系统,其运行长度比当前运行的进程的剩余运行
时间短,则剥夺当前运行进程的 CPU 。
时间片原则:在轮转算法中, CPU 轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将
它的 CPU 剥夺过来,交给下一个进程使用。
六、上下文切换机制
上下文指的是一种环境,对于进程而言,上下文实际上是进程执行活动全过程的静态描述。
进程上下文是可以按照层次规则组合起来的。例如在 UNIX System V 中,进程上下文由用户级、寄存
器上下文以及系统级上下文组成。
上下文切换机制:当对处理机进行切换时,将发生两对上下文切换操作。对于第一对,将保存当前进
程的上下文,而装入分派程序的上下文,以便分派程序运行;对于第二对,将移出分派程序而把新选进程
的 CPU 现场信息装入到处理机的相应寄存器中。
七、固态硬盘
固态硬盘是用固态电子存储芯片阵列制成的硬盘,由控制单元和在储单元组成。
固态硬盘在接口的规范和定义、功能及使用方法上与传统硬盘完全相同。但 I/O 性能相对于传统硬盘
大大提升,被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航
设备等领域。
固态硬盘具有如下优点 :
(
1 )读写速度快。采用闪存作为存储介质,读取速度相对机械硬盘更快。固态硬盘不用磁头,寻道时
间几乎为 0 。持续写入的速度非常惊人,最常见的 7200 转机械硬盘的寻道时间一般为 12-14ms ,而固态硬
盘可以轻易达到 0.1 ms 甚至更低。
(
2 )磨损均衡。也是一种基于固态硬盘主控芯片的内置平衡机制,用于均衡固态硬盘内部各个区块闪
存颗粒的使用程度,从而延长整体颗粒的使用寿命。在主控制器的固件中添入新的控制命令。让主控制器
在固态硬盘的读写过程中,尽可能均衡地使用各个 block ,防止部分闪存区块因过度频繁地擦除和写入命令
而导致整块闪存颗粒提前报废。
八、虚拟文件系统
虚拟文件系统( VFS )是一种用于网络环境的分布式文件系统,它允许在同一个目录结构中可以挂载
若干种不同的文件系统。
虚拟文件系统是物理文件系统与服务之间的一个接口层。它对每个文件系统的所有细节进行抽象。隐
藏了它们的实现细节,为使用者提供统一的接口。严格来说, VFS 并不是一种实际的文件系统,它只是存
在于内存中,不存在于任何外存空间, VFS 在系统启动时建立,在系统关闭时消亡。
对于用户来说,不需要关心不同文件系统的具体操作过程。而只是对一个虚拟的文件操作界面来进行
操作,每一个文件系统之间互不干扰,而只是调用相应的程序来实现其功能, VFS 作为内核中的一个软件 层,用于给用户空间的程序提供文件系统接口,同时也提供了内核中的一个抽象功能,允许不同的文件系
统很好地共存。
九、文件系统挂载
文件系统挂载,是指将新的文件系统关联至当前根文件系统。可以使用 mount 命令在目录树中的指定
目录(挂载点)附加文件系统。挂载点作为要挂载文件系统的访问入口,必须已经存在。一般是不会被进
程使用到的目录。挂载后,挂载点下原有文件将会被临时隐藏。
卸载,是指将某文件系统与当前根文件系统的关联关系移除。