review设备管理
目录
1、设备管理基础知识
(1)、外部设备分类
(2)、注意事项
2、I/O硬件原理
(1)、不同方式对I/O设备分类
(2)、I/O控制方式
(3)、设备控制器
3、I/O软件原理
(1)、I/O软件设计目标和原则
(2)、设备驱动程序的
(3)、用户空间的I/O软件
4、缓冲技术
5、虚拟设备
(1)、SPOOLing为什么又叫假脱机技术?
(2)、什么是虚拟设备?实现虚拟设备的主要条件是什么?
1、设备管理基础知识
(1)、外部设备分类
- 存储型设备:磁带机、磁盘机等,以存储大量信息为主和快速检索为目标,在系统中存储持久性信息,它是作为内存的扩充,因此叫外存
- I/O设备:显示器、打印机、通信设备等,他们把外界信息输入到计算机中,把计算结果从计算机输出,完成计算机之间的交互或者人机交互
(2)、注意事项
- 设备管理系统是计算机中最为复杂的一部分,通常使用I/O中断、缓冲区管理等多种技术,这些措施能够很好地克服由于I/O设备和CPU速度不匹配的问题,使主机和设备能够并行工作,提高设备使用效率
- 另一方面,操作系统将所有设备抽象为文件,将其统一在文件系统之下,赋予文件属性,对设备的操作就类似于对文件的操作,其优点是:尽可能统一文件和设备的I/O处理;尽可能把设备文件和普通文件纳入同一保护机制下
2、I/O硬件原理
(1)、不同方式对I/O设备分类
- 按照I/O操作特性可以分为:输入型设备、输出设备、存储型设备
- 按照I/O信息交换为单位分为:字符设备、块设备
- 其中输入型和输出型设备通常是字符设备,它与内存进行交换的单位是字节,即一次交换1个或者多个字节,存储型设备通常是块设备
- 存储型设备又可以分为顺序存储设备和直接存储设备
(2)、I/O控制方式
CPU 和并行工作具有重大意义,能大幅度提高计算机系统的效率和资源利用率。从早期的采用轮询方式,CPU 全程参加I/O操作,到使用中断方式,以减少CPU 参与I/O操作的工作量,直到引入DMA和通道方式,可以完全在没有CPU 的情况下实现I/O操作,消除系统性能瓶颈
- 轮询查找:又称程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据
- 轮询方式使用三条指令:查询指令,查询设备是否就绪;读写指令,当设备就绪时执行数据交换;转移指令:当设备未就绪时执行转移指令转向查询指令继续查询
- 一方面CPU 轮询设备的当前状态会终止原程序的执行,浪费宝贵的时间;另一方面,I/O准备就绪后,需要CPU参与当前的数据传输工作。所以可见CPU和设备只能串行工作,而不能并行执行,不能充分发挥主机功效,设备也不能得到合理的利用,整个系统的效率很低
- 中断方式:设备与CPU之间必须要有中断请求线,设备控制器的状态存储器中有相应的中断允许位
- 程序中断方式I/O由于不必忙式轮询设备,所以 CPU 和设备可以实现部分并行操作,所以与程序查询方式相比使得整个 CPU 的资源得到更加充分的利用
- 在I/O中断的方式中数据缓冲区很小,当缓冲区装满数据之后便会发生中断,那么在数据传输过程中发生中断的次数就会过多,这样就会大量耗费 CPU 的时间。若是系统配置多种设备,这些设备都是通过中断处理方式实现并行工作,会使得中断次数急剧增加,造成 CPU 来不及响应或者丢失数据
- DMA方式
- DMA不仅设有中断机制而且还有DMA传输控制器,若是出现DMA和CPU同时经总线访问内存的情况,cpu总是把总线占有权让给DMA,称为“周期窃用”。窃取时间通常是一个存取周期,让设备和内存之间实现数据交换,而不再需要CPU 的干预,这样可以减轻CPU 的负担。每次传输数据的数据的时候,不必进入到中断系统,进一步提高了 cpu 资源利用率
- 但是DMA传输需要窃取时钟周期,会降低 CPU 的处理效率,DMA的功能不强,不能满足I/O 操作的复杂功能,所以在大型计算机中一般使用通道技术
- 通道方式
- 通道方式是DMA方式的发展,能够再次减少cpu对I/O操作的干预。它能够充分发挥CPU 和设备之间并行工作的能力,也可以使种类繁多且物理特性各异的设备能够以标准的接口连接到计算机系统中
- 通过通道来管理和控制I/O操作,把CPU 从I/O 操作中彻底解放出来,实现设备和CPU 并行操作,通道之间并行操作,设备之间并行操作,设备之间并行操作,使整个系统效率高效
(3)、设备控制器
- 接受或者识别 CPU 或通道发来的消息。例如,磁盘控制器能接受读、写、查找等各种命令
- 实现数据交换。包括设备和控制器之间的数据传输,且通过数据总线或通道,控制器和内存之间数据传输
- 发现或和记录设备及自身的状态信息,供CPU 处理使用
- 设备地址识别
3、I/O软件原理
(1)、I/O软件设计目标和原则
- I/O软件设计的总体目标是高效性和通用性
(2)、设备驱动程序的
- 设备驱动程序主要包含三部分功能
- 设备驱动程序的功能是从独立于设备的软件中接受并且执行I/O请求
- 设备初始化。在系统初次启动的时候或者进行数据传输时,预置设备和控制器以及通道的状态
- 执行设备驱动例程。负责启动设备,进行数据传输,对于具有通道的I/O设系统,此例程还负责生成通道命令和通道程序,启动通道工作
- 调用和执行中断处理程序。负责处理设备和控制器以及通道所发出的各种中断
(3)、用户空间的I/O软件
- SPOOLing软件
- SPOOLing就是在内核外运行的系统I/O软件,它采用预输入、预输出、和井管理技术,是多道程序设计系统中处理独占资型设备的一种方法,创建守护进程和特殊目录解决独占型设备额空占问题
4、缓冲技术
- 目的:为了解决 cpu 与设备之间速度不匹配的矛盾以及协调逻辑记录大小和物理记录大小不一致的问题,提高 CPU 和设备的并行性,减少I/O操作对 CPU 的中断次数,放宽对 CPU 响应时间的要求,操作系统普遍采用缓冲技术
- 实现缓冲区技术的基本思想是:当进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后将数据送至缓冲区,若是顺序写请求,则不断地将数据填入缓冲区,直到装满为止,此后进程可以继续计算,同时系统将缓冲区中内容写到设备上。当进程执行读操作输入数据时,先向系统申请一个缓冲区,系统将设备上的一条物理记录读至缓冲区,根据要求把当前所需要的逻辑记录从缓冲区中选出并传送给进程
- 常用的缓冲技术:单缓冲、双缓冲和多缓冲
5、虚拟设备
(1)、SPOOLing为什么又叫假脱机技术?
Spooling是一种将计算机输出数据暂存到磁盘或其他存储设备中的技术,以便后续处理。它被称为假脱机技术,是因为它可以让计算机在处理输出数据时,看起来像是脱机状态,但实际上数据已经被暂存到了存储设备中,可以随时被访问和处理。这种技术可以提高计算机的效率和可靠性,减少了对打印机等外部设备的依赖。
(2)、什么是虚拟设备?实现虚拟设备的主要条件是什么?
虚拟设备是指通过软件模拟出来的一种设备,它可以在不依赖于实际硬件的情况下提供相应的功能。实现虚拟设备的主要条件是需要有一定的软件开发技术和对硬件的深入理解,同时需要有足够的计算资源和操作系统支持。
相关文章:
review设备管理
目录 1、设备管理基础知识 (1)、外部设备分类 (2)、注意事项 2、I/O硬件原理 (1)、不同方式对I/O设备分类 (2)、I/O控制方式 (3)、设备控制器 3、I/O软…...
Cadence Allegro 导出Bill of Material Report (Condensed)详解
⏪《上一篇》 🏡《总目录》 ⏩《下一篇》 目录 1,概述2,Bill of Material Report (Condensed)作用3,Bill of Material Report (Condensed)示例4,Bill of Material Report (Condensed)导出方法4.1,方法14.2,方法2,...

B. Sherlock and his girlfriend
Sherlock has a new girlfriend (so unlike him!). Valentines day is coming and he wants to gift her some jewelry. He bought n pieces of jewelry. The i-th piece has price equal to i 1, that is, the prices of the jewelry are 2, 3, 4, ... n 1. Watson…...
Spring SpEL表达式
Java知识点总结:想看的可以从这里进入 目录17、Spring SpEL17.1、简介17.2、配合value使用17.2.1、基本字面值17.2.2、类相关表达式17.2.3、properties17.2.4、T运算符17.2.5、new17.2.6、Elvis运算符17.2.7、运算符17.2、配合XML使用17、Spring SpEL 17.1、简介 S…...
Nginx反向代理原理详解与配置
Nginx反向代理是一种常用的反向代理技术,它允许您将一个或多个Web服务器上的内容公开给Internet上的客户端,而不必暴露您的服务器的IP地址。Nginx反向代理的原理是:客户端发出一个HTTP请求,Nginx服务器收到请求后,将请…...
Happen-Before从入门到踹门
什么是Happen-Before有人翻译为"先行发生原则",其实也没错,但是更准确的说法应该是,前一个操作的值,后一个总能察觉到。Happen-Before的八条规则程序有序性:在前面的代码优先于在后面的代码执行volatile的变…...

电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)
👨🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

Java——N皇后问题
题目链接 leetcode在线oj题——N皇后 题目描述 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ÿ…...

Mybatis一级缓存与二级缓存
一、MyBatis 缓存缓存就是内存中的数据,常常来自对数据库查询结果的保存。使用缓存,我们可以避免频繁与数据库进行交互,从而提高响应速度。MyBatis 也提供了对缓存的支持,分为一级缓存和二级缓存,来看下下面这张图&…...

LQB,手打,PCF8591,ADDA转换,AD1是光敏电阻,AD3是电位器,DA输出
在上述at24c02de 基础上,添加三个函数 一个是读取通道1光敏电阻的数据; 一个是读取通道3的电压; 一个是输出DA的数据。。 5V的AD DA。 如果读入的电压是5V,输入AD,就是255; 如果是0V,就是00000…...
【计组笔记06】计算机组成与原理之控制器和总线结构
这篇文章,主要介绍计算机组成与原理之控制器和总线结构。 目录 一、控制器功能 1.1、控制器组成 1.2、控制单元的输入和输出...
elisp简单实例: auto-save
elisp 能找一个简单又实用的代码很不容易,以下代码不是我的原创,只是结合自己的理解,添加修正了一些注释,荣誉归原作者,感谢原作者的开源精神! 调用说明: 把后面代码存为auto-save.el 在init.el 中写上 (require auto-save) 就可以了. 下面是auto-save.el 内容了. ;; 我…...

写字楼/园区/购物中心空置率太高?快用快鲸智慧楼宇系统
客户租不租你的写字楼,事关区位、交通、环境、价格、面积、装修等诸多因素,但很多招商部对这些影响客户决策的数据并不重视,在客户初次上门看房时仅简单记录姓名、联系方式、需求面积,对其他核心数据熟视无睹,也为日后…...

【JavaSE】数组的定义和使用(上)
数组的定义和使用(上)6-数组的定义与使用1. 数组的基本概念1.1 为什么要使用数组1.2 什么是数组1.3 数组的创建及初始化1.3.1 数组的创建1.3.2 数组的初始化1.4 数组的使用1.4.1 数组中元素的访问1.4.2 遍历数组2. 数组是引用类型2.1 初始JVM的内存分布2…...

计算机的学习路线
本文是介绍如何成为一个Geek,一个真正的计算机高手。 适合有成为IT领域技术大牛的人参考。 写给大一新生和所有向深耕IT领域的人,避免走一些弯路。 第一门入门的必备功课-语法与算法 什么是计算机? 用来做运算的机器 电子计算机在运算方面…...

TD算法超详细解释,一篇文章看透彻!
【已解决】TD算法超详细解释和实现(Sarsa,n-step Sarsa,Q-learning)一篇文章看透彻! 郑重声明:本系列内容来源 赵世钰(Shiyu Zhao)教授的强化学习数学原理系列,本推文出于非商业目的分享个人学习…...

4.1 路由器(华硕 官改/梅林 华为 小米 路由) 使用花生壳 实现远程管理
最近添置了一台华硕的八爪鱼GT AC5300,到手后刷了官改,而里面软件中就提供了花生壳程序,想到花生壳为每个用户提供了两条免费映射(带宽为1mbs,流量为1g/月),所以就打算利用来做一个远程访问。具…...

内容算法解读:提高内容摘要与原文的一致性(Faithfulness)
全文摘要:受益于预训练语言模型的发展,应用神经网络模型提取内容摘要的技术也获得了长足进步。但目前还存在一个未被很好解决的问题:神经网络模型提取的摘要不能如实反映原文档的中心思想,没有做到忠实(not faithful&a…...

python用openpyxl包操作xlsx文件,统计表中合作电影数目最多的两个演员
题目🎉🎉🎉:编程完成下面任务:已知excel文件“电影导演演员信息表.xlsx”如下图所示:🍳🍳🍳要求:使用 openpyxl 包操作打开此文件,编写程序统计在…...

Lesson12---人工神经网络(1)
12.1 神经元与感知机 12.1.1 感知机 感知机: 1957, Fank Rosenblatt 由两层神经元组成,可以简化为右边这种,输入通常不参与计算,不计入神经网络的层数,因此感知机是一个单层神经网络 感知机 训练法则&am…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...