МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ»
Кафедра автоматизированных систем управления (АСУ)
УТВЕРЖДАЮ Зав. кафедрой АСУ, профессор
А.М. Кориков
ОПЕРАЦИОННЫЕ СИСТЕМЫ. ЧАСТЬ 2
Учебно-методическое пособие
для студентов уровня основной образовательной программы: бакалавриат направление подготовки: 09.03.01 - Информатика и вычислительная техника
Разработчик доцент кафедры АСУ
В.Г. Резник
2016
2
Резник В.Г.
Операционные системы. Часть 2. Учебно-методическое пособие. – Томск, ТУСУР, 2016. – 216 с.
Учебно-методическое пособие предназначено для изучения теоретических вопросов и выполнения лабораторных работ по второй части дисциплины «Операционные системы» для студентов кафедры АСУ ТУСУР уровня основной образовательной программы бакалавриат направления подготовки: «09.03.01 - Информатика и вычислительная техника».
3
Оглавление
Введение............................................................................................................. |
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 |
Лабораторная работа по теме №7.......................................................... |
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 |
Лабораторная работа по теме №8.......................................................... |
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 |
|
4 |
|
3.6 |
Нити (Threads)........................................................................................ |
125 |
3.7 |
Сигналы POSIX...................................................................................... |
131 |
3.8 |
Лабораторная работа по теме №9........................................................ |
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 |
Лабораторная работа по теме №10...................................................... |
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 |
Лабораторная работа по теме №11...................................................... |
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 |
Лабораторная работа по теме №12...................................................... |
210 |
|
6.6.1 Утилита qdbus............................................................................... |
211 |
|
6.6.2 Взаимодействие через шину с приложением evince.................. |
211 |
Заключение..................................................................................................... |
214 |
|
Список использованных источников......................................................... |
215 |
|
5
Дисциплина «Операционные системы (ОС)» изучается студентами кафедры АСУ ТУСУР уровня основной образовательной программы бакалавриат на третьем курсе обучения.
Объем изложенного учебного материала соответствует второй части программы обучения для направления подготовки: «09.03.01 - Информатика и вычислительная техника».
Целью второй части дисциплины является продолжение обучение студентов основным понятиям и базовым концепциям, положенным в архитектуры современных операционных систем, а также приобретение студентами практических навыков, необходимых для упешного использования полученных знаний.
В отличие от первой части учебно-методического пособия материала по данной дисциплине, здесь особое внимание уделяется применению языка С, обеспечивающего необходимый уровень понимания изучаемого материала.
Указанная цель достигается комплексной методикой проведения учебных занятий, основанной на:
•модульном построении учебного материала данного пособия, согласованного
по изложению теоретической части отдельных разделов дисциплины и проведению соотвествующих лабораторных работ;
•учебным программным комплексом каферды АСУ, обеспечивающим учебный
материал данного пособия вычислительными и программными ресурсами для проведения лабораторных занятий.
Формальной и базовой основой изложенного учебного материала являются:
•научное издание Таненбаума Э. [1];
•учебник для вузов Синицына С.В. [2];
•учебно-методическое пособие Резник В.Г. [3], доступное по электронному
адресу: http://asu.tusur.ru/learning/books/b13.pdf.
Дополнительно учитывается учебный материал, представленный в методическом пособии Резника В.Г. [4], доступный по электронному адресу кафедры АСУ ТУСУР: http://asu.tusur.ru/learning/090301/d30/090301-d30-lect.pdf.
Методика проведения процесса обучения по данному курсу предполагает использование учебных классов кафедры АСУ, которые:
•оборудованны проекторами для демонстрации теоретического материала;
•имеют персональную вычислительную технику с установленной ОС УПК АСУ для проведения лабораторных работ.