OS—内存管理

  今天小编我带大家了解一下什么是内存管理,在介绍内存管理之前,我们首先介绍一下什么是内存,当你看到内存的时候有没有想到外存,外存很简单,我们的电脑硬盘,软盘,小时候看动画片的光盘,小时后听歌的磁带,手机里面的内存卡,我们存储数据的U盘等,可见硬盘、光盘、里面的数据不会因为一些断电使得数据丢失。那什么是内存呢?

 一张导图,给你解释一下我眼中的内存



我们都知道内存好,内存棒,那我们需要知道它为什么好,下面让我们看看内存的管理模式吧。

1.地址的映射

  首先大家需要明确的是程序到内存,从一个地方到另一个地方,程序给内存说我要去你家,内存说行,我给你一个“指令”,你按照这个指令说的走就可以,即访问内存时指令给出的地址就是逻辑地址(相对地址),但是机器语言只认识0和1,,哪里明白什么是逻辑地址,它就将逻辑地址进行变换自己懂得的地址,即物理地址。

2.内存的分配

这里的分配方式有很多,单一连续分配区分配,固定分区分配方式、动态分区分配方式。

2.1单一连续分配:将内存分为系统区和用户区,适合单用户、单任务的操作系统。(可见这个已经落后了)

2.2固定分区分配:将内存空间分配若干大小相等的固定大小区域,每个用户区可以装入一道程序。

         优点:每个程序占用一个固定的分区,可以让多个程序进来,可以是几个程序并发运行

         缺点:当一个程序很小的时候,无法占全部占用一个固定的分区,这样内存分配效率就会下降。或者一个固定分区无法装入一个要运行的程序,程序的运行无法得到满足。

2.3动态分区分配:根据进程的实际需要进行内存的分配。

        动态分区分配算法

2.31首次适应算法

   思想:将空闲分区链以地址递增的顺序连接;在进行内存分配时,从链首开始顺序查找,直到找到一块满足进程大小的空闲区,将剩下的空闲分区仍然链在空闲分区链中。

 优点:1)使得空闲分区分布更加均匀;2)空闲分区的查找开销小;

 缺点:高址部分的大空闲分区被分小,使得大作业进入无法分配内存

 2.32循环首次适应算法

  思想:分配内存时不再每次从链首进行查找可以分配内存的空闲分区,而是从上一次分配内存的空闲分区的下一个分区开始查找,直到找到可以为该进程分配内存的空闲分区。

优点:空闲区分布均匀,查找开销小

缺点:容易是系统缺乏大的空闲区

 2.33最佳适应算法

   思想:该算法每次为作业分配内存,总是把大小与进程所请求的内存空间大小最接近的分配给进程。

 优点:避免了大材小用,提高内存的利用率。

 缺点:容易留下难以利用的空闲区

  

  稍后给大家介绍分页存储和分段存储,博客篇幅不想过长。


猜你喜欢

转载自blog.csdn.net/fjxcsdn/article/details/79966561