Принципы обработки прерываний
Суть принятого на сегодня механизма состоит в том, что каждому возможному прерыванию процессора (будь то внутреннее или внешнее прерывание) соответствует некоторый фиксированный адрес физической оперативной памяти.
Вектор прерывания -
Каждое прерывание имеет свой номер (IRQ) и с ним связана определенная подпрограмма. Когда вызывается прерывание, процессор приостанавливает свою работу и выполняет прерывание: загружает адрес программы обработки прерывания и передает ей управление, после окончание ее работы управление передается основной программе, которая была прервана. Аппаратные прерывания относятся к прерываниям низшего уровня и им присваиваются младшие номера, обслуживает их базовая система в/в. Внутренние и программные прерывания относятся к верхнему уровню, имеют большие номера и обслуживает базовый модуль.
Планирование процессов. Состояния существования процессов.
Процесс — минимальный программный объект, обладающий собственными системными ресурсами (запущенная программа, программа в стадии выполнения).
Не следует смешивать понятия процесс и программа. Программа — это план действий, а процесс это само действие, поэтому понятие процесса включает:
• программный код;
• данные;
• содержимое стека; (стек – это среда для размещения данных для возврата из подпрограммы )
• содержимое адресного и других регистров процессора.
Состояния существования процессов
На рис. 2 представлена диаграмма состояний,
показывающая три возможных состояния процесса:
1. Выполнение (процесс использует процессор).
2. Готовность (процесс временно приостановлен, чтобы позволить выполняться другому процессу).
3. Блокировка (процесс не может быть запущен прежде, чем произойдет некое внешнее событие).
1. Процесс блокируется, ожидая входных данных
2. Планировщик выбирает другой процесс
3. Планировщик выбирает этот процесс
4. Доступны входные данные
Рис. 2. Состояния процесса. Стрелками показаны возможные переходы между состояниями.
В состоянии готовности процессор недоступен. В состоянии выполнения процесс обслуживается процессором. Третье состояние отличается тем, что запустить процесс невозможно, какой бы ни была загруженность процессора.
Каждый процесс представлен в операционной системе набором данных, называемых таблица управления процессом либо Блок управления процессом (ТУП (БУП)— PCВ — process control block). В РСВ процесс описывается набором значений, параметров, характеризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через компьютер. Информация, хранящаяся в БУП:
§ текущее состояние процесса
§ уникальный идентификатор(номер) процесса
§ указатели памяти процесса
§ указатели выделенных ресурсов для процесса
§ область сохранения регистров, где хранится точка останова процессора
Понятие очереди
Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса — адресного пространства основной памяти.
Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов. Процессы в этой очереди ожидают освобождения ресурса процессорное время.
Процесс в состоянии ожидания завершения операции ввода-вывода находится в одной из очередей к оборудованиюввода-вывода.
При прохождении через компьютер процесс мигрирует между различными очередями под управлением программы, которая называется планировщик (scheduler).
Операционная система, обеспечивающая режим мультипрограммирования, обычно включает два планировщика — долгосрочный и краткосрочный. Например, в OS/360 долговременный планировщик назывался планировщиком заданий, а краткосрочный — супервизором задач.
Взаимодействие процессов.
Любое взаимодействие процессов связано с их синхронизацией, которая заключается в согласовании их скоростей путем приостановки процесса (потока) до наступления некоторого события и последующей его активизации при наступлении этого события. Совместно выполняемые процессы могут быть либо независимыми, либо взаимодействующими. Илипараллельные процессы бывают синхронные (процессы работают параллельно и независимо друг от друга) и асинхронные (параллельные процессы, которые взаимодействуют друг с другом).
Взаимодействие процессов часто понимается в смысле взаимного обмена данными через общий буфер данных.
Важным понятием синхронизации потоков является понятие «критической секции» программы.
Взаимодействие заключается в передаче данных между процессами или совместном использовании некоторых ресурсов и обычно реализуется с помощью таких механизмов, как транспортеры, очереди, сигналы, семафоры.
Ситуация, когда два или более процесса обрабатывают разделяемые данные и конечный результат зависит от скорости процессов, называется гонками.
Семафор – это механизм, который регулирует работу двух и более асинхронных процесса.
В операционных системах OS/2 и Microsoft Windows существует специальный механизм для взаимодействия процессов в реальном масштабе времени. Этот механизм называется DDE (Dynamic Data Exchange — динамический обмен данными).
Другим интерфейсом для обмена данными является OLE (Object Linking and Embedding — связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах, созданных другой программой, а также редактировать (печатать) их без нарушения целостности информации и связей.
Одним из наиболее простых, удобных и интуитивных интерфейсов межпрограммного взаимодействия является буфер обмена — Clipboard.
Планирование работы процессора
Когда требуется планирование
1. При завершении процесса.
2. При блокировании процесса семафором или вводом-выводом.
Стратегии планирования процессора
Планирование в системах пакетной обработки
1. Первый пришел — первый обслуживается FIFO — first come — first served (FCFS).
2. Стратегия «наиболее короткая работа выполняется первой»
SJF — Shortest Job First.
Планирование в интерактивных системах
1.Приоритетное планирование.
Эта стратегия предполагает, что каждому процессу приписывается приоритет, определяющий очередность предоставления ему CPU.
2. «Карусельная» (циклическая) стратегия планирования RR-Round Robin применяется в системах разделения времени. Определяется небольшой отрезок времени tk, названный квантом времени (10...100 мс).
Планирование с использованием многоуровневой очереди.
Взаимодействие очередей осуществляется по следующим правилам: ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях с более высоким приоритетом.
4. Использование многоуровневой очереди с обратными связями.
Данная стратегия является универсальной и сочетает в себе свойства всех рассмотренных раньше стратегий — FCFS, SJF, приоритетная, Round Robin, многоуровневая очередь.
5. Приоритетная многоочередная дисциплина обслуживания. Вновь поступающие в систему запросы устанавливаются не обязательно в 1-ю очередь, а в очередь в соответствии с имеющимися приоритетами, которые определяются параметрами обслуживания процессов.
Планирование в системах реального времени
В системах реального времени, как и следовало ожидать, существенную роль играет время.
Системы реального времени делятся на жесткие системы реального времени, что означает наличие жестких сроков для каждого задания (в них обязательно надо укладываться), и гибкие системы реального времени, в которых нарушения временного графика нежелательны, но допустимы.
Алгоритмы планирования для систем реального времени бывают как статическими, так и динамическими. В первом случае все решения по планированию принимаются заранее, еще до запуска системы. Во втором случае решения выносятся по ходу дела. Статическое планирование применимо лишь при наличии априори точной информации о работе, которую необходимо выполнить, и ограничениях, которые должны быть соблюдены. Алгоритмы динамического планирования не выдвигают подобных требований.
Обслуживание ввода-вывода