Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec3.docx
Скачиваний:
1
Добавлен:
19.11.2019
Размер:
29.9 Кб
Скачать

Код управляемый переменными состояния

В этом случае для прекращения обработки функций в сегментах кода используются такие вложены операторы как(if, case) либо состояние конечного автомата. Разделение процессов позволяет каждому из них перед завершением быть приостановленным без потери данных. Это в свою очередь способствует многозадачности по средствам таких структур как сопрограммы . Код управляемый переменными состояниями системы хорошо работает в сочетанием с циклическими исполняющимися системами, когда процессы являются слишком длинными во времени либо не равномерными по размеру. Поскольку существуют математические средства для уменьшения количества состояний, программы основаны на теории конечных автоматов, могут быть формально оптимизированы. Для разработки системных спецификаций могут быть использованы многие методы из теорий конечных автоматов. Однако не все процессы позволяют естественные разделения на состояния. По этой причине некоторые процессы не подходят для такой методики. Кроме того таблицы необходимые для обеспечения выполнения кода могут быть достаточно большими. Процесс ручного перевода из форм конечного автомата в табличную форму подвержен ошибкам.

Сопрограммы

Сопрограммы(кооперативные многозадачные системы) требуют строгой дисциплины программирования и должного использования. Такие типы ядер применяются в сочетании с конечными автоматами, управляемыми кодом. В этой схеме 2 или более процессов кодируются в форме представленной выше, как управляемые переменные состояниями и после завершения каждой фазы выполняют запрос к центральному диспетчеру. Диспетчер сохраняет содержимое счетчика команд в списке процессов, которое выполняется по циклическому принципу(round robin).

Таким образом он выбирает для выполнения следующий процесс. Этот процесс выполняется пока не будет завершена следующая фаза и вновь вызов направляется центральному диспетчеру. Необходимо отметить если существует одна сопрограмма, она будет циклически повторяться. Взаимосвязь между системами достигается по средствам глобальных перемен. Поэтому любые данные, которые нужно сохранить между процессами передачи должны быть помещены в глобальные переменные.

Рассмотрим некоторую систему, в которой два процесса выполняться параллельно и изолировано. (смотри лекцию 4 страница 8)

Системы управляемые прерываниями

Операция процессора, состоящая в состоянии регистрации состояния процессор предшествующего прерыванию и установлению нового состояния, называется прерыванием.

Прерывание – реакция процессора на некоторое событие, которое возникло в процессоре и вне его. Оно позволяет обработать возникшее событие в специальной программе и вернуться в прерванную программу. В системах управляемых прерываниями основная программа состоит с бесконечного цикла. Разнообразные задачи планируются в системы по средствам аппаратных или программных прерываний, когда диспетчеризация выполняется программами – обработчиками прерываний.

При использовании аппаратного прерывания, тактовый генератор или другое внешнее устройство вырабатывает сигналы прерываний, передаваемые контролеру прерываний. Контроллер прерываний вырабатывает сигналы прерываний, зависящие от порядка поступления или приоритета прерываний. Если архитектура контроллера поддерживает многоуровневые прерывания, то аппаратура также поддерживает диспетчеризацию. Если доступен только один уровень прерываний, то программа обработки прерываний считывает вектор прерываний из контроллера прерываний, определяет какое прерывание произошло и организовывает обработку соответствующих задач. В некоторых процессорах такая архитектура реализована на уровне микрокода, в связи с чем реализация его функционирования не является обязанностью разработчиков ОС. Доступ к ресурсам разделяемым с ISR обычно контролируются запретом прерываний приложений для любых команд, обращающихся к ресурсу при записи или чтении. Реентерабельный (повторно используемый)код может выполняться в двух или более контекстах. В независимости от стиля от стиля написания ISR моментальный снимок состояния компьютера, называемый контекстом, должен быть сохранен перед переключением задач, так чтобы быть восстановленным при возобновлении прерванного процесса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]