o 当一记录的冲突记数为0时,该记录是否一定空闲? o 当一记录空闲时,该记录的冲突记数是否一定为0?
答:(1)不一定,当前面记录发生冲突时,可能在顺序探查时占用本记录。 (2)不一定,可能存放冲突的记录。
(3)不一定,本记录被删除后,仍可能有其它记录其hash(key)为本记录入口地址。
10.何谓文件连接?如何实现文件连接?
答:所谓连接就是给文件起多个名字,这些名字都是路径名,不同用户可使用不同路径名访问同一文件,从而实现文件的共享。通过将文件FCB分为主部和次部,多个次部可以对应同一个主部,从而实现文件连接。例如,在UNIX系统中文件连接的命令形式是
link(old_name,new_name),其中,old_name表示已存在的文件路径名;new_name表示欲连接的文件路径名。该命令的执行步骤如下:(1) 查目录找到文件old_name的FCB主部,由此得到文件号;(2) 查目录找到文件new_name的末级目录;(3)将文件号与new_name中末级名字合起来构成一个新的目录项,将其填入new_name的末级目录文件中;(4) 将FCB主部中的连接计数加1。
11. LFS提出的动机是什么? Inode map的作用是什么?
答:LFS是指日志结构文件系统(Log Structured File System),LFS提出的动机是提高大量的“小量写”的效率。LFS将整个磁盘看作一个日志(log),并周期性地追加新日志。写操作并非被直接反映到磁盘上,而是被暂存到内存的缓冲区中,其中包括新写的数据,也包括更新数据。当其积累到一定规模时,作为一个segment追加到日志的末尾。一个segment包括inode、目录、以及数据块。每个segment的开始处包含一个总结信息(summary),说明该segment的信息组织情况,segment的结构如下: summary Inodes,directories,data blocks 由于inode的存储位置不再能由其编号确定,系统维护一个inode map,以实现i-number到磁盘inode位置的映射,inode map保存在磁盘上,但被缓冲到内存以提高访问速度。打开文件时由i-number查inode map找到inode,进而找到文件数据块。
12. 在存取方式和速度方面,内存映射文件与传统文件有何不同?
答:传统文件是保存在外存的,访问之前需要执行打开操作,打开文件的目的是将文件的控制信息读入内存打开文件表中,并建立文件描述符与内存文件表之间的联系,由于文件控制信息中包含文件的物理结构和地址信息,通过文件描述符就可以实现对文件的读写操作。通过文件描述符读写文件,每次需要经过系统调用,与直接访问内存相比速度要慢很多,主要原因在于:(1)文件本身在外存,尽管缓冲可以提高速度,但首次访问仍需由磁盘读入,另外由于buffer数量限制只能缓冲文件的局部,而且缓冲信息需要在系统空间与用户空间传递;(2) 每次文件访问需要经过系统中若干级文件打开表才能找到文件内容。
41
内存映射文件就是将文件映射到内存空间,然后以内存访问方式存取文件,大大加快了访问速度。内存映射文件所带来的另外一个好处是利用共享的文件实现进程间高级通讯,当然用户进程必须考虑互斥和同步问题。文件管理者将文件操作转给内存管理者。文件被映射到内存X,对文件bi字节的访问被映射到虚拟地址X+i。 当文件的一部分被访问时,以页为单位调入内存,存储管理模块负责页的动态交换。 八、 设备管理习题及解答:
1. 简略叙述I/O操作的演变过程:查询方式→中断方式→通道方式,并分析对于多道程序设计所带来的影响。
答:I/O操作最早为查询方式,将待传输的数据放入I/O寄存器并启动设备,然后反复测试设备状态寄存器直至完成。采用这种方式,处理机与设备之间是完全串行的。伴随设备中断处理机的能力,产生了中断I/O方式。CPU在启动设备后,可从事其它计算工作,设备与CPU并行,当设备I/O操作完成时,向CPU发送中断信号,处理机转去进行相应处理,然后可能再次启动设备传输。中断使多道程序设计成为可能:一方面中断使操作系统能够获得处理机控制权,另一方面通过I/O中断可以实现进程状态的转换。中断使处理机与设备之间的并行成为可能,但I/O操作通常以字节为单位,当设备很多时对处理机打扰很多,为此人们设计了专门处理I/O传输的处理机—通道。通道具有自己的指令系统,可以编写通道程序,一个通道程序可以控制完成许多I/O传输,只在通道程序结束时,才向处理机发生一次中断。 2. 通道与DMA之间有何共同点?有何差别?
答:通道与DMA都属于多数据I/O方式,二者差别在于:通道控制器具有自己的指令系统,一个通道程序可以控制完成任意复杂的I/O传输,而DMA并没有指令系统,一次只能完成一个数据块传输。
3. 下述设备的物理地址各是几维的?为什么在I/O操作之前通常使用一维地址? 一维地址与多维地址之间的对应关系是由硬件确定的,还是由操作系统确定的? (1) 磁盘组(2) 磁带(3) 光盘
答:(1) 磁盘组的物理地址是三维的;(2) 磁带的物理地址是一维的;(3) 光盘的物理地址是二维的。
为了屏蔽设备的具体特性,在I/O操作之前通常使用一维地址,一维地址与三维地址之间的对应关系通常由操作系统设计者来确定。 4.磁带机为何不适合用作共享型设备?
答:磁带机属于启停型设备,即使用时开启,不用时停止。用来记录信息的磁带一般很长,带上块号顺序编址,块的随机定位涉及磁带的机械运动,速度很慢,随机访问不连续的磁带块会造成较大的时间开销,这决定磁带属于顺序访问设备。顺序访问设备不适合用作共享型设备。
5.在下述三种类型通道中,哪种类型支持通道程序的并发执行?
42
(1) 字节多路通道 (2) 数据选择通道 (3) 数组多路通道
答:(1) 字节多路通道(byte multiplexor channel):通道中含有许多非分配型子通道,每个子通道所连接的I/O设备以字节为单位,分时间地与通道交换数据,主要用于连接低速I/O设备,通道程序可以并发执行。
(2) 数组选择通道(block selector channel):其所连的I/O设备是以块为单位与通道交换数据。用于连接多台高速设备,但其中只有一个分配型子通道,在一段时间内只能执行一道通道程序。
(3) 数组多路通道(block multiplexor channel):所连外部设备以块为单位与通道交换数据. 用于连接多台高速设备,允许几个通道程序分时并行工作。 6.用户申请独占型设备为何不指定具体设备,而仅指定设备类别?
答:进程申请独占型设备资源时,应当指定所需设备的类别,而不是指定某一具体的设备编号,系统根据当前请求以及资源分配情况在相应类别的设备中选择一个空闲设备并将其分配给申请者,这称作设备无关性。这种分配方案具有如下两个优点: (1) 提高设备资源利用率,假设申请者指定具体设备,被指定的设备可能正被占用,因而无法得到,而其它同类设备可能空闲,造成资源浪费和进程不必要的等待;(2) 程序与设备无关,假设申请者指定具体设备,而被指定设备已坏或不联机,则需要修改程序。 7.为何不允许用户程序直接执行设备驱动指令?
答:(1)系统中的设备可能被多个进程所共享,例如磁盘就是这样的设备。如果允许用户程序直接执行设备驱动指令,那么就有可能损坏设备。(2)设备操作涉及很复杂的驱动过程,一般用户编写驱动程序是很大的负担,操作系统的目标是方便用户使用计算机系统,因而提供标准驱动程序。
8.何谓“磁道歧视”? 假设每个磁道各有一个磁头,是否还存在磁道歧视问题?
答:在最短查找时间优先(SSTF)等磁盘引臂调度算法中,磁头引臂可能长时间停留在磁盘的某些磁道局部,而不光顾另外一些磁道。例如,某一时刻外磁道请求不断,则内磁道请求可能长时间得不到满足,这种现象称为“磁道歧视”(track discrimination)。假若每个磁道各有一个磁头,则不存在磁道歧视问题。
9.处理机与通道之间是如何通讯的? 通道与处理机之间呢?
答:通道与处理机之间相对独立,通道程序的执行可与处理机的操作并行;因为一个系统中可能有多个通道,这些通道也可并行地执行相应的通道程序。通常,通道程序形成之后,处理机将通道程序的起始地址放到内存指定单元处,然后执行通道启动指令使通道开始工作。通道被启动之后由指定单元取来通道程序的起始地址,并放入通道地址字CAW中,由此依次地执行各条通道指令。当通道程序执行完毕,或执行到通道结束指令时,产生通道中断信号,该信号发给处理机,处理机响应中断后取出中断字,分析中断原因并进行相应的中断处理。 10. 说明下列术语之间的对应关系
43
(1) I/O设备(2) I/O驱动程序(3) I/O进程
答:一般来说,一个I/O驱动程序与多个同类设备相对应,一个I/O设备与一个I/O进程对应。
11. 什么叫缓冲(buffering)? 缓冲与缓存(caching)有何差别?
答:利用存储区缓解数据到达速度与离去速度不一致而采用的技术称为缓冲,此时同一数据只包含一个拷贝。例如,操作系统以缓冲方式实现设备的输入和输出操作主要是缓解处理机与设备之间速度不匹配的矛盾,从而提高资源利用率和系统效率。缓存是为提高数据访问速度而将部分数据由慢速设备预取到快速设备上的技术,此时同一数据存在多个拷贝。例如, 远程文件的一部分被取到本地。当然,在有些情况下,缓冲同时具有缓存的作用。例如UNIX系统对于块型设备的缓冲区,在使用时可保持与磁盘块之间的对应关系,既有缓冲的作用也有缓存的作用,通过预先读与延迟写技术,进一步提高了I/O效率。
12. 与为每个设备配置一个(或若干个)缓冲区相比,采用可为多个设备共用的缓冲池有何优点?
答:将一个缓冲区与一个固定的设备相联系,不同设备使用不同的缓冲区,这种缓冲区管理模式称为私用缓冲。私用缓冲利用率低,某一执行I/O传输的设备,其私用缓冲区可能不够,而另外未执行I/O操作的设备,其私用缓冲区被闲置导致浪费。
为提高缓冲区的利用率,通常不将缓冲区与某一个具体设备固定地联系在一起,而是将所有缓冲区集中起来加以管理,按需要动态分派给正在进行I/O传输的设备,系统中的共用缓冲区集合被称为缓冲池(buffer pool)。
13. 在系统中缓冲区空间总长度固定的前提下,一个缓冲区过大或过小各有何优点和缺点? 答:缓冲区过大会造成资源浪费(平均浪费半个缓冲区容量),但是能减少I/O传输次数;缓冲区过小则会因I/O传输次数增多而增加系统开销,另外缓冲区过小会引缓冲链指针过多而浪费缓冲空间。
14.假设要修改某一磁盘块上的一部分,而其它部分保持原内容不变,应当如何做? 答:首先将该磁盘块内容读入内存缓冲区,然后在内存中修改相关内容,最后将修改后的缓冲区完整地回写到磁盘中。
15. 某磁盘组共有200个柱面,由外至内依次编号为0,?,199。I/O请求以10,100,191,31,20,150,32的次序到达,假定引臂当前位于柱面98处,对
FCFS,SSTF,SCAN,C-SCAN,LOOK,C-LOOK 引臂调度算法分别给出寻道示意图,并计算总移动量.对SCAN和LOOK算法,假定引臂当前移动方向由外向内。对LOOK算法假定回扫方向由内向外。
44
FCFS引臂调度算法寻道示意图
总移动量=(98-10)+(100-10)+(191-100)+(191-31)+(31-20)+(150-20)+(150-32)=88+90+91+160+9+130+118=686
SSTF引臂调度算法寻道示意图
总移动量=(100-98)+(150-100)+(191-150)+(191-32)+(32-31)+(31-20)+(20-10)=2+50+41+159+1+9+10=272
SCAN引臂调度算法寻道示意图
总移动量=(100-98)+(150-100)+(191-150)+(199-191)+(199-32)+(32-31)+(31-20)+(20-10)=2+50+41+8+167+1+9+10=288
LOOK引臂调度算法寻道示意图
总移动量=(100-98)+(150-100)+(191-150)+(191--32)+(32-31)+(31-20)+(20-10)=2+50+41+167+1+9+10==272
45