Учебное пособие «Управление процессами в распределенных операционных системах»
Автор: К.Н. Мезенцев
Источник - Научно-техническая библиотека МАДИ
Объем - 124 страницы
Год издания - 2016
Описание
В пособии рассматриваются принципы многопоточной и многопроцессорной обработки данных в современных вычислительных системах. Приводятся необходимые сведения для разработки программного обеспечения с параллельной и распределенной обработкой данных на языке Java и на языке Си для операционной системы Linux.
Учебное пособие предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.01 – «Информатика и вычислительная техника» и 09.03.02 – «Информационные системы и технологии» в процессе изучения дисциплины «Операционные системы».
Содержание
ВВЕДЕНИЕ .................................................................................................. 5
1. РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ..................... 7
1.1. Характеристики распределенных вычислительных систем ....... 7
1.2. Мультипроцессорные системы ...................................................... 9
1.3. Проблема согласования памяти .................................................. 10
1.4. Иерархические системы .......................................................... 12
1.5. Гомогенные системы..................................................................... 12
1.6. Суперкомпьютеры и распределенные системы......................... 13
Контрольные вопросы.......................................................................... 15
2. РАСПРЕДЕЛЕННЫЕ ОС...................................................................... 15
Контрольные вопросы.......................................................................... 18
3. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРОМЕЖУТОЧНОГО УРОВНЯ .......................................................... 18
Контрольные вопросы.......................................................................... 21
4. ПРОЦЕССЫ И ПОТОКИ....................................................................... 21
4.1. Запуск процессов........................................................................... 22
4.2. Завершение процесса................................................................... 24
4.3. Состояния процесса...................................................................... 24
4.4. Таблица процессов........................................................................ 26
4.5. Мультипрограммирование............................................................ 28
4.6. Прерывания.................................................................................... 29
Контрольные вопросы.......................................................................... 32
5. ПОТОКИ................................................................................................. 32
Контрольные вопросы.......................................................................... 39
6. ПОТОКИ Java ........................................................................................ 39
6.1. Главный поток программы............................................................ 39
6.2. Создание новых потоков, класс Thread....................................... 41
6.3. Синхронизация потоков ................................................................ 43
6.4. Приоритет потоков......................................................................... 45
6.5. Разделение доступа к ресурсам .................................................. 48
6.6. Согласование выполнения потоков............................................. 52
Контрольные вопросы.......................................................................... 58
7. ОБМЕН ДАННЫМИ МЕЖДУ ПОТОКАМИ.......................................... 59
7.1. Сокеты Java.................................................................................... 59
7.2. Технология RMI.............................................................................. 63
Контрольные вопросы.......................................................................... 68
8. УПРАВЛЕНИЕ ПОТОКАМИ ................................................................. 69
8.1. Создание потоков в ОС Linux....................................................... 69
8.2. Семафоры...................................................................................... 73
8.3. Блокировки ..................................................................................... 77
Контрольные вопросы.......................................................................... 80
9. СОЗДАНИЕ ПРОЦЕСООВ В ОС Linux ............................................... 80
9.1. Основные понятия ......................................................................... 80
9.2. Сигналы........................................................................................... 84
Контрольные вопросы .......................................................................... 89
10. ЗАПУСК ПРОЦЕССОВ ПРОГРАММНЫМ КОДОМ.......................... 89
10.1. Запуск копии командной оболочки в OC Linux ....................... 89
10.2. Получение нового процесса взамен старого.......................... 91
10.3. Деление процесса на родительский и дочерний ................... 95
10.4. Процесс «Зомби» ...................................................................... 99
Контрольные вопросы...................................................................... 101
11. КАНАЛЫ И ПРОЦЕССЫ................................................................... 101
11.1. Неименованные каналы.......................................................... 101
11.2. Низкоуровневый механизм создания канала ....................... 106
11.2.1. Использование вызова fork ........................................ 109
11.2.2. Использование системного вызова exec .................. 111
11.2.3. Управление дескрипторами ....................................... 113
11.3. Именованные каналы.............................................................. 115
Контрольные вопросы...................................................................... 121
СПИСОК ЛИТЕРАТУРЫ......................................................................... 122
ПРИЛОЖЕНИЕ 1. Компилирование Java программ ........................... 123
ПРИЛОЖЕНИЕ 2. Использование компилятора GCC