
- •Введение
- •Введение в компьютерные и операционные системы
- •Структура компьютерной системы
- •Программное обеспечение компьютерной системы
- •1.2.1 Операционная система
- •1.2.1.1 Управляющая программа
- •1.2.1.2 Системные обрабатывающие программы
- •1.2.2 Пакеты прикладных программ
- •1.2.3 Программы технического обслуживания
- •Аппаратное обеспечение компьютерной системы
- •1.3.1 Процессор
- •1.3.2 Внутренняя память
- •1.3.3 Устройства ввода и вывода, внешняя память
- •Основные функции и архитектурные особенности ос
- •1.4.1 Основные функции ос:
- •3) Управление памятью.
- •1.4.2 Монолитное ядро
- •1.4.3 Слоеные системы (Layered systems)
- •1.4.4 Виртуальные машины
- •1.4.5 Микроядерная архитектура
- •1.4.6 Смешанные системы
- •Классификация ос
- •Контрольные вопросы
- •Архитектура компьютерных систем
- •Классификация архитектур по параллельной обработке данных
- •Гибридная архитектура numa
- •Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе
- •Контрольные вопросы
- •Способы организации высокопроизводительных процессоров. Ассоциативные конвейерные и матричные процессоры
- •1) Ассоциативные процессоры
- •2) Конвейерные процессоры
- •3) Матричные процессоры
- •Ассоциативные процессоры
- •Конвейерные процессоры
- •Матричные процессоры
- •Контрольные вопросы
- •Способы организации высокопроизводительных процессоров. Новые архитектуры процессоров
- •Клеточные и днк-процессоры.
- •Коммуникационные процессоры
- •Процессоры баз данных
- •Потоковые процессоры
- •Нейронные процессоры
- •Процессоры с многозначной (нечеткой) логикой
- •Контрольные вопросы
- •Управление процессами. Состояние процессов и операции над процессами
- •Введение в процессы
- •Состояния процесса
- •Операции над процессами и связанные с ними понятия
- •5.3.1 Набор операций
- •5.3.2 Pcb и контекст процесса
- •5.3.3 Одноразовые операции
- •5.3.4 Многоразовые операции
- •5.3.5 Прерывание и типы прерываний
- •5.3.6 Переключение контекста
- •5.3.7 Ядро операционной системы
- •Контрольные вопросы
- •Управление процессами. Кооперация процессов и основные аспекты ее логической организации
- •Введение в кооперацию процессов
- •Взаимодействующие процессы
- •Категории средств обмена информацией
- •Логическая организация механизма передачи информации
- •6.4.1 Установление связи между процессами
- •6.4.2 Однонаправленные и двунаправленные связи между процессами
- •6.4.3 Особенности передачи информации с помощью линий связи
- •1) Буферизация
- •2) Поток ввода/вывода и сообщения
- •6.4.4. Надежность средств связи
- •6.4.5 Завершение связи
- •Потоки исполнения
- •Контрольные вопросы
- •Управление процессами. Алгоритмы синхронизации
- •Чередования, условия состязания и взаимоисключения
- •Критическая секция
- •Алгоритмы взаимоисключений
- •7.3.1 Требования, предъявляемые к алгоритмам
- •7.3.2 Запрет прерываний
- •7.3.3 Переменная-замок
- •7.3.4 Строгое чередование
- •7.3.5 Флаги готовности
- •7.3.6 Алгоритм Петерсона
- •7.3.7 Алгоритм булочной (Bakery algorithm)
- •Аппаратная поддержка взаимоисключений
- •7.4.1 Команда Test-and-Set (Проверить и присвоить 1)
- •7.4.2 Команда Swap (Обменять значения)
- •Недостатки алгоритмов взаимоисключений
- •Семафоры
- •7.6.1 Концепция семафоров
- •7.6.2 Решение проблемы производитель-потребитель с помощью семафоров
- •Мониторы
- •Сообщения
- •Эквивалентность семафоров, мониторов и сообщений
- •Контрольные вопросы
- •Управление процессами. Тупики
- •Введение в тупики
- •Концепция ресурса
- •Условия возникновения тупиков
- •Основные направления борьбы с тупиками
- •2) Обнаружение тупиков
- •3) Восстановление после тупиков
- •Алгоритм страуса
- •Обнаружение тупиков
- •Восстановление после тупиков
- •8.7.1 Восстановление при помощи перераспределения ресурсов
- •8.7.2 Восстановление через откат назад
- •8.7.3 Восстановление через ликвидацию одного из процессов
- •Способы предотвращения тупиков путем тщательного распределения ресурсов
- •8.8.1 Предотвращение тупиков и алгоритм банкира
- •8.8.2 Недостатки алгоритма банкира
- •Предотвращение тупиков за счет нарушения условий возникновения тупиков
- •8.9.1 Нарушение условия взаимоисключения
- •8.9.2 Нарушение условия ожидания дополнительных ресурсов
- •8.9.3 Нарушение принципа неперераспределяемости
- •8.9.4 Нарушение условия кругового ожидания
- •Проблемы аналогичные тупикам
- •8.10.1 Двухфазная локализация
- •8.10.2 Тупики не ресурсного типа
- •8.10.3 Голод
- •Контрольные вопросы
- •Управление памятью. Простейшие схемы управления памятью
- •1) Введение в управление памятью
- •2) Связывание адресов
- •Введение в управление памятью
- •Связывание адресов
- •Простейшие схемы управления памятью
- •9.3.1 Схема с фиксированными разделами
- •1) Один процесс в памяти
- •2) Оверлейная структура
- •9.3.2 Схема со свопингом
- •9.3.3 Схема с переменными разделами
- •Контрольные вопросы
- •Управление памятью. Архитектурные средства поддержки виртуальной памяти
- •1) Проблема размещения больших программ. Понятие виртуальной памяти
- •Проблема размещения больших программ. Понятие виртуальной памяти
- •Архитектурные средства поддержки виртуальной памяти
- •Способы организации виртуальной памяти
- •1) Страничная память
- •2) Сегментная организация памяти
- •3) Сегментно-страничная организации памяти
- •Ассоциативная память
- •Иерархия памяти
- •Размер страницы
- •Контрольные вопросы
- •Управление памятью. Аппаратно-независимый уровень управления виртуальной памятью
- •Введение в аппаратно-независимый уровень управления виртуальной памятью
- •Исключительные ситуации при работе с памятью
- •Стратегии управления страничной памятью
- •Алгоритмы замещения страниц
- •11.4.1 Алгоритм fifo (выталкивание первой пришедшей страницы)
- •11.4.2 Оптимальный алгоритм
- •11.4.3 Алгоритм lru (выталкивание дольше всего не использовавшейся страницы)
- •11.4.4 Алгоритм nfu (выталкивание редко используемой страницы)
- •11.4.5 Другие алгоритмы
- •Thrashing. Свойство локальности. Модель рабочего множества
- •Демоны пейджинга
- •Аппаратно-независимая модель памяти процесса
- •Отдельные аспекты функционирования менеджера памяти
- •Контрольные вопросы
- •Система управления вводом-выводом. Физические принципы организации ввода-вывода
- •Введение в систему управления вводом-выводом
- •Введение в физические принципы организации ввода-вывода
- •Общие сведения об архитектуре компьютера
- •Структура контроллера устройства
- •Опрос устройств
- •Прерывания
- •Прямой доступ к памяти
- •Контрольные вопросы
- •Система управления вводом-выводом. Логические принципы организации ввода-вывода
- •1) Введение в логические принципы организации ввода-вывода
- •2) Структура системы ввода-вывода
- •3) Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
- •Введение в логические принципы организации ввода-вывода
- •Структура системы ввода-вывода
- •Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
- •Функции базовой подсистемы ввода-вывода
- •Блокирующиеся, не блокирующиеся и асинхронные системные вызовы
- •Буферизация и кэширование
- •Spooling и захват устройств
- •Обработка прерываний и ошибок
- •Планирование запросов
- •Алгоритмы планирования запросов к жесткому диску
- •13.10.1 Строение жесткого диска и параметры планирования
- •Алгоритм fcfs
- •Алгоритм sstf
- •Алгоритмы сканирования (scan, c-scan, look, c-look)
- •Контрольные вопросы
- •Интерфейсы компьютерных систем
- •Классификация интерфейсов
- •Интерфейс rs-232 для порта сом
- •Интерфейс ieee 1284 для порта lpt
- •Интерфейс ps/2
- •Интерфейс usb
- •Интерфейс Firewire
- •Контрольные вопросы
- •Многопроцессорные компьютерные системы
- •1) Достоинства многопроцессорных систем
- •Достоинства многопроцессорных систем
- •Организация многопроцессорной аппаратуры
- •15.2.1 Общая шина
- •15.2.2 Матрица координатной коммутации
- •15.2.3 Организация с многопортовой памятью
- •Организация многопроцессорных операционных систем
- •15.3.1 Организация «главный-подчиненный»
- •15.3.2 Организация с раздельными мониторами
- •15.3.3 Симметричная организация
- •Контрольные вопросы
- •Требования к компьютерным системам
- •Основные требования к компьютерным системам
- •Отношение "стоимость/производительность"
- •Надежность и отказоустойчивость компьютерных систем
- •Показатели надежности компьютерных систем
- •Масштабируемость
- •Совместимость и мобильность программного обеспечения
- •Контрольные вопросы
- •Программы диагностики компьютерных систем
- •1) Программа диагностики post
- •2) Программа диагностики WatchDog
- •Программа диагностики post
- •Программа диагностики WatchDog
- •Контрольные вопросы
- •Список использованных источников
Гибридная архитектура numa
NUMA (nonuniform memory access) – неоднородный доступ к памяти. Главной особенностью такой архитектуры является неоднородный доступ к памяти.
Гибридная архитектура совмещает достоинства систем с общей памятью и относительную дешевизну систем с раздельной памятью. Суть этой архитектуры – в особой организации памяти, а именно: память физически распределена по различным частям системы, но логически она является общей, так что пользователь видит единое адресное пространство. Система построена из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. По существу, архитектура NUMA является MPP (массивно-параллельной) архитектурой, где в качестве отдельных вычислительных элементов берутся SMP (cимметричная многопроцессорная архитектура) узлы. Доступ к памяти и обмен данными внутри одного SMP-узла осуществляется через локальную память узла и происходит очень быстро, а к процессорам другого SMP-узла тоже есть доступ, но более медленный и через более сложную систему адресации.
Структурная схема компьютера с гибридной сетью (рис.2.3): четыре процессора связываются между собой при помощи кроссбара в рамках одного SMP-узла. Узлы связаны сетью типа "бабочка" (Butterfly):
Рисунок
2.3 -
Структурная схема компьютера с гибридной
сетью
Впервые идею гибридной архитектуры предложил C. Воллох, он воплотил ее в системах серии Exemplar. Вариант Воллоха – система, состоящая из восьми SMP-узлов. Фирма HP купила идею и реализовала на суперкомпьютерах серии SPP. Идею подхватил С. Крей (S.R.Cray) и добавил новый элемент – когерентный кэш, создав так называемую архитектуру cc-NUMA (Cache Coherent Non-Uniform Memory Access), которая расшифровывается как "неоднородный доступ к памяти с обеспечением когерентности кэшей". Он ее реализовал на системах типа Origin.
Понятие когерентности кэшей описывает тот факт, что все центральные процессоры получают одинаковые значения одних и тех же переменных в любой момент времени. Действительно, поскольку кэш-память принадлежит отдельному компьютеру, а не всей многопроцессорной системе в целом, данные, попадающие в кэш одного компьютера, могут быть недоступны другому. Чтобы этого избежать, следует провести синхронизацию информации, хранящейся в кэш-памяти процессоров.
Для обеспечения когерентности кэшей существует несколько возможностей:
а) использовать механизм отслеживания шинных запросов (snoopy bus protocol), в котором кэши отслеживают переменные, передаваемые к любому из центральных процессоров и при необходимости модифицируют собственные копии таких переменных;
б) выделять специальную часть памяти, отвечающую за отслеживание достоверности всех используемых копий переменных.
Наиболее известными системами архитектуры cc-NUMA являются: HP 9000 V-class в SCA-конфигурациях, SGI Origin3000, Sun HPC 15000, IBM/Sequent NUMA-Q 2000. На сегодня максимальное число процессоров в cc-NUMA-системах может превышать 1000 (серия Origin3000). Обычно вся система работает под управлением единой ОС, как в SMP. Возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС. При работе с NUMA-системами, так же, как с SMP, используют так называемую парадигму программирования с общей памятью (shared memory paradigm).
PVP-архитектура
PVP (Parallel Vector Process) – параллельная архитектура с векторными процессорами. Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1-16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько узлов могут быть объединены с помощью коммутатора (аналогично MPP). Поскольку передача данных в векторном формате осуществляется намного быстрее, чем в скалярном (максимальная скорость может составлять 64 Гбайт/с, что на 2 порядка быстрее, чем в скалярных машинах), то проблема взаимодействия между потоками данных при распараллеливании становится несущественной. И то, что плохо распараллеливается на скалярных машинах, хорошо распараллеливается на векторных. Таким образом, системы PVP-архитектуры могут являться машинами общего назначения (general purpose systems). Однако, поскольку векторные процессоры весьма дорого стоят, эти машины не могут быть общедоступными.
Наиболее популярны три машины PVP-архитектуры:
1) CRAY X1, SMP-архитектура. Пиковая производительность системы в стандартной конфигурации может составлять десятки терафлопс.
2) NEC SX-6, NUMA-архитектура. Пиковая производительность системы может достигать 8 Тфлопс, производительность одного процессора составляет 9,6 Гфлопс. Система масштабируется с единым образом операционной системы до 512 процессоров.
3) Fujitsu-VPP5000 (vector parallel processing), MPP-архитектура. Производительность одного процессора составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти – 8 Тбайт. Система масштабируется до 512 процессоров.
Парадигма программирования на PVP-системах предусматривает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).
На практике рекомендуется выполнять следующие процедуры:
- производить векторизацию вручную, чтобы перевести задачу в матричную форму. При этом, в соответствии с длиной вектора, размеры матрицы должны быть кратны 128 или 256;
- работать с векторами в виртуальном пространстве, разлагая искомую функцию в ряд и оставляя число членов ряда, кратное 128 или 256.
За счет большой физической памяти (доли терабайта) даже плохо векторизуемые задачи на PVP-системах решаются быстрее на машинах со скалярными процессорами.