- •Тема 1. Операционные системы
- •Тема 2. История ос
- •0.Аналитическая машина Чарльза Бэббиджа
- •Тема 3. Архитектура ос
- •Тема 4. Процессы и потоки
- •Тема 5. Обработка прерываний
- •Тема 6. Управление процессами и потоками
- •Тема 10.Взаимоблокировки
- •Тема 11.Управление памятью
- •Тема 12.Виртуальная память
- •Тема 13. Стратегии замещения виртуальной памяти
- •Тема 13.Файловые системы
- •Тема 14. Реализация некоторых подсистем ос Windows
- •Ipc (обмен)
- •Ipc (синхронизация)
- •Тема 15. Реализация некоторых подсистем ос Linux
- •Тема 7. Межпроцессное взаимодействие (Inter-Process Communication, ipc)
- •6.2) Аппаратная поддержка (xchg)
- •Тема 8. Примитивы межпроцессного взаимодействия
- •1) Семафоры
- •2) Мьютексы (mutex)
- •3) Мониторы
- •4) Очереди сообщений
- •5) Барьеры
- •Тема 9. Классические проблемы межпроцессного взаимодействия
Тема 4. Процессы и потоки
Модель процесса
Задача рассматривается как набор кода и данных
Процесс обладает блоком управления (Process Control Block, PCB), индивидуальным адресным пространством и счётчиком команд
Счетчик команд
Содержание PCB
Параметры процесса
Уникальный идентификатор процесса (Process ID, PID)
Состояние
Статистические показатели
Приоритет
Окружение
...
Выделенные области памяти
Выделенные ресурсы
Операции над процессами
Порождение
Запуск
Уничтожение
Приостановка
Пробуждение
Блокирование
Возобновление
Иерархия процессов
Граф состояний процесса с двумя состояниями
Граф состояний процесса с пятью состояниями
Модель потока
Задача рассматривается как поток команд
Потоки порождаются процессом
Ресурсы процесса разделяются между потоками
Поток обладает состоянием, счётчиком команд, регистрами и стеком
Могут быть реализованы в пространстве ядра и в пространстве пользователя
Потоки в пространстве пользователя
+Ресурсы процессора не тратятся на переключение контекста
+Свой алгоритм планирования для каждого потока
+Не тратятся ресурсы системных таблиц
-Проблема с блокирующими запросами
-Проблема со страничным исключением
-Сложность реализации
Потоки в пространстве ядра
+Повторное использование потоков
+Простота написания приложений
-Увеличение накладных расходов
Однопоточные и многопоточные процессы
Проблемы потоков
Что делать при порождении дочернего процесса?
Как обеспечить защиту разделяемых между потоками данных?
Что мешает многопоточности
Глобальные переменные
Плохая реентрабельность (повторный вход) библиотечных функций
Обработка прерываний
Индивидуальные стеки
Задачи ядра
Обработка прерываний
Управление процессами и потоками
Обеспечение межпроцессного взаимодействия
Управление памятью
Управление вводом-выводом
Обеспечение защиты
Тема 5. Обработка прерываний
Прерывание — механизм, позволяющий устройствам прервать нормальную работу процессора
Требуются для повышения эффективности работы компьютерной системы
Классы прерываний:
Программное прерывание
Прерывание по таймеру
Прерывание ввода-вывода
Аппаратное прерывание
Работа без прерываний
Работа с прерываниями и быстрым вводом-выводом
Работа с прерываниями и медленным вводом-выводом
Контроллер прерываний
Каскадное включение контроллеров прерываний
Действия процессора при поступлении прерывания
Тема 6. Управление процессами и потоками
Задачи управления:
Порождение и остановка процессов и потоков
Планирование
Планирование — процесс распределения процессов между различными очередями исполнения
Цель — распределение процессорного времени таким образом, чтобы соответствовать требованиям, предъявляемым к операционной системе
Требования к ОС (критерии оптимизации планировщика)
Для всех:
Справедливость
«Диктатура»
Баланс
Постоянство и предсказуемость характеристик
Для пакетных:
Пропускная способность
Время оборота
Загрузка ЦП
Для интерактивных:
Время отклика
Соответствие ожиданиям пользователя
Для систем реального времени:
Предельный срок
Планировщик — часть ОС, занимающаяся планированием
Алгоритм планирования — алгоритм, согласно которому работает планировщик
Моменты необходимости планирования
Создание процесса
Завершение работы процесса
Блокирование процесса
Прерывание ввода-вывода
Прерывание по таймеру
Виды многозадачности
Реальная
Мнимая
Вытесняющая (preemptive)
Невытесняющая (non-preemptive)
Алгоритмы планирования
FCFS
SJF
SRT
RR
HRRN
Приоритетное планирование
Гарантированное планирование
Лотерейное планирование
Справедливое планирование
First Come First Served / FIFO
Задания выполняются в порядке их поступления в систему
+Простота
+Минимальные накладные расходы