处理机管理之Linux进程管理.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux进程管理 内容 进程组成 进程环境 进程管理内容 进程控制块 进程状态 进程调度 进程控制 进程通信 进程组成 Linux是一个多任务多用户操作系统,采用进程模型。 进程都具有一定的功能和权限,运行在各自独立的虚拟地址空间,彼此独立,且通过通信机制实现同步互斥,通过调度程序实现合理调度。 进程组成 进程组成 正文段 存放进程要运行的程序,描述了进程要完成的功能 用户数据段 存放正文段在执行时所需要的数据和工作区 系统数据段 存放了进程的控制信息,其中最重要的数据结构是task_struct。 进程环境 Linux进程有两种状态:内核态和用户态 核心态又称系统态 Linux在执行内核程序时是处于核心态下 用户态是进程的普通执行状态 一个进程在运行过程中,总是在两种执行状态之间不断地转换。 进程环境 进程虚拟地址空间分为:用户空间和系统空间。 用户空间 用户进程本身的程序和数据(可执行映象) 进程运行用户程序时使用的堆栈,即进程堆栈。 系统对进程进行控制和管理的信息,如进程控制块等 系统空间 内核被映射到所有进程的系统空间中。 只允许进程在核心态下访问。进程运行在用户态下时,不允许直接访问系统空间。 进程只能通过系统调用转换为核心态后,才能访问系统空间 进程环境 进程上下文 系统提供给进程处于动态变化的运行环境总和称为进程上下文 系统上下文 系统完成自身任务时的运行环境称为系统上下文 内核在系统上下文中执行时不会阻塞。 进程管理内容 进程管理由进程控制块、进程调度、中断处理、任务队列、定时器,bottom half队列、系统调用、进程通信等部分组成。 进程管理是Linux存储管理,文件管理,设备管理的基础。 进程控制块 进程控制块是Linux系统最复杂的数据 结构之一。 Linux在内存空间中开辟了一个专门区域存 放所有进程的进程控制块。 系统初始化后,建立第一个task_struct数 据结构INIT_TASK。 新进程创建时,系统从内存分配新 task_struct,占据1680个字节。 进程控制块 进程状态和标志 进程控制块 进程的族亲关系 进程控制块 进程间链接信息 进程控制块 进程的时间信息 进程控制块 进程的文件信息 进程控制块 其它信息 进程状态 定义了六种状态进程状态 #define TASK_RUNNING 0 #define TASK_INTERRUPTIBLE 1 #define TASK_UNINTERRUPTIBLE 2 #define TASK_ZOMBIE 4 #define TASK_STOPPED 8 #define TASK_SWAPPING 16 进程调度 调度方法 调度策略 调度参数 调度方法 调度时机 进程调度 调度方法 Linux进程调度方式 采用抢占调度方式 (内核不抢占) 进程分为普通进程和实时进程,分别采用不同的调度策略,实时进程的优先级高于普通进程。 进程调度 调度策略 进程调度 调度参数 policy 进程调度策略,可通过系统调用 sys_sched_setscheduler()更改 (kernel/sched.c)。 SCHED_OTHER 非实时进程,基于优先级的轮转法 SCHED_FIFO 实时进程,用先进先出算法 SCHED_RR 实时进程,用基于优先权的轮转法 进程调度 priority 进程优先级(静态),给出进程每次获取cpu后可使用的时间(按jitty计算)。通过系统调用sys_setpriority()改变。 Linux 的基准时间(kernel/timer.c)。系统初始化时清零,以后每隔10ms由时钟中断服务程序,do_timer增1。 进程调度 rt_priority 实时进程的优先级,可通过系统调用sys_sched_setscheduler()改变. Counter 进程动态优先级表示进程当前还可运行多久 进程开始运行时被赋为priority值,以后,每隔一个tick(时钟中断)递减1,减到0时引起新一轮调度。 重新调度将从run-queue队列中选出counter值最大的就绪进程获得cpu。 进程调度 调度方法 采用动态优先级法,调度对象是可运行队列。 进程在运行中,counter代表动态优先级。 Linux采取了加权的方法来保证实时进程优先于普通进程。普通进程的权值就是它的counter的值,实时进程的权值是它的rt_priority的值加1000。 调度过程中,调度程序检查可运行队列中所有进程的权值,选择其中权值最大的进程做为下一个运行进程

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档