操作系统之分页式内存管理2

1.分页的内存管理克服了交换系统的缺点:外部碎片,程序不能大于物理内存等。但付出的代价是页面更换。在交换系统下,一个程序作为一个整体加载到内存,这样,在程序运行时,无须在从磁盘上加载任何东西,而分页系统下,一个程序的所有页面不一定都在内存中,所以可能会产生缺页中断,缺页中断的服务程序负责把位于磁盘上的数据加载到物理内存中来,如果物理内存中有空闲的页面,那就直接使用空闲的页面,但如果物理内存已满,就需要挑选某个已经使用过的页面进行替换。这里就出现一个问题,如何挑选?

2.如果挑选的页面是之后很快又要被访问的页面,那样系统很快又要产生缺页中断,这样是很不合适的。页面更换的目标就是降低随后发生缺页中断的次数或者概率。因此,我们选择的页面应当是在随后相当长的时间内不会被访问的页面,最好是在也不会被访问的页面。如果可能,我们也应该选择一个没有修改过的页面,这样,替换时就无须将被替换的页面的内容写回磁盘,从而进一步加快缺页中断的响应速度。

3.页面更换的算法?

1)公平算法:随机算法,先来先出算法,第二次机会算法,时钟算法。

2)非公平算法:最优算法,NRU算法,LRU算法,工作集算法。

4.先来先出算法:更换最早进入内存的页面,实现机制是使用链表将所有在内存的页面按照进入时间的早晚连起来,然后每次置换链表头上的页面,新进来的页面则挂在链表的末端。

5.第二次机会算法:由于FIFO只考虑进入内存的时间,没有关心一个页面被访问的频率,可能替换了一个经常被访问的页面。改进的方法是,在使用FIFO更换一个页面时,需要看下该页面是否在最近被访问后,如果没有被访问,直接替换,如果最近被访问,则将该页面挂到链表末端,并将该页面进入内存的时间设置为当前时间,并将其访问位清零。

6.时钟算法:

7.NRU(Not Recently Used)最近未使用算法:选择一个在最近一段时间没有被访问过的页面进行替换,利用页面的访问和修改位。

8.LRU(Least Recently Used)最近使用最少算法:不仅考虑最近是否使用,还要考虑最近使用的频率。它的实现方法有页表式的方法,链表式的方法,矩阵式的方法,移位寄存器的方法。

9.工作集算法在实际操作系统中使用较多。

时间: 2024-10-13 23:22:23

操作系统之分页式内存管理2的相关文章

操作系统之分页式内存管理1

1.分页内存管理的核心就是:页面的翻译. 对于任何一个虚拟页面,系统要知道该页面是否在物理内存中?如果在的话,对应的物理页面是哪一个?如果不在,就会产生一个缺页中断,并将该虚页从磁盘转到内存,然后将分配给它的物理页面号返回.虚拟页面到物理页面的映射,这个翻译过程由内存管理单元MMU完成.MMU接收CPU发出的虚拟地址,将其翻译为物理地址后发给内存.MMU对虚拟地址的翻译只是对页面号的翻译,而对于偏移值则不进行任何操作,这是因为虚拟页表和物理页表大小完全一样,虚拟页面里的偏移值和物理页面里的偏移值

操作系统概念学习笔记 15 内存管理(一)

操作系统概念学习笔记 15 内存管理(一) 背景 内存是现代计算机运行的中心.内存有很大一组字或字节组成,每个字或字节都有它们自己的地址.CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入. 一个典型指令执行周期,首先从内存中读取指令.接着该指令被解码,且可能需要从内存中读取操作数.在指令对操作数执行后,其结果可能被存回到内存.内存单元只看到地址流,而并不直到这些地址是如何产生的(由指令计数器.索引.间接寻址.实地址等)或它们是什么地址(指令或数

操作系统概念学习笔记 16 内存管理(二) 段页

操作系统概念学习笔记 16 内存管理 (二) 分页(paging) 分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的.分页避免了将不同大小的内存块匹配到交换空间上(前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了.备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢). 传统上,分页支持一直是由硬件来处理的.最近的设计是通过将硬件和操作系统相配合来实现分页. 基本方法 实现分页的基本方法设计将物理内存分

操作系统之分段式内存管理1

1.分页操作系统的缺点? 1)页表太大,我们用多级页表克服了. 2)多级页表速度慢,我们用TLB翻译快表解决了绝大部分. 3)页面来回更换所带来的缺页中断的问题,我们用各类页面更换算法解决了大部分. 4)内部碎片相对于交换系统的外部碎片,还是可以忍受的. 最大的缺陷是:共享困难. 2.分段管理系统? 3.逻辑分段的优缺点? 1)每个逻辑单元可以单独占用一个虚拟地址空间,使得编写程序的空间大为增加. 2)段是按逻辑关系分的,共享变的方便. 3)不同的逻辑段使用不同的基址和极限,我们可以对不同的段采

《30天自制操作系统》笔记(07)——内存管理

<30天自制操作系统>笔记(07)--内存管理 进度回顾 上一篇中处理掉了绝大部分与CPU配置相关的东西.本篇介绍内存管理的思路和算法. 现在想想,从软件工程师的角度看,CPU也只是一个软件而已:它的功能就是加载指令.执行指令和响应中断,而响应中断也是在加载指令.执行指令.就像火车沿着一条环形铁轨前进:当中断发生时,就好像铁轨岔口处变轨了,火车就顺着另一条轨迹走了:走完之后又绕回来重新开始.决定CPU是否变轨的,就是CPU里的特定寄存器. 这是题外话,就此为止. 什么是内存管理 假设内存大小是

计算机操作系统学习笔记_8_内存管理 --虚拟内存管理

td p { margin-bottom: 0cm; }h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-botto

计算机操作系统学习笔记_7_内存管理 --内存管理基础

h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-bottom: 0.21cm; }h1.western { fon

linux 段页式内存管理

http://blog.chinaunix.net/uid-24227137-id-3723898.html 页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率从:或者说,分页是由于系统管理的需要,而不是用户的需求.短是信息的逻辑单位,它含有一组其意义相对完整的信息.分段的目的是为了能更好的满足用户的需求. 进程是如何使用内存的 对于任意一个普通的进程都会涉及到5种不同的数据段, 代码段:存放代码 数据段:存放程序静态分配的变量和全局变量 BSS:未初始化的全局

[转载]linux段页式内存管理技术

原始博客地址: http://blog.csdn.net/qq_26626709/article/details/52742470 一.概述 1.虚拟地址空间 内存是通过指针寻址的,因而CPU的字长决定了CPU所能管理的地址空间的大小,该地址空间就被称为虚拟地址空间,因此32位CPU的虚拟地址空间大小为4G,这和实际的物理内存数量无关.Linux内核将虚拟地址空间分成了两部分: 一部分是用户进程可用的,这部分地址是地址空间的低地址部分,从0到TASK_SIZE,称为用户空间 一部分是由内核保留使