Sunteți pe pagina 1din 36

Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Structura sistemelor de operare

1. Componentele sistemului
2. Serviciile sistemului de operare
3. Arhitectura sistemelor de calcul
4. Elemente hardware de protectie
5. Bibliografie

Page 1 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Componentele sistemului de operare


A. Componenta de management al proceselor
Sistemul de operare este responsabil cu gestiunea proceselor. Modulu (componenta)
unui Sistem de Operare care gestionează procesele trebuie sa asigure următoarele
funcţii:

- funcţii de creare a unui proces (user sau proces de sistem);


- ştergerea sau eliberarea uni proces din memorie;
- să asigure mecanisme de sincronizare a proceselor;
- să asigure mecanisme de comunicare între procese;
- să asigure mecanisme de gestionare a interblocărilor.

Page 2 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Exemplu de interblocaj

a) interblocaj potenţial
b) interblocaj efectiv

Page 3 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

B. Componenta de management a memoriei


Procesul citeşte instrucţiuni, citeşte si scrie date din memorie. Perifericele controlate prin mecanismul DMA citesc
si scriu date în memorie. Programele sunt încărcate de pe disk în memorie. Dacă un program se executa, acesta
citeşte instrucţiunile si datele din memorie, accesâd memoria prin adresele de memorie reprezentate pe 16, 32
sau 64 de biţi. Odată terminat un program, el este eliberat din memorie si spaţiul său este alocat altui program.
Pentru a îmbunătăţii utilizarea CPU si pentru a mări viteza de reacţie a sistemului faţă de utilizatori sistemul de
operare trebuie sa ţină în memorie mai multe programe în acelaşi timp (multiprogramare). Există mai multe
scheme de management a memoriei, selectarea unei anumite scheme pentru un S.O. depinzând de mai mulţi
factori, în special de platforma hardware a sistemului destinaţie. Sistemul de operare asigură următoarele operaţii
în ceea ce priveşte managementul memoriei:
- alocă si dezalocă memorie la cerere;
- menţine o situaţie a memoriei alocate şi a memoriei libere;
- decide ce proces să fie încărcat în memorie când aceasta devine disponibilă.

Page 4 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

C. Managementul fişierelor

Este cea mai vizibilă componentă a sistemului, gestionează spaţiul de stocare a


datelor pe memoria extinsă (discuri magnetice, benzi magnetice, discuri optice,
stick-uri de memorie).
Fiecare dispozitiv din cele enumerate are propriile caracteristici legate de modul de acces (secvenţial sau aleator),
viteza de acces, rata de transfer a datelor…
Sistemul de operare asigură o vedere uniformă a dispozitivelor de stocare care reprezintă memoria extinsă a
sistemelor de calcul.
Sistemul de operare abstractizează modul de funcţionare a diferitelor dispozitive de stocare şi defineşte o singură
unitate de lucru numită fişier.
Un fişier este o colecţie de informaţii create de utilizator, stocate sub un nume unic. Sistemul de operare asigură
următoarele funcţii în ceea ce priveşte managementul fişierelor:
- creează şi şterge fişiere;
- creează şi şterge directoare;
- asigură funcţii de manipulare a fişierelor şi directoarelor;
- asigură mecanisme de backup.

Page 5 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

D. Managementul sistemelor de intrare/ieşire (I/O)


Această componentă gestionează modul de operare a tuturor perifericelor de I/O. Fiecare periferic e
controlat de un program numit driver.
Sistemul de operare încarcă câte un driver pentru fiecare periferic şi asigură o interfaţă generală către
deconectare cu driverele .În plus, componenta de management a memoriei asigură mecanisme de cache-ing,
buffering si spooling.

Page 6 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

E. Managementul dispozitivelor de stocare

Asigură:
- managementul spaţiului liber ;
- alocarea spaţiului la cerere;
- planificarea şi controlul accesului la discuri.

F. Componente de reţea
G. Sistem de protecţie
H. Interpretorul de comenzi (interfaţa cu utilizatorul).

Page 7 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Serviciile SO
- încărcarea şi executarea programelor
- operaţii (servicii) de I/O.
- manipularea sistemelor de fişiere (creare, ştergere, scriere şi citire).
- comunicaţii î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 reţea,
imprimantă).

În plus, un sistem multiuser trebuie să asigure următoarele servicii:


- alocarea resurselor;
- conturi pentru utilizatori;
- protecţia informaţiei;
- securitatea sistemului faţă de interior.

Sistemul de operare permite accesul la serviciile sale prin apelul unor funcţii ale sistemului denumite apeluri-
sistem.
Aceste apeluri alcătuiesc interfaţa de acces a programatorului către serviciile sistemului de operare.
Aceste funcţii pot fi apelate direct în limbaj de ascultare prin intermediul vectorului de întreruperi sau în
limbaj de nivel înalt prin apelul unor funcţii de biblioteca (care la rândul lor invoca serviciile sistemului, generând
întreruperile necesare).
In sistemul MS-DOS apelul la serviciile S.O. se realizau prin intermediul întreruperii 21H. In Unix şi în Linux se
accesează prin întreruperea 80H.

Page 8 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Hello World
section .text
global _start ;must be declared for linker (ld)
msg db "Hello, world!",0xa ;our dear string
len equ $ - msg ;length of our dear string
_start: ;tell linker entry point
push dword len ;message length
push dword msg ;message to write
push dword 1 ;file descriptor (stdout)
mov eax,0x4 ;system call number (sys_write)

int 0x80 ;system call


;actually there's an alternate
;way to call kernel:
;push eax
;call 7:0

add esp,12 ;clean stack (3 arguments * 4)

push dword 0 ;exit code


mov eax,0x1 ;system call number (sys_exit)
int 0x80 ;system call

;we do not return from sys_exit,


;there's no need to clean stack

Page 9 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Apeluri sistem

Page 10 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Printre serviciile sistemului enumerăm:


- write, create
- read/delete
- fork
- exec
- wait
- exit
- load
- malloc
- free
- create, delete
- send, receive

Page 11 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Exemplu
#include <stdio.h>
#include <unistd.h>

int main()
{
int forkr;
int c=0;
if( (forkr=fork())==0) {
printf("Procesele sistemului sunt:\n");
system("ps");
while(c++<10) putchar('F');
printf("\nSfarsit Fiu cu pid=%d",getppid());
}
else {
while(c++<20) putchar('P');
printf("\nSfarsit Parinte cu pid=%d\n",getpid());
wait();
}
}

Page 12 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Servicii sistem

Page 13 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Page 14 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Servicii - comparatie

Page 15 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Structura Hardware a SC
 Microprocesor
 Memorie interna, externa
 Magistrala
 Intreruperi
 Protectie hardware

Page 16 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Mod de funtionare
 Echipamentele de I/O şi CPU functioneaza în paralel
 Fiecare controler de dispozitiv coordoneaza un anumit tip de dispozitiv
 Fiecare controler de dispozitiv are un bufer local
 CPU muta datele dinspre memorie catre cache-ul intern şi inapoi
 Fiecare controler de dispozitiv informeaza CPU ca a terminat o operatie prin intermediul
unei intreruperi

Microprocesorul
 CISC sau RISC
 Little-endian, big-endian sau middle endian
 Pe 8 biti, 16biti, 32 biti, 64 biti
 Setul de instructiuni
 Poate rula în mod real, mod protejat
 În mod protejat instructiunile se impart în patru clase: numite inele (Ring) (X86)
 Ring 0, Ring 1, Ring 2 şi Ring 3

Page 17 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Little endian, sau big endian

int main()
{
long x = 0x0A0B0C0D; //pe 32 de biti
char * s = (char*) &x;
cout<<(int) s[0];
return 0;
}

Ce se afiseaza?

Page 18 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Procesorul pe 16 de biti

Page 19 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Procesorul pe 32 de biti

Page 20 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Procesorul pe 64 de biti, intel


\

Page 21 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Hello World, Windows 7


extrn MessageBoxA : proc
extrn ExitProcess : proc
.data
capt db 'Hello World!', 0
body db 'Cel mai simplu program la Spiru Haret', 0
.code
Main proc
sub rsp, 28h
xor r9d, r9d ; uType = 0
lea r8, capt ; lpCaption
lea rdx, body ; lpText
xor rcx, rcx ; hWnd = NULL
call MessageBoxA
xorecx, ecx ; exit code = 0
call ExitProcess
Main endp
end

Page 22 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Vectorul de intreruperi
• Prin mecanismul de intreruperi programul curent este intrerupt,
procesorul primeste de pe magistrala numarul intreruperii, cauta
în vectorul de intreruperi adresa rutinei de tratare, executa acea
rutina şi revine în program
• În momentul intreruperii se salveaza toata starea programului
• La revenirea din intrerupere starea programului este restaurata
• Pe durata tratarii unei intreruperi în general nu se pot produce
alte intreruperi

Page 23 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Sistemul de intreruperi
 Intreruperile sunt de tip software(mascabile) şi hardware(nemascabile)
 Intreruperile software pot fi dezactivate (mascate)
 Cat timp se trateaza o intrerupere sistemul de intreruperi este
dezactivat şi nu se pot produce alte intreruperi
 Intreruperile software sunt generate de programe sau în cazul unor
exceptii.

Un SO este ghidat de intreruperi.

Page 24 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Memoria

Page 25 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Discurile magnetice

Page 26 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Deplasarea informatiei

Page 27 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Operatii de I/O
 Sincrone , dupa apelul serviciului de citire/scriere
programul asteapta terminarea operatiei, apoi continua.

 Asincrone – dupa lansarea cererii I/O, controlul revine


programului fara asteptarea termiarii operatiei de I/O. În
momentul terminarii transferului de date cipul
controlerului de dispozitiv genereaza o intrerupere,
semnaland procesorului faptul ca datele sunt disponibile.

Page 28 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Cele doua metode de I/O

Page 29 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Direct Memory Access


 Controlerul transfera date din buferul dispozitivului direct în
memorie fara interventia procesorului
 Pentru echipamente care pot transfera date la viteze mari,
apropiate de viteza memoriei
 DMA are prioritate la magistrala,
 Intreruperile se genereaza la nivel de bloc, nu la nivel de byte

Page 30 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Elemente hardware de protectice

 Mod de operare dual


 Protectia memoriei
 Protectia CPU
 Protectia operatiilor de I/O

Page 31 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Moduri de operare

 Hardware-ul permite izolarea aplicatiilor de kernel, kernelul ruleaza


int-un mod de lucru privilegiat şi poate executa orice instructiune,
aplicatiile ruleaza intr-un mod neprivilegiat şi nu pot executa toate
instructiunile.
 Cele doua moduri:
1. User mode – se executa în numele unui utilizator
2. Monitor mode ( kernel mode sau system mode) – instructiunile
se executa în numele SO.

Page 32 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Modul de operare dual

 Exista un bit în hardware care indica modul curent de


lucru: monitor (0) sau user (1)
 La aparitia unei intreruperi sa a unei erori se trece în
modul monitor

monitor kernel mode


Instructiunile privilegiatee se executa în modul monitor(kernel mode).

Page 33 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Protectia memoriei şi a operatiilor I/O

 Toate instructiunile de I/O sunt privilegiate


 SO se asigura ca o aplicatie sa nu execute direct o instructiune de I/O
 Pentru ori ce aplicatie se stabileste o zona de memorie, prin
intermediul unui registru de baza şi a unui registru limita
 Orice memorie în afara acestei zone este inaccesibila programului
 Vectorul de intreruperi este protejat şi poate fi accesat doar de catre
kernel

Page 34 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

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 35 | © 2010, A. Averian


Sisteme de operare – Lectia 2 Sisteme de operare – Componentele SO

Intrebari ?

Page 36 | © 2010, A. Averian

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