1 进程(任务)的概念
进程是一个动态的执行过程,处于执行期的程序。即是对资源的分配。
2 线程的概念
线程是在进程中活动的对象,是内核调度的最小单元。内核调度的对象是线程而不是进程。
对Linux而言,线程是一种特殊的进程。
3 调用fork()的进程称为父进程,新产生的进程为子进程。fork(0系统调用返回两次:一次会到父进程,
另一次回到新诞生的子进程.
4 调用exec()簇函数就可以创建新的地址空间,并把新的程序载入
5 通过系统调用exit()退出执行,并释放资源。
6 内核把进程存放在任务队列的双向循环链表中,称为进程描述符结构(task_struct),包涵有进程的所有信息
7 task_struct结构的大小约1.7K字节(相当的大啊)。
8 内核通过进程描述符PID来标识每个进程表示为pid_t,即是一个int类型。最大值为32768.(进程分配)
9 内核通过current宏查找当前的进程的进程描述符
10 进程的五种状态
TASK_RUNNING (运行)----或者正在运行,或者在运行队列中等待,这根据是否拥有处理器。
TASK_INTERRUPTIBLE(可中断)----进程正在睡眠,等待某些条件的发生,当接收到信号就提前被唤醒并投入运行