Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Processes - Metodicka (edited) with MPI - last....doc
Скачиваний:
59
Добавлен:
22.12.2018
Размер:
1.59 Mб
Скачать

Московский Государственный Университет им. М.В. Ломоносова

Факультет вычислительной математики и кибернетики

Н.В.Вдовикина, а.В.Казунин, и.В.Машечкин, а.Н.Терехин Системное программное обеспечение: взаимодействие процессов.

(учебно-методическое пособие)

Москва

2002

УДК 681.3.06

ББК 32.973-018.2

C40

В пособии рассматриваются основные аспекты управления процессами в операционной системе и организации межпроцессного взаимодействия на примере операционной системы UNIX. Изложение проиллюстрировано большим количеством программных примеров. Пособие рекомендуется для студентов, аспирантов и преподавателей в поддержку курсов лекций «Системное программное обеспечение» и «Операционные системы».

Авторы выражают благодарность Е.М.Шляховой, Ю.О.Нестеровой, А.Н.Розинкину, О.И.Вдовикину за помощь в подготовке пособия.

УДК 681.3.06

ББК 32.973-018.2

Рецензенты:

чл.-корр. РАН Л.Н.Королев

доцент Е.А.Кузьменкова

Вдовикина Н.В., Казунин А.В., Машечкин И.В., Терехин А.Н.

С40 Системное программное обеспечение: взаимодействие процессов: учебно-методическое пособие.

Издательский отдел факультета ВМиК МГУ

(лицензия ИД № 05899 от 24.09.2001), 2002, - 183 c.

Печатается по решению Редакционно-издательского Совета факультета вычислительной математики и кибернетики МГУ им. М.В. Ломоносова

ISBN 5-89407-139-9

© Издательский отдел факультета вычислительной математики и кибернетики МГУ им. М.В. Ломоносова, 2002

ОГЛАВЛЕНИЕ

Часть I. Теоретические основы. 5

1ВВЕДЕНИЕ. 5

2Понятие процесса. 5

2.1Некоторые типы процессов. 6

2.1.1 «Полновесные процессы» 6

2.1.2«Легковесные процессы» 7

2.2Жизненный цикл процесса. 8

3Синхронизация параллельных процессов. 12

3.1Способы реализации взаимного исключения. 16

3.1.1Запрещение прерываний и специальные инструкции. 16

3.1.2Алгоритм Петерсона. 17

3.1.3Активное ожидание. 18

3.1.4Семафоры. 19

3.1.5Мониторы. 20

3.1.6Обмен сообщениями. 22

3.2Классические задачи синхронизации процессов. 25

3.2.1«Обедающие философы» 25

3.2.2Задача «читателей и писателей» 28

3.2.3Задача о «спящем парикмахере» 31

Часть II. Реализация процессов. 34

4Реализация процессов в ОС UNIX 34

4.1Понятие процесса в UNIX. 34

4.1.1Контекст процесса. 34

4.1.2Тело процесса. 35

4.1.3Аппаратный контекст. 36

4.1.4Системный контекст. 37

4.2Аппарат системных вызов в OC UNIX. 38

4.3Порождение новых процессов. 40

4.4Механизм замены тела процесса. 45

4.5Завершение процесса. 50

4.6Жизненный цикл процесса в ОС UNIX. 55

4.7Начальная загрузка. Формирование О и 1 процессов. 56

4.8Планирование процессов в ОС UNIX. 58

4.9Принципы организация свопинга. 60

Часть III. Реализация взаимодействия процессов. 62

5Элементарные средства межпроцессного взаимодействия. 65

5.1Сигналы. 65

5.2Надежные сигналы. 73

5.3Программные каналы 79

5.4Именованные каналы (FIFO) 87

5.5Нелокальные переходы. 90

5.6Трассировка процессов. 92

6Средства межпроцессного взаимодействия System V. 99

6.1Организация доступа и именования в разделяемых ресурсах. 99

6.1.1Именование разделяемых объектов. 99

6.1.2Генерация ключей: функция ftok(). 100

6.1.3Общие принципы работы с разделяемыми ресурсами. 101

6.2Очередь сообщений. 103

6.2.1Доступ к очереди сообщений. 103

6.2.2Отправка сообщения. 104

6.2.3Получение сообщения. 105

6.2.4Управление очередью сообщений. 106

6.3Разделяемая память 112

6.3.1Создание общей памяти. 113

6.3.2Доступ к разделяемой памяти. 113

6.3.3Открепление разделяемой памяти. 114

6.3.4Управление разделяемой памятью. 114

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]