Controlul și Gestiunea Proceselor în Linux

Laborator
7/10 (1 vot)
Conține 1 fișier: pdf
Pagini : 8 în total
Cuvinte : 2854
Mărime: 175.13KB (arhivat)
Publicat de: Dragomir Butnaru
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Marius Şutu
Lab 2

Extras din laborator

Sistemul de operare Linux pune la dispoziţie apeluri sistem pentru controlul şi gestiunea proceselor, cum ar fi apeluri pentru crearea şi terminarea unui proces, înlocuirea programului executat de un proces sau punerea în aşteptare a unui proces până la terminarea altui proces.

Lansarea şi terminarea execuţiei unui program C sub Linux

Termenul de program specifică, de cele mai multe ori, un fişier executabil aflat pe un suport de memorare extern - hard disk. O instanţă a unui program aflat în lucru poartă numele de proces. Acesta conţine imaginea fişierului executabil (segmentele de cod, date şi stivă) precum şi resursele utilizate în momentul execuţiei (regiştri, fişiere deschise, etc.).

Un program este executat de nucleul sistemului de operare (eng. kernel) prin intermediul funcţiei exec. Lansarea în execuţie a unui program C presupune (i) căutarea unui fişier ce conţine cod executabil, (ii) încărcarea în memorie a conţinutului său şi (iii) predarea controlului către acest program. Compilatorul C şi editorul de legături (eng. link-editor) adaugă programului o funcţie specială, denumită rutină de start C, care va primi controlul în momentul lansării programului în execuţie şi va apela apoi funcţia main. Rutina de start mai are rolul de a prelua de la nucleul sistemului de operare argumentele programului din linia de comandă şi variabilele de mediu. Modul în care se execută un program este schiţat în fig. 2.1. n u c l e u L i n u x rutina de start C funcţia main() funcţii utilizator sau apeluri de sistem funcţia exit handler exit handler exit rutina de curăţare I/O apel return return return apel apel _exit _exit _exit exec apel apel return return exit exit exit proces utilizator

Fig. 2.1. Execuţia unui program sub Linux

După ce funcţia main primeşte controlul, ea poate apela alte funcţii utilizator sau poate solicita servicii de la sistemul de operare (prin intermediu apelurilor sistem). Terminarea execuţiei unui program se poate face normal (prin revenire naturală din main sau prin apelurile de sistem exit şi _exit) sau anormal (prin apelul sistem abort sau prin primirea unui semnal). Apelurile sistem exit şi _exit au următoarele prototipuri:

- include <stdlib.h>

void exit(int status)

- include <unistd.h>

void _exit(int status)

Controlul şi gestiunea proceselor în Linux 2

Argumentul status reprezintă codul prin care programul transmite starea de terminare a procesului. Uzual, terminarea normală a unui proces este semnalizată prin status = 0, dar şi alte valori mai mici decât 128 au semnificaţia unei terminări normale. Valorile peste 128 indică o terminare anormală a procesului.

Diferenţa dintre cele două apeluri constă în aceea că exit asigură terminarea corespunzătoare a operaţiilor de I/O în curs de execuţie, golirea bufferelor utilizate de proces şi închiderea fişierelor deschise. După rezolvarea acestor probleme, exit apelează _exit. Există posibilitatea de a se înregistra cu ajutorul funcţiei C atexit anumite funcţii care să fie executate de exit, cu scopul de a se efectua anumite operaţii înainte de terminarea procesului.

Apeluri sistem pentru crearea proceselor (fork şi vfork)

Fiecare proces Linux primeşte, în momentul creării, un identificator unic numit PID (Process ID). Acest identificator este un număr întreg, a cărui unicitate este garantată de sistemul de operare. Un proces poate afla propriul PID cu ajutorul funcţiei C getpid.

- include <sys/types.h>

- include<unistd.h>

pid_t getpid(void)

Crearea unui proces se face cu ajutorul funcţiilor fork şi vfork:

- include <sys/types.h>

- include<unistd.h>

pid_t fork(void)

pid_t vfork(void)

Apariţia unei erori la execuţia apelului fork este semnalizată prin returnarea valorii -1. În cazul unei execuţii reuşite, la ieşirea din apelul fork există un nou proces. Procesul care a apelat fork se numeşte proces părinte, iar procesul creat se numeşte proces fiu.

Funcţia fork returnează PID-ul procesului fiu în procesul părinte şi 0 în procesul fiu. Toate resursele deţinute de procesul părinte sunt duplicate în procesul fiu (segmentele de cod, date şi stivă, fişierele deschise, variabilele de mediu, etc.), cu excepţia lacătelor pe fişiere puse de părinte, alarmelor în aşteptare pentru părinte şi semnalelor în aşteptare pentru părinte. Altfel spus, imediat după fork cele două procese vor avea segmente de cod, date şi stivă identice, aceleaşi fişiere deschise, etc.

Obs. Atunci când se creează un proces cu funcţia fork, nu trebuie făcută nici o presupunere legată de ordinea de execuţie a celor două procese înrudite. Această ordine este dependentă de algoritmul de planificare a proceselor. Dacă se doreşte impunerea unei anumite ordini trebuie să se recurgă la mecanisme de sincronizare între cele două procese.

Preview document

Controlul și Gestiunea Proceselor în Linux - Pagina 1
Controlul și Gestiunea Proceselor în Linux - Pagina 2
Controlul și Gestiunea Proceselor în Linux - Pagina 3
Controlul și Gestiunea Proceselor în Linux - Pagina 4
Controlul și Gestiunea Proceselor în Linux - Pagina 5
Controlul și Gestiunea Proceselor în Linux - Pagina 6
Controlul și Gestiunea Proceselor în Linux - Pagina 7
Controlul și Gestiunea Proceselor în Linux - Pagina 8

Conținut arhivă zip

  • Controlul si Gestiunea Proceselor in Linux.pdf

Alții au mai descărcat și

Analiza și concepția sistemelor de operare

I. INTRODUCERE Destinatia Sistemului de Operare este de administrare a resurselor tehnice principale si asigurarea unei interfete comode intre...

Sisteme de Operare

Introducere Capitolul1 Ce este un sistem de operare? 1.1. Evoluţia sistemelor de operare 1.2. Structura unui sistem de calcul 1.3. Concepte de...

Introducere în Sistemul de Operare Linux

următoarele atribute de baza: - are un sistem ierarhizat de fişiere; - asigură compatibilitatea între fişiere, dispozitive I/O şi mecanismele de...

Linux

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

Sisteme

1.1. TIPURI DE DOCUMENTE 1. Avizul de insotire a marfii Se intocmeste la livrarea produselor, lucarilor si serviciilor, factura urmand sa fie...

Formulare și Subformulare

FORMULARE SI SUBFORMULARE Formularele sunt informări (lucrări de evidenţă) care prezintă, într-o formă specifică, datele memorate în cadrul...

Windows Server 2003

INSTALARE WINDOWS In zilele noastre calculatorul a devenit o necesitate, dar ce este un computer fara un sistem de operare? Este… egal cu zero....

Metode de Sortare

In cazul unui vector sortat elementul cu indice i este succesorul celor cu indici de la 0 la i-1 si predecesorul celor cu indici de la i+1 la n-1....

Te-ar putea interesa și

Studii Preliminare în Vederea Elaborării Soluțiilor Tehnice Necesare Realizării Sistemelor Mecatronice Mobile Inteligente cu Impact Ecologic Pentru Echipamente Textile

Acronime si abrevieri retele cu protocol IEEE 802.4.5 - ZigBee - 42 - Obiectivele studiului I. Analiza tipurilor de structuri de procesare a...

Soluții informatice aplicate în domeniul logisticii

INTRODUCERE Importanţa sistemului informaţional în cadrul lanţului de aprovizionare-livrare înregistrează o evoluţie ascendentă, ca urmare a...

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...

Bazele Informaticii

BAZELE INFORMATICII Informatica Informatica este stiinta care se ocupa cu studiul si elaborarea metodelor de prelucrare a informatiei cu...

Concepte esențiale în utilizarea tehnologiilor informatice

1. Generatii si tipuri de calculatoare Orice activitate desfaurata de om presupune, într-o forma sau alta, existena unor fluxuri informationale....

Sistemul de fișiere sub Linux

Structura de directoare pentru Linux Sistemul Linux foloseste o structura arborescenta la fel ca si sistemul Unix. Directorul de baza al acestei...

Cursuri - Bazele Tehnologiei Informaticii

- reprezintă acea componentă a sistemului electronic de calcul în care se stochează intrucţiunile programelor aflate în curs de execuţie, datele de...

Concepte de Bază ale Tehnologiei Informației

Aspecte generale privind prelucrarea automata a datelor Orice domeniu de activitate cere o cunoastere rapida si complexa a realitatii, în scopul...

Ai nevoie de altceva?