- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •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
- •Технологии программирования сом
Вытесняющие и невытесняющие алгоритмы планирования
Вытесняющие и невытесняющие алгоритмы планирования
Основными различиями между вытесняющими и невытесняющими алгоритмами планирования является степень централизации механизма планирования потоков
Невытесняющие алгоритмы – основаны на том, что активному потоку позволяется выполняться, пока сам по собственной инициативе не отдаст управление ОС. Для того, чтобы та выбрала из очереди другой готовый к выполнению поток.
Вытесняющий алгоритм – алгоритмы, в которых решение о переключение процессора с выполнения одного потока на другой принимается ОС, а не активной задачей.
При вытесняющем мультипрограммировании ОС выполняет следующие функции:
Определяет момент снятия с выполнения активного потока
Запоминает его контекст
Выбирает из очереди готовых потоков – следующий
Запускает новый поток на выполнение, загружая его контекст
При невытесняющем мультипрограммировании механизм планирования разделён между ОС и прикладными программами:
Прикладная программа получила управление от ОС, сама определяет момент завершения очередного цикла и передаёт управление ОС с помощью системного вызова
ОС формирует очереди потоков и выбирает в соответствии с некоторым правилом следующий поток на выполнение
В случае невытесняющего мультипрограммирования могут быть проблемы:
На некоторое время теряется управление системы
Высокие требования к разработчикам приложений
Приложения должны характеризоваться дружественностью
Невытесняющее мультипрограммирование обладает некоторым преимуществами:
Даёт возможность разработчику самому определить порядок выполнения приложений, а, следовательно, возрастает быстродействие приложений
Легче используются проблемы совместного использования данных
Более высокая скорость переключения с потока на поток
В большинстве универсальных вычислительных систем и ОС для них реализуются вытесняющие алгоритмы планирования
Алгоритмы планирования, основанные на квантовании
Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмах планирования лежит концепция квантования. В этом случае, каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени – квант.
Смена активного потока происходит, если:
Исчерпан квант процессорного времени
Поток завершился и покинул систему
Произошла ошибка
Поток перешёл в состояние ждать
Рис. 1 – граф состояний потока в системе с квантованием
Рис. 1. Граф состояний потока в системе с квантованием
Кванты, выделяемые потоком, могут быть одинаковыми и различными
Одинаковые кванты:
Оптимизация поясняется рисунком 2
Рис. 2. Иллюстрация расчета времени ожидания в очереди
В этом случае, суммарное время ожидания каждым потоком пропорционально длительности кванта и количеству потоков n. Причём если квант короткий, то эта зависимость более ярко выражена. Если квант длинный, то зависимость становится менее ярко выраженной.
В случае длинных квантов, короткие потоки буду завершаться в первых циклах выполнения, и очередь потоков будет уменьшаться.
В ОС могут применяться кванты, фиксированные величины, а могут изменяться в течении жизненного цикла
Например: Если первоначальный квант достаточно большой, а с течением времени его величина уменьшается – в этом случае преимущества будут получать короткие задачи. Если наоборот, сначала кванты короткие, а потом увеличиваются – то считается, что в этом случае можно уменьшить накладные расходы на переключение потоков.
Алгоритмы, основанные на квантовании, характеризуются некоторой справедливостью по отношению к потокам интенсивно обращающимся к системе ВВ (ввода-вывода), т.к. они часто не будут до конца исчерпывать время выделяемых им квантов. Эту несправедливость устраняют алгоритмы, основанные на 2х очередях – рис. 3
Рис. 3. Квантование с предпочтением потоков, интенсивно
обращающихся к вводу-выводу
В этом случае, при выборе потока на выполнение, прежде всего, просматривается вторая очередь.