Proces y
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

Proces y PowerPoint PPT Presentation


  • 156 Views
  • Uploaded on
  • Presentation posted in: General

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 :

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Proces y

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


Proces p o j e m

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)


Proces v pam ti

Proces vPamäti


Pl nova e schedulers

Plánovače (Schedulers)

  • Dlhodobý plánovač (Long-term scheduler)(alebo plánovač úloh)

  • Krátkodobý plánovač (Short-term scheduler)(aleboCPU plánovač)


Pl nova e

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í


Prep nanie k ontext u

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


Vytvorenie proces u

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čí


Vytvorenie proces u1

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


Tvorba proces u

Tvorba Procesu


C program

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);

}

}


Dokon enie proces u

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


Komunik cia medzi procesmi

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


K omuni ka n model y

Komunikačné Modely


Spolup ra cuj ce proces y

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


Produce nt k on z ume nt problem

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


Ohrani en b ufer rie enie pou it m zdie anej pam te

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


Ohrani en b ufer produce nt

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;

}


Ohrani en b ufer k on z ume nt

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;

}


Medziprocesorov komunik cia

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)


Implement a n ot zky

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á?


Priama k omuni k cia

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á


Nepriama k omuni k cia

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á


Nepriama k omuni k cia1

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.


Nepriama k omuni k cia2

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


Synchroniz cia

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


Buf rovanie

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á


Pr klady ipc s yst mov posix

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);


Pr klady ipc s yst mu mach

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()


Pr klady ipc s yst mov windows xp

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


L ok l ne volanie p roced r vo windows xp

Lokálnevolanie procedúr vo Windows XP


K omuni k cie v k lient s erver s yst me

Komunikácievklient-server systéme

  • Sokety

  • Vzdialené volanie procedúr(Remote Procedure Calls)

  • Rúry (Pipes)

  • Vzdialené volanie metód (Java)


Soket y

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


Soket ov k omuni k cia

Soketovákomunikácia


Volanie vzdialenej proced ry

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


Vykonanie rpc

Vykonanie RPC


R ry p ipes

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?


Proces y

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


O by ajn r ry

ObyčajnéRúry


Pomenovan r ry named pipes

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


  • Login