I/O系统的组成:
1)需要用于输入、输出和存储信息的设备;
2)需要相应的设备控制器;
3)控制器与CPU连接的高速总线;
4)有的大中型计算机系统,配置I/O通道;
中断:
CPU对I/O设备发来的中断信 的一种响应,中断是由外部设备引起的,又称外中断。
中断处理流程:
1)测定是否有未响应的中断信
2)保护被中断进程的CPU环境
3)转入相应的设备处理程序
4)中断处理
5)恢复CPU的现场
设备驱动程序:
(1)接收由与上层设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
I/O控制方式:
1)程序I/O方式 :
cpu对I/O设备的控制采取程序I/O方式,或称忙—等待方式
高速CPU空闲等待低速I/O设备,致使CPU极大浪费。
2)中断驱动I/O方式
CPU向相应的设备控制器发出一条I/O命令 然后立即返回继续执行任务。 设备控制器按照命令的要求去控制指定I/O设备。 这时CPU与I/O设备并行操作。
但仍以字(节)为单位进行I/O,每当完成一个字(节),控制器便要请求一次中断。
3)直接存储器访问DMA(字节—块)
1、数据传输的基本单位是数据块;
2、所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。
4)I/O通道控制方式(组织传送的独立)
实现对一组数据块的读(写)及有关的控制和管理为单位的干预。
CPU、通道和I/O设备三者的并行操作,提高整系统资源利用率。
如何将一台物理I/O设备虚拟为多台逻辑I/O设备,允许多个用户共享“同时使用” nbsp; ——SPOOLing技术
SPOOLing系统的组成:
1)输入井和输出井:磁盘上开辟两大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。
2)输入缓冲区和输出缓冲区:为缓解速度矛盾,内存中开辟两大缓冲空间,输入缓冲区暂存输入设备送来的数据,再送给输入井;输出缓冲区暂存输出井送来的数据,再送输出设备。
3)输入进程和输出进程。 用一进程模拟脱机输入时外围设备控制器的功能,把低速输入设备上的数据传送到高速磁盘上; 用另一进程模拟脱机输出时外围设备控制器的功能,把数据从磁盘上传送到低速输出设备上。
SPOOLing系统的特点:
1)提高了I/O的速度。利用输入输出井模拟成脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾。
2)将独占设备改造为共享设备。并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表。
3)实现了虚拟设备功能。多个进程可“同时”使用一台独占设备。
I/O控制方式减少CPU对I/O的干预提高利用率; 缓冲则通过缓和CPU和I/O设备速度不匹配矛盾,增加CPU和I/O设备的并行性,提高利用率。
缓冲:
引入缓冲的原因:
1)缓和CPU与I/O设备间速度不匹配的矛盾。
2)缓冲区数据成批传入内存,也可进一步减少对CPU的中断频率
最终目的:提高CPU和I/O设备的并行性。
使用缓冲区的方式:
1)单缓冲:
CPU和外设轮流使用,一方处理完后等待对方处理。
2)多缓冲 :
两个缓冲区,CPU和外设不再针对一块交替 可能实现连续处理无需等待对方。前提是CPU和外设对一块数据的处理速度相近。而如下图情况CPU仍需等待慢速设备。
双缓冲还适合双向通讯
3)循环缓冲:
设置多块缓冲区 用循环结构组织,只供两个相关进程使用 顺一个方向放入或取出
4)缓冲池(Buffer Pool):
系统将多个缓冲区形成一个缓冲池。 池中缓冲区为系统中所有的进程共享使用(如UNIX系统在块设备管理中设置了一个15个缓冲区组成的缓冲池)
类型:空缓冲区队列(所有进程都可用) 输入队列(n个进程有各自的队列) 输出队列(n个进程有各自的队列)
磁盘:
数据的组织:
盘片、面、磁道、扇区
格式:
为方便处理,每条磁道存储容量相同,每个磁道上的每个扇区相当于一个盘块。磁盘”格式化”的过程就是按规定的格式规划盘块。
传输时间问题:
磁盘调度算法:
1)FCFS
2)最短寻道时间优先SSTF
3)扫描算法SCAN(磁盘电梯调度算法)
4)循环扫描算法CSCAN
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!