基于Linux的进程管理分析.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于的进程管理分析Linux崔 峰,蔡 尧,王新梅( 基于 的进程管理分析 Linux 崔 峰,蔡 尧,王新梅 (西安电子科技大学 ISN 国家重点实验室,陕西 西安 710071) 摘要:简要概括了 Linux 进程的一些简单概念,着重讨论了各进程状态间的相互转换关系及转换过 程对应的数据在内存中的变化。 关 键 词:Linux; 进程 中图分类号: TP316.81 文献标识码:A 文章编号:1006- 6977(2007)09- 0024- 03 Study on pr ocess management based on Linux CUI Feng, CAI Yao, WANG Xin- mei (State Key Lab of ISN, Xidian university, Xi’an 710071, China) Abstr act:This article briefly introduces the notion of process,and mainly discusses the transform of pro- cesses in every state.We have given the changes of data architecture happened in memory during the transform. Key wor ds: Linux; process CPU 的系统,在某一时刻只能有一个进程运行。内 核通过分时调度各个进程运行。 Linux 系统中,一个进程可以在内核态(kernel mode)或用户态(user mode)下执行,因此,在 Linux 下内核堆栈和用户堆栈是分开的。用户堆栈用于进 程在用户态下临时保存调用函数的参数、局部变量 等数据。堆栈区含有程序执行函数调用时的信息。 引言 进程不是程序,虽然它由程序产生。程序只是 一个静态的指令集合,不占用系统的运行资源;而 进程(process)是一个随时都可能发生变化的、动态 的、使用系统运行资源的程序。一个程序可以启动 多个进程。利用分时技术,在 Linux 操作系统上可同 时运行多个进程。分时技术的基本原理是把 CPU 的 运行时间分成一个个规定长度的时间片。对于具有 单个 CPU 的机器,某一指定时刻只能运行一个进 程。但由于每个进程运行的时间片很短,所以表面 上看起来好像所有进程在同时运行。 对于 Linux 系统,除第一个进程是“手工”建立 以外,其余进程都是使用系统调用 fork 创建的,被 创建的进程称为子进程(child process),原进程称为 父进程(parent process)。内核程序使用进程标识号 (process id)标识每一个进程。进程由可执行代码、 数据、堆栈组成。进程中的代码和数据部分分别对 应执行文件中的代码段和数据段。每个进程只能执 行自己的代码,访问自己的数据及堆栈区。进程间 的通信需要通过系统调用才能实现。对于只有一个 1 基本数据结构 内核程序通过进程表管理进程,每个进程占进 程表中一项。在 Linux 系统中,进程表项是一个 task_struct 任务结构指针。任务数据结构定义在 in- clude/linux/sched.h 中。主要包括进程当前运行的状 2 态信息、信号、进程号、父进程号、运行累计时间值、 正在使用的文件和本任务的局部描述符以及任务 状态段信息。 struct task_struct{ //进程标识号 //父进程号 //父进程组号 // 会话话 long pid long father long pgrp long session 图 1 进程间状态转移图//会话首领//用户标识号//有效用户 id//保存的用户 id 图 1 进程间状态转移图 //会话首领 //用户标识号 //有效用户 id //保存的用户 id //组标识号 //有效组 id //保存的组 id 进程的状态以及堆栈的内容称为该进程的上下文。 long leader unsigned uid unsigned euid unsigned suid unsigned gid unsigned egid unsigned sgid 当内核需要切换至另一个进程时,它就需要保存当 前进程的所有状态(即当前进程的上下文),以便再 次执行进程时,能够恢复到切换时的状态。当前进 程上下文均保存在进程的任务数据结构中。在发生 中断时,内核在被中断服务结束时恢复执行被中断 的进程。 volatitle long state //任务的运行状态:- 1 表示不可运行、 0 表示就绪、0 表示已停止 long counter //任务运行滴答数 long priority //运

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档