当前位置: 首页 > news >正文

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

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)。
  • 单总线结构:设计简单但性能瓶颈显著,多设备分时操作导致效率下降 。
  • 半双工与全双工:半双工支持双向交替传输,全双工可同时双向传输(如以太网) 。

相关文章:

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

GitHub地址:https://github.com/tyronczt/system_architect 资料&文章更新 文章目录 存储系统💯考试真题输入输出技术💯考试真题第一题第二题 存储系统 寻道时间是指磁头移动到磁道所需的时间; 等待时间为等待读写的扇区转到…...

Linux软连接与时区日期

软连接 使用ln命令创建软连接。 在系统中创建软连接,可以将文件,文件夹连接到其他为止。 类似于Windows系统的快捷方式。 语法:ln -s 参数1 参数2 -s选项,创建软连接。 参数1,被链接的文件或文件夹。 参数2&#xff0…...

(十)Mapbox GL JS 中点击 Marker 时获取与该 Marker 相关的自定义数据的解决办法

在 Mapbox GL JS 中,如果你想在点击 Marker 时获取与该 Marker 相关的自定义数据,可以通过几种方式将数据绑定到 Marker 上,并在点击时获取这些数据。以下是详细的实现方法,包含代码示例和说明。 方法一:使用 JavaScript 对象属性绑定数据 你可以直接将自定义数据绑定到 …...

PyCharm怎么集成DeepSeek

PyCharm怎么集成DeepSeek 在PyCharm中集成DeepSeek等大语言模型(LLM)可以借助一些插件或通过代码调用API的方式实现,以下为你详细介绍两种方法: 方法一:使用JetBrains AI插件(若支持DeepSeek) JetBrains推出了AI插件来集成大语言模型,不过截至2024年7月,官方插件主要…...

(七)消息队列-Kafka 序列化avro(传递)

(七)消息队列-Kafka 序列化avro(传递) 客从远方来,遗我双鲤鱼。呼儿烹鲤鱼,中有尺素书。 ——佚名《饮马长城窟行》 本文已同步CSDN、掘金平台、知乎等多个平台,图片依然保持最初发布的水印&…...

js基础二

JavaScript基础下 1 事件处理 JS 事件(event)是当用户与网页进行交互时发生的事情,例如单机某个链接或按钮、在文本框中输入文本、按下键盘上的某个按键、移动鼠标等等。当事件发生时,您可以使用 JavaScript 中的事件处理程序&a…...

WSBDF レクチア 定义2 引理3 wsbdf的乘子

定义2 引理3 wsbdf的乘子 ここまで 寝みます❓...

Qt之QStateMachine等待

在项目中经常需要等待,我们模拟0-30的数,假如我们其中5, 25的数需要进行等待,等待用户处理完自己事情后,按下按钮继续,找Qt的项目中有一个 QStateMachineqstatemmachine类提供了一个分层有限状态机。 QSta…...

Wireshark 插件开发实战指南

Wireshark 插件开发实战指南 环境搭建流程图 #mermaid-svg-XpNibno7BIyfzNn5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XpNibno7BIyfzNn5 .error-icon{fill:#552222;}#mermaid-svg-XpNibno7BIyfzNn5 .error-t…...

基于SpringBoot的“青少年心理健康教育网站”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“青少年心理健康教育网站”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体结构图 实体属性图 系统首页界…...

23-整数转罗马数字

代码 测试用例 测试结果 测试结果 12. 整数转罗马数字 中等 相关标签 相关企业 七个不同的符号代表罗马数字,其值如下: 符号值I1V5X10L50C100D500M1000 罗马数字是通过添加从最高到最低的小数位值的转换而形成的。将小数位值转换为罗马数字有以…...

SpringBoot+Redis+Mybatis-plus黑马点评

短信登录 基于Session实现登录 流程: 发送短信验证码-->短信验证码注册登录-->校验登录状态(保存用户到ThreadLocal,方便后续使用) 不能每次请求服务都要进行登录状态校验,解决办法:拦截器 在Sp…...

深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配

深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配 一、引言二、OpenCV 的安装(一)使用 pip 安装(二)使用 Anaconda 安装 三、OpenCV 基础操作(一)图像的读取、显示与保存(…...

【C语言显示Linux系统参数】

在C语言中&#xff0c;可以通过调用Linux系统提供的API来获取和显示系统参数。以下是一些常见的系统参数及其获取方法&#xff1a; 1. 获取系统名称和版本 可以使用uname函数来获取系统名称、版本等信息。 #include <stdio.h> #include <sys/utsname.h>int main…...

突破Ajax跨域困境,解锁前端通信新姿势

一、引言 在当今的 Web 开发领域&#xff0c;前后端分离的架构模式已经成为主流&#xff0c;它极大地提升了开发效率和项目的可维护性。在这种开发模式下&#xff0c;前端通过 Ajax 技术与后端进行数据交互&#xff0c;然而&#xff0c;跨域问题却如影随形&#xff0c;成为了开…...

Kotlin协变与逆变区别

在Kotlin中&#xff0c;协变和逆变是泛型编程中的两个重要概念&#xff0c;它们允许我们在类型系统中更加灵活地处理类型关系。 1.协变&#xff1a;协变允许我们使用比原始类型更具体的类型。在kotlin中&#xff0c;通过在类型参数上加out关键字来表示协变,生产者&#xff0c;例…...

driver中为什么要使用非阻塞赋值

1. 模拟硬件时序行为 实际硬件行为&#xff1a;DUT的输入信号通常在时钟边沿被采样。Driver需要确保信号的更新与时钟同步&#xff0c;而非阻塞赋值的延迟更新特性&#xff08;在时间步结束时统一生效&#xff09;能够准确模拟寄存器的行为。 示例&#xff1a; always (posedg…...

模板字符串【ES6】

“路漫漫其修远兮&#xff0c;吾将上下而求索。”—— 屈原《离骚》 目录 什么是模板字符串&#xff1f;模板字符串特性及代码举例&#xff1a;详细举例用法&#xff1a; 什么是模板字符串&#xff1f; 模板字符串&#xff08;Template Literals&#xff09;是JavaScript中引入…...

通往 AI 之路:Python 机器学习入门-数据结构

Python 数据结构 Python 提供了多种数据结构来存储和操作数据&#xff0c;其中列表&#xff08;list&#xff09;、字典&#xff08;dict&#xff09;、元组&#xff08;tuple&#xff09;和集合&#xff08;set&#xff09;是最常用的几种。本章将详细介绍这些数据结构的基本…...

我们应该如何优化UI(基于UGUI)

这是一道面试题&#xff0c;下面&#xff0c;我们来详细分析这个问题。 目录 1. 减少 Draw Call 合理设置图集 避免材质和 Shader 的频繁切换 减少 UI 元素的重叠 2. 优化UI布局 3. 优化UI元素的渲染 4.优化UI动画 5. 优化 UI 事件处理 6. 运行时优化 1. 减少 Draw C…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...