|
Вопрос # 4 252/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Вопрос касается процессоров Intel в защищенном режиме, очень интересно каким образом они переключаются между задачами.
Подозреваю что есть либо какой то диапазон адресов в оперативной памяти, либо какойто внутренний кэш и специфичный региср или регистры.
Очень надеюсь что найдется кто нибудь знающий.
P.S. особенно хотелось бы узнать название какой нибудь книжки, где этот вопрос освещается.
 |
Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 31 мая 2010, 15:09
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Beras Kinis Olim
http://depositfiles.com/ru/files/xzo1uddse
В книге описаны особенности защищенного режима работы процессора, процедура переключения в защищенный режим и возврата в реальный режим
 |
Ответ отправил: Beras Kinis Olim (статус: 1-ый класс)
Время отправки: 31 мая 2010, 15:14
|
Мини-форум вопроса
Всего сообщений: 8; последнее сообщение — 31 мая 2010, 20:02; участников в обсуждении: 2.
|
SOA (статус: Посетитель), 31 мая 2010, 15:16 [#1]:
Если это фролов то у меня ужо есть
|
|
Вадим К (статус: Академик), 31 мая 2010, 15:17 [#2]:
В целом, в процессоре есть механизмы для поддержки мальтизадачности, но операционные системы обычно используют свои методы.
Например, классический вариант может выглядеть так. по прерыванию пробуждается менеджер процессов. Он смотрит на текущее состояние процессов и по необходимости делает переключение процесса. Оно заключается в том, что вначале для текущего процесса сохраняется контекст (состояние регистров), потом выбирается новая задача и ее контекст загружается. Так как планировщик работает в прерывании, то текущий процесс остановлен. Приблизительно так работает и Windows, и Linux.
Вам хочется узнать об этом с какой целью?
- писать свою ось
- поисследовать в текущей
- что то свое.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
SOA (статус: Посетитель), 31 мая 2010, 15:22 [#3]:
Как понимаю я мультизадачность какраз обеспечивается архитектурой самого процессора начиная с 286 intela, потому и думаю что за переключение между задачами отвезает сам процессор, используя какието механизмы, а ОС только использует внутренние механизмы процессора, облегчая их использование, предоставляя свои API для этого.
|
|
SOA (статус: Посетитель), 31 мая 2010, 15:24 [#4]:
Интересно потому что если узнать механизм переключения задач на уровне проца а не API windows то можно переключаться между задачами и под Windows и под UNIX, а также залезть в чужое адресное пространство.
|
|
Вадим К (статус: Академик), 31 мая 2010, 16:23 [#5]:
Ещё раз пишу - не использует ни Windows, ни Linux встроенные в проц средства. А свои.
А вот зачем переключаться между процессами - я не знаю. Смысл?
Что бы залезть в чужое адресное пространство, не нужно уметь переключаться между процессами - есть специальные апи.
А вот универсального решения для двух операционок врядкли получиться сделать.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
SOA (статус: Посетитель), 31 мая 2010, 16:45 [#6]:
Из книг следует что многозадачность обеспечивает архитектура процессора, а не операционки, они лишь используют эту возможность. Подозреваю что копать нужно в сторону систем защиты многозадачности.
|
|
Вадим К (статус: Академик), 31 мая 2010, 16:57 [#7]:
правильная формулировка "они могут использовать эти возможности". Но не обязаны.
"защита многозадачности" - хорошее сочетание.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
SOA (статус: Посетитель), 31 мая 2010, 20:02 [#8]:
Вы правы windows не использует TSS, а эмулирует это както програмно, но тогда встает вопрос: Почему до 286 не смогли програмно эмулировать многозадачность, вот что странно и бросается в глаза на мой взгляд.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|