рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

SMP и Hyper-Threading

Работа сделанна в 2002 году

SMP и Hyper-Threading - Реферат, раздел Связь, - 2002 год - Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading Smp И Hyper-Threading. Как Работает Классическая Smpsymmetric Multi-Processor...

SMP и Hyper-Threading. Как работает классическая SMPSymmetric Multi-Processor - система с точки зрения обычной логики Не так уж велико количество пользователей, хорошо себе представляющих как работает SMP-система, и в каких случаях от использования двух процессоров вместо одного можно ожидать реального увеличения быстродействия, а в каких нет. Итак, представим, что у нас есть, к примеру, два процессора вместо одного.

Что это дает В общем-то ничего.

Потому что в дополнение к этому нужна еще и операционная система, умеющая задействовать эти два процессора. Эта система должна быть по определению многозадачной иначе никакого смысла в наличии двух CPU просто быть не может, но кроме этого, ее ядро должно уметь распараллеливать вычисления на несколько CPU. Классическим примером многозадачной ОС, которая этого делать не умеет, являются все ОС от Microsoft, называемые обычно для краткости Windows 9x 95, 95OSR2, 98, 98SE, Me. Они просто-напросто не могут определить наличие более чем одного процессора в системе. Поддержкой SMP обладают ОС этого же производителя, построенные на ядре NT Windows NT 4, Windows 2000, Windows XP. Также этой поддержкой обладают все ОС, основанные на идеологии Unix всевозможные Free- Net- BSD, коммерческие Unix такие как Solaris, HP-UX, AIX, и многочисленные разновидности Linux. Если же два процессора все же определились системой, то дальнейший механизм их задействования в общем довольно прост.

Если в данный момент времени исполняется одно приложение то все ресурсы одного процессора будут отданы ему, второй же будет просто простаивать.

Если приложений стало два второе будет отдано на исполнение второму CPU, так что по идее скорость выполнения первого не должна уменьшиться.

Однако на самом деле все сложнее. Исполняемое пользовательское приложение может быть запущено всего одно, но количество процессов т. е. фрагментов машинного кода, предназначенных для выполнения некой задачи в многозадачной ОС всегда намного больше. Поэтому на самом деле второй CPU способен немного помочь даже одиночной задаче, взяв на себя обслуживание процессов, порожденных операционной системой.

Кроме того, даже одно приложение может порождать потоки threads, которые при наличии нескольких CPU могут исполняться на них по отдельности. Так, например, поступают почти все программы рендеринга они специально писались с учетом возможности работы на многопроцессорных системах. Поэтому в случае использования потоков выигрыш от SMP иногда довольно весом даже в однозадачной ситуации.

По сути, поток отличается от процесса только двумя вещами он во-первых никогда не порождается пользователем процесс может запустить как система, так и человек, в последнем случае процесс приложение появление потока инициируется исключительно запущенным процессом, и во-вторых поток выгружается вместе с родительским процессом независимо от своего желания. Также не стоит забывать, что в классической SMP-системе оба процессора работают каждый со своим кэшем и набором регистров, но память у них общая.

Поэтому если две задачи одновременно работают с ОЗУ, мешать они друг другу будут все равно, даже если CPU у каждой свой. Ну и наконец последнее в реальности пользователь имеет дело не с одним, не с двумя, и даже не с тремя процессами. На приведенном коллаже это действительно коллаж, потому что со скриншота Task Manager были удалены все пользовательские процессы, т. е. приложения, запускаемые для работы хорошо видно, что голая Windows XP, сама по себе, не запустив еще ни одного приложения, уже породила 12 процессов, причем многие из них к тому же еще и многопоточные, и общее количество потоков достигает двухсот восьми штук Поэтому рассчитывать на то, что удастся прийти к схеме по собственному CPU на каждую задачу совершенно не приходится, и переключаться между фрагментами кода процессоры будут все равно и физические, и виртуальные.

Впрочем, на самом деле все не так грустно при грамотно написанном коде ничего в данный момент не делающий процесс или поток процессорного времени практически не занимает это тоже видно на коллаже.

Теперь, разобравшись с физической многопроцессорностью, перейдем к Hyper-Threading. Фактически это тоже многопроцессорность, только виртуальная. Ибо процессор Pentium 4 на самом деле один. А процессоров ОС видит два. Как это Классическому одноядерному процессору добавили еще один блок AS IA-32 Architectural State. Architectural State содержит состояние регистров общего назначения, управляющих, APIC, служебных. Фактически, AS1 плюс единственное физическое ядро блоки предсказания ветвлений, ALU, FPU, SIMD-блоки и пр. представляет из себя один логический процессор LP1, а AS2 плюс все то же физическое ядро второй логический процессор LP2. У каждого LP есть свой собственный контроллер прерываний APIC Advanced Programmable Interrupt Controller и набор регистров.

Для корректного использования регистров двумя LP существует специальная таблица RAT Register Alias Table, согласно данным в которой можно установить соответствие между регистрами общего назначения физического CPU. RAT у каждого LP своя. В результате получается схема, при которой на одном и том же ядре могут свободно выполняться два независимых фрагмента кода т. е. де-факто многопроцессорную систему 3.

– Конец работы –

Эта тема принадлежит разделу:

Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading

Однако кто-то может вполне резонно поинтересоваться А зачем мне двухпроцессорная машина дома И действительно зачем Именно это я и постарался… Что это дает В общем-то ничего. Потому что в дополнение к этому нужна еще и операционная система, умеющая задействовать эти два процессора. Эта…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: SMP и Hyper-Threading

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Hyper-Threading совместимость
Hyper-Threading совместимость. Кроме того, возвращаясь к вещам практическим и приземленным, хотелось бы затронуть еще один немаловажный аспект не все ОС, даже поддерживающие многопроцессорность, мо

Hyper-Threading зачем она нужна
Hyper-Threading зачем она нужна. Компания Intel, если внимательно посмотреть, никогда не отличалась абсолютным совершенством своих продуктов, более того вариации на те же темы от других производите

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги