RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > Брр... А данные мы между нитками не шарим что-ли? Или таки речь идет о своем сегменте стека для каждой нитки? Только это таки не small, а large модель (SS != DS). > > Для меня smal это отдельные сегменты кода, стека и данных. Т.е. CS <> DS <> SS <> CS > > Гм. А тады что такое для тебя large? ;) > > > > А насчет столько адресного пространства, сколько надо - дык его все равно ровно 4гига. Как не режь на сегменты - больше не станет. И меньше тоже. > > Новые возможности появятся. > > Например разместить по одному и тому же адресу разные страницы в разных задачах и не "дёргать" таблицу этих самых страниц при переключениях между этими самыми задачами. > > А в чем собственно выгода-то? Заменить page table проще, чем развлекаться с переключением LDT. > В общем плиз, сухой остаток выгод в студию ;) > > > > 1) необходимость в компиляторе, умеющем генерить код для случая SS != DS > > Ну понавставляет он префиксов там, где раньше не ставил. И что? > > Дык, > 1) префиксы не во всех командах возможны, да и тормозят они изрядно > 2) значительно снижаются возможности оптимизации с точки зрения register allocation. > 3) компилятор один фиг надо переделывать. Причем местами нехило. Причем не один компилятор. Кто возьмется? > > > Ну ES надо перегружать, если строки в стек копируем. И что? > > гы, а указатели все длинными становятся - это сахар? > > > > (да и DS != CS тоже не сахар). > > CS вообще должен быть execute-only :) > > Он таки execute-read на x86. И ничего не сделаешь с этим. > > > > 2) появление длинных/коротких указателей и соответствующие приключения, связанные с модификацией исходников при портировании > > Указатель должен быть восемь байт и точка. > > Для NEAR16 это будет четыре байта выравнивания два байта смещения и два байта заполнения. > > Для NEAR32 - четыре байта выранивания и четыре байта смещения. > > Для FAR16 - два байта выравнивания, селектор, два байта смещения и два байта заполнения. > > Для FAR32 - два байта выранивания, селектор и четыре байта смещения. > > Бу-га-га. Осталось научить x86 с такими указателями работать. А также не запутаться, где у тебя какой указатель. Не говоря уже о том, что far указатели тормозят, да еще как. > > > > 3) необходимость в менеджере селекторов как отдельной сущности со своей (местами нетривиальной) логикой > > Селекторы задача получает на момент создания. Впоследствии могут только добавляться SS-селекторы. > > Ничего особо нетривиального я тут не вижу. > > Насчет нетривиальности - это я под впечатлением менеджера селекторов OS/2. > А так - ну сущность дополнительная. Выгод не вижу. Геморрой добавочный - вижу. Начиная с несовместимости с любым существующим кодом и заканчивая тормозами на использовании 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.