博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统-内存与外存的对换
阅读量:3903 次
发布时间:2019-05-23

本文共 886 字,大约阅读时间需要 2 分钟。

 

1.对换的引入

多道程序环境下,可能会有如下两个问题:

  1. 内存中的某些进程可能被阻塞(由于等待I/O或其他原因),但是该进程占用了大量的内存空间,甚至会发生内存中所有的进程都被阻塞的情况。
  2. 在上述情况下,还有些作业在外存上等待调入内存,但因内存空间已被那些阻塞的进程占用所以这些在外存上等待的作业无法被调入内存执行。

上诉两个问题会导致系统资源被严重浪费,且系统吞吐量(单位时间内完成的工作量)会下降。为了解决这个问题,引入了对换(swapping)。

2.概念

对换是指将内存中暂时还不能被运行的进程或者暂时用不到的程序和数据,调到外存上(在linux中,有个/swap分区专门用户对换),以便腾出足够的内存供在外存中等待的作业使用。

3.对换分类

按照进行对换的单位,可以将对换分为如下三类:

  1. 进程对换(整体对换):以进程为单位进行对换。
  2. 页面对换(部分对换):以页面为单位进行对换。
  3. 分段对换(部分对换):以分段为单位进行对换。

整体对换主要用于分时系统,而部分对换的主要目的是为了支持虚拟存储系统

4.进程对换

为了实现进程对换,要操作系统要实现的三大功能:

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

4.1.对换空间(外存的磁盘空间)的管理

具有对换功能的操作系统通常将外存分为文件区对换区

文件区用于存放文件,对换区存放从内存中换出的进程。
文件区的侧重点是外存空间利用率,为了提高文件区的外存空间利用率,文件区采用离散分配方式
对换区的侧重点是换入换出速度,为了提高对换区的换入换出速度,对换区采用连续分配方式
为了对换区中的空闲磁盘分区进行管理,可以采用类似于动态分区分配中采用的空闲分区表/链。
至于对换区中的空闲磁盘分区的分配算法也可以借鉴动态分区分配算法。

4.2进程的换出

(1)选择处于阻塞状态下并且优先级最低的进程作为换出进程

(2)启动磁盘
(3)将该进程的程序和数据传送到磁盘

4.2进程的换入

(1)操作系统定时的查看所有进程的状态

(2)找出处于就绪状态的进程
(3)找出换出时间最长的进程作为换入进程
(4)将该进程换入内存

转载地址:http://vuxen.baihongyu.com/

你可能感兴趣的文章
474. 一和零
查看>>
486. 预测赢家
查看>>
494. 目标和
查看>>
520. 检测大写字母
查看>>
数据处理和训练模型的技巧
查看>>
vb 中如何做同步 异步?
查看>>
geturl
查看>>
关于sizeof
查看>>
windows 核心编程笔记.070301
查看>>
WINDOWS核心编程笔记 070303
查看>>
终于解决了交叉表左上角,每页都显示的问题.
查看>>
windows核心编程 070309
查看>>
哈,又解决水晶报表的一个难题
查看>>
VC Ini文件处理
查看>>
一直误解sql事务的用法.
查看>>
转:利用C#实现分布式数据库查询
查看>>
转:Remoting系列(三)----对象的生命周期管理
查看>>
转:Remoting系列(二)----建立第一个入门程序
查看>>
转:Remoting系列(一)----Remoting的基本概念
查看>>
转:NET Remoting程序开发入门篇
查看>>