coursera 《现代操作系统》 -- 第九周 文件系统(1)
文件的定义
文件名-> 路径名
磁盘结构
磁臂转还是那根柱子转?
盘片被轴带动旋转,磁头读取经过的扇区的数据。
典型的磁盘结构 一块盘呢由若干个盘片组成 每个盘片呢实际上有两个面啊,两个盘面 每一个盘面呢,它的信息的读取呢,需要一个读写磁头 若干个读写磁头呢,固定在了一个磁臂上 由磁臂带动的这些磁头,沿着半径的方向 进行移动,前后移动啊。 也就是说,我们从图上可以看到,这是磁臂 有若干磁头,那我们沿着半径方向啊,前后移动 在盘面上呢,有若干个同心圆 那么,我们把它称之为磁道。 那么这个磁道呢,实际上在磁道上是存放信息的 有若干个磁道 我们把磁道啊,划分成很多段,每一段呢 就称之为扇区。 所以我们的信息呢,实际上是存放在每一个扇区里头的 尽管有多个磁头 任何时刻呢,其实只有一个磁头处于活动状态 那么,磁臂带动着磁头沿着半径方向移动到某一个磁道 啊,当然啦,每一个盘面都有相应的磁道,把所有的磁道把它 全部啊,给它算起来,可以看成是一个柱面啊,一个柱面。 所以有的时候磁道和柱面 它的这个关系很密切啊,很密切 那么,磁头从这个盘面的某个磁,呃,扇区 读了啊信息出来,那么这个信息呢实际上是采用 的是一个位串的形式读出来的,就是一大串的 bit 啊,我们说一个位串流 好,这是关于这个磁头,读信息的时候的一个特征 另外我们看一下,盘有若干个盘面 盘上又有若干个磁道,磁道又划分成了若干个扇区,所以 你要想定位某一个扇区,就是它的一个物理地址 那么物理地址的形式呢应该由 几部分组成,首先要有磁头号,或者叫做盘面号 要有磁道号,刚才我们说的磁道号呢实际上也是等同于柱面号 还有一个是扇区号,那么我们这个 盘的话,它的扇区是它的最小单位 那么一个扇区多大呢?我们大家都知道 一个扇区,通常我们的常识是,一个扇区是 512 字节 那么这 512 字节呢,其实呢是说 存放的信息或者存放的数据是 512 字节 通常一个扇区呢还,前面还包括了一些标题,可能占了多少字节,这里写的是 10 个字节 在数据、 存放的数据后面呢还有一些 校验的啊信息啊校验的信息,那么占了若干字节 所以读一个扇区的信息出来呢,除了标题和用于 检验的信息之外,还有 512 字节呢是存放我们要的数据的 啊,这是一个典型的磁盘结构。 那么我们,当然这张图呢不是 SSD 的结构 啊,这是一个我们平常的啊,一般普通的啊,计算机里头的那个硬盘的结构,这个硬盘呢我们- 通常是叫 活动头磁盘,因为这个啊,头,磁头呢是沿着半径方向可以移动的,活动头磁盘 那么大家回去啊,可以查询有关资料 看一下 SSD 的这个盘的一个基本的这个构成是什么样子
磁盘地址与块号的转换(没看懂)
问:成组链接法(04:15秒处)
外文名是什么?查找 Group Link 没有找到相关
专用块是专门分出来的一部分,用来记录下一组的信息(空闲块的起始号,总的空闲块数)。
举例:当第一组还剩下一块,要把其分出去之前,由于其记录了第二组的信息,将其拷贝到专用块里头
专用块记录下一组的信息,比如有20组,那么专用块就有20个
如何分配?
如果第一组空闲2块,文件需要3块,那么怎么存?
如何回收?
如果超过100块,第二组专用块中的内容拷贝到到第一组第一块,第一组的内容拷贝到专用块
文件控制块及文件目录
文件控制块(FCB)
元数据:描述数据(文件)的数据
空闲的FCB指什么?
文件目录
图片中的"每个文件"应该是"目录下的每个文件"、“目录下的所有文件”
目录由目录项组成,目录项就是 FCB,所以目录就是该目录下所有文件的 FCB 的集合。
文件的物理结构
会用到的功能
顺序存取、随机存取
动态增长、插入、删除等操作
磁盘空间利用
性能问题:寻道时间
1. 连续存放
2.链接结构
见书P155
不连续的物理块,各块之间通过指针链接
3. 索引结构
每个文件一个专用数据结构--索引表
见书P156
UNIX 的三级索引结构
文件系统的实现
储存在磁盘分区上
内存中所需的文件管理数据结构
问:系统打开表与用户打开表的区别
用户打开表不需要再记录 FCB 信息,只需要通过索引指向对应的系统打开表的FCB。
用户打开表记录更详细的信息
问:打开方式
为什么要区分打开方式,如只读、只写、可读写等等?
我的想法:
1. 为了安全
以只读打开的就不能更改
文件系统的实现
打开一个文件的过程
如何加快这个过程?
文件号与文件名都是定位文件的作用。
改进后的结构
改进后的查找次数
计算方法:
13——目录所占的物理块数目:128*48/512=12
分解前:最少查找1次,最多查找13次,平均7次
分解后:获得符号文件信息:最少查找1次,最多查找两次,平均1.5次;根据查找到的符号文件,去基本文件中查找信息,需要1次。共2,5次
感想:通过特征找到目标,再搜索目标的其余信息。
根据特征值建立 hash 表
UNIX 文件的结构详解
通过目录项中的 i节点号,找到i节点,从而获取文件的其他信息
查找示例
重点
错题
文件的逻辑结构是由下列哪一项决定的?
用户
文件属性
磁盘容量
操作系统
https://www.coursera.org/learn/os-pku/lecture/xTcQi/wen-jian-yu-wen-jian-xi-tong
某文件系统空间的最大容量为4TB(1T=240),以磁盘块为基本分配单位,磁盘块大小为1KB(2^10)。文件控制块(FCB)包含一个512B的索引表。如果索引表只采用直接索引结构,存放文件占用的磁盘块号。在该文件系统中,单个文件最大长度为多少块?
512
256
64
128

采用索引结构会引入存储开销
系统为每个文件建立一张索引表
从文件控制块中可以找到索引表或索引表的地址
索引结构的优点是访问速度快,文件长度可以动态改
采用索引结构,逻辑上连续的文件存放在连续的物理块中
下列关于文件卷的叙述中,哪些是正确的?有问题
同一文件卷使用同一份管理数据(元数据)
UNIX的文件卷信息存放在超级数据块、空闲空间管理区
文件卷可以建立在磁盘分区上
格式化是在一个逻辑分区上建立管理数据的过程
FAT文件系统的文件卷信息仅保存在文件分配表中
不知道哪里错了
应该是 `FAT文件系统的文件卷信息仅保存在文件分配表中`
成组链接法是文件系统中可以采用的文件的物理结构。
对
错
解析:错误。成组链接法是用来管理磁盘空间的。链接法是可以采用的物理结构,变形后是
在文件系统中,文件的逻辑块与存储介质上物理块存放顺序一致的物理结构是索引结构。
对
错
解析:错误。索引结构的数组索引号对应的是逻辑上的存放顺序。数组中的值表示这个逻辑索引对应的物理块地址。
引入了当前目录的概念可以加快目录检索的速度
错
对
解析:
Windows的FAT文件系统中,文件的物理结构采用的是链接结构。
对
错
改进的链式结构: FAT链表
coursera 《现代操作系统》 -- 第九周 文件系统(1)的更多相关文章
- 20169207《Linux内核原理与分析》第九周作业
第九周的实验依旧和往常的一样,主要包括两部分.一是1.阅读学习教材「Linux内核设计与实现 (Linux Kernel Development)」第教材第13,14章.二是学习MOOC「Linux内 ...
- 20155303 2016-2017-2 《Java程序设计》第九周学习总结
20155303 2016-2017-2 <Java程序设计>第九周学习总结 目录 学习内容总结(Linux命令) 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...
- 2017-2018-1 20179205《Linux内核原理与设计》第九周作业
<Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多 ...
- 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试
目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...
- 20135327郭皓--Linux内核分析第九周 期中总结
Linux内核分析第九周 期中总结 一.知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工 ...
- 20155302 2016-2017-2 《Java程序设计》第九周学习总结
20155302 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 基本数据库操作相关的JDBC接口或类是位于java.sql包中.在程序中要取得数据库联机,我 ...
- 20172302 《Java软件结构与数据结构》第九周学习总结
2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 教材学习内容总结 第十五章 图 1.图:图(graph)是由一些点(vertex)和这些点之间的连 ...
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
- 20155326 2016-2017-2 《Java程序设计》第九周学习总结
20155326 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的 ...
随机推荐
- UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
今天遇到一个问题,如下图: 假如你在一个BP的初始化脚本里用了"Get Player Character",编译BP时候就会遇到上述警告(Warning Function ' Ge ...
- activiti designer下载地址
http://www.activiti.org/designer/update/ http://www.activiti.org/designer/archived/ 这个地址貌似不能用了 ...
- Mac OS X中配置Apache后提示You don't have permission to access / on this server
根据这篇博客http://www.cnblogs.com/snandy/archive/2012/11/13/2765381.html,在mac系统中,配置的apache,配置完成后,提示 You d ...
- ExtjS学习--------Ext.define定义类
Ext类Class的配置项:(注:Extjs的 的中文版帮助文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 ExtJS配置文件和演 ...
- mysql被动模式下的主主配置
mysql 架构最简单用得也最多的的是主从,主主等,主从有个切换的问题,从库不可写,在主库一定的情况下,切换挺麻烦,这里可以用主主模式. 但是主主也有个问题,就是两边同时写有可能冲突,主键冲突,虽然可 ...
- Redis源码之String操作
0.前言 String操作是Redis操作中最基本的类型,包含get,set,mget,mset,append等等.下面我们会具体分析下一些命令的详细流程,特么简单的命令没有列出. 1.SET命令 2 ...
- ant用途及简单实现
ant用途及简单实现 标签: antjavadeletejarbuildjavaee 2012-07-17 14:15 5945人阅读 评论(0) 收藏 举报 分类: other(6) Ant工具 ...
- FPGA和DSP间基于SRIO的高速通信系统设计
作者:陈婷,岳强,汪洋 解放军信息工程大学 摘要: 现代信号处理系统通常需要在不同处理器之间实现高速数据通信,SRIO协议由于高效率.低延时的特性被广泛使用.本文研究了在FPGA和DSP两种处理器之间 ...
- swoole-1.7.18 版本已发布,支持 PHP7
swoole-1.7.18 版本已发布,支持 PHP7 matyhtf 发布于: 2015年07月23日 (22评) 分享到: 收藏 +16 3月19日,深圳源创会火热报名中,go>> ...
- ROW模式的SQL无法正常同步的问题总结
转自:http://blog.chinaunix.net/uid-20639775-id-4664792.html#_Toc29623 ROW模式的SQL无法正常同步的问题总结 一. 问题起因.... ...