Жизненный цикл товара, его стадии.
Рассмотрим три критические последовательности событий для распределенной конфигурации (см. рис.37-39). Последовательность событий «Остановка Лифта на Этаже» (период = Та): А1: Интерфейс Датчиков Прибытия получает и обрабатывает прерывание. А2: Интерфейс Датчиков Прибытия посылает Контроллеру Лифта сообщение приближается к Этажу. A3: Контроллер Лифта принимает сообщение и проверяет объект Локальное Состояние и План Движения Лифта, чтобы определить, должен ли лифт сделать остановку. А4: Контроллер Лифта вызывает операцию остановить Мотор, если лифту нужно остановиться. А5: Контроллер Лифта отправляет по сети сообщение прибыл подсистеме Планировщик, а принимает его Сервер Состояния и Плана Движения Лифта. А6: Сервер Состояния и Плана Движения Лифта вызывает операцию прибыл объекта Сводное Состояние и План Движения Лифта. Последовательность событий «Выбор Этажа Назначения» (период = Тb): Е1: Интерфейс Кнопок Лифта получает и обрабатывает прерывание. Е2: Интерфейс Кнопок Лифта посылает Диспетчеру Лифта сообщение запрос Лифта. ЕЗ: Диспетчер Лифта получает сообщение и записывает этаж назначения в объект Локальное Состояние и План Движения Лифта. Е4: Диспетчер Лифта отправляет по сети сообщение обязательство Лифта подсистеме Планировщик, где его принимает Сервер Состояния и Плана Движения Лифта. Е5: Сервер Состояния и Плана Движения Лифта вызывает операцию обновить План объекта Сводное Состояние и План Движения Лифта. Последовательность событий «Вызов Лифта» (период = Тс): F1: Интерфейс Кнопок Этажа получает и обрабатывает прерывание. F2: Интерфейс Кнопок Этажа посылает по сети Планировщику сообщение запрос на Обслуживание, адресуя его задаче Планировщик Лифта в подсистеме Планировщик. F3: Планировщик Лифта принимает сообщение и опрашивает объект Сводное Состояние и План Движения Лифта с целью определить, едет ли какой-нибудь лифт на данный этаж. Если не едет, то Планировщик должен выбрать лифт. F4: Планировщик Лифта отправляет по сети сообщение запрос Планировщика задаче Диспетчер Лифта, размещенной в узле выбранного лифта. F5: Диспетчер Лифта получает сообщение и записывает этаж назначения в объект Локальное Состояние и План Движения Лифта. F6: Диспетчер Лифта передает по сети сообщение обязательство Лифта подсистеме Планировщик, где его принимает Сервер Состояния и Плана Движения Лифта. F7: Сервер Состояния и Плана Движения Лифта вызывает операцию обновить План объекта Сводное Состояние и План Движения Лифта. 15.3. Последовательность событий «Остановка Лифта на Этаже» В эту последовательность событий входят только задачи из Подсистемы Лифта и Подсистемы Планировщика (см. рис.37-39). Сначала опишем Подсистему Лифта. Задачи, входящие в последовательность событий: Интерфейс Датчиков Прибытия и Контроллер Лифта. Период последовательности равен Та = 50 мс. Рассмотрим четыре фактора, вытекающие из обобщенной теории планирования в реальном времени: – время выполнения задач в последовательности событий. 2 мс для задачи Интерфейс Датчиков Прибытия, затем 5 мс для задачи Контроллер Лифта, что в сумме дает Са = 7 мс. Коэффициент использования ЦП за счет выполнения Ua = Сa / Тa - 7 / 50 = 0,14; – время вытеснения более приоритетными задачами с меньшими периодами. Поскольку эта последовательность имеет наименьший период, таких задач нет; – вытеснение более приоритетными задачами с большими периодами. Возможно вытеснение на 3 мс задачей Интерфейс Кнопок Лифта, обрабатывающей прерывание. Время вытеснения Ср = 3 мс, а соответствующий коэффициент использования Up = 3 / 50 = 0,06; – время блокировки задачами с более низким приоритетом. Вероятна блокировка на 6 мс задачей Диспетчер Лифта. Время блокировки Ва в худшем случае равно 6 мс, а коэффициент использования Ub = Ва / Та = 6 / 50 = 0,12. Теперь легко определить суммарное затраченное время и полный коэффициент использования ЦП. Суммарное затраченное время = время выполнения + время вытеснения + + время блокировки в худшем случае = 7 + 3 + 6= 16 мс, что меньше периода, равного 50 мс. Полный коэффициент использования = коэффициент использования за счет выполнения + коэффициент использования за счет вытеснения + коэффициент использования за счет блокировки = Ue + Up + Ub = 0,14 + 0,06 + + 0,12 = 0,32, что меньше верхней границы 0,69. Согласно обобщенной теореме о верхней границе коэффициента использования и обобщенной теореме о времени завершения, задачи в последовательности событий Остановка Лифта на Этаже всегда успевают уложиться в срок. В данном случае ограничение по времени жесткое: если задача не завершится вовремя, лифт проедет этаж без остановки. Коэффициент использования ЦП ниже, чем в нераспределенном случае, поскольку теперь в Подсистеме Лифта меньше задач. Подсчитаем время, необходимое для обработки сообщения (А5), поступающего по сети, с учетом сетевых задержек: А5: Контроллер Лифта посылает по сети сообщение прибыл подсистеме Планировщик. Предположим, что размер сообщения, включая заголовки коммуникационного протокола, равен 25 байтам, или 200 битам. При скорости передачи 100 Мбит/с сетевая задержка составит Dt = 200 / 100000 = 2 мс. Рассмотрим далее подсистему Планировщик (рис.39): А5.1: Задача Сервер Состояния и Плана Движения Лифта получает сообщение. Допустим, что время на прием и обработку сообщения, посланного по сети, Сm = 1 мс. А6: Задача Сервер Состояния и Плана Движения Лифта вызывает операцию прибыл объекта Сводное Состояние и План Движения Лифта, на выполнение которой уходит Са = 2 мс. Время возможной блокировки при доступе к объекту со стороны задачи Планировщик Лифта bs = 20 мс. Время Еu, затраченное подсистемой Планировщик в худшем случае, составит Cm + Cs + Bs = 1 + 2 + 20 = 23 мс. Приняв во внимание обе подсистемы и сетевые задержки, мы можем вычислить время Еа, потраченное на обработку последовательности событий Остановка Лифта на Этаже в худшем случае. Еа = время Ее, потраченное Подсистемой Лифта, + сетевая задержка Dt + время Еu, потраченное подсистемой Планировщик на обновление объекта Сводное Состояние и План Движения Лифта. Подстановка значений дает Еа = 16 + 2 + 23 = 41 мс. Таким образом, оценка максимального времени (41 мс) оказывается меньше требуемого времени реакции (50 мс). На самом деле время на обработку сообщения прибыл некритично. Важно лишь вовремя остановить мотор, что вполне достижимо. 15.4. Последовательность событий «Выбор Этажа Назначения» В обработке последовательности событий Выбор Этажа Назначения также принимают участие только задачи из Подсистемы Лифта и Подсистемы Планировщика (см. рис.37-39). Сначала рассмотрим Подсистему Лифта. Задачи, входящие в последовательность событий:Интерфейс Кнопок Этажа, Планировщик и Диспетчер Лифта. Период Тb этой последовательности равен 100 мс. Рассмотрим четыре фактора, вытекающие из обобщенной теории планирования в реальном времени: – время выполнения задач в последовательности событий. 3 мс для задачи Интерфейс Кнопок Лифта, затем 6 мс для задачи Диспетчер Лифта, что в сумме дает 9 мс. Коэффициент использования ЦП за счет выполнения Ue=0,09; – время вытеснения более приоритетными задачами с меньшими периодами. В течение 100 мс по два раза могут выполниться задачи Интерфейс Датчиков Прибытия и Контроллер Лифта (вытесняют задачу Диспетчер Лифта), что приведет к вытеснению на 14 мс, так что Up=0,14; – вытеснение более приоритетными задачами с большими периодами. Таких задач нет; – время блокировки задачами с более низким приоритетом. Время блокировки нулевое, так как все задачи в Подсистеме Лифта уже были учтены при рассмотрении времени вытеснения и времени выполнения. Таким образом, получаем: Суммарное затраченное время = время выполнения + время вытеснения + + время блокировки в худшем случае = 9 + 14 = 23 мс, что меньше периода, равного 100 мс. Полный коэффициент использования = Up + Ue = 0,09 + 0,14 = 0,23, что меньше верхней границы 0,69. Согласно обобщенной теореме о верхней границе коэффициента использования и обобщенной теореме о времени завершения, задачи из Подсистемы Лифта, принимающие участие в последовательности событий Выбор Этажа Назначения удовлетворяют временным ограничениям. И снова коэффициент использования ЦП оказывается меньше, чем для централизованного решения. В этой последовательности событий задача Диспетчер Лифта посылает по сети сообщение обязательство Лифта задаче Планировщик. Она рассматривается так же, как сообщение прибыл в предыдущем разделе: имеется дополнительная сетевая задержка 2 мс (событие Е4), и в худшем случае для обновления объекта Сводное Состояние и План Движения Лифта задачей Сервер Состояния и Плана Движения Лифта (событие Е5) требуется Еu = 23 мс. Общее время Еb, потраченное на обработку последовательности событий Выбор Этажа Назначения в худшем случае, вычисляется так: Еb = время Ее, потраченное Подсистемой Лифта, + сетевая задержка Dt + время Еu, потраченное подсистемой Планировщик на обновление объекта Сводное Состояние и План Движения Лифта. Подстановка значений дает Еа = 23 + 2 + 23 = 48 мс. Таким образом, оценка максимального времени (48 мс) оказывается намного меньше требуемого времени реакции (100 мс). 15.5. Последовательность событий «Вызов Лифта» В обработке последовательности событий Вызов Лифта принимают участие задачи из нескольких распределенных подсистем (см. рис.37-39). Хотя, как показано выше, полный коэффициент использования ЦП в каждом узле не выходит за допустимые пределы, необходимо удостовериться, что затраченное время не превышает заданного предельного значения. Нужно применить теорию планирования в реальном времени к каждому узлу, учитывая параметры, приведенные в табл.2. Период последовательности событий Тс = 200 мс. Сначала рассмотрим Подсистему Этажа: F1: Задача Интерфейс Кнопок Этажа получает и обрабатывает прерывания. В своей подсистеме эта задача имеет наивысший приоритет, так что вытеснить ее никто не в состоянии. Блокировка также не может произойти. Время выполнения Cf = 4 мс. F2: Задача Интерфейс Кнопок Этажа посылает сообщения. Накладные расходы на подготовку сообщения к отправке Сm = 1 мс. Полное время, потраченное Подсистемой Этажа, Ef = Cf + Cm = 4 + 1 = 5мс. Далее учтем сетевые задержки: F2.1: Сообщение запрос на Обслуживание посылается по сети подсистеме Планировщик. Предположим, что размер сообщения, включая заголовки протокола, равен 25 байтам, или 200 битам. При скорости передачи 100 Мбит/с сетевая задержка составит Dt = 200 / 100000 = 2 мс. Теперь разберем подсистему Планировщик: F2.2: Задача Планировщик Лифта получает сообщение. Допустим, что время на прием и обработку сообщения, посланного по сети, С = 1 мс. F3: Планировщик Лифта спрашивает у объекта Сводное Состояние и План Движения Лифта, едет ли на данный этаж какой-нибудь лифт. Если нет, то Планировщик Лифта выбирает лифт и посылает Диспетчеру Лифта сообщение запрос Планировщика, на что уходит Cs = 20 мс. Предположим, что для подготовки сообщения к отправке требуется Сm = 1 мс. Время возможной блокировки при доступе к объекту со стороны задачи Сервер Состояния и Плана Движения Лифта bs = 2 мс. Время Es, затраченное подсистемой Планировщик в худшем случае, равно Cm + Cs + Cm+ Bs = 1 + 20 + 1 + 2 = 24 мс. Учтем сетевые задержки: F3.1: Сообщение запрос на Обслуживание посылается по сети подсистеме Планировщик. Как и раньше, сетевая задержка Dt = 2 мс. Проанализируем подсистему Лифт (рис.37): F4: Задача Диспетчер Лифта получает и обрабатывает сообщение запрос Планировщика, Сm = 1 мс. F5: Диспетчер Лифта сохраняет этаж назначения в объекте Локальное Состояние и План Движения Лифта. Время ЦП Се, потраченное на выполнение шагов F4 и F5, равно 6 мс. F6: Диспетчер Лифта посылает сообщение обязательство Лифта подсистеме Планировщик. Время на подготовку сообщения Сm = 1 мс. Итак, на выполнение задачи Диспетчер Лифта уходит Сm + Се + Сm = 1 + 6 + 1 = 8 мс. В Подсистеме Лифта возможны следующие задержки: – время вытеснения. Каждая из задач Интерфейс Датчиков Прибытия и Контроллер Лифта может выполняться по одному разу, но не более 7 мс. Задачи Интерфейс Кнопок Лифта и Диспетчер Лифта (обработка сообщений от кнопок лифта) способны выполняться по одному разу, но не более 9 мс; – время блокировки. Заметим, что блокировка в связи с доступом к объекту со стороны других задач уже учтена, так что дополнительных задержек не возникает. Время Еe, потраченное Подсистемой Лифта в худшем случае, равно сумме времени выполнения и полного времени вытеснения, то есть 16 + 8 = 24мс. Еще 2 мс уходит на сетевые задержки (событие F6.1). Как и раньше, в худшем случае для обновления объекта Сводное Состояние и План Движения Лифта задачей Сервер Состояния и Плана Движения Лифта (событие F7) требуется Е =23мс. С учетом всех трех подсистем и сетевых задержек на обработку последовательности событий Вызов Лифта в худшем случае нужно: Et = время Ер потраченное Подсистемой Этажа, + сетевая задержка Dt + время, потраченное подсистемой Планировщик на выбор лифта, + сетевая задержка Dt + время Ее, потраченное Подсистемой Лифта, + сетевая задержка Dt + время Еu, потраченное подсистемой Планировщик на обновление объекта Сводное Состояние и План Движения Лифта. Подстановка значений дает Et = 5 + 2 + 24 + 2 + 24 + 2 + 23 = 82 мс. Таким образом, оценка максимального времени (82 мс) на обработку последовательности событий Вызов Лифта оказывается намного меньше требуемого времени реакции (200 мс). Даже если бы сетевая задержка при передаче каждого сообщения равнялась 10, а не 2 мс, общее затраченное время составило бы всего 106 мс.
жизненный цикл товара, его стадии. Жизненный цикл товаров можно разделить на несколько основных этапов:
|