Операционные системы. Часть 2

Учебное пособие для студентов направления 09.03.01, «Информатика и вычислительная техника»

Учебно-методическое пособие предназначено для изучения теоретических вопросов и выполнения лабораторных работ по второй части дисциплины «Операционные системы» для студентов кафедры АСУ ТУСУР уровня основной образовательной программы бакалавриат направления подготовки: «09.03.01 - Информатика и вычислительная техника».

Кафедра автоматизированных систем управления

Библиографическая запись:

Резник, В. Г. Операционные системы. Часть 2: Учебное пособие для студентов направления 09.03.01, «Информатика и вычислительная техника» [Электронный ресурс] / В. Г. Резник. — Томск: ТУСУР, 2016. — 216 с. — Режим доступа: https://edu.tusur.ru/publications/6262
Автор:   Резник В. Г.
Год издания: 2016
Количество страниц: 216
Скачиваний: 6
УДК:   004.451(072)

Оглавление (содержание)

Введение...........................................................................................................5

1 Тема 7. Подсистема управления вводом-выводом..........................................6

1.1 Язык С как стандарт взаимодействия с ОС..................................................8

1.2 Системные операции для работы с файловой системой............................17

1.2.1 Системные вызовы open() и close()..........................................................18

1.2.2 Системные вызовы read() и write()..........................................................20

1.2.3 Системный вызов lseek().........................................................................27

1.3 Создание специальных файлов.................................................................31

1.4 Запрос информации о статусе файлов.....................................................34

1.5 Каналы......................................................................................................39

1.5.1 Полудуплексные каналы UNIX................................................................39

1.5.2 Именованные каналы FIFO.....................................................................42

1.6 Дублирование дескрипторов файлов.......................................................46

1.7 Монтирование и демонтирование ФС......................................................47

1.8 Ссылки на имена файлов..........................................................................48

1.9 Лабораторная работа по теме No7...........................................................54

1.9.1 Интегрированная среда разработки Eclipse..........................................55

1.9.2 Список заданий выполняемых работ......................................................61

1.9.3 Проблема типов в языке С......................................................................63

1.9.4 Анализ структуры MBR блочных устройств............................................64

1.9.5 Запрос информации о статусе файлов..................................................65

1.9.6 Неименованные каналы ядра ОС...........................................................66

1.9.7 Именованные каналы FIFO....................................................................66

1.9.8 Монтирование flashUSB.........................................................................67

1.9.9 Работа с именами файлов.....................................................................68

2 Тема 8. Подсистема управления памятью....................................................70

2.1 Классификация способов управления ОЗУ...............................................73

2.2 Программный и аппаратный способы адресации памяти.........................77

2.3 Страничная и сегментная адресации памяти............................................79

2.4 Комбинированный способ адресации памяти..........................................83

2.5 Лабораторная работа по теме No8..........................................................86

2.5.1 Структура поцесса.................................................................................86

2.5.2 Определяемые сегменты процесса........................................................88

2.5.3 Создание и удаление процессов из памяти...........................................91

2.5.4 Динамическое выделение и освобождение памяти процесса...............95

3 Тема 9. Базовое взаимодействие процессов.............................................100

3.1 Подсистема управления процессами......................................................101

3.2 Синхронизация процессов.....................................................................102

3.3 Стандарты POSIX...................................................................................104

3.4 Системные вызовы ОС по управлению процессами...............................107

3.5 Системный вызов fork() и каналы процесса...........................................112

1.5.1 Пример использования каналов процессов........................................117

1.5.2 Имитация конвейеров языка shell......................................................120

3.6 Нити (Threads)........................................................................................125

3.7 Сигналы POSIX........................................................................................131

3.8 Лабораторная работа по теме No9........................................................141

3.8.1 Системные вызовы общей группы........................................................142

3.8.2 Управление потоками процессов.........................................................142

3.8.3 Обработка сигналов ОС.......................................................................144

4 Тема 10. Асинхронное взаиодействие процессов......................................145

4.1 Проблемы распределения ресурсов ОС..................................................145

4.2 Системный пакет IPC...............................................................................148

4.3 Утилиты управления средствами пакета IPC...........................................150

Утилита ipcmk...............................................................................................150

Утилита ipcs..................................................................................................150

Утлита ipcrm..................................................................................................152

4.4 Семафоры................................................................................................152

4.5 Задача об обедающих философах..........................................................160

4.5.1 Описание задачи...................................................................................161

4.5.2 Выбор стратегии решения.....................................................................162

4.5.3 Модель философа.................................................................................162

4.5.4 Программа-монитор..............................................................................164

4.6 Лабораторная работа по теме No10........................................................166

4.6.1 Синхронизация двух процессов............................................................168

4.6.2 Задача «Обедающие философы»..........................................................168

5 Тема 11. Эффективное взаиодействие процессов.......................................169

5.1 Прикладные средства пакета IPC..............................................................169

5.2 Разделяемые сегменты памяти.................................................................170

5.3 Задача о читателях и писателях...............................................................179

5.4 Передача сообщений...............................................................................184

5.5 Лабораторная работа по теме No11........................................................193

5.5.1 Задачи с разделяемыми сегментами памяти..........................................193

5.5.2 Программы передачи сообщений..........................................................194

6 Тема 12. Системная шина D-Bus...................................................................195

6.1 Графические среды ОС..............................................................................196

6.2 Рабочий стол пользователя......................................................................198

6.3 Различия графических сред ОС................................................................199

6.4 X-сервер UNIX...........................................................................................200

6.5 Архитектура шины D-Bus..........................................................................203

6.5.1 Основные понятия шины D-Bus:............................................................204

6.5.2 Бибиотека libdbus.................................................................................206

6.5.3 Проекции ПО D-Bus на языки программирования................................208

6.6 Лабораторная работа по теме No12........................................................210

6.6.1 Утилита qdbus........................................................................................211

6.6.2 Взаимодействие через шину с приложением evince...............................211

Заключение.....................................................................................................214

Список использованных источников...............................................................215