当前位置:
文档之家› LINUX内核进程管理PPT幻灯片
LINUX内核进程管理PPT幻灯片
信号发生时,内核中断当前的进程,进 程执行处理函数来响应信号,结束后恢复正 常的进程处理。
信号有自己的名称和特定的编号,见表 3-1所示。
Hale Waihona Puke 19进程状态进程是一个动态的实体,故而它是有生 命的。
从创建到消亡,是一个进程的整个生命 周期。
在这个周期中,进程可能会经历各种不 同的状态。
一般来说,所有进程都要经历以下3种状 态。
❖ suid和sgid是根据POSIX标准引入的,在系统调用改变uid 和gid时,用于保留真正的uid和gid。
❖ fsuid和fsgid称为文件系统的uid和gid,用于对文件系统操
作时的合法性检查,是LINUX独特的标识类型。它们一般分
别和euid和egid一致,但在NFS文件系统中NFS服务器需要
16
3 进程的状态和调度
17
Linux系统信号
信号主要用于通知进程异步事件的发生。 在Linux中可以识别29种不同的信号,这些信号 中的大部分都有了预先定义好的意义,
进程可以显式的用kill或killpg系统调用来 向另一个进程发信号。
18
进程可以通过提供信号处理函数来取代 对于任意信号的缺省反应,这种缺省反应一 般都是终止进程。
uid=euid=fsuid, gid=egid=fsgid。
10
进程标识:
❖ uid和gid是运行进程的用户标识和用户组标识。
❖ euid和egid又称为有效的uid和gid。出于系统安全权限的考 虑,运行程序时要检查euid和egid的合法性。通常,uid等 于euid,gid等于egid。有时候,系统会赋予一般用户暂时 拥有root的uid和gid(作为用户进程的euid和egid),以便 于进行运作。
6
并行指在同一时刻内,有多条指令在多
个处理机上同时执行;
并发指在同一时刻内可能只有一条指令
执行,但多个进程的指令被快速轮换执行, 使得在宏观上具有多个进程同时执行的效果。
7
2 进程的组成
作为申请系统资源的基本单位,进程必 须有一个对应的物理内存空间。
而对这样的一块空间,首先要用数据结 构进行描述,才能进一步对之进行管理。
作为一个特殊的进程访问文件,这时只修改客户进程的
fsuid和fsgid。
11
进程运行的环境称为进程上下文(context)。 Linux中进程的上下文由进程控制块
PCB(process control block)、正文段(text segment)、数据段(data segment)以及用户 堆栈(stack)组成。
第2章 Linux内核
——进程管理
1
本章主要介绍:
❖ 进程概念 ❖ 进程的组成 ❖ 进程的状态和调度 ❖ 进程间关系 ❖ 中断处理与定时器 ❖ 系统调用 ❖ 进程间通信
2
1 进程概念
20世纪60年代,进程(process)一词首 先在麻省理工学院的MULTICS和IBM的 CTSS/360系统中被引入。
4
2. 动态性
进程与程序的区别在于,程序只是一个静态的 指令集合,而进程是一个正在系统中活动的指令集 合。
在进程中加入了时间的概念。进程具有自己的 生命周期和各种不同的状态,这些概念在程序中都 是不具备的。
5
由于以上两个性质,又可以衍生出进程 的第三个重要特性,即并发性。
若干个进程可以在单处理机状态上并发 执行。注意并发性(concurrency)和多处理机 并行(parallel)是两个不同的概念。
其中: 正文段存放该进程的可执行代码; 数据段存放进程中静态产生的数据结构; PCB包括进程的编号、状态、优先级以及正文段 和数据段中数据分布的大概情况。
12
—个称做进程表(process table)的链表 结构将系统中所有的PCB块联系起来,如图 2-1所示。
13
Linux源代码中也将进程称作任务 (Task),Linux上的所有进程都是由 task_struct结构体来管理。生成一个进程时 会产生一个task_struct结构体,此后通过 task_struct结构来管理进程。当然文件也是 通过task_struct结构来管理。
一个程序至少有一个进程,一个进程至少有一个线程。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的 能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行 中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的 其他的线程共享进程所拥有的全部资源。
8
在Linux中,进程以进程号PID(process ID)作为标识。
任何对进程进行的操作都要给予其相应 的PID号。
每个进程都属于一个用户,进程要配备 其所属的用户编号UID。
此外,每个进程都属于多个用户组,所 以进程还要配备其归属的用户组编号GID的 数组
9
UID和GID都分4种, UID包括uid,euid,suid和fsuid, GID包括gid,egid,sgid和fsgid。 一般来说
对进程下个准确定义不容易,但有必要 强调一下进程具有的两个重要特性。
3
1. 独立性
进程是系统中独立存在的实体,它可以拥有自 己独立的资源,比如文件和设备描述符等。
在没有经过进程本身允许的情况下,其他进程 不能访问到这些资源。这一点上和线程有很大的不 同。
线程是共享资源的程序实体,创建一个线程所 花费的系统开销要比创建一个进程小得多。
Linux中的PCB块又称为task_struct结 构,在2.4版本内核中,每个task_struct占 1680个字节。
Linux根据系统物理内存的大小限制已 打开进程的总数目。
15
系统每次访问一个进程时,内核根据PID 在进程表中查找相应的进程PCB块(具体查找 过程通过一个PID的hash表实现),再通过 PCB块找到其对应的代码段与数据段,并进 行操作。
21
◆ 就绪(ready)态: 指进程已经获得所有所需的其他资源,
并正在申请处理机资源,准备开始运行。 这种情况下,称进程处于就绪态。
22
◆ 阻塞(blocked)态: 指进程因为需要等待所需资源而放弃处
理机,或者进程本不拥有处理机,且其他资 源也没有满足,从而即使得到处理机资源也 不能开始运行。