Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переключение задач, САБЖ 
:(
    Опции темы
eXz
  Дата 21.7.2003, 20:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите написать переключение задач под защищеным режимом. Кинте ссылку или пример, а то ни на одном форуме ничто про это незнают.


Буду очень благодарен. eXz.
  Вверх
Chingachguk
Дата 22.7.2003, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Посмотри книгу Финогенова ~"Программируем на языке ассемблера для IBM PC" - четырехтомник. Там все подробно про эти TSS и т.п. Есть примеры. Все, что я у него пробовал запускать - работало.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
eXz
Дата 23.7.2003, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



А эти примеры они в сети есть?
PM   Вверх
Chingachguk
Дата 23.7.2003, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Без понятия ;) Яндекс ? ;)

На wasm.ru есть цикл статей BrockenSword'а по защищенному режиму. Может быть, тама ?...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
eXz
Дата 30.7.2003, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



Цитата
На wasm.ru есть цикл статей BrockenSword'а по защищенному режиму. Может быть, тама ?...
Уже был. =( Нету.
PM   Вверх
Chingachguk
Дата 30.7.2003, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Не, ну все же лучше тебе найти Финогенова... Неужели нигде нет ? Раньше эту книгу (и) можно было купить ... Или в библиотеке ?


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 1.8.2003, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: нет
Всего: 232



Еще, кстати, есть толковая бука от г-на В.Юров. Точнее, бука плюс отдельный справочник. Там не столько примеров, зато отличный теоретический материал - можно разобраться во всем и сразу.



--------------------
user posted image
PM MAIL WWW   Вверх
eXz
Дата 3.8.2003, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



mr.DUDA
Это ли не тот бук, который выходит в трех версиях: самоучитель, справочник, учебник? Если тот, то в нём ето-го нет. =(
Chingachguk
Цитата
Или в библиотеке ?
Искать конкретную книгу - бесполезно, ни у кого нет. А про библитеку - это идея.
PM   Вверх
bedel
Дата 27.8.2003, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 26.8.2003

Репутация: нет
Всего: нет



На intel'овском сайте можно найти документы 24547007.pdf, 24547107.pdf, 24547207.pdf -- это полное описание
архитектуры ia32.

Переключение задач само по себе довольно простая вещь -- заполнил TSS, а потом делаешь long call или long jmp
на дескриптор этого TSS. В самой задаче (если ты переключился на нее с помощью call'а) можно сделать iret --
вернешся в вызывавшуу задачу (для нее не нужно заполнять TSS, надо только отвести под него место и дескриптор,
при переключении задач процессорными средствами процессор сам заполнит TSS вызывающей задачи).
Правда есть одна заморочка -- советую TSS располагать с равнением на размер страницы (4096), так как процессор
делает страничное преобразование (если включен paging) при переключении задач только один раз -- для начала
TSS, и предполагает, что обязательная часть TSS располагается дальше в памяти непрерывно.

Это кооперативная многозадачность, если надо вытесняющую, необxодимо еще переxватить прерывание таймера и
из него принудительно переключать задачи. Это тоже не сложно.

Проблемы начинаются если xочешь, чтобы задачи работали в разныx виртуальныx пространстваx, разныx кольцаx защиты
и т.д. Легко ошибиться где-нибудь, если ошибешься практически наверняка это приведет к тому, что процессор
не выдавая никакиx исключений просто перезагрузится (tripple fault). Наxодить ошибки очень сложно. В этом случае
советую отлаживать на емуляторе процессора (типа bochs или vmware), bochs xорош тем, что его легко спарить
со стандартным дебуггером (gdb) и отлаживать ядро как самую обычную программу.

В принципе можно переключать задачи и в ручную, не обращаясь к возможностям процессора. Для этого надо
самостоятельно соxранять и восстанавливать состояние процессора в память. Проще всего это делать в прерывании (например в том же timer'e):
1) при вxоде в прерывание надо соxранить все регистры общего назначения, возможно сегментные регистры (если они
разные у разныx задач), cr3, cr4, возможно регистры сопроцессора
2) соxранить флаги и адрес возврата (из стека)
3) подменить в стеке адрес возврата и флаги
4) загрузить регистры для задачи на которую происxодит переключение
5) iret
PM MAIL   Вверх
eXz
Дата 15.9.2003, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 21.7.2003

Репутация: нет
Всего: нет



Цитата
Не, ну все же лучше тебе найти Финогенова... Неужели нигде нет ? Раньше эту книгу (и) можно было купить ... Или в библиотеке ?
Вот ездили в Москву к знакомым. Гуляем по москве - видим книжный магазан, короче решил зайти. Короче, книга рулез. Как раз то, что мне надо.

Большое спасибо всем-всем-всем!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0772 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.