- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种实现Ad并行任务机制的新方法a
1990年12月 计 算 机 学 报 第12婀
一 种实现 Ada并行任务机制的新方法
李赣生 王华民 襄纪海
(浙江大学计算机系)
A NEW APPROACH F0R IMPLEMENTING Ada MULTI-
TASKING FACILITIES
!iGansheng, WangHuamin and 。juJ]ha
(Zheiiang UnivtrMt
AbstractA new approachto implementAdamulti-taskingfacilitieswith alltasksin a
program sharingasinglestack in rDD—timeenvironmentispresented Compared with the ap—
proachofimplementing a c‘actus’stack forAdarun—timestorageallocation in which each Iask
has itsowDstack.thenew onesave8run-timestoragespaceand increasestheswitch-speedbe—
tween tasksin therunning environment,
摘要 奉文提 出了在单机上实现 Ada语言的多任务的单栈存储组 织 的
新方法. 同一个任 务一个栈 的存储组 织的方法比较 ,太太节省 了存储 空间,提 高
了任 务环境 的转接速度.
一 、 引 言
实现 Ada语言的多任务机制的困难程度因 目标机的不同类型而不同.通常,有三
类 目标机:
·单计算机 ;
·多处理机 ,共享公共存储器的系统 ;
·多计算机系统,每个都有 自己的存储器.但是,每种实现都面临两个基本 问题t
1.处理机分配 ;
2.存储器的组织.
本文只考虑在单计算机上的实现问题.一般的办法是,每个 Ada任务都有 自己的单独
线性栈.在一个任务中的子程序调用的空间分配,都在 自己的栈中进行.每个任务的处
理机,可 由 Ada环境的运行子程序来进行调度 由于 Ada任务及其中的子程序的动态
本文 1988年 10月31日收到
李赣生等:一种实现 Ada并行任务机制的新方法
特性 ,不能在编译时确定每个栈的大小 ,也不能确定任务的总数. 因此 ,一般采用仙人掌
式的栈 (CaCtusstack)来实施每个任务一个栈的存储管理方案. 这个方案的主要 缺点
是 ,在将处理机 由一个任务 A转给另一个任务 B时,要增加保存任务 A的栈区与恢复任务
B的栈区的巨大开销,因而效率较低.本文提 出的一个程序 的全部任务共用一个栈的方
案,大大节省了栈区传送 的开销 ,同时,没有必要为任何任务保 留各 自栈 区的内容 的存区,
因而也节省了存储空间.
二、仙人掌型栈的存储组织方式的简单讨论
、
置常,多数高级语言都采用栈式存储管理技术来组织运行时的存储分配.当子程序
被调用时,该子程序的活动记录置于栈顶,返回时则释放 .但是 ,Ada的任务设施 ,在一
定的角度上看,是一个单独的程序,因而每个任务都应有一个 自己的栈.男一方面,由于
Ads任务的可嵌套性,以及在一个任务中子程序调用所需的栈空间在编译时不能确定,
同时一个 Ada程序中的任务总数又是不确定的,实施一个任务一个栈的方案就很麻烦 .
为此,修正单一线性栈的模式,使其既符合一任务一栈的模式,又允许一任务访 问多任务
栈中的变量,就产生一种所谓 “仙人掌型”栈的结构.这种栈由若干个线性栈组成,每个任
务一个栈 ,全部栈构成一个 仙人掌 形式的数据结构.例如,考虑下面 的程序:
p~ocederc M AIN ,
文档评论(0)