Introducere in Sistemel de Operare - PDF
Document Details

Uploaded by SlickKoala4317
Politehnica University of Timișoara
Tags
Summary
Acest document prezintă o introducere în sistemele de operare, concentrându-se pe gestionarea și descrierea proceselor. Sunt abordate aspecte precum definirea proceselor, stare, gestiune, crearea și identificarea proceselor. De asemenea, sunt explorate tipurile de procese și modul în care acestea sunt gestionate și schimbate. Aceste cunoștințe sunt importante pentru înțelegerea funcționării unui sistem modern.
Full Transcript
Introducere in Sistemel de Operare Curs 3 Cuprins 1. Descrierea si starea proceselor 2. Crearea proceselor 3. Identificarea si atributele proceselor 4. Gestiunea proceselor DESCRIEREA SI STAREA PROCESELOR Definirea proceselor Descrierea proceselor Starea asociata proceselor...
Introducere in Sistemel de Operare Curs 3 Cuprins 1. Descrierea si starea proceselor 2. Crearea proceselor 3. Identificarea si atributele proceselor 4. Gestiunea proceselor DESCRIEREA SI STAREA PROCESELOR Definirea proceselor Descrierea proceselor Starea asociata proceselor Definirea proceselor 1 Ce este un proces ? Pas 1 – cod scris intr-un limbaj de programare Definirea proceselor Pas 2 – compilarea codului 2 Definirea proceselor 1 3 2 Pas 3 – executia codului compliat pe procesor Definirea proceselor Definirea proceselor Definitii Proces = cod binar (program) aflat in executie; = imaginea dinamica a unui program; = o unitate de baza a unei activitati, caracterizata de executia unei secvente de instructiuni, o stare curenta si resurse de sistem asociate Un program devine proces atunci cand este incarcat in memorie in vederea executarii propriu-zise. In cazul in care exista mai multe procese asociate cu un acelasi program, acestea se vor numi instante. Definirea proceselor Tabel de procese in SO windows: Process Manager Descrierea proceselor ◼ In timpul executiei orice proces poate fi caracterizat prin: ◼ Identificator: unic atribuit fiecarui proces ◼ Stare: in executie, in asteptare …. ◼ Prioritate: prioritate relativa la alte procese ◼ Program counter (contor program): adresa urmatoarei instructiuni din program ce se va executa ◼ Pointer de memorie: pointeri catre cod si date asociate procesului Descrierea proceselor ◼ In timpul executiei orice proces poate fi caracterizat prin (continuare): ◼ Context data (Date de context): date din registrele procesorului prezente la momentul executiei procesului ◼ Stare I/O: intrari, iesiri folosite de proces (fisiere, disozitive I/O) ◼ Accounting information ( Informatii gestiune ): timp de procesor folosit, constrangeri de timp, etc Aceste caracteristici sunt stocate intr-o structura de date denumita Process Control Block (Blocul de control proces ) Descrierea si starea proceselor Descrierea proceselor ◼ Un proces are doua componente de baza: ◼ Codul scris – (eng: program code) ◼ Set de date asociate (eng: set of data ) ◼ Un proces are atasat un Process Control Block (PCB) creat si gestionat de SO ◼ PCB contine suficiente informatii pentru a permite SO intreruperea executiei si reluarea executiei unui proces Descrierea proceselor Intreruperea procesului P1 urmata de pornirea procesului P2, intreruperea acestuia si reluarea P1. Proces P1 Proces P2 Interrupt / system call executing Salveaza in PCB1 ready or waiting Incarca din PCB2 executing ready or Interrupt / system call waiting Salveaza in PCB2 Incarca din PCB1 ready or waiting executing 14 Descrierea proceselor ◼ Când un proces este întrerupt: ◼ valorile curente ale program counter și context data sunt salvate în câmpurile corespunzătoare din PCB ◼ starea procesului se schimbă. ◼ Sistemul de operare poate acum pune alt proces în stare de rulare. ◼ Incarcarea unui nou proces: ◼ Se utilizeaza datele din PCB ◼ Starea procesului se sgimba: rulare Schimbarea proceselor Memorie principala Proces 1 ◼ Comportamentul unui program counter proces Proces 2 ◼ secvență de instrucțiuni care Adresa se execută 100 Proces 3 ◼ Denumita: urma a procesului - trace ◼ Comportamentul procesorului Proces 4 ◼ prin afișarea urmelor diferitelor procese. Dispecer Proces 1 Proces 2 Proces 3 300 301 1000 1001 2000 2001 6000 6001 Schimbarea 302 303 304 1002 1003 1004 2002 2003 2004 6002 6003 6004 proceselor 1005 1006 6005 6006 6007 - exemplu 6008 Nr Adresa Nr Adresa instructiune instructiune instructiune instructiune 1 300 19 300 2 301 20 301 3 302 21 302 ◼ Schimbarea proceselor este 4 303 22 303 realizata de un program 5 304 23 304 numit dispecer (dispach) 6 6000 24 1000 7 6001 25 1001 ◼ Acesta este la randul sau un 8 6002 26 1002 9 6003 27 1003 proces care ocupa o zona de 10 6004 28 300 memorie (300-304) 11 6005 29 301 12 6006 30 302 ◼ Dispecerul preia din program 13 6007 31 303 counter instructiunea care 14 300 32 304 trebuie executata 15 301 33 2000 16 302 34 2001 17 303 35 2002 18 304 36 2003 37 2004 Starea asociata proceselor De-a lungul vietii, un proces trece prin mai multe stari: ◼ NEW ◼ READY ◼ RUNNING ◼ WAITING ◼ FINISHED ◼ ZOMBIE - linux Gestiunea propriu-zisa si trecerea dintr-o stare in alta sunt realizate de catre o entitate numita planificator de procese. Starea asociata proceselor Exemplu - Linux Signal Stopped ◼RUNNING Start Signal ◼In executie pe CPU ◼READY Running ◼Pregatit de rulare Ready Running ◼INTERRUPTIBLE Scheduling ◼In asteptarea unui Termination semnal sau eveniment Signal Event Event ◼UNINTERRUPTIBLE Wait Un ◼In asteptarea unui Interrupt Zombie eveniment waiting ◼STOPPED Wait ◼Suspendat Dead ◼EXIT ZOMBIE, EXIT DEAD Interrupt waiting ◼Oprit Starea asociata proceselor Exemplu - Windows ◼ init: being created ◼ ready: waiting to be assigned to a CPU ◼ running: instructions are being executed ◼ waiting: waiting for some event to occur ◼ terminated: has finished execution interrupt ◼ quantum expired ◼ init ◼ terminated ◼ admitted ◼scheduler ◼ exit ◼ ready dispatch ◼ running ◼ I/O or event ◼ waiting ◼ waiting for completion ◼I/O or event Coada de asteptare Windows Ready queue CPU Dispatch I/O 1 queue I/O 1 wait I/O 2 wait I/O n wait I/O occurs I/O n queue CREAREA PROCESELOR Tipuri de procese { Procese sistem - Procese speciale: swapper, init. Procese utilizator Crearea proceselor Cea mai simpla metoda de a crea un proces consta in lansarea in executie a unui program Conditii: ◼ disponibilitate resurse (HW si de alta natura !); ◼ drepturi/permisiuni pentru utilizator; ◼ utilizarea corecta a comenzii specifice. Crearea proceselor Pasi pentru crearea unui proces: 1. Alocarea unui ID 2. Alocarea de memorie pentru proces 3. Se initailizeaza blocul de control 4. Se stabilesc legaturile 5. Se creaza sau extind alte structuri de date Crearea proceselor Crearea proceselor Crearea proceselor Alta modalitate de a genera/crea procese: ◼ din interiorul unui proces existent Procesul curent = proces parinte sau tata. Procesul creat = proces copil sau fiu MOSTENIRE ! In mod normal procesul parinte asteapta finalizarea procesului fiu. Abaterea de la aceasta regula poate duce la generearea de procese zombie. Crearea proceselor T T fork() fork() T F1 F2... Fn T F a. Un singur proces copil b. Mai multe procese copil Crearea proceselor a=5; MOSTENIRE T fork() T F a=5; a=5; a=a+1; a=5; Crearea proceselor IDENTIFICAREA SI ATRIBUTELE PROCESELOR Identificarea si atributele proceselor Pentru gestionarea proceselor este necesara identificarea acestora in mod unic ! Exista o serie de atribute 3 categorii: specifice proceselor: ◼Identificarea proceselor ◼ PID, PPID ◼Informatii de stare ◼ Memorie ocupata ◼Informatii de control ◼ Procesor ocupat ◼ Prioritate ◼ Durata executie De cine credeti ca este ◼ Terminal asociat conditionat ? ◼ etc. Identificarea si atributele proceselor ◼ PID (process identification) ◼ numar unic atribuit procesului ◼ PPID (parrent process identification) ◼ numar al procesului parinte ◼ Nice number ◼ gradul de prietenie al procesului fata de alte procese -> determina prioritatea ◼ invers proportional cu pioritatea ◼ valori negative, priotitate maxima Identificarea si atributele proceselor ◼ Real and Effective User IDentification (RUID and EUID): ◼ RUID = utilizatorul ce a pornit procesul ◼ EUID = utilizatorul ce permite accesul la resursele sistemului ◼ Terminal asociat (TTY) ◼ terminalul la care este conectat procesul Identificarea si atributele proceselor Identificarea si atributele proceselor ◼PGID = Process Group ID ◼SID = Sesion DD Identificarea si atributele proceselor Identificarea si atributele proceselor Identificarea si atributele proceselor Identificarea si atributele proceselor Proces de prim plan (foreground) Identificarea si atributele proceselor Proces de prim plan (foreground) Identificarea si atributele proceselor Identificarea si atributele proceselor Proces de fundal (background) GESTIUNEA PROCESELOR Gestiunea proceselor Pornirea proceselor (subiect deja discutat) (SO, utilizator) Inchiderea proceselor (SO, utilizator) Schimbarea prioritatii (utilizator) Suspendarea/revenirea din starea de suspendare (SO) Sincronizare/comunicare (SO, utilizator) Gestiunea proceselor 1 Pornirea proceselor Resurse necesare: ◼ memorie ◼ procesor ◼ ID ◼ I/O Gestiunea proceselor 2 Inchiderea proceselor SO este responsabil cu eliberarea si redarea resurselor Conditii de inchidere: ◼ Iesire normala ◼ Iesire cu eroare ◼ Eroare fatala ◼ Terminare de catre alt proces Gestiunea proceselor Gestiunea proceselor Gestiunea proceselor Gestiunea proceselor Schimbarea prioritatii proceselor Prioritatea unui process: ◼ Linux: nice si renice ◼ Windows: Set priority Bibliografie ◼ Stefan Mocanu, Daniela Saru, "Comunicare si sincronizare între procese utilizator in sistemul de operare QNX", Editura Printech, Bucuresti, 2010 ◼ A.Tanenbaum & A.Woodhull, “Operating Systems – Design and Implementation”, 2nd edition, Prentice Hall, 2003 ◼ http://ebookbrowse.com/operating-system-concepts-silberschatz-galvin- gagne-7th-ed-pdf-d276634357 ◼ Abraham Silberschatz, Peter B. Galvin, Greg Gagne, “Operating Systems Concepts”, Ed. Wiley, diverse editii ◼ http://tille.garrels.be/training/tldp/ch04.html#sect_04_01