文件的定义

文件名-> 路径名

磁盘结构

磁臂转还是那根柱子转?

盘片被轴带动旋转,磁头读取经过的扇区的数据。

典型的磁盘结构 一块盘呢由若干个盘片组成 每个盘片呢实际上有两个面啊,两个盘面 每一个盘面呢,它的信息的读取呢,需要一个读写磁头 若干个读写磁头呢,固定在了一个磁臂上 由磁臂带动的这些磁头,沿着半径的方向 进行移动,前后移动啊。 也就是说,我们从图上可以看到,这是磁臂 有若干磁头,那我们沿着半径方向啊,前后移动 在盘面上呢,有若干个同心圆 那么,我们把它称之为磁道 那么这个磁道呢,实际上在磁道上是存放信息的 有若干个磁道 我们把磁道啊,划分成很多段,每一段呢 就称之为扇区。 所以我们的信息呢,实际上是存放在每一个扇区里头的 尽管有多个磁头 任何时刻呢,其实只有一个磁头处于活动状态 那么,磁臂带动着磁头沿着半径方向移动到某一个磁道 啊,当然啦,每一个盘面都有相应的磁道,把所有的磁道把它 全部啊,给它算起来,可以看成是一个柱面啊,一个柱面。 所以有的时候磁道和柱面 它的这个关系很密切啊,很密切 那么,磁头从这个盘面的某个磁,呃,扇区 读了啊信息出来,那么这个信息呢实际上是采用 的是一个位串的形式读出来的,就是一大串的 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

 
如果为直接索引,那么索引表有多少物理块,就等于多大。

位数

书上的计算看不懂,如 P165

操作系统的位数与 CPU 的位数是什么关系?

块的个数与位数有什么关系

下列关于文件索引结构的叙述中,哪些是正确的?有问题

采用索引结构会引入存储开销

系统为每个文件建立一张索引表

从文件控制块中可以找到索引表或索引表的地址

索引结构的优点是访问速度快,文件长度可以动态改

采用索引结构,逻辑上连续的文件存放在连续的物理块中

 

下列关于文件卷的叙述中,哪些是正确的?有问题

同一文件卷使用同一份管理数据(元数据)

UNIX的文件卷信息存放在超级数据块、空闲空间管理区

文件卷可以建立在磁盘分区上

格式化是在一个逻辑分区上建立管理数据的过程

FAT文件系统的文件卷信息仅保存在文件分配表中

不知道哪里错了

应该是 `FAT文件系统的文件卷信息仅保存在文件分配表中`

成组链接法是文件系统中可以采用的文件的物理结构。

解析:错误。成组链接法是用来管理磁盘空间的。链接法是可以采用的物理结构,变形后是

在文件系统中,文件的逻辑块与存储介质上物理块存放顺序一致的物理结构是索引结构。

解析:错误。索引结构的数组索引号对应的是逻辑上的存放顺序。数组中的值表示这个逻辑索引对应的物理块地址。

引入了当前目录的概念可以加快目录检索的速度

解析:

Windows的FAT文件系统中,文件的物理结构采用的是链接结构。

改进的链式结构: FAT链表

coursera 《现代操作系统》 -- 第九周 文件系统(1)的更多相关文章

  1. 20169207《Linux内核原理与分析》第九周作业

    第九周的实验依旧和往常的一样,主要包括两部分.一是1.阅读学习教材「Linux内核设计与实现 (Linux Kernel Development)」第教材第13,14章.二是学习MOOC「Linux内 ...

  2. 20155303 2016-2017-2 《Java程序设计》第九周学习总结

    20155303 2016-2017-2 <Java程序设计>第九周学习总结 目录 学习内容总结(Linux命令) 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...

  3. 2017-2018-1 20179205《Linux内核原理与设计》第九周作业

    <Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多 ...

  4. 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试

    目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...

  5. 20135327郭皓--Linux内核分析第九周 期中总结

    Linux内核分析第九周 期中总结 一.知识概要 1. 计算机是如何工作的 存储程序计算机工作模型:冯诺依曼体系结构 X86汇编基础 会变一个简单的C程序分析其汇编指令执行过程 2. 操作系统是如何工 ...

  6. 20155302 2016-2017-2 《Java程序设计》第九周学习总结

    20155302 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 基本数据库操作相关的JDBC接口或类是位于java.sql包中.在程序中要取得数据库联机,我 ...

  7. 20172302 《Java软件结构与数据结构》第九周学习总结

    2018年学习总结博客总目录:第一周 第二周 第三周 第四周 第五周 第六周 第七周 第八周 第九周 教材学习内容总结 第十五章 图 1.图:图(graph)是由一些点(vertex)和这些点之间的连 ...

  8. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

  9. 20155326 2016-2017-2 《Java程序设计》第九周学习总结

    20155326 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的 ...

随机推荐

  1. Android startActivities()的使用

    startActivities()和startActivity类似,也是界面跳转: Intent[] intents = new Intent[2]; intents[0] = new Intent( ...

  2. 开放平台(接口)开发-1-天气API接口大全

     前几天有个公司让准备一下第二次面试.应聘的是IOS开发实习生,可是之前一直做android,IOS刚接触了一个月,会的不是非常多,所以决定做一个实际的项目展现给面试官,余同学给了个建议:能够做一 ...

  3. Git使用笔记2

    工作必备: [更新master] git checkout master git pull git checkout zyb/FirstCommit git merge master //git re ...

  4. 转: android emulator 命令详解

    在命令行输入: emulator -help,即可显示emulator支持的所有命令. Android Emulator usage: emulator [options] [-qemu args] ...

  5. 4.const

    const 放在*号的左边为指针常量,即:该指针所指向的内存空间不允许被修改.const放在*号的右边为常量指针,即:该指针的指向不允许被修改. 简单的说就是: 假设定义一个结构体 Teacher : ...

  6. 服务器中很多的CLOSE_WAIT

    服务器中很多的CLOSE_WAIT,请教各位大虾!!!!!!!!!最近遇到一个问题,工程在LINUX服务器上面跑起来了以后,运行一段时间 就有很多的CLOSE_WAIT链接,多了之后,网站就访问不了了 ...

  7. win10虚拟环境安装scrapy

    说明:本人用的是python3.6版本,64位系统. 第一步:创建并激活虚拟环境 virtualenv scrapy scrapy\Scripts\activate 第二步:安装lxml pip in ...

  8. address-already in use 以及查看端口

    https://stackoverflow.com/questions/19071512/socket-error-errno-48-address-already-in-use

  9. CodeAreaFX

    CodeAreaFX is a text area for JavaFX with API to style ranges of text. It is intended as a base for ...

  10. Java基础05 实施接口(转载)

    经过封装,产品隐藏了内部细节,只提供给用户接口(interface). 接口是非常有用的概念,可以辅助我们的抽象思考.在现实生活中,当我们想起某个用具的时候,往往想到的是该用具的功能性接口.比如杯子, ...