Documente Academic
Documente Profesional
Documente Cultură
Sisteme de operare
1
Obiective si functii
• Convenienta
—Face usor utilizabil calculatorul
• Eficienta
—Permite o mai buna utilizare a resurselor calculatorului
Niveluri si vederi ale unui sistem de calcul
SO
• Actioneaza ca si program interfata intre utilizator si hardware-
ul sistem si controleaza executia tuturor programelor
Servicii ale SO
• Managementul memoriei
• Crearea programului
• Executia programului (processor management)
• Acces la dispozitivele de I/O (Device management)
• Acces controlat la fisiere (File management)
• Acces sistem (security)
• Detectia erorii si generare raspuns
• Controlul performantei sistemului
• Urmarirea gradului de utilizare a resurselor
(Accounting) – job accounting
• Coordonare intre alte software-uri si utilizatori
SO ca si manger de resurse
Tipuri de SO
• Interactiv
• Orientat pe loturi de lucrari (Batch)
• Mono-utilizator (Uni-programming)
• Multi-utilizator (multi-programming, Multi-tasking)
• Time-sharing OS
• Distributed OS
• Network OS
• Real Time OS
Servicii oferite de SO
• Atat utilizatorilor cat si programelor
—Pt. programe asigura un mediu de executie
—Pt. utilizatori asigura servicii pentru executia programelor
intr-o maniera convenabila
Servicii oferite de SO
• Program execution
• I/O operations
• File System manipulation
• Communication
• Error Detection
• Resource Allocation
• Protection
Primele sisteme
• De la inceputul anilor 1940 pana la 1950
• Fara SO
• Programele interactioneaza direct cu hardware
• Doua pb.principale:
—Scheduling
—Setup time
Sisteme Batch Simple
• Program monitor rezident in memorie
• Utilizatorii trimit jobs-uri la operator
• Operatorul dozeaza lucrarile - batches jobs
• Monitorul controleaza secventa de evenimente pentru
procesarea batch
• Cand se termina o lucrare, se reintoarce controlul la monitor
care citeste alta lucrare
• Monitor manevreaza plamificarea (scheduling)
Batch processing
Componenta/descriere
1 Obiect Program
Cod pentru executie
2 Date
Date pentru utilizare in executia programului
3 Resurse
In timpul executiei programului, poate necesita anumite resurse
4 Status
Verifica stutsul executiei programului
Program
• Nu e un proces
• Este o entitate statica compusa din declaratii
program, in timp ce un proces este o entitate
dinamica
• Un program ocupa un loc in memorie
• Nu realizeaza de unul singur nici o actiune
Thread
• Un thread este un flux de executie in cadrul codului
unui proces cu PC propriu, registre proprii si stiva
Diferente intre Proces si Thread
Proces Thread
— Pe termen lung
— Pe termen mediu
— Pe termen scurt
— I/O
Long Term Scheduling
• Determina ce program este supus procesarii
— i.e. controleaza gradul de multi-programare
• Odata supus procesarii, un job devine proces pentru
short term scheduler - sau devine un job swapped out
pentru medium term scheduler
Medium Term Scheduling
• Parte a unei functii swapping (mai tarziu …)
• De obicei bazata pe nevoia de manevrare a multi-
programarii
• Daca nu exista memorie virtuala, managementul
memoriei este discutabil
Short Term Scheduler
• Dispecer
• Decizii fine legate de ce job sa se execute urmatorul
— i.e. ce job urmeaza sa utilizeze procesorul in urmatorul
esantion de timp
Modelul Procesului cu 5 stari
Blocul de control al procesarii (Process
Control Block)
• Identificator
• Stare
• Prioritate
• Numarator program (program pointer)
• Pointeri la memorie
• Date de context
• Stare I/O
• Informatie de tip Accounting
Diagrama PCB
Exemplu de Scheduling
Elemente cheie a SO
Planificarea proceselor (Process Scheduling)
Managementul memoriei
• Mono-programare
—Memoria impartita in doua
—Una pentru sistemul de operare (monitor)
—Una pentru programul curent in executie
• Multi-programare
—Partea “user” este sub-divizata si partajata de procesele
active
Swapping
• Problema: I/O sunt atat de lente comparativ cu CPU,
incat chiar in sistemele cu multi-programare, CPU
este in starea idle marea majoritate a timpului.
• Solutii:
—Cresterea memoriei principale
– Scumpa
– Duce la marirea programelor
—Swapping
Ce este Swapping?
• Coada pe termen lung a proceselor memorate pe disc
• Procesele “swapped in” pe masura ce spatiul devine
disponibil
• Pe masura ce se finalizeaza un proces el este mutat
din memoria principala
• Daca unul din procesele din memorie sunt gata (i.e.
toate I/O blocate)
—Swap out un proces blocat
—Swap in un proces gata sau un proces nou
—Deci swapping este un proces I/O …
Utilizarea
Swapping
Partitionarea
• Impartirea memoriei in sectiuni pentru alocarea
proceselor (inclusiv SO)
• Partitii de dimensiune fixa
—Pot sa nu fie de dimensiune egala
—Procesul este inscris in spatiul cel mai mic ce il poate
cuprinde (best fit)
—Exista o risipa de memorie
• Solutii
—Algoritmi de inlocuire a paginilor buni
—Reducere a numarului de procese ce ruleaza
—Crestere a memoriei de lucru
Avantaj
• Nu este necesar ca tot procesul sa fie in memorie
pentru rularea lui
• Se poate face swap in pentru pagini pe masura ce
sunt necesare
• Astfel, se pot rula acum procese ce sunt mai mari
decat totalul de memorie disponibil