《操作系统》第4章 存储器管理-教学课件(非AI生成).ppt
*为了解决大作业、大量作业装入内存的需要,提出了虚拟存储器的概念。即在基本分页和基本分段存储分配的基础上,允许将作业的一部分装入内存便可运行,在作业运行所需的部分不在内存时,通过请求调入功能临时装入。当内存已满,没有空闲存储区用于新进入的程序时,可以采用置换功能,将暂不使用的部分置换出去。用这种方法将物理上存储容量固定的内存进行逻辑扩充,满足大作业和大量作业的需要。并且成本接近外存,速度接近内存。虚拟存储器有两种实现方式:请求分页方式和请求分段方式。上节课我们学习了这两种分配方式。分析了段表和页表的结构、地址转换过程与基本分页、基本分段的不同,分析了其中遇到的新问题以及解决办法。主要有:判断是否缺页,中断处理的过程、以及页面置换时是否需要将页面写回硬盘等问题。还有一个问题我们留到了这一节课,那就是选择置换页面的算法,*页面置换算法是请求分页方式中用来选择换出页面的算法。页面置换算法的好坏对虚拟存储器性能影响非常大,是能否实现“速度接近内存的关键”为了实现“速度接近内存”,应该要求页面置换算法达到什么样的目标呢?——较低的置换频率(缺页率)*好的,我们本节课学习4中页面置换算法:在学习具体置换算法之前,我们有一个约定:假设为了保证所有进程的需要,系统为每个进程只分配少量的物理块数,每个进程发生缺页时,只能在自己拥有的物理块范围内进行置换。*首先学习最佳置换算法。顾名思义,最佳就是最好的,也就是能够得到最低缺页率的算法。如何才能够得到最低缺页率呢?就是保证置换次数最少。请你考虑一下,如果你今天上3门课,上午上物理、数学课,下午上英语课,早上出门之前你需要整理书包,你的书包容量是有限的,那么你会把哪些物品从书包里拿走呢?不会用到的、下午才用的、第二节课才用的*唯物辩证法认为:任何事物都是矛盾的对立统一。我们现在看到的是解决页面置换的两个算法的利弊。其实生活中的每件事情也一样具有两面性,看问题不能钻牛角尖,要全面,要抓住主要矛盾。对比最佳和先进先出两种算法,虽然最佳存在实现上的致命缺点,但是却可以为其他算法提供一个衡量标准。先进先出性能差,但是具有实现上的可行性。那么此时的主要矛盾是什么呢?能不能提出既能够实现,性能又较好的算法呢?可以不向先进先出那么简单,也可以不像最佳那么好的性能,做到实现和性能之间的平衡。矛盾双方即统一又斗争,推动事物发展。科学技术也不例外,必然有其发展的更高阶段。*还考虑之前的例子,如果你不知道今天要用什么,你会怎样整理你的书包?大家有没有这样的经验:生活中一些东西闲置越久,把它拿来再用的可能性就越小。早上刚刚用过的东西中午再用的可能性很大。这与我们之前学习过的一个原理有相似之处,是哪个原理?——程序局部性原理。指令或数据被访问后,不久可能会被再次访问。程序在一段时间内访问的地址,可能集中在一定的范围之内。*科学技术是源自于生活的,正如牛顿受苹果落地的启发发现了万有引力一样,很多发明创造都是从生活中汲取了灵感。对于刚刚看到的连续存储导致的问题,是否也能够从我们身边找到解决方法呢?“一句古词或者名言”,请大家思考。例如:在初秋凉爽的星期天,您约上三两好友,一同去休闲购物,很有可能您会选择公交车或者地铁作为出行工具。您和朋友们亲密无间、手拉手、肩并肩地上了地铁,可是发现车厢里空闲的座位已经是东一个、西一个,您和您的朋友会怎么办呢?“化整为零,各奔东西”那么,如果程序可以化整为零的话,问题是不是就解决了呢?这就是基本分页存储管理的思想。*这部分内容以下几个知识点:第一,理解分页思想,以及页和块的基本概念;第二,理解页表的结构及其作用;第三,理解并掌握分页系统中的逻辑地址结构;第四,掌握由逻辑地址向物理地址的转换方法。本节课的内容是前3个知识点。*首先介绍页和块,在分页存储管理中,内存空间被划分成若干大小相等的存储区,称为块或者页框,各个块从0开始顺序编号。程序也被划分成若干与块大小相等的部分,称为页或者页面,各个页也从0开始顺序编号;这里是一个分了块的物理内存,其中网格表示的块是已经被某些程序占用的,橘黄色表示的块是空闲的。这里是一个划分了页的程序,共有两页,分别是第0页和第1页。在为程序分配内存时,以块为单位,将程序的页分别装入到一些可能不相邻的块中。注意两个特点:第一,页和块大小相同,我们说大脚穿小鞋不行,小脚穿大鞋也不合适;第二,因为每个程序的大小是不固定的,最后一页很可能装不满一块,但是也要占据一个整个的块。就像胖人瘦人都要占一个座位一样。提醒大家:程序装入内存,目的是要运行。这种情况下,一个程序如何能够在内存中找到分散存放的各个页呢?是的,我们需要一张登记表。*这张登记表称为页面映像表,或者页表。它实际