操作系统第六章

1. I/O系统组成


包括:

需要用于输入、输出和存储信息的设备;

需要相应的设备控制器;

控制器与CPU连接的高速总线;

有的大中型计算机系统,配置I/O通道;

(1)I/O设备的类型

从OS的观点,按其重要的性能指标进行分类如下:

按传输速率分类:

低速、中速、高速(键盘、打印机、磁盘)

使用:存储设备、输入输出设备

按信息交换的单位分类:

块设备:有结构、速率高、可寻址、DMA方式控制

字符设备:无结构、速率低、不可寻址、中断方式控制

按设备的共享属性分类:

独占:打印机

共享:一个时刻上仍然是只被一个进程占用。可寻址、可随机访问的色后备。磁盘。

虚拟:使一台独占设备变换为若干台逻辑设备,供给若干用户“同时使用”

(2)I/O设备中的接口

与控制器的接口有三种类型的信号:

a)  数据信号线(进出数据转换、缓冲后传送)

b) 控制信号线(读\写\移动磁头等控制)

c)  状态信号线


(3)设备控制器

控制器是CPU与I/O设备之间的接口,作为中间人接收从CPU发来的命令,并去控制I/O设备工作,以使处理机脱离繁杂的设备控制事务

① 基本功能:

*接收和识别CPU命令(控制寄存器:存放命令和参数)

*标识和报告设备的状态(状态寄存器)

*数据交换(数据寄存器)

*地址识别(控制器识别设备地址、寄存器地址。地址译码器)

*数据缓冲(协调I/O与CPU的速度差距)

*差错控制

②组成:

*设备控制器与处理机的接口

*设备控制器与设备的接口

*I/O逻辑:通过一组控制线与处理机交互


(4)I/O通道

设备控制器已大大减少CPU对I/O的干预,但当主机的外设很多时,CPU的负担仍然很重。在CPU和设备控制器之间增设一个硬件机构:“通道”

*设置通道后:

CPU只需向通道发送一条I/O指令即可不再干预后续操作。

通道形成通道程序,执行I/O操作,完成后向CPU发中断信号

*实际上I/O通道是一种特殊的处理机

*主要目的:

建立更独立的I/O操作,解放CPU

*通道类型:

根据其控制的外围设备的不同类型,信息交换方式也可分为以下三种类型:

1)    字节多路通道

2)    数组选择通道

3)    数组多路通道


(5)  

2. 设备管理

管理对象

I/O设备和相应的设备控制器(I/O系统组成)

基本任务

完成用户提出的I/O请求,

提高I/O速率、改善I/O设备的利用率。

为更高层进程方便使用设备提供手段

(1)中断

中断处理流程:

a) 测定是否有未响应的中断信号

b)  保护被中断进程的CPU环境

c)  转入相应的设备处理程序

d) 中断处理

e)  恢复CPU的现场

(2)

3. I/O系统的基本功能及模型

(1)功能:

*隐藏物理设备细节

*实现设备无关性

*提高处理机和设备的并行性

*对I/O设备进行控制

*确保对设备正确共享

*错误处理

(2)层次结构:

系统中的设备管理模块分为若干个层次

下层为上层提供服务,完成输入输出功能中的某些子功能,并屏蔽功能实现的细节


①用户层软件

实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。

②设备独立软件

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

③设备驱动程序

与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。

④中断处理程序

用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程。


4. I/O控制方式

1)程序I/O方式

2)中断驱动I/O方式

3)直接存储器访问DMA 方式

①该方式的特点是:

1)   数据传输的基本单位是数据块;

2)   所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。

3)    CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。

    可见DMA方式又是成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。

②DMA控制器的组成

DMA控制器由三部分组成:

主机与DMA控制器的接口;

DMA控制器与块设备的接口;

3.I/O控制逻辑

③DMA工作过程

CPU先向磁盘控制器发送一条读命令。

该命令被送到命令寄存器CR中。

同时发送数据读入到内存的起始地址,该地址被送入MAR中;

要读数据的字数则送入数据计数器DC中;

将磁盘中的数据原地址直接送入DMA控制器的I/O控制逻辑上,按设备状态启动磁头到相应位置。

启动DMA控制器控制逻辑开始进行数据传送

DMA控制器读入一个数据到数据寄存器DR中,然后传到内存MAR地址中;

接着MAR+1,DC-1,判断DC是否为0,如否,继续,反之控制器发中断请求,传送完毕。


4)I/O通道控制方式

 

 

5.用户层的I/O软件

小部分I/O系统软件放在了用户应用层上

1) 系统调用与库函数

a) 不允许运行在用户态的应用进程,去直接调用运行在核心态(系统态)的OS过程。

b) 用进程在运行时,又必须取得OS所提供的服务。

于是:

OS在用户层中引入了系统调用,应用程序可以通过它,间接调用OS中的I/O过程,对I/O设备进行操作

2) 设备分配中的虚拟技术

       —— SPOOLing

技术

SPOOLing系统的组成:

*输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。

*输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备

*输入进程和输出进程:

用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上;

用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上


3)SPOOLing系统的特点

*提高了I/O的速度

*实现了虚拟设备功能


6. 缓冲区管理

[if !supportLists]n  [endif]I/O控制方式减少CPU对I/O的干预提高利用率;

[if !supportLists]n  [endif]缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。

[if !supportLists]n  [endif]现代OS中,几乎所有的I/O设备与处理机交换数据时,都用了缓冲区。

[if !supportLists]n  [endif]引入缓冲区的主要原因:

[if !supportLists]n  [endif]缓和CPU与I/O设备间速度不匹配的矛盾。

[if !supportLists]n  [endif]缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率

[if !supportLists]n  [endif]最终目的:提高CPU和I/O设备的并行性。

[if !supportLists]1)[endif]单缓冲与多缓冲

(1)单缓冲

每当用户进程发出一I/O请求时,OS在主存中为之分配一个缓冲区。CPU和外设轮流使用,一方处理完后等待对方处理。

(2)双缓冲

两个缓冲区,CPU和外设不再针对一块交替

可能实现连续处理无需等待对方。前提是CPU和外设对一块数据的处理速度相近

* 双缓冲还适合双向通讯:一个用作发送缓冲区,另一个用作接受缓冲区。

2)循环缓冲

设置多块缓冲区

用循环结构组织,只供两个相关进程使用

顺一个方向放入或取出


① 循环缓冲的组成

多个缓冲区。大小相同,三种类型:

b)  备装输入数据的空缓冲区R

c) 装满数据的缓冲区G

d) 计算进程正在使用的现行工作缓冲区C

多个指针。

e) 指示正在使用的缓冲区C的指针Current

f)  指示计算进程下一个可取的缓冲区G的指针Nextg

g) 指示输入进程下次可放的缓冲区R的指针Nexti

②循环缓冲区的使用

③进程同步

[if !supportLists]3)[endif]缓冲池

提高缓冲区的利用率。在池中设置多个可供若干个进程共享的缓冲区

[if !supportLists]n   [endif]组织形式:队列及队列指针

[if !supportLists]①  [endif]缓冲池的组成

对于既可输入又可输出的公用缓冲池,至少应含有下列三种类型的缓冲区:

[if !supportLists]a)  [endif]空缓冲区;

[if !supportLists]b)  [endif]装满输入数据的缓冲区;

[if !supportLists]c)  [endif]装满输出数据的缓冲区;

为方便管理,将上述类型相同的缓冲区连成队列

[if !supportLists]¨   [endif]空缓冲区队列(所有进程都可用)

[if !supportLists]¨   [endif]输入队列(n个进程有各自的队列)

[if !supportLists]¨   [endif]输出队列(n个进程有各自的队列)

*(队列长度不固定,根据进程实际情况灵活变动,需要多少用多少)


[if !supportLists]②  [endif]缓冲区的工作方式

收容输入

提取输入

收容输出

提取输出

使用:Getbuf(队列,工作区)

Putbuf(队列,工作区)

缓冲池:可双向缓冲;缓冲区整体利用率高


7、磁盘存储器的性能和调度

1)磁盘性能

与格式有关

[if !supportLists]n  [endif]数据的组织和格式

*盘片、面、磁道、扇区

*为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块

 

与速度有关

[if !supportLists]n  [endif]磁盘类型

[if !supportLists]¨  [endif]固定磁头(每道一磁头)

[if !supportLists]¨  [endif]移动磁头(每盘一磁头)

[if !supportLists]n  [endif]访问时间的计算

[if !supportLists]¨  [endif]寻道时间(到磁道)

[if !supportLists]¨  [endif]旋转延迟(到扇区)

[if !supportLists]¨  [endif]传输时间

                  传输时间占总时间的比例最小,磁盘读写速度的提高要选择合适的调度算法,减少前两项用时,使所有作业的磁盘处理时间均衡。

2)磁盘调度方法

对所有请求访问磁盘的进程进行合理调度,使对磁盘的平均访问时间最小

目标:使平均寻道时间最少

 

算法:

①  FCFS

*多个进程的磁盘I/O请求构成一个随机分布的请求队列。

*磁盘I/O执行顺序按磁盘请求的先后顺序。

②  最短寻道时间优先SSTF

选择从当前磁头位置出发移动最少的磁盘I/O请求

③  扫描算法SCAN(磁盘电梯调度算法)

SSTF会导致“饥饿”现象

总选择最近的磁道访问,远磁道请求的进程会长时间得不到执行。

改进:

考虑距离的同时,更优先考虑方向

SCAN算法

规定磁头移动方向:自里向外,再自外向里移动。

后续的I/O磁道请求,哪个在规定方向上距离最近,就先执行哪个。

循环扫描CSCAN

SCAN的错过问题:

容易错过与当前磁道距离近,但方向不一致的磁道。

修改:将SCAN规定的移动方向改为“单向移动”

由里向外后,再由里向外

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,474评论 1 45
  • 感恩自己对峙了我的因为感觉自己做的不好而爱放弃的毛病。其实自己是哪种完美主义者。常常逼的自己把可以做好的事情选择...
    悦心慧儿阅读 157评论 0 0
  • 1.《原因》 不知道我喜欢你什么 如果知道 那不再喜欢你就很简单了 2《我希望你能丑一点》 我希望你不化妆 吃的很...
    梦中陶罗阅读 301评论 1 6