Operating_System_Chapter-7_Fall_2011

Operating_System_Chapter-7_Fall_2011 - 第7章 文件管理...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 第7章 文件管理 7.1 文件与文件系统 7.2 文件结构与存取方法 7.3 文件目录管理 7.4 文件存储空间管理 7.5 文件的共享 7.6 Unix文件系统示意 Shanghai Jiao Tong University 7.1 文件与文件系统 7.1.1 文件的概念 文件是指可保存的、具有标识名的、逻辑 上具有完整意义的一组信息集合。 指定文件的类型、大小、创建时间、操作 特性和存取保护等这样一组信息,称为文 件的属性。 文件的属性一般存放在文件的目录项中。 文件是外存的最小分配单位,即数据必须 组织在文件中,否则不能写入外存。 IE310, 7-2, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统 7.1.2 文件的分类 以文件的性质和用途来分: 系统文件:指操作系统的内核程序和数据、各 种系统应用程序和数据等文件。不直接对用户 开放。 库文件:是指系统为用户提供的各种标准函数、 标准过程和子程序等。用户一般只能使用(读取) 这些文件,而无权对其进行修改。 用户文件:用户委托文件系统保存的文件,如 源程序文件、数据文件、实用程序文件等。这 类文件的使用和修改权均属于用户。 IE310, 7-3, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的分类) 以文件的组织形式来分: 普通文件:指普通的用户文件、系统文件 和库函数文件等。 目录文件:指由文件目录信息项组成的文 件。 特殊文件:有的系统把设备作为文件统一 管理和使用,从而称为特殊文件。 IE310, 7-4, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的分类) 以文件的存取控制属性来分: 只读文件:只允许进行读操作。 读写文件:允许进行读操作和写操作。 执行文件:允许执行。 IE310, 7-5, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统 7.1.3 文件的操作 建立文件create() 打开文件open() 文件指针定位lseek() 读文件read() 写文件write() 关闭文件close() 删除文件unlink() IE310, 7-6, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的操作) 打开文件open(): #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode); pathname指定文件的路径文件名(字符串)。 flags是O_RDONLY、O_WRONLY、O_RDWR、O_CREAT、O_EXCL、 O_TRUNC、O_APPEND、 O_NONBLOCK(O_NDELAY)、 O_SYNC等的按位 或。 mode是S_IRWXU、S_IRUSR(S_IREAD)、S_IWUSR(S_IWRITE)、 S_IXUSR(S_IEXEC)、S_IRWXG、S_IRGRP、S_IWGRP、S_IXGRP、 S_IRWXO、S_IROTH、S_IWOTH的按位或,在文件被创建(O_CREAT)时 需要提供。 creat()与flags为O_CREAT|O_WRONLY|O_TRUNC的open()相当. 返回-1表示系统调用失败,并由errno进一步指出错误的原因;否则返回文 件描述符,用于随后的read()、write()和close()系统调用。 IE310, 7-7, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的操作) 读文件read(): #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); fd指定前面已经成功打开或者创建的文件的描述符。 buf是将要存放从文件读出的数据至内存的起始位置。 count是希望读取的数据量,以字节为单位. 返回-1表示系统调用失败,并由errno进一步指出错误的 原因;否则返回成功读取数据的字节数,可能小于所希 望读取的字节数;返回0表示该文件已经结束(文件指针 已经到达文件尾部)。 IE310, 7-8, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的操作) 写文件write(): #include <unistd.h> ssize_t write(int fd, const void *buf, size_t count); fd指定前面已经成功打开或者创建的文件的描述符。 从buf所指向内存开始,存放将要被写入文件的数据。 count是希望写入的数据量,以字节为单位. 返回-1表示系统调用失败,并由errno进一步指出错误的 原因;否则返回成功写入数据的字节数。 IE310, 7-9, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的操作) 关闭文件close(): #include <unistd.h> int close(int fd); fd指定前面已经成功打开或者创建的文件的描述 符。 返回-1表示系统调用失败,并由errno进一步指 出错误的原因;否则返回0。 IE310, 7-10, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件的操作) 关闭读取例子readfile.c: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(int argc, char ** argv) { int fd; char szStrBuf[2048]; int nBytesRead; fd = open("./readfile.c", O_RDONLY); if (-1 == fd) {perror("打开文件失败");exit(-1);} while((nBytesRead = read(fd, szStrBuf, 2047)) > 0) { szStrBuf[nBytesRead - 1] = '\0'; //尾部强制以空字符结尾 printf("%s", szStrBuf); } } if (nBytesRead < 0) {perror("读取文件失败");exit(-1);} nBytesRead = close(fd); if (-1 == nBytesRead) {perror("关闭文件失败");exit(-1);} exit(0); IE310, 7-11, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统 7.1.4 文件系统 操作系统中负责(外存)文件管理和存取的 机构称为文件系统。 文件系统由管理文件所需的数据结构、相 应的管理软件和被管理的文件构成。 IE310, 7-12, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件系统) 文件系统的结构示意: IE310, 7-13, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.1 文件与文件系统(文件系统) 文件系统的主要功能: 完成文件存储空间的管理; 实现文件名到物理地址的映射; 实现文件和目录的操作管理; 提供文件共享能力和安全措施; 提供用户接口。 IE310, 7-14, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法 7.2 文件结构与存取方法 7.2.1 概述 文件的组织结构是指文件的构造方式。 用户和文件系统往往从不同的角度去看待一个具体的文 件。 用户的观点(文件的逻辑结构):主要研究用户概念中的抽象文 件,为用户提供一种逻辑结构清晰、使用简便的逻辑文件。用 户按自己对信息的使用要求组织文件,比如将文件看作若干记 录的集合,从而适合于直接以数据结构的形式进行处理。 学生按院系组织起来的相互关系 实现的观点(文件的物理结构):主要研究文件驻留在存储介质 上的结构,又称文件的存储结构,往往与存储介质的性质有关。 学生按宿舍区宿舍楼组织起来的相互关系 不论是文件的逻辑结构,还是物理结构,其构造方式均 直接影响文件的处理速度。 IE310, 7-15, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法 7.2.2 文件的逻辑结构 文件逻辑结构的分类: 流式文件:也就是无结构文件,基本信息 单位是字节或字,是由字节流构成的文件。 记录式文件:是一种具有特定结构的文件, 往往有一个以上的记录构成。 IE310, 7-16, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的逻辑结构) 流式文件 文件内的数据不再组成记录,只是依次的一串 信息集合,也可以看成是只有一个记录的记录 式文件。 常常按长度读取所需信息,或者用插入的特殊 字符作为分界。 有许多类型的文件并不需要分录,比如源程 序文件。 大多数现代操作系统对用户仅提供流式文件, 记录文件往往由高级语言或简单的数据库管理 系统提供。 IE310, 7-17, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的逻辑结构) 记录式文件 一般包含有若干条逻辑记录。 逻辑记录是文件中按信息在逻辑上的独立含义划分的信息单位。 文件中的记录可按顺序编号为记录1、记录2、……、记录n。 从操作系统的角度来看,逻辑记录是文件内独立的最小信息单位, 每次总是为使用者存储、检索或更新一个逻辑记录。 从使用者的角度来看,一条记录往往还可以进一步划分为一个或多 个更小的数据项,相当于一个C语言数据结构中的一个字段。 如果文件中所有记录的长度相等,则称为定长记录文件。 文件的长度为记录个数与记录长度的积。 检索的时候根据记录号和记录长度确定记录的逻辑地址。 若文件中的记录长度不相等,则称为变长记录文件。 文件长度为所有记录的长度之和。 记录长度各不相同的原因在于各记录所包含的数据项数目可能不同, 或者数据项本身的长度不确定。 记录的检索,必须从第一条记录开始,一条记录一条记录地查找。 IE310, 7-18, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法 7.2.3 文件的存取方法 顺序存取:严格按文件信息单位排列的顺序依次存取。 当打开文件时,文件的存取指针指向第一个信息单位, 如第一个字节或第一个记录,每存取一个信息单位存取 指针加1指向下一个信息单位,如此类推。 随机存取:也称直接存取,每次存取操作时必须先确定 存取的位置(读写指针)。对流式文件或定长记录的文件 比较容易确定存取位置。 按键存取: 常用于记录式文件。文件中各记录的关键字往往具有唯 一值,它们如果按序排列的,或者有索引,那么就可以 根据记录中的关键字的值进行检索存取。 对不定长的记录式文件比较麻烦,解决的方法是建立索 引。文件的索引可以作为文件的一部分,也可以单独建 立索引文件。 比如:学号(关键字);姓名;性别; …;家庭住址(变长). IE310, 7-19, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法 7.2.3 文件的物理结构 文件的物理结构是指逻辑文件在物理存储 空间中的存放方法和组织关系。 常用的文件物理结构包括: 连续结构 串联结构 索引结构 IE310, 7-20, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 连续结构 把文件的信息存放到磁盘上相邻的物理块中形 成顺序的结构。 此类文件被称为顺序文件,又称连续文件。 存放在磁带上的文件一般采用连续结构,即序 号为i+1的物理块紧跟在i物理块之后。 存放在磁盘上的文件可采用连续结构,也可采 用别的结构。 建立连续文件时要求用户给出文件的最大长度, 以便系统为文件分配足够的存储空间,并在相 应表格中登记文件的起始位置和长度。 相当于分配每个班级的学生使用相邻的寝室。 IE310, 7-21, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 连续结构(续) IE310, 7-22, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 连续结构(续) 优点: 简单; 支持顺序存取和随机存取; 顺序存取速度快,所需的磁盘寻道次数和寻道时间最 少。 缺点: 文件长度不易动态增长,预留空间浪费(内部碎片); 不利文件的插入和删除; 文件的频繁建立与释放可导致外部碎片问题; 不宜被用来存放经常被修改的文件。 IE310, 7-23, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构 用非连续、非相邻的物理块来存放文件信息。 也称链接结构。 这是一种非连续的结构,存放文件信息的每一物理块中 有一个指针,指向下一个物理块,这个指针的长度由物 理设备的容量决定,通常放在该物理块的开头或结尾。 串联结构的文件适用于顺序存取。因为要获得某一块的 块号,必须读取上一物理块,因此要随机地存取信息就 较为困难。 相当于,在各寝室的门背后,记录这个班级的下一个寝 室的楼号寝室号。 IE310, 7-24, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构(续) IE310, 7-25, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构(续) 优点: 提高了磁盘空间利用率,减少了内部碎片, 不存在外部碎片问题; 有利于文件的插入和删除; 有利于文件的动态扩充。 缺点: 存取速度慢,不适于随机存取; 链接指针占用一定的空间; 可靠性问题,如指针出错。 IE310, 7-26, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构之变形(显式链接-文件 映照图) 将盘块中的链接字按盘块号的顺序集中起 来,构成盘文件映射表/文件分配表(FAT)。 利用FAT可方便地进行随机存取。 相当于宿舍楼的门房间存放各班级的所有 排序了的寝室号。 IE310, 7-27, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构之变形(显式链接)(续) IE310, 7-28, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构之变形(显式链接)(续) FAT也要占用一定的存储空间,若盘的容量较大, 也可能占用较多的存储空间。 在进行文件访问时,可能在内存中装不下整个 FAT,这样就会造成若要读某块文件信息时,还 要读盘块映射表的操作,影响使用效率。 在MS-DOS系统中,文件的物理结构使用的是 FAT结构。 将磁盘空间划分为块,每块大小为扇区 (512Byte)的整数倍。在FAT文件系统中块称为 簇(Cluster)。 一个磁盘分区能分为多少簇则FAT就有多少表项。 IE310, 7-29, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 串联结构之变形(显式链接)(课堂讨论) 什么叫FAT16、FAT32? 在FAT16中一簇最大64个扇区,为什么 FAT16能管理的磁盘分区为2GB? FAT32同FAT16相比有什么优点? 对于FAT16文件系统,若一个磁盘分区的 大小为512MB,问一个簇最少要有多少个 扇区? 簇是大点好,还是小点好? IE310, 7-30, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 索引结构 一个文件的信息存放在若干不连续物理块中, 系统为每个文件建立一个专用数据结构-索引 表,并将前面这些不连续物理块的块号存放在 索引表中。 一个索引表就是磁盘块地址数组,其中第i个条 目指向文件的第i块。 索引表也占用物理块。 实际上就是逻辑块号到物理块号的映射表,类 似于内存管理中的页表。 IE310, 7-31, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 索引结构(续) IE310, 7-32, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 索引结构(续) 优点: 保持了链接结构的优点,又解决了其缺点, 既能顺序存取,又能随机存取; 满足了文件动态增长、插入删除的要求; 能充分利用外存空间。 缺点: 索引表本身带来了系统开销,如:内外存空 间、存取时间开销(一次文件存取两次访问存 储器—比如硬盘)等。 IE310, 7-33, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 索引结构(续) 当索引表本身很大时,可考虑建立多级索引: 第二级索引 主索引 360 740 360 105 106 254 磁盘空间 0 1 2 … 105 106 740 … … 356 357 254 1125 … … … 1125 356 357 … 985 985 … IE310, 7-34, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) FAT与索引结构之间的差异 一个磁盘仅有一个FAT;每个文件或目录均有一 个索引表。 FAT占用磁盘的固定区域,其中集中存放了所有 文件和目录(除根目录)所使用磁盘块的索引; 索引表并非出现在磁盘的固定位置,各文件和 目录的索引表分散在磁盘的整个区域。 FAT有可能被预先加载至操作系统内部管理的内 存;索引表则不会被预先加载至内存。 FAT是串联结构,不是索引结构。 IE310, 7-35, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构 小文件适合采用单重索引,大文件适合采用多 重索引。 为此,可以把索引表的头几项设计成直接块寻 址方式,即这几项所指的物理块中存放的是文 件的内容。 索引表的后几项设计成多重索引,即间接块寻 址方式。 在查找文件时,只需找到该文件的索引节点(位 于磁盘的特定区域,内含索引表),便可以采用 直接和间接相结合的寻址方式获得指定文件存 放的磁盘块。 IE310, 7-36, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续) 索引节点 IE310, 7-37, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续)之直接寻址 为了提高对小文件的检索速度,在索引节点中 可设置10个直接地址项,即用 iaddr[0]~iaddr[9]来存放直接地址。 换言之,在这里的每一项存放该文件内容所在 磁盘块的盘块号。 假如每个盘块的大小为 4KB,当文件不大于 40KB时,便可直接从索引节点中读出该文件的 全部盘块号。 直接寻址简单,但是限制了文件本身的大小。 IE310, 7-38, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续)之一次间接寻址 对于中型文件,只采用直接寻址是不现实的。 为此,利用索引节点中的地址项iaddr[10]来提供一次 间接地址。 一次间接寻址的实质就是一级索引方式,地址项 iaddr[10]实际上指向一个索引块,索引块内记录的才 是文件所分得的其它磁盘块的一组盘块号。 假如每个盘块的大小为 4KB: 首先通过直接寻址可以存放文件的4KB * 10 = 40KB; 然后通过一次间接寻址又可以存放文件的4KB * (4KB / 4B) = 4MB; 同时采用以上两种方式,可存放的文件大小为4.04MB。 IE310, 7-39, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续)之多次间接寻址 对于大型文件,只采用直接寻址和一次间接寻址还是不够的。 为此,进一步利用索引节点中的地址项iaddr[11]来提供二次间接 地址,进一步利用索引节点中的地址项iaddr[12]来提供三次间接 地。 如果仍然假设每个盘块的大小为 4KB: 首先通过直接寻址可以存放文件的4KB * 10 = 40KB; 然后通过一次间接寻址可以存放文件的4KB * (4KB / 4B) = 4MB; 然后通过二次间接寻址可以存放文件的4KB * (4KB / 4B) * (4KB / 4B) = 4GB; 最后通过三次间接寻址又可以存放文件的4KB * (4KB / 4B) * (4KB / 4B) * (4KB / 4B) = 4TB; 那么,同时采用以上几种方式,可存放的文件大小将达到 4.00400404TB。 IE310, 7-40, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续)之文件的字节偏移量到文件物理块号的转换 将字节偏移量转换为文件的逻辑块号和块内偏移量。 被打开的文件在文件表项中有一个读写指针,用以指示下次要读写 的字节偏移量位置。 该偏移量从文件的首个字符位置(偏移量为0)开始计算。 字节偏移量除以磁盘块的大小(以字节为单位),得到的商是文件逻 辑块号,余数是块内偏移量。 把文件逻辑块号转换为磁盘块号。 如果文件逻辑块号小于10(0~9),那么采用直接寻址,物理块号为 iaddr[文件逻辑块号];(以下假定块大小为1KB/块号长度4B) 如果文件逻辑块号大于等于10且小于266,那么采用一次间接寻址, 物理块号为iaddr[10]所指向的第[文件逻辑块号-10]项; 如果文件逻辑块号大于等于266且小于65802,那么采用二次间接寻 址,物理块号为iaddr[11]所指向的第[(文件逻辑块号-266)/256]项所 指向的第[(文件逻辑块号-266)%256]项; 如果文件逻辑块号大于等于65802,那么采用三次间接寻址,物理块 号为iaddr[12]所指向的第[(文件逻辑块号-65802)/(256*256)]项所指 向的第[((文件逻辑块号-65802)%(256*256))/256]项所指向的第 [((文件逻辑块号-65802)%(256*256))%256]项。 IE310, 7-41, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的物理结构) 混合索引结构(续)之优点 Unix文件的物理结构采用混合(多级)索引链接 结构。Unix利用文件i节点中的13个地址指针实 现文件物理结构的索引。 (以下假定块大小为1KB/块号长度4B) 内存中只需要使用13个地址指针,就可以容纳 最大达到10+256+256^2+256^3块大小的文 件,这就意味着文件即使达到8GB,Unix也可 以在磁盘上将其组织起来; 而对于中小文件,则采用直接索引和一次间接 索引,可以显著地减少读盘次数来提高检索速 度。 IE310, 7-42, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法 7.2.4 文件的存储设备 存储设备类型 主要有磁带、磁盘、光盘、闪存(U盘)、 迅盘等。 磁带属于顺序存取设备,只能存储连续文 件; 磁盘、光盘等为直接存取设备,可存储任 何格式的文件,对文件既能顺序存取,又 能随机存取。 IE310, 7-43, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 顺序存取设备-磁带 只有在前面的物理块被存取访问过之后, 才能存取后续的物理块的内容。 如果按随机方式或者按键存取方式存取磁 带上的文件信息,其效率不会很高。 磁带存取设备具有容量大、顺序存取方式 时存取速度高等优点。 被广泛地应用于数据备份这样的应用中。 IE310, 7-44, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 直接存取设备-磁盘 磁盘是最典型的直接存取设备。 允许文件系统直接存取磁盘上的任意物理块。 为了存取一个特定的物理块,磁头将直接移动 到所要求的位置上,而不需要像顺序存取那样 事先存取其它的物理块。 对不同物理块的存取时间有显著差别。 磁盘上每个物理块的位置可用柱面号、磁头号 和扇区号表示。 磁盘是大多数现代计算机系统的主要存储设备。 IE310, 7-45, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘之结构示意 扇区 磁臂 柱面 磁头 IE310, 7-46, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘之访问过程 寻道:磁头移动定位到指定磁道。 旋转延迟:等待指定扇区从磁头下旋转经过。 数据传输:数据在磁盘与内存之间的实际传输。 磁盘之访问时间 寻道时间Ts:大约几ms到几十ms。 旋转延迟时间Tr:对于7200转/分,平均延迟时间为 4.2ms。 数据传输时间Tt:磁盘的传输速度一般高于几十MB/s, 传输一个扇区的时间小于0.05ms。 IE310, 7-47, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 新型设备-光盘与闪存盘 光盘是利用在激光作用下特性发生变化的一些 材料所制成的非磁记录介质。 可读写CD-R/W、可读写DVD-R/W也已经越来越 普及。 闪存盘更加具有发展优势: 电可擦除; 可随机存取; 没有任何机械运动部件,寿命和可靠性很高; 读写速度比硬盘还要快; 体积小,容量越来越大,价格越来越便宜。 IE310, 7-48, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度 磁盘作为一类存放文件的高速大容量旋转型存 储设备,同时会有若干进程的I/O请求来到并等 待处理。 系统必须采用一种调度策略,使其能按最佳次 序执行要求访问的各个请求,这就是磁盘的驱 动调度。 调度中所采用的策略叫做驱动调度算法。 磁盘驱动调度应尽量减少为若干I/O请求服务所 需的总时间,尽量提高系统效率。 IE310, 7-49, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之先来先服务(FCFS)算法 按访问请求到达的先后次序服务。 优点:简单,公平合理。 缺点:没有对寻道进行优化,效率不高, 相邻两次请求可能会造成最内到最外的柱 面寻道,使磁头反复移动,增加了服务时 间,对机械也不利。 IE310, 7-50, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之最短寻道时间优先 (SSTF)算法 优先选择距当前磁头最近的访问请求进行 服务,即跨越的磁道数最少的优先。 优点:改善了磁盘平均服务时间。 缺点:造成某些访问请求长期等待得不到 服务。 IE310, 7-51, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之扫描 (SCAN)算法 依次为与当前磁头移动方向一致的访问请求服 务,当该方向上已没有访问请求时,则改变移 动方向,并为经过的访问请求服务,如此反复。 也称为电梯调度算法。 优点: 克服了最短寻道时间优先的缺点,既考虑了距离,同 时又考虑了方向。 既具有较好的寻道性能,又能避免进程的”饥饿”现 象。 缺点:对远离磁头的请求不利。 IE310, 7-52, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之【示例】 假设磁盘访问的请求序列为98、183、37、 122、14、124、65、67。 在访问了64道后,磁头目前正在53道上访 问。 请问当分别采用FCFS、SSTF和SCAN算法 时磁头的服务序列以及磁头移动的总距离 (道数)。 IE310, 7-53, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之【示例】之采用FCFS 磁盘服务序列为98、183、37、122、14、124、 65、67。 磁头走过的总道数:640。 IE310, 7-54, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之【示例】之采用SSTF 磁盘服务序列为65、67、37、14、98、122、 124、183。 磁头走过的总道数:236。 IE310, 7-55, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.2 文件结构与存取方法(文件的存储设备) 磁盘驱动调度之【示例】之采用SCAN 磁盘服务序列为37、14、65、67、98、122、 124、183。 磁头走过的总道数:208。 IE310, 7-56, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理 对文件目录管理的要求如下: 实现“按名存取”。 提高对目录的检索速度。 文件共享。 允许文件重名。 IE310, 7-57, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理 7.3.1 目录项和索引节点 目录项 目录项是操作系统为管理文件而设置的数据结构,存放 了为管理文件所需的所有相关信息。 所有的目录项就构成了文件目录。 基本信息类:文件名、文件物理位置。 存取控制信息类:属主、存取权限等。 使用信息类:文件创建、修改时间等。 文 件 名 扩 展 名 属 备 时 日 性 用 间 期 第 一 块 号 盘 块 数 MS-DOS中的目录项 IE310, 7-58, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录项和索引节点) 索引节点之引入 UNIX/Linux的文件目录。 文件名 索引节点编号 文件名1 10 文件名2 11 IE310, 7-59, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录项和索引节点) 索引节点之磁盘索引节点 文件主标识符 文件类型 文件存取权限 文件物理地址 文件长度 文件连接计数 文件存取时间 IE310, 7-60, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录项和索引节点) 索引节点之内存索引节点 索引节点编号。用于标识内存索引节点。 状态。指示i节点是否上锁或被修改。 访问计数。每当有一进程要访问此i节点时, 将该访问计数加1,访问完再减1。 文件所属文件系统的逻辑设备号。 链接指针。设置有分别指向空闲链表和散列队 列的指针。 IE310, 7-61, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理 7.3.2 目录结构 单级目录结构 缺点: 不允许重名; 查询范围广,速度慢; 不便于文件的共享,别名是多用户环境下操作系统提供文件 共享的一种有效方式,但是一级目录不允许文件存在别名。 文件名 文件名1 文件名2 物理地址 文件说明 状态位 IE310, 7-62, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录结构) 二级目录结构 二级文件目录结构把目录分成主目录和用户文 件目录两级。 主目录由用户名和用户文件目录首地址组成, 用户文件目录中登记相应的用户文件的目录项。 优点:二级目录结构较为简单,也比较好地解 决了重名的问题。 缺点:缺乏灵活性,特别是不能反映现实世界 中多层次的关系。 IE310, 7-63, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录结构) 二级目录结构之示意 Wang用用用用 用户名 Wang 指向子目录指针 Alpha Alpha Test Test Zhang Gao Zhang用用用用 Report Test Report Test Gao用用用用 Beta Device Misx Beta Device Misx IE310, 7-64, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录结构) 多级目录构 多级目录结构由根目录和各级目录组成,为管理上的 方便,?除根目录外?,其它各级目录均以文件的形 式组成目录文件。 根目录中的每个目录项可以对应一个目录文件,也可 以对应一个数据文件,同样目录文件中的每个目录项 可以对应一个目录文件,也可以对应一个数据文件。 如此类推,就形成多级目录结构。 也称树形目录结构。 特点: 层次清楚; 解决了重名问题; 查找速度快; 便于文件共享。 IE310, 7-65, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.3 文件目录管理(目录结构) 多级目录结构之示意 1 2 10 A B B C 3 D 6 5 A A F E D 4 7 G A 8 9 C 11 a 12 15 J N 16 K 13 b 17 J M 18 K 19 14 A 20 H F 21 IE310, 7-66, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理 存储空间管理是文件系统的重要任务之一。 由于文件存储设备是分成若干个大小相等的物 理块,并以块为单位来交换信息的,因此,文 件存储空间管理的实质是空闲块的组织和管理, 包括空闲块的组织、空闲块的分配与空闲块的 回收等。 空闲块管理方法有三种: 空闲文件目录。 空闲块链。 位示图。 IE310, 7-67, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理 7.4.1 空闲文件目录 把文件存储设备中的空闲块的块号统一放在一 个称为空闲文件目录的物理块中。 空闲文件目录的每个表项对应一个由多个空闲 块构成的空闲区,包括空闲块个数、首个空闲 块号等。 空闲文件目录也称为空闲表。 对于内存管理的有关空闲连续区分配和释放的 算法,只要稍加修改就可用于空闲文件项的分 配和回收。 空闲文件项方法是用于连续文件结构的文件存 储区的分配和回收。 IE310, 7-68, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理 7.4.2 空闲块链 空闲块链是一种较常用的空闲块管理方法。 空闲块链把文件存储设备上的所有空闲块链接在一起。 当申请者需要使用空闲块时,分配程序从链头摘取所需 要的空闲块,并调整链首指针。 当系统回收空闲块时,把释放的空闲块逐个插入链尾。 常用的链接方法: 按空闲区大小顺序链接; 按释放先后顺序链接; 成组链接法。 IE310, 7-69, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理(空闲块链) 成组链接法之空闲区的组织 将若干个空闲块归为一组。 将一组空闲块的所有块号记录在其前一组 空闲块中的第一个空闲块号所指出的磁盘 块中。 将第一组空闲块的所有块号均记录在存储 设备超级块的空闲块号表中。 最后一组空闲块中的第一个空闲块号为结 束标志,比如-1。 IE310, 7-70, xqfang.sjtu@gmail.com 7.4 文件存储空间管理(空闲块链) Shanghai Jiao Tong University 成组链接法之空闲区的组织之示意 超级块 110 108 -1 … -1 第110块 221 308 205 … 112 第221块 320 317 314 … 267 第320块 -1 97 405 … 354 IE310, 7-71, xqfang.sjtu@gmail.com 7.4 文件存储空间管理(空闲块链) Shanghai Jiao Tong University 成组链接法之空闲区的组织之示意 超级块 118 108 178 … 98 -1 118 第4组 227 108 307 207 … 117 376 -1 X -1 X … 336 95 405 … 15 X X X X … 117 337 326 … 336 116 95 326 207 316 316 405 … 15 115 116 115 -1 第1组 98 307 376 第2组 … 337 227 第3组 178 X IE310, 7-72, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理(空闲块链) 成组链接法之空闲区的分配 将超级块的空闲块表中的最后一个空闲块 分配出去,前图中的98。 如果超级块的空闲块表中只剩下一个空闲 块号,如前图中的118,由于在该块中保 存了下一组的所有空闲块号,所以先将第 118块中的内容拷贝到超级块的空闲块表 中,然后将该块(118)分配出去。 IE310, 7-73, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理(空闲块链) 成组链接法之空闲区的回收 如果超级块的空闲块表未满,则直接将回 收块的块号添加到该空闲块表中。 否则,先将该空闲块表中的所有块号拷贝 到新回收的磁盘块中,然后清除超级块的 空闲块表的所有项,最后将新回收块的块 号放到超级块的空闲块表的最左边一栏中。 IE310, 7-74, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理(空闲块链) 成组链接法之优点 利用空闲块管理空闲块,没有额外的数据结构 空间开销,节省磁盘空间; 操作系统在物理内存中仅需开辟一定量,比如 100个,地址指针即可,节省内存空间; 每一定量,比如100个,物理块的分配或释放, 只需要访问1次磁盘,其余99次都在物理内存中 完成,减少读写磁盘次数,从而提高了速度。 这样加快了磁盘的分配和释放的速度,减少了 系统的时空开销,提高了系统的效率。 IE310, 7-75, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.4 文件存储空间管理 7.4.3 位示图 类似于分页内存管理中空闲页的位示图表示。 可以被加载到内存中,加快文件存储空间的管 理速度。 7 6 5 4 3 2 1 0 1 1 0 1 0 0 0 1 第0-7块 0 0 1 0 0 1 0 1 第8-15块 … 0 1 … 0 0 … 0 0 … 1 0 第1016-1023块 IE310, 7-76, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护 文件共享是指多个用户共同使用同一个文 件。 文件保护是指文件本身需要防止文件的拥 有者或其他用户破坏文件内容。 文件保密是指未经文件拥有者的许可,任 何用户不得访问该文件。 IE310, 7-77, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护 7.5.1 文件的共享 绕道法:每个用户都在当前工作目录下工 作,其对所有文件的访问都是相对于当前 工作目录,用户对共享文件的访问必须一 并指出相应的路径。 符号链接:文件总共只占用一份空间,其 余的采用符号链接,仅指出目标文件的路 径与文件名。 IE310, 7-78, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护 7.5.2 文件的存取控制 存取控制矩阵 以一个二维矩阵来进行存取控制。 二位的一维是所有用户,另一位是所有的文件。 对应的矩阵元素则是用户对文件的存取控制权限,包括 读(R)、写(W)和执行(X)等。 系统根据该矩阵验证控制特定用户对特定文件的访问。 存取控制矩阵在概念上是简单清楚的,但实现上却有困 难。当一个系统的用户数和文件数很大时,二维矩阵要 占很大的存储空间,验证过程也很费时。 IE310, 7-79, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护(文件的存取控制) 存取控制矩阵之示意 文件 用户 ALPHA BETA 张三 RWX --- R-X --- 李四 R-X --- RWX R-X 王五 --- RWX R-X R-X 赵六 --- --- --- RWX . REPORT SQRT … . IE310, 7-80, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护(文件的存取控制) 存取控制表 存取控制矩阵由于太大而往往无法实现。 一个改进的办法是按用户对文件的访问权限的 差别对用户进行分类,由于某一文件往往只与 少数几个用户有关,所以这种分类方法可使存 取控制表大为简化。 它把用户分成三类:文主、同组用户和其它 用户,每类用户的存取权限为可读、可写、可 执行以及它们的组合。 IE310, 7-81, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护(文件的存取控制) 存取控制表之示意 执行ls –l命令的部分结果: -r-xr-xr-x 1 bin bin 43296 May 13 2005 FILE1 如下表示什么意思? -r-sr-sr-x 1 bin bin 43296 May 13 2005 FILE1 文件名:FILE1 用户组 文件主 同组用户 其他用户 访问权限 rx rx rx IE310, 7-82, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护 7.5.3 文件的保护 口令方式 创建文件时设置口令,系统保存口令信息,在 用户对文件进行读写执行等操作时必须给出相 应的口令供系统核查验证。 优点:简便、快速、节省空间。 缺点: 可靠性差。口令易被窃取。 存取控制不易改变。 保护级别少。 IE310, 7-83, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护(文件的保护) 密码方式 在用户创建文件时,根据用户指定的密码,系 统对文件进行编码加密,然后写入存储设备。 在读出文件时,同样根据用户给出的密码,由 系统对读出的文件信息进行解密。 密码技术除保密性强外,还具有节省存储空间 的优点。但它必须花费大量的编码和译码时间, 从而增加了系统的开销。 优点:保密性强。 缺点:耗费大量的系统处理时间。 IE310, 7-84, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.5 文件的共享与安全保护(文件的存取控制) 密码方式之示意 用户指定密钥 用户文件 编码程序 用户给出密钥 加密文件 解码程序 用户文件 存储 IE310, 7-85, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 Unix文件系统的特点 树型层次结构 可以安装和拆卸的子文件系统 设备I/O都是针对文件进行的,可以与文件统一进行管理,由文件系统提供统一的系统调 用接口。比如用户提出打开某磁盘上的某个文件,不仅涉及到需要打开的文件,也涉及 到该文件所在的物理设备。 通过统一的文件系统调用界面和由文件系统统一管理设备和文件,不仅方便了用户对设 备的使用,更方便了操作系统对设备的管理和控制。 文件是无结构的字符流式文件 Unix将文件系统分为两个不同的部分:一个是由操作系统提供的文件系统,称为基本文 件系统;另一个是由用户提供的子文件系统,称为文件卷。 将外部设备作为文件处理 在Unix中,整个文件系统只有一个根目录,其余文件子系统都是该根目录下的一个节点, 必须挂接到这棵树上才能使用。因此,在Unix中,所有文件都具有唯一的路径名。 Unix文件主要是正文文件,不需要复杂的文件结构,可以使用简单的流式文件,这种结 构既便于用户使用,又便于不同文件之间的通信,也简化了系统的设计。 Unix将文件分为以下三类: 普通文件——流式文件。 目录文件——由包含文件名和i节点号的目录项组成,属于数据结构文件。 特殊文件——设备文件、管道文件等。 IE310, 7-86, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 7.6.1 磁盘格式 Unix系统所格式化的磁盘结构大致如后所示。 1#块为管理块,又称超级块、特别块。 管理块的格式可用数据结构filsys表示: struct filsys { int s_isize; /* i节点区总块数 */ int s_fsize; /* 文件(和目录)区总块数 */ int s_nfree; /* 直接管理的空闲文件块块数 */ int s_free[100]; /* 直接管理的空闲文件块号栈 */ int s_ninode; /* 直接管理的空闲i节点数 */ int s_inode[100]; /* 直接管理的i节号栈 */ } 0# 1# 引导块 管理块 2# … i节点区 K# K+1# … N# 文件(和目录)数据区 IE310, 7-87, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 7.6.2 i节点(文件的存放方式) 对于每一个文件(或者目录文件)来说,其信息 不妨简单地划分为两个部份:其它信息和文件 (或者目录)内容。 对于每一个文件(或者目录文件)来说,总是有 一个i节点与之相对应。 i节点也被称为索引节点、文件控制块(FCB), 描述文件(或目录)的属性和管理信息。 0# 1# 引导块 管理块 2# … i节点区 K# K+1# … N# 文件(和目录)数据区 IE310, 7-88, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意(i节点) i节点包含的信息: 0# 文件所有者内部标识:i_uid、i_gid; 文件类型(对应普通文件、设备文件、符号文件、目录、…): i_type; 文件存取权限:i_mode; 文件共享连接数(有多少个目录文件引用了本文件):i_link; 文件存取时间:i_time; 文件长度:i_size; 文件物理地址索引表(混合索引结构指出文件或目录内容所处 的数据块号):i_addr[13]。 1# 引导块 管理块 2# … i节点区 K# K+1# … N# 文件(和目录)数据区 IE310, 7-89, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 7.6.3 目录结构与根目录(文件的检索方式) Unix采用树状目录结构。 每个文件被列入一个或者多个目录文件。 由根目录文件开始对文件系统的所有文件进行检索遍历。 由于查找文件的目录项时只用到文件名,与目录项中的其它信息 无关。为了提高查询速度, Unix将存放文件数据结构的文件目录 项分为两个部分:目录项和i节点。 目录项中只保留文件名,文件的其它控制管理信息都存放到了i节 点之中。 每个目录文件表示为一个目录表结构,表中的每一项占用16B, 其中前2个字节为该文件(或者子目录)对应的i节点号(内部标识) , 其余14字节为该文件(或者子目录)的文件名(外部标识)。所以, Unix的文件目录就是文件内部标识和外部标识的映射表。 0# 1# 引导块 管理块 2# … i节点区 K# K+1# … N# 文件(和目录)数据区 IE310, 7-90, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意(目录结构与根目录) 根目录文件 的内容 (数据块号由 i_addr确定) 根目录 文件 的i节点 (?0?) i_type= 目录 … i_addr[2] … 文件(或 子目录) 名 i节点 号 i_type= 目录 … … A0 A0目录 文件 的i节点 (nA0) i_addr[3] nA0 … … 文件(或子 目录)名 i节 点号 … B1 i_type= 符号文件 … … i_addr[0] nB1 /B5 … … C6 nB5 … … B5 A0目录文件 的内容 (数据块号由 i_addr确定) B1文件 的内容 (数据块号由 i_addr确定) B1文件 的i节点 (nB1) nB5 B5文件 的内容 (数据块号由 i_addr确定) B5文件 的i节点 (nB5) i_type= 普通文件 三个文件是同一个文件: /A0/B1 /A0/C6 /B5 … … i_addr[0] i_addr[1] … … IE310, 7-91, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 7.6.4 空闲i节点和数据块的管理 Unix采用成组链接法管理空闲的i节点和数据块。 以上空闲i节点和数据块的前100项被保存在管理块的 相应位置(号栈),比如: int s_free[100];/* 直接管理的空闲文件块号栈 */ int s_inode[100];/*直接管理的i节点号栈 */ 其后各组的i节点号和数据块号分别被保存在其前一组 的第0项所指出的磁盘块之中。 最后一组仅有99项,其第0项指出后面不再有别的组。 0# 1# 引导块 管理块 2# … i节点区 K# K+1# … N# 文件(和目录)数据区 IE310, 7-92, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 7.6 Unix文件系统示意 7.6.5 文件打开与关闭 文件的打开 任何文件在使用之前必须先将它打开,打开了的文件称之为 活动文件。 通过打开操作,系统可以将用户指定文件的数据结构由外存 调入内存,建立用户与该文件的联系。 否则,操作系统无法感知用户要使用外存介质上众多文件中 的哪一个。 文件的关闭 与此相反,关闭文件操作就是用户通知操作系统该文件将不 再使用,操作系统从而将该文件在内存中的数据结构删除, 切断用户进程和用户与文件的联系。 文件一旦被关闭,用户就不能再使用它。 IE310, 7-93, xqfang.sjtu@gmail.com 7.6 Unix文件系统示意(文件打开) Shanghai Jiao Tong University 7.6.6 维护所打开文件而使用的数据结构 文件的i节点信息被加载到内存,并增加了i_count (统计其它非相 关进程打开同一个文件的情形)等信息,成为活动i节点,形成了 内存中的活动i节点表。 系统打开文件表维护了整个系统所打开的文件,每一项至少指出 f_count(统计父子进程打开情形)和f_inode,f_inode即指向前述 在内存中的活动i节点。 进程打开文件表出现在其PCB的某一部分,u_ofile[NOFILE]的每 一项均指向系统打开文件表的某一项,返回给用户的则是该数组 的下标值,称为文件描述符fd。 自学教材之7.2.5 Unix打开文件管理机构 文件描述符 进程打开文件表 系统打开文件表 活动i节点表 fd-1 u_ofile[fd-1] f_count f_inode i_count fd u_ofile[fd] f_count f_inode i_count f_count f_inode i_count IE310, 7-94, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 小结一 文件、文件的不同分类、文件的不同操作。 文件系统及其主要功能。 文件的逻辑结构(流式文件、记录文件)、存取 方法(顺序存取、随机存取、按键存取)与物理 结构(连续结构、串联结构、索引结构、混合索 引结构)的工作原理。 文件的存储设备、磁带、硬盘、磁盘驱动调度 算法(先来先服务FCFS、最短寻道时间优先SSTF、 扫描SCAN)。 文件的目录管理、多级目录结构。 IE310, 7-95, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 小结二 文件的存储空间管理、空闲块管理方法 (空闲文 件目录、空闲块链、位示图)、成组链接法的工 作原理。 文件的共享与保护、符号链接、存取控制矩阵、 存取控制表、文件的口令访问与密码访问。 思考:Unix系统链接中的硬链接和符号连接之 间的区别。 Unix系统所格式化的磁盘结构 Unix打开文件管理机构 IE310, 7-96, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 课后任务(书面作业/择机上交) 1. 2. 3. 4. 5. 6. 7. 8. 9. 什么是文件系统?文件系统的主要功能有哪些? 什么是文件的逻辑结构?它有哪几种组织方式? 文件的存取方法有哪些? 什么是文件的物理结构?它有哪几种组织方式? 常见的目录结构有哪些?目前广泛采用的是哪种目录 结构?其特点是什么?如果要在目录A下使用文件名X 对目录B中的文件Y进行共享,如何实现?请用图表示。 为什么进程在使用文件时需要打开文件?其实质是什 么? Unix文件系统有哪些特点? 某磁盘当前有477个空闲磁盘块,请画出其成组链接 图(每组100个磁盘块)。 Unix对于空闲磁盘块的管理采用什么算法?该算法有 哪些优点? IE310, 7-97, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 课后任务(书面作业/择机上交) 10. 11. 12. Unix文件的物理结构是什么?采用这种结构来 组织文件有哪些优点? 如果某个文件由345个逻辑块组成,请画出其 在Unix文件系统中的物理结构图。 假设某时刻系统中有A、B、C三个进程,其中: 进程A打开文件文件/dev/stdin(标准输入)读、 打/dev/stdout(标准输出)写,然后创建B进 程,创建结束后父进程返回时又打开文件 /users/zhang读; B进程在创建后返回时打开文件/usr/wu读; C进程打开文件/usr/wu写、/users/qian读。 已知/users/qian与/users/zhang是同一文件。 画出此刻Unix文件系统打开文件机构的3个数 据结构之间的关系图。 IE310, 7-98, xqfang.sjtu@gmail.com Shanghai Jiao Tong University 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 课后课程设计任务 自学第9章Linux应用基础; 自学第10章Linux的操作命令界面与内核编译; 练习实验1 实验环境与Linux操作系统的安装(虚拟机、红帽子Linux安装、 虚拟网卡的安装); 练习实验2-1 Linux的键盘命令; 练习实验2-2 Linux的图形界面; 练习实验2-3 Linux的批处理; 练习实验3-1 Linux进程的创建与父子进程同步; 练习实验3-2 Linux子进程映像的重新加载; 练习实验4-1 Linux软中断通信; 练习实验4-2 Linux管道通信; 练习实验4-3 Linux消息缓冲通信; 练习实验4-4 Linux共享存储通信; 练习实验5 Linux信号量与P、V操作; 练习实验6 动态申请内存(malloc/realloc/free); 练习实验7 Linux文件系统操作(open/creat/read/write/chmod/close); 联系TCP连接访问 各设计阶段程序的编写 课程设计报告编写 IE310, 7-99, xqfang.sjtu@gmail.com ...
View Full Document

Ask a homework question - tutors are online