操作系统概念 文件系统接口

目录(?)[+]

文件概念

文件是记录在外存上得相关信息的具有名称的集合。其具有连续的逻辑地址空间

通常,文件表示数据程序

数据文件可以包括,数字、字符、字符串或二进制。文件可以是自由形式,如文本文件,也可以具有严格的格式。

文件必须具有可以长期信息存储的性质、必须能够保存大容量数据、在进程终止后信息能够保留下来、能够多进程并发访问文件中的信息。

其中a是执行文件,b是文档文件。

文件属性(File Attributes)

  • Name名称 – only information kept in human-readable 
    form.
  • Type类型 – needed for systems that support different types.
  • Location位置 – pointer to file location on device.
  • Size大小 – current file size.
  • Protection保护 – controls who can do reading, writing, executing.
  • Time, date, and user identification – data for protection, security, and usage monitoring.

文件的属性信息保存在硬盘上的目录结构中

文件结构

  • None - sequence of words, bytes无序的字,字节
  • Simple record structure简单记录结构 
    • Lines 行
    • Fixed length固定长度
    • Variable length变长
  • Complex Structures复杂结构 
    • Formatteddocument 格式文档
    • Relocatable load file 可重定位装载文件

Can simulate last two with first method by inserting appropriate control characters.

由程序和操作系统决定文件的结构。

文件的操作(File Operations)

  • Create 创建
  • Write 写
  • Read 读
  • Reposition within file – file seek 定位
  • Delete 删除
  • Truncate 截断
  • Open(Fi) 打开– search the directory structure on disk for 
    entry Fi, and move the content of entry to memory.
  • Close (Fi) 关闭– move the content of entry Fi in memory 
    to directory structure on disk.

扩展名(File Types – Name, Extension)

访问方法

顺序(Sequential Access)

read next
write next
reset
noread after last write
    (rewrite)

随机(Random Access)

read n
write n
position to n
    read next
    write next
rewrite n

其中n表示相关的块(block)数。

其他访问方式

其他访问方式可建立在直接访问方式上,这些访问通常涉及创建文件索引。索引包括各块的指针。为了查找文件中的记录,首先搜索索引,再根据指针直接访问文件,以查找所需要的内容。 
索引及其对应文件关系如下图所示。


有很多例题考察一级索引、二级索引之类的。

里面有很多的内容,所以需要更加仔细地看题。

目录结构(Directory Structure)

目录是一个包含若干文件属性信息的节点的集合,结构如下图所示。

目录和文件都保存在磁盘上。逻辑卷(可跨磁盘)的概念 
有时候需要在一个磁盘上装多种文件系统,这些部分称为分区(partition)或者片。

设备上目录中的文件属性信息

  • Name
  • Type
  • Address
  • Current length当前长度
  • Maximum length最大长度
  • Date last accessed (for archival)最后访问日期
  • Date last updated (for dump)最后更新
  • Owner ID (who pays)属主ID
  • Protection information (discuss later)

对目录的操作

  • Search for a file查找文件
  • Create a file创建文件
  • Delete a file删除文件
  • List a directory罗列目录内容
  • Rename a file文件重命名
  • Traverse the file system遍历文件系统

组织目录的目标

  • 高效(Efficiency)–locating a file quickly.
  • 命名(Naming)–convenient to users. 
    • Two users can have same name for different files.
    • The same file can have several different names.
  • 分组(Grouping)–logical grouping of files by properties, (e.g., all Java programs, all games, …)

单级目录(Single-Level Directory)

在一个目录下存在:

  • 命名问题:文件位于同一个目录下,他们必须具有唯一名称。
  • 分组问题

两级目录(Two-Level Directory)

对于双层结构目录的结构,每个用户都有自己的用户文件目录(user file directory,UFD)

因此在每个UFD中所有的文件名称唯一即可,不同的用户可以有相同拥有文件名的问题。

虽然双层结构目录解决了名称冲突问题,但是它仍有缺点。这种解耦股有效地对用户加以隔离。这种隔离在用户需要完全独立时是有点,但是在用户需要在某个任务上进行合作和访问其他文件时却是一个缺点。

为了访问指定的文件唯一,用户必须知道要访问文件的路径名(path name)

树型目录(Tree-Structured Directories)

  • 高效的搜索(Efficient searching)
  • 分组能力(Grouping Capability)
  • 当前目录(Current directory / working directory)
  • 路径名有两种形式:绝对路径和相对路径。

无环图目录(Acyclic-Graph Directories)

这样对于相同的文件可能有不同的名字,因此有别名。一个文件也可有多个绝对路径名。

如果文件被删除,这样可能会留下悬挂指针指向不再存在的文件,更为糟糕的是,这些剩余文件指针可能指向包括实际磁盘地址,而该空间可能正在被其他文件使用。

通用图目录(General Graph Directory)

采用五环图解耦股的一个特别重要的问题是如何保证没有环。

  • Allow only links to file not subdirectories. 
    只允许连接到文件
  • Garbage collection. 
    垃圾收集
  • Every time a new link is added use a cycle detection 
    algorithm to determine whether it is OK. 
    建立新连接时进行循环检测

文件共享(Two-Level Directory)

  • Sharing of files on multi-user systems is desirable. 
    对多用户系统尤其必要
  • Sharing may be done through a protectionscheme. 
    通过“保护”系统实现
  • On distributed systems, files may be shared across a 
    network. 
    在分布式系统中,文件甚至可通过网络共享
  • Network File System (NFS)网络文件系统is a common 
    distributed file-sharing method. 
    NFS是一种普遍的分布式文件共享方式

保护

文件的属主(owner)应该能够控制

  • what can be done对文件可做什么
  • by whom 谁来做

访问的类型

  • Read读
  • Write写
  • Execute执行
  • Append追加
  • Delete删除
  • List罗列
时间: 2024-08-06 16:01:28

操作系统概念 文件系统接口的相关文章

操作系统概念 文件系统实现

磁盘提供大量的外存空间来维持文件系统.磁盘的下述两个特点使得其成为存储多个文件的方便介质. ①可以原地重写: ②可以直接访问磁盘上的任意一块信息. 为了提供对磁盘的高效且便捷的访问,操作系统通过文件系统来轻松地存储.定位.提取数据.文件系统有两个设计问题. ①定义文件系统对用户的接口 ②创建数据结构和算法来将逻辑文件系统映射到物理外存设备上. 文件系统本身通常由不同的层组成.如下图所示的是一个分层设计的简单例子. I/O控制 由设备驱动程序和中断处理程序组成,实现内存与磁盘之间的信息传递 基本文

文件系统接口

文件系统接口 文件系统由两个部分组成:一组文件(文件用于存储相关数据)和目录结构(目录用于组织系统内的文件并提供有关文件的信息). 文件概念 计算机能在多种不同介质上存储信息.为了方便地使用计算机习系统,操作系统提供了信息存储的统一逻辑接口.操作系统对存储设备的各种属性加以抽象,从而定义了逻辑存储单元(文件),再将文件映射到物理设备上.这些物理设备通常为非易失性的. 文件是记录再外存上的相关信息的具有名称的集合.从用户角度而言,文件是逻辑外存的最小分配单元,即数据除非在文件中,否则不能写到外存.

Hadoop文件系统接口

Hadoop有一个抽象文件系统的概念,hdfs只是其中的一个实现,Java抽象类org.apache.hadoop.fs.FileSystem定义了hadoop中的一个文件系统接口,hdfs是实现了这个接口的一个文件系统,还有其它的文件系统实现,例如使用了本地磁盘文件系统的Local文件系统和RawLocalFilesystem等. 一:hdfs命令行接口 类似于传统的文件系统,hdfs提供命令行接口来操作文件系统.Hdfs的命令形式一般为:%hadoop fs -ls /temp.其中hado

操作系统与文件系统

什么是操作系统?什么是文件系统?操作系统与文件系统的区别是什么? 操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统.文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性.

操作系统——linux文件系统初实现——为fileSystem添加驱动,让linux可以识别。

0.我的理解,所为驱动,就是用户可以通过自己的应用程序访问你的文件系统.而我恰恰相反. 1.我是谢了字符驱动,让我的fileSystem去做应用程序,同样可以被linux系统识别. 2.其实我对驱动理解也不深,暂且贴代码. 3.驱动程序: /*chardev.c 驱动程序*/ #include <linux/kernel.h> #include <linux/fs.h>/*for file-f_op*/ #include <linux/module.h> #includ

操作系统——linux文件系统初实现

简述: 0.ext2格式. 1.包括权限管理,精确到角色. 2.数据块采用连续分配(离散分配大家来弄吧). 3.为实现间接索引,相信实现了目录,简介索引也不是问题吧.. 4.删除目录不支持递归删除.自己写去吧. 5.整体结构: 6.主要数据结构: //超级块 struct SuperBlock { int s_block_count;//block总个数 int s_block_size;//block块的大小 int s_inode_count;//inode总个数 int s_datablo

读书笔记之《操作系统概念》

非常小型的操作系统,如篇首的小恐龙所使用的驱动手持设备的操作系统,是Silberschatz.Galvin和Gagne第七版<操作系统概念>中的一种前沿应用.通过保留最新的,保持有意义的,并改编为课程最需要的内容,这本引导市场潮流的教材继续指导着操作系统课程. 第二部分 进程管理 第四章 进程 进程状态 创建.运行.等待.就绪.终止 进程:一个具有单个控制线程的执行程序. 第五章 线程 线程:是CPU使用的基本单元 多线程编程优点: 响应度高 资源共享 经济 多处理器体系结构的利用 多线程模型

《操作系统概念》学习笔记-第二章

第二章 操作系统结构 在具有多个命令解释程序选择的系统中,解释程序被称为外壳(shell) 命令解释程序的主要作用是获取并执行用户指定的下一条命令. 有三种应用程序员常用的API,适用于windows系统的win32API,适用于POSIX系统的POSIX API,以及用于设计运行于JAVA虚拟机程序的JAVA API. 操作系统传递参数有三种方法: 最简单的方法是通过寄存器来传递参数,不过有时,参数数量会比寄存器多,这时,这些参数通常存在内存的块和表中,并将块的地址通过寄存器来传递.Linux

性能调优-硬盘方面,操作系统方面,文件系统方面

硬盘对数据库性能的影响 传统机械硬盘 当前大多数数据库使用的都是传统的机械硬盘.机械硬盘的技术目前已非常成熟,在服务器领域一般使用SAS或SATA接口的硬盘.服务器机械硬盘开始向小型化转型,目前已经有大量2.5寸的SAS机械硬盘. 机械硬盘有两个重要的指标:一个是寻道时间,另一个是转速.当前服务器机械硬盘的寻道时间已经能够达到3ms,转速为15 000rpm.传统机械硬盘最大的问题在于读写磁头,读写磁头的设计使得硬盘可以不再像磁带一样,只能进行顺序访问,而是可以随机访问.但是,硬盘的访问需要耗费