Лабораторная работа 10
Многопоточная программа управления роботом
Синхронизировать – это значит установить порядок или
правила последовательного исполнения или доступа потоков
к общим данным или критическим областям программы [1, с.17].
Мьютекс, от англ. Mutex, Mutual exclusion locks – взаимноисключающие
блокировки, это механизм синхронизации потоков, который позволяет
обеспечить исключительный доступа к разделяемым данным. Этот объект подобен
блокирующему замку в двери комнаты (критической секции): как только
поток захватит мьютекс, никакой другой поток не сможет получить доступ
к критической секции, до тех пор пока замок не откроется [1, с.17-18].
1. Создать программу в Scratch, моделирующую синхронизацию
потоков с помощью мьютексов.
Первый поток управляет прямым движением робота и записывает
в журнал, первый список, счетчик шагов цикла.
Второй поток аналогичным способом управляет обратным движением
робота.
С помощью метода задания частоты дискретизации установить
время движения робота в прямом и обратном направлении.
2. Доработайте пример программы, добавив еще один список
и поток, который получает данные от датчика робота только
в промежуток прямого движения.
Домашнее задание
Оформить фрагмент конспекта урока в форме веб-страницы
сайте с помощью сервиса Google Сайты. Поместить на страницу
1) условия задач,
2) снимки экранов с траекторией,
3) снимки экранов с программой,
4) ссылки на файл с программой
и текстовыми файлами с координатами на Google Диске.
Источники
1. Дорогов А. Ю. Синхронизация и взаимодействие программных потоков
в операционной среде реального времени: Учеб. пособие.-
СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2007.- 64 с.