Вы находитесь на странице: 1из 4

Министерство образования Республики Беларусь

Учреждение образования «Белорусский государственный университет


информатики и радиоэлектроники»

Факультет компьютерного проектирования


Кафедра проектирования информационно-компьютерных систем
Дисциплина «Проектирование и программирование микропроцессорных
устройств»

ОТЧЕТ
к лабораторной работе № 5
на тему:
«СИНХРОНИЗАЦИЯ ПОТОКОВ. ОЧЕРЕДИ СОБЫТИЙ»

Выполнил:
ст. гр. 012601
Фомин И.О

Проверил:
Пономарев И.С.

Минск 2023
Цель работы: изучить функциональные возможности операционной
системы FreeRTOS: синхронизацию потоков и очереди событий.
Ход выполнения работы:

Основные функции для контроля загруженности процессора:


 vApplicationIdleTask – служит для оценки свободного процессорного
времени;
 vTaskDelay – задерживает задачу в заблокированном состоянии
указанное в конфиге количество миллисекунд;
 vTaskDelayUntil – используется, когда ресурс времени строго
распределен между задачами;

Основные функции для управления очередями:


 xQueueHandle – для создания очереди;
 xQueueSendToFront – для записи в начало очереди;
 xQueueSendToBack – для записи в конец очереди;
 xQueueReceive – для чтения из начала очереди с удалением;
 xQueuePeek – для чтения из начала очереди без удаления;
 xQueueMessagesWaiting – для определения количества элементов в
очереди;
 xQueueReset – для очистки очереди;
 xQueueSendToFrontFromISR – запись данных в начало очереди
внутри подпрограммы прерывания;
 xQueueSendToBackFromISR – запись данных в конец очереди внутри
подпрограммы прерывания;
 xQueueReceiveFromISR – чтение данных из начала очереди внутри
подпрограммы прерывания;

Пример управления очередями представлен на рисунках 1-2.

Рисунок 1 – Первая часть примера работы с очередями

2
Рисунок 2 – Вторая часть примера работы с очередями.

Семафор – объект, ограничивающий количество потоков, которые


могут войти в заданный участок кода. Обеспечивает:

 запрет одновременного выполнения заданных участков кода


(критические секции);
 поочерёдный доступ к критическому ресурсу (важному ресурсу, для
которого невозможен (или нежелателен) одновременный доступ);

Мьютекс – упрощенная версия семафора (двоичный семафор).


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

Основные функции для работы с семафором и мьютексом:


 vSemaphoreCreateBinary – для создания двоичного семафора;
 xQueueCreateMutex – для создания мьютекса;
 xSemaphoreTake – для захвата семафора/мьютекса;
 xSemaphoreGive – для выдачи семафора/мьютекс;
 xSemaphoreGiveFromISR – для выдачи семафора/мьютекса из
подпрограммы прерывания;

Пример синхронизации задач посредством мьютекса представлен на рисунках 3-


4.

3
Рисунок 3 – Первая часть синхронизации мьютексом.

Рисунок 4 – Вторая часть синхронизации мьютексом.

Вывод: в результате выполнения лабораторной работы были изучены


функциональные возможности операционной системы FreeRTOS:
синхронизация потоков и очереди событий.

Вам также может понравиться