Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
Делением на ноль это прерывание обозвали авторы runtime library, по-видимому, для краткости. А в документации от Intel оно называется более корректно — «divide error». Вот, к примеру, цитата из Intel 8086 Family User's Manual:
The CPU itself generates a type 0 interrupt immediately following execution of a DIV or IDIV (divide, integer divide) instruction if the calculated quotient is larger than the specified destintion.

Так что это не разработчики x86 вводят в заблуждение, а кто-то, кто не удосужился прочитать документацию до конца.
Проще, наверное, было бы — только при неизменяемых внешних условиях. А так вполне возможно, что сегодняшние оптимальные константы завтра станут неоптимальными, а то и вообще вредными. У Д.Даймонда в книге «Ружья, микробы и сталь» есть хороший пример про различие между культурной пшеницей и дикорастущей.
Впервые аппаратная виртуализация была реализована в 386-х процессорах и называлась V86 mode. Режим позволял запускать параллельно несколько DOS-приложений.

Вообще-то, первая аппаратная виртуализация появилась в IBM/370. Операционная система, которая её использовала, называлась VM/370, первая версия вышла в 1972. Она позволяла запускать под виртуальной машиной любые из существовавших тогда IBM-овских операционных систем, в том числе, кстати, и саму VM/370.
Разумеется, с неустойчивым поведением системы можно и нужно бороться. Разумеется, за несколько десятилетий изучения проблемы разработаны различные способы — например, увеличение запаса прочности в каждом компоненте системы (фактически, сдвиг в сторону от оптимального поведения). И разумеется, в метро, менее подверженному внешним влияниям, с неустойчивостью бороться проще. Только с теми же трамваями пока получается не очень, что, увы, вижу почти каждым вечером. И централизованные светофоры не всегда спасают от 10-балльных пробок. И более-менее крупная экономика продолжает оставаться классическим примером системы с возможным неустойчивым поведением.
Неустойчивое поведение системы — это когда при небольших, случайных, отклонениях исходных параметров сильно меняется результат работы всей системы. Известный пример из жизни — трамваи, у них тоже есть план и график маршрута. Но достаточно вовремя не проехать один светофор, чтобы на следующей остановке скопилось больше пассажиров, что, в свою очередь, приведёт к дальнейшему отставанию этого трамвая, а заодно и всех следующих за ним, и т.д… И, как результат: вместо более-менее равномерного распределения, как полагается по графику, трамваи сначала долго отсутствуют, а затем едут целой пачкой.

«Враг вступает в город, пленных не щадя, оттого, что в кузнице не было гвоздя».
Я и не говорил, что в Госплане «планировалось всё, вплоть до гвоздя». На уровне предприятия матрица параметров уже достаточно велика, чтобы проявлялось неустойчивое поведение.
Кстати, как вариант. Поведение целевой функции в окрестностях оптимального значения может быть очень неустойчивым, особенно с учётом огромного количества переменных, необходимых для расчёта реального плана, и требований по дискретизации (1 вагон, 1 столб и т.п.) Иными словами, теоретически возможно, что от оптимального до наихудшего значения разница — один неотправленный вовремя поезд. Или, по другому, «оттого, что в кузнице не было гвоздя». ;)
Я встречал упоминание о Zork на ЕС ЭВМ, игра была портирована под названием Dungeon. И да, в отличие от Super Star Trek и двух версий Colossal Cave Adventure, на лентах «гуляли» всего лишь два файлика: краткий вводный текст к игре (переведенный) и процедура запуска в LGB.PROCLIB. Скорее всего, просто не доделали.
P.S. А вы знали, что в UFO: Enemy Unknown можно совершить перехват НЛО несколькими перехватчиками(т.е. в бою будут все сразу).

У меня знакомый таким образом сбивал battleship'ы до постройки Avenger'а. «Ну, потеряешь пару-тройку перехватчиков...» ;)
В версии «из коробки» уровень сложности сбрасывался после первой миссии. Но выпускался патч, который чинил эту и некоторые другие баги (с картой базы, например).
MechWarrior [...] На самом деле сюжет всё же был, так же как и лимит времени — пять игровых лет. Не помню только, что дальше происходило — игра прекращалась или просто непроходимой становилась.

Игра не прекращалась, можно было по-прежнему воевать и летать (кроме родной планеты, разумеется). Терялась лишь возможность пройти сюжет. (Даже раньше, чем через пять лет: там почти год по разным планетам летать). И письма переставали приходить, последнее, как раз в пятилетний юбилей, сообщает, что прошли выборы и те, кто захватил власть на родной планете, стали законными правителями.
большинство современных языков программирования совершенно не имеют встроенной поддержки вычислений с фиксированной точкой. (Я так думаю, что правильнее было бы сказать, что ни один из современных языков это не поддерживает, но я не могу это надёжно проверить.)

Вычисления с фиксированной точкой поддерживает Ada — скажем, в версии стандарта Ada 2012 (см. здесь и здесь).
«Примус» — это не операционная система, это диалоговая среда, которая работала под управлением операционной системы. Разработана в МИФИ, дорабатывалась в НИИ АСУ ЖТ и где-то ещё; по рукам ходило великое множество версий «Примуса» на магнитных лентах. Обеспечивала полноценную диалоговую работу с ЕС ЭВМ — и редактирование текстов, и обслуживание наборов данных (на современный лад, работу с файловой системой), и запуск программ прямо с дисплея, и работу с системной консолью, и ещё много всякого полезного.
На всякий случай, напомню постановку задачи, в рамках которой было принято решение по ЕС ЭВМ. Требовалось обеспечить страну парком вычислительной техники, подходящей для широкого спектра применений, как по производительности, так и по виду решаемых задач — для народного хозяйства бухгалтерские ведомости полезнее расчета баллистики, — и имеющей единую архитектуру и общие радиоэлектронные компоненты. Это позволяло, во-первых, избежать распыления сил и ресурсов, а во-вторых, подобрать для каждой вычислительной задачи оптимальную по стоимости технику.

Осознание необходимости совместимых решений и описанная выше постановка задачи в то время были вполне передовым и даже революционным подходом. Однако, каких-либо собственных разработок в этом направлении, доведенных хотя бы до состояния экспериментальной серии ЭВМ, в нашей стране не было. Был огромный «зоопарк» несовместимой вычислительной техники, и не более того.

Решение о копировании IBM/360 — обратите внимание, выпускавшейся серийно и уже доказавшей свои преимущества, — было альтернативой собственной разработке единой архитектуры. Во втором случае пришлось бы потратить годы, и не факт, что результат получится бы существенно лучше. Я уже не говорю про софт: справившись с задачей копирования и развертывания производства ЕС ЭВМ, мы получили «бонусом» как сотни тысяч строк готового и отлаженного кода, так и все последующие программы.

Кстати говоря, клоны IBM/360 выпускали в своё время, к примеру, Fujitsu и Hitachi, и непохоже, чтобы это плохо на них повлияло. Сдаётся мне, и в нашем случае ошибкой было не само решение о копировании, а его следствие — что "урезали" бюджет на собственные разработки.

Это из неё ещё режим PCP убрали. ;)

Не нужно идти. ;) Мы с вами понимаем, что кочевавшие по документам ёмкости 7.25, 29, 100, 200 и 317 — это на самом деле "выставочные" размеры, т.к. реальный объем данных на диске системы CKD (Count, Key, Data) очень сильно зависел от формата записей. К примеру, при неоптимальном размере блока можно было потерять почти половину от этого объёма. Поэтому наборы данных измеряли в цилиндрах и дорожках, а 28 Мб я привел, чтобы было понятнее тем, кто с той техникой никогда не сталкивался.

ОС 6.1 можно было сгенерировать для работы в режиме MVT без виртуальной памяти, например, для работы на серии Ряд-1. Осталась также возможность сгенерировать режим MFT. При генерации VS2 нельзя выбирать режим работы.


Собственно, VS2 представляла из себя MVT, которую "погрузили" в единое виртуальное адресное пространство (отсюда аббревиатура SVS — Single Virtual Space). В листинге генерации хорошо заметно, как чередовались куски из MVT и SVS.

Полная ёмкость тома на ЕС5061, без альтернативных цилиндров, составляла 29176000 байт. Это 28492 Кб или 27.8 Мб.


По аналогии, максимальный размер памяти на ЕС ЭВМ был 25165824 байт или 24 Мб.

MVT в виде дистрибутива содержит около 30 Мб. Дистрибутив ОС ЕС аналогичный по составу, но должен занимать немного больше, за счет компонентов SVS.

В сгенерированном виде размер системы сильно зависел от выбранных параметров. Могу точно сказать, что SVS вместе с трансляторами Fortran G (стандартный), Fortran H (оптимизирующий), PL/1 (стандартный) и без TSO (диалоговый доступ) вполне умещалась на дисковый пакет 28 Мб, включая место под своп и служебные наборы данных. Следует, правда, учитывать, что 28 Мб в данном случае — предельная ёмкость диска, достигаемая лишь при оптимальном размере всех записей данных на нём; реальный объем данных (побайтно) будет меньше процентов на 20-30.

Информация

В рейтинге
4 346-й
Зарегистрирован
Активность