文章目录

  • 设备管理
  • I/O管理概述
    • I/O设备基本概念和分类
    • I/O 系统的功能
    • I/O 软件层次结构
    • I/O 系统接口
      • 块设备接口
      • 流/字符设备接口
      • 网络设备接口
    • 阻塞IO 非阻塞IO
    • I/O 控制方式
      • 程序直接控制方式
      • 中断驱动方式
      • DMA方式
      • 通道控制方式
      • 总结
    • 设备控制器
      • 设备控制器的基本功能
    • 设备驱动程序
      • 功能
      • 特点
      • 设备处理方式
      • 处理过程
    • 设备无关性
      • 与设备无关的软件
    • 习题
  • I/O核心子系统
    • 缓冲区管理
      • 缓冲区
      • 单缓冲
      • 双缓冲
      • 循环缓冲区
      • 缓冲池
      • 总结
    • 设备分配和回收
      • 分配考虑的因素
      • 分配
      • 分配管理中的数据结构
      • 分配步骤
      • 设备分配步骤的改进
      • 总结
    • 假脱机技术
      • 脱机技术
      • 假脱机技术
      • 共享打印机原理
    • 总结
    • 习题
  • 磁盘存储器的性能和调度
    • 磁盘性能与结构
      • 结构和格式
      • 磁盘的分类
    • 磁盘调度算法
      • 先来先服务算法FCFS
      • 最短寻道时间优先SSTF
      • 扫描算法 SCAN 电梯调度
      • 循环扫描算法CSCAN
      • NStepSCAN 和 FSCAN 调度算法
    • 习题

设备管理

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秒

808操作系统 设备管理相关推荐

  1. 计算机操作系统设备管理ppt,计算机操作系统设备管理.ppt

    <计算机操作系统设备管理.ppt>由会员分享,可在线阅读,更多相关<计算机操作系统设备管理.ppt(54页珍藏版)>请在装配图网上搜索. 1.计算机操作系统,制作者:张晓艳 2 ...

  2. 操作系统-设备管理-spooling技术

    操作系统-设备管理-spooling技术 思考题:A,B,C,D共用一台打印机x,要进行资料打印时,很容易出现"打印机正在使用!",如何处理该问题? 我们在使用打印机的时候,可能会 ...

  3. 2020-12-5(操作系统---设备管理)

    文章目录 I/O 系统 I/O 设备 设备与控制器之间的接口 设备控制器 I/O通道(I/O Channel) 总线系统 I/O 控制方式 程序I/O(Programmed I/O)方式 中断驱动(I ...

  4. 操作系统--设备管理

    设备管理概述: 设备管理的主要功能: 设备分配 设备映射 设备驱动 I/O缓冲区的管理 设备分配 多道程序系统中,设备不允许用户直接使用,而是由操作系统统一调度和控制.设备分配功能是设备管理的基本任务 ...

  5. 操作系统设备管理知识点总结

    1.在下面的IO控制方式中,需要CPU干预最少的方式是I0通道控制方式. 2.字符设备不可寻址到字节,独占设备可能引起死锁,共享设备不会,共享设备是一段时间内可同时访问,而不是同一时间.共享设备必须是 ...

  6. 期末复习操作系统---设备管理

    多道程序度 抖动产生的原因.工作集:在某段时间间隔中进程实际访问的页面的集合 请求分段存储管理方式:请求段表机制.缺段中断的处理以及地址变换 分段的共享与保护:共享段表.共享段的分配与回收,分段保护 ...

  7. 操作系统——设备管理

    设备管理 I/O设备的基本概念和分类 I/O控制器 I/O控制方式 程序直接控制方式 中断驱动方式 DMA方式(直接存储器存取) 通道控制方式 总结 I/O软件层次结构 I/O核心子系统 假脱机技术( ...

  8. 操作系统---设备管理(软设)

    目录 1 概述 1.1 设备分类 1.2 设备管理目标.任务 2  I/O软件 3 I/O控制方式 程序直接控制方式 中断驱动方式 DMA方式 通道控制方式 4 设备管理相关技术 5.磁盘.磁盘调度 ...

  9. 计算机操作系统--设备管理

    设备管理概述 1.设备分类 1) 按数据组织分类
按数据组织分类,设备可分为块设备和字符设备.
 (1)块设备.它指以数据块为单位组织和传送数据的设备,如磁盘.磁带等,属于有结构设备.
(2)字符设备 ...

最新文章

  1. 如何解决Linux下侦听端口被占用
  2. Mapreduce 任务提交源码分析1
  3. 武大学生用python敲出樱花开放(附视频源码)
  4. c# Process类使用小例
  5. 用单循环链表实现约瑟夫问题。
  6. spring基础系列--JavaConfig配置
  7. php websocket 实战,一次WebSocket项目实战后总结的经验
  8. java中输出a个b_下面代码输出什么 ( ) var a=0,b=0; for(;a10,b7;a++,b++){ g=a+b; } console.log(g);_学小易找答案...
  9. 条件编译宏定义_C语言学习- 预处理指令2 - 条件编译
  10. SilverLight学习
  11. U-BOOT 编译过程
  12. 【linux网络】net_device及注册与销毁
  13. python魔兽挂机_魔兽怀旧服玩家有多难?为了不用重新排队,自制绝不封号的外挂!...
  14. 手把手教你使用R语言做竞争风险模型并绘制列线图
  15. 搭建机器人电控系统——PWM原理——舵机和TMOTOR电机
  16. 神经网络发展的三个阶段,人工神经网络的发展
  17. python银行利息问题_(完整版)存款利率问题应用题
  18. H3C服务器web怎么修改密码,h3c路由器怎么修改密码_h3c路由器找回密码
  19. 网易极客战记-KITHGARD地牢--健忘的宝石匠
  20. 常用非线性优化算法总结

热门文章

  1. java 后台开发中model与entity(实体类)的区别
  2. amos基础5-CFA验证性因素分析
  3. 工业品行业商城系统解决方案
  4. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第四讲mysql8.0权限安全审计(上)
  5. 程序全过程:觉醒(序)
  6. 软硬件解耦太难!英伟达竟“越来越像Mobileye”
  7. C++超轻量限流器实现
  8. 巩膜分割论文:ScleraSegNet: an Improved U-Net Model with Attention for Accurate Sclera Segmentation
  9. Python谷歌小恐龙--Pygame
  10. 15 单因子利率模型蒙卡模拟