设备管理的目标和功能-1 2.设备管理功能 设备分配。指设备管理程序按照一定的算法把某一个 I/0设备、及其相应的设备控制器和通道分配给某一用 户(进程),对于未分配到的进程,则插入等待队列中 缓冲区管理。为了解决CPU与ⅣO之间速度不匹配的矛 盾,在它们之间配置了缓冲区。这样设备管理程序又要 负责管理缓冲区的建立、分配和释放。 实现物理I/0设备的操作。对于具有通道的系统,设备 管理程序根据用户提出的I/0请求,生成相应的通道程 序并提交给通道,然后用专门的通道指令启动通道,对 指定的设备进行I/0操作,并能响应通道的中断请求。 对于未设置通道的系统,设备管理程序直接驱动设备进 行I/0操作
设备管理的目标和功能-1 2. 设备管理功能 • 设备分配。指设备管理程序按照一定的算法把某一个 I/O设备、及其相应的设备控制器和通道分配给某一用 户(进程),对于未分配到的进程,则插入等待队列中。 • 缓冲区管理。为了解决CPU与I/O之间速度不匹配的矛 盾,在它们之间配置了缓冲区。这样设备管理程序又要 负责管理缓冲区的建立、分配和释放。 • 实现物理I/O设备的操作。对于具有通道的系统,设备 管理程序根据用户提出的I/O请求,生成相应的通道程 序并提交给通道,然后用专门的通道指令启动通道,对 指定的设备进行I/O操作,并能响应通道的中断请求。 对于未设置通道的系统,设备管理程序直接驱动设备进 行I/O操作
(二)I/0控制方式 随着计算机技术的发展,I/0的控制方式也在不断地发 展。一般可分为:程序I/0方式、中断方式、DMA方式和通道 方式。I/0的控制方式发展的目标是尽量减少主机对I/0控制 的干预。 (1)程序I/0( ProgrammedⅣO)方式( Polling轮询) 在早期的计算机系统中,由于没有中断机构,处理机对I/0 设备直接进行控制,采取程序I/0( Programmed I/0)方式 或称为忙等待方式,即在CP向设备控制器发出一条I/0指 令启动I/0设备进行数据传输时,要同时把状态寄存器中的 忙/闲标志bus置为1,然后便不断地循环测试busy。当 busy=1时,表示该I/0设备尚未输入完一个字(符),CPU应继 续对该标志进行测试,直至busy=0,表示该I/0设备已将输 入数据送入到I/0控制器的数据寄存器中,于是CPU将从数据 寄存器中取出数据,送入内存的指定单元,接着,再启动去 读下一个数据,并置busy=1
(二)I/O控制方式 • 随着计算机技术的发展,I/O的控制方式也在不断地发 展。一般可分为:程序I/O方式、中断方式、DMA方式和通道 方式。I/O的控制方式发展的目标是尽量减少主机对I/O控制 的干预。 (1) 程序I/O(Programmed I/O)方式(Polling轮询) • 在早期的计算机系统中,由于没有中断机构,处理机对I/O 设备直接进行控制,采取程序I/O(Programmed I/O)方式 或称为忙-等待方式,即在CPU向设备控制器发出一条I/O指 令启动I/O设备进行数据传输时,要同时把状态寄存器中的 忙/闲标志busy置为1,然后便不断地循环测试busy。当 busy=l时,表示该I/O设备尚未输入完一个字(符),CPU应继 续对该标志进行测试,直至busy=0,表示该I/O设备已将输 入数据送入到I/O控制器的数据寄存器中,于是CPU将从数据 寄存器中取出数据,送入内存的指定单元,接着,再启动去 读下一个数据,并置busy=l
(a)程序I/0方式的流程 (b)中断驱动方式的流程 CPU→I/0 CPU→I/0 向ⅣO控制器发读命令 向ⅣO控制器发读命令 I/0→CPU CPU做其它事 读O控制器的状态」 读U控制器的状态」中断 出错 I/0→CPU 未就绪 处理 出错 检查状态? 检查状态?处理 I/O→CPU 就绪 I/O→CPU,就绪 从ⅣO控制器中读入字 从ⅣO控制器中读入字 CPU→RAM CPU→RAM 向内存中写入字 向内存中写入字 未完 未完 传送完毕? 传送完毕? 完成 成 执行下一条I/O指令 执行下一条I/O指令
(a)程序I/O方式的流程 (b)中断驱动方式的流程 向I/O控制器发读命令 读I/O控制器的状态 检查状态? 从I/O控制器中读入字 向内存中写入字 传送完毕? CPU→I/O I/O→CPU 未就绪 出错 处理 I/O→CPU 就绪 CPU→RAM 未完 完成 执行下一条I/O指令 向I/O控制器发读命令 读I/O控制器的状态 检查状态? 从I/O控制器中读入字 向内存中写入字 传送完毕? CPU→I/O CPU做其它事 中断 I/O→CPU出错 处理 I/O→CPU 就绪 CPU→RAM 未完 完成 执行下一条I/O指令
I/0控制方式-1 在程序I/0方式中,由于CPU的速度远远高于I/0设备,导致 CPU的绝大部分时间都处于等待I/0设备完成而循环测试之中, 造成了CPU的极大浪费。但是它管理简单,在要求不高的场合 可以被采用 (2)中断控制( Interrupt- driven i/0)方式 在现代计算机系统中,对I/O设备的控制,广泛地来用中断驱 动方式,即当某进程要启动某个I/0设备时,便由CPU向相应 的设备控制器发出一条I/0命令,然后立即返回继续执行原来 的任务。设备控制器便按照该命令的要求去控制I/0设备。此 时,CPU与I/0设备处于并行工作状态。例如,在输入时,当 设备控制器收到CPU发来的读命令后,便准备接收从相应输 入设备送来的数据。一旦数据进入数据寄存器,控制器便通 过控制线向CPU发送一中断信号,由CPU检査输入过程中是否 出错,若无错,便向控制器发取走数据的信号,然后便通过 控制器将数据写入指定内存单元
I/O控制方式-1 • 在程序I/O方式中,由于CPU的速度远远高于I/O设备,导致 CPU的绝大部分时间都处于等待I/O设备完成而循环测试之中, 造成了CPU的极大浪费。但是它管理简单,在要求不高的场合 可以被采用。 (2)中断控制(Interrupt-driven I/O)方式 在现代计算机系统中,对I/O设备的控制,广泛地采用中断驱 动方式,即当某进程要启动某个I/O设备时,便由CPU向相应 的设备控制器发出一条I/O命令,然后立即返回继续执行原来 的任务。设备控制器便按照该命令的要求去控制I/O设备。此 时, CPU与I/O设备处于并行工作状态。例如,在输入时,当 设备控制器收到 CPU发来的读命令后,便准备接收从相应输 入设备送来的数据。一旦数据进入数据寄存器,控制器便通 过控制线向CPU发送一中断信号,由CPU检查输入过程中是否 出错,若无错,便向控制器发取走数据的信号,然后便通过 控制器将数据写入指定内存单元
Interrupt ts revisited Intern Device is finished CPU controller 3. CPU acks intern 层表\ Keyboard Clock 2. Controller Printer Issues interrupt How interrupts happens. Connections between devices and interrupt controller actually use interrupt lines on the bus rather than dedicated wires
Interrupts Revisited How interrupts happens. Connections between devices and interrupt controller actually use interrupt lines on the bus rather than dedicated wires