- •Раздел 3. Параллельное выполнение программ
- •3.1. Концепция процесса
- •3.2. Средства описания параллелизма
- •3.2.1. Графические средства
- •3.2.3. Описание процессов средствами uml
- •3.2.4. Языковые средства описания параллелизма
- •3.3. Организация ядра ос
- •3.3.1. Ядро как средство организации виртуальной машины
- •3.3.2. Состояния процесса и структура ядра
- •3.3.3. Дескрипторы процессов
- •3.3.4. Очереди процессов в ядре
- •3.4. Общая характеристика примитивов ядра
- •3.5. Примитивы создания и уничтожения процессов
- •3.6. Примитивы синхронизации процессов
- •3.6.1. Простейшие примитивы, не учтенные в классификации
- •3.6.2. Примитивы временной синхронизации
- •3.6.3. Примитивы событийной синхронизации процессов
- •3.7. Общий семафор как средство событийной синхронизации
- •3.8. Средства синхронизации в существующих операционных системах
- •3.9. Монитор как средство реализации взаимного исключения
- •3.10. Примитивы ядра для обмена сообщениями
- •3.10.1. Буфер как средство коммуникации между процессами
- •3.10.2. Почтовый ящик с очередью сообщений
- •3.10.3. Средства коммуникаций в существующих ос
- •3.11. Проблема тупиков при взаимодействии процессов
- •3.12. Планирование загрузки процессора в ядре
- •3.12.1. Классификация алгоритмов планирования
- •3.12.2. Тесты планируемости задач и классификация задач
- •3.12.3. Динамическое планирование
- •3.12.3.1. Планирование независимых задач
- •1. Алгоритм монотонной скорости.
- •2. Алгоритм “задача с минимальным предельным сроком завершения - первая”
- •3. Алгоритм минимальной неопределенности
- •3.12.3.2. Планирование зависимых задач
- •3.12.4. Статическое планирование
3.2. Средства описания параллелизма
Средства, которые могут быть использованы для описания параллелизма в программах, можно разделить на два вида: графические и языковые.
3.2.1. Графические средства
Вопрос (
К графическим средствам относятся:
1. ГОСТ «Схемы алгоритмов, программ, данных и систем»
2. SDL-диаграммы
3. UML-диаграммы
4. графы
)Вопрос
Графические средства представлены ГОСТ 19701.90, который называется «Схемы алгоритмов, программ, данных и систем». В этом ГОСТе есть пункт 3.2.2.5, называемый «Параллельные действия».
В этом пункте есть следующие примеры:
1) Синхронизация двух или более параллельных операций
2
)
В данной схеме C, D, E начинаются только после завершения A, а F начинается только после завершения B, C, D.
В п. 3.3.2.1 есть значок - символ передачи управления от одного процесса к другому.
3.2.2. SDL – диаграммы
Еще одним средством описания процессов являются SDL-диаграммы. SDL—это "specification and description language". Этот язык широко применяется для описания процессов в системах реального времени. Сам язык описан в Международных Рекомендациях МККТТ Z.101 - Z.104.
Следующие символы могут быть использованы:
state
"state" - состояние, в котором действие процесса приостановлено в ожидании ввода;
внешний ввод (external input)
внутренний ввод (internal input)
«input» - входящий сигнал, который распознается процессом;
внешний вывод (external output)
внутренний вывод (internal output)
«output» - действие, которое генерирует сигнал, который в свою очередь действует в другом месте как ввод;
решение
(decision)
«decision» - действие, которое задает вопрос, на который ответ может быть получен в тот же момент, и которое выбирает один из нескольких путей для продолжения потока;
задача (task)
«task» - любое действие, которое не является ни решением, ни выводом.
Рассмотрим пример использования SDL диаграммы для описания процессов.
Пример взят из области коммуникационных протоколов.
Пусть передача информации выполняется по следующему алгоритму.
В определенные моменты времени система ожидает прием блока информации и отвечает передачей квитанции.
Если система неправильно принимает несколько блоков подряд или в течение некоторого времени не принимает их вообще, то она отключается.
Если система принимает ожидаемый блок, то она выдает квитанцию и снова переходит к ожиданию.
Временная диаграмма алгоритма может выглядеть следующим образом:
Фрагмент SDL-диаграммы, описывающей приведенный выше алгоритм, может выглядеть следующим образом:
останов счетчика ошибок
останов счетчика ошибок
Временные соотношения в системе поддерживает система прерываний.
