Implementarea Proceselor în Unix

Curs
5/10 (1 vot)
Conține 1 fișier: doc
Pagini : 7 în total
Cuvinte : 3529
Mărime: 27.61KB (arhivat)
Publicat de: Ovidiu Cozma
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Gaitan Vasile
Universitatea Stefan Cel Mare Suceava, Cursul de "Sisteme de Operare" capitolele 2.2 - 2.3.4

Extras din curs

2.2. IMPLEMENTAREA PROCESELOR ÎN UNIX

Structurile de date folosite de nucleu pentru gestiunea proceselor sunt :

- structura de proces (1 per proces) care contine câmpuri ce trebuie sa fie accesibile nucleului tot timpul :

- parametrii pentru planificare : prioritatea, timpul de UCP consumat recent, timpul cât a stat în starea suspendat ultima oara; toate acestea sunt folosite pentru a stabili care proces se selecteaza pentru rulare;

- imaginea în memorie : pointeri catre tabela de pagini asociata procesului, în cazul în care procesul este rezident în memoria principala sau adresa pe dispozitivul de swap (disc);

- semnale : un câmp pentru semnale care arata semnalele primite de proces dar netratate înca;

- alte informatii : identificatorul de proces, identificatorii de utilizator si grup efectivi, identificatorul procesului parinte, starea curenta a procesului, evenimentul pe care îl asteapta.

- structura utilizator (1 per proces) care contine câmpuri necesare doar în timpul când procesul se afla în starea de executie:

- pointer spre structura de proces;

- toti identificatorii de grup sau de utilizator asociati procesului;

- un tablou, fiecare element indicând modul în care procesul va reactiona la semnalul corespunzator (ignorare, tratare, terminare proces);

- terminalul de control identificat ca "terminalul de login" asociat procesului, daca exista vreunul;

- parametrii si rezultatele/erorile apelurilor sistem;

- pointer catre inodul directorului curent si catre inod-ul directorului radacina (root);

- o copie a registrilor generali, a indicatorului de stiva (SP), a numaratorului de instructiuni (PC) care este scrisa în momentul comutarii din modul utilizator în modul nucleu;

- informatii privind tabela de fisiere deschise;

- tabela de regiuni (1 per proces), în care fiecare element contine date despre o regiune:

- un pointer catre inod-ul fisierului care este încarcat în regiune (în cazul regiunilor de tip text);

- tipul regiunii : text (cod), memorie comuna (date comune), date private sau stiva;

- localizarea regiunii în memoria fizica;

- dimensiunea regiunii (în Ko) si un câmp care indica tipul de acces permis procesului (read-only, read-write, read-execute);

- starea regiunii, care poate sa fie o combinatie de :

- blocata;

- în acces (în cerere);

- tocmai se încarca în memorie;

- valida (a fost deja încarcata în memorie);

- adresa tabelei de pagini;

- adresa virtuala de început a regiunii;

Obs. : Regiunile partajate pot avea adrese virtuale diferite în fiecare proces

Fiecare proces are atât o faza utilizator (lucreaza în mod utilizator), cât si o faza sistem (lucreaza în mod sistem, nucleu). Instructiunile obisnuite sunt executate în mod utilizator, iar apelurile sistem în mod sistem. Corespunzator, procesului îi sunt asociate doua stive.

Comutarea între modul utilizator si sistem se realizeaza în cazurile :

- generare exceptie;

- apelurile sistem prin care utilizatorul solicita diverse servicii oferite de sistemul de operare; cele care realizeaza operatii de intrare/iesire conduc la suspendarea procesului apelant pe durata transmiterii datelor;

- sosire întreruperi de la periferice.

Nucleul pastreaza intern o tabela a proceselor active ce contine structurile de proces ale proceselor active, indiferent daca ele sunt în memorie sau pe disc (în urma procesului de swapping). De asemenea, pastreaza intern si o tabela de regiuni.

Cu ajutorul apelului sistem fork() se creeaza un nou proces astfel :

- se aloca procesului nou (numit proces fiu) o intrare libera din tabela de procese;

- se asigneaza un ID unic procesului fiu;

- se completeaza câmpurile structurii de proces a procesului fiu (multe sunt copiate de la procesul parinte : grupul parintelui, UID-urile real si efectiv, valoare nice a parintelui etc.). Nucleul initializeaza parametrii pentru planificare : valoarea initiala a prioritatii, folosirea UCP-ului etc.;

- se aloca memorie pentru regiunile de date si stiva, copiindu-se continutul celor corespunzatoare parintelui. În mod obisnuit, nu este necesara alocarea unei zone pentru cod, deoarece se partajeaza cel existent;

- daca sistemul lucreaza cu memorie paginata, vor fi construite noi tabele de pagini pentru regiunile de date si stiva;

- se aloca memorie pentru structura utilizator si se copiaza informatiile din structura utilizator a parintelui. Astfel, vor fi pastrate valorile descriptorilor fisierelor deschise.

Preview document

Implementarea Proceselor în Unix - Pagina 1
Implementarea Proceselor în Unix - Pagina 2
Implementarea Proceselor în Unix - Pagina 3
Implementarea Proceselor în Unix - Pagina 4
Implementarea Proceselor în Unix - Pagina 5
Implementarea Proceselor în Unix - Pagina 6
Implementarea Proceselor în Unix - Pagina 7

Conținut arhivă zip

  • Implementarea Proceselor in Unix.doc

Alții au mai descărcat și

Curs Linux

Free Software Foundation (pe scurt FSF) a aparut în anul 1984, la initiativa programatorului Richard Stallman, care, dezamagit de faptul ca...

Linux

Lucrarea 6 Configurarea unui server linux 1. Introducere teoretica Un server Linux poate oferi toate serviciile pe care le poate oferi un server...

Site Web - Fireworks

Macromedia Studio 8 este principalul pachet de dezvoltare al aplicaţiilor web. De la proiectarea elementelor grafice la dezvoltarea aplicaţiilor...

Site Web - Fireworks-Library

Librăria Fireworks ne permite stocarea, partajarea şi reutilizarea obiectelor folosite în procesul de dezvoltare. Librăria dă posibilitatea...

Bazele Informaticii

In general, un sistem se defineste ca fiind un ansamblu de elemente fizice si logice interconectate si interconditionate prin relatii fizice,...

Analiza unui Sistem Soft

Formularea problemei: Se propune analiza unui sistem soft care va permite comercializarea şi evidenta comenzilor electronice a unei biblioteci...

Control Panel

1. Faceţi setările necesare astfel încât apăsarea tastelor Caps Lock, Num Lock şi Scrooll Lock să fie însoţită de o avertizare sonoră. REZOLVARE:...

Comenzi Linux

Să se creeze un arbore de directoare conform imaginii de mai jos, utilizind comenzile Linux. Crearea structurii directoarelor și fișierelor 1....

Te-ar putea interesa și

Framework Pentru Administrarea Rețelelor de Calculatoare

Rezumat Prin această lucrare ne propunem realizarea unei aplicaţii software care să ajute un utilizator sau administrator de reţea Linux să...

Motoare de căutare pe web

Introducere Pana in 1990 Internetul a fost folosit cu precadere de catre cercetatori din domeniul academic, guvernamental si industrial. Cateva...

Rețea de prelucrarea distribuită a imaginilor

INTRODUCERE Procesul de informatizare se caracterizează prin apariţia şi dezvoltarea în interiorul diverselor organizaţii a unor reţele de...

Aspecte Generale ale Sistemelor de Operare Windows și Unix

ASPECTE GENERALE ALE SISTEMELOR DE OPERARE WINDOWS ŞI UNIX 1.1 Sisteme de operare; definiţii, componente, clasificări Sistemul de operare...

Ghid Office

Cap. 1. SISTEME DE OPERARE 1.1,Prezentare generala Se numeste sistem de operare ansamblul programelor si procedurilor care asigura indeplinirea...

Sisteme de fișiere - clasificări și implementări UNIX-Windows

1 Sisteme de operare - prezentare generala a celor mai utilizate SO 1.1 Microsoft WINDOWS Windows 95 face parte din categoria sistemelor de...

Linux Watchdogs

Watchdogs sunt o extensie a sistemelor de fisiere din Unix. Implementarea lor consta într-un mecanism în interiorul nucleului prin care anumite...

Sisteme de Operare Unix - Watchdog

Bell Laboratories USA a conceput UNIX-ul ca un proiect privat de cercetare început în 1969 de către un mic colectiv de cercetători. Scopul acestui...

Ai nevoie de altceva?