linux进程管理 pdf,高效与精细的结合--Linux的进程管理.pdf

44cb7578e1df5412b94317daaa3307ba.gif高效与精细的结合--Linux的进程管理.pdf

第 卷 第 期 A 文献标识码 I T6L 76 28 L J6 7 8 676 LJ Q Q656 8J6 6 82 K 797863 R28J 2 Q6 6 Q6 8 2 86 6L8 6 89 2KJ8 Q 8 3 8 8J6 Q656 36 8 0 L 3 86 7L26 L6 1J6 3 K636 8 0 L677 27 23 8 8 L 3 6 8 2 C2 D 6 82 K 797863 RJ2LJ 3 2 9 L 72787 0 678 S 27J2 K L 76 7R28LJ2 K L 76 Q 6 Q2 K L 76 1J KJ 972 K 8J6 Q68 2 7 0 8J676 L 767 Q 8J KJ 8J6 6 Q2 K 0 7 36 723 6 7 L6 L Q67 28 S67 2 8 8J6 6002L26 L9 Q 3682L 7 63S Q26Q 2 8J6 L 76 0 Q672K 2 K Q 6 2P2 K 2 C2 D 8 9 2 0 C2 D L677 EFG 7R2LJ 6 Q 进程与进程管理 进程是拥有一定资源并能独立运行的一个基本 单位 也正是由于引入了进程的概念 现代操作系统 中程序的并发执行才成为可能 因而是否能对进程 进行有效的控制和管理 对于一个操作系统来说是 至关重要的 处理机的管理是现代操作系统的一个重要功 能 其主要任务就是合理的分配处理机资源 并对其 进行有效的控制和管理 处理机的分配和运行是以 进程为单位的 故对处理机的管理实际上可以归结 为对进程的管理 C2 D 与 C2 D 的进程 C2 D 操作系统是一个多用户 多任务的操作系 统 它是 4 2D 的兼容产品 而且是 4 2D 的延续和发 展 是 4 2D 各种版本的集大成者 如果说 4 2D 是一 个 微内核 那么 C2 D 就是一个 宏内核 更为 值得注意的是 C2 D 是一个自由软件 人们可以自 由的得到 C2 D 的可执行程序及源代码 这就给我 们研究和分析操作系统提供的极大的方便 C2 D 系统中的进程有自己的特点 它至少具备 四个要素 一段可供其执行的程序 一些最基本的资源 如进程专用的系统堆栈 空间 内核中有一个 8 7UV78 L8 数据结构即操作系 统理论中的进程控制块标识其存在 独立的存储空间 除前面讲的系统空间堆栈 收稿日期 例如当需要从父进程复制可写页面时 本来是 应该在内存里给子进程分配一个空闲的内存页面 然后再从父进程的页面将内容复制过来 并为之建 立映射 但正如前面所讲 复制过来的页面子进程 并不一定用 特别是当只有 读访问 没有 写访 问 时 只要保证父进程从此不再写这个页面 子进 程就完全可以通过复制指针来共享该页面 所以 6 8 46 8 4 中 关键的代码 有 2A F3 A 3 72 B 即任务状态 段 它是保存一个进程重要信息的特殊段 通过切 换 F 指针 也就是寄存器 F 的内容 由 OEP 的硬 件来实现进程的切换 L 硬切换的大致过程是这样的 首先将处理器中 各寄存器的当前值自动保存到 F 所指定的 F 中 然后 下一进程 F 的选择子被装入 F 这样 F 就指向新的 F 了 最后从 F 所指向的 F 中 取出各寄存器的值送到处理器的各寄存器中 显而 易见这种做法看起来是简单的 简单到只要一条 Q E 指令或 O GG 指令就可以完成切换 早期 G BHI 确实采用此法 但现在已经放弃 而采取了软 切换的办法 软切换的过程是在内核完成 由于每 个 OEP 初始化后永远只对应一个任务状态段 F 通过改变任务状态段中的堆栈段寄存器 的内容 和堆栈指针寄存器 E 的内容 就可从逻辑上实现 切换 例如从进程 切换到进程 R 的过程在调度程 序中的结构可用图 L 来简单示意 图 L 调试程序中进程切换示意图 这个切换过程的主要工作就是堆栈的切换 是 由宏操作 E 保存到 E 9 进 程描述符 从 T UF 的进程描述符中恢复 E 把 E 9 下次的返回点保存到 E 9 进程描 述符 从 T UF 的进程描述符中取出返回点 并压 入 T UF 的堆栈 进入函数 E 到原结构 E 切换了堆栈3 14 5 617 8 9 61 3 1 2 4 5 13 14 5 13 其中函数 4 的主要工作就是将 ABB 中内核空间 级 堆栈指针换成 14 4 6 数据结构和系统空间堆栈所在 的两个页面 在进程终止过程中这两个页面不是进 程自己释放的 而是通过调用 1 函数 回收相应资源 真正结束进程 此种安排第一可以由父进程将子进程的 4 4 6 数据结构中的一些有用的统计信息保存起来 不致丢失 第二更重要的是 系统一旦进入多进程状 态 任何一个时刻都需要一个 当前进程 存在 如 若不然 在系统调用另一个进程投入运行之前 子进 程就将自己的 4 4 6 数据结构和系统空间堆栈 释放 那就会有一个无 当前进程 的空隙 若此时 出现一个不可屏蔽中断或异常 就会出现问题了 故子进程的 4 4 6 数据结构和系统空间堆栈必 须要保存到另一个进程开始运行之后才能释放 这 样由父进程来释放它们就很合理 而且也简化了程 序 否则调度程序 4 13 1 就要多考虑好多情况 可见设计者在进程终止过程中的安排也是相当稳妥 合理的 Q 结束语 本文从三处细节分析了 在进程管理过程 中的精打细算 既让系统能高效运行 又能面面俱 到 其实这种精妙之处在 的结构和源代码设 计中随处可见 有时令人不得不由衷的佩服设计者 的高超技艺 由于 的结构和源代码都是完全 开放的 仔细对其进行研究对于我国自行设计和开 发具有自主知识产权的操作系统有着重要的现实意 义 参考文献 略 RS 万方数据 高效与精细的结合 Linux的进程管理高效与精细的结合 Linux的进程管理 作者 石鲁生 Shi Lusheng 作者单位 宿迁学院计算机系 江苏 宿迁 223800 刊名 塔里木大学学报 英文刊名 JOURNAL OF TARIM UNIVERSITY 年 卷 期 2005 17 3 本文链接

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值