的要求。
(4) 一般说来,文件系统应具备哪些功能?
一般说来,文件系统应具备以下功能:文件管理;目录管理;文件存储空间的管理;文件的共享和保护;提供方便的接口。 (5) 文件控制块与文件有何关系?
文件控制块——用于控制和管理文件的数据结构,其中包括文件名、文件类型、位置、大小等信息。
文件控制块与文件一一对应,即在文件系统内部,给每个文件唯一地设置一个文件控制块,核心利用这种结构对文件实施各种管理。
(6) 文件系统中的目录结构有哪几种基本形式?各有何优缺点?UNIX/Linux系统中采用哪种目录结构?
文件系统中的目录结构有:单级目录结构,二级目录结构,树形目录结构,非循环图目录结构。各自的优缺点如下表: 目录结构
优 点
缺 点
查找速度慢;不允许重名;
单级目录
简单,能实现按名存取。
不便于共享。
二级目录
允许重名;提高了检索目录的速度。 文件的层次和隶属关系很清晰,便于
树形目录
实现不同级别的存取保护和文件系
统的动态装卸。 具有树形结构的优点,而且实现对文
件的永久共享。
只能在用户级对文件进行临时共享。
仍不利于文件共享。
非循环图目录 管理较复杂。
UNIX系统中采用非循环图目录结构,即带链接的树形目录结构。
(7) 常用的磁盘空闲区管理技术有哪几种?试简要说明各自的实现思想。
常用的磁盘空闲区管理技术有:空闲盘块表法、空闲块链接法、位示图法、空闲块成组链接法。
空闲盘块表法——所有连续的空闲盘块在表中占据一项,其中标出第一个空闲块号和该
项中所包含的空闲块个数,以及相应的物理块号。利用该表进行盘块的分配和文件删除时盘块的回收。
空闲块链接法——所有的空闲盘块链在一个队列中,用一个指针(空闲区头)指向第一个空闲块,而各个空闲块中都含有下一个空闲区的块号,最后一块的指针项记为NULL,表示链尾。分配和释放盘块都在链头进行。
位示图法——利用一串二进位的值来反映磁盘空间的分配情况,每个盘块都对应一位。如果盘块是空闲的,对应位是0;如盘块已分出去,则对应位是1。
空闲块成组链接——把所有空闲盘块按固定数量分组,组与组之间形成链接关系,最后一组的块号(可能不满一组)通常放在内存的一个专用栈结构中。这样,平常对盘块的分配和释放是在栈中进行(或构成新的一组)。
(8) 什么是文件的共享?文件链接如何实现文件共享?
文件的共享是指系统允许多个用户(进程)共同使用某个或某些文件。
文件链接是给文件起别名,即将该文件的目录项登记在链接目录中。这样,访问该文件的路径就不只一条。不同的用户(或进程)就可以利用各自的路径来共享同一文件。 (9) 什么是文件保护?常用的保护机制有哪些?
文件保护——是指文件免遭文件主或其他用户由于错误的操作而使文件受到破坏。 常用的文件保护机制有:
① 命名——自己的文件名,不让他人知道; ② 口令——对上口令,才能存取;
③ 存取控制——有权才可存取,不同权限干不同的事; ④ 密码——信息加密,解密复原。
(10) 什么是文件的备份?数据备份的方法有哪几种?按时机分,备份分哪几种? 文件备份就是把硬盘上的文件在其它外部的存储介质(如磁带或软盘)上做一个副本。 数据备份的方法有完全备份、增量备份和更新备份三种。 按时机分,后备分为―定期备份‖和―不定期备份‖。
(11) 硬盘分区有哪三种类型?Linux可以安装在哪些分区上?
硬盘分区有三种类型:主分区、扩展分区和逻辑分区。Linux既可以安装在主分区上,也可以安装在逻辑分区上。
(12) 在Linux系统中,ext2文件系统的构造形式是什么?超级块的作用是什么?
在Linux系统中,ext2文件系统的构造形式为引导块和一系列的块组。其中块组又包括超级块、块组描述结构、块位示图、索引节点位示图、索引节点表和数据块。
超级块中包含有文件系统本身的大小和形式的基本信息。文件系统管理员可以利用这些信息来使用和维护文件系统。 3. 思考题
(1) 在UNIX/Linux系统中,如何表示一个文件的存取权限?
在UNIX/Linux系统中,一个文件的存取权限用9个二进制位表示:前三位分别表示文件主的读、写和执行权限,中间三位分别表示同组用户的读、写和执行权限,最后三位分别表示其他用户的读、写和执行权限。
(2) 在Linux系统中,为什么要提供VFS?
Linux系统可以支持多种文件系统,为此,必须使用一种统一的接口,这就是虚拟文件系统(VFS)。通过VFS将不同文件系统的实现细节隐藏起来,因而从外部看上去,所有的文件系统都是一样的。
(3) 简述管道文件的实现机制。执行命令 cat myfile | wc –l 的输出应是什么? 管道文件的实现机制如下如所示:
在执行管道命令行时要创建一个管道文件和两个进程:―|‖对应管道文件;由系统自动处理两个进程按先入先出的方式同步、调度和缓冲。管道文件是利用系统调用pipe( )创建的、在同族进程间进行大量信息传送的打开文件。
执行命令 cat myfile | wc –l 的输出是文件myfile的行数。
第6章教材习题解答
1. 基本概念和术语
存储设备、输入/输出设备、虚拟设备、设备独立性
存储设备——它们主要是计算机用来存储信息的设备,如磁盘(硬盘和软盘)、磁带等。 输入设备是计算机用来接受来自外部世界信息的设备,例如终端键盘输入、卡片输入机、纸带输入机等。输出设备是将计算机加工处理好的信息送向外部世界的设备,例如终端屏幕显示或打印输出部分、行式打印机、卡片输出机等。
虚拟设备是利用某种技术把独占设备改造成可由多个进程共用的设备,这种设备并非物理上变成了共享设备,而是用户使用它们时―感觉‖它是共享设备。
设备独立性就是用户程序应与实际使用的物理设备无关,由操作系统考虑因实际设备不同而需要使用不同的设备驱动程序等问题。 2. 基本原理和技术
(1) UNIX/Linux系统中主次设备号各表示什么含义?
UNIX/Linux系统中主设备号表示设备类型,次设备号表示同类设备中的相对序号。 (2) 为什么要引入缓冲技术?设置缓冲区的原则是什么?
引入缓冲技术的主要目的是:① 缓和CPU与I/O设备间速度不匹配的矛盾;② 提高它们之间的并行性;③ 减少对CPU的中断次数,放宽CPU对中断响应时间的要求。 设置缓冲区的原则是:如果数据到达率与离去率相差很大,则可采用单缓冲方式;如果信息的输入和输出速率相同(或相差不大)时,则可用双缓冲区;对于阵发性的输入、输出,可以设立多个缓冲区。
(3) 一般I/O软件系统的层次是怎样的?
I/O软件系统分为如下4个层次:① 中断处理程序;② 设备驱动程序;③ 与设备无关的操作系统I/O软件;④ 用户级I/O软件。 (4) 操作系统中设备管理的功能是什么?
操作系统中设备管理的功能是:监视设备状态;进行设备分配;完成I/O操作;缓冲管理与地址转换。
(5) 设备分配技术主要有哪些?常用的设备分配算法是什么? 设备分配技术主要有:独占分配、共享分配和虚拟分配。
常用的设备分配算法是:先来先服务算法和优先级高的优先服务算法。 (6) SPOOLing系统的主要功能是什么?
SPOOLing系统的主要功能是:将独占设备改造为共享设备,实现了虚拟设备功能。
(7) 处理I/O请求的主要步骤是什么?
处理I/O请求的主要步骤是:用户进程发出I/O请求;系统接受这个I/O请求,转去执行操作系统的核心程序;设备驱动程序具体完成I/O操作;I/O完成后,系统进行I/O中断处理,然后用户进程重新开始执行。
(8) 设备驱动程序的主要功能是什么?它在系统中处于什么位置?
设备驱动程序的功能主要有:接受用户的I/O请求;取出请求队列中队首请求,将相应设备分配给它;启动该设备工作,完成指定的I/O操作;处理来自设备的中断。
设备驱动程序在系统中处于核心空间,位于设备控制器的上层,目的是对核心I/O子系统隐藏各个设备控制器的差别。
(9) Linux系统中对设备怎样管理?
Linux系统中对设备管理具有下列共性:① 每个设备都对应文件系统中的一个索引节点,都有一个文件名;② 应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接;③ 对设备的使用类似于对文件的存取;④ 设备驱动程序是系统内核的一部分,它们必须为系统内核或者它们的子系统提供标准的接口;⑤ 设备驱动程序利用一些标准的内核服务,如内存分配等。
(10) 简述Linux系统中配置网卡的大致步骤。 Linux系统中配置网卡的大致步骤如下: ① 打开机器电源,将Linux系统启动。
② 配置网络参数。在―控制面板‖窗口上双击―网络‖图标。在弹出的窗口中配置网络参数,单击―确定‖。
③ 网卡自动检测。在出现―网卡配置‖对话框中,对配置的网卡进行自动检测;按照所连网络的网络管理机构统一的规定,将参数填入相应的数据框中,如―网关‖、―域名服务器‖等。上述参数配置好后,单击―确定‖按钮,使得网络参数设置生效。
④ 重新启动,双击主窗口上的―浏览器‖,可以利用网络提供的各种服务功能。 3. 思考题
假设一个磁盘有200个磁道,编号从0~199。当前磁头正在143道上服务,并且刚刚完成了125道的请求。如果寻道请求队列的顺序是:
86, 147, 91, 177, 94, 150, 102, 175, 130
问:为完成上述请求,下列算法各自磁头移动的总量是多少?