第六章输入输出系统-Read
- 格式:doc
- 大小:49.50 KB
- 文档页数:3
第六章在IDL中读写数据本章概要本章旨在介绍IDL中的常用的输入和输出程序。
IDL中的基本原则是:“只要有数据,就可以将其读进IDL”。
IDL没有格式要求,也没有特别要求在将数据带入IDL时对数据进行准备。
这使得IDL成为目前功能最强、最灵活的科学可视化分析语言。
具体来说,将学习:1.如何打开文件进行读写2.如何查找文件3.如何获得文件I/O的逻辑设备号4.如何获得机器的独立文件名5.如何读写ASCII或格式化的数据6.如何读写非格式化的或二进制数据7.如何处理大型数据文件8.如何读写通用的文件格式,如GIF和JEPG文件打开文件进行读写IDL中的所有输入和输出都是通过逻辑设备号完成的。
可以把一个逻辑设备设想为一个管道,这个管道连接着IDL和要读写的数据文件。
要从一个文件中读写数据,必须首先把一个逻辑设备号连接到一个特定的文件。
这就是IDL中三个Open命令的作用:openr 打开文件进行读。
openw 打开文件进行写。
openu 打开文件进行更新(也就是说,读和/或写)。
这三个命令的语法结构是完全相同的。
首先是命令名,后面是一个逻辑设备号和要与该逻辑设备号相连的文件名。
例如,将文件名temp596.dat和逻辑设备号20相连以便可以在此文件里面写入内容。
如下:OpenW, 20,‟temp596.dat‟将会看到Open命令更常用的书写方式。
例如,可能会看到类似于如下的IDL代码:OpenR, lun, filename此例中,变量lun保存了一个有效的逻辑设备号,变量filename代表一个机器特定的文件名,这个文件名将和此逻辑设备号联系起来。
注意,变量filename是一种机器特定的格式。
这意味着如果它含有特定的目录信息,它必须用本地机器的语法来表达。
而且它在某些机器(比如,UNIX机器)上具有大小写敏感性,因为在这些机器上文件名有大小写敏感性。
查找和选择数据文件IDL被广泛使用的原因之一,是IDL可以在许多不同的计算机操作系统中运行。
第六章输入输出系统1、通过硬件和软件的功能扩充,把原来独占的设备改造成若干用户共享的设备,这种设备称为()。
A、存储设备B、系统设备C、虚拟设备D、用户设备2、CPU输出数据的速度远远高于打印机的打印速度,为解决这一矛盾,可采用()。
A、并行技术 B.通道技术C、缓冲技术D、虚存技术3、为了使多个进程能有效的同时处理I/O,最好使用()结构的缓冲技术。
A、缓冲池B、单缓冲区C、双缓冲区D、循环缓冲区4、磁盘属于①(),信息的存取是以②()单位进行的,磁盘的I/O控制主要采取③()方式,打印机的I/O控制主要采取③()方式。
①A、字符设备 B、独占设备 C、块设备D、虚存设备②A、位(bit) B、字节C、桢D、固定数据块③A、循环测试 B、程序中断 C、DMA D、SPOOLing5、下面关于设备属性的论述中正确的为()。
A、字符设备的一个基本特征是不可寻址的,即能指定输入时的源地址和输出时的目标地址B、共享设备必须是可寻址的和可随机访问的设备C、共享设备是指在同一时刻内,允许多个进程同时访问的设备D、在分配共享设备和独占设备时,都可能引起进程死锁6、下面关于虚拟设备的论述中,正确的是()。
A、虚拟设备是指允许用户使用比系统中具有的物理设备更多的设备B、虚拟设备是指把一个物理设备变成多个对应的逻辑设备C、虚拟设备是指允许用户以标准化方式来使用物理设备D、虚拟设备是指允许用户程序不必全部装入内存便可使用系统中的设备7、通道是一种特殊①(),具有②()能力,它用于实现③()之间的信息传输。
①A、I/O设备B、设备控制器C、处理机D、I/O控制器②A、执行I/O指令集 B、执行CPU指令集C、传输I/O指令D、运行I/O进程③A、内存与外设B、CPU与外设C、内存与外存D、CPU与外存8、为实现设备分配,应为每类设备设置一张①(),在系统中配置一张①(),为实现设备的独立性,系统中应设置一张②()。
①A、设备控制表B、控制器控制表C、系统设备表D、设备分配表②A、设备开关表B、I/O请求表C、系统设备表D、逻辑设备表9、下面不适合于磁盘调度算法的是()。
具有作业调度和进程调度的调度队列模型子主题资源利用率:CPU利用率=CPU有效工作时间/CPU总工作时间平衡性:协调CPU和IO,使系统资源都经常处于忙碌状态策略强制执行高优先权优先,重要计算先来先服务短作业优先的优缺点实时调度的算法把内存中暂时不能运行的程序,或暂时不用的程序和数据换出到外存1.将逻辑地址的页号和页表长度进行比较,如果页号大于页表长度,发生越界中断2.如果小于页表长度,则页表始址+页号*位置得到物理块号3.物理块号*页面大小+页内地址=得到物理地址快表、联想寄存器、TLB1.将逻辑地址的页号与页表寄存器的页表长度进行比较,如果页号大于页表长度,越界中断1.将逻辑地址的段号和段表长度进行比较,如果段表长度<段号,产生越界中断请求分页的内存分配(请求调入软件)最小物理块的确定:作业正常运行所需要的最小物理块内存分配策略固定分配局部置换:只分可变分配局部置换:先分可变分配全局置换:没有内存,可换他人物理块分配算法:如何为不同的进程分配物理块预测页策略:预计不久之后会被访问的页优先调入内存,可一次调入多页,但是预测效率低下请求调页策略:需要的页面不在内存,发出请求,一次调入一页从打开文件表的表目删除直接-->物理地址哈希文件目录管理的要求1.实现按名存取2.允许文件重名3.提高检索速度4.文件共享基本信息类使用信息类为每一个用户建立一个单独的用户文件目录缺点用户相互隔离,无法合作创建者不用链接创建一个Link文件,存有共享文件的路径非创建者,连接到Link1.顺序访问容易消除了磁盘的外碎片,提高了外存的利用率(内碎片是消除不了的,因为每个盘块的大小固定)显式的“显”在哪里:链接文件各盘块的指针显式地存放在内存的一张链接表隐式的“隐”在哪里:下一个盘块号存在于上一个盘块中,而不是显示地放在外存有多少扇区,优点:支持直接访问优点大大加快了对大型文件的查找速度分配和回收:与内存的动态分区分配算法相同。
体系结构6-0
第六章 输入输出系统
6.2
解: 加速比=14.710
/%902/%101=+ 本题再次反映了Amdahl 定律,要改进一个系统的性能要对各方面性能都进行改进,不然系统中最慢的地方就成为新系统的瓶颈。
6.3假设磁盘空闲,这样没有排队延迟;公布的平均寻道时间是9ms ,传输速度是4MB/s ,转速是5400r/min ,控制器的开销是1ms 。
问读或写一个512字节的扇区的平均时间是多少?
解:
平均磁盘访问时间
= 平均寻道时间 + 平均旋转延迟 + 传输时间 + 控制器开销 15.725m 1 0.125 5.6 9 1ms 4.0MB/s 0.5KB 5400r/min 0.5 9ms = + + + = + + +
假设实际测得的寻道时间是公布值的33%,则答案是:
3ms + 4.2ms + 0.1ms + 1ms = 8.3ms
6.x 盘阵列有哪些分级?各有什么特点?
RAID0亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。
RAID1亦称镜像盘,使用双备份磁盘。
每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。
如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。
镜像是最昂贵的解决方法。
特点是系统可靠性很高,但效率很低。
RAID2位交叉式海明编码阵列。
原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。
RAID3位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。
即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。
RAID4专用奇偶校验独立存取盘阵列。
即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。
RAID5块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立存取的阵列。
即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。
RAID6双维奇偶校验独立存取盘阵列。
即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。
并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。
RAID7是采用Cache 和异步技术的RAID6,使响应速度和传输速率有了较大提高。
6.6 同步总线和异步总线各有什么优缺点?总线的主要参数有哪些?各是什么含义?
同步总线上所有设备通过统一的总线时钟进行同步。
同步总线成本低,因为它不需要设备之间相互确定时序的逻辑。
但是同步总线也有缺点,总线操作必须以相同的速度运行。
由于各种设备都要精确地以公共时钟为定时参考,因此在时钟频率很高时容易产生时钟相对漂移错误。
异步总线上的设备之间没有统一的时钟,设备自己内部定时。
设备之间的信息传送用总线发送器和接收器控制。
异步总线容易适应更广泛的设备类型,扩充总线时不用担心时钟时序和时钟同步问题。
但在传输时,异步总线需要额外的同步开销。
总线常用的参数有3个:
(1)T p:总线信号传输延迟。
即在总线上的每个设备都取到和识别一个信号需要的最大时间。
(2)T sk:响应其它设备的最大时间,这个参数在同步总线中是一个重要的参数。
(3)T op:设备的操作时间。
6,14 在有Cache的计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?如何克服?
(1)存储器中可能不是CPU产生的最新数据,所以I/O系统从存储器中取出来的是陈旧数据。
(2)I/O系统与存储器交换数据之后,在Cache中,被CPU使用的可能就会是陈旧数据。
第一个问题可以用写直达Cache解决。
第二个问题操作系统可以保证I/O操作的数据不在cache中。
如果不能,就作废Cache中相应的数据。
6.15
解:每个主存页有32K/128=256块。
因为是按块传输,所以I/O传输本身并不引起Cache失效。
但是它可能要替换Cache中的有效块。
如果这些被替换块中有60%是被修改过的,将需要(256×60%)×30=4608个时钟周期将这些被修改过的块写回主存。
这些被替换出去的块中,有95%的后继需要访问,从而产生95%×256=244次失效,将再次发生替换。
由于这次被替换的244块中数据是从I/O直接写入Cache 的,因此所有块都为被修改块,需要写回主存(因为CPU不会直接访问从I/O来的新页中的数据,所以它们不会立即从主存中调入Cache),需要时间是244×(40+30)=17080个时钟周期。
没有I/O时,每一页平均使用200万个时钟周期,Cache失效36000次,其中60%被修改过,所需的处理时间为:
(36000×40%)×40+(36000×60%)×(40+30)=2088000(时钟周期)时钟I/O造成的额外性能损失比例为
(4608+17080)÷(2000000+2088000)=0.53%
即大约产生0.53%的性能损失。
体系结构6-1
体系结构6-2。