怎么用腾讯云做网站,深圳创纪录暴雨19小时,设计一款网页需要多少钱,wordpress建群站文章目录 1 设备管理概述1.1 系统总线结构1.2 设备控制器通用结构1.3 I/O设备的模型 2 I/O端口2.1 寻址方式 3 驱动程序4 基本I/O控制方式4.1 程序直接控制4.2 中断I/O方式4.3 DMA方式4.4 I/O通道控制方式 5 I/O管理中的重要思想5.1 设备独立性5.2 SPOOLing技术5.3 I/O软件的多… 文章目录 1 设备管理概述1.1 系统总线结构1.2 设备控制器通用结构1.3 I/O设备的模型 2 I/O端口2.1 寻址方式 3 驱动程序4 基本I/O控制方式4.1 程序直接控制4.2 中断I/O方式4.3 DMA方式4.4 I/O通道控制方式 5 I/O管理中的重要思想5.1 设备独立性5.2 SPOOLing技术5.3 I/O软件的多层模型 6 磁盘I/O6.1 磁盘调度算法6.1.1 先来先服务 FCFS6.1.2 最短寻道时间优先 SSTF6.1.3 扫描算法 电梯调度算法 SCAN6.1.3 循环扫描 C-SCAN6.1.4 N-Step-SCAN6.1.5 FSCAN 6.2 其他磁盘I/O性能的改善 1 设备管理概述
1.1 系统总线结构
系统总线上传输的信息有——数据 地址 其他控制状态定时信号
系统总线其实有几类
如下图 CPU总线 存储器总线 和I/O总线 其中北桥芯片组把处理器和存储器分成了两个总线
南桥芯片连接在I/O总线上
I/O总线上连着众多的I/O设备
当然I/O总线和I/O设备之间通过设备管理器进行连接控制
那么设备管理器的结构是怎样的呢
1.2 设备控制器通用结构 控制不同的外设需要不同的设备控制器将系统总线和设备侧的接口连在一起
1.3 I/O设备的模型
对于外部设备而言他们的设备如下 2 I/O端口
I/O设备中非常重要的一部分就是外设寄存器也叫做I/O端口下文我们都叫做I/O端口了存储着设备状态数据等
控制需要了解外设寄存器值读取数据也是从相应的寄存器值读取
I/O端口通常包括控制寄存器、状态寄存器和数据寄存器三大类
所以这里就牵扯出一个问题CPU下达指令读或写某个I/O端口寄存器需要知道那个寄存器在哪里也就是说寄存器的地址是什么这就涉及到I/O端口的编址以及寻址
2.1 寻址方式
统一编址方式内存映射方式
与主存空间统一编址主存单元和I/O端口在同一个地址空间
独立编址方式特殊I/O指令方式
单独编号不和主存单元一起编使成为一个独立的I/O地址空间例如Intel处理器
3 驱动程序
控制外设进行输入输出的底层I/O软件是驱动程序由设备生产商制作包括 设备控制器中有哪些用户可以访问的寄存器、控制状态寄存器的每一位的含义通信协议等等
驱动程序通过访问 I/O端口控制外设进行I/O
比如 读取控制命令送到控制寄存器来启动外设工作
读取状态寄存器了解外设和设备控制器的状态
访问数据缓冲寄存器进行数据的输入和输出
实现这种访问操作是通过I/O操作完成的他是一种特权指令
4 基本I/O控制方式
有如下四种
4.1 程序直接控制
程序查询I/O方式
原理 由CPU负责直接控制I/O操作不涉及中断或DMADirect Memory Access。
方法
计算机从外部设备读取数据到存储器每次读一个字的数据。对读入的每个字 CPU 需要对外设状态进行循环检查直到确定该字已经在I/0 控制器的数据寄存器中
优点 简单、易于实现。
缺点
在程序直接控制方式中由于CPU 的高速性和I/0设备的低速性致使CPU 的绝大部分时间都处于等待I/0 设备完成数据I/0 的循环测试中造成了CPU 资源的极大浪费。在该方式中 CPU 之所以要不断地测试I/0 设备的状态就是因为在CPU 中未采用中断机构使I/0 设备无法向CPU报告它已完成了一个字符的输入操作。
4.2 中断I/O方式
中断I/O方式
原理 设备在完成操作后发出中断信号通知CPU进行数据传输。
方法
中断驱动方式的思想是允许I/0 设备主动打断CPU 的运行并请求服务从而“解放CPU, 使得其向I/0 控制器发送读命令后可以继续做其他有用的工作。
优点 提高CPU利用率减少了对CPU的占用。
缺点
中断方式在一些情况下可以提高CPU利用率但在一些情况下字符式设备其中断频率太高来回切换的话也会耗费处理机较多时间
核心是因为什么
是因为上面两种方式都需要经过CPU处理
什么叫经过CPU处理
是外设输入数据流大概是这样的 【外围设备-I/O控制器的数据寄存器-CPU寄存器-存储器】这就叫经过CPU或者说传输数据的过程需要CPU的干预
于是引出了下面的DMA(直接在I/O设备和内存之间建立数据通路)
4.3 DMA方式
磁盘等高速外设设备所用的方式
原理
基本思想 在高速外设和主存间直接传送数据
由专门硬件**即DMA控制器**控制总线进行传输注意这里不是CPU了
方式
基本单位是数据块前面是一个字。所传送的数据是从设备直接送入内存的或者相反。仅在传送一个或多个数据块的开始和结束时才需CPU 干预整块数据的传送是在DMA控制器的控制下完成的。
优点 大大减轻了CPU的负担提高了数据传输速率。
**缺点 需要额外的硬件支持复杂度较高。
如何进一步提高资源利用率呢当然是请更牛逼的通道将苦逼的CPU尽可能的从累活中解放出来。
4.4 I/O通道控制方式
原理 使用专门的I/O通道控制器它独立于CPU和主存储器负责管理多个设备的I/O操作
方式
I/0 通道是指专门负责输入输出的处理机。I/O通道方式是DMA方式的发展它可以进一步 减少CPU的干预即把对一个数据块的读或写为单位的干预减少为对一组数据块的读或写及有关控制和管理为单位的干预。同时又可以实现CPU、通道和I/0 设备三者的并行操作从而更有效地提高整个系统的资源利用率。
优点 高度并行化的数据传输减少了对CPU的占用。
缺点 需要更复杂的硬件支持成本较高。
5 I/O管理中的重要思想
5.1 设备独立性
该思想旨在使应用程序与具体的I/O设备解耦从而提高系统的灵活性、可移植性和可维护性。
5.2 SPOOLing技术
即外围设备同时联机操作又称作假脱机操作
什么是脱机I/O
脱机I/O 目的是为了解决CPU和I/O速度不匹配的问题输入由一台抵挡计算机做中介
什么是假脱机
即模拟实现上面的脱机i/O
实现方法
OS利用两个进程分别模拟脱机I/O时外围机的功能
其中一个进程负责将输入设备的数据传送到磁盘另一个进程负责将数据从磁盘送到输出设备
组成
1 输入输出井
2 预输入进程和缓输出进程
5.3 I/O软件的多层模型 1 用户进程层——执行I/O系统调用对I/O数据进行格式化
2 独立于设备的软件——实现设备的命名分配数据的缓冲设备的保护提高下层的统一接口
3 设备驱动程序与设备有关的代码向设备控制器发送命令检测设备的执行状态
4 中断处理程序负责I/O完成时唤醒设备驱动程序的进程进行中断处理
5 硬件层 实现物联I/O操作
6 磁盘I/O
磁盘一般分为固定结构和移动头磁盘两大类
固定头磁盘——每个盘面的每条磁道都有一个读写磁头固定头磁盘各个磁头可并行读写成本高
移动头磁道——每个盘面只有一个读写磁头
6.1 磁盘调度算法
目标 使得磁盘平均寻道时间最短
6.1.1 先来先服务 FCFS
按请求访问磁盘的先后次序进行调度
6.1.2 最短寻道时间优先 SSTF
选择处理与当前磁头距离最近的磁道请求以减少寻道时间
6.1.3 扫描算法 电梯调度算法 SCAN
要求磁头臂仅沿一个方向移动并在途中满足所有未完成的请求直到最后一个磁道再反方向
6.1.3 循环扫描 C-SCAN
要求磁头臂仅沿一个方向移动并在途中满足所有未完成的请求直到最后一个磁道不反方向直接回到最后一个磁道开始扫描
SSFT、SCAN、C-SCAN都存在“饿死现象”
即当一个或多个进程反复请求某个磁道I/O垄断了整个磁盘其他磁道得不到访问
6.1.4 N-Step-SCAN
将磁盘请求队列分成若干个长度为N的子队列
每一次SCAN处理一个子队列
6.1.5 FSCAN
使用2个子队列
当扫描开始时所有请求都在一个子队列另一个子队列为空扫描过程中所有新到的请求加入另一个子队列中使得新请求服务延迟老请求处理完后
6.2 其他磁盘I/O性能的改善
高速缓存
合理分配磁盘空间
把有可能顺序访问的放到一块
提前读延迟写周期性的成簇写回
例题
尝试给出一种能够满足下列要求的I/O设备管理设计方案
1 应用程序在访问设备时候不需要关心设备的物理特性
2 应用程序申请使用某类设备时不需要指定具体的物理设备
3 应用程序可以通过文件系统访问设备
设计方案
为满足上述要求可以设计一个综合管理系统其设计思路如下
1 采用分层的I/O软件模型 多层处理如用户层设备驱动程序等待。进行设备抽象将不同类型的设备进行抽象屏蔽设备的具体物理特性。通过设备抽象应用程序可以以统一的方式访问各种设备而无需关心设备的底层实现。
2 设备分组将相同类型的设备进行分组并为每个设备组分配一个唯一的标识符。应用程序在申请使用某类设备时只需指定设备组的标识符而无需指定具体的物理设备。
3 权限控制设计合适的权限控制机制确保应用程序只能访问其被授权的设备组和设备文件以保护系统的安全性和数据的机密性。
数据结构
1 用类和结构定义抽象层包括设备的通用属性操作方法事件等
2 用哈希表或映射存储设备组的标识符和相应的设备类型