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

1.分页操作系统的缺点?

1)页表太大,我们用多级页表克服了。

2)多级页表速度慢,我们用TLB翻译快表解决了绝大部分。

3)页面来回更换所带来的缺页中断的问题,我们用各类页面更换算法解决了大部分。

4)内部碎片相对于交换系统的外部碎片,还是可以忍受的。

最大的缺陷是:共享困难。

2.分段管理系统?

3.逻辑分段的优缺点?

1)每个逻辑单元可以单独占用一个虚拟地址空间,使得编写程序的空间大为增加。

2)段是按逻辑关系分的,共享变的方便。

3)不同的逻辑段使用不同的基址和极限,我们可以对不同的段采用不同的保护措施

4)段表很小,上下文切换更容易。

其缺点是外部碎片和一个段必须全部加载到内存中。

4.段页式内存管理?

时间: 2024-11-05 18:44:06

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

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

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

可执行程序 段式内存管理

在采用段式内存管理的架构中, 分为3个部分:BSS ,数据段, 代码段. BSS(block started by symbol):通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域.特点是:可读写的,在程序执行之前BSS段会自动清0.所以,未初始的全局变量在程序执行之前已经成0了. 数据段(data segment):通常是指用来存放程序中已初始化的全局变量的一块内存区域.数据段属于静态内存分配. 数据段,代码段在程序运行之前就已经确定了的. 代码段(code segment /

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

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

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

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

计算机操作系统学习笔记_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

计算机操作系统学习笔记_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

自制操作系统(九) 内存管理

2016.07.04  2016.07.05 操作系统本质是一个程序,一个大型软件工程(商业化os的情况).而程序的本质---一方面是所谓的“数据结构+算法”,另一方面则是 封装+抽象.操作系统作为一个出现,一方面是控制硬件启动开机,并且作为第一个在计算机上运行的软件,另一方面,操作系统负责管理计算机的资源(内存管理,文件管理,I\O),协助用户要运行的程序在计算机上运行,甚至是多个程序同步运行(进程管理).所以你可看到,操作系统本质上和那些b\s模式的企业管理网站本质没有任何区别,都是管理.只

【操作系统】堆和内存管理

什么是堆 光有栈对于面向过程的程序设计还远远不够,因为栈上的数据在函数返回的时候就会被释放掉,所以无法将数据传递至函数外部.而全局变量没有办法动态地产生,只能在编译的时候定义,有很多情况下缺乏表现力.在这种情况下,堆是唯一的选择. 堆是一块巨大的内存空间,常常占据着整个虚拟空间的绝大部分.在这片空间里,程序可以请求一块连续内存,并自由地使用,这块内存在程序主动放弃之前都会一直保持有效.下面是申请空间最简单的例子. int main() { char *p = (char*)malloc(1000

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

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