RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Следующий шаг. Немного конкретики.


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : LightElf
To : Василий А. Сидоров
Subj : Следующий шаг. Немного конкретики.

> > Брр... А данные мы между нитками не шарим что-ли? Или таки речь идет о своем сегменте стека для каждой нитки? Только это таки не 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-указателей.


Thu 14 Jun 2007 16:20 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.3) Gecko/2003031




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.