操作系统基础知识【二】-虚拟内存

操作系统基础知识【一】 - CSDN博客

操作系统基础知识【二】-虚拟内存 - CSDN博客

操作系统基础知识【三】-进程 - CSDN博客

操作系统基础知识【四】-线程 - CSDN博客

操作系统基础知识【五】-死锁 - CSDN博客

操作系统基础知识【六】-文件系统 - CSDN博客


虚拟内存起因

 程序大,程序多,超过了内存——>   大,快,便宜的内存需求

覆盖技术

 缺点:费时费力,以时间换空间(换入换出)

交换技术

目标:多道程序在内存中时,让正在运行的程序或需要运行的程序获得更多的内存资源。

方法:

  • 将暂时不能运行的程序送到外存,从而获得空闲内存空间。
  • 操作系统把一个进程的整个地址空间的内容保存到外存中(换出swap out),而将外存中的某个进程的地址空间读入到内存中(换入swap in)。换入换出内容的大小为整个程序的地址空间。

问题 :

  • 何时交换?内存不够时或有不够的危险时
  • 交换区的大小:足够大以拷贝内存镜像,并能对其进行直接读取
  • 程序换入时的重定位:换出换入后位置是否一样?采用动态地址映射

缺点:换入换出,增加开销

覆盖与交换的比较

  • 覆盖只能发生在那些相互之问没有调用关系的程序模块之间,因此程序员必须给出程序内的各个模块之间的逻辑覆盖盖结构。
  • 交换技术是以在内存中的程序大小为单位来进行的,它不需要给出各个校块之间的逻逻辑盖结构。换言之,交换发生在内存内存中程序与成操作系统之间,而覆盖则发生在运行程序的内部。

 虚存技术-目标

  • 象覆盖技术那样,不是把程序的所有内容邡放在内存中,因而能够运行比当前的今闲内存空间还要人的程序。由操作系统自动来完成,无需程序员操作。
  • 象交换技术那样,能够实现进杓在内存与外存之间的交换,因而获得更多的空闲内存空问。只对程序的部分内容,在内存和外存之间进行交换。
     

程序局部性原理

  虚存技术-基本特征

  • 大的用户空间:通过把物理内存与外存相结合,提供给用户的虚拟内存空间通常大于实际的物理内存,即实现了这

网者的分离。如32位的虚拟地址理论上可以访问4GB,而可能计算机上仅有256M的物理内存,但硬盘容量大T4GB。

  • 部分交换:与交换技术相比较,虛拟存储的凋入和调出是对部分虚拟地址空间进行的;
  • 不连续性:物理内存分配的不连续,虚拟地址空间使用的不连续。 

 页面置换算法

功能:当缺页中断发生,需要调入新的页面而内存已满吋,选择内存当中哪个物理页面被置换。

目标:尽可能地减少页面的换逬换出次数(即缺页中断的次数)。具体来说,把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理指导下依据过去的统计数据来逬行预测;

页面锁定(framelocking):用于描述必须常驻内存的操作系统的关键部分或吋间关键(Umccritical)的应用进程。

实现的方法是:在页表中添加锁定标志位(lockbit)。

种类:

  1. 局部:最优页面置换,先进先出,最近最久,时钟页面置换,二次机会,最不常有算法
  2. 全局:工作机,缺页率

猜你喜欢

转载自blog.csdn.net/qq_19446965/article/details/81395828