第1页:第五章 设备管理封面
第五章 设备管理:本页为《计算机操作系统》课件封面,标注课程名称与英文名称 Operating Systems,并列出 WINDOWS、UNIX、LINUX 等常见操作系统类型。
第2页:5.4I/O软件
5.4I/O软件
- I/O软件的总体设计目标
- 高效性
- 提高主机和外设的并行工作能力,提高系统效率
- 通用性
- 设法消除或屏蔽设备硬件内部的低级处理过程
- 为用户提供一个简便、易用、抽象的逻辑设备接口
- 保证用户安全、方便地使用各类设备
第3页:
第4页:层次式结构的I/O软件
层次式结构的I/O软件:层次式结构的I/O软件用户层软件设备独立性软件设备驱动程序硬件中断处理程序用户可直接调用在用户层提供的、与I/O操作有关的库函数。硬件相关,负责实现系统对设备发出操作指令、驱动I/O设备工作用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程负责实现与设备驱动器的统一接口、设备命名、设备保护及设备分配与释放。
第5页:5.4.2中断处理程序
5.4.2中断处理程序
- 中断处理程序是设备驱动的组成部分之一,位于OS底层
- 当设备向CPU提出中断请求时,OS响应请求,并转入中断处理程序执行
- 检查设备状态寄存器的内容,判别产生中断的原因
- 根据I/O完成情况,进行相应处理
- 若数据传输有错,应向上层软件报告设备出错信息
- 若有等待传输的I/O命令,应通知相关软件启动下一个I/O请求
- 若正常结束,应唤醒等待传输的进程,使其转为就绪
第6页:5.4.3设备驱动程序
5.4.3设备驱动程序
- 设备驱动程序(设备处理程序)
- 它是I/O进程与设备控制器之间的通信程序
- 它常以进程的形式存在,简称为设备驱动进程
- 其主要任务是
- 接收上层软件发来的抽象I/O要求,如read或write命令
- 在把它转换为具体要求后,发送给设备控制器
- 启动设备去执行
- 它也将由设备控制器发来的信号传送给上层软件
第7页:5.4.4设备独立性软件
5.4.4设备独立性软件
- 5.4.4设备独立性软件1.设备独立性(设备无关性)的概念
- 应用程序独立于具体使用的物理设备
- 在请求使用某类设备时,应用程序中使用逻辑设备名
- 系统在实际执行时使用物理设备名
- 实现设备独立性的功能后,可带来两方面的好处:1)设备分配时的灵活性。2)易于实现I/O重定向
- 用于I/O操作的设备可以更换,而不必改变应用程序
第8页:5.4.5用户层的I/O软件
5.4.5用户层的I/O软件
- 大部分I/O软件都在操作系统内部,但仍有一小部分在用户层
- 用户层软件须通过一组系统调用来取得操作系统服务
- 在现代的高级语言和C语言中,通常提供了与各系统调用一一对应的库函数
- 许多现代操作系统中,使用C语言编写的程序中可直接使用这些系统调用。count=write(fd,buffer,nbytes)
第9页:5.5设备分配
5.5设备分配
- 5.5设备分配5.5.1设备分配中的数据结构
- 设备控制表(DCT)、控制器控制表、通道控制表和系统设备表
第10页:设备控制表
设备控制表:系统为每一个I/O设备都配置了一张用于记录本设备情况的设备控制表(Device Control Table,DCT)。
第11页:控制器控制表
控制器控制表:系统为每一个控制器都配置了一张记录本控制器情况的控制器控制表(COntroler Control Table,COCT)。
第12页:通道控制表
通道控制表:该表只有在通道控制方式的系统中存在。
第13页:系统设备表
系统设备表
- 系统建立一张系统设备表
- 记录配置在系统中的所有物理设备的情况
- 每台物理设备占用一栏,包括–设备类型、台数、设备号、设备控制表指针等
第14页:5.5.2设备分配时应考虑的因素
5.5.2设备分配时应考虑的因素
- 5.5.2设备分配时应考虑的因素1.设备的固有属性
- ①独占性——应采用独享分配策略
- ②共享性
- 须注意对这些进程访问该设备的先后次序进行合理的调度
- ③可虚拟设备
- 指设备本身虽是独占设备,但经过某种技术处理,可以把它改造成虚拟设备
- 可虚拟设备是可共享的设备
- 对这些访问该(物理)设备的先后次序进行控制
第15页:设备分配算法
设备分配算法
- 设备分配时应考虑的因素2.设备分配算法
- ①先来先服务
- 该算法是根据诸进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程
- ②优先级
- 本算法总是将设备分配给优先级最高的进程
- 通常在形成设备队列时,是将优先级高的进程排在前面
- 对于相同优先级的I/O请求,则按先来先服务原则排队
第16页:设备分配中的安全性(一)
设备分配中的安全性(一)
- 设备分配时应考虑的因素
- (1)3.分配中的安全性
- ①安全分配方式
- 进程获得某种设备后便阻塞,使该进程不可能再请求任何资源,而在它运行时又不保持任何资源
- CPU与I/O设备是串行工作的
- 优点
- 摒弃了“请求和保持”条件,不会产生死锁
- 缺点
- 推进速度缓慢
第17页:不安全分配方式
不安全分配方式
- 设备分配时应考虑的因素
- (2)
- ②不安全分配方式
- 进程发出I/O请求后仍继续运行,继续申请I/O设备
- 仅当进程所请求的设备己被另一进程占用时,进程才进入阻塞状态
- 优点:可操作多个设备,推进迅速
- 缺点:可能产生死锁
- 应增加死锁的安全性计算,仅当安全情况下才进行设备分配
第18页:5.5.3独占设备的分配程序分配设备
5.5.3独占设备的分配程序分配设备:5.5.3独占设备的分配程序分配设备1分配控制器1分配通道1申请设备1按设备物理名查SDT设备忙?根据安全策略进行分配由DCT查COCT分配控制器由COCT查CHCT分配通道否是由SDT查设备DCT进程的PCB放入此设备队列。
第19页:设备分配程序的改进
设备分配程序的改进
- 2.设备分配程序的改进
- 上述基本的设备分配程序后可以发现
- ①进程是以物理设备名来提出I/O请求的
- ②采用的是单通路的I/O系统结构,容易产生“瓶颈”现象
- 从以下两方面对基本的设备分配程序加以改进1)增加设备的独立性2)考虑多通路情况
第20页:作业
作业:作业。