2013百度校招笔试真题以及解析(内存管理及其优缺点总结)

简述Windows内存管理的几种方式以及优缺点。

Windows内存管理方式如下图所示:



1、单一连续分配

所谓单一,是指内存中只驻留一道作业。为便于地址转换,把作业连续的存放在内存中,而不是离散的存放。单一连续区的管理思想主要用在早期的单道批处理系统中,采用静态分配的方式,即作业或进程一进入内存,就要等到它结束后才释放内存。

优点: 方法简单,易于实现

缺点: 仅适合于单道程序



2、分区管理

分区管理是把内存划分成若干个大小不等的区域,除操作系统占用一个区域之外,其余由多道环境下的各并发进程共享。分区管理是满足多道程序设计的一种最简单的存储管理方法。

分区管理的基本原理是给每一个内存中的进程划分一块适当大小的存储区,以连续存储各进程的程序和数据,使各进程得以并发执行。

分区管理又分为:
1、固定分区法 fixed partition
2、动态分区法 dynamic partition

固定分区法:
划分的原则由系统操作员或操作系统决定。分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。

系统对内存的管理和控制通过数据结构--分区说明表进行,该表说明各分区号、分区大小、起始地址和是否是空闲区(分区状态)。

优点:管理简单,系统开销小
缺点:不灵活、大程序可能无法装入;利用率低,浪费,内部碎片大

动态分区法:

动态分区使用的数据结构
除了与固定分区法相同的分区说明表之外,动态分区法还把内存中的可用分区单独构成可用分区表或可用分区自由链。

动态分区时的分配与回收主要解决3个问题:

1、对于请求表中的要求内存长度,从可用表或自由链中寻找合适的空闲区分配程序;
2、分配空闲区之后,更新可用表或自由链;
3、进程或作业释放内存资源时,和相邻的空闲区进行链接合并,更新可用表或自由链。

最先适应法(地址递增)

最佳适应算法

最坏适应算法



3、页式管理

将各进程的虚拟空间(逻辑地址)划分为若干个长度相等的页,业内管理把内存空间(物理内存)按照页的大小划分为片或者页面,从而实现了离散分配,然后把页式虚拟地址和内存地址建立一一对应的页表,并用相应的硬件地址变换机构来解决离散地址变化问题,(程序加载时,可将任意一页放入内存中任意一个页框而且这些页框不必连续,从而实现了离散分配)页式管理采用请求调页或预调页技术来实现内外存存储器的统一管理,地址结构由两部分构成,页号+页内地址。

优点:没有外碎片,每个内碎片不超过页的大小。每个程序不必连续存放,这样就便于改变程序占用空间的大小(主要是随着程序运行,动态生成数据增多,所要求的地址空间相应增长)。

缺点:程序仍旧要全部装入内存,要有相应的硬件支持,例如地址转换机构缺页中断的产生和选择淘汰页面都要求有相应的硬件支持,这增加了机器成本,增加了系统开销,并且没有足够的内存,程序就不能执行。



4、段式管理

程序按照内容和过程函数关系分段,每段都有自己的名字,一个用户作业或进程包括的段对应一个二维线性虚拟空间,也就是一个二维虚拟存储器,段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换为实际内存地址。

优点:
1.方便了用户编程。多个逻辑段形成作业这种组织方式,使用户可以清晰地设计和了解程序的结构。

2.便于实现程序和数据的共享与保护。段的逻辑单位性质使分段共享与保护是现实和有意义的。

3.程序的动态链接实现方便。当程序在执行过程中需要某段时,才将其调入内存链接。

4.应用中会发生数据动态增长的情况,而且这种增长是无法预知的,采用分段管理可以很好地解决这个问题。

缺点:
1.段式管理比其他几种方式要求有更多的硬件支持。这提高了机器成本。

2.由于在内存空闲区管理方式上与分区式管理相同,在碎片问题以及为了消除碎片所进行的合并等问题上较分页式管理要差。

3.允许段的动态增长也会给系统管理带来一定的难度和开销。

4.每个段的长度受内存可用区大小的限制。



5、段页式管理

为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配和释放,缺段处理。另外由于一个段又被划分为若干个页,每个段必须建立一张页表一把段中的虚页变换成内存中的实际页面。显然与页式管理时相同,页表中也要有相应的缺页中断处理页面保护功能的表项,段页式管理的段式管理与页式管理方案结合而成的所以具有它们两者的优点,但反过来说由于管理软件增加,复杂性和开销也就随之增加了,另外需要的硬件以及占用的内存也有所增加,使得速度降下来。



页式和段式的区别?

相似:离散分配,地址映射机构来实现地址转换

(1)段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。

(2)页的大小固定不变,由系统决定。段的大小是不固定的,它由其完成的功能决定。

(3)段式向用户提供的是二维地址空间,页式向用户提供的是一维地址空间,其页号和页内偏移是机器硬件的功能。

(4)由于段是信息的逻辑单位,因此便于存贮保护和信息的共享,页的保护和共享受到限制。



最后来看一道题目吧:

时间: 2024-10-31 14:23:40

2013百度校招笔试真题以及解析(内存管理及其优缺点总结)的相关文章

2013百度校招笔试真题以及解析(二)

1.一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词.提供一个单词,在字典中找到它的兄弟.描述数据结构和查询过程. 思路1:使用hash_map和链表 (1)首先定义一个key,使得兄弟单词有相同的key,不是兄弟的单词有不同的key.例如,将单词按字母从小到大重新排序后作为其key,比如bad的key为abd,good的key为dgoo. (2)使用链表将所有兄弟单词串在一起,hash_map的key为单词的key,value为链表的起始地址. (3)开始时,先遍历字

2015百度校招笔试真题以及解析(一)

1.为分析用户行为,系统常需存储用户的一些 query ,但因 query 非常多,故系统不能全存,设系统每天只存 m 个 query ,现设计一个算法,对用户请求的 query 进行随机选择 m 个,请给一个方案,使得每个 query 被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量. 解析1:思路:如果用户查询的数量小于 m ,那么直接就存起来.如果用户查询的数量大于 m ,假设为 m+i ,那么在 1-–m+i 之间随机产生一个数,如果选择的是前面 m 条查询进行存取,

2015百度校招笔试真题以及解析(二)

1.static关键字,static全局变量与普通全局变量的区别,static局部变量与普通变量的区别,static函数与普通函数的区别. 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式. 这两者在存储方式上并无不同.这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的. 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有

2014Microsoft 校招笔试真题(找工作的虾米们赶紧做题晒答案喽)

2013第四届蓝桥杯 C/C++本科A组 真题答案解析【交流帖】

今年的蓝桥杯又已经结束了,做的还是不怎么样,很多题目不难但就是算不出最终的结果,很是纠结,看来路还很长,另外昨天(2013-5-7)也受到了也受到了微软的thank you letter了,哎,都是苦逼的一天.不说了,直接看题吧,如果你对我的做法有异议或者有更好的解法,请给我留言,我会及时更新~~~~~ 1.高斯日记  大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯

2014百度研发真题及其解析-求比指定数大且最小的“不重复数”

题目: 给定一个正整数n,求比n大的第一个"不重复数"."不重复数"的定义:如果一个数,任何相邻两个数位上的数字都不相同,则称为不重复数.例如1234是不重复数,而1101不是. 思路一:暴力 数值加一,判断是否是重复数,如果是,继续加一判断,直到找到一个不是重复数的. #include <iostream> #include <cstring> #include <vector> #include <algorithm&g

京东2017校园招聘笔试真题(希尔排序)

对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为( ) A. {6,18,8,5,15,10,20,30,25,35,28} B. {10,18,8,5,15,6,20,30,25,35,28} C. {10,20,8,5,15,6,18,30,25,35,28} D. {10,20,30,5,8,6,15,18,25,28,35} 希尔排序 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法

备战2016年软考必做真题!

网络规划设计师 2012年下半年网络规划设计师下午案例分析真题+答案解析:http://down.51cto.com/data/1405756 2013年网络规划设计师上午真题及答案解析:http://down.51cto.com/data/1861654 2014年下半年网络规划师下午1案例分析真题及答案:http://down.51cto.com/data/1906669 2015 年下半年网络规划师下午案例分析真题及答案:http://down.51cto.com/data/2117462

JAVA认证历年真题解析二(附答案)

问题描述 我在网上偶然看到一个网站,这个网站里面的资料非常全,除了一些免费的资料,还有网络视频,觉得非常不错,大家有兴趣或者需要,可以去看看[中华IT学习网]www.100itxx.com内容介绍>>本试卷共有45道题,每题后面都有详细解析.例:1.Whichofthefollowingrangeofshortiscorrect?A.-27--27-1B.0--216-1C.?215--215-1D.?231--231-1翻译下面哪些是short型的取值范围.答案 C解析 短整型的数据类型的长