【软考-架构】1.3、磁盘-输入输出技术-总线

news/2025/3/3 14:13:47/

GitHub地址:https://github.com/tyronczt/system_architect
资料&文章更新

文章目录

  • 存储系统
  • 💯考试真题
  • 输入输出技术
  • 💯考试真题
    • 第一题
    • 第二题

存储系统

寻道时间是指磁头移动到磁道所需的时间;

等待时间为等待读写的扇区转到磁头下方所用的时间;

💯考试真题

(1)处理11个记录的最长时间为(C. 366ms)

原因分析:

  1. 单缓冲区的限制
    系统使用单缓冲区时,每次只能读取一个逻辑记录到缓冲区中,处理完该记录后才能读取下一个。当磁盘旋转时,磁头需要等待目标逻辑记录重新转到其起始位置才能读取。
  2. 时间计算逻辑
    • 磁盘旋转周期为33ms,每个物理块读取时间为3ms(33ms / 11块)。
    • 处理第一个记录R0:读取3ms + 处理3ms = 6ms。此时磁头已移动到R2的起始位置。
    • 处理后续记录(R1~R10):
      每个记录需要等待磁盘旋转一周(33ms)才能回到起始位置,再加上读取3ms和处理3ms,共需 33ms + 3ms + 3ms = 39ms/个。
      但实际计算中,需考虑处理完前一个记录后磁头的位置。例如,处理R0后,磁头在R2起始处,此时需等待磁盘旋转至R1起始处(需30ms),再加上读取和处理时间(3ms + 3ms = 6ms),总耗时 36ms/个 136。
    • 总时间:R0的6ms + 后续10个记录的36ms × 10 = 6 + 360 = 366ms。

(2)优化存储后的最少时间为(B. 66ms)

优化策略:

  1. 逻辑记录的间隔分布
    将逻辑记录按间隔排列,例如优化后的顺序为:R0, R6, R1, R7, R2, R8, …, R5。这样处理完一个记录后,磁头恰好位于下一个记录的起始位置,无需等待磁盘旋转一周。
  2. 时间计算逻辑
    • 每个记录的处理周期为 读取3ms + 处理3ms = 6ms。
    • 总时间:11个记录 × 6ms = 66ms 369。

关键结论

  • 最长时间由单缓冲区导致的旋转等待时间决定,优化前总耗时 366ms。
  • 最少时间通过优化存储分布消除旋转等待时间,优化后总耗时 66ms。

关键分析步骤

  1. 初始位置:磁头位于21号柱面。
  2. 距离计算:
    • 23号柱面(②、③、⑧)距离为2(最近)。
    • 17号柱面(①、⑤、⑦)距离为4。
    • 32号柱面(④、⑥)距离为11。
    • 38号柱面(⑨)距离为17(最远)。
  3. 调度顺序:
    • 第一步:处理最近的23号柱面请求(②、③、⑧)。根据题目表格中请求的原始顺序,优先处理②→③→⑧(同一柱面请求按出现顺序处理)。
    • 第二步:磁头移动到23号柱面后,下一个最近的柱面是17号(距离6),处理①、⑤、⑦(同一柱面按出现顺序)。
    • 第三步:磁头移动到17号柱面后,下一个最近的柱面是32号(距离15),处理④→⑥。
    • 第四步:最后处理38号柱面的⑨。
  4. 选项匹配:
    • D选项(②⑧③⑤⑦①④⑥⑨):
      与推导结果一致,符合SSTF逻辑(23→17→32→38),且同一柱面请求按原始顺序排列。

结论

正确答案为选项D:②⑧③⑤⑦①④⑥⑨。
该顺序严格遵循最短移臂调度算法,确保每次磁头移动距离最短,并合理处理同一柱面内的请求顺序。

输入输出技术

【常考】计算机和外设间的数据交互方式:

  • 程序控制(查询)方式
  • 程序中断方式
  • DMA方式(直接主存存取)

在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时。

💯考试真题

第一题

根据计算机系统中输入/输出控制方式的特点,正确答案为 D. DMA

解析:

DMA(Direct Memory Access,直接存储器存取) 是一种完全由硬件控制的数据传输方式。其核心特点是:

  1. 无需CPU程序指令介入传输过程
    在DMA方式下,CPU仅在数据传输的开始阶段(初始化DMA控制器)和结束阶段(处理中断)进行干预,而具体的数据传输由DMA控制器直接管理内存与外设之间的数据通路完成。
  2. 硬件接管总线控制权
    DMA控制器通过向CPU申请总线控制权,接管系统总线后直接与内存交互,数据块传输完全由硬件实现,无需CPU逐条执行指令。
  3. 与其他方式的对比
    • 程序查询/无条件传送:CPU需持续轮询或直接控制数据传送。
    • 中断方式:每个数据传输需CPU响应中断并执行服务程序。
    • DMA:仅在数据块传输的起始和结束时需要CPU参与,数据传输过程完全独立。

结论:

DMA方式通过硬件控制器实现高效、独立的数据传输,显著减少CPU负担,适用于高速、大批量数据交换场景(如磁盘、网络设备)。

第二题

正确的选项是 C.单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低,具体分析如下:

选项解析

  1. 选项A
    错误。串行总线(如USB、SATA)适合长距离数据传输,而非近距离高速传输。串行总线通过差分信号技术(如双绞线)有效抑制线间串扰,抗干扰能力强,更适合远距离通信。而并行总线因多线间信号同步问题,在长距离传输时容易因时序差异和干扰导致速率受限 。
  2. 选项B
    错误。并行总线(如PCI、ISA)适合近距离高速数据传输,而非长距离。并行总线通过多数据通道同时传输数据位,理论速率高,但提升时钟频率会加剧信号时序同步问题和线间干扰,难以适应长距离传输。长距离场景下,串行总线更具优势 。
  3. 选项C
    正确。单总线结构(如早期ISA总线)将所有设备连接到同一总线上,虽然设计简单、易于扩展,但需分时工作(同一时刻只能有一对设备通信),导致系统整体性能受限。此外,适应不同种类设备的协议和控制逻辑会增加设计复杂性,进一步影响效率。
  4. 选项D
    错误。半双工总线(如对讲机通信)支持双向数据传输,但同一时刻只能单向传输,需交替进行。选项D混淆了“半双工”与“单工”的概念(单工总线仅支持单向传输,如广播) 。

总结

  • 串行总线:长距离、抗干扰,通过差分信号提升速率(如USB 3.0可达5Gbps)。
  • 并行总线:近距离、高速但成本高,时钟频率提升受限(如PCI总线频率通常不超过33MHz)。
  • 单总线结构:设计简单但性能瓶颈显著,多设备分时操作导致效率下降 。
  • 半双工与全双工:半双工支持双向交替传输,全双工可同时双向传输(如以太网) 。

http://www.ppmy.cn/news/1576306.html

相关文章

JMeter 接口关联方法及示例

JMeter 接口关联方法及示例 在 JMeter 中进行接口测试时,接口关联是非常重要的操作,它可以确保多个接口之间的数据传递和业务逻辑的连贯性。除了正则表达式提取器,还有多种方法可以实现接口关联,下面将详细介绍这些方法并给出实际…

李宏毅机器学习课程学习笔记04 | 浅谈机器学习-宝可梦、数码宝贝分类器

文章目录 案例:宝可梦、数码宝贝分类器第一步:需要定义一个含有未知数的function第二步:loss of a function如何Sample Training Examples > 如何抽样可以得到一个较好的结果如何权衡模型的复杂程度 Tradeoff of Model Complexity todo 这…

Visual Studio Code (VSCode) 使用 GDB 进行调试

在 Visual Studio Code (VSCode) 中使用 GDB 进行调试,通常用于调试 C/C 程序。以下是配置和使用 GDB 调试的步骤: 1. 安装必要工具 确保已安装以下工具: GCC/G:用于编译 C/C 代码。GDB:GNU 调试器。VSCode&#xf…

哈工大 计算机组成原理 第四章 存储器(上)笔记

4.1概述 A 一、存储器概述 1. 存储器的重要性 ‌定义‌:存储器是计算机系统中最重要的部件之一,负责存储指令和数据。‌功能‌:执行程序时所需的指令和数据来自存储器,程序的执行结果也保存在存储器中。‌应用‌:存…

创建一个简单的spring boot+vue前后端分离项目

一、环境准备 此次实验需要的环境: jdk、maven、nvm和node.js 开发工具:idea或者Spring Tool Suite 4,前端可使用HBuilder X,数据库Mysql 下面提供maven安装与配置步骤和nvm安装与配置步骤: 1、maven安装与配置 1…

​VS Code Go 开发配置

0.vscode安装 已安装 1.安装插件 安装第一个 2.构建第一个Go程序 https://www.youtube.com/watch?v1MXIGYrMk80 2.1新建一个文件夹 使用vscode打开 2.2打开终端新建一个模块 后面的地址,可以随意填写,不连接真实网站 go mod init demo/demo.com 2.3新建.go文件 在go.mo…

迷你世界脚本游戏接口:Game

游戏接口:Game 彼得兔 更新时间: 2024-05-07 15:52:59 具体函数名及描述如下: 序号 函数名 函数描述 1 doGameEnd(...) 游戏结束 2 dispatchEvent(...) 派发自定义事件 3 getDefString(...) 获取默认字符串 4 setScriptVar(...) 设置…

使用 Kubeflow 和 Ray 构建机器学习平台

使用 Kubeflow 和 Ray 构建一个稳健的 ML 平台。我们将深入讨论 Kubeflow 和 Ray 的独特功能,以及它们如何互补,共同创建一个强大的 ML 生态系统 集中化 ML 平台的需求 随着企业在 ML 旅程中的成熟,初始 ML 项目的临时性质逐渐让位于对更结构化和可扩展方法的需求。集中化…