
操作系统
Monkey_Coder
catch me if you can
展开
-
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2016-02-22 12:20:54 · 308 阅读 · 0 评论 -
内存溢出,内存泄露,内存越界,栈溢出
内存溢出:用户要求系统分配的内存空间超出了系统所能提供的范围,称内存溢出内存泄露:用户向系统申请内存(new),使用完后没有释放的情况(delete),导致了该块内存不能再被用户使用,也不能被系统调用。我们常说的内存泄露指的是堆泄露内存越界:使用已申请的内存时,超出了内存的界限。栈溢出:栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。ps:典型的,在转载 2016-02-26 23:24:13 · 2557 阅读 · 0 评论 -
进程与线程
进程概念:进程是能和其他程序并行执行的程序段在某数据集合上的一次运行过程,他是系统资源分配和调度的一个基本独立单位。进程控制块(PCB):当系统要创建一个进程时,必须要申请一定的内存空间,为该进程建立PCB,以后系统就依据该PCB的各项内容对进程实行控制和管理。PCB一般包括以下内容。 1.进程名:也称进程标示符,用于唯一标识一个进程;一般分为内部名和外部名 2.当原创 2016-02-29 20:08:59 · 384 阅读 · 0 评论