社区
C语言
帖子详情
怎么绕过操作系统对内存的限制
野路子Tan
2012-09-08 02:26:31
用c写一个死循环,但是内存上到一定的限度就不会上去了,被限制了 怎么去绕过这个呢
求大牛指点
...全文
321
23
打赏
收藏
怎么绕过操作系统对内存的限制
用c写一个死循环,但是内存上到一定的限度就不会上去了,被限制了 怎么去绕过这个呢 求大牛指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Meteorlet
2012-09-11
打赏
举报
回复
不知道楼主想干什么
苏客达
2012-09-11
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
引用 4 楼 的回复:
你电脑的内存条就是限制啊,1G还是2G有区别啊
程序都跑在虚拟内存,全部在物理内存,不受物理内存的限制
一米的火车道能让火车跑100万公里
[/Quote]
请问如何跑在虚拟内存,很好奇
Athenacle_
2012-09-10
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
决定字长的主要是CPU和操作系统,而且85%这个结论又是如何得来……
[/Quote]
85%大概是实测而来,但是没有意义,这跟整个OS的运行情况有关。
CPU 100% 其实很简单,死循环自增就行了
内存么,,OS会保护着的
野路子Tan
2012-09-10
打赏
举报
回复
[Quote=引用 17 楼 的回复:]
《深入解析Windows操作系统-Windows Internals》内存管理
[/Quote]
这个有电子版的吗
fengzhiquxiang1
2012-09-10
打赏
举报
回复
有点意思
赵4老师
2012-09-10
打赏
举报
回复
《深入解析Windows操作系统-Windows Internals》内存管理
CandPointer
2012-09-10
打赏
举报
回复
32位4G,这个...
win 2000 时代。 就有支持 >4GB 的32位win 2000 xxx
16位8088处理器, 可 2^20 = 1MB 内存,也就是 比尔盖茨的640KB内存
这些常识,难道没有启发你,CPU的位数, 并不决定最大的内存支持数?
VirtualAlloc
VirtualAllocEx
AllocateUserPhysicalPages
..
suixinpiaodang
2012-09-09
打赏
举报
回复
我在ubuntu上内存占用到80.5%就上不去了,,学习了。
辰岡墨竹
2012-09-08
打赏
举报
回复
那个提示的是物理内存,这个是不能突破的,因为Windows的内存管理中决定了有些东西是不能交换到页面文件的,也有一些没有分页的页面。比如内核、页表、I/O缓冲之类的。所以你想完全占用所有物理内存是不可能的,否则Windows就无法正常工作了。
另外32位的Windows,每个进程的虚拟地址空间是4GB,但是只有2GB给用户进程,另外的是给内核保留的。一般情况下,你malloc可以到1.5GB~1.75GB。因为你的可执行空间里还有一些默认dll、C库、代码段之类的别的东西。如果你只有1GB的物理内存,这个物理内存肯定是不可能全给你用的,多出去的部分必然要交换到硬盘上的交换文件里。虽然的确有些方法可以强迫征用物理内存,但是多了以后系统就不能正常工作了。
野路子Tan
2012-09-08
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
我说的是哪个内存占有率任务管理器的那个
jackyjkchen
2012-09-08
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
引用 8 楼 的回复:
能不能写一个程序,让电脑的内存占有率100%,我的系统是win7的 4g内存 我用while(1)循环,循环内容是int*p=(int *)malloc(1000);
但是到了85%内存就上不去了,我问人家说“malloc函数申请的是堆上空闲内存,堆的是由操作系统分配”,操作系统对其进行了限制,怎么突破这个限制呢
(1)自己找块主板,最好是64位的,这样对……
[/Quote]
决定字长的主要是CPU和操作系统,而且85%这个结论又是如何得来……
wqkjj
2012-09-08
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
能不能写一个程序,让电脑的内存占有率100%,我的系统是win7的 4g内存 我用while(1)循环,循环内容是int*p=(int *)malloc(1000);
但是到了85%内存就上不去了,我问人家说“malloc函数申请的是堆上空闲内存,堆的是由操作系统分配”,操作系统对其进行了限制,怎么突破这个限制呢
[/Quote]
(1)自己找块主板,最好是64位的,这样对目前而言可以提供足够大的内存地址空间。32位的到4G就撑死了。
(2)自己写操作系统,你想怎么分就怎么分。
如果做不到,还是得服从OS的安排。
但是到了85%内存就上不去了
------------------------------
不止你的进程需要内存开销,系统总得有点周转的空间。
taodm
2012-09-08
打赏
举报
回复
楼主你想干嘛?
准备在家里的电脑上ctrl——c,然后到公司的电脑上ctrl_v?
野路子Tan
2012-09-08
打赏
举报
回复
能不能写一个程序,让电脑的内存占有率100%,我的系统是win7的 4g内存 我用while(1)循环,循环内容是int*p=(int *)malloc(1000);
但是到了85%内存就上不去了,我问人家说“malloc函数申请的是堆上空闲内存,堆的是由操作系统分配”,操作系统对其进行了限制,怎么突破这个限制呢
羽飞
2012-09-08
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
你电脑的内存条就是限制啊,1G还是2G有区别啊
[/Quote]
程序都跑在虚拟内存,全部在物理内存,不受物理内存的限制
一米的火车道能让火车跑100万公里
Gloveing
2012-09-08
打赏
举报
回复
使用malloc/new
这样可以得到更多的空间,可以申请比在栈上的空间多得多
AnYidan
2012-09-08
打赏
举报
回复
电脑的优点是不会忘记,所以会有容量的问题。
人脑的缺点是会忘记,所以不会有容量的问题。
AndyZhang
2012-09-08
打赏
举报
回复
你电脑的内存条就是限制啊,1G还是2G有区别啊
野路子Tan
2012-09-08
打赏
举报
回复
那就是不可能?
自由建客
2012-09-08
打赏
举报
回复
你以为是买房,可以贷款呀!
加载更多回复(1)
华为物联网
操作系统
LiteOS
物联网
操作系统
也是一种
操作系统
,他具有
操作系统
的普遍特性(以前前面我们才先学习泛性的普遍的
操作系统
),但是物联网
操作系统
有它很多独特的特性,华为的LiteOS就是一款非常典型的优秀的物联网
操作系统
,除此之外...
VS 各版本的 后期生成事件命令行 扩大32位
操作系统
的
内存
内存
溢出
原因是: 32位
操作系统
对
内存
的使用有
限制
,我的程序调用了第三方库开辟了相当大的
内存
,这是没法
绕过
的问题。 解决方案是,需要提升exe的使用
内存
限制
: 一,每次生成exe后,手动打开 vs安装目录下的
操作系统
原理实验(五)
内存
管理
内存
管理一、实验目的二、...
操作系统
的一项主要任务对一个进程的
内存
区域进行保护,不允许其他进程访问。例如,你的网页浏览器不应该干扰你的文本编辑器。为了实现这一目标,有不同的方法,x86上,硬件支持两种不同的
Android 共享
内存
实现跨进程大文件传输(设计思路和Demo实现
绕过
Binder传输
限制
)
最近在学习Binder的东西,发现Binder对跨进程传输文件的大小有要求,系统的Binder传输文件大小的时候
限制
在1M左右,太大的文件会导致
内存
溢出,导致跨进程传输失败,当然实现大文件传输的时候我们也可以使用广播,当别人发...
操作系统
原理实验(5):
内存
管理
为了实现这个目标,
操作系统
利用硬件功能来确保一个进程的存储区域不能被其他进程访问。根据硬件和
操作系统
的实现,存在各种方法。 比方说,一些ARMCortex-M处理器(用于嵌入式系统)具有存储器保护单元(MPU),其允许...
C语言
69,374
社区成员
243,076
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章