Учебный курс Основы операционных систем Лекция 3 кандидат физико-математических наук, доцент Карпов Владимир Ефимович 40 Константин Коньков http://www.intuit.ru/studies/courses/1089/217/info Основы организации операционных систем Microsoft Windows Академия Microsoft Обычно в состоянии "Готовности" имеется очередь готовых к выполнению (running) потоков. В данном случае это состояние распадается на три составляющих. Это, собственно, состояние "Готовности (Ready)"; состояние "Готов. Отложен (Deferred Ready)", что означает, что поток выбран для выполнения на конкретном процессоре, но пока не запланирован к выполнению; и, наконец, состояние "Простаивает (Standby)", в котором может находиться только один выбранный к выполнению поток для каждого процессора в системе. В состоянии "Ожидания (Waiting)" поток блокирован и ждет какого-либо события, например, завершения операции ввода-вывода. При наступлении этого события поток переходит в состояние "Готовности". Этот путь может проходить через промежуточное "Переходное (Transition)" состояние в том случае, если стек ядра потока выгружен из памяти. Код ядра выполняется в контексте текущего потока. Это означает, что при прерывании, системном вызове и т д., то есть когда процессор переходит в режим ядра и управление передается ОС, переключения на другой поток (например, системный) не происходит. Контекст потока при этом сохраняется, поскольку операционная система все же может принять решение о смене характера деятельности и переключении на другой поток. Вследствие этого в некоторых курсах по операционным системам состояние "Выполнение" разделяют на "Выполнение в режиме пользователя" и "Выполнение в режиме ядра". 2 3 Уровни планирования процессов Долгосрочное планирование – планирование заданий. Среднесрочное планирование – swapping. Краткосрочное планирование – планирование использования процессора. 4 Цели планирования Справедливость Эффективность Сокращение полного времени выполнения (turnaround time) Сокращение времени ожидания (waiting time) Сокращение времени отклика (response time) 5 Желаемые свойства алгоритмов планирования Предсказуемость Минимизация накладных расходов. Равномерность загрузки вычислительной системы. Масштабируемость. 6 Параметры планирования Статические параметры вычислительной системы – например, предельные значения ее ресурсов. Статические параметры процесса – кем запущен, степень важности, запрошенное процессорное время, какие требуются ресурсы и т.д. статические Динамические параметры вычислительной системы – например, количество свободных ресурсов в данный момент. Динамические параметры процесса – текущий приоритет, размер занимаемой оперативной памяти, использованное процессорное время и т.д. динамические 7 CPU burst и I/O burst Важные динамические параметры процесса a=1 b=2 read c Ожидание окончания ввода a=a+c∗b print a Ожидание окончания вывода CPU burst I/O burst CPU burst I/O burst 8 Вытесняющее и невытесняющее планирование 1. 2. Перевод процесса из состояния исполнение в состояние закончил исполнение Перевод процесса из состояния исполнение в состояние ожидание Вынужденное принятие решения Принятие только вынужденных решений – невытесняющее планирование 3. 4. Перевод процесса из состояния исполнение в состояние готовность Перевод процесса из состояния ожидание в состояние готовность Невынужденное принятие решения Принятие вынужденных и невынужденных решений – вытесняющее планирование 9 Алгоритмы планирования FCFS (First Come – First Served) Процессы Продолжительность CPU burst P0 13 P1 4 P2 1 исполнение P0 готовность P1 исполнение исполнение готовность P2 0 1 5 13 17 18 t Алгоритмы планирования FCFS (First Come – First Served) Процессы Продолжительность CPU burst готовность P0 P2 1 P1 4 P0 13 исполнение готовность исполнение P1 P2 исполнение 0 1 5 18 t Алгоритмы планирования RR (Round Robin) готовность Процесс 1 готовность готовность Процесс 4 Процесс 2 исполнение исполнение Процесс 3 2 Процессор 12 Алгоритмы планирования RR (Round Robin) готовность Процесс 1 4 готовность готовность Процесс 3 Процесс 1 исполнение Процесс 3 2 Процессор 13 Алгоритмы планирования RR (Round Robin) Остаток времени CPU burst <= кванта времени: – процесс освобождает процессор до истечения кванта; – на исполнение выбираем новый процесс из начала очереди готовых; Остаток времени CPU burst >= кванта времени: – По окончании кванта процесс помещается в конец очереди готовых к исполнению процессов; – на исполнение выбираем новый процесс из начала очереди готовых. 14 Алгоритмы планирования RR (Round Robin) Процессы Продолжительность CPU burst P0 13 P1 4 P2 1 Величина кванта времени – 4 время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 И И И И Г Г Г Г Г И И И И И И И И И P0 P1 P2 Г Г Г Г И И И И Г Г Г Г Г Г исполнение P1 Г Г И Очередь готовых P0 P1 P2 15 Алгоритмы планирования RR (Round Robin) Процессы Продолжительность CPU burst P0 13 P1 4 P2 1 Величина кванта времени – 1 время 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 И Г Г И Г И Г И Г И И И И И И И И И P0 P1 P2 Г И Г Г Г Г И Г И Г И И исполнение P102 Очередь готовых P102 P102 P102 16 Алгоритмы планирования SJF (Shortest Job First) невытесняющий Процессы Продолжительность CPU burst P0 5 время 1 2 3 4 5 6 P0 Г Г Г Г И И И P1 P2 Г Г И И Г Г P3 И И Г Г Г 7 Г 8 9 P1 3 P3 1 10 11 12 13 14 15 16 И И Г Г И И И И И И И готовность исполнение P2013 P2 7 P0 P1 P2 P3 17 Алгоритмы планирования SJF (Shortest Job First) вытесняющий Процессы P0 P1 P2 P3 Продолжительность CPU burst 6 2 5 5 Момент появления в очереди 0 2 6 0 время 1 2 3 4 5 6 7 8 9 10 11 12 P0 Г Г Г Г Г Г Г Г Г Г Г Г И И И И И И P1 14 15 16 17 18 И И Г И И И И И P2 P3 13 И И Г Г И И И готовность исполнение P2013 P0 P1 P2 P3 18