电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《os09设备管理》ppt课件

52页
  • 卖家[上传人]:tia****nde
  • 文档编号:67810886
  • 上传时间:2019-01-09
  • 文档格式:PPT
  • 文档大小:601.81KB
  • / 52 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第五章 设备管理,着重于管理的软件部分设备驱动程序和中断处理程序,种类繁多的I/O设备,以信息交换的单位分类 块设备 字符设备 按设备的共享属性分类 独占设备 共享设备 虚拟设备,I/O系统中的基本概念,总线(ISA、PCI、SCSI、USB) 端口 设备控制器,一个典型的PCI总线系统,PC机的I/O指令与I/O空间,IN指令将外部I/O设备的数据传入到AL、AX或EAX。 OUT指令传送AL 、AX或EAX的数据到外部的I/O设备。 IBM PC用16位端口地址访问它的I/O空间。PC的I/O空间放在I/O端口为0000H03FFH的地方,但也有些适配卡使用的I/O地址可能超过03FFH。 IBM PC机提供了外部设备的抽象接口,并将其固化在BIOS(基本输入/输出系统)中。,常用输入/输出设备端口,设备控制器,在对设备的操作中,需要持续地注意设备地状态。如果软件想要直接控制设备,需要在操作中不间断地监控设备的详细操作状态。这种监控大多是简单地观察状态、提供详细命令、修正小的错误等。这就是设备控制器要做的第二件事(将设备连接到总线是第一件事) 接口设计的目标就是使软件能操作设备(经

      2、由控制器),并能使其行为与设备同步。,逻 辑,状态,数据0,命令,数据1,数据n-1,概念化的设备控制器接口,I/O控制方式,在CPU和设备之间完成数据交换,主要有三种方式 轮询 中断 DMA,应用程序内I/O与CPU的交迭执行,应用程序员希望单个的进程(线程)具有串行执行语义: read ( dev_ID, “%d”, x ); y= f(x); 读指令必须在下一条指令执行前完成。从进程的角度看,虚拟机要等候设备完成I/O操作后才能执行赋值语句。,多个线程间I/O与CPU的交迭执行,无论何时一个单线程执行I/O操作,它会将CPU让给另一个线程执行。,使用轮询的直接I/O,由CPU负责确定I/O操作何时完成,并在机器主存与设备控制器数据寄存器间进行数据传送。 CPU在向控制器发出一条I/O命令后,同时置busy位为1,然后CPU不断地循环检测busy位,直至busy位为0,空闲:软件可以放置一个命令到命令寄存器,激活设备。 新的I/O命令的出现会引起控制器将busy设为1(工作),并开始工作。利用数据寄存器完成数据的输入和输出,进程通过检查状态寄存器来检测操作状态。 当I/O操作完成后

      3、(成功或失败),设备控制器清除busy标志位,而置done标志位(完成) 。当完成读操作后,设备会将数据拷贝到数据寄存器;当完成写操作后,数据会从控制器的数据寄存器拷贝到设备中。 如果在写操作后,设备的标志位均为0,那么就可以写新数据到控制器的数据寄存器;如果是从设备读数据,软件从控制器读取数据后,控制器清done位,表明设备空闲。,read (device, ),数 据,读函数,写函数,设备控制器,命令,状态,数 据,硬件接口,系统接口,1、应用进程请求读操作,2、设备驱动程序查询状态寄存器,确定设备是否空闲;如果设备忙,则驱动程序循环等待知道设备空闲。,3、驱动程序把输入命令存入控制器命令寄存器,启动设备(设置状态位)。,4、驱动程序通过反复读取状态寄存器的值等待设备操作完成。,5、驱动程序拷贝控制器数据寄存器的内容到用户进程地址空间。,中断I/O,中断请求(由设备与CPU的中断连线) 中断向量定位中断请求到对应的中断处理程序 中断优先级 可屏蔽中断与不可屏蔽中断 中断处理程序负责处理中断请求 中断机制可以用于实现 异常 系统调用 中断处理程序可以分为两个部分 Top half B

      4、ottom half,DMA I/O,中断驱动I/O是以字节为单位进程I/O,DMA允许以较大的数据块为单位传输。 DMA控制器 数据交换是在设备与内存间直接完成,无需CPU中转。,I/O系统,一方面,I/O设备种类繁多,另一方面,I/O系统必须为用户提供简单、一致的I/O接口 解决问题的方法是,操作系统隐藏或抽象大多数设备操作的细节,为用户提供几种的设备类型的访问 块设备 字符设备 时钟,I/O设备管理器抽象,设备管理器被分为两部分 设备无关部分(设备管理的基础设施) 设备管理中的数据结构 缓冲区管理(buffering、caching) spooling(独占设备的共享技术) 错误处理 访问控制 设备相关部分 设备驱动程序,设备管理器的基础设施,基础设施使得OS可以提供一组公共的设备接口系统调用,并将对公共接口的调用转换到特定的设备驱动函数。是设备管理器的设备无关部分,缓冲,缓冲区可以缓和CPU和I/O设备间的速度不匹配的矛盾;减少CPU的中断频率,提高CPU和I/O设备间的并行能力。 单缓冲 双缓冲 循环缓冲 缓冲池,专有缓冲区,设备分配,当进程通过系统调用使用I/O设备时,设备

      5、分配程序按照一定的策略,将设备分配给请求用户。 设备分配的数据结构 分配策略(相关属性、算法、安全性分配) 设备分配是设备无关的。,设备独立性,应用程序独立于具体使用的物理设备。 逻辑设备和物理设备 增强设备分配的灵活性 易于实现I/O重定向 设备独立性软件,设备独立性软件,执行所有设备的公有操作: 设备的分配&回收 逻辑设备到物理设备映射 设备保护 缓冲管理 差错控制 向用户层软件提供统一的接口,I/O 接口,struct file_operations int (*seek) (struct inode * ,struct file *, off_t ,int); int (*read) (struct inode * ,struct file *, char ,int); int (*write) (struct inode * ,struct file *, off_t ,int); int (*readdir) (struct inode * ,struct file *, struct dirent * ,int); int (*select) (struct inode

      6、* ,struct file *, int ,select_table *); int (*ioctl) (struct inode * ,struct file *, unsined int ,unsigned long); int (*mmap) (struct inode * ,struct file *, struct vm_area_struct *); int (*open) (struct inode * ,struct file *); int (*release) (struct inode * ,struct file *); int (*fsync) (struct inode * ,struct file *); int (*fasync) (struct inode * ,struct file *,int); int (*check_media_change) (struct inode * ,struct file *); int (*revalidate) (dev_t dev); ,function i (),function i (),Dev_fun

      7、c_i ( devID, . ) / processing common to all devices switch( devID) case dev0: dev0_func_i ( ) ; break; case dev1: dev1_func_i ( ) ; break; case devM: devM_func_i ( ) ; break; ; / processing common to all devices ,设备独立性软件,设备分配策略 逻辑设备到物理设备映射 差错控制 并发控制 缓冲区管理 ,可重配置的设备驱动程序,设备J的驱动程序,设备J的入口点,支持可重配置的设备管理器使用一个间接表(对每个系统调用)来引用各自的设备函数。特定设备的表项可以用对设备驱动程序进行注册的实用程序在运行时建立。,Dev_func_i j ( ),Spooling 技术,输入缓冲区,输出缓冲区,输入井,输出井,输入设备,输出设备,磁盘,汤子瀛计算机操作系统page 166,设备处理方式,为每一类设备设置一个进程,专门用于执行这类设备的I/O操作 . 在整个系统中设置一个I/O进程,专门用于执

      8、行系统中所有各类设备的I/O操作。 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块), 供用户进程或系统进程调用。,设备驱动程序,设备驱动程序由一组函数组成,它抽象了一个特定设备控制器的操作。一组设备驱动程序为所有的设备导出了相同的(或尽可能相似的)抽象。 设计者依据设备的细节,通过构建标准接口上的实现函数来实现抽象。,struct file_operations test_fops = NULL, read_test, write_test, NULL, /* test_readdir */ NULL, NULL, /* test_ioctl */ NULL, /* test_mmap */ open_test, release_test, NULL, /* test_fsync */ NULL, /* test_fasync */ /* nothing more, fill with NULLs */ ;,设备相关的驱动程序基础框架,每个设备控制器都提供一个特定的接口给软件:接口的细节包括了用来发送给设备的命令、状态和返回的错误报告、定时和软件如何控制设备的其

      9、他需求。 设备驱动程序使用特定的硬件接口来实现抽象的I/O操作。设备驱动程序被分为n个不同的函数,它们可以经由系统调用接口进行访问。,设备驱动程序的功能,接收由I/O进程发来的命令和参数, 并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、 磁道号及扇区号。 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。,发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。 及时响应由控制器发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。,设备驱动程序的特点,驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。 驱动程序与设备控制器和I/O设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序。 驱动程序与I/O设备所采用的I/O控制方式紧密相关。 由于驱动程序与硬件紧密相关, 因而其中的一部分必须用汇编语言书写。,使用中断的设备处理,在使用中断的情况下,设备管理的功能可以划分为4个部分: 初始化I/O操作的设备驱动程序的“上半部分” 设备状态表 中断处理程序 设备处理程序,应用进程请求读操作 设备驱动程序的上半部分查询状态寄存器,确定设备是否空闲;如果忙,驱动程序等待直到空闲 驱动程序将输入命令存入控制器的命令寄存器中,启动设备 当设备驱动程序的上半部分完成它的工作,根据操作情况保存相应信息到设备状态表,如最初的调用地址、以及I/O操作的一些特定参数等。系统中的每个设备在表中都有对应的表项。操作完成后CPU就可以分配给其他进程使用了,因此,设备管理器调用进程管理器的调度程序运行,原进程的执行被暂停,执行输入指令的步骤,设备完成操作后,引起中断处理程序的运行 中断处理程序确定哪个设备引起中断,然后分支转移到该设备对应的设备处理程序执行 设备处理程序重新从设备状态表中找到等待I/O操作完成的进程状态信息 设备处理程序拷贝控制器数据寄存器的内容到用户进程空间 设备处理程序作为由应用程序激活的设备驱动程序的下半部分,将控制权返回给应用进程。,read

      《《os09设备管理》ppt课件》由会员tia****nde分享,可在线阅读,更多相关《《os09设备管理》ppt课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.