Помощь в написании студенческих работ
Антистрессовый сервис

Основные понятия систем реального времени (СРВ)

Реферат Купить готовую Узнать стоимостьмоей работы

Ресурсы. Каждое из названных понятий рассмотрено в настоящем исследовании. Кроме того, особое внимание в работе уделено практическим аспектам диспетчеризации в системах реального времени. Так, продемонстрирован процесс диспетчеризации на примере задачи «О спящем парикмахере». Таким образом, можно сделать вывод о достижении цели и решении задач, определенных во введении. Список использованной… Читать ещё >

Основные понятия систем реального времени (СРВ) (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • Глава 1. Понятие систем реального времени
    • 1. 1. Многозадачные системы. Понятие. Особенности
    • 1. 2. Виды систем реального времени
  • Глава 2. Анализ понятий систем реального времени
    • 2. 1. Процессы, потоки, задачи, ресурсы. Основные понятия
    • 2. 2. Взаимодействие процессов
    • 2. 3. Практические аспекты решения задач диспетчеризации систем реального времени на примере задачи «О спящем парикмахере»
  • Заключение
  • Список использованной литературы

Выделим еще один способ — использование блокирующих переменных. Он связан с вводом двоичной переменной, которая принимает значение «1» в случае, если ресурс свободен, и значение «0», если ресурс занят. Перед входом в критическую секцию процесс проверяет, свободен ли ресурс. Если он занят, то проверка циклически повторяется, если свободен, то процесс входит в критическую секцию. Основной недостаток подобной синхронизации заключается в том, что когда один процесс находится в критической секции, другой процесс, которому требуется тот же ресурс, будет выполнять рутинные действия по опросу блокирующей переменной, бесполезно тратя процессорное время. Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел два новых примитива. В абстрактной форме эти примитивы, обозначаемые P и V, оперируют над целыми неотрицательными переменными, называемыми семафорами. Семафор — это «целая переменная, значение которой можно опрашивать и менять только при помощи неделимых (атомарных) операций» [15, с.54]. Двоичный семафор может принимать только значения 0 или 1. Считающий семафор может принимать целые неотрицательные значения. Над семафором возможно выполнение некоторых операций:

увеличение значения;

уменьшение значения;

ожидание обнуления.

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

3). Если в парикмахерской нет посетителей, парикмахер засыпает прямо на своем рабочем месте. Появившийся посетитель должен его разбудить, в результате чего парикмахер приступает к работе. Если в процессе стрижки появляются новые посетители, они должны либо подождать своей очереди, либо покинуть парикмахерскую, если в приемной нет свободного кресла для ожидания. Задача состоит в том, чтобы корректно запрограммировать поведение парикмахера и посетителей. Рисунок 3 — Задача «О спящем парикмахере"Согласно данной задаче необходимо определить элементы который будут запрограммированы отдельными процессами, разработать алгоритм и программно его реализовать. Для решения поставленной задачи построим модель парикмахерской. Ресурсами в данной задачи являются места ожидания и рабочее кресло парикмахера. Доступ к ресурсам получают потоки-клиенты в следующей последовательности:

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

Клиент вошел в зал ожидания:

Если есть свободное место, то занял его. Если нет свободного места, то уходит. Работа парикмахера:

Если парикмахер свободен, то клиент садиться стричься. Если парикмахер занят, клиент продолжает ждать. Завершение работы:

Если клиент подстригся, то он уходит и освобождает кресло парикмахера. Для реализации описанного алгоритма целесообразно использовать три семафора:

Подсчет ожидающих посетителей. Количество свободных парикмахеров (в нашем случае или 1, или 0).Блок-схема алгоритма решения представлена на рисунке 4. Рисунок 4 — Блок-схема алгоритма решения задачи «О спящем парикмахере"Так как в задачи исследования входит решение задачи через межпроцессное взаимодействие, то целесообразно построить конечный автомат состояний (см. рис. 5).Рисунок 5 — Конечный автомат состояний.

Построенный автомат имеет следующие особенности:

выделены заключительные состояния;

машина считывает символы с входной ленты ничего на неё не записывая;

на каждом шаге автомат, считав символ с ленты и перейдя в новое состояние, обязательно передвигается на один символ вправо;

автомат останавливается в случае достижения конца слова. Как уже отмечалось, для реализации решения задачи создаются три семафора — для подсчета ожидающих посетителей; для определения числа свободных парикмахеров; для реализации взаимного исключения. Создание семафора выполняется следующей командой: CreateSemaphore (NULL, 0, 1, «sem»);Дополнительным инструментом программной реализации алгоритма является ввод переменной waiting, предназначение которой — подсчет ожидающих посетителей. Инициализация переменной происходит следующим образом: int waiting;Ниже приведена часть программного кода, отвечающая за определение свободных мест в зале ожидания и, при их наличии, увеличение ожидающих: while (TRUE){WaitForSingleObject («sem», INFINITE);/file = fopen («H:\lab1\stulja.txt» ," r");fscanf (file, «%d», &waiting);fclose (file);ReleaseSemaphore («sem», 1, NULL);if (waiting<CHAIRS){for (int i=0;i<CHAIRS;i++){WaitForSingleObject («sem», INFINITE);file= fopen («H:\lab1\stulja.txt» ," w"); waiting=waiting+1 ;//fprintf (file, «%dn», waiting);fclose (file);ReleaseSemaphore («sem», 1, NULL);printf («ostalos —> %dn», waiting);}Следующим шагом становится программирование работы парикмахера, а так же дальнейшая работа с переменной waiting — ее уменьшение в случае перехода одного из ожидающих в рабочее кресло парикмахера. Часть программного кода, реализующего данный алгоритм представлена ниже: WaitForSingleObject («sem», INFINITE);file = fopen («H:\lab1\stulja.txt» ," r"); fscanf (file, «%d», &waiting);fclose (file);ReleaseSemaphore («sem», 1, NULL);while (waiting≠0{WaitForSingleObject («sem», INFINITE);file= fopen («H:\lab1\stulja.txt» ," w"); waiting=waiting-1;fprintf (file, «%dn», waiting); fclose (file);printf («ostalos — %dn», waiting)/ReleaseSemaphore («sem», 1, NULL);}Таким образом, используя средства языка программирования С++, было реализовано решение задачи «О спящем парикмахере» через организацию межпроцессного взаимодействия.

Заключение

.

В заключение теоретического анализа исследуемой проблемы можно сделать следующие выводы:

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

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

процесс;

поток;задача;

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

Аверьянов О.И., Солдатов В. Ф. Основы проектирования и конструирования: Учебное пособие / О. И. Аверьянов, В. Ф. Солдатов. — М.: МГИУ, 2012. -с. 97Бройдо В. Л. Вычислительные системы, сети и телекоммуникации: Учебник.

— СПб.: Питер, 2011. — 554с. Вдовикина Н. В., Машечкин И. В. Операционные системы: Взаимодействие процессов: Учебно-методическое пособие.

— М.: Изд. отдел фак. ВМиК МГУ, 2012. — 215с. Гвоздева В. А., Лаврентьева И. Ю. Основы построения автоматизированных информационных систем: учебник.

— M.: ИД «ФОРУМ»: ИНФРА-М, 2013. — 320 с. Гордеев А. В. Операционные системы: Учебник для вузов. — СПб.:Питер, 2012.

— 416с. Гриценко Ю. Б. Системы реального времени: учебное пособие. — Спб.: Питер, 2010. — 147с. Зиборов В. В. VisualC# 2012 на примерах. СПб: БХВ-Петербург, 2013.

— 480с. Келим Ю. М. Вычислительная техника: Учеб. Пособие для студ. сред. проф. Образования.

М.: Издательский центр «Академия», 2010.-384с.Левин Б. Р. Справочник надежности. — М.: Рипол Классик, 2013. — 350с. Одинцов И. Профессиональное программирование.

Системный подход. — СПб.: БХВ-Петербург, 2010. -.

605с.Пугачев С., Шериев А. Разработка приложений для Windows 8 на языке C. СПб.: БХВ-Петербург, 2010. — 350с. Соломенчук В. Г. Аппаратные средства персональных компьютеров. — СПб.: БХВ-Петербург, 2013.

— 512с. Таненбаум Э. Современные операционные системы. -.

Спб.: Питер, 2014. — 1120с. Хейлсберг А. Язык программирования C++. СПб.:Питер, 2009. 420с. Хьюз К. Параллельное и распределенное программирование с использованием С++: Пер. с англ. — М.: Издательский дом «Вильямс», 2014. -.

672с.Черкесов Г. Н. Надежность аппаратно-программных комплексов: Учебное пособие. — СПб.: Питер, 2010. -с.205Анатольев А. Г. Системы реального времени: Конспект лекций [Электронный ресурс]URL:

http://www.4stud.info/rtos/ (Дата обращения 15.

04.2018).

Показать весь текст

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

  1. О.И., Солдатов В. Ф. Основы проектирования и конструирования: Учебное пособие / О. И. Аверьянов, В. Ф. Солдатов. — М.: МГИУ, 2012. -с.97
  2. В.Л. Вычислительные системы, сети и телекоммуникации: Учебник. — СПб.: Питер, 2011. — 554с.
  3. Н.В., Машечкин И. В. Операционные системы: Взаимодействие процессов: Учебно-методическое пособие. — М.: Изд. отдел фак. ВМиК МГУ, 2012. — 215с.
  4. В.А., Лаврентьева И. Ю. Основы построения автоматизированных информационных систем: учебник. — M.: ИД «ФОРУМ»: ИНФРА-М, 2013. — 320 с.
  5. А.В. Операционные системы: Учебник для вузов. — СПб.:Питер, 2012. — 416с.
  6. Ю.Б. Системы реального времени: учебное пособие. — Спб.: Питер, 2010. — 147с.
  7. Зиборов В.В. VisualC# 2012 на примерах. СПб: БХВ-Петербург, 2013. — 480с.
  8. Ю.М. Вычислительная техника: Учеб. Пособие для студ. сред. проф. Образования.-М.: Издательский центр «Академия», 2010.-384с.
  9. .Р. Справочник надежности. — М.: Рипол Классик, 2013. -350с.
  10. И. Профессиональное программирование. Системный подход. — СПб.: БХВ-Петербург, 2010. — 605с.
  11. С., Шериев А. Разработка приложений для Windows 8 на языке C. СПб.: БХВ-Петербург, 2010. — 350с.
  12. В.Г. Аппаратные средства персональных компьютеров. — СПб.: БХВ-Петербург, 2013. — 512с.
  13. Э. Современные операционные системы. — Спб.: Питер, 2014. — 1120с.
  14. А. Язык программирования C++. СПб.:Питер, 2009.- 420с.
  15. К. Параллельное и распределенное программирование с использованием С++: Пер. с англ. — М.: Издательский дом «Вильямс», 2014. — 672с.
  16. Г. Н. Надежность аппаратно-программных комплексов: Учебное пособие. — СПб.: Питер, 2010. -с.205
  17. А.Г. Системы реального времени: Конспект лекций [Электронный ресурс]URL:http://www.4stud.info/rtos/ (Дата обращения 15.04.2018)
Заполнить форму текущей работой
Купить готовую работу

ИЛИ