Documente Academic
Documente Profesional
Documente Cultură
Operating System Concepts with Java 4.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.2 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.3 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.4 Silberschatz, Galvin and Gagne ©2003
Blocul de Control a unui Proces (PCB) Blocul de Control a unui Proces (PCB)
Operating System Concepts with Java 4.5 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.6 Silberschatz, Galvin and Gagne ©2003
1
Schimbarea de Context de la un Proces la alt
Proces Cozi de Planificare a Proceselor
Job queue – setul tuturor proceselor din sistem
Ready queue – setul tuturor proceselor care se află în memoria
principală, pregătite de execuţie
Device queues – setul de procese care aşteaptă după un
dispozitiv de I/E
Procesele migrează între diferitele cozi
Operating System Concepts with Java 4.7 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.8 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.9 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.10 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.11 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.12 Silberschatz, Galvin and Gagne ©2003
2
Planificatori (Cont.) Schimbarea de Context
Planificatorul pe termen scurt este apelat foarte frecvent Când CPU-ul schimbă la un alt proces, sistemul trebuie să
(milisecunde) (deci trebuie să fie foarte rapid) salveze starea vechiului proces şi să încarce starea salvată
Planificatorul pe termen lung este apelat foarte rar (secunde, pentru noul proces
minute) (poate fi încet) Timpul de schimbare de context este un timp suplimentar;
Planificatorul pe termen lung controlează gradul de sistemul nu efectuează nici o operaţie folositoare în timpul
multiprogramare comutării
Operating System Concepts with Java 4.13 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.14 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.15 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.16 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.17 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.18 Silberschatz, Galvin and Gagne ©2003
3
Terminarea unui Proces Cooperarea între Procese
Procesul execută ultima instrucţiune şi cere sistemului de Un proces Independent nu poate afecta sau să fie afectat de
operare să îl termine (exit) execuţia unui alt proces
Trimite datele de la fiu la părinte (via wait) Procese cooperante pot afecta sau să fie afectate de execuţia
Resursele procesului sunt dealocate de către sistemul de operare unui alt proces
Părintele poate termina execuţia proceselor fii (abort) Avantaje ale cooperării proceselor
Fiul a depăşit resursele alocate Partajarea informaţiilor
Task-ul asignat fiului nu mai este necesar Creşterea vitezei de calcul
Dacă părintele se termină Modularitate
Unele sisteme de operare nu permit ca fiii să continue dacă Comoditate
părintele se termină
– Toţi fiii sunt terminaţi – terminare în cascadă
Operating System Concepts with Java 4.19 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.20 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.21 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.22 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.23 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.24 Silberschatz, Galvin and Gagne ©2003
4
Buffer Limitat – Metoda Remove() Comunicarea Interproces (IPC)
Mecanism pentru ca procesele să comunice şi să îşi
public Object remove() { sincronizeze acţiunile
Sistem de mesagerie – procesele comunică unele cu altele fără
Object item; să folosească variabile partajate
while (count == 0) Facilităţile IPC oferă două operaţii:
send(message) – dimensiunea mesajului este fixă sau variabliă
; // fă nimic – nimic de consumat
receive(message)
// elimină un element din buffer Dacă P şi Q doresc să comunice, ele trebuie să:
--count; Stabilească o cale de comunicare între ele
Interschimbe mesaje via send/receive
item = buffer[out];
Implementarea căii de comunicare
out = (out + 1) % BUFFER SIZE; fizică (ex., memorie partajată, magistrală hardware)
Operating System Concepts with Java 4.25 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.26 Silberschatz, Galvin and Gagne ©2003
Câte căi pot exista între fiecare pereche de procese care receive(Q, message) – primeşte un mesaj de la procesul Q
comunică? Proprietăţile căii de comunicare
Care este capacitatea unei căi? Căile sunt stabilite automat
Este dimensiunea unui mesaj pe care calea poate să o accepte O cale este asociată cu o singură pereche de procese care
fixă sau variabilă? comunică
Între fiecare pereche există o singură cale
Este o cale unidirecţională sau bidirecţională?
Calea poate fi unidirecţională, dar de obicei este bidirecţională
Operating System Concepts with Java 4.27 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.28 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.29 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.30 Silberschatz, Galvin and Gagne ©2003
5
Comunicare Indirectă Sincronizare
Partajarea Mailbox-ului Trimiterea de mesaje poate fi sau cu blocare sau fără blocare
P1, P2, şi P3 partajează mailbox-ul A Blocarea este considerată sincronă
P1, trimite; P2 şi P3 recepţionează send cu blocare blochează expeditorul până ce mesajul a fost
Cine primeşte mesajul? recepţionat
Operating System Concepts with Java 4.31 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.32 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.33 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.34 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.35 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.36 Silberschatz, Galvin and Gagne ©2003
6
Remote Procedure Calls
(Apeluri de Procedură la Distanţă) Execuţia RPC
Apelul de procedură la distanţă (RPC) abstractizează apelurile
de procedură dintre procese pe sisteme legate în reţea.
Stub – este un proxy pe parte de client (client-side proxy) pentru
procedura efectivă de pe server.
Stub-ul de pe client localizează server-ul şi aranjează,
împachetează şi trimite parametri (marshalling).
Stub-ul de pe server recepţionează acest mesaj, despachetează
parametri şi efectuează procedura pe server.
Operating System Concepts with Java 4.37 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.38 Silberschatz, Galvin and Gagne ©2003
Operating System Concepts with Java 4.39 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.40 Silberschatz, Galvin and Gagne ©2003
7
Thread-uri multiple dintr-un Task Suportul Thread-urilor în Solaris 2
Solaris 2 este o versiune de UNIX care suportă thread-uri atât
la nivel de nucleu cât şi utilizator, multiprocesare simetrică şi
planificare în timp-real.
LWP – nivel intermediar între thread-uri de nivel utilizator şi
thread-uri de nivel nucleu.
Resurse necesare pe tipuri de thread-uri:
Thread de nivel nucleu: o structură compactă de date şi o stivă;
comutarea între thread-uri nu necesită schimb de informaţie de
acces la memorie – relativ rapid.
LWP: PCB cu date din regiştri, informaţii de contabilizare şi
memorie; comutarea între LWP-uri este relativ înceată.
Thread de nivel utilizator: necesită doar contor program şi stivă;
neimplicarea nucleului înseamnă o comutare rapidă. Nucleul
vede doar LWP-urile care suportă thread-urile de nivel utilizator.
Operating System Concepts with Java 4.43 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java 4.44 Silberschatz, Galvin and Gagne ©2003
Solaris 2 Threads
Operating System Concepts with Java 4.45 Silberschatz, Galvin and Gagne ©2003