- •Тема 1. Понятие операционной системы (ос) Лекция №1. История развития операционных систем Операционные системы в архитектуре вычислительных систем
- •Эволюция операционных систем
- •Лекция №2. Назначение, функции и структура операционных систем
- •Структурная организация ос
- •Классификация операционных систем
- •Тема 2. Управление задачами в ос Лекция №3. Понятие вычислительного процесса и ресурса
- •Диаграмма состояний процесса
- •Блок управления процессом и контекст процесса
- •Лекция №4. Операции над процессами Одноразовые операции
- •Многоразовые операции
- •Переключение контекста
- •Процессы и потоки
- •Лекция №5. Планирование процессов и диспетчеризация задач Понятие и стратегии планирования
- •Вытесняющая и не вытесняющая диспетчеризация
- •Дисциплины диспетчеризации
- •Качество диспетчеризации и гарантии обслуживания
- •Лекция №6. Взаимодействие процессов
- •Организация обмена информацией между процессами
- •Лекция №7. Синхронизация процессов и потоков Необходимость взаимной синхронизации
- •Средства синхронизации процессов и потоков
- •Лекция №8. Проблема тупиков и борьба с ними
- •Тема 3. Управление памятью в ос Лекция №9. Физическая память и виртуальное адресное пространство
- •Модели распределения памяти
- •Лекция №10. Свопинг и виртуальная память
- •Сегментная организация виртуальной памяти
- •Страничная организация виртуальной памяти
- •Оптимизация функционирования страничной виртуальной памяти
- •Сегментно-страничная организация виртуальной памяти
- •Разделяемая память
- •Лекция №11. Уровни иерархии памяти и кэш-память
- •Схемы кэширования и согласования данных
- •Лекция №12. Распределение оперативной памяти в современных ос
- •Тема 4. Организация ввода/вывода в ос Лекция №13. Управление вводом/выводом в ос
- •Устройства ввода-вывода
- •Подсистема ввода-вывода
- •Согласование скоростей обмена и кэширования данных
- •Разделение устройств и данных между процессами
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Многослойная (иерархическая) модель подсистемы ввода-вывода
- •Назначение и функции драйверов
- •Лекция №14. Файловые системы операционных систем
- •Архитектура файловой системы
- •Организация файлов и доступ к ним
- •Логическая организация файла
- •Каталоговые системы
- •Физическая организация файловой системы
- •Физическая организация и адресация файла
- •Файловая система fat
- •Файловая система ntfs
- •Основные отличия fat и ntfs
- •Тема 5. Распределенные операционные системы Лекция №15. Модели сетевых служб и распределенных приложений
- •Способ разделения приложений на части
- •Лекция №16. Механизмы передачи сообщений в распределенных ос
- •Механизм сокетов
- •Вызов удаленных процедур
- •Тема 6. Безопасность в ос Лекция №17. Основные понятия безопасности
- •Классификация угроз
- •Системный подход к обеспечению безопасности
- •Политика безопасности
- •Лекция №18. Базовые технологии безопасности
- •Односторонние функции шифрования
- •Аутентификация, авторизация, аудит
- •Технология защищенного канала
- •Технологии аутентификации
Лекция №5. Планирование процессов и диспетчеризация задач Понятие и стратегии планирования
Итак, операционная система выполняет следующие основные функции, связанные с управлением задачами:
создание и удаление задач;
планирование процессов и диспетчеризация задач;
синхронизация задач, обеспечение их средствами коммуникации.
Система управления задачами обеспечивает прохождение их через компьютер. В зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс. Например, новый процесс необходимо разместить в основной памяти – следовательно, ему необходимо выделить часть адресного пространства. Новый порожденный поток текущего процесса необходимо включить в общий список задач, конкурирующих между собой за ресурсы центрального процессора.
Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между процессами появляются «родственные» отношения. Порождающая задача называется «предком», «родителем», а порожденная – «потомком», «сыном» или «дочерней задачей». «Предок» может приостановить или удалить свою дочернюю задачу, тогда как «потомок» не может управлять «предком».
Основным подходом к организации того или иного метода управления процессами, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очерёдей процессов и ресурсов.
Очевидно, что на распределение ресурсов влияют конкретные потребности тех задач, которые должны выполняться параллельно. Другими словами, можно столкнуться с ситуациями, когда невозможно эффективно распределять ресурсы с тем, чтобы они не простаивали. Например, всем выполняющимся процессам требуется некоторое устройство с последовательным доступом. Но поскольку, как мы уже знаем, оно не может распределяться между параллельно выполняющимися процессами, то процессы вынуждены будут очень долго ждать своей очерёди. Таким образом, недоступность одного ресурса может привести к тому, что длительное время не будут использоваться и многие другие ресурсы.
Если же мы возьмем набор таких процессов, которые не будут конкурировать между собой за неразделяемые ресурсы при параллельном выполнении, то, скорее всего, процессы смогут выполниться быстрее (из-за отсутствия дополнительных ожиданий), да и имеющиеся в системе ресурсы будут использоваться более эффективно. Итак, возникает задача подбора такого множества процессов, что при выполнении они будут как можно реже конфликтовать из-за имеющихся в системе ресурсов. Такая задача называется планированием вычислительных процессов.
Задача планирования процессов возникла очень давно – в первых пакетных ОС при планировании пакетов задач, которые должны были выполняться на компьютере и оптимально использовать его ресурсы. В настоящее время актуальность этой задачи не так велика. На первый план уже очень давно вышли задачи динамического (или краткосрочного) планирования, то есть текущего наиболее эффективного распределения ресурсов, возникающего практически при каждом событии. Задачи динамического планирования стали называть диспетчеризацией.
Очевидно, что планирование осуществляется гораздо реже, чем задача текущего распределения ресурсов между уже выполняющимися процессами и потоками. Основное отличие между долгосрочным и краткосрочным планировщиками заключается в частоте запуска: краткосрочный планировщик, например, может запускаться каждые 30 или 100 мс, долгосрочный – один раз за несколько минут (или чаще; тут многое зависит от общей длительности решения заданий пользователей).
Долгосрочный планировщик решает, какой из процессов, находящихся во входной очерёди, должен быть переведен в очередь готовых процессов в случае освобождения ресурсов памяти. Он выбирает процессы из входной очерёди с целью создания неоднородной мультипрограммной смеси. Это означает, что в очерёди готовых к выполнению процессов должны находиться – в разной пропорции – как процессы, ориентированные на ввод/вывод, так и процессы, ориентированные на преимущественную работу с центральным процессором.
Краткосрочный планировщик решает, какая из задач, находящихся в очерёди готовых к выполнению, должна быть передана на исполнение. В большинстве современных операционных систем, с которыми мы сталкиваемся, долгосрочный планировщик отсутствует.
Прежде всего, следует отметить, что при рассмотрении стратегий планирования, как правило, идёт речь о краткосрочном планировании, то есть о диспетчеризации. Долгосрочное планирование, как мы уже отметили, заключается в подборе таких вычислительных процессов, которые бы меньше всего конкурировали между собой за ресурсы вычислительной системы.
Стратегия планирования определяет, какие процессы мы планируем на выполнение для того, чтобы достичь поставленной цели. Известно большое количество различных стратегий выбора процесса, которому необходимо предоставить процессор. Среди них, прежде всего, можно назвать следующие стратегии:
по возможности заканчивать вычисления (вычислительные процессы) в том же самом порядке, в котором они были начаты;
отдавать предпочтение более коротким процессам;
предоставлять всем пользователям (процессам пользователей) одинаковые услуги, в том числе и одинаковое время ожидания.
Когда говорят о стратегии обслуживания, всегда имеют в виду понятие процесса, а не понятие задачи, поскольку процесс, может состоять из нескольких потоков (задач).
