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

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

Читайте также:
  1. VI. Обработка и анализ
  2. VI. Обработка и анализ
  3. VI. Обработка и анализ 1 страница
  4. VI. Обработка и анализ 2 страница
  5. VI. Обработка и анализ 3 страница
  6. VI. Обработка и анализ 4 страница
  7. VI. Обработка и анализ 5 страница

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

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

В 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 планирование процессов и потоков, их параллельное выполнение осуществляются для каждого процессора.

 


Дата добавления: 2015-07-07; просмотров: 176 | Нарушение авторских прав


Читайте в этой же книге: Примеры реализаций вычислительных систем. | Прерывания | Основные технологии программирования | Общие подходы к построению ОС. | Подходы к построению ОС. | Виртуализация | Инструментарий ОС (на основе Windows) | Режим ядра и пользовательский режим | Основные концепции построения Windows | Архитектура современных ОС |
<== предыдущая страница | следующая страница ==>
Обзор архитектуры| Подсистема окружения

mybiblioteka.su - 2015-2024 год. (0.007 сек.)