Презентация Лекция 4. Взаимодействие процессов онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Лекция 4. Взаимодействие процессов абсолютно бесплатно. Урок-презентация на эту тему содержит всего 35 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Лекция 4. Взаимодействие процессов



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    35 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    590.50 kB
  • Просмотров:
    74
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Взаимодействие процессов
Содержание слайда: Взаимодействие процессов

№2 слайд
Причины взаимодействия
Содержание слайда: Причины взаимодействия процессов Повышение скорости работы. Совместное использование данных. Модульная конструкция системы. Удобство работы пользователя

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

№4 слайд
Логическая организация
Содержание слайда: Логическая организация механизма передачи информации Порядок установления связи. Адресация – прямая и непрямая Количество участников сеанса связи Направленность связи - симплексная - полудуплексная - дуплексная Способ завершения сеанса связи

№5 слайд
Особенности передачи
Содержание слайда: Особенности передачи информации с помощью линий связи Буферизация -Буфер нулевой емкости или отсутствует. -Буфер ограниченной емкости. -Буфер неограниченной емкости. Две модели передачи данных - Поток -Сообщения Надежность средств связи

№6 слайд
Условия надежности средств
Содержание слайда: Условия надежности средств связи Не происходит потери информации. Не происходит повреждения информации. Не появляется лишней информации. Не нарушается порядок данных в процессе обмена.

№7 слайд
Активности и атомарные
Содержание слайда: Активности и атомарные операции Активности- последовательное выполнение ряда действий, направленных на достижение определенной цели. Атомарные, операции- неделимые P: a b c Q: d e f PQ: a b c d e f а b c d e f a b d c e f … a d b c e f ...... d e f a b c

№8 слайд
Псевдопараллельное выполнение
Содержание слайда: Псевдопараллельное выполнение P: x = 2 Q: x = 3 y = x-1 y = x+1 Результаты (x, y): (3, 4), (2, 1), (2, 3) и (3, 2) набор активностей детерминирован, если всякий раз при псевдопараллельном исполнении для одного и того же набора входных данных он дает одинаковые выходные данные.

№9 слайд
Достаточные условия
Содержание слайда: Достаточные условия Бернстайна Набор входных переменных программы - R(P) Набор выходных переменных программы - W(P) Если для двух данных активностей P и Q: пересечение W(P) и W(Q) пусто, пересечение W(P) с R(Q) пусто, пересечение R(P) и W(Q) пусто, тогда выполнение P и Q детерминировано. Если эти условия не соблюдены, возможно, параллельное выполнение P и Q детерминировано, а может быть, и нет.

№10 слайд
Пример условий Бернстайна P x
Содержание слайда: Пример условий Бернстайна P: x=u+v; y=x*w; получаем R(P) = {u, v, x, w}, W(P) = {x, y}

№11 слайд
Механизмы синхронизации
Содержание слайда: Механизмы синхронизации выполнения программ упорядочивают доступ программ к данным Недетерминированный набор программ имеет race condition (состояние гонки , состояние состязания) Задачу упорядоченного доступа к разделяемым данным (устранение race condition) в том случае, когда нам не важна его очередность, можно решить, если обеспечить каждому процессу эксклюзивное право доступа к этим данным.

№12 слайд
Критическая секция
Содержание слайда: Критическая секция Критическая секция – это часть программы, исполнение которой может привести к возникновению race condition для определенного набора программ. Реализация взаимоисключения для критических секций программ с практической точки зрения означает, что по отношению к другим процессам, участвующим во взаимодействии, критическая секция начинает выполняться как атомарная операция. while (some condition) { entry section critical section exit section remainder section}

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

№14 слайд
Запрет прерываний while some
Содержание слайда: Запрет прерываний while (some condition) { запретить все прерывания critical section разрешить все прерывания remainder section }

№15 слайд
Переменная-замок shared int
Содержание слайда: Переменная-замок shared int lock = 0; /* shared означает, что переменная является разделяемой */ while (some condition) { while(lock); lock = 1; critical section lock = 0; remainder section }

№16 слайд
Строгое чередование shared
Содержание слайда: Строгое чередование shared int turn = 0; while (some condition) { while(turn != i); critical section turn = 1-i; remainder section }

№17 слайд
Флаги готовности shared int
Содержание слайда: Флаги готовности shared int ready[2] = {0, 0}; while (some condition) { ready[i] = 1; while(ready[1-i]); critical section ready[i] = 0; remainder section }

№18 слайд
Алгоритм Петерсона shared int
Содержание слайда: Алгоритм Петерсона shared int ready[2] = {0, 0}; shared int turn; while (some condition) { ready[i] = 1; turn =i; while(ready[1-i] && turn == i); critical section ready[i] = 0; remainder section } Два процесса не должны одновременно находиться в критич. областях. (Условие взаимоисключения) Процесс, находящийся вне критической области, не может блокировать другие процессы. (Условие прогресса) Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область.(Условие ограниченного ожидания)

№19 слайд
Обозначения a,b lt c,d , если
Содержание слайда: Обозначения: (a,b) < (c,d), если a < c или если a == c и b < d shared enum {false, true} choosing[n]; shared int number[n]; while (some condition) { choosing[i] = true; number[i] = max(number[0], ...,number[n-1]) + 1; choosing[i] = false; for(j = 0; j < n; j++){ while(choosing[j]); while(number[j] != 0 && (number[j],j) < (number[i],i)); } critical section number[i] = 0; remainder section }

№20 слайд
Аппаратная поддержка
Содержание слайда: Аппаратная поддержка взаимоисключений int Test_and_Set (int *target){ int tmp = *target; *target = 1; return tmp; } shared int lock = 0; while (some condition) { while(Test_and_Set(&lock)); critical section lock = 0; remainder section }

№21 слайд
Семафоры Семафор представляет
Содержание слайда: Семафоры Семафор представляет собой целую переменную, принимающую неотрицательные значения, доступ любого процесса к которой, за исключением момента ее инициализации, может осуществляться только через две атомарные операции: P (от датского слова proberen – проверять) V (от verhogen – увеличивать). P(S): пока S == 0 процесс блокируется; иначе S = S – 1; V(S): S = S + 1;

№22 слайд
Решение проблемы
Содержание слайда: Решение проблемы producer-consumer с помощью семафоров Semaphore mutex = 1; Semaphore empty = N; /* где N – емкость буфера*/ Semaphore full = 0; Producer: Consumer: while(1) { while(1) { produce_item; P(full); P(empty); P(mutex); P(mutex); get_item; put_item; V(mutex); V(mutex); V(empty); V(full); } consume_item; }

№23 слайд
Мьютекс mutex, сокращение от
Содержание слайда: Мьютекс (mutex, сокращение от mutual exclusion — взаимное исключение) Мьютекс — переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Две процедуры mutex Lock mutex_unlock

№24 слайд
Мониторы monitor monitor name
Содержание слайда: Мониторы monitor monitor_name { //описание внутренних переменных ; void m1(...){... } void m2(...){... } ... void mn(...){... } { блок инициализации внутренних переменных; } }

№25 слайд
Решение проблемы
Содержание слайда: Решение проблемы producer-consumer с помощью мониторов 1 monitor ProducerConsumer { condition full, empty; int count; void put() { if(count == N) full.wait; put_item; count += 1; if(count == 1) empty.signal; } P(S): пока S == 0 процесс блокируется; иначе S = S – 1; V(S): S = S + 1;

№26 слайд
Решение проблемы
Содержание слайда: Решение проблемы producer-consumer с помощью мониторов 2 void get() { if (count == 0) empty.wait; get_item(); count -= 1; if(count == N-1) full.signal; } { count = 0; } }

№27 слайд
Решение проблемы
Содержание слайда: Решение проблемы producer-consumer с помощью мониторов 3 Producer: Consumer: while(1) while(1) { { produce_item; ProducerConsumer.get(); ProducerConsumer.put(); consume_item; } }

№28 слайд
Решение проблемы
Содержание слайда: Решение проблемы производителя и потребителя с передачей сообщений 1 #define N 100 /* количество сегментов в буфере */ void producer(void) { int item; message m: /* буфер для сообщений */ while (TRUE) { produce_item(); /* сформировать нечто, чтобы заполнить буфер*/ /* ожидание прибытия пустого сообщения */ receive(consumer. &m); /* сформировать сообщение для отправки */ build_message(&m, item); send(consumer. &m): /* отослать элемент потребителю */ } }

№29 слайд
Решение проблемы
Содержание слайда: Решение проблемы производителя и потребителя с передачей сообщений 2 void consumer(void) { int item, i; message m; for (i - 0; i < N; i++) send(producer, &m) ; /* отослать N пустых сообщений */ while (TRUE) { receive(producer. &m); /* получить сообщение с элементом */ item = extract_item(&m); /* извлечь элемент из сообщения */ send(producer, &m): /* отослать пустое сообщение */ consume_item(item): /* обработка элемента */ } }

№30 слайд
Барьеры
Содержание слайда: Барьеры

№31 слайд
Проблема обедающих философов
Содержание слайда: Проблема обедающих философов

№32 слайд
Неверное решение проблемы
Содержание слайда: Неверное решение проблемы обедающих философов #define N 5 /* Количество философов */ void philosospher (int i)/* i - номер философа, от 0 до 4 */ { while(TRUE) { think(); /* Философ размышляет */ takefork(i); /* Берет левую вилку */ takefork((i+l)% N);/* Берет правую вилку */ eat(); /* Спагетти, ням-ням */ putfork(i): /* Кладет на стол левую вилку */ putfork((i+l) % N): /* Кладет на стол правую вилку */ } }

№33 слайд
Проблема читателей и писателей
Содержание слайда: Проблема читателей и писателей

№34 слайд
Проблема спящего брадобрея
Содержание слайда: Проблема спящего брадобрея

№35 слайд
С праздником марта quot
Содержание слайда: С праздником 14 марта "Математику только зачем учить надо, что она ум в порядок приводит" (Ломоносов) "Математика - гимнастика ума" (Суворов) "Наука только тогда достигает совершенства, когда она начинает пользоваться математикой" (Маркс) "Высшая математика убивает креативность" (Фурсенко, министр образования и науки РФ)

Скачать все slide презентации Лекция 4. Взаимодействие процессов одним архивом: