Организация вычислительных процессов. Конспект лекций по дисциплине "Системы реального времени". Степанов Б.М. - 7 стр.

UptoLike

Составители: 

Допустим, что такое общее переключение контекстов задаётся с помощью процедуры
«переключить».
d1 – ссылка на дескриптор выполняемого процесса,
d2 – ссылка на дескриптор процесса, который нужно активизировать.
Переключить (d1, d2); (где d1, d2 –параметры процедурыпереключить”)
Эта процедура выполняет:
1) сохранение контекста выполняемого процесса в его стеке,
2) восстановление контекста активизируемого процесса из его стека.
Можно считать, что в случае прерывания процедурапереключитьвыполняется ап-
паратно.
Типы диспетчера
При построении диспетчера обычно учитывают следующие характеристики:
1) Способ выбора очередного процесса из списка для активизации
Правила:
а) в порядке очереди,
б) с фиксированным относительным процессом,
в) с круговым относительным процессом,
г) с абсолютным процессом.
2) Учёт времени выполнения процесса
а) процессам выдаются одинаковые кванты времени,
б) процессам выдаются различные кванты времени.
Лекция 3. Построение простейшего диспетчера
Допустим, что число процессов, которыми должен управлять диспетчер, фиксируется
при начальном запуске системы и дальше остаётся неизменным в процессе работы.
В начале рассмотрим диспетчер, выполняющий выбор очередного процесса в соот-
ветствии с принципом относительного фиксированного приоритета. Этот принцип предпола-
гает, что прерывания, возникающие при выполнении некоторого процесса, не должны при-
водить к его остановке пока он не завершится. Допускается только приостановка процесса на
время обработки прерываний.
Структура дескриптора
Состояния процесса
В простейшем случае каждый процесс может находиться в двух состояниях:
1) состояние готовности,
2) состояние ожидания.
Диспетчер, просматривая список процессов, может запускать только те процессы, ко-
торые находятся в состоянии готовности.
Таким образом, чтобы запустить некоторый процесс, необходимо вначале перевести
его в состояние готовности, а затем активизировать его.
Изменение состояния процесса обычно выполняет пользователь с помощью специ-
ального примитива диспетчера. Такие примитивы пользователь может включать в програм-
му.
Пусть в нашем диспетчере используется два примитива:
готов(к), где кномер процесса, состояние которого нужно изменить,
ждатьпроцедура, которая переводит процесс в состояние ожидания.
      Допустим, что такое общее переключение контекстов задаётся с помощью процедуры
«переключить».
      d1 – ссылка на дескриптор выполняемого процесса,
      d2 – ссылка на дескриптор процесса, который нужно активизировать.
      Переключить (d1, d2); (где d1, d2 –параметры процедуры “переключить”)
      Эта процедура выполняет:
      1) сохранение контекста выполняемого процесса в его стеке,
      2) восстановление контекста активизируемого процесса из его стека.
      Можно считать, что в случае прерывания процедура “переключить” выполняется ап-
паратно.

                                    Типы диспетчера

      При построении диспетчера обычно учитывают следующие характеристики:
      1) Способ выбора очередного процесса из списка для активизации
      Правила:
      а) в порядке очереди,
      б) с фиксированным относительным процессом,
      в) с круговым относительным процессом,
      г) с абсолютным процессом.
      2) Учёт времени выполнения процесса
      а) процессам выдаются одинаковые кванты времени,
      б) процессам выдаются различные кванты времени.


Лекция 3. Построение простейшего диспетчера

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

Структура дескриптора

       Состояния процесса
       В простейшем случае каждый процесс может находиться в двух состояниях:
       1) состояние готовности,
       2) состояние ожидания.
       Диспетчер, просматривая список процессов, может запускать только те процессы, ко-
торые находятся в состоянии готовности.
       Таким образом, чтобы запустить некоторый процесс, необходимо вначале перевести
его в состояние готовности, а затем активизировать его.
       Изменение состояния процесса обычно выполняет пользователь с помощью специ-
ального примитива диспетчера. Такие примитивы пользователь может включать в програм-
му.
       Пусть в нашем диспетчере используется два примитива:
       – готов(к), где к – номер процесса, состояние которого нужно изменить,
       – ждать – процедура, которая переводит процесс в состояние ожидания.