博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚拟内存原理
阅读量:5947 次
发布时间:2019-06-19

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

本来最初是想知道共享库是怎么实现一个副本就行的,顺便拓展下。

虚拟内存:

当运行一个进程时,它需要的内存有可能大系统内存容量。通常一个进程会有4G独立的空间,那么n个进程就是

n * 4G的内存,很明显系统内存不够。
每个进程的4G只是虚拟内存,每次访问的时候都要转变成物理地址。
虚拟内存主要是通过请求调用和置换功能,从逻辑上对内存扩容。

页面请求/段:

一般程序在运行时,只会将当前需要运行的少数页面或段转入内存。如果访问的数据没有在内存中,便会产生

缺页中断,将需要的页调入内存。如果没有空地方,会找一个进行覆盖。
被覆盖的页如果修改过,还要将此页写会磁盘。
939683-20170304163058735-1503021330.png

可以认为虚拟空间是被映射到磁盘上面(类似共享内存的mmap),然后进行上面的页面请求置换。


共享库:

在链接的时候,物理内存可以只有一份共享库的副本,然后不同的进程只需将自己的虚拟内存映射过去。


参考资料:

linux虚拟内存和物理内存:

虚拟内存、物理内存:

转载于:https://www.cnblogs.com/Przz/p/6501786.html

你可能感兴趣的文章
JSON入门看这一篇就够了
查看>>
vue + vuex + koa2开发环境搭建及示例开发
查看>>
(二)神经网络入门之Logistic回归(分类问题)
查看>>
秒杀流量控制的执行方案
查看>>
[译][摘录]HEVC编码中的多视域和3D扩展,第四部分:3D-HEVC编码技术
查看>>
BEM命名 css模块化解决方案
查看>>
使用Tower克隆gitLab项目
查看>>
前端js压缩图片并上传
查看>>
我的Java设计模式-工厂方法模式
查看>>
线程存储简介
查看>>
WEEX系列 我的第一个WEEX DEMO
查看>>
Deploy NodeJS Docker to QiO Edge Cloud using Kubernetes
查看>>
【Hadoop学习】HDFS基本原理
查看>>
关于解决IE8以下版本获取DOM节点的方法
查看>>
vue学习笔记(二)
查看>>
Flask四之模板
查看>>
要不, 我们从右往左书写数组?
查看>>
我的面试准备过程--LeetCode(更新中)
查看>>
【145天】尚学堂高淇Java300集视频精华笔记(103-104)
查看>>
如何在 React Native 中写一个自定义模块
查看>>