Инфоурок Другое ПрезентацииВзаимодействующие параллельные процессы

Взаимодействующие параллельные процессы

Скачать материал
Скачать материал "Взаимодействующие параллельные процессы"

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Экономист по планированию

Описание презентации по отдельным слайдам:

  • Взаимодействующие 
параллельные 
процессы

    1 слайд

    Взаимодействующие
    параллельные
    процессы

  • Параллельные процессыP1              P2Q1           Q2Последовательные процес...

    2 слайд

    Параллельные процессы
    P1 P2
    Q1 Q2
    Последовательные процессы
    Логические параллельные процессы
    P1 P2
    Q1Q2
    Физические параллельные процессы
    P1 P2
    Q1 Q2

  • Взаимодействующие процессыФизически параллельныеP1            P2...

    3 слайд

    Взаимодействующие процессы
    Физически параллельные
    P1 P2 P3 wait (ожидание)
    P4
    Q1 Q2 Q3
    fork (разветвление) join (соединение)
    Логически параллельные
    P1 P2P3 P4
    Q1Q2 Q3

  • Взаимодействующие процессыНезависимые процессы имеют свое множество переменны...

    4 слайд

    Взаимодействующие процессы
    Независимые процессы имеют свое множество переменных и ресурсов. Другие процессы не могут изменить значения переменных этого процесса.

    Взаимодействующие процессы – совместно используют общие ресурсы, и выполнение одного процесса влияет на результат другого. Ресурсами могут быть области памяти, файлы данных, ВУ и т.д.

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

  • Использование общего ресурсаВ результате прерывания последовательность действ...

    5 слайд

    Использование общего ресурса
    В результате прерывания последовательность действий обеих программ
    может измениться. Пусть Count = 10 и эта последовательность станет
    1-4-5-6-2-3.
    1 CX = 10
    4 CX = 10
    5 CX = 9
    6 Count = 9
    CX = 11
    Count = 11
    Правильное значение CX = 10 Эта ситуация называется коллизией.
    Работа с Count не является единой неделимой операцией.

    1 inc Count 2 dec Count

  • Проблема критического участка       Общий ресурс, совместно используемый неск...

    6 слайд

    Проблема критического участка
    Общий ресурс, совместно используемый несколькими параллельными процессами, получил название – критический ресурс.
    Часть программы, использующая критический ресурс, называется критическим участком (критическим интервалом, критической секцией, критической областью).
    Требования к критическому участку программы:
    - только один процесс может находиться внутри критического участка (взаимное исключение);
    - ни один процесс не должен ждать бесконечно долго входа в критический участок;
    - ни один процесс не может оставаться внутри критического интервала бесконечно долго;
    -операции взаимного исключения должны выполняться корректно при нарушении работы одного или нескольких процессов вне критического участка (устойчивость к нарушениям);
    - вход и выход взаимоисключения должны быть идентичными для всех процессов и не зависеть от их числа (симметрия).

  • Методы взаимоисключения       Используется множество методов взаимоисключения...

    7 слайд

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

  • Параллельные процессы без взаимоисключенияCobegin
(нач. установка)
  PROC1;...

    8 слайд

    Параллельные процессы без взаимоисключения
    Cobegin
    (нач. установка)
    PROC1; PROC2;
    coend
    1





    2

    3






    4
    (переменные управления взаимоисключением)

  • Взаимоисключение строгим чередованием процессовvar NP: 1,2;Begin 
  NP:=1;...

    9 слайд

    Взаимоисключение строгим чередованием процессов
    var NP: 1,2;
    Begin
    NP:=1;
    cobegin
    PROC1; PROC2; coend;
    end.
    1





    2

    3






    4

  • Попытка взаимоисключение с использованием флаговvar C1, C2: boolean;Begin...

    10 слайд

    Попытка взаимоисключение с использованием флагов
    var C1, C2: boolean;
    Begin
    C1:=false; C2:=false;
    cobegin
    PROC1; PROC2; coend;
    end.
    1





    2


    3





    4

  • Алгоритм ДеккераVAR C1,C2:Boolean;  NP:1,2;begin
NP:=1;
C1:=FALSE; C2:=FALSE;...

    11 слайд

    Алгоритм Деккера
    VAR C1,C2:Boolean; NP:1,2;
    begin
    NP:=1;
    C1:=FALSE; C2:=FALSE;
    Cobegin PROC1; PROC2; coend;
    end.

  • Алгоритм Петерсонаvar C1, C2: boolean; var NP:1,2;begin 
  C1:=false;  C2:=fa...

    12 слайд

    Алгоритм Петерсона
    var C1, C2: boolean; var NP:1,2;
    begin
    C1:=false; C2:=false; cobegin PROC1; PROC2; coend;
    end.
    1





    2



    3





    4

  • Взаимоисключение операцией проверка и установка (Test and Set)begin Common:=f...

    13 слайд

    Взаимоисключение операцией проверка и установка (Test and Set)
    begin Common:=false;
    cobegin PROC1; PROC2; coend;
    end.
    1








    2


    3




    4

    Var Common:boolean;
    Procedure TS (Лок, Общ);
    begin Лок:=Общ;
    Общ:=true; end;

  • Операция Test and SetProcedure TS (Лок, Общ);
begin
	Лок:=Общ;
	Общ:=TRUE;
en...

    14 слайд

    Операция Test and Set
    Procedure TS (Лок, Общ);
    begin
    Лок:=Общ;
    Общ:=TRUE;
    end;
    Общ:=false;
    (критич. участок свободен)
    Лок1:=True;
    While Лок1 do TS(Лок1,Общ);
    true false
    false <- false
    false true
    Общ:=true;
    (критич. Участок занят)
    Лок2:=True;
    While Лок2 do TS(Лок2,Общ);
    true true
    true <- true
    true true
    Команда BTS источник, индекс
    Переносит бит по адресу источник[индекс] -> CF (Лок),
    Затем бит источник[индекс]<- 1 (Общ).

    L:BTSM, 1; вход
    JCL; взаимоисключения
    ;критическая секция
    ANDM, 0B; выход взаимоисключения

  • Семафоры       Семафоры, как средство синхронизации параллельных процессов, п...

    15 слайд

    Семафоры
    Семафоры, как средство синхронизации параллельных процессов, предложил голландский математик Э. Дейкстра (E. W. Dijkstra) в 1965 г.
    Семафор S это агрегат данных, который состоит из счетчика с целыми значениями S.C и очереди процессов S.Q, ждущих входа в критический участок. При создании семафора счетчик принимает начальное значение
    C >= 0, а очередь – пустая.
    Две операции над числовыми семафорами.

  • Свойства числового семафора     Работу числового семафора можно сравнить с ра...

    16 слайд

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

    Пусть C0 – начальное значение S.C, nP и nV – общее число выполнения операций P(S) и V(S).
    Тогда:
    - текущее значение счетчика семафора: S.C = C0 – nP + nV;
    - число процессов в состоянии ожидания: nB = max(0,–S.C);
    - число форсирований: nF = min(nP,C0–nV).
    Последний параметр показывает насколько nP больше nV. По аналогии с автоматической дверью nF дает знать, что количество прошедших равно наименьшему из двух чисел, одно из которых есть общее количество опущенных жетонов C0+nV(S), а другое – число желающих пройти дверь.

  • Логический семафор - mutex        Вместо числовой переменной S.C может исполь...

    17 слайд

    Логический семафор - mutex
    Вместо числовой переменной S.C может использоваться переменная логического типа. Такой логический семафор получил название мьютекс (mutex – MUtual EXclusion semaphor, семафор взаимного исключения).
    S.C принимает значения TRUE и FALSE, а операции P(S) и V(S) выражаются действиями:
    Двоичные семафоры используются для операции взаимоисключения нескольких процессов в случае, когда в критическом участке должен находиться только один процесс, числовые семафоры обладают также другими расширенными возможностями.

  • Взаимоисключение числовым семафоромVAR S:Semaphore;begin
S.C:=1;
cobegin
  PR...

    18 слайд

    Взаимоисключение числовым семафором
    VAR S:Semaphore;
    begin
    S.C:=1;
    cobegin
    PROC1;
    PROC2;
    coend;
    end.

  • Синхронизация процессов «Главный – Подчиненный»VAR Event:Semaphore;begin
Even...

    19 слайд

    Синхронизация процессов «Главный – Подчиненный»
    VAR Event:Semaphore;
    begin
    Event.C:=0;
    cobegin MASTER; SLAVE; coend;
    end.
    Обратите внимание, что здесь начальное значение счетчика семафора Event (событие) равно 0, т.е. семафор закрыт. Операция P(Event) переводит главный процесс в состояние «Ожидание», если значение семафора не было изменено. Открыть семафор может подчиненный процесс, сменив значение счетчика на 1, если подчиненный процесс выполнит V(Event) раньше.

  • Синхронизация процессов «Производитель – Потребитель»VAR Buf:Record;
    Star...

    20 слайд

    Синхронизация процессов «Производитель – Потребитель»
    VAR Buf:Record;
    Start,Finish:Semaphore;
    begin
    Start.C:=0; Finish.C:=1;
    cobegin
    Repeat PRODUSER Until FALSE;
    Repeat CONSUMER Until FALSE;
    coend;
    end.
    Обратите внимание на начальные значения счетчиков семафоров.

  • «Производитель – Потребитель» множественный буферVAR Buf:array [1..N] of Reco...

    21 слайд

    «Производитель – Потребитель» множественный буфер
    VAR Buf:array [1..N] of Record;
    Full,Empty,S:Semaphore;
    begin
    S.C:=1; Full.C:= ; Empty.C:= ;
    cobegin
    Repeat PRODUSER Until FALSE;
    Repeat CONSUMER Until FALSE;
    coend;
    end.

  • «Читатели – Писатели»с приоритетом читателейVAR Nrdr:integer; W,R:Semaphore;...

    22 слайд

    «Читатели – Писатели»
    с приоритетом читателей
    VAR Nrdr:integer; W,R:Semaphore;
    Begin Nrdr:=0; W.C:=1; R.C:=1;
    cobegin
    Repeat READER Until FALSE;
    . . .
    Repeat READER Until FALSE;
    Repeat WRITER Until FALSE;
    . . .
    Repeat WRITER Until FALSE;
    coend; end.

  • «Читатели – Писатели»с приоритетом писателейVAR Nrdr:integer; W,R,S:Semaphor...

    23 слайд

    «Читатели – Писатели»
    с приоритетом писателей
    VAR Nrdr:integer; W,R,S:Semaphore;
    Begin Nrdr:=0; W.C:=1; R.C:=1; S.C:=1;
    cobegin
    Repeat READER Until FALSE;
    . . .
    Repeat READER Until FALSE;
    Repeat WRITER Until FALSE;
    . . .
    Repeat WRITER Until FALSE;
    coend; end.

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 653 557 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 04.03.2020 252
    • PPTX 295 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Нижельская Галина Анатольевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

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

    Удалить материал
  • Автор материала

    Нижельская Галина Анатольевна
    Нижельская Галина Анатольевна
    • На сайте: 3 года и 3 месяца
    • Подписчики: 0
    • Всего просмотров: 72303
    • Всего материалов: 231

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Секретарь-администратор

Секретарь-администратор (делопроизводитель)

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Этот курс уже прошли 25 человек

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 477 человек из 69 регионов
  • Этот курс уже прошли 2 319 человек

Курс профессиональной переподготовки

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

Библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 284 человека из 67 регионов
  • Этот курс уже прошли 846 человек

Мини-курс

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

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Управление проектами: концепции, практика и финансы

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Психология развития и воспитания детей: особенности и подходы

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 17 регионов