第四章 设备管理

4-1 概述

M I/O设备及其分类
U 设备管理的目标
M 设备管理的基本功能
U 设备管理的实现层次

I/O设备 又称外设用于计算机系统与外界(用户、其他计算机或设备)的信息交换或存储

I/O 操作:内存和外设间的信息传送操作影响计算机系统的通用性和可扩充性影响CPU综合性能,性价比

I/O设备分类
Input设备:keyBOrad、mouse、Scanner
oUtput设备:Screen、Printer
输入输出设备:磁盘驱动器,网卡等
人机交互设备、存储设备、机机通信设备、字符设备、块设备、网络设备

设备管理的目标:
1.解决设备与CPU速度不匹配的问题,使主机与设备充分并行工作,提高设备
使用效率。
2.屏蔽设备的物理细节和操作过程,配置驱动程序提供统一的界面。

方法:1.抽象为裸设备;2.抽象为设备文件

设备管理的功能
1.设备中断处理
2.缓冲管理
3.设备分配与去配
4.设备驱动调度
5.虚拟设备的实现

设备管理的实现层次:
1.I/O硬件:I/O设备及接口线路、控制部件、通道

2.I/O 软件:系统I/O软件、用户空间I/O软件

4-2 I/O 控制方式
U I/O 控制器
U 三种基本的I/O控制方式
K I/O通道及其工作方式

设备控制器
1.模块化和通用性设计,设备(机械部件,电子部件)
2.电子部件,称为设备控制器(I/O接口,适配器)
3.系统与控制器交互,而非与设备直接交互
4.设备控制器具体控制设备进行I/O(机械式)

设备控制器的功能
1.接收和识别CPU或通道发来的命令
2.数据交换
3.发现和记录设备及自身的状态信息,供CPU处理使用
4.识别设备地址

设备控制器的组成:

I/O通道及其工作方式
查询、中断、DMA

I/O通道又称 I/O处理器,用于玩阿城独立的I/O任务
采用四级连接:处理器、通道、控制器、设备
通道可控制多台不同类的设备处理器不再执行I/O指令,而是在主存中组织通道程序,由I/O通道执行。

I/O通道的工作流程

4-3 总线与I/O

K 总线对I/O的影响
K 几种经典的总线模型

总线:解决I/O速度不匹配的问题,
I/O和CPU速度、各设备速度不匹配

合理组织总线,使主机和设备充分并行,提高系统效率

单总线结构

缺点是慢设备制约快设备

三级总线模型

优点
主存与I/O之间的数据传送,处理器的内存活动分离,可以支持更多的I/O设备
缺点:不适用于I/O设备速率差太大的情形。

南桥与北桥

一种基于通道的服务器总线模型

4-4 I/O软件的实现层次

U 理解I/O软件的设计目标
U I/O软件的实现层次

目标
高效率:改善设备效率,尤其是磁盘I/O效率
通用性:用统一的标准管理所有设备

设计思路:把软件组织成层次结构,底层软件用来屏蔽硬件细节,
高层软件向用户提供友好的界面。

I/O软件设计要考虑的问题
设备无关性:访问设备的程序与具体设备无关
出错处理:底层软件能处理的不让高层软件感知。
同步/异步传输
缓冲技术

I/O软件层次结构
用户空间的I/O软件 -> I/O系统调用,I/O格式化
独立于设备的I/O软件 -> 设备的命名、保护、阻塞、缓冲、分配、跟踪
I/O设备驱动程序 -> 设备寄存器初始化,启动I/O操作,检查I/O状态
I/O中断处理程序 -> 处理I/O中断、唤醒驱动程序
I/O硬件 -> 执行I/O操作

4-5 I/O软件的实现

U I/O中断处理程序
U 设备驱动程序
U 独立于设备的I/O软件
U 用户空间的I/O软件

I/O中断处理程序
1.位于OS底层,与硬件设备密切相关,与系统其余部分尽可能很少联系
2.进程请求I/O操作时通常被挂起
3.数据传输结束后产生I/O中断
4.CPU响应请求中断,并转入中断处理程序

中断程序功能
1.检查设备状态寄存器,判断中断原因,根据I/O操作完成情况进行相应处理

设备驱动程序
1.包含于设备密切相关的所有代码。
2.从独立于设备的软件中接收I/O请求
3.把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行
4.监督设备是否正确执行,访问数据缓冲区,进行必要的纠错

设备驱动程序的功能
1.设备初始化:在设备传输数据时,预制设备控制器以及通道状态
2.执行设备驱动例程:负责启动设备,进行数据传输;组织通道程序,启动通道
3.执行与设备终端相关的具体处理程序:负责处理设备,控制器及终端发出的各
中断

刚才讲的I/O中断处理程序响应并原则处理I/O中断的过程,而具体对于某一类设备,比如打印机,它出现中断后,就会有一些特殊的设备相关的代码,这些东西是在设备驱动中加以提供的

设备驱动程序的层次
每个设备驱动程序原则上只处理一种设备。
1.高层处理类设备,底层处理具体设备
2.系统建立栈,接到I/O请求时先调用栈顶的驱动程序,然后继续
向下调用低层驱动程序,直到所有物理操作都被处理
3.这一方式使设备驱动实现结构清晰,便于移植,但会增加一部分系统开销。

独立于设备的I/O软件
执行适用于所有设备的常用I/O功能,并向用户层软件提供一致性接口,
包括:设备命名,通过路径名寻址身,设备保护,库函数,虚拟设备软件。

4-6 I/O缓冲技术

M I/O缓冲技术
M 单缓冲技术
M 双缓冲技术
M 多缓冲技术

缓冲的目的
1.解决CPU与设备之间速度不匹配的问题
2.协调逻辑记录大小和物理记录大小不一致的问题
3.提高CPU和设备的并发性
4.减少中断次数
5.放宽对CPU中断响应的时间要求

I/O缓冲区:在内存中开辟的存储区,专门用于临时存放I/O操作的数据

操作过程:
写操作:将数据送入缓冲区,直到装满或需要写出,待适当的时候,系统将缓冲区的内容写到设备。

读操作:系统将设备上的物理记录读至缓冲区,根据要求将当前所需数据从缓冲区中读出并传送给进程。

单缓冲技术

4-7设备独立性

M 概念
U 优点

问题的提出
作业执行前对设备提出请求,指定某台具体物理设备会让设备分配变得简单,微机OS多采用这种方式。

缺点:如果所指定设备故障,即便计算机系统中有同类设备也不能运行。

设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户进程和物理设备分离开来,再通过其他映射和物理设备之间的映射,设备管理中需将逻辑设备名转换为物理设备名,为此系统需提供对应表以转换使用。

优点:应用程序与具体物理设备无关,系统增减设备时不需要修改源程序,易于应对各种I/O设备故障,提高系统可靠性,增加设备分配的灵活性,有利于更加有效地利用设备资源,实现多道程序设计。

4-8 独占型外设的分配

M 独占型外设的概念
M 分配方式
M 分配的数据结构

独占型外设的概念:一次只能由一个进程独占使用,比如keyboard、screen、CD、Printer、磁带中,只有磁盘、光盘库、磁带库不是独占外设。

分配方式:
1.静态分配:进程运行前申请,实现简单,能够防止死锁,降低设备利用率。
2.动态分配:进程随用随申请

建立数据结构:设备表、设备类表

4-9 磁盘的物理结构

M 磁盘结构
M 磁盘读写时间
U 磁盘工作方式

磁盘由多个盘面组成,每个盘片一般有两个盘面盘面包括多个同心圆结构的磁道,不同盘面位于相同位置的磁道构成柱面,每个磁道分为固定的多个扇区,相邻扇区组成簇。

物理块地址
1.柱面号、磁头号、扇区号
2.0盘面 0道1扇区

磁盘读写数据方式
读写数据时,磁头上必须定位到指定磁道上的指定扇区的开始处,
1.寻到,2.旋转,3.选择磁头号,进行数据传送

磁盘的存取时间
寻道时间、旋转时间、传送时间

4-10 磁盘的驱动调度

M 磁盘驱动调度
M 移臂调度算法
M 旋转调度算法

磁盘调度
磁盘肯同时接收若干I/O请求
随机响应I/O请求会得到很坏的性能
驱动调度:OS的磁盘调度策略,即按照最佳次序执行处理访问磁盘的多个
I/O请求,以减少磁盘访问的总处理时间。

驱动调度包括:移臂调度、旋转调度

移臂调度算法:
目的:使移动臂移动时间最短,从而减少寻道时间移臂调度算法
先来先服务:移臂距离大,性能不好
最短查找时间优先:先执行查找时间最短的请求,具有较好的寻道性能,
存在“饥饿”现象。

扫描算法:单向扫描、双向扫描
电梯调度:双向扫描的改进,当前移动方向没有没有访问请求时就
改变移动方向

旋转调度
目的:使得旋转延迟的总时间减少循环排列
优化分布:交替排序、相邻扇区集中成簇读写,按柱面集中存储数据

4-11 SPooling系统

U 虚拟设备的概念
M 经典的SPOOling系统
U 打印SPooling系统

虚拟设备技术
使用一类物理设备模拟另一类物理设备的技术
例如:1.用内存模拟磁盘;2.块设备模拟字符设备;3.输入输出重定向

一个经典的spooling系统
用高速的磁盘设备来模拟慢速的字符设备,缩短进程在内存中驻留的时间。
慢速I/O设备线I/O到(I/O井)
进程的运行过程只从I/O井输入输出信息,使得全部I/O都基于磁盘
加快进程周转时间,提高系统吞吐量。

区别:
I/O重定向文件是由用户进程自己来设定的
I/O井由OS统一管理

该SPOOLING系统的软件组成:1.预输入程序;2.缓输出程序;3.井管理程序
(I/O重定向)

SPOOLING系统
图–

打印SpooLing系统
打印机守护进程和Spooling打印目录
守护进程是唯一有特权使用打印机设备的进程。
打印文件前,用户进程先产生完整的待传输文件,并存放在打印目录下。
打印空闲时,启动打印进程,打印待输出文件。

4-12 批处理系统的作业管理

多批到处理OS的作业管理
作业说明语言:用于作业控制的语言
作业说明书:刻画具体作业的控制方式
作业状态:preinput、poststate(free)、running、finish
作业调度:从poststate作业中选中部分进入running
作业调度算法:优先数、短作业、响应、设备搭配

计算机操作系统笔记(四)相关推荐

  1. 计算机操作系统 (第四版汤小丹老师) 复习笔记第一章

    教材为西安电子科技大学 汤小丹老师 第四版 1.1操作系统目标和作用 1.目标 目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重.通常在计算机硬件上配置的OS,其目标有以下几点: 方便性 便 ...

  2. 内存管理(操作系统笔记四)

    内存管理(操作系统笔记四) 内存的基本概念 内存 可存放数据.程序执行之前 必须先放到内存中才能被CPU处理 --缓和CPU与硬盘之间的速度矛盾. 内存中就是一系列的存储单元,如果计算机 " ...

  3. 计算机操作系统第四章作业

    计算机操作系统第四章作业 1.何为静态链接?静态链接时需要解决两个什么问题? 答:静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开的链接方式. 将 ...

  4. 四川大学计算机综合实践报告,四川大学计算机操作系统第四实验报告

    1.实验报告(学生打印后提交)实验名称: 作业调度系统 实验时间: 2015 年 6 月 4 日实验人员:_(姓名)_(学号)_(年级)实验目的: 理解操作系统中调度的概念和调度算法. 学习 Linu ...

  5. 计算机操作系统笔记第八章磁盘存储器的管理

    适用计算机操作系统(OS)(第四版) 自己的学习笔记,PPT及图片来源网络及自己老师,侵删. 三硬一软一接口--2硬 计算机操作系统第八章 第八章磁盘存储器的管理 8.1 外存的组织方式 8.1.1 ...

  6. 计算机操作系统第四版题库,汤子瀛计算机操作系统第4版配套题库(含名校考研真题)...

    进思学习网提供下载: 汤子瀛<计算机操作系统>(第4版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] **部分 名校考研真题 2009年全国硕士研究生入学统一考试计算机科学与技术 ...

  7. 计算机操作系统笔记(一) 南京大学慕课版

    一.计算机系统概览 计算机系统的组成:硬件子系统和软件子系统 硬件子系统:电,磁,光,机械与原理构成的各种物理部件的有机组合,是系统工作的载体,包含CPU,主存储器,I/O控制系统,外围设备: 软件子 ...

  8. 计算机操作系统第四版读书笔记,《操作系统》读后感10篇

    <操作系统>是一本由[美] William Stallings著作,电子工业出版社出版的平装图书,本书定价:75.00元,页数:541,特精心从网络上整理的一些读者的读后感,希望对大家能有 ...

  9. 计算机操作系统第四版习题答案 第一章简答题

    1 .设计现代 OS 的主要目标是什么? 答:( 1 )有效性   ( 2 )方便性   ( 3 )可扩充性   ( 4 )开放性 2 . OS 的作用可表现在哪几个方面? 答:( 1 ) OS 作为 ...

  10. 计算机操作系统笔记——处理器调度

    处理器调度可以分为三个级别:高级调度.中级调度和低级调度. 低级调度是各类操作系统必须具有的功能:在纯粹的分时或实时操作系统中,通常不需要配备高级调度:在分时系统或具有虚拟存储器的操作系统中,为了提高 ...

最新文章

  1. bindservice启动服务
  2. [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总
  3. linux中负载值为多少正常_Linux load average负载量分析与解决思路
  4. 云炬随笔20171227
  5. 通过一道题目来理解互斥和同步
  6. c语言主范式与编码,超详细!终于搞明白KMP算法
  7. 为什么越来越多的程序员开始学机器学习的原因
  8. perl pop和push函数,不使用索引更能利用perl的特性,减少边界值错误发生的几率...
  9. tcp 和 dcp 的几大区别
  10. 信息学奥赛一本通 1115:直方图 | OpenJudge NOI 1.9 09
  11. 人才梯队的搭建:55页集团人才梯队建设方案,梯队人员的管理
  12. Spark DataFrameRDD案例实现
  13. html5 图形水平运动,【分享】HTML5的Canvas制作3D动画效果分享
  14. Node.js调试工具安装使用
  15. 安卓8.1放弃Java_升级到Android 8.1后,startForeground失败
  16. atitit.解决SyntaxError: missing ] after element list不个object 挡成个str eval ....
  17. atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践
  18. 编解码格式 -- AAC
  19. java开发规范-控制语句
  20. 简单的定时任务(项目发布时启动,停止时任务结束)

热门文章

  1. 5月第3周回顾:08软考举行 中国遭大范围SQL注入***
  2. pooling层如何反向传播? 很简单
  3. JavaScript的Date类的函数特殊处理导致的问题
  4. 正定二次函数的共轭梯度法matlab实现
  5. Python基础(十): 函数的基本概念
  6. kvm virtio功能配置
  7. 四大顶级开源网络管理工具详解
  8. PHPCrawl webcrawler library/framework
  9. 硬盘分区变为RAW文件系统后的解决办法
  10. charles Mock测试总结