在内存中建立文件_磁盘与文件,搞懂它

说一说计算机中的非常重要的两个东西磁盘和文件。搞清楚这两个东西有利于我们理解高级语言中关于I/O流操作的设计。它就像一把大杀器一样,无往而不利。
想一想,磁盘作为一个电脑中的硬件设备,操作系统是如何管理磁盘设备的?文件其实一种软件概念,运行在操作系统上的一个软件或者子系统。不存在对应的物理结构,那么它的底层结构是什么,存放在哪里,如何检索,如何设计等等,这些问题可以说是触及到文件系统的本质了。其实,就操作系统而言,文件管理是其四大功能之一,不可谓不重要。

文件是什么文件则是指具有文件名的若干相关元素的集合。元素通常是记录,而记录又是一组有意义的数据项的集合。通过文件来组织和管理在计算机中所存储的大量程序和数据的,我们看到电脑中的各种文档、应用程序都是文件。文件是有很多种类的。根据文件的性质和用途的不同,有不同的归类:1. 按用途分类(1) 系统文件。这是指由系统软件构成的文件。大多数的系统文件只允许用户调用,但 不允许用户去读,更不允许修改;有的系统文件不直接对用户开放。(2) 用户文件。指由用户的源代码、目标文件、可执行文件或数据等所构成的文件。用 户将这些文件委托给系统保管。(3) 库文件。这是由标准子例程及常用的例程等所构成的文件。这类文件允许用户调用, 但不允许修改。2. 按文件中数据的形式分类(1) 源文件。这是指由源程序和数据构成的文件。通常由终端或输入设备输入的源程序 和数据所形成的文件都属于源文件。它通常是由 ASCII 码或汉字所组成的。(2) 目标文件。这是指把源程序经过相应语言的编译程序编译过,但尚未经过链接程序 链接的目标代码所构成的文件。它属于二进制文件。(3) 可执行文件。这是指把编译后所产生的目标代码再经过链接程序链接后所形成的文件。3. 按存取控制属性(权限)分类根据系统管理员或用户所规定的存取控制属性(Linux中有三种权限:读R、写W、执行E三种权限),可将文件分为三类:(1) 只执行文件。该类文件只允许被核准的用户调用执行,既不允许读,更不允许写。(2) 只读文件。该类文件只允许文件主及被核准的用户去读,但不允许写。(3) 读写文件。这是指允许文件主和被核准的用户去读或写的文件。说到这里,可以对比android 系统,我们通过androidStudio 打开手机的文件存储,发现有些文件夹无法操作,就是你没有权限的原因,这时候会有一个Root的说法,其实root 指的是切换登录手机的身份,然后以root 身份登录,这时候我们就可以操作任意文件了,因为root 是具有最高权限的一个用户,所以就能操作普通用户无法操作的文件。文件的逻辑上面说到了文件的分类,再看看文件的逻辑结构(逻辑结构是从用户观点出发所观察到的文件组织 形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性)。那逻辑结构是怎样实现的呢?前面说了文件是一组记录的集合,归结到底就是如何把这些记录放到存储介质上。通常来说,这些记录的存放方式可以按顺序进行存储,或者说对文件建立索引,把文件的主要信息提取出来,就像我们看到的文件简介,放入内存中,当我们要知道文件的全部内容时,在通过索引去存储介质上去找对应的信息在读到内存中,实际中更快的方式是把顺序和索引两种方式结合起来,建立索引顺序文件,把批量的文件用顺序方式进行排列存储,然后再给这批文件中第一个记录建立一个索引,这样就能提升文件的效率。或者还可以建立二次索引,进一步提升效率。文件目录在现代计算机系统中,都要存储大量的文件。为了能对这些文件实施有效的管 理,必须对它们加以妥善组织,这主要是通过文件目录实现的。文件目录也是一种数据结 构,用于标识系统中的文件及其物理地址,供检索时使用。文件目录有哪些作用?(1) 实现“按名存取”,即用户只须向系统提供所需访问文件的名字,便能快速准确地 找到指定文件在外存上的存储位置。(2) 提高对目录的检索速度。通过合理地组织目录结构的方法,可加快对目录的检索速 度,从而提高对文件的存取速度。(3) 文件共享。在多用户系统中,应允许多个用户共享一个文件。(4) 允许文件重名。系统应允许不同用户对不同文件采用相同的名字,以便于用户按照 自己的习惯给文件命名和使用文件。为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构, 称之为“文件控制块(FCB)”。文件管理程序可借助于文件控制块中的信息,对文件施以各种 操作。这个FCB其实和进程中PCB是一样的,负责记录文件的自身基本信息,比如文件名、逻辑结构、长度、用户权限表、文件使用信息(修改、创建日期等);系统就是通过FCB去控制文件,但是FCB和文件都是在磁盘上,如果想要查找文件需要先启动磁盘,把文件导入内存,再去查看FCB比对文件信息,这样在查询文件时,就会浪费cpu的执行,于是就想到给FCB建立索引,把FCB中一些关键信息抽离出来放入一张表(索引结点),然后把这些简化的信息放入内存中,这样在检索文件时,就不必频繁的启动硬盘了,直接先在索引结点中寻找,再去硬盘中查询相关的文件,这样就是提升了效率前面提到了文件的存储介质,文件存放在哪里?不假思索的回答是磁盘,磁盘是一个物理硬件设备,作为一个外存它是如何进行划分它的空间进行文件管理,采用什么样的方式提升存储效率。这些放在下一篇文章中去讲解?

一个有意思的、才艺多的android 开发人员,史建华 ——爱阅读,爱写作。

点个在看 你最好看

4d03745a73eae7457630648758b8fd3e.png

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

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

相关文章

libxml2交叉编译问题及解决办法

libxml2安装中出现的错误:cannot remove libtoolT: No such file or directory解决方法: 修改configure文件 $ vim configure删除这一行: $RM "$cfgfile" 重新再运行 $ ./configure # ./configure --hostarm-linux --buildi386-linux --targetarm --prefix/u…

win7 dos窗口输入命令必须加后缀问题,例如 java必须输java.exe

1、描述: 当java的环境变量设置正确后依然无法java ,只有添加java.exe后方可运行问题 2、位置:win 环境变量中的pathtext 3、解决方案:恢复默认的值即可(或google参考别人的)转载于:https://www.cnblogs.com/ki-tom/archive/2013/…

平板电脑应用_什么是机房巡检AI机器人?工业平板电脑的应用如何体现

机房巡检AI机器人,顾名思义,它的主要工作是在机房里做巡逻检查,是巡检机器人类别下的一个型号,类似的还有电站巡检AI机器人,铁路巡检AI机器人等,总之,它们的设计研发就是为了某个特定的工作环境…

东北师范大学计算机科学与技术录取分数线,东北师范大学计算机科学与技术专业2015年在河南理科高考录取最低分数线...

类似问题答案东北师范大学计算机类专业2016年在河南理科高考录取最低分数线学校 地 区 专业 年份 批次 类型 分数 东北师范大学 河南 计算机类 2016 一批 理科 557 东北师范大学 河南 计算机类 2016 一批 理科 557 学校 地 区 专业 年份 批次 类型 分数 东北师范大学 河南 计算…

二叉树的深度_十七:二叉树的最小深度

二叉树的最小深度:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最短路径的长度为树的最小深度。算法一/** * description 二叉树最小深度 * param {*} root 二叉树 */function binaryTreeMinDepth(root) { // 节点不存在时返回长度…

reactor设计模式 1

Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽…

LinkedBlockingQueue应用实例

并发库中的BlockingQueue是一个比较好玩的类,顾名思义,就是阻塞队列。该类主要提供了两个方法put()和take(),前者将一个对象放到队列中,如果队列已经满了,就等待直到有空闲节点;后者从head取一个对象&#…

苹果怎么付费购买内存_【苹果手机多长时间清理一次内存,怎么清理?】

一、微信缓存微信作为每天使用频率最多的软件,是需要重点清理的对象。操作:我—设置—通用—清理微信存储空间—查看微信存储空间,选择联系人进行清理。二、短信现在很少有人会用短信联系,一般都是一些垃圾广告,我们可…

用计算机计算2的31次方,2的31次方,用什么方法可以最快算出来呢

请告诉我过程和怎么算出来的好吗? 2-2的2次方....-2的19次方 2的20次方2 - 2^2 - 2^3 - 2^4 - 。。。。 -2^19 2^202 2^20 - ( 2^2 2^3 2^4 。。。。 2^19)学过等比数列吗,学过就用公式Sna1(1-q^n)/(1/q)(a1-q*an)/(1-q)2^2 2^3 2^4 。 。。。 2^19 2^2(1-2^18)/(…

发票管理软件_财务人员都在用的这款发票管理软件,真的值得购买么?

(1)电子凭证和纸质会计凭证具有同等效力;(2)报销管理也需要经办、审核、审批流程,且能防止重复入账;(3)以电子凭证纸质版入账留档保存的,必须同时保存电子档。以及重复繁琐的发票查验工作,把最近处于风口浪尖的电子发票…

SDL以及扩展库的交叉编译过程简介

下面我介绍一下SDL以及SDL的扩展库在arm11上的交叉编译 在这里我将SDL 交叉编译的相关都安装在/opt/arm目录下 相关简介: SDL官方网站 http://www.libsdl.org/ SDL编译移植(Up-teach6410平台) 系统环境:linux 移植环境:arm11 编译工具链&…

Ref and Out

C#中ref和out的区别: ref 参数需初始化,而out并无此要求。out 参数在调用者返回之前必须有值(调用的函数在运行过程中确定此参数的值)。而ref参数在调用者调用之前必须有值(由调用者设定)。int x; Foo(out …

自动点击器如何设置最快_铁粉技巧 | iPhone如何设置自动开关机,iPhone更改字体...

大家好我是小雷没有废话直奔主题今天让我们看下iPhone如何设置自动开关机首先需要了解的是,iPhone设备是不能设置自动开机的。那么如何每天自动关机呢?1,打开时钟点击计时器。2,点击计时结束时启动3,滑动页面点击停止播…

中国大学慕课计算机专业导论,2015秋计算机专业导论(大连大学)

本课程是计算机科学与技术学科的第一门课程,目的使学生认识和了解计算机科学与技术学科,了解计算机科学与技术学科的基本思维、问题求解框架及典型的方法论,了解计算机科学与技术学科的研究对象及科学技术体系,了解计算机科学与技…

编译zlib库

$ tar zxvf zlib-1.2.3.tar.gz $ cd zlib-1.2.3$ ./configure --prefix/usr/local/arm/3.4.6/arm-linux --shared $ vim MakefileCCarm-linux-gccLDSHAREDarm-linux-ld -shared$ make all$ make install注意:这里是安装在/usr/local/arm/3.4.6/arm-linux目录下由于…

[Buzz.Today]2013.03.14

# Google将砍掉Google Reader 最近一两年养成了每天blog的习惯,桌面上用Feedeamon,iPad上则用Reeder,而二者均为与Google Reader同步,Google这一手让我心痛哦。 [后记] Google Reader的猝死给我们的启示:互联网无法永远…

python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

前言:今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷路哦…

计算机应用基础 第三版 实验报告,计算机应用基础实验报告(windows).doc

计算机应用基础实验报告(windows)实 验 报 告计算机应用基础实验报告姓名 于航 班级 0531132 学 实验日期2013.09.13课程名称 计算机应用基础 指导教师 洪菁 成绩实验名称:windows的基本操作实验目的:掌握桌面主题的设置掌握任务栏的使用和设置掌握任务切…

python 跳一跳辅助_微信跳一跳辅助自动跳Python

#-*- coding: utf-8 -*-""" 思路 核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,根据两个点的距离乘以一个时间系数获得长按的时间识别棋子:靠棋子的颜色来识别位置,通过截图…

asterisk for mipsel

任务:将asterisk1.8.24.0移植到rt5350上面 交叉工具链:mipsel-linux(3.4.2) 1. 配置asterisk,执行./configure --hostmipsel-linux 找不到termcap和libxml2,分别对他们交叉编译,然后将生成的库拷贝到交叉工具链的lib…