随笔分类 -  程序员的自我修养

摘要:转载:http://blog.jobbole.com/45733/经常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。VIRT , Virtual Image (kb)RES, Resident size (kb)SHR, Shared Mem size ... 阅读全文
posted @ 2015-05-14 22:35 Jessica程序猿 阅读(405) 评论(0) 推荐(0)
摘要:我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用。一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占... 阅读全文
posted @ 2015-05-14 17:31 Jessica程序猿 阅读(997) 评论(0) 推荐(0)
摘要:1 内存1.1 程序的内存布局现代的应用程序都运行在一个内存空间里,在32位的系统里,这个内存空间拥有4GB的寻址能力。在Linux下默认将高地址的1GB空间分配给内核,低地址的3GB默认是用户空间。在用户空间里,又有不同的区域:1)栈:栈用于维护函数调用的上下文,离开了栈函数调用就没有办法实现。栈... 阅读全文
posted @ 2015-05-13 21:28 Jessica程序猿 阅读(828) 评论(0) 推荐(0)
摘要:装载与动态链接1可执行文件的装载与进程可执行文件只有装载到内存后才能被CPU执行。早期的程序装载十分简陋,装载的基本过程就是把程序从外部存储器中读取到内存中的某个位置。历史有过的装载方式包括覆盖装载、页映射。1.1 进程虚拟地址空间程序是一个静态的概念,它就是一些预先编译好的指令和数据集合的一个文件... 阅读全文
posted @ 2015-05-13 21:26 Jessica程序猿 阅读(2074) 评论(0) 推荐(2)
摘要:静态链接1 编译和链接1.1 被隐藏了的过程例如:#includeint main(){ printf("Hello World\n"); return 0;}在Linux下,使用GCC编译:gcc hello.c./a.outHello World事实上,上述过程由4个步骤,分别是预处... 阅读全文
posted @ 2015-05-11 23:14 Jessica程序猿 阅读(1029) 评论(0) 推荐(0)
摘要:1 什么是线程线程,有时被称为轻量级进程,是程序执行的最小单元。一个标准的线程由线程ID、程序计数器(pc)、一组寄存器和堆栈组成。通常,一个进程由多个线程组成,每个线程之间共享进程的内存空间(包括代码段、数据段、堆等)及一些进程级的资源(如打开的文件描述符和信号)。如下图所示:2 线程的访问权限线... 阅读全文
posted @ 2015-05-11 19:37 Jessica程序猿 阅读(1092) 评论(0) 推荐(1)
摘要:1 介绍计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。计算机系统u燃机系统结构的层次结构设计如下:每个层次之间都需要相互通信,既然需要通信就必须有一个通信的协议,也就是接口。一般接口的下面那层就是接口的提供者,接口由它定义;接口的上层就是接口的使用者,它使用该接口来实现需要的功能。例... 阅读全文
posted @ 2015-05-11 19:05 Jessica程序猿 阅读(2729) 评论(0) 推荐(0)