- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1
计算机研究与发展 1992年第1o期
MACH操作系统对并发及并行性的支持
些塑 刘宏 刘文卓 王承杰 1P b
‘中国科学院计算拄术研究所 国家智能计算机研究并星 中心,北豪,100080)
摘要。奉文在介绍一般并行程序编程模型的基础上,详细阐述 了Mach操忭系统在
谜方面进行的i作,主要包括 Mach的调度机制,Mach对分时及用户并发方面的 支 持
及 实现技术 。
关键调 。箱程模型,调度机茜玎.并发.分时。
一 、 问 题 介 绍
随着商品化的多机系统的出现以及并行程序方面研究的不断深入,人们对多处理机系统的使
用从传统的增加多任务的吞吐量到如伺充分使用多机计算资簿,以提高单个任务的执行速 度上
来。如何兼顾这两方面的需求是多机撵作系统急待解决静问题。并行程序的开发模型要求一个任
务排它地使用一组CPU,而类似 UNIX的分时操作系统与这种使用方式相互矛盾。简 单地将多
机系统中所有CPU的时间片分配给一个任务的方法井不能合理地解决上述问题 。
另一个对撵作系统中的调度算法设计影响较大的方面就是如何充分发挥一个任务的并发性
任务的并发性是任务本身的特性,它取决于具体的任务,具体用什么语言,在什么多机系统上运
行对它没有影响。而一个任务婚并行性是指在具俸的语言,具俸的多机系统上他实际运行可达到
的并行度。本文介绍 Mach中的任务调度算法的设计及实现,同时说明它悬如何解决下列矛盾t
提高多任务吞吐量同时兼顾单任务的执行速度。
=、并行程序的开发模型
并行程序的开发除要考虑硬件本身提供的支持外 (如。CPU的个数,Cache的大小,CPU存
取内存模块的时间等),还需要考虑操作系统以及运行时调用的标准库函数两个层次上的并发控
制 问题 。一般操f乍系统都提供了运行程序及调度的单元,如 UNIX的进程 。Mach的调度单元为
线程(thread)。逸垂调度单元与硬件 CPU的关系是多对一的映射, 饲如在UNIX 中多个进程通
过上下文切鸯 (comextswitch)按时间片戈享一个 CPU。为讨论方便,我们将操作系统的调度单
元称为虚处趣署 VP(Virtual。Processor)。在用户程序层次上,可以通过标准的库函数或者用户
真己编制的程序进一步将语言级的调度单元映射到VP上。例如,UNIX 的用户可以通 过 罱礁
库函数提髀的僮敦setjmp()longjmp(),将语言级上的多个乇程序映射到一个进程上 来,这些
子程序对用户来讲是并行执行的。我们称语言彀或者用户级上的稍度单 元 为 MR (Multiroudn—
es).
设 PP代表物理上的处理器,图 1给出并行程序的编程模型 。
并行程序的编墨模型可通过 MR,VP,PP之间的关系进行分类 。在 “完垒并行模型”下用户
级上的调度单位与硬件 CPU一一对应 。 一般高效的并行语言编译器产生的执行循环体的代码遵
循这一模型。当VP与iPP相等且MR大干VP时称之为 用“户并发模型 ,在这一模型下,用户
车文千 1§∞苹 1月收到
需要 自己控制MR与 VP的映射,也就是说在JIIj
美 系 模 型
户层次上增加了并发控制的任务。一些使用 cor-
MP=VP=PP 完垒并行 outines技术实现的标准库函数属于 这一类型 ,
MP =VP=PP 用户并发
即多个子程序在一个 VP上进行 调度,在 “系统
MP VP=、PP 系统并发
MP :vP PP 双方并发 并发”模型下, 只增加操作系统 的并发控制。目
文档评论(0)