13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)

Slides:



Advertisements
Podobné prezentace
13AMP 11. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Co je to RT systém Co je to RT systém Velké RT systémy Velké RT systémy Klasické
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
ALGO – Algoritmizace 1. cvičení
Paralelní programování
Materiály k přednášce Úvod do programování Ondřej Čepek.
7. přednáška konzistence dat (příklad) -multithreading (monoprocesor) -sdílení času -analýza časového kvanta -priorita -přepínání (procesů,
Informatika I 3. přednáška
13AMP 8. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled RT jazyky RT jazyky Modula Modula Modula II Modula II.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Teoretická informatika Tomáš Foltýnek Paralelní programování.
Podmienený príkaz. Kĺúčové slová  Pro podmínky se v Pascalu používají klíčové příkazy IF, THEN a ELSE.  Také se jim říká „príkaz vetvenia"..  Příkaz.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Hardware Vypracoval: Patrik Bejček.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Správa procesů.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
11. přednáška politika přidělování místa, trashing -algoritmy určení oběti -souběžnost procesů -kritická sekce (co je to, požadavky, možnosti.
1/29 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Procesy 05.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Správa procesů.
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Meziprocesní komunikace a synchronizace procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém.
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Synchronizace procesů a problém uváznutí 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém soupeření,
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy.
doc. RNDr. Zdeněk Botek, CSc.
1/35 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy 10. Souběh a uváznutí
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Moduly.
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
OPERAČNÍ SYSTÉMY Část 1 – úloha OS Zpracovala: Mgr. Marcela Cvrkalová
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
DIGITÁLNÍ UČEBNÍ MATERIÁL
1. ročník oboru Mechanik opravář motorových vozidel
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Přednášky z distribuovaných systémů
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Správa procesů.
Přednášky z Distribuovaných systémů
Monitor Object 1.
Transkript prezentace:

13AMP 3. přednáška Ing. Martin Molhanec, CSc.

Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy) Task switching (přepnutí úlohy) Stavy procesu Stavy procesu –Running (běžící) –Ready (připravený) –Waiting (čekající) –Suspend (odložený)

Stavy procesů (připomenutí)

Co jsme se naučili naposled II. Co je to scheduling (plánování) Co je to scheduling (plánování) Preemptivní multitask Preemptivní multitask Kooperativní multitask Kooperativní multitask Úloha Úloha –Asynchronní –Synchronní –Na pozadí

Problém sdílené paměti Dvě úlohy současně přistupují na to samé místo ve sdílené paměti Dvě úlohy současně přistupují na to samé místo ve sdílené paměti Problém se vyskytne pokud manipulace s pamětí není atomická! Problém se vyskytne pokud manipulace s pamětí není atomická! Atomická manipulace = není dělitelná na jednodušší manipulace Atomická manipulace = není dělitelná na jednodušší manipulace

Problém sdílené paměti (jazyk podobný Pascalu) Úloha 1 I:=I+1; A[I] := DATA_1 Úloha 2 I:=I+1; A[I] := DATA_2 I=index do pole, A=pole DATA_1,DATA_2=data DATA_1, DATA_2=data

Problém sdílené paměti (jazyk podobný Pascalu) Úloha 1 I:=I+1; A[I] := DATA_1 Úloha 2 I:=I+1; A[I] := DATA_2 I=0 →I=1 A[1] = DATA_1 přepnutí I=1 →I=2 A[2] = DATA_2

Problém sdílené paměti (jazyk podobný Pascalu) Úloha 1 I:=I+1; A[I] := DATA_1 Úloha 2 I:=I+1; A[I] := DATA_2 1: I=0 →I=1 4: A[2] = DATA_ : I=1 →I=2 3: A[2] = DATA_2 4

Problém sdílené paměti (jazyk podobný Pascalu) Správně A[1]=DATA_1 A[2]=DATA_2 Správně A[1]=DATA_1 A[2]=DATA_2 Chybně A[1]=??? A[2]=DATA_1 Chybně A[1]=??? A[2]=DATA_1 PROČ? PROČ? –protože operace, která manipuluje s daty není atomická!

Obecně se jedná o problém sdílených zdrojů Paměť Paměť Tiskárna Tiskárna Disky Disky Periferie Periferie … Ve všech výše uvedených případech je nutné řešit problém, jak synchronizovat přístup více úloh ke sdíleným zdrojům! Ve všech výše uvedených případech je nutné řešit problém, jak synchronizovat přístup více úloh ke sdíleným zdrojům!

Kritická sekce Kritická sekce je část procesu, která se nesmí vykonávat současně s kritickou sekcí jiného procesu. Kritická sekce je část procesu, která se nesmí vykonávat současně s kritickou sekcí jiného procesu. Mezi dvěma kritickými sekcemi existuje vztah MUTUAL EXCLUSION. Mezi dvěma kritickými sekcemi existuje vztah MUTUAL EXCLUSION. Třída kritických sekcí je množina kritických sekcí, které jsou všechny vzájemně ve vztahu mutual exclusion Třída kritických sekcí je množina kritických sekcí, které jsou všechny vzájemně ve vztahu mutual exclusion POZNÁMKA: V kooperativních systémech tento problém nevzniká pokud ho sami nevytvoříme. V systémech preemptivních jeho vznik neovlivníme. POZNÁMKA: V kooperativních systémech tento problém nevzniká pokud ho sami nevytvoříme. V systémech preemptivních jeho vznik neovlivníme.

Jak řešit problém kritické sekce Zákaz přerušení Zákaz přerušení DI; disable IRQ I := I + 1 A[I] := DATA_1 EI; enable IRQ Není moc výhodné Není moc výhodné –Mohu zablokovat celý program –Úsek kódu musí být co nejkratší

Zákaz přerušení (další problémy) Mohou jen programy, které pracují v privilegovaném režimu Mohou jen programy, které pracují v privilegovaném režimu Pokud je přerušení zakázáno, ostatní programy jsou pozastaveny Pokud je přerušení zakázáno, ostatní programy jsou pozastaveny Pokud se jedná o víceprocesorové systémy – tak nám stejnak nepomůže Pokud se jedná o víceprocesorové systémy – tak nám stejnak nepomůže

Jak řešit problém kritické sekce Hardwarová řešení (speciální instrukce procesoru) Hardwarová řešení (speciální instrukce procesoru) –TAS (test and set) –… Softwarová řešení Softwarová řešení –Semafor –Monitor –… Jsou to výhodnější řešení nežli zákaz IRQ. Jsou to výhodnější řešení nežli zákaz IRQ. –Existuje více variant –Brzy si je ukážeme

Proces AProces B Čti 1 byte „1“ Čti 2 byte „9“ Dekrementuje přepnutí Sdílená proměnná

Proces AProces B Čti 1 byte „1“ Čti 2 byte „0“ Test (úspěšný) přepnutí Sdílená proměnná semafor Test (neúspěšný) set reset přepnutí dekrementace volný obsazený volný

Semafor PROCES A while sem = 0 do; sem := 0; kritická sekce; sem := 1; PROCES B while sem = 0 do; sem := 0; kritická sekce; sem := 1; KSKS KSKS PROBLEM: testování a nastavení musí být atomická operace!!!

TAS (test and set) Vysvětlení instrukce TAS v pseudojazyce If (sem=0) then flag := false; Else sem := 0; flag := true; End; Jak se instrukce TAS používá Jak se instrukce TAS používá Label: TAS sem;test and set JIFFLabel;jump if false ; kritická sekce movsem, 1 Zde může nastat IRQ!

Semafor - zjednodušeně PROCES A Wait(sem); kritická sekce; Signal(sem); PROCES B Wait(sem); kritická sekce; Signal(sem); KS Init(sem, 1); Init, Wait, Signal – jsou funkce pro práci se semaforem. funkce Wait – je atomická z hlediska test and set. Během funkce Wait dochází k přepínání procesů! KS

Boolean semafor Init(sem,value) Nastaví semafor sem na hodnotu value (0 nebo 1) Wait(sem) Čekání na semafor Signal(sem) Uvolnění semaforu while sem=0 do; sem := 0; Sem := 1; sem := value;

Integer semafor Init(sem,value) Nastaví semafor sem na hodnotu value (≥0) Wait(sem) Čekání na semafor Signal(sem) Uvolnění semaforu while sem=0 do; sem := sem - 1; Sem := sem + 1; sem := value;

Rozdíl – boolean a integer semafor Boolean semafor Boolean semafor –Umožňuje sdílet jeden zdroj, například místo v paměti Integer semafor Integer semafor –Umožňuje sdílet několik zdrojů, například několik tiskáren