Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009
Мультипрограммирование Критерии эффективности вычислительных систем: Пропускная способность – количество задач, выполняемых за единицу времени Удобство работы пользователей – степень интерактивности вычислительной системы Реактивность системы – способность выдерживать заранее заданные интервалы между запуском программ и получением результата
Мультипрограммирование Классификация вычислительных систем по критериям эффективности: Системы пакетной обработки Системы разделения времени Системы реального времени
Мультипрограммирование Системы пакетной обработки Совмещение операций ввода-вывода: 1. Использование каналов - специальных процессоров для управления внешними устройствами
Мультипрограммирование Системы пакетной обработки Совмещение операций ввода-вывода: 2. Использование контроллеров устройств, автономно выполняющих команды центрального процессора
Мультипрограммирование Системы пакетной обработки
Мультипрограммирование Системы разделения времени Пользователю предоставляется возможность интерактивной работы сразу с несколькими приложениями Всем приложениям попеременно выделяется квант процессорного времени ОС ААА БББ
Мультипрограммирование Системы реального времени Мультипрограммная смесь состоит из фиксированного набора заранее разработанных программ Выбор программы на выполнение происходит или по прерываниям или по расписанию плановых работ При проектировании закладывается некоторый «запас» вычислительной мощности
Процессы и потоки Понятия «процесс» и «поток» Процесс – заявка на потребление всех видов ресурсов, кроме процессорного времени Поток – последовательность команд, работающих в рамках некоторого процесса
Процессы и потоки Понятия «процесс» и «поток» Процесс – память, файлы, сокеты, семафоры Поток – квант процессорного времени, контекст
Процессы и потоки Планирование и диспетчеризация потоков Планирование Определение момента времени для смены текущего активного потока Выбор для выполнения потока из очереди Диспетчеризация Сохранение контекста текущего потока Загрузка контекста нового потока Запуск нового потока на выполнение
Процессы и потоки Состояние потока
Алгоритмы планирования Алгоритмы, основанные на квантовании
Алгоритмы планирования Алгоритмы, основанные на квантовании
Алгоритмы планирования Алгоритмы, основанные на приоритетах 1. Относительные приоритеты
Алгоритмы планирования Алгоритмы, основанные на приоритетах 1. Абсолютные приоритеты
Мультипрограммирование на основе прерываний Типы прерываний Внешние Внутренние Программные
Мультипрограммирование на основе прерываний Диспетчеризация и приоритезация прерываний в ОС Неупорядоченная обработка прерываний
Мультипрограммирование на основе прерываний Диспетчеризация и приоритезация прерываний в ОС Использование диспетчера прерываний 1.Вызов диспетчера прерываний 2.Запрещение всех прерываний 3.Принятие решения: постановка прерывания в очередь либо выполнение прерывания
Мультипрограммирование на основе прерываний Диспетчер прерываний на примере Windows NT
Синхронизация процессов и потоков Критическая секция Критическая секция это часть программы, результат выполнения которой может непредсказуемо меняться, если переменные, относящиеся к этой части программы, изменяются другими потоками в то время, когда выполнение этой части еще не завершено. Критическая секция всегда определяется по отношению к определенным критическим данным
Синхронизация процессов и потоков Блокирующие переменные
Синхронизация процессов и потоков Семафоры Для объекта семафор вводятся две неделимые операции: V(S): переменная S увеличивается на 1 единым действием. P(S): уменьшение S на 1, если это возможно. Если S=0, то в этом случае поток, вызывающий операцию Р, ждет, пока это уменьшение станет возможным.