《操作系统》— 文件的属性和基本操作

文件的属性

文件有一定的属性,这根据系统的不同而有所不同,但是通常都包括如下属性:

①名称:文件名称唯一,以容易读取的形式保存。

②标识符:标识文件系统内文件的唯一标签,通常为数字,它是对人不可读的一种内部名称。

③类型:被支持不同类型的文件系统所使用。

④位置:指向设备和设备上文件的指针。

⑤大小:文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。

⑥保护:对文件进行保护的访问控制信息。

⑦时间、日期和用户标识:文件创建、上次修改和上次访问的相关信息,用于保护、 安全和跟踪文件的使用。

所有文件的信息都保存在目录结构中,而目录结构也保存在外存上。文件信息当需要时再调入内存。通常,目录条目包括文件名称及其唯一标识符,而标识符定位其他属性的信息。

文件的基本橾作

文件属于抽象数据类型。为了恰当地定义文件,就需要考虑有关文件的操作。操作系统提供系统调用,它对文件进行创建、写、读、定位和截断。.

①创建文件:创建文件有两个必要步骤,一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目,该条目记录文件名称、在文件系统中的位置及其他可能信息。

②写文件:为了写文件,执行一个系统调用,指明文件名称和要写入文件的内容。对于给定文件名称,系统搜索目录以查找文件位置。系统必须为该文件维护一个写位置的指针。每当发生写操作,便更新写指针。

③读文件:为了读文件,执行一个系统调用,指明文件名称和要读入文件块的内存位置。同样,需要搜索目录以找到相关目录项,系统维护一个读位置的指针。每当发生读操作时,更新读指针。一个进程通常只对一个文件读或写,所以当前操作位置可作为每个进程当前文件位置指针。由于读和写操作都使用同一指针,节省了空间也降低了系统复杂度。

④文件重定位(文件寻址):按某条件搜索目录,将当前文件位置设为给定值,并且不会读、写文件。

⑤删除文件:先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。

⑥截断文件:允许文件所有属性不变,并删除文件内容,即将其长度设为0并释放其空间。

这6个基本操作可以组合执行其他文件操作。例如,一个文件的复制,可以创建新文件、 从旧文件读出并写入到新文件。

文件的打开与关闭

因为许多文件操作都涉及为给定文件搜索相关目录条目,许多系统要求在首次使用文件时,使用系统调用open,将指明文件的属性(包括该文件在外存上的物理位置)从外存拷贝到内存打开文件目录表的一个表目中,并将该表目的编号(或称为索引)返回给用户。操作系统维护一个包含所有打开文件信息的表(打开文件表,open-file table)。当用户需要一个文件操作时,可通过该表的一个索引指定文件,就省略了搜索环节。当文件不再使用时,进程可以关闭它,操作系统从打开文件表中删除这一条目。

大部分操作系统要求在文件使用之前就被显式地打开。操作open会根据文件名搜索目录,并将目录条目复制到打开文件表。如果调用open的请求(创建、只读、读写、添加等)得到允许,进程就可以打开文件,而open通常返回一个指向打开文件表中的一个条目的指针。通过使用该指计(而非文件名)进行所有I/O操作,以简化步骤并节省资源。

整个系统表包含进程相关信息,如文件在磁盘的位置、访问日期和大小。一个进程打开一个文件,系统打开文件表就会为打开的文件增加相应的条目。当另一个进程执行open时,只不过是在其进程打开表中增加一个条目,并指向整个系统表的相应条目。通常,系统打开文件表的每个文件时,还用一个文件打开计数器(Open Count),以记录多少进程打开了该文件。每个关闭操作close则使count递减,当打开计数器为0时,表示该文件不再被使用。系统将回收分配给该文件的内存空间等资源,若文件被修改过,则将文件写回外存,并将系统打开文件表中相应条目删除,最后释放文件的文件控制块(File Control Block, FCB)。

每个打开文件都有如下关联信息:

  • 文件指针:系统跟踪上次读写位置作为当前文件位置指针,这种指针对打开文件的某个进程来说是唯一的,因此必须与磁盘文件属性分开保存。
  • 文件打开计数:文件关闭时,操作系统必须重用其打开文件表条目,否则表内空间会不够用。因为多个进程可能打开同一个文件,所以系统在删除打开文件条目之前,必须等待最后一个进程关闭文件。该计数器跟踪打开和关闭的数量,当该计数为0 时,系统关闭文件,删除该条目。
  • 文件磁盘位置:绝大多数文件操作都要求系统修改文件数据。该信息保存在内存中以免为每个操作都从磁盘中读取。
  • 访问权限:每个进程打开文件都需要有一个访问模式(创建、只读、读写、添加等)。该信息保存在进程的打开文件表中以便操作系统能允许或拒绝之后的I/O请求。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: bjfu20操作系统课程设计,我们需要设计一个文件系统来管理操作系统文件文件夹。文件系统是操作系统的一种重要组成部分,它负责文件的存储、管理和访问。 首先,我们需要设计文件系统的存储结构。常见的文件系统存储结构有FAT、inode等。我们可以选择合适的存储结构来存储文件和目录的相关信息,如文件名、文件大小、创建时间、修改时间等。同时,还需要设计合适的存储方式来管理文件的物理存储空间,如连续分配、链式分配、索引分配等。 其次,文件系统需要设计文件的操作接口。用户通过操作接口可以进行文件的创建、删除、修改、读取等操作。为了实现这些功能,我们需要定义文件系统提供的API和系统调用。同时,还需要设计文件权限和访问控制机制,确保安全性和数据完整性。 另外,文件系统还需要考虑文件系统的性能优化。例如,我们可以设计缓存机制来提高文件读写的速度,使用位图来快速定位可用的存储空间,设计文件索引机制来加快文件查找速度等。 最后,我们还需要考虑文件系统的可靠性和稳定性。例如,可以设计文件系统的错误检测和自我修复机制,以及备份和恢复机制来保护文件系统的数据。 综上所述,bjfu20操作系统课程设计文件系统涉及到存储结构设计、文件操作接口设计、性能优化和可靠性设计等方面。通过设计合理的文件系统,可以提高操作系统的效率和安全性。 ### 回答2: bjfu20操作系统课程设计,我们设计了一个简单的文件系统。文件系统是用于管理计算机存储设备上文件的一种组织机制,它负责文件的存储、查找和管理等操作。 我们的文件系统主要包括以下几个部分:文件管理、目录管理、存储空间管理和文件访问控制。 文件管理是文件系统的核心功能之一,它包括文件的创建、删除、读取和写入等操作。我们设计了相应的数据结构来表示文件属性和数据,通过这些数据结构可以实现对文件进行操作。 目录管理是用来管理存储设备上的文件和目录的组织结构。我们采用了层次目录结构,通过文件夹和文件的关系来组织文件。每个文件夹都有一个唯一的标识符和属性,用来标识和管理对应的文件和子文件夹。 存储空间管理是用来管理存储设备上的空闲空间和已使用空间的分配和释放。我们设计了位图等数据结构来实现对存储空间的管理,通过它可以记录哪些存储块已经被分配,哪些是空闲的。 文件访问控制是用来控制文件的访问权限和安全性的。我们设计了访问控制列表等数据结构来标识每个文件的访问权限,只有满足权限要求的用户才能对文件进行读取或写入操作。 总体而言,我们的文件系统设计着重于简单易用和高效的特点。通过合理的算法和数据结构选择,我们实现了对文件的管理和访问控制功能。我们相信这个设计可以满足基本的文件管理需求,并为以后的扩展和优化提供了良好的基础。 ### 回答3: bjfu20操作系统课程设计文件系统是一个基于操作系统的设计项目。文件系统是操作系统负责管理文件文件夹的部分,它负责文件的组织、存储和访问。设计文件系统需要考虑文件的组织方式、存储方式以及访问方式等方面。 在设计文件系统时,首先需要确定文件的组织方式。常见的文件组织方式有层次式组织和索引式组织。层次式组织是通过目录层次来组织文件,可以提供更好的可读性和管理性。索引式组织则通过索引表来管理文件,可以提供更高的访问效率。 其次,需要确定文件的存储方式。文件的存储可以采用连续存储、链接存储或索引存储等方式。连续存储是将文件连续存放在存储介质上,可以提供更高的访问效率。链接存储是通过链接将文件的各个部分联系起来,可以提供更好的文件管理灵活性。索引存储是通过索引表将文件的块号和存储地址联系起来,可以提供更高的访问效率和文件管理灵活性。 最后,需要确定文件的访问方式。文件的访问方式可以采用顺序访问、直接访问或索引访问等方式。顺序访问是按照文件的顺序一次读取,适用于顺序读取的场景。直接访问是通过文件的物理地址直接读取,适用于随机访问的场景。索引访问是通过索引表查找文件的存储地址再进行读取,适用于索引访问的场景。 综上所述,bjfu20操作系统课程设计文件系统需要综合考虑文件的组织方式、存储方式和访问方式等方面,以提供高效的文件管理功能。在设计过程,还可以考虑一些高级功能,如文件权限管理、文件版本控制和磁盘空间管理等,以提升文件系统的功能和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值