Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

Den danske befolknings syn på handicappedes rettigheder
SMUT PAKKE 2 VIDEN OM SUKKERSYGE.
VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Atomer Et programmeret forløb. En måde at lære på.
SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
Børns indflydelse på familiens købsbeslutninger
NemID og Fællesskema 2014 v/Signe Hansen Blegmand
Funktioner Grundbegreber.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Kap. 2 Fiskeri med trawl 2.1 · En smakke med trawlet ude.
1 Video-regelquiz - Inkl. svar. 2 I denne lille video-regelquiz bliver I stillet over for ni regelsituationer i slagspil. Hver situation beskrives i en.
Velkommen hos Juvel A/S
Udsagn (propositioner)
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
Tidlig skriftsprog i dagtilbud
Trivselsundersøgelse og ledelsesevaluering
SMUT PAKKE 4 VIDEN OM MOTION.
1 Går fra at vil maksimere dækning til at minimere omkostning Det kender vi fra den anden bog Omkostningen er afstanden gange antal enheder der skal transporteres.
SEO PÅ AU.
Statistik.

Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 4. november 2005.
Representations for Path Finding in Planar Environments.
Grundlæggende regnskabsforståelse
Kursus om borger.dk og brugen af digital signatur
Introduktion til Access (Access, del 1)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Algoritmer (v. lektor Gerth S. Brodal) Hør om metoder til at beregne gode GPS kørevejledninger og tog- og flyforbindelser, og hvad problemstillingerne.
Østjysk rapport om udligning og tilskud Seminar om udligning den 26. April 2010 Job og Økonomidirektør Asbjørn Friis Jensen, Favrskov.
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
1 Bevisteknikker. 2 Bevisteknikker (relevant både ved design og verifikation) Teorem: Der findes uendeligt mange primtal Bevis: Antag at der findes et.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
1 Powerpointserie om In-line færdiggørelse ved Heatsettrykning Avisrotation Magasindybtryk Den Grafiske Højskole.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Matematik B 1.
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Januar 2009 MandagTirsdagOnsdagTorsdagFredagLørdagSøndag Uge 2. Anette Ø. Kl Tina H. Lone M. 6 Kl Britt H. 7 Kl Vinnie G. Gerda.
Fundamentale datastrukturer
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Patientsikkerhed, kvalitet og akkreditering
Objekter og klasser Rasmus D. Lehrmann DM
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation og dataproblemer 2. november 2004.
Algoritmer Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet MasterClass i Matematik, 10. april 2014, Aarhus Universitet.
1 Læringsstil, samt Projektplanlægning og projektstyring Mål: At i får kendskab til jeres egen læringsstil. At I får et grundlæggende kendskab til projektplanlægning.
Et eller andet datalogi… Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet Voronoi Diagrammer Datalogi, Studiestart 2013.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Grundlæggende programmering Forår 2002
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Præsentationens transcript:

Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen

Datalogi 1F 2003: Operativsystemer[3] 2 Planen for idag Synkronisering: –Kritiske regioner –Kritiske regioner som sprogkonstruktion –Monitorer –Klassisk problemstilling Baglåse: –Betingelser –Forhindring af baglåse –Detektering af baglåse

Datalogi 1F 2003: Operativsystemer[3] 3 Kritiske regioner N processer, der alle tilgår delt data Hver proces har et kodesegment, hvori den delte data tilgås (kritisk region) Problem: det skal sikres at på alle tidspunkter er der kun en proces der opholder sig sin kritiske region

Datalogi 1F 2003: Operativsystemer[3] 4 Krav til løsning 1.Gensidig udelukkelse: Når proces i er i sin kritiske region, er ingen andre processer i deres kritiske regioner 2.Fremskridt: Hvis ingen processer er i deres kritiske regioner, og der er processer der ønsker at udføre deres kritiske regioner, skal en proces udvælges i endelig tid 3.Begrænset ventetid: En proces, der ønsker adgang til sin kritiske region, skal have adgang

Datalogi 1F 2003: Operativsystemer[3] 5 Indledende forsøg på løsning Kun 2 processer, P 0 og P 1 Overordnet struktur af proces P i (den anden er P j ) do { indgang kritisk region udgang resterende kode } while (1); Processer kan have delte variable, der bruges til synkronisering

Datalogi 1F 2003: Operativsystemer[3] 6 Første forsøg Delte variable: –int tur; fra start af er tur = 0 –tur == i  P i kan udføre den kritiske region Proces P i do { while (tur != i); tur = j; } while (1); Opfylder gensidig udelukkelse men ikke fremskridt

Datalogi 1F 2003: Operativsystemer[3] 7 Andet forsøg Delte variable –boolean flag[2]; fra start af er flag [0] = flag [1] = falsk. –flag [i] == sand  P i er klar til at udføre den kritiske region Proces P i do { flag[i] = sand; while (flag[j]); flag [i] = falsk; } while (1); Opfylder gensidig udelukkelse men ikke fremskridt

Datalogi 1F 2003: Operativsystemer[3] 8 Tredje forsøg (Petersons) Kombiner de delte variable fra de to første forsøg Proces P i do { flag[i] = sand; tur = j; while (flag[j] && tur = j); flag[i] = false; } while (1); Opfylder alle tre krav og løser dermed kritisk region problemet for to processer

Datalogi 1F 2003: Operativsystemer[3] 9 Men nu er der jo ofte mere en 2 aktive processer i et operativsystem – hvad gør man så?

Datalogi 1F 2003: Operativsystemer[3] 10 Bagerens algoritme Kritisk region for n processer: –Hver proces får tildelt et nummer –Processen med det laveste nummer får adgang til sin kritiske region Uddeling af numre lidt forskellig fra et almindeligt bageri: –Billetmaskinen giver nogen gange det samme nummer –Hvis to processer P i og P j får samme nummer, så kommer P min(i,j) først

Datalogi 1F 2003: Operativsystemer[3] 11 Bagerens algoritme Proces i: do { vælger[i] = sand; num[i] = max(num[0],…,num[n – 1])+1; vælger[i] = falsk; for (j = 0; j < n; j++) { while (vælger[j]) ; while ((num[j] != 0) && ((num[j],j) < (num[i],i)); } num[i] = 0; } while (1);

Datalogi 1F 2003: Operativsystemer[3] 12 Kritisk region for n processer: semaforløsning Delt data: semafor mutex; // Initialiseret ved mutex = 1 Proces P i : do { vent(mutex); signaler(mutex); } while (1);

Datalogi 1F 2003: Operativsystemer[3] 13 Kritisk region: sprogkonstruktion Delte variable af typen T erklæres som shared: V: shared T; v kan kun tilgås i en kritisk region: region v when B do S B: boolsk udtryk: –Sandt indikerer at kritisk region kan tilgås –Ved falsk sættes processen til at vente indtil B bliver sandt og den kritiske region er tom S: den sætning der udgør den kritiske region

Datalogi 1F 2003: Operativsystemer[3] 14 Kritisk region: eksempel Konsument: region buffer when (tæller > 0) { kons_elem = pulje[ud]; ud = (ud+1) % n; tæller--; } Producent: region buffer when (tæller < n) { pulje[ind] = prod_elem; ind = (ind+1) % n; tæller++; } Delt variabel: struct { int pulje[n]; int tæller, ind, ud; }

Datalogi 1F 2003: Operativsystemer[3] 15 Monitorer monitor monitor-navn { erklæringer af delte variable funktion F1 (…) {... } funktion F2 (…) {... } funktion Fn (…) {... } { initialisering }

Datalogi 1F 2003: Operativsystemer[3] 16 Monitor: oversigt

Datalogi 1F 2003: Operativsystemer[3] 17 Monitorer: betingelsesvariable En proces skal kunne vente på at en hændelse indtræder, e.g., buffer er ikke længere tom Dette gøres via betingelsesvariable: condition ejtom; Betingelsesvariable har to operationer: –ejtom.vent(): sætter en proces til at vente indtil nogen bruger … –ejtom.signaler(): aktiver én ventende proces (er der ingen ventende sker der ingenting).

Datalogi 1F 2003: Operativsystemer[3] 18 Monitor med betingelsesvariable

Datalogi 1F 2003: Operativsystemer[3] 19 Monitor: start af processer Når P’s signal aktiverer Q: –Q aktiveres og P’s udførsel standses indtil Q enten forlader monitoren eller venter på en betingelsesvariabel –P fortsætter indtil den enten forlader monitoren eller venter på en betingelsesvariabel, og derefter aktiveres Q

20 De spisende filosoffer

Datalogi 1F 2003: Operativsystemer[3] 21 Semaforløsning Delt data: semafor spisepind[5]; Filosof i: do { vent(spisepind[i]); vent(spisepind[(i+1) % 5]); signaler(spisepind[i]); signaler(spisepind[(i+1) % 5]); } while (1);

Datalogi 1F 2003: Operativsystemer[3] 22 Problem: baglås Vi kan risikere at alle filosoffer sidder med højre spisepind i hånden

Datalogi 1F 2003: Operativsystemer[3] 23 Spisende filosoffer: eksempel monitor spisendefilosoffer { enum {tænker, sulten, spiser} tilstand[5]; condition sulten[5]; void tag(int i); void læg(int i); void test(int i) ; void init() { for (int i = 0; i < 5; i++) tilstand[i] = tænker; }

Datalogi 1F 2003: Operativsystemer[3] 24 Spisende filosoffer: må filosof i spise? void test(int i) { if ( (tilstand[(i + 4) % 5] != spiser) && (tilstand[i] == sulten) && (tilstand[(i + 1) % 5] != spiser)) { tilstand[i] = spiser; sulten[i].signaler(); }

Datalogi 1F 2003: Operativsystemer[3] 25 Spisende filosoffer void tag(int i) { tilstand[i] = sulten; test[i]; if (tilstand[i] != spiser) sulten[i].vent(); } void læg(int i) { tilstand[i] = tænker; test((i+4) % 5); test((i+1) % 5); }

Datalogi 1F 2003: Operativsystemer[3] 26 Baglåse Hvad er en baglås? Hvad er de nødvendige betingelser for en baglås? Ressourceallokeringsgrafer Forhindring af baglåse Bankmandens algoritme

27 Hvad er en baglås? En gruppe af processer er blokeret fordi de indbyrdes venter på at en anden proces skal frigive en reserveret ressourcer

28 De sultne filosoffer

Datalogi 1F 2003: Operativsystemer[3] 29 Betingelser for baglås 1.Hver instans af en ressource skal tilgås udeleligt 2.Processer med reserverede ressourcer har brug for at udvide deres mængde af ressourcer 3.En proces kan ikke tvinges til at frigive en reserveret ressource 4.Der er en cirkulær ressource- afhængighed mellem processerne

Datalogi 1F 2003: Operativsystemer[3] 30 Ressourceallokeringsgraf P1 P2P3 R2 R3 R1 baglås

Datalogi 1F 2003: Operativsystemer[3] 31 Håndtering af baglåse Undgå at de opstår Hav mekanismer der kan opdage og fjerne baglåse Strudsealgoritmen – baglåse, hvaffor baglåse?

Datalogi 1F 2003: Operativsystemer[3] 32 Forhindring af baglåse Undgå at en af de nødvendige betingelser opstår: Udelelig adgang til ressourcer: –afhænger af ressource Udvidelse af reserveringer: –processer kan kun reservere ressourcer: en gang når de ingen ressourcer har –Problem: ressourcer beslaglægges for længe

Datalogi 1F 2003: Operativsystemer[3] 33 Forhindring af baglåse (2) Processer kan tvinges til at frigive ressourcer: –hvis en proces ikke kan reservere de ønskede ressourcer, frigives allerede reserverede ressourcer og tilføjes mængden af ressourcer der ventes på –først når alle ressourcer er tilgængelige genstartes processen –Det kan være langhåret at frigive ressourcer på vilkårlige tidspunkter (rollback) Tving processer til altid at allokere ressourcer i en bestem rækkefølge for at undgå cirkulær venten

Datalogi 1F 2003: Operativsystemer[3] 34 Undgåelse af baglåse Hver reservation R evalueres: –kan alle processer få opfyldt deres behov hvis R udføres? Er den nye tilstand sikker? Kræver: –processer specificerer deres maksimale behov for ressourcer –der vedligeholdes en repræsentation af ressourceforbrug: allokerede tilgængelige processers maksimale behov

Datalogi 1F 2003: Operativsystemer[3] 35 Sikker tilstand En tilstand er sikker hvis der findes en afviklingsrækkefølge for processerne i systemet hvor der gælder: –en proces kan altid få opfyldt sit maksimale ressourcebehov ud fra de tilgængelige ressourcer samt ressourcer frigivet af processer der udføres tidligere En reservation R tillades kun, hvis den nye tilstand er sikker

Datalogi 1F 2003: Operativsystemer[3] 36 Sikker, usikker, baglås sikkerusikker baglås

Datalogi 1F 2003: Operativsystemer[3] 37 Bankmandens algoritme Flere instanser af hver ressource Hver proces skal specificere sit maksimale ressourcebehov på forhånd En proces kan blive sat til at vente på en ressource Når en proces har fået opfyldt sit ressourcebehov, skal den frigive de tildelte ressourcer indenfor endelig tid

Datalogi 1F 2003: Operativsystemer[3] 38 Datastrukturer til bankmandens algoritme Tilgængelig: Vektor med længde m. Hvis tilgængelig[j] = k, så er der k instanser af ressource R j tilgængelig. Maks: n x m matrix. Hvis Maks [i,j] = k, så kan proces P i bede om maks k instanser af ressource R j. Allokeret: n x m matrix. Hvis allokeret [i,j] = k så er P i pt. allokeret k instanser af R j. Behov: n x m matrix. Hvis Behov[i,j] = k, så kan P i have behov for k flere instanser af R j for at afslutte sin opgave. Behov[i,j] = Maks[i,j] – Allokering [i,j]. Lad n = antallet af processer, og m = antallet af ressourcertyper.

Datalogi 1F 2003: Operativsystemer[3] 39 Afgør om system i sikker tilstand 1.Lad Temp og Færdig være vektorer med længderne m og n henholdsvis. Start med: Temp = Tilgængelig Færdig [i] = falsk for i =1,2, …, n. 2.Find et i så følgende gælder: (a) Færdig [i] = falsk (b) Behov i  Temp Hvis i ikke findes, gå til trin 4. 3.Temp = Temp + Allokeret i ; Færdig [i] = sand; gå til trin 2. 4.Hvis Færdig [i] == sand for alle i, så er systemet i en sikker tilstand.

Datalogi 1F 2003: Operativsystemer[3] 40 Reservation for proces P i Reservation = forespørgselsvektor fra P i. Hvis Reservation i [j] = k så beder P i om k instanser af ressource R j. 1.Hvis Reservation i  Behov i gå til trin 2. Ellers er der en fejl idet P i ‘s maksimale behov er overskredet. 2.Hvis Reservation i  Tilgængelig, gå til trin 3. Ellers må P i vente indtil der er ledige ressourcer. 3.Lav en prøveopdatering af systemtilstanden med P i forespørgsel: Tilgængelig = Tilgængelig - Reservation i ; Allokeret i = Allokeret i + Reservation i ; Behov i = Behov i – Reservation i;; Hvis tilstand sikker  P i bliver tildelt ressourcerne. Hvis usikker  P i må vente, og den gamle systemtilstand reetableres

Datalogi 1F 2003: Operativsystemer[3] 41 Opdagelse af baglåse Tillad baglåse i systemet Detekteringsalgoritme Løsning af baglås

Datalogi 1F 2003: Operativsystemer[3] 42 Enkelt instans af hver ressource Oprethold en “venter på” graf: –Knuderne er processer. –P i  P j hvis P i venter på P j. Periodisk undersøges grafen for cykler –Hvor tit? En algoritme til at finde cykler i en graf skal bruge n 2 operationer, hvor n er antallet af kanter.

Datalogi 1F 2003: Operativsystemer[3] 43 Løsning af baglås Slå en proces, der er placeret i cyklen, ihjel: –Hvilken proces? Flest ressourcer? Kørt kortest tid? Genstart en proces –Hvad med ændringer foretaget af processen? Er rollback muligt?

Datalogi 1F 2003: Operativsystemer[3] 44 Opsummering Synkronisering: –Kritiske regioner –Bagerens algoritme –Monitorer –Spisende filosoffer Baglåse: –Nødvendige betingelser –Forhindring af baglåse –Bankmandens algoritme

Datalogi 1F 2003: Operativsystemer[3] 45 Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides