Технологии параллельных и распределенных вычислений

Содержание

Слайд 2

ІОЦ КНУ імені Тараса Шевченка, 2005 р План Операционные системы для

ІОЦ КНУ імені Тараса Шевченка, 2005 р

План

Операционные системы для параллельных и

распределенных вычислений
Программные технологии для параллельных и распределенных вычислений
Аппаратные средства параллельных и распределенных вычислений
Слайд 3

ІОЦ КНУ імені Тараса Шевченка, 2005 р Операционные системы для параллельных

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Операционные системы для параллельных и

распределенных вычислений

Функции операционных систем
Сетевые и распределенные операционные системы
Unix-подобные операционные системы
Инсталляция, администрирование и работа в Linux

Слайд 4

ІОЦ КНУ імені Тараса Шевченка, 2005 р Операционные системы Операционная система

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Операционные системы

Операционная система – набор

программных средств для управления аппаратурой и прикладными программами, а также для обеспечения их взаимодействием друг с другом и с пользователем
Операционная система выполняет виртуализацию аппаратных и других ресурсов для прикладных программ и пользователей
виртуальная память
виртуальный процессор[ы]
виртуальная файловая система
виртуальные каналы обмена данными
Слайд 5

ІОЦ КНУ імені Тараса Шевченка, 2005 р Виртуальный ресурс Создается иллюзия

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Виртуальный ресурс

Создается иллюзия того, что

программа или пользователь монопольно использует ресурс:
Виртуальный процессор – в системе один процессор и «одновременно» выполняется много программ
Виртуальная память – все программы используют одинаковые адреса памяти, но по этим адресам у каждой программы свои данные
Виртуальная файловая система – программа одинаково использует файлы независимо от того, где они физически находится
Виртуальные каналы обмена – две программы взаимодействуют друг с другом независимо от того, где они физически выполняются
Слайд 6

ІОЦ КНУ імені Тараса Шевченка, 2005 р Типы операционных систем Многозадачные

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Типы операционных систем

Многозадачные – в

операционной системе может одновременно выполняться несколько задач (возможен псевдопараллелизм)
С поддержкой многопроцессорности – задачи и сама операционная система может выполняться сразу на нескольких процессорах одной машины (SMP, NUMA)
Сетевые – операционные системы разных компьютеров должны взаимодействовать между собой. Никаких других требований не выдвигается
Распределенные – с точки зрения прикладных программ несколько компьютеров представляются единой большой системой
Слайд 7

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры Большинство современных операционных

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры

Большинство современных операционных систем являются

многозадачными, многопроцессорными, сетевым (MS Windows NT, Unix/Linux)
Если WWW документ находится на машине с Unix, то его можно «скачать» и прочитать под Windows
Если файлы находятся на Windows машине, то их можно использовать и на нескольких других Windows или Unix машин
Слайд 8

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры распределенных систем Кластер

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры распределенных систем

Кластер рабочих станций

– задача запускается на той машине, которая меньше всего загружена
MOSIX - задача, запущенная на одном компьютере может перемещаться между всеми компьютерами системы
VAX VMS – все программы работающие в операционной системе могут использовать все ресурсы всех компьютеров системы
Слайд 9

ІОЦ КНУ імені Тараса Шевченка, 2005 р Типы распределенных ОС Single

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Типы распределенных ОС

Single system image

– операционная система управляет всеми ресурсами всех компьютеров системы
Distributed system image – операционная система каждого компьютера управляет только ресурсами своего компьютера
Слайд 10

ІОЦ КНУ імені Тараса Шевченка, 2005 р Примеры Beowulf кластер –

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Примеры

Beowulf кластер – несколько образов

операционной системы
MOSIX кластер – один образ операционной системы
Слайд 11

ІОЦ КНУ імені Тараса Шевченка, 2005 р Принципы построения Прозрачность ресурсов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Принципы построения

Прозрачность ресурсов
Расположения – не

зависит от расположения ресурса
Миграции – не зависит от перемещений ресурса
Копирования – не зависит от количества копий ресурса
Конкуренции – все конфликты по совместному использованию ресурсов решаются автоматически
Параллелизма – параллельное выполнение возможно без участия пользователя
Децинтрализация
Отсутствие одной точки сбоя
Масштабируемость
Можно наращивать или сокращать количество ресурсов
Устойчивость
В случае ошибки система должна восстанавливаться
Слайд 12

ІОЦ КНУ імені Тараса Шевченка, 2005 р Сравнение типов операционных систем

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Сравнение типов операционных систем

Слайд 13

ІОЦ КНУ імені Тараса Шевченка, 2005 р Физические и логические ресурсы

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Физические и логические ресурсы

Физические
процессор,


память,
хранилище данных,
коммуникационная подсистема
Логические
процесс,
поток,
адресное пространство,
файл,
средства межпроцессного взаимодействия
сокет,
конвейер,
сообщение,
совместно используемая область памяти
Слайд 14

ІОЦ КНУ імені Тараса Шевченка, 2005 р Процесс, поток, адресное пространство

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Процесс, поток, адресное пространство

Процесс (task,

process) – выполняющаяся программа
Адресное пространство – как память видится для процесса
Поток (thread, lwp) – часть процесса, которая выполняется параллельно или псевдопараллельно с другими такими же частями
Файл – последовательность байтов, к каждому байту можно обратиться по его номеру
Слайд 15

ІОЦ КНУ імені Тараса Шевченка, 2005 р Адресные пространства (виртуализация памяти)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Адресные пространства (виртуализация памяти)

Незанятая часть

Используемая

часть

Адресное пространство 1

Адресное пространство 2

Адресное пространство 3

Физическая память

адрес

Отображение части адресного пространства в физическую память

Слайд 16

ІОЦ КНУ імені Тараса Шевченка, 2005 р Процессы, потоки (виртуализация процессоров)

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Процессы, потоки (виртуализация процессоров)

Время процессора1

Время

процессора2

поток 1

поток 2

поток 1

Адресное пространство 1
Процесс 1

Адресное пространство 2
Процесс 2

Слайд 17

ІОЦ КНУ імені Тараса Шевченка, 2005 р Файловые системы (виртуализация хранилищ

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Файловые системы (виртуализация хранилищ данных)

диск

память

Сетевой

компьютер

Файл 1

Файл 2

Файл 3

Файл 4

Процесс 1

Процесс 2

Процесс 3

Слайд 18

ІОЦ КНУ імені Тараса Шевченка, 2005 р Средства межпроцессного взаимодействия (виртуализация

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Средства межпроцессного взаимодействия (виртуализация средств

коммуникации)

Сети и коммуникации

Процесс 1

Процесс 2

Процесс 3

Процесс 4

Общая память

Общие файлы

Виртуальный
канал2

Виртуальный
канал1

Виртуальный канал 3

Компьютер 1

Компьютер 2

Слайд 19

ІОЦ КНУ імені Тараса Шевченка, 2005 р Сетевые и распределенные ОС

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Сетевые и распределенные ОС

Сетевые ОС

– виртуализация файловых систем и каналов обмена для разных компьютеров
Распределенные ОС – виртуализация процессоров, памяти файловых систем и каналов обмена для разных компьютеров
Слайд 20

ІОЦ КНУ імені Тараса Шевченка, 2005 р Unix-подобные операционные системы Unix

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Unix-подобные операционные системы

Unix 1969

год
Основные принципы
Простота перед интеллектуальностью
Предоставлять механизм, а не стратегию
Программы должны делать мало, но делать это хорошо
Результаты работы одной программы можно сразу же подавать на вход другой
Любой ресурс – это файл (по возможности)
Средства разработки программ и самой операционной системы должны быть включены в операционную систему
Слайд 21

ІОЦ КНУ імені Тараса Шевченка, 2005 р Иерархическая структура Аппаратное обеспечение

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Иерархическая структура

Аппаратное обеспечение

Ядро (управление аппаратным

обеспеченим,
распределение памяти,
обеспечение работы с файловой системой,
Планирование выполнения процессов
организация межпроцессного взаимодействия)

Системные и пользовательские библиотеки

Системные и пользовательские программы

Программы-оболочки

пользователь

Слайд 22

ІОЦ КНУ імені Тараса Шевченка, 2005 р Выполнение процесса В режиме

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Выполнение процесса

В режиме задачи процесс

выполняется только от имени задачи и имеет доступ только к своему адресному пространству и своим ресурсам
При получении прерывания, сигнала или при вызове системной функции процесс переключатся в режим ядра
В режиме ядра процесс имеет полный доступ ко всем ресурсам
В режиме ядра процесс выполняет только код ядра
Все процессы выполняются аналогично

Режим (пространство) ядра.
Неограниченные права

Режим (пространство) задачи. Доступ только к своим ресурсам

Системный вызов,
прерывание, сигнал

Слайд 23

ІОЦ КНУ імені Тараса Шевченка, 2005 р Планирование процессов Каждый процесс

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Планирование процессов

Каждый процесс выполняется в

течение интервала (кванта) времени
Либо после истечения кванта, либо по «желанию» процесса управление передается другому процессу
Планирование нового процесса в режиме ядра
Вытеснение (preemption) первого процесса
Запуск второго процесса
Процедура повторяется

Процесс 1 режим задачи

Системный вызов,
прерывание, сигнал

Процесс 1 режим ядра.
Выполнение кода планировщика. Остановка (вытеснение) процесса 1. Запуск процесса 2.

Процесс 2 режим задачи

Слайд 24

ІОЦ КНУ імені Тараса Шевченка, 2005 р Переключение контекста Каждый процесс

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Переключение контекста

Каждый процесс использует свои

ресурсы
При переходе из одного режима в другой, остановке одного процесса и запуске другого необходимо, чтобы регистры процессора, виртуальная память и др. соответствовали новому процессу и режиму (работа в контексте нового процесса)
Для этого происходит перегрузка регистров процессора и другие операции – переключение контекста
Переключение контекста – достаточно «тяжеловесная» операция
Слайд 25

ІОЦ КНУ імені Тараса Шевченка, 2005 р Процессы и потоки Для

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Процессы и потоки

Для выполнения процессов

необходимо полностью переключать контекст
Для выполнения потоков контекст переключать нужно не полностью
Поток – light weight process
Использовать процессы – проще, но производительность ниже
Использовать потоки сложнее, но производительность выше
Слайд 26

ІОЦ КНУ імені Тараса Шевченка, 2005 р Обмен данными Для процессов

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Обмен данными

Для процессов при обмене

данными необходимо переключение контекста
Для потоков – все данные общие и переключения контекста нет
Слайд 27

ІОЦ КНУ імені Тараса Шевченка, 2005 р ОС Linux Linux 1991

ІОЦ КНУ імені Тараса Шевченка, 2005 р

ОС Linux

Linux 1991 г
Ядро http://www.kernel.org
Множество

различных вариантов – поставок, совместимых с ядром по системным вызовам
Для каждой поставки свои особенности инсталляции, администрирования, свои программы, версии, библиотеки
Слайд 28

ІОЦ КНУ імені Тараса Шевченка, 2005 р Ядро Linux ~300 Мбайт

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Ядро Linux

~300 Мбайт кода (архив

~30 МБайт)
Версия 2.6.11
Первая цифра – старший номер
Вторая цифра – серия
Третья цифра – номер выпуск
Четные серии – стабильные ядра
Нечетные серии – разрабатываемые ядра
Слайд 29

ІОЦ КНУ імені Тараса Шевченка, 2005 р Поставки Linux Наиболее характерные

ІОЦ КНУ імені Тараса Шевченка, 2005 р

Поставки Linux

Наиболее характерные
RedHat и

производные
Debian
Slackware
Gentoo
Все имеют свои особенности ядра, но все будут работать со стандартным ядром соответствующей серии, которое необходимо компилировать