第八章 输入输出管理



《第八章 输入输出管理》由会员分享,可在线阅读,更多相关《第八章 输入输出管理(40页珍藏版)》请在文档大全上搜索。
1、18.18.28.38.428.1 输入输入/输出管理概念输出管理概念o一、引言一、引言o设备分类设备分类o1. 存储设备存储设备:是存储信息的设备,如:磁盘、磁鼓。(以块为单位传输信息)。o2. 输入输出设备输入输出设备:能将信息从计算机外部输入到机内,或反之,如:键盘、显示器、打印机。 o3.传输设备传输设备 n负责计算机之间的信息传输,如调制调节器、网卡。o设备按传输信息的特点来分:字符设备、块设备38.1 输入输入/输出管理概念输出管理概念o设备设备管理的设计目标管理的设计目标n1. 提高设备利用率(关键是实现设备的并行操作)提高设备利用率(关键是实现设备的并行操作)o合理分配设备o提
2、高设备与CPU、各外部设备之间的并行性(通道和中断)n2. 方便用户使用方便用户使用o独立于设备:用户使用的设备与物理设备无关o建立虚拟环境n3. 设备处理的一致性设备处理的一致性o设备品种繁多、用法各异,逐一管理十分复杂;o输入输出系统应将设备的特性与处理它们的程序分开。48.1 输入输入/输出管理概念输出管理概念o二、输入二、输入/输出输出管理功能管理功能n1. 状态跟踪状态跟踪o动态地记录各种设备的状态(保留在设备控制块中)n2. 确定设备分配策略确定设备分配策略o决定设备分配策略,确定谁、何时存取设备、使用多长时间。n3. 设备分配与回收设备分配与回收o作业级静态分配:作业进入系统时就
3、进行分配,退出系统时就收回全部资源。o进程级动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。n4. 设备控制设备控制o负责将用户I/O请求转换为设备能识别的I/O指令,实施设备驱动和中断处理的工作。5o三三. 设备独立性设备独立性n1. 设备独立性概念设备独立性概念o(1) 什么是设备独立性什么是设备独立性: 所谓设备独立性是指,用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。o(2) 逻辑设备名逻辑设备名: 逻辑设备名,是用户自己指定的设备名(或设备号),它是暂时的、可更改的。o(3) 物理设备名物理设备名: 物理设备名是系统提
4、供的设备的标准名称,它是永久的、不可更改的。 8.1 输入输入/输出管理概念输出管理概念6o2. 设备独立性的实现设备独立性的实现n(1) 在高级语言中用软通道实现在高级语言中用软通道实现o使用高级语言提供的指派语句,通过指派一个逻辑设备名(通道号)来定义一个设备或文件。 如:fd = open(“/dev/lp” ,mode); number1=write(fd,buf,count1);n(2) 在批处理系统中,用连接说明语句来定义在批处理系统中,用连接说明语句来定义 如:OUTPUT1 = LPTn(3) 在交互系统中,用指派命令来定义在交互系统中,用指派命令来定义 如:PDP系列机上的R
5、T11系统 ASSIGN 设备物理名 设备逻辑名8.1 输入输入/输出管理概念输出管理概念7n逻辑设备描述器ldd(logic-device-descriptor)o是一种数据结构,进程控制块中有一个指针指向它。o3. 实现设备独立性的优点实现设备独立性的优点n方便用户n改善设备利用率n提高系统的可扩展性和可适应性 8.1 输入输入/输出管理概念输出管理概念ldd_ptrpcbI1sr1dcb_ptrO1lp3dcb_ptrldd1ldd2Ldd包括:设备逻辑名设备物理名设备控制块dcb指针逻辑设备描述器队列勾链字88.1 输入输入/输出管理概念输出管理概念o四四. 设备控制块设备控制块 n1
6、. 什么是设备控制块什么是设备控制块(DCB )o系统为每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。n2.设备转换表设备转换表o进程的每个I/O请求都要转换成调用一个能执行I/O操作的设备例程。通过操作码检索“设备转换表”以找到相应的设备例程地址。9o2. 设备控制块的内容设备控制块的内容n表8.1 设备控制块 dcb n1. 设备名:是设备的系统名,即设备的物理名。n2. 设备属性:描述设备现行状态的一组属性n3. 命令转换表:转换表包含设备特定的I/O例程地址,不具备相应功能的设备在其例程地址上可以填“1”。设备名设备属性指向命令转换表的指针在I
7、/O总线上的设备地址设备状态当前用户进程指针I/O请求队列指针 8.1 输入输入/输出管理概念输出管理概念10o一一. 缓冲概念缓冲概念n1. 什么是缓冲什么是缓冲o缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段。n2. 缓冲器缓冲器o是以硬件的方式来实现缓冲,容量较小,是用来暂时存放数据的一种存储装置。n3. 软件缓冲区软件缓冲区o用来保存在两设备之间或在设备和应用程序之间所传数据的内存区域。8.2 缓冲技术缓冲技术11o4. 为什么引入缓冲为什么引入缓冲n(1) 处理数据流的生产者与消费者间的速度差异处理数据流的生产者与消费者间的速度差异 o如:从调制解调器收到一个文件,并保
8、存到硬盘上。n(2) 协调传输数据大小不一致的设备协调传输数据大小不一致的设备o在计算机网络中用来处理消息的分段和重组。n(3) 应用程序的拷贝语义应用程序的拷贝语义o如:操作系统为保证系统调用write的正确语义,即应用程序要写入磁盘的数据就是write系统调用发生时的版本。o方法:在系统调用返回前将应用程序缓冲区复制到内核缓冲区。8.2 缓冲技术缓冲技术12o二二. 常用的缓冲技术常用的缓冲技术n双缓冲、环形缓冲、缓冲池 n. 双缓冲双缓冲o在双缓冲方案下,为输入或输出分配两个缓冲区buf1 、 buf2 。o(1) 输入数据时,如何利用双缓冲输入数据时,如何利用双缓冲o(2) 输出数据时
9、,如何利用双缓冲输出数据时,如何利用双缓冲o(3) 缓冲区既用于输入,也用于输出数据时,如何利缓冲区既用于输入,也用于输出数据时,如何利用双缓冲用双缓冲8.2 缓冲技术缓冲技术13o(1) 输入、输出数据时,如何利用双缓冲输入、输出数据时,如何利用双缓冲输入设备输入设备BUF1进程进程BUF2输出设备输出设备BUF1进程进程BUF28.2 缓冲技术缓冲技术14o说明使用双缓冲可以提高I/O的效率的例sio,读一张卡片到 buf1等待卡片输入机结束等待打印机就绪sio,打印 buf1的内容sio,读一张卡片到 buf2等待卡片输入机结束等待打印机就绪sio,打印 buf2的内容读卡机、打印机可并
10、行操作读卡机、打印机可并行操作8.2 缓冲技术缓冲技术15o一、设备分配原则一、设备分配原则n1. 静态分配和动态分配o独占设备静态分配;共享设备动态分配n2. I/O设备分配算法o先请求先服务o优先级最高者优先n3. 设备分配的安全性o防止发生死锁。 o对独占设备一般采用静态分配,不会产生死锁。若采用动态分配,如一个进程只提出一个I/O请求,则也不会产生死锁,但如一个进程可同时操作多个外设时,就有可能产生死锁。8.3 设备分配设备分配16o设备分配的主要技术设备分配的主要技术独享、共享、虚拟技术独享、共享、虚拟技术o二二. 独享分配独享分配n1. 什么是独享设备什么是独享设备o让一个作业在整
11、个运行期间独占使用的设备。 n2. 什么是独享分配什么是独享分配o在一个作业执行前,将它所要使用的设备分配给它;当它结束撤离时,将分配给它的这类设备收回。o三三. 共共享分配享分配n1. 什么是共享设备什么是共享设备o由多个作业、进程共同使用的设备称为共享设备(磁盘)。n2. 什么是共享分配什么是共享分配o共享分配就是动态分配。当进程提出资源申请时,由设备管理模块进行分配,进程使用完毕后,立即归还。8.3 设备分配设备分配17o三三. 虚拟虚拟分配分配n虚拟分配:分配虚拟设备,使用SPOOLing系统。n1. SPOOL(Simultaneous Peripheral Operation On