808操作系统 设备管理

设备管理

I/O管理概述

I/O设备基本概念和分类

在这里插入图片描述
在这里插入图片描述

I/O 系统的功能

1 隐藏物理设备的细节

·I/O设备通常有很多种类型,每一种又有传输方向、数据粒度、传输速度等不同特性,将这些复杂的细节隐藏,仅向上层暴露简单的接口。

2 与设备的无关性

·用户不仅可以使用抽象的I/O命令,还可以使用抽象的逻辑设备名称来控制选择I/O设备,并且添加新的设备驱动程序。

·可以有效的提高OS的可移植性和易适应性,对于OS本身而言,应允许在不需要将整个操作系统进行重新编译的情况下 增添新的设备驱动程序,以方便新的I/O设备的安装。 从而做到即插即用。

3 提高处理机和I/O设备的利用率

·尽可能让CPU和I/O设备并行执行

4 对I/O设备进行控制

·轮询I/O设备的可编程I/O方式

·中断可编程I/O

·DMA直接存储器访问

·I/O通道

5 确保对设备的正确共享

·独占设备:进程间互斥访问该类资源。临界资源

·共享设备:如磁盘,多个进程可交叉读写磁盘。在一段时间内允许多个进程同时访问的设备。

·虚拟设备:利用虚拟技术将独占设备变换成若干个逻辑设备 供若干进程或者用户使用。

6 错误处理

·临时性错误:重试操作

·持久性操作:向上层汇报

I/O 软件层次结构

1.用户层I/O软件

实现与用户的交互,用户可以直接调用此层提供的接口、函数等;

2.设备独立性软件

用于实现用户程序和设备驱动器的统一接口、设备命名、设备保护以及设备分配和释放等,同时为数据的传输提供必要的空间

3.设备驱动程序

与硬件直接相关,用于具体实现系统施加给硬件设备的指令

4.中断处理程序

保护被中断的CPU环境,转入中断处理程序,处理,返回恢复现场

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

I/O 系统接口

在这里插入图片描述

块设备接口

块设备接口是块设备管理器和高层之间的接口。该接口反应了大部分磁盘存储器和光盘存储器的本质特征,用于控制该类设备的输入或者输出。

a.块设备
块设备是指,数据的存取和传输都是以数据块为单位的设备,典型的块设备如磁盘。该设备的基本特征就是传输速率较高,另一特征就是可寻址,即能指定数据的输入源地址和输出的目标地址,可随机的读写磁盘中任一块;磁盘中的I/O常采用DMA方式

b.隐藏了磁盘的二维结构
块设备接口将磁盘上所有扇区从0到n-1依次编号。这样编号以后,就把磁盘的二维结构改变成一种一维线性序列。

c.将抽象命令映射所为低层操作
块设备接口支持上层发来的对文件或设备的打开,读写,关闭等抽象命令,该接口将上述命令映射为设备可以识别的教低层的具体命令。

流/字符设备接口

流设备接口是流设备管理程序与高层之间的接口。该接口又称为字符设备接口,用来控制字符设备的输入或者输出。

a.字符设备
字符设备是指,数据的存取和传输是以字符为单位的设备,如光盘和打印机。该设备的基本特征是传输速率低。另一特征是不可寻址,即不确定数据的输入源和输出地址。字符设备在输入输出时,常采用中断驱动方式。

b.get和put操作
由于字符设备是不可寻址的,因此对它只能采取顺序存取的方式,通常是为其建立一个字符缓冲区(队列)。用户程序获取或者输出字符的通常方式就是采取get和put操作,get操作用从字符缓冲区取得一个字符(到内存),他返回给调用者。而put操作用于把一个新字符(从内存)输送到字符缓存区中。以待送到设备。

c.in-control指令
字符设备类型非常多,且差异较大,为了可以能够统一的处理他们,通常在流设备中提供一种通用的in-control指令,在该指令中包含许多的参数,每一个参数表示一个与设备相关的特定功能。

由于大部分流设备都是独占设备,必须采取互斥的方式实现共享,为此,流设备接口了打开和关闭操作。使用这类设备时,必须先用打开操作来打开该设备,如果设备已经被打开,则表示它正在被其他进程使用。

网络设备接口

在现代OS中,都提供了面向网络的功能。但首先还需要通过某种方式把计算机连接到网络上。同时操作系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信或上网浏览。

在这里插入图片描述

阻塞IO 非阻塞IO

在这里插入图片描述

I/O 控制方式

程序直接控制方式

在这里插入图片描述

在这里插入图片描述

中断驱动方式

在这里插入图片描述

DMA方式

又叫直接存储器方式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通道控制方式

在这里插入图片描述

一个通道可以控制多个I/O控制器 ,一个I/O控制器可以控制多个I/O设备

总结

在这里插入图片描述

设备控制器

设备控制器的主要功能是:控制一个或者多个I/O设备,以实现I/O设备和计算器之间的数据交换,它是CPU和I/O设备之间的接口。设备控制器是一个可编址的设备,当它控制一个设备时具有唯一的设备地址。如果控制多个,则应该含有多个设备地址,每一个设备地址对应一个设备。

设备控制器的基本功能

·接收和识别命令: 在控制器中应具有控制寄存器,用来存放接收的命令和参数,并进行译码

·数据交换:寄存器.实现CPU与控制器,控制器与设备间的数据交换

·标识和报告设备的状态:控制器中的状态寄存器记录设备的状态供CPU了解

·地址识别:地址译码器.每个设备都有一个地址,控制器必须能识别。

·数据缓冲区: 缓冲器.解决I/O设备与CPU、内存速度不匹配的矛盾

·差错控制:控制器兼管对由I/O设备传送来的数据进行差错检测

在这里插入图片描述

在这里插入图片描述

设备驱动程序

设备处理程序通常又称设备驱动程序,它是I/O系统的高层与设备控制器之间的通信程序,主要任务是接受上层软件发来的抽象io要求,如读写命令,再把它转化成具体要求,发送给设备控制器,启动设备去执行;反之,它也将由设备控制器发来的信号传送到上层软件。每一类设备配置一种驱动程序。

功能

·接受由设备无关的软件发来是命令和参数,并将命令中的抽象要求转化为与设备相关的低层操作序列;

·检测用户io请求的合法性 了解io设备的状态 传递与io设备操作有关的参数 设置设备的工作方式

·发出io命令 如果设备空闲 便立即启动io设备 完成指定的io操作

·及时响应由设备控制器传来的中断请求 根据中断的类型 调用相应的中断处理程序来处理

特点

·实现再与设备无关的软件和设备控制器之间通信和转换的程序。

·对于不同的设备 应配置不同的设备驱动程序。因为驱动程序与设备控制器以及io设备的硬件特性紧密相关。

·驱动程序与io设备应采用的io控制方式紧密相关。常用的控制方式 如 中断驱动和DMA方式

·驱动程序的一部分必须使用汇编语言书写。

·驱动程序应允许可重入。一个驱动程序在完成一次调用之前被再次调用。

设备处理方式

根据设备处理时是否设置进程以及设置怎么样的进程 将设备处理方式分为三种

·为每一类设备设置一个进程 专门执行这类设备的io操作。如为同一类型的打印机设置一个打印进程;为所有的交互式终端设置一个交互式终端进程。适合比较大的系统。

·在整个系统设置一个io进程 专门用于执行各类设备的io操作,也可以设置一个输入进程和一个输出进程 分别处理系统中的输入或者输出操作。

·不设置专门的设备处理进程 而只为各类设备设置相应的设备驱动程序 共用户或者系统调用。这种目前使用较多。

处理过程

启动指定设备 完成上层指定的I/O工作。启动之前,需要完成必要的准备工作,如检测设备状态是否为忙等。在完成所有的准备工作之后,才向设备控制器发生一条启动命令。

·将抽象要求转换成具体要求;

·对服务请求进行校验;

·检测设备的状态;

·传送必要的参数;

·启动I/O设备。

在这里插入图片描述

设备无关性

设备无关性是指应用程序独立于具体使用的物理设备

优点

  1. 用户可以抽象使用I/O命令,还可以使用抽象的逻辑设备名来使用设备

  2. 提高操作系统的可移植性和容易适应性,对操作系统而言,新增或者减少新的设备驱动程序,不需要将整个操作系统进行重新编译,就能很方便I/O设备安装。I/O重定向指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。

  3. 设备分配时的灵活性

    应用程序(进程)不必拘泥于某个物理设备,而可以用任意一台空闲设备。

与设备无关的软件

又叫设备独立性软件

·设备驱动程序的统一接口

向上层提供统一的调用接口 如 read、write接口。

·对设备的保护

禁止用户直接访问设备 以防止无权访问的用户使用。

·差错控制

·对设备的分配和回收

·缓冲管理

·独立于设备的逻辑数据块

·建立逻辑设备名到物理设备名的映射关系

根据设备类型选择调用相应的驱动程序

在这里插入图片描述

在这里插入图片描述

习题

设备属性
	字符设备 不可寻址 以字符传输  中断驱动
	块设备  可以寻址 以块传输 且效率较高
	
	共享设备,在一段时间内允许多个进程同时访问。它必须是可以寻址的还可以随机访问
	独享设备,在分配独享设备时,可能会发生死锁。
	虚拟设备,将一个物理设备变成多个对应的逻辑设备。
	
磁盘设备 主要采取DMA的io控制方式。

为了便于上层软件的编制,设备控制器通常需要提供控制寄存器 状态寄存器和控制命令

设备控制器, 接口用来传输信息,io逻辑用于实现设备控制

设备映射表 建立逻辑设备与物理设备之间的对应关系

io控制方式
	DMA控制器  命令/状态寄存器 内存地址寄存器 数据寄存器 数据计数器
	DMA方式是在io设备与主存之间建立一条直接数据通路。
	通道也是用于io设备与主存之间的信息交换,与DMA方式不同的是 该方式的cpu干预更少。cpu只需要发出启动命令,指出通道相应的操作和io设备,该指令就可以启动通道并执行。‘
	字节多路通道用于连接大量的低速或者中速io设备。
	

设备分配考虑的问题  设备的固有属性 设备独立性 安全性

区分硬件和识别设备的代号,叫做绝对好

通道控制设备控制器,设备控制器控制设备工作

所有设备的启动都由系统统一来做。

编制好的通道程序是存放在主存中的。

每一种设备对应一个驱动程序。系统只要按设备类型配置设备驱动程序即可,即每类设备只需一个设备驱动程序。

将系统调用参数翻译成设备操作命令的工作由设备无关的操作系统软件完成的。系统调用不会因为设备的不同而改变。
而设备驱动程序负责执行操作系统发来的io命令,他因设备的不同而不同。

用户程序  系统调用处理程序  设备驱动程序  中断处理程序



I/O核心子系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3voqKPwE-1664806426032)(C:\Users\86150\AppData\Roaming\Typora\typora-user-images\image-20220907114918317.png)]

缓冲区管理

缓冲区

在这里插入图片描述

单缓冲

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

双缓冲

在这里插入图片描述

循环缓冲区

在这里插入图片描述

缓冲池

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

设备分配和回收

分配考虑的因素

在这里插入图片描述

分配

在这里插入图片描述

分配管理中的数据结构

在这里插入图片描述

设备控制表

在这里插入图片描述

控制器控制表

在这里插入图片描述

通道控制表
在这里插入图片描述

系统设备表
在这里插入图片描述

分配步骤

​ 根据设备名(物理或者逻辑)查找设备 然后依次查找控制器 通道。其中有在忙碌的就将进程放入其数据结构的等待队列,不忙碌则分配给进程。

在这里插入图片描述

设备分配步骤的改进

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

假脱机技术

脱机技术

在这里插入图片描述

假脱机技术

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

共享打印机原理

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

习题

	用户程序对I/O设备的请求采用逻辑设备名,而程序实际执行时使用物理设备名,它们之间的转换是由设备无关软件层完成的。主设备和从设备是总线仲裁中的概念。
设备独立性 用户编程时使用的设备与实际使用的设备无关

缓冲区的作用 改善cpu与io设备速度不匹配的问题。缓冲区是在内存中开辟的
缓冲池,并行进程有效的输入输出。
缓冲机制中,无论是单缓冲、多缓冲还是缓冲池,由于缓冲区是一种临界资源,所以在使用缓冲区时都有一个申请和释放(即互斥)的问题需要考虑。所以着重考虑的问题是实现进程访问缓冲区的同步问题。

共享设备是指在一个时间间隔内可被多个进程同时访问的设备,磁盘满足。
独占设备采用静态分配方式,而共享设备采用动态分配方式。


提高单机资源利用率的关键技术是多道程序设计技术。单机系统中,最关键的资源是处理器资源,最大化地提高处理器利用率,就是最大化地提高系统效率。多道程序设计技术是提高处理器利用率的关键技术,其他均为设备和内存的相关技术。


SPOOLing系统
	SPOOLing系统主要包含三部分,即输入井和输出井、输入缓冲区和输出缓冲区以及输入进程和输出进程。这三部分由预输入程序、井管理程序和缓输出程序管理,以保证系统正常运行。
	SPOOLing技术可将一台物理I/O设备虚拟为I/O设备,同样允许多个用户共享一台物理I/O设备,所以SPOOLing并不是将物理设备真的分配给用户进程。用户进程实际上分配到的是外存区,即虚拟设备
	
	SPOOLing技术 用户的打印 数据是从计算机到外设的     所以打印结果是从磁盘的输出井到内存的输出缓冲区再到外设的。
	
	构成SPOOLing系统的基本条件是不仅要有大容量、高速度的外存作为输入井和输出井,而且还要有SPOOLing软件。利用SPOOLing技术提高了系统和I/O设备的利用率,进程不必等待I/O操作的完成。程序可以随时将数据传输到输出井中,待输出设备空闲时再有spooling系统完成数据的输出操作。
	SPOOLing技术需有高速大容量且可随机存取的外存支持,通过预输入及缓输出来减少CPU等待慢速设备的时间,将独享设备改造成共享设备。是一种以空间换时间的技术。

磁盘存储器的性能和调度

磁盘性能与结构

结构和格式

在这里插入图片描述

磁盘的分类

在这里插入图片描述

磁盘调度算法

先来先服务算法FCFS

在这里插入图片描述

在这里插入图片描述

最短寻道时间优先SSTF

在这里插入图片描述

在这里插入图片描述

扫描算法 SCAN 电梯调度

在这里插入图片描述

在这里插入图片描述

循环扫描算法CSCAN

在这里插入图片描述
在这里插入图片描述

NStepSCAN 和 FSCAN 调度算法

在SSTF SCAN CSCAN调度算法中 都可能出现磁臂停留在某处不动的情况。例如,有一个或者几个进程对某个磁道有着较高的访问频率,反复请求对这个磁道的io操作,从而垄断了 整个磁盘设备。这个就是磁臂粘着。高密度磁盘上容易出现这个情况。

NStepSCAN调度算法 N步SCAN算法 将磁盘请求队列分成若干个长度的N 的子队列,磁盘调度将按FCFS调度这些子队列,而处理每一个子队列中的请求按照SCAN算法,对一个子队列处理完后,再处理其他子队列。当N足够大 会使得N步扫描法接近SCAN算法的性能,当N=1时,N步扫描法会退化成FCFS算法。

FSCAN算法 实质是N步扫描法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是当前所有请求磁盘io的进程形成的队列,磁盘调度按照SCAN算法。另一个是在扫描期间,将新出现的请求磁盘io的进程放入等待处理的队列中。这样 新请求都将被推迟到下一次处理中 。

习题

	顺序访问按从前到后的顺序对数据进行读写操作,如磁带。随机访问,即直接访问,可以按任意的次序对数据进行读写操作,如光盘、磁盘、U盘等。
	硬盘操作系统的引导程序位于磁盘活动分区的引导扇区,因此必然产生在分区之后。分区是将磁盘分为由一个或多个柱面组成的分区(即C盘、D盘等形式),每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中。而对于高级格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上。操作系统引导扇区产生在对硬盘进行高级格式化时。
	旋转延迟时间  磁头定位到某一磁道的扇区所需要的时间。
	磁盘调度算法是为了减少寻找时间。扇区数据的处理时间主要影响传输时间。文件的物理结构磁盘空闲空间的分配程序均与旋转延迟有关,文件的物理结构与磁盘空间的分配方式相对应,包括连续分配、链接分配和索引分配。连续分配的磁盘中,文件的物理地址连续;而链接分配方式的磁盘中,文件的物理地址不连续,因此与旋转延迟都有关。
	先来先服务算法根据磁盘请求的时间先后进行调度,因而可能随时改变磁头方向。
	
	
	
	某磁盘的平均转速为尸秒/转,平均寻找时间为T秒,每个磁道可以存储的字节数为N,现向该磁盘读写b字节的数据,采用随机寻道的方法,每道的所有扇区组成一个簇,其平均访问时间是
	将每道的所有扇区组成一个簇,意味着可以将一个磁道的所有存储空间组织成一个数据块组,这样有利于提高存储速度。读写磁盘时,磁头首先找到磁道,称为寻道,然后才可以将信息从磁道里读出或写入。读写完一个磁道后,磁头会继续寻找下一个磁道,完成剩余的工作,所以在随机寻道的情况下,读写一个磁道的时间要包括寻道时间和读写磁道时间,即T+ r秒。由于总的数据量是b字节,它要占用的磁道数为b/N个,所以总平均读写时间为(r+T)b/N秒
	
	

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值