Sunteți pe pagina 1din 5

Planificarea proceselor

Sisteme de operare
Ce este un sistem de operare?
Nu există o definiție universală care să poată fi acceptată.
„Tot ce un distribuitor livrează când comanzi un sistem de operare” este o aproximare bună.
Cel mai probabil înseamnă:
o managementul memoriei
o managementul intrărilor și ieșirilor (I/O)
o programarea CPU
o comunicare
o multitasking/multiprogramming.
Unicul program care rulează tot timpul pe calculator este kernel -ul (nucleul). Orice altceva
este ori un program al sistemului (este livrat împreună cu sistemul de operare) sau o aplicație
program.
Abstracția mașinii virtuale
Aplicație (Interfața mașină virtuală) ↓
Sistem de operare (Interfața mașină fizică) ↓
Hardware
Gordon Moore (co-fondator Intel) a prezis în 1965 faptul că densitatea tranzistorilor pe chip-
urile semiconductoarelor s-ar dubla aproximativ la fiecare 18 luni. Această nouă abordare a căpătat
numele de „Legea lui Moore”.
Microprocesoarele au devenit mai mici, mai dense și mai puternice. La momentul de față,
există microprocesoare în orice – ex.: mașini, telefoane, calculatoare, etc. În spatele acestora există
o infrastructură vastă:
o conectivitate la internet
o servicii de securitate scalabile și fiabile
o baze de date
o colecții de informații
o stocare remote
o jocuri online
o comerț.
‘ManyCore’ se referă la mai multe procesoare per chip.

1
Organizarea sistemelor de operare ale calculatoarelor
Operații care au loc între calculator și sistem:
- una sau mai multe unități centrale de prelucare (CPUs) sau dispozitive de control se
conectează printr-o magistrală comună care permite accesul la memoria distribuită
- execuția concurentă/simultană a CPU -urilor și a dispozitivelor care se întrec pentru cicluri
de memorie.
Operații pe care le efectuează un sistem de operare asupra unui calculator:
1. Coordonare:
- administrează toate resursele
- rezolvă solicitările de conflict pentru resurse
- previne erori și folosirea improprie a calculatorului.
2. Facilitare:
- provizionează facilități de care oricine are nevoie
- librării standard, sisteme Windowing
- face programarea aplicațiilor mai ușoară, rapidă și fără să fie predispusă la erori.
Unele caracteristici reflectă ambele sarcini:
- File System este solicitat de toată lumea (Facilitator)
- File System trebuie să fie protejat (Coordonator)
Sistemele de operare complexe cuprind mulitple aplicații și realizează următoarele operații:
1. Coordonare totală și protecție:
- gestionează interacțiuni între diferiți utilizatori
- protejează resursele hardware.
>> CPU, memorie, dispozitive de intrare/ieșire precum disk -uri, imprimante etc.
2. Facilitator:
- prevede librării standard și alte facilități
Exemplu:
*Protejarea proceselor unele de altele
Problemă: Rularea de multiple aplicații într-o manieră în care să fie protejate unele de altele.
Obiectiv:
- păstrarea programelor utilizator de la prăbușirea (crash -ul) sistemului de operare
- păstrarea programelor utilizator de la crash -ul dintre acestea.
Mecanisme:
- adresarea translației & operațiuni duale (dual mode)
- creare, programare, deschidere, scriere, alocare
- trecere la un proces.

2
Metode simple:
- programele nu pot să citească/scrie memoria altor programe sau sisteme de operare
- cel mai puțin folosit (least recently used – LRU)
- primul deadline (earliest deadline first – EDF).
Design -ul metodelor
Separarea mecanismelor prin metode:
- implementarea unor mecanisme flexibile pentru a putea susține multe metode
ex.: LRU, LFU, random
Optimizare pentru un caz comun:
- unde va fi folosit sistemul de operare?
- unde va dori utilizatorul să execute pe acel PC?
- care sunt cerințele spațiului de lucru?
Alte operații pe care le pot face un sistem de operare:
- conduce operaționalizarea resurselor
(controlează folosirea CPU -ului, memoriei, dispozitivelor periferice etc.)
- impune metode de lucru
(accesarea echitabilă a resurselor, limitarea consumului de resurse etc.)
- diminuează dificultatea sarcinilor complexe
(detalii abstracte de hardware – apelarea sistemului)
- ascunde complexitatea hardware -ului
- asigură protecție
- are în mod direct, acces privilegiat la hardware -ul care stă la baza acestuia
- gestionează hardware -ul în numele a mai multor aplicații în concordanță cu niște metode
predefinite
- asigură faptul că aplicațiile sunt izolate și protejate unele de altele.
Exemple de sisteme de operare :
o Desktop :
- Microsoft Windows
- UNIX based
 MacOS X (BSD)
 Linux
 etc.
o Embedded :
- Android
- iOS
- Symbian

3
Tipuri de sisteme de operare:
1. Single- și multi-tasking
Un sistem de operare singe-tasking poate să ruleze un singur program odată, în timp ce un
sistem de operare multi-tasking permite ca mai mult de un program să ruleze în paralel cu un altul.
Acest lucru este realizat prin time-sharing, unde timpul procesorului disponibil este divizat între
procese multiple. Aceste procese sunt fiecare întrerupte în mod repetat în time slices de un
subsistem de planificări sarcini al sistemului de operare. Multi-tasking -ul ar putea fi caracterizat
prin tipuri privilegiate și cooperative. În multitasking -ul privilegiat, sistemul de operare împarte
timpul CPU -ului și dedică un slot/bucată fiecărui program. Sistemele de operare care se aseamănă
cu UNIX, precum Solaris și Linux, precum și cele care nu au asemănări cu acesta, precum
AmigaOS, oferă suport pentru multitasking privilegiat. Multitasking -ul cooperativ este realizat
prin bazarea pe faptul că fiecare proces trebuie să furnizeze timp celorlalte procese într-o manieră
definită. Versiunile pe 16 biți ale Microsoft Windows folosesc multitasking cooperativ. Versiunile
pe 32 de biți ale WindowsNT și Windows9x, foloseau multitasking privilegiat.
2. Single- și multi-user
Sistemele de operare single-user nu oferă facilități pentru deosebirea utilizatorilor, dar ar putea
permite ca mai multe programe să ruleze în tandem. Un sistem de operare multi-user extinde
conceptul de bază al multitasking -ului cu facilități prin care se identifică procese și resurse, precum
spațiul pe disk, aparținând la utilizatori multiplii, și sistemul permite ca mai mulți utilizatori să
interacționeze cu sistemul în mod simultan. Sistemele de operare time-sharing programează sarcini
pentru folosirea eficientă a sistemului și pot să includă software de contabilitate pentru alocarea
costului timpului de procesare, stocare în masă, și alte resurse pentru mai mulți utilizatori.

3. Distribuit
Un sistem de operare distribuit administrează un grup de calculatoare distincte și le face să
apară ca un singur calculator. Dezvoltarea calculatoarelor în rețea ,care ar putea fi legate să
comunice unele cu altele, a dus la apariția tehnicilor de calcul distribuite. Calculele distribuite sunt
livrate pe mai mult de o mașină. Când calculatoare dintr-un grup lucrează în perechi, acestea
formează un sistem distribuit.
4. Predefinit
Într-un sistem de operare, tehnicile de calcul în cloud și cele distribuite se referă la crearea unei
singure imagini virtuale a unei mașini ca un sistem de operare de tip guest, apoi salvând -ul ca un
tool pentru multiple mașini virtuale. Tehnica este folosită atât în virtualizare și cloud computing
management, și este întâlnită des în largi depozite server.

Mai sunt și alte tipuri de sisteme de operare, precum: încorporat, real-time, librărie etc.

4
Cele 3 concepte fundamentale ale sistemelor de operare sunt:
 ‘virtualizarea’ (virtualization)
 ‘concurența’ (concurrency)
 ‘persistența’ (persistence)
Virtualizarea
Dacă am avea de a face cu un server virtual, aici nu există componentele fizice pe care un
calculator le are în mod normal. Nu avem nevoie de un hard disk, memorie sau procesor. În schimb,
o să avem nevoie de o simulare de computer a unui procesor, memorie, disk și a unei rețele. În
mod particular, dacă am vrea să construim un server de email, am putea alege să avem părți fizice
și să le combinăm într-un computer fizic sau am putea folosi un software de virtualizare pentru a
crea o simulare a unui procesor, memorie, disk și să folosim aceste componente virtualizate pentru
a crea un server virtual. Acel server virtual de email ar fi capabil să trimită și recepționeze email -
uri exact ca și un server de email fizic și prin urmare, ar îndeplini aceleași obiective ca și un server
fizic.
Sistemul de operare crează o iluzie prin virtualizarea unității centrale de prelucrare (CPU). Prin
rularea unui proces, apoi oprindu-l și rulând un alt proces, și așa mai departe, sistemul de operare
poate provoca iluzia conform căreia unități centrale de prelucrare virtuale există când, de fapt,
există doar o unitate centrală fizică de prelucrare (sau puține unități), de fapt. Această tehnică de
bază, cunoscută drept time sharing-ul unităţii centrale de prelucrare, permite utilizatorilor să ruleze
în paralel câte procese simt nevoia să folosească; costul potențial este performanța, căci fiecare
proces va funcționa mult mai încet dacă unitățile trebuie să fie distribuite.
Concurența
Problema concurenței se referă la faptul că, dacă doar un tip de interacțiune are loc între thread
-uri, acel al acesării variabilelor distribuite și a necesității de a suporta ‘atomicitate’ pentru secțiuni
critice. Există și o altă interacțiune care poate avea loc, unde un thread trebuie să aștepte după un
altul să termine o acțiune, înainte de a putea continua.
Persistența
Acest subiect poate fi discutat prin introducerea conceptului de intrare/ieșire al unui dispozitiv
și prin demonstrarea cum sistemul de operare ar putea interacționa cu o astfel de entitate. ‘I/O’ este
destul de critic pentru sistemele de operare ale calculatoarelor; spre exemplu, un program fără
operațiuni de intrare produce același rezultat de fiecare dată; un alt program, de data aceasta fără
operațiuni de ieșire, își pierde din rolul acestuia de a rula.
Bibliografie:
 http://pages.cs.wisc.edu/~remzi/OSTEP/
 https://www.youtube.com/playlist?list=PLggtecHMfYHA7j2rF7nZFgnepu_uPuYws
 https://in.udacity.com/course/introduction-to-operating-systems--ud923
 https://www.linkedin.com/learning/
 https://en.wikipedia.org/wiki/Operating_system

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