linux execlp ps -aux,子进程就变成了僵尸进程.ppt

子进程就变成了僵尸进程

第5章 进程控制 主讲:林岚岚 本章重点 进程的基本概念及进程的结构 Linux环境下进程的相关函数的应用 守护进程的概念、启动和建立 进程控制程序的编写 进程介绍 进程 进程是一个程序的一次执行的过程。 在Linux环境下,每个正在运行的程序都称为进程。 每个进程包含进程标识符及数据,这些数据包含进程变量、外部变量及进程堆栈等。 进程与程序 由于一个进程对应一个程序的执行,但进程不等同于程序。因为程序是静态的概念,进程是动态的概念。 进程是程序执行的过程,包括了动态创建、调度和消亡的整个过程。进程是程序执行和资源管理的最小单位。 对系统而言,当用户在各级系统中键入命令执行一个程序的时候,它将启动一个进程,因此,一个程序可以对应多个进程。 进程介绍 进程状态 为了对进程从产生到消亡的这个动态变化过程进行捕获和描述,就需要定义进程各种状态并制定相应的状态转换策略,以此来控制进程的运行。 因为不同操作系统对进程的管理方式和对进程的状态解释可以不同,所以不同操作系统中描述进程状态的数量和命名也会有所不同,但最基本的进程状态有三种: (1) 运行态: 进程占有CPU,并在CPU上运行。 (2) 就绪态: 进程已经具备运行条件, 但由于CPU忙而暂时不能运行 (3) 阻塞态(或等待态): 进程因等待某种事件的发生而暂时不能运行。(即使CPU空闲, 进程也不可运行)。 进程在生命期内处于且仅处于三种基本状态之一 进程介绍 进程各状态的转换: ① 运行态?阻塞态: 进程发现它不能运行下去时发生这种转换。这是因为进程发生I/O请求或等待某件事情。 ② 运行态?就绪态:在系统认为运行进程占用CPU的时间已经过长,决定让其它进程占用CPU时发生这种转换。这是由调度程序引起的。调度程序是操作系统的一部分,进程甚至感觉不到它的存在。 ③ 就绪态?运行态:运行进程已经用完分给它的CPU时间,调度程序从处于就绪态的进程中选择一个投入运行。 ④ 阻塞态?就绪态:当一个进程等待的一个外部事件发生时(例如输入数据到达),则发生这种转换。如果这时没有其它进程运行,则转换③立即被触发,该进程便开始运行。 进程控制块 进程控制块 进程控制块PCB是对进程进行全面描述的数据结构,对应的结构名为task_struct ,它包括以下这些信息: 状态信息-描述进程动态的变化。 链接信息-描述进程的父/子关系。 各种标识符-用简单数字对进程进行标识。 进程间通信信息-描述多个进程在同一任务上协作工作。 时间和定时器信息-描述进程在生存周期内使用CPU时间的统计、计费等信息。 调度信息-描述进程优先级、调度策略等信息。 文件系统信息-对进程使用文件情况进行记录。 虚拟内存信息-描述每个进程拥有的地址空间。 处理器环境信息-描述进程的执行环境(处理器的寄存器及堆栈等) 进程控制块 进程控制块对进程状态、标识符及亲属关系的描述: task_struct{ long state; /*进程状态*/ int pid,ppid,uid,gid; /*一些标识符*/ struct task_struct *parent, *child, *o_sibling, *y_sibling /*一些亲属关系*/ … } 进程链表 宏for_each_task()遍历整个进程链表 #define for_each_task(p) \ for (p = &init_task ; (p = p->next_task) != &init_task ; ) 进程控制块 进程的组织方式-哈希表 假定哈希表义为: struct task_struct *pidhash[PIDHASH_SZ] 对给定的PID,如何快速找到对应进程? 哈希函数 #define pid_hashfn(x) \ ((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1)) 进程调度 进程调度算法考虑的因素 公平:保证每个进程得到合理的CPU时间。 高效:使CPU保持忙碌状态,即总是有进程在CPU上运行。 响应时间:使交互用户的响应时间尽可能短。 周转时间:使批处理用户等待输出的时间尽可能短。 吞吐量:使单位时间内处理的进程数量尽可能多。 进程调度 进程调度算法 时间片轮转调度算法 系统使每个进程依次地按时间片轮流地执行 优先权调度算法 非抢占式优先权算法 抢占式优先权调度算法 多级反馈队列调度 优先权高的进程先运行给定的时间片,相同优先权的进程轮流运行给定的时间片 实时调度 一般采用抢占式调度方式 进程的相关函数 Linux c与

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值