中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn Fall2013 第九讲 设备管理 中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn Fall2013
内容提要 I/O系统简介 I/O系统软件 I/O子系统的关键技术 I/O设备的类型 CPU对设备的访问 I/O控制方式 I/O调度、缓冲、caching、SPOOLing
内容提要 I/O系统简介 I/O系统软件 I/O子系统的关键技术 I/O设备的类型 CPU对设备的访问 I/O控制方式 I/O调度、缓冲、caching、SPOOLing
I/O 系统 Processor-memory subsystem Fast device slow device
I/O设备的类型 按设备的使用特性分: 按传输速率分类 按信息交换的单位分: 按设备的共享属性分 存储设备 输入输出设备:输入、输出、交互 低速:<1KB/S,键盘、鼠标等 中速:<1MB/S,打印机等 高速:>1M/S以上,磁盘等 按信息交换的单位分: 块设备;字符设备 按设备的共享属性分 独占设备 vs. 共享设备 虚拟设备:通过虚拟技术将一台独占设备变换为若干逻辑设备,可供多个进程同时使用
Characteristics of I/O Devices
CPU对设备的访问 通过设备控制器 CPU端口总线设备控制器 设备控制器:提供各种寄存器 I/O独立编址 I/O统一编址 端口,in和out操作 I/O统一编址 e.g., 0xa0000 ~ 0xfffff are reserved to ISA graphics cards and BIOS routines
I/O Control Methods(I/O控制方式) Polling(轮询) 程序I/O方式、忙-等方式 Interrupt driven(中断驱动)(图) 以字节为单位 DMA,Direct Memory Access,直接存储器访问(图) DMA控制器 以块为单位 直接访问内存 CPU只需要开始和结束时干预 I/O通道(更智能)
Interrupt-drive I/O Cycle
Six step process to perform DMA transfer Cycle stealing: when DMA seizes the memory bus, CPU is momentarily prevented from accessing main memory
内容提要 I/O系统简介 I/O系统软件 I/O子系统的关键技术 I/O设备的类型 CPU对设备的访问 I/O控制方式 I/O调度、缓冲、caching、SPOOLing
I/O系统软件的设计 挑战 目标 I/O系统的层次及其功能
I/O control challenges 设备种类繁多 Two challenges Applications → OS ← Devices How can the OS give a convenient, uniform I/O interface to applications? How can the OS be designed such that new devices can be attached to the computer without the OS being rewritten?
OS ← Devices For device manufacturers, device-driver layer hides differences among I/O controllers from kernel software Device driver Device controller hardware Device
Applications → OS For applications, I/O system calls encapsulate device behaviors in generic classes Device-driver layer hides differences among I/O controllers from kernel Devices vary in many dimensions Character-stream or block Sequential or random-access Sharable or dedicated Speed of operation read-write, read only, or write only
I/O软件设计的目标 与具体设备无关 统一命名 对错误进行处理 屏蔽速度差异:提供缓冲技术 合理分配和释放独占设备和共享设备 设备无关性,设备独立性: 应用程序独立于具体使用的物理设备 统一命名 对错误进行处理 屏蔽速度差异:提供缓冲技术 合理分配和释放独占设备和共享设备 合理选择I/O控制方式
I/O系统的层次及其功能 用户层软件 产生I/O请求、格式化I/O、spooling 设备独立性软件 映射、保护、分类、缓冲、分配 设备驱动程序 设置设备寄存器、检查寄存器状态 中断处理程序 硬件 执行I/O操作
中断处理程序 当一个进程(或者驱动)请求I/O时,被阻塞 I/O操作完成时,发出中断信号;CPU根据中断向量,进入中断处理 中断处理后,唤醒进程 OS Process 设备独立性软件 File or device OP Driver Request I/O blocked Sys call Device I/O Wake up INTR 中断处理
设备驱动程序 提供设备驱动接口给上层应用软件 对上层应用软件通过接口传递过来的命令 提供中断处理程序,及时相应 read、write等 检查其合法性 将其转换为具体的设备控制和操作命令,启动设备去执行,即发出I/O命令 非blocking,直接返回 Blocking,睡眠 提供中断处理程序,及时相应
设备独立性软件 设备独立性 设备独立性软件 逻辑设备 vs. 物理设备 好处: 1)设备分配时的灵活性 2)易于实现I/O重定向 执行所有设备的公有操作,包括 设备分配、逻辑到物理设备名的映射、设备保护、缓冲管理、差错控制、提供独立于设备的逻辑块等 向用户层(或文件层)软件提供统一接口
内容提要 I/O系统简介 I/O系统软件 I/O子系统的关键技术 I/O设备的类型 CPU对设备的访问 I/O控制方式 I/O调度、缓冲、caching、SPOOLing
Kernel I/O Subsystem Services I/O Scheduling Buffering Caching Spooling Device reservation Error handling
I/O Scheduling Scheduling E.g., Disk read Some I/O request ordering via per-device queue Some OSs try fairness, some not E.g., Disk read 0, 50, 100, now at 100 Reading 汤子瀛 三版 5.6.2 Another way to improve performance is by using storage space in main memory or on disk Buffering Caching(前面讲过) Spooling(前面讲过)
缓冲:在两个设备(应用)间传输数据时,用来临时存放数据的内存区 引入缓冲的原因: Buffering 缓冲管理 缓冲:在两个设备(应用)间传输数据时,用来临时存放数据的内存区 引入缓冲的原因: 缓和CPU和I/O设备之间速度不匹配的矛盾 减少对CPU的中断频率 提高CPU和I/O之间的并行性
缓冲机制之:单缓冲 Single buffer单缓冲 用户区(OS,时间M)缓冲区(设备,时间T)设备 假设计算时间为C Current C 与next T可并行 用户进程 计算(C) OS传送M 设备输入T I/O设备 工作区 缓冲区 T1 T2 T3 T4 设备 M1 M2 M3 OS C1 C2 C3 APP t
缓冲机制之:双缓冲 Double buffer双缓冲 用户进程 计算(C) 缓冲区1 工作区 I/O设备 缓冲区2 T1(缓冲1) M1 M2 M3 OS C1 C2 C3 APP t
作业: 设备控制方式有哪几种? 设备独立性。 脱机I/O和SPOOLing 为什么要引入缓冲机制?有哪几种缓冲机制?
循环缓冲和缓冲池 Circular buffer Buffer pool 类似前面介绍的经典的具有有限缓冲区的生产者和消费者问题 前三种,缓冲区是专用的 为提高缓冲区利用率:设置公共的缓冲池