Помощь в учёбе, очень быстро...
Работаем вместе до победы

Задача о стрелках, которая является классической задачей межпроцессного взаимодействия

РефератПомощь в написанииУзнать стоимостьмоей работы

Рисунок 2.3.2 — Демонстрация работы программы — Состояние готовности. Рисунок 2.3.1 — Демонстрация работы программы — Состояние ожидания. Установить свой номер: взять номер соседа слева и увеличить на 1. Код программы представлен в разделе «Приложение». Автоматная модель стрелков и офицера: Состояние соседа справа «Готов»? Состояние соседа слева «Огонь»? Уменьшить свой номер на 1. Свой номер… Читать ещё >

Задача о стрелках, которая является классической задачей межпроцессного взаимодействия (реферат, курсовая, диплом, контрольная)

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

Постановка задачи

Имеется цепь стрелков и офицер. Каждый находящийся в цепи солдат может общаться только со своими соседями справа и слева. Офицер размещается на фланге цепи и может подавать команды только крайнему в цепи стрелку. Общее количество стрелков в цепи каждому из стрелков неизвестно. Общаться каждый из стрелков может только со своими соседями справа и слева. Требуется обеспечить одновременный залп всех стрелков цепи после подачи команды офицером.

Решение задачи

Автоматная модель стрелков и офицера:

X1.

Состояние соседа слева «Огонь»?

X2.

Состояние соседа справа «Готов»?

X3.

Свой номер не равен нулю?

Y1.

Установить свой номер: взять номер соседа слева и увеличить на 1.

Y2.

Уменьшить свой номер на 1.

Y3.

Стрелять.

Решение задачи выполняется следующим образом: первым команду офицера слышит, естественно, крайний в цепи солдат. Получив команду, он передает ее своему соседу с указанием своего номера в цепи («первый») и начинает считать: один, два, три и т. д. Получивший команду вычисляет свой номер в цепи («второй», «третий» и т. д.) и передает его следующему. Последний в цепи солдат будет знать общее количество стрелков в цепи. Получив команду, он сообщает об этом соседу, ее сообщившему («команду принял»), и начинает отсчет от значения, соответствующего количеству стрелков в цепи, до нуля. Каждый из стрелков цепи, получив обратный сигнал, начинает обратный отсчет от значения, до которого он успел добраться при прямом счете (то есть от своего фактического номера в цепи), до нуля. Досчитав до нуля, стрелок открывает огонь. Как только каждый из стрелков доберется до нуля, цепь выстрелит одновременно. На передачу сигнала от стрелка к стрелку тратится 1 с. Значение счетчика изменяется на 1 за 1 с. Данная задача решается при помощи автоматной модели поведения стрелка. В течение работы программа-стрелок может находиться в одном из следующих состояний:

  • · «Ожидание»;
  • · «Прямой счет»;
  • · «Обратный счет»;
  • · «Открытие огня».

В состояние прямого счета и обратного счета стрелок переходит в случае изменения состояния соседних стрелков. В состояние прямого счета стрелка переводит изменение состояния соседа слева, в состояние обратного счета переводит изменение состояния соседа справа.

Рисунок 2.3.1 — Демонстрация работы программы — Состояние ожидания.

Задача о стрелках, которая является классической задачей межпроцессного взаимодействия.

Код программы представлен в разделе «Приложение».

Демонстрация работы программы

Рисунок 2.3.2 — Демонстрация работы программы — Состояние готовности.

Демонстрация работы программы - Состояние открытия огня и переход в состояние ожидания.

Рисунок 2.3.3 — Демонстрация работы программы — Состояние открытия огня и переход в состояние ожидания.

Задача о стрелках, которая является классической задачей межпроцессного взаимодействия.

Заключение

В данной курсовой работе были рассмотрены виды ядер операционной системы, а также характеристики ядер различных ОС. Ядро ОС может быть:

  • · монолитным;
  • · модульным;
  • · микроядром;
  • · наноядром;
  • · гидроядром;
  • · экзоядром.

В практической части было рассмотрено решение задачи Майхилла «О синхронизации стрелков». Данная задача была решена с использованием автоматной модели поведения стрелков. Основная проблема синхронизации заключалась в обеспечении одновременного залпа всех стрелков цепи. В результате решения все стрелки производят выстрел в одно и то же время.

Показать весь текст
Заполнить форму текущей работой