Параллельная обработка. Процесс параллельной обработки данных. Лекции по дисциплине

Faq 17.03.2019
Faq

Электронная почта оказалась во многом удобнее обычной, "бумажной".

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

  • - электронной почтой сообщение в большинстве случаев доставляется гораздо быстрее, чем обычной;
  • - стоит это дешевле;
  • - для отправки письма нескольким адресатам не нужно печатать его во многих экземплярах, достаточно однажды ввести текст в компьютер;
  • - если нужно перечитать, исправить полученное или составленное Вами письмо, или использовать выдержки из него, это сделать легче, поскольку текст уже находится в машине;
  • - удобнее хранить большое количество писем в файле на диске, чем в ящике стола; в файле легче и искать;
  • - и, наконец, экономится бумага.

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

Это самое популярное на сегодня использование Internet у нас в стране. Оценки говорят, что в мире имеется более 50 миллионов пользователей электронной почты. В целом же в мире трафик электронной почты (протокол smtp) занимает только 3.7 % всего сетевого. Популярность ее объясняется, как насущными требованиями, так и тем, что большинство подключений - подключения класса ``доступ по вызову"" (с модема), а у нас в России, вообще, в подавляющем большинстве случаев - доступ UUCP. E-mail доступна при любом виде доступа к Internet.

E-mail (Electronic mail) - электронная почта (простонародн. - электронный аналог обычной почты. С ее помощью вы можете посылать сообщения, получать их в свой электронный почтовый ящик, отвечать на письма ваших корреспондентов автоматически, используя их адреса, исходя из их писем, рассылать копии вашего письма сразу нескольким получателям, переправлять полученное письмо по другому адресу, использовать вместо адресов (числовых или доменных имен) логические имена, создавать несколько подразделов почтового ящика для разного рода корреспонденции, включать в письма текстовые файлы, пользоваться системой "отражателей почты" для ведения дискуссий с группой ваших корреспондентов и т.д. Из Internet вы можете посылать почту в сопредельные сети, если вы знаете адрес соответствующего шлюза, формат его обращений и адрес в той сети.

Используя e-mail, вы можете пользоваться ftp в асинхронном режиме. Существует множество серверов, поддерживающих такие услуги. Вы посылаете e-mail в адрес такой службы, содержащую команду этой системы, например, дать листинг какой-то директории, или переслать файл такой-то к вам, и вам приходит автоматически ответ по e-mail с этим листингом или нужным файлом. В таком режиме возможно использование почти всего набора команд обычного ftp. Существуют серверы, позволяющие получать файлы по ftp не только с них самих, но с любого ftp-сервера, который вы укажете в своем послании e-mail.

E-mail дает возможность проводить телеконференции и дискуссии. Для этого используются, установленные на некоторых узловых рабочих машинах, mail reflector-ы. Вы посылаете туда сообщение с указанием подписать вас на такой-то рефлектор (дискуссию, конференцию, etc.), и вы начинаете получать копии сообщений, которые туда посылают участники обсуждения. Рефлектор почты просто по получении электронных писем рассылает их копии всем подписчикам.

E-mail дает возможность использования в асинхронном режиме не только ftp, но и других служб, имеющих подобные сервера, предоставляющие такие услуги. Например, сетевых новостей, Archie, Whois.

Пересылать по e-mail можно и двоичные файлы, не только текстовые. В UNIX, например, для этого используется программы UUENCODE и UUDECODE.

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

Анонимность также исключена: источник прослеживается без труда. Не стоит пользоваться техническими особенностями вашего терминала.

Когда сеть ARPANET впервые вышла на арену, ее разработчики ожидали, что преобладающим будет трафик (то есть объем информации, передаваемой между узлами) типа "процесс-процесс". Они ошиблись. К их великому изумлению, объем электронной почты между людьми перекрыл объем связи между процессами. В то время, как снег, дождь, жара могли остановить почтовых курьеров, возможности сети ARPANET доставлять сообщения от западного побережья Соединённых Штатов к восточному в течение нескольких секунд начали революционные процессы в средствах сообщения.

Основная привлекательность электронной почты - ее быстрота. Однако есть другие преимущества, которые не так широко известны. Телефон также предоставляет почти мгновенный доступ, но исследования показали, что около 75 % телефонных вызовов заканчиваются безуспешно ("Я очень сожалею, но мистер Смит на совещании/уехал в командировку/вышел из комнаты"). Электронная почта имеет ту же скорость доступа, что и телефон, но не требует одновременного присутствия обоих абонентов на разных концах телефонной линии. Кроме того, она оставляет письменную копию послания, которое может быть сохранено или передано дальше. Более того, письмо одновременно может быть послано нескольким абонентам.

Предположим, что вам повезло, и вы стали счастливым обладателем персонального компьютера. Вы составили послание для своего абонента - ввели в компьютер текст, подготовили к передаче файл, содержащий какую-либо программу или, например, графические данные, указали адрес и, сняв телефонную трубку, передали по телефонной линии ваше письмо. Абонента нет дома? Не беда: письмо попадет к нему, как только он включит свой компьютер. Его телефон занят? Тоже не страшно: как только линия освободится, он сможет получить ваше послание, даже если вы уже давно повесили трубку. В этой, на первый взгляд, фантастической истории есть единственное преувеличение. Поднимать трубку и набирать телефонный номер будете не вы, а весьма интеллектуальное электронное устройство, называемое модемом. В простейшем случае передача вашего письма произойдет следующим образом: сначала по запускаемой вами стандартной процедуре ваш модем постарается связаться с модемом, установленном на почтовой машине (аналог - почтовое отделение связи). В RelCom это производится рассматриваемой в нашем руководстве программным пакетом UUPC.

Как только будет установлена связь, произойдет идентификация вашего абонентского пункта (вашего компьютера), проверка пароля и передача подготовленной вами информации. После этого ваш модем "повесит трубку".

Вы можете спокойно заниматься своими делами, а в это время почтовая машина проверит, насколько правильный адрес вы указали, и, если все в порядке, постарается связаться с вашим абонентом. Как только два модема - почтовый и вашего абонента -"договорятся", произойдет передача вашего послания. Обмен информацией состоялся.

Удобство такого средства связи трудно переоценить. Быстрота, необременительность, возможность передавать информацию любого объема в любую точку мира.

Хотя электронная почта может рассматриваться как частный случай передачи файлов, она имеет ряд особенностей, не привычных для стандартных процедур пересылки файлов. Во-первых, отправитель и получатель почти всегда люди, а не машины. Это означает, что система электронной почты состоит из двух различных, но тесно взаимосвязанных частей: одна обеспечивает взаимодействие с человеком (например, составление, редактирование, прочтение сообщений), другая - передачу сообщений (например, рассылка по спискам, обеспечение передачи).

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

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

Одно из простейших определений электронной почты, это письмо, отправленное в электронном виде. Электронная почта впервые была использована в 1965 году, позволив пользователям взаимодействовать друг с другом через компьютерную сеть. SDC"s Q32 и MIT"s CTSS были первыми компьютерными системами, использовавшими электронную почту для общения. В 1966 году, этот почтовый сервис был представлен общественности.

Что такое электронная почта?

Электронную почту принято называть "email" что является сокращением от "electronic mail". Email - это система, используемая для создания, отправки/получения и хранения данных в цифровом формате по компьютерной сети. Ранее система электронной почты была основана на простом протоколе передачи почты (SMTP), этот протокол используется для отправки почты от одного сервера к другому. Сегодняшние технологии электронной почты используют «store-and-forward» модель (т.е. передача данных с промежуточным хранением). В этой модели пользователи отправляют и получают информацию на свои компьютеры. Однако компьютер используется только для подключения архитектуре электронной почты. Создание, передача и хранение электронной почты происходит только тогда, когда установлена связь с архитектурой электронной почты.


Существует ряд преимуществ использования почтового сервиса. Эти преимущества перечислены в порядке, важности для пользователей.

Простота в использовании

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

Влияние на экологию

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

Скорость

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

Неформальный и разговорный стиль

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

Хранение данных

Поставщики услуг электронной почты предлагают своим клиентам / пользователям достаточно места для хранения писем. Также, процесс сортировки и организации писем, по теме или по другим критериям (Дата, Отправитель и т. д.), удобен для пользователей.

Вложения

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

Цитирование

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

Легко расставлять приоритеты

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

Надежность и безопасность

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

Использование графики

Пользователи могут отправлять красочные открытки и интересные фотографии по электронной почте. Это положение имеет огромное значение для услуг электронной почты.

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

Дешевый сервис

Расходы, понесенные в связи с использованием услуг электронной почты, являются незначительными по сравнению с традиционной почтовой службой. Однако расходы также зависят от того, какое у вас Интернет-соединение. Те, кто не имеют доступа в Интернет дома, могут воспользоваться услугами интернет-кафе.

Преимущества технологического развития

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


Хотя у службы эл. почты, есть много преимуществ, она также имеет определенные ограничения и недостатки.

Спам

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

Как правило, спам-это обман, практикуемый при отправке писем. Спуфинг - это практика, которая обычно используется для рассылки спама. Спуфинг предполагает обман адресата, путем изменения заголовка электронного письма или адреса, с которого оно отправлено.

Взлом

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

Не подходит для бизнеса

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

Вирусы

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

Переполненный почтовый ящик

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

Отсутствует личный контакт

Даже в наш век цифровых технологий, есть многие люди, которые чувствуют себя комфортно, читая рукописные слова. Для таких людей в электронных письмах не хватает, чего-то личностного.

Необходим доступ в интернет

Существует множество мест в мире, где люди не имеют доступа к Интернету. Электронная почта, в таких местах бесполезна.

Регулярная проверка почтового ящика

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

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


E-mail, или электронная почта, - нынче штука очень нужная и даже обязательная, если брать во внимание контекст некоторых деловых и бытовых задач рядового пользователя. Например, когда требуется срочно чего-то кому-то сообщить (хорошее или плохое!), доставить отчёт о проделанной работе, переслать копии документов и т.д.

И кто бы спорил, что это не так. Однако, как и любая другая технология, объект, атрибут, предмет, в общем, что угодно, интернет-почта имеет свои достоинства и недостатки. Каковы они, эти самые «плюсы» и «минусы», и расскажет вам эта статья.

Кстати, знание преимуществ и недостатков электронной почты пригодится вам не раз и не два в процессе пользования ей. Поможет избавиться от уязвимостей, наладить, как следует, уровень безопасности, ну и настроить самым удобным образом профиль для своих нужд. Плюс к этому - вы кое-что ещё узнаете о том, в чём уступает «бумажная» почтовая служба компьютерному e-mail. Какие она имеет привлекательные для рядового обывателя функциональные «фишки».

Итак, мы начинаем обзор!

Преимущества

Начнём наше повествование с хорошего, с бочки мёда, оставив плохое, собственно, ложку дёгтя на потом. Если вдруг в вашем сознании сейчас проблеснул протест, типа «Как же так! Неужели e-mail обладает негативными характеристиками?», то расстраиваться не спешите. Забегая наперёд, скажем, есть и такие моменты, но некоторые из них можно убрать, поправить и т.д.

Простота

Электронный формат онлайн-коммуникации перед обычной напрочь лишён бумажной волокиты, необходимости покупать конверты и марки. Авторизовался в ящике, написал письмецо, если нужно, прикрепил к нему файл, нажал кнопку «Отправить» и всё - дело сделано.

Скорость

Через мгновение-другое после отправки адресат, или получатель, уже будет рассматривать ваше послание у себя на дисплее. Причём не важно, где он проживает - в соседнем дворе или за океаном, на другом краю планеты. В этом и есть сила интернета!

Работа с данными

В достоинствах электронной почты приоритетное место занимает возможность переправлять файлы практически любого формата и ещё при этом сохранять их на сервере службы. Каждому пользователю может предоставляться 5, 10, 100 Гб свободного пространства на удалённом диске.

Экономия денежных средств

Львиная доля e-mail состоит в категории бесплатных сервисов онлайн. То есть, регистрируясь в них, вы деньги никому не перечисляете и не платите каждый месяц за пользование ящиком. Исключение в этом аспекте составляют лишь премиум-аккаунты с расширенным функционалом и отдельные специализированные сервисы (например, для ведения бизнеса).

Массовая рассылка

Если вам нужно разослать важную информацию определённому кругу людей, вам не нужно будет многократно копировать письмо и высылать его отдельно каждому участнику. Для решения этой задачи нужно лишь будет в форме отправки указать все адреса получателей. И всё!

Сортировка

Если вы получаете огромное количество писем и столько же отсылаете их, профиль e-mail не даст вам в них запутаться. Входящие и исходящие сообщения можно сортировать по дате, меткам, адресату. Вдобавок к этому, вы можете мгновенно отыскать нужное письмо при помощи внутреннего поиска, если перечислите в строке запроса его признаки (тема, автор, слова их содержания и т.д.).

Минимум средств

Для работы c e-mail вам понадобится лишь стабильное интернет-соединение (не обязательно с высокой скоростью) и девайс под управлением ОС (компьютер, ноутбук, смартфон, планшет).

Безопасность

Почтовые службы надёжно защищают учётные записи и «депеши» от кражи, взлома, изменения. Но при условии того, что пользователь соблюдает все меры безопасности.

Графика и средства редактирования

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

Мобильность

Благодаря девайсам ваш e-mail будет всегда под рукой. Вы запросто можете просмотреть корреспонденцию в ящике на телефоне или планшете, предоставив его учётные данные (логин и пароль).

Недостатки

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

Реклама в Сети была, есть и будет. Она вездесуща и, конечно же, присутствует в e-mail. Хочет того пользователь или нет, но наряду с полезной перепиской к нему приходят рекламные письма, или «спам»; иногда даже в изрядных количествах. Некоторые из них безобидны - содержат только коммерческое предложение. А другие опасны - содержат вирусы.

Вероятность взлома

Нет 100% гарантии того, что ваш ящик никогда и никто не взломает. Некоторые злоумышленники умудряются выманивать учётные данные у пользователей самыми разнообразными способами. При помощи вирусов и средств социальной инженерии.

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

Также уменьшить этот «минус» возможно посредством хорошей антивирусной программы. Электронный сторож будет бдить и скрупулёзно проверять все процессы, происходящие на уровне сетевых соединений и непосредственно в операционной системе ПК.

Требуется интернет-подключение

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

Вирусы

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

Вот такие вот недостатки и преимущества электронной почты. Впрочем, если провести беглый анализ - даже по количеству - всё равно полезностей e-mail имеет несравнимо больше. Но, безусловно, решать вам, уважаемый читатель, пользоваться или нет почтовым сервисом.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН

Северо - Казахстанский государственный университет им. М. Козыбаева

Факультет информационных технологии

Кафедра Информационных систем

Процесс параллельной обработки данных

Выполнила: Махкамбаева А.С.

Проверил: Касимов И. Р.

Петропавловск, 2014

Введение

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

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

В 1967 году Джин Амдал сформулировал закон ограничения роста производительности при распараллеливании вычислений: «В случае, когда задача разделяется на несколько частей, суммарное время ее выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента». Согласно этому закону, ускорение выполнения программы за счет распараллеливания её инструкций ограничено временем, необходимым для выполнения её последовательных инструкций.

Классификация по Флинну

процесс синхронизация доступ планирование

В основе классификации лежат два понятия: потоки команд и потоки данных. Система с N процессорами имеет N счетчиков команд и, следовательно, N потоков команд.

Потоки команд

Потоки данных

Названия

SISD (Single Instruction, Single Data) -- архитектура компьютера, в которой один процессор выполняет один поток команд, оперируя одним потоком данных. Для данного класса возможен только псевдопараллелизм.

SIMD (Single Instruction, Multiple Data) -- архитектура компьютера, позволяющая обеспечить параллелизм на уровне данных. Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию, созданную единственным блоком управления, относительно разных данных. В любой момент в каждом процессоре выполняется одна и та же команда, но обрабатываются различные данные. Реализуется синхронный параллельный вычислительный процесс.

MISD (Multiple Instruction, Simple Data) -- архитектура компьютера, где несколько функциональных модулей (два или более) выполняют различные операции над одними данными. Отказоустойчивые компьютеры, выполняющие одни и те же команды избыточно с целью обнаружения ошибок, как следует из определения, принадлежат к этому типу.

MIMD (Multiple Instruction, Multiple Data) -- архитектура компьютера, где несколько независимых процессоров работают как часть большой системы. Обработка разделена на несколько потоков (обеспечивается параллелизм), каждый с собственным аппаратным состоянием процессора, в рамках единственного определённого программным обеспечением процесса или в пределах множественных процессов.

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

OpenMP (Open Multi-Processing) -- открытый стандарт для распараллеливания программ на языках С, С++ и Фортран. Описывает совокупность команд, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. OpenMP реализует параллельные вычисления с помощью многопоточности, в которой «главный» поток создает набор подчиненных потоков и задача распределяется между ними.

Задачи, выполняемые потоками параллельно, также как и данные, требуемые для выполнения этих задач, описываются с помощью специальных директив препроцессора соответствующего языка -- прагм. Программа на C должна включать файл "omp.h".

Следующий цикл складывает массивы «a» и «b» поэлементно. Все, что требуется для параллельного выполнения в этом случае - одна прагма, вставленная непосредственно перед циклом.

#pragma omp parallel for

for (i=0; i < numPixels; i++)

c[i] = a[i]+b[i];

В этом примере используется "распределение нагрузки" - общий термин, применяемый в OpenMP для описания распределения рабочей нагрузки между потоками. Если распределение нагрузки применяется с директивой for, как показано в примере, итерации цикла распределяются между несколькими потоками, так что каждая итерация цикла выполняется только один раз, параллельно одним или несколькими потоками. OpenMP определяет, сколько потоков следует создать, а также наилучший способ создания, синхронизации и уничтожения потоков. Все, что требуется от программиста - указать OpenMP, какой именно цикл следует распараллелить.

Баланс нагрузки (распределение рабочей нагрузки поровну между потоками) является одним из наиболее важных атрибутов параллельного выполнения приложения. Без него некоторые потоки могут завершить работу значительно раньше остальных, что приводит к простою вычислительных ресурсов и потере производительности.

По умолчанию, OpenMP предполагает, что все итерации цикла занимают одинаковое время. В результате OpenMP распределяет итерации цикла между потоками примерно поровну и таким образом, чтобы минимизировать вероятность возникновения конфликтов памяти вследствие ее неправильного совместного использования.

#pragma omp parallel for

for (i=2; i < 10; i++)

factorial[i] = i * factorial;

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

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

MPI (Message Passing Interface) -- программный интерфейс для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. В первую очередь MPI ориентирован на системы с распределенной памятью. Существуют реализации для языков Фортран, С и С++.

В первой версии MPI количество процессов (ветвей) задается в момент запуска программы, т.е. не существует возможности порождать ветви динамически. В версии 2.0 эта возможность появилась.

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

Для C, общий формат имеет вид

rc = MPI_Xxxxx(parameter, ...);

Заметим, что регистр здесь важен. Например, MPI должно быть заглавным, так же как и первая буква после подчеркивания. Все последующие символы долны быть в нижнем регистре. Переменная rc - есть некий код возврата, имеющий целый тип. В случае успеха, он устанавливается в MPI_SUCCESS. Программа на C должна включать файл "mpi.h".

Сообщения MPI состоят из двух основных частей: отправляемые/получаемые данные, и сопроводительная информация (записи на конверте /оболочке/), которая помогает отправить данные по определенному маршруту.

Данным соответствует старт буфера, число, тип данных. Буфер - это просто память, которую компилятор выделил для переменной (часто массива) в вашей программе. Старт буфера - адрес, где данные начинаются. Например, начало массива в вашей программе. Число - количество элементов (не байтов!) данных в сообщении. Тип данных определяет размер одного элемента.

К информации «на обложке» относятся ранг в коммуникаторе - идентификатор процесса в коммуникационном поле, тег - произвольное число, которое помогает различать сообщения и сам коммуникатор, проверка которого обеспечивает передачу внутри одного коммуникационного поля.

Параллельная обработка данных

Существует несколько способов разделения обязанностей между процессами:

* делегирование («управляющий-рабочий»);

* сеть с равноправными узлами;

* конвейер;

* «изготовитель-потребитель».

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

В модели делегирования один поток («управляющий») создает потоки («рабочие») и назначает каждому из них задачу. Управляющему потоку нужно ожидать до тех пор, пока все потоки не завершат выполнение своих задач. Управляющий поток делегирует задачу, которую каждый рабочий поток должен выполнить, путем задания некоторой функции. Вместе с задачей на рабочий поток возлагается и ответственность за ее выполнение и получение результатов. Кроме того, на этапе получения результатов возможна синхронизация действий с управляющим (или другим) потоком.

Если в модели делегирования есть управляющий поток, который делегирует задачи рабочим потокам, то в модели с равноправными узлами все потоки имеют одинаковый рабочий статус. Несмотря на существование одного потока, который изначально создает все потоки, необходимые для выполнения всех задач, этот поток считается рабочим потоком, но он не выполняет никаких функций по делегированию задач. В этой модели нет никакого централизованного потока, но на рабочие потоки возлагается большая ответственность. Все равноправные потоки могут обрабатывать запросы из одного входного потока данных, либо каждый рабочий поток может иметь собственный входной поток данных, за который он отвечает. Рабочие потоки могут нуждаться во взаимодействии и разделении ресурсов.

Модель конвейера подобна ленте сборочного конвейера в том, что она предполагает наличие потока элементов, которые обрабатываются поэтапно. На каждом этапе отдельный поток выполняет некоторые операции над определенной совокупностью входных данных. Когда эта совокупность данных пройдет все этапы, обработка всего входного потока данных будет завершена. Этот подход позволяет обрабатывать несколько входных потоков одновременно. Каждый поток отвечает за получение промежуточных результатов, делая их доступными для следующего этапа (или следующего потока) конвейера Последний этап (или поток) генерирует результаты работы конвейера в целом.

В модели «изготовитель-потребитель» существует поток-«изготовитель», который готовит данные, потребляемые потоком-«потребителем». Данные сохраняются в блоке памяти, разделяемом между потоками «изготовителем» и «потребителем». Поток-изготовитель» должен сначала приготовить данные, которые затем поток-потребитель» получит. Такому процессу необходима синхронизация. Если поток-изготовитель» будет поставлять данные гораздо быстрее, чем поток-«потребитель» сможет их потреблять, поток-«изготовитель» несколько раз перезапишет результаты, полученные им ранее, прежде чем поток-«потребитель» успеет их обработать. Но если поток-«потребитель» будет принимать данные гораздо быстрее, чем поток-изготовитель» сможет их поставлять, поток-«потребитель» будет либо снова обрабатывать уже обработанные им данные, либо попытается принять еще не подготовленные данные.

Синхронные и асинхронные процессы

Синхронные процессы - процессы с перемежающимся выполнением, когда один процесс приостанавливает свое выполнение до тех пор, пока не завершится другой. Например, процесс А, родительский, при выполнении создает процесс В, сыновний. Процесс А приостанавливает свое выполнение до тех пор, пока не завершится процесс В. После завершения процесса В его выходной код помещается в таблицу процессов. Тем самым процесс А уведомляется о завершении процесса В. Процесс А может продолжить выполнение, а затем завершиться или завершиться немедленно.

Асинхронные процессы выполняются независимо один от другого. Это означает, что процесс А будет выполняться до конца безотносительно к процессу В. Между асинхронными процессами могут быть прямые родственные («родитель-сын») отношения, а могут и не быть. Если процесс А создает процесс В, они оба могут выполняться независимо, но в некоторый момент родитель должен получить статус завершения сыновнего процесса. Если между процессами нет прямых родственных отношений, у них может быть общий родитель.

Асинхронные процессы могут совместно использовать такие ресурсы, как файлы или память. Это может потребовать (или не потребовать) синхронизации или взаимодействия при разделении ресурсов.

Синхронизация процессов -- приведение нескольких процессов к такому их протеканию, когда определённые стадии разных процессов совершаются в определённом порядке, либо одновременно.

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

Межпроцессное взаимодействие

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

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

Сообщение - метод взаимодействия, когда один процесс посылает сообщение второму, а тот получает его. Если сообщение не пришло - второй процесс блокируется (ожидает сообщения) или сразу возвращает код ошибки.

С системами передачи сообщения связано большое количество проблем. Например, сообщение может потеряться. Чтобы избежать потери, получатель отсылает обратно сообщение с подтверждением приема. Если отправитель не получает подтверждения через некоторое время, он отсылает сообщение еще раз.

Теперь представим, что сообщение получено, а подтверждение до отправителя не дошло. Отправитель пошлет его еще раз и до получателя оно дойдет дважды. Крайне важно, чтобы получатель мог отличить копию предыдущего сообщения от нового. Это легко решается с помощью внедрения номера сообщения в его тело.

Семафор -- объект, позволяющий войти в заданный участок кода (обычно - критическую секцию) не более чем n процессам.

С семафором возможны три операции:

1) init(n); - инициализация счетчика (число, переданное счетчику, является количеством процессов, которые могут одновременно обращаться к критической секции)

2) wait(); - ждать пока счётчик станет больше 0; после этого уменьшить счётчик на единицу.

3) leave(); - увеличить счетчик на единицу.

Перед обращением процесса к критической секции необходимо вызвать метод wait(), после выполнения которого гарантировано, что количество процессов, одновременно обращающихся к ней не превышает n-1. Тогда процесс может продолжить работу и выполнить метод leave() после работы с критической секцией, тем самым дав знать остальным процессам, что “место освободилось”.

Если количество вызовов методов wait() и leave() не совпадает, то работа системы будет не корректной так же, как и в случае взаимной блокировки процессов - ситуации, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами:

Процесс 1

Процесс 2

Хочет захватить A и B, начинает с A

Хочет захватить A и B, начинает с B

Захватывает ресурс A

Захватывает ресурс B

Ожидает освобождения ресурса B

Ожидает освобождения ресурса A

Взаимная блокировка

Отладка взаимных блокировок, как и других ошибок синхронизации, усложняется тем, что для их возникновения нужны специфические условия одновременного выполнения нескольких процессов (в вышеописанном примере если бы процесс 1 успел захватить ресурс B до процесса 2, то ошибка не произошла бы).

Мьютексы -- это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний -- отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта mutex, последний переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным.

Задача мьютекса -- защита объекта от доступа к нему других потоков, отличных от того, который завладел мьютексом. В каждый конкретный момент только один поток может владеть объектом, защищённым мьютексом. Если другому потоку будет нужен доступ к переменной, защищённой мьютексом, то этот поток засыпает до тех пор, пока мьютекс не будет освобождён.

Test-and-set -- простая неразрывная (атомарная) процессорная инструкция, которая копирует значение переменной в регистр, и устанавливает некое новое значение. Во время исполнения данной инструкции процессор не может прервать её выполнение и переключится на выполнение другого потока. Если используется многопроцессорная архитектура, то пока один процессор выполняет эту инструкцию с ячейкой памяти, то другие процессоры не могут получить доступ к этой ячейке.

Алгоритм Деккера - первое известное корректное решение проблемы взаимного исключения в конкурентном программировании. Он позволяет двум потокам выполнения совместно использовать неразделяемый ресурс без возникновения конфликтов, используя только общую память для коммуникации.

Если два процесса пытаются перейти в критическую секцию одновременно, алгоритм позволит это только одному из них, основываясь на том, чья в этот момент очередь. Если один процесс уже вошёл в критическую секцию, другой будет ждать, пока первый покинет её. Это реализуется при помощи использования двух флагов (индикаторов "намерения" войти в критическую секцию) и переменной turn (показывающей, очередь какого из процессов наступила).

Одним из преимуществ алгоритма является то, что он не требует специальных Test-and-set инструкций и вследствие этого он легко переносим на разные языки программирования и архитектуры компьютеров. Недостатками можно назвать его применимость к случаю только с двумя процессами и использование Busy waiting вместо приостановки процесса (использование busy waiting предполагает, что процессы должны проводить минимальное количество времени внутри критической секции).

Алгоритм Петерсона -- программный алгоритм взаимного исключения потоков исполнения кода. Хотя изначально был сформулирован для 2-х поточного случая, алгоритм может быть обобщён для произвольного количества потоков. Алгоритм условно называется программным, так как не основан на использовании специальных команд процессора для запрета прерываний, блокировки шины памяти и т. д., используются только общие переменные памяти и цикл для ожидания входа в критическую секцию исполняемого кода.

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

Общий принцип алгоритмом Петерсона для 2-х потоков:

Размещено на http://www.allbest.ru/

Планирование процессов

Планирование - обеспечение поочередного доступа процессов к одному процессору.

Планировщик - отвечающая за это часть операционной системы.

Алгоритм планирования без вытеснения (неприоритетный) - не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу.

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

Процессы размещаются в приоритетных очередях в соответствии со стратегией Планирования. В системах UNIX/Linux используются две стратегии планирования: FIFO (сокр. от First In First Out, т.е. первым прибыл, первым обслужен) и RR (сокр. От round-robin, т.е. циклическая).

При использовании стратегии FIFO процессы назначаются процессору в соответствии со временем поступления в очередь.

RR-планирование совпадает с FIFO-планированием с одним исключением: после истечения кванта времени процесс помещается в конец своей приоритетной очереди, и процессору назначается следующий (по очереди) процесс.

Для обеспечения параллельной работы процессов может подойти приоритетное планирование. Каждому процессу присваивается приоритет, и управление передается процессу с самым высоким приоритетом. Приоритет может быть динамический и статический. Динамический приоритет может устанавливаться так: П=1/Т, где Т- часть использованного в последний раз кванта (если использовано 1/50 кванта, то приоритет 50. Если использован весь квант, то приоритет 1).

Часто процессы объединяют по приоритетам в группы, и используют приоритетное планирование среди групп, но внутри группы используют циклическое планирование.

Размещено на Allbest.ur

Подобные документы

    Структура, специфика и архитектура многопроцессорных систем; классификация Флинна. Организация взаимного исключения для синхронизации доступа к разделяемым ресурсам. Запрещение прерываний; семафоры с драйверами устройств. Кластеры распределения нагрузки.

    курсовая работа , добавлен 07.06.2014

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

    презентация , добавлен 24.01.2014

    Улучшение параметров модулей памяти. Функционирование и взаимодействие операционной системы с оперативной памятью. Анализ основных типов, параметров оперативной памяти. Программная часть с обработкой выполнения команд и размещением в оперативной памяти.

    курсовая работа , добавлен 02.12.2009

    Основные функции и процессы подсистемы управления процессами. Диспетчеризация процессов (потоков). Алгоритмы планирования выполнения потоков. Назначение и разновидности приоритетов в операционных системах. Функции подсистемы управления основной памятью.

    презентация , добавлен 20.12.2013

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

    дипломная работа , добавлен 09.09.2010

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

    курсовая работа , добавлен 21.06.2013

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

    курсовая работа , добавлен 21.06.2013

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

    лекция , добавлен 05.02.2009

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

    презентация , добавлен 24.07.2013

    Классификация параллельных ВС. Системы с общей и распределенной памятью. Конвейеры операций. Производительность идеального конвейера. Суперскалярные архитектуры. VLIW-архитектура. Предсказание переходов. Матричные процессоры. Законы Амдала и Густафсона.

Министерство образования и науки Российской Федерации

ФГБОУ ВПО «Брянская государственная инженерно-технологическая

академия»

Кафедра информационных технологий

Последовательная и параллельная обработка информации

Расчётно-графическая работа № 1

по дисциплине

«Технологии обработки информации»

Вариант № 16

РГР-02068025.230400.084

Брянск 2015

Введение 3

Параллельная обработка информации 4

Системы с разделением памяти 6

Параллельная SQL-обработка 7

Последовательная обработка информации 9

Простые пакетные системы 10

Список литературы 13

Введение

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

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

Параллельная обработка информации – модель обработки информации, согласно которой информация проходит ряд преобразований в определенных функциональных блоках – так, что в каждый момент времени ее обработка ведется одновременно (параллельно) в нескольких блоках.

Параллельная обработка информации

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

Параллельная обработка . Если некое устройство выполняет одну операцию за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если предположить, что есть пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести единиц времени. Аналогично система из N устройств ту же работу выполнит за 1000/N единиц времени. Подобные аналогии можно найти и в жизни: если один солдат вскопает огород за 10 часов, то рота солдат из пятидесяти человек с такими же способностями, работая одновременно, справятся с той же работой за 12 минут - принцип параллельности в действии!

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

Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).

Казалось бы, конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! Так, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась тысяча автомобилей, то действуя по аналогии с предыдущим примером надо набрать тысячу бригад, каждая из которых в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и сделать это за то же время, что машина прежде находилась на конвейере.

Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь. Все современные микропроцессоры используют тот или иной вид параллельной обработки. В ядре Pentium 4 на разных стадиях выполнения может одновременно находиться до 126 микроопераций. Вместе с тем, сами эти идеи появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных, компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах.

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

Когда несколько приложений запрашивают обработку своих заданий на однопроцессорном компьютере, весь объем работы приходится выполнять его единственному процессору. Целью параллельной обработки обычно является повышение производительности приложений. Когда приложение выдает запрос на выполнение задания для многопроцессорного компьютера, компьютер разбивает это задание на логические подзадачи, а затем обрабатывает их с помощью нескольких процессоров параллельно, что уменьшает время выполнения задания. Число подзадач, получаемых в результате разбиения одного большого задания, называется степенью параллельности. Уменьшение времени обработки информации, необходимого для выполнения задачи, прямо пропорционально степени параллельности. Быстродействие систем с параллельной обработкой стараются повышать так, чтобы обеспечить максимальную производительность каждого процессора системы.



Рекомендуем почитать

Наверх