系统架构设计师——操作系统(二)

设备管理

基本概念

设备是计算机系统与外界交互的工具,具体负责计算机与外部的输入/輸出工作,所以常称为外部设备(简称外设)。设备管理的目标主要是如何提高设备的利用率,为用户提供方便、统一的界面。提高设备的利用率,就是提高CPU与I/O设备之间的并行操作程度。在设备管理中,主要利用的技术有:中断技术、DMA技术、通道技术和缓冲技术。

中断技术

中断技术是一种使CPU在执行程序过程中暂时中止当前任务,转而处理紧急事件或异常的技术。为了更详细地解释中断技术的各个方面,以下将从多个角度进行分析:

  1. 中断技术的定义和作用
    • 定义:中断是指在特定事件(中断源)触发下,CPU暂停正在运行的程序,转去处理特定事件,并在处理完成后返回原程序继续执行的过程。
    • 作用:中断技术的主要作用是提高计算机系统的效率,通过允许CPU与外设并行工作,及时响应外部事件,并及时处理各种软硬件故障。
  2. 中断源的分类和处理过程
    • 中断源分类
      • 硬件中断源:来自外设、数据通道、时钟电路等的事件,如电源掉电。
      • 软件中断源:由软件指令触发,例如调试程序设置的中断、执行过程中的错误等。
    • 中断处理过程
      • 中断请求:中断源向CPU发出中断请求。
      • 中断响应:CPU检测到中断请求后,在当前指令执行完毕后响应该请求。
      • 保护断点:CPU保存当前程序执行的状态,主要是各寄存器的内容。
      • 处理中断:CPU执行中断服务程序,处理中断请求。
      • 中断返回:处理完中断后,恢复之前保存的状态并继续执行原程序。
  3. 中断优先级和嵌套中断
    • 中断优先级
      • 不同中断源有不同的优先级,一般按照其重要性和紧急程度来排序。
      • 高优先级的中断可以打断低优先级中断的处理过程。
    • 嵌套中断:在处理一个中断的过程中,如果检测到更高优先级的中断请求,CPU会暂停当前中断服务程序,处理更高优先级的中断,处理完毕后再返回继续执行被打断的中断服务程序。
  4. 中断技术的实际应用和效益
    • 实际应用
      • 设备I/O操作:如磁盘读写请求、键盘鼠标输入等。
      • 实时系统:如工业控制系统中的传感器数据采集和处理。
      • 错误处理:如内存访问越界、除零错误等异常情况。
    • 效益
      • 提高了CPU利用率,使得CPU在等待慢速外设时可以执行其他任务。
      • 增强了系统的可靠性和稳定性,及时处理各种突发故障。
      • 支持了多任务并行执行,提高了系统的整体效率。

DMA技术

DMA(Direct Memory Access,直接内存访问)技术是一种允许数据在不需要CPU干预的情况下直接在内存和外设之间传输的技术

为了更详细地解析DMA技术的各个方面,下面将从多个角度进行分析:

  1. DMA技术的定义和作用
    • 定义:DMA是一种硬件机制,通过内部的控制器来实现内存与外设之间的数据传输。
    • 作用:DMA可以使CPU从繁琐的数据搬运任务中解放出来,专注于处理更为复杂的计算和控制任务,从而提高系统效率。
  2. DMA的工作模式和数据传输方式
    • 工作模式
      • 直接模式:DMA直接进行从源地址到目的地址的数据传输。
      • FIFO模式:在FIFO缓冲器中累计存储数据,当达到阈值时一次性发送到目标地址。
    • 数据传输方式
      • 单字传送:也称为周期挪用或周期窃取,适用于小批量数据的传送。
      • 块传送:适用于大批量连续数据的传送,DMA控制器掌管总线控制权,直到批量传送结束。
  3. DMA的寻址模式和传输过程
    • 寻址模式
      • 增量寻址:传输完当前数据后,自动指向下一个地址的数据。
      • 非增量寻址:传输完当前数据后,根据软件配置确定下一个数据的地址。
    • 传输过程
      1. 准备阶段:CPU对DMA控制器和I/O接口进行初始化,配置传输方向、内存缓冲区首地址和交换量。
      2. 传输请求:设备接口向DMA控制器发送请求,DMA控制器再向CPU申请总线使用权。
      3. 数据传送:在获得总线控制权后,DMA控制器负责控制整个数据传送流程。
      4. 善后处理:传送结束时,DMA控制器向CPU发送中断请求,由CPU接管总线控制权。
  4. DMA的实际应用和效益
    • 实际应用
      • 高速设备数据传输:如磁盘、磁带机等大批量数据传送。
      • I/O效率提升:如网络数据传输、高性能嵌入式系统算法中的应用。
    • 效益
      • 提高系统效率:CPU与外设并行工作,提高了整体效率。
      • 减轻CPU负担:DMA承担了数据搬运任务,使CPU可以处理更重要的任务。
  5. DMA与其他技术的区别和联系
    • 与中断技术的区别:中断方式需要CPU介入,而DMA方式只需在预处理和后处理时占用CPU资源,其他时候不占用CPU。
    • 与PIO(程控输入输出)的区别:PIO模式下,所有的数据传输都要通过处理器,而DMA则可直接进行数据传输。

缓冲技术

缓冲技术是为了协调吞吐速度相差很大的设备之间数据传送而采用的技术。在操作系统中,缓冲技术旨在改善CPU与I/O设备间速度不匹配的矛盾,提高系统效率。以下是关于缓冲技术的详细解析:

  1. 缓冲技术的定义和作用
    • 定义:缓冲技术是一种用于缓解高速运行的设备与慢速运行设备之间速度差异的技术,通过设置缓冲区来实现。
    • 作用:缓冲技术的主要目的是提高CPU与I/O设备之间的并行性,减少对CPU的中断频率,从而提高系统的整体效率。
  2. 缓冲的种类和实现方式
    • 单缓冲:在设备和处理机之间设置一个缓冲器,适用于简单场景,但在设备之间无法实现并行操作。
    • 双缓冲:包含两个缓冲区,可以实现设备之间的并行操作,当一个缓冲区被使用时,另一个可以继续接收或发送数据。
    • 循环缓冲:由多个缓冲区组成,每个缓冲区的大小相同,将这些缓冲区组织成循环队列的形式,适用于输入输出速度相差较大的情况。
    • 缓冲池:由多个缓冲区统一管理,既可用于输入又可用于输出,是现代操作系统常用的缓冲结构。
  3. 缓冲技术的应用场景和效益
    • 应用场景
      • 高速设备数据传输:如磁盘、磁带机等大批量数据传送。
      • 实时系统:如工业控制系统中的传感器数据采集和处理。
      • 网络数据传输:如高性能嵌入式系统算法中的应用。
    • 效益
      • 提高系统效率:使CPU与外设可以并行工作,提高了整体效率。
      • 减轻CPU负担:缓冲技术承担了数据缓冲任务,使CPU可以处理更重要的任务。
      • 提升数据传输速率:减少了处理器对慢速存储设备的访问次数。
  4. 缓冲技术的管理和同步
    • 缓冲区管理
      • 队列管理:将各个缓冲区按照使用状况连成不同队列,如空白缓冲队列、输入缓冲队列和输出缓冲队列。
      • 工作方式:缓冲区在不同工作状态下(如收容输入、提取输入、收容输出和提取输出)扮演不同角色。
    • 进程同步
      • 同步机制:利用指针和队列管理确保进程之间的同步,避免数据丢失或重复处理。
  5. 缓冲技术与其他技术的结合
    • 与DMA技术结合:缓冲技术与DMA技术结合,可以在不占用CPU的情况下进行数据传输,进一步提升系统性能。
    • 与中断技术结合:通过中断技术与缓冲技术的结合,能够更有效地进行数据的适时处理和传输。

磁盘调度

磁盘调度是计算机操作系统中的一个重要概念,它涉及在多个进程请求访问磁盘时如何有效地安排这些请求以优化某种性能指标,通常是平均寻道时间。具体介绍如下:

  1. 磁盘调度的基本概念
    • 定义:磁盘调度是指当有多个进程请求访问磁盘时,系统采用一种适当的算法来决定这些请求的执行顺序,以保证信息的安全并使每个进程对磁盘的平均寻道时间最小。
    • 目的:磁盘调度的主要目标是提高磁盘存储子系统的性能,尤其是在多用户和多进程环境下,通过优化磁盘访问顺序来减少平均寻道时间,从而提高整个系统的效率。
  2. 磁盘调度的分类与算法
    • 磁盘驱动调度
      • 先来先服务(FCFS):按照请求的先后顺序进行调度。这种方法简单公平,但未对寻道进行优化,导致平均寻道时间较长。
      • 最短寻道时间优先(SSTF):选择与当前磁头位置距离最近的磁道进行访问,使得每次寻道时间最短,但不能保证所有进程的平均寻道时间最短。
      • 扫描算法(SCAN):又称电梯算法,考虑磁头当前的移动方向和欲访问的磁道与当前磁道间的距离,能够有效避免进程“饥饿”现象。
      • 循环扫描算法(CSCAN):是SCAN算法的变种,规定磁头单向移动,到达一端后直接跳到另一端继续同一方向移动,这减少了磁头停顿和反转次数,提高了效率。
    • 旋转调度
      • 延迟时间最短优先:当有多个进程等待访问同一柱面时,选择延迟时间最短的进程进行操作,确保数据传输的及时性。
  3. 磁盘调度的重要性与优化效果
    • 减少寻道时间:有效的磁盘调度算法可以显著减少磁头的寻道时间,从而提升磁盘的I/O性能。
    • 提高系统效率:通过减少寻道时间,磁盘响应速度加快,系统的整体效率和用户体验也会得到提升。
    • 防止进程“饥饿”:合理的调度算法如SCAN和CSCAN能够有效防止某些进程长时间得不到处理的情况,确保所有进程都能在合理的时间内得到响应。

移臂调度

移臂调度是磁盘调度算法中的一个重要部分,主要目的是减少磁盘机械臂移动的距离,从而优化磁盘的访问速度和系统的整体性能。在操作系统中,有效地管理磁盘访问是提高系统效率的关键之一。移臂调度算法包括先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)和电梯算法等。具体介绍如下:

  1. 先来先服务算法
    • 基本概念:按照请求到达的顺序来进行处理,对请求的物理位置没有考虑。
    • 优缺点:实现简单、公平性高。但在请求密集且物理位置分散时,会导致磁头大量移动,效率较低。
  2. 最短寻道时间优先算法
    • 基本概念:选择当前磁头位置距离最近的请求进行处理。
    • 优缺点:相比FCFS,有效减少了磁头的移动距离,但可能出现“饥饿”现象,即某些远离磁头位置的请求可能长时间得不到处理。
  3. 扫描算法
    • 基本概念:磁头从一个方向极端移动到另一个方向极端,途径的请求按照顺序处理,形成一个扫描路径。
    • 优缺点:避免了SSTF中的“饥饿”问题,保证了所有请求都会被处理,但在高负载时仍可能存在效率问题。
  4. 电梯算法
    • 基本概念:类似于生活中的电梯运行,磁头一个方向移动直到无请求后改变方向,处理途中的所有请求。
    • 优缺点:结合了SCAN和SSTF的优点,减少了总的移动距离,同时较好地解决了“饥饿”问题。
  5. 循环扫描算法
    • 基本概念:与扫描算法类似,但到达一端后直接反向移动,没有“空跑”的过程。
    • 优缺点:适用于请求集中在某一部分柱面的情况,能够提供更高效的处理速度。

旋转调度

旋转调度是磁盘调度的一种形式,它主要关注在磁盘访问中减少延迟,提高数据处理的效率。以下是对旋转调度的详细解析:

  1. 旋转调度的基本概念
    • 定义:旋转调度是一种考虑了磁盘旋转延迟的磁盘调度算法,它选择最近将要到达磁头位置的请求进行服务。
    • 目的:旋转调度的主要目的是减少I/O操作的总延迟时间,包括寻道时间和旋转延迟。
  2. 旋转调度的分类与算法
    • 最短可用时间优先:考虑了寻道时间和旋转延迟,优先选择两者总和最小的请求进行处理。
    • 优化的最短可用时间优先:在最短可用时间优先的基础上进一步优化,考虑了数据传输时间,适用于大数据传输的场景。
    • 基于扇区的调度:将磁盘扇区作为调度的基本单位,减少了因扇区分散造成的额外寻道和旋转延迟。
  3. 旋转调度的重要性与优化效果
    • 减少I/O操作延迟:通过精确计算和优化寻道及旋转时间,旋转调度显著降低了I/O操作的平均延迟。
    • 提高系统效率:减少了不必要的磁盘操作,提高了整个系统的性能和响应速度。
    • 防止进程“饥饿”:合理的旋转调度算法能有效平衡不同进程的磁盘访问需求,避免部分进程长时间得不到服务。
  4. 旋转调度与移臂调度的关系
    • 相互补充:移臂调度关注的是磁头的移动,而旋转调度关注的是磁盘的旋转延迟,两者相辅相成,共同优化磁盘性能。
    • 共同目标:尽管移臂调度和旋转调度关注的焦点不同,但它们共同的目标是减少磁盘访问的总时间,提升系统性能。

典型真题

题目描述

在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为:

请求序列柱面号磁头号扇区号
1789
2363
2396
32105
1784
解题思路

根据题干要求,先进行移臂调度,找到对应柱面,然后进行旋转调度,
找到对应磁头和扇区。

由表可知①⑤⑦在17柱面(21-17=4) ,②③⑧在23柱面(23-21=2),④⑥在32柱面(32-21=9)。因此按最短移臂算法,应该是23柱面17柱面32柱面38柱面

文件管理

文件结构

文件结构是操作系统中文件管理系统的关键组成部分,它决定了文件在存储设备上的组织方式,直接影响到文件存取效率和存储效率。为了更深入地理解各种文件结构及其优缺点,以下将从多个角度进行分析:

  1. 文件的物理结构
    • 连续文件结构:这种结构将文件信息顺序存储到连续的物理盘块中。主要优点是顺序访问速度快,适合大批量数据的顺序处理。然而,它也存在显著缺点,如容易产生磁盘碎片,文件修改困难,且不利于文件动态增长。
    • 串联文件结构:通过指针将文件所占的盘块连接起来,形成一个链表。优点是能较好地利用辅存空间,易于对文件进行扩充。但由于需要顺序存取,存取速度较慢,且安全性较低,一旦某个指针丢失,整个文件可能无法访问。
    • 随机文件结构:采用非连续分配的方式,数据记录存放于直接存取型存储设备上。这种结构支持随机存取,但实现较为复杂,通常需要额外的索引表来维护记录的地址信息。
  2. 文件的逻辑结构
    • 无结构文件:基本构成单位是字符,文件被视为无结构的字节序列。这种结构适用于简单文本文件,但不便于直接查找特定记录。
    • 有结构文件:由若干定长或变长的记录组成,每个记录可以包含一个或多个字段。这种结构便于按字段进行检索和处理,常见于数据库文件和复杂的数据存储系统。
  3. 文件的存取方法
    • 顺序存取:适用于连续文件和串联文件,特点是按照文件顺序依次存取记录。这种方法简单、易于实现,但在需要随机访问时效率低下。
    • 随机存取:适用于直接地址结构和索引文件结构,可以直接访问文件中任意位置的记录,大大提高了访问效率,但实现较为复杂。
  4. 文件系统的索引结构
    • 直接索引:为每个文件建立一个索引表,记录每个记录的地址。这种方法能够快速定位文件中的任意记录,但索引表本身的维护需要额外开销。
    • 一级间接索引二级间接索引:用于处理超大文件,通过多级索引表来管理分散在磁盘各处的文件块,提高了存储利用率,但增加了索引查询的复杂度。
  5. 文件结构的优化与应用
    • 选择适当的文件结构:根据实际应用需求选择最合适的文件结构。例如,对需要频繁顺序访问的文件采用连续文件结构,对需要随机访问的文件采用索引结构。
    • 综合考虑存储设备特性:不同的存储设备(如硬盘、磁带)适用不同的文件结构。磁盘等直接存取设备更适合随机文件和索引文件结构,而磁带等顺序存取设备适合连续文件结构。

文件存储空间管理

文件存储空间管理是操作系统中文件系统的核心功能之一,它负责有效地分配、监控和回收用于文件存储的磁盘空间。以下是文件存储空间管理的相关分析:

  1. 文件存储空间管理的分类
    • 连续分配:此方式为每个文件分配一组连续的物理块,易于实现且适合顺序访问的文件。然而,随着时间的推移,磁盘碎片会降低空间利用率。
    • 链式分配:通过使用指针将分散的物理块串联起来,此方法能较好地利用磁盘空间,但随机访问效率较低,且存在指针开销。
    • 索引分配:为每个文件维护一个索引表,记录文件所占用的所有物理块位置。这种方式支持随机访问,但需要额外的空间来存储索引表,并且索引表本身也需要维护。
  2. 文件存储空间管理的实现技术
    • 位图:使用位图来跟踪和管理磁盘空间的使用情况。每个位代表一个物理块的状态(空闲或占用),适用于存储设备较小的场景。
    • 空闲区表:维护一个表格,记录所有空闲区域的大小和位置。这种方法适合处理大量空闲区的管理,但表格本身需要定期更新和维护。
    • 空闲链表:将所有未分配的物理块链接在一起,形成一个空闲链表。这种方法易于合并和分割空闲区,但在内存中的链表可能占用较多空间。
  3. 文件存储空间管理的优化策略
    • 磁盘碎片整理:定期进行磁盘碎片整理,以合并分散的空闲块,提高连续分配方法的效率。
    • 动态重定位:在必要时对文件进行移动,以改善存储空间的连续性和利用率。这需要文件系统具备高度的灵活性和复杂算法的支持。
    • 空间预分配:为预期将要增长的文件预留额外的空间,减少因文件扩展导致的空间不足问题。
  4. 文件存储空间管理的效益与挑战
    • 提高效率:合理的空间管理策略可以显著提高磁盘利用率和文件访问速度,从而提升整个系统的性能。
    • 降低成本:有效的存储空间管理可以减少对磁盘空间的需求,从而节省成本。
    • 面临的挑战:随着数据量的不断增长和存储设备的多样化,如何在不同场景下选择和优化存储空间管理策略成为一大挑战。

典型真题

题目描述

某文件系统文件存储采用文件索引节点法。假设文件索引节点中有8个地址项iaddr[0]`iaddr[7]`,每个地址项大小为4字节,其中地址项`iaddr[0]`iaddr[5]为直接地址索引,iaddr[6]是一级间接地址索引,iaddr[7]是二级间接地址索引,磁盘索引块和磁盘数据块大小均为4KB。该文件系统可表示的单个文件最大长度是()KB。若要访问iclsClient.dll文件的逻辑块号分别为6、520和1030,则系统应分别采采用()。

A. 1030

B. 65796

C. 1049606

D. 4198424

A. 直接地址索引、一级间接地址索引和二级间接地址索引

B. 直接地址索引、二级间接地址索引和二级间接地址索引

C. 一级间接地址索引、一级间接地址索引和二级间接地址索引

D. 一级间接地址索引、二级间接地址索引和二级间接地址索引

解题思路

  1. 直接地址索引:覆盖逻辑块号0至5,共6个块。

  2. 一级间接地址索引iaddr[6]覆盖逻辑块号6至1029(6+1024-1),共1024个块。

  3. 二级间接地址索引iaddr[7]覆盖逻辑块号1030至1049605(6+1024+1024*1024-1),共1048576个块。

答案解析

  • 对于逻辑块号6520,系统应采用一级间接地址索引;对于逻辑块号1030,系统应采用二级间接地址索引。这是因为:
  1. 逻辑块号6:位于直接地址索引之外,但属于一级间接地址索引的范围内,因此使用一级间接地址索引。

  2. 逻辑块号520:同样,它超出了直接地址索引的范围,但在一级间接地址索引的范围内,因此也使用一级间接地址索引。

  3. 逻辑块号1030:超出了一级间接地址索引的范围,因此需要使用二级间接地址索引。

结论

  • 该文件系统可表示的单个文件最大长度是4198424KB。对于逻辑块号6和520,系统应采用一级间接地址索引;对于逻辑块号1030,系统应采用二级间接地址索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庄隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值