(计算机软件与理论专业论文)avx与windows异构系统之间的通信.pdf_第1页
(计算机软件与理论专业论文)avx与windows异构系统之间的通信.pdf_第2页
(计算机软件与理论专业论文)avx与windows异构系统之间的通信.pdf_第3页
(计算机软件与理论专业论文)avx与windows异构系统之间的通信.pdf_第4页
(计算机软件与理论专业论文)avx与windows异构系统之间的通信.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西囊工业大学 学位论文知识产权声明书 本a 完全了解学校畜美德护舞浚产较静娆定,帮:磷究生在校攻读学短期瓣论 文工”:f j l i l 议产权单位属j :l j q 北工业大学。学校有权保留并向国家有关部门或机构 送交沦交艉羹筇律靼电子舨。本人允许论文被套阕移诺麓,学校班将零学霞论文 的全部或部分内容编入有关数据库进行检索可以采用影印、缩印或扫描等复制手 段保存鞠l :缡本学位论文。溺畦率入保证,毕篷麓结台学往论文磺究舔题再撰写秘 文章一- 仆 i - 明作者单位为西北工业大学。 绦誉论文待解誉后适用奉声明, 学位论文作者签名:查垫 ) 哪年;月p 只 撬簿教孬签名: 仲月7 o 只 西北工业大学 学位论文原截t 陡声鞘 燕承学技严谨的学风承 优良的科学道德,本人郑重声明:所呈交的学位论文, 是本入在导师的指导下进行研究工作所取樽的成聚。尽我所知,除文中已经注明 1 月的内容和致澍的地方丹,本论文不包含任何其他个人或集体已经公开发表或撰写 过的彬f 宄成聚,不包含本人或他人已申请学位或其它用谂使用过的成果。对本文的 研究擞燃霞要嚣献的个人和集体,均已在文中以明确方式标明。 本人位沦文与资料若z r 不实,愿意承担一切相关的法律责任。 学位论文作者签名:叠壹 了啼,年;露知露 西北工业大学硕士学位论文 摘要 随着计算机技术的发展和应用,当前i n t e l 芯片和w i n d o w s 操作系统成为一个主流发 展方向,在市场上占有相当大的比率。这种趋势使得很多厂商都必须去发展自己的产品 使其能与w i n d o w s 操作系统相兼容,这样对于许多以前独立的系统来说向这方面的发展就 显得非常重要。近年来随着i n t e r n e t 的普及,使得开放性的发展进入到了i n t e r n e t 时代。 当一个独立的系统要构筑在w i n d o w s 操作系统上时,将会产生很多的问题,例如机器语言 的转换,编码的转换内存管理,运行管理的协调以及两个系统的通信等等。 从2 0 0 1 年笔者开始参与了a v x 操作系统构筑在w f n d o w s 操作系统上的研究与开发。 该操作系统原来是一个完全独立的操作系统,拥有自己的i d p 汇编语言,作业管理,内存 管理,运用管理等等的模块,现在a v x 已经发展成完全和w i n d o w s 操作系统兼容的一个 系统了。构筑到w i n d o w s 操作系统之后的a v x 系统保持了原有的优点,使得原来的用户 几乎不做任何修改就可以运行原有的应用程序,并且操作界面变得更加友好了。 笔者主要做的工作是全面了解了av x 相关的知识,重点研究了一个a v x 和w i n d o w s 系统之间的通信的模块o p e n b a s e ,并且参与了a c c e s s c 0 m p o n e n t 组件的设计和实现。 o p e n b a s e 是一个使得w i n d o w s 和a v x 可以互相通信的接口模块,它支持多种不同模式的 作业,可以从a v x 侧访问w i n d o w s 侧的程序,也可以从w i n d o w s 侧去访问a v x 侧的应用 程序。w i n d o w s 程序模块之间采用命名管道的形式通信的,而w i n d o w s 与av x 之间的通 信是通过o d e 的共享内存机制来实现的。a c c e s s c o m p o n e n t 是一个应用o p e n b a s e 接e l 的 w jn d o w s 侧的c o m 组件。通过该组件可以从i n t e r n e t 来访问a v x 侧的应用程序。在文中 具体描述了它们的实现。 尽管这些都已经作为产品在使用,而且大大的方便了想在a v x 和w i n d o w s 两侧进行 数据交换的用户。但是该系统中仍然存在着许多的不足之处,在本文的结尾提出了该系统 的不足之处以及相应的改进方法。 关键字:a - v x 操作系统o p e n b a s e a c c e s s c o m p o n e n tc o m 组件命名管道d d e 内存泄漏软件工程 耍j e 王些盔堂墅堂鱼堡塞 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft h ec o m p u t e r , t h ei n t e l c h i p sa n dt h ew i n d o w s o p e r a t i n gs y s t e mi ss h a r eo ft h ec h i p sa n do sm a r k e t a n di ti sw i d e l yn o t i c e db yt h e l a r g em a n u f a c t u r e r s t h et e n d e n c ym a k e sm a n u f a c t u r e r sd e v e l o pt h e i r sp r o d u c t st o c o m p a t i b l ew i t hi n t e lc h i p sa n dw i n d o w so s i ti sv e r yi m p o r t a n tt oe x t e n dt h e i r s a c t i v i t i e si n t oo p e n i n gs y s t e m i nt h el a s tt w e n t yy e a r s t h ed e v e l o p m e n to f o p e n i n g s y s t e m e n t e r st h ei n t e r n e t p e r i o d w i t ht h e s p r e a d o ft h ei n t e r n e t w h e nt h e i n d e p e n d e n ts y s t e mi sc o n s t r u c t e do nw i n d o w so s ,t h ep r o b l e m sc o m eo u to n eb yo n e s u c ha st h ec o n v e r s i o no fa s s e m b l e ra n d c o d i n g ,m e m o r ym a n a g e m e n t ,j o b m a n a g e m e n t ,t h ec o m m u n i c a t i o nb e t w e e nt w os y s t e m s t h ea u t h o rt a k e s p a r ti nt h er e s e a r c ha n di m p l e m e n t a t i o n o ft h er e c o n s t r u c to fa - v x o p e r a t i n gs y s t e m t h ea 。v xo p e r a t i n gs y s t e mu s e dt ob ei n d e p e n d e n ts y s t e m i th a s i d pa s s e m b l e r , j o b m a n a g e m e n tm o d u l a r , m e m o r ym a n a g e m e n tm o d u l a r , f i l e m a n a g e m e n tm o d u l a r , p r o c e s sm a n a g e m e n tm o d u l a r e t c n o wt h ea v xo sh a sb e c o m e as y s t e mw h i c hi s c o m p a t i b l ew i t hw i n d o w so s t h ea 。v xo sk e e p st h ep r e v i o u s m e r i t sa n dc a nr u nt h eo l da p p l i c a t i o n sw i t h o u ta n ym o d i f i c a t i o na n di to f f e r sa f r i e n d l yu s e ri n t e r f a c e s t h ea u t h o rm a k e st h ew i d es t u d yo ft h ea 。v xo s ,a n d e m p h a s i z e s 0 nam o d u l a r b y t h en a m eo fo p e n b a s ew h i c hi su s e dt oc o m m u n i c a t i o nb e t w e e na 。v xa n dw i n d o w s t h ea u t h o rt a k e sp a r ti nt h ed e s i g na n di m p l e m e n to fa c c e s s c o m p o n e n t o p e n b a s e s u p p o r t st h ea c c e s so f a v xa n d w i n d o w sf r o me a c ho t h e r t h ec o m m u n i c a t i o nm e t h o d o fw i n d o w sm o d u l a ri sn a m e d p i p e a n dt h em e t h o db e t w e e na v xa n dw i n d o w si s m e m o r ys h a r i n g t h ea c c e s s c o m p o n e n ti su s e dt oa c c e s sa v xa p p l i c a t i o n sf r o mw e b a p p l i c a t i o n t h ea c c e s s c o m p o n e n ti s o n eo fe x a m p l ea p p l i c a t i o ni nu s i n go p e n b a s e i n t e r f a c e t h o u g h t h es o f t w a r eh a sb e e nr e l e a s e da n di ti sac o n v e n i e n ts o f t w a r ef o rt h eu s e r s w h ow a n tt oa c c e s sa p p l i c a t i o n sb e t w e e na v xa n dw i n d o w s ,i ti sn o te n o u g h i nt h e e n do ft h ep a p e r , t h ea u t h o rs t u d i e st h ef a u l to ft h es y s t e ma n dp r e s e n t st h em e t h o dt o i m p r o v ei t , k e y w o r d s :a - v x ,o p e n b a s e ,a c c e s s c o m p o n e n t ,c o m ,n a m e d p i p e ,d d e ,m e m o r y l e a k , s o f t w a r ee n g i n e e r i n g 2 西北工业大学硕士学位论文 研究背景 引言 a v x 系统是一个运行于办公服务器和p c 服务器的操作系统。它的前身是一个独立 的操作系统主要是用于一些商用服务器。随着计算机领域的发展,i n t e l 指令和w i n d o n s 系统已经渐渐成为p c 的主流为了适应新的环境,使得以往的程序能够继续运行,于是 产生了构筑在w ir t d o w s 上的崭新的av x 系统。目前的a v xi v 系统是安装在 e x 口r e s s 5 8 0 0 6 0 0 系列服务器之上运行的,可以使得以前的办公应用软件在w i n d o w s 的环 境下运行。在办公处理器和p c 服务器共享环境下,它还可以从办公处理器转换到p c 服务 器上工作。 a v x 和w i n d o w s 是完全不同的两个系统,自己都拥有自己独立的汇编语言。所以将 av x 构筑到w i n d o w s 的过程中,两者之间的通信就成为其中一个很关键的部分。从2 0 0 1 年起笔者开始参与a v x 系统的研究与开发。a v x 系统作为一个操作系统它有以下几个特 点。第一,a v x 是主机集中型的系统。所有的业务程序都是在服务器端运行的,客户端 进行画面的显示及处理数据的输入输出处理。在p c 客户机上,有一个称为p c w se m u l a t 。r 的程序实现了该功能。a v x 实际相当于一个可以利用p c w se m u a t o r ,w e b 浏览器等来 进行集中化管理的一个系统。第二,它具有良好的扩展性。同一个程序不论是在单独的系 统还是大规模的系统上都能很好的运行。系统的规模也容易扩展,并且系统的移植也很容 易实现。这样就能很好的抑制开发成本的大幅度的增长。第三,该系统有很高的可信赖性。 一般情况下,错误不容易发生,一旦发生错误,系统的错误恢复设计可以帮助用户恢复系 统。第四,系统的开放性。它具有活用最新的i t 技术的基础接口,可以随着时代的发展 不断的扩展该系统。除了有稳定的内核系统和最新的i t 技术的组合应用外,还不断提供 新的解决方案。 作者所承担的工作 在整个论文准备期间,首先作者系统地学习了a v x 系统的整体构架,然后重点研究 了a v x 和w i n d o w s 之间的连接部分,并在学习的基础上对通过w e b 访问a v x 的c o m 组件 进行了改造,使得这个组件能为用户提供更多的方便。整个学习及开发的过程历经了一年 多的时间。在程序的改造过程中严格的按照软件工程的思想进行开发,从开发计划书, 功能设计书,详细设计书,编码到测试阶段,都做了详细的文档记录。在此基础之上,我 完成了本篇论文。 5 垂垄三鼗褰兰璧圭兰壁蕊塞 本文的研究内容及缀织结构 率文对a v x 系统避行了研究,重点潮述了a v x 鞫w j n d o w s 之间鼬邋讯及一个舆体酌 逶落应爱窭翻a c c e s s o b j e t 豹实现鞫释教中渗及妥豹魏静阕鼹。 全文的缀织结构如下: 蓑言:综述奉文瓣麟突鹜景帮缀缎结稳。 第一章:综述a v x 系统,介绍了a v x 系统的发艇掰史和现状,总体结构,戳殿该系 统自身的功自葶特点。 第二章:主要介绍a - v x 尊w i n d o w s 之间的桥梁之一o p e n b a s e + 介绍了o p e n b a s e 豹特鑫,设诗豢理程莰请缝擦。 第三鼙 楚鲤聋: 第五章; 臻轰镬: 讲述一个藏嫣o p e n b a s e 潺讯靛实翱献i n t e r n e t 诲阏a v x 静c 蝴对象 a c c e ss c o m p o n e n t 。本章首先讲述了一部分c o m 的知识,其次主疆讲述了 a e c e s s e o m n e n 数主要的对象秘其方法鹊实理。她辫,述漤述了a v x 鞍 w i n d o w s 戆转换遗翟中豹羁苇转换淹题。 主要结食蜜筑介绍如何对内存泄漏的阏越遴行测试张调试。 通过笔者程察黼开发中的经验和教调来讲述软件工程举柱察际歼发过程中 是如何进行斑用靛。 总结了本文联敷褥翦一些成鬃,摄窭系统中需要惫善黪遗方。 8 西北工舭大学硕士学位论文 第一章a v x 系统概述 i 1 a v x 系统概述 a v x 系统魑一个运行于办公服务器上的操作系统。现在该系统已经构筑到了 w i n d o w s 麴平台上,靼办公鼹务器本身的撵童笮系统楚w i n d o w ss t 2 0 0 0 ,a v x 手# 走一 个中间软件来管理的a v x 部分的畿源。虽然从w i n d o w s 的角度来看,它只是一个应用 稷序,但是从它的内部来器,它遗愿一个完整的操搏系统,京拥有自己独立的通信管 理,执行管理海存管理,文件系统,作业管理等等的模块。并且拥有自己独立的i 潆 汇编指令。 1 。2 办公服务器和a - v x 系统的发展 由于办公服势器的操作系统就是a v x ,两者在某种程度上可以糟戚是一个事物。 艇鞋办公服务器戆发展也就是a v x 系统的发展。该办公骚务器主要怒用于事务处理, 包括销售管理,财务管理,供给管理,生产管理等。它是硬件和操作系统的一个总称。 该系统最早是从1 9 6 1 年开始发展起来的,采用1 6 披芯片的c p ,利用一种称之为多 = i = 作站的原理设计丽成。刘了7 0 年代末期,开始改为会话型的操作系统,称为i t o s , 也就是驴v x 的前舟。8 0 年代中期,该系统发展到可以支持l o 个到8 0 个的p c ,并且 鼯始粟鬟3 2 往黪c 疆。8 0 年我末黝9 0 年代秘,它穗麴了更多豹齑瓣经理,办公垂葫 化处理,以及用多个客户机和一个服务器来构造一个系统等功能。到9 0 年代初的时候 该服务器妁设计巾藏开始爨穿了客户鼹务器模式嚣擞念。 到这个时候为止,该办公服务系统采用的一直都是其自已的c p l 指令( i d p c p l ) 。 此时,世界计算枫领域随饕p e 的发展,l a t e l 指令及w i n d o w s 系统融经渐激成了p c 的主流。这样使自穗的程芹能够在w l s d o w s 上运行也髋成了该开发的焦点。为了使av x 嶷w i n d o w s 的环境下可以运行,在1 9 9 5 年办公服务器系统进行了一个巨大的变革,开 始采用¥ p sc p u ,及w i n d o w sn t 3 + 5 敲为警艺的基璃。1 9 9 7 每,袅了菱获落瑗强瑟嚣 髯的i t 技术的发展a v x 又移植刘了i n t e lc p u ,w i n d o w ss t 4 0 的环境上,变成一 个殍教热豹系统,忿鞋豹办公服务器嚣为e x p r e s s5 8 0 0 6 0 0 系列。出予交成了一个嚣 敝的操作系统,所以在这个系列的产品中实现了与戚用程序,数据库i n t e r n e t 等技术 的结合。至4 现在为止与w i n d o w s2 0 0 0 x p 对应的产黯也已经发行了。 7 西:l t i 业大学硕士学位论文 1 3 a v x 系统的总体结构 a 一¥x 系统避用汇编语言开发豹应雳谨办公服务器上静一个揉平# 系统。该系统在 开放化前与开放化后的体系结构中有一些明显的变化。 密l 一1 舞a - v x 舞蔽诧蔻鑫熬体系结构 较嚣。 av x 娩务程序 ic p q 3 $ i 、i _ z 一一7 、1 r 一、】i 一7 l0 毒0上 | :c o s o l 犏译器li 跚a r t ( 简易语言) l 系统应用程序i系蟪生成 j ! 耋羹萋? 耋i 耋 wv s s x ,e lp 薹 。n 萋 l t l 执行管理 歼放化前 垂t - 1 由上面两个图的比较可以看出, 1 。t d p 解释器 一v x 业务槲序 j 喜ji 娑jt o ,0 芸j j ,。一j j 董! 一! l |l o p 解释器: 一一 系统应用羁序系统生j 揽 f“”1一一 i执行管理j 。hq*_。一一 g ae e w a y 模块( g g ) i n d o w s 2 0 0 0 n t ,v x 驱动程序j i 一 l c p u :i n t e l 棼片 ; i。“。“+。 开放化后 开敫纯髓嚣俸系毙鞍骜 主要有咀下几个部分做了较大的改动 i d p 解释嚣是用i n t e l 的汇编指令所写的。i d p 解释器的作用溅把原采用i d p 汇 编措令所骂的命令转换成i n t e l 的汇编指令,这样程序就可以在以i n t e l 指令 为基础的w i n d o w s 上运行了。也就是说,班静豹a v x 的部分0 s 或& p 穰序等基 本不用改动,通过这个解释器就可以在新的w i n d o w s 上运行了。这样的结构使 褥胡户孬戳继承戳旃豹软释资产,舞发残本巍藏垂然酶绦了。 2 a - v x 操作系统模块 熬个a 一¥x 撩佟系统模块( 糖终韭譬溪,找学罄理,遴信管瑾等等 在拜放诧以 前完全是熠i d p 汇编指令实现的。开放化之蔚的体系中,比较兼键的横块都己 8 一 w s 警理一 一 通信管琏 一 一 一匿用管理 一 一 作业管瑷 一 数据痒 一 | 数摆嚣建 一 蟊就工韭大学硕士学傻论文 经改霜i n t e l 翁撵令亲蜜现了。这撵擞熬毽的是兔了提裹系统嚣运行速疫。虽 然这些鲁口分也可以通过i d p 解释器来执行,但如果那样的话势必会造成速度上 一定的损失,作为核心模块速度跫非常重饕的一个困素,所以进行了改造。从 】d p 指令到t n t e 指令的转换是用专用的苴具进行的自动转换而生成的。除了 已经用i n t e t 指令实现的部分之外,还有一部分仍然是以前的i d p 指令模块。 3 g w ( g a t e 耗y ) 模块 这部分实际是i d p 的固件部分。宦在w i n d w o s 上是以动态库d l l 的形式被加载 静。这郏势是a 一¥x 霹w i n d o w s 熬辑粱,挢疆是# 鬻关键的部分。蹩臻c c + + 实现的。 4 a v x 的驱动程黟 它的佧糟是用来驱动和控制办公服务器专用的外部设备。这个功麓墩兼容 t o s 时代所支持的所有外部设备。 图l 一2 为一个更加详细的a v x 目前的体系结构图。 丽手 一一 披! j v x 监努程序 | 系统童藏 | = s o r t = m r g e ( d p 命令) r d b 月e 势 系统应用程序i i d p 解释器 a v x 涎模块 毒 ( i n t e l 裔夸) a v xo s 模块 ( 作业管理,运用管理, 数据静理。执行管理等) ( i o p 蠹夺) t i g 髓v 模块眦) i w i n 3 2 予系统 系统服务 痣援 ¥驱i n 动d o 程w s 序0 s驱动a 稳v x 序 h a l ( h a r d w a r ea b a t r u c t i o nl a y e r ) i a t e i 薅片 图1 - 2 开放化后的体系结构图 9 一 一一 嚣北蔓业大学硕士学嫂论文 l 。4 a v x 系统的功鼹及特点 a v x 是个操作系统,所以它的基本功能和其它的任何一个操作礤统是基本 藕嗣鹣。对象统豹资源进雩亍餐理帮势酝,其中艇捶箨韭管淫,戴行营理,内存管骥, 文件管理等等的内容。它的文件系统比较特殊,和w f n d o w s 下的文件系统是截然不 弱麴,这样妁疑计主要是因为该系统鼹用于办公擞务器的操作蒜缆,为了文锋处理 更蕊方便。 a v x 你为一个操作系统它有以下几个特点。 主瓿熊孛型静系统:辩商蘸遂务程亭帮难在驻务器渍运行憋,客户端送行凝 面的照示及处理数据的输入输出。在p c 客户机上,谢个称为p c w s e m u l a t o r 憨程痔实蕊了该凌畿。a q x 实际糖当予个霹黻爨囊躐b 溺蔓器; p c w se m u l a t o r 等来谶彳子集中他管理的一个系统。集中化使得服势器的管理 变褥蹩搬方便+ 疆且也莹鳃了蟹理成本。 其有窿好的扩展性:系统静规横容易扩餍。并且繇统的移檀也穰容易实现。 这样就能很好的抑制开发成本的丈幅度的增长。 其青较嵩懿哥攘较萑。觳情援下,错误不吝茹发生,一曩发生镫误,系绫 的错误恢复设计可以帮助用户漱复系统。 系装静设诗篡霄舞藏瞧。宅其鸯可鑫裂麟覆薪鹣f 蓑术麴基露菠翻,可以 随着时代的发展不断的扩展该系统。目前已经和数据库,膨用程序, n l e r n e c 程好勰结合在起豫了骞稳定鹣内菝系统鞠最蓊的i t 技术约组台虚弱外, 还不断提供薪的解决方案。开放性拓展掰如下所示。 1 0 n 铷蘸翡 电于邮件 西北工业大学硕士学位论文 1 5 小结 本章介绍了a v x 操作系统的概述及其该系统发展的历史状况。对a v x 移植到 w i n d o w s 前后的体系结构进行了对比,从而为下面几章的讨论奠定了基础。a v x 和 w i n d o w s 这样的异构系统通信的关键也就体现在它的移植过程之中。最后还对该系统 自己的特点进行了说明。 1 1 西北工业大学硕士学位论文 第二章a v x 与w i n d o w s 之间的桥梁之一 - o p e n b a s e 能实现a v x 和w i n d o w s 之间通讯的工具有很多o p e n b a s e 就是其中的一个代表。 本章和下一章我们将主要以o p e n b a s e 为中心介绍a v x 和w i n d o w s 以及w e b 之间的通 信的实现。 在此我们先介绍几个本章中出现的基本概念: a - v x a p :主要是指在a v x 上用c o b o l 编写的一些用户应用程序。 w i n d o w s 组件:主要是指应用在m a i l ,w e b ,f a x 等上的组件程序。 格式文件:a - v x a p 和w i n d o w s 交换数据时用到的一个信息格式文件。 虚拟文件:a v x 和w i n d o w s 通信时用到的一个临时的中间文件。 2 1o p e n b a s e 概述 o p e n b a s e 的主要功能体现在三个方面。首先它提供了av x a p ( a p p li c a t i o n ) 和 w i n d o w s 组件之间的数据通信功能;其次对于a - v x a p 来说,它提供了对l n k 设备 ( o p e n b a s e 用的虚拟设备) 上的顺序文件的访问功能;最后对于w i n d o w s 组件来说,还 提供了启动a - v x a p 程序以及经过启动的a - v x a p 来访问上述的l s k 设备上的顺序文 件从而达到和a - v x a p 交换数据的功能。w i n d o w s 组件和o p e n b a s e 的通信是由命名管 道连接的。w i n d w o s 组件通过命名管道,根据所得到的格式文件的定义信息,对于 a - v x a p 发出的数据输入输出请求来收发数据。 图2 - 1o p e n b a s e 总体结构图 由于o p e n b a s e 要连接a v x 和w i n d o w s ,所以它本身的设计也是跨越在两个系统之 1 2 西北工业大学硕士学位论文 上的。o p e n b a s e 是由三个大的模块构成的,分别是o p e n b a s ea 姗o p e n b a s e p a g w , o p e n b a s e b r i d g e 。其中o p e n b a s e 一州r 完全位于a v x 侧是和av x a p 之间进行数据 通信的模块;o p e n b a s e b r i d g e 是在w i n d o w s 侧的一个e x e 程序,是和w i n d o w s 组件进 行数据通信的模块;o p e n b a s e p a g w 正如它的名字那样是一个g a t e w a y ( 网关) ,所以 它也就是介于a v x 和w i n d o w s 之间的一个模块,用来进行av x 和w i n d o w s 之间的数 据通信。该模块是一个w i n d o w s 上的一个d l l 存在的。 图2 2o p e n b a s e 内部通信示意图 2 2o p e n b a s e 的通信 由图22 我们可以看到a v x 和w i n d o w s 之间的主要通信方式。在o p e n b a s ea m r 和o p e n b a s e p a g w 之间用的是d d e 通信方式,在o p e n b a s e p a g w 和o p e n b a s e b r i d g e 之间用的是命名管道来通信的。 首先我们来看一下d d e 和命名管道的概念。 d d e 通信 d d e ( d y n a m i cd a t ae x c h a n g e ) 是进程问通信( i p c :i n t e r p r o c e s sc o m m u n i c a t i o n ) 的一种方法。进程之间的通信主要是由进程之间的数据调用和事件的同步等构成的。 d d e 是利用系统共有的内存来传递数据利用协议来进行同步的一种机制。 命名管道 命名管道( 、a i i i e dp i p e s ) 也是进程问通信的一种机制。命名管道可以在同一台计算 机的不同进程之间,或在一个跨越网络的不同计算机的不同进程之间支持可靠的, 单向或双向的数据通信。它实际是建立了一个客户机服务器的数据通信体系,可在其 1 8 西北工业大学硕士学位论文 中可靠的传递数据。用命名管道来设计应用程序不需要深入的掌握网络基层传送协议 这是因为它利用了微软网络提供者重新定向器( m s n p ) ,在一个网络的各进程之间建立 通信。命名管道充分的利用了w i n d o w sn t 2 0 0 0 内建的安全机制。对于命名管道服务 器和客户机来说最大的区别在于:服务器是一个唯一有权限创建命名管道的进程,也 只有它才能接受管道客户机的连接请求。对于一个管道客户程序来说它只能与一个 已有的命名管道服务器进行连接。它的限制在于该机制只能用于w i n d o w s 应用程序的 进程通信。 由上面们可以知道o p e n b a s e a m r 和o p e n b a s e p a g w 之所以采用d d e 通信的原因 了。o p e n b a s e a m r 不是w i n d o w s 的应用程序,所以它为了和o p e n b a s e p a g w 传递数据, 只能通过共享内存的方式来实现。所谓的共享内存就是指通信的应用程序的双方,一 方将要传递的数据放到双方都可以访问到的一个内存地址中再将地址通知对方,另 一方就从相应的地址将数据取出来。o p e n b a s e p a g w 和o p e n b a s e b r i d g e 都是w i n d o w s 的应用程序,所以用命名管道来通信。o p e n b a s e b r i d g e 和w i n d o w s 的组件之间也是 用命名管道来通信的。在命名管道的服务器和客户机端要传递的数据既可以单向传递, 也可以双向传递。 2 3o p e n b a s e 的内部处理 2 3 1 各部分的相连关系图 o p e n b a s e 从大的分类来说可以处理两种类型的作业。一种是a - v x a p 主导的,这是 由a - v x a p 程序发出调用o p e n b a s e 的请求。另一种是w i n d o w s 组件主导的,这种是由 w i n d o w s 端的组件来发出调用o p e n b a s e 的请求。在整个调用过程中各部分的关联图如下。 匪三f 逗卦匝困 o o p i p e 1 。l o 巨三互 图2 - 3 系统启动时运行关联图 1 4 嚣j 王嬖大学磺士学筏论文 2 a - v x a p 主导型的作业 图2 - 4a - v x a p 主导型的作业 : n d o w s 主爵型的作业 图2 - 5w i n d o w s 主导型的作业 2 3 2o p e n b a s e a m r o p e n b a s e 一栅r 楚用a v x 的i d p 汇编语京实现的横块。这熏先介舔下下文中出现的 几个主要的i d p 汇编中的关键词。 g r :撼位鹣寄存器,该系统支持l s 个1 8 毽戆寄存器。 b r :3 2 位的寄存器该系统支持1 6 个3 2 位的寄存器。 l i c b ;程痔豹入臼逮撼。 1 5 珏北工业大学硕士学位论文 s v c :i l d p 汇编指令中的一条系统调用的指令,其后的参数不同表示不同的功能。本 文用到的主要有以下几个: l 宏名称 i c 0 d ef c o d e主要功能 i 。p e x 0 70 1 0 0醚输出模式打开文 孛 1 0 0 0咀输入模式打开文件 l t t 0 0疆输入羧爨攘式扛秀文箨 l c l o s e0 60 0 0 0关闭文件 | g e t 0 64 5 0 0读记录 i p u t0 6c o o o写记录 o p e n b a s e a 拣的主要簸理如下: 1 在a v x 系统启动的时候,创建系统任务启动宏的参数,然后启动o p e n b a s e 服务。 弗遴鲡o p e n b a s e - p a g w 这个任务已经生成了。 2 o p e n 处理 壤撵a - v ) ( a p 约o p e n 豹请躐,生成o p e n b a s e a 、i r 用麴控皋4 块。调用系统初始他 处理中的对应接口。随后路o p e n b a s e p a g w 发出o p e n 的命令,并且给a - v x a p 返回一个响应。 3 判断作业的类型,是a - v x a p 启动的类型,还是w i n d o w s 组件启动的类型。 4 。r e a d w r i t e 处理 解析a - v x a p 传来的读写请求,绘o p e n b a s e p a g e 发出读写的命令并且给 a - v x f i p 遐回一个响应。 5 c l o s e 处理 熬辑a - v x a p 转采瓣c l o s e 游请求,绘o p e n b a s e p a g w 发密c 。o s e 鲮玲令,劳艇 给a - v x a p 返回一个响应。 1 6 一一 亘i ! 三些盔堂堡主堂焦迨塞 6 如果是在w r i t e 之后发出c l o s e 命令,给o p e n b a s e p a g w 发出释放虚拟文件的命 令。 7 e r r o r 处理 a - v x a p 侧发生了错误的时候,给o p e n b a s e p a g w 发出错误的通知。 2 3 3o p e n b a s e p a g w o p e n b a s e p a g w 是o p e n b a s e 的网关的部分。它的主要处理如下: 1 系统初始化处理 该模块在a v x 系统初始化的期间被a v x 系统的p a g w 模块所调用。通过它来确保 o p e n b a s e a m r 和o p e n b a s e b r i d g e 的连接是否正常。并且向o p e n b a s e - b r i d g e 发 出管道连接的请求。 2 数据传输处理 1 ) 用g w 调用的方式处理o p e n b a s e a i , t r 传过来的命令,通过命名管道给 o p e n b a s e b r i d g e 传递数据。 2 ) 从o p e n b a s e b r i d g e 取得了与o p e n w r i t e c l 0 s e 相对应的响应,将其返回给 o p e n b a s e a m r 。 3 ) 与r e a d 命令相应的响应是把从o p e n b a s e b r i d g e 取得的数据传递给 o p e n b a s e a i i r 。 3 获取错误信息 该模块还可以激活获取d u m p 信息的事件,这样在a v x 系统的d u m p m a in 中调用该 模块就可以将程序运行失败时错误信息写进d u m p 文件中。 2 3 4o p e n b a s e b r i d g e o p e n b a s e b r i d g e 是与w i n d o w s 组件直接打交道的一个部分。 1 系统初始化处理 该模块是在o p e n b a s e p a g w 启动的期间被启动的。在启动的时候,主要是三个命 名管道的连接工作。 j )与* l n k b * 服务连接的命名管道的相关处理( 客户端) 2 )与o p e n b a s e p a g w 连接的命名管道的相关处理( 服务端) 1 7 西北工业大学硕士学位论文 3 ) 与w l n d o w s 组件连接的命名管遂的福关簸理( 服务端) 主避程一鸯娃子篌湃获态,稽是否鸯管遭懿遥接请求,当喜请求静时靛,迸孬瓣 道连接,生成新的线程来处理数据的传输。 2 。a v x a p 圭譬型豹暇务 1 ) 根据o p e n b a s e p a g w 传米的o p e n 的请求,启动w i n d o w s 组件。 2 ) 在处理o p e n 的过程中,生成辫簧用于存储数据的虚拟文件。 3 ) 在处璎c l o s e 命令的时候,将格式的头信息及纛按文件中的数据一起傣给 w i n d o w s 的组件。 3 w i n d o w s 缀释主导瓣瓣务 1 ) 管道遴接上之后,生成一个虚拟文件来存放从w i n d o w s 组件取得的数据。 2 ) 摄摆盛魏a - v x a p 的谚衷,楚翅“a v x 关联臻盘豹启动”豹接盈来扈秘 a v x a p 。 3 ) 根据r e a d 命令搀虚拟文博中的数据传递给o p e n b a s e p a g w 。 4 ) 在处理c l o s e 命令的时候。将格式的美信息及纛拟文件中的数掭起传绘 w i n d o w s 的组件。 2 4o p e n b a s e 处理的作业类型 翦垂我钧已经掩剿过了o p e n b a s e 蜀戳处溅夔终韭瓣类型,避一小缕中鼗嚣j 薅 来详细的看一下不同的作业类型对应的具体的处理。o p e n b a s e 可以处理的作业类 型纲分可以青7 种类型。 w i n d o w s 组件主导的作般; 1 只闵来启动a v x a p 的作业 2 只囱a - v x a p 发送鼓摊的俸效 3 只从a - v x a p 接收数据的作业 4 。帮嚣戮发送叉可蕊接牧数据驰终韭 a - v x a p 主导的作业; 5 ,只囱w i n d o w s 组件发送数据的作业 6 向w i n d o w s 组件发送数据然后将结果遥匿a - v x a p 的侔监 7 即可以发送又可以接收数据的作业 本文我们褥套缁两种最复杂懿形式,冀德戆篱鼙的模式毽就夔含程其中t 种是a - v x a p 主导收发数据的另一种是w i n d o w s 组件主导的收发数据的作业。 囊一静襄彀下一牵中捧详细弱奔绍。 a - v x a p 主导的送发数据的作般模式 这种类型黥作业是由a - v x a p 开始肉# i x 嬲组件发送数据,w i n d w o s 组件侧的 处理绪果再避豳给a - v x a p 的一种作韭模式。具体处理j 璧程图示如下。 1 8 西北工业大学硕士学位论文 o p e n b a s e - a m r o p e n b a s e - p a 盯? o p e n b a s e - b r i d e e c r p a t e p r o c 扔始化管道 c r e t a t e n a m e d p i p e o p e n 命令 c o n n e c t n a m e d p l p e 卜 o p e n 请求( o u t ) c l e a t p f i l e 管道连接 获取a - v x a p 信息 韧始化管道 c t e p r o c e s s 组件启动r 7 管道连接 返回状态值 取得进程【d 睦成虚掇文俐 ,、 接收数据一r e c v ) n 卜、一一 w r i t e 请求 ”i t e 命夸 - 叫虚拟文件 l 。 返回状态值 i ( 6 4 k ) 1 u 、 c l c g e 命夸 性拟文件的访问l输出数据 c l o s e 请求 嘲除虚报文件| 接收数据( r e c ) l 等到组件侧散 f o p e n 通知 o p e n 赍夸l 棍蚰小字磋 o p e n 请求( i 0 )r 、 返回状态值 c h e c k 请求 1 晾i t e 请求 7 。 v i r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论