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

发布于 2022-08-27 19:58:58 字数 121 浏览 10 评论 5

其实只有10分数据区在逗留。代码部分,每一个activation group共享一份。如果你把程序驻留在内存里,也只是第一运行快一点。
一个作业如果要运行一个程序,如果内存里面已经有了一份,就直接用那一份了,不会再到磁盘里面去读。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

素食主义者 2022-09-02 04:53:08

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

海夕 2022-09-02 04:53:07

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

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

倾城花音 2022-09-02 04:51:19

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

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

汐鸠 2022-09-02 04:50:48

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

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

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

风为裳 2022-09-01 22:07:31

可否通过5=Work with —> 11. Display call stack, if active 去校验?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文