proces y
Download
Skip this Video
Download Presentation
Proces y

Loading in 2 Seconds...

play fullscreen
1 / 39

Proces y - PowerPoint PPT Presentation


  • 238 Views
  • Uploaded on

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 :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Proces y' - sumayah-buthainah


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)
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
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
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
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
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
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?
slide37
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
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
ad