linux学习总结进程与线程

进程的概念:进程是一个独立的可调度的任务。是一个程序一次执行的过程。

程序是静态的,是保存在磁盘上的指令的有序集合,没有执行的概念。进程是动态的

,他是程序执行的过程,包括创建、调度、消亡,是程序执行的各种资源的总和,是资源管理的最小单位。
进程包括:正文段+用户数据段+系统数据段(进程控制块PCB)。

进程的分类:

1.交互进程:由shell控制运行的,可以在前台,也可以在后台运行的。

  -ps -ef | grep a.out
   ./a.out & 后台运行

2.批处理进程:

不属于某个终端,它被提交到一个队列中以便顺序执行
3.守护进程:

在后台运行,在linux启动时开始执行,在系统关闭时候才结束

进程的状态:

运行态: 正在运行或者准备运行的状态(就差CPU分配时间片)

等待态:又称睡眠态,(不占CPU,CPU不处理,等待着资源),分为可中断与不可中断状态,等待不可中断是杀不死的状态。
停止态:GDB可以设置断点,kill -20 ,ctrl +Z,可以使进程停止。
死亡态:又称僵尸态,一个已经终止的进程,但还是在进程向量数组中占有一个task_struct结构。

fork()函数创建子进程

父进程先结束则1号进程收养子进程
子进程先结束,父进程未结束,则子进程变成了僵尸进程,必须利用wait()接收僵尸进程。

 

 

posted on 2012-06-19 21:43  孟浩依然  阅读(416)  评论(0编辑  收藏  举报