Курс лекций 20 часов





НазваниеКурс лекций 20 часов
страница4/21
Дата публикации21.09.2013
Размер1.37 Mb.
ТипЛекция
100-bal.ru > Информатика > Лекция
1   2   3   4   5   6   7   8   9   ...   21

5. Параллельное и событийно-управляемое программирование


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

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

Процесс ::= Простой процесс | Структурный процесс
Простой процесс ::= Послать значение | Принять значение | Процесс вычислительной модели
Структурный процесс ::= Последовательный процесс | Параллельный процесс
Послать значение ::= Канал связи << Выражение ;
Принять значение ::= Канал связи >> Выражение ;
Процесс вычислительной модели ::= нечто, определяемое конкретным вычислителем
Последовательный процесс ::= seq Процесс* end
Параллельный поцесс ::= par Процесс* end

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

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

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

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

6. Объектно-ориентированное программирование


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

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

Важно выделить следующие основные свойства объектов:

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

2.) Так как объекты взаимодействуют исключительно засчет обмена сообщениями, объекты-собеседники могут ничего не знать о реализации обработчиков сообщений у своего визави. Взаимодействие происходит исключительно в терминах сообщений/событий, которые достаточно легко привязать к предметной области. Это свойство (описание взаимодействия исключительно в терминах предметной области) называют абстракцией.

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

Отношение "потомок-предок" на классах принято называть наследованием.

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

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

Если в чистом объектно-ориентированном языке нужно создать новый класс - требуется послать классу-предку сообщение: "породить наследника" ( sublcass ). Существует класс, являющийся вершиной всей иерархии наследования (как правило, наываемый Object), так что предок будет у всех классов, даже явно его не имеющих. Для описания обработки сообщения нужно послать классу, в котором задается обработчик, сообщение: "установить новый обработчик сообщения" ( answer ).
1   2   3   4   5   6   7   8   9   ...   21

Похожие:

Курс лекций 20 часов iconКурс лекций по дисциплине «Уголовно-исполнительное право» для специальности 030503 Правоведение
Данный курс лекций рассчитан на 50 часов для базового уровня профессионального образования и един для всех форм обучения
Курс лекций 20 часов iconЭкономическая теория
Курс состоит из 39 часов лекций, 20 часов семинаров и 52 часов самостоятельной работы студентов, которая включает подготовку к семинарским...
Курс лекций 20 часов iconКурс лекций по «экологии» нгпи. 40 часов лекций + зачет и экзамен
Агаджанян Н. А., Никитюк Б. А., Полунин Н. Н. Экология человека и интегративная антропология. — М. — Астрахань, 1996. — 224 с
Курс лекций 20 часов iconСамостоятельная работа обучающихся 34 часа Аудиторная работа по дисциплине...
Учебно-методический комплекс дисциплины обсужден и утвержден на заседании кафедры зарубежной филологии
Курс лекций 20 часов iconПрограмма курса физики для студентов геологического факультета (вечернее...
Курс рассчитан на 60 лекционных часов: 1 семестр 10 лекций по 4 часа, 2 семестр 10 лекций по 2 часа. Два экзамена
Курс лекций 20 часов iconПрограмма элективного курса «Биотехнология вчера и сегодня»
Курс интегрированный, затрагивает вопросы, находящиеся на стыке биологии с другими науками, прежде всего с медициной, химией, географией....
Курс лекций 20 часов iconРабочая программа ♫ Тематика и планы семинарских занятий ♫
Элективный курс «История западноевропейской музыки» читается студентам-культурологам IV года обучения. Программа предусматривает...
Курс лекций 20 часов iconПрограмма курса
Курс расcчитан на 100 академических часов (1 акад час ~ 45 мин): 17 лекций(17*2=34часа) и 11 практических занятий(11*6=66 часов)....
Курс лекций 20 часов iconДисциплина "Логистика" входит в состав цикла специальных дисциплин....
Курс лекций ориентирован на современные экономические условия и складывающиеся рыночные отношения в Российской Федерации
Курс лекций 20 часов iconПрограмма дисциплины «менеджмент» для студентов специальности ( направления)...
Учебная дисциплина «Менеджмент» входит в раздел «Профессиональный цикл. Базовая (общепрофессиональная) часть» фгос по направлениям...
Курс лекций 20 часов iconРассмотрен и рекомендован к утверждению
Данный курс лекций рассчитан на 50 часов для базового уровня профессионального образования и един для всех форм обучения
Курс лекций 20 часов iconВ. Н. Майсак 2011 год
Данный курс лекций рассчитан на 50 часов для базового уровня профессионального образования и един для всех форм обучения
Курс лекций 20 часов iconПедиатрический факультет
Федерации для педиатрических факультетов высших медицинских учебных заведений, офтальмология преподается в 8-9 семестре обучения...
Курс лекций 20 часов iconУчебно-методический комплекс «Уголовно-исполнительное право»
Данный курс лекций рассчитан на 50 часов для базового уровня профессионального образования и един для всех форм обучения
Курс лекций 20 часов iconКурс лекций по истории и философии науки утверждено Редакционно-издательским...
Глотова В. В. Краткий курс лекций по истории и философии науки: учеб пособие / В. В. Глотова. Воронеж: фгбоу впо «Воронежский государственный...
Курс лекций 20 часов iconРабочая программа по офтальмологии кафедры офтальмологии педиатрического факультета
Федерации для педиатрических факультетов высших медицинских учебных заведений, офтальмология преподается в 8-9 семестре обучения...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск