Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Operare
Componentele Sistemului
Serviciile Sistemului de Operare
Apeluri Sistem (System Calls)
Programe Sistem
Structura Sistemului
Maşini Virtuale
Designul şi Implementarea Sistemului
Generarea Sistemului
Operating System Concepts with Java 103.1 Silberschatz, Galvin and Gagne ©2003
Componente de Sistem Comune
Gestionarea Proceselor
Gestionarea Memoriei Principale
Gestionarea Fişierelor
Gestionarea Sistemelor de I/E
Gestionarea Memoriei Secundare
Comunicarea în Reţea
Sistemul de Protecţie
Sistemul Interpretor de Comenzi
Operating System Concepts with Java 103.2 Silberschatz, Galvin and Gagne ©2003
Gestionarea Proceselor
Operating System Concepts with Java 103.3 Silberschatz, Galvin and Gagne ©2003
Gestionarea Memoriei Principale
Memoria este un tablou mare de cuvinte sau bytes,
fiecare cu propria adresă
Este un depozit de date accesibile rapid, partajat de către
CPU şi dispozitivele de I/E
Memoria principală este un mediu de stocare volatil. Îşi
pierde conţinutul în cazul unei căderi a sistemului
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea memoriei
Păstrarea situaţiei despre care părţi ale memoriei sunt
folosite în mod curent şi de către cine
Decide care procese să se încarce când un spaţiu de
memorie devine disponibil
Alocarea şi dealocarea spaţiului de memorie în funcţie de
nevoi
Operating System Concepts with Java 103.4 Silberschatz, Galvin and Gagne ©2003
Gestionarea Fişierelor
Un fişier este o colecţie de informaţii înrudite definit de creatorul
său
De obicei, fişierele reprezintă programe (atât în formă de sursă cât
şi obiect) şi date
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea fişierelor:
Crearea şi ştergerea fişierelor
Crearea şi ştergerea directoarelor
Oferirea de primitive pentru manipularea fişierelor şi a directoarelor
Maparea fişierelor pe medii secundare de stocare (memoria
secundară)
Backup-ul fişierelor pe medii stabile (nevolatile)
Operating System Concepts with Java 103.5 Silberschatz, Galvin and Gagne ©2003
Gestionarea Sistemului de I/E
Sistemul de I/E constă din:
Un sistem de buffere pentru cacheing
O interfaţă generală dispozitiv-driver
Drivere pentru dispozitive hardware specifice
Operating System Concepts with Java 103.6 Silberschatz, Galvin and Gagne ©2003
Gestionarea Memoriei Secundare
Deoarece memoria principală (mediul de stocare primar)
este volatilă şi prea mică pentru a păstra toate datele şi
programele în mod permanent, sistemul de calcul trebuie
să ofere medii de stocare secundare pentru a sprijini
memoria principală
Cele mai multe sisteme de calcul moderne folosesc
discuri ca şi mediul principal de stocare on-line, atât
pentru programe cât şi pentru date
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea discurilor:
Gestionarea spaţiului liber
Alocarea spaţiului de stocare
Planificarea discului
Operating System Concepts with Java 103.7 Silberschatz, Galvin and Gagne ©2003
Intercomunicare (Sisteme Distribuite)
Un sistem distribuit este o colecţie de procesoare care nu
partajează memorie sau un tact
Fiecare procesor are propria memorie locală
Procesoarele din sistem sunt conectate printr-o reţea de
comunicare
Comunicarea are loc folosind un protocol
Un sistem distribuit oferă acces utilizatorilor la diverse resurse
sistem
Accesul la o resursă partajată permite:
Creşterea vitezei de calcul
O disponibilitate crescută a datelor
O fiabilitate mărită
Operating System Concepts with Java 103.8 Silberschatz, Galvin and Gagne ©2003
Sistemul de Protecţie
Protecţia se referă la un mecanism pentru controlul accesului
programelor, proceselor sau utilizatorilor atât la resurse sistem
cât şi utilizator
Mecanismul de protecţie trebuie să:
Deosebească dintre acces autorizat şi respectiv neautorizat
Specifice controalele care să fie impuse
Ofere căi de aplicare/constrângere
Operating System Concepts with Java 103.9 Silberschatz, Galvin and Gagne ©2003
Sistemul de Interpretare a Comenzilor
Multe comenzi sunt date sistemului de operare prin intermediul
unor instrucţiuni de control care au de-a face cu:
Crearea şi gestionarea de procese
Manipularea I/E
Gestionarea mediilor de stocare secundare management
Gestionarea memoriei principale
Accesul la sistemul de fişiere
Protecţie
Reţele
Operating System Concepts with Java 103.10 Silberschatz, Galvin and Gagne ©2003
Sistemul de Interpretare a Comenzilor (Cont.)
Operating System Concepts with Java 103.11 Silberschatz, Galvin and Gagne ©2003
Serviciile Sistemului de Operare
Execuţia de programe – capabilitatea sistemului de a încărca un
program în memorie şi de a-l rula
Operaţii de I/E – deoarece programele utilizator nu pot executa
în mod direct operaţii de I/E, sistemul de operare trebuie să
ofere mijloacele pentru a efectua I/E
Manipularea sistemului de fişiere – capabilitatea programelor de
a citi, scrie, crea şi şterge fişiere
Comunicaţii – schimbul de informaţii între procese care se
execută fie pe aceeaşi maşină sau pe sisteme diferite legate de
o reţea. Implementat fie prin memorie partajată fie prin
trimiterea de mesaje
Detectarea de erori – asigură calcule corecte prin detectarea
erorilor în hardware (CPU, memorie), în dispozitivele de I/E, sau
în programele utilizator
Operating System Concepts with Java 103.12 Silberschatz, Galvin and Gagne ©2003
Funcţii Adiţionale ale Sistemului de Operare
Operating System Concepts with Java 103.13 Silberschatz, Galvin and Gagne ©2003
Apeluri Sistem
Operating System Concepts with Java 103.14 Silberschatz, Galvin and Gagne ©2003
Trimiterea de Parametri ca şi o Tabelă
Operating System Concepts with Java 103.15 Silberschatz, Galvin and Gagne ©2003
Tipuri de Apeluri Sistem
Controlul proceselor
Gestionarea fişierelor
Gestionarea dispozitivelor
Gestionarea informaţiilor
Comunicaţii
Operating System Concepts with Java 103.16 Silberschatz, Galvin and Gagne ©2003
Modelul de Execuţie MS-DOS
Operating System Concepts with Java 103.17 Silberschatz, Galvin and Gagne ©2003
UNIX Rulare de Programe Multiple
Operating System Concepts with Java 103.18 Silberschatz, Galvin and Gagne ©2003
Modele de Comunicare
Comunicarea poate avea loc folosind fie transmiterea de
mesaje sau memorie partajată
Operating System Concepts with Java 103.19 Silberschatz, Galvin and Gagne ©2003
Programe Sistem
Operating System Concepts with Java 103.20 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului MS-DOS
MS-DOS – scris pentru a oferi cât mai multe funcţionalităţi într-un
spaţiu cât mai mic
Nu este divizat în module
Deşi MS-DOS are o anumită structură, interfeţele acestuia şi
nivelele de funcţionalitate nu sunt prea bine separate
Operating System Concepts with Java 103.21 Silberschatz, Galvin and Gagne ©2003
Structura pe Nivele a MS-DOS
Operating System Concepts with Java 103.22 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului UNIX
Operating System Concepts with Java 103.23 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului UNIX (Cont.)
Operating System Concepts with Java 103.24 Silberschatz, Galvin and Gagne ©2003
Abordarea pe Nivele
Sistemul de operare este divizat pe un număr de nivele, fiecare
construit pe baza nivelelor inferioare. Nivelul cel mai de jos
(layer 0), este hardware; nivelul cel mai superior (layer N) este
interfaţa utilizator.
Prin modularizare, nivelele sunt selectate astfel încât fiecare
foloseşte funcţii (operaţii) şi servicii doar din nivelele de mai jos
Operating System Concepts with Java 103.25 Silberschatz, Galvin and Gagne ©2003
Un Nivel al unui Sistem de Operare
Operating System Concepts with Java 103.26 Silberschatz, Galvin and Gagne ©2003
Structura pe Nivele a OS/2
Operating System Concepts with Java 103.27 Silberschatz, Galvin and Gagne ©2003
Structura unui Sistem Microkernel
Mută cât mai mult din nucleu în spaţiul “utilizator”
Comunicarea dintre modulele utilizator are loc prin trimiterea de
mesaje
Avantaje:
Extensie mai uşoară a unui micro-nucleu (microkernel)
Portare mai uşoară a sistemului de operare pe alte arhitecturi
Mai fiabil (mai puţin cod rulează în mod nucleu)
Mai sigur
Dezavantaje:
Performanţe mai reduse la comunicarea din spaţiul utilizator în
spaţiul nucleu
Operating System Concepts with Java 103.28 Silberschatz, Galvin and Gagne ©2003
Structura Mac OS X
Operating System Concepts with Java 103.29 Silberschatz, Galvin and Gagne ©2003
Structura Windows NT Client-Server
Operating System Concepts with Java 103.30 Silberschatz, Galvin and Gagne ©2003
Module
Cele mai multe sisteme de operare moderne
implementează module nucleu
Foloseşte o abordare bazată pe obiecte
Fiecare componentă de bază este separată
Fiecare colaborează cu alte module prin interfeţe cunoscute
Fiecare este încărcabil atunci când este nevoie în cadrul
nucleului
Per global, abordare similară cu aceea pe nivele dar
cu o mai mare flexibilitate
Operating System Concepts with Java 103.31 Silberschatz, Galvin and Gagne ©2003
Abordarea modulară Solaris
Operating System Concepts with Java 103.32 Silberschatz, Galvin and Gagne ©2003
Maşini Virtuale
O maşină virtuală duce abordarea pe nivele la concluzia logică.
Tratează hardware-ul cât şi nucleul sistemului de operare ca şi
cum ambele ar fi hardware
O maşină virtuală oferă o interfaţă identică pentru hardware-ul pe
care se bazează
Sistemul de operare creează iluzia de procese multiple, fiecare
executându-se pe propriul procesor cu propria sa memorie
(virtuală)
Operating System Concepts with Java 103.33 Silberschatz, Galvin and Gagne ©2003
Maşini Virtuale (Cont.)
Resursele calculatorului fizic sunt partajate pentru a crea
maşinile virtuale
Planificarea CPU poate crea aparenţa că utilizatorii folosesc propriul
procesor
Spooling-ul şi sistemul de fişiere pot oferi cititoare de carduri virtuale
şi imprimante virtuale
Un terminal cu divizarea timpului utilizator serveşte ca şi consolă
operator pentru maşina virtuală
Operating System Concepts with Java 103.34 Silberschatz, Galvin and Gagne ©2003
Modele de Sistem
Operating System Concepts with Java 103.35 Silberschatz, Galvin and Gagne ©2003
Avantaje/Dezavantaje ale Maşinilor Virtuale
Operating System Concepts with Java 103.36 Silberschatz, Galvin and Gagne ©2003
Maşina Virtuală Java (JVM)
Programele Java compilate sunt bytecoduri neutre de platformă
executet de o Maşină Virtuală Java (JVM)
JVM constă din
Încărcător de clase (Class loader)
Verificator de clase (Class verifier)
Interpretor Runtime
Compilatoarele Just-In-Time (JIT) cresc performanţele
Operating System Concepts with Java 103.37 Silberschatz, Galvin and Gagne ©2003
Maşina Virtuală Java
Operating System Concepts with Java 103.38 Silberschatz, Galvin and Gagne ©2003
Platforma Java
Operating System Concepts with Java 103.39 Silberschatz, Galvin and Gagne ©2003
Fişierele Java .class pe diferite platforme
Operating System Concepts with Java 103.40 Silberschatz, Galvin and Gagne ©2003
Mediul de dezvoltare Java
Operating System Concepts with Java 103.41 Silberschatz, Galvin and Gagne ©2003
Obiectivele Proiectării Sistemului
Obiective utilizator – sistemul de operare ar trebui să fie
convenabil de folosit, uşor de învăţat, fiabil, sigur şi rapid
Obiective sistem – sistemul de operare ar trebui să fie uşor de
proiectat, implementat şi întreţinut, totodată şi flexibil, fiabil, fără
erori şi eficient
Operating System Concepts with Java 103.42 Silberschatz, Galvin and Gagne ©2003
Mecanisme şi Politici
Mecanismele determină cum anume să se facă ceva, politicile
decid ce anume va fi efectuat
Separarea politicilor de mecanisme este un principiu foarte
important, permite o maximă flexibilitate dacă deciziile de politici
pot să fie schimbate ulterior
Operating System Concepts with Java 103.43 Silberschatz, Galvin and Gagne ©2003
Implementarea Sistemului
În mod tradiţional scrise în limbaj de asamblare, sistemele de
operare pot fi scrise acum în limbaje de nivel înalt
Codul scris în limbaj de nivel înalt:
Poate fi scris mai rapid
Este mai compact
Este mai uşor de înţeles şi de depanat
Un sistem de operare este mult mai uşor de portat (mutat pe un
alt hardware) dacă este scris într-un limbaj de nivel înalt
Operating System Concepts with Java 103.44 Silberschatz, Galvin and Gagne ©2003
Generarea Sistemului (SYSGEN)
Sistemele de operare sunt proiectate să ruleze pe oricare
maşină dintr-o anumită clasă de maşini; sistemul trebuie să fie
configurat pentru fiecare calculator specific
Programele SYSGEN obţin informaţii despre configuraţia
specifică a sistemului hardware
Booting – pornirea unui calculator prin încărcarea nucleului
Program Bootstrap – cod stocat în ROM care este capabil să
localizeze nucleul, să îl încarce în memorie şi să lanseze
execuţia sa
Operating System Concepts with Java 103.45 Silberschatz, Galvin and Gagne ©2003