Динамический метод планирования в многопоточной системе реального времени

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 24.07.2018
Размер файла 95,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

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

Планировщик задач [1, с. 178] - важная часть программы, в многозадачных приложениях. Рассмотрим пример поведения трех процессов (модули температуры, влажности, концентрации газа) в такой модели: Процесс T (temperature) - модуль, отвечающий за показания температуры. Запускается каждые 3 секунды, время выполнения 1 секунда; Процесс H (humidity) - модуль, отвечающий за показания влажности; Процесс G (gas) - модуль, отвечающий за показания концентрации газа. Моделирование общей работы процессов во времени отображено на рисунке 1, на 9 секунде появляется проблема выделения процессорного времени. Процесс В, задача В3 не завершила свою работу, так как крайний срок для этой задачи будет на момент начала 12 секунды. А процесс Т, задача Т4 не может начать из-за этого.

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

В общем смысле спланировать работу процессов возможно двумя методами: Статический метод планирования - приоритет для каждого процесса назначается заранее; Динамический метод планирования - приоритет может быть пересмотрен в ходе выполнения процессов. Прежде чем выбрать статический метод планирования, необходимо убедиться, что процессы удовлетворяют ряду требований: Задача процесса должна быть завершена в срок, за время его планирования; Процессы не должны зависеть од других процессов; Каждой задаче необходимо одинаковое время на выполнение каждого интервала; Для непериодических задач нет жесткого планирования сроков выполнения; По истечении времени интервала, процесс или задача мгновенно прерывается. Рассмотрим данный метод на примере (рисунок 1) тех же трех процессов, модулей, отвечающих за отображение показаний с сенсоров: Процесс T (temperature) - модуль, отвечающий за показания температуры. Запускается каждые 3 сек., время выполнения - 1 секунда; Процесс H (humidity) - модуль, отвечающий за показания влажности. Запускается каждые 4 сек., время выполнения - 1,5 сек.; Процесс G (gas) - модуль, отвечающий за показания концентрации газа. Запускается каждые 5 сек., время выполнения - 0,5 сек. В первые 7 сек. распределение времени на задачи проходит без конфликтов. На 8 секунде процесс модуля влажности, запускает задачу В3. Эта задача не успевает завершиться до начала задачи Т4, процесса модуля температуры. В общем алгоритме планировщика времени произошел бы конфликт.

В статическом алгоритме по истечению времени интервала задача прерывается, в то время как приходит очередь другой задачи. В данном примере задача В3 отработав только 1 секунду, при необходимых 1,5 секунды, уступает процессорное время задаче Т4, т.к. пришла очередь выполнения этой задачи. После завершения задачи А4, наступает время выполнения задачи Г3, процесса модуля газа.

В этой ситуации на момент начала 10 секунды, есть незавершенная задача В3 и новая Г3. Время на выполнения и продолжения до завершения этих задач одинаково, но приоритет отдается задаче Г3. Такой алгоритм направлен на своевременный запуск задач. В динамическом методе планирования задач наибольший приоритет получает задача, время на выполнения которой, осталось меньше, чем время выполнения другой задачи. Рассмотрим данный метод на примере трех процессов (рисунок 2). Из примера видно, что до 8 секунды, распределение времени ничем не отличается от статического метода.

С начала 8 секунды происходит следующее, задача В3 запускается первой, не успевает выполниться полностью, как на 10 секунде приходит время выполнения задачи Т4. Далее планировщик решает, кому отдать приоритет. Сначала оценивает время, которое необходимо для завершения задачи В3 и сравнивает с необходимым временем на выполнение задачи Т4. В этом споре побеждает задача В3 и получает приоритет выше, чем задача Т4. После завершения на 9,5 секунды, начинает выполняться задача Т4, и через 0,5 секунды приходит очередь на выполнение задачи Г3. Ситуация решается аналогичным образом.

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

планировщик программный статический алгоритм

Рис. 1. Пример работы алгоритма статического планирования

Рис. 2. Метод динамического распределения времени

Список литературы

1. Tanenbaum A.S. Modern Operating Systems, 2017.

Размещено на Allbest.ru

...

Подобные документы

  • Планирование задач в операционной системе реального времени. Основные виды планирования применительно к задачам реального времени. Выбор приемлемого алгоритма планирования при проектировании RTS. Статическое прогнозирование с использованием таблиц.

    контрольная работа [40,7 K], добавлен 28.05.2014

  • Микропроцессорные системы обработки данных. Специальные алгоритмы-планировщики для распределения операторов параллельных алгоритмов по процессорам вычислительной сети. Алгоритм построения и уплотнения нитей. Интерфейс программы, результаты работы.

    курсовая работа [1,8 M], добавлен 22.02.2011

  • Раскрытие сущности планирования в программных компонентах. Понятие процесса и потока, их планирование в операционной системе. Категории и задачи алгоритмов планирования в пакетных и интерактивных системах. Планирование в системах реального времени.

    контрольная работа [303,5 K], добавлен 24.10.2014

  • Основные характеристики систем реального времени, типы архитектур. Система приоритетов процессов (задач) и алгоритмы диспетчеризации. Понятие отказоустойчивости, причины сбоев. Отказоустойчивость в существующих системах реального времени (QNX Neutrino).

    контрольная работа [428,8 K], добавлен 09.03.2013

  • Построение базовой аналитической модели оптимизации распределения затрат на рекламу и ее времени между радио и телевидением. Разработка приложения для решения оптимизационной задачи с помощью симплекс-метода. Испытание модели на чувствительность.

    курсовая работа [3,2 M], добавлен 11.02.2014

  • Задачи, решаемые методом динамического программирования. Основные этапы нахождения деревянного алгоритма решения задачи. Выполнение алгоритма Прима. Построение Эйлерового цикла. Решение задач средствами Excel. Алгоритм основной программы - Derevo.

    курсовая работа [586,3 K], добавлен 04.04.2015

  • Особенности метода неопределенных множителей Лагранжа, градиентного метода и метода перебора и динамического программирования. Конструирование алгоритма решения задачи. Структурная схема алгоритма сценария диалога и описание его программной реализации.

    курсовая работа [1010,4 K], добавлен 10.08.2014

  • Общая характеристика задач фиксации времени выполнения программ: выполнение процессов реального времени, профилирование. Программируемый интервальный таймер как весьма сложная система. Анализ основных функций, возвращающих стандартное время Windows.

    курсовая работа [82,7 K], добавлен 18.05.2014

  • Характеристики, основы применения, архитектура жестких и операционных систем реального времени. Последовательное программирование задач реального времени. Структура и языки параллельного программирования, мультипрограммирования и многозадачности.

    курсовая работа [195,9 K], добавлен 17.12.2015

  • Функции планировщика процессов: добровольный вызов, переключение между процессами, анализ нажатия клавиш Ctrl-D. Составление алгоритма работы программы, разработка процедуры планировщик и процедуры анализа клавиш. Организация интерфейса пользователя.

    курсовая работа [480,2 K], добавлен 20.01.2015

  • Обзор средств и методов реализации многопоточности в Java. Проблемы производительности и латентности (времени реакции). Методы использующиеся при работе с потоками. Запуск потоков, завершение процесса и демоны. Взаимная, активная блокировка и голодание.

    курсовая работа [275,3 K], добавлен 23.08.2014

  • Обзор требований проблемной области. Особенности управления задачами. Исполнительные системы реального времени. Программирование на уровне микропроцессоров. Модели и методы предметной области. Реализация прототипа системы реального времени.

    курсовая работа [263,1 K], добавлен 15.02.2005

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

    курсовая работа [858,7 K], добавлен 24.03.2015

  • Классификация систем реального времени. Ядра и операционные системы реального времени. Задачи, процессы, потоки. Преимущества и недостатки потоков. Свойства, планирование, синхронизация задач. Связанные задачи. Синхронизация с внешними событиями.

    реферат [391,5 K], добавлен 28.12.2007

  • Разработка веб-приложения, позволяющего создавать и редактировать проекты с коллективным взаимодействием для совместного редактирования проектов HTML, CSS, JS. Обоснование выбора архитектуры программного изделия. Принцип организации обмена данными.

    дипломная работа [1,9 M], добавлен 19.06.2013

  • Сущность и особенности выполнения метода динамического программирования. Решение математической задачи, принцип оптимальности по затратам, ручной счёт и листинг программы. Применение метода ветвей и границ, его основные преимущества и недостатки.

    курсовая работа [38,9 K], добавлен 15.11.2009

  • Рассмотрение основных принципов и методов проектирования систем реального времени. Описание конструктивных и функциональных особенностей объекта управления, построение диаграммы задач. Выбор аппаратной архитектуры, модели процессов-потоков, интерфейса.

    курсовая работа [1,2 M], добавлен 19.01.2015

  • Система "Учет рабочего времени", разрабатываемая для предприятия НПО "Криста", создается для автоматизации процесса контроля, учета распределения рабочего времени, формирования сопроводительных документов и информации полученной в процессе работы.

    курсовая работа [34,3 K], добавлен 29.11.2008

  • Форма организации основного переменно-поточного производства. Особенности переналадки станков как задача динамического программирования. Общая характеристика алгоритма формирования метода ветвей и границ. Сущность понятия комбинаторная конфигурация.

    курсовая работа [3,2 M], добавлен 20.12.2008

  • Внешнее исследование программного продукта, анализ кода, блок-схемы алгоритма модуля. Оценка качества защиты программы средствами статического и динамического исследования. Осуществление "мягкого" и "жесткого" взлома. Пути оптимизации механизмов защиты.

    курсовая работа [1,3 M], добавлен 22.05.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.