Sunteți pe pagina 1din 21

Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Sisteme de operare, introducere


Obiectivele cursului
- evidenţierea rolului central al sistemului de operare în cadrul componentei
software a unui sistem de calcul
- prezentarea evoluţiei sistemelor calcul şi a SO
- prezentarea structurii sistemelor de operare şi a funcţiile lor
- prezentarea componentelor sistemelor de operare
- prezentarea conceptelor care stau la baza sistemelor de operare

Concepte de baza
- Procese, fire
- Algoritmi de planificare
- Gestiunea memoriei
- Memorie virtuala
- Fisiere

Page 1 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Continutul cursului
- Sisteme de calcul
- Ce este un sistem de operare ?
- Definitii traditionale
- Arhitectura si proiectarea SO
- Evolutia sistemelor de calcul si a SO
- Tipuri de SO
- Exemple
- Influente in proiectarea S.O
- Bibliografie

Page 2 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Sisteme de calcul
Componentele/resusrsele principale ale unui sistem de calcul (SC) sunt:

 Resurse fizice(hardware)
 Resurse logice(software)
o software-ul (programele) de aplicaţii
o software de baza (sistem)
 Resurse informationale

Page 3 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Resurse software
Programele de aplicaţii au scopul de a rezolva cu ajutorul calculatorului o
problemă specifică dintr-un anumit domeniu de activitate (browsere de
web, editoare de text, de grafica, jocuri, programe financiar-bancar, de
calcul ştiinţific etc.).
Programele de sistem oferă instrumentele (mediul) cu care programatorii
pot crea propriile programe de aplicaţii, care nu sunt disponibile la nivel
fizic. Sistemul de operare (SO) face parte din resursele software ale unui
sistem de calcul.

Page 4 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Ce este un S.O. ?
Este dificil să se dea o definiţie completă a ceea ce este un SO, este mai
simplu sa enumeram functiile unui SO. Astfel:
- SO gestionează resursele hardware(memorie, discuri, imprimante etc)
şi cele logice (programe de sistem, fişiere, baze de date etc) ale
sistemului de calcul, oferind posibilitatea ca aplicatiile si utilizatorii să
poată folosi în comun aceste resurse, pe baza unor anumite reguli, ceea
ce conduce la scăderea cheltuielilor de prelucrare şi la creşterea
performanţelor sistemului de calcul.
• CPU (procesor/procesoare)
• Memoria principala (memoria RAM)
• Memoria secundara (HDD-uri, unitati de banda, ...)
• Dispozitive de retea
• Periferice de intrare (tastatura, mouse, scanner, ...)
• Periferice de iesire (monitor, imprimanta, difuzoare, ...)

Page 5 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

- SO oferă o interfaţă prin care aplicaţiile utilizator şi cele de sistem au


acces la resursele hardware, extinde functionalitatile masinii fizice,
expune resursele hardware sub forma unei masini virtuale mai usor de
folosit.
• Procese si thread-uri – fork(), wait(), exec()
• Spatiu de adresare – malloc(), free()
• Fisiere – open(), read(), write(), close()
• Mesaje – send(), receive()

- SO oferă instrumentele necesare unui programator pentru a dezvolta


noi aplicaţii.
• Editoare
• Compilatoare
• Link-editoare
• Debuger
• Medii de dezvoltare
• Instrumente de monitorizare si testare

Page 6 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Ce este kernelul?
SO este alcătuit dintr-un set de programe. Partea principală a unui SO care se
încarcă la pornirea calculatorului, iniţializează componentele hardware şi care
rămâne rezidentă în memorie având în principal rolul de supervizor se numeşte
kernel (nucleu). În funcţie de designul sistemului kernelul poate fi stocat într-un
singur fişier sau în mai multe fişiere. Fişierul care conţine kernelul poată numele
de imagine a sistemului de operare (sau kernelului). Funcţiile principale ale SO
care se regăsesc în kernel sunt legate de:
 gestiunea memoriei;
 planificarea, coordonarea şi gestionarea execuţiei proceselor şi firelor;
 furnizarea de mecanisme de comunicare între procese, sincronizare;
 gestionează operaţiilor dependente de hardware, întreruperile, timerele, etc.
 furnizarea de servicii de sistem privind operaţiile de intrare/ieşire şi de gestiune a fişierelor.

Pentru a lucra cu dispozitivele periferice cum ar fi tastatura, mouse-ul, imprimanta,


etc. avem nevoie de programe speciale (specifice fiecărui tip de dispozitiv) numite
drivere de dispozitiv. Aceste drivere pot fi prezente în fişierul kernel sau în fişiere
separate caz în care sunt încărcate la nevoie de către kernel.

Page 7 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Evoluţia sistemelor de operare


SO au aparut şi s-au dezvoltat odată cu evoluţia sistemelor de calcul. Scopul iniţial pentru care au fost create reiese din nevoia de utilizare optimă a
resurselor sistemelor de calcul (deoarece întreţinerea primelor calculatoare era foarte costisitoare). Există calculatoare de tip mainframe, cu o
mare putere de calcul, dar la care intervenţia utilizatorului este minimă, dar putem avea şi cazul în care mai mulţi utilizatori sunt conectaţi prin
terminale sau prin reţea la un astfel de sistem împărţind între ei în mod egal puterea de calcul a maşinii. Avem astăzi utilizatori care lucrează pe
staţii de lucru conectate la o reţea, utilizând resursele unor servere, dar care partajează la rândul lor fişiere sau resurse hardware cum ar fi
imprimante, scanere, modemuri, etc. Există sisteme care controlează şi coordonează în timp real diverse procese de producţie, şi există sisteme
incorporate din diverse dispozitive care funcţionează mai mult fără interacţiunea utilizatorului.

Astfel, în funcţie de scopul pentru care este construit un sistem de calcul, acesta va lucra cu un SO dotat cu funcţionalităţi speciale (cum ar fi
multiprogramarea, time-sharing, etc.) care să susţină acel scop.

Calculatoare mainframe
La momentul construirii primelor calculatoare nu existau limbaje de programare şi nici sisteme de operare. Calculatorul era programat direct prin
cablarea directă a unor placi cu circuite care se introduceau în sistem, şi era operat prin comutatoare hardware.

Memoria
Monitor, job scheduler,
Un singur program întreruperi, drivere

Page 8 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Prelucrare pe loturi
Apare conceptul de job, limbajul de asamblare, Fortran - primul limbaj de programare şi primul sistem de operare primitiv care utiliza conceptul de
procesare pe loturi (batch-jobs). SO se prezintă sub forma unui program – monitor care era rezident în memorie şi care încărca primul program de
pe o bandă în memorie şi îl lansa în execuţie, aştepta până la terminarea acestuia apoi trecea la următorul program de pe bandă. Loturile de joburi
erau primite de la mai mulţi utilizatori care nu puteau interveni în timpul prelucrării. Procesorul nu era utilizat eficient deoarece viteza de lucru a
perifericelor era foarte scăzută în raport cu viteza procesorului, şi deseori se pierdea timp de procesor în fazele de citire a joburilor de pe bandă şi
la scrierea rezultatelor. Odată cu introducerea discurilor magnetice a crescut viteza de citire şi scriere a programelor şi datelor, dar a crescut şi
viteza de lucru a procesoarelor.

Page 9 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Multiprogramarea
Pentru a ţine procesorul ocupat în mod optim se introduce multiprogramarea. În cazul procesării pe loturi în memorie se află cel mult un job,
multiprogramarea presupune menţinerea mai multor joburi în memorie în acelaşi timp. Iniţial joburile sunt introduse în lotul de joburi, SO alege
câteva joburi din lot, le încarcă în memorie şi lansează unul din ele. Când un program are nevoie de date de pe disc acesta lansează o operaţie de
citire şi aşteaptă sosirea datelor. În cazul unui sistem fără multiprogramare pe durata operaţiei de intrare/ieşire procesorul ar fi fost neutilizat. În
prezenţa multiprogramării SO alege un alt job din memorie şi decide să îl execute. Dacă şi acesta intră într-o stare de aşteptare un alt job este ales
şi executat. Alegerea unui program din lotul de lucru pentru a fi încărcat în memorie presupune existenţa unui mecanism de planificare a joburilor
(planificator pe termen lung). Alegerea unui program din lista de programe aflate în memorie care sunt gata de rulare presupune existenţa unui
mecanism de planificare a procesorului (planificator pe termen scurt). Menţinerea simultană în memorie a mai multor programe impune
asigurarea unor mecanisme gestiune a memoriei, de izolare şi protecţie a sistemului faţă de programe, dar şi a programelor unele faţă altele.

Page 10 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Sisteme interactive (time-sharing)


Sisteme interactive prmit interacţiunea directă a utilizatorului cu programele care rulează în memorie.

• De timp real
• Desktop
• Incorporate
• Cu multiprocesor
• Distribuite
• Clustere
• Peer to peer
• Client - server

Page 11 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

În funcţie de arhitectură
Simplă – monolitic

Page 12 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Pe straturi

Page 13 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Modular

Microkernel

Page 14 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Maşini virtuale

Exokernel, Hibridă...

Page 15 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Client – Server

Page 16 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Exemple de SO
• MSDOS – monolitic, nestructurat
• Windows XP – arhitectura stratificată
• BSD Unix , Solaris – arhitectura modulară
• True 64 UNIX, QNX - mikrokernel
• Linux – artitectura monolitica
• Mach – microkernel
• Mac OS X – stratificat, modular
• Minix – microkernel

Page 17 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Laborator
 Instalare UNIX
 Comenzi de operare cu fisiere în UNIX
 Instalare aplicatii, drivere
 Compilarea kernelului UNIX

Page 18 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Comenzi UNIX
• ARP • FDFORMAT • MV • TOP
• ADDUSER • FIND • MOUNT • TEE
• CAT • FSCK • MAKE • TAIL
• CHMOD • FINGER • NETSTAT • TIME
• CHOWN • HEAD • NEWFS • TELNET
• CD • IFCONFIG • PS • TOUCH
• CP • KILL • PASSWD • UNAME
• DF • LOCATE • PWD • UPTIME
• DU • LAST • RM • UMOUNT
• DHCLIENT • LS • ROUTE • USERS
• DMESG • LOGIN • RMUSER • WHO
• EE • LESS • SENDMAIL • WHOAMI
• EXIT • MORE • SORT • WC
• FILE • MKDIR • SSH
• FTP • MAN • SU

Page 19 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Bibliografie
• Silberschatz A., Galvin P.B. and Gagne G. (2009). Operating Systems Concepts, 8th edn.
John Wiley & Sons
• Tanenbaum A.S. (1987). Operating Systems, Design and Implementation. Englewood
Cliffs NJ: Prentice-Hall.
• Tanenbaum A.S. (1992). Modern Operating Systems. Englewood Cliffs NJ: Prentice-Hall.
• UNIX in a Nutshell, O'Reilly Books, 4th edn, 2008
• The Complete FreeBSD, 4th Edition - O'Reilly
• http://www.freebsd.org

Page 20 | 2010, Copyright Alexandru Averian


Sisteme de operare – Lectia 1 Sisteme de operare - Introducere

Intrebari ?

Page 21 | 2010, Copyright Alexandru Averian

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