ChinaUnix.net
相关文章推荐:

栈的计算

比如A()函数调B()函数,B()函数执行并返回后,原来B()函数中的对应的物理内存什么时候回收?

by chenzhanyiczy - 内核源码 - 2010-03-19 17:53:02 阅读(6380) 回复(33)

相关讨论

(Stack)也是一种特殊的线性表,是一种后进先出(LIFO)的结构。 是限定仅在表尾进行插入和删除运算的线性表,表尾称为顶(top),表头称为底(bottom)。 的物理存储可以用顺序存储结构,也可以用链式存储结构。 import java.util.*; class MyStack { private LinkedList ll=new LinkedList(); public void push(Object o) { ll.addFirst(o); } public Object pop() { return ll.removeFirst(); } public Object...

by sytrydor - Java文档中心 - 2009-10-07 18:02:16 阅读(1100) 回复(0)

我们先看看一个小程序,再看看它对应的汇编代码,一切都清楚了。 #include int main(int argc, char* argv[]) { int n = 0; int* p = alloca(1024); printf("&n=%p p=%p\n", &n, p); return 0; } 汇编代码为: int main(int argc, char* argv[]) { 8048394: 55 push %ebp 8048395: 89 e5 mov %esp,%ebp 8048397: 83 ec 18 ...

by loughsky - Linux文档专区 - 2007-02-15 16:44:57 阅读(481) 回复(0)

一个进程的内核一般分配了2个物理页面(这个应该在创建进程时就分配了的吧).当执行系统调用时,局部变量等保存在内核中. 比如某系统调用有下面的代码: int a; a=10; 首先这些代码本身也是在内存中的,cpu执行这些代码应该也是跟用户程序一样,需要通过线性->物理的映射找到保存这些代码的内存, 取出并运行它. 现在的问题是:如果这个是用户程序的话,执行a=10,它会通过ebp找到对应的a的地址,接着经过线性->物理的映射找到物理内...

by chenzhanyiczy - 内核源码 - 2010-10-18 23:52:59 阅读(6686) 回复(17)

请教各位大牛:当溢出时,您用什么方法调试?

by CallTrace - C/C++ - 2009-03-26 21:56:47 阅读(1269) 回复(4)

Linux TCP/IP协议笔记(一)网卡驱动和队列层中的数据包接收 Linux TCP/IP协议笔记 数据包的接收 作者:kendo Kernel:2.6.12 [color="Red"]一、从网卡说起 这并非是一个网卡驱动分析的专门文档,只是对网卡处理数据包的流程进行一个重点的分析。这里以Intel的e100驱动为例进行分析。 大多数网卡都是一个PCI设备,PCI设备都包含了一个标准的配置寄存器,寄存器中,包含了PCI设备的厂商ID、设备ID等等信息,驱动 程序使用来描述...

by zhaoyuaini - Linux文档专区 - 2008-09-16 19:30:36 阅读(935) 回复(0)

各位,本人新手。在看内核方面的资料的时候,感觉有个概念比较模糊——! 内核是不是我们平时所说的(进程中的,用于保存局部变量、函数调用时压入的参数等等)? 谢谢!!!

by yingqy88 - 内核源码 - 2011-08-16 20:45:40 阅读(1884) 回复(5)

计算机科学中,Call stack 是指存放某个程序的正在运行的函数的信息的。Call stack 由 stack frames 组成,每个 stack frame 对应于一个未完成运行的函数。 在当今流行的计算机体系架构中,大部分计算机的参数传递,局部变量的分配和释放都是通过操纵程序来实现的。用来传递函数参数,存储返回值信息,保存寄存器以供恢复调用前处理机状态。每次调用一个函数,都要为该次调用的函数实例分配空间。为单个函数分配的那部分...

by booktree_zhou - Linux文档专区 - 2009-03-27 22:04:59 阅读(2302) 回复(0)

int test_ret() { int ret=1; if(ret==0) return 1; } int main() { int ret; ret=test_ret(); } gcc -mpreferred-stack-boundary=4 -g -o test15 test15.cpp 环境: gcc -v 使用内建 specs。 目标:i386-redhat-linux 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__c...

by chenzhanyiczy - C/C++ - 2012-03-16 14:06:44 阅读(6847) 回复(2)

如题:内核线程,怎么进行回溯?用户态的进程,我们可以用gdb进行回溯,内核线程回溯,比如我要回溯pid=1的内核线程,gdb后显示如下: (gdb) attach 1 Attaching to process 1 ptrace: Operation not permitted. ,达人请指教怎么进行内核线程回溯?

by n080320077 - 内核源码 - 2012-02-14 22:07:59 阅读(2796) 回复(6)

Java与堆 ----对这两个概念的不明好久,终于找到一篇好文,拿来共享 1. (stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理和堆,程序员不能直接地设置或堆。 2. 的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在中的数据大小与生存期必须是确定的,缺乏灵活性。另外,数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先...

java

by feiyang10086 - Java - 2011-11-17 15:42:27 阅读(1135) 回复(1)