RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > > Брр... А данные мы между нитками не шарим что-ли? Или таки речь идет о своем сегменте стека для каждой нитки? Только это таки не small, а large модель (SS != DS). > > > Для меня smal это отдельные сегменты кода, стека и данных. Т.е. CS <> DS <> SS <> CS > > Гм. А тады что такое для тебя large? ;) > Более одного DS :) > > А в чем собственно выгода-то? Заменить page table проще, чем развлекаться с переключением LDT. > LLDT делается только при переключении на задачу. А переключая таблицы нужно ещё и анулировать соответствующие коде. Ещё неизвестно, что хуже. > > В общем плиз, сухой остаток выгод в студию ;) > Задача _полностью_ изолирована в своих сегментах. Т.е. её образ можно перебросить на другой компьютер и начать исполнять "там", не опасаясь "вредного влияния улицы". > Разделяемая память полностью подконтрольна системы, поскольку не способа передать указатель между задачами без системного вызова. > Если какая-то задача начнёт использовать такой указатель, не поставив в известность систему - ну что ж, ей же хуже. Ей, а не всем вокруг. > > 1) префиксы не во всех командах возможны, > Насколько я помню, нельзя перекрыть только сегмент приёмник строковой команды. > Собственно префиксы требуются, если для адресации локальных данных нити (функции) не используется BP/SP :) > > да и тормозят они изрядно > Изрядно это сколько? > > 2) значительно снижаются возможности оптимизации с точки зрения register allocation. > Почему, собственно. > > 3) компилятор один фиг надо переделывать. > Его один фиг надо переделывать. > Как минимум, потому, что объектная модель должна быть свойством системы, а не компилятора. > Ну их хотелось бы, чтобы реализация класса _действительно_ скрывалась, а не как сейчас. > > Причем местами нехило. > Где например? И почему? > > Причем не один компилятор. Кто возьмется? > Пока не знаю. > > > Ну ES надо перегружать, если строки в стек копируем. И что? > > гы, а указатели все длинными становятся - это сахар? > С чего это вдруг, если единственный сегмент данных и (для каждой нити) единственный сегмент стека. > > > > (да и DS != CS тоже не сахар). > > > CS вообще должен быть execute-only :) > > Он таки execute-read на x86. > Э-э-э ... Флаг расписаный во всяких доках не работает или его просто никто не выставляет? > > И ничего не сделаешь с этим. > > > Для NEAR16 это будет четыре байта выравнивания два байта смещения и два байта заполнения. > > > Для NEAR32 - четыре байта выранивания и четыре байта смещения. > > > Для FAR16 - два байта выравнивания, селектор, два байта смещения и два байта заполнения. > > > Для FAR32 - два байта выранивания, селектор и четыре байта смещения. > > Бу-га-га. Осталось научить x86 с такими указателями работать. > Это абсолютно штатные указатели x86. То, что я расписал - всего лишь структура, в которую их _можно_ упаковать. > > А также не запутаться, где у тебя какой указатель. > Если ты не обратил внимание, то смещение всегда находится по одному и тому же смещению :) и, если старшие байты NEAR32/FAR32 равны нулю, то такие указатели можно использовать и как NEAR16/FAR16. > > Не говоря уже о том, что far указатели тормозят, да еще как. > Большей частью программа будет оперировать NEAR32 и, возможно, NEAR16. > FAR32/FAR16 потребуются разве что для вызова функций, требующих более высоких привилегий, чем RING3. > > > > 3) необходимость в менеджере селекторов как отдельной сущности со своей (местами нетривиальной) логикой > > > Селекторы задача получает на момент создания. Впоследствии могут только добавляться SS-селекторы. > > > Ничего особо нетривиального я тут не вижу. > Есть сплошной кусок пространства, который нарезается ломтиками поменьше. > > Насчет нетривиальности - это я под впечатлением менеджера селекторов OS/2. > Надо полагать, что большая часть финтов и фокусов связана с 16-битным защищённым режимом? > > А так - ну сущность дополнительная. > Существующая. Просто незавуалированая :) > > Выгод не вижу. > "Будущее нас рассудит" :) > > Геморрой добавочный - вижу. > Геморрой будет всегда, его можно лишь выбирать. Не всегда :) > > Начиная с несовместимости с любым существующим кодом > Это как #define'ить > > и заканчивая тормозами на использовании far-указателей. > Тормоза на обработке аппаратных прерываний и/или смене кольца тебя не смущают? > Длинные указатели, как я уже указывал :) требуются крайне редко.
_, _, _,
/ \ (_ / ~ )
\ / , ) / /
~ ~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.