- •1.Состав системного программного обеспечения.
- •1.1.Операционная система (ос) как посредник между уровнем пользователя и аппаратурой эвм.
- •1.2.Функции операционной системы
- •1.3.Классификация операционных систем
- •2.Структура операционной системы
- •2.1.Ядро и вспомогательные модули ос. Ядро в привилегированном режиме
- •2.2.Многослойная структура ос
- •2.3.Аппаратная зависимость и переносимость ос
- •2.4.Типовые средства аппаратной поддержки ос
- •3.Организация вычислительных процессов.
- •3.1.Понятия вычислительного процесса и ресурса.
- •3.2.Понятие системы программирования.
- •3.3. Системы интерактивной отладки
- •3.4.Принципы трансляции программ
- •3.5.Особенности построения интерпретаторов
- •3.6.Лексический и синтаксический анализ и генерация кода.
- •3.7.Загрузчик.
- •3.8.Жизненный цикл программы.
- •3.9.Система исполнения программы (run-time system).
- •4.Процессы и потоки
- •4.1.Понятия «процесс» и «поток»
- •4.2.Создание процессов и потоков
- •4.3.Планирование и диспетчеризация потоков
- •4.4.Состояния потока
- •4.5.Вытесняющие и невытесняющие алгоритмы планирования
- •4.6.Алгоритмы планирования, основанные на квантовании
- •4.7.Алгоритмы планирования, основанные на приоритетах
- •4.8.Смешанные алгоритмы планирования
- •4.9.Мультипрограммирование на основе прерываний
- •4.10.Назначение и типы прерываний
- •4.11.Механизм прерываний
- •4.12.Диспетчеризация и приоритезация прерываний в ос
- •4.13.Синхронизация процессов и потоков. Цели и средства синхронизации
- •4.14.Необходимость синхронизации и гонки
- •4.15.Критическая секция. Блокирующие переменные. Семафоры. Тупики
- •4.16.Средства коммуникации процессов
- •5.Управление памятью
- •5.1.Функции ос по управлению памятью
- •5.2.Типы адресов
- •5.3.Алгоритмы распределения памяти
- •5.4.Механизмы реализации виртуальной памяти
- •5.5.Страничное распределение
- •5.6.Сегментное распределение
- •5.7.Сегментно-страничное распределение
- •5.8.Кэширование данных. Иерархия запоминающих устройств
- •5.10.Проблема согласования данных
- •5.11.Способы отображения основной памяти на кэш
- •6.Управление устройствами ввода-вывода и файлами
- •6.1.Задачи ос по управлению файлами и устройствами
- •6.2.Многослойная модель подсистемы ввода-вывода
- •6.3. Менеджер ввода-вывода
- •6.4.Многоуровневые драйверы
- •6.5.Специальные файлы
- •6.6.Цели и задачи файловой системы
- •6.7.Типы файлов. Иерархическая структура файловой системы
- •6.8.Имена файлов. Атрибуты файлов. Логическая организация файла
- •6.9.Физическая организация и адресация файла
- •6.10.Файловые операции. Способы организации файловых операций.
- •6.11.Стандартные файлы ввода и вывода, перенаправление вывода
- •6.12.Контроль доступа к файлам. Механизм контроля доступа и защиты от сбоев
4.6.Алгоритмы планирования, основанные на квантовании
В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии с этой концепцией каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени квант.
Смена активного потока происходит, если:
поток завершился и покинул систему;
произошла ошибка;
поток перешел в состояние ожидания;
исчерпан квант процессорного времени, отведенный данному потоку.
Поток, который исчерпал свой квант, переводится в состояние готовности и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый поток из очереди готовых.
Кванты, выделяемые потокам, могут быть одинаковыми для всех потоков или различными.
Если квант короткий, то суммарное время, которое проводит поток в ожидании процессора, прямо пропорционально времени, требуемому для его выполнения (то есть времени, которое потребовалось бы для выполнения этого потока при монопольном использовании вычислительной системы).
Чем больше квант, тем выше вероятность того, что потоки завершатся в результате первого же цикла выполнения, и тем менее явной становится зависимость времени ожидания потоков от их времени выполнения. При достаточно большом кванте алгоритм квантования вырождается в алгоритм последовательной обработки, присущий однопрограммным системам, при котором время ожидания задачи в очереди вообще никак не зависит от ее длительности. Кванты, выделяемые одному потоку, могут быть фиксированной величины, а могут и изменяться в разные периоды жизни потока. Пусть, например, первоначально каждому потоку назначается достаточно большой квант, а величина каждого следующего кванта уменьшается до некоторой заранее заданной величины. В таком случае преимущество получают короткие задачи, которые успевают выполняться в течение первого кванта, а длительные вычисления будут проводиться в фоновом режиме. Можно представить себе алгоритм планирования, в котором каждый следующий квант, выделяемый определенному потоку, больше предыдущего. Такой подход позволяет уменьшить накладные расходы на переключение задач в том случае, когда сразу несколько задач выполняют длительные вычисления.
Многозадачные ОС теряют некоторое количество процессорного времени для выполнения вспомогательных работ во время переключения контекстов задач. При этом запоминаются и восстанавливаются регистры, флаги и указатели стека, а также проверяется статус задач для передачи управления. Затраты на эти вспомогательные действия не зависят от величины кванта времени, поэтому чем больше квант, тем меньше суммарные накладные расходы, связанные с переключением потоков.
В алгоритмах, основанных на квантовании, какую бы цель они не преследовали (предпочтение коротких или длинных задач, минимизация накладных расходов, связанных с переключениями), не используется никакой предварительной информации о задачах. При поступлении задачи на обработку ОС не имеет никаких сведений о том, является ли она короткой или длинной, насколько интенсивными будут ее запросы к устройствам ввода-вывода, насколько важно ее быстрое выполнение и т. д. Дифференциация обслуживания при квантовании базируется на «истории существования» потока в системе.
