2009-08-13 5 views
4

Это относится к Stack Overflow Podcast #65. Предположим, что типичный серверный компьютер 60 или 70-х годов, например, с основной памятью 256 тыс. Насколько большие (скомпилированные) программы COBOL могли работать на таком компьютере максимум? Насколько это ограничило бы сложность и возможности программ COBOL, предполагая, что программы не намеренно становятся более сложными, чем необходимо?Насколько сложные программы COBOL будут соответствовать 256k?

+3

Это вопрос «что тяжелее - тонна кирпича или тонны перьев»? Размер будет несколько близок к 256k ... Я не понимаю? – xanadont

+0

Идея состоит в том, чтобы понять, как могут выполняться сложные программы, которые могут выполнять мейнфреймы. В подкасте кто-то сказал (я думаю, это был Джоэл), что, поскольку машины в те дни имели так мало ОЗУ и диска, они не могли бы запускать очень сложные программы. –

+0

Скорость процессора была гораздо более ограничивающим фактором. У вас есть 24 часа в сутки. Однако он разделен между «партиями» и «онлайн», «все, что« все еще должно соответствовать 24 часам ». Ничего подобного. Пути вокруг размера и сложности. Мышление. Простая программа намного лучше сложной программы. Если программа может быть упрощена, тогда можно сделать больше работы, больше запущено программ. «Комплексная» программа была/плохой. «Комплексное» деловое требование - это то, что нужно сделать самым простым способом (и для каждой задачи «простейшая» может означать разные вещи). –

ответ

9

Операционные системы IBM с поддержкой мэйнфреймов поддерживали виртуальное хранилище тогда - хотя вы могли купить кондо на пляже сегодня за то, что было ежегодным арендой IBM! Я не помню никаких непреодолимых проблем с размером программ.

Следует учитывать, что в то время почти все выполнялось в режиме «пакетного программирования». Это ограничивало сложность любой программы. Одна программа будет предварительно обрабатывать данные и хранить их на диске. Следующий может отсортировать его и добавить определенный результат. Затем следующий может обновить базу данных. Затем последний из пакета может распечатать отчет. Таким образом, сложность (и размер) была разбита на несколько программ, работающих последовательно.

+1

IBM делает (и еще в 1980-х годах) поддержку интерактивного программирования на мэйнфреймах через свои операционные системы VM/CMS. Этот OS combo также поддерживал один из лучших языков сценариев, когда-либо изобретенных - REXX. – 2009-08-22 20:31:23

+0

Не только VM/CMS были «интерактивными», и ни один из них не был «интерактивным» в терминах, которые, вероятно, были распознаны «мини-компьютерами» или «ПК». –

2

Как бы вы хотели измерить это? Я помню одну программу, и я уверен, что мы работали в системе 256 тыс. Или 512 тыс., Когда было напечатано около двух дюймов. Нам также не пришлось использовать оверлеи.

+0

Измерение размера программ значимым образом сложно. Может быть, средние байты машинного кода на строку кода COBOL? Полуполезная метрика может быть, но лучше, чем ничего. –

+0

@Ville: это была бы абсолютно бесполезная метрика, поскольку она никогда не хранилась. Я понятия не имею, какие значения этого показателя мы бы имели. –

+2

Я должен упомянуть, что это было на машинах DECsystem-10 и DECsystem-20, поэтому 256k было бы 256-битными 36-битными словами. –

5

Довольно крупные программы cobol могут работать в 256K барабане в мейнфрейме 70-х годов. (256 Кбайт памяти в IBM 370 были 32-разрядными 32-битными словами, а не байтами). IBM представила виртуальную память около 1970 года. Это вывело программу и данные на диск, позволяя программе использовать большую часть 24-разрядного адресного пространства, ограничения. Как и Windows!

2

Я был администратором Unisys System 1100 с 1 МБ основного хранилища. Мы поддержали около 150 пользователей довольно сложной системы инвентаризации боеприпасов. Приложение было написано COBOL.

0

Если компилятор cobol поддерживает его, разработчики могут использовать SEGMENT в этом типе ситуации и иметь вид нагрузки и замену или иногда наложение разрешено.

Смежные вопросы