计算机系统基础:文件管理相关知识笔记

         

一、文件的相关概念

1、为什么要有文件管理?

文件系统主要是为了方面用户访问外部存储器信息,而不去关注内部存储的机制,只需要根据文件名就可以高效的存取信息。

2、文件的定义

文件是这一组具有符号名、在逻辑上具有完整意义的一组相关信息项的集合。比如一个文本文件、一个电影等。

信息项是构成文件内容的基本单位,可以是一个字符、一个记录。

文件的组成:文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问限制、创建时间、访问时间等。

文件是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上方便以后读取的手段。

3、什么是文件系统?

定义:操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构。

文件系统功能:按文件名存取、针对不同设备提供文件的统一访问接口、实现并发访问和控制、优化文件性能(提高文件存储效率、提高读写性能、差错恢复等)。

4、文件类型

按照文件性质和用途分类:系统文件、库文件、用户文件。

按照信息保存期限:临时文件、永久文件、档案文件。

文件保护方式:只读文件、读写文件、可执行文件、普通(不受保护)文件。

Unix系统:普通文件、目录文件、设备文件。

文件系统类型:FAT、FAT32、NTFS、E系统、HPFS等。

二、文件的结构和组织

文件的结构是指文件的组织形式。主要有逻辑结构、物理结构。

1、文件的逻辑结构

文件的逻辑结构分为两大类:

结构式记录式文件:由一个以上的记录构成的文件。

无结构式流式文件:由一串顺序字符流构成的文件。

1.1 有结构的记录式文件

记录式文件,所有的记录通常都是描述一个实体集的,有着相同或者不同数组的数据项,记录的长度分为定长和不定长。

定长记录:指文件中所以记录的长度相同。特点:处理方便、开销小。是一种常见的记录格式,广泛用于数据处理中,

变长记录:指文件中各记录的长度不相同。因为很多情况下一个记录所包含的数据项数组可能不同,比如文字的标题、内容等。

1.2 无结构的流式文件

流式文件的文件体是字节流,不划分记录。无结构的流式文件通常采用顺序访问的方式,并且每次读写访问可以指定任意长度,以字节为单位。

2、文件的物理结构

文件的物理结构:指文件内部的组织形式,也就是文件在物理设备上的存放方法。文件的物理结构决定了文件在存储设备上的存放位置,文件的逻辑块号到物理块号的转换也是由文件的物理结构决定的。

1、连续结构

也称为顺序结构,它将逻辑上连续的文件信息依次存放在连续编号的物理块上。针对文件记录的批量存取时,连续结构存取效率最高。如果针对交互应用场合连续结构的性能就会很差。如果文件很大的情况效率会更低。

连续结构的另外一个缺点是不便于记录的增加和删除操作。

2、链式结构

也称为串联结构,它是将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有下一个指针指向下一个物理块。如果知道第一个物理块号就可以查找整个文件。

3、索引结构

将逻辑上连续的文件存放在不连续的物理块上,系统为每一个文件建立一张索引表。索引表会记录文件信息所在逻辑块号对应的物理块号。

4、多个物理块的索引表

索引表右文件创建时系统自动创建,并且和文件一起存放在同一个文件卷上。多块索引表组织形式:链式文件、多重索引文件。

UNIX文件系统采用三级索引结构,inode是文件系统的基本构成单位,表示文件系统树形结构的节点。

UNIX文件索引表项寻址方式:直接寻址、一级间接寻址、二级间接寻址、三级间接寻址。

三、文件目录

文件控制块(FCB):包含文件名和存放文件物理地址的数据结构。

文件目录:文件控制块的有序集合。

1、文件控制块

文件控制块包含基本信息、存储控制信息、使用信息类。

基本信息类:文件名、文件物理地址、文件长度、文件块数。

存储控制信息类:文件存取权限,常见的RWX权限。

使用信息类:文件创建日期、最后一次修改日期、最后一次访问日期、当前使用的信息(打开文件的进程数、在文件上的等待队列等)。

2、目录结构

常见的目录结构有一级目录结构、二级目录结构、多级目录结构

1、一级目录结构

整个目录组织是一个线性结构,整个系统中只需建立一张目录表,系统给每个文件分配一个目录项。

特点:结构简单、查找速度慢,不能重名、不方便实现文件共享,适合当用户环境中。

2、二级目录结构、多级目录结构

二级目录结构由主文件目录(MFD)、用户目录(UFD)组成。在主文件目录中,每个用户文件目录都占有一个目录项,器目录项中包括用户名和指向该用户目录文件的指针。用户目录是由用户所有文件的目录项组成的。

特点:提高了检索目录的速度、较好地解决了重名问题;用户隔离不方便文件的共享。

3、多级目录结构

目前多道程序设计系统常采用多级目录结构,这种目录结构像一棵倒置的有根树,也称为树形目录结构每一个节点是目录,叶子节点是文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

list 根据某个数字所在位置_【Python学习笔记】09、使用list和tuple

listPython内置的列表数据类型是:list。list是一种有序的集合,可以随时添加和删除其中的元素。如:>>> classmates [Kuaie, Bob, Tracy]>>> classmates[Kuaie, Bob, Tracy]变量classmates就是一个list。用len()函数可以获得…

连接maven_如何在Eclipse中使用Maven工程连接远程的Spark

如何在Eclipse中使用Maven工程连接远程的Spark本地Spark跑不会出现什么问题,但是切换到服务器上各种问题。异常java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to fieldorg.apache.spark.api.java.JavaRDDLike$$anonf…

FastJSON的依赖

<!-- 添加 FastJSON依赖 --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version> </dependency>

莫队模板

莫队的模板&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 嘿嘿嘿 #include<bits/stdc.h> using namespace std; const int maxn 1000005; inline int read() {int x0,f1;char chgetchar();while(ch>9||ch<0){if(ch-)f-1;chgetchar();}while(ch&g…

计算机系统基础:文件的存取和存储空间管理知识笔记

1、文件的存取 文件的存取实际上就是针对文件存储器上物理块的读写操作。存取方法主要有顺序存储、随机存储两种。 2、文件存储空间管理 磁盘分配表&#xff1a;外存空闲空间管理的数据结构。 2.1 空闲空间管理方法 1、空闲区表 将外存空间的一个连续未分配的区域称为空闲区。操…

语言筛选法选素数怎么解决输出超限_论文深耕 | 什么时候才能把文献看完?——论文的正确筛选、阅读顺序...

Hello!这是你与「大学生科研竞赛」的第 50 次相遇。搞科研免不了要看文献&#xff0c;一提到看文献就有很多人头疼&#xff0c;“那么多文献什么时候才能看完啊&#xff1f;”01筛选论文这个时候就需要我们对文献有一个筛选&#xff0c;筛选的办法也很简单&#xff1a;1标题首先…

ft2232驱动安装方法_ST-Link资料03_ST-Link固件升级、驱动下载安装方法

说明&#xff1a;本文原创作者『strongerHuang』本文首发于微信公众号『嵌入式专栏』&#xff0c;同时也更新在我的个人网站&#xff1a;EmbeddedDevelop一、写在前面前两篇文章讲述的都是关于ST-Link的一些理论知识&#xff0c;建议初学者看看&#xff1a;ST-Link资料01_ST-Li…

Java 泛形通配符 ?

Class<Integer> cla;与Class<?> cl; 前一个表示baicla只能指向Integer这种类型&#xff0c;而后一个cl表示可以du指向任意类型。 cla Integer.class 可以&#xff0c;但cla Double.class就不可zhi以。 但是cl Integer.class 可以&#xff0c;cl Double.class也…

操作系统基础:计算机作业管理知识笔记

1、计算机作业的概念计算机中的作业是为了完成某个用户的计算任务所做工作的总和。作业管理程序&#xff1a;操作系统中用来控制作业进入、执行、撤销的一组程序。2、作业与作业的控制方式脱机控制方式&#xff1a;用户需要把自己需要计算机完成的任务用作业控制语言编写成作业…

easyui的验证

多重验证&#xff1a; Js代码 { field : startPort, title : "起始端口", editor: "text", width : 50, editor: { …

403 forbidden_[SpringSecurity] 自定义403页面

使用 Spring Security 时经常会看见 403&#xff08;无权限&#xff09;&#xff0c;默认情况下 显示的效果如下&#xff1a;而在实际项目中可能都是一个异步请求&#xff0c;显示上述效果对于用户 就不是特别友好了。Spring Security 支持自定义权限受限。具体做法1.新建一个类…

大疆口袋相机美颜怎么设置_灵眸Osmo口袋云台相机评测-大疆灵眸云相机使用说明...

大疆正式发布灵眸Osmo口袋云台相机&#xff0c;机身小巧&#xff0c;便于随身携带&#xff0c;可拍摄4K/60fps超清影像&#xff0c;配备了独立屏幕&#xff0c;可爱的小巧机身对女性用户更加合适。据说这款产品 DJI 憋了一年多才正式发布&#xff0c;本期9号小编就带大家一起来…

java判断当前时间距离第二天凌晨的秒数

/*** 判断当前时间距离第二天凌晨的秒数** return 返回值单位为[s:秒]*/public Long getSecondsNextEarlyMorning() {Calendar cal Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR, 1);cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.SECOND, 0);cal.set(Calendar…

硬件基础:嵌入式软件可靠性设计要注意的问题

自从40多年前嵌入式系统诞生以来&#xff0c;随着技术的发展和需求的变化&#xff0c;嵌入式系统软件就在嵌入式系统中越来越重要。现在&#xff0c;甚至一些嵌入式系统硬件一模一样&#xff0c;仅仅是软件不同&#xff0c;就是不一样的产品&#xff08;如交换机和路由器&#…

jdk1.6 改 jdk1.7或jdk1.8(改回也可以)(图文详解)

不多说&#xff0c;直接上干货&#xff01; 第一步&#xff1a;设置默认使用的JDK和JRE环境 具体步骤&#xff1a;菜单window->preferences->java->Installed JRES 点中了&#xff0c;右边的窗口点Add按钮 记住选择添加安装了Java目录下的Jdk目录&#xff0c;而不是Jr…

python替换所有标点符号 正则_python 把标点符号替换为空

Python str.replace(old, new[, max]) 方法把字符串str中的 old&#xff08;旧字符串&#xff09; 替换成 new(新字符串)&#xff0c;如果指定第三个参数max&#xff0c;则替换不超过 max 次。 如果非要用replace()函数来实现要这样写&#xff1a; import string m l forc inst…

无法打开“XXXX”,因为Apple无法检查其是否包含恶意软件。怎么解决?

今天在安装navicat的时候&#xff0c;因为apple无法检查其是否包含恶意软件&#xff0c;大概是如下图所示&#xff1a; 仔细查询过后才发现&#xff0c;只需要在Mac上设置下即可&#xff0c;具体方法如下&#xff1a; 打开Mac自带的软件「终端」&#xff08;一般在“其它”这个…

vue路由跳转子组件_vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)...

模式vue-router中的模式选项主要在router实例化的时候进行定义的&#xff0c;如下const router new VueRouter({mode: ‘history‘, // 两种类型history 还有 hashroutes: routes // 可以缩写成routes})有两种模式可供选择&#xff0c;history 和 hash&#xff0c;大致对比一下…

计算机网络基础概念知识笔记

1、计算机网络的发展阶段 1.1、具有通信功能的单机系统 该阶段的模式为终端-计算机网络&#xff0c;属于早期计算机网络的主要形式。它将一台计算机经过通信线路和若干个终端直接相连 1.2 具有通信功能的多机系统 针对单机系统的改进&#xff0c;在主计算机的外围增加了一台计算…

python模块下载失败_python 安装tushare模块出错的一个解决方法

&#xff08;写于20200519&#xff09; Tushare金融大数据社区 免费提供各类金融数据和区块链数据。我学python的动力之一就是使用金融数据进行量化投资。 原以为安装thshare是很容易的事&#xff0c;在cmd窗口输入pip install tushare后&#xff0c;似乎安装没报错&#xff0c…