【软考-架构】1.3、磁盘-输入输出技术-总线
GitHub地址:https://github.com/tyronczt/system_architect
资料&文章更新
文章目录
- 存储系统
- 💯考试真题
- 输入输出技术
- 💯考试真题
- 第一题
- 第二题
存储系统
寻道时间是指磁头移动到磁道所需的时间;
等待时间为等待读写的扇区转到磁头下方所用的时间;
💯考试真题
(1)处理11个记录的最长时间为(C. 366ms)
原因分析:
- 单缓冲区的限制
系统使用单缓冲区时,每次只能读取一个逻辑记录到缓冲区中,处理完该记录后才能读取下一个。当磁盘旋转时,磁头需要等待目标逻辑记录重新转到其起始位置才能读取。 - 时间计算逻辑
- 磁盘旋转周期为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)
优化策略:
- 逻辑记录的间隔分布
将逻辑记录按间隔排列,例如优化后的顺序为:R0, R6, R1, R7, R2, R8, …, R5。这样处理完一个记录后,磁头恰好位于下一个记录的起始位置,无需等待磁盘旋转一周。 - 时间计算逻辑
- 每个记录的处理周期为 读取3ms + 处理3ms = 6ms。
- 总时间:11个记录 × 6ms = 66ms 369。
关键结论
- 最长时间由单缓冲区导致的旋转等待时间决定,优化前总耗时 366ms。
- 最少时间通过优化存储分布消除旋转等待时间,优化后总耗时 66ms。
关键分析步骤
- 初始位置:磁头位于21号柱面。
- 距离计算:
- 23号柱面(②、③、⑧)距离为2(最近)。
- 17号柱面(①、⑤、⑦)距离为4。
- 32号柱面(④、⑥)距离为11。
- 38号柱面(⑨)距离为17(最远)。
- 调度顺序:
- 第一步:处理最近的23号柱面请求(②、③、⑧)。根据题目表格中请求的原始顺序,优先处理②→③→⑧(同一柱面请求按出现顺序处理)。
- 第二步:磁头移动到23号柱面后,下一个最近的柱面是17号(距离6),处理①、⑤、⑦(同一柱面按出现顺序)。
- 第三步:磁头移动到17号柱面后,下一个最近的柱面是32号(距离15),处理④→⑥。
- 第四步:最后处理38号柱面的⑨。
- 选项匹配:
- D选项(②⑧③⑤⑦①④⑥⑨):
与推导结果一致,符合SSTF逻辑(23→17→32→38),且同一柱面请求按原始顺序排列。
- D选项(②⑧③⑤⑦①④⑥⑨):
结论
正确答案为选项D:②⑧③⑤⑦①④⑥⑨。
该顺序严格遵循最短移臂调度算法,确保每次磁头移动距离最短,并合理处理同一柱面内的请求顺序。
输入输出技术
【常考】计算机和外设间的数据交互方式:
- 程序控制(查询)方式
- 程序中断方式
- DMA方式(直接主存存取)
在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时。
💯考试真题
第一题
根据计算机系统中输入/输出控制方式的特点,正确答案为 D. DMA。
解析:
DMA(Direct Memory Access,直接存储器存取) 是一种完全由硬件控制的数据传输方式。其核心特点是:
- 无需CPU程序指令介入传输过程
在DMA方式下,CPU仅在数据传输的开始阶段(初始化DMA控制器)和结束阶段(处理中断)进行干预,而具体的数据传输由DMA控制器直接管理内存与外设之间的数据通路完成。 - 硬件接管总线控制权
DMA控制器通过向CPU申请总线控制权,接管系统总线后直接与内存交互,数据块传输完全由硬件实现,无需CPU逐条执行指令。 - 与其他方式的对比
- 程序查询/无条件传送:CPU需持续轮询或直接控制数据传送。
- 中断方式:每个数据传输需CPU响应中断并执行服务程序。
- DMA:仅在数据块传输的起始和结束时需要CPU参与,数据传输过程完全独立。
结论:
DMA方式通过硬件控制器实现高效、独立的数据传输,显著减少CPU负担,适用于高速、大批量数据交换场景(如磁盘、网络设备)。
第二题
正确的选项是 C.单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低,具体分析如下:
选项解析
- 选项A
错误。串行总线(如USB、SATA)适合长距离数据传输,而非近距离高速传输。串行总线通过差分信号技术(如双绞线)有效抑制线间串扰,抗干扰能力强,更适合远距离通信。而并行总线因多线间信号同步问题,在长距离传输时容易因时序差异和干扰导致速率受限 。 - 选项B
错误。并行总线(如PCI、ISA)适合近距离高速数据传输,而非长距离。并行总线通过多数据通道同时传输数据位,理论速率高,但提升时钟频率会加剧信号时序同步问题和线间干扰,难以适应长距离传输。长距离场景下,串行总线更具优势 。 - 选项C
正确。单总线结构(如早期ISA总线)将所有设备连接到同一总线上,虽然设计简单、易于扩展,但需分时工作(同一时刻只能有一对设备通信),导致系统整体性能受限。此外,适应不同种类设备的协议和控制逻辑会增加设计复杂性,进一步影响效率。 - 选项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࿰…...
(十)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语言中,可以通过调用Linux系统提供的API来获取和显示系统参数。以下是一些常见的系统参数及其获取方法: 1. 获取系统名称和版本 可以使用uname函数来获取系统名称、版本等信息。 #include <stdio.h> #include <sys/utsname.h>int main…...
突破Ajax跨域困境,解锁前端通信新姿势
一、引言 在当今的 Web 开发领域,前后端分离的架构模式已经成为主流,它极大地提升了开发效率和项目的可维护性。在这种开发模式下,前端通过 Ajax 技术与后端进行数据交互,然而,跨域问题却如影随形,成为了开…...
Kotlin协变与逆变区别
在Kotlin中,协变和逆变是泛型编程中的两个重要概念,它们允许我们在类型系统中更加灵活地处理类型关系。 1.协变:协变允许我们使用比原始类型更具体的类型。在kotlin中,通过在类型参数上加out关键字来表示协变,生产者,例…...
driver中为什么要使用非阻塞赋值
1. 模拟硬件时序行为 实际硬件行为:DUT的输入信号通常在时钟边沿被采样。Driver需要确保信号的更新与时钟同步,而非阻塞赋值的延迟更新特性(在时间步结束时统一生效)能够准确模拟寄存器的行为。 示例: always (posedg…...

模板字符串【ES6】
“路漫漫其修远兮,吾将上下而求索。”—— 屈原《离骚》 目录 什么是模板字符串?模板字符串特性及代码举例:详细举例用法: 什么是模板字符串? 模板字符串(Template Literals)是JavaScript中引入…...
通往 AI 之路:Python 机器学习入门-数据结构
Python 数据结构 Python 提供了多种数据结构来存储和操作数据,其中列表(list)、字典(dict)、元组(tuple)和集合(set)是最常用的几种。本章将详细介绍这些数据结构的基本…...
我们应该如何优化UI(基于UGUI)
这是一道面试题,下面,我们来详细分析这个问题。 目录 1. 减少 Draw Call 合理设置图集 避免材质和 Shader 的频繁切换 减少 UI 元素的重叠 2. 优化UI布局 3. 优化UI元素的渲染 4.优化UI动画 5. 优化 UI 事件处理 6. 运行时优化 1. 减少 Draw C…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 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? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

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

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