现代操作系统 - IO

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

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其余部分提供统一的接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值