Учебное пособие для студентов направления 09.03.01, «Информатика и вычислительная техника»
Кафедра автоматизированных систем управления
Библиографическая запись:
Оглавление (содержание)
Введение...........................................................................................................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