
- •8 Взаимодействие процессов 79
- •9 Синхронизация процессов 87
- •10 Тупиковые ситуации 101
- •11 Управление памятью 114
- •12 Управление виртуальной памятью 132
- •13 Интерфейс файловой системы 138
- •14 Некоторые аспекты Реализации файловой системы 156
- •Литература 166 введение
- •Понятие операционной системы
- •Контрольные вопросы
- •Организация компьютерной системы
- •Архитектура компьютера с общей шиной
- •Структура памяти
- •Структура ввода-вывода
- •Контрольные вопросы
- •Классификация Операционных Систем
- •Поддержка многопользовательского режима.
- •Поддержка многопоточности
- •Многопроцессорная обработка
- •Особенности областей использования
- •Контрольные вопросы
- •Функциональные компоненты операционной системы
- •Управление процессами
- •Управление памятью
- •Управление файлами и внешними устройствами
- •Безопасность и защита данных
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Контрольные вопросы
- •Структура операционной системы
- •Монолитные системы
- •Многоуровневые системы
- •Виртуальные машины
- •Экзоядро
- •Модель клиент-сервер
- •Контрольные вопросы
- •Процессы и потоки
- •Концепция процесса
- •Состояния процесса
- •Реализация процессов
- •Операции над процессами
- •1Создание процессов
- •2Завершение процессов
- •Контрольные вопросы
- •Планирование процессора
- •Планирование процессов. Очереди
- •Планировщики
- •Моменты перепланировки. Вытеснение
- •Переключение контекста
- •Диспетчеризация
- •Критерии планирования процессора
- •Стратегии планирования процессора
- •3Планирование в порядке поступления
- •Пример.
- •4Стратегия sjf
- •5Приоритетное планирование
- •6Карусельная стратегия планирования
- •7Очереди с обратной связью
- •8Гарантированное планирование
- •9Лотерейное планирование
- •10Планирование в системах реального времени
- •Планирование потоков
- •Оценка алгоритмов планирования
- •11Детерминированное моделирование
- •12Моделирование очередей
- •13Имитация
- •Контрольные вопросы
- •Взаимодействие процессов
- •Разделяемая память. Проблема производителя и потребителя
- •Взаимодействие путем передачи сообщений
- •14Буферизация
- •15Исключительные ситуации
- •Потерянные сообщения
- •Вызов удаленных процедур (rpc)
- •Контрольные вопросы
- •Синхронизация процессов
- •Взаимное исключение и критические участки
- •Синхронизация с помощью элементарных приемов нижнего уровня
- •16Запрещение прерываний
- •17Переменные блокировки
- •18Операция проверки и установки
- •Семафоры
- •19Использование семафоров
- •20Реализация семафоров
- •21Тупики и зависания
- •Классические проблемы синхронизации
- •22Проблема ограниченного буфера
- •23Проблема читателей и писателей
- •24Задача об обедающих философах
- •Двоичные семафоры
- •Сигналы
- •Контрольные вопросы
- •Тупиковые ситуации
- •Необходимые условия возникновения тупиков
- •Граф выделения и закрепления ресурсов
- •Методы решения проблемы тупиков
- •25Предотвращение тупиков
- •Взаимное исключение
- •Захват и ожидание
- •Отсутствие перераспределения
- •Условие кругового ожидания
- •26Обход тупиков
- •27Простейший алгоритм обхода тупика
- •28Алгоритм банкира
- •29Обнаружение тупиков
- •30Восстановление после тупика
- •Контрольные вопросы
- •Управление памятью
- •Функции операционной системы по управлению памятью
- •Типы адресов
- •Физическое и логическое адресное пространство
- •Связывание адресов
- •Динамическая загрузка
- •Динамическое связывание
- •Перекрытие программ в памяти
- •Свопинг
- •Смежное размещение процессов
- •31Простое непрерывное распределение
- •32Распределение с несколькими непрерывными разделами
- •Фрагментация
- •Страничная организация памяти
- •Сегментная организация памяти
- •Защита и совместное использование
- •Фрагментация
- •Сегментация в сочетании со страничной памятью
- •Контрольные вопросы
- •Управление виртуальной памятью
- •Подкачка страниц
- •Алгоритмы вытеснения страниц
- •33Случайный выбор (Random)
- •34«Первым пришел первым ушел» (fifo)
- •35Вытеснение по давности использования (lru)
- •36Вытеснение редко используемых страниц (lfu)
- •37Оптимальный алгоритм (opt)
- •Аномалии в алгоритмах страничной реализации
- •38«Толкотня» в памяти
- •39Аномалия Биледи
- •Эффективность и применимость виртуальной памяти
- •Пример.
- •Контрольные вопросы
- •Интерфейс файловой системы
- •Понятие файла. Атрибуты файла и операции с файлами
- •Операции над файлами
- •Типы файлов
- •Структура файлов
- •Методы доступа
- •40Последовательный метод доступа
- •41 Прямой метод доступа
- •42Другие методы доступа
- •Каталоги
- •Логическая структура каталога
- •43Одноуровневая структура каталога
- •44Двухуровневая структура каталога
- •45 Древовидная структура каталога
- •46Организация каталога в виде графа без циклов
- •47Организация каталога в виде произвольного (простого) графа
- •Проблемы защиты файлов
- •48Типы доступа
- •49Списки прав доступа
- •50Другие подходы к защите
- •Контрольные вопросы
- •Некоторые аспекты Реализации файловой системы
- •Общая структура файловой системы
- •Методы выделения дискового пространства
- •51Выделение непрерывной последовательностью блоков
- •52Связный список
- •53Таблица отображения файлов
- •54Индексные узлы
- •Управление свободным и занятым дисковым пространством
- •55Учет при помощи организации битового вектора
- •56Учет при помощи организации связного списка
- •57Размер блока
- •58Структура файловой системы на диске
- •Контрольные вопросы Литература
Оглавление
ВВЕДЕНИЕ 6
1 Понятие операционной системы 7
Контрольные вопросы 9
2 Организация компьютерной системы 10
2.1 Архитектура компьютера с общей шиной 10
2.2 Структура памяти 12
2.3 Структура ввода-вывода 14
Контрольные вопросы 16
3 Классификация Операционных Систем 17
Контрольные вопросы 20
4 Функциональные компоненты операционной системы 22
4.1 Управление процессами 22
4.2 Управление памятью 23
4.3 Управление файлами и внешними устройствами 23
4.4 Безопасность и защита данных 25
4.5 Интерфейс прикладного программирования 26
4.6 Пользовательский интерфейс 27
Контрольные вопросы 28
5 СТРУКТУРА операционной системы 29
5.1 Монолитные системы 29
5.2 Многоуровневые системы 30
5.3 Виртуальные машины 32
5.4 Экзоядро 35
5.5 Модель клиент-сервер 36
Контрольные вопросы 38
6 Процессы и потоки 39
6.1 Концепция процесса 39
6.2 Состояния процесса 39
6.3 Реализация процессов 41
6.4 Потоки 43
6.5 Операции над процессами 47
1 Создание процессов 47
2 Завершение процессов 51
Контрольные вопросы 52
7 ПЛАНИРОВАНИЕ ПРОЦЕССОРА 54
7.1 Планирование процессов. Очереди 54
7.2 Планировщики 56
7.3 Моменты перепланировки. Вытеснение 57
7.4 Переключение контекста 59
7.5 Диспетчеризация 59
7.6 Критерии планирования процессора 60
7.7 Стратегии планирования процессора 61
3 Планирование в порядке поступления 61
4 Стратегия SJF 62
5 Приоритетное планирование 64
6 Карусельная стратегия планирования 66
7 Очереди с обратной связью 68
8 Гарантированное планирование 69
9 Лотерейное планирование 70
10 Планирование в системах реального времени 71
7.8 Планирование потоков 72
7.9 Оценка алгоритмов планирования 74
11 Детерминированное моделирование 74
12 Моделирование очередей 76
13 Имитация 77
Контрольные вопросы 77
8 Взаимодействие процессов 79
8.1 Разделяемая память. Проблема производителя и потребителя 80
8.2 Взаимодействие путем передачи сообщений 81
14 Буферизация 84
15 Исключительные ситуации 84
8.2.1 Вызов удаленных процедур (RPC) 85
Контрольные вопросы 86
9 Синхронизация процессов 87
9.1 Взаимное исключение и критические участки 88
9.2 Синхронизация с помощью элементарных приемов нижнего уровня 89
16 Запрещение прерываний 89
17 Переменные блокировки 90
18 Операция проверки и установки 90
9.3 Семафоры 92
19 Использование семафоров 92
20 Реализация семафоров 93
21 Тупики и зависания 94
9.4 Классические проблемы синхронизации 95
22 Проблема ограниченного буфера 95
23 Проблема читателей и писателей 95
24 Задача об обедающих философах 97
9.5 Двоичные семафоры 98
9.6 Сигналы 99
Контрольные вопросы 100
10 Тупиковые ситуации 101
10.1 Необходимые условия возникновения тупиков 101
10.2 Граф выделения и закрепления ресурсов 101
10.3 Методы решения проблемы тупиков 104
25 Предотвращение тупиков 105
26 Обход тупиков 107
27 Простейший алгоритм обхода тупика 107
28 Алгоритм банкира 108
29 Обнаружение тупиков 111
30 Восстановление после тупика 112
Контрольные вопросы 113
11 Управление памятью 114
11.1 Функции операционной системы по управлению памятью 114
11.2 Типы адресов 115
11.3 Физическое и логическое адресное пространство 115
11.4 Связывание адресов 116
11.5 Динамическая загрузка 118
11.6 Динамическое связывание 118
11.7 Перекрытие программ в памяти 119
11.8 Свопинг 121
11.9 Смежное размещение процессов 122
31 Простое непрерывное распределение 122
32 Распределение с несколькими непрерывными разделами 123
11.10 Фрагментация 124
11.11 Страничная организация памяти 126
11.12 Сегментная организация памяти 128
11.13 Сегментация в сочетании со страничной памятью 130
Контрольные вопросы 131
12 Управление виртуальной памятью 132
12.1 Подкачка страниц 132
12.2 Алгоритмы вытеснения страниц 133
33 Случайный выбор (Random) 133
34 «Первым пришел первым ушел» (FIFO) 133
35 Вытеснение по давности использования (LRU) 134
36 Вытеснение редко используемых страниц (LFU) 135
37 Оптимальный алгоритм (OPT) 135
12.3 Аномалии в алгоритмах страничной реализации 135
38 «Толкотня» в памяти 135
39 Аномалия Биледи 136
12.4 Эффективность и применимость виртуальной памяти 137
Контрольные вопросы 137
13 Интерфейс файловой системы 138
13.1 Понятие файла. Атрибуты файла и операции с файлами 138
13.2 Операции над файлами 138
13.3 Типы файлов 140
13.4 Структура файлов 141
13.5 Методы доступа 142
40 Последовательный метод доступа 142
41 Прямой метод доступа 143
42 Другие методы доступа 144
13.6 Каталоги 144
13.7 Логическая структура каталога 146
43 Одноуровневая структура каталога 146
44 Двухуровневая структура каталога 146
45 Древовидная структура каталога 147
46 Организация каталога в виде графа без циклов 149
47 Организация каталога в виде произвольного (простого) графа 151
13.8 Проблемы защиты файлов 153
48 Типы доступа 153
49 Списки прав доступа 154
50 Другие подходы к защите 155
Контрольные вопросы 155