TSS

Тема в разделе "WASM.OS.DEVEL", создана пользователем TSS, 13 апр 2009.

  1. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Кто-нибудь может пояснить, почему в GDT целых 4 дескриптора TSS? Я почему то думал что он должен быть там в единственном экземпляре.
     
  2. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Туплю, если бы был только один дескриптор, то отсутствовала бы многозадачность. Осталось разобраться почему дескрипторов там именно четыре...
     
  3. SII

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

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

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Один используется при обработке двойной ошибки #DF, KiTrap08().
    Один используется при обработке NMI(KiTrap02).
    Один рабочий используется планировщиком.
    Зачем нужен есчо один не знаю.
     
  5. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Clerk
    Угу, но эти два -- для обработки прерываний, а не для реализации многозадачности как таковой.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    SII
    В виндовс используется програмное переключение задач, TSS используется не полностью, точнее всего несколько полей из неё(Ss, Esp). Аппаратное переключение задач не используется. Еслибы процессор не требовал этого например для обработки прерываний разработчики виндовс вообще отказались бы от использования TSS.
     
  7. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Clerk
    Но почему так? Ведь аппаратное переключение задач должно быть быстрее програмного?
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Связано с гибкостью. Например манипуляции с контекстом потока(это и есть понятие задачи).
     
  9. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    TSS
    На 80386 аппаратное переключение было ТОЧНО медленнее программного. Скорей всего, так и в последующих процессорах. Ну и гибкость, о чём уже сказал Clerk. Архитектура ИА-32 -- это сплошной "навязчивый сервис", очень многие вещи в ней, в том числе и многозадачность, спроектированы безобразно, а поэтому неудобны в практическом использовании.
     
  10. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Еще один видимо нужен для обработки #TS или #MC.
     
  11. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Именно #MC.
     
  12. Pushkoff

    Pushkoff New Member

    Публикаций:
    0
    Регистрация:
    12 сен 2005
    Сообщения:
    40
    Адрес:
    Донецк
    А сколько ядер на проце?
    Может для каждого ядра свой TSS?
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Для каждого свой. Для каждого свой IDT, GDT и пр.