文件的基本操作 - wolai 笔记

1. 创建文件(create系统调用)

  1. 在外存中找到文件所需的空间
  2. 在目录中为新文件创建目录项

2. 删除文件(delete系统调用)

  1. 从目录中找到文件名对应的目录项
  2. 回收文件占用的磁盘块
  3. 删除文件对应的目录项

3. 读文件(read系统调用)

  1. 打开文件
  2. 系统维护读指针,每当发生读操作,维护读指针;一个进程通过只对一个文件读或写,因此当前操作位置可作为每个进程当前文件位置的指针
  3. 关闭文件

4. 写文件(write系统调用)

  1. 打开文件
  2. 系统维护一个写位置的指针,每当发生写操作时,更新指针
  3. 关闭文件

5. 打开文件(open系统调用)

  1. 找到文件名对应的目录项,并检查该用户是否有指定的权限
  2. 将目录项复制到内存中的“打开文件表”中,并将对应表目的编号返回用户。之后用户使用打开文件表的编号操作文件

6. 关闭文件(close系统调用)

  1. 将进程打开的文件表相应表项删除
  2. 回收分配给该文件的内存空间等资源
  3. 系统打开文件表的打开计数器count1,若count=0,则删除对应表项

7. 文件的打开和关闭

每个打开的文件都有如下关联信息:
  • 文件指针。系统跟踪上次的读写位置作为当前文件位置的指针,这种指针对打开文件的进程是惟一的,因此必须与磁盘属性分开保存。
  • 文件打开计数。多个进程可能同时打开一个文件,系统在删除文件条目之前,必须等待最后一个进程关闭文件。计数器跟踪打开和关闭的数量,计数为0时,系统关闭文件,删除该条目。
  • 文件磁盘位置。
  • 访问权限。每个进程打开文件都需要有一个访问模式(创建、只读、读写、添加等)。该信息保存在进程的打开文件表中,以便操作系统能够允许或拒绝之后的IO请求。

Comment