内存进程对换

内存进程对换

#了解一下这项技术的背景:早期计算机的内存非常小,为了使系统能分时运行多个用户的应用程序而引入的对换技术。无非就是为了能让内存空间空余出来存放即将运行的程序及其数据罢了!下文主要说明多道程序环境下的对换技术也叫交换技术。这种技术是改善内存利用率的有效措施,它可以直接提高处理机的利用率和系统的吞吐量。
一般将内存中的程序和数据对换到系统的swap分区(这个东西就是在内存空间不足的时候在硬盘上开辟的一块空间用于存放程序及数据的,进入该分区的进程被称为挂起状态,也就是虚拟内存,一般情况下在装系统的时候将swap分区的大小分配为内存的二倍。)swap分区在每个电脑上应该都有只是一般用不到,因为我一般看到那个360加速球上的数字快到60的时候就关点程序就解决了,在服务器端突发峰值访问的时候处理不过来就有很大的作用了,还有就是平时电脑一卡的时候听见硬盘呜呜转还有排风扇使劲转可能就是把数据放到swap分区里了吧。扯远了。。。。。。
下面的内容主要和对换的类型对换空间的管理以及进程的换入与换出相关!!!!

  1. 对换类型
  2. 对换空间的管理
  3. 进程的换入与换出

一、对换类型

每一次对换程序和数据根据数量的多少将进程的对换分为两类
1.整体对换或进程对换,作为计算机中级调度,其用来解决处理机中内存紧张的问题,用一种傻笨粗的方法就是那个进程不紧要、哪个进程优先级低、缺少系统或者用户资源无法进行下去、占用空间大等因素而导致在内存中“闲着”的进程调出内存,给其他进程“腾空间”,这种“整体搬家”的方法就是进程对换(从名字上就容易知道该对换方式以进程为基本单位进行)
2.页面(分段)对换,由于系统对内存以及磁盘(硬盘)的管理方式有关,简单描述一下:早期的硬盘是没有进行抽象化的可以理解成没有给内存地址吧,无法使多个进程存在于内存中,因此管理内存的方式逐渐升级,到最后成为了以页为基本单位管理内存和外存。)即如果是以进程的一个“页面”或“分段”为单位进行的对换,则分别称之为“页面对换”或“分段对换”,又统称为“部分对换”。

二、对换空间的管理

在具有对换功能的计算机系统中,通常将磁盘空间分为文件区和对换区两部分。
1.对换空间的管理主要是对文件区的管理和对对换空间的管理
(1)文件区占用磁盘的大部分空间,并且通常的文件都是较长时间的驻留在外存上的,对它的访问量较低,因此文件区管理的主要目的是为了提高文件存储空间的利用率,然后才是提高对文件的访问速度。即为系统为文件分配存储空间的方法,既要记住存储空间的使用情况,也要对存储空间进行分配和回收,同时应具有较好的访问速度。因此,对文件区空间的管理采取离散分配的方式。
离散分配方式:离散分配方式即空闲链表法,其中包括空闲盘块链和空闲盘区链。通过一个链表记录内存中空闲的空间地址,当有程序以及数据申请空间的时候查找链表为其分配合适的空间,这种方式区别于空闲表法(即直接为其分配整块连续的空间,这种方式经常会造成管理上的难度以及大量碎片的生成,频繁的分配与回收物理页面会导致大量的、连续且小的页面块夹杂在已分配的页面中间,就会产生外部碎片。碎片:假设有一块一共有100个单位的连续空闲内存空间,范围是099。如果你从中申请一块内存,如10个单位,那么申请出来的内存块就为09区间。这时候你继续申请一块内存,比如说5个单位大,第二块得到的内存块就应该为1014区间。如果你把第一块内存块释放,然后再申请一块大于10个单位的内存块,比如说20个单位。因为刚被释放的内存块不能满足新的请求,所以只能从15开始分配出20个单位的内存块。现在整个内存空间的状态是09空闲,1014被占用,1524被占用,2599空闲。其中09就是一个内存碎片了。如果1014一直被占用,而以后申请的空间都大于10个单位,那么09就永远用不上了,变成外部碎片。)。
(2)对换空间只占用磁盘空间的小部分,用于存放从系统内存换出的进程。由于这些进程在对换区中的停留是短暂的,二对换操作的频率却较高,因此对换空间管理的主要目标提高进程换入和换出的速度,然后才是提高文件存储空间的利用率。为此,对对换区空间的管理采取连续分配的方式,较少考虑外存中的碎片问题。
2.对换区空间盘块管理中的数据结构
为了实现对对换区中的空闲盘块的管理,在系统中应配置相应的数据结构用于记录外存对换区中的空闲盘块的使用情况。其数据结构的形式于内存在动态分区方式中所采用的数据结构相似,即同样可以使用空闲分区表或空闲分区链。在空闲分区表的每个表目中都包含了:对换区的收地址及大小,分别用盘块号和盘块数表示。
(摘自计算机操作系统第四版)
3.对换空间的分配于回收
在这里插入图片描述

三、进程的换入与换出

1.进程的换出
(1)选择被换出的过程。对换过程在选择被换出的进程时,将检查所有驻留在内存中的进程。首先选择处于阻塞状态或睡眠状态的进程,当有多个这样的进程时,应当选择优先级最低的进程。在有的系统,为了防止低优先级的进程在被调入内存后很快又被换出,还需考虑进程在内存的驻留时间。如果系统中已无阻塞进程,而现在的内存空间仍不足以满足需求,便选择优先级最低的就绪进程换出。
(2)进程的换出过程。只能换出非共享的程序和数据段,而对于那些共享的程序和数据段只要进程需要它,就不能被换出。换出需要首先申请对换空间,如果申请成功,就启动磁盘,将该进程的程序和数据段传送到磁盘中。若传送过程出现错误便可收回该进程所占用的对换区空间,并对该进程的PCB和内存分配表等数据结构做相应的修改。若此时内存中还有可以换出的进程,则继续执行换出过程,知道内存中在无阻塞进程为止。
2.进程的换入
对换进程将定时执行换入操作,它首先查看PCB集合中所有进程的状态,从中找出就绪状态但已换出的进程,它将选择其中已换出到磁盘上时间最久(必须大于规定时间)的进程最为换入进程,为它申请内存。如果申请成功,可直接将进程从外存掉入内存;如果失败,则需先讲内存中的某些进程换出,腾出足够的内存空间后,再将进程掉入。
(摘自计算机操作系统第四版)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值