【计组OS】I/O方式笔记总结

news2024/11/23 9:02:18

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家


目录

IO方式:程序查询方式

工作原理

程序查询方式的详细流程:

1. 初始化阶段

2. 发送I/O命令

3. 循环检查状态

4. 数据传输

5. 继续查询

6. 操作完成

为什么如此效率低下!?

特点

优点

缺点

应用场景

与其他I/O方式的比较

IO方式:中断方式

什么是中断方式?

中断方式的工作原理

中断方式的优势

中断方式的组成部分

应用

向量中断

其实说白了就是个地址罢了 别被名字吓到了

I/O方式:中断方式的中断处理流程

1. 中断请求

2. 中断判优

3. 响应条件

4. 中断隐指令

5. 查询中断服务程序的入口地址

6. 中断处理

7. 恢复现场

8. 中断返回

做个总结吧


IO方式:程序查询方式

程序查询方式是一种基本的I/O操作方式,它依赖于CPU不断检查(查询)I/O设备的状态,以确定设备是否准备好进行数据传输。以下是对程序查询方式的详细讲解:

工作原理

  1. 查询状态:CPU通过发送查询指令来检查I/O设备的状态,判断设备是否准备好接收或发送数据。

  2. 等待设备就绪:如果设备尚未准备好,CPU将继续执行查询,直到设备状态表明它可以接受或发送数据。

  3. 数据传输:一旦设备就绪,CPU将启动数据传输过程,读取或写入数据。

程序查询方式的详细流程:

1. 初始化阶段

  • 在I/O操作开始之前,CPU初始化I/O设备,设置好相关的控制信息,如设备地址等。

2. 发送I/O命令

  • CPU向I/O设备发送读取或写入命令,告知设备即将进行的操作类型。

3. 循环检查状态

  • CPU通过程序不断查询I/O设备的状态,检查设备是否已经准备好进行数据传输。这一步骤是程序查询方式的核心,也是效率较低的原因。(这里有另外一种查询方式:定时查询 就不是一直忙等 而是过一会过来询问准备好没有)

4. 数据传输

  • 一旦I/O设备状态表明它已经准备好,CPU便开始数据的读取或写入操作。

5. 继续查询

  • 在数据传输完成后,CPU继续循环检查设备状态,以确保数据已正确传输,或准备下一次数据传输。

6. 操作完成

  • 当所有数据传输任务完成后,CPU停止查询,结束I/O操作。

为什么如此效率低下!?

刚刚第三步说了cpu一直在忙等 但是他为什么会这样 原因是因为 IO设备的数据寄存器是易失性的,只要在他准备好之后 不马上传输 数据就会消失!!!这是很重要的特点 大题基本上就是靠这个知识点去想的  选择题也是靠他来排除选项

特点

  • 简单性:程序查询方式的实现相对简单,不需要额外的硬件支持。
  • CPU资源占用:由于CPU需要不断查询设备状态,这可能导致CPU资源的浪费,尤其是在设备响应较慢时。

优点

  • 实现容易:不需要复杂的硬件支持,适用于简单的I/O操作。

缺点

  • 效率低:在设备响应时间较长的情况下,CPU的查询操作可能导致效率低下。
  • CPU利用率低:由于CPU需要不断查询,可能无法执行其他任务,降低了CPU的利用率。

应用场景

程序查询方式通常用于对实时性要求不高、I/O设备速度较慢的场景。

与其他I/O方式的比较

与中断方式和DMA(Direct Memory Access)方式相比,程序查询方式在数据传输效率和CPU资源利用上存在劣势。中断方式允许I/O设备在准备好时通知CPU,而DMA方式允许数据在不经过CPU的情况下直接在内存和I/O设备之间传输,这两种方式都能更有效地利用CPU资源。

IO方式:中断方式

在计算机系统中,I/O(输入/输出)操作是连接外部设备与CPU的重要桥梁。中断方式是实现高效I/O操作的一种机制。

什么是中断方式?

中断方式是一种允许I/O设备在需要时主动通知CPU进行服务的机制。这种方式使得CPU不必在每次I/O操作时都持续检查设备状态,从而可以更高效地利用CPU资源。

中断方式的工作原理

  1. 中断请求:当I/O设备需要CPU服务时,它会向CPU发送一个中断请求信号。

  2. 中断判优:如果CPU当前没有处理更高优先级的中断,它会根据中断请求的优先级来决定是否立即响应。

  3. 响应条件:CPU响应中断的条件包括:中断请求已被提出,CPU允许中断且中断功能未被屏蔽,且当前没有执行更高优先级的任务。

  4. 中断隐指令:一旦决定响应中断,CPU会执行一系列隐含指令,包括保存当前任务的状态,切换到中断服务程序。

  5. 中断处理:中断服务程序执行具体的I/O操作,完成后会恢复CPU的状态,使CPU可以回到被中断的任务。

中断方式的优势

  • CPU资源的高效利用:CPU无需在每次I/O操作期间不断检查设备状态,可以执行其他任务。
  • 实时性:中断机制可以快速响应外部设备的服务请求。
  • 灵活性:可以根据中断请求的优先级灵活处理多个I/O设备。

中断方式的组成部分

  • 中断请求:I/O设备向CPU发出的请求信号。
  • 中断判优:硬件电路决定的优先级判断机制。
  • 中断服务程序:处理中断请求的程序代码。
  • 中断隐指令:CPU在响应中断时自动执行的指令序列。

应用

键盘 鼠标 打印机等等

向量中断

这里的“向量”可以理解成 就像c语言里面的指向那样的作用 所以就用了“向量”一词

其实说白了就是个地址罢了 别被名字吓到了

I/O方式:中断方式的中断处理流程

中断方式是计算机系统中一种高效的I/O操作机制,允许I/O设备在需要时主动通知CPU进行服务。以下是中断处理流程的详细步骤:

1. 中断请求

  • 当I/O设备需要CPU服务时,它向CPU发出中断请求信号。

2. 中断判优

  • 如果CPU当前没有处理更高优先级的中断,它会根据中断请求的优先级来决定是否立即响应。

3. 响应条件

  • CPU响应中断的条件包括:
    • 中断源提出中断请求。
    • CPU允许中断并且中断功能未被屏蔽。
    • 一条指令执行完毕且没有更紧迫的任务。

4. 中断隐指令

  • 一旦决定响应中断,CPU会执行一系列隐含指令,包括:
    • 保存断点:记录当前CPU的状态,以便中断处理完毕后能恢复执行。
    • 引出中断服务程序:切换到处理该中断的程序。
    • 完成关中断:在中断服务程序执行期间,可能需要暂时关闭中断,以避免新的中断请求干扰当前处理。

5. 查询中断服务程序的入口地址

  • 中断向量用于查询中断服务程序的入口地址,以便CPU能够跳转到正确的中断处理代码。

6. 中断处理

  • 执行中断服务程序,进行必要的I/O操作。

7. 恢复现场

  • 中断服务程序完成后,CPU需要恢复之前保存的状态,以便能够从中断点继续执行。

8. 中断返回

  • 中断处理完毕后,CPU返回到被中断的任务继续执行。

做个总结吧


另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人动力学模型及其线性化阻抗控制模型

机器人动力学模型 机器人动力学模型描述了机器人的运动与所受力和力矩之间的关系。这个模型考虑了机器人的质量、惯性、关节摩擦、重力等多种因素,用于预测和解释机器人在给定输入下的动态行为。动力学模型是设计机器人控制器的基础,它可以帮助我们理解…

自动化设备上位机设计 四

目录 一 设计原型 二 后台代码 一 设计原型 二 后台代码 using SimpleTCP; using SqlSugar; using System.Text;namespace 自动化上位机设计 {public partial class Form1 : Form{SqlHelper sqlHelper new SqlHelper();SqlSugarClient dbContent null;bool IsRun false;i…

【MySQL基础篇】多表查询

1、多表关系 概述:项目开发中,在进行数据库表结构操作设计时,会根据业务需求及业务模板之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种…

react dangerouslySetInnerHTML将html字符串以变量方式插入页面,点击后出现编辑状态

1.插入变量 出现以下编辑状态 2.解决 给展示富文本的标签添加css样式 pointerEvents: none

windows上传app store的构建版本简单方法

我们在上传app store上架,或上传到testflight进行ios的app测试的时候,需要mac下的上传工具上传ipa文件到app store的构建版本上。 然而windows电脑这些工具是无法安装的。 因此,假如在windows上开发hbuilderx或uniapp的应用,可以…

【JavaEE】多线程进阶

🤡🤡🤡个人主页🤡🤡🤡 🤡🤡🤡JavaEE专栏🤡🤡🤡 文章目录 1.锁策略1.1悲观锁和乐观锁1.2重量级锁和轻量级锁1.3自旋锁和挂起等待锁1.4可…

分子AI预测赛Task4笔记(结束)

话不多说,直接上官方链接:‌​​​‍​⁠​‌​‍​​​‌​⁠‬​‬​​‌​​​​‬‬​​​​‍⁠‍‌​⁠Task3:进阶baseline详解 - 飞书云文档 (feishu.cn)Task4:持续尝试&…

嵌入式C语言面试相关知识——内存管理(不定期更新)

嵌入式C语言面试相关知识——内存管理(不定期更新) 一、博客声明二、自问题目1、嵌入式系统的内存布局是怎么样的?2、动态内存分配在嵌入式系统中的使用有什么注意事项?3、什么是内存碎片,如何减少内存碎片&#xff1f…

用ThreadLocal解决线程隔离问题

存在的以下代码所示的线程隔离问题: package study.用ThreadLocal解决线程隔离问题;/*线程隔离 - 在多线程并发场景下,每个线程的变量都应该是相互独立的线程A:设置(变量1) 获取(变量1)线程B&a…

【数据结构与算法】希尔排序

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法》 期待您的关注 ​

Go语言--复合类型之map、结构体

map Go 语言中的 map(映射、字典)是一种内置的数据结构,它是一个无序的 key-value 对的集合,比如以身份证号作为唯一键来标识一个人的信息。 格式 map [keyType]valueType 在一个 map 里所有的键都是唯一的,而且必须是支持和!操作符的类型…

实验五 图像增强—空域滤波

一、实验目的 了解图像平滑滤波器(均值滤波和中值滤波)和图像锐化算子(Sobel算子、Prewitt算子、Laplacian算子)在工程领域中的应用;理解图像平滑滤波器和图像锐化算子的工程应用范围;掌握图像平滑滤波器和…

[终端安全]-4 移动终端之硬件架构安全

1 移动终端硬件架构 上图图展示了典型移动终端硬件架构,包括应用处理器(AP)、基带处理器(BP)以及各类共享组件和外设,所有组件通过AXI总线(和APB桥)连接在一起。以下分别介绍基于整…

【Linux进阶】文件系统6——理解文件操作

目录 1.文件的读取 1.1.目录 1.2.文件 1.3.目录树读取 1.4.文件系统大小与磁盘读取性能 2.增添文件 2.1.数据的不一致(Inconsistent)状态 2.2.日志式文件系统(Journaling filesystem) 3.Linux文件系统的运行 4、文件的删…

69.WEB渗透测试-信息收集- WAF、框架组件识别(9)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:68.WEB渗透测试-信息收集- WAF、框架组件识别(8) 有无waf存在&am…

秋招提前批面试经验分享(下)

⭐️感谢点开文章👋,欢迎来到我的微信公众号!我是恒心😊 一位热爱技术分享的博主。如果觉得本文能帮到您,劳烦点个赞、在看支持一下哈👍! ⭐️我叫恒心,一名喜欢书写博客的研究生在读…

【MySQL】4.MySQL 的数据类型

MySQL 的数据类型 一.数据类型分类在这里插入图片描述二.注意点1.char VS varchar2.datetime VS timestamp3.enum 和 set 的使用方法 一.数据类型分类 二.注意点 1.char VS varchar char 的意义是直接开辟固定大小的空间,浪费磁盘空间,但是效率高varcha…

解决GPT-4o耗电难题!DeepMind新算法训练效率提升13倍,能耗降低10倍!

目录 01 有更好的解决方案吗? 02 从“超级batch”中筛选数据 03 技术介绍 04 实验结果 生成可学习batch 谷歌DeepMind推出的新算法JEST,将LLM训练的迭代次数减少了13倍,计算量降低了10倍,有望重塑AI未来。GPT-4o早已成为耗能…

下载,连接mysql数据库驱动(最详细)

前言 本篇博客,我讲讲如何连接数据库?我使用mysql数据库举例。 目录 下载对应的数据库jar 包 百度网盘 存有8.4.0版本压缩包:链接:https://pan.baidu.com/s/13uZtXRmuewHRbXaaCU0Xsw?pwduipy 提取码:uipy 复制这…

使用Ubuntu 22.04安装Frappe-Bench【二】

系列文章目录 第一章 使用VMware创建Ubuntu 22.04【一】 文章目录 系列文章目录前言什么是Frappe-Bench?使用安装ERPNext能实现什么效果? 官网给了一个说明 一、使用Ubuntu 22.04安装Frappe-Bench一、安装要求二、安装命令三、 可能出现问题 总结 前言 …