Chinaunix首页 | 论坛 | 博客
  • 博客访问: 364479
  • 博文数量: 36
  • 博客积分: 955
  • 博客等级: 准尉
  • 技术积分: 470
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-15 13:37
文章分类

全部博文(36)

文章存档

2012年(15)

2011年(21)

分类: LINUX

2011-10-30 12:16:44

swap交换空间,实际上换个方式可以理解为虚拟内存(但是并不是,交换空间和真正的虚拟内存还是又区别的)。在实际的物理内存不够的情况下调用的虚拟内存。

先来说下swap的工作原理:
swap的工作我们可以看成是一个静态的中转装置。假如我们的内存是512M的。当有任务来了但是由于之前任务和并发任务占有了许多的工作空间,使得这个工作的位置要大于512M的空间时,就会导致启动失败。因为没有它的位置。这个时候许多的工程师和技术牛人们就发明了这个swap空间,即虚拟内存的技术。swap空间实际是在硬盘上的。工作原理是:当我们有一个任务来到的时候,发现物理内存空间不够了,那么我们把这之前用户开启了但是经常没有使用的空间给释放出来,将他们的一些信息存入swap空间。然后给这个后来的程序先用物理内存空间,当我要用到之前的程序的时候我们再从swap空间将之前保存的内容调用回来。

换个通俗点的解释:
当我们正在运行着一个游戏,比如这个游戏已经将我们内存的512M空间全部占用了。但是现在我们忽然想到有一个word的工作没有做,于是我们最小化游戏,开始写word,但是word由于内存不够,无法开启,在linux下会产生一个缺页错误,这个时候系统发现,并开始调用swap空间,将之前游戏的一部分内容保存进swap空间,并释放这段内存空间,比如释放了10M空间,现在用户启动了word,并且完成了任务。那么当我们再开启游戏后,会经常看到屏幕是黑的,然后听到硬盘响,最后游戏恢复,其实硬盘响的那段时间就是将写进swap空间的内容从swap空间再读取到物理内存中。

以上就是swap空间的整体工作情况。

阅读(5108) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~