进程是LINUX下的代码执行流。
此篇文章大部分是参考《程序员的自我修养》《深入理解LINUX内核》
1、线程基础
除了进程process之外,线程也是一个十分重要的概念。特比是随着CPU频率增长出现停滞,向多核方向发展。
多线程,作为实现软件并发执行的一个重要方法,也开始扮演越来越重要的角色。
2、内核线程 & 用户线程
为了保护CPU 以及 底层硬件资源,将程序执行的权限划分成权限高的内核态线程 和 访问权限低的用户线程。即内核态程序和用户态程序,在此概念上,将一直处于内核态运行的进程——内核线程kernel thread,而那些大部分时间处于用户态运行,只有当调用系统调用而进入内核态,之后又恢复到用户态运行的进程——用户线程user thread。
在这里,关于进程的创建、进程切换——进程调用、进程撤销这三个操作的具体细节不深入了。
但搞清楚几个必要的概念。
什么是“进程” :其实进程就是程序执行的实例。每一个存在的进程,都与进程描述符task_struct 一 一对应。
同时进程描述符结构体,又包含了许多的字段。比如:进程的基本信息thread_info;进程状态 state;进程标志符process ID ——PID用于标识进程 ;
等等,以上经常需要使用的字段,Linux 内核都定义了许多宏,还有系统调用来提供配套使用。在使用的时,可以随时查阅,不建议死记硬背,也同使用linux内核编程。
至于多线程又是另外一回事,