划重点:

相对而言比较重要的一块内容是I/O软件层级结构,在P309,后面有不少对其的贯穿

设备独立性软件整块内容见P318、设备驱动程序接口见P326

其中设备独立性软件总体内容尚可接受,主要在于第一段话会有相关,其中内容不抽象

上一章同样有一定联系的抽象内容是最后一节文件系统结构、文件系统布局

以及第五章最后一节P337底部开始的,磁盘的管理,这一部分建议一起拿起来复习

虚拟文件系统、文件系统挂载则是更为抽象的内容,还都是文件描述

上面是对第四章最后一节以及第五章较晦涩内容的一些整理,按照此顺序复习会更好些

具体看PPT的顺序个人会进行一定的梳理,为后续复习做一定的完善和铺垫

相对的,还有操作系统引导,P30,第一章的内容,磁盘引导程序

第四章文件管理:

10、11、12、16

第五章:

4、5、6


文件系统结构:

书上的内容并且和PPT内容没有多少重合,只能是走例子

如果按照书上的,那么例子应该变成

首先逻辑文件系统向上提供一些接口,然后用户去调用Read接口函数,并输入目录

逻辑文件系统通过文件名/目录去搜索相应的目录项,同时检查用户是否有权限读/写

读出相应的目录项后,把对应的记录号经过文件组织模块得到文件的物理地址

该物理地址再被送到基本文件系统中,由基本文件系统向对应的驱动程序发送命令

最终再由对应的驱动程序向设备发送命令读取块信息

PS:说个实话,这种东西就应该列出相应的流程的,结果流程也不给出,描述也一知半解

真的怀疑王道自己都没有搞清楚,强烈建议去网上找相应资料看看有没有可靠的

文件系统在内存中的状态,书上的内容不多,PPT有一定补充:


引导、文件系统布局:

先宏观上给出三个初始化的步骤,后面对其进行细化,这些内容放在不同的章节

一个磁盘,刚出厂的时候是空的,需要首先进行物理格式化、初始格式化

磁盘分区,此时的磁盘已经有了分区和MBR

在这之后进行逻辑格式化,也就形成了有了操作系统,完成了文件系统的初始化

也可以说高级格式化的本质就是操作系统的安装以及对文件系统的初始化

然后就是引导:

1、激活cpu:计算机开机,激活CPU,激活的CPU读取ROM里的boot,将内存指令寄存器设置为:0xFFFF0000,表示CPU开始从0xFFFF0000这个内存中取出一条指令执行,通常在0xFFFF0000处是一条地址转跳指令,转向BIOS的入口。

2、加电自检:CUP开启BIOS程序。首先执行BIOS自我检查,确认计算机硬件能否满足运行的基本硬件条件,这叫做”硬件自检”(Power-On Self-Test),缩写为POST。如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。 如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。

3、加载带有操作系统的硬盘:硬件自检完成后,BIOS开始读取Boot Sequence(设置外部存储设备的启动顺序,排在前面的设备就是优先转交控制权的设备),根据Boot Sequence中的顺序,按照"启动顺序",把控制权转交给排在第一位的储存设备。然后计算机将该存储设备引导扇区的内容加载到内存中。计算机本身并不知道谁是系统硬盘,谁不是系统硬盘,通过遍历的方式,寻找带有系统硬盘标识符(MBR,物理上也叫引导扇区)的系统硬盘。

4、加载主引导记录(MBR):硬盘以特定的标识符区分引导硬盘和非引导硬盘。在BIOS将所检查外部存储设备的第一个扇区载入内存后,如果发现一个扇区的最后两个字节是“55 AA”,那么这就是一个引导扇区(MBR),这个外部存储设备也就是一块可引导盘,计算机将控制权交给主引导记录。如果最后两个字节不是“55 AA”,那么BIOS就检查下一个外部存储设备。如果没有其他启动介质,则显示 ”No ROM BASIC” ,然后死机。主引导记录主要作用是,告诉计算机到硬盘的哪个主分区去找操作系统。

5、加载硬盘分区表:主引导记录在获得控制权后,需要找出哪个硬盘分区是含有操作系统的,于是开始扫描硬盘分区表,进而识别含有操作系统的硬盘分区(活动分区)。其中,MBR包含硬盘分区表,硬盘分区表以特定的标识符区分活动主分区和非活动主分区。

以上表达的意思就是硬盘分区表主要标识和寻找哪个是有操作系统的分区(活动分区),哪个不是操作系统的分区

6、加载硬盘活动分区:每个区可以安装不同的操作系统,“主引导记录”因此必须知道将控制权转交给哪个区。如果分区首字节字节为0x80,就表示该主分区是活动分区(有操作系统的分区),控制权要转交给这个分区。主引导记录在找到硬盘活动分区后,开始加载硬盘活动分区。

7、加载分区引导记录(PBR):继续遍历硬盘活动分区,计算机会读取活动分区的第一个扇区。这个扇区叫做”卷引导记录”(Volume Boot Record,缩写为VBR,也可称为分区引导记录,Partition Boot Record,缩写为PBR)。分区引导记录标识了用于引导操作系统的程序位置。

分区引导记录的主要作用是,寻找激活分区根目录下的NTLDR(XP)、bootmgr(Win7 above)、grldr(Grub)、btldr.mbr(BootLink)等可用于引导操作系统的程序(启动管理器)。

8、加载启动管理器(boot loader):分区引导记录搜索到活动分区中的启动管理器,计算机加载启动管理器,将控制权交给”启动管理器。

启动管理器才是真正“初始化操作系统”的程序

9、加载操作系统初始化程序:启动管理器寻找激活分区中的启动配置数据(如:Win7中的BCD文件、XP中的boot.ini),根据启动配置数据,在显示器上显示多操作系统选择画面,选择相应的操作系统,控制权交给操作系统初始化程序(init())。

10、加载操作系统:操作系统初始化程序获取控制权后,加载操作系统内核、硬件、服务等,之后加载桌面等信息,从而启动整个操作系统。

11、操作系统启动之后,操作系统内核、应用程序库、服务、应用程序开始工作。。。。。。。。


还是留一些引导的问题吧:

首先是自举装入程序既然放在了BIOS里面,那么自举程序放在哪?启动块是哪块?

自举程序就放在MBR里面,其中的引导程序说的就是这个自举程序

那边写的意思是,先加载整个磁盘,磁盘属于一个外设,如果没有加载入根本不知道有的

至于MBR确实是不需要找的,因为就在第一块分区,即引导扇区或引导分区上

磁盘分区表我能理解是用于寻找活动分区

活动分区即为安装了操作系统的分区,然后读取活动分区的第一块,第一块有个PBR

PBR里面有个启动管理器的寻找或者说启动程序,然后启动启动管理器程序加载操作系统

加载到内存里面一切也就结束了

P30、P294、P337

对应PPT内容:文件系统全局布局、磁盘的管理、操作系统引导

上面的细节就没必要扣太细了,总体可以概括为这一些流程:

先加载ROM中的Boot,然后加载磁盘,然后读入MBR的引导程序和磁盘分区表

根据磁盘分区表得到活跃分区,读入其PBR,根据PBR去根目录下找启动管理器程序

启动管理器程序运行后把操作系统加载到内存里面,于是就完成了

如果想要进一步补充,可以参考上面列出的操作系统页码、PPT的文件名去复习


I/O软件层级结构:

核心应该是一句话,即设备独立层是处理偏软件层面的,驱动程序层是处理偏硬件层面的

理解并记住I/O软件各个层次之间的顺序,要能够推理判断某个处理应该是在哪个层次完成的(最常考的是设备独立性软件、设备驱动程序这两层。只需理解一个特点即可:直接涉及到硬件具体细节、且与中断无关的操作肯定是在设备驱动程序层完成的;没有涉及硬件的、对各种设备都需要进行的管理工作都是在设备独立性软件层完成的)

这部分的复习建议是这样:

初步的介绍和引入部分基本都在P309的I/O软件层次,其实介绍是很充分的,但没例子

所以给人的感觉就是空中楼阁,比较抽象

所以后面其实也有单独的分类出来,设备独立性软件一整节都是细化

缓冲区管理、设备的分配和回收、假脱机技术均是设备独立性软件的主要功能

无非对设备驱动接口的阐述依旧还是在文字描述上面,依旧比较抽象

但说实话,书上的内容如果看懂了,也确实够了,无非个人还没有完全吃明白而已…

对应PPT为4、5、6三张


虚拟文件系统,直接看PPT,千万不要直接看书,会啃死的,包括挂载一块

然后要知道实现虚拟文件系统引入一系列概念:超级块、索引节点、目录项、文件对象

具体里面的内容,个人认为随缘吧,不太可能考那么细的了


SPOOLing技术解释:

慢速设备的输入暂时通过内存缓冲区,直接送到磁盘存储

当CPU需要用的时候,直接从磁盘读数据送到内存里面,就可以直接使用

相对键盘一个个字敲,CPU可以节省不少等待输入的时间,将其转换为磁盘的读取

输出时,外部慢速设备正在忙,那么先把要输出的内容放在磁盘输出井里面

管他到底原来在内存还是磁盘还是刚刚输出,一律放磁盘里面再说(虽然放内存更快一点

等到外部慢速设备有空,那么再把磁盘输出井的内容通过内存缓冲区送到外部设备

第一个策略应该是为了解放CPU,第二种策略其实更类似节省内存,防止内存一直扩大

因为外部慢速输出慢,而需要输出的数据可能越堆越多,都放在内存肯定是不合理的


对于假脱机技术的一些补充:

假脱机技术(SPOOLing技术)需要请求“磁盘设备”的设备独立性软件的服务,因此一般
来说假脱机技术是在用户层软件实现的

假脱机技术既然已经声明了是“假”,那么自然是不需要外界处理机的,只是模拟而已

要实现SPOOLing技术,必须要有多道程序技术的支持。系统会建立“输入进程”和“输出进程”

其一部分优点的解释见答案页P333的26题答案

输入缓冲区、输出缓冲区在内存,输入井、输出井在磁盘中

假脱机技术需要硬件、软件的共同支撑,将独占式设备改造为“共享式”设备

对输入、输出缓冲区的控制由输入进程、输出进程控制,对作业的方式由井管理程序处理

其中井管理程序的流程还是值得好好看的,中间“用户请求打印表”中存的不是打印数据

而是打印数据所存放的磁盘块,更类似于一个FCB清单

该内容对应课后题:18-30题,相对而言的题量是比较多的


缓冲区、缓冲池:

磁盘高速缓冲是放在内存里面的

先明确,缓冲区是对应单个进程的,缓冲池才是对应多进程共同服务的

不论是双缓冲还是多缓冲都只是为了协调CPU和慢速设备之间的差异而提出来的

单、双缓冲的计算均参考书上即可,课后习题中的统考真题要重视

对引入缓冲区的思想需要重点理解透彻

对应课后习题:

2、3、4、5、6、7、9、10、11、12、13


设备分配:

四个表的内容还是要注意一下的,虽然应该不至于需要全部背下来

其中最重要的应该是分配步骤,注意不要搞反,这个和一般的直觉是相反的

在设备分配步骤下面还有一种改进版的,不要漏看


磁盘调度算法:

其实是要对书上的传输时间进行补充,书上的传输时间实际上只谈了一个磁道状态下的

而课后习题的平均访问实际上谈到了多个磁道读写下的,这个就…所以会有一些区别在

四个磁盘调度算法就不说了,比较简单

主要说下减少延迟时间的方法那边,实际上是在减少旋转延迟,这些方法都在达成这效果

就是尽可能少转几圈

改善磁盘I/O那边,延迟写,是延迟写入磁盘的意思,多在内存里面存一会

磁盘阵列就可以支持文件在多个盘面上存放,具体可以参考计组P109的一系列内容

硬盘那边,还是要注意,相比于传统机械磁盘的优点

静态、动态至少要知道各自对应的策略以及方法,要求知道

对应习题:23、24、25,复习而言要从知识点看,一个个点去复习


对于磁盘地址的一些勘误:

习题里面说的实际上是没有问题的,柱面和磁道数并不冲突,一个柱面由多个磁道构成

这个构成实际上是上下维度的构成,不是平面维度的构成,所以一开始会有些迷惑

所以这里说的每个柱面的磁道数,其实也可以看作是,有多少个盘面,多少个磁头来理解

至于文件的存储方式上面,可以是一个盘面存储,也可以是一个柱面存储,都是可以的

后面的计算题里面,有一题较为困惑在,文件也是从零开始存储的…