- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[所有分类]Linux进程管理_zql
Linux 进程管理 张其亮 Email:zql6661979@163.com Summary Linux进程概述 Linux进程的状态和标适 Linux进程调度 Linux进程的创建撤消 Linux进程间的通信机制 Linux进程概述 Linux进程组成 程序 数据 进程控制块 Linux进程概述 Linux进程概述 数据段是进程在运行过程中所处理数据的集合,是进程直接操作的所有数据 PCB:系统数据段。Linux的PCB是一个名为task_struct的数据结构,它包含linux进程的所有信息,是linux的核心数据结构。 task_struct 结构定义在include/linux/sched.h Linux进程概述 Task_struct结构体的管理 因为系统中同时会有多个进程在活动,为了方便管理,系统必须能够很容易地找到任一个进程的结构 。 向量表task数组 向量表task是一个指针数组,其中的每一个指针指向系统中的一个task_struct数据结构 Linux进程概述 Linux进程概述 Task数组的大小决定了系统中能够容纳的进程的最大数量 Kernel/sched.h中 Task[]数组是一个指向task_struct结构的指针数组。 确省情况下NR_CPUS为512 为了加快访问任务结构体的速度,Linux把系统中所有的任务结构体相互连接成一个双向循环链表。 当创建新的进程时,要从系统内存中分配一个新的task_struct结构,并将其加入到task向量表中。 为了管理的方便,系统给每个进程一个标识号(pid)。用户所见到、用到的进程号就是这个pid,每个pid唯一地标识了一个进程 可以用ps命令查看当前系统运行的进程 用kill命令可以杀死一个进程 Task_struct结构 描述: 在2.4.20-8内核,task_struct结构定义在include/linux/sched.h中 它的域大致分为如下几类: 状态(State) 调度信息 :调度程序需要这个信息用于公平地决定系统中的进程哪一个更应该运行 Task_struct结构 Task_struct结构 进程认证信息:进程代替用户运行,因此需要记录进程是作为哪个用户运行的,记录这些信息的域是用户ID和组ID Linux使用用户ID和组ID来检查进程的权限。 Linux系统中的文件都有所有权和许可,这些许可描述了系统中的用户对该文件或目录的存取权限。Linux将文件的这些权限赋予组用户。 Task_struct结构中有4对用户和组标识符。 uid gid :表示进程的用户的用户标识符和组标识符,通常是进程创建者的uid gid Task_struct结构 euid egid:一些程序把执行进程的uid和gid 改变为它们自己私有的 uid 和 gid ,系统在运行这样的程序时,会根据修改后的 uid 及 gid 判断程序的特权。这些程序叫做setuid程序。 fsuid fsgid:通常与有效uid gid相等,在检查文件系统的访问权限时使用它们。 suid sgid:备份uid gid.当进程的uid gid改变时,原来的uid gid 保存在此处。 Task_struct结构 进程间通信信息 连接指针 Task_struct结构 时间和定时器 Task_struct结构 文件和文件系统 Task_struct结构 虚拟内存 Linux进程状态 进程是一个动态实体,在执行过程中受到环境的影响,使得进程处 在不同的状态下。 Linux进程的状态及转换 Linux进程状态 Linux进程的状态 运行态 就绪态 等待态 暂停态 僵死态 Linux进程状态 运行态:进程正在使用CPU运行的状态。处于运行态的进程又称为当前进程(current process)。 就绪态:进程已分配到除CPU外所需要的其它资源,等待系统把CPU分配给它之后即可投入运行。 等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。 Linux进程状态 等待态进一步分为: 可中断的等待态 不可中断的等待态。 处于可中断等待态的进程可以由信号(signal)解除其等待态。 处于不可中断等待态的进程,一般是直接或间接等待硬件条件。 它只能用特定的方式来解除,例如使用唤醒函数wake_up()等。 Linux进程状态 暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状
文档评论(0)