Параллельная обработка данных. Синхронная и асинхронная обработка данных в высокопроизводительных ЭВМ. Параллельные процессы.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Информационные технологии
  • 22 22 страницы
  • 5 + 5 источников
  • Добавлена 05.01.2022
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
ВВЕДЕНИЕ 3
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

1) Хьюз Камерон «Параллельное и распределенное программирование на С++» [Электронный ресурс] Режим доступа: http://www.f1-delphi.ru/books/parallelnoe_i_raspredelennoe_p/
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

Вопрос-ответ:

Что такое параллельная обработка данных?

Параллельная обработка данных - это метод, при котором задачи выполняются одновременно с использованием нескольких вычислительных ресурсов.

Какие существуют виды параллельной обработки данных?

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

Какие достоинства и недостатки параллельной обработки данных?

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

Что такое синхронная обработка данных?

Синхронная обработка данных - это вид параллельной обработки, при котором задачи выполняются последовательно в том порядке, в котором они поступают. Это означает, что каждая задача должна завершиться перед началом выполнения следующей.

Что такое асинхронная обработка данных?

Асинхронная обработка данных - это вид параллельной обработки, при котором задачи выполняются параллельно и результаты обработки могут быть возвращены в произвольном порядке. Это позволяет ускорить выполнение задач и повысить производительность системы.

Какие типы параллельной обработки данных существуют?

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

Какие модели параллельной обработки данных существуют?

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

Каковы основные достоинства и недостатки параллельной обработки данных?

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