Linux基础教程(清华课件)-第3章存储管理.ppt
《Linux基础教程(清华课件)-第3章存储管理.ppt》由会员分享,可在线阅读,更多相关《Linux基础教程(清华课件)-第3章存储管理.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LinuxLinux基础教程(基础教程(1 1)操作系统基础操作系统基础清华大学计算机基础教育课程系列教材清华大学计算机基础教育课程系列教材 汤荷美汤荷美 董渊董渊 李莉李莉 程志锐程志锐 编著编著总总 目目 录录第第1部分部分 Linux操作系统操作系统第第1章章 操作系统概述操作系统概述第第2章章 处理机管理处理机管理第第3章章 存储管理存储管理第第4章章 调度调度第第5章章 设备设备第第6章章 文件系统文件系统第第2部分部分 操作系统命令及操作系统命令及shell编程编程第第7章章 Linux基本命令基本命令第第8章章 使用使用vi编辑文件编辑文件第第9章章 shell编程编程第第3部分
2、部分 系系 统统 管管 理理第第10章章 Linux系统软件的获取和安装系统软件的获取和安装第第11章章 账号管理账号管理第第12章章 文件系统管理文件系统管理第第13章章 TCP/IP网络管理网络管理第第14章章 备份与恢复备份与恢复第第15章章 XWindow及及Genie应用程序应用程序第第3章章 存存 储储 管管 理理3.1 虚拟存储器虚拟存储器3.2 内存管理方式内存管理方式3.3 80386段页机制段页机制3.4 Linux存储管理存储管理3.5 小结小结习题习题每一个要运行的程序,必须首先进入内存,然而,每每一个要运行的程序,必须首先进入内存,然而,每一台计算机的内存容量都是有限
3、而宝贵的。存储管一台计算机的内存容量都是有限而宝贵的。存储管理的任务是方便用户使用存储资源,在有限的物理理的任务是方便用户使用存储资源,在有限的物理空间内使更多的用户进程高效地获得和使用尽可能空间内使更多的用户进程高效地获得和使用尽可能多的存储空间,从而提高系统的整体性能。多的存储空间,从而提高系统的整体性能。现代操作系统中普遍采用基于虚拟存储器的概念来统现代操作系统中普遍采用基于虚拟存储器的概念来统一管理内存和外存,实现逻辑上的大容量存储空间。一管理内存和外存,实现逻辑上的大容量存储空间。本章首先介绍虚拟存储器的基本概念及使用虚拟存储本章首先介绍虚拟存储器的基本概念及使用虚拟存储器的依据和出
4、发点器的依据和出发点局部性原理,即在程序的运局部性原理,即在程序的运行过程中,总是集中地访问某一个程序段。根据这行过程中,总是集中地访问某一个程序段。根据这样的原理,可以把物理内存按照一定的规则划分为样的原理,可以把物理内存按照一定的规则划分为小部分,每次只装入某个进程必要的一部分内容就小部分,每次只装入某个进程必要的一部分内容就开始运行,在运行过程中,再根据需要装入新的内开始运行,在运行过程中,再根据需要装入新的内容。不同的划分规则形成不同的存储管理技术,我容。不同的划分规则形成不同的存储管理技术,我们简单介绍分区、页式、段式和段页式管理的基本们简单介绍分区、页式、段式和段页式管理的基本思想
5、。接着介绍思想。接着介绍Intel 80386硬件存储管理机制,最硬件存储管理机制,最后学习后学习Linux系统在这种硬件平台的基本存储管理系统在这种硬件平台的基本存储管理机制。机制。3.1 虚拟存储器虚拟存储器计算机系统的存储器分为内存(主存)和外存(硬盘)计算机系统的存储器分为内存(主存)和外存(硬盘)。内存的价格昂贵,速度高,存储容量有限;外存。内存的价格昂贵,速度高,存储容量有限;外存价格便宜,速度慢,存储容量很大,适合于存放大价格便宜,速度慢,存储容量很大,适合于存放大量数据。为了使更多的用户进程合理、充分地使用量数据。为了使更多的用户进程合理、充分地使用存储资源,操作系统统一管理内
6、存和外存,即把内存储资源,操作系统统一管理内存和外存,即把内存中暂时不用的内容放在硬盘上,内存中就可以腾存中暂时不用的内容放在硬盘上,内存中就可以腾出一部分空间,可以从硬盘装入其他迫切需要的内出一部分空间,可以从硬盘装入其他迫切需要的内容。因此,从效果上看,计算机系统好像为用户提容。因此,从效果上看,计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器。供了一个其存储容量比实际主存大得多的存储器。人们称这个存储器为虚拟存储器。人们称这个存储器为虚拟存储器。3.1.1 局部性原理局部性原理实验证明,在几乎所有进程的执行过程中,某一个特实验证明,在几乎所有进程的执行过程中,某一个特定的
7、时间段中,定的时间段中,CPU不是随机地访问整个程序或数不是随机地访问整个程序或数据,而是集中地访问程序或数据的某一个部分。进据,而是集中地访问程序或数据的某一个部分。进程的这种访问特性称为局部性原理。程的这种访问特性称为局部性原理。与与CPU访问该局部内的数据和代码的次数相比,局部访问该局部内的数据和代码的次数相比,局部段的变化很缓慢,正是基于这样的原理,我们才有段的变化很缓慢,正是基于这样的原理,我们才有可能实现虚拟存储管理。把进程的所有内容划分为可能实现虚拟存储管理。把进程的所有内容划分为一个个小的部分,首先只把系统所必需的部分数据一个个小的部分,首先只把系统所必需的部分数据装入内存,其
8、余部分就放在外存中,开始运行之后,装入内存,其余部分就放在外存中,开始运行之后,再把所需要的其他部分换入内存,同时把不再需要再把所需要的其他部分换入内存,同时把不再需要的部分从内存中换到硬盘或者清除掉。当然,与之的部分从内存中换到硬盘或者清除掉。当然,与之相配合,实际的内存也要划分为对应的小部分。相配合,实际的内存也要划分为对应的小部分。这种内外存之间的数据交换对用户进程来讲是透明的。这种内外存之间的数据交换对用户进程来讲是透明的。从用户进程的角度来看,系统好像提供了一个很大从用户进程的角度来看,系统好像提供了一个很大的内存一样,整个进程都能装进去而且正常运行,的内存一样,整个进程都能装进去而
9、且正常运行,这种逻辑上的大容量存储空间就可以称为虚拟存储这种逻辑上的大容量存储空间就可以称为虚拟存储器。实际上,是操作系统的存储管理起了作用,用器。实际上,是操作系统的存储管理起了作用,用多次内外存数据交换的时间换来了大容量的并不真多次内外存数据交换的时间换来了大容量的并不真正存在的(虚拟的)内存。因此,可以想象,访问正存在的(虚拟的)内存。因此,可以想象,访问虚拟存储器的速度要比访问真正内存的速度要慢。虚拟存储器的速度要比访问真正内存的速度要慢。3.1.2 虚拟地址和虚拟地址空间虚拟地址和虚拟地址空间内存中同时存在多个进程,每个进程的地址都是以内存中同时存在多个进程,每个进程的地址都是以0地
10、址作为起始地址的虚拟地址空间,这个虚地址空地址作为起始地址的虚拟地址空间,这个虚地址空间可以是线性的(一维的),也可以是多维的,这间可以是线性的(一维的),也可以是多维的,这要取决于系统采用的存储管理方式。进程中的每一要取决于系统采用的存储管理方式。进程中的每一个指令和数据在这样的虚地址空间中都有一个惟一个指令和数据在这样的虚地址空间中都有一个惟一确定的地址,即虚拟地址。确定的地址,即虚拟地址。每一个进程都具有各自独立的虚拟地址空间,而整个每一个进程都具有各自独立的虚拟地址空间,而整个系统只有一个物理地址空间。任何一个要执行的进系统只有一个物理地址空间。任何一个要执行的进程,都必须进入真正的内
11、存中,在内存的物理空间程,都必须进入真正的内存中,在内存的物理空间中存在,这就需要在虚拟地址空间和物理地址空间中存在,这就需要在虚拟地址空间和物理地址空间之间建立适当的映射关系。通过这种映射关系,逐之间建立适当的映射关系。通过这种映射关系,逐部分地把存在于虚拟地址空间中的进程要执行的部分地把存在于虚拟地址空间中的进程要执行的 部分放在物理地址空间中,而其他暂时不执行的部部分放在物理地址空间中,而其他暂时不执行的部分放在外部存储器中,内外存动态地传递数据,最分放在外部存储器中,内外存动态地传递数据,最终完成整个进程所执行的任务。这种映射,也称为终完成整个进程所执行的任务。这种映射,也称为地址变换
12、,是操作系统在硬件的配合下实现的。地址变换,是操作系统在硬件的配合下实现的。系统中的每一个进程,都有一个惟一的地址映射关系,系统中的每一个进程,都有一个惟一的地址映射关系,也就是说,虚拟地址空间到物理地址空间是一个多也就是说,虚拟地址空间到物理地址空间是一个多对一的映射关系。这样,不同的进程有不同的虚拟对一的映射关系。这样,不同的进程有不同的虚拟地址空间和映射变换,可以方便地实现进程之间的地址空间和映射变换,可以方便地实现进程之间的存储保护,避免数据和程序遭受其他进程无意或者存储保护,避免数据和程序遭受其他进程无意或者恶意的访问,同时,它们都映射到惟一的物理空间,恶意的访问,同时,它们都映射到
13、惟一的物理空间,可以通过多个进程同时映射同一个物理地址的方式可以通过多个进程同时映射同一个物理地址的方式实现数据和程序的共享。实现数据和程序的共享。3.2 内存管理方式内存管理方式虚拟存储的每一个要运行的程序,都必须首先进入内虚拟存储的每一个要运行的程序,都必须首先进入内存,但是,每一台计算机的内存容量都是有限而宝存,但是,每一台计算机的内存容量都是有限而宝贵的。管理技术,通常是基于局部性原理的,即把贵的。管理技术,通常是基于局部性原理的,即把整个进程的虚拟地址空间划分为小的部分,同时把整个进程的虚拟地址空间划分为小的部分,同时把内存也划分为小的部分,在虚拟地址空间和物理地内存也划分为小的部分
14、,在虚拟地址空间和物理地址空间之间建立特定的映射关系,进程的内容分批址空间之间建立特定的映射关系,进程的内容分批分期进入内存中特定的位置,其余部分在外存中,分期进入内存中特定的位置,其余部分在外存中,在需要的时候再传递到内存,用内存和外存的统一在需要的时候再传递到内存,用内存和外存的统一管理来实现内存扩充。管理来实现内存扩充。在虚拟存储技术的发展过程中,使用了不同的地址空在虚拟存储技术的发展过程中,使用了不同的地址空间划分方法和映射关系,这些不同的划分和映射对间划分方法和映射关系,这些不同的划分和映射对应于不同的存储管理方式,本节介绍几种能够实现应于不同的存储管理方式,本节介绍几种能够实现虚拟
15、存储的地址空间划分方式。虚拟存储的地址空间划分方式。3.2.1 页页把进程的虚拟地址空间划分为相等大小的部分,每个把进程的虚拟地址空间划分为相等大小的部分,每个部分称为页(部分称为页(page),同时把物理内存空间也按照),同时把物理内存空间也按照页的大小划分为小的部分,称为页面(页的大小划分为小的部分,称为页面(page frame,也称为页架或页框)。对于,也称为页架或页框)。对于80386体系,页和页体系,页和页面的大小都为面的大小都为4K字节。字节。在页和页面之间建立一一映射关系,连续的一维虚拟在页和页面之间建立一一映射关系,连续的一维虚拟地址空间可以分别存放在不同物理空间中,因此,地
16、址空间可以分别存放在不同物理空间中,因此,物理存储中,每个页面内部地址连续,而页面之间物理存储中,每个页面内部地址连续,而页面之间的地址可以是不连续的。页和页面之间的映射关系的地址可以是不连续的。页和页面之间的映射关系记录在一个表格中,这样的表称为页表。每一个进记录在一个表格中,这样的表称为页表。每一个进程使用惟一的页表,页表的每一项数据称为页表项,程使用惟一的页表,页表的每一项数据称为页表项,表示虚拟空间中某一页和实际物理空间中某一页面表示虚拟空间中某一页和实际物理空间中某一页面的对应关系,页表也存储在物理空间内,如图的对应关系,页表也存储在物理空间内,如图3.1所所示。示。图图3.1 页式
17、管理页式管理:页表(左)及相应的页、页面对应关页表(左)及相应的页、页面对应关系(右)示意图系(右)示意图从上图可以看出,连续的一维虚拟空间经过变换,映从上图可以看出,连续的一维虚拟空间经过变换,映射到物理空间中不连续的页面中。利用分页机制实射到物理空间中不连续的页面中。利用分页机制实现虚拟存储管理称为页式存储管理。管理过程中,现虚拟存储管理称为页式存储管理。管理过程中,内外存的数据传递是以页为单位。页式管理采用请内外存的数据传递是以页为单位。页式管理采用请求调页或者预调页技术实现内外存的统一管理,内求调页或者预调页技术实现内外存的统一管理,内存中同时只存放少量经常执行或者即将执行的页,存中同
18、时只存放少量经常执行或者即将执行的页,而其他不经常使用或暂时不会执行的页,存放在外而其他不经常使用或暂时不会执行的页,存放在外存中,等需要的时候再调入内存。存中,等需要的时候再调入内存。利用分页技术将一维连续虚拟空间划分为一个个页,利用分页技术将一维连续虚拟空间划分为一个个页,进程的虚拟地址由两个部分组成:页号进程的虚拟地址由两个部分组成:页号P和页内地和页内地址(偏移量)址(偏移量)W。这两个部分的虚拟地址经过地址。这两个部分的虚拟地址经过地址变换后,映射到物理内存的对应单元。具体的地址变换后,映射到物理内存的对应单元。具体的地址变换过程如图变换过程如图3.2所示。所示。图图3.2 页式内存
19、管理地址变换示意图页式内存管理地址变换示意图操作系统为每一个进程维护一个独立的页表,进程正操作系统为每一个进程维护一个独立的页表,进程正在执行的时候,页表信息记录在页表控制寄存器中,在执行的时候,页表信息记录在页表控制寄存器中,系统根据寄存器的值得到该进程对应页表的地址,系统根据寄存器的值得到该进程对应页表的地址,同时利用页号,就可以得到该页对应的页表项。查同时利用页号,就可以得到该页对应的页表项。查找页表,获得了页表所映射的页面号,由页面号和找页表,获得了页表所映射的页面号,由页面号和页内地址,就可以直接找到内存中的对应存储单元。页内地址,就可以直接找到内存中的对应存储单元。在整个变换过程中
20、,需要两次访问物理内存,第一次在整个变换过程中,需要两次访问物理内存,第一次是查找页表,第二次是获取数据。为了提高效率,是查找页表,第二次是获取数据。为了提高效率,硬件一般提供一个高速的联想寄存器,构成一个快硬件一般提供一个高速的联想寄存器,构成一个快表(表(translation lookaside buffer),把当前进程中),把当前进程中经常使用的页表项放在快表中,地址变换过程中,经常使用的页表项放在快表中,地址变换过程中,首先访问快表,如果该页表项存在于快表中,就首先访问快表,如果该页表项存在于快表中,就 可以直接得到对应的页面号,如果不在快表中,再可以直接得到对应的页面号,如果不在
21、快表中,再去查找页表得到页面号,快表的访问速度要比内存去查找页表得到页面号,快表的访问速度要比内存快得多,这样就可以提高内存的访问速度。快得多,这样就可以提高内存的访问速度。采用页式管理,实现了进程的程序和数据非连续存放,采用页式管理,实现了进程的程序和数据非连续存放,对内存和外存统一管理,得到更大的虚拟存储空间,对内存和外存统一管理,得到更大的虚拟存储空间,可以同时容纳和运行更多的进程,有利于系统整体可以同时容纳和运行更多的进程,有利于系统整体性能的提高。缺点是增加了系统开销,而且需要一性能的提高。缺点是增加了系统开销,而且需要一定的硬件支持。由于虚拟空间是连续的,整个进程定的硬件支持。由于
22、虚拟空间是连续的,整个进程按照一维地址顺序排列,同一个程序段在分页的过按照一维地址顺序排列,同一个程序段在分页的过程中,可能分别位于不同的页中,代码和数据的共程中,可能分别位于不同的页中,代码和数据的共享比较困难。享比较困难。3.2.2 段段段式管理的基本思想是把整个程序按照逻辑结构划分段式管理的基本思想是把整个程序按照逻辑结构划分为不同的段,每个段可以是一个函数(过程)或者为不同的段,每个段可以是一个函数(过程)或者数据,有自己的名称,段大小是不相等的,段与段数据,有自己的名称,段大小是不相等的,段与段之间不存在顺序关系。这样,进程具有一个二维的之间不存在顺序关系。这样,进程具有一个二维的虚
23、拟空间。虚拟空间。内存的管理以段为单位,把正在执行的段放在内存中,内存的管理以段为单位,把正在执行的段放在内存中,其他段暂时放在外存中,当需要执行时再传递到内其他段暂时放在外存中,当需要执行时再传递到内存中。这样,也可以实现大容量的虚拟存储器。存中。这样,也可以实现大容量的虚拟存储器。段式管理中,进程的虚拟地址是二维的,由段号和段段式管理中,进程的虚拟地址是二维的,由段号和段内偏移地址构成。与页式管理的区别在于,段号是内偏移地址构成。与页式管理的区别在于,段号是不连续的,段的大小是可变的。在二维虚拟空间与不连续的,段的大小是可变的。在二维虚拟空间与物理空间之间需要建立一一映射关系,即地址物理空
24、间之间需要建立一一映射关系,即地址 变换,这种变换关系记录在一个称为段表的表格中,变换,这种变换关系记录在一个称为段表的表格中,系统为每一个进程维护一张段表,通过查找段表,系统为每一个进程维护一张段表,通过查找段表,就可以得到虚拟地址所对应的物理单元。就可以得到虚拟地址所对应的物理单元。段式存储管理的优点在于使用了大小可变的虚拟地址段式存储管理的优点在于使用了大小可变的虚拟地址空间划分方法,按照程序的固有逻辑关系来分段,空间划分方法,按照程序的固有逻辑关系来分段,便于进程之间存储共享。但是,地址变换关系更为便于进程之间存储共享。但是,地址变换关系更为复杂,需要更多的硬件支持,实现起来更为麻烦,
25、复杂,需要更多的硬件支持,实现起来更为麻烦,同时也带来了更大的系统开销。同时也带来了更大的系统开销。3.2.3 段页段页段页式存储管理,综合利用段式和页式管理的思想,段页式存储管理,综合利用段式和页式管理的思想,把整个二维虚拟空间先分段,然后在段内分页。以把整个二维虚拟空间先分段,然后在段内分页。以页为最小的存储管理单位来实现虚拟存储。一方面页为最小的存储管理单位来实现虚拟存储。一方面可以按照程序的逻辑关系来划分进程空间的段,另可以按照程序的逻辑关系来划分进程空间的段,另一方面使用页来存放每一个段的内容,内外存交换一方面使用页来存放每一个段的内容,内外存交换以统一格式和大小的页来进行。以统一格
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 基础教程 清华 课件 存储 管理
限制150内