VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 521|回复: 6

[已解决]windows内存问题

[复制链接]
29_avatar_middle
最佳答案
0 
在线会员 发表于 2021-11-28 14:02:00 | 显示全部楼层 |阅读模式
windows上打开一个程序,从文件到虚拟内存再到物理内存是怎么一个过程?
一开始文件是直接把代码段和数据段直接拷贝到虚拟内存上吗?
虚拟内存到物理内存,是不是物理内存预留一块空间映射到虚拟内存的一块空间上,然后cpu运行物理内存的那块空间,然后再偏移映射到虚拟内存上的那块地址?
最佳答案
17_avatar_small
2021-11-28 15:36:53
程序是放到内存空间的,虚拟内存举个例子吧,你打开一个游戏程序,他要加载很多东西到内存,可内存是不够用的。那他就会加载A部份到内存,然后要用B部分时,内存不够了,操作系统就会把A部份放到虚拟内存中,然后把B部分放到内存,需要A时再交换。我说的不一定对,大概的样子是这样。你搜索下操作系统原理的东西有讲到,忘得差不多了!




上一篇:vc2013打开 .rc 文件不显示代码
下一篇:对象怎么传参?
17_avatar_middle
最佳答案
40 
在线会员 发表于 2021-11-28 15:36:53 | 显示全部楼层    本楼为最佳答案   
bestAnswer
程序是放到内存空间的,虚拟内存举个例子吧,你打开一个游戏程序,他要加载很多东西到内存,可内存是不够用的。那他就会加载A部份到内存,然后要用B部分时,内存不够了,操作系统就会把A部份放到虚拟内存中,然后把B部分放到内存,需要A时再交换。我说的不一定对,大概的样子是这样。你搜索下操作系统原理的东西有讲到,忘得差不多了!

评分

参与人数 1威望 +2 驿站币 +3 热心值 +2 收起 理由
51_avatar_small Syc + 2 + 3 + 2 赞一个!

查看全部评分

29_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-11-28 16:07:40 | 显示全部楼层
yoobaby 发表于 2021-11-28 15:36
程序是放到内存空间的,虚拟内存举个例子吧,你打开一个游戏程序,他要加载很多东西到内存,可内存是不够用 ...

也就说先拷贝一段到内存里,再把剩下的放到虚拟内存里,全部拷贝完毕再开始运行,运行到需要用到后面的时候再替换一下里面的内容。
17_avatar_middle
最佳答案
40 
在线会员 发表于 2021-11-28 18:12:49 | 显示全部楼层
a2060899948 发表于 2021-11-28 16:07
也就说先拷贝一段到内存里,再把剩下的放到虚拟内存里,全部拷贝完毕再开始运行,运行到需要用到后面的时 ...

如果你指的是你编译出来的.exe,是完全加载到内存的。会将程序的代码段、数据段都加载到内存的。如果你指的是其实关联的数据,是看程序本身怎么处理的。
其实我没太听明白具体要问的是什么。

这个链接你看下,也许有帮助。
https://www.bilibili.com/video/BV1YE411D7nH?p=35
29_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-11-28 18:59:46 | 显示全部楼层
yoobaby 发表于 2021-11-28 18:12
如果你指的是你编译出来的.exe,是完全加载到内存的。会将程序的代码段、数据段都加载到内存的。如果你指 ...

我想问的是进程的空间地址,就是那4g虚拟空间,一开始是不是文件数据弄到这里面,再跟物理空间那边关联起来,再一步一步执行
17_avatar_middle
最佳答案
40 
在线会员 发表于 2021-11-30 11:56:01 | 显示全部楼层
本帖最后由 yoobaby 于 2021-11-30 12:01 编辑
a2060899948 发表于 2021-11-28 18:59
我想问的是进程的空间地址,就是那4g虚拟空间,一开始是不是文件数据弄到这里面,再跟物理空间那边关联起 ...


用“弄到”虚拟内存,感觉也不太恰当;应该叫:映射。

虚拟内存到物理内存的映射由操作系统动态维护

使用了分页(每页4096字节)机制,4G的地址空间被分成了固定大小的页,每一页或者被映射到物理内存,或者被映射到硬盘上的交换文件(pagefile.sys)中,或者没有映射任何东西。

你搜索:虚拟内存和物理内存如何映射,能找到比较详细的说明。
29_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-12-4 13:01:29 | 显示全部楼层
yoobaby 发表于 2021-11-30 11:56
用“弄到”虚拟内存,感觉也不太恰当;应该叫:映射。

虚拟内存到物理内存的映射由操作系统动态维护 ...

OK,我大概知道了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-5-30 00:38

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表