TSS в IA32

Тема в разделе "WASM.ZEN", создана пользователем letopisec, 21 дек 2004.

  1. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    У меня немного странный вопрос. Зачем нужен механизм задач? Почему нельзя обойтись простым набором сегментов без TSS? Например почему ОС зугружая образ приложения в память должна создавать для него TSS desc, а не Seg desc, или наоборот?
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Э. Таненбаум - это ответ тебе на многие вопросы
     
  3. Dark_Master

    Dark_Master Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    32
    Адрес:
    Усть-За###юйск
    Механизм задач нужен для обеспечения многозадачности :))

    Через него реализуются многие вещи вроде карты разрешения ввода-вывода, которые очень трудно реализовать "вручную".

    А еще, без механизма TSS нельзя сделать нормальную эмуляцию 8086, флаг VIP, например, должен управляться ОС через сегмент TSS, по рекомендациям интел.

    Никто не говорит что нельзя переключать задачи по другому, это как сопроцессор - можно и эмулировать, но без эмуляции проще,быстрее, удобнее и надежнее.
     
  4. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Хм... Минимум спорное утверждение. И Linux, и Windows - обе не имеют TSS и обе переключают вручную. Поиск по форуму - слово "SwapContext" - даже полный дизассемблированный листинг приводил с комментариями и я, и Four-F.
     
  5. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    Dark_Master



    Хм, насколько я знаю, винда не использует TSS для переключения задач... И это, как ни странно, сделано именно для того, чтобы было быстрее.



    З.Ы.: Не успел ответить первым...
     
  6. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    volodya



    Почему не имеют? В винде же, вроде, есть одна TSS (она, правда, общая для всех задач, и не используеися для их переключения)... К примеру, в этой TSS находится карта разрешения ввода-вывода.



    З.Ы.: Ты все это, конечно, знаешь...
     
  7. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Ну, если быть более точным, в винде есть от двух до трех TSS (сам точно не знаю :)). Но я лишь хотел подчеркнуть, что для переключения задач TSS не используется :)
     
  8. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    2All



    то есть в принципе ОС может и не использовать Hardware Task Management, этот довесок только для ускорения переключения контекста и является полной альтернативой для softwre task management, я правильно понял?



    Или может есть какие-нибудь новые возможности или необходимость использования механизма? Например

    собрался я писать ОС, и как мне определить когда использовать TSS desc, а когда Code, Data desc. Т.е. какова идеология у создателей IA32?



    Вот такой совершенно дурацкий вопрос (главное совершенный ;) ).
     
  9. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Небольшое заблуждение. TSS явно НЕ медленнее, чем программное переключение. Просто программно переключая контекст, разработчики имеют больше гибкости. Вот и все дела.
     
  10. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    >Просто программно переключая контекст, разработчики имеют больше гибкости. Вот и все дела.



    Спасибо.
     
  11. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    volodya



    =) Ух ты, я об этом первый раз слышу. Расскажи, плиз, об этом подробнее (даже то, о чем знаешь не точно). Мне интересно стало:) Для чего их нужно так много, т.е. для чего используются дополнительные TSS?
     
  12. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    Какой интересный топик:)



    volodya



    И об этом тоже, плиз, расскажи подробнее. В чем заключается большая гибкость?
     
  13. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Расскажи, плиз, об этом подробнее



    Дык по форуму поищи! Я же говорил - swapcontext - там я, Four-F и BlackMirror обсуждали...
     
  14. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    я когда-то тестировал скорость переключения через TSS и без. интересен результат: на некоторых процах время практически идентично, на некоторых быстрее TSS, а на других - ручное :). Зависело от модели.
     
  15. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    да, и к вопросу "зачем нужен TSS" - на самом деле x86 смог бы прекрасно работать как минимум без половины поддерживаемых структур и механизмов (я не говорю уже о наборах команд), не утеряв при этом производительности. Ну "половины" я может и загнал, но раз уж выкидывать TSS, то за ним же можно смело выбрасывать и LDT
     
  16. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
  17. Oleg_SK

    Oleg_SK Guest

    Публикаций:
    0
    volodya

    Да, насчет того, что я первый раз слышу о наличии нескольких TSS - это я сглючил. Кому интересно, есть интересный топик по этой теме: Количество TSS . Этот вопрос снят.





    Понятно. Это заблуждение возникло после прочтения одного из твоих постов в указанном выше топике. Там была следующая фраза: "For performance reasons, Windows NT does not use this architectural feature and maintains one base TSS that all processes share.". Наверно, я ее неверно понял...
     
  18. Dark_Master

    Dark_Master Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    32
    Адрес:
    Усть-За###юйск
    Меня немного неправильно поняли, я не говорил что нормальное переключение задач нельзя сделать без TSS. В моем посте говорится что с помощью TSS проще реализовать разрешение ввода-вывода и т.д. Современные ОС именно для этого и используют TSS
     
  19. Orb

    Orb New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2003
    Сообщения:
    2
    Слышал еще одну теорию что программное переключение задач реазизовано в том числе и для упрощения портирования системы (еще первых NT) на другие процессорные архитектуры... IMHO вполне может быть
     
  20. Dark_Master

    Dark_Master Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    32
    Адрес:
    Усть-За###юйск
    IMHO так и есть. Просто в том же самом w2k в чистом виде не используется практически ничего из того, что характерно только для x86 - механизм прерываний сделан по-своему - IRQL и т.д.

    TSS тоже не используется так, как это рекомендует intel. Уровней привилегий только 2, а не 4, потому что процы DEC которые поддерживаются w2k имеют только 2 уровня привилегий.