review

  • mmap?elf为了解决有效加载的问题。解决了按需加载,补全了os中却页的全过程
  • 播放流的数据 磁盘当中也不一定顺序存放。文件 链表存储。
  • 磁盘碎片整理。链表整理。
  • 文件系统 内存系统 数据存储与分配。速度差与持久性。
  • vfs的概念。面向对象。软件工程。反过来,合并成一套。抽象的接口,兼容性。虚拟文件系统,成为了标准。快速确认不存在,搜索算法,找到与找不到的时间复杂度。找不到,最多的情况。negative cache,告诉用户不存在的。优化。算法+os+archi.page cache.
  • 容错性。双份空间分配表。

电阻触摸屏幕工作原理

确认横轴与纵轴。 x y. 电压 电阻。

电容触摸屏幕

手 充电 放电。 嵌入式。

与计算机交互的设备。键盘的状态:打开与关闭,电路开关。

触摸屏与计算机相连接。触摸屏控制器。使用中断通告,数据读写接口。

设备特点

  • 速度慢。
  • 每个设备有自己独立工作逻辑,管理自己。os不操心。数据事件的传递

设备管理系统的结构

此寄存器非cpu中的寄存器,存储器存储采集的数据。数据 控制 状态;

设备的工作

总线分为两类,io 读写和内存读写分开来实现。两套不同指令,接到两套不同总线。总线频率阴晴不定如果大家都用一个主线,1次或者100万次。 读写次数,早期cisc 设计。一慢一快。 两套地址空间。 废弃。 另一种,统一,统一总线,硬件人喜欢。 最右边 兼容老式。

设备管理的问题

外部设备慢,但是希望cpu直接访问外部设备。高速总线控制设备,替cpu预先把数据办过来。

cpu的usb控制器缓存设备的mem数据。特权态这个设计在io指令之后,所以io 指令是用户态指令。向前兼容。使用ld st ,页表 设置权限。投射到内核地址空间,不让用户看到。 驱动程序:控制设备的代码。 设备管理程序与操作系统一并运转在特权模式。驱动程序厂商拥有与os一样权限。

总线架构

北桥 南桥 pcie? 待查

如何发现并传输数据

  • 发现:等待并轮询;中断
  • 传输:cpu 发起,逐字节传输;由DMA设备代为发起,以块为单位传输

1. 忙等待

cpu 发起 循环等待

2. 中断

3. DMA 控制器

专用设备来做。direct memory access

为什么没有dma轮询?

直接存储器访问方式

dma控制器:内存 与 磁盘 读写 控制信号 产生 cpu和dma两者一起请求,但内存只有一个 dma只在cpu不用的窗口使用。

  • 内存与cpu相比,内存更忙。

第二个问题,dma数据传到哪里?看不到页表,不能直接操纵内存。mmu能否访问?物理地址 虚拟地址 。用户空间。确切的物理地址空间。 (a) 无缓冲输入 (b) 缓冲区放在用户空间 (c) 缓冲区在内核空间,然后被复制到用户空间 (d) 在内核空间有双缓冲区


如何适当地使用缓冲

网络数据包从一端发送到另一端,需要复制拷贝多次。 rdma网卡设备,跳过所有的东西,用户态和内核态的管理。remote dma.能够知道用户空间

高速设备 中断 复杂上下文切换 权限切换 不现实。轮询外设太慢。故 使用轮询 知道网络状态。线程,loop.

取决于设备速度快慢。


给用户提供统一的接口

条码枪,虚拟键盘

another level of abstraction!屏蔽差异性。

两层,抽象类,键盘字符型,触摸屏,鼠标 ,绝对 相对位置,操作系统预制好的。