TSS

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

  1. TSS

    TSS New Member

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

    TSS New Member

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

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

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

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Один используется при обработке двойной ошибки #DF, KiTrap08().
    Один используется при обработке NMI(KiTrap02).
    Один рабочий используется планировщиком.
    Зачем нужен есчо один не знаю.
     
  5. SII

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

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Clerk
    Угу, но эти два -- для обработки прерываний, а не для реализации многозадачности как таковой.
     
  6. Clerk

    Clerk Забанен

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

    TSS New Member

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

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Связано с гибкостью. Например манипуляции с контекстом потока(это и есть понятие задачи).
     
  9. SII

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

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

    Phantom_84 New Member

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

    Medstrax Забанен

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    673
    Именно #MC.
     
  12. Pushkoff

    Pushkoff New Member

    Blog Posts:
    0
    Joined:
    Sep 12, 2005
    Messages:
    40
    Location:
    Донецк
    А сколько ядер на проце?
    Может для каждого ядра свой TSS?
     
  13. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Для каждого свой. Для каждого свой IDT, GDT и пр.