第4单元设备管理
设备特点各异,如何管?
设备的分类
设备管理的目标
设备管理功能
举例
设备分类
2
块设备
又称存储设备,是存储信息的设备,如:磁盘、磁鼓。
(以块为单位传输信息)
字符设备
又称输入输出设备,能将信息从计算机外部输入到机内, 或反之,如:键盘、显示器、打印、调制解调器、网卡等
设备管理的目标
3
3
提高设备利用率
合理分配设备
提高设备与CPU、各外部设备之间的并行性
方便用户的使用
提供使用方便且独立于设备的界面
统一:对各种不同的设备提供一致的界面
独立于设备:用户使用的设备与物理设备无关
设备管理分为两层
内核
内核I/O子系统
SCSI
设备驱动程序
键盘
设备驱动程序
鼠标
设备驱动程序
PCI总线
设备驱动程序
软盘
设备驱动程序
…
SCSI
设备控制器
键盘
设备控制器
鼠标
设备控制器
PCI总线
设备控制器
软盘
设备控制器
…
SCSI
设备
键盘
鼠标
PCI
总线
软盘
驱动器
…
软件
硬件
硬件相关层
硬件无关层
一段操纵外设的程序
int fd = open(“/dev/something”); for (int i = 0; i < 10; i++) { write(fd,i,sizeof(int)); } close(fd);
(1) 不论什么设备都是open, read, write, close
操作系统为用户提供统一的接口!
(2) 不同的设备对应不同的设备文件(/dev/something)
根据设备文件找到控制器的地址、内容格式等等!
各层合作完成设备访问
键盘命令
系统调用接口
open(?),read(?),write(?),close()
磁盘命令
设备驱动
设备属性数据
进行解释
键盘控制器
磁盘控制器
中断处理
中断处理
键盘
磁盘
称为I/O系统
5
设备独立性概念
①什么是设备独立性
所谓设备独立性是指,用户在程序中使用的设备与实际使
用的设备无关,也就是在用户程序中仅使用逻辑设备名。
②逻辑设备名
逻辑设备名,是用户自己指定的设备名(或设备号),它是
暂时的、可更改的。
③物理设备名
物理设备名,是系统提供的设备的标准名称,它是永久
的、不可更改的。
设备独立性
int fd = open(“/dev/something”); for (int i = 0; i < 10; i++) { write(fd,i,sizeof(int)); } close(fd);
可不可以逻辑名都省略?
库函数(printf)
tty设备写(tty_write)
字符设备接口(crw_table[])
系统调用(write)
write_q队列
显示器写(con_write)
显存
mov pos, c
应用
OS做
设备驱动
①一个程序独立于分配给它的某种类型的具体设备
系统可以根据设备的使用情况,动态地分配给程序某类设
备中的任一台物理设备,程序都能正确地执行。
②程序应尽可能与它所使用的I/O设备类型无关
在输入(或输出)信息时,信息可以从不同类型的输入(或
输出)设备上输入(或输出),若要改变输入(或输出) 设备
的类型,程序只需进行最少的修改。
两种类型的设备独立性
第2种方案很多高级语言采用
设备管理做什么?
(1)提供一组I/O命令,以便用户进程能够在程序中提出I/O请求,这是用户使用外部设备的“界面”;
(2)记住各种设备的使用情况,实现设备的分配与回收;
(3)对缓冲区进行管理,解决设备与设备之间、设备与CPU之间的速度匹配问题;
(4)按照用户的具体请求,启动设备,通过不同的设备驱动程序,进行实际的I/O操作;I/O操作完成之后,通过中断将结果通知用户进程,从而实现真正的I/O操作。
无关层
相关层
第4单元设备管理 来自淘豆网www.taodocs.com转载请标明出处.