《操作系统》第十章:IO设备管理.ppt

《操作系统》第十章:IO设备管理.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

-*-哈工大计算机科学与技术学院软件基础教研室10.1设备管理概述10.2I/O控制方式10.3缓冲技术10.4设备分配与驱动主要内容第10章I/O设备管理设备管理是操作系统的重要组成部分

同其他管理来说,该部分内容比较复杂凌乱。因为设备种类繁多,各自有着不同的特点,所以很难制定一个通用的、规范的管理方法。设备管理的方法主要有3种:(1)操作系统直接操纵设备的运行,例如直接程序控制、中断

方式控制。(2)操作系统间接操纵设备的运行,例如DMA和通道方式。(3)操作系统通过使用设备驱动程序,将设备管理工作通过任

务(进程)的形式来体现。OS只需制定标准,将具体操

纵设备的程序交给不同的制造商去开发。10.1设备管理概述认识计算机外设与计算机!PCI总线图形控制器IDE控制器总线控制器CPU-内存总线扩展总线接口扩展总线并行口想一想外设怎么工作?PCI总线总线控制器CPU-内存总线IDE控制器发出一个读命令读完后向CPU发出中断将数据送往内存读磁盘CPU向控制器中的寄存器读写数据控制器完成真正的工作,并向CPU发中断信号想让外设工作并不复杂!I/O系统想给用户提供一个什么样的视图?看一段操纵外设的程序 intfd=open(“/dev/something”);

for(inti=0;i10;i++){

fprintf(fd,”Count%d\n”,i);

}

close(fd);(1)不论什么设备都是open,read,write,close操作系统为用户提供统一的接口!(2)不同的设备对应不同的文件(设备文件)设备文件中存放了设备的属性!显然操作系统将完成…键盘命令系统调用接口open(),read(),write(),close()磁盘命令设备驱动设备属性数据进行解释键盘控制器磁盘控制器中断处理中断处理键盘磁盘称为I/O系统I/O系统如何向设备发命令?系统接口设备命令设备控制器系统接口中断处理设备中断I/O系统向设备控制器发命令设备控制器的结构readwritecontrolstatus显存寄存器组硬件控制器总线接口设备控制器控制寄存器设备地址1设备地址2…设备地址n数据寄存器控制信号(中断等)CPU设备1设备nCPU、设备控制器与设备之间关系I/O系统向哪里发送设备发命令?读写设备控制器的寄存器!怎么读写?readwritecontrolstatus显存寄存器组硬件控制器总线接口mov[100],ax关键是地址设备寄存器的编址独立编址:需要独立的指令(in,out),如out0x21,AL内存映像编址:是内存物理地址空间的一部分,使用mov命令,如mov[0x8000f000],AL查查硬件手册就知道了!设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送。I/O控制方式一般有4种:程序直接控制(查询)方式;中断控制方式;直接内存存取(DMA)方式;通道控制方式。10.2I/O控制方式I/O系统发完命令后做什么?I/O系统发完命令后做什么?方案1:原地踏步等待!发送Read命令ReadI/O状态检查I/O状态没有就绪从I/O读取数据就绪将数据写内存原地踏步出错处理inAL,0x??while(AL!=reday){inAL,0x??}读数据...轮询!轮询浪费CPU资源(CPU比外设快太多了)!例子:程序方法控制I/O设备读入数据流程程序直接控制(查询)方式工作步骤小结:(1)当某进程需要输入/输出数据时,由CPU向设备控制器发出一条I/O指令启动设备工作(对于输出操作,则CPU还要向数据寄存器中存放输出数据);(2)在设备输入/输出数据期间,CPU不断地循环进行查询设备状态寄存器的值(检查I/O工作是否完成)。(3)若完成,对输入操作来说CPU则从数据寄存器中取出数据,然后进行下一次的输入/输出数据或结束。读I/O控制器状态从I/O控制器中读一个字取出该字存到内存传送完成?下一条指令检查状态?CPU→I/OI/O→CPU出错I/O→CPUCPU→内存完成就绪未完成未就绪向I/O控制器发读指令例子:程序方法控制I/O设备读入数据流程I/O系统发完命令后做什么?方案2:设备就绪了告诉CPU一声!set

文档评论(0)

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

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

1亿VIP精品文档

相关文档