Semafory.

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

PRAM.
Mechanizmy pracy równoległej
Jarosław Kuchta Semafory.
Jarosław Kuchta Monitory.
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
SYSTEMY OPERACYJNE SYNCHRONIZACJA PROCESÓW
ZŁOŻONOŚĆ OBLICZENIOWA
Systemy czasu rzeczywistego Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
SEMAFORY Dominik Niewiadomy Łukasz Dąbrowski.
Wykład nr 7: Synchronizacja procesów
Wykład 2 struktura programu elementy języka typy zmienne
6. SZEREGOWANIE PROCESÓW
RODZAJE KOMUNIKACJI MIĘDZY PROCESAMI
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Ogólna struktura programu w TP
Systemy Operacyjne Synchronizacja
Wstęp do programowania Wykład 7
POGŁĘBIONA OCENA SYTUACJI FINANSOWEJ NA PODSTAWIE ANALIZY WSKAŹNIKOWEJ
Machine learning Lecture 3
Mechanika kwantowa dla niefizyków
Wybrane bloki i magistrale komputerów osobistych (PC)
HELIOTECHNIKA W chwili obecnej jest niekonkurencyjna w porównaniu ze źródłami konwencjonalnymi, ale jest to „czysta energia” dlatego wiąże się z nią wiele.
Bankowość Pieniądz Podstawowe informacje o bankach
Zasilacze prądu stałego Czyli rzeczywiste źródła napięcia
Mechanika kwantowa dla niefizyków
Prof. dr hab. Roman Sobiecki Rachunki makroekonomiczne
CAPS LOCK - CERTYFIKOWANE SZKOLENIA JĘZYKOWE I KOMPUTEROWE
GOSPODAROWANIE ZASOBAMI W ORGANIZACJI
Co to jest SSC Master… SSC Master to platforma elektronicznego obiegu, dekretacji i akceptacji dokumentów w organizacji. Dzięki szerokiemu i elastycznemu.
Podstawy pomagania SPPiIK, 2016 Anna Gromińska.
Chemia biopierwiastków
Sedymentacja.
Prawo pracy – ćwiczenia (IX)
Sprawozdanie roczne z realizacji Planu działania Krajowej Sieci Obszarów Wiejskich na lata za rok 2016 Warszawa, 26 czerwca 2017 r. Materiał.
Stan Wojenny.
Wojewódzki Inspektorat Ochrony Środowiska w Białymstoku
Realizacja sprzężenia od siły w układzie sterowania robotem do zastosowań neurochirurgicznych Dorota Marszalik Wieliczka,
MODELE EPIDEMIOLOGICZNE
Zagadnienie prawdy Andrzej Łukasik Zakład Ontologii i Teorii Poznania
Potencjał chemiczny Potencjał chemiczny ma charakter siły uogólnionej,
Zasady poprawnej komunikacji – jak uniknąć konfliktów ?
Podejmowanie decyzji.
Ekologia biogeochemia Ryszard Laskowski.
Powtórzenie – dział I Ruch postępowy
Klasyczny model regresji liniowej (KMRL)
Prześwietlamy nową podstawę programową
Wykonał:Marcin Kwietniewski
Uzależnienia!!!!! Karolina Złotoś kl. 1c.
Egzamin ósmoklasisty z matematyki
Bezpieczne ferie Hanna Piotrowska.
Budowa podstaw dla kampanii Szkoły Przyjazne dla Sprawiedliwego Handlu
Zasada równości szans kobiet i mężczyzn (w oparciu o standard minimum)
Zapewne nieraz odczuwałeś efekty zanieczyszczenia powietrza, którym codziennie oddychamy. Szczególnie w dużych miastach. W niektórych miastach, takich.
Procedury przebiegu i organizacji egzaminu ósmoklasisty
poziom powyżej średniej dolnośląskiej
Modelowanie i organizowanie procesów przetwarzania UPS
Bardzo rzadkie, najbardziej pożądane diamenty na świecie…
Zapis prezentacji:

semafory

Pięciu filozofów (1) var widelec: array[0..4] of recource; sem:array[0..4] of Boolean semaphore:=true; procedure filozof; begin repeat myślenie; wait(sem[name]); wait(sem[(name+1)mod 5]); request (widelec[name], widelec[(name+1)mod5]); jedzenie; release(widelec[name], widelec[(name+1)mod5]); signal(sem[name]); signal(sem[(name+1)mod 5]); end

Pięciu filozofów (2) stany stan[i]=0 – myślenie stan[i]=1 – chęć jedzenia stan[i]=2 – jedzenie var widelec: array[0..4] of recource; sem: array[0..4] of Boolean semaphore:=false; stan: array[0..4] of integer:=0; /myślenie w: Boolean semaphore:=true; procedure test(k:integer); begin if stan[(k-1) mod 5]<>2 and stan[k]=1 and stan[(k+1) mod 5]<>2 then stan[k]:=2; signal(sem[k]); end

Pięciu filozofów (2) procedure filozof; begin repeat myślenie; wait(w); stan[name]:=1; test(name); signal(w); wait(sem[name]); request (widelec[name],widelec[(name+1)mod5]); jedzenie; release(widelec[name],widelec[(name+1)mod5]); stan[name]:=0; test((name+1)mod 5); test((name-1)mod 5); signal(w) end end;

Pięciu filozofów (3) jadalnia var widelec: array[0..4] of recource; sem:array[0..4] of Boolean semaphore:=true; jadalnia: semaphore:= 4; procedure filozof; begin repeat myślenie; wait(jadalnia); wait(sem[name]); wait(sem[(name+1)mod 5]); request (widelec[name], widelec[(name+1)mod5]); jedzenie; release(widelec[name], widelec[(name+1)mod5]); signal(sem[name]); signal(sem[(name+1)mod 5]); signal(jadalnia); end

Pięciu filozofów (4) asymetryczne var widelec: array[0..4] of recource; sem:array[0..4] of Boolean semaphore:=true; procedure filozof4; begin repeat myślenie; wait(sem[0]); wait(sem[4]); request (widelec[0], widelec[4]); jedzenie; release(widelec[0], widelec[4]); signal(sem[4]); signal(sem[0]); end Pozostali filozofowie wykonują kod (1)

Pięciu filozofów – prawidłowa synchronizacja; możliwość zakleszczenia bez zakleszczenia; możliwość zagłodzenia (3) - prawidłowa synchronizacja; bez zagłodzenia (4) - prawidłowa synchronizacja; Inne rozwiązania rozszerzone operacje semaforowe, monitory sieci Petriego

Warunki implementacji operacji semaforowych Zapewnienie nieprzerywalności operacji semaforowych Istnienie operacji zawieszenia i reaktywowania procesów poprzez bezpośredni dostęp do deskryptorów Istnienie operacji kolejkowych Realizacja: programowa (so) sprzętowa (mikroprogramowe układy sterowania)

Modyfikacje operacji semaforowych Rozszerzone operacje semaforowe Jednoczesne Uogólnione Jednoczesne uogólnione Agerwali inne

Jednoczesne operacje semaforowe PD(s1,s2,…si,…,sn) zawieszenie procesu do czasu, gdy dla wszystkich si (i=1,…,n): si >0 for i:=1 to n do si:=si-1 end; VD(s1,s2,…si,…,sm) for j:=1 to m do sj:=sj+1 end;

Pięciu filozofów (5) var widelec: array[0..4] of recource; sem:array[0..4] of Boolean semaphore:=true; procedure filozof; begin repeat myślenie; PD(sem[name],sem[(name+1)mod 5]); request (widelec[name],widelec[(name+1)mod5]); jedzenie; release(widelec[name], widelec[(name+1)mod5]); VD(sem[name],sem[(name+1)mod 5]); end

Uogólnione operacje semaforowe n – nieujemne całkowite wyrażenie PN(s, n) zawieszenie procesu do czasu, gdy s>=n s:=s-n; VN(s) s:=s+n;

Czytający - piszący var w:semaphore:=M; procedure czytanie; procedure pisanie begin begin repeat repeat PN(w,1); PN(w,M); czytanie; pisanie VN(w,1) VN(w,M) end end end end pisanie – możliwe, gdy w=M (nie ma odczytu ani zapisu) czytanie – możliwe, gdy w>=0 (nie ma zapisu)

Czytający – piszący (2) var w,r:semaphore:=M; procedure czytanie; procedure pisanie begin begin repeat repeat PN(r,M); PN(r,1); PN(w,1); PN(w,M); VN(r,M-1); pisanie; VN(r,1); VN(w,M); czytanie; VN(r,1); VN(w,1) end end end end pisanie – wyższy priorytet

Jednoczesne uogólnione operacje semaforowe Cerf, Presser PA(s1,a1,s2,a2,…si,ai,sn,an) zawieszenie procesu do czasu, gdy dla wszystkich si (i=1,…,n): si > ai for i:=1 to n do si:=si-ai end; VA(s1,a1,s2,a2,…si,ai,sm,am) for j:=1 to m do sj:=sj+aj end;

operacje semaforowe Agerwali PE(s1,s2,…si,…sn;~sn+1,…,~sj,…,~sn+m) zawieszenie procesu do czasu, gdy dla wszystkich si (i=1,…,n): si > 0 i dla wszystkich sj (j=n+1,…,n+m): sj= 0 for i:=1 to n do si:=si-1 end; VE(s1,s2,…sk,…,sl) for k=1 to l do sk:=sk+1 end;

Czytający – piszący (2) var A,R,M:semaphore:=0,0,1; procedure czytanie; procedure pisanie begin begin repeat repeat PE(M;A); VE(A); VE(M,R); PE(M;R); czytanie; pisanie; PE(R); VE(M); PE(A); end end end A – liczba procesów piszących, które chcą pisać R - liczba procesów czytających M – zapewnia wykluczanie