Documente Academic
Documente Profesional
Documente Cultură
1. Componentele sistemului
2. Serviciile sistemului de operare
3. Arhitectura sistemelor de calcul
4. Elemente hardware de protectie
5. Bibliografie
Exemplu de interblocaj
a) interblocaj potenţial
b) interblocaj efectiv
C. Managementul fişierelor
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).
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ă).
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.
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)
Apeluri sistem
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();
}
}
Servicii sistem
Servicii - comparatie
Structura Hardware a SC
Microprocesor
Memorie interna, externa
Magistrala
Intreruperi
Protectie hardware
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
int main()
{
long x = 0x0A0B0C0D; //pe 32 de biti
char * s = (char*) &x;
cout<<(int) s[0];
return 0;
}
Ce se afiseaza?
Procesorul pe 16 de biti
Procesorul pe 32 de biti
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
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.
Memoria
Discurile magnetice
Deplasarea informatiei
Operatii de I/O
Sincrone , dupa apelul serviciului de citire/scriere
programul asteapta terminarea operatiei, apoi continua.
Moduri de operare
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.
• http://www.freebsd.org
Intrebari ?