- •Операционные системы
- •Введение
- •Глава 1 понятие и эволюция операционных систем
- •1.1. Определение операционной системы
- •1. 2. История развития операционных систем
- •1.3. Основные характеристики ос
- •1.4. Принципы построения ос
- •Глава 2 архитектура вычислительной системы
- •2.1. Особенности методов построения
- •Глава 3 управление процессами
- •3.1. Операции над процессами
- •3.2. Основная концепция обработки прерываний
- •3.3. Переключение контекста в ec эвм
- •Глава 4 управление асинхронными параллельными процессами
- •If q(s) очередь не пуста?
- •Глава 5 управление основной памятью
- •Глава 6 управление виртуальной памятью
- •6.1. Концепция виртуальной памяти
- •1.Признак обращения 0 - было
- •2.Признак модификации записи 0 - неизменен.
- •6.2. Динамическая страничная организация
- •6.3. Сегментная организация виртуальной памяти
- •6.4. Комбинированная странично-сегментная организация памяти
- •6.5. Двухуровневая страничная организация
- •Глава 7 многозадачность и многонитевость
- •7.1. Понятие многонитевости
- •7.2. Реализация многонитевой обработки в windows 95
- •7.3. Подкачка страниц памяти
- •Глава 8 управление процессорами и заданиями в однопроцессорном вычислительном комплексе
- •Глава 9 управление процессорами и заданиями в мультипроцессорных вычислительных комплексах.
- •9.1. Решение фирмы Сompaq
- •Глава 10 управление периферийными устройствами
- •10.1. Физическая организация периферийных устройств
- •10.2. Организация программного обеспечения ввода-вывода
- •Глава 11 подсистема управления данными
- •11.1. Система управления файлами
- •11.2. Способы доступа и организации файлов
- •11.3. Управление внешней памятью
- •11.4. Способы распределения памяти на диске
- •Глава 12 Современные концепции и технологии проектирования операционных систем
- •12.1. Требования, предъявляемые к ос 90-х годов
- •12.2. Тенденции в структурном построении ос
- •Глава 13 История и общая характеристика семейства операционных систем unix
- •Глава 14 История Windows nt
- •14.1. Версии Windows nt
- •14.2. Структура: nt executive и защищенные подсистемы
- •14.3 Области использования Windows nt
- •Литература:
Глава 9 управление процессорами и заданиями в мультипроцессорных вычислительных комплексах.
Современной тенденцией развития вычислительной техники является построение вычислительных комплексов, содержащих несколько ЦП, называемых мультипроцессорными вычислительными системами. Мультипроцессорная обработка – это способ организации вычислений в системах с несколькими процессорами, при котором несколько задач (процессов, нитей) могут одновременно выполняться на разных процессорах системы.
Целью построения мультипроцессорных вычислительных систем является:
-
повышение производительности вычислительных систем;
-
повышение надежности и коэффициента готовности вычислительной системы.
Существует два вида мультипроцессорных вычислительных систем:
-
Мультипроцессорные вычислительные системы со слабо связанными процессорами, называемые многомашинными комплексами, которые предусматривают соединение двух или более вычислительных машин при помощи канала связи и/или внешней памяти (рис.9.1).
Рис. 9.1. Системы со слабо связанными процессорами
-
Мультипроцессорные системы с сильно связанными процессорами, называющиеся многопроцессорными вычислительными комплексами, которые имеют единую ОП, коллективно используемую несколькими ЦП (рис.9.2).
Рис.9.2. Мультипроцессорная система
Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами.
Например, необходимо планировать процессы не для одного, а для нескольких процессоров, что гораздо сложнее. Сложности возрастают при возрастании количества конфликтов по обращению к устройствам ввода/вывода, данным общей памяти и совместно используемым программам. Все эти проблемы должны решать ОС путем синхронизации, ведения очередей, планирования процессов.
Итак, в отличие от однопроцессорных ОС, подсистемы управления процессами и заданиями должны выполнять следующие основные функции:
-
организацию взаимодействия центральных процессоров (синхронизация);
-
управление загрузкой процессоров (диспетчирование).
Существует несколько способов взаимодействия ЦП:
-
Вычислительный комплекс и ОС с подчиненными процессорами - асимметричное мультипроцессирование (один главный процессор и несколько подчиненных).
-
Вычислительный комплекс и ОС с равноправными процессорами.
-
Вычислительный комплекс и ОС с симметричной организацией - симметричное мультипроцессирование.
В мультипроцессорных системах с подчиненными процессорами один ЦП является главным, остальные - подчиненными (ведущий - ведомые). Это самая простая организация не намного сложнее однопроцессорной системы. Операционная система выполняется только на главном процессоре. Этот ЦП осуществляет ввод-вывод и управляет загрузкой подчиненных процессоров. Подчиненные процессоры выполняют только программы пользователя. Узкое место - главный процессор. Он должен иметь большую мощность (производительность), чем подчиненные процессоры, чтобы последние не простаивали.
В мультипроцессорной системе с равноправными процессорами каждый ЦП имеет собственную ОС и управляет собственными ресурсами и устройствами ввода/вывода по типу многомашинных комплексов. В такой организации для управления всей системы существуют таблицы с глобальной системной информацией, доступ к которой строго контролируется методом взаимного исключения. Каждый ЦП берет из общей операции задание и выполняет его до завершения. Во время исполнения взаимодействие между ЦП не предусматривается. Данную систему характеризует высокая надежность, но не достаточно высокий уровень распараллеливания.
Симметричная организация мультипроцессорной системы наиболее сложна и эффективна. Здесь все ЦП - идентичны. Каждый из них может управлять работой любого периферийного устройства и обращаться к любому устройству памяти. В таких системах в общей области памяти существует две очереди: очередь готовых процессов и очередь готовых процессоров.
В любой момент времени любой готовый процесс может выполняться на любом готовом процессоре. Процессы во время своего исполнения мигрируют между ЦП. ОС также перемещается по процессорам, но в каждый момент времени может находиться только на одном процессоре.
Симметричное мультипроцессирование реализуется общей для всех процессоров ОС. Все процессы равноправно участвуют в управлении вычислительным процессом и в выполнении прикладных задач. Например, сигнал прерывания от устройства, на которое выводит данные прикладной процесс, выполняемый на некотором процессоре, может быть обработан совсем другим процессором.
Разные процессоры могут в какой-то момент времени выполнять как разные, так и одинаковые модули общей ОС. Для этого программные модули ОС должны обладать свойством повторной входимости – реентерабельности. ОС полностью децентрализована. Освободившийся процессор сам запускает планировщик задач, который выбирает из общей системной очереди задачу для выполнения. Все ресурсы выделяются для задачи по мере потребности и не закрепляются за процессором. При таком подходе все процессоры работают с одной и той же динамически выравниваемой загрузкой. В решении одной задачи могут участвовать сразу несколько процессоров, если она допускает распараллеливание, например, путем предоставления нескольких нитей (потоков для WINDOWS NT фирмы Microsoft, UNIX - SOLARIS компании Sun, базирующийся на UNIX System V Release 4).
Достоинства этой организации:
-
высокая надежность (отказ одного из ЦП исключает его из очереди готовых процессоров);
-
сбалансированная загрузка ЦП;
-
лучшее использование ресурсов.
Недостаток - возрастает число конфликтов по системному обслуживанию, так как ОС имеется только в одном экземпляре.
Фирма COMPAQ, сотрудничая с NOVELL, выпустила OS-NETWARE from COMPAQ.
SCO UNIX оптимизирована под серверы COMPAQ и поддерживает многопроцессорность с помощью утилиты SCO MPX, которая эффективно использует симметричную многопроцессорную архитектуру.
Рассмотрим архитектуру двухпроцессорной вычислительной системы фирмы COMPAQ. В основу решения положены два принципа:
-
пропускная способность шины должна превышать сумму пропускных способностей всех подключенных к ней компонент;
-
как следствие, компонента, готовая передать данные, не должна ждать.
Первое - за счет наращивания разрядности шин. Второе - за счет кэширования. Первоначально IBM PC/XT/AT имели один 8/16 - разрядный канал передачи данных, к которому посредством шины подключались все основные компоненты системы: процессор, память, устройство ввода/вывода (рис. 9.3)
Рис.9.3 Архитектура однопроцессорной системы
По сути, канал представляет собой расширение шины процессора, и повышение производительности канала за счет применения новых, более быстродействующих процессоров оказалось невозможным из-за сохранения совместимости с существующими устройствами, рассчитанными на работу с 8 МГц шиной ISA. Шина стала «узким местом» и ограничивала скорость доступа ЦП к памяти.