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

简介: 简述Windows内存管理的几种方式以及优缺点。Windows内存管理方式如下图所示:1、单一连续分配所谓单一,是指内存中只驻留一道作业。

简述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)由于段是信息的逻辑单位,因此便于存贮保护和信息的共享,页的保护和共享受到限制。


最后来看一道题目吧:

这里写图片描述

这里写图片描述

相关文章
|
4月前
|
Web App开发 缓存 监控
内存溢出与内存泄漏:解析与解决方案
本文深入解析内存溢出与内存泄漏的区别及成因,结合Java代码示例展示典型问题场景,剖析静态集合滥用、资源未释放等常见原因,并提供使用分析工具、优化内存配置、分批处理数据等实用解决方案,助力提升程序稳定性与性能。
1257 1
|
4月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
348 11
|
5月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
314 2
|
6月前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。
|
存储 缓存 安全
Java内存模型深度解析:从理论到实践####
【10月更文挑战第21天】 本文深入探讨了Java内存模型(JMM)的核心概念与底层机制,通过剖析其设计原理、内存可见性问题及其解决方案,结合具体代码示例,帮助读者构建对JMM的全面理解。不同于传统的摘要概述,我们将直接以故事化手法引入,让读者在轻松的情境中领略JMM的精髓。 ####
192 6
|
7月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
749 0
|
存储 Java 编译器
Java内存模型(JMM)深度解析####
本文深入探讨了Java内存模型(JMM)的工作原理,旨在帮助开发者理解多线程环境下并发编程的挑战与解决方案。通过剖析JVM如何管理线程间的数据可见性、原子性和有序性问题,本文将揭示synchronized关键字背后的机制,并介绍volatile关键字和final关键字在保证变量同步与不可变性方面的作用。同时,文章还将讨论现代Java并发工具类如java.util.concurrent包中的核心组件,以及它们如何简化高效并发程序的设计。无论你是初学者还是有经验的开发者,本文都将为你提供宝贵的见解,助你在Java并发编程领域更进一步。 ####
|
8月前
|
存储 缓存 数据挖掘
阿里云服务器实例选购指南:经济型、通用算力型、计算型、通用型、内存型性能与适用场景解析
当我们在通过阿里云的活动页面挑选云服务器时,相同配置的云服务器通常会有多种不同的实例供我们选择,并且它们之间的价格差异较为明显。这是因为不同实例规格所采用的处理器存在差异,其底层架构也各不相同,比如常见的X86计算架构和Arm计算架构。正因如此,不同实例的云服务器在性能表现以及适用场景方面都各有特点。为了帮助大家在众多实例中做出更合适的选择,本文将针对阿里云服务器的经济型、通用算力型、计算型、通用型和内存型实例,介绍它们的性能特性以及对应的使用场景,以供大家参考和选择。
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
1064 2
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

热门文章

最新文章

推荐镜像

更多
  • DNS