Re[28]: Есть ли будущее у Native Code?
От: Pavel Dvorkin Россия  
Дата: 27.10.09 05:06
Оценка:
Здравствуйте, kig, Вы писали:


kig>>>После появления 370 с аппаратной поддержкой механизма виртуализации памяти первой ОС, которая этот механизм пользовала — была MVS/370 (70 год). А в 72 IBM выкатила сразу четверку — OS/VS1 (наследник MFT), SVS aka OS/VS2R1 (наследник MVT), DOS/VS (наследник DOS/360) и VM/370.


PD>>Все верно. После. А при проектировании 360 его "сослали".


kig>Если при проектировании сослали, где же стек в 360?


Так зато и сослали, что не заложил


PD>>Да то же самое. Не было тогда еще никакой виртуальной памяти, в 1964 году, когда первые модели 360 появились. И аппаратной поддержки не было, ты сам об этом пишешь. Если же говорить вообще о системе с ограниченной памятью — так в IBM PC на базе 80286 виртуальная память была (на основе LDT-GDT), хотя объем памяти был 1 Мб, как правило. Это не мешало выделить под стек свой сегмент размером не более 64 Кб. И стеки эти у разных задач (в смысле задач процессора 80286, которые реально в Windows 3.1 не использовались) были свои.


kig>Как то ты на 80286 переключился... Мы говорим вообще о системах с ограниченной памятью, или о 360, за "которую сослали"?


Ты сам сделал упор на то, что причиной отсутствия стека было ограниченное количество памяти, вот я и привел контрпример.

kig>Так то же самое говоришь? Сравни — из первых трех продаваемых моделей — страшая из них — 40 могла иметь аж до 256 Кб. Память до 1 Мб появилась только в самых дорогих 65 и 75 моделях (конец 65 — начало 66). Вот здесь характерное замечание по поводу оперативной памяти уже более поздней эпохи (начало 70-х):


Да, знаю. Джермейна я еще не забыл


kig>А теперь вернемся к началу 60 годов, операционках для 360 и стеку.


kig>В MFT надо было сразу резервировать, сколько тебе памяти под задание отводить — и в этом случае, что стек, что не стек, память на задание сразу "кушалась". Запрос на динамическое выделение памяти возвращал адрес из остатка резерва — по сути куча на задание.


kig>В MVT ситуация была другая. В ней, в отличии от MFT, было не только переменное кол-во разделов под задание, но и заказывать надо было возможный максимальный размер памяти на задание, который выделялся не сразу.


Сразу он выделялся. Команду DA я хорошо помню. Да и как можно не сразу выделить при отсутствии виртуальной памяти ? куда потом расширять ? Не было там перераспределения памяти. А вот число разделов, да, было переменным.

Вот, кстати (выделено мной)

It treated all memory not used by the operating system as a single pool from which contiguous "regions" could be allocated as required by an indefinite number of simultaneous application programs. This scheme was more flexible than MFT's and in principle used memory more efficiently, but was liable to fragmentation — after a while one could find that, although there was enough spare memory in total to run a program, it was divided into separate chunks none of which was large enough.[2]

http://en.wikipedia.org/wiki/OS/360#cite_note-AuslanderJaffeIBMVSOSsDAT-1

Если бы можно было выделять не непрерывные участки — какая такая фрагментация могда бы мешать ?

>И запрос на динамическое выделение памяти возвращал адрес из общей кучи, которая управлялась супервизором.


Хм. Если бы это было так, то неизбежно память выделялась бы задаче кусками, фрагментами. Но я прекрасно помню, что по команде DA показывался адрес начала и размер, то есть один кусок.

>Естественно, с учетом аппаратной защиты супервизор выделял память для каждого задания с наименьшей атомарность == странице (оффтоп: в PL/1 для этого был свой манагер памяти).


Не помню про страницы, ИМХО их не было вообще. Были какие-то блоки с ключами защиты. Впрочем, не помню точно.

kig>А теперь представь, как в MVT изменилось бы поведение, при многозадачной пакетной обработке, если бы при запуске задания необходимо было бы сразу резервировать непрерывное пространство памяти под стек. Как бы уменьшилась общая пропускная способность системы. Что для повышения пропускной способности необходимо было бы учеличивать общий объем оперативной памяти. И при этом не забудь учесть эпоху — стоимость памяти на начало проектирования и переспектив ее понижения. Кто тогда делал прогнозы, что стоимость оперативной памяти через 20 лет рухнет на порядки? Что те шкафы, которая и была ОП в 360, превратиться в сборку нескольких кристаллов (PC/AT)?


Поскольку память выделялась отдельным непрерывным участком, от того, что к части ее доступ был бы по стековому механизму, ничего в плане потребностей по памяти не изменилось бы.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.