Skip to content
🗂️ 文章分类: 考试  
🏷️ 文章标签: 软考  
📝 文章创建时间: 2025-03-26
🔥 文章最后更新时间:2025-10-15

[toc]

软件设计师笔记04_操作系统

下面的内容参考自《软件设计师教程(第5版)》 这本书的第4章 操作系统知识。

操作系统概述

计算机软件通常分为系统软件和应用软件两大类。其中操作系统是系统软件的核心,是计算机系统的基础软件。

其他软件都是建立在操作系统的基础上,并在操作系统的统一管理和支持下运行的。

ruankao_20251025195533.png

操作系统基本概念

操作系统的定义

操作系统:能有效地组织和管理系统中的各种软硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。

操作系统的作用

  1. 通过资源管理提高计算机系统的效率
  2. 改善人机界面向用户提供友好的工作环境

操作系统的特征

操作系统的4个特征是并发性、共享性、虚拟性和不确定性。

操作系统的功能

操作系统的功能可分为进程管理、存储管理、文件管理、设备管理、作业管理。

  • 进程管理。实质上是对处理机的执行“时间”进行管理。即采用多道程序等技术将CPU 的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度。
  • 文件管理。主要包括文件存储空间管理、目录管理、文件的读/写管理和存取控制。
  • 存储管理。存储管理是对主存储器“空间”进行管理,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充。
  • 设备管理。实质是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和 回收。
  • 作业管理。包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。

操作系统的分类

  1. 批处理操作系统
  2. 分时操作系统(轮流使用CPU工作片)
  3. 实时操作系统(快速响应)
  4. 网络操作系统
  5. 分布式操作系统(物理分散的计算机互联系统)
  6. 微机操作系统(Windows,Linux, MacOS等)
  7. 嵌入式操作系统

计算机的启动流程

计算机启动的基本流程为:BIOS——>主引导记录——>操作系统

进程管理

基本概念

进程管理也称处理机管理。

进程是资源分配和独立运行的基本单位。

进程的组成

进程是程序的一次执行,通过进程这一机制,可以让程序可以和其他程序并发执行。

进程通常由程序,数据,进程控制块(PCB)组成。

  • 进程控制块PCB(PCB是进程存在的唯一标志。)
  • 程序(程序描述了进程需要完成的功能。)
  • 数据(数据是指程序完成功能时需要的数据,该数据只能该进程使用。)

进程和程序的区别

进程是程序的一次执行过程。没有程序就没有进程。

程序是一个静态的概念,进程是一个动态的概念。进程由程序开始执行而创建,由程序执行结束而结束。

简而言之,操作系统运行一个程序,是将程序复制并加载到内存中。然后将这个程序副本通过CPU进行执行调度,此时正在执行的程序副本就叫进程(即进行的程序)。

进程的状态

在操作系统中,进程在处理器上运行,因此进行的状态也会不断发生变化。下面是进行的状态介绍。

进程的基础状态模型-三态图

进程一般有3种基础状态:运行,就绪和阻塞。

ruankao_20250331151642.png

  • 就绪:一个进程获得了除CPU以外的所有资源,一旦得到CPU资源就可以运行。此时的进程处于就绪状态。
  • 运行:当一个进程得到了CPU资源时,则表示该进程正在系统上运行。此时的进程处于运行状态。
  • 阻塞:阻塞也称等待或睡眠状态。一个进程正在等待某一事件发生(例如正在请求其他资源)而暂时停止运行,这时即使把CPU资源分配给进程也无法运行,故称该进程处于阻塞状态。

注意:运行可以直接转换为就绪或阻塞。就绪状态只能转换为运行状态,阻塞状态只能转换为就绪状态。

进程的复杂状态模型-五态图

事实上,对于一个实际的系统,进程的状态及其转换更为复杂。如图所示,引入新建状态和终止状态。

ruankao_20250331161419.png

  • 新建:对应一个进程刚刚被创建时没有被提交的状态,并等待系统完成创建进程的所有必要信息。
  • 终止:对应一个进程运行完毕的状态。

注意:运行可以直接转换为就绪或等待或终止,就绪只能转换为运行,等待只能转化为就绪。

进程的控制

进程控制就是对系统中的所有进程从创建到消亡的全过程实施有效的控制。

进程间的通信

在系统中存在多个可以并发执行的进程,故进程间必然存在资源共享和相互合作的问题。

进程通信是指各个进程之间互相交换信息的过程。

进程间的同步和互斥

进程间的同步

在计算机系统中,多个进程可以并发执行。而为了完成某个任务,有时候这些进程需要互相合作,协同工作。这种协同工作的联系机制就是进程间的同步。 ()

进程间的互斥

进程的互斥是指系统中的多个进程由于争夺临界资源而互斥执行。临界资源是指该资源一次只能供一个进程使用。

进程同步与互斥

即通过信号量协调进程间的执行顺序,保证进程按正确的先后顺序执行。通过前驱图确定进程之间的先后关系,然后利用 PV 操作来实现这种同步关系。

信号量机制是一种用于控制进程间同步和互斥的机制。

PV操作是用来操作信号量的方式。

信号量

信号量是一种用于控制进程间同步和互斥的机制。

信号量是一个整型变量(通常用S表示),用于描述系统中某类资源的可用数量或某个事件的状态。其值的含义如下:

  • S > 0:表示当前可用的资源数量(或可继续执行的进程数);
  • S = 0:表示资源已耗尽(或事件未发生);
  • S < 0:表示等待该资源的进程数(绝对值为等待队列中的进程数)。

信号量S的物理意义:当 S ≥ 0 时表示某资源的可用数量,若 S < O,则表示其绝对值表示阻塞队列中等待该资源的进程数量。

PV操作

PV 操作是对信号量的原子操作(不可中断的操作),用于实现进程的同步与互斥:

  • P 操作 :表示申请一个资源;
  • V 操作 :表示释放一个资源。

PV 操作的具体逻辑

  • P(S) 操作
      1. 将信号量S的值减 1(S = S - 1);
      1. 若S ≥ 0:进程可继续执行(成功获取资源);
      1. 若S < 0:进程进入等待队列(阻塞,等待资源释放)。
  • V(S) 操作
      1. 将信号量S的值加 1(S = S + 1);
      1. 若S > 0:无等待进程,继续执行;
      1. 若S ≤ 0:从等待队列中唤醒一个进程(使其就绪)。

P操作的定义:S=S-1。当某个资源的信号量S >= 0时,执行P操作,将该资源的信号量S减1;当某个资源的信号量S < 0时,由于该资源的信号量S为负数,说明该资源当前不可用,需要等待其他进程释放资源。

V操作定义: S=S+1。若S>0,则执行V操作的进程继续执行;若S ≤ 0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。

进程调度

进程调度方式是指当有更高优先级的进程到来时如何分配CPU。

进程调度方式分为可剥夺和不可剥夺两种。

  • 可剥夺式:是指当有更高优先级的进程到来时,强行将正在运行进程的CPU资源分配给高优先级的进程;
  • 不可剥夺式:是指当有更高优先级的进程到来时,必须等待正在运行的进程自动释放占用的CPU资源,然后将CPU资源分配给高优先级的进程。

进程调度算法

常用的进程调度算法有先来先服务、时间片轮转、优先级调度和多级反馈调度算法。

  • 先来先服务调度算法:是指按照进程到达的先后顺序进行调度,先到达的进程先执行,后到达的进程后执行。
  • 时间片轮转调度算法:是指给每个进程分配一个固定的时间片,在该时间片内进程执行。时间片结束后则将CPU资源分配给其他进程。
  • 优先级调度算法:是指给每个进程分配一个优先级。优先级高的进程先执行,优先级低的进程后执行。
  • 多级反馈调度算法:该算法是将时间片轮转调度算法和优先级调度算法相结合。将进程分为多个队列,每个队列有不同的优先级,进程可以在不同队列之间进行迁移,根据进程的行为和优先级进行调度。

死锁

在计算机系统中有许多互斥资源(如打印机和绘图仪等)或软件资源(如进程表、临界区等)。若两个进程同时使用打印机,或同时进入临界区必然会出现问题。

所谓死锁,是指两个以上的进程互相都要求对方已经占有的资源,从而导致双方进程都无法继续运行下去的现象。

死锁产生的四个必要条件

当发生死锁时,在进程资源有向图中必构成环路,其中每个进程占有了下一个进程申请的一个或多个资源,如图所示。

ruankao_20251025225418.png

进程资源有向图由方框、圆圈和有向边三部分组成。其中方框表示资源,圆圈表示进程。

  • 箭头由进程指向资源表示请求资源。
  • 箭头由资源指向进程表示分配资源。

产生死锁的4个必要条件是互斥条件、请求保持条件、不可剥夺条件和环路条件。

  1. 资源互斥
  2. 每个进程占有资源并等待其他资源
  3. 系统不能剥夺进程资源
  4. 进程资源图是一个环路

死锁的处理

死锁的处理策略主要有4种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。

死锁预防

死锁预防是采用某种策略限制并发进程对资源的请求,破坏死锁产生的4个必要条件之一。从而使系统在任何时刻都不满足死锁的必要条件。

死锁避免

相比死锁预防,死锁避免则不那么严格地限制产生死锁的必要条件。

最著名的死锁避免算法是Dijkstra提出的银行家算法,死锁避免算法需要很大的系统开销。

银行家算法的思想就是提前计算出一条不会产生死锁的资源分配方法,才分配资源,否则不分配资源,相当于借贷,考虑对方还得起才借钱,提前考虑好以后,就可以避免死锁问题。

死锁检测

死锁检测,该方法没有对资源的分配进行限制,即允许死锁产生。但系统会定时地运行一个死锁检测程序,判断系统是否发生死锁,若检测到有死锁,则设法加以解除。

死锁解除

死锁解除通常采用如下方法。

  • 资源剥夺法。从一些进程那里强行剥夺足够数量的资源分配给死锁进程。
  • 撤销进程法。根据某种策略逐个地撤销死锁进程,直到解除死锁为止。

死锁避免的资源量计算问题

若系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为 n*(R-1) 。其不发生死锁的最小资源数为n*(R-1)+1

死锁避免的资源量计算问题

若系统内有n个进程,每个进程都需要R个资源。那么其发生死锁的最大资源数为 n*(R-1) 。其不发生死锁的最小资源数为n*(R-1)+1

简而言之,系统内的资源数量 >= 进程数量 * (每个进程需要的资源数量-1) + 1时,整个系统不会产生死锁。

线程

在计算机系统中,进程作为独立分配资源的单位,而线程是作为调度和分配的基本单位。即线程是独立调度的最小单位。

在系统中,同一个进程可以并发执行,并且一个进程中的多个线程也可以并发执行。

线程可以共享进程的公共数据、全局变量、代码、文件等资源,但不能共享线程独有的资源,如线程的栈指针等标识数据

存储管理

存储器管理的对象是主存存储器简称主存或内存。

存储器管理的主要功能包括主存空间的分配和回收、提高主存的利用率、扩充主存、对主存信息实现有效保护。

基本概念

存储器的结构

常用的存储器结构有“寄存器-高速缓存-主存-外存”结构。如图所示

ruankao_20241017170757.png

  • 虚拟地址:又称相对地址、程序地址、逻辑地址等。
  • 地址空间:程序中由相对地址组成的空间称为逻辑地址空间。
  • 存储空间:简而言之,地址空间是逻辑地址的集合,存储空间是物理地址的集合。

存储管理的方案

存储管理的主要目的是解决多个用户同时使用主存的问题。

其存储管理方案主要包括分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理。

分区存储管理

分区存储管理是早期的存储管理方案,其基本思想是把主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行,这种主存分配方案就是分区存储管理方式。

分页式存储管理

分页存储管理是为了解决分区存储管理方案中用户程序必须装入连续的地址空间中而提出的。

分页存储管理的基本思想

将进程空间分为一个个页,假设每个页大小为4K,同样的将系统的物理空间也分为一个个4K大小的物理块(页帧号),这样,每次将需要运行的逻辑页装入物理块中,运行完再装入其他需要运行的页,就可以分批次运行完进程,而无需将整块逻辑空间全部装入物理内存中

  • 优点:利用率高、碎片小(只在最后一个页中有)、分配及管理简单
  • 缺点:增加了系统开销,可能产生抖动现象

分段式存储管理

将进程空间分为一个个段,每段也有段号和段内地址,与分页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的。

  • 优点:程序逻辑完整,修改互不影响
  • 缺点:内存利用率低,内存碎片浪费大

段页式存储管理

段页式存储管理既具有分页式存储能有效地提高主存利用率的优点,又具有分段式存储能很好地满足用户需要的长处,显然是一种比较有效的存储管理方式。

段页式存储管理核心思想就是对进程空间先分段,后分页。

  • 优点:空间浪费小、存储共享容易、能动态连接
  • 缺点:由于管理软件的增加,复杂性和开销也增加,执行速度下降

设备管理

设备管理是操作系统中最繁杂而且与硬件紧密相关的部分。

设备管理不仅要管理实际 I/O 操作的设备(如键盘、鼠标、打印机等),还要管理诸如设备控制器、DMA 控制器、中断控制器和 I/O 处理机(通道)等支持设备。

设备管理包括各种设备分配、缓冲区管理和实际物理I/O设备操作,通过管理达到提高设备利用率和方便用户的目的。

设备管理的作用

设备管理包括各种设备分配、缓冲区管理和实际物理I/O设备操作,通过管理达到提高设备利用率和方便用户的目的。

设备的分类

按数据组织分类。分为块设备和字符设备。

  1. 块设备是指以数据块为单位来组织和传送数据信息的设备,如磁盘。
  2. 字符设备是指以单个字符为单位来传送数据信息的设备,如交互式终端、打印机等。

按照设备的功能分类。分为输入设备、输出设备、存储设备、网络联网设备、供电设备等等。

  1. 输入设备是将数据、图像、声音送入计算机的设备;
  2. 输出设备是将加工好的数据显示、印制、再生出来的设备;
  3. 存储设备是指能进行数据或信息保存的设备;
  4. 网络联网设备是指网络互连设备以及直接连接上网的设备;
  5. 供电设备是指向计算机提供电力能源、电池后备的部件与设备,如开关电源、联机 UPS 等。

按设备的使用方式分类。分为人机交互设备、批量设备、实时设备。

  1. 人机交互设备是指直接与用户进行交互的设备,如键盘、鼠标、显示器等。
  2. 批量设备是指用于批量数据处理的设备,如磁带机、磁盘机等。
  3. 实时设备是指要求在严格时间限制内完成任务的设备,如实时监控系统、实时交易系统等。

按资源分配角度分类。分为独占设备、共享设备和虚拟设备。

  1. 独占设备是指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的 I/O 设备(如用户终端、打印机等)属于这类设备。
  2. 共享设备是指在一段时间内允许多个进程同时访问的设备。典型的共享设备是磁盘、打印机等。
  3. 虚拟设备是指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。

按数据传输率分类,分为低速设备、中速设备和高速设备。

  1. 低速设备是指传输速率为每秒钟几个字节到数百个字节的设备,典型的设备有键盘、鼠标、语音的输入等。
  2. 中速设备是指传输速率在每秒钟数千个字节到数十千个字节的设备,典型的设备有行式打印机、激光打印机等。
  3. 高速设备是指传输速率在每秒数百千个字节到数兆字节的设备,典型的设备有磁盘机和光盘机等。

I/O 软件

I/O软件是一个用于专门管理设备的软件,它提供了程序与设备的交互。通过I/O软件,用户可以方便地管理和使用设备,从而不必关心设备的具体实现细节。

I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。

如图所示 ruankao_20241017171906.png

磁盘调度

磁盘是可被多个进程共享的设备。

当有多个进程请求访问磁盘时,为了保证信息的安全,系统在每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待。

因此,操作系统应采用一种适当的调度算法,使各进程对磁盘的平均访问时间最小。由于访问磁盘最耗时的是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。

常用的磁盘调度算法如下

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

文件管理

文件管理专门负责管理外存储器(外存)上的信息,而这些信息是以文件的形式存放的,使用户可以“按名”高效、快速和方便地存取信息。

文件和文件系统

文件

文件(File)是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。例如,一个源程序、一个目标程序、各种文档等都可以作为一个个文件。

文件也是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上而且便于以后读取的手段,使用户不必了解信息存储的方法、位置以及存储设备实际操作方式便可存取信息。

因此,文件管理中的一个非常关键的问题在于文件的命名。操作系统根据文件名对其进行控制和管理。

一个文件包括文件体和文件说明。

  • 文件体是文件正文的内容。
  • 文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等。

文件系统

文件系统即文件管理系统,它是操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构,简称文件系统。

文件系统的功能如下

  • 按名存取,即用户可以“按名存取”,而不是“按地址存取”;
  • 统一的用户接口,在不同设备上提供同样的接口,方便用户操作和编程;
  • 并发访问和控制,在多道程序系统中支持对文件的并发访问和控制;
  • 安全性控制,让系统中的不同用户对同一文件可有不同的访问权限;
  • 优化性能,采用相关技术提高系统对文件的存储效率、检索和读/写性能;
  • 差错恢复,能够验证文件的正确性,并具有一定的差错恢复能力。

目前常用的文件系统类型有 FAT、Vfat、NTFS、Ext2 和 HPFS 等。

文件类型

文件类型的目的是对不同文件进行管理,提高系统效率,提高用户界面友好性。

  • 按文件性质和用途可将文件分为系统文件、库文件和用户文件。
  • 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
  • 按文件的保护方式分类可将文件分为只读文件、读 / 写文件、可执行文件和不保护文件。

例如 UNIX 系统将文件分为普通文件、目录文件和设备文件(特殊文件)。

文件的结构和组织

文件的结构是指文件的组织形式。

  • 从用户角度看到的文件组织形式称为文件的逻辑结构。
  • 文件在文件存储器上的存放方式称为文件的物理结构。

文件目录

为了实现文件的“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的物理地址。这个数据结构就称为文件目录。

换句话说,文件目录是专门用于文件的检索。

目录结构

一个好的文件目录的组织方式直接影响到文件的存取速度,关系到文件的共享性和安全性。

常见的目录结构有3种:一级目录结构、二级目录结构和多级目录结构。

  • 一级目录结构。一级目录结构是一个线性结构,在整个系统中只需建立一张目录表,系统为每个文件分配一个目录项。一级目录结构简单,缺点是查找速度慢,不允许重名和不便于实现文件共享等,因此它主要用在单用户环境中。
  • 二级目录结构。为了克服一级目录结构存在的缺点引入了二级目录结构,二级目录结构是由主文件目录和用户目录组成的。在主文件目录中,每个用户文件目录都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。用户目录是由用户所有文件的目录项组成的。
  • 多级目录结构。为了解决以上问题,在多道程序设计系统中常采用多级目录结构,这种目录结构像一棵倒置的有根树,所以也称为树型目录结构。从树根向下,每一个结点是一个目录,叶结点是文件。MS-DOS和UNIX等操作系统均采用多级目录结构。

文件的存取方法

文件的存取方法是指读/写文件存储器上的一个物理块的方法。通常有顺序存取和随机存取两种方法。

  • 顺序存取方法是指对文件中的信息按顺序依次进行读 / 写;
  • 随机存取方法是指对文件中的信息可以按任意的次序随机地读 / 写。

文件的使用

文件系统为每个文件与该文件在磁盘上的存放位置建立了对应关系。

当用户使用文件时,文件系统通过用户给出的文件名查出对应文件的存放位置,读出文件的内容。

文件系统的安全与可靠性

文件系统的可靠性是指系统抵抗和预防各种物理性破坏和人为性破坏的能力。

  1. 转储和恢复。在文件系统中无论是硬件或软件都会发生损坏和错误,例如自然界的闪电、电压的突变、火灾和水灾等均可能引起软/硬件的破坏。为了使文件系统万无一失,应当采用相应的措施,最简单和常用的措施是通过转储操作形成文件或文件系统的多个副本。这样,一旦系统出现故障,利用转储的数据使得系统恢复成为可能。常用的转储方法有静态转储和动态转储、海量转储和增量转储。
  2. 日志文件。在计算机系统的工作过程中,操作系统把用户对文件的插入、删除和修改操作写入日志文件。一旦发生故障,操作系统恢复子系统利用日志文件来进行系统故障恢复,并可协助后备副本进行介质故障恢复。
  3. 文件系统的一致性。影响文件系统可靠性的因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。但如果读取某磁盘块,修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态。如果这些未被写回的磁盘块是索引结点块、目录块或空闲块,那么后果是不堪设想的。通常,解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。

Released under the MIT License.