Sunteți pe pagina 1din 28

Limbaje de programare

inginereti
Tema 1
Sisteme de operare

Obiectivele disciplinei
Studiul acestei discipline face ca studentii sa se familarizeze
cu notiunile, metodele si tehnicile specifice programarii
calculatorului, astfel nct acesta sa devina un instrument
curent de lucru, deosebit de util, att n abordarile practice
ale celorlalte discipline pe parcursul anilor de studiu, cat
si n activitatea ulterioara - dupa absolvirea studiilor.
Cursul urmrete introducerea noiunilor fundamentale ale
diferitelor limbaje de programare pentru implementarea
algoritmilor stiintifici si tehnici. Se urmaresc cu precadere
limbajele procedurale (imperative) cu detalieri ale
limbajului C, limbajele matriciale cu exemplificari in
MATLAB si limbajele bazate pe fluxul de date cu
exemplificari din limbajul LabVIEW.

STABILIREA NOTEI FINALE

Colocviu
Forma de verificare (Examen, Colocviu, Verificare
pe parcurs)
Modalitatea de susinere (Scris i Oral, Oral, Test
gril, etc.)

NOTAR
E

Oral

Puncte sau
procentaj

Rspunsuri la examene, colocviu

30

Evaluare activiti aplicative (laborator, proiect,practica)

20

Prezen activ la curs i laborator

10

Lucrare de verificare

20

Teme de cas

20

TOTAL PUNCTE SAU PROCENTE

10 (100%)

Condiii minime de promovare


(cum se obine nota 5)
- nota minim 5 la laborator, condiionat de
realizarea lucrrilor practice
- cunoaterea noiunilor de baz de limbaje de
programare
- obinerea a 5 puncte din calculul mediei conform
modului de stabilire a notei finale

Condiii de obinere a notei maxime


- obinerea a mai mult de 9 puncte din calculul
mediei conform modului de stabile a notei finale
- cunoaterea temeinic a subiectelor de
examen
- prezena activ la curs i laborator

Indrumar de laborator: programare C/C++ / Furdu, Iulian Marius (2005)


Initiere in C++ : programare orientata pe obiecte / Ionut Muslea (1992)
Memento de programare in C++ / Octavian Dogaru (2008)
Introducere in MATLAB / Paleologu, Constantin (1999)
LabVIEWTM Basics I Course Manual

Autor: Andrew S. Tanenbaum


Editura: Byblos
An aparitie:2004

Octavian Purdil
Universitatea Politehnica Bucureti
Alexandru Averian

Definiie: SO - Un program care acioneaz ca un


intermediar ntre un utilizator al sistemului de calcul i
hardware-ul acestuia.
SO are urmtoarele funcii principale:
-Funcii de administrare a resurselor software, hardware i a
informaiilor
-Funcia de abstractizare i de extindere a funcionalitii
sistemului de calcul

Scurt istoric (Wikipedia)

CLASIFICAREA SO
S.O. au aprut i au evoluat odat cu evoluia sistemelor de calcul.
1. Calculatoare mainframe:
calculatorul era programat direct
nu existau sisteme de operare
in memorie rula cel mult un program
odat cu apariia tranzistoarelor: apare primul limbaj de programare i primul
S.O. care utiliza conceptul de procesare pe loturi (batch-jobs) i conceptul de job.
Procesorul era slab utilizat deoarece perifericele aveau vitez foarte sczut;
apare multiprogramarea pentru a ine procesorul ocupat in mod optim. n
memorie se ncarc mai multe programe iar planificatorul alege unul din acestea.
2. Sisteme interactive (cu partajarea timpului):
permit interaciunea utilizatorului cu programele care ruleaz n memorie
apare noiunea de multitasking care reprezint o extensie a multiprogramrii i n
care comutarea ntre programe se realizeaz att de rapid nct utilizatorul are
senzaia c se execut mai multe programe simultan.

3. Sisteme Desktop
4. Sisteme de tip real
5. Sisteme ncorporate
6. Sisteme cu multiprocesor
7. Sisteme distribuite
8. Clustere
9. Reele peer-to-peer
10. Reele client server

Nucleul sistemului de operare


Partea principal a unui S.O. (miezul, kernel) se
ncarc
n memorie la pornirea calculatorului, rmne
rezident n memorie i are rol de supervizor.
Funciile principale ale unui S.O. aflate n
kernel sunt legate de:
gestiunea proceselor
gestiunea procesorului
comunicarea ntre procese, sincronizare
gestiunea memoriei
gestiunea operaiilor legate de ntreruperi
gestiunea fiierelor

Structura unui sistem de operare


Monolitic:
kernelul format dintr-un fiier;
majoritatea fiierelor se afl n kernel;
este o colecie de funcii fr nici o ierarhizare intern;
Modular :
sistemul este structurat pe module cu functionaliti bine
precizate
Stratificat:
este compus din straturi suprapuse, fiecare strat oferind
servicii stratului superior i abstractiznd structura i
operaiile cu operaiile stratului inferior;

Exokernel:
majoritatea serviciilor sunt n afara kernelului i ruleaza n user-mode;
kernelul pstreaz funciile de comunicare ntre procese i de izolare;
se mai numete kernel la purttor;
creeaz maini virtuale, crora le aloc resurse, fiecare main virtual rulnd
propriul S.O. i propriile procese;
Maina virtual:
similar cu exokernelul, cu deosebirea ca mainile virtule sunt copii ale hardului pe
care ruleaz, avnd propria copie a kernelului i ntreruperi proprii:
pot rula S.O. diferite;
Sisteme client-server ( microkernel) :
majoritatea serviciilor ruleaz in user-mode, kernelul asigurnd comunicaia i
Sincronizarea ntre procesele client i server;
exemple server: fiiere, memorie, terminale;
Sisteme distribuite:
similar cu client-server, cu deosebirea c serverul i clientul pot fi pe maini
diferite;

Exemple:
MSDOS monolitic, nestructurat
Windows XP arhitectura stratificat
BSD Unix , Solaris arhitectura modular
True 64 UNIX, QNX - mikrokernel
Linux arhitectura monolitica
Mach microkernel
Mac OS X stratificat, modular
Minix microkernel

Componentele unui SO
1. Componenta de management a memoriei:
Procesul citete instruciuni, citete si scrie date din memorie. Perifericele
controlate prin mecanismul DMA citesc si scriu date n memorie. Programele sunt
ncrcate de pe disk n memorie. Dac un program se executa, acesta citete
instruciunile si datele din memorie, accesd memoria prin adresele de memorie
reprezentate pe 16, 32 sau 64 de bii. Odat terminat un program, el este eliberat
din memorie si spaiul su este alocat altui program.
Pentru a mbuntii utilizarea CPU si pentru a mri viteza de reacie a sistemului
fa de utilizatori sistemul de operare trebuie sa in n memorie mai multe
programe n acelai timp (multiprogramare). Exist mai multe scheme de
management a memoriei, selectarea unei anumite scheme pentru un S.O.
depinznd de mai muli factori, n special de platforma hardware a sistemului
destinaie.
Sistemul de operare asigur urmtoarele operaii n ceea ce privete managementul
memoriei:
aloc si dezaloc memorie la cerere;
menine o situaie a memoriei alocate i a memoriei libere.
decide ce proces s fie ncrcat n memorie cnd aceasta devine disponibil

Componentele unui SO
2. Managementul proceselor:
Sistemul de operare este responsabil cu gestiunea proceselor. Modulul
(componenta) unui sistem de operare care gestioneaz procesele trebuie sa
asigure urmtoarele funcii:
funcii de creare a unui proces (user sau proces de sistem);
tergerea sau eliberarea unui proces din memorie;
s asigure mecanisme de sincronizare a proceselor;
s asigure mecanisme de comunicare ntre procese;
s asigure mecanisme de gestionare a interblocrilor.
creeaz i elibereaz procese;
suspend i reia executarea proceselor;
asigur mecanismele de comunicare i sincronizare ntre procese;
se ocup de evitarea interblocarilor;

Componentele unui SO
3. Planificarea procesorului:
asigur accesul proceselor la resursa procesor ntr-un mod echitabil;
utilizeaz algoritmi de planificare pentru a mpari timpul de lucru al
procesorului
ntre procesele din memorie;
4. Gestiunea fiierelor
5. Gestiunea componentelor de Intrare/Ieire:
gestioneaz perifericele;
asigur alocarea corect a acestora ctre procese;
controleaz operaiile de Intrare/Ieire.
6. Managementul dispozitivelor de stocare
Asigur:
managementul spaiului liber ;
alocarea spaiului la cerere;
planificarea i controlul accesului la discuri.

Componentele unui SO
7. Componenta de reea
8. Sistemul de protecie
9. Interfaa de programare a aplicaiilor (API):
ofer programatorului un set de funcii de nivel nalt prin care acesta poate
accesa n programare serviciile oferite de celelalte componente ale S.O.
Serviciile sunt oferite ctre utilizatorul programator:
ncrcarea i executarea programelor
operaii (servicii) de I/O.
manipularea sistemelor de fiiere (creare, tergere, scriere i citire).
comunicaii ntre procese (prin memorie partajat sau prin transfer direct de
mesaje ntre procese);
detectarea erorilor i recuperare dup eroare (eroare de CPU, de memorie, de
scriere, citire, de reea, imprimant).

Dicionar
API Interfaa de programare a aplicaiilor
Batch (limbaje batch) limbaje cu control de flux. Se mai numesc limbaje shell
Compilator un program (sau set de programe) care traduce textul scris ntr-un limbaj
de programare (limbajul surs) ntr-un alt limbaj de calculator (numit limbaj int)
CPU central processing unit, unitatea central de calcul
GUI graphical user interface, interfa grafic cu utilizatorul
I/O input/output, sisteme de intrare/ieire
Interpretor un program special care analizeaz i execut comenzile i instruciunile
dintr-un alt program, pas cu pas, una dup alta, fr o compilare anterioar
PDA personal digital assistant, palmtop computer

S-ar putea să vă placă și