CATEGORII DOCUMENTE |
Procese - ierarhii de procese, starile unui proces, implementarea proceselor, tratarea intreruperilor.
Ierarhii de procese
Atunci cand un proces creeaza un alt proces exista anumite legaturi intre procesul parinte si procesul copil.
UNIX - un proces impreuna cu descendenTii sai formeaza un grup de procese. Ex: un semnal de la tastatura este transmis tuturor membrilor grupului
de procese, asociat cu tastatura in acel moment. Fiecare proces poate intercepta, ignora semnalul sau poate fi terminat de semnal.
In Windows nu exista ierarhie, dar procesul parinte are dreptul de a controla procesul copil si poate transmite acest drept unui alt proces.
Starile unui proces
1. In execuTie (foloseste procesorul) - procesor disponibil.
2. Gata de execuTie (executabil dar oprit temporar pt. a lasa alt proces sa se execute) - procesor indisponibil.
3. Blocat (incapabil sa se execute pana cand nu apare un eveniment extern) - procesor disponibil.
Sunt posibile patru tranziTii:
Procesul se blocheaza in asteptarea datelor de intrare - ramane in starea 3.
Se trece din starea 1 in starea 2 - procesorul alege un alt proces.
Se trece din starea 2 in starea 1 in cazul in care procesorul alege acest proces.
Se trece din starea 3 in starea 2 in cazul in care datele de intrare devin disponibile.
OperaTiile se fac prin intermediul planificatorului de procese.
Categorii de procese:
executa programe create de utilizator;
se ocupa de functionarea corecta a sistemului;
Nivelul inferior este reprezentat de modulul planificator iar nivelul imediat superior de diverse alte procese. Tratarea intreruperilor, detaliile legate de crearea si
terminarea proceselor se afla in modulul planificator.
Implementarea proceselor
Pentru a implementa modelul teoretic SO foloseste un tabel de procese (process table).
Tabelul de procese este un vector de structuri cu o intrare pentru fiecare proces - bloc de control al procesului.
Intrarea conTine informaTii despre:
starea procesului
contorul program;
indicatorul de stiva;
alocarea memoriei;
starea fisierelor deschise;
alte informaTii care trebuie salvate la trecerile procesului dintr-o stare in alta.
Tratarea intreruperilor: fiecare clasa de dispozitive I/E are asociata o locaTie numita vector de intrerupere in care este memorata adresa rutinei de tratare a intreruperii.
Cand apare o intrerupere:
contorul program, cuvantul de stare a programului, unul sau mai multe registre asociate programului se salveaza pe stiva de catre hardul de intrerupere;
hardul incarca din vectorul de intrerupere contorul program al rutinei de intrerupere;
Partea de rutina scrisa in limbaj de asamblare salveaza registrele programului intrerupt;
rutina in limbaj de asamblare muta pointer-ul de stiva la o noua locaTie;
se executa partea de tratare a intreruperii scrisa intr-ul limbaj de programare (de obicei C);
se apeleaza modulul planificator care stabileste procesul care trebuie executat in continuare;
se trece din nou de la limbaj de programare la limbaj de asamblare si se iniTializeaza noul proces.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1516
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved