首页 > 代码库 > 对Linux进程的理解

对Linux进程的理解

在本科期间学习过进程,网上也有很多关于进程的知识,但对于进程到底是什么一直没有让我满意的解答(以下截图来自网络,感觉对进程理解有问题,说得也很虚)。

技术分享技术分享

但今天找到这个博文感觉挺符合我的胃口:http://blog.csdn.net/yuqiang_ee_android/article/details/16889257

 

  • 进程的本质

进程是Linux内核提供的一个环境(资源分配的基本单位),包括:

(1)进程控制块(用于操作系统对进程的管理)。

(2)虚拟内存(分为好几段:正文段、数据段、BBS段、堆栈段等等)。

技术分享

(3)其他内核资源(打开的文件等等)。

 

  • 进程和可执行文件的关系

前面说了,进程有正文段和数据段等,这些都是从磁盘上的可执行文件加载而来(可以通过size命令查看可执行文件分段信息)。

所以:可执行程序为进程提供必要的代码和数据等。

 

  • 进程和线程的关系

有很多关于 进程和线程的区别及联系 的文章,但大部分和我的理解不一样。以下是我的个人理解。

(1)进程提供了环境,为谁提供?答案就是线程。进程提供资源,线程干活。

(2)进程是资源分配的基本单位,线程是CPU调度的基本单位。(有人说线程是进程的实体,我不知该怎么理解)

(3)进程创建后默认就有一个初始线程存在,以后在该进程中创建的线程都会共享进程提供的环境。

 

对Linux进程的理解