Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції ООП1.doc
Скачиваний:
7
Добавлен:
17.11.2019
Размер:
554 Кб
Скачать
☆

Тема: Процеси в об'єктах. Інкапсуляція

Мета: Освоїти логічний паралелізм. Схему сопрограм. Поняття процесу.

План заняття:

  1. Логічний паралелізм. Схема сопрограм.

  2. Поняття процесу. Робоча область процесу. Створення \ знищення процесів.

  3. Рентерабельність. Сигнальна синхронізація.

  4. Основи моніторингу, орієнтованого на процеси.

Логічний паралелізм. Схема сопрограм

У будь-якому програмному об'єкті можуть розвиватися динамічні процеси, що визначають зміну стану об'єкта в часі. Такі процеси можуть розвиватися автономно (незалежно один від одного) або у взаємодії один з одним. Концепція взаємодії грунтується на одночасному розвитку декількох процесів, при цьому така одночасність трактується в програмуванні як логічний паралелізм - одночасне виконання декількох дій (активностей), обумовлене логікою розвитку модельованої системи. Реалізація концепції логічного паралелізму вимагає в загальному випадку наявності декількох процесорів (пристроїв ЕОМ, що забезпечують розвиток паралельних процесів), що зв'язано з використанням нового класу обчислювальних систем - систем з мультипроцесорною архітектурою. Реалізація паралельних процесів на звичайній однопроцесорній ЕОМ пов'язана з імітацією логічного паралелізму послідовністю активацій різних процесів із збереженням загальних логічно обумовлених правил їх взаємодії. Така імітація пов'язана з поняттям квазіпаралельності.

Квазіпаралельні процеси - це форма (і метод) реалізації логічного паралелізму на однопроцесорній ЕОМ. У свою чергу існує безліч різних способів реалізації квазіпаралельності, одночасних дій послідовностями активностей, що відрізняються механізмами імітації. Не зупиняючись на докладному розгляді таких способів, ми відзначимо тут загальну закономірність; логічна паралельність (одночасність дій) в загальному випадку не приводиться до послідовності активностей. Тому будь-який спосіб реалізації квазіпаралельності приводить до виникнення специфічних проблем, відомих в програмуванні як проблеми "безвиході", "критичних секцій", "семафорів" і т.п

У основі загального механізму реалізації квазіпаралельності лежить схема співпрограм - особлива схема управління, що відрізняється від широко використовуваної схеми підпрограм тим, що вона будується не на основі принципу "головний - підлеглий" ( "головна програма - підпрограма"), а на основі "рівноправності" всіх взаємодіючих програм. У схемі співпрограм немає головної процедури - "господаря", який маніпулюватиме викликом "підлеглих", - будь-яка процедура в цій схемі трактується як "рівна серед рівних".

Нижче приведена ілюстрація взаємодії двох процедур по схемі співпрограм. На цій ілюстрації подвійною межею зображаються фази активності процесу, що реалізовується співпрограмою, одинарною, - передача управління від процесу процесу. На відміну від підпрограм, будь-яка процедура, що реалізовується як співпрограма, може мати безліч точок реактивации. Такі крапки в тексті програми визначаються розстановкою спеціальних операторів управління (оператори синхронізації, затримки, очікування і т.п.).