TSS

Discussion in 'WASM.OS.DEVEL' started by TSS, Apr 13, 2009.

  1. TSS

    TSS New Member

    Blog Posts:
    0
    Кто-нибудь может пояснить, почему в GDT целых 4 дескриптора TSS? Я почему то думал что он должен быть там в единственном экземпляре.
     
  2. TSS

    TSS New Member

    Blog Posts:
    0
    Туплю, если бы был только один дескриптор, то отсутствовала бы многозадачность. Осталось разобраться почему дескрипторов там именно четыре...
     
  3. SII

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

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

    Clerk Забанен

    Blog Posts:
    0
    Один используется при обработке двойной ошибки #DF, KiTrap08().
    Один используется при обработке NMI(KiTrap02).
    Один рабочий используется планировщиком.
    Зачем нужен есчо один не знаю.
     
  5. SII

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

    Blog Posts:
    0
    Clerk
    Угу, но эти два -- для обработки прерываний, а не для реализации многозадачности как таковой.
     
  6. Clerk

    Clerk Забанен

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

    TSS New Member

    Blog Posts:
    0
    Clerk
    Но почему так? Ведь аппаратное переключение задач должно быть быстрее програмного?
     
  8. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Связано с гибкостью. Например манипуляции с контекстом потока(это и есть понятие задачи).
     
  9. SII

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

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

    Phantom_84 New Member

    Blog Posts:
    0
    Еще один видимо нужен для обработки #TS или #MC.
     
  11. Medstrax

    Medstrax Забанен

    Blog Posts:
    0
    Именно #MC.
     
  12. Pushkoff

    Pushkoff New Member

    Blog Posts:
    0
    А сколько ядер на проце?
    Может для каждого ядра свой TSS?
     
  13. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Для каждого свой. Для каждого свой IDT, GDT и пр.