操作系统学习笔记(V):设备管理

news2024/9/24 21:22:15

目录

1 设备

1.1 设备的概念

1.2 设备的分类

2 I/O控制器

2.1 I/O控制器

1.定义

2.功能

3.组成

2.2 I/O控制方式

1.程序直接控制方式

2.中断驱动方式

3.DMA方式

4.通道控制方式

5.对比

2.3 I/O软件层次结构

1.用户层软件

2.设备独立性软件

3.设备驱动程序

4.中断处理程序

3 I/O核心子系统

3.1 I/O核心子系统

1.定义

2.I/O调度

3.设备保护

3.2 假脱机技术

1.定义

2.组成

3.共享打印机原理

3.3 设备的分配与回收

1.设备分配要素

2.静态与动态分配

3.数据结构

4.设备分配步骤

5.优化

3.4 缓冲区管理

1.缓冲区定义

2.作用

3.单缓冲

4.双缓冲

5.区别

6.循环缓冲区

7.缓冲池


1 设备

1.1 设备的概念

I/O设备:计算机输入与输出设备

1.2 设备的分类

按使用特性:人机交互类、存储设备、网络通信设备

按传输速率:低速、中速、高速

按信息交换的单位:块设备(磁盘)、字符设备(键鼠)

2 I/O控制器

2.1 I/O控制器

1.定义

设备包括机械部件与电子部件,电子部件即I/O控制器,又称设备控制器。

2.功能

接受和识别CPU发出的命令:利用控制寄存器,存放CPU命令和参数

向CPU报告设备状态:状态寄存器读取I/O设备状态

数据交换:数据寄存器,暂存CPU数据

地址识别:类似内存的地址

3.组成

一个I/O控制器可能对应多个设备,因此数据寄存器、控制寄存器、状态寄存器可能有多个,寄存器需要编址(包括内存映像:将I/O寄存器占用内存地址的一部分;寄存器独立编址:I/O专用地址)

2.2 I/O控制方式

1.程序直接控制方式

·完成一次读写操作的流程

·CPU干预频率

CPU需要在I/O操作开始前、完成后,及等待过程中不断地进行轮询检查。

·数据传送单位

每次读或写一个字

·数据流向

 ·优点:实现简单;缺点:CPU只能进行串行工作,长期处于忙等状态,利用率低

2.中断驱动方式

·完成一次读写操作的流程

引入中断机制。由于1/o设备速度很慢,因此在CPu发出读/写命令后,可将等待l/o的进程阻塞,先切换到别的进程执行。当I/o完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/o控制器读一个字的数据传送到CPu寄存器,再写入主存。接着,CPu恢复等待I/o的进程(或其他进程)的运行环境,然后继续执行。

CPU在每个指令周期末尾检查中断

·CPU干预频率

每次V/o操作开始之前、完成之后需要CPU介入。

·数据传送单位

每次读/写一个字 

·数据流向

 

 ·优点:CPU和IO可以并行工作,提示CPU利用率;缺点:频繁的中断消耗CPU时间

3.DMA方式

直接存储器存取。数据传送以块为单位,数据无需流向CPU

·DMA控制器

·完成一次读写操作的流程

·CPU干预频率

仅在传送一个或多个数据块的开始和结束时,才需要CPU干预。

·数据传送单位

每次读/写一个或多个块(注意:每次读写的只能是连续的多个块,且这些块读入内存后在内存中也必须是连续的)

·数据流向

 

 ·优点:提升数据传输速度与CPU工作效率;缺点:CPU每发出一条I/o指令,只能读/写一个或多个连续的数据块,不能读取离散数据块。

4.通道控制方式

通道可以识别并执行一系列通道指令

·完成一次读写操作的流程

·CPU干预频率

极低,通道会根据CPU的指示执行相应的通道程序,只有完成一组数据块的读/写后才需要发出中断信号,请求CPU干预。

·数据传送单位

每次读/写一组数据块

·数据流向

 ·优点:资源利用率进一步提高;缺点:需要专门的硬件支持

5.对比

2.3 I/O软件层次结构

1.用户层软件

提供了与用户交互的接口,将用户请求翻译成格式化的I/O请求,通过系统调用请求操作系统内核的服务

2.设备独立性软件

又称设备无关性软件,向上次提供统一的调用接口;实现设备的保护;差错处理;设备的分配与回收;数据缓冲区管理;建立逻辑设备名与物理设备名的映射关系,根据设备类型选择调用相应的驱动程序。

3.设备驱动程序

主要负责对硬件设备的具体控制,将上层发出的一系列命令(如read/write)转化成特定设备“能听得懂”的一系列操作。包括设置设备寄存器;检查设备状态等。

4.中断处理程序

当I/O任务完成时,I/O控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行。

中断处理程序可以直接与硬件对接

3 I/O核心子系统

3.1 I/O核心子系统

1.定义

设备独立性软件、设备驱动程序与中断处理程序属于操作系统的内核部分,即I/O核心子系统。

2.I/O调度

用某种算法确定一个好的顺序来处理各个I/O请求。

3.设备保护

将设备看做特殊文件,每个设备有相应的FCB

3.2 假脱机技术

1.定义

脱机:脱离主机的控制进行的输入/输出操作

假脱机:SPOOLing技术,用软件方式模拟脱机技术

2.组成

3.共享打印机原理

SPOOLing 技术可以把一台物理设备虚拟成逻辑上的多台设备,可将独占式设备改造成共享设备。

3.3 设备的分配与回收

1.设备分配要素

2.静态与动态分配

静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源
动态分配:进程运行过程中动态申请设备资源


3.数据结构

系统为每个设备配备一张用于记录设备情况的设备控制表(DCT)。

每个设备控制器对应一张控制器控制表(COCT),操作系统根据其信息对控制器进行操作和管理。

每个通道会对应一张通道控制表(CHCT),操作系统根据其信息对通道进行操作和管理。

系统中有系统设备表(SDT),记录了系统中全部设备情况,每个设备对应一个表目。

4.设备分配步骤

5.优化

缺点:
①用户编程时必须使用“物理设备名”,底层细节对用户不透明,不方便编程
②若换了一个物理设备,则程序无法运行
③若进程请求的物理设备正在忙碌,则即使系统中还有同类型的设备,进程也必须阻塞等待
改进:                                                                                                                                                建立逻辑设备名与物理设备名的映射机制,用户编程时只需提供逻辑设备名

3.4 缓冲区管理

1.缓冲区定义

缓冲区是一个存储区域,可以由专门的硬件寄存器组成,也可利用内存作为缓冲区。
使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合(如存储器管理中所用的联想寄存器,由于对页表的访问频率极高,因此使用速度很快的联想寄存器来存放页表项的副本)
一般情况下,使用内存作为缓冲区

2.作用

3.单缓冲

假设某用户进程请求某种块设备读入若干块的数据。若采用单缓冲的策略,操作系统会在主存中为其分配一个缓冲区。
当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以往缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出。

处理一块数据平均耗时Max(C,T) + M

4.双缓冲

假设某用户进程请求某种块设备读入若干块的数据。操作系统会在主存中为其分配两个缓冲区。

处理一个数据块的平均耗时为Max (T, C+M)

5.区别

双机通信时若使用单缓冲,同一时刻只能进行单向数据传输;若使用双缓冲,同一时刻可以进行双向数据传输。

6.循环缓冲区

将多个大小相等的缓冲区链接成一个循环队列

 

7.缓冲池

缓冲池由系统中共用的缓冲区组成,分为空缓冲队列、装满输入数据的缓冲队列、装满输出数据的缓冲队列。 

 另外,根据一个缓冲区在实际运算中扮演的功能不同,又设置了四种工作缓冲区:用于收容输入数据的工作缓冲区(hin)、用于提取输入数据的工作缓冲区(sin)、用于收容输出数据的工作缓冲区( hout) 、用于提取输出数据的工作缓冲区(sout)

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

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

相关文章

Windows ssh免密访问Linux服务器

文章目录1.在Windows上生成公钥和私钥2.将公钥中的内容复制到linux服务器3.确认linux服务器开启了允许SSH免密登录4.确认免密登录配置成功ssh提供了安全的身份认证的策略,在免密登录之前,首先需要一对公钥和私钥。客户端拿着私钥,服务端拿着公…

【计算机网络】超详细——华为eNSP的安装教程

网络工程师小白或初次接触计算机网络的学生,网络相关的书本学习起来枯燥乏味,这时需要仿真模拟器来加深对网络知识的理解。目前提供网络仿真平台有cisco、华为等,若您英语基础薄弱建议选华为,英语阅读能力较强的直接上cisco的模拟…

redis我记不住的那些命令(五)

背景:我记不住那么多命令,又是Linux命令,又是Git命令,又是kubernetes的命令,又是maven命令,又是redis命令。所谓好记性不如烂笔头,记下来吧。 一、set集合 集合的特点是 无序且各不相同的元素…

SpringSecurity(二十二)--OAuth2:实现资源服务器(下)通过redis和缓存实现TokenStore

一、前言 本章将在前面几章基础上进行讲解,所以大家最好尽量先去看一下前几章的内容再来跟进会好很多。那么本章我们将通过redis和本地缓存Caffeine对JdbcTokenStore进行重写,并且讲解资源服务器配置的新方案,使得我们可以不用在资源服务器又…

[附源码]计算机毕业设计springboot校园疫情防范管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

LeetCode 337. 打家劫舍 III(C++)*

该题也是使用动态规划的思路,主要考虑根节点的最大金额和左右子节点的关系,其中分为两种情况:有该结点有没有偷钱,其次要遵守不报警原则。可得到状态转移方程: f为根节点被选中的最大,g为根节点没被选中的最…

Day17-购物车页面-结算-动态计算已勾选商品的数据和选中状态

1.动态渲染已勾选商品的总数量 我的操作: 1》在 store/cart.js 模块中,定义一个名称为 checkedCount 的 getters,用来统计已勾选商品的总数量: 2》在 my-settle 组件中,通过 mapGetters 辅助函数,将需要的…

[附源码]Python计算机毕业设计Django健身房信息管理

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

GIS工具maptalks开发手册(五)01-用JSON载入地图——json格式绘制多个面之基础版

GIS工具maptalks开发手册(五)01-用JSON载入地图——json格式绘制多个面之基础版 效果-json渲染图层基础版 代码 index.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width,…

HTML5期末考核大作业,网站——旅游景点。 学生旅行 游玩 主题住宿网页

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【网络层】流量控制VS拥塞控制、路由器功能、SDN控制平面

文章目录前言网络层功能流量控制VS拥塞控制拥塞控制路由器功能转发---硬件解决------数据平面---------处理数据各种转发路由选择---软件解决---控制平面----控制网络协议运行-------OSPF、RIP、BGP数据平面控制平面---路由选择传统方法-------每路由器法----------路由选择处理…

[附源码]计算机毕业设计疫苗及注射管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Ubuntu20.04 通过deb包方式安装微信

写在前面 写文时间&#xff1a;2022.12.03 周六 自己的系统是Ubuntu20.04.5&#xff0c;安装的是 weixin_2.1.1_amd64.deb。 安装微信 从优麒麟官网下载微信deb安装包。 下载完成后&#xff0c;直接安装即可 sudo dpkg -i weixin_2.1.1_amd64.deb参考链接 [1] 优麒麟官网…

基于HFSS的线阵综合分析

摘要&#xff1a; 常规的阵列天线方向图综合是基于阵因子分析法&#xff0c;且不考虑单元之间电磁耦合的一种快速分析手段。本次推文则简单阐述一个基于HFSS的线阵综合实例。 HFSS中的直线阵 均匀直线阵的基础知识已在前面的推文中进行了多次阐述举例&#xff0c;这里就不赘…

正则表达式中的元字符,量词:贪婪和非贪婪,转义符: \s: 记得使用-z --null-data: 使用ascii码中空字符来替换新行,分组:““,和‘‘

正则表达式的所有内容&#xff1a;&#xff08;每一个解释下面都带一个样例&#xff09; 1.元字符 \&#xff1a;忽略后面一个字符的特殊含义 [a-b]&#xff1a;对a到b之间的任何字符进行匹配 ^&#xff1a;在每行的开始进行匹配 $ &#xff1a;在每行的末尾进行匹配 . .&…

FFmpeg编译参数分析

config.mak 来传递给 makefile &#xff0c;还会生成 config.h 给 C 程序 include 引入。 由于 configure 脚本的编译参数是非常多的&#xff0c;本文主要讲解一些比较常用的编译参数&#xff0c;一些特殊的编译参数&#xff0c;读者可通过以下命令查询。 configure --help1&…

[附源码]计算机毕业设计springboot小区物业管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

现金储备超400亿的小鹏,进入中途蓄力时刻

作者 | 刘洪 编辑 | Bruce造车新势力正在变得更加成熟。 11月30日美股盘前&#xff0c;小鹏汽车发布2022年Q3财报。如果说第一季度盈利曙光初现&#xff0c;第二季度逆势增长&#xff0c;那么第三季度&#xff0c;就是一次中途蓄力。 报告期内&#xff0c;小鹏的净亏损环比收窄…

Seata的这些安保机制是否会让你更放心

一、背景 SpringBoot 项目&#xff0c;通过引入seata-spring-boot-starter来接入 Seata&#xff0c;Seata 的能力会通过 SpringBoot 的自动装配机制来引入。在学习的时候是梳理有什么强大的、科技感十足的能力&#xff0c;但在试点的时候则更多考虑的是有哪些安保机制&#xf…

将内网网站发布上线【免服务器】

什么是cpolar&#xff1f; cpolar是一个非常强大的内网穿透工具&#xff0c;开发调试的必备利器。 它可以将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口&#xff0c;使得公网用户可以轻松访问您的内网服务器&#xff0c;无需部署至公网服务器。支持永久免费使…