在计算机的物理内存真实的内存(物理内存)中内存到底有没有堆栈这种东西??详情如下?

操作系统的堆栈在哪里?解决办法 - 汇编语言当前位置:& &&&操作系统的堆栈在哪里?解决办法操作系统的堆栈在哪里?解决办法&&网友分享于:&&浏览:110次操作系统的堆栈在哪里?看了很多操作系统和机器的书。里面有许多函数调用和中断。我不是很明白。要是有函数一定要有堆栈空间。所以问问各位大侠。操作系统核心堆栈在哪里。怎么分配的。------解决方案--------------------操作系统在生成一个线程时会从它管理的内存池中分配一块内存作为该线程的堆栈.所以,对操作系统来说分配堆栈和你在应用程序中申请内存是一样的,都是从内存管理模块申请一块空闲内存.
至于汇编中没有定义堆栈,但因为线程有默认的堆栈大小,所以实际上还是有堆栈的.不过默认的堆栈较小,对于复杂调用,如递归调用,很容易导致堆栈益出
------解决方案--------------------操作系统的堆栈由操作系统自己指定,通常是一个或多个起始地址(最高地址)确定,大小确定的连续内存空间。
------解决方案--------------------大侠,核心本来就是一个进程或线程,在硬件驱动和进程管理、存储管理等初始化后开始启动,没他你怎么用得了系统啊。
------解决方案--------------------1、系统初始化的堆栈理论上可以是任何有效的物理内存地址,在初始化进行到一定时候这个堆栈就被抛弃而切换到了新的堆栈。
2、系统核心的堆栈我不太明白是什么意思。是否是指核心态内核代码执行时使用的堆栈?
3、用户程序的堆栈准确地说是用户进程或线程的堆栈,在创建该进程/线程时由操作系统分配或指定。
4、根据操作系统的不同,进程进行系统调用时可以使用该进程的堆栈,或是内核的堆栈,或两者都有使用。
不同的操作系统这些堆栈的分配和使用有很大的不同,撇开操作系统的类型单纯讨论这些堆栈是没有意义的。
------解决方案--------------------堆栈在哪里就不知道了,反正windows的代码进入ring0后,堆栈就只有8k(好像是这个数),一不小心就用完了
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有怎么查看电脑实际物理内存?_电脑网络问题_土巴兔问吧
怎么查看电脑实际物理内存?
输入手机号码,报价结果将发送到您手机
装修顾问-馨馨
4年行业经验,24h可咨询
10秒闪电通过好友
报价短信已发送到您的手机
因材料品牌及工程量不同,具体报价以量房实测为准
稍候装修管家将回电您,免费提供装修咨询服务
您的装修预算约
*装修管家将回电您,免费提供装修咨询服务
*装修管家将回电您,免费提供装修咨询服务
*因材料品牌及工程量不同,具体报价以量房实测为准
装修顾问 -馨馨
(四年装修行业经验)
微信扫一扫
3.&您家小区名称 :&&
请选择您家的装修时间
怎么查看电脑实际物理内存?
提问者:喻灵韵|
浏览:200|
时间: 18:06:33
已有3条答案
回答数:98281|被采纳数:116
所有回答:&98281
“开始”--“运行”,在“打开”后的输入框中键入dxdiag,然后单击“确定”,看到了吧,很详细的。
物理内存就是你的内存条的实际内存,虚拟内存是设在硬盘上用作内存的虚拟的内存。你如果用xp的话,ctrl+alt+delete,chooseperformance,thenyoucanseeyourtotalphysicalmemoryandfreememory
回答数:47664|被采纳数:13
所有回答:&47664
1,在“计算机”上点击鼠标右键,左键单击底部“属性”。
2,进入界面看RAM处就是表示你的物理内存多少了。
电脑一般在启动时都会对基本的硬件设置进行检测,当然也必须对内存进行检查,我们可以通过电脑启动画面来查看物理内容的相关参数。具体操作方法:按下主机电源,在电脑启动并出现第一屏信息时,按下键盘快捷键“PAUSE&或者”BREAK&键,使屏幕画面暂停,然后就可以查看内存的类型和容量大小等相关信息。
回答数:10645|被采纳数:3
所有回答:&10645
以win7为例。
1、右键点击计算机,属性,就能看到下面页面。右面是物理内存的总量。要看虚拟内存,点左面“高级系统设置”。
2、先在高级选项卡中,点第一个设置,然后再打开下一级的高级选项卡。就可以看到,分页文件大小,就是当前的虚拟内存的大小。
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 3 个回答
北欧简约、复古美式、大气欧式、清新地中海风,总有一款适合你!
一万套装修案例
下载土巴兔APP
中国装修网原文地址:http://training./html/jishuyuandi/5.html
如果没有进行设置的话,在使用 MyEclipse 时经常出现内存不足的提示。 提示中说的很明白: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. 意思是说当前只有小于 5% 的非堆内存是空闲的。所以我们只要
如果没有进行设置的话,在使用MyEclipse时经常出现内存不足的提示。
提示中说的很明白:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。
提示中给出了MyEclipse设置JVM的参数:
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
这里有几个MyEclipse设置JVM问题:
1.&各个参数的含义什么?
2.&为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
3.&为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
下面我们一一进行回答
1.&各个参数的含义什么?
参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。
堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“Java&虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在&Java&虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC&后调整堆的大小。&
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
JVM内存限制(最大值)
首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。&
2.&为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?
通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:
1)&参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。
3.&为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?这是因为我们没有遵守eclipse.ini文件的设置规则:
参数形如“项 值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:Javajre1.6.0binjavaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:
C:Javajre1.6.0binjavaw.exe&
按照上面所说的,最后参数在eclipse.ini中可以写成这个样子:
1.&&-vmargs& &
2.&&-Xms128M& &
3.&&-Xmx512M& &
4.&&-XX:PermSize=64M& &
5.&&-XX:MaxPermSize=128M&&
实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。
另外需要说明的是,Eclipse压缩包中自带的eclipse.ini文件内容是这样的:
6.&&-showsplash& &
7.&&org.eclipse.platform& &
8.&&--launcher.XXMaxPermSize& &
9.&&256m& &
10.&-vmargs& &
11.&-Xms40m& &
12.&-Xmx256m&&
其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是Eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。通过MyEclipse设置JVM避免内存不足的问题就介绍到这里。
上面的内容试了,没有效果 ,下面是我解决问题的方法,在MyEclipse下
在需要运行运行的程序中右键=》Run As =》Run Configurations =》 Arguments 。
在 VM arguments 下添加&-Xms256m -Xmx512m参数即可
注明:本文章属于转载,仅供行业人员学习交流使用,文章版权属于原创作者,在此向原创者致敬,感谢原创作者为大家学习交流提供精品内容。
站方声明:IThao123是为广大互联网从业者免费提供学习交流的平台,如果侵犯了原创著作权,请联系站方删除,给你带来不便,深表歉意。学习笔记:内存,堆栈,到底为何物?
学习笔记:内存,堆栈,到底为何物?
编辑:www.fx114.net
本篇文章主要介绍了"学习笔记:内存,堆栈,到底为何物? ",主要涉及到学习笔记:内存,堆栈,到底为何物? 方面的内容,对于学习笔记:内存,堆栈,到底为何物? 感兴趣的同学可以参考一下。
& & &在网上看到了一篇关于面试的博客文,突然发现自己对于这个博主而言简直差的是十万八千里,他提到的许多技术我尽然一个也答不上来。于是就开始反思,还是要抱一抱佛脚。左看右看发现了内存这个面试的万恶之源。
& & &说实话对于内存这种东西即使是一点也不了解的人也能写出许多的程序,但有一个现实问题就是面试时总是会用这些基础知识来考面试的人。我曾经出面试题的时候也做过一样的事情,但是想想自己其实也不懂。最近开始更新自己的简历,期望来年能找到一份新的工作,才想起自己还是那个什么都不懂的开发人员,还是要面对面试官的考问。
话说什么是内存?
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
&&摘自百度百科
看完后简单无法直视,这和我想了解的东西有什么关系呢?
我的理解为:内存是一种存储器,硬件上来说就是一种可以快速存储计算机数据,CPU将这些数据取得运算。内存就像一个大数组,可以存放许多数据。
& & &这里就有一个很重要的问题,CPU和内存储器都是硬件,谁来负责操作这些硬件呢?这就要说到操作系统了。我们通常用的windows、linux、unix这些操作系统,那么就很自然的想到了对于内存操作与管理其实还是由操作系统提供了机制,应用程序在这个基础上再完成相应的内存操作。
网上找了找资料,windows和linux的内存管理机制来看,都将内存划分为了物理内存和虚拟内存。
& & 物理内存就是系统硬件提供的内存大小,是真正的内存,说土点就是那内存条
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:}

我要回帖

更多关于 计算机物理内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信