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…...

算法练习-排序(二)
算法练习-排序(二) 文章目录算法练习-排序(二)1 合并排序的数组1.1 题目1.2 题解2 有效的字母异位词2.1 题目2.2 题解3 判断能否形成等差数列3.1 题目3.2 题解4 合并区间4.1 题目3.2 题解5 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面5.1 题目5.2 题解6 颜色分类6.1 题目6.…...

202302读书笔记|《长安的荔枝》——只要肯努力,办法总比困难多
202302读书笔记|《长安的荔枝》——只要肯努力,办法总比困难多 《长安的荔枝》这本书真是酣畅淋漓啊,读起来一气呵成,以讲故事的口吻叙述,上林署九品小官员——李善德,兢兢业业工作多年,终于借贷买了房&…...

java封装继承多态详解
1.封装 所谓封装,就是将客观事物封装成抽象的类,并且类可以把数据和方法让可信的类或者对象进行操作,对不可信的类或者对象进行隐藏。类就是封装数据和操作这些数据代码的逻辑实体。在一个类的内部,某些属性和方法是私有的&#…...

【uni-app教程】UniAPP 常用组件和 常用 API 简介# 知心姐姐聊天案例
五、UniAPP 常用组件简介 uni-app 为开发者提供了一系列基础组件,类似 HTML 里的基础标签元素,但 uni-app 的组件与 HTML 不同,而是与小程序相同,更适合手机端使用。 虽然不推荐使用 HTML 标签,但实际上如果开发者写了…...

阿尔法开发板 .bin 文件烧写
一. IMX6ULL 开发板简介 IMX6ULL 开发板是正点原子提供的阿尔法开发板,所用芯片为恩智浦,基于 Cortex-A7 架构。 这里介绍一下裸机篇中,关于如何将 .bin 文件烧写进 SD 卡,从而设备运行程序。 二. xx.bin 文件烧写 IMX6ULL支…...

Ceres-Solver 安装与卸载ubuntu20.04
卸载 sudo rm -rf /usr/local/lib/cmake/Ceres /usr/local/include/ceres /usr/local/lib/libceres.a 安装 sudo apt-get install libatlas-base-dev libsuitesparse-dev git clone https://github.com/ceres-solver/ceres-solver cd ceres-solver git checkout $(git descr…...

汇编系列02-借助操作系统输出Hello World
说明:本节的程序使用的是x86_64指令集的。 汇编语言是可以编译成机器指令的,机器指令是可以直接在CPU上面执行的。我们编写的汇编程序既可以直接在操作系统的帮助下执行,也可以绕过操作系统,直接在硬件上执行。 如果你打算编写的汇编程序在…...

【2023unity游戏制作-mango的冒险】-前六章API,细节,BUG总结小结
👨💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity游戏制作 ⭐mango的冒险前六章总结⭐ 文章目录⭐mango的冒险前六章总结⭐👨&a…...

进程控制及其操作
进程创建1.1 fork()函数1.2 fork()函数的返回值进程等待2.1 进程等待的必要性1.之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。 2.另外,进程一旦变成僵尸状态,那…...

Git常用命令复习笔记
1. Git与SVN区别,各自优缺点 Git: 分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有…...