前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[每天五分钟,备战架构师-4]操作系统之设备管理

[每天五分钟,备战架构师-4]操作系统之设备管理

作者头像
大江小浪
发布2018-07-24 14:05:02
7640
发布2018-07-24 14:05:02
举报
文章被收录于专栏:小狼的世界小狼的世界

设备管理

设备管理是对计算机输入、输出系统的管理,这是操作系统最具有多样性和复杂性的部分,其主要任务是选择合适的设备进行数据传输,控制数据交换的过程,为用户提供透明的接口让用户不必关心设备的特性,为完成这些任务,需要提供的功能主要包括:缓冲区管理、设备分配、设备处理、虚拟设备管理、实现设备独立性等。

设备类型

系统设备的分类方法有很多种,比如说按有没有线分为有线设备、无线设备,具体的看思维导图吧。

设备连接

现代计算机系统对外部设备的控制通常分为:通道、控制器和设备。

__设备控制器__是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换,它是CPU与I/O设备之间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,以使处理从繁杂的设备控制事务中解脱出来。

__通道__的主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对I/O操作的组织、管理及其结束处理尽量独立,以保证CPU有更多的时间去进行数据处理。

控制设备的软件分为与设备有关的,例如驱动程序,和与设备无关的,如控制器的公共部分。

数据传输控制

外围设备和内存之间常用的数据传送控制方式主要有以下几种方式:

程序控制方式

在早期计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序I/O方式,或称为忙-等待方式,即在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy设置为1,然后便不断地循环测试busy,只有当其为0时,表示输入已经送入控制器的数据寄存器中,于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。

在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。

中断控制方式

当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务,设备控制器于是按照该命令的要求去控制指定I/O设备,此时,CPU与I/O设备并行操作。一旦数据进入数据寄存器,控制器便通过控制线向CPU发送一个中断信号,由CPU检查输入过程中是否出错,若无错,便由控制器发送取走数据的信号,再通过控制器及数据线将数据写入内存指定单元中。

在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作,仅当完成一个数据输入时,才需CPU花费极短的时间去做一些中断处理。

直接存储访问方式DMA

虽然中断驱动I/O比程序I/O方式更有效,但是,它仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断,换言之,采用中断驱动I/O方式时的CPU是以字(节)为单位进行干预的,将这种方式用于块设备的I/O是非常低效的。

DMA方式指外部设备和内存之间开辟直接的数据交换通路。DMA控制器由三部分组成,主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑。

通道控制方式

I/O通道方式是DMA的发展,它可以进一步减少CPU的干预,即把一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,可以实现CPU、通道、I/O设备的并行操作,提高资源利用率。

通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的,通道程序是由一系列通道指令(或称为通道命令)所构成的。

设备分配

多道程序系统中,设备不允许用户直接使用,而是由操作系统统一调度和控制。设备分配功能是设备管理的基本任务。设备分配程序按照一定的策略,为申请设备的用户程序分配设备,记录设备的使用情况。

磁盘调度

磁盘设备包括一个或多个物理盘片,每个盘片分一个或两个存储面,每个磁盘面被组织成若干个同心环,这种环称为磁道,各磁道之间留有必要的缝隙。每条磁道上可存储相同数目的二进制位,这样,磁盘密度即每英寸中所存储的位数,显然是内层磁道密度较外层磁道的密度高,每条磁道又被逻辑上划分成若干个扇区,一个扇区称为一个盘块(数据块)或称为磁盘扇区。一个物理记录存储在一个扇区上,磁盘上存储的物理记录块数目是由扇区数、磁道数以及盘面数决定的。

磁盘是多个进程共享的设备,当有多个进程都要求访问磁盘时,应采用一种最佳的调度算法,使各进程对磁盘的平均访问时间最小。由于在访问磁盘中,主要是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。

先来先服务(FCFS, First Come First Service)

这是一种最简单的磁盘调度算法,其根据进程请求访问磁盘的先后顺序进行调度,优点是公平、简单,每个进程的请求都能得到依次处理,不会出现某个进程的请求长期得不到满足的情况。

最短寻道时间优先(SSTF,Shortest Seek Time First)

要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。

扫描(SCAN)算法

SSTF算法虽然能获得较好的寻道性能,但可能会导致某个进程发生饥饿现象,因为只要有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必然先满足,对SSTF算法修改后形成SCAN算法,可防止老进程出现饥饿现象。该算法不仅考虑到欲访问的磁盘与当前磁道之间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道既在当前磁道之外,又是距离最近的。其类似电梯的运行,也称为电梯调度算法。

循环扫描(CSCAN)算法

SCAN算法既能够获得较好的寻道性能,又能防止饥饿现象,但是,当磁头刚从里向外移动而越过了某个磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被大大地推迟。为了减少这种延迟,CSCAN算法规定磁头单向移动,例如,致使自里向外移动,当磁头移到最外的磁道访问后,磁头立即返回最里的欲访问的磁道,即将最小的磁道号紧接着最大的磁道号构成循环,进行循环扫描。

NStepSCAN算法

在SSTF、SCAN、CSCAN几种调度算法中,都可能会出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某个磁道具有较高的访问频率,即这些进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备,这一现象称为磁臂粘着。NStepSCAN算法将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法一次处理这些子队列,当正在处理某子队列时,如果又出现了新的磁盘请求,便将新的请求进程放入其他队列,这样就避免了出现粘着现象。当N很大时,会使N步扫描算法性能接近于SCAN算法,当N=1时,退化为FCFS算法。

FSCAN算法

其是NStepSCAN的简化,即FSCAN只将磁盘请求队列分成两个子队列,一个是由当前所有请求磁盘I/O的进程所形成的队列,由磁盘调度按SCAN算法进行处理,在扫描期间,将新出现的请求磁盘I/O的进程放入另一个等待处理的请求队列。这样,所有的新请求都被推迟到下一次扫描时处理。

SPOOLING 技术

SPOOLING(Simultaneous Peripheral Operation On Line)是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”。利用SPOOLING技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。SPOOLING系统必须有高速、大容量并且可随机存取的外存。

参考资料: 1、【操作系统】设备管理(五)

2、SPOOLing技术

3、操作系统--设备管理

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设备管理
    • 设备类型
      • 设备连接
        • 数据传输控制
          • 设备分配
            • 磁盘调度
              • SPOOLING 技术
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档