- •Кафедра программного обеспечения информационных технологий
- •«Операционные системы и системное программирование»
- •40 01 01
- •Содержание
- •Введение
- •Разработка программ в ос unix
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •1.4 Пользователи системы, атрибуты пользователя
- •1.5 Системные вызовы и функции стандартных библиотек
- •1.6 Описание программы, переменные окружения
- •1.7 Аргументы и опции программы
- •1.8 Обработка ошибок
- •2 Файлы и файловая система
- •2.1 Файлы
- •2.2 Типы файлов
- •2.2.1 Обычные файлы
- •2.2.2 Каталоги
- •2.2.3 Файлы символичной связи (ссылки)
- •2.2.4 Файлы устройства
- •2.2.5 Именованные каналы
- •2.2.6 Сокеты
- •2.3 Владельцы файлов и права доступа к файлу
- •2.4 Дополнительные атрибуты файла
- •2.5 Файловый ввод/вывод
- •Открытие файла
- •2.6 Мультиплексированный ввод/вывод
- •2.7 Векторный ввод/вывод
- •2.8 Файлы, отображающиеся в памяти
- •2.9 Каталоги, работа с каталогами
- •2.9.1 Создание каталога
- •2.9.2 Удаление каталога
- •2.9.3 Чтение информации из каталога
- •2.9.4 Закрытие каталога
- •2.10 Создание жестких ссылок
- •2.11 Символическая ссылка
- •2.12 Удаление ссылки (или имени файла)
- •2.13 Переименование файла
- •2.14 Файловая система ос unix
- •2.14.1 Организация файловой системы ext2
- •2.15 Файлы устройств
- •3 Процессы
- •3.1 Виды процессов
- •3.2 Создание процесса
- •3.3 Вызовы семейства exec
- •3.4 Функции завершения процесса
- •3.5 Ошибки
- •3.6 Копирование при записи
- •3.7 Системные вызовы ожидания завершения процесса
- •3.8 Системный вызов system
- •3.9 Основные параметры, передаваемые процессу
- •3.10 Сеансы и группы процессов
- •4 Взаимодействие процессов
- •4.1 Сигналы
- •4.1.1 Отправка (генерация) сигнала
- •4.1.2 Наборы сигналов
- •4.1.3 Блокировка сигналов
- •4.2 Неименнованные каналы (трубы)
- •4.2.1 Размер канала и взоимодействие процессов при передаче данных
- •4.3 Именнованные каналы
- •4.4 Дополнительные средства межпроцессного взоимодействия
- •4.5 Механизмы межпроцессорного взаимодействия
- •4.5.1 Очереди сообщений
- •4.5.2 Семафоры Семафоры как теоретическая конструкция
- •4.5.3 Разделяемая память
- •4.5.4 Потоки
- •Int pthread_setschedparam(pthread_t tid, int policy, const struct sched_param *param);
- •Int pthread_getschedparam(pthread_t tid, int policy, struct schedparam *param);
- •5 Операционные системы
- •5.1 Понятие операционной системы
- •5.2 Характеристики современных ос
- •5.2.1 Многопоточность
- •5.2.2 Распределенные ос
- •5.2.3 Концепция ос на основе микроядра
- •5.2.4 Функции микроядра.
- •5.3 Принципы построения ос
- •5.4 Концептуальные основы ос
- •5.4.1 Процессы
- •Модель работы процесса с двумя приостановочными состояниями
- •Варианты решения:
- •Решение задачи взаимного исключения. Алгоритм Деккера.
- •Решение задачи взаимного исключения. Алгоритм Пэтерсона..
- •Синхронизирующие примитивы (семафоры).
- •Задача “производитель-потребитель” Общие семафоры
- •Задача “производитель-потребитель”, буфер неограниченного размера(Спящий парикмахер)
- •Задача “производитель-потребитель”, буфер ограниченного размера
- •5.4.2 Распределение ресурсов. Проблема тупиков
- •Алгоритм банкира
- •Применение алгоритма банкира
- •5.4.3 Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •5.4.4 Виртуализация
- •5.4.5 Подсистема управления памятью
- •5.4.6 Виртуальная оперативная память
- •5.5 Аппаратные особенности процессоров Intel-архитектуры, направленных на поддержку многозадачности
- •5.5.1 Сегментация памяти. Ia-32
- •5.5.2 Распределение памяти в реальном режиме
- •5.5.3 Организация защиты в процессоре
- •5.5.4 Поддержка многозадачности в процессорах архитектуры ia-32
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет
информатики и радиоэлектроники»
Факультет компьютерных систем и сетей
Кафедра программного обеспечения информационных технологий
П.Ю. Бранцевич
Лекционный материал
«Операционные системы и системное программирование»
Для студентов специальности
40 01 01
«Программное обеспечение информационных технологий»
дневной формы обучения
Минск 2009
Содержание
Содержание 2
Введение 5
1.1 Отличительные черты ОС UNIX 6
1.2 Основы архитектуры операционной системы UNIX 7
1.3 Ядро системы 7
1.4 Пользователи системы, атрибуты пользователя 9
1.5 Системные вызовы и функции стандартных библиотек 11
1.6 Описание программы, переменные окружения 14
1.7 Аргументы и опции программы 16
1.8 Обработка ошибок 18
2 Файлы и файловая система 21
2.1 Файлы 21
2.2 Типы файлов 22
2.2.1 Обычные файлы 22
2.2.2 Каталоги 23
2.2.3 Файлы символичной связи (ссылки) 24
2.2.4 Файлы устройства 24
2.2.5 Именованные каналы 24
2.2.6 Сокеты 24
2.3 Владельцы файлов и права доступа к файлу 25
2.4 Дополнительные атрибуты файла 27
2.5 Файловый ввод/вывод 27
Открытие файла 28
2.6 Мультиплексированный ввод/вывод 29
2.7 Векторный ввод/вывод 33
2.8 Файлы, отображающиеся в памяти 35
2.9 Каталоги, работа с каталогами 42
2.9.1 Создание каталога 45
2.9.2 Удаление каталога 46
2.9.3 Чтение информации из каталога 47
2.9.4 Закрытие каталога 48
2.10 Создание жестких ссылок 49
2.11 Символическая ссылка 50
2.12 Удаление ссылки (или имени файла) 52
2.13 Переименование файла 53
2.14 Файловая система ОС UNIX 54
2.14.1 Организация файловой системы ext2 55
3 Процессы 59
3.1 Виды процессов 59
3.7 Системные вызовы ожидания завершения процесса 66
4.1.1 Отправка (генерация) сигнала 76
4.1.2 Наборы сигналов 77
4.1.3 Блокировка сигналов 77
4.5 Механизмы межпроцессорного взаимодействия 86
4.5.1 Очереди сообщений 86
4.5.2 Семафоры 96
Семафоры как теоретическая конструкция 96
4.5.3 Разделяемая память 103
4.5.4 Потоки 109
5 Операционные системы 123
5.1 Понятие операционной системы 123
5.2 Характеристики современных ОС 125
5.2.1 Многопоточность 125
5.2.2 Распределенные ОС 126
5.2.3 Концепция ОС на основе микроядра 126
5.2.4 Функции микроядра. 129
5.3 Принципы построения ОС 131
5.4 Концептуальные основы ОС 134
5.4.1 Процессы 135
Синхронизирующие примитивы (семафоры). 155
Задача “производитель-потребитель” 156
Общие семафоры 156
Задача “производитель-потребитель”, буфер неограниченного размера(Спящий парикмахер) 159
Задача “производитель-потребитель”, буфер ограниченного размера 160
5.4.2 Распределение ресурсов. Проблема тупиков 163
Алгоритм банкира 164
Применение алгоритма банкира 166
5.4.3 Монитороподобные средства синхронизации 168
Механизм типа «критическая область» 169
5.4.4 Виртуализация 170
5.4.5 Подсистема управления памятью 174
5.4.6 Виртуальная оперативная память 177
5.5 Аппаратные особенности процессоров Intel-архитектуры, направленных на поддержку многозадачности 182
5.5.1 Сегментация памяти. IA-32 182
5.5.2 Распределение памяти в реальном режиме 184
5.5.3 Организация защиты в процессоре 188
5.5.4 Поддержка многозадачности в процессорах архитектуры IA-32 190