[操作系统] I/O硬件原理

操作系统之输入输出(I/O) 操作系统之输入输出I/O设备块设备块设备的缺点字符设备设备控制器内存映射I/O内存映射I/O的优点和缺点直接内存访问DMA工作原理重温中断精确中断和不精确中断I/O软件原理I/O软件目标设备独立性错误处理同步和异步传输缓冲共享和独立使用程序控制I/O使用中断驱动I/O使用DMA的I/OI/O层次结构中断处理程序设备驱动程序与设备无关的I/O软件用户空间的I/O软件盘盘硬件磁盘臂调度算法错误处理稳定存储器时钟时钟硬件时钟软件软定时器 我们之前的文章提到了操作系统的三个抽象,它们分别是进程、地址空间和文件,除 阅读详情

I/O硬件原理



1. I/O设备分类

I/O设备大致可以分为两类:块设备和字符设备。

  1. 块设备

    块设备把信息存储在固定大小的块中,每个块有自己的地址。所有传输以一个或多个完整的(连续的)块为单位。块设备的基本特征是每个块都能独立于其他块而读写。硬盘和USB都是块设备。

  2. 字符设备

    字符设备以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有任何寻道操作。打印机、鼠标以及大多数与磁盘不同的设备都可以看做字符设备。

2. 设备控制器

I/O设备一般由机械部件和电子部件两部分组成。电子部件称作设备控制器或适配器,它经常以主板上的芯片的形式出现。而机械部件就是设备本身。

设备控制器的任务是把串行的位流转换为字节块,并进行必要的错误校正工作。字节块通常首先在控制器内部的一个缓冲区中按位进行组装,然后在证明字节块没有错误后,将其复制到内存中。

3. 设备与CPU通信方法

每个设备控制器有几个寄存器用来与CPU通信。通过写入这些寄存器,操作系统可以命令设备发送数据、接收数据、开启或关闭,或者执行某些其他操作。通过读取这些寄存器,操作系统可以了解设备的状态,是否准备好接收一个新命令等。

除此之外,许多设备还有一个操作系统可以读写的数据缓冲区,可供程序或操作系统写入数据。

为了实现CPU与设备控制寄存器和数据缓冲区的通信,有两种办法可以采用

  1. 单独的I/O空间

    每个控制寄存器被分配一个I/O端口(一个8位或16位的整数)。所有的I/O端口形成一个I/O端口空间,并且受到保护使得普通用户程序不能访问。在这个方案中,I/O有自己的地址空间。

  2. 内存映射I/O

    将所有控制寄存器映射到内存空间中,每个控制寄存器被分配惟一一个内存地址,并且不会有内存被分配这一地址。

当CPU想要读入一个字的时候,不论是从内存中读入还是从I/O端口读入,都将需要的地址放到地址总线,同时还需要另一条总线指示需要的是I/O空间还是内存空间。

对于第一种方案,I/O空间和内存空间分别响应符合的需求就可以了。

对于第二种方案,因为都在内存空间中,所以内存模块和I/O设备需要将地址线和自己所服务的地址范围相比较,若符合才会响应请求。

4. 内存映射I/O

将所有控制寄存器映射到内存空间中,每个控制寄存器被分配惟一一个内存地址,并且不会有内存被分配这一地址。

内存映射I/O

优点:

  • 设备控制器只是内存中的变量,不需要特殊方法寻址。

  • 不需要特殊的保护机制阻止用户进程执行I/O操作,只需要避免将I/O控制寄存器对应的地址空间放入用户进程虚拟空间。额外的好处是可以将不同的设备驱动放在不同地址空间,防止驱动程序间的相互干扰。

  • 对于内存有用的指令,同样可以用来使用控制寄存器。

缺点:

  • 要使用额外的机制禁止对设备控制寄存器高速缓存,因为第一次引用设备可能导致它被高速缓存,随后的引用就只是从高速缓存中取值而不是查询设备了。

  • 在多总线机器中(有单独的内存总线),I/O设备无法查看内存地址,因为对内存的引用只在内存总线上。

    1. 第一种解决方法是首先将全部内存引用发送到内存,如果内存响应失败,CPU就放弃内存总线尝试其他总线。

    2. 第二种方法是在内存总线上放置探查设备,放过所有潜在地指向所关注的I/O设备的地址。造成的问题是I/O设备无法以内存所能达到的速度处理请求。

    3. 在PCI桥芯片中对地址进行过滤,预装一个范围寄存器,在寄存器中被标记为非内存的范围的地址将转发给PCI总线而不是内存。缺点是需要在预装时就确定内存范围。

5. 直接存储器存取(DMA)

无论一个CPU是否具有内存映射I/O,都需要寻址设备控制器以便与它们交换数据。CPU可以从I/O控制器每次请求一个字节数据,但是这样会浪费CPU时间,于是用到了直接存储器(Direct Memory Access, DMA)方案,这一方案需要一个叫做DMA控制器的硬件支持。

DMA

DMA控制器独立于CPU而访问系统总线。如图所示,它包含若干个可以被CPU读写的寄存器,其中包括一个内存地址寄存器、一个字节计数寄存器和一个或多个控制寄存器。控制寄存器指定要使用的I/O端口、传送方向、传送单位以及在一次传送中要传送的字节数。

工作原理:

  1. 在没有DMA时的读磁盘操作

    • 首先,控制器从磁盘驱动器串行地、一位一位地读一个块,直到将整块信息放入控制器内部缓冲区中。
    • 接着,计算校验和,以保证没有错误发生。
    • 然后,控制器产生一个中断。
    • 最后,当操作系统开始运行时,重复地从控制器的缓冲区一次一个字节地读取该块信息,并存入内存中。
  2. 使用DMA时

    • 首先,CPU设置DMA控制器的寄存器对它进行编程,所以DMA控制器直到将数据传送到哪里(即上图1)。
    • 接着,DMA控制器想磁盘控制器发出一个命令,通知它从从磁盘读数据到其内部缓冲区中,并进行校验。若数据有效,DMA控制器通过在总线上发出一个读请求到磁盘控制器发起DMA传送(即上图2)。
    • 然后,将数据写到内存中,当写操作完成时,磁盘控制器在总线上发出一个应答信号到DMA控制器。DMA控制器步增要使用的内存地址,并重复上述过程直到传送完所有数据。
      (即上图3,4)。
    • 最后,DMA中断CPU,通知CPU传送完成,当操作系统开始工作时,数据已经存在于内存中了,不需要再次复制。

模式选择:
许多总线能够以每次一字模式和块模式两种方式操作,DMA也可以。

  1. 每次一字模式

    DMA控制器请求传送一个字并且得到这个字。如果CPU也想使用总线,CPU必须等待。这一机制称为周期窃取,因为设备控制器偶尔从CPU偷走一个临时总线周期,会轻微延迟CPU。

  2. 块模式

    DMA控制器通知设备获得总线,发起一连串的传送,然后释放总线。之一机制叫做突发模式,比周期窃取效率更高,但是长时间突发传送会长时间阻塞CPU和其他设备。

  3. 飞越模式

    DMA控制器通知设备控制器直接将数据传送到主存,缺点是不灵活,不能执行设备到设备的复制。

为什么要在DMA开始之前,磁盘要将数据读入其内部缓冲区而不是使用飞越模式:

  1. 通过进行内部缓冲,磁盘控制器可以再开始传送前检验校验和,如果校验和错误,就不会传送,避免浪费。

  2. 一旦磁盘传送开始工作,从磁盘读出的数据就是以固定速率到达的,而不论控制器是否准备好接收数据。如果控制器将数据直接写到内存,则必须要为传送的每个字取得总线控制权。如果总线正忙,控制器必须等待,如果在前一个磁盘字还未被内存存储时,下一个磁盘字到达,控制器必须将其存放在某个地方。使用内部缓冲区,可以再DMA启动前避免使用总线。

6. 中断

当一个I/O设备完成工作时,就会通过在分配给它的一条总线信号线上置起信号来产生一个中断。该信号被主板上的中断控制器检测到,并决定下一步该做什么。

中断

如果这是没有其他中断未被处理,则中断控制器立即对该中断进行处理。如果有另一个中断正在被处理,或者另一个设备在总线上具有更高优先级的一条中断请求线上同时发出中断请求,该中断将暂时不被处理。

中断信号会导致CPU停止当前的工作并开始做其他的事情。为了处理中断,中断控制器在地址线上放置一个数字标明哪个设备需要关注,并且置起一个中断CPU的信号。地址线上数字被用做指向一个称为中断向量的表格的索引,以便读取一个新的程序计数器,这一程序计数器指向相应的中断服务过程的开始。

中断时,需要将程序计数器中的信息保存(也可以保存其他信息,但PC的信息必须保存以保证中断进程可以重新开始)。保存的位置可以有两种选择。

  1. 保存在内部寄存器

    在需要时操作系统可以读出内部寄存器,但是中断控制器之后无法得到应答,直到所有可能的相关信息被读出,以免第二个中断重写内部寄存器。将造成长时间死机并有可能丢失数据。

  2. 保存在CPU堆栈

使用用户堆栈可能会引发故障和不合法指针,使用内核堆栈可能会更改MMU上下文,从而造成TLB和高速缓存大部分失效,浪费时间。

7. 精确中断与不精确中断

在现代使用流水线和超标量的计算机中,中断不一定出现在每条指令执行后。即中断发生时,许多指令可能处在不同的执行阶段。中段发生时,程序计数器无法正确地反应已经执行过的指令和未执行的指令。因为许多指令可能被部分执行了

  1. 精确中断

    将机器留在一个明确的状态称为精确中断,有4特性:

    1. PC(程序计数器)保存在一个已知地方。
    2. PC所指向的指令之前的所有指令已经完全执行。
    3. PC所指向的指令之后的所有指令全都没有执行。
    4. PC所指向的指令执行状态已知。

    需要注意的是,对于PC指向的指令之后的指令,可以开始执行,但是需要在中断发生前撤销他们对寄存器或内存等造成的修改。

  2. 不精确中断

    不满足上述提到的4个特性的中断称作不精确中断。可以将一些致命的错误造成的中断设计为不精确中断。例如,除以0造成的编译错误的中断,因为不需要重新开始中断前的进程。

精确中断不精确中断


参考书目:现代操作系统第三版

操作系统——I/O设备管理(1) 计算机系统中不同类型的输入输出设备,如何对它们进行管理,使得各种设备资源能够得到充分、合理的利用,这是操作系统的一个主要的任务。 1、I/O硬件 电子专业的人关心的是硬件本身,他们看待输入输出设备是由芯片,导线,电源等等组成的一个硬件。 计算机专业的人从操作系统的角度看待输入输出设备,他们关心的是如何对它们进行编程。也就是这个硬件接受得控制指令是什么,完成的功能是什么,返回结果是什么等等。 阅读详情

相关推荐

Cartographer纯定位实战:从仿真到真机部署的避坑指南

本文详细介绍了将Cartographer算法应用于机器人纯定位模式的完整实战流程。通过对比传统AMCL方案的不足,阐述了Cartographer基于子图匹配实现高精度、高鲁棒性定位的优势。内容涵盖从仿真环境测试到真机部署的核心步骤,包括关键配置文件修改、源码调整以及参数调优,旨在帮助开发者避开常见陷阱,成功实现稳定可靠的机器人定位系统。

weixin_29063681的博客 251

基于stm32f429运行zephyr以及mcuboot

《Linux设备驱动开发详解》读书笔记 本书主要介绍linux设备驱动开发的方法,共有21章: linux设备驱动概述及开发环境搭建 驱动设计的硬件基础 linux内核及内核编程 linux内核模块 linux文件系统与设备文件 字符设备驱动 linux设备驱动中的并发控制 linux设备驱动中的阻塞与非阻塞I/O linux设备驱动中的异步通知与异步I/O 中断与时钟 内存与I/O访问 linux设备驱动的软件架构思想 linux块设备驱动 linux网络设备驱动 I2c核心、总线与设备驱动 USB主机

szxhcljyjsjdff的博客 2241

python——模拟砍价

类型:随机数。

m0_62488776的博客 1970

解惑-驱动开发中的I/O地址空间

1.I/O端口和I/O内存    设备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种

transistor0的专栏 892

ARM架构实战:在鲲鹏920服务器上用Debian12部署PVE虚拟化平台

本文详细介绍了在基于ARM架构的华为鲲鹏920服务器上,以Debian 12为底层系统,部署Proxmox VE(PVE)虚拟化平台的完整实战流程。文章重点解析了ARM64架构下PVE软件源的配置、内核安装的注意事项、部署后网络与存储的调优,并提供了针对ARM虚拟化环境的性能优化建议,为在国产化硬件上构建稳定高效的虚拟化环境提供了宝贵经验。

efc12345678的博客 780

从数据校准到论文呈现:fsQCA与NCA方法融合的完整实证研究指南

本文详细介绍了fsQCA(模糊集定性比较分析)与NCA(必要条件分析)方法融合的完整实证研究流程,从数据校准到论文呈现。通过软件操作技巧、R语言NCA包高效使用及论文写作规范,帮助研究者避免常见误区,提升研究质量与可靠性。特别适合需要进行组态分析的研究生和学者参考。

weixin_29215391的博客 414

中断处理 I/O内存

回顾:内核竞态与并发什么情况下会产生竞态1)SMP2)单CPU支持任务抢占3)中断和进程之间4)中断和中断之间解决竞态的方法1)中断屏蔽2)原子操作位原子操作×××原子操作 atomic{ int。。。。}3)自旋锁 优点:一旦可以获取锁,立即获取 缺点:长时间获取锁不成功,会消耗CPU资源 它所保护的临界资源(代码段)通常比较短4)信号量 down(。。。...

weixin_33860737的博客 238

【TensorRT】TensorRT C# API 项目介绍:基于C#与TensorRT部署深度学习模型(上篇)

开发了TensorRT C# API 2.0版本,该版本在开发时充分考虑了上一版本应用时出现的问题,并进行了改进。同时在本版本中,我们对接口进行了优化,使用起来更加简单,并同时提供了相关的应用案例,方便开发者进行使用。

grape_yan的博客 3038

计算机组成原理学习笔记(5):I/O

第五章 I/O 5.1 概述 5.1.1 输入输出系统的发展概况 外部设备的独立性越来越强 5.1.2 输入输出系统的组成 I/O软件部分分为I/O指令和通道指令 I/O指令 属于CPU指令 操作码相当于一个标志,指明I/O设备 命令码相当于普通指令的操作码,指出对I/O做出什么操作 设备码给出某一个I/O设备的编码或者具体某个I/O寄存器的位置(这些寄存器也就是I/O的端口) 通道指令 通道是一种小型的DMA处理器,能够实现小型的I/O设备和主机之间直接进行信息传送。通道有自己的处理器,有的通道

呆呆象呆呆的博客 2758

lammps蒙特卡洛MC模拟案例

在lammps中,和MC相关的模拟命令有三个:fix gcmc、fix atom/swap、fix sgcmc。在一个lammps模拟中,mc和md可同时存在,间隔运行,所以设置fix sgcmc命令的同时,可以同时设置系综(nve、nvt或者npt)。lammps官网自带案例中也有一个fix sgcmc的案例,主要模拟FeCu合金的MC建模。sgcmc命令可应用到合金的模拟中,如短程有序模拟。MC运行间隔为100步,最终的浓度比例为0.02,也就是2%的Fe原子交换为Cu原子。大家好,我是小马老师。

lammps_jiayou的博客 1824

企业微信第三方应用014_企业微信5种第三方应用的安装方式_上架到应用市场_服务商后台点击安装测试_生成应用推广二维码安装---企业微信开发016

成员授权的意思就是,只要是这个成员扫码安装了这个应用,那么这个应用就只有这个成员可以用。安装的时候可以设置可见范围,这个地方可以设置整个公司或者是某个部门或者是某些人可以让这个应用来进行操作。创建了以后,这个二维码就可以发出来进行推广别人用户扫描了以后就可以把自己的企业微信给安装上对应的应用了。然后在对应的这个微信的企业后台就可以看到在第三方中有这个应用了。可以看到这个就是服务商的后台对应的一个应用,我们点击打开应用。可以看到这里有两个授权,一个是成员授权,一个是管理员授权。就可以去创建推广二维码了。

添柴程序猿的专栏 588

操作系统-IO笔记

1 I/O 硬件原理 1.1 I/O 设备 IO设备大致可以分为:块设备和字符设备。 1.2 设备控制器 I/O设备一般有机械部件和电子部件两部分组成。 电子部件称作设备控制器,经常以主板上的芯片的兴衰出现。 1.2内存映射I/O CPU如何与设备的控制寄存器和数据缓存区进行通信? 方法一: 为每个控制寄存器分配一个I/O端口(I/O port) 方法二: 将所有的控制寄存器映射到内存空间中。 I/O 映射优点: 减少控制I/O的开销 不需要特殊的保护机制来阻止用户进程进行I/O 操作。 可以引用内存的

qq_33582129的博客 467

Python 爬虫进阶:淘宝热卖商品价格走势抓取、反爬与分析全流程

在大数据时代,数据是商业决策的重要依据。电商平台上的商品价格走势,对于商家调整经营策略、消费者选择购买时机都有着关键的参考价值。本篇文章将深入解析如何利用 Python 爬虫抓取淘宝热卖商品的价格走势数据,并应对其中的反爬机制,最后对数据进行分析,带领大家领略 Python 爬虫在电商领域的强大应用。

yansideyucsdn的博客 1057

【现代操作系统】之I/O硬件原理

什么是I/O硬件原理 不同人对I/O的理解是不同的,对于电子工程师而言,I/O硬件就是芯片,导线,电源,电机和其它组成硬件的物理部件。对程序员而言,I/O是一种软件接口,他们关心的是硬件可以接受的命令和怎样向硬件发出命令,以及硬件返回的信息和完成的功能。 I/O设备 I/O设备大致可分为两类:块设备和字符设备。 块设备:信息被存储在固定大小的块中,每个块都有自己的地址,数据传输以块为单位。硬盘、C...

Shijia Yin 1311

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[现代操作系统] I/O之硬件原理

I/O 硬件原理 I/O 设备 块设备 (block device) 字符设备 (character device) 设备控制器 (device controller / adapter) 内存映射 I/O 方案 工作原理 优点 缺点 DMA(直接存储器存取, Direct Memory Access) 工作原理 对 CPU 的延迟 周期窃取 (Cycle Stealing) 突发...

mbinary 836

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【操作系统概念】第13章:I/O系统

计算机的两个主要工作是I/O和处理。在很多情况下,主要工作是I/O,而处理只是附带的。例如,当浏览网页或编辑文件时,直接兴趣是读取或输入信息,而非计算答案。计算机的操作系统I/O功能是,管理和控制I/O操作和I/O设备。虽然其他章节也讨论了有关问题,但是这里汇集所有部分,以便给出一幅完整I/O图。首先,描述I/O硬件的基础知识,因为硬件接口本身对操作系统的内部功能有所限制。接着,讨论操作系统提供的 I/O服务以及这些服务的应用程序I/O接口的实现。

zzzzzyliu的博客 1098

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

现代操作系统: 第五章 输入/输出

除了提供抽象之外(进程、地址空间和文件),操作系统还要控制计算机的所有I/O(输入和输出)设备。 5.1 I/O硬件原理 对于电子工程师来言,I/O硬件就是芯片、导线、电源、电机和其他组成硬件的物理部件。对于程序员来言,则只注意I/O硬件提供给软件的接口。 5.1.1 I/O设备 I/O设备大致可分为两类:块设备和字符设备。 块设备:块设备把信息存储在固定大小的块中,每个块有自己的地址。,每个块...

Master-TJ的个人博客 3948

操作系统——输入/输出

  除了提供抽象以外,操作系统还需要控制计算机的所有I/O设备,操作系统必须向设备发送命令,捕捉中断,处理设备的各种错误,I/O部分的代码是整个操作系统中的重要组成部分。   1.  I/O硬件原理 对于程序员来说,I/O硬件是提供给软件的接口,我们的讨论仅限于如何对硬件编程,而不是其内部工作原理。   1.1 I/O设备 I/O设备可以分成两类:块设备和字符设备。   块设...

clamaa的专栏 278

操作系统学习笔记: IO设备

参考资料: 《现代操作系统 3th edtion》原书第五章 输入/输出 在 xmind 上记录 一、硬件原理 大致分类 块设备 CD-ROM/硬盘/USB 每个块都能独立于其他块而读写 字符设备 以字符为单位发送或接收一个字符流,而不考虑任何块结构 鼠标/打印机 其他设备 时钟 IO设备组成 电子部件 称作设备控制器(device controller)或...

我的博客 629

操作系统概念笔记——第十三章:I/O输入系统

文章目录第十三章:I/O输入系统13.2 I/O硬件13.2.1 轮询13.2.2 中断13.2.3 直接内存访问13.3 I/O应用接口13.3.1 块与字符设备13.3.4 阻塞与非阻塞I/O 第十三章:I/O输入系统 计算机有两个主要任务:I/O操作与计算处理 操作系统在计算机I/O方面的作用是管理和控制I/O操作和I/O设备 13.2 I/O硬件 计算机使用很多种设备。设备与计算机通信通过一个连接点(端口),例如串行端口。 如果一个或多个设备使用一组共同的线,那么这种连接称为总线。总线是一组线和一组

叶卡捷琳堡的博客 1224

操作系统概念(十一)——I/O系统

写在前面:这一章似乎并不是很重要。当然,坐等打脸 OS内核通过设备驱动程序(模块)与I/O子系统链接,驱动为I/O子系统提供了统一设备访问接口,与系统调用API为应用程序与OS之间提供了统一的标准接口一样。 一、I/O硬件 1、端口:PC与设备的连接点 2、总线(PCI):一组线和一组严格定义的可以描述在线上传输信息的协议 3、扩展总线:连接串行、并行端口和相对较慢的设备 4、控制器:用于操作端口...

君陌的博客 3155

深入解析I/O控制器:从硬件接口到操作系统交互的核心机制

摘要:本文深入解析I/O控制器的核心功能与工作机制,涵盖硬件架构和操作系统交互的全流程。首先明确I/O端口(设备寄存器)与I/O接口(硬件电路)的本质区别,指出前者是后者的可操作单元。系统阐述设备控制器的四大核心功能:指令翻译、状态管理、数据中转和差错控制,并详述其硬件组成(CPU接口、设备接口、I/O逻辑模块)。以磁盘操作为例,完整展现从OS请求处理、驱动介入、DMA传输到中断响应的全链路流程,特别分析现代优化技术如异步I/O、零拷贝和中断合并的实现原理。最后提出性能瓶颈的调优方向,强调硬件标准化与软件分

小李独爱秋的博客 3289

操作系统概念第十三章 I/O输入系统

I/O输入系统概述I/O硬件轮询中断直接内存访问IO应用接口块与字符设备内存映射文件阻塞和非阻塞IOIO内核子系统IO调度缓冲高速缓存假脱机与设备预留错误处理IO保护内核数据结构性能 概述 I/O设备技术呈现两个相矛盾的趋势 1、 硬件与软件接口的日益增长的标准化 2 、I/O设备日益增长的多样性 为了隐藏不同设备的细节与特点,操作系统内核设计成使用设备驱动程序模块的结构。 设备驱动程序为I/O子系统提供了统一接口,正如系统调用为应用程序与操作系统之间提供了统一的标准接口。 I/O硬件 设备与计算机通信有一

人间烟火的博客 961

【操作系统-133】I/O设备

I/O设备是计算机系统与外部环境之间的桥梁,负责输入和输出数据。根据设备的功能和特性,I/O设备可以分为输入设备、输出设备和输入/输出设备。操作系统通过中断、缓冲区和调度等机制高效地管理I/O设备,以实现计算机与外部设备的高效数据交换。I/O设备广泛应用于各种领域,支持从简单的用户输入到大数据传输、实时处理等复杂任务的处理。

m0_69378371的博客 1468

I/O基础知识:什么是I/O设备?

文章目录I/O设备I/O设备是哪些【1】块设备【2】字符设备设备控制器 I/O设备 操作系统的三个基础:进程、地址空间和文件 除此之外,操作系统还要控制所有的I/O设备。OS(操作系统)必须向设备发送命令、捕捉中断并处理错误、还应该在设备和OS之间提供一个接口 不同的人对I/O设备的理解是不同的: 电子工程师眼中:I/O设备是硬件即芯片、导线、电源和其他组成硬件的物理设备 程序员:I/O其实就是硬件提供给软件的接口 I/O设备是哪些 I/O设备(输入/输出设备):它是人类用来和计算机通信的外部硬件

小杨的博客 1万+

Java I/O底层是如何工作的?

目录 缓存处理和内核vs用户空间虚拟内存内存分页面向文件、块的I/O文件锁定面向流的I/O 缓存处理和内核vs用户空间 缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。通常,进程执行操作系统的I/O请求包括数据从缓冲区排出(写操作)和数据填充缓冲区(读操作)。这就是I/O的整体概念。在操作系统内部执行这些传输操作的机

665
上一篇: [LeetCode] 264. Ugly Number II
下一篇: [操作系统] I/O软件原理
LLLZHLIU
博客等级 码龄10年 19粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值