|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 到底是怎么理解每个进程有独立都4G内存空间
我的收件箱(0)
共有
1140
人关注过本帖
标题:
到底是怎么理解每个进程有独立都4G内存空间
只看楼主
加入收藏
wobianlong
等 级:
新手上路
帖 子:58
专家分:0
注 册:2012-8-1
结帖率:
92.86%
楼主
收藏
已结贴
√
问题点数:7 回复次数:7
到底是怎么理解每个进程有独立都4G内存空间
常常听见说系统每个进程都有独立都4G内存空间
这个4G内存又分为2个2G,其中2G是所有进程共享都2G,另外2G是进程都私有空间
每个进程又有各自不同都映射表
那么我都问题是就算每个进程给2G私有空间好了,系统那么多进程 内存怎么够分呢,假设算上了虚拟内存也完全不够分啊?
每个进程给2G那么20个进程不是就要40G了,
迷惑了很久都问题了
我听到有人问为什么,就用光一样的速度从大爆炸时代赶来了,遍布于世界各地的危险
2012-09-02 14:27
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
收藏
得分:4
那个2G私有的是逻辑空间,并非有真实内存对应,而是操作系统按需要映射切换的。另外那个共享的2G其实就是Windows的类代码和管理空间,所有基于Windows运行的进程都是使用这同一份内存的。
授人以渔,不授人以鱼。
2012-09-02 14:32
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
3
楼
收藏
得分:4
以下是引用
wobianlong
在2012-9-2 14:27:37的发言:
常常听见说系统每个进程都有独立都4G内存空间
这个4G内存又分为2个2G,其中2G是所有进程共享都2G,另外2G是进程都私有空间
每个进程又有各自不同都映射表
那么我都问题是就算每个进程给2G私有空间好了,系统那么多进程 内存怎么够分呢,假设算上了虚拟内存也完全不够分啊?
每个进程给2G那么20个进程不是就要40G了,
迷惑了很久都问题了
你疑惑的可能主要是 每个进程都有4G 加起来不就很大了么
其实这里的4G就好像一个本子 本子上能记100个人的名字 这个【100】是本子的上限 但本子实际上的人的数量可不一定有这么多啊
不同进程都有4G就好像不同的老师 每人手里都拿一个本子记名字 这些本子上限都是100 但可能记的人总共只有那么100个 甚至可能更少 10个 这也无所谓啊
内存分配好像是4k一个页 貌似这就是分配的最小单元了 也就相当于一个人
2012-09-02 14:43
举报帖子
使用道具
赠送鲜花
wobianlong
等 级:
新手上路
帖 子:58
专家分:0
注 册:2012-8-1
第
4
楼
收藏
得分:0
回复 3楼 zklhp
就是说最大可以给你分配2G私有地址?但是不一定分配给你?
假设要运行2个超级占内存都软件 每个占2G会如何是好
我听到有人问为什么,就用光一样的速度从大爆炸时代赶来了,遍布于世界各地的危险
2012-09-02 15:27
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
5
楼
收藏
得分:0
以下是引用
wobianlong
在2012-9-2 15:27:25的发言:
就是说最大可以给你分配2G私有地址?但是不一定分配给你?
假设要运行2个超级占内存都软件 每个占2G会如何是好
那第二个肯定申请不到内存 一般是出错退出 如果是没设置虚拟内存或虚拟内存小
如果设置了足够大 那运行第二个的时候 第一个占用的物理内存就存到硬盘上 这时硬盘会响 让第二个程序能运行
哦 如果是一块呢 呵呵 搞不好都退出都运行不了
2012-09-02 15:44
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
6
楼
收藏
得分:0
虚拟地址再多也不会占用实际的内存。只有申请了并实际分配了的内存,才是进程实际占用的内存。
如果实际内存不够用了,申请就会失败。分配失败的错误,一般需要那个进程自己解决,比如想办法削减开支。不过有时需要申请的内存都是必要的内存,拿不着,没有其它办法,只好出错退出。
虚拟内存就是分出部分硬盘来当内存,操作系统负责在硬盘和内存之前搬运信息,进程不用操心。只是一但要用到硬盘的话,可能就会大幅减缓程序的运行速度。
2012-09-02 17:36
举报帖子
使用道具
赠送鲜花
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
7
楼
收藏
得分:0
楼主每次结题都很快 这点我很喜欢
2012-09-02 17:38
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
8
楼
收藏
得分:0
回复 7楼 zklhp
不蹲点的人永远不能多拿分……
2012-09-02 17:55
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
到底是怎么理解每个进程有独立都4G内存空间
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019510 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved