Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Многопроцессорная обработка






Многозадачность – механизм, позволяющий использовать один процессор для выполнения нескольких потоков.

Выполнение нескольких потоков на одном процессоре искусственно засчет развитого механизма очередей и обработки прерываний. Реально многозадачность можно обеспечить только на нескольких процесорах: один поток на одном процессоре.

В Windows предусмотрена поддержка симметричной многопроцессорной обработки (SMP). Особенность этой модели – нет главного процессора, код ОС как и код приложений может выполняться на любом процессоре. Все процессоры используют общую память (виртуальную, которая отображается на реальную память всех процессоров). Примечание: асимметричная многопроцессорная обработка (ASMP). Особенность: ОС выполняется целиком на одном процессоре, а приложения – на других (слайд 9).

ОС Windows XP и Windows 2003 Server.поддерживают два новых типа многопроцессорной обработки: логические процессоры (multithreading, hyperthreading, см. аппаратные средства и обработку NUMA).

Логические процессоры – технологии Intel, на одном процессоре эмулируются два и более логических процессоров, позволяют одному логическому процессору работать, другому – ожидать. При этом в реальном процессоре механизм выполнения (Executive Engine) один и кэш тоже один (общий).

Технология приводит к специфичным алгоритмам планирования и диспетчирования процессов. Идея: в NUMA системах процессоры группируются в блоки, называемые узлами. В каждом узле имеется своя память. Узлы связываются специальной шиной. Примечание: в случае NUMA систем Windows работает в них как в SNP системах. Идея: ОС повышает производительность, выделяя потокам время на процессорах, которые менее загружены или по каким-то другим соображениям. Windows, функционирующая на 32-разрядной платформе, поддерживает 32 процессора (32-разрядная маска, каждый бит – подпроцессор). 64-разрядный Windows поддерживает до 64 процессоров. Реальное количество процессоров зависит от версии Windows или его выпуска. Число поддерживаемых процессоров хранится в параметре реестра. Кто искусственным способом внес изменения в число поддерживаемых процессоров для конкретной установки ОС – нарушитель лицензионного соглашения. В силу этого ядро и HAL также имеет одно- и многопроцессорные версии. В Windows 2000 другие шесть системных файлов, в Windows Server 2003 и XP в трех системных файлах. В 64-разрядных версиях отличия только в ядре и HAL. Соответствующие версии файлов копируются при установке ОС в системный каталог Windows / system32. Чтобы посмотреть, что скопировалось при установке, надо посмотреть журнал установки. Примечание: отдельная разработка и компиляция этих файлов необходима для повышения производительности системы в целом. Например, возникает задача синхронизации работы нескольких процессоров и их загрузки. Задача сложная, в однопроцессорных системах ее нет. Замечание: согласно Руссиновичу, однопроцессорные и многопроцессорные версии ядра ntoskernel создаются засчет компиляции одного и того же исходного кода. При этом в случае многопроцессорных версий машинные команды lock и unlock используются для синхронизации множества потоков, заменяются командой ассемблера nop (нет операции). Остальные файлы одинаковые для тех и других систем.

Масштабируемость – одна из ключевых задач многопроцессорных систем, т.е. возможность функционирования независимо от количества работающих в текущий момент процессоров. Это достигается в ОС Windows следующими способами:

1) код ОС может выполняться на любом процессоре в случае его доступности. Все потоки одного процесса могут выполняться параллельно на отдельных процессорах;

2) тонкая синхронизация процессоров ядром – мьютексы, семафоры, спин-блокировки и др.

Механизмы поддержки многопроцессорных систем улучшались от версии к версии. Например в Windows 2003 Server планирование процессов и потоков, их параллельное выполнение осуществляются для каждого процессора.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.