免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2423 | 回复: 5
打印 上一主题 下一主题

对400的误解之十。如果一个程序有10个作业在运行它,内存里有10份程序驻留 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-08 21:33 |只看该作者 |倒序浏览
其实只有10分数据区在逗留。代码部分,每一个activation group共享一份。如果你把程序驻留在内存里,也只是第一运行快一点。
一个作业如果要运行一个程序,如果内存里面已经有了一份,就直接用那一份了,不会再到磁盘里面去读。

论坛徽章:
0
2 [报告]
发表于 2009-12-09 13:35 |只看该作者
可否通过5=Work with —> 11. Display call stack, if active 去校验?

论坛徽章:
0
3 [报告]
发表于 2009-12-09 13:43 |只看该作者

回复 #2 qingzhou 的帖子

program stack是逻辑上的理解。其实一个程序被多个作业同时调用,这个程序可能逻辑上存在于不同作业的不同在program stack上的位置。其实系统内存里共享同一份代码(当然数据部分操作系统替每个job allocate一份)。

要等到所有作业都不再运行这个程序时,操作系统才将该程序从内存中清除出去。

操作的这种算法是为了节省运行时需要的内存,又节省把程序调入内存的时间。

论坛徽章:
0
4 [报告]
发表于 2009-12-09 13:47 |只看该作者
原帖由 franliu 于 2009-12-8 21:33 发表
其实只有10分数据区在逗留。代码部分,每一个activation group共享一份。如果你把程序驻留在内存里,也只是第一运行快一点。
一个作业如果要运行一个程序,如果内存里面已经有了一份,就直接用那一份了,不会再 ...

OK! 那如何校验实际运行情况如此呢。

论坛徽章:
0
5 [报告]
发表于 2009-12-09 14:20 |只看该作者

回复 #4 qingzhou 的帖子

这个没有办法。你看IBM ILE CONCEPTS就可以知道了。以前读IBM书的时候学到的。

其实这个概念也不是懂不懂没有关系。譬如考虑到子系统应该分配STORAGE POOL SIZE就有参考价值。如果把允许同时运行的作业数加倍,POOL SIZE是不需要加倍的。如果这个子系统都是在运行同样的一些程序。

论坛徽章:
0
6 [报告]
发表于 2009-12-11 22:17 |只看该作者

回复 #1 franliu 的帖子

代码是共享的,但是数据就不是共享的,而且一个程序能同时被多个job执行,而且是并行执行的,那么该程序使用的file可以说基本是ovrdbf打开的,这样的程序才比较纯。同时这样的程序比较适合用在批处理中,处理效率也高。。!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP