1 / 39

Proces y

Proces y. Proces - pojem Proces - p l á n ovanie Oper ácie na Proces och Medziprocesorová komunikácia ( Interprocess Communication - IPC) Príklady IPC s yst émov K omuni kác i a v K lient-Server Syst éme. Proces - p o j e m. O pera čný syst é m vykonáva rozmanité program y :

Télécharger la présentation

Proces y

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesy • Proces - pojem • Proces - plánovanie • Operácie na Procesoch • Medziprocesorová komunikácia (Interprocess Communication - IPC) • Príklady IPC systémov • Komunikácia v Klient-Server Systéme

  2. Proces - pojem • Operačný systém vykonávarozmanité programy: • Dávkové systémy – joby • Systémy zdieľania času (Time-shared systems) – používateľské programy alebo úlohy • Učebnicepoužívajú výrazyjob a procestakmerzameniteľne • Proces – program ktorý sa vykonáva; vykonávanie procesu sa vyvíja sekvenčným spôsobom • Proces zahrňuje: • Počítadlo inštrukcií (program counter) • Zásobník procesu (stack) • Dátovú sekciu (data section)

  3. Proces vPamäti

  4. Plánovače (Schedulers) • Dlhodobý plánovač (Long-term scheduler)(alebo plánovač úloh) • Krátkodobý plánovač (Short-term scheduler)(aleboCPU plánovač)

  5. Plánovače • Krátkodobý plánovačje vyvolávaný veľmi často (millisekundy)  (musí byť rýchly) • Dlhodobý plánovač je vyvolávaný nie často (sekundy, minúty)  (smie byť pomalý) • Dlhodobý plánovač riadi stupeň multiprogramovania • Proces môže byť opísaný ako: • V/V-zviazaný proces– míňaviac času na vykonávanieV/Vnež na výpočty, veľa krátkych CPU vykonávaní • CPU-zviazaný proces– míňa viac času na vykonávanie výpočtov; málo veľmi dlhých CPU vykonávaní

  6. Prepínanie kontextu • Keď CPU prepína na ďalší proces, systém musíuchovať (uložiť) stav starého procesu a zaviesťuchovaný stavpre nový procesprostredníctvom prepnutia kontextu (context switch) • Kontextprocesuje reprezentovaný prostredníctvom PCB • Čas prepínania kontextu je réžia; systém nerobí užitočnú prácu keď prepína • Časovo závislý na hardvérovej podpore

  7. Vytvorenie Procesu • Rodičovskýproces vytvorídetsképrocesy, ktoré, podľa poradia vytvárajú ďalšie procesy, vytvárajúc strom procesov • Vo všeobecnosti, procesje jednoznačne identifikovaný a spravovaný prostredníctvom identifikátora procesu -a process identifier (pid) • Zdroje zdieľania • Rodič a dieťa zdieľajú všetky zdroje • Dieťa zdieľa podmnožinu rodičovských zdrojov • Rodič a dieťa nezdieľajú zdroje • Vykonávanie • Rodičia a detivykonávajú činnosť (bežia) súbežne • Rodič čaká dovtedy pokiaľdieťa skončí

  8. Vytvorenie Procesu • Adresový priestor • Potomkový proces je duplikátom rodiča • Potomkový proces sa vykonáva nad iným programom • UNIX- ovské príklady • Systémové volanieforkvytvára nový proces • Systémové volanie execje použité po syst.volaníforks cieľom nahradiť pamäťový priestor procesu novým programom

  9. Tvorba Procesu

  10. C Program int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } }

  11. Dokončenie Procesu • Proces vykonáva posledný stav a žiada operačný systém, aby ho zrušil (exit) • Výstupné dátaz potomka na rodiča (cezwait) • Zdroje procesu súuvoľnené operačným systémom • Rodič môže ukončiť vykonávanie procesu potomka (abort) • Potomok (dieťa)prekročilo pridelené zdroje • Úloha pridelená potomkovi už viac nie je požadovaná • Ak rodič skončí • Niektoré operačné systémy nedovoľujú potomkovi pokračovať ak ich rodič je ukončený (skončil svoju činnosť) • Všetky deti (potomkovia) sú ukončené – kaskádové ukončenie

  12. Komunikácia medzi procesmi • Procesy v systéme môžu byťnezávisléalebospolupracujúce (kooperujúce) • Spolupracujúci proces môže ovplyvniť alebo byťovplyvnený inými procesmi,zahrňujúc zdieľané dáta • Dôvody pre spolupracujúce procesy: • Zdieľanie informácií • Rýchlosť výpočtu • Modularita • Výhoda • Spolupracujúce procesypotrebujúinterprocess communication (IPC), t.j. medziprocesorovú komunikáciu • Dva modely IPC • Zdieľaná pamäť • Posielanie správMessage passing

  13. Komunikačné Modely

  14. Spolupracujúce Procesy • Nezávislý proces nemôže ovplyvniť alebo byť ovplyvnený inými procesmi vykonávanými v systéme • Spolupracujúci(kooperujúci) proces môže ovplyvniť alebo byť ovplyvnený inými procesmi vykonávanými v systéme • Výhody spolupráce procesov • Zdieľanie informácie • Zrýchlenie výpočtov • Modularita • Pohodlie

  15. Producent-Konzument Problem • Paradigma pre spolupracujúce procesy, producent proces produkuje informáciu,ktorá je konzumovanáprocesom konzument • Neohraničený bufernemá žiadny limit na svoju veľkosť • Ohraničený bufer predpokladá fixnú veľkosť bufra

  16. Ohraničený bufer – riešenie použitím zdieľanej pamäte • Zdieľané dáta #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; • Riešenie jesprávne, ale môže použiť len BUFFER_SIZE-1 prvkov

  17. Ohraničený bufer – Producent while (true) { /* Produce an item */ while (((in = (in + 1) % BUFFER SIZE count) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; }

  18. Ohraničený bufer – Konzument while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; return item; }

  19. Medziprocesorová komunikácia • Mechanizmuspre procesy kvôli komunikácii a synchronizácii ich činností • Systém správ – procesy komunikujú navzájom medzi sebou bez použitia zdieľaných premenných • IPC možnosti poskytujúdve operácie: • send(správa) – veľkosť správy je fixná alebo premenlivá • receive(správa) • AkP a Qchcú komunikovať, potrebujú: • zriadiťkomunikačnúlinkumedzi sebou • vymeniť správy prostredníctvom send/receive • Implementáciakomunikačnej linky • fyzikálna (napr., zdieľaná pamäť, hardwerovázbernica • logická (napr., logické vlastnosti)

  20. Implementačné otázky • Ako nadviazať spojenie? • Môžu sa k linke pripojiť viac ako dva procesy? • Koľko liniek môže existovať medzi každým párom komunikujúcich procesov? • Aká je kapacita linky? • Je dĺžka správy pevne daná (fixná) alebo premenlivá? • Je linka jednosmerná alebo obojsmerná?

  21. Priamakomunikácia • Procesy sa musia navzájom explicitne pomenovať: • send (P, správa) – pošli procesu P správu • receive(Q, správa) – prijmi od procesu Q správu • Vlastnosti komunikačnej linky • Spojenie sa nadviaže automaticky • Spojenie je umožnené presne dvom procesom • Medzi každou dvojicou procesov existuje práve jedno spojenie • Linka môže byť jednosmerná, ale zvyčajne je obojsmerná

  22. Nepriama komunikácia • Správy sú posielané a prijímané z poštových schránok - mailboxov (tiežnazývaných porty) • Každý mailbox má jedinečnú identifikáciuid • Procesymôžu komunikovať len ak zdieľajú mailbox • Vlastnosti komunikačnej linky • Spojenie je zavedené len ak procesyzdieľajú spoločný mailbox • Spojenie môže byť asociované s viacerými procesmi • Každá dvojica procesov môže zdieľať niekoľko komunikačných liniek • Linka môže byť jednosmerná alebo obojsmerná

  23. Nepriamakomunikácia • Zdieľanie Mailboxu • P1, P2, a P3zdieľajú mailbox A • P1, posiela správu do A; P2a P3prijímajú z A • Ktorý proces prijme správu poslanú od A? • Riešenia • Dovoliť spojenie asociované s najviac dvoma procesmi • Dovoliť najviac jednému procesu v danom čase vykonávať operáciu receive • Dovoliť systému rozhodnúť, ktorý proces sa stane prijímateľom správy. Nebudú to oba procesy naraz.

  24. Nepriama komunikácia • Činnosti • Vytvor nový mailbox • Pošli a príjmi správy cez mailbox • Odstráň mailbox • Definujeme operácie: send(A, správa) – pošli správu do mailbox-u A receive(A, správa) – príjmi správu z mailbox-u A

  25. Synchronizácia • Odovzdávanie správ môže byť buď blokované alebo neblokované • Blokovanieuvažované akosynchrónne • Blokovanie odosielania– posielajúci proces je zablokovaný pokiaľ nie je prijatá správa • Blokovanie prijímania– prijímateľ je blokovaný pokiaľ nie je správa k dispozícii • Neblokovanie jeuvažované ako asynchrónne • Neblokovanéposielanie – posielajúci proces pošle správu a pokračuje v činnosti • Neblokované prijímanie – prijímateľ prijme buď platnú správu alebo„nič“l

  26. Bufrovanie • Front správ pripojených k linke, implementovaný je troma spôsobmi: 1.Nulová kapacita – 0 správ vo fronteOdosielateľ musí čakať na príjemcu správy (rendezvous) 2.Ohraničená kapacita – konečná dĺžkansprávOdosielateľ musí čakať ak je front plný 3.Neobmedzená kapacita – nekonečná dĺžkaOdosielateľ nikdy nečaká

  27. Príklady IPC systémov POSIX • POSIX Zdieľaná pamäť • Proces najprv vytvorí segment zdieľanej pamäte segment id = shmget(IPC PRIVATE, size, S IRUSR | S IWUSR); • Proces ak chce mať prístup k tejto zdieľanej pamäti, musí sa k nej pripojiť shared memory = (char *) shmat(id, NULL, 0); • Teraz môže proces zapisovať do zdieľanej pamäte sprintf(shared memory, "Writing to shared memory"); • Keď daný proces sa má oddeliť od zdieľanej pamäte, z jej adresného priestoru shmdt(shared memory);

  28. Príklady IPC systému - Mach • Mach komunikácia je správa založená na • Každý systém volá všetky správy • Každá úloha dostane dva mailboxypri vytvorení - Kernel a oznámenie (Notify) • Iba tri systémové volania potrebné pre prenos správy msg_send(), msg_receive(), msg_rpc() • Mailboxypotrebné pre komunikáciu, vytvorené prostredníctvom port_allocate()

  29. Príklady IPC systémov – Windows XP • Správa-možnosť prechodu cezlokálne volanie procedúry(LPC) • Pracuje len medzi procesmi v tom istom systéme • Užívateľské porty (ako mailboxy) na zriadenie a udržiavanie (podporovanie) komunikačných kanálov • Komunikácia pracuje nasledovne: • Klient otvoríprácu spojovacieho portu subsystému objektu • Klient posiela požiadavku na spojenie • Server vytvorí dva privátne komunikačné porty a vrátinarábanie (prácu) jednému z nich (ku klientovi) • Klient a server používajú zodpovedajúci port pre posielanie správ alebo spätné volania(volania naspäť) a „počúva“ odpovede

  30. Lokálnevolanie procedúr vo Windows XP

  31. Komunikácievklient-server systéme • Sokety • Vzdialené volanie procedúr(Remote Procedure Calls) • Rúry (Pipes) • Vzdialené volanie metód (Java)

  32. Sokety • Soket je definovaný ako koncový bod komunikácie • Je vytvorený z IP adresy zreťazenej s číslom portu • Soket 161.25.19.8:1625vzťahujúci sa na port 1625 na hostiteľovi161.25.19.8 • Dvojica procesov komunikuje cez sieť používajúc dvojicu soketov – jeden soket pre každý proces

  33. Soketovákomunikácia

  34. Volanie vzdialenej procedúry • Volanie vzdialenej procedúry (Remote procedure call - RPC) používa sa často v distribuovaných aplikáciách klient-server. Procesy takejto aplikácie sa vykonávajú na rôznych uzloch siete a komunikujú pomocou zasielania správ. • Stubs – „client-side proxy“pre aktuálnu procedúru na serveri • „client-side stub“ lokalizuje server a zoraďuje parametre • „server-side stub“prijme túto správu, rozbalí zoradené parametre a vykoná procedúruna serveri

  35. Vykonanie RPC

  36. Rúry - Pipes • Najstarší a najjednoduchší mechanizmus komunikácie medzi procesmi • Otázky • Je komunikácia jednosmerná alebo obojsmerná? • V prípadedvojsmernej (obojsmernej)komunikácieje to polovičný alebo plný duplex? • Musí tu existovať vzťah (t.j.rodič - potomok) medzi komunikujúcimi procesmi? • Môžu byť rúry použité v sieti?

  37. Rúry • ObyčajnéRúrydovoľujúkomunikáciuštandardným spôsobomproducent-konzument • Producent zapisuje na jeden koniec (zapisovací koniecrúry) • Konzumentčítaz druhého konca (čítací koniec rúry) • Obyčajnérúry sú preto jednosmerné • Požadujú vzťah rodič – potomok medzi komunikujúcimi procesmi

  38. ObyčajnéRúry

  39. Pomenované rúry - Named Pipes • Pomenované rúry sú výkonnejšie ako obyčajné rúry • Komunikácia je obojsmerná • Vzťah rodič – potomok (dieťa) nie je potrebný v procese komunikácie • Niekoľko procesovmôže použiť pomenované rúry pre komunikáciu • Poskytujú ich rovnako UNIX-ovské aj Windows-ovské systémy

More Related