1 实习内容
文件操作及其实现。
2 实习目的
文件系统是操作系统中管理和存取信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。
在用户程序中可使用文件系统提供的一整套文件操作(文件类系统调用),这类操作一般包括“打开文件”、“关闭文件”、“读文件”、“写文件”和“撤消文件”等。本实习模拟文件操作的实现,通过实习了解各文件操作的作用。
3 实习步骤
3.1 需求分析
模拟实现采用二级目录结构的磁盘文件系统中的文件操作。
(1) 文件系统使用文件目录来实现“按名存取”,在本实习中采用三级文件目录结构,第一级为主文件目录MFD,第二级为用户文件目录UFD,第三级为用户已打开文件目录UOF。假定系统可同时管理N个用户的文件,每个用户最多在磁盘上保存L个文件,在模拟实习中约定采用定长记录格式组织文件,那么,三级目录结构可用如下形式,如表1、表2所示:
表1 主文件目录MFD
用户名 |
用户文件目录地址 |
用户已打开文件目录地址 |
N栏 |
用户的UFD文件名 |
用户的UOF文件名 |
表2 用户文件目录UFD
文件名 |
文件属性 |
记录长度 |
文件地址 |
L栏 |
默认(0为只读/1为读写) |
|
|
系统中只有一张主文件目录表,表中的每一栏与一个用户对应,从中可找到用户文件目录表和用户已打开文件目录表的存放地址。共有N张用户文件目录表,在用户文件目录表中,每一栏与一个文件对应。其中“文件属性”规定了文件的使用权限:只可读、可读可写;“记录长度”指组成该文件的逻辑记录长度;“文件地址”指文件存放在磁盘上的首块地址。为简单起见,在模拟实习中约定按MS-DOS的链接结构组织文件。
(2) 用户对文件进行存取之前,必须先提出“建立文件”或“打开文件”,系统为每个用户设置一张用户已打开文件表UOF,用以说明当前正在使用的文件的情况,如果用户最多同时打开或建立s个文件,那么,已打开文件表应该有s个登记栏。结构如表3所示:
表3 用户已打开文件表UOF
文件名 |
文件属性 |
记录长度 |
状态(打开/建立) |
读指针 |
写指针 |
S栏 |
默认(0为只读/1为读写) |
|
默认(0为打开/1为建立) |
< |