Linux进程管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

八. Linux 的进程管理

(一)Linux 的进程结构

// 在文件 include/linux/task.h 中

#define NR_TASKS 512

//在文件 /kernal/ seched.c中

struct task_struct *task [ NR_TASKS ]

= { &init_task };

//在文件 /include/linux / seched.h 中struct task_struct { … } //Linux的PCB内容

Linux的PCB: struct task_struct { …} 结构

[ 见补充材料 p13]

(1) 进程状态

(2) 进程调度信息

(3) 进程标识

(4) 内部通信信息

(5) 进程链接指针

(6) 时间和定时器信息

(7) 文件系统信息

(8) 虚拟内存信息

(9) 进程上下文

1.Linux进程状态 long state;

2.进程调度信息:

进程普通进程——优先级调度

实时进程——先来先服务调度FCFS

时间片轮转调度 RR

(1) long counter ; 进程剩余时间片

(2) long priority; 优先级(同时还表示进程

时间片)当counter=0时,

priority =〉counter

(3) unsigned long policy;

SCHED_ OTHER 普通进程

调度策略 SCHED_ FIFO 实时进程

SCHED_ RR 实时进程

(4)unsigned long rt_priority;

实时优先级(调度程序求权重时用到它)

3.标识号

(1) int pid ; //进程标识号

(2) unsigned short uid,euid,suid,fsuid;

//用户标识,有效标识,备份标识,文件系统标识

(3) unsigned short gid,egid,sgid,fsgid;

//用户组标识,有效组标识,备份组

标识,文件系统用户组标识

4. 内部通信信息

(IPC —— Inter Process Communication)为使在同一任务上协调工作,进程间必须

作通信即:交流数据

信号

Linux 支持通信机制管道

共享内存

信号量

消息队列

(1) long signal; //进程接收到的信号(共

有32 种类型号:0~ 31表示)

(2) long blocked; //信号掩码

(3) struct signal_struct *sig;

// 信号处理函数结构指针

(4) struct sem_queue *semsleeping;

//与信号量相关的等待队列指针

(5) struct sem_undo * semundo;

//为避免死锁在信号量上设置取消操作

5.进程指针

可运行队列

进程链接信息队列指针各种等待队列

进程树(家属关系)

(1) struct task_struct *next_run

.. .. *prev_run

//可运行队列

(2) struct task_struct *next_task

.. .. *prev_task

(3) struct task_struct *p_opptr;

// ( original parent 祖先) .. .. *p_pptr

//( parent 双亲)

.. .. *p_cptr

// ( child 孩子)

.. .. *p_osptr

//( older sibling 左兄弟) .. .. *p_ysptr

//( younger sibling 右兄弟)

6.时间和定时器信息

(1) long start_time; //进程创建时间

(2) long utime;// 进程在用户态下耗费时间

stimr;// 进程在系统态下耗费时间

cutime;// 子进程在用户态下耗费时间 cstime;// 子进程在系统态下耗费时间

(3) long counter; // 进程剩余时间片

(4) unsigned long timeout;//进程申请延迟时间

Linux 允许进程创建三种定时器

实时定时器

虚拟定时器

概况定时器

每种定时器包含三项内容:

(5) unsigned long it_real_value,

it_virt_value, it_prof_value;

// 到期时间

unsigned long it_real_incr,

it_virt_ incr, it_prof_incr; //定时间隔,当定时间隔〉0,循环置定时值

第三项仅对实时定时器存在:

struct timer_list real_timer;

//实时定时器到期要触发的事件及到期时间结构[若有时,按到期时间,将所有进程此结构,挂入系统实时钟例程任务队列中 ]

7. 文件系统信息

(1)struct fs_struct *fs;

本进程可执行映像文件所在根目录(root)

本进程可执行映像文件所在当前目录(pwd)

相关文档
最新文档