对400的误解之十。如果一个程序有10个作业在运行它,内存里有10份程序驻留
其实只有10分数据区在逗留。代码部分,每一个activation group共享一份。如果你把程序驻留在内存里,也只是第一运行快一点。
一个作业如果要运行一个程序,如果内存里面已经有了一份,就直接用那一份了,不会再到磁盘里面去读。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
代码是共享的,但是数据就不是共享的,而且一个程序能同时被多个job执行,而且是并行执行的,那么该程序使用的file可以说基本是ovrdbf打开的,这样的程序才比较纯。同时这样的程序比较适合用在批处理中,处理效率也高。。!
这个没有办法。你看IBM ILE CONCEPTS就可以知道了。以前读IBM书的时候学到的。
其实这个概念也不是懂不懂没有关系。譬如考虑到子系统应该分配STORAGE POOL SIZE就有参考价值。如果把允许同时运行的作业数加倍,POOL SIZE是不需要加倍的。如果这个子系统都是在运行同样的一些程序。
OK! 那如何校验实际运行情况如此呢。
program stack是逻辑上的理解。其实一个程序被多个作业同时调用,这个程序可能逻辑上存在于不同作业的不同在program stack上的位置。其实系统内存里共享同一份代码(当然数据部分操作系统替每个job allocate一份)。
要等到所有作业都不再运行这个程序时,操作系统才将该程序从内存中清除出去。
操作的这种算法是为了节省运行时需要的内存,又节省把程序调入内存的时间。
可否通过5=Work with —> 11. Display call stack, if active 去校验?