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