交换空间概念

交换空间基本概述

在以前,当物理内存的数量达到来了临界低点,通常会选择最不活跃的进程从内存移到交换空间以释放内存空间,但是现在的操作系统是将交换和虚拟内存技术以及交换页给结合在一起了,这样就不必对整个进程进行交换

虚拟内存是使用磁盘空间作为内存的扩充,由于磁盘访问比内存访问要慢很多,所以我们在使用交换空间的时候就会严重的影响系统性能,交换空间的设计和实现的主要目的就是为虚拟内存提供最佳吞吐量

不同的操作系统对交换空间的使用方式是不同的,如果单单是实现交换的系统可以将交换空间用于保存整个进程映像,包括代码段和数据段。而对于换页系统来说可能只用交换空间用于存储换出的内存的页

系统所需要的交换空间的量会受到以下几个因素的影响

  • 1、物理内存的多少
  • 2、所支持的虚拟内存大小
  • 3、内存使用方式

交换空间的大小可以是数MB到数GB

对于交换空间的量的设计还是很重要的,因为如果系统使用完了交换空间,那么可能会对中断进程或整个系统死机,所以我们一般来说都可以将交换空间的量设置的多一点

Solaris建议设置交换空间数量与虚拟内存超出可分页物理内存的数量相等,在之前,Linux建议设置交换空间的数量是虚拟内存数量的两倍,但是现在的Linux系统就使用比较少的交换空间,现在关于是否使用交换空间,Linux内部有很多争论

交换空间位置

交换空间有两个位置,交换空间在普通文件系统上加以创建,或者是在一个独立的磁盘分区上进行创建

如果交换空间仅仅是文件系统内的一个简单的大文件那么普通文件系统程序就可以去创建交换空间,命名和分配空间,这样的实现方式虽然简单,但是使用起来效率是很低的,遍历目录结构和磁盘分配数据结构需要时间和过多的磁盘访问,如果有了外部碎片,可能就会导致我们在读写进程的镜像的时候进行强制性的多次寻道,这样就会增加交换的时间,通过将该块位置信息缓存在物理内存当中,以及采用特殊的工具为交换文件分配物理上连续块等技术可以改善性能,不过遍历文件系统数据结构的开销还是在的

还有一种就是交换空间创建在独立的生磁盘分区上,这里不需要文件系统和目录结构,只需要一个独立交换空间存储管理器来分配和释放块。因为交换空间比文件系统访问更加频繁。内部碎片可能会增加,但还是可以接受的,因为交换空间内的数据的存储的时间通常要比文件系统的文件存储时间短很多,交换空间会在启动的时候会初始化,所以任何碎片存在的时间都很短。使用这种方法在磁盘分区的时候会创建一定量的交换空间,增加更多交换空间可能就需要重新进行磁盘分区,或者在其他的地方增加另外交换空间

在Linux当中交换空间仅用于匿名内存或几个进程的共享内存区。匿名内存就是指那些在文件系统里没有相对应的”储备文件“的那些内存,堆和栈空间的内存都属于匿名内存。Linux允许建立一个或多个交换区,交换区可以是普通文件系统的交换文件或原始交换分区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值