Параллельная обработка данных. Синхронная и асинхронная обработка данных в высокопроизводительных ЭВМ. Параллельные процессы.
Заказать уникальную курсовую работу- 22 22 страницы
- 5 + 5 источников
- Добавлена 05.01.2022
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
1 Классификация Флинна 5
1.1 Основные определения. Схемы классов архитектур 5
1.2 Примеры использования, основные достоинства и недостатки 8
2 Параллельная обработка данных. Основные определения, модели 11
3 Синхронная и асинхронная обработка данных 16
3.1 Основные определения 16
3.2 Межпроцессное взаимодействие 17
3.3 Планирование процессов 19
ЗАКЛЮЧЕНИЕ 21
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22
Для организации синхронизации используют средства межпроцессорного взаимодействия – сигналы и сообщения, каналы, семафор, совместно используемая память и т.д.В контексте термина «асинхронность» следует привести следующие разновидности его определения:Конкурентность – одновременное выполнение нескольких задач, при этом каждая задача формирует отдельный поток выполнения;Параллелизм - выполнение одной задачи несколькими потоками для ускорения общего выполнения большой задачи. Достигается за счет разделения одной задачи на несколько небольших частей;Многопоточность - наличие нескольких потоков выполнения программы;Асинхронность - начало и конец одной функции могут происходить в разных частях кода.3.2 Межпроцессное взаимодействиеСуществует несколько решений проблем синхронизации доступа. Один из них – это запрет всех прерываний непосредственно после входа процесса в критическую секцию и разрешение их перед самым выходом из нее. Если прерывания запрещены, то переключение процессов не происходит, так как передача управления планировщику может быть реализована только с использованием прерываний [4].Однако, данный подход не имеет смысла в многопроцессорных системах, так как запретив прерывание на одном из процессов, на другие процессы этот запрет никак не повлияет, они будут продолжаться на других процессорах вычислительной системы и будут по – прежнему иметь доступ к разделяемому ресурсу.Выше перечислялись способы межпроцессного взаимодействия. Рассмотрим их в отдельности:Сообщение – метод взаимодействия, когда один процесс посылает сообщение второму, а тот получает его. Если сообщение не пришло – второй процесс блокируется (ожидает сообщения) или сразу возвращает код ошибки. С данным способ связан ряд недостатков, так как при передачи сообщение может потеряться. В качестве подтверждения его получения, получатель отправляет сообщение с подтверждением приема. Если и оно не доходит, то через определенный промежуток времени оно отсылается еще раз. Но, если само сообщение получено, а подтверждение его получения до отправителя не дошло, то отправитель отправит сообщение еще раз, внедрив номер сообщения в его тело, что получатель мог отличить копии полученных сообщений.Семафор - объект, позволяющий войти в заданный участок кода (обычно – критическую секцию) не более чем n процессам.С семафором возможны три операции:1) init(n); - инициализация счетчика (число, переданное счетчику, является количеством процессов, которые могут одновременно обращаться к критической секции)2) wait(); - ждать пока счётчик станет больше 0; после этого уменьшить счётчик на единицу.3) leave(); - увеличить счетчик на единицу.Перед обращением процесса к критической секции сначала вызывается метод wait(), который обеспечит количество процессов, одновременно обращающихся к критической секции, не превышает n-1. Далее процесс продолжает работу и выполняет метод leave(), тем самым обозначая для других процессов, что он закончил работу и «место свободно». Количество вызовов методов wait() и leave() должно совпадать для корректной работы системы, иначе возникнет взаимная блокировка процессов – ситуации, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.Пример взаимной блокировки приведен в таблице 3.Таблица 3Взаимная блокировка ресурсовШагПроцесс 1Процесс 20Хочет захватить A и B, начинает с AХочет захватить A и B, начинает с B1Захватывает ресурс AЗахватывает ресурс B2Ожидает освобождения ресурса BОжидает освобождения ресурса A3Взаимная блокировкаЕсли бы процесс 1 успел захватить ресурс B до процесса 2, то ошибка не произошла бы. В этом и заключается сложность в отладке взаимных блокировок, как и других ошибок синхронизации, так как для их возникновения нужны специфические условия одновременного выполнения нескольких процессов.Мьютексы — это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний — отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта mutex, последний переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным. В этом и заключается задача мьютекса — защита объекта от доступа к нему других потоков, отличных от того, который завладел мьютексом. Это обеспечивается за счет того, что в каждый конкретный момент только один поток может владеть объектом, защищённым мьютексом. 3.3 Планирование процессовПланирование - обеспечение поочередного доступа процессов к одному процессору[2].Планировщик – часть ОС, отвечающая за планирование.Алгоритм планирования без вытеснения (неприоритетный) - не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу.Алгоритм планирования с вытеснением (приоритетный) - требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику.Стратегия планирования – порядок размещения процессов в приоритетных очередях. Примеры стратегии планирования в ОС UNIX/Linux: FIFO (сокр. от First In First Out, т.е. первым прибыл, первым обслужен) и RR (сокр. От round-robin, т.е. циклическая).Приоритетное планирование подходит для обсечения параллельной работы процессов: каждому процессу присваивается приоритет. Процесс с наибольшим приоритетом получает управление. При этом приоритет может быть динамический и статический. Динамический приоритет может устанавливаться так: П=1/Т, где Т- часть использованного в последний раз кванта.Также по приоритетам происходит объединение процессов в группы. Тогда внутри группы используется циклическое планирование, а между группами – приоритетное.ЗАКЛЮЧЕНИЕВ ходе выполнения курсовой работы были выполнены все поставленные цели и задачи:рассмотрена классификация архитектур вычислительных систем по Флинну;проведен обзор моделей параллельной обработки данных;приведены определения и примеры синхронной и асинхронной обработки данных.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВХьюз Камерон «Параллельное и распределенное программирование на С++» [Электронный ресурс] Режим доступа: http://www.f1-delphi.ru/books/parallelnoe_i_raspredelennoe_p/Богомолов В.А. лекция «Планирование процессов» [Электронный ресурс] Режим доступа: http://www.moodle.ipm.kstu.ru/mod/page/view.php?id=55Э. Таненбаум «Современные операционные системы» [Электронный ресурс] Режим доступа: http://ipm.kstu.ru/os/lit/Sovremennie.OS.2-e.izd.djvuВдовикина Н.В., Машечкин И.В., Терехин А.Н., Томилин А.Н. «Операционные системы: взаимодействие процессов» учебно-методическое пособие. Издательский отдел факультета ВМиК МГУ 2008, - 215 c. ISBN 978-5-89407-341-5Курынин Р.В., Машечкин И.В., Терехин А.Н. «Операционные системы» конспект лекций [Электронный ресурс] Режим доступа: https://ftp.vtyulb.ru/Операционные%20системы%20%28машбук%29.pdf
2) Богомолов В.А. лекция «Планирование процессов» [Электронный ресурс] Режим доступа: http://www.moodle.ipm.kstu.ru/mod/page/view.php?id=55
3) Э. Таненбаум «Современные операционные системы» [Электронный ресурс] Режим доступа: http://ipm.kstu.ru/os/lit/Sovremennie.OS.2-e.izd.djvu
4) Вдовикина Н.В., Машечкин И.В., Терехин А.Н., Томилин А.Н. «Операционные системы: взаимодействие процессов» учебно-методическое пособие. Издательский отдел факультета ВМиК МГУ 2008, - 215 c. ISBN 978-5-89407-341-5
5) Курынин Р.В., Машечкин И.В., Терехин А.Н. «Операционные системы» конспект лекций [Электронный ресурс] Режим доступа: https://ftp.vtyulb.ru/Операционные%20системы%20%28машбук%29.pdf
Вопрос-ответ:
Что такое параллельная обработка данных?
Параллельная обработка данных - это метод, при котором задачи выполняются одновременно с использованием нескольких вычислительных ресурсов.
Какие существуют виды параллельной обработки данных?
Существуют два основных вида параллельной обработки данных: синхронная и асинхронная. В синхронной обработке данные обрабатываются последовательно в том порядке, в котором они поступают. В асинхронной обработке данные обрабатываются параллельно и результаты обработки могут быть возвращены в произвольном порядке.
Какие достоинства и недостатки параллельной обработки данных?
Параллельная обработка данных позволяет сократить время выполнения задач и повысить производительность системы. Однако она требует дополнительных вычислительных ресурсов и может быть сложной в реализации.
Что такое синхронная обработка данных?
Синхронная обработка данных - это вид параллельной обработки, при котором задачи выполняются последовательно в том порядке, в котором они поступают. Это означает, что каждая задача должна завершиться перед началом выполнения следующей.
Что такое асинхронная обработка данных?
Асинхронная обработка данных - это вид параллельной обработки, при котором задачи выполняются параллельно и результаты обработки могут быть возвращены в произвольном порядке. Это позволяет ускорить выполнение задач и повысить производительность системы.
Какие типы параллельной обработки данных существуют?
Существуют два основных типа параллельной обработки данных: синхронная и асинхронная. В синхронной обработке данные обрабатываются последовательно и каждый процесс ждет окончания выполнения предыдущего процесса, прежде чем начать свою работу. В асинхронной обработке данные обрабатываются параллельно и процессы могут работать независимо друг от друга.
Какие модели параллельной обработки данных существуют?
Существуют различные модели параллельной обработки данных, включая модель Флинна, которая разделяет системы на основе числа потоков команд и данных. Также существуют модели с разделяемой памятью и модели с распределенной памятью. Каждая модель имеет свои особенности и применяется в определенных ситуациях.
Каковы основные достоинства и недостатки параллельной обработки данных?
Параллельная обработка данных имеет ряд преимуществ, включая увеличение производительности, сокращение времени выполнения и возможность решения сложных задач. Однако, она также имеет некоторые недостатки, такие как сложность программирования, возможность возникновения конфликтов при доступе к общим ресурсам и увеличение энергопотребления.