- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章设备管理汇编
(1)存储设备 是计算机用来保存各种信息的设备,如磁盘、磁带等。 (2)I/O设备 是向CPU传输信息或输出CPU加工处理信息的设备。 例如:键盘,CRT (3)以SPOOLing方式使用外设 SPOOLing 技术是在批处理操作系统时代引入的,即所谓假脱机输入/输出技术。 例如:所有输出数据已经写到文件当中,并排到打印输出队列,打印进程申请占用打印机后,成批读出文件中数据,并送打印机打印出去 SPOOLing系统的组成示意图 (1)输入井和输出井: 这是在磁盘上开辟出来的两个专用的存储区域。 “井”是用作缓冲的存储区域。输入井和输出井分别用于收容从输入设备输入的数据和用户程序的输出数据。 输入井和输出井可分别看作是对输入设备(如读卡机)和输出设备(如打印机)的虚拟或者模拟。 (2)预输入进程和缓输出进程 预输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井。当CPU需要输入数据时,直接从输入井读入内存。 缓输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。 打印机的共享: 实际上系统并没有很多打印机,只不过是磁盘的一个存储区 实现方法: 1)创建一个守护进程(daemon)、一个打印目录spooling 2)某个进程要打印文件时,首先生成要打印的文件,将文件放入spooling目录下,形成一个请求打印队列 3)统一由daemon负责在打印机空闲时,按队列的先后次序打印spooling目录里的文件。 SPOOLing技术今天仍被广泛使用 网络文件传送 先把文件送到网络spooling目录,然后网络守护进程把它取出并传递到目标地址 Internet电子邮件系统 在因特网上发Email时,电子邮件发送程序send先将待发信件存入spooling电子邮件目录下,供以后传输。 1. I/O软件各层的功能 (1)用户进程层 执行I/O系统调用,对I/O数据进行格式化 (2)独立于设备的软件 实现设备的命名、设备的分配、数据的缓冲、设备的保护,提供与下层的统一接口 (3)设备驱动程序 与设备有关的代码。向设备控制器发命令,检查设备的执行状态 (4)中断处理程序 负责I/O完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层(设备控制器,设备) 实现物理I/O的操作 2. 中断处理程序 每个进程在启动一个I/O操作后阻塞 直到I/O操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为止 3.设备驱动程序 与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责发出这些命令,并监督它们正确执行 一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求 在设备驱动程序的进程发出一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成 4.设备独立的软件 (1)设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的 (2)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 (3)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 (4)设备保护。防止无权存取设备的用户存取设备 (5)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 (6)缓冲 (7)设备分配 (8)出错处理 5. 用户空间的I/O软件 尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核心外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现 这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的I/O过程实际实现真正的操作 说明:各层之间的接口并不是死的,分层并不一定是严格的上层中的某些功能可能放在下层中完成,如中断时的驱动以及驱动层中的某些与设备无关的处理等。 设备分配策略 常用的I/O设备分配算法 先来先服务 优先级高者优先 设备请求队列: 当多进程对同一设备提出I/O请求时,系统响应后,为它们分别建立I/O请求包,按先来先服
文档评论(0)