OPM与ILE编程模式的区别
OPM与ILE编程模式的区别
OPM是传统编程模式,即一个可执行的程序只用一种语言编程;一个可执行程序只有一段程序代码组成;程序之间的调用关系是动态的调用关系。
ILE是多语言开发集成编程模式,即一个可执行程序是用多种语言集成编程,如RPG、CL、COBOL、C、C++等,程序的组成部分是module,module间的调用和连接关系是静态连接。比如,一个可执行rpg程序,可以根据功能划分为多个procedures,又可以根据处理调用关系,把这些procedures组成若干个modules,然后再用crtbndrpg生成一个可执行的程序。
在维护程序代码方面,OPM与ILE模式编程差别就更明显了。以上面说明为例。ILE模式,因为一可执行程序是由多个module组成,如果程序的某个module进行了修改,只用重新编译这个module,然后用updpgm把这个module从新更新到这个程序就可以了。如果用OPM就得把整个程序重新编译。仅仅从这点出发,不能体现ile的优势。因为module是可以让多个也执行程序组合调用的,程序员只要对所关心的程序代码段进行修改和更新就行了。就体现ILE的优势了。另外400的多线程处理只有在module层次才能实现,opm模式不能实现。
问题1):
还是不明白OPM模式!!我平时用编译rpgle时用crtbndrpg,编译cl时用crtbndcl,这是ile的东西吧
答:
我想,你可能只是用ILE的方式生成OPM的程序。比如,一个可执行rpg程序,可以根据功能划分为多个procedures,又可以根据处理调用关系,把这些procedures组成若干个modules,然后再用crtbndrpg生成一个可执行的程序。而不像OPM,一个可执行程序是从头到尾,只写成一个处理串代码。
问题2):
active group是什么啊?
答:
active group是提高程序运行效率的一种手段。比如,为了是某个module长期驻留在物理内存,可以定义active group的运行参数,让其长期驻留在内存,以减少程序块的页进页出,从而提高系统运行效率。
os/400采用统一地址寻址,即物理内存和硬盘地址统一寻址,程序和数据都被系统分为某个尺寸的“页,page”,程序有效运行时,从硬盘调入物理内存,为页进,page in。程序或数据块在物理内存中不再使用,或超出ideal时间,就会从物理内存调入到硬盘,这就是页出,page out。
问题3):
平时我写程序后,可以用编译成模块,然后再将模块编译成PGM,我用的就是ILE?还有服务程序(service moduel)。我应该是在ILE环境中编程的 ,那么OPM是怎么的一个过程?怎样的情况下才用到它?
答:
目前网上,我还没有看到一本创建服务程序的比较好的书或资料。
服务程序可以看我的blog的《创建服务程序三步曲》,passthru.cublog.cn
(参见答1)
原文链接:http://blog.chinaunix.net/uid-20328593-id-1965854.html
OPM与ILE编程模式的区别的更多相关文章
- Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出 ...
- TCP与UDP在socket编程中的区别
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UD ...
- MXNet设计笔记之:深度学习的编程模式比较
市面上流行着各式各样的深度学习库,它们风格各异.那么这些函数库的风格在系统优化和用户体验方面又有哪些优势和缺陷呢?本文旨在于比较它们在编程模式方面的差异,讨论这些模式的基本优劣势,以及我们从中可以学到 ...
- 【socket】TCP 和 UDP 在socket编程中的区别
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UD ...
- Socket编程模式
Socket编程模式 本文主要分析了几种Socket编程的模式.主要包括基本的阻塞Socket.非阻塞Socket.I/O多路复用.其中,阻塞和非阻塞是相对于套接字来说的,而其他的模式本质上来说是基于 ...
- Socket编程模式理解与对比
本文主要分析了几种Socket编程的模式.主要包括基本的阻塞Socket.非阻塞Socket.I/O多路复用.其中,阻塞和非阻塞是相对于套接字来说的,而其他的模式本质上来说是基于Socket的并发模式 ...
- TCP与UDP在socket编程中的区别 (网络收集转载)
http://blog.chinaunix.net/uid-26421509-id-3814684.html 一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) ...
- TCP 和 UDP 在socket编程中的区别(转)
一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UD ...
- java多线程编程模式
前言 区别于java设计模式,下面介绍的是在多线程场景下,如何设计出合理的思路. 不可变对象模式 场景 1. 对象的变化频率不高 每一次变化就是一次深拷贝,会影响cpu以及gc,如果频繁操作会影响性能 ...
随机推荐
- ArcGIS动态文本
处理动态文本 来自:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00s900000013000000/ Deskto ...
- cx_Oracle安装说明
简介 cx_Oracle是用python连接oracle的驱动模块,参考文章: [cx_Oracle文档](http://cx-oracle.sourceforge.net/html/index.ht ...
- [未完成]关于Oracle知识总结
关于Oracle知识总结关于Oracle知识总结关于Oracle知识总结关于Oracle知识总结
- Java 自带性能监控工具:监视和管理控制台jconsole的使用
关于JConsole工具的使用请参见:http://blog.csdn.net/defonds/article/details/45064297
- hdu 4669 动态规划
思路:主要就是一个动态方程dp[now][(j*Exp[len[num[i]]]+num[i])%k]+=dp[pre][j];我用的是滚动数组.其实也就是dp[i][(j*Exp[len[num[i ...
- ORA-01790 错误处理
今天在练手的时候出现了一个ORA-01790 的错误,决定把他写下来保留起来. 先来创建两张测试用的简单的表. SQL> create table test01 (id number(3),na ...
- javascript应用:页面解析list和map封装后的json数据
开发web项目时,经常会使用到的页面脚本语言javascript,使用它能让页面展示上的效果更多彩. 今天就来说一下,从数据库中获取到数据后在页面上的展示方式: 1.数据库取出数据放入list< ...
- SQL_从星期一到星期六自动打卡SQL代码
create proc sp_MarkAutoKQ as begin ) ---创建两个变量,接收当前时间和当天是星期几 set @dateA=getdate() ---获取当前时间 set @dat ...
- DOS批处理命令-pause
“pause”用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行. 语法: pause 简单一个pause,不附带任何参数. 执行pause以后会提示一句话[按任意键继续执行] ...
- iPhone左下角app图标
iOS8之后,苹果增加了一个新功能.会根据位置,自动在锁屏界面左下角出现相关应用.比如用户在苹果零售店时候,右下角会出现Apple Store官方应用的快捷方式,按住左下角的图标向上滑动,即可快速解锁 ...