操作系统——设备驱动和文件系统

L26 显示器

IO设备:键盘和显示器,磁盘(抽象出一个文件)

让外设工作起来,cpu发出指令给显卡中的一个寄存器(显存),显示器根据显卡中的信息来让显示器工作。所以让外设工作,只需要向对应的寄存器中发送指令,完成操作。外设去做对应的工作,外设服务程序执行结束后向cpu发送一个中断,cpu进行中断处理。

类似于out xxx, al这样的指令让外设工作,然后等外设完事后写中断处理程序。

向设备控制器等寄存器写的过程比较麻烦,为了让out做的统一,让用户使用起来方便,内部隐藏很多细节,形成统一的文件接口:文件视图。

总结:三件事,形成文件视图、发出out指令、形成中断处理

操作外设的程序:

打开外设文件(open),不论什么设备都是open、read、write、close。区别在文件名,不同的文件名对应不同的设备。根据设备文件找到控制器地址、内容格式等等。

printf内存写到显示器,fprintf内存写到磁盘

从write开始分支,1是显示器,

写设备驱动:写出核心out指令,将相应的函数注册在这些表上,创建dev什么文件和注册表对上,就行了。

编写文件驱动,是一个很重要的技能

L27 键盘

cup向外设发指令,原理简单,细节复杂,统一的文件视图,文件名,文件描述结构。

设备读写后的中断处理。键盘对应的是中断处理。

如何使用键盘?

用户:敲键盘、看结果

OS:“等待”用户敲键盘,敲了就中断(21号中断)

处理中断,根据扫描码得到ASCII码,ASCII码放入缓冲队列,等着进程去拿数据

L28 生磁盘的使用

原理一样:文件视图、out、中断,但是比前面显示器和键盘复杂很多。包装(抽象)层次复杂。

让磁盘工作起来,就是生磁盘

磁盘结构:盘面、磁道、扇区、磁头

磁盘数据访问的基本单位是大小为512字节的扇区

扇区的大小是传输时间和碎片浪费的折中

磁盘数据读写过程:移动磁头到相应的磁道上,旋转磁盘到相应的扇区上,和内存缓存配合进行读写。(控制器—>寻道—>旋转—>传输)

OS的核心就是向控制器中写柱面、磁头、扇区、缓存位置

out指令写这些数据,首先要知道这些数据,下面要把这一过程封装一下

通过盘块号读写磁盘(一层抽象)

磁盘驱动负责从block(一维地址)计算出cyl、head、sec(CHS)

OS内部实现一维地址到三维地址到编址,我们希望相邻的盘块可以快速读出。

L29 从生磁盘到文件

引出文件就是熟磁盘了,

L30 文件使用磁盘的实现
L31目录与文件系统
L32 目录解析代码实现
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值