Слайд 1ІОЦ КНУ імені Тараса Шевченка, 2005 р
Технологии параллельных и распределенных
вычислений
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 3
Слайд 2ІОЦ КНУ імені Тараса Шевченка, 2005 р
План
Операционные системы для параллельных
и распределенных вычислений
Программные технологии для параллельных и распределенных вычислений
Аппаратные средства
параллельных и распределенных вычислений
Слайд 3ІОЦ КНУ імені Тараса Шевченка, 2005 р
Операционные системы для параллельных
и распределенных вычислений
Функции операционных систем
Сетевые и распределенные операционные системы
Unix-подобные операционные
системы
Инсталляция, администрирование и работа в Linux
Слайд 4ІОЦ КНУ імені Тараса Шевченка, 2005 р
Операционные системы
Операционная система –
набор программных средств для управления аппаратурой и прикладными программами, а
также для обеспечения их взаимодействием друг с другом и с пользователем
Операционная система выполняет виртуализацию аппаратных и других ресурсов для прикладных программ и пользователей
виртуальная память
виртуальный процессор[ы]
виртуальная файловая система
виртуальные каналы обмена данными
Слайд 5ІОЦ КНУ імені Тараса Шевченка, 2005 р
Виртуальный ресурс
Создается иллюзия того,
что программа или пользователь монопольно использует ресурс:
Виртуальный процессор – в
системе один процессор и «одновременно» выполняется много программ
Виртуальная память – все программы используют одинаковые адреса памяти, но по этим адресам у каждой программы свои данные
Виртуальная файловая система – программа использует файлы независимо от того, где они физически находится
Виртуальные каналы обмена – две программы взаимодействуют друг с другом независимо от того, где они физически выполняются
Слайд 6ІОЦ КНУ імені Тараса Шевченка, 2005 р
Типы операционных систем
Многозадачные –
в операционной системе может одновременно выполняться несколько задач (возможен псевдопараллелизм)
С
поддержкой многопроцессорности – задачи и сама операционная система может выполняться сразу на нескольких процессорах одной машины (SMP, NUMA)
Сетевые – операционные системы разных компьютеров должны взаимодействовать между собой. Никаких других требований не выдвигается
Распределенные – с точки зрения прикладных программ несколько компьютеров представляются единой большой системой
Слайд 7ІОЦ КНУ імені Тараса Шевченка, 2005 р
Примеры
Большинство современных операционных систем
являются многозадачными, многопроцессорными, сетевым (MS Windows NT, Unix/Linux)
Если WWW
документ находится на машине с Unix, то его можно «скачать» и прочитать под Windows
Если файлы находятся на Windows машине, то их можно использовать и на нескольких других Windows или Unix машин
Слайд 8ІОЦ КНУ імені Тараса Шевченка, 2005 р
Примеры распределенных систем
Кластер рабочих
станций – задача запускается на той машине, которая меньше всего
загружена
MOSIX - задача, запущенная на одном компьютере может перемещаться между всеми компьютерами системы
VAX VMS – все программы работающие в операционной системе могут использовать все ресурсы всех компьютеров системы
Слайд 9ІОЦ КНУ імені Тараса Шевченка, 2005 р
Типы распределенных ОС
Single system
image – операционная система управляет всеми ресурсами всех компьютеров системы
Distributed
system image – операционная система каждого компьютера управляет только ресурсами своего компьютера
Слайд 10ІОЦ КНУ імені Тараса Шевченка, 2005 р
Примеры
Beowulf кластер – несколько
образов операционной системы
MOSIX кластер – один образ операционной системы
Слайд 11ІОЦ КНУ імені Тараса Шевченка, 2005 р
Основные функции распределенных ОС
Прозрачность
Расположения – нет зависти от расположения ресурса
Миграции – нет зависимости
от перемещений ресурса
Копирования – нет зависимости от количества копий ресурса
Конкуренции – все конфликты по совместному использованию ресурсов решаются автоматически
Параллелизма – параллельное выполнение возможно без участия пользователя
Децинтрализация
Отсутствие одной точки сбоя
Масштабируемость
Можно наращивать или сокращать количество ресурсов
Устойчивость
В случае ошибки система должна восстанавливаться
Слайд 12ІОЦ КНУ імені Тараса Шевченка, 2005 р
Сравнение типов операционных систем
Слайд 13ІОЦ КНУ імені Тараса Шевченка, 2005 р
Физические и логические ресурсы
Физические
процессор,
память,
хранилище данных,
коммуникационная подсистема
Логические
процесс,
поток,
адресное пространство,
файл,
средства межпроцессного взаимодействия
сокет,
конвейер,
сообщение,
совместно используемая область памяти
Слайд 14ІОЦ КНУ імені Тараса Шевченка, 2005 р
Процесс, поток, адресное пространство
Процесс
(task, process) – выполняющееся приложение
Адресное пространство – как память видится
для процесса
Поток (thread, lwp) – часть процесса, которая выполняется параллельно или псевдопараллельно с другими такими же частями
Файл – последовательность байтов, к каждому байту можно обратиться по его номеру
Слайд 15ІОЦ КНУ імені Тараса Шевченка, 2005 р
Адресные пространства (виртуализация памяти)
Незанятая
часть
Используемая часть
Адресное пространство 1
Адресное пространство 2
Адресное пространство 3
Физическая память
адрес
Отображение части
адресного пространства в физическую память
Слайд 16ІОЦ КНУ імені Тараса Шевченка, 2005 р
Процессы, потоки (виртуализация процессоров)
Время
процессора1
Время процессора2
поток 1
поток 2
поток 1
Адресное пространство 1
Процесс 1
Адресное пространство 2
Процесс
2
Слайд 17ІОЦ КНУ імені Тараса Шевченка, 2005 р
Файловые системы (виртуализация хранилищ
данных)
диск
память
Сетевой компьютер
Файл 1
Файл 2
Файл 3
Файл 4
Процесс 1
Процесс 2
Процесс 3
Слайд 18ІОЦ КНУ імені Тараса Шевченка, 2005 р
Средства межпроцессного взаимодействия (виртуализация
средств коммуникации)
Сети и коммуникации
Процесс 1
Процесс 2
Процесс 3
Процесс 4
Общая память
Общие файлы
Виртуальный
канал2
Виртуальный
канал1
Виртуальный канал 3
Компьютер 1
Компьютер 2
Слайд 19ІОЦ КНУ імені Тараса Шевченка, 2005 р
Сетевые и распределенные ОС
Сетевые
ОС – виртуализация файловых систем и каналов обмена для разных
компьютеров
Распределенные ОС – виртуализация процессоров, памяти файловых систем и каналов обмена для разных компьютеров
Слайд 20ІОЦ КНУ імені Тараса Шевченка, 2005 р
Unix-подобные операционные системы
Unix
1969 год
Основные принципы
Простота перед интеллектуальностью
Предоставлять механизм, а не стратегию
Программы
должны делать мало, но делать это хорошо
Результаты работы одной программы можно сразу же подавать на вход другой
Любой ресурс – это файл (по возможности)
Средства разработки программ и самой операционной системы должны быть включены в операционную систему
Слайд 21ІОЦ КНУ імені Тараса Шевченка, 2005 р
Иерархическая структура
Аппаратное обеспечение
Ядро (управление
аппаратным обеспеченим,
распределение памяти,
обеспечение работы с файловой системой,
Планирование выполнения
процессов
организация межпроцессного взаимодействия)
Системные и пользовательские библиотеки
Системные и пользовательские программы
Программы-оболочки
пользователь
Слайд 22ІОЦ КНУ імені Тараса Шевченка, 2005 р
Выполнение процесса
В режиме задачи
процесс выполняется только от имени задачи и имеет доступ только
к своему адресному пространству и своим ресурсам
При получении прерывания, сигнала или при вызове системной функции процесс переключатся в режим ядра
В режиме ядра процесс имеет полный доступ ко всем ресурсам
В режиме ядра процесс выполняет только код ядра
Все процессы выполняются аналогично
Режим (пространство) ядра.
Неограниченные права
Режим (пространство) задачи. Доступ только к своим ресурсам
Системный вызов,
прерывание, сигнал
Слайд 23ІОЦ КНУ імені Тараса Шевченка, 2005 р
Планирование процессов
Каждый процесс выполняется
в течение интервала (кванта) времени
Либо после истечения кванта, либо по
«желанию» процесса управление передается другому процессу
Планирование нового процесса в режиме ядра
Вытеснение (preemption) первого процесса
Запуск второго процесса
Процедура повторяется
Процесс 1 режим задачи
Системный вызов,
прерывание, сигнал
Процесс 1 режим ядра.
Выполнение кода планировщика. Остановка (вытеснение) процесса 1. Запуск процесса 2.
Процесс 2 режим задачи
Слайд 24ІОЦ КНУ імені Тараса Шевченка, 2005 р
Переключение контекста
Каждый процесс использует
свои ресурсы
При переходе из одного режима в другой, остановке одного
процесса и запуске другого необходимо, чтобы регистры процессора, виртуальная память и др. соответствовали новому процессу и режиму (работа в контексте нового процесса)
Для этого происходит перегрузка регистров процессора и другие операции – переключение контекста
Переключение контекста – достаточно «тяжеловесная» операция
Слайд 25ІОЦ КНУ імені Тараса Шевченка, 2005 р
Процессы и потоки
Для выполнения
процессов необходимо полностью переключать контекст
Для выполнения потоков контекст переключать нужно
не полностью
Поток – light weight process
Использовать процессы – проще, но производительность ниже
Использовать потоки сложнее, но производительность выше
Слайд 26ІОЦ КНУ імені Тараса Шевченка, 2005 р
Обмен данными
Для процессов при
обмене данными необходимо переключение контекста
Для потоков – все данные общие
и переключения контекста нет
Слайд 27ІОЦ КНУ імені Тараса Шевченка, 2005 р
ОС Linux
Linux 1991 г
Ядро
http://www.kernel.org
Множество различных вариантов – поставок, совместимых с ядром по системным
вызовам
Для каждой поставки свои особенности инсталляции, администрирования, свои программы, версии, библиотеки
Слайд 28ІОЦ КНУ імені Тараса Шевченка, 2005 р
Ядро Linux
~300 Мбайт кода
(архив ~30 МБайт)
Версия 2.6.38
Первая цифра – старший номер
Вторая цифра –
серия
Третья цифра – номер выпуск
Четные серии – стабильные ядра
Нечетные серии – разрабатываемые ядра
Слайд 29ІОЦ КНУ імені Тараса Шевченка, 2005 р
Поставки Linux
Наиболее характерные
RedHat
и производные
Debian
Slackware
Gentoo
Все имеют свои особенности ядра, но все будут работать
со стандартным ядром соответствующей серии, которое необходимо компилировать
Слайд 30ІОЦ КНУ імені Тараса Шевченка, 2005 р
Инсталляция
Методы
CD,
сеть (http,
ftp, pxe),
локальный диск
Процедура
Загрузка инсталлятора
Указание местоположение инсталляции
Определение оборудования
Разбивка жесткого диска
Выбор
пакетов для инсталляции
Копирование инсталляции
Начальная конфигурация
Установка загрузчика
Слайд 31ІОЦ КНУ імені Тараса Шевченка, 2005 р
Структура файловой системы
Единое дерево
файлов
Каталог – файл, который содержит другие файлы
Каталоги разделяются символом ‘/’
Корневой
каталог обозначается ‘/’
Текущий каталог ‘.’
Каталог верхнего уровня ‘..’
Слайд 32ІОЦ КНУ імені Тараса Шевченка, 2005 р
Монтирование
Устройства отображаются на определенные
каталоги файловой системы (монтируются)
При «заходе» в каталог монтирования работа выполняется
с соответствующим устройством
Слайд 33ІОЦ КНУ імені Тараса Шевченка, 2005 р
Назначение стандартный каталогов
Слайд 34ІОЦ КНУ імені Тараса Шевченка, 2005 р
Как разметить разделы на
жестком диске?
Самый простой вариант – два раздела
SWAP (файл подкачки) размер
2*RAM
/ - все остальное доступное место
Для эффективного использования рекомендуется сделать следующие отдельные физические разделы:
SWAP
/
/boot (иногда)
/home
/usr (иногда)
/usr/local
/var
/tmp (или /var/tmp)
Слайд 35ІОЦ КНУ імені Тараса Шевченка, 2005 р
Выбор пакетов и инсталляция
Рекомендуется
выбрать ту конфигурацию, которая наиболее подходит
Для выполнения лабораторных работ наиболее
подходит рабочая станция, которая включает:
Средства разработки
Программное обеспечение для научных расчетов
Сетевые утилиты
Загрузчик лучше установить в master boot
Слайд 36ІОЦ КНУ імені Тараса Шевченка, 2005 р
Использование Linux
Пользователи, группы
Вход в
систему и права доступа
Работа в командной строке
Интерпретатор командной строки
Основные команды
Пути
и системные переменные
Перенаправление ввода-вывода
Сценарии командной строки
Основы администрирования
Работа с пользователями
Получение информации о системе
Работа с файловыми системами
Настройка сети
Инсталляция программ
Компиляция ядра
Слайд 37ІОЦ КНУ імені Тараса Шевченка, 2005 р
Пользователи и группы
Пользователю системы
соответствует имя (login) и номер (uid)
Номер используется системой
Имя используется пользователями
Соответствие
между номером и именем задается в системе
Пользователь может принадлежать к одной или нескольким группам
Каждая группа имеет имя и номер (gid)
Пример login saa(1000) принадлежит к группам saa(1000),wheel(10)
Слайд 38ІОЦ КНУ імені Тараса Шевченка, 2005 р
Вход в систему и
права доступа
Для входа в систему пользователь должен ввести login и
пароль
После этого он попадает в систему с правами соответствующего пользователя
Права дают возможность использовать те или иные ресурсы (файлы, память)
Каждый ресурс (файл, программа) имеет свои права доступа, которые соответствуют пользователю, группе и всем остальным
Слайд 39ІОЦ КНУ імені Тараса Шевченка, 2005 р
Вход в систему
Слайд 40ІОЦ КНУ імені Тараса Шевченка, 2005 р
Права на ресурсы
Файлы и
другие ресурсы принадлежат владельцу (uid) и группе (gid)
Права доступа
соответствуют
Чтению (r)
Записи (w)
Исполнению (x)
Владелец и администратор имеет право изменять права на ресурсы
Слайд 41ІОЦ КНУ імені Тараса Шевченка, 2005 р
Интерпретатор командной строки
В Unix-подобных
системах используется интерпретатор командной строки
Командная строка – очень удобный для
работы интерфейс
Пользователь вводит команды, а система их выполняет
Работа с графической информацией требует графического интерфейса
Слайд 42ІОЦ КНУ імені Тараса Шевченка, 2005 р
Интерпретатор bash (Bourne-Again SHell)
Пользователь
вводит команды и нажимает клавишу
Команды могут иметь параметры, которые
указываются через символы <ПРОБЕЛ>
Команды могут иметь ключи (опции), которые изменяют поведение команды
Опции начинаются с символа -
Слайд 43ІОЦ КНУ імені Тараса Шевченка, 2005 р
Основные команды
В Unix каждая
команда выполняет свои функции (делает мало но хорошо)
cd
сделать каталог <имя каталога> текущим
ls просмотреть содержимое каталога
cat <имя файла>… <имя файла> конкатенация файлов на стандартный вывод
man <имя команды> посмотреть документацию по команде
Слайд 44ІОЦ КНУ імені Тараса Шевченка, 2005 р
Ключи и опции
Каждая команда
имеет ключи, которые изменяют ее поведение
ls –l выдать информацию в
расширенном виде
man –k <ключевое слово> поиск информации по ключевому слову
Слайд 45ІОЦ КНУ імені Тараса Шевченка, 2005 р
Текстовый редактор и просмотрщик
Редактор
vi или vim
Переход в режим команд
Переход в режим редактирования
I
Выход из редактора в режиме команд :q
Сохранить файл в режиме команд :w
Выйти не сохраняясь в режиме команд :q!
Сохранить файл, который только для чтения, режиме команд :w!
Просмотр файлов команда less
Слайд 46ІОЦ КНУ імені Тараса Шевченка, 2005 р
Другие команды
Каждая команда –
это исполняемая программа
Программу можно выполнить, запустив соответствующий файл, с указанием
полного пути (/bin/ls)
Программы, находящиеся в стандартных путях запускаются только указанием имени программы (ls)
Слайд 47ІОЦ КНУ імені Тараса Шевченка, 2005 р
Пути и другие системные
переменные
Стандартные пути хранятся в системной переменной PATH
Чтобы добавить свой путь,
необходимо изменить переменную PATH
export PATH=$PATH:<мой путь>
Можно установить таким образом любые переменные
Все переменные можно посмотреть командой export
Слайд 48ІОЦ КНУ імені Тараса Шевченка, 2005 р
Перенаправление ввода-вывода
Вывод одной программы
можно перенаправить на вход другой (конвейер)
ls|less
(Список файлов каталога
можно просматривать в просмотрщике)
Можно перенаправить вывод в файл
ls > /tmp/file
Можно перенаправить данные из файла
cat Можно перенаправлять почти все, даже сетевые соединения
Слайд 49ІОЦ КНУ імені Тараса Шевченка, 2005 р
Работа с процессами
Команда ps
– список всех процессов
Каждый процесс имеет свой номер pid
Команда kill
– послать сигнал процессу
Команда top интерактивная работа с процессами
В командной строке
Комбинация клавиш ctrl+c завершить текущую программу
Комбинация клавиш ctrl+z остановить текущую программу
Команда fg возобновить последнюю остановленную программу
Слайд 50ІОЦ КНУ імені Тараса Шевченка, 2005 р
Сценарии командной строки
Команды можно
записать последовательно в файл, который будет выполняться, как одна команда
(сценарий)
Слайд 51ІОЦ КНУ імені Тараса Шевченка, 2005 р
Администрирование
Администратор – пользователь root
(uid=0)
Администратор имеет все системные права
Такие операции, как
добавление и удаление
пользователей,
монтирование и размонтирование дисков,
настройка сети,
инсталляция системных,
Инсталляция ядра
Разрешены обычно только администратору
Слайд 52ІОЦ КНУ імені Тараса Шевченка, 2005 р
Работа с пользователями
Список пользователей
/etc/passwd
Добавить пользователя adduser
Удалить пользователя userdel
Изменить пароль
пользователю passwd <имя пользователя>
Слайд 53ІОЦ КНУ імені Тараса Шевченка, 2005 р
Получение информации о системе
Файловая
система /proc содержит файлы с информацией
Команда dmesg – последние системные
сообщения
Каталог /var/log – все журналы с информацией
Файл /var/log/messages все системные сообщения
Слайд 54ІОЦ КНУ імені Тараса Шевченка, 2005 р
Работа с файловыми системами
Монтирование
команда mount
mount /dev/fd0 /mnt/floppy
Размонтирование команда umount
Файл
/etc/fstab содержит список файловых систем, которые монтируются при старте
Слайд 55ІОЦ КНУ імені Тараса Шевченка, 2005 р
Настройка сети
Каждому сетевому адаптеру
соответствует свой сетевой интерфейс
Команда ifconfig позволяет просматривать и устанавливать параметры
Слайд 56ІОЦ КНУ імені Тараса Шевченка, 2005 р
Инсталляция программ
Менеджер пакетов rpm
Простая
компиляция
make
make install
Слайд 57ІОЦ КНУ імені Тараса Шевченка, 2005 р
Компиляция ядра
Каталог /usr/src/linux-2.6.11
Серия
2.4
make menuconfig
make dep bzImage modules modules_install install
Серия 2.6
make menuconfig
make all
modules_install install