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

说一说计算机中的非常重要的两个东西磁盘和文件。搞清楚这两个东西有利于我们理解高级语言中关于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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

uniapp开发实例github_跨端开发痛点?送你一款Vue最流行的跨端框架——uni-app

前言今天来聊一下前端必备技能——小程序开发。从最早发布的微信小程序,到后来的支付宝小程序、字节跳动小程序、百度小程序、QQ小程序,还有最近发布的360小程序,面对这么多套的代码,开发者该如何开发呢?当业务要求同时…

计算机怎么把单元格内容水平居中,win10系统下怎样让Word中的表格内容居中

Word是我们经常会使用到的一款文字处理软件,其具有非常强大的功能。那么,我们应该怎样使Word中的表格内容居中呢?接下来,小编就以 windows10正式版系统 为例,给大家分享具体操作方法。具体如下:1、首先在Word软件中准备…

双稳态电路的两个稳定状态是什么_从双稳态到双“更”稳态 ——叶芳伟课题组在拓扑光子学研究方向上取得新进展...

你拿起一个计算器,输入“26”,计算器会输出“8”;过了一会儿,你又在这个计算器上输入“26”,它依然会输出“8”。这种靠谱的计算器——对于同一个输入,它始终还给我们同一个输出——我们称之为线性计算器或…

【C++专题】static_cast, dynamic_cast, const_cast探讨

首先回顾一下C类型转换:C类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的 算术表达式中, 最宽的数据类型成为目标转换…

安卓工控主板运行时会自动重启_工控主板在工业自动化中的应用

原标题:工控主板在工业自动化中的应用大家都知道随着科技的发展对于工控主板的用途和应用大大超出了工业自动化的范围,而对于本文联智通达小编将仅坚持工业自动化范围内的应用。首先跟随联智通达小编看一下制造以及工业PC的应用以及如何使该领域的工业自…

海量小文件存储

海量小文件存储 [转自:http://www.fuchaoqun.com/2009/04/deal-with-tons-of-small-files/] Web2.0网站,数据内容以几何级数增长,尤其是那些小文件,几K~几百K不等,数量巨多,传统的文件系统处理起来很是吃力…

diff算法_vue源码解读 diff算法

导语 最近碰到部分业务场景,代码逻辑需要了解"数组变更后,具体变更了哪一些元素,以及变更的位置.."。于是仔细研究并覆写了一遍针对数组变化的diff算法,在这里做下diff算法的逻辑分享&&源码解读一.介绍前的准备…

Linux驱动模块编译进内核中

BQ27501驱动编译进内核 一、 驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录; 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项; 3. 在…

黑群晖二合一安装不了套件_玩PT还是得安装transmission,星际蜗牛安装黑群晖制作家用NAS...

原文作者:pt老萌新To小白:黑群晖docker安装PT神器transmission——星际蜗牛安装黑群晖制作家用NAS的折腾日记写在前面:里面的技术方法不是我原创的,都是网上找的,侵删。折腾的过程记录是原创的(好像没啥原创的了)&…

spring boot web项目_阿里技术专家带你使用Spring框架快速搭建Web工程项目

点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 We all have a past. It’s how you deal with it. 每个人都有过去,只是取决于你怎么去处理。 每日掏心话 人不都是这样吗,安慰别人的时候头头是道,自己…

git 代码回滚_能提交到远程的Git回滚

很多情况下我们需要回滚代码,最容易想到的就是git reset。但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了。做一下试验,一个文件我们提交了三次之后回滚#往前…

Mysql数据库的几大优势

为什么开源社区买mysql的帐, MySQL数据库的吸引开源社区的几大特质: 客户为什么会考虑购买MySQL 企业版Enterprise Edition : 转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968208.html

c语言e怎么表示_来测测!这11个C语言入门基础知识你都掌握了吗?

文章字数:8400 干货指数:⭐⭐⭐⭐⭐C语言程序的结构认识用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。例1:计算两个整数之和的c程序:#include main…

Oracle甲骨文8.7亿美元高价收购Eloqua

北京,2012年12月20日—— 甲骨文今天宣布,已与领先的云营销自动化和收入绩效管理软件供应商Eloqua公司(NASDAQ代码:ELOQ)达成收购协议,收购价为每股23.50美元,总额约为8.71亿美元。Eloqua的现…