现代操作系统 - IO

I/O原理:硬件与软件层面的解析
本文介绍了I/O硬件和软件的基本原理,包括块设备与字符设备的区别,设备控制器的作用,以及DMA在数据传输中的角色。在软件方面,重点讨论了设备独立性、错误处理、缓存机制以及IO软件的层次结构,如用户级别的IO软件、设备驱动程序和中断处理程序。此外,还提到了设备驱动程序的统一接口和设备的共享与独占概念。

I/O

I/O硬件原理

设备

块设备: 块设备把信息储存在固定大小的块中, 每个块有哦自己的地址, 传输是以完整的块为单位的. i.e. USB

字符设备: 以字符为单位发送或接收一个字符流, 而不考虑任何块结构. i.e. 打印机, 鼠标

设备控制器

控制器的任务是把串行的位流转换位字节块, 并进行必要的校正工作

DMA - Direct Memory Access

直接储存器读取, 可以把这个理解成IO设备跟CPU的媒介, 或者代替CPU做一部分工作. CPU会对DMA控制器编程, 然后DMA控制负责与IO设备交互, 等到需要的时候再通知CPU传输工作已经完成了

I/O软件原理

目标

做到设备独立性, 可以访问任意的IO设备, 无需事先指定设备.

跟设备独立性相关的是统一命名, i.e. USB可以mount到目录 usr/ast/backup 下, 这样复制一个文件到usr/ast/backup/monday就是将文件复制到USB上

错误处理: 尽量在接近硬件的层面得到处理

缓存: 数据离开设备之后通常不能直接放在最终的目的地, 需要缓存

共享设备和独占设备: 比如磁盘能同时提供多个用户使用是共享设备, 打印机有单个用户使用是独享设备

IO软件层次

用户级别的IO软件 → 设备无关的OS软件 → 设备驱动程序 → 中断处理程序 → 硬件

设备驱动程序的统一接口

目的是为了让IO和驱动程序看起来是相同的, 所以在OS的层面提供一个标准的接口. 当驱动程序装载时, OS记录这张函数指针表地址, 当OS需要调用一个函数时, 通过这张表发出间接调用.

在命名上, 分主设备号和次设备号

小结

IO是一个比较杂的话题, 这里主要总结了最基本的IO的点. IO组织分为4个层次, 中断服务程序, 设备驱动程序, 与设备无关的OS软件和用户IO, 设备驱动程序处理运行设备的细节并向OS其余部分提供统一的接口

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值