当前位置: 首页 > 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…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...