“汇编语言程序设计”课程教学方法的探讨.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流“汇编语言程序设计”课程教学方法的探讨.精品文档.“汇编语言程序设计”课程教学方法的探讨 摘要:本文结合校级教改课题,从教学方法、考核方法等方面对“汇编语言程序设计”课程进行了探讨。<br>关键词<br>本文来自:计算机毕业网 :汇编语言程序设计;教学方法;探讨<br><br>1引言<br><br>学生普遍反映汇编语言难于记忆和理解,甚至编了一句顺口溜“汇编语言不会编”。因此怎样提高本课程的教学质量和教学效果是任课教师值得深思的问题。首先教师要告诉学生汇编语言的重要意义,从而激发学生学习这门课的热情。另外在教学中还应注意以下几个方面。<br><br>2加强上机实验<br><br>在本专业旧版教学计划中,汇编语言与计算机组成原理是一门课程,关于汇编语言的实验是20学时。而在新版教学计划中,汇编语言单独成为一门课程,实验压缩到10学时。实验学时缩短了,但是一些验证性实验又不得不做,因此我们将一些基本的验证性实验放到课外作业中,例如关于DEBUG程序的使用,可在进行汇编语言程序设计之前由学生在课下完成,让学生用DEBUG查看数和字符在CPU的寄存器和存储器中的存放方式、熟悉各类指令的功能和格式等,使学生加深理解所学的内容,又不占用课上的实验学时,还为后面进行汇编语言程序设计打下良好的基础,可谓一举多得。<br><br>3启发式教学<br><br>问是开启智慧之战的钥匙,是发明创造的萌芽,是启发式教学成功的关键。在教学过程中,教师要精心设计富有启发性的问题。例如存储器中数据的存储方式是一个重点内容,但是学生们难于理解同一个单元地址在不同的情况下为什么单元内容不一样。假设一个存储器的内容如图1所示。<br><br>若机器字长为16位,采用低字节存入低地址,高字节存入高地址的存放方式。要求学生说出30000H字节单元的内容是多少?大多数学生都会回答是01H。则教师再提问30000H字单元的内容是多少?提示学生因为机器字长16位,而每个单元地址中存放的是一个字节8位,则存放16位数据需要占用相继的2个字节,有的学生回答0102H,有的学生回答0201H。再进一步提示字单元的地址由最低字节的地址指定,则大多数学生都会回答0201H。然后要求学生思考一下30000H双字单元的内容是什么?30000H三字单元的内容是什么?从而引出以下的规律:<br>例如要访问内存单元30000H中的内容,若是访问n*8位的数据,则从30000H开始向高地址方向数n个地址即(30000+(n-1)H,内容从(30000+(n-1)H中的数据开始写,向低地址方向写直到30000H中的内容。<br>这样也将学生的好奇心调动起来,激发学生的学习兴趣。<br><br>4案例教学<br><br>由于本课程基本概念多、专业术语多,因此教师应该尽量用一些通俗易懂、贴近学生生活的例子进行教学。<br>寻址方式是重点也是难点,在讲解时可通过举例让学生易于理解。例如某班的班长负责发信,有个学生甲家里寄来了一个包裹,若是班长直接将包裹发给学生甲,这就是“立即寻址”的概念;若是学生甲知道包裹在班长处,去班长处取包裹,这就是“直接寻址”的概念;若学生甲不知道包裹在哪里,但是他知道班长有包裹单,而拿着包裹单就可以到邮局取包裹,这就是“间接寻址”的含义。通过这个例子,使学生易于理解寻址方式的原理。<br><br>5寓教于乐<br><br>为了便于学生掌握抽象的内容,可以在课堂上做一些小游戏,通过游戏学生在玩乐中轻松掌握知识。例如求出某条指令源操作数的物理地址,假设寻址方式是存储器寻址方式,则这个问题要涉及到以下4个步骤:<br>(1) 得出该指令的源操作数的寻址方式;<br>(2) 得出源操作数的有效地址,该地址是逻辑地址;<br>(3) 判断源操作数所在的逻辑段;<br>(4) 将逻辑地址转化为物理地址。<br>在这4个步骤中,前2步学生基本上都能算对,难在后2步。后2步的过程如下:<br>(1) 根据源操作数,判断所在的逻辑段,得到16位段寄存器中的段基值;<br>(2) 将16位的段基值左移4位,即段基值后面补4个0,得到20位的段基址;<br>(3)20位的段基址与16位的逻辑地址相加,得到20位的物理地址。<br>对于这样的问题,课上可以通过小游戏帮助学生理解逻辑地址和物理地址之间的转换。我在课上设计了这样的一个游戏:假设学生宿舍号由6位组成,设为a1a2a3a4a5a6。a1a2表示宿舍楼号,a3a4表示宿舍所在的层数,a5a6表示房间号。若一个学生住在5号楼5层5房间,则该生的宿舍号就可以表示成050505。<br>请4个学生到讲台上,分别表示4个宿舍楼:1号、2号、3号、4号共4个楼,其中1号楼住的是园林专业、信息专业、计算机专业、城规专业的男生,2号楼住的是地信专业、历史专业、法律专业、政治专业的男生。3号楼住的园林专业、信息专业、计算机专业、城规专业的女生,4号楼住的是地信专业、历史专业、法律专业、政治专业的女生。另外再请4个学生到讲台上来,告诉他们专业、性别、宿舍所在的层数和房间号,要求他们写出学生的宿舍号。在这个游戏中,学生的宿舍号对应于物理地址,宿舍所在的层数和房间号对应于逻辑地址,专业对应于逻辑段。假设计算机专业的某个女生,住在10层30号,要求写出该女生的宿舍号,则可以按照以下步骤写出宿舍号:<br>(1) 确定宿舍楼:因为是计算机专业的女生,则她住在3号楼,记为03;<br>(2) 确定宿舍号的高两位:将楼号左移4位,记为030000;<br>(3) 确定宿舍号的低4位:将层数和房间号拼接在一起,记为1030;<br>(4) 确定宿舍号:将(2)、(3)步得出的内容相加,即030000+1030=031030,即是该生的宿舍号。<br>在以上步骤中,第1步与“判断源操作数所在的逻辑段”相对应,第24步与“将逻辑地址转化为物理地址”相对应,学生在这个游戏中轻松地掌握了求出某条指令源操作数的物理地址后2步的方法。<br><br>6改革考核方式<br><br>汇编语言的指令繁多,每种指令的用法又多种多样。例如MOV指令,它有多种传送方向,如图2所示,学生掌握起来非常困难。而汇编语言程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,重点在于“程序设计”,而不是语法规则。因此,在考试中考虑采用开卷考试,使学生在学习时将重点放在解题思路上,而不去死记硬背各种指令的不同用法。如果条件允许的话,可以采用笔试与上机考试相结合的方式。闭卷考试的侧重点在于填空题、选择题、判断题等,主要是一些概念题,而有关程序设计的内容放在上机考试中。在上机考试时,要求学生在规定的时间内将程序编写出来并调试通过。 <br><br>参考文献<br>1 徐洁,俸远祯. 计算机组成原理与汇编语言程序设计(第2版)M. 北京:电子工业出版社,2005.<br>2 黄剑玲,廖宇凡. 汇编语言程序设计的教学改革与实践J. 上饶师范学院学报,2005,25(6):75-78.<br> </p> <p> </p> <p> </p> <P>浅谈小学语文多媒体课件制作</P><P>关键词:小学语文;多媒体教学;Authorware;交互式 <BR>摘要:小学语文是儿童的语言启蒙课,用Authorware制作的小学语文课件能够针对小学语文的学科特点、小学生的心理和认知水平,从教学实际出发,精心组合多媒体中各要素,实现课件最优化,为学生自主学习、协作学习和探究性学习创设良好的学习情境。 </P><P><BR>Primary language multimedia courseware <BR>Chen Xinghua <BR>(Langfang Normal College,Langfang065000,China) <BR>Abstract:The primary language is the language of enlightenment classes of children with primary language Authorware courseware can be produced for the primary language of the subject characteristics, psychological and cognitive levels of pupils from the reality of teaching, carefully combined the elements of multimedia,optimization in Courseware for independent learning,collaborative learning and inquiry learning create a good learning situation. <BR>Keywords:Primary language;Multimedia teaching;Authorware; <BR>Interactive <BR> <BR>随着计算机的飞速发展,多媒体教学成为现代教学手段最重要的组成部分,课件是开展计算机辅助教学的一种基本的教学软件,其设计方法直接影响到课件的开发质量和课堂教学的实际效果。Authorware作为一款课件开发工具,以其强大的交互式设计功能成为课件制作中最重要的一部分。 <BR>一、Authorware对于小学语文教育的重要性 <BR>小学是儿童养成良好学习习惯和学习兴趣的最佳时期,小学语文教育更是如此。传统的语文教育方式有着太多空洞的说教,已不能完全满足儿童对当代复杂多变的社会的认知情况,多媒体技术的兴起恰恰填补了这方面的不足,计算机辅助教学(CAI)的出现更使现代教育如沐春雨。多媒体技术和教育的有机结合突破了时间和空间的限制,使在传统教学中原本很抽象的知识变得一目了然。 <BR>Authorware是一款交互式多媒体应用程序创作工具,它能够很好的支持多种格式的多媒体文件,并能够把这些多媒体文件集成到一起,这在语文教学中能够体现出极大的表现力,其制作出的软件所具有的交互功能更能够增强教师与学生之间的互动,使课堂内容精彩,气氛活跃。 <BR>二、Authorware 课件在教学中所发挥的巨大作用 <BR>(一)通过Authorware真实情景的再现和模拟,培养学生的探索、创造能力。多媒体对培养学生的思维能力有独特的效果,它能让学生充分感知事物,化抽象为具体,丰富学生的思维内容,加强思维的广度,提高思维的灵活性,强化思维能力。在教学过程中,为了体现学生的主体作用,可以视具体内容调整讲授顺序,增加学生思考的内容,另外可以通过设疑,抓住思路,促进学生思考,提高学生参与程度。在教学过程中可以通过层层设疑,引导学生思考。 <BR>(二)多媒体是现代教学工具,在教学中确实可以提高一定的教学效果,但它并不是提高教学效果的灵丹妙药,过多地追求和利用多媒体的使用功能,会导致学生感觉是看教师演戏,这是一个误区,一堂好课应该教师是导演,学生为演员,课的效果好不好主要看学生的反应,这恰恰说明了教师组织课的能力,所以不应一味追求教师为主导,更要铭记学生才是教学的中心。 <BR>三、用Authorware设计小学语文教学课件 <BR>能够讲出一堂精彩的语文课,不如说是导演了一出好戏。一节课的成败直接影响着学生的学习效果。一出好戏要有合适的场景,好的演员和巧妙的构思。Authorware能够将多种格式的多媒体文件有机地集成到一起,起到丰富课堂内容优化课堂结构的作用。 <BR>(一)建立素材库 <BR>制作教学课件经常要用到底纹、壁纸、效果声音等素材,建议需要制作课件的人建立一个适合于自身特点的素材库,这样就不必每次都要花费时间去寻找这类素材了。而且每次做完课件所用的素材最好也要进行入库,但要选择最常用的。对自己的素材库进行分类管理,这样也方便了查找,节约了时间。例如大类可以分为图片、声音、视频、动画等,大类下又可以分出小文件夹来管理,例如图片有风景的,有花鸟鱼虫的,有军事的,有建筑的,还有可以用作按钮图标的,等等。 <BR>(二)巧用其他载体资源 <BR>随着CAI的飞速发展,电教教材与日俱增、不乏精品,并且有很多都已以光盘形式出版发行,还有当今发达的网络资源,数字化媒体资源,都是我们可以利用的有效资源。现在的Authorware7.0版本所支持的媒体文件格式广泛,可以在应用程序中整合播放DVD视频文件,支持导入PowerPoint 文件,等等,如果遇到不支持的格式,我们还可以利用媒体转换工具进行转换,例如很多视频格式文件都比较大,我们可以利用“格式工厂”将其转换为Flash格式的文件,这样的文件小方便导入,再加上大多数小学所能用到的资源都可以在网上找到下载,更是丰富了课件中的信息,使教学效果有了很大程度的提高。Authorware 还能够联机执行MP3、WMV、ASF等格式的流媒体文件,更是通过高压缩率和低带宽大幅度提高了联机程序的执行速度,增强程序的表现效果。 <BR>四、教学课件的设计总结 <BR>(一)既要以学生为中心又要体现教师的引导作用 <BR>一个教学课件要在发挥教师的引导作用的同时充分发挥学生的主观能动性,要让学生自己思考,通过课件里丰富的内容去感知知识的内涵。 <BR>(二)对教学情境要精心设计 <BR>一场精彩的电影,需要一个优秀的导演。一个成功的课件更离不开一个教师的精心设计,教学情境环环相扣,引导学生正确的思考,最终掌握知识,充分理解课堂内容所要表达的真正意图。 <BR>五、结束语 <BR>总之,语文教师只要合理的运用Authorware 的相关功能,结合对教学对学生的理解,就能够优质高效地开发出适合教学需要的多媒体教学课件。是未来的多媒体教学更加贴近学生,更加有效的服务于教育事业。 <BR>参考文献: <BR>1王华英主编.Authorware 7.0入门与提高J.清华大学出版社,2005年1月第1版 <BR>2李勇帆主编.现代教育技术概论J.湖南大学出版社,2001年2月第一版 <BR>3李勇帆编著.湖南省高等教育21世纪课程教材-计算机文化导论J.国防科技大学出版,2003年7月第二版第二次印刷 </P><P> </P><P> </P> </p> 摘要:针对高校应用型软件培养动手能力弱和职业素养差的问题,重庆文理学院大胆改革应用型软件人才培养模式,融合计算机科学与技术专业规范和Aptech课程体系,将目前软件企业中应用最为广泛的软件开发技术植入课程体系,有效地提升了学生专业技术能力和职业素养,提高了应用型软件人才培养的针对性和时效性。本文介绍了这一改革过程。<br>关键词:人才培养模式;职业能力;职业素养;课程体系<br><br>高校人才培养不能脱离市场需求,我校从2007年开始,对计算机软件人才培养模式进行改革,根据软件产业的发展和面向企业需求走校企合作之路,探索出一条应用型软件人才培养的新模式。校企合作办学两年来,我校软件工程专业的办学实力不断增强,师资队伍水平不断提高,应用型软件人才培养效果凸显。<br>1改革背景<br>目前我国软件人才不仅数量不足,而且结构失衡1,具体表现在缺乏软件开发职业岗位的实践能力,导致软件企业从高校招聘的人才必须经过几个月的职业岗位培训,才能真正胜任工作。毕业学生到软件开发工作岗位上要经历适应期,说明高校培养的软件人才与软件企业的职业岗位存在明显差距,其根本原因是软件人才培养模式不能适应软件市场发展所致。应用型本科院校的软件人才培养模式一般追随研究型大学人才培养模式的指挥棒,因此在应用型软件人才培养过程中存在以下问题。<br>1.1应用型人才培养目标定位不准<br>在研究型大学的指挥棒下,现有应用型人才培养目标趋同且泛化2,重视学科理论知识而淡化项目实践能力的培养,与应用型本科院校的定位不吻合,无法真正培养“实战型人才”,技术步伐也无法跟上高<br><br>速发展的软件业,因此固有的人才培育模式难以满足软件产业快速增长的需求。<br>对应用型本科院校开办的软件工程专业,其教学内容的设计和人才培养模式不应照搬全国示范性软件学院办学模式,而是应该切合自身发展定位形成具有特色的应用型软件工程专业人才培养模式,力求在遵循统一指导性方案的同时应突出与应用型人才培养相适应的知识结构特色以及课程体系,以培养适应市场需要的应用型软件专业人才3。<br>1.2教育内容与软件企业需求脱节<br>国内高校的教育内容与软件企业的实际岗位技能需求存在着差距,毕业生操作水平低,不熟悉软件行业国际标准,外语能力不够,职业素养差,导致每年软件专业的毕业生中只有20%的人能够直接进入企业工作4,而大部分学生进入软件企业前必须经过相当长一段时间的适应期或必须经过软件企业的职业岗位培训才能适应软件开发岗位工作。<br>1.3职业素养低<br>现有软件人才培养的课程体系中只涉及学生学科知识和专业操作技能的“硬”能力培养,而缺乏培养学生的非技能层面的“软”能力5,“软”能力是职业人在职业生涯中取得成功的不可或缺的重要因素,即职业化能力。学生进入工作岗位以后,无法适应软件开发工作岗位,具体表现在主人翁意识和责任感不强、语言表达能力弱、不善于沟通与协作、自信心不足等。<br>要想解决上述问题,一方面需要强化学校与软件企业间的合作,提升课程体系的企业需求针对性和实用性,使我们培养的应用型软件人才学科知识扎实、专业操作技能强,而且具备较高的职业素养,具备软件开发工作岗位要求的职业化能力。<br>2模式改革<br>我校应用型软件人才培养模式改革总体思路是在计算机科学与技术(软件工程方向)专业植入Aptech课程体系,以软件工程师培养为目标,以软件工程师职业岗位就业为导向,以课程开发和师资队伍建设为基础,培养学科专业基础扎实、软件工程技术能力强、技能熟练、职业素养高的实用性软件人才,实现学生毕业即就业的目标,走出一条适合我校发展定位的实用性、应用型软件人才培养新模式。<br>2.1植入Aptech课程体系,构建应用型软件人才培养新模式<br>重庆文理学院为探索应用型软件人才培养新模式,从2007年开始与软件企业合作,引入Aptech课程体系植入计算机科学与技术(软件工程方向)的课程体系,探索并践行面向职业岗位需求的应用型软件人才培养模式改革,以此增强学生的软件工程师职业岗位技能和职业素养,同时为了使毕业学生具备软件企业招聘的一年项目工作经验需求,课程体系中设置了26个项目,其中包括2个中型项目和一个毕业设计实践,在项目实践过程中,学生将完成近30000行代码,通过大量的、反复的动手实践,学生具备熟练、规范的编码和调试能力,真正成为有项目开发经验的人。<br><br>2.2应用型软件人才的能力要求<br>软件企业对软件人才的能力要求可以概括为硬能力、软能力和发展潜力。其中发展潜力是指学生必须具备扎实的学科知识基础,能够在职业岗位上保持较强的学习后劲;硬能力是指学生必须具备熟练的专业技术和技能,能胜任职业岗位的技术要求;软能力是指学生必须具有敬业精神、持续学习能力、沟通合作能力和写作表达能力。软件企业对软件人才的能力要求如图1所示。<br><br>图1企业对软件人才的能力要求<br>2.3应用型软件人才培养模式课程体系<br>根据软件企业对软件人才的能力要求,我们将课程体系分成学科专业基础课程、专业技术课程和职业素养课程等三部分,注重学生发展潜力、硬能力和软能力的培养。学科专业基础课程包括计算机数学基础课程和计算机学科核心基础课程,主要培养学生的后续学习的发展潜力;专业技术课程包括植入的Aptech课程,主要培养学生的专业技术和技能等“硬”能力;职业素养课程主要培养学生等“软”能力。职业能力及课程体系如表1所示。<br>2.4课程体系的实施<br>(1) 改革教学模式。专业技术课程实施案例教学模式,让学生在“做中学”,将案例贯穿整个课程(群),加强学生对课程体系的整体认识,将项目实践同课程教学紧密结合起来,通过项目实践整合课程,坚持理论与实验融为一体,即理论融入实验、实验融入理论。<br>(2) 改革项目技能训练模式。项目技能训练培养学生两方面能力:项目实战能力和非技能能力。项目实战能力是通过项目开发实训,参加软件项目开发,积累项目开发经验,提升软件开发经验。课程小项目由学生1人完成1项;阶段性项目由57人组成的项目组完成,项目组成员分工实行阶段性的动态调整,保证项目组成员能在不同的岗位上体验自身的工作职责。项目实训过程中的非技能能力主要是通过学生在项目过程中的合作、协调、沟通、编写文档、岗位责任等强化学生的职业化能力培养,即责任意识、沟通意识、协作意识、文档规范意识以及学习意识。<br>(3) 改革考核评价机制。考核评价机制实行课程性考核和阶段性考核相结合。课程性考核评价包括过程评价和结业考试,过程评价是课程性考核的重点,包括课堂测试成绩、项目案例完成成绩、出勤率、课堂表现成绩、职业素养表现和阶段项目完成成绩;结业考试即某课程群学完以后进行的阶段性考试,考试范围融课程群的所有知识点,分为操作技能考试和理论知识考试。<br>3改革成效<br>3.1形成有利于实践能力培养的人才培养新模式<br>融合计算机科学与技术专业规范和Aptech课程体系,将目前软件企业中应用最为广泛的软件开发技术植入课程体系,有效地提升了学生专业技术能力和<br><br>职业素养,提高了人才培养的针对性和时效性。人才培养方案遵循“需求牵引,技术推动”的新模式,根据软件市场对软件人才需求规格的变化,动态调整植入的技术课程,解决课程滞后问题,使培养的应用型软件人才紧随当前技术主流平台。<br> </p> <p> <p> <br /> </p> <p>3.2形成双师型队伍训练和培养的有效机制<br>双师型教师队伍和实训基地建设是专业建设的瓶颈和关键。学校通过送培教师到软件企业顶岗实践的长效机制,保证了双师型队伍建设的可持续发展;而且作为双师型教师队伍建设的补充,我校建立了SOVO实训中心,要求双师型教师进入SOVO实训中心承接商用项目,并指导学生参加实际项目,作为双师型教师考核指标,保证了双师型教师的可持续地发展,有效地解决了双师型教师后续培养的可持续问题。<br>3.3提升了学生能力和质量<br>经过人才培养模式的孵化,培养的学生具有如下特点:<br>(1) 软件工程师岗位的职业素养。较强的责任感、职场沟通、团队合作能力、语言表达、适应能力和创新精神。<br>(2) 扎实的学科专业基础知识。较好地掌握计算机专业领域的基本理论和基本知识,了解学科前沿和发展动态,较强的后续发展潜力。<br>(3) 夯实的专业技术。熟练掌握软件市场上流行的主流技术,接受软件工程项目实践的训练,丰富的项目实训经验,熟悉行业规范,实践动手能力强,适应IT行业技术需求。<br>4结语<br>我校构建的应用型软件人才培养模式特色鲜明、实用性强,经过近两年的建设实践,培养的学生专业兴趣更浓,普遍认为收获大,不仅注重学生的动手能力和项目实践经验培养,而且注重培养学生发展后劲、职业素养以及软件企业的适应性能力,使其能较快地融入软件企业。构建的人才培养新模式才实施两年,培养效果还需要我们进一步探索和实践。<br>参考文献<br>1 报告编辑部. 2004年度中国软件产业发展研究报告R,2004.<br>2 李立国. 大学办学综合化与特色化的内涵及其关系研究J. 中国高教研究,2008(2):17-19.<br>3 罗代忠. 应用型本科院校软件工程专业人才培养模式探究J. 计算机教育,2008(8):121-122.<br>4 张诚,徐扬. 软件人才橄榄型结构依旧捆扰中国. 2008-06-22 content_8417867.htm.<br>5 鲁鸣. 软能力在竞争中胜出M. 北京:北京出版社,2009.<br>Training Mode Reform of Students Majored in Software Engineering in<br>Application-oriented Colleges and Universities<br>LUO Dai-zhong, LUO Wan-cheng, LI Rui<br>(School of Computer Sci 摘 要:本文介绍了UNIX平台与IBM主机系统平台之间的差异,并对跨平台移植过程中应考虑的主要问题和解决方法进行了探讨。<br>关键词<br>本文来自:计算机毕业网 :IBM主机系统;移植;作业控制语言;初始化器<br> <br>1 引言<br><br>IBM主机系统,又称IBM大型机,是20世纪60年代发展起来的计算机系统,在全世界各大国家中肩负着银行、保险、证券、通讯等行业的数据与信息处理工作,因为其独具的高安全性、高稳定性和强大的数据处理能力,迄今无可替代。<br>近几年来,主机系统的前景不断看好。从1994年起,IBM开始对大型机进行深入的技术改造,采用了新的CMOS技术,极大地缩小了大型机的系统体积,降低了能耗和散热成本,提高了性能价格比。另一方面,分布式计算开始变得庞杂起来,许多公司的管理费用激增,而且由于数据分散,在数据的互访和集中管理方面,安全和准确性都不够高,许多企业开始转向使用大型机。大型机在总体拥有成本上已经比分布计算廉价,制造业、保险、航空、运输及大型零售企业的大量事务处理对大型机的要求越来越高,这是大型机重新被人们认可的原因之一。<br><br>2 分布式与大型机<br><br>分布式计算在短期内给企业带来了高效,但随着时间的延续,企业系统扩大,数据分散存放在上百台服务器上,数据的查询成为问题,数据的互访和对大量数据的开采利用变得困难起来,一个新的趋势再集中开始出现。如何将分布处理和集中计算结合起来,成为许多企业考虑的问题。大型机的系统完整性和大存储量的优势显示出来,开始承担用户再集中需求的任务。<br>在总体拥有成本上,随着时间的推移,小型机系统渐渐显现出极高的使用成本。或许人们在使用一年UNIX后,会说UNIX性价比高,但随着业务的增加,系统变得分散庞杂起来,维护费用增加。大型机挺过了关键的10年暗淡期,终于峰回路转。因此,越来越多的企业开始关注IBM主机系统,将自己的系统移植到主机系统上来。<br><br>3 移植平台间的差异<br><br>3.1 主机操作系统Z/OS与UNIX<br>目前IBM主机的主流操作系统Z/OS是使用最广泛的基于64位Z体系结构大型机操作系统,它给在大型机上的应用程序员提供了稳定、安全和可持续运行的环境。 <br>从本质上来说,UNIX是一个计算密集型的操作系统, CPU利用率较高,更适用于需要大量计算的环境;而主机操作系统Z/OS依赖于其强大的硬件后盾,除了强大的计算能力之外,更突出的是它强大的I/O处理能力,依托硬件上的FICON、ESCON等光纤通道,可同时应对大规模的并发用户,因此它是一个I/O密集型的操作系统。两种系统在很多内容上有着不同但又类似之处。<br>3.2 进程与地址空间<br>在UNIX下,一个程序的执行通常称为一个进程,操作系统为每个进程分配一定的CPU、内存资源,使其运行,进程与进程之间可以通过信号量机制协同工作实现并发;而在Z/OS下没有进程的概念,与之对应的是地址空间(Address Space)的概念,任何用户的登录、程序的执行、作业的提交,系统都会为其生成一个地址空间。地址空间之间在批处理方式下一般没有通信,而通过联机交易处理方式实现程序间通信。<br>在UNIX下通常会有守护进程(daemon)的概念,在主机环境中通常是一个长时间运行的作业的提交,可以从控制台为这个守护作业提供输入输出对象处理。<br>3.3 文件的组织与编辑方式<br>从文件和数据格式上来说,UNIX系统是树状的目录结构,数据的组织以文件夹与文件的方式保存、管理;而在主机上,数据都保存在数据集里,数据集分顺序数据集、分区数据集与VSAM数据集,其组织方式没有多层树状结构,分区数据集下可包含称为member的顺序数据集,顺序数据集或VSAM数据集存储实际的数据。<br>数据的格式在UNIX下是面向字节,而在Z/OS下是面向记录的。数据的编辑在UNIX下通常是用VI;而在Z/OS下用的是ISPF编辑器。<br>3.4 交互系统的区别<br>UNIX下用户登录并在Shell环境下执行Shell会话,可以通过发送远程登录rlogin命令或者远程登录telnet命令连接系统,一个用户可以同时打开多个用户会话。在主机环境下,用户通过TSO/E和它的菜单驱动接口ISPF登录系统,一个用户一次只能有一个活动的会话。<br>在UNIX系统中,用户可以通过后缀Shell命令观察处理进程和线程,可通过Kill命令结束一个任务。在主机环境中,用户通过作业处理子系统提供的SDSF查看他们提交作业的执行情况,并可以终止作业任务的执行。<br><br>4 移植实例<br><br>下面以一个实际项目实例来阐述一套移植过程中要考虑的具体问题。项目以一个在UNIX平台上实际应用的后台结息系统为移植对象,考虑系统处理的各种运行机制和平台差异,最终将整个系统移植到Z/OS下。<br>原系统的操作系统为AIX5.0,数据库为INFORMIX 10X,开发语言为C语言,移植后的操作系统为Z/OS 1.5,数据库为DB2版本8,开发语言为C语言。<br>4.1 针对多进程考虑<br>在原系统中有一个主控程序设计,主控程序是一个主调度程序,主要负责控制并发的进程数量及状态,系统支持的并发数量由主控程序的参数设置,通常设置为30。主控程序控制的每一个并发进程代表一个部门结息流程。假设一次性有1000个部门运行结息过程,主控程序负责调度,它轮寻所有进程,当一个进程结束时启动下一个进程,直到所有部门完成。<br>在Z/OS上没有进程的概念,针对这种后台批处理的结息方式,我们通过作业的方式实现,方案是为每个部门的结息准备一个JCL作业。所谓JCL(Job Control Language)是作业控制语言,通过它写一段作业脚本提交给系统,可以让系统执行相应的程序或进行相关的工作。为每个部门结息准备一个JCL作业,再准备一个主JCL作业,这个主JCL的任务就是去提交所有部门的JCL作业。<br>把结息过程定义为作业的好处是,在Z/OS里控制作业的并发数量以及作业调度的任务都可以由系统里的作业处理子系统JES2自动完成。在JES2里,有多个被称为Initiator的地址空间,每个Initiator都相当于UNIX下的一个守护进程,专门处理提交的作业。<br>Z/OS中的Intiator是一个自动调度和处理提交的多个作业的地址空间,它主要负责处理如下任务:<br>(1) 确保同时运行的各项作业不会产生数据集使用上的冲突;<br>(2) 为作业分配必要的硬件设备,如磁带等;<br>(3) 从库中找到每个作业需要调用的可执行程序;<br>(4) 当一个作业运行完毕之后,在作业队列中清除该作业并要求处理下一个作业。<br>每个Initiator在同一时刻可以处理一个作业,而多个Intiator可以并发处理多个作业,各个Initiator并发处理各个作业都是在保证不出现死锁的前提下进行的。Initiator的数量可以在系统中设置,这样一来就自动实现了并发数的控制。比如我希望将并发数控制为50,我们在系统中设置50个Initiator,然后提交主JCL作业,主JCL作业再一次性提交1000个部门的作业,这些作业由JES自动调度给50个Initiator,并实现负载的均衡。<br>4.2 Makefile的替代<br> </p> <p> <p>在UNIX平台上,通常会在准备好源代码之后使用make工具进行编译,在执行make之前,需要一个命名为Makefile的特殊文件来告诉make需要做什么,该怎么做。通常make工具主要被用来进行工程编译和程序链接。<br>当使用make工具进行编译时,以下几种文件在执行make时将会被编译或重新编译:<br>(1) 所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;<br>(2) 每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;<br>(3) 头文件在上一次执行make之后被修改,则所有包含此头文件的C源文件在本次执行make时将会被重新编译。<br>Makefile文件是一个非常有效的文件,而在Z/OS平台中,没有类似的文件可用,通常的编译都是通过使用一个JCL作业去调用系统相关的针对编程语言的编译器去执行。<br>考虑到Makefile文件的对应参数、编译流程、依赖关系与JCL作业有很多相似点,我们的方案是还是使用JCL作业去编译程序,但将相关的源程序写在同一个JCL作业中。在Z/OS环境下一个JCL作业可以有多个作业步,每个作业步可以指定进行不同的操作或调用不同的程序,一个作业最多可以有255个作业步。因此,我们可以将相关联的源程序或者头文件放到同一个作业的不同作业步中,用于编译、链接,当有程序做了修改需要重新编译链接时,还是提交同一个编译作业就可完成。<br>4.3 信号量机制的考虑<br>在实际结息流程中,通常每个进程都需要从数据库表里申请一个唯一的编号作为结息流程的流水号,最终保存到数据库。流水号是一个递增数列,无论进程执行是否成功,此流水号都必须唯一且不可让其他进程使用,即使进程执行失败,此流水号也必须作废而不可给后续进