11. Планирование в системах реального времени
, где m – кол-во событий, Ti- время которое уходит на обработку событий. Pi- периодичность, с которой поступает событие.Для того, чтобы планировать однородные процессы (время на обработку и периодичность у всех процессов равны) можно использовать циклической планирование. Но для реальных систем это не подходит, потому, что процессы неоднородны. Чтобы планировать реальные процессы, планировщик должен знать частоту с которой должен работать каждый процесс. Первый алгоритм планирования. Статический RMS (Rate Monotonic Scheduling) – процессы должны бытии удовлетворять следующ условиям: процесс должен был быть завершен за время его периода; один проц не должен зависеть от другого; каждому процессу требуется одинаковое процессорное время на каждом интервале. У непериодичн процессов нет жестких сроков. Требования проц происходят мгновенно. Недостаток: он не учитывает момент поступления следующего события.
Динамический алгоритм планирования EDF(Earliest Deadline First) – учитывает ближайший момент поступления события. Приоритет каждого процесса выставляется в соответствии с тем, сколько времени осталось дедлайна. Таким образом процессы с течением времени изменяются. Способен планировать сильно загруженную систему в отличии от статистического алгоритма.
12. Системные вызовы. Схема 12. Системные вызовы. Схема обработки системных вызовов
Системный вызов (С.В.) - обращение прикладной программы к ядру ОС для выполнения какой-либо операции
Требования к реализации С.В.:
1) обеспечить переключение в привилегированный режим
2) обладать высокой скоростью вызова процедур ОС
3) обеспечивать единообразное обращение к системным вызовам для аппаратных платформ на которых работает ось
4) допускать легкое расширение вызова набора системных вызовов
5) обеспечить контроль со стороны ОС
При любом системном вызове выполняется программное прерывание int80h. Передаётся номер системного вызова, затем параметры и вызывается обработчик данного прерывания – диспетчер С.В., который сохраняет содержимое в системном стеке, проверяет попадает ли запрошенный номер вызова в диапазон, по номеру находят соответствующие процедуры и передает ей управление
Типы С.В.:
1) синхронное –процесс приостанавливается и ждет завершения выполнения системного вызова
2) асинхронное – процесс продолжает выполняться II с действием системного вызова
fork –создание нового процесса
exec – подмена текущего процесса другим исполняемым файлом
open, close, read, write – работа с файлами
Схема обработки системных вызовов:
Текущий процесс shell делает вызов fork порождая вторую копию shell, которая вызывает exec, указывая в качестве параметра имя используемого файла, образ которого необходимо загрузить в память. Утилита ls начинает выполняться, по завершении работы ls созданный процесс исчезает (exit). Системный вызов wait позволяет заблокировать выполнение процесса, пока кто-нибудь из потомков не завершит работу.
13. Назначение и классы прерываний. Механизм обработки прерываний. Учет приоритета прерываний
Прерывание – прекращение выполнения текущей команды или последовательности команд для обработки некоторого события специальными программами с последующим возвратом к выполнению вызванной программы
Mov ax,1
Mov bx,2
Jre x
Прерывания происходят в произвольной точке
В зависимости от источника прерывания делятся на:
1) внешние
2) внутренние
3) программные
Внешние или аппаратные обрабатываются драйвером соответсв. внешних устройств. Внутренние – спец.модулями ядра, а программные – процедурами ОС , обслужив. системные вызовы.
Внешние прерывания – могут возникать в результате действий пользователя или в результате поступления сигналов от аппар.устр-в. Поэтому внешние прер-я называют аппаратными, отражая тот факт, что возникает прерывание вследствии подачи нек-й аппаратурой электр.сигнала. Сигнал подается на специальный вход прерываний процессора
Является асинхронным по отношению к потоку команд выполняемой программы. Бывают прерывания:
А) маскируемые (можно сделать так, что прерывание происходить не будет)
Б) немаскируемые
Внутренние прерывания (исключения) – происходят внутри процессора в процессе выполнения программы: синхронно выполнению программы при появлении аварийной ситуации в ходе выполнения некоторой инструкции программы. Происходят синхронно выполнению текущих потоков команд
Программные прерывания – они не являются истинными прерываниями. Возникают при выполнении особой команды процессора, выполнение к-й имитирует прерывание, т.е. переход на новую последовательность инструкций.
Механизм обработки прерываний - два основных способа реализации прерываний:
1)векторный
2)опрашиваемый.
В обоих случаях предоставляется приоритет, а в случае векторного – адреса обработчика прерываний.
Вектор прерываний – электр. сигнал, доставляемый на соответствующие коды процессора, несущих в себе информацию об определенном, закрепленном на данном у-ве номере, который идентифицирует соответствующий обработчик прерываний
Векторные механизмы – каждому уст-ву назначается вектор прерываний. Вектор прерыв., передаваемый в процессор предств.собой целое число 0..255, указывающее на 1 из 256 программ обработки прерываний. Вектор прерываний бывает фиксир., конфиг., программн.
Опрашиваемые – есть уровни приоритета прерываний, например IRQ, может быть связано несколько устройств и неск-о обр.прерываний. При появлении на шине прерываний с д.уровнем процессов опрашивает все устр-ва , к-е связаны с данным уровнем прерываний до тех пор пока разработчик не подтвердит, что это прерывание.
Учет приоритета прерываний
При использовании схемы с относительными приоритетами, при одновременном использовании запросов прерываний из разных классов выбирается запрос, имеющий высший приоритет. После выполнения его обработчика выполняется обработчик 2-го прерывания
Решение о выборе какой запрос обрабатывать принимается только в момент завершения обработки прерывания. В случае абсолютных приоритетов при поступлении более приоритетного прерывания во время работы обработчика менее приоритетного текущий обработчик прерывается и обрабатывается на вновь поступившем
14. Варианты межпроцессного взаимодействия
Причины взаимодействия: 1. повышение скорости работы; 2. совместное использование данных; 3. модульная конструкция системы; 4.удобство пользователя (процесс текстового редактора).
Взаимодействующие (кооперативные). Категория средств взаимодействия: 1. сигнальные – передается минимальное количество информ вплоть до 1 бита. Степень воздействия сигнала на поведение процесса минимальна. Все зависит от того, знает ли процесс как интерпретировать сигнал. Неправильная реакция на сигнал или игнорирование могут привести к трагическим последствиям. Сигналы вызывают прерывание выполнения задачи и выполнения заранее предусмотрен действий. Два типа сигнала: 1. синхронный – чаще всего приходят от системы прерывания проц блокируемых аппаратурой, например деление на 0.
2. Асинхронный – могут поступать в любой момент.
В ОС набор сигналов определен для каких-то дополнительных сигналов. Необходимо определить как их обрабатывать. Канальные средства. Процессы взаимодействуют через линии связи предоставляемые ОС. Канальные средства могут обладать или не обладать буфером. 1. буфер нулевой емкости или отсутствующ. Никакая информация не сохраняется на линии связи. Процесс посылающий информ должен дождаться пока принимающая сторона не получит информацию и только тогда продолжит свое выполнение.. 2. буфер ограниченной емкости может хранить не более n единиц информации. 3. буфер неограниченной емкости. Теоретически возможет практически нет.
15. Синхронизация параллельных процессов. Критические ресурсы.
Атомарная операция – это неделимая операция в рассматриваемом контексте.
P:a b c R(P).
Q:d e f W(P)
a b c d e f
Детерминированный набор активностей – когда всякий раз при псевлоисполнении для одного и того же набора вх.данных получаются одинаковые вых.данные.
Его можно безбоязненно выполнять в режиме разделения времени. Существует так называемые условия Бернстайна, к-е определяют насколько набор активностей детерминирован. R(P)и W(P) – наборы вх.и вых данных прог-мы или активности P.
P: х=u*w
Y=a+u
W(P)={x,y}
R(P)= {a,u,w}
Условия:
1.для двух активностей P и Q: W(P)(знак пересечения – перевернутая буква U) W(Q)=0 - непересекаются
W(P)(тот же знак) R(Q)=0 – непер. наборы вых.данных
R(P)(тот же знак)W(Q)=0 – не должны пересекаться вых.д.активностей.
Если выполняется 1-3 то P и Q детерминированы.
Про дет.набор команд говорят, что они находятся в состоянии гонки либо состязания.Один из вариантов решения проблемы – вариант взаимоисключения. Каждый процесс, обращающийся к разделению ресурсам исключает для всех других процессов возможность одновремменого общения с этими ресурсами, если это может привести к недетерм.их поведению наборов процессов.
Критическая секция – часть программы исполнение которой может привести к воникновению гонки для определ.набора программ. Она подразумевает наличие след.действий:вход в секцию, сама секция, выход из секции. Вход - это запрет др.процессам работы данной кр.секции, постановка в ожидание. Выход – освобождение данного ресурса, отсылка сообщений , об освобождении секций.