操作系统
Man_Humble
怀着一颗卑微之心时刻前行
展开
-
关于堆栈
堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区转载 2016-07-12 09:52:53 · 281 阅读 · 0 评论 -
操作系统思考
第七章 缓存7.1 程序如何运行为了理解缓存,你需要理解计算机如何运行程序。你应该学习计算机体系结构来深入理解这个话题。这一章中我的目标是给出一个程序执行的简单模型。当程序启动时,代码(或者程序文本)通常位于硬盘上。操作系统创建新的进程来运行程序,之后“加载器”将代码从存储器复制到主存中,并且通过调用main来启动程序。在程序运行之中,它的大部分数据都储存在主存中,但是一些数据在寄存器中,它们是CP翻译 2016-07-09 15:08:26 · 1333 阅读 · 0 评论 -
操作系统思考
第六章 内存管理协议:CC BY-NC-SA 4.0 C提供了4种用于动态内存分配的函数:malloc,它接受表示字节单位的大小的整数,返回指向新分配的、(至少)为指定大小的内存块的指针。如果不能满足要求,它会返回特殊的值为NULL的指针。 calloc,它和malloc一样,除了它会清空新分配的空间。也就是说,它会设置块中所有字节为0。 free,它接受指向之前分配的内存块的指针,并会释放它翻译 2016-07-09 17:14:41 · 396 阅读 · 0 评论