Как процессор intel переключает задачи в защищенном режиме

Тема в разделе "WASM.OS.DEVEL", создана пользователем SOA, 31 май 2010.

  1. SOA

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    Привет всем.
    Мне интересно с чисто практической точки зрения то как процессор intel переключает задачи в защищенном режиме.
    Возможно есть какая то выделенная область оперативной памяти, где хранятся дескрипторы на точки входа в запущенные процессы.
    Как бы там ни было интересен сам механизм переключения между задачами, который использует процессор, ведь многозадачность осуществляется за счет архитектуры процессора, а не за счет ОСей, которые лишь используют эту возможность.
    Ведь если узнать как процессор манипулирует задачами, то возникает как мне кажется возможность залезть в адресное пространство чужих процессов, под ЛЮБОЙ ОС, либо отвести все процессорное время своей программе, опять же под любой ОС.
    Если кто что знает пишите.
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.568
    Адрес:
    Russia
    Вы ошибаетесь.
    Конечно в Intel процессорах есть механизм переключения задач (ищите по контексту TSS). И, допустим, по некоторому прерыванию осуществляется переключение задачи - в полях TSS содержится все информация о контексте.
    Но, есть одно но. В современных ОС этот механизм не используется. :) Потому что быстрее, и выгоднее иметь свой собственный планировщик, который будет переключать задачи сам.

    Процессор сам не манипулирует. ПО ему говорит, когда и как переключать задачи.
    Возможность влезть есть всегда и это не новость. Посмотрите сколько руткитов и мальварей кругом.
     
  3. SOA

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    Большое спасибо за ответ!
    И всетаки ведь вы же сами пишите
     
  4. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    SOA
    В архитектуре IA-32 для 16- и 32-разрядных защищённых режимов имеется механизм аппаратной многозадачности. Переключение задач в нём вызывается выполнением перехода на дескриптор состояния задачи (TSS), для чего могут использоваться прерывания или команды длинных переходов (которые меняют не только смещение, но и селектор сегмента -- собсно, именно он и играет роль, смещение в этом случае игнорируется).

    Однако этот механизм на практике не использовался из-за своей громоздкости и низкой эффективности (за исключением специальных случаев, но не о них речь, а об "обычной" многозадачности). Реальное переключение во всех сколько-нибудь распространённых осях выполняется вручную: регистры задачи, что снимается с процессора, сохраняется осью в определённом месте памяти, после чего производится загрузка регистров той задачи, которой нужно передать управление.

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

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    SII
    А какую нибудь книжку хорошую где эта тема есть не посоветуете покурить?
     
  6. SOA

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    Все пишут что используется програмная альтернатива TSS регистров процессора, но тогда возникает вопрос почему до 286, где собственно и появились 16 разрядные TSS регистры несмогли реализовать многозадачность(или об этом попросту никто не думал в то время). А не может ли быть такого, что все это заговор разработчиков осей и процев, с целью отвадить вирмэйкеров и прочих кодеров от TSS?(своеобразный EASTEREGG, о котором знают только спецслужбы, да и то не нашей страны)
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Не хочу показаться занудой, но посоветую покурить Intel Developer's Manual. Часть 1 (basic architecture) для ознакомления и часть 3 для изучения.
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    СМОГЛИ:
    Windows 1.0
    Windows 2.1
    прекрасно работают на 8086 8088 (всякие там xt и их клоны) - на монохромном мониторе выглядит охрененно особенно заставка
     
  9. SOA

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    Rockphorr
    Выдержки из Wikipedia
    Внимание на даты ;)
     
  10. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    SOA
    Уже ответили. Реально только в интеловских (ну или АМДшных) руководствах имеется более-менее вменяемая информация.

    Во-первых, как уже сказали, смогли -- были многозадачные системы. А во-вторых, ПК -- это Персональный Компьютер, и считалось, что больше одной программы одновременно выполнять не потребуется. Это, конечно, ошибка, которую по-настоящему исправили только с появлением Win NT, но это уже эпоха 80386 (правда, была ещё OS/2, которая вроде имела полноценную многозадачность на 80286, но широкого распространения она не имела, я с ней дела не имел, так что достоверно ничего не скажу). Принципиально же многозадачность можно было реализовать и на первых ПК (на 8088), а защиту памяти -- на 80286 (правда, основанную на сегментах, а не страницах, что не шибко удобно, но технически возможность была).
     
  11. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    SOA
    Лично я баловался с Виндой 1.0.1 на PC/XT производства фирмы Xerox -- с 640 килами ОЗУ и винтом на 20 гигов, но с процом 8088 и монохромным графическим контроллером Hercules.
     
  12. SOA

    SOA New Member

    Публикаций:
    0
    Регистрация:
    31 май 2010
    Сообщения:
    67
    Ну что тут скажешь Спасибо всем за информацию, теперь буду в курсе.
     
  13. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    SII
    2.1 меня впечатлила больше
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    SII
    у меня был оригинальный IBM PC XT
     
  15. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    640 кило оперативки 10метров жесткий диск дисковод на 5.25
     
  16. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Точно гигов?
     
  17. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    нет, есно, мегов :) пальцы по клаве топчут быстрей, чем мозги соображают
     
  18. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.625
    Адрес:
    Russia
    SII
    скоро когда будет засилье экза и пико то разница будет уже не существенна