SlideShare a Scribd company logo
1 of 65
Системное программное обеспечение
Лекция 2
Тема 1. Системное программное обеспечение
План лекции:
 Понятие ресурса. Классификация
 Многозадачность. Классификация многозадачных ОС
 Процессы
 Потоки
 Операции над процессами/потоками
 Алгоритмы планирования
Понятие ресурса
 Организация рационального использования
ресурсов компьютера – одна из важнейших
функций ОС.
 Общее определение: всякий потребляемый объект
(независимо от формы его существования),
обладающий некоторой практической ценностью
для потребителя, является ресурсом.
 Ресурс – это средство вычислительной системы,
которое может быть выделено процессу на
определенный интервал времени.
Классификация ресурсов
Многозадачность ОС
 Многозадачность (мультипрограммирование) – способ
организации вычислительного процесса, при котором на
одном (или нескольких) процессоре (-ах) выполняется
несколько задач. Данные задачи совместно используют не
только ресурсы процессора, но также оперативную и
внешнюю память, устройства ввода-вывода и т.д.
 Организация вычислительного процесса характеризуется
несколькими критериями эффективности:
 Пропускная способность – количество выполняемых
задач в единицу времени;
 Удобство работы пользователя
 Реактивность системы – способность системы
выдерживать промежутки времени между запуском
программы и получением результата.
Классификация многозадачных ОС
 Операционные системы по типу организации
многозадачности делятся на:
 Системы пакетной обработки
 Системы разделения времени
 Системы реального времени.
Системы пакетной обработки
 Для повышения пропускной способности вычислительной
системы и минимизации простоев центрального
процессора, вызванных ожиданием приложением ввода
данных или другими причинами, используется
организация вычислительного процесса в виде очереди
(пакета) исполняемых приложений.
 Схема работы системы имеет следующий вид:
 В начале работы формируется пакет заданий, причем
каждое задание содержит требования к системным
ресурсам.
 Из пакета формируется мультипрограммная смесь, то
есть множество одновременно выполняемых задач (как
правило, выбираются наборы задач, предъявляющие
разные требования к ресурсам).
 Область применения систем пакетной обработки –
системы с интенсивными вычислениями (например,
научные и технические расчеты).
Системы пакетной обработки
Системы пакетной обработки
 Переключение процессора с выполнения одной
задачи на выполнение другой происходит только в
случае, если активная задача сама отказывается от
процессора, например, из-за необходимости
выполнить операцию ввода-вывода. Поэтому в
системах пакетной обработки невозможно
гарантировать выполнение интерактивных задач.
Сделанная из тонкого картона,
перфокарта представляет информацию
 наличием или отсутствием отверстий
 в определённых позициях карты.
Системы разделения времени
 В данных системах пользователю (или пользователям)
предоставляется возможность интерактивной работы
сразу с несколькими приложениями.
 Для решения данной задачи ОС должна принудительно
приостанавливать работу приложений и переключать
работу процессора на обработку другого приложения.
 Всем приложениям попеременно выделяется некоторый
квант процессорного времени. Пользователь получает
возможность поддерживать диалог с запущенным
приложением.
Системы разделения времени
 Достоинство данных систем – удобство работы
пользователя. Каждый пользователь получает терминал
для управления работой приложений.
 Недостаток – меньшая пропускная способность
операционных систем
Системы реального времени
Системы реального времени применяются для управления
различными техническими объектами, такими, (станок,
научная экспериментальная установка) или
технологическими процессами (гальваническая линия,
доменный процесс).
Во всех этих случаях существует предельно допустимое
время, в течение которого должна быть выполнена та или
иная программа, управляющая объектом, в противном
случае может произойти авария.
Таким образом, критерием эффективности для систем
реального времени временя реакции системы на события
от объекта управления, это свойство системы называется
реактивностью.
Вопрос: классифицируйте ОС
 Windows
 Linux
Ответ
 системы пакетной обработки (например, ОС ЕС),
 системы разделения времени (UNIX, Windows),
 системы реального времени (QNX, RT/U).
Объект исполнения ОС
 Программисты создают программы
 Пользователи запускают программы на исполнение
 Что представляет собой объект исполнения в ОС?
Объект исполнения
 Это прикладная программа в состоянии выполнения,
включает:
 Адресное пространство, выделенное для выполнения
программы
 Код выполняющейся программы
 Данные выполняющейся программы
 Стек и указатель на его вершину (stack pointer, SP)
 Выделенные ресурсы ОС (открытые файлы,
установленные сетевые соединения и т.д.)
 Программный счетчик (instruction pointer, IP),
указывающий на следующую выполняемую инструкцию
 Текущие значения регистров общего назначения
 Объект исполнения представлен двумя понятиями:
процесс и поток
Процесс
 Процесс - абстракция, представляющая программу во
время ее выполнения
 Процессу ОС выделяет ресурсы, необходимые для
выполнения программы, например:
 адресное пространство процесса содержит его
программный код, данные и стек (или стеки)
 файлы используются процессом для чтения входных
данных и записи выходных
 устройства ввода-вывода используются в соответствии с
их назначением
 Процесс – пассивный объект – владелец ресурсов,
контейнер для выполнения потоков
Поток /Нить (Thread)
 Поток - абстракция, представляющая последовательное
выполнение команд программы, развертывающееся во
времени
 Процесс может иметь несколько потоков
 потоки совместно используют
 глобальные и статические переменные (располагаются
в регионе данных)
 динамически распределяемую память (кучу)
 системные ресурсы, выделенные процессу
 каждый поток имеет свои собственные
 программный счетчик (IP)
 значения регистров
 локальные переменные (т.е. свой собственный стек)
 Процесс - совокупность взаимодействующих потоков и
выделенных ему ресурсов
Процесс с одним потоком
виртуальное адресное
пространство (ВАП) процесса
Регион кода
Регион данных
Стек
Куча
пространство
адресов
MIN
MAX
IP
SP
Процесс с несколькими потоками
виртуальное адресное
пространство (ВАП) процесса
Регион кода
Регион данных
Стек потока 1
Куча
пространство
адресов
MIN
MAX
IP потока 1
SP потока 1
Стек потока 2
Стек потока 3
SP потока 2
SP потока 3
IP потока 2
IP потока 3
Зачем нужны процессы с несколькими потоками?
Зачем нужны процессы с несколькими потоками?
 Для параллельной обработки нескольких однотипных
запросов (сетевые сервисы)
 Для разделения исполнительных активностей,
параллельно решающих различных задач
 обеспечение пользовательского интерфейса
 математические вычисления
 фоновая печать
 …
 Для создания параллельных программ, эффективно
использующих аппаратные ресурсы (например, несколько
аппаратно имеющихся ЦП)
 Для улучшения структуры программы
Многопоточная программа vs.
Взаимодействующие процессы
 При использовании потоков
 экономятся ресурсы (все потоки одного процесса
пользуются одним набором ресурсов)
 экономится время (операции создания/уничтожения
потока намного менее затратные, чем операции
создания/уничтожения процесса)
 взаимодействие между потоками одного процесса более
удобно и эффективно по причине использования общей
памяти
Состояния потока в многозадачной ОС…
Готов к
выполнению
Ожидание
Создание
Завершение
1
2
3
4
Выполнение
5
6
Состояния потока в многозадачной ОС…
 Выполнение – состояние работающего потока –
обладающего всеми необходимыми ресурсами, в том
числе возможностью использования ЦП
 Готов к выполнению – поток обладает всеми
необходимыми для выполнения ресурсами за
исключением ресурса "время ЦП"
 Ожидание (сон, блокировка) – выполнение потока
заблокировано до наступления некоторого внешнего
события (например, поступления входных данных или
освобождения ресурса)
Состояния потока в многозадачной ОС
 (2,3) - осуществляются ядром
операционной системы
(планировщиком)
 (4) - продолжение работы невозможно
 для продолжения работы требуется наступление какого-
либо события
 поток затребовал недоступный в данный момент ресурс
 поток переводится в состояние ожидания ядром
операционной системы во время обработки системного
вызова
 поток заблокирован внешним по отношению к нему
вызовом
 (5) - производится ядром ОС в момент выполнения
условия ожидания
О
2
С
ГВ
3
З
1
4В
6
5
Управление процессами/потоками
 Структуры, описывающие процессы и потоки в ядре ОС
 Операции над процессами и потоками
 Распределение ресурсов между процессами/потоками
 время центрального процессора (выделяется потокам)
 оперативная память (выделяется процессам)
 другие ресурсы (как правило, выделяются процессам)
Контекст процесса
 Контекст – множество информации, полностью
описывающее состояние объекта (в частности, достаточное
для восстановления объекта в случае его удаления)
 Контекст процесса включает
 Множество информации, используемое операционной
системой для управления ресурсом типа «процесс»
 Адресное пространство процесса
 Структуру и содержимое пользовательской части
адресного пространства процесса
 Множество ресурсов, используемых процессом или
принадлежащих процессу, и их состояния
Контекст потока
 Контекст потока включает
 Множество информации, используемое операционной
системой для управления ресурсом типа «поток»
 Множество ресурсов, используемых потоком или
принадлежащих потоку и их состояния
 Аппаратный контекст исполнения потока
Аппаратный контекст потока
 Состояние процессора с точки зрения предоставляемых
потоку прав его использования в конкретной ОС (обычно
представляется множеством доступным потоку регистров
процессора и их текущими значениями)
 Состояние других устройств в случае, если управление ими
осуществляется непосредственно на уровне команд
программы, а не через интерфейс доступа к устройствам
через выполнение системных вызовов ОС
Переключение контекста
 Переключение контекста происходит при переходе к
исполнению другого потока (возможно, другого процесса)
 При переключении контекста необходимо
 сохранить контекст вытесняемого потока
 если поток, выбранный на исполнение, принадлежит
другому процессу
– сохранить контекст процесса – владельца
вытесняемого потока
– загрузить контекст процесса – владельца потока,
выбранного на исполнение
 загрузить контекст потока, выбранного на исполнение
 Для описания процессов и потоков (в том числе для
хранения их контекстов) в ядре ОС вводятся специальные
структуры – дескрипторы процесса и потока
Дескриптор процесса
 Идентификатор процесса
 Групповые параметры процесса
 Параметры, используемые в процессе определения
приоритета процесса при конкуренции за какой-либо
ресурс
 Состояние процесса
 Статистические данные
 Описание адресного пространства процесса
 Контекст ввода-вывода
 Контекст безопасности
 Текущие системные параметры выполнения
 Код завершения процесса
В Linux дескриптор процесса – структура task_struct
(include/linux/sched.h), содержит около 100 полей!
Дескриптор потока
 Идентификатор потока
 Идентификатор процесса – владельца потока
 Параметры, используемые в процессе определения
приоритета потока при конкуренции за какой-либо ресурс
 Статистические данные потока
 Аппаратный контекст выполнения потока (программный
счетчик, стек и указатель на его вершину, значения
регистров)
 Код завершения потока
Кто управляет
процессами и потоками?
Кто управляет
процессами и потоками?
 За управление процессами всегда отвечает ядро
ОС
 Ядро всегда предоставляет каждому процессу
один поток, но не всегда поддерживает
многопоточность
 потоки, непосредственно управляемые ядром ОС,
называются потоками ядра
 Можно реализовать многопоточность в
библиотеке пользовательского уровня!
Потоки ядра vs.
пользовательские потоки
 При использовании пользовательских потоков
 (+) Операции над потоками выполняются без
выполнения системных вызовов (в 10-100 раз быстрее,
чем при использовании потоков ядра)
 (+) Можно реализовать собственный алгоритм
планирования
 (-) Ядро ничего не знает о потоках пользовательского
уровня и распределяет время ЦП независимо от их
количества в процессе
 (-) Если будет выполнен блокирующий системный вызов
(например, вызвана синхронная операция ввода-
вывода), в состояние ожидания переводится поток ядра,
использовавшийся для обеспечения выполнения
нескольких (или всех) пользовательских потоков.
Соответственно, выполнение всех этих пользовательских
потоков будет заблокировано.
Потоки ядра vs.
пользовательские потоки
 При использовании пользовательских потоков
 (+) Операции над потоками выполняются без
выполнения системных вызовов (в 10-100 раз быстрее,
чем при использовании потоков ядра)
 (+) Можно реализовать собственный алгоритм
планирования
 (-) Ядро ничего не знает о потоках пользовательского
уровня и распределяет время ЦП независимо от их
количества в процессе
 (-) Если будет выполнен блокирующий системный вызов
(например, вызвана синхронная операция ввода-
вывода), в состояние ожидания переводится поток ядра,
использовавшийся для обеспечения выполнения
нескольких (или всех) пользовательских потоков.
Соответственно, выполнение всех этих пользовательских
потоков будет заблокировано.
Операции над процессами и потоками
Создание процесса
 Создать дескриптор процесса и поместить его в таблицу
процессов
 Проинициализировать значения полей общего назначения
дескриптора процесса
 Создать виртуальное адресное пространство (ВАП)
процесса и сформировать его структуру
 Заполнить необходимыми данными ВАП процесса
(разместить в нем код, данные и т.д.)
 Выделить процессу ресурсы, которые он может
использовать сразу после создания
 Оповестить подсистемы, принимающие участие в
управлении процессами, о создании нового процесса
 Создать первичный поток процесса
Создание процесса
ЯдроТаблица
дескрипторов
процессов
Таблица
дескрипторов
потоков
Регион кода
Регион данных
Куча
Создание
первичного потока
1. Создание дескриптора процесса
2. Создание ВАП процесса
3. Формирование структуры ВАП
процесса и его заполнение
4. Выделение ресурсов по умолчанию
Создание потока
 Создать дескриптор потока и поместить его в таблицу
потоков
 Проинициализировать значения полей общего назначения
дескриптора потока
 Создать области данных, необходимые для
функционирования потока в данной аппаратной
архитектуре
 Инициализировать поле дескриптора «аппаратный
контекст выполнения потока»
 Оповестить подсистемы, принимающие участие в
управлении потоками, о создании нового потока
 Перевести поток в состояние «готов к выполнению»
Создание потока
Ядро
Регион кода
Регион данных
Куча
Стек
SP
IP
значения
регистров
состояние =
"готов к
выполнению"
1. Создание
дескриптора
потока
2. Создание стека
3. Инициализация
аппаратного
контекста
4. Установка
состояния потока
Таблица
дескрипторов
процессов
Таблица
дескрипторов
потоков
Завершение потока
 Сохранить статистические данные потока и код возврата в
его дескрипторе
 Перевести все ресурсы, принадлежащие потоку, в
непротиворечивое и стабильное состояние
 Освободить все ресурсы, принадлежавшие потоку или
использовавшиеся потоком
 Оповестить подсистемы, принимающие участие в
управлении потоками, о завершении потока
 Установить состояние потока в значение «завершен»
 Если данный поток является последним активным потоком
в процессе – завершить процесс
После выполнения всех действий остается дескриптор
потока, содержащий его код возврата и статистические
данные; момент уничтожения дескриптора зависит от
реализации
Завершение процесса
 Завершить выполнение всех потоков процесса
 Сохранить статистические данные процесса и код возврата
в его дескрипторе
 Перевести все ресурсы, принадлежащие процессу, в
непротиворечивое и стабильное состояние
 Освободить все ресурсы, принадлежавшие процессу или
использовавшиеся процессом
 Освободить ВАП и уничтожить его
 Оповестить подсистемы, принимающие участие в
управлении процессами, о завершении процесса
 Установить состояние процесса в значение «завершен»
После выполнения всех действий остается дескриптор
процесса, содержащий его код возврата и статистические
данные; момент уничтожения дескриптора зависит от
реализации
Итого по процессам/потокам
 Процессы и потоки – объекты, представляющие
программы во время их выполнения
 Процесс – пассивный объект, владелец ресурсов
 Поток – активный объект
 С точки зрения ОС, процессы и потоки –
специфичные типы ресурсов, требующие
специального управления
Планирование ЦП
 Потокам для выполнения нужен центральный
процессор (ЦП)
 Если потоков больше, чем процессоров, ОС должна
обеспечить возможность поочередного
использования процессоров потоками
Что такое "планирование"?
 Планирование – распределение времени центрального
процессора
Процесс
Поток
Процесс
Поток
Поток
Поток
Поток
Процесс
Поток
Поток
Центральный
процессор
Поток
Что такое "планирование"?
 Планирование – распределение времени центрального
процессора
 Планирование бывает
 долгосрочное – принятие решений о запуске и
откладывании запуска заданий
 среднесрочное – принятие решений о временном
вытеснении процессов на диск
 краткосрочное (диспетчеризация) – выбор потока,
которому следует предоставить ЦП
 При реализации планирования используется механизм
переключения контекстов процессов и потоков
Критерии оценки алгоритмов
планирования…
 Общие критерии
 Справедливость – всем выделяется равное
количество времени ЦП
 Баланс – обеспечение загрузки всех устройств
системы
 Накладные расходы – процент ресурсов,
потребляемых планировщиком
 Масштабируемость – увеличение потребления
ресурсов планировщиком при увеличении числа
объектов планирования
Критерии оценки алгоритмов
планирования…
 Справедливость – всем выделяется равное количество
времени ЦП
 Как измерить справедливость?
 Одинаковое время потребления ЦП? Одинаковое
количество выполненных команд?
 Честно на уровне потоков? процессов? пользователей?
 Что если один процесс ограничен возможностями ЦП, а
другой – возможностями ввода-вывода?
 Иногда нужно быть несправедливым и явно оказывать
предпочтение некоторым определенным классам
потоков/запросов/событий (иметь систему
приоритетов), но…
 следует избегать голодания (starvation) – ситуации,
когда некоторым потокам процессор может не
выделяться в течении неограниченного времени
Критерии оценки алгоритмов
планирования…
 Системы пакетной обработки данных
 Пропускная способность – среднее число заданий,
полностью выполняемых в единицу времени (час,
сутки,…)
 Оборотное время – среднее время между запуском
задания и завершением его обработки
 Эффективность – средний процент загрузки
центрального процессора
Критерии оценки алгоритмов
планирования…
 Интерактивные системы
 Время отклика – среднее время между
возникновением события и завершением его
обработки
 Время ожидания – среднее время между переходом
потока из состояния "ожидание" в состояние "готов к
выполнению" и предоставлением ему ЦП
 Соразмерность – соответствие производительности
ожиданиям пользователя
Критерии оценки алгоритмов
планирования
 Операционные системы реального времени
 (Окончание обслуживания к сроку)
 Предсказуемость – соблюдение временных
ограничений при выполнении некоторого заранее
оговоренного множества системных вызовов
Моменты планирования
 Создание нового процесса
 Создание нового потока
 Завершение потока или процесса
 Блокирование потока (переход из состояния
"выполнение" в состояние "ожидание")
 Разблокирование потока (переход из состояния
"ожидание" в состояние "готов к выполнению")
 Срабатывание таймера
Невытесняющие алгоритмы
планирования…
 Выбирают поток, передают ему центральный
процессор и позволяют работать вплоть до
блокировки либо до того момента, когда поток сам
отдаст центральный процессор
Вытесняющие алгоритмы планирования…
 Выбирают поток и позволяют ему работать некоторое
максимально возможное фиксированное время. Если к
концу заданного интервала времени поток все еще
работает, он приостанавливается, и управление переходит
к другому потоку (если существует поток, готовый к
исполнению).
 Вытесняющее планирование требует прерываний по
таймеру, происходящих в конце отведенного периода
времени. При отсутствии таймера возможна реализация
только невытесняющих алгоритмов.
Приоритетное планирование
 Необходим дифференцированный подход к потокам
 В системе могут одновременно существовать служебные
процессы и процессы, запущенные пользователями
 Пользователи могут различаться по статусу
Приоритетное планирование
очереди
приоритетов
самый высокий
приоритет
самый низкий
приоритет
Приоритет 4
Приоритет 3
Приоритет 2
Приоритет 1
Приоритетное планирование
 При использовании приоритетного планирования,
если в системе всегда готов к выполнению хотя бы
один из высокоприоритетных потоков, то потоки с
низкими приоритетами никогда не будут выполнены.
Поэтому, как правило, используются некоторые
модификации этого алгоритма.
Приоритетное планирование…
 В модификациях часто разделяют базовый
приоритет потока и эффективный приоритет
потока
 Базовый приоритет назначается потоку посредством
некоторого системного вызова, например,
инициированного выполнением команды
пользователя
 Эффективный приоритет используется
планировщиком при выборе потоков на исполнение и
может им изменяться в соответствии с
реализованным алгоритмом планирования
Приоритетное планирование
 Для предотвращения бесконечной работы
высокоприоритетных потоков планировщик может
уменьшать с каждым тактом таймера эффективный
приоритет выполняющегося потока
 Для предоставления низкоприоритетным потокам
центрального процессора планировщик может проверять
время, в течение которого поток находился в состоянии
готовности к исполнению
 Возможно адаптивное и динамическое изменение
приоритетов
 адаптивное изменение – коррекция эффективных
приоритетов на основании набора правил
 динамическое изменение – регулярный пересчет
эффективных приоритетов на основании значений
некоторой совокупности параметров
Итоги
 Существует несколько уровней планирования
 Существуют различные алгоритмы планирования
 Определены критерии оценки алгоритмов
планирования (зачастую противоположные)
 В реальных системах реализуются гибридные
алгоритмы, использующие, к тому же, адаптивные
или динамические приоритеты
Спасибо за внимание!
Вопросы?

More Related Content

What's hot

презентация лекции №22
презентация лекции №22презентация лекции №22
презентация лекции №22student_kai
 
Процессы и потоки
Процессы и потокиПроцессы и потоки
Процессы и потокиEvgeniy Mironov
 
Процессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиПроцессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиEvgeniy Mironov
 
Cистемное программное обеспечение
Cистемное программное обеспечениеCистемное программное обеспечение
Cистемное программное обеспечениеNick535
 
23
2323
23JIuc
 
Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Пупена Александр
 
Внутренняя память компьютера
Внутренняя память компьютераВнутренняя память компьютера
Внутренняя память компьютераNick535
 
Знакомство с понятием «Операционная система Windows»
 Знакомство с понятием «Операционная система Windows» Знакомство с понятием «Операционная система Windows»
Знакомство с понятием «Операционная система Windows»aizhanzhik
 
Обзор операционных систем Microsoft Windows.
Обзор операционных систем Microsoft Windows.Обзор операционных систем Microsoft Windows.
Обзор операционных систем Microsoft Windows.aizhanzhik
 
Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Sergey Staroletov
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиkurbanovafaina
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
040
040040
040JIuc
 
Понятие ОС
Понятие ОСПонятие ОС
Понятие ОСIvaNTour
 

What's hot (20)

презентация лекции №22
презентация лекции №22презентация лекции №22
презентация лекции №22
 
Процессы и потоки
Процессы и потокиПроцессы и потоки
Процессы и потоки
 
1
11
1
 
Процессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировкиПроцессы и потоки. Планирование и взаимоблокировки
Процессы и потоки. Планирование и взаимоблокировки
 
Cистемное программное обеспечение
Cистемное программное обеспечениеCистемное программное обеспечение
Cистемное программное обеспечение
 
2
22
2
 
23
2323
23
 
Информатика (архитектура)
Информатика (архитектура)Информатика (архитектура)
Информатика (архитектура)
 
Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0» Про курс «Технологии Индустрии 4.0»
Про курс «Технологии Индустрии 4.0»
 
Внутренняя память компьютера
Внутренняя память компьютераВнутренняя память компьютера
Внутренняя память компьютера
 
Презентация 6
Презентация 6Презентация 6
Презентация 6
 
Знакомство с понятием «Операционная система Windows»
 Знакомство с понятием «Операционная система Windows» Знакомство с понятием «Операционная система Windows»
Знакомство с понятием «Операционная система Windows»
 
Информатика (устройство ПК)
Информатика (устройство ПК)Информатика (устройство ПК)
Информатика (устройство ПК)
 
Обзор операционных систем Microsoft Windows.
Обзор операционных систем Microsoft Windows.Обзор операционных систем Microsoft Windows.
Обзор операционных систем Microsoft Windows.
 
Информатика (СУБД)
Информатика (СУБД)Информатика (СУБД)
Информатика (СУБД)
 
Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)Distributed Systems Presentation for Business informatics students (Staroletov)
Distributed Systems Presentation for Business informatics students (Staroletov)
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессами
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
040
040040
040
 
Понятие ОС
Понятие ОСПонятие ОС
Понятие ОС
 

Similar to лекция 2

Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системkurbanovafaina
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Dmitry Tsitelov
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техникаYerlanAbilmazhenov
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времениNick535
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев кировqasib
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияSQALab
 
Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Aleksey Bragin
 
Операционные системы
Операционные системыОперационные системы
Операционные системыyaevents
 
Lecture1: Introduction to Parallel Computing
Lecture1: Introduction to  Parallel ComputingLecture1: Introduction to  Parallel Computing
Lecture1: Introduction to Parallel ComputingAndrii Rodionov
 
обеспечивающие программы
обеспечивающие программыобеспечивающие программы
обеспечивающие программыDulat Zhansugurov
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
кластеры и суперкомпьютеры
кластеры и суперкомпьютерыкластеры и суперкомпьютеры
кластеры и суперкомпьютерыnastena07051995
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...ITMO University
 

Similar to лекция 2 (20)

Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных систем
 
Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)Multiprocessor Programming Intro (lecture 1)
Multiprocessor Programming Intro (lecture 1)
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техника
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времени
 
Theme 07
Theme 07Theme 07
Theme 07
 
лекция 1
лекция 1лекция 1
лекция 1
 
Prezentatsia Elina
Prezentatsia ElinaPrezentatsia Elina
Prezentatsia Elina
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
лекц16
лекц16лекц16
лекц16
 
Ustroystvo kompyutera
Ustroystvo kompyuteraUstroystvo kompyutera
Ustroystvo kompyutera
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2Операционные системы 2015, лекция № 2
Операционные системы 2015, лекция № 2
 
Операционные системы
Операционные системыОперационные системы
Операционные системы
 
Lecture1: Introduction to Parallel Computing
Lecture1: Introduction to  Parallel ComputingLecture1: Introduction to  Parallel Computing
Lecture1: Introduction to Parallel Computing
 
обеспечивающие программы
обеспечивающие программыобеспечивающие программы
обеспечивающие программы
 
лекция 5 (2часа)
лекция 5 (2часа)лекция 5 (2часа)
лекция 5 (2часа)
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
кластеры и суперкомпьютеры
кластеры и суперкомпьютерыкластеры и суперкомпьютеры
кластеры и суперкомпьютеры
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
 

лекция 2

  • 2. Тема 1. Системное программное обеспечение
  • 3. План лекции:  Понятие ресурса. Классификация  Многозадачность. Классификация многозадачных ОС  Процессы  Потоки  Операции над процессами/потоками  Алгоритмы планирования
  • 4. Понятие ресурса  Организация рационального использования ресурсов компьютера – одна из важнейших функций ОС.  Общее определение: всякий потребляемый объект (независимо от формы его существования), обладающий некоторой практической ценностью для потребителя, является ресурсом.  Ресурс – это средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
  • 6. Многозадачность ОС  Многозадачность (мультипрограммирование) – способ организации вычислительного процесса, при котором на одном (или нескольких) процессоре (-ах) выполняется несколько задач. Данные задачи совместно используют не только ресурсы процессора, но также оперативную и внешнюю память, устройства ввода-вывода и т.д.  Организация вычислительного процесса характеризуется несколькими критериями эффективности:  Пропускная способность – количество выполняемых задач в единицу времени;  Удобство работы пользователя  Реактивность системы – способность системы выдерживать промежутки времени между запуском программы и получением результата.
  • 7. Классификация многозадачных ОС  Операционные системы по типу организации многозадачности делятся на:  Системы пакетной обработки  Системы разделения времени  Системы реального времени.
  • 8. Системы пакетной обработки  Для повышения пропускной способности вычислительной системы и минимизации простоев центрального процессора, вызванных ожиданием приложением ввода данных или другими причинами, используется организация вычислительного процесса в виде очереди (пакета) исполняемых приложений.  Схема работы системы имеет следующий вид:  В начале работы формируется пакет заданий, причем каждое задание содержит требования к системным ресурсам.  Из пакета формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач (как правило, выбираются наборы задач, предъявляющие разные требования к ресурсам).  Область применения систем пакетной обработки – системы с интенсивными вычислениями (например, научные и технические расчеты).
  • 10. Системы пакетной обработки  Переключение процессора с выполнения одной задачи на выполнение другой происходит только в случае, если активная задача сама отказывается от процессора, например, из-за необходимости выполнить операцию ввода-вывода. Поэтому в системах пакетной обработки невозможно гарантировать выполнение интерактивных задач. Сделанная из тонкого картона, перфокарта представляет информацию  наличием или отсутствием отверстий  в определённых позициях карты.
  • 11. Системы разделения времени  В данных системах пользователю (или пользователям) предоставляется возможность интерактивной работы сразу с несколькими приложениями.  Для решения данной задачи ОС должна принудительно приостанавливать работу приложений и переключать работу процессора на обработку другого приложения.  Всем приложениям попеременно выделяется некоторый квант процессорного времени. Пользователь получает возможность поддерживать диалог с запущенным приложением.
  • 12. Системы разделения времени  Достоинство данных систем – удобство работы пользователя. Каждый пользователь получает терминал для управления работой приложений.  Недостаток – меньшая пропускная способность операционных систем
  • 13. Системы реального времени Системы реального времени применяются для управления различными техническими объектами, такими, (станок, научная экспериментальная установка) или технологическими процессами (гальваническая линия, доменный процесс). Во всех этих случаях существует предельно допустимое время, в течение которого должна быть выполнена та или иная программа, управляющая объектом, в противном случае может произойти авария. Таким образом, критерием эффективности для систем реального времени временя реакции системы на события от объекта управления, это свойство системы называется реактивностью.
  • 14.
  • 16. Ответ  системы пакетной обработки (например, ОС ЕС),  системы разделения времени (UNIX, Windows),  системы реального времени (QNX, RT/U).
  • 17. Объект исполнения ОС  Программисты создают программы  Пользователи запускают программы на исполнение  Что представляет собой объект исполнения в ОС?
  • 18. Объект исполнения  Это прикладная программа в состоянии выполнения, включает:  Адресное пространство, выделенное для выполнения программы  Код выполняющейся программы  Данные выполняющейся программы  Стек и указатель на его вершину (stack pointer, SP)  Выделенные ресурсы ОС (открытые файлы, установленные сетевые соединения и т.д.)  Программный счетчик (instruction pointer, IP), указывающий на следующую выполняемую инструкцию  Текущие значения регистров общего назначения  Объект исполнения представлен двумя понятиями: процесс и поток
  • 19. Процесс  Процесс - абстракция, представляющая программу во время ее выполнения  Процессу ОС выделяет ресурсы, необходимые для выполнения программы, например:  адресное пространство процесса содержит его программный код, данные и стек (или стеки)  файлы используются процессом для чтения входных данных и записи выходных  устройства ввода-вывода используются в соответствии с их назначением  Процесс – пассивный объект – владелец ресурсов, контейнер для выполнения потоков
  • 20. Поток /Нить (Thread)  Поток - абстракция, представляющая последовательное выполнение команд программы, развертывающееся во времени  Процесс может иметь несколько потоков  потоки совместно используют  глобальные и статические переменные (располагаются в регионе данных)  динамически распределяемую память (кучу)  системные ресурсы, выделенные процессу  каждый поток имеет свои собственные  программный счетчик (IP)  значения регистров  локальные переменные (т.е. свой собственный стек)  Процесс - совокупность взаимодействующих потоков и выделенных ему ресурсов
  • 21. Процесс с одним потоком виртуальное адресное пространство (ВАП) процесса Регион кода Регион данных Стек Куча пространство адресов MIN MAX IP SP
  • 22. Процесс с несколькими потоками виртуальное адресное пространство (ВАП) процесса Регион кода Регион данных Стек потока 1 Куча пространство адресов MIN MAX IP потока 1 SP потока 1 Стек потока 2 Стек потока 3 SP потока 2 SP потока 3 IP потока 2 IP потока 3
  • 23. Зачем нужны процессы с несколькими потоками?
  • 24. Зачем нужны процессы с несколькими потоками?  Для параллельной обработки нескольких однотипных запросов (сетевые сервисы)  Для разделения исполнительных активностей, параллельно решающих различных задач  обеспечение пользовательского интерфейса  математические вычисления  фоновая печать  …  Для создания параллельных программ, эффективно использующих аппаратные ресурсы (например, несколько аппаратно имеющихся ЦП)  Для улучшения структуры программы
  • 25. Многопоточная программа vs. Взаимодействующие процессы  При использовании потоков  экономятся ресурсы (все потоки одного процесса пользуются одним набором ресурсов)  экономится время (операции создания/уничтожения потока намного менее затратные, чем операции создания/уничтожения процесса)  взаимодействие между потоками одного процесса более удобно и эффективно по причине использования общей памяти
  • 26. Состояния потока в многозадачной ОС… Готов к выполнению Ожидание Создание Завершение 1 2 3 4 Выполнение 5 6
  • 27. Состояния потока в многозадачной ОС…  Выполнение – состояние работающего потока – обладающего всеми необходимыми ресурсами, в том числе возможностью использования ЦП  Готов к выполнению – поток обладает всеми необходимыми для выполнения ресурсами за исключением ресурса "время ЦП"  Ожидание (сон, блокировка) – выполнение потока заблокировано до наступления некоторого внешнего события (например, поступления входных данных или освобождения ресурса)
  • 28. Состояния потока в многозадачной ОС  (2,3) - осуществляются ядром операционной системы (планировщиком)  (4) - продолжение работы невозможно  для продолжения работы требуется наступление какого- либо события  поток затребовал недоступный в данный момент ресурс  поток переводится в состояние ожидания ядром операционной системы во время обработки системного вызова  поток заблокирован внешним по отношению к нему вызовом  (5) - производится ядром ОС в момент выполнения условия ожидания О 2 С ГВ 3 З 1 4В 6 5
  • 29. Управление процессами/потоками  Структуры, описывающие процессы и потоки в ядре ОС  Операции над процессами и потоками  Распределение ресурсов между процессами/потоками  время центрального процессора (выделяется потокам)  оперативная память (выделяется процессам)  другие ресурсы (как правило, выделяются процессам)
  • 30. Контекст процесса  Контекст – множество информации, полностью описывающее состояние объекта (в частности, достаточное для восстановления объекта в случае его удаления)  Контекст процесса включает  Множество информации, используемое операционной системой для управления ресурсом типа «процесс»  Адресное пространство процесса  Структуру и содержимое пользовательской части адресного пространства процесса  Множество ресурсов, используемых процессом или принадлежащих процессу, и их состояния
  • 31. Контекст потока  Контекст потока включает  Множество информации, используемое операционной системой для управления ресурсом типа «поток»  Множество ресурсов, используемых потоком или принадлежащих потоку и их состояния  Аппаратный контекст исполнения потока
  • 32. Аппаратный контекст потока  Состояние процессора с точки зрения предоставляемых потоку прав его использования в конкретной ОС (обычно представляется множеством доступным потоку регистров процессора и их текущими значениями)  Состояние других устройств в случае, если управление ими осуществляется непосредственно на уровне команд программы, а не через интерфейс доступа к устройствам через выполнение системных вызовов ОС
  • 33. Переключение контекста  Переключение контекста происходит при переходе к исполнению другого потока (возможно, другого процесса)  При переключении контекста необходимо  сохранить контекст вытесняемого потока  если поток, выбранный на исполнение, принадлежит другому процессу – сохранить контекст процесса – владельца вытесняемого потока – загрузить контекст процесса – владельца потока, выбранного на исполнение  загрузить контекст потока, выбранного на исполнение  Для описания процессов и потоков (в том числе для хранения их контекстов) в ядре ОС вводятся специальные структуры – дескрипторы процесса и потока
  • 34. Дескриптор процесса  Идентификатор процесса  Групповые параметры процесса  Параметры, используемые в процессе определения приоритета процесса при конкуренции за какой-либо ресурс  Состояние процесса  Статистические данные  Описание адресного пространства процесса  Контекст ввода-вывода  Контекст безопасности  Текущие системные параметры выполнения  Код завершения процесса В Linux дескриптор процесса – структура task_struct (include/linux/sched.h), содержит около 100 полей!
  • 35. Дескриптор потока  Идентификатор потока  Идентификатор процесса – владельца потока  Параметры, используемые в процессе определения приоритета потока при конкуренции за какой-либо ресурс  Статистические данные потока  Аппаратный контекст выполнения потока (программный счетчик, стек и указатель на его вершину, значения регистров)  Код завершения потока
  • 37. Кто управляет процессами и потоками?  За управление процессами всегда отвечает ядро ОС  Ядро всегда предоставляет каждому процессу один поток, но не всегда поддерживает многопоточность  потоки, непосредственно управляемые ядром ОС, называются потоками ядра  Можно реализовать многопоточность в библиотеке пользовательского уровня!
  • 38. Потоки ядра vs. пользовательские потоки  При использовании пользовательских потоков  (+) Операции над потоками выполняются без выполнения системных вызовов (в 10-100 раз быстрее, чем при использовании потоков ядра)  (+) Можно реализовать собственный алгоритм планирования  (-) Ядро ничего не знает о потоках пользовательского уровня и распределяет время ЦП независимо от их количества в процессе  (-) Если будет выполнен блокирующий системный вызов (например, вызвана синхронная операция ввода- вывода), в состояние ожидания переводится поток ядра, использовавшийся для обеспечения выполнения нескольких (или всех) пользовательских потоков. Соответственно, выполнение всех этих пользовательских потоков будет заблокировано.
  • 39. Потоки ядра vs. пользовательские потоки  При использовании пользовательских потоков  (+) Операции над потоками выполняются без выполнения системных вызовов (в 10-100 раз быстрее, чем при использовании потоков ядра)  (+) Можно реализовать собственный алгоритм планирования  (-) Ядро ничего не знает о потоках пользовательского уровня и распределяет время ЦП независимо от их количества в процессе  (-) Если будет выполнен блокирующий системный вызов (например, вызвана синхронная операция ввода- вывода), в состояние ожидания переводится поток ядра, использовавшийся для обеспечения выполнения нескольких (или всех) пользовательских потоков. Соответственно, выполнение всех этих пользовательских потоков будет заблокировано.
  • 41. Создание процесса  Создать дескриптор процесса и поместить его в таблицу процессов  Проинициализировать значения полей общего назначения дескриптора процесса  Создать виртуальное адресное пространство (ВАП) процесса и сформировать его структуру  Заполнить необходимыми данными ВАП процесса (разместить в нем код, данные и т.д.)  Выделить процессу ресурсы, которые он может использовать сразу после создания  Оповестить подсистемы, принимающие участие в управлении процессами, о создании нового процесса  Создать первичный поток процесса
  • 42. Создание процесса ЯдроТаблица дескрипторов процессов Таблица дескрипторов потоков Регион кода Регион данных Куча Создание первичного потока 1. Создание дескриптора процесса 2. Создание ВАП процесса 3. Формирование структуры ВАП процесса и его заполнение 4. Выделение ресурсов по умолчанию
  • 43. Создание потока  Создать дескриптор потока и поместить его в таблицу потоков  Проинициализировать значения полей общего назначения дескриптора потока  Создать области данных, необходимые для функционирования потока в данной аппаратной архитектуре  Инициализировать поле дескриптора «аппаратный контекст выполнения потока»  Оповестить подсистемы, принимающие участие в управлении потоками, о создании нового потока  Перевести поток в состояние «готов к выполнению»
  • 44. Создание потока Ядро Регион кода Регион данных Куча Стек SP IP значения регистров состояние = "готов к выполнению" 1. Создание дескриптора потока 2. Создание стека 3. Инициализация аппаратного контекста 4. Установка состояния потока Таблица дескрипторов процессов Таблица дескрипторов потоков
  • 45. Завершение потока  Сохранить статистические данные потока и код возврата в его дескрипторе  Перевести все ресурсы, принадлежащие потоку, в непротиворечивое и стабильное состояние  Освободить все ресурсы, принадлежавшие потоку или использовавшиеся потоком  Оповестить подсистемы, принимающие участие в управлении потоками, о завершении потока  Установить состояние потока в значение «завершен»  Если данный поток является последним активным потоком в процессе – завершить процесс После выполнения всех действий остается дескриптор потока, содержащий его код возврата и статистические данные; момент уничтожения дескриптора зависит от реализации
  • 46. Завершение процесса  Завершить выполнение всех потоков процесса  Сохранить статистические данные процесса и код возврата в его дескрипторе  Перевести все ресурсы, принадлежащие процессу, в непротиворечивое и стабильное состояние  Освободить все ресурсы, принадлежавшие процессу или использовавшиеся процессом  Освободить ВАП и уничтожить его  Оповестить подсистемы, принимающие участие в управлении процессами, о завершении процесса  Установить состояние процесса в значение «завершен» После выполнения всех действий остается дескриптор процесса, содержащий его код возврата и статистические данные; момент уничтожения дескриптора зависит от реализации
  • 47. Итого по процессам/потокам  Процессы и потоки – объекты, представляющие программы во время их выполнения  Процесс – пассивный объект, владелец ресурсов  Поток – активный объект  С точки зрения ОС, процессы и потоки – специфичные типы ресурсов, требующие специального управления
  • 48. Планирование ЦП  Потокам для выполнения нужен центральный процессор (ЦП)  Если потоков больше, чем процессоров, ОС должна обеспечить возможность поочередного использования процессоров потоками
  • 49. Что такое "планирование"?  Планирование – распределение времени центрального процессора Процесс Поток Процесс Поток Поток Поток Поток Процесс Поток Поток Центральный процессор Поток
  • 50. Что такое "планирование"?  Планирование – распределение времени центрального процессора  Планирование бывает  долгосрочное – принятие решений о запуске и откладывании запуска заданий  среднесрочное – принятие решений о временном вытеснении процессов на диск  краткосрочное (диспетчеризация) – выбор потока, которому следует предоставить ЦП  При реализации планирования используется механизм переключения контекстов процессов и потоков
  • 51. Критерии оценки алгоритмов планирования…  Общие критерии  Справедливость – всем выделяется равное количество времени ЦП  Баланс – обеспечение загрузки всех устройств системы  Накладные расходы – процент ресурсов, потребляемых планировщиком  Масштабируемость – увеличение потребления ресурсов планировщиком при увеличении числа объектов планирования
  • 52. Критерии оценки алгоритмов планирования…  Справедливость – всем выделяется равное количество времени ЦП  Как измерить справедливость?  Одинаковое время потребления ЦП? Одинаковое количество выполненных команд?  Честно на уровне потоков? процессов? пользователей?  Что если один процесс ограничен возможностями ЦП, а другой – возможностями ввода-вывода?  Иногда нужно быть несправедливым и явно оказывать предпочтение некоторым определенным классам потоков/запросов/событий (иметь систему приоритетов), но…  следует избегать голодания (starvation) – ситуации, когда некоторым потокам процессор может не выделяться в течении неограниченного времени
  • 53. Критерии оценки алгоритмов планирования…  Системы пакетной обработки данных  Пропускная способность – среднее число заданий, полностью выполняемых в единицу времени (час, сутки,…)  Оборотное время – среднее время между запуском задания и завершением его обработки  Эффективность – средний процент загрузки центрального процессора
  • 54. Критерии оценки алгоритмов планирования…  Интерактивные системы  Время отклика – среднее время между возникновением события и завершением его обработки  Время ожидания – среднее время между переходом потока из состояния "ожидание" в состояние "готов к выполнению" и предоставлением ему ЦП  Соразмерность – соответствие производительности ожиданиям пользователя
  • 55. Критерии оценки алгоритмов планирования  Операционные системы реального времени  (Окончание обслуживания к сроку)  Предсказуемость – соблюдение временных ограничений при выполнении некоторого заранее оговоренного множества системных вызовов
  • 56. Моменты планирования  Создание нового процесса  Создание нового потока  Завершение потока или процесса  Блокирование потока (переход из состояния "выполнение" в состояние "ожидание")  Разблокирование потока (переход из состояния "ожидание" в состояние "готов к выполнению")  Срабатывание таймера
  • 57. Невытесняющие алгоритмы планирования…  Выбирают поток, передают ему центральный процессор и позволяют работать вплоть до блокировки либо до того момента, когда поток сам отдаст центральный процессор
  • 58. Вытесняющие алгоритмы планирования…  Выбирают поток и позволяют ему работать некоторое максимально возможное фиксированное время. Если к концу заданного интервала времени поток все еще работает, он приостанавливается, и управление переходит к другому потоку (если существует поток, готовый к исполнению).  Вытесняющее планирование требует прерываний по таймеру, происходящих в конце отведенного периода времени. При отсутствии таймера возможна реализация только невытесняющих алгоритмов.
  • 59. Приоритетное планирование  Необходим дифференцированный подход к потокам  В системе могут одновременно существовать служебные процессы и процессы, запущенные пользователями  Пользователи могут различаться по статусу
  • 60. Приоритетное планирование очереди приоритетов самый высокий приоритет самый низкий приоритет Приоритет 4 Приоритет 3 Приоритет 2 Приоритет 1
  • 61. Приоритетное планирование  При использовании приоритетного планирования, если в системе всегда готов к выполнению хотя бы один из высокоприоритетных потоков, то потоки с низкими приоритетами никогда не будут выполнены. Поэтому, как правило, используются некоторые модификации этого алгоритма.
  • 62. Приоритетное планирование…  В модификациях часто разделяют базовый приоритет потока и эффективный приоритет потока  Базовый приоритет назначается потоку посредством некоторого системного вызова, например, инициированного выполнением команды пользователя  Эффективный приоритет используется планировщиком при выборе потоков на исполнение и может им изменяться в соответствии с реализованным алгоритмом планирования
  • 63. Приоритетное планирование  Для предотвращения бесконечной работы высокоприоритетных потоков планировщик может уменьшать с каждым тактом таймера эффективный приоритет выполняющегося потока  Для предоставления низкоприоритетным потокам центрального процессора планировщик может проверять время, в течение которого поток находился в состоянии готовности к исполнению  Возможно адаптивное и динамическое изменение приоритетов  адаптивное изменение – коррекция эффективных приоритетов на основании набора правил  динамическое изменение – регулярный пересчет эффективных приоритетов на основании значений некоторой совокупности параметров
  • 64. Итоги  Существует несколько уровней планирования  Существуют различные алгоритмы планирования  Определены критерии оценки алгоритмов планирования (зачастую противоположные)  В реальных системах реализуются гибридные алгоритмы, использующие, к тому же, адаптивные или динамические приоритеты