- •Оглавление
- •7.1. Основные понятия 37
- •8.1. Основные понятия 47
- •14.1. Основные понятия 77
- •Введение
- •Раздел 1. Основные сведения об операционных системах Тема 1. Функции и классификация операционных систем
- •1.1. Функции ос
- •1.1. История ос
- •1.3. Классификация ос
- •По назначению
- •По режиму обработки задач
- •По способу взаимодействия с пользователем
- •По принципу построения
- •Вопросы для самоконтроля
- •Тема 2. Структура операционных систем. Системные вызовы
- •2.1. Структура ос
- •Монолитная структура (структура макроядра)
- •Иерархическая структура (многослойное ядро)
- •Структура микроядра
- •2.2. Выполнение системных вызовов
- •2.3. Понятие операционной и программной среды
- •Вопросы для самоконтроля
- •Раздел 2. Процессы и потоки Тема 3. Процессы
- •3.1. Основные сведения о процессах
- •Создание процессов
- •Завершение процессов
- •Иерархия процессов
- •3.2. Модели процесса Модель с двумя состояниями
- •Модель с пятью состояниями
- •3.3. Описание процессов
- •3.4. Управление процессами Создание процессов
- •Переключение процессов
- •3.5. Выполнение кода ос по отношению к процессам
- •Ядро вне процессов (автономное ядро)
- •Ядро в составе пользовательских процессов
- •Ос на основе процессов
- •Вопросы для самоконтроля
- •Тема 4. Системные вызовы управления процессами в ос unix
- •4.1. Создание процесса
- •4.2. Завершение процесса
- •4.3. Изменение образа памяти процесса
- •4.4. Синхронизация между родительским и дочерним процессами
- •4.5. Состояние "зомби"
- •Вопросы для самоконтроля
- •Тема 5. Сигналы в ос unix
- •5.1. Назначение сигналов
- •5.2. Обработка сигналов
- •5.3. Посылка сигнала процессу
- •Вопросы для самоконтроля
- •Тема 6. Потоки
- •6.1. Основные понятия
- •6.2. Основные операции с потоками
- •6.3. Способы реализации потоков в пространстве пользователя
- •В пространстве ядра
- •Смешанная реализация
- •Вопросы для самоконтроля
- •Тема 7. Взаимоблокировки
- •7.1. Основные понятия
- •Типы доступа к ресурсу
- •Условия возникновения взаимоблокировок
- •7.2. Моделирование взаимоблокировок
- •7.3. Обнаружение взаимоблокировок Обнаружение взаимоблокировок при наличии одного ресурса каждого типа
- •Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа
- •7.4. Избежание взаимоблокировок Безопасные и небезопасные состояния
- •Алгоритм банкира для одного вида ресурса
- •Алгоритм банкира для нескольких видов ресурсов
- •Вопросы для самоконтроля
- •Раздел 3. Взаимодействие процессов Тема 8. Проблема взаимного исключения и способы ее решения
- •8.1. Основные понятия
- •8.2. Аппаратные способы достижения взаимного исключения Запрещение прерываний
- •Специальные команды, выполняющиеся атомарно
- •8.3. Программные способы достижения взаимного исключения Переменные блокировки.
- •Алгоритм Деккера
- •Алгоритм Петерсона
- •Вопросы для самоконтроля
- •Тема 9. Примитивы синхронизации
- •9.1. Семафоры Определение семафора
- •Применение семафоров
- •9.2. Мьютексы
- •9.3. Мониторы
- •Структура монитора
- •Вопросы для самоконтроля
- •Тема 10. Классические проблемы межпроцессного взаимодействия
- •10.1. Проблема производителя и потребителя
- •10.2. Задача о читателях и писателях
- •10.3. Задача об обедающих философах
- •10.4. Задача о спящем парикмахере
- •10.5. Задача о железнодорожном перегоне
- •Вопросы для самоконтроля
- •Тема 11. Межпроцессное взаимодействие в ос unix
- •11.1. Неименованные каналы
- •Синхронизирующие свойства неименованного канала
- •Системные вызовы для работы с неименованными каналами
- •Шаги в установлении связи через неименованный канал
- •Ограничения неименованных каналов
- •11.2. Именованные каналы
- •Использование именованных каналов
- •Синхронизирующие свойства именованных каналов
- •Системные вызовы для работы с именованными каналами
- •11.3. Очереди сообщений
- •11.4. Разделяемая память
- •Вопросы для самоконтроля
- •Тема 12. Передача сообщений
- •12.1. Характеристика систем передачи сообщений
- •12.2. Модель клиент-сервер
- •Вопросы для самоконтроля
- •Тема 13. Api сокетов ос unix
- •13.1. Межпроцессное взаимодействие при помощи сокетов
- •13.2. Системные вызовы работы с сокетами в ос unix Структура адреса сокета
- •Получить дескриптор сокета (создать сокет)
- •Указать адрес локальной оконечной точки
- •Перевод сокета в пассивный режим
- •Принять соединение с сокетом
- •Установить соединение с сервером.
- •Чтение данных из сокета и запись данных в сокет
- •Операции клиента и сервера
- •14.2. Критерии краткосрочного планирования.
- •14.3. Стратегии краткосрочного планирования. Первым поступил – первым обслужен
- •Кратчайшая задача – первая
- •Наименьшее оставшееся время выполнения
- •Циклическое планирование
- •Приоритетное планирование
- •Вопросы для самоконтроля
- •Раздел 5. Управление памятью Тема 15. Технологии распределения памяти
- •15.1. Фиксированное распределение
- •15.2. Динамическое распределение
- •15.3. Система двойников
- •15.4. Простая страничная организация
- •15.5. Простая сегментная организация
- •Вопросы для самоконтроля
- •Тема 16. Виртуальная память
- •16.1. Предпосылки для организации виртуальной памяти
- •16.2. Страничная организация виртуальной памяти
- •Структура таблицы страниц
- •16.3. Сегментация
- •16.4. Комбинация сегментации и страничной организации
- •16.5. Алгоритмы управления виртуальной памятью
- •Стратегия выборки
- •Стратегия размещения.
- •Стратегия замещения
- •Вопросы для самоконтроля
- •Раздел 6. Ввод-вывод и файловая система Тема 17. Ввод-вывод
- •17.1. Принципы программного обеспечения ввода-вывода
- •Способы осуществления ввода-вывода
- •17.2. Программные уровни ввода-вывода
- •Обработчики прерываний
- •Драйверы устройств
- •Независимое от устройств программное обеспечение ввода-вывода
- •Программное обеспечение ввода-вывода пространства пользователя
- •Вопросы для самоконтроля
- •Тема 18. Физическая организация файловой системы
- •18.1. Цели и задачи файловой системы
- •18.2. Устройство диска
- •18.3. Физическая организация и адресация файла
- •Вопросы для самоконтроля
- •Тема 19. Логическая организация файловой системы
- •19.1. Типы файлов
- •19.2. Иерархическая структура файловой системы
- •Имена файлов
- •Монтирование
- •19.3. Атрибуты файлов
- •Вопросы для самоконтроля
- •Литература
- •Перечень сокращений
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОННОЙ ТЕХНИКИ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Илюшечкина Л.В., Илюшечкин В.М.
Учебно-методические разработки для самостоятельной работы студентов, изучающих дисциплину «Операционные системы»
Москва - 2007
Илюшечкина Л.В., Илюшечкин В.М.
Учебно-методические разработки для самостоятельной работы студентов, изучающих дисциплину «Операционные системы». - М.: МИЭТ, 2007. - 111 с.: ил.
Учебно-методические разработки подготовлены для использования при выполнении самостоятельных работ студентами, изучающими дисциплину «Операционные системы», и содержат как теоретические, так и практические сведения о принципах постороения операционных систем.
Разработки предназначены для студентов, обучающихся по техническим специальностям.
© МИЭТ, 2007
Оглавление
Введение 7
Раздел 1. Основные сведения об операционных системах 8
Тема 1. Функции и классификация операционных систем 8
1.1. Функции ОС 8
1.1. История ОС 10
1.3. Классификация ОС 11
Вопросы для самоконтроля 13
Тема 2. Структура операционных систем. Системные вызовы 14
2.1. Структура ОС 14
2.2. Выполнение системных вызовов 15
2.3. Понятие операционной и программной среды 16
Вопросы для самоконтроля 17
Раздел 2. Процессы и потоки 18
Тема 3. Процессы 18
3.1. Основные сведения о процессах 18
3.2. Модели процесса 19
3.3. Описание процессов 22
3.4. Управление процессами 23
3.5. Выполнение кода ОС по отношению к процессам 23
Вопросы для самоконтроля 25
Тема 4. Системные вызовы управления процессами в ОС UNIX 26
4.1. Создание процесса 26
4.2. Завершение процесса 27
4.3. Изменение образа памяти процесса 28
4.4. Синхронизация между родительским и дочерним процессами 28
4.5. Состояние "зомби" 29
Вопросы для самоконтроля 29
Тема 5. Сигналы в ОС UNIX 30
5.1. Назначение сигналов 30
5.2. Обработка сигналов 30
5.3. Посылка сигнала процессу 32
Вопросы для самоконтроля 33
Тема 6. Потоки 33
6.1. Основные понятия 33
6.2. Основные операции с потоками 34
6.3. Способы реализации потоков 35
Вопросы для самоконтроля 37
Тема 7. Взаимоблокировки 37
7.1. Основные понятия 37
7.2. Моделирование взаимоблокировок 39
7.3. Обнаружение взаимоблокировок 41
7.4. Избежание взаимоблокировок 43
Вопросы для самоконтроля 45
Раздел 3. Взаимодействие процессов 47
Тема 8. Проблема взаимного исключения и способы ее решения 47
8.1. Основные понятия 47
8.2. Аппаратные способы достижения взаимного исключения 49
8.3. Программные способы достижения взаимного исключения 50
Вопросы для самоконтроля 52
Тема 9. Примитивы синхронизации 53
9.1. Семафоры 53
9.2. Мьютексы 54
9.3. Мониторы 55
Вопросы для самоконтроля 57
Тема 10. Классические проблемы межпроцессного взаимодействия 58
10.1. Проблема производителя и потребителя 58
10.2. Задача о читателях и писателях 59
10.3. Задача об обедающих философах 60
10.4. Задача о спящем парикмахере 60
10.5. Задача о железнодорожном перегоне 61
Вопросы для самоконтроля 61
Тема 11. Межпроцессное взаимодействие в ОС UNIX 61
11.1. Неименованные каналы 62
11.2. Именованные каналы 64
11.3. Очереди сообщений 65
11.4. Разделяемая память 67
Вопросы для самоконтроля 67
Тема 12. Передача сообщений 68
12.1. Характеристика систем передачи сообщений 68
12.2. Модель клиент-сервер 69
Вопросы для самоконтроля 70
Тема 13. API сокетов ОС UNIX 70
13.1. Межпроцессное взаимодействие при помощи сокетов 70
13.2. Системные вызовы работы с сокетами в ОС UNIX 73
Вопросы для самоконтроля 76
Раздел 4. Планирование 77
Тема 14. Краткосрочное планирование 77
14.1. Основные понятия 77
14.2. Критерии краткосрочного планирования. 78
14.3. Стратегии краткосрочного планирования. 78
Вопросы для самоконтроля 79
Раздел 5. Управление памятью 80
Тема 15. Технологии распределения памяти 80
15.1. Фиксированное распределение 80
15.2. Динамическое распределение 81
15.3. Система двойников 82
15.4. Простая страничная организация 82
15.5. Простая сегментная организация 83
Вопросы для самоконтроля 85
Тема 16. Виртуальная память 85
16.1. Предпосылки для организации виртуальной памяти 85
16.2. Страничная организация виртуальной памяти 86
16.3. Сегментация 87
16.4. Комбинация сегментации и страничной организации 88
16.5. Алгоритмы управления виртуальной памятью 89
Вопросы для самоконтроля 92
Раздел 6. Ввод-вывод и файловая система 94
Тема 17. Ввод-вывод 94
17.1. Принципы программного обеспечения ввода-вывода 94
17.2. Программные уровни ввода-вывода 95
Вопросы для самоконтроля 98
Тема 18. Физическая организация файловой системы 98
18.1. Цели и задачи файловой системы 98
18.2. Устройство диска 99
18.3. Физическая организация и адресация файла 101
Вопросы для самоконтроля 104
Тема 19. Логическая организация файловой системы 105
19.1. Типы файлов 105
19.2. Иерархическая структура файловой системы 105
19.3. Атрибуты файлов 107
Вопросы для самоконтроля 109
Литература 110
Перечень сокращений 111
