虚拟存储

为解决日益增长的内存需要,有以下几种解决办法:

1.覆盖:

 将程序划分成几个模块,将没有调用关系的模块(即不会同时运行的模块)分成一组,其中每组所占的内存大小为组内所需内存最大的模块的内存,然后一组内的模块可以进行替换,这样可以减小程序所占内存大小。

    

 示例:

   

 有两种分组方法:

  1)A一组,B,C一组,D,E,F一组。所需空间为20+50+40=110K

  2)A一组,B,E,F一组,C,D一组。所需空间为20+50+30=100K

  所以第二种方法比较好。

2.交换:

  把当前在内存里的且处于非运行状态的进程移到外存中,然后就空出内存中的区域给运行状态的进程使用。不考虑进程的空间大于内存总空间的情况。

    

  覆盖和交换的特点:

    

3.虚拟存储:

 1)局部性原理:

  就是说 一段时间内 访问的数据是在一个小区域内的,且一个数据的一次访问和下次访问的间隔很短,对于跳转指令,两次跳转的内存地址很可能相同,这就算是局部性原理。

  因为局部性原理的存在,使得在内存中的数据的命中率较高,从而虚拟存储能获得较好的性能,所以虚拟存储才得以实现。

    

   2)虚拟存储概念:

  把目前用不到的进程快暂移到外存。与交换不同的是,交换是把整个进程都移出内存,而虚拟存储是把进程的部分模块移出去,且在最开始加载的 时候也是把进程的部分模块加载进内存,而不是整个进程都加载进去。

    

      

3)虚拟页式存储管理:

 就是在之前的非连续内存管理中的页式存储的基础上,可以根据需要把内存中的页帧移到外存,也可以把要外存上要运行的页帧移到内存中来。

   为此在页表中加入了几个标志位:

   驻留位是说逻辑页在内存中有没有对应的页帧,根据此来确定是否发生缺页中断。

 修改位是说对应的物理页帧有没有进行过修改,这是在页面调度把此页调度到外存时用的,如果进行过修改就得把此页帧写入外存中来进行更 新,否则直接把这页从内存中移除然后修改页表中的驻留位为0就行了。

 保护位是说该页是只读啊,可读可写啊,还是可执行等。 

 访问位是说这个页面近期有没有被访问过,用于页面置换算法的。

    

    

    

    

    

    

  4)缺页中断的处理请求:

      

    

      

 

   

 

转载于:https://www.cnblogs.com/kkkkkk/p/5521258.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle 12542,TNS-12542: TNS:address already in use

研发说无法访问数据库,数据库正常运行,那就可能是监听有问题,一波简单操作搞定。[oracleentegor-1 ~]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2018 09:04:01Copyright (c) 1991, 2013, Oracle. All ri…

作为前端应当了解的Web缓存知识

缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说,浏览器充当了重要角色。除此外常见的还有各种各样的代理服务器也可以做缓存。当Web请求到达缓存时,缓存从本地副本中提取这个副本内容而不需要经过服务器。…

怎么恢复oracle的包,【学习笔记】使用dbms_backup_restore包恢复数据库

天萃荷净使用dbms_backup_restore包恢复数据库Oracle提供了一个包:DBMS_BACKUP_RESTORE包是由dbmsbkrs.sql 和 prvtbkrs.plb 这两个脚本创建的.catproc.sql 脚本运行后会调用这两个包.所以是每个数据库都有的这个包是Oracle服务器和操作系统之间IO操作的接口.由恢复管理器直接调…

No module named 'urllib2'

import urllib2 response urllib2.urlopen(http://www.baidu.com/) html response.read() print html 报错 import urllib2ImportError: No module named urllib2 import urllib.request respurllib.request.urlopen(http://www.baidu.com) htmlresp.read() print(h…

oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼题目:哪些选项输出一个负数?如果你确信以下都不对,那么请选E[sql]A DECLAREl_date2 DATE : date 2012-12-20;l_date1 DATE : l_date2 - 1;BEGINDBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, …

文件属性操作

//文件类型 :文件 file 文件夹(目录) dir两种 //1.获取文件类型 filetype("路径"); //如果是文件返回file 如果是目录返回dir//2.判断文件类型 is_dir("路径"); //判断给定的路径是不是目录is_file("路径"); //判断给定的路…

linux 提取日志字段,记一次Linux下提取MySQL日志关键字段

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?环境说明操作系统:centos7sed版本:4.2.2egrep版本:2.20paste版本:8.22提取要求一次同事说,需要提取MySQ…

linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF

《Linux 那些事儿之我是 USB》作者:华清远见第 1 章 Linux 那些事儿之我是 USB Core专业始于专注 卓识源于远见1 .引子老夫子们痛心疾首地总结说,现代青年的写照是——自负太高,反对太多,商议太久,行动太迟…

Systemd 入门教程:命令篇

http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html转载于:https://www.cnblogs.com/zengkefu/p/5527003.html

linux链接达梦数据库,linux下面 达梦数据库的JDBC链接

此次由于学习上面的事情,接触到了达梦数据库,这是第一次用,去年有个关于隐通道的课程设计,其实就已经差很少算了解了点点,相对与国外主流数据库,Dm7有个很明显的特色,那就是它的安全级别&#x…

[转]字符串和编码

编码是真的是非常头疼的一个问题。 看到一份说的非常简洁清晰的文章,分享记录一下。 廖雪峰: 字符串和编码转载于:https://www.cnblogs.com/oDoraemon/p/5533221.html

linux 4.9 内核 nptl,【linuxThread和NPTL】

有关Linux线程的问题,有几个需要澄清的:1.核心级线程与用户级线程2.核内还是核外3.linux的标准线程库是哪个?他们之间有什么区别?4.lwp与线程的关系5.LinuxThreads的缺点,NPTL作了哪些改善?6.如何确定你的g…

ccs6 linux安装教程,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼首先说下我的系统:系统: Ubuntu14.04.1 (AMD64bit)目标板:三兄弟嵌入式F28335旗舰板仿真器:三兄弟嵌入式XDS100V3仿真器CCS版本:CCS v6 linux版 32bitLinux系统必须库&…

17. 处理日期

import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar;public class Test {public static void main(String[] args) {Date date new Date(); //创建日期对象SimpleDateFormat formater new SimpleDateFormat("yyyy-MM-dd");//定…

1x1 11b g n linux,基于RN1810下的2.4 GHz IEEE 802.11b/g/n无线模块

特性• 符合IEEE 802.11b/g/n的收发器• 2.4 GHz IEEE 802.11n单流1x1• 与主机控制器的UART接口(4线,包括RTS/CTS)• 易于集成到最终产品中——最大程度地减少产品开发工作量,缩短上市时间• 使用简单的ASCII命令进行配置• 带稳压电路、晶振、RF匹配电…

!!“理都懂”为什么“然并卵”?

“理都懂”为什么“然并卵”? 脑子有话讲 收藏(176)| 阅读(17980)以前看见过别人问过这么一个问题:「为什么我们懂得很多道理,却依然过不好这一生?」 知乎上有很多这个问题的不同版本,但其实都说的是同一个事情&#…

linux终端模拟器app下载,3C终端模拟器app下载-3C终端模拟器v0.9最新版下载 - 91手游网...

应用介绍3C终端模拟器是一个终端模拟的app,风格多变,轻松好用,还有功能各异的语句等你来试验,可以在其中运行属于你自己的脚本内容,并且这个软件是不限定使用的,这也就意味着你是否有ROOT并不影响这个软件的…

c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼编了两天了,没弄出来参考程序(错):#include#define N 4int tt(double p[][2],int a,int b){int temp[N],k0;double t;for(int i0;i{if(ia||ib){continue;}tp[i][0]*(p[b][1]-p[a][1])(p[a][0]-p[b][0])*p[i][1]-p[a][0]…

c语言截断的作用,C语言-整除截断

在《The C Programming Language》提到整除截断的问题:…, as in many other languages, integer division truncates: any fractional part is discarded. Since 5 and 9 are integers. 5/9 would be truncated to zero …简单来说,就是程序中计算5/9时…

c语言控制数码管显示时间,数码管显示时间整点报时C语言实例

电路很简单就不画图了,数码管的段是p0口,2个数码管位选分别是p2.5,p2.6#includesbit cs1P2^5;sbit cs2P2^6;sbit eP2^7;sbit beepP0^4;#define uchar unsigned charuchar display_code[11]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9…