<<计算机的心智操作系统之哲学原理>>归纳2

1.什么是内存管理

内存管理就是对内存架构进行管理,内存架构如下图。


用户无需担心自己的程序存在哪里,反正输入,计算,输出的结果是一样的。让内存管理实现这种媒介透明的手段就是虚拟内存,提供给用户一个比物理主内存大的多的地址空间。


 2.随着程序在内存与磁盘之间进行交换,内存将变得越来越碎片化,假设有8个程序,



 此时总内存足够,但是因为碎片化,无法提供连续的200KB地址空间。这种散布在进程之间的闲置空间叫做外部碎片。

解决方案:碎片整理,将内存上的数据导出到硬盘上,然后再重新按顺序加载到内存上,但这种方式比较耗时间。

更好的解决方案:分页

3.分页的原理

将虚拟内存和物理内存都划分为大小相同的部分,称为页,然后按页进行分配。程序太大的话,部分放在页中,部分放在硬盘中,这样就能够运行很大的程序了


4.地址翻译的原理



 

MMU如何完成翻译?查页表

页表是一个硬件数据结构

5.多级页表采用相同的方式,内存中只存顶级页表,次级页表等存放到磁盘上,需要的时候再放到内存中。

实现多级页表需要多次访问内存,降低了效率,如何解决这个问题呢?通过硬件TLB解决,TLB是硬件,所以很快就能得出结果。

6.分页太大,一个页面没有全部用完,剩下的部分就是内部碎片。减小内部碎片的办法就是减小分页的大小,但是分页太小的话,页表记录就会增多,页表级数增加,降低效率。

7.内存抖动

多次访问的虚拟内存,都不在物理内存上,都要发出缺页中断,整个系统的效率急剧下降,这种现象就叫内存抖动。

8.分段管理系统

分页系统的缺点:很难共享;数据增长时,地址空间受到限制。如何解决这个问题?



 

这种分段式内存管理模式,在运行程序的时候,要将程序所有的段放到内存中,又面临之前的问题,于是,人们对段进行分页,出现了段页式内存管理模型。

9.文件系统就是磁盘的抽象

10.文件系统让磁盘变得容易使用,用户不需要知道数据存放的细节

11.当用户给出一个文件名的时候,文件系统就会找出这个文件在磁盘上的所有数据块。具体如何查找数据块呢?就是将文件名翻译成其数据块在磁盘上存放的地址

12.块文件

块文件是关于输入,输出设备的。具体来说,块文件是模拟输入,输出的,对于每一个输入输出设备,我们以一个文件来表示,需要与该设备发生数据交换时就以该文件来替代,这样,输入输出与文件系统就统一了。

13.临时文件

是为了保存程序的中间结果而创建的,进程结束后,临时文件就被删除了

14.给定一个文件名,操作系统如何知道文件在磁盘上的位置?

这当然需要一个数据结构来记录,这个数据结构就是文件夹。文件夹的角色就是来跟踪文件的,里面存放的是文件名到磁盘地址的映射,即相当于从虚拟地址到实际地址的翻译。

15.磁盘为什么必须要分区

必须分区的理由是对磁盘空间的使用,计算机的内存字长度有限,而磁盘地址需要存放在内存字里面。因此操作系统能够访问的地址数是一个有限的值,如果磁盘的空间很大,那么操作系统将不能够访问到多余的空间

16.磁盘的结构如下图


17.为什么一个分区只能建立一个文件系统呢?

一个磁盘有多个扇面,第0个扇面有重要意义,该扇面存放主引导记录,就是一个小程序,用来启动计算机,如果该扇面损坏,那么这个分区就不可用。主引导记录之后就是磁盘分区表,磁盘分区表给出的是磁盘所有分区及其开始地址和终结地址。其中的一个分区是主分区,操作系统就装载在这个主分区里,主分区最前面是引导记录。


18.文件的实现

文件的实现,归根结底,就是能够把文件的内容存放在合适的地方, 并能够在需要时很容易地读出这些数据。

文件的实现需要解决以下几个问题:

  • 1.给文件分配磁盘空间
  • 2.记录这些磁盘空间的位置
  • 3.将文件内容放在这些空间

19.FAT文件系统

 FAT文件系统的表太大了,FAT表的大小与物理磁盘的大小和磁盘数据块大小有关,这与内存的分页一样,太大了占据的空间就大,如何解决这个问题呢?非对称多级索引。



 

20.硬链接的实现



 

硬链接就是将文件的地址映射直接加到链接目录下

21.文件系统的挂载

挂载是将一个文件系统并入另外一个文件系统的方法,


光盘,U盘本身也是一个文件系统,当我们要访问U盘时,就要将U盘挂载到"我的电脑"
 

22.文件系统访问控制

地址保护如何实现?

有2种方式,一种是从文件角度出发,一种是从用户角度出发。

由此产生了访问控制表和能力表

23.保护域

访问控制表和能力表都有一个缺点,针对个体的文件需要设置个体的访问控制。

保护域是将访问控制权限一样的文件和对象组织成同一个域,一个进程必须处在某个域中。



 

24.文件要保持一致性需要的功能

事务,日志。但是事务和日志在复制数据的时候,源数据就暂时不能使用了,这时怎么办?

使用随影技术,随影就是保持2个版本,等到复制或者更新完毕后,再改动数据。

猜你喜欢

转载自542255641.iteye.com/blog/2310212