linux 进程简介

进程相关知识简介

进程定义:

  一个运行中的程序即一个process

task struct:

  内核存储进程信息的固定格式称为task struct,task struct记录了例如该进程内存下一跳位置等信息。

task list:

  多个task struct组成的链表

进程的创建

  内核创建第一个进程init,用来管理用户控件所有进程

  所有用户空间都有init或其父进程创建

  父进程所指向的内存即其子进程所指向的进程。待“成熟”后子进程会复制一份父进程的内存空间中的数据,创建属于自己的内存空间。这种机制被称为fork,clone.

  父进程创建子进程的目的:让子进程来完成指定任务,完成后终止子进程。

进程的优先级:

  0~99:实时优先级,越大优先级越高

  100~139:静态优先级,越小优先级越高

  nice值:-20~+19

进程的优先级有什么作用?

  内核通过优先级来判断先后运行的程序。相同优先级的进程被分到同一队列(最多140个队列),从而无论进程有多少,内核每次只需遍历进程队列的首部,就可判定需运行哪个队列中的进程。

  每个优先级队列分为两层分别是:已运行过的队列和未运行过的进程。

进程内存:

  page frame:内核将内存分为若干份,每份4k即page frame。

  进程所占用的内存都是经过内核将若干连续或间断的page frame ,虚拟成的虚拟内存。

linux进程分类:根据进程占用CPU高还是IO高可分为

  CPU-Bound:cpu密集型

  IO-Bound:IO密集型

linux进程类型:

  守护进程:与终端无关,在系统启动过程中启动的进程

  前台进程:与终端相关,通过终端启动。

  前台进程可以送往后台,以守护模式运行。

linux进程状态:

  R:running:运行态

  S:interruptable:可中断睡眠状态,大多数进程处于此状态。处于这个状态的进程因为等待某事件的发生(比如等待socket连接、等待信号量),而被挂起。

  D:uninterruptable:不可终端睡眠状态,不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。该状态存在的意义就在于,内核的某些处理流程是不能被打断的。

  T:stopped:停止态

  Z:zombie:僵死态,子进程终止后等待父进程“收尸”,或其父进程挂掉子进程成为孤儿进程。

  linux进程状态详情可参考:http://blog.csdn.net/shenwansangz/article/details/51981459

 

  

  

 

posted on 2018-08-30 00:13  HowOldAreYou  阅读(360)  评论(0编辑  收藏  举报

导航