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) 编辑 收藏 举报