<Linux>(极简关键、省时省力)《Linux操作系统原理分析之设备管理》(28)

《Linux操作系统原理分析之设备管理》(28)

  • 9 设备管理
    • 9.1 设备与设备管理
      • 9.1.1 设备的分类
    • 9.2 I/O 控制方式
      • 9.2.1CPU 控制方式
      • 9.2.2 通道控制方式
    • 9.3 缓冲技术
      • 9.3.1 缓冲技术的引进
      • 9.3.2 缓冲的种类
    • 9.4 设备的分配
      • 9.4.1 设备管理的数据结构
      • 9.4.2 设备分配策略
      • 9.4.3 设备分配算法
    • 9.5 设备处理程序与 I/O 进程
      • 9.5.1 设备处理程序
      • 9.5.2 I/O 进程

9 设备管理

9.1 设备与设备管理

9.1.1 设备的分类

按从属关系分:

设备种类说明
系统设备Os 生成时已登记在系统中的标准设备,如键盘、显示器等。
用户设备Os 生成时未登记在系统中的标准设备,如绘图仪、扫描仪等。

按设备的资源属性分

设备种类说明
独占设备打印机(大多数低速设备)
共享设备磁盘
虚拟设备独占设备——>共享设备

虚拟设备:指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干用户进程同时使用。通常把这种经过虚拟技术处理后的设备称为虚拟设备。例如SPOOLING技术.

9.2 I/O 控制方式

9.2.1CPU 控制方式

  1. 程序直接控制方式——CPU 一直对 I/O 控制干预在这里插入图片描述

  2. 中断控制方式——CPU 以字节为单位对 I/O 控制干预
    在这里插入图片描述

  3. DMA 方式——CPU 以一组数据块干预 I/O 控制
    DMA 方式又称直接存取(Direct Memory Access)方式。其基本思想是在外围设备和内存之间开辟直接的数据交换通道。在 DMA 方式中I/O 控制器具有比中断方式和程序直接控制方式更强的功能。另外除控制状态寄存器和数据缓冲寄存器之外,DMA 控制器中还包括传送字节计数器、内存地址寄存4器等。这是因为 DMA 方式窃取或挪用 CPU 的一个工作周期把数据缓冲寄存器中的数据直接送到内存
    地址寄存器所指向的内存区域中的缘故

9.2.2 通道控制方式

  1. I/O 通道:一种硬件机制,指专门用于 I/O 工作的处理机,它由自己的简单的与 I/O 操作相关的指令系统,如数据传输、设备控制等。通道执行的程序为通道程序。

  2. 通道方式的处理过程 通道方式的处理过程:CPU 向通道发出一条 I/O 指令,通道接收到指令后,从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的 I/O 任务后,才向 CPU 发出中断信号(可以提高 CPU 与 I/O 的并行处理能力)

在这里插入图片描述

  1. 通道的分类,按信息交换的方式,分为三类:

a.字节多路通道(中低速)(分时):字节为单位
b.数据选择通道(高速) :块为单位
c.数组多路通道(高中速)(分时):块为单位

  1. 瓶颈问题
    引起原因——通道不足
    措施:

a. 提高 I/O 设备的独立性,以减少占用通道的时间,提高 I/O 设备的独立性,最常用的方法是在设备和控制器增设缓冲
b. 增加通路,增加设备道主机之间的通路,是解决“瓶颈”问题的最有效的方法,即可把一个设备连到多个控制器上,而一个控制器又被连到多个通道上。如下图:

在这里插入图片描述

9.3 缓冲技术

9.3.1 缓冲技术的引进

1、 CPU 与 I/O 设备间速度不匹配
2、 减少 CPU 的中断频率
(防止每接收一次数据就中断一次,将数据先放到换冲区内,待满时,再中断 CPU,显然减少了中断次数)
3、 提高 CPU 和 I/O 设备的并行性
(例如:打印机工作时,CPU 继续进行计算工作)

9.3.2 缓冲的种类

  1. 缓冲的实现方式
    1)硬件方式
    一般是采用专用硬件缓冲器,如 I/O 控制器中的数据缓冲寄存器等。(成本比较高,除关键部件外,一般不采用);
    2)软件方式
    在内存中开辟出一个具有 N 个单元的专用缓冲区,以便存放输入输出数据。操作系统为每一个缓冲区建立一个数据结构,称为缓存控制块 BCB(buffer control block)。操作系统通过 BCB 对每一个缓存实施具体的管理。

  2. 缓冲的使用方式 缓冲的使用方式
    👉专用缓冲:为某设备/进程专门设置的
    👉公用缓冲:为所有的设备/进程设置的,为所有的设备/进程所共享

  3. 缓冲的组织方式
    👉单缓冲
    👉双缓冲
    👉循环缓冲

在这里插入图片描述
👉缓冲池:
在这里插入图片描述

9.4 设备的分配

9.4.1 设备管理的数据结构

1. 设备控制表 DCT
2. 控制器控制表 COCT
3. 通道控制表 CHCT
4. 系统设备表 SDT:记录已被连接到系统中的所有物理设备的情况,每个物理设备占一个表目。

在这里插入图片描述

9.4.2 设备分配策略

  1. 独占分配方式
  2. 共享分配方式(同时分配给多个作业使用,很复杂)
    在这里插入图片描述
  3. 虚拟分配方式
    虚拟技术 SPOOLING 技术:又称假脱机 I/O 操作,是对脱机输入输出工作的模拟,它需要缓冲技术支持并必须有高速、大容量且可随机存取的外存支持。可将一个独占设备虚拟成多台设备。

在这里插入图片描述

9.4.3 设备分配算法

1.先请求先服务(FCFS)
2.优先级高者优先

9.5 设备处理程序与 I/O 进程

设备处理程序包括驱动程序和 I/O 中断处理程序。I/O 处理程序通常是由 I/O 进程完成的。

9.5.1 设备处理程序

设备处理程序是负责直接控制设备完成实际的 I/O 操作的程序,设备驱动程序直接和硬件设备打交道。设备驱动程序包括对设备的各种操作,在操作系统的控制下,cpu 通过执行驱动程序来实现对设备底层硬件设备的处理和操作。

9.5.2 I/O 进程

I/O 进程:为了能够在处理机上执行设备处理程序,当前许多操作系统都设置了专门完成 I/O 操作的进程,属于系统进程。在不同的操作系统中,处理 I/O 操作和配置 I/O 进程的方式不同,大体可以分为三
种:
👉为每一类设备设置一个进程,它专门执行这类设备的 I/O 操作。
👉在整个系统中设置一个 I/O 进程,专门负责对系统中所有各类设备的 I/O 操作。也可以设置一个输入进程和一个输出进程,分别负责处理系统中所有的各类设备的输入或输出操作。
👉系统为每台设备建立一个 I/O 进程,它们分别执行设备各自的处理程序。
当前操作系统多数采用(2)方式。
I/O 进程一般在系统生成时被创建,平时处于睡眠等待状态。I/O 进程在两种情况下被唤醒:
👉当用进程发出设备请求(I/O 请求)。
👉出现 I/O 中断。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server——权限管理

一。SQL Server的安全机制 SQL Server 的安全性是建立在认证和访问许可两种安全机制之上的。其中.认证用来确定登录Sal Server 的用户的登录账户和密码是否正确.以此来验证其是否具有连接SQL Server 的权限;访问许可用来授予用户或组能够在数据库中执行哪…

火狐,要完了!

在过去几年中,关于Firefox 浏览器的衰落有过不少讨论。目前来说,很多公共的以及私营的大型网站都缺乏对Firefox的适当支持。但是Firefox也多次试图“自救”,甚至就在不久前,Mozilla 通过官博发文,表示 Firefox 在 2023…

ODrive移植keil(九)—— 抗齿槽效应算法

目录 一、齿槽效应1.1、齿槽效应的定义1.2、产生原因1.3、解决办法 二、硬件接线三、ODrive官方代码操作3.1、固件版本v0.5.13.2、抗齿槽校准原理3.3、校准注意事项3.4、校准操作 四、移植后的代码操作五、总结 ODrive、VESC和SimpleFOC 教程链接汇总:请点击   一、…

网络安全行业大模型调研总结

随着人工智能技术的发展,安全行业大模型SecLLM(security Large Language Model)应运而生,可应用于代码漏洞挖掘、安全智能问答、多源情报整合、勒索情报挖掘、安全评估、安全事件研判等场景。 参考: 1、安全行业大模…

【Java 基础】24 日期操作

文章目录 1.Date2.LocalDate3.LocalTime4.LocalDateTime5.DateTimeFormatter6.Period7.Duration8.ZoneId9.ZonedDateTime总结 日期和时间是我们常见的操作对象,Java 也提供了强大的日期和时间处理类库,使我们可以方便的进行日期的表示、计算、格式化等。…

SQL Server数据库的备份和还原

6.2 SQL Server备份和还原 数据库管理员最担心的情况就是数据库瘫痪,造成数据丢失,而备份作为数据的副本,可以有 效地保护和恢复数据。本节将介绍数据备份的原因,备份的方式.SOL Server的恢复模式.以及备 份策略和备份设备。 6.2…

思维模型 色彩心理效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知色彩影响情绪。 1 色彩心理效应的应用 1.1 色彩心理效应在营销中的应用 1 可口可乐公司的“红色”营销 可口可乐公司是全球最著名的饮料品牌之一,其标志性的红色包装已经成为了…

嵌入式_基于STM32F4标准库的Flash读写操作

嵌入式_基于STM32F4标准库的Flash读写操作 文章目录 嵌入式_基于STM32F4标准库的Flash读写操作前言一、STM32F4的 Flash 简介二、闪存的读写操作1.闪存的读取2.闪存的解锁、擦除和写入1.闪存解锁2.闪存擦除3.闪存写入 三、完整代码 前言 在STM32芯片内有一个Flash存储器断电后…

整数二分的建模

当题目能够使用整数二分法建模时&#xff0c;主要有整数二分法思想进行判定&#xff0c;它的基本形式如下&#xff1a; while(left < right) {int ans;//记录答案 int mid left (right - left) / 2;//二分if(check(mid)){//检查条件&#xff0c;如果成立 ans mid;//记录…

学习spring、springmvc、mybatis、ssm所有可能用到的依赖总结,父工程pom文件依赖,<packaging>pom</packaging>

1、父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

Java:UDP 通信方法(发送 + 接收)并 实现简单的聊天 详细代码

文章目录 UDP 通信编程发送 数据接收 数据实现简易的通信聊天 UDP 通信编程 发送 数据 创建 DatagramSocket 对象&#xff08;创办 快递公司&#xff09; 不传参&#xff0c;随机一个可用端口&#xff0c;传参&#xff0c;可指定端口。&#xff08;发送端口&#xff09;创建 …

Leetcode算法题笔记(1)

目录 哈希1. 两数之和1.1 解法11.1 解法2 2. 字母异位词分组2.1 解法12.2 解法2 3. 最长连续序列3.1 解法 小结 双指针4. 移动零4.1 解法14.2 解法2 5. 盛最多水的容器5.1 解法一5.2 解法二 6. 三数之和6.1 解法16.2 解法2 7. 接雨水7.1 解法1 小结 滑动窗口8. 无重复字符的最长…

随机Numpy数组的创建方法(第2讲)

随机Numpy数组的创建方法 &#xff08;第2讲&#xff09;         &#x1f379;博主 侯小啾 感谢您的支持与信赖。☀️ &#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&…

代码随想录算法训练营 ---第五十八天

今天开启单调栈的征程。 第一题&#xff1a; 简介&#xff1a; 本题有两种解法&#xff0c;第一种&#xff1a;暴力破解 两层for循环 时间复杂度为O(n^2) 超时了 第二种&#xff1a;单调栈解法也是今天的主角。 单调栈是什么&#xff1f; 单调递增栈&#xff1a;单调递增栈…

在vue中深度选择器的使用

一、为什么要使用深度选择器 在vue中&#xff0c;当我们使用了第三方库中的组件时&#xff0c;想要更改一些样式&#xff0c;达到我们想要的效果&#xff0c;由于scoped的影响直接编写同名样式时&#xff0c;是覆盖不了组件内的样式的。 为了达到我们想要的效果&#xff0c;…

关于最长上升子序列的动态规划问题的优化算法(二分搜索)

最长递增子序列 暴力解法&#xff1a; 思路&#xff1a;使用动态规划的思想&#xff0c;判断当前元素之前的所有元素&#xff0c;如果比当前元素小&#xff0c;则修改当前元素的最长递增子序列&#xff08;需判断是否需要修改&#xff09;。 时间复杂度&#xff1a;O(n^2) im…

智能优化算法应用:基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天鹰算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

记一次Java内存溢出导致程序宕机的问题及排查

Hi, I’m Shendi 记一次Java内存溢出导致程序宕机的问题及排查 问题场景 今天在使用工具中的 word 转 pdf 出了问题&#xff0c;报502错误&#xff0c;打开服务器发现服务被关闭了&#xff0c;起初以为是误关&#xff0c;打开后重新转换又出现了这个问题&#xff0c;在项目文件…

Redis保证高可用的三种方式

Redis保证高可用主要有三种方式&#xff1a;主从、哨兵、集群。 主从复制了解吗&#xff1f; Redis主从复制简图 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的 Redis 服务器。前者称为 主节点(master)&#xff0c;后者称为 从节点(slave)。且…

【EXCEL】offset函数

语法&#xff1a; offset(reference,row,column,[height],[width]) 例子&#xff1a;