现在的位置: 首页 > 综合 > 正文

linux进程管理子系统—–进程控制

2017年08月25日 ⁄ 综合 ⁄ 共 1083字 ⁄ 字号 评论关闭

进程--一个执行中的程序。它是动态的实体。

进程四要素-------

1--有一段程序供其执行。这段程序不一定是某个进程所专有,可以和其它进程共用。

2--有进程专用的内核空间堆栈。

3--在内核中有一个task_struct数据结构,即进程控制块。有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核调度。

4---有独立的用户空间

独立的用户空间----进程。

有共享的用户空间----用户线程。

无用户空间----内核线程。

进程是资源分配的最小单位,线程是调度的最小单位。

进程描述--------

线程和进程都使用struct task_struct

pid_t pid ----------进程号。

volatile long state -----进程状态

1--TASK_RUNNING---对应操作系统原理的就绪和执行态

当一个进程刚被创建时,就处于此状态

2--TASK-INTERRUPTIBLE---

处于等待中的进程,待等待条件为真时被唤醒,也可以被信号或中断唤醒。

3--TASK-UNINTERRUPTIBLE---

处于等待中的进程,待资源有效时唤醒,但不可以由其它进程通过信号或中断唤醒。

4--TASK_STOPPED

进程终止执行。当接收到SIGSTOP和SIGTSTP等信号时,进程进入该状态,接收到SIGCONT信号后,进程重新回到TASK_RUNNING.

5--TASK_KILLABLE

类似于TASK-UNINTERRUPTIBLE,但是可以被致命信号SIGKILL唤醒。

6--TASK_TRACED

正处于被调试状态的进程。

7--TASK_DEAD

进程退出时,(调用do_exit)state字段被设置为该状态。

int exit_state-----进程退出时的状态

EXIT_ZOMBIE---僵死进程

EXIT_DEAD---僵死撤销状态。

struct mm_struct *mm---进程用户空间描述指针,内核线程该指针为空。

unsigned int policy----该进程的调度策略。

int prio---优先级-数值越大进程优先级越小。

0----(MAX_PRIO-1)之间取值(MAX_PRIO定义为140)其中,0---MAX_RT_PRIO-1

属于实时进程。MAX_RT_PRIO------MAX_PRIO属于非实时进程。MAX_RT_PRIO定义为100


int static_prio----静态优先级

struct sched_rt_entity rt

rt->time_slice----时间片

current ----指向当前正在运行的进程的task_struct

【上篇】
【下篇】

抱歉!评论已关闭.