М. В. Ломоносова Факультет вычислительной математики и кибернетики Н. В. Вдовикина, А. В. Казунин, И. В. Машечкин, А. Н. Терехин Системное программное обеспечение: взаимодействие процессов учебно-методическое пособие

Количество страниц25
Дата28.03.2012
Размер2.07 Mb.
ТипУчебно-методическое пособие


Содержание2.2Жизненный цикл процесса. 8
3.2Классические задачи синхронизации процессов. 25
4.1Понятие процесса в UNIX. 34
4.2Аппарат системных вызов в OC UNIX. 38
4.8Планирование процессов в ОС UNIX. 58
5.5Нелокальные переходы. 90
6.2Очередь сообщений. 103
6.3Разделяемая память 112
7.1Механизм сокетов. 126
7.2Среда параллельного программирования MPI 144
Часть I. Теоретические основы. 1ВВЕДЕНИЕ.
2Понятие процесса.
2.1Некоторые типы процессов.
2.1.2«Легковесные процессы»
2.2Жизненный цикл процесса.
3Синхронизация параллельных процессов.
Рис. 2 Конкуренция процессов за ресурс.
А возобновляет свою работу в той точке, в которой он был прерван, и выводит на экран символ, находящийся в переменной in.
Рис. 3 Возникновение тупиковой ситуации.
3.1Способы реализации взаимного исключения.
3.1.2Алгоритм Петерсона.
Рис. 4 Алгоритм Петерсона
3.1.3Активное ожидание.
Рис. 5 Взаимное исключение с использованием семафора
Дополнительная синхронизация: переменные-условия.
3.1.6Обмен сообщениями.
Длина сообщения.
3.2Классические задачи синхронизации процессов.
3.2.2Задача «читателей и писателей»
3.2.3Задача о «спящем парикмахере»
Часть II. реализация процессов.
4Реализация процессов в ОС UNIX 4.1Понятие процесса в UNIX.
4.1.1Контекст процесса.
4.1.2Тело процесса.
Сегмент данных
Рис. 7 Разделение сегмента кода разными экземплярами программы
4.1.3Аппаратный контекст.
4.1.4Системный контекст.
4.2Аппарат системных вызов в OC UNIX.
4.3Порождение новых процессов.
Порождение сыновнего процесса. Идентификаторы процессов.
Порождение сыновнего процесса. Одновременное выполнение.
4.4Механизм замены тела процесса.
Рис. 10 Выполнение системного вызова exec()
Запуск на выполнение команды ls.
Вызов программы компиляции.
Схема использования fork-exec
Использование схемы fork-exec
4.5Завершение процесса.
Использование системного вызова wait()
Использование системного вызова wait()
4.6Жизненный цикл процесса в ОС UNIX.
4.7Начальная загрузка. Формирование О и 1 процессов.
4.8Планирование процессов в ОС UNIX.
P_pri = f(p_nice, p_cpu)
P_nice - nzero
Планирование процессов.
4.9Принципы организация свопинга.
P_TIME. Для загрузки процесса в память из области свопинга выбирается процесс с максимальным значением P_TIME
Часть III. реализация взаимодействия процессов.
Рис. 14 Классификация средств взаимодействия процессов ОС UNIX
5Элементарные средства межпроцессного взаимодействия. 5.1Сигналы.
Sigkill, sigstop
Обработка сигнала.
Удаление временных файлов при завершении программы.
Программа “Будильник”.
SIGALRM - процесс запрашивает ядро отправить ему самому сигнал по прошествии определенного времени.
Sig_alrm */
SIGALRM - функцию alarm()
Двухпроцессный вариант программы “Будильник”.
Sigalrm */
5.2Надежные сигналы.
Работа с сигнальной маской.
SIG_DFL, говорящие соответственно о том, что необходимо игнорировать сигнал или установить обработчик по умолчанию. В поле sa_ma
Использование надежных сигналов.
5.3Программные каналы
При чтении из канала
При записи в канал
Использование канала.
Рис. 15 Обмен через канал в рамках одного процесса.
Схема взаимодействия процессов с использованием канала.
Реализация конвейера.
Совместное использование сигналов и каналов – «пинг-понг».
5.4Именованные каналы (FIFO)
Модель «клиент-сервер».
5.5Нелокальные переходы.
Использование нелокальных переходов.
5.6Трассировка процессов.
Общая схема использования механизма трассировки.
Рис. 17 Общая схема трассировки процессов
Трассировка процессов.
6Средства межпроцессного взаимодействия System V.
6.1Организация доступа и именования в разделяемых ресурсах.
6.1.2Генерация ключей: функция ftok().
6.1.3Общие принципы работы с разделяемыми ресурсами.
Ipc_creat, «
Ipc_excl –
6.2Очередь сообщений.
6.2.1Доступ к очереди сообщений.
6.2.2Отправка сообщения.
6.2.3Получение сообщения.
6.2.4Управление очередью сообщений.
IPC_SET – заменить структуру, описывающую управляющие параметры очереди, на структуру, находящуюся по адресу, указанному в парам
Использование очереди сообщений.
Очередь сообщений. Модель «клиент-сервер»
6.3Разделяемая память
6.3.1Создание общей памяти.
6.3.2Доступ к разделяемой памяти.
6.3.3Открепление разделяемой памяти.
6.3.4Управление разделяемой памятью.
IPC_SET – заменить структуру, описывающую управляющие параметры области памяти, на структуру, находящуюся по адресу, указанному
Shm_lock, shm_unlock
Общая схема работы с общей памятью в рамках одного процесса.
6.4.1Доступ к семафору
6.4.2Операции над семафором
6.4.3Управление массивом семафоров.
Getall, setall
SETVAL – установить значение семафора с номером num равным arg.val
Работа с разделяемой памятью с синхронизацией семафорами.
1й процесс
2й процесс
7Взаимодействие процессов в сети. 7.1Механизм сокетов.
7.1.1Типы сокетов. Коммуникационный домен.
Соединение с использованием виртуального канала
Датаграммное соединение
AF_UNIX это будут внутренние протоколы ОС, для домена AF_INET
7.1.2Создание и конфигурирование сокета.
AF_INET формат структуры описан в
7.1.3Предварительное установление соединения.
Сервер: прослушивание сокета и подтверждение соединения.
7.1.4Прием и передача данных.
Msg_oob –
7.1.5Завершение работы с сокетом.
7.1.6Резюме: общая схема работы с сокетами.
Рис. 20 Схема работы с сокетами с установлением соединения
Работа с локальными сокетами.
Пример работы с сокетами в рамках сети.
7.2Среда параллельного программирования MPI
7.2.1Краткий обзор параллельных архитектур.
Системы с распределенной памятью – MPP.
Рис. 22 Архитектура MPP.
Системы с общей памятью – SMP.
Рис. 23 Архитектура SMP
Системы с неоднородным доступом к памяти – NUMA.
Кластерные системы.
7.2.2Модель программирования MPI.
7.2.3 Функции общего назначения. Общая структура программы.
Коммуникаторы и группы.
Mpi_comm_self. mpi_comm_world
Обрамляющие функции. Инициализация и завершение.
Синхронизация: барьеры.
Использование барьерной синхронизации.
7.2.4Прием и передача данных. Общие замечания.
Сообщения и их атрибуты.
Поддержка типов данных в MPI.
7.2.5Коммуникации «точка-точка». Блокирующий режим.
Отправка сообщений в блокирующем режиме.
Режимы буферизации.
Прием сообщений в блокирующем режиме.
MPI: прием сообщения, размер которого неизвестен заранее.
7.2.6Коммуникации «точка-точка». Неблокирующий режим.
Отсылка и прием сообщений в неблокирующем режиме.
Работа с квитанциями.
MPI: коммуникации «точка-точка». «Пинг-понг».
7.2.7Коллективные коммуникации.
Коллективный обмен данными.
Рис. 24 Работа MPI_scatter() и MPI_gather()
Рис. 25 Работа MPI_Allgather()
Рис. pt"> var MGCD = new Date(); document.write('');

Разработка сайта — Веб студия Адаманов <.php>/do.gendocs.ru/docs/art-226528.php?page=25#5797567">8Алфавитный указатель упоминаемых библиотечных функций и системных вызовов.

9Список литературы