这是参考Stack Overflow Podcast #65。假设一台典型的 60 年代或 70 年代的服务器计算机具有 256k 主内存。这样的机器最多可以运行多大(编译的)COBOL 程序?假设 COBOL 程序不是故意变得比必要的复杂,这会严重限制 COBOL 程序的复杂性和功能吗?
5 回答
IBM 大型机操作系统当时支持虚拟存储 - 尽管您今天可以在海滩上以 IBM 的年度租约购买公寓!我不记得有任何无法克服的程序大小问题。
需要考虑的一件事是,当时几乎所有东西都以“批处理编程”模式运行。这限制了任何一个程序的复杂程度。一个程序会预处理数据并将其存储在磁盘上。下一个可能会对其进行排序并添加一些计算结果。然后下一步可能会更新数据库。然后批处理中的最后一个可能会打印出报告。所以复杂性(和大小)被分解为几个按顺序运行的程序。
相当大的 cobol 程序可以在 70 年代的大型机中以 256K ram 运行。(IBM 370 中的 256K 内存是 256K 32 位字,而不是字节。)IBM 在 1970 年左右引入了虚拟内存。这将程序和数据分页到磁盘,允许程序使用大部分 24 位地址空间,限制。就像 Windows 一样!
你想如何衡量这个?我记得有一个程序,我很确定我们在 256k 或 512k 系统中运行,打印出来时大约有 2 英寸厚。我们也不必使用叠加层。
我是拥有 1MB 主存储的 Unisys System 1100 的管理员。我们为相当复杂的弹药库存系统的大约 150 名用户提供支持。该应用程序是用 COBOL 编写的。
如果 cobol 编译器支持它,开发人员可以在这种情况下使用 SEGMENT 并且有一种加载和替换,有时允许覆盖。