社区
C语言
帖子详情
怎么绕过操作系统对内存的限制
野路子Tan
2012-09-08 02:26:31
用c写一个死循环,但是内存上到一定的限度就不会上去了,被限制了 怎么去绕过这个呢
求大牛指点
...全文
322
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)
VS 各版本的 后期生成事件命令行 扩大32位
操作系统
的
内存
内存
溢出
原因是: 32位
操作系统
对
内存
的使用有
限制
,我的程序调用了第三方库开辟了相当大的
内存
,这是没法
绕过
的问题。 解决方案是,需要提升exe的使用
内存
限制
: 一,每次生成exe后,手动打开 vs安装目录下的
操作系统
原理实验(五)
内存
管理
内存
管理一、实验目的二、...
操作系统
的一项主要任务对一个进程的
内存
区域进行保护,不允许其他进程访问。例如,你的网页浏览器不应该干扰你的文本编辑器。为了实现这一目标,有不同的方法,x86上,硬件支持两种不同的
Android 共享
内存
实现跨进程大文件传输(设计思路和Demo实现
绕过
Binder传输
限制
)
最近在学习Binder的东西,发现Binder对跨进程传输文件的大小有要求,系统的Binder传输文件大小的时候
限制
在1M左右,太大的文件会导致
内存
溢出,导致跨进程传输失败,当然实现大文件传输的时候我们也可以使用广播,当别人发...
操作系统
原理实验(5):
内存
管理
为了实现这个目标,
操作系统
利用硬件功能来确保一个进程的存储区域不能被其他进程访问。根据硬件和
操作系统
的实现,存在各种方法。 比方说,一些ARMCortex-M处理器(用于嵌入式系统)具有存储器保护单元(MPU),其允许...
绕过
Windows 11安装
限制
,Rufus带给你“奇迹”,低配电脑的春天
Rufus 3.19 Beta 在开始创建可启动 Windows 安装程序时具有选项与其前身相比,Windows 11具有更严格的安装要求,包括对旧处理器的
限制
以及需要互联网连接和Microsoft帐户。幸运的是,有一些解决方法允许在不受支持的...
C语言
69,393
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章