- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •1.1. Управление процессами
- •1.2. Управление памятью
- •1.3. Управление файлами и внешними устройствами
- •Функциональные компоненты операционных систем: подсистема управления задачами
- •2.1. Защита данных и администрирование
- •2.2. Интерфейс прикладного программирования
- •2.3. Пользовательский интерфейс
- •Архитектура операционных систем: ядро и вспомогательные модули ос
- •Модулями ос
- •Архитектура операционных систем: ядро в привилегированном режиме
- •В привилегированном режиме
- •К привилегированному ядру
- •Архитектура операционных систем: многослойная структура ос
- •Типовые средства аппаратной поддержки операционных систем
- •Концепция, преимущества и недостатки микроядерной архитектуры
- •Пространство
- •Мультипрограммирование. Реализация в системах пакетной обработки
- •Ввода-вывода
- •В мультипрограммной системе (б)
- •Мультипроцессорная обработка: сущность и характеристика
- •Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
- •Планирование и диспетчеризация потоков в мультипрограммных системах
- •Состояния потока в мультипрограммных системах
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Синхронизация процессов и потоков: гонки и тупики
- •Синхронизация процессов и потоков: критическая секция, блокирующие
- •Синхронизация процессов и потоков: использование семафоров
- •Синхронизация процессов и потоков: синхронизирующие объекты ос
- •Функции операционных систем по управлению памятью
- •Управление памятью: виртуальное адресное пространство и виртуальная память
- •Алгоритмы распределения памяти: распределение памяти фиксированными разделами
- •Алгоритмы распределения памяти: распределение памяти динамическими разделами, перемещаемые разделы
- •Управление памятью: страничное распределение
- •Управление памятью: сегментное распределение
- •Управление памятью: сегментно-страничное распределение
- •Мультипрограммирование на основе прерываний: диспетчеризация и приоритезация прерываний в ос
- •Мультипрограммирование на основе прерываний: системные вызовы
- •Управление вводом-выводом в операционной системе: основные понятия и концепции организации ввода/вывода
- •Режимы управления вводом/выводом. Основные системные таблицы ввода/вывода
- •2.1. Режимы управления вводом/выводом
- •2.2. Основные системные таблицы ввода-вывода
- •Управление вводом-выводом в операционной системе: кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Управление файлами: общий принцип работы операционной системы с файлами
- •Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
- •2.1. Файловая система fat
- •2.2. Файловые системы vfat и fat32
- •3. Файловая система ntfs
- •3.1. Структура тома с файловой системой ntfs
- •3.2. Возможности файловой системы ntfs по ограничению
- •Сетевые и распределенные операционные системы
- •Функциональные компоненты сетевой операционной системы
- •Одноранговые и серверные сетевые операционные системы
- •Интерфейс прикладного программирования (api)
- •1.1. Принципы построения интерфейсов ос
- •1.2. Варианты реализации функций api
- •1). Реализация функций api на уровне ос
- •2). Реализация функций api на уровне системы программирования
- •3). Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Технологии программирования сом
Планирование и диспетчеризация потоков в мультипрограммных системах
Планирование и диспетчеризация потока
На протяжение существования процесса выполнение его поток может быть многократно прервано и продолжена. Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации.
Работа по определению того, какой момент необходимо прерывать выполнения текущего активного потока и какому потоку предоставить возможность выполняться называется планированием
Планирование потоков осуществляется на основе информации, хранящейся в описательных процессов и потоков. Чаще всего учитывается:
Приоритет потоков
Время их ожидания во очереди
Накопленное время выполнения
Интенсивность обращения к ввода-вывода
и другие факторы
ОС планирует выполнение потока независимо от того принадлежат они одному или нескольким процессам
Планирование поток включает в себя 2х задач:
Определение момента времени для смены активного текущего потока
Выбор для выполнения потока из очереди готовых поток
Существует множество различных алгоритмов
Алгоритмы различаются целями и качеством в мульпрограммировании.
Одни алгоритмы планируют так, что гарантируется определённое время выполнения каждого потока.
Другие алгоритмы максимально быстрых коротких зада
3. Обеспечивают преимущественное право потоком, интерактивных предложений
Особенности реалазции планирования потоком, а наибольшей степени определяется спицификой системы (пакетная обработка, все разделения времени/ реального времени)
В большинстве ОС универсального назначение планирование поток осуществляется на основе текущей ситуации
Динамические планировщики должны гибко приспосабливаться к изменяющейся ситуации, при т это не использовать никаких приложений о мультипрограммной сети
Другой тип планирования – статический – возможен в специализированных системах, а которых весь набор одновременно выполняемых задач определён заранее, например в системах реального времени
В этом случае, результатом работы статического планировщика является расписание (таблица), в котором указывается какому потоку, когда и на какое время должен быть предоставлен процессор
Диспетчеризация заключается в реализации найденного в результат планирования решения, т.е. переключение процессора с одного по другой.
Прежде чем прерывать выполнение потока ОС запоминает его контекст с тем, чтобы использовать эту информацию для последующего возобновления выполнения данного потока
Диспетчеризация сводится:
к сохранению контекста текущего потока, который требуется сменить
загрузка контекста нового потока, выбранного в результате планирования
запуск нового потока на выполнение
Состояния потока в мультипрограммных системах
Состояние потока
Рис. 1. Граф состояний потока в многозадачной среде
ОС, выполняя планирование потоков, принимает во внимание их состояние, основными из которых являются (рис. 1):
Состояние выполнения – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором
Ожидание – пассивное состояние потока, в котором поток заблокирован по своим внутренним причинам (пример: ожидает некоторого события – завершение операции ввода-вывода и т.п.)
Готовность – пассивное состояние потока, поток заблокирован по внешним обстоятельствам (т.е. имеет все ресурсы, готов выполняться, но не может выполняться, т.к. процессор занят другим потоком). В течении жизненного цикла каждый поток попеременно меняет своё состояние в соответствии с алгоритмом планирования.
Граф состояний потоков в многозадачной среде представлено на рис. 1.
В однопроцессорной мультипрограммной системе в состоянии выполнения может быть только один поток, а в состояния ожидания и готовности много потоков
Потоки, находящиеся в состоянии готовности и ожидании организуются в очереди потоков, организация очередей позволяет их легко переупорядочивать, включать, исключать потоки и переводить из одного состояния в другое
На рисунке 2 показана такая очередь
Рис. 2. Очередь потоков
