当前位置: 首页 > news >正文

网站建设与维护选择题海淀发布会

网站建设与维护选择题,海淀发布会,线条类网站,wordpress 网页慢目录 一. 磁盘的结构和读写数据的方式 1.1 磁盘级文件和内存级文件 1.2 磁盘的物理结构 1.3 访问磁盘数据的方式 二. 磁盘文件系统 2.1 磁盘的分区管理方法 2.2 文件名和inode的关系 三. 结合文件系统对文件创建和删除的相关问题的理解 3.1 文件创建时操作系统进行的工…目录 一. 磁盘的结构和读写数据的方式 1.1 磁盘级文件和内存级文件 1.2 磁盘的物理结构 1.3 访问磁盘数据的方式 二. 磁盘文件系统 2.1 磁盘的分区管理方法 2.2 文件名和inode的关系 三. 结合文件系统对文件创建和删除的相关问题的理解 3.1 文件创建时操作系统进行的工作 3.2 文件删除时操作系统进行的工作 3.3 查看文件时操作系统进行的工作 3.4 已删除文件的恢复问题 四. 总结 一. 磁盘的结构和读写数据的方式 1.1 磁盘级文件和内存级文件 内存级文件被某个进程打开的文件文件的内容被加载到了内存。磁盘级文件没有被进程打开的文件存储在磁盘。 如果设备断电内存中的数据会丢失但是磁盘上存储的数据依旧会被保存下来。也就是说磁盘是一种永久性的存储介质永久性的存储介质还有SSD、光盘、磁带等。 磁盘是计算机系统中唯一的机械设备。 现代笔记本电脑和很多台式机都采用SSD来替代机械硬盘。SSD就是我们常说的固态硬盘它以固态电子芯片作为存储介质相对于磁盘SSD的读写速度更快成本也较高。大型互联网公司的服务器一般还是使用磁盘来存储数据。 1.2 磁盘的物理结构 一个磁盘的主要结构包括磁盘盘片、磁头、音圈马达、主轴等。磁盘盘片用于存储数据磁头用于从磁盘中读取数据和向磁盘中写数据。 计算机只认识二进制数据也就是0/1因此只要能在磁盘盘片上读写0/1信号即可。磁盘盘片上涂有磁性物质通过磁头放电改变磁盘上磁性物质的正负极从而实现数据的读写。通过磁盘上的正负极信号来记录二进制数据从而实现对数据的永久性存储。 图1.1 磁盘的物理结构 磁盘盘片根据区域划分原则可分为如下几块区域 磁道在一个磁盘盘片上距离中心轴半径相同的环形面。扇区一个磁道中的一段扇形区域每块扇区所对应的圆周角大小相同。柱面所有磁盘盘片上以主轴为中心轴半径相同的圆柱面。一个磁盘并非只有一个盘片而是由许多盘片摞起来的 一个扇区为一个数据存储的单元。一般一个扇区可以存储512bytes的数据也有些磁盘一个扇区存储4KB的数据现在的技术也支持了不同扇区的容量有所不同。 图1.2 磁盘盘片结构 1.3 访问磁盘数据的方式 如果我们想要访问某个特定的数据要依次进行如下的工作找到数据存储的位置 确定数据存储在哪个磁盘盘面确定对应磁头-- Head确定位于那个磁道柱面-- Cylinder确定位于哪个扇区 -- Sector  上述寻址方法被称为CHS寻址法 有了CHS我们就能够访问到任意扇区的数据。 我们可以通过磁带结构来抽象类比磁盘。如图1.3所示磁带被环形缠绕在一个柱面上每层磁带叠加起来就好比磁盘的盘片结构磁带上也存在正负极来记录二进制信号。磁带可以展开为线性结构这个线性结构就类似于数组而我们可以想象将磁盘当做磁带展开这样盘形结构就变为了数组似的线性结构。每个数组下标位置就相当于一个磁盘上的扇区根据下标就可以转换获取对应的盘面、磁道和扇区。 假设存储空间为1T的磁盘那么我们就可以假想整个磁盘的存储空间就是一个数组而向磁盘的某个扇区写数据就等同于向这个数组中某个特定下标位置写数据。 图1.3 磁带 图1.4 磁盘盘面抽象展开图 二. 磁盘文件系统 2.1 磁盘的分区管理方法 由于一个磁盘的存储空间相对较大为了便于管理一般会对磁盘进行分区管理这就好比我们将电脑的存储空间分为C盘、D盘、E盘。磁盘的存储空间会被划分为若干个Block Group和一个Boot BlockBoot Block记录整个文件系统相关的属性信息如果Boot Block中的数据丢失那么对整个文件系统来说将是灾难性的因此在每个block group中会有一块Super Block用于备份文件系统的属性信息。当Boot Block中的信息丢失时OS会去Block Group中寻找备份信息。 每个Block Group又可以根据存储数据的不同分为这几个区域Super Block、Group Descriptor Table、Block Bitmap、inode Bitmap、inode Table、Data Blocks。在这些分区里存储了文件的数据和属性以及块组和文件系统相关的属性信息。 图2.1 磁盘分区图 每块Block Group(块组)内部分区存储的内容为 Data Block数据块存储文件的正文内容一般来说每个块组的容量为4KB。inode Tableinode表每个文件会分的一块128bytes的inode空间用于存储文件的属性信息。同时每个inode都有与之对应的inode编号对应于某个特定的文件如果拿到文件的inode编号就可以找到对应的inode模块获取文件的属性信息。inode Bitmap与inode Table对应的位图每个二进制比特位对应一个inode Table的下标位置0表示该inode Table位置(某个inode编号)没有被使用1表示被使用了。Block Bitmap与Data Block对应的位图每个存储文件内容的Data Block如果被使用了与之对应的Block Bitmap的二进制位就为1否则为0。Group Descriptor Table块组描述表记录该Block Group块组中使用了几个inode还剩几个inode使用了几个Data Block还有多少Data Block没有使用等信息。Super Block记录整个文件系统的属性信息如果Boot Block或某个块组上的Super Block上存储的信息被破坏那么其他块组中的Super Block就存储了其备份信息用于OS恢复文件系统属性信息。之所以要在多个块组保存多份文件系统属性信息是因为如果文件系统属性信息被破坏或丢失那么整个文件系统就会崩溃。 在磁盘的每个块组上记录上面的这些信息让每个文件的属性和内容可追溯、可管理。在磁盘中文件的内容和文件的属性是分开存储的文件  文件内容  文件属性。 一个Data Block存储4KB的数据磁盘和内存进行IO操作的基本单位为4KB但是一个扇区一般存储512Bytes的数据不让一个扇区存储的数据量和磁盘和内存进行IO操作的基本单位保持一致主要出于以下两个方面考虑1如果IO的基本单位太小那么就会大幅增加IO的次数降低计算机系统的整体效率。2如果让磁盘扇区大小和IO基本单位大小一致那么如果磁盘扇区大小发生变化那么就需要更改OS的源代码不让它们一致是为了实现硬件层面和软件层面的解耦软件工程要求高内聚低耦合。 2.2 文件名和inode的关系 存储在特定块组中的每个文件都会有一个独立的、与之对应的inode编号通过这个inode编号可以在inode Table中查找到特定的下标位置以获取文件的属性信息。 Linux系统内置的ll、stat等获取文件属性信息的指令其底层都是通过拿到文件的inode编号进而在inode Table中获取文件的属性信息来实现的。 那么文件的内容又是怎样获取的呢怎样知道某个文件的内容存储在哪个Data Block中呢 每个Data Block都有一个特定的编号每个文件的inode中会记录有文件对应的Data Block编号 只需要根据inode中记录的Data Block编号就可以找到与之对应的Data Block从而找到文件的内容。如图2.2所示inode中有一个blocks数组记录存储这个文件内容的Data Block编号。 获取某个文件的内容的流程为拿到文件的inode编号 - 找到与之对应的inode - 找到inode内部的Blocks数组获取存储这个文件的内容Data Blocks - 访问Data Blocks获取文件内容。  那么如果文件很大需要庞大数量的Data Blocks才能放下的时候又该怎么办呢总不能将这些Data Blocks的编号全都放到inode中的Blocks数组中吧 -- Data Blocks中不仅可以存储文件的具体内容也可以存储其它的Data Block编号这个可以根据Data Blocks中记录的其他Data Block编号找到存储了具体文件内容的Data Blocks。 图2.2 通过inode编号获取文件内容 inode中并不会存储文件的文件名 提问如何通过文件名获取文件对应的inode编号呢目录文件夹也属于文件有与之对应的inode编号和Data Blocks目录的Data Blocks中存储该目录下文件名和inode编号之间的映射关系这就解释了为什么同一目录下不允许有同名的文件因为如果有同名文件就无法建立文件名与inode编号之间准确的映射关系。 在某一特定磁盘块组Data Group中inode和Data Block的数量都是固定的。这就解释了为什么有时候明明块组中还有内存空间但却无法成功创建新文件的现象。这有可能是因为inode Table被用完了但Data Blocks还没用完或者Data Blocks被用完了但是inode Table还没有被用完。 三. 结合文件系统对文件创建和删除的相关问题的理解 3.1 文件创建时操作系统进行的工作 遍历块组的inode Bitmap查找一个还没有被使用的inode编号分配给新建的文件 - 将对应的inode Bitmap的二进制为置为1 - 向inode中写入文件的属性信息 - 为文件分配Data Blocks记入inode中并将Block Bitmap中与之对应的二进制位置为1 - 将文件名及其与inode编号之间的映射关系写入到文件所在目录对应的Data Blocks中。 3.2 文件删除时操作系统进行的工作 根据文件名从文件所在路径的Data Blocks中获取该文件的inode编号 - 根据inode编号在inode Tables中找到与之对应的inode从inode中获取该文件占用的Data Blocks编号 - 将inode Bitmap和Blocks Bitmap中对应的二进制位置0 - 在文件所在的目录的Data Blocks中解除文件名和inode编号的映射关系。 注意删除文件不需要清除Data Blocks中的文件内容只要改变位图标记、解除文件名和inode编号之间的映射关系即可。因此删除一个大文件所耗费的时间远低于拷贝一个大文件的时间。 3.3 查看文件时操作系统进行的工作 根据文件名拿到与之对应的inode编号 - 通过inode编号找到该文件的inode - 从inode中获取存储该文件内容的Data Blocks - 访问指定的Data Blocks查看文件内容。 3.4 已删除文件的恢复问题 当用户删除一个文件时OS会有记录相应的删除日志日志中会包含文件的inode编号。由于删除文件并不会删除掉inode Tables和Data Blocks中的内容因此可以通过已删除文件的inode编号获取存储文件内容的Data Blocks这样就可以实现对删除文件的恢复。 但是恢复删除文件有一个必要的前提原来文件所使用的inode Tables和Data Blocks均没有被覆盖。如果被覆盖那么文件就无法恢复写文件、新建文件等各种操作都有可能造成被删除文件的inode Tables和Data Blocks被覆盖因此如果误删了重要文件在文件恢复之前什么都不应该做 四. 总结 文件根据是否被进程打开分为内存级文件和磁盘级文件。 磁盘的主要结构有盘片、磁头、主轴、音圈马达等。数据存储在磁盘盘片上磁盘盘片被划分为一个个的磁道和扇区一个扇区为一个磁盘存储单元。磁盘盘片上涂有磁性物质磁性物质的正负极代表二进制数据的0和1磁头负责在磁盘盘片上读取数据和向磁盘写数据。 通过CHS法找到数据在磁盘中的盘片、磁道和扇区就可以获取对应的数据。 磁盘中是被分为若干个块组进行分区管理的每个块组存储有文件的属性信息和文件的内容文件的属性信息和内容是分开存储的每个文件占用一个inode来存储属性信息占用若干个Data Blocks存储文件内容。 目录也是文件与它自己的inode和Data Blocks目录的Data Blocks中存有该目录下文件的文件名和与之对应的inode编号。
http://www.zqtcl.cn/news/355699/

相关文章:

  • 东莞勒流网站制作wordpress 自定义字段 查询
  • 温州网站开发风格做影视剧组演员垂直平台网站
  • c 网站开发培训怎么做网站的站点地图
  • html 网站模板简单网站制作北京海淀
  • 大庆做网站找谁珠海网站搭建
  • 网站建设方面的外文宿迁房产网找房
  • 运营 网站遵义网站开发制作公司
  • 动力论坛源码网站后台地址是什么网站上微信支付功能
  • 网站需求分析模板深圳3d制作
  • 宿迁网站建设推广公司wordpress忘记密码了
  • 成都双语网站开发flat wordpress
  • 大连做公司网站的公司网络营销的网站
  • 做网站 人工智能怎么做商业服务网站
  • 自助建站公司四平市住房和城乡建设部网站
  • 淄博网站seo价格世界新闻最新消息
  • 网站开发 毕业答辩pptwordpress qq邮箱订阅
  • 国家icp备案网站群辉域名登录wordpress
  • 仙居住房和城乡建设规划局网站可以做思维导图的网站
  • 企业网站建设费怎么入账石家庄定制网站建设服务
  • 遂宁建设网站如何搭建微信公众号平台
  • 咖啡网站源码公司网站手机版
  • 新能源网站开发网站做5级分销合法吗
  • 西安建设网站排名简约风网站首页怎么做
  • 安远做网站做服务网站要多少钱
  • 功能网站模板电商平台项目商业计划书
  • 阿里巴巴国际站入驻费用及条件广州做网站比较好的公司
  • 淄博营销网站建设阳泉营销型网站建设费用
  • 珠海网站开发定制常德网站建设详细策划
  • 做电影网站侵权哈尔滨网站开发
  • 中国联通网站备案系统Wordpress建立空白页面