Skip to content

Latest commit

 

History

History
207 lines (132 loc) · 4.47 KB

输入输出.md

File metadata and controls

207 lines (132 loc) · 4.47 KB

I/O 硬件管理

I/O设备

  • 块设备
  • 字符设备

设备控制器

IO设备由机械部件与电子部件构成 电子部件称为设备控制器或者适配器 控制器的任务: 将串行的比特流转换为字节块, 并完成纠错工作

内存映射IO

给控制寄存器分配一个IO端口, 所有IO端口形成IO端口空间 将IO设备寄存器映射到内存上 内存映射IO优点:

  • 无需使用特殊指令读取IO设备寄存器
  • 不需要特殊保护机制阻止用户进程进行IO操作
  • 可以引用内存的指令也能引用控制寄存器

缺点:

  • 不能使用高速缓存

直接存储器存取

加入一个中间层 从CPU-设备 变成 CPU - DMA - 设备

  • 突发模式
  • 飞越模式: 让设备控制器将数据直接写到主存

控制器内部缓存区存在的原因

  • 校验数据
  • 总线可能忙

中断

中断向量

  • 精确中断:机器停留在一个明确状态的中断

    • 程序计数器保留在一个已知的地方
    • 所指向的指令之前的所有指令已执行完毕
    • 所执行的指令之后的所有指令都还未执行
    • 所指向的指令的执行状态是已知的
  • 不精确中断

IO软件原理

IO软件的目标

设备独立性

  • 统一命名

错误处理

  • 低层能处理的问题,就不要交给高层

同步与异步

缓冲

程序控制IO

让CPU做全部工作 程序控制IO伪代码:

copy_from_user(buffer,p,count);
for(i = 0;i<count;i++){
    while (*p_regs != READY){
        *p_regd = p[i];
    }
}
return_to_user();

中断驱动IO

使用DMA的IO

  • 让DMA控制数据传输,而不必打扰CPU

IO软件层次

enter image description here

中断处理程序

在响应一个特定中断的时候,内核会执行一个函数,该函数叫中断处理程序

设备驱动程序

每个链接到计算机上的IO设备都需要某些设备特定代码进行控制,称之为设备驱动程序 可重入性

与设备无关的IO软件

  • 与设备无关的IO软件的功能

    • 设备驱动程序的统一接口
    • 缓冲
    • 错误报告
    • 分配与释放专用设备
    • 提供与设备无关的块大小

磁盘

结构

2020321928

  • 盘面(Platter):一个磁盘有多个盘面
  • 磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道
  • 扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小
  • 磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者将电信号转换为盘面的磁场(写)
  • 制动手臂(Actuator arm):用于在磁道之间移动磁头
  • 主轴(Spindle):使整个盘面转动

磁盘硬件

  • 磁盘 RAID
  • 磁盘格式化 低级格式化 分区 高级格式化

磁盘臂调度算法

旋转时间:主轴转动盘面,使得磁头移动到适当的扇区上 寻道时间:制动手臂移动,使得磁头移动到适当的磁道上 数据传输时间

  • 先来先服务算法
    • 按照磁盘请求的顺序进行调度
    • 公平简单,但是没有对寻道做任何优化,平均寻道时间较长
  • 最短寻道优先
    • 优先调度距距离磁头最近的磁道
    • 不够公平,如果一个请求距离当前磁头比较远,会出现饥饿现象
  • 电梯算法
    • 总是保持一个方向运行,直到该方向没有请求为止,然后改变运行方向

20203219747

错误处理

稳定存储器

  • 稳定写
  • 稳定读
  • 崩溃恢复

时钟

时钟硬件

  • 一次完成模式
  • 方波模式

时钟软件

  • 维护日时间
  • 防止进程超时运行
  • 对CPU使用情况进行记账
  • 处理alarm系统调用
  • 为系统各部分提供监视定时器
  • 完成信息收集

软定时器

用户界面:键盘、鼠标和监视器

输入软件

  • 键盘软件

    • 原始模式
    • 加工模式
  • 鼠标软件

    $\Delta$x $\Delta$y 按钮

输出软件

  • 文本窗口
  • X窗口系统
  • 图形用户界面
  • 位图
  • 字体
  • 触摸屏

瘦客户机

电源管理

  • 硬件问题

  • 操作系统问题

    • 显示器
    • 硬盘
    • CPU
    • 内存
    • 无线通信
    • 热量管理
    • 电源管理
    • 驱动程序接口
  • 应用程序问题