windows内存管理方式以及优缺点
Windows内存管理方式:页式管理,段式管理,段页式管理
页式管理
将各进程的虚拟空间(逻辑地址)划分为若干个长度相等的页,业内管理把内存空间(物理内存)按照页的大小划分为片或者页面,从而实现了离散分配,然后把页式虚拟地址和内存地址建立一一对应的页表,并用相应的硬件地址变换机构来解决离散地址变化问题,(程序加载时,可将任意一页放入内存中任意一个页框而且这些页框不必连续,从而实现了离散分配)页式管理采用请求调页或预调页技术来实现内外存存储器的统一管理,地址结构由两部分构成,页号+页内地址
其优点是没有外碎片,每个内碎片不超过页的大小。每个程序不必连续存放,这样就便于改变程序占用空间的大小(主要是随着程序运行,动态生成数据增多,所要求的地址空间相应增长),缺点是程序仍旧要全部装入内存,要有相应的硬件支持,例如地址转换机构缺页中断的产生和选择淘汰页面都要求有相应的硬件支持,这增加了机器成本,增加了系统开销,并且没有足够的内存,程序就不能执行
段式管理
程序按照内容和过程函数关系分段,每段都有自己的名字,一个用户作业或进程包括的段对应一个二维线性虚拟空间,也就是一个二维虚拟存储器,段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换为实际内存地址。优点:可以分别编写和编译,可以针对不同类型的段采用不同的保护,可以按段为单位来进行共享然后通过动态链接来进行代码共享。缺点是产生碎片
段页式管理
为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配和释放,缺段处理。另外由于一个段又被划分为若干个页,每个段必须建立一张页表一把段中的虚页变换成内存中的实际页面。显然与页式管理时相同,页表中也要有相应的缺页中断处理页面保护功能的表项,段页式管理的段式管理与页式管理方案结合而成的所以具有它们两者的优点,但反过来说由于管理软件增加,复杂性和开销也就随之增加了,另外需要的硬件以及占用的内存也有所增加,使得速度降下来。
页式和段式的区别?
相似:离散分配,地址映射机构来实现地址转换
(1)页是信息的物理单位,分页是为了实现离散分配方式,减少内存的外零头,提高内存利用率,或者说是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组意义相对完整的信息,分段的目的是为了更好地满足用户的需要。
(2)页大小固定且由系统决定,把逻辑地址划分为页号和页内地址两部分,是机器硬件实现的,段的长度不固定,却决定于用户所编写的程序,通常由编译系统在对源程序进行编译时根据信息的性质来划分
(3)页内系统地址是一维的,即单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址。分段的作业地址空间是二维的,程序员在标识一个地址时即需要给出段名,又需要给出段内地址
windows内存管理方式以及优缺点的更多相关文章
- windows 内存管理的几种方式及其优缺点
windows 内存管理方式主要分为:页式管理,段式管理,段页式管理. 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页:页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地 ...
- Windows内存管理的方式
一.内存的概念 1. 物理内存:即插在主板上的内存条.他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外). 但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导 ...
- Windows内存管理[转]
本文主要内容:1.基本概念:物理内存.虚拟内存:物理地址.虚拟地址.逻辑地址:页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一.基本概念1. 两个内存概念物理内存 ...
- 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
本文背景: 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用:根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制. 本 ...
- Windows内存管理
本博文很大程度上参考了,潘爱民先生的<Windows内核原理与实现>一书,在此对他表示感谢. 记得是在学C语言指针的时候,首次比较实际的使用内存寻址.也是在那个时候知道不能使用未初始化的指 ...
- 全面介绍Windows内存管理机制及C++内存分配实例
转自:http://blog.csdn.net/yeming81/article/details/2046193 本文基本上是windows via c/c++上的内容,笔记做得不错.. 本文背景: ...
- glusterfs 内存管理方式
glusterfs中的内存管理方式: 首先来看看glusterfs的内存管理结构吧: struct mem_pool { struct list_head list; int hot_count; i ...
- 24小时学通Linux内核之内存管理方式
昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今天将会讲诉Linux如何追踪和管理用户空间进程的可用内 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
随机推荐
- 【转】Redis安装整理(window平台和Linux平台)
原文连接:http://zheng12tian.iteye.com/blog/1471726 原文作者:zheng12tian 转载注明以上信息! window平台Redis安装 redis wind ...
- 深入了解三种针对文件(JSON、XML与INI)的配置源
深入了解三种针对文件(JSON.XML与INI)的配置源 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonCon ...
- jquery判断元素是否隐藏的多种方法
第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){ alert("被 ...
- JSON 数字排序 多字段排序
原文http://bbs.csdn.net/topics/390594744?page=1#post-395599672 //排序数组 function SortBy(field, reverse, ...
- JS Message 网页消息提醒
JS message是一个非常小的(用gzip压缩之后才3kb)JavaScript library 用于轻松在网页上展示通知提醒.除了通知,它还支持创建带风格的对话框和确认对话框.不需要任何JS框架 ...
- Word Search 解答
Question Given a 2D board and a word, find if the word exists in the grid. The word can be construct ...
- 360极速浏览器 HTML5实验室
360极速浏览器 HTML5实验室 HTML5 实验室
- Yougth的最大化(好题,二分查找 0 1分数规划)
Yougth的最大化 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价 ...
- 在Android中建立Android project没有R.java文件
最近在搞一下安卓,在新建Android工程,既然发现在gen目录下没有R.java这个文件.我当时感到很郁闷,上次建Android工程才好好的,怎么这次既然报错没有R.java.后来我用以下才解决了. ...
- 【输入输出挂】【Uva11462】Age Sort
例题17 年龄排序(Age Sort, UVa 11462)照从小到大的顺序输出. [输入格式] 输入包含多组测试数据.每组数据的第一行为整数n(0<n≤2 000 000),即居民总数:下一 ...