Реализация многозадачности в Windows NT на x386

Тема в разделе "WASM.WIN32", создана пользователем Folk Acid, 13 июл 2006.

  1. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Где бы прочитать про сабж?

    На васме я нашел статьи про реализацию многозадачности вообще, но не в Windows

    Пытаюсь пока посмотреть ядро Windows 2000 под отладкой в Soft-ICE и имею проблемы

    1) Точки останова на прерываниях, в частности на прерывании от таймера не срабатывают

    2) TSS 8-го прерывания (по идее, таймера) ссылается на код который вызывает KeBugCheckEx с определенными параметрами. На выходе из KeBugCheckEx идет jump на повторный вызов этой функции. Это значит что KeBugCheckEx может не только делать синий экран но и как-то переключать процессы?

    3) Почему регистр cs в юзер-моде всегда ссылается на 1Bh? Получается что дескриптор памяти процессов только один, но изменяемый при каждом переключении процесса? В GDT гораздо меньше дескрипторов, чем процессов в системе, а LDT в Windows отсутствует вроде.
     
  2. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    > LDT в Windows отсутствует вроде

    Вроде бы нет, хотя бы в SoftIce есть команда "LDT".

    Вообще многое сделано на страничной адресации, а использование сегментов и всяких уровней привилегий довольно простое.
     
  3. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Folk Acid
    А почему 8-е прерывание - это таймер? Вообще-то это double error, если мне память не изменяет...
     
  4. YoungBastard

    YoungBastard New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2005
    Сообщения:
    231
    Адрес:
    Russia
    Folk Acid

    2)
    Вырезка из Соломона,Руссиновича:
    "KeBugCheckEx вызывает все зарегистрированные (с помощью функции KeRegisterBugCheckCallback) функции обратного вызова драйверов устройств при ошибке (device driver bug check callbacks), чтобы они могли остановить свои устройства".

    ваще, для того, чтобы познать как работает многозадачность в винде, сначала почитай Соломона,Руссиновича(желательно 4-е издание, последнее) и Свена Шрайбера.
    Я думаю, и на эти два вопроса заданных тобою ты найдешь ответы там, чтобы лишний раз не лазить айсом или kedbg