操作系统ch10-IO设备管理合编.pptx

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.1 设备管理概述 10.2 I/O控制方式 10.3 缓冲技术 10.4 设备分配与驱动 主要内容 第10章 I/O设备管理 设备管理是操作系统的重要组成部分 同其他管理来说,该部分内容比较复杂凌乱。因为设备种类繁多,各自有着不同的特点,所以很难制定一个通用的、规范的管理方法 设备管理的方法主要有3种: (1)操作系统直接操纵设备的运行,例如直接程序控制、中断 方式控制 (2)操作系统间接操纵设备的运行,例如DMA和通道方式 (3)操作系统通过使用设备驱动程序,将设备管理工作通过任 务(进程)的形式来体现。OS只需制定标准,将具体操 纵设备的程序交给不同的制造商去开发 10.1 设备管理概述 认识计算机外设与计算机! 认识计算机外设与计算机! 想一想外设怎么工作? 想让外设工作并不复杂! I/O系统想给用户提供一个什么样的视图? 看一段操纵外设的程序 显然操作系统将完成… 键盘命令 磁盘命令 设备驱动/中断服务程序 键盘控制器 磁盘控制器 中断处理 中断处理 键盘 磁盘 用户库函数 IO系统用户接口 函数名 功能 create() 创建设备 remove() 删除设备 open() 打开设备 close() 关闭设备 read() 从设备中读取数据 write() 向设备中写入数据 ioctl() 控制设备(例如设置波特率等) Linux I/O: open/close/read/write/lseek Vxworks I/O I/O系统如何向设备发命令? I/O系统向设备控制器发命令 设备控制器 控制寄存器 设备地址1 设备地址2 … 设备地址n 数据/状态寄存器 控制信号 (中断等) CPU 设备1 设备n CPU、设备控制器与设备之间关系 I/O系统向哪里发送设备发命令? 读写设备控制器的寄存器! mov [100], ax 关键是地址 设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送 I/O控制方式一般有4种: 程序直接控制(查询)方式 中断控制方式 直接内存存取(DMA)方式 通道控制方式 10.2 I/O控制方式 I/O系统发完命令后做什么? I/O系统发完命令后做什么? 方案1: 原地踏步等待! 轮询! 轮询 浪费CPU资源(CPU比外设快太多了)! 例子:程序方法控制I/O设备读入数据流程 程序直接控制(查询)方式 工作 步骤小结: (1)当某进程需要输入/输出数据时,由CPU向设备控制器发出一条I/O指令启动设备工作(对于输出操作,则CPU还要向数据寄存器中存放输出数据); (2)在设备输入/输出数据期间,CPU不断地循环进行查询设备状态寄存器的值(检查I/O工作是否完成)。 (3)若完成,对输入操作来说CPU则从数据寄存器中取出数据,然后进行下一次的输入/输出数据或结束。 读I/O控制器状态 从I/O控制器中读一个字 取出该字存到内存 传送完成? 下一条指令 检查状态? CPU → I/O I/O → CPU 出错 I/O → CPU CPU → 内存 完成 就绪 未完成 未就绪 向I/O控制器发读指令 例子:程序方法控制I/O设备读入数据流程 I/O系统发完命令后做什么? 方案2: 设备就绪了告诉CPU一声! 中断 中断是大部分I/O的处理方式! 例子:中断方法控制I/O设备读入数据流程 该进程进入阻塞态 (等待输入完成) 该进程向I/O控制器发读指令 置中断允许(在CPU状态字中) 处理输入的数据 发生中断 某进程(有I/O请求) 其他进程 进程调度 执行程序指令 执行程序指令 执行程序指令 输入中断服务程序 恢复现场 唤醒请求本次I/O设备的进程 将数据寄存器中的数据传送到某特定内存单元中 保护现场 I/O设备执行读操作 当完成读操作后,将数据放在数据寄存器中,同时I/O控制器向CPU发出中断信号 I/O设备 执行程序指令 进程调度 唤醒 轮询和中断 SJA1000 CAN总线控制器:SJA1000 是一种I/O 设备基于内存编址的微控制 VxWorks操作系统,强实时嵌入式操作系统 引导程序中使用轮询实现星上软件修复 应用程序中使用正常的中断服务程序 轮询和中断 轮询和中断 VxWorks中与中断相关的重要API函数 (1)intConnect():中断连接,将中断向量与ISR入口函数绑定 SYNOPSIS STATUS intConnect    (     VOIDFUNCPTR * vector,/* interrupt vector to attach to  */     VOIDFUNCPTR  routine, /* routine to be called     */     i

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档