X

曜彤.手记

随记,关于互联网技术、产品与创业

吉 ICP 备10004938号

《现代操作系统(第四版)》读书笔记(第 4-6 章)


书接上文,第 3-6 章的笔记。

第 4 章 - 文件系统

  1. (Page:147)文件是对磁盘的建模。可以把每个文件看成一个地址空间
  2. (Page:149)文件结构

  1. (Page:149)文件类型
  1. (Page:151)文件类型
  1. (Page:151)文件属性
属性 含义
保护 谁可以访问文件,以什么方式存取文件
口令 访问文件需要的口令
创建者 创建文件者的 ID
所有者 当前所有者
只读标志 0 表示读/写;1 表示只读
隐藏标志 0 表示正常;1 表示不在列表中显式
系统标志 0 表示普通文件;1 表示系统文件
存档标志 0 表示已经备份;1 表示需要备份
ASCII / 二进制标志 0 表示 ASCII 文件;1 表示二进制文件
随机访问标志 0 表示只允许顺序访问;1 表示随机访问
临时标志 0 表示正常;1 表示进程退出时删除文件
加锁标志 0 表示未加锁;非零表示加锁
记录长度 一个记录中的字节数
键的位置 每个记录中键的偏移量
键的长度 键字段的字节数
创建时间 创建文件的日期和时间
最后一次存取时间 上一次访问文件的日期和时间
最后一次修改时间 上一次修改文件的日期和时间
当前大小 文件的字节数
最大长度 文件可能增长到的字节数
  1. (Page:152)文件操作
  1. (Page:154)目录系统:

- 一级目录系统

在一个“跟目录”中包含所有的文件。常用于简单的嵌入式装置,诸如电话、数码相机以及一些便携式音乐播放器等。

- 层次目录系统

使用基于“目录树”的层次结构。

  1. (Page:156)目录操作

- 硬链接 VS 软连接

  1. (Page:157)文件系统的实现:

- 文件系统布局

多数磁盘划分为一个或多个分区,每个分区有独立的文件系统。磁盘的 0 号扇区为“主引导记录(MBR)”,用于引导计算机。MBR 的结尾为“分区表”,给出了每个分区的起始和结束地址。该表中的一个分区被标记为“活动分区”,它的第一个块称为“引导块”。

- 操作系统启动流程

- 磁盘分区布局

  1. (Page:157)文件的实现:如何记录各个文件分别用到哪些磁盘块?

- 连续分配

把每个文件作为一连串连续数据块存储在磁盘上。数据以“块”为单位进行存放,文件最后部分若不满 1 块,新文件将从后续的新块继续存储。

实现简单,读操作性能好。但会产生碎片。

- 链表分配

为每个文件构造磁盘块链表,每个块的第一个字作为指向下一块的指针,块的其他部分存放数据。

随机访问相对缓慢,且不利于对齐(磁盘块的大小不一)。

- 使用内存中的表进行链表分配(MS-DOS):

取出每个磁盘块的指针字,单独放到内存中的一张“文件分配表(FAT)”中进行维护。整个磁盘块都可以存放数据。

FAT 表的体积可能很大,不适用于大型磁盘。

- i 节点

为每个文件赋予一个称为 “i 节点” 的数据结构,其中列出了文件属性和文件块的磁盘地址。“i 节点” 仅在文件被 open 打开时才会放到内存中。

  1. (Page:160)目录的实现

打开文件时,操作系统利用用户给出的路径名查找相应目录项。而目录系统的主要功能是:把 ASCII 文件名映射成定位文件数据所需的信息

- 文件名定长目录项

- 文件名可变长目录项

  1. (Page:162)共享文件:硬链接与符号链接。
  1. (Page:163)日志文件系统(NTFS \ ext3 \ ReiserFS):保存一个用于记录系统下一步将要做什么的日志。当系统在完成它们即将完成的任务前崩溃时,重新启动后,可以通过查看日志,获取崩溃前计划完成的任务,并完成它们。
  2. (Page:165)虚拟文件系统:

  1. (Page:167)文件系统管理和优化:

- 磁盘空间管理

几乎所有的文件系统都把文件分割成固定大小的块来存储,各块之间不一定相邻

(其他管理和优化内容略)

第 5 章 - 输入/输出

  1. (Page:189)I/O 设备:

- 概念上的两类设备

- 设备控制器

I/O 设备一般由机械部件电子部件两部分组成。前者为设备本体,后者为设备控制器,或适配器。控制器的任务是把串行的位流转换成字节块,并进行必要的错误校正工作。

- 内存映射 I/O

每个控制器有几个寄存器(具有单独的 I/O 端口)可以与 CPU 进行通信。通过写入寄存器,操作系统可以命令设备发送数据、接受数据等。通过读寄存器,操作系统可以了解设备状态,是否准备好接收一个新命令等。除寄存器外,许多设备还有一个操作系统可以读写的“数据缓冲区”(可被映射到内存地址空间),可用于获取设备传递的信息。内存映射 I/O 的优点:

- 直接存储器存取(DMA):

CPU 可以从 I/O 控制器每次请求一个字节的数据,但会浪费 CPU 的时间,DMA 可以解决此问题。只有硬件具有 DMA 控制器时操作系统才能使用 DMA。它可以独立于 CPU 而访问系统总线。

- 中断

中断发生时,中断控制器会在地址线上放置一个数字表明哪个设备需要关注,并置起一个中断 CPU 的信号。该数字被用做指向“中断向量表”的索引,以便执行相应的中断服务处理程序。一般情况下,陷阱(trap)和中断使用相同的机制,且常常共享相同的中断向量。

  1. (Page:196)I/O 的实现方式:
  1. (Page:199)I/O 软件层次:

- 中断处理程序:(一个大致流程)

- 设备驱动程序

一般由设备制造商提供,用于通过某些设备特定的代码来对其进行控制。

(其他略)

第 6 章 - 死锁

  1. (Page:249)“死锁”定义:如果一个进程集合中的每个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的。
  2. (Page:249)资源死锁:

- 发生条件

- 处理方法

  1. (Page:251)处理细节:

- 忽略问题

即“鸵鸟算法”,假装根本没有问题发生(忽略潜在错误的发生)。

- 死锁检查与恢复

构建进程资源分配图对应的“有向图”,然后判断该图上是否有“环路”。若有,则处在环路上的所有进程均为死锁进程。

- 死锁避免

CPU 在调度时需要“绕过”上面资源轨迹图中的红框以及阴影部分。可以借助“银行家算法”解决。

- 死锁预防



这是文章底线,下面是评论
  暂无评论,欢迎勾搭 :)