面试题总结之windows/linux内存管理

本文介绍了内存管理的重要性,包括进程地址空间隔离、内存使用效率和程序运行时的重定位问题。探讨了基本内存管理方案,如单一连续区、固定分区、可变分区,以及页式、段式、段页式存储管理和虚拟内存技术。并讨论了常见的页面置换算法,如OPT、FIFO、LRU等。
摘要由CSDN通过智能技术生成

前言

请说说你对windows/linux内存管理的认识

解答

内存管理的必要性

出现在早期的计算机系统当中,程序是直接运行在物理内存中,每一个程序都能直接访问物理地址。如果这个系统只运行一个程序的话,并且这个程序所需的内存不要超过该机器的物理内存就不会出现问题。但是如今的系统都是支持多任务和多进程的,那么这时我们就要考虑如何将系统内有限的物理内存及时有效的分配给多个程序了,这就是内存管理的基本概念。顾名思义就是是记录哪些内存是正在使用的,哪些内存是空闲的;在进程需要时为其分配内存,在进程使用完后释放内存。

内存管理的例子

假如我们有三个程序,程序A,B,C,程序A运行的过程中需要10M内存,程序B运行的过程中需要100M内存,而程序C运行的过程中需要20M内存。如果系统同时需要运行程序A和B,那么早期的内存管理过程大概是这样的,将物理内存的前10M分配给A,接下来的10M-110M分配给B。这种内存管理的方法比较直接,好了,假设我们这个时候想让程序C也运行,同时假设我们系统的内存只有128M,显然按照这种方法程序C由于内存不够是不能够运行的。大家知道可以使用虚拟内存的技术,内存空间不够的时候可以将程序不需要用到的数据交换到磁盘空间上去,已达到扩展内存空间的目的。下面我们来看看这种内存管理方式存在的几个比较明显的问题。
  1.进程地址空间不能隔离
  由于程序直接访问的是物理内存,这个时候程序所使用的内存空间不是隔离的。举个例子,就像上面说的A的地址空间是0-10M这个范围内,但是如果A中有一段代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值