0% au considerat acest document util (0 voturi)
5 vizualizări41 pagini

Modul I - OS

Un sistem de operare este un software care intermediază între utilizator și hardware, având ca obiective eficiența utilizării resurselor și facilitarea interacțiunii utilizatorului. Acesta include componente precum hardware, aplicații și utilizatori, și funcționează prin alocarea resurselor și gestionarea execuției programelor. Sistemele de operare pot fi văzute din perspective diferite, inclusiv utilizator și manager de resurse, și sunt esențiale pentru funcționarea eficientă a sistemelor informatice.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
5 vizualizări41 pagini

Modul I - OS

Un sistem de operare este un software care intermediază între utilizator și hardware, având ca obiective eficiența utilizării resurselor și facilitarea interacțiunii utilizatorului. Acesta include componente precum hardware, aplicații și utilizatori, și funcționează prin alocarea resurselor și gestionarea execuției programelor. Sistemele de operare pot fi văzute din perspective diferite, inclusiv utilizator și manager de resurse, și sunt esențiale pentru funcționarea eficientă a sistemelor informatice.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Sisteme de operare

Modulul I

INTRODUCERE ÎN SISTEMUL DE OPERARE


Ce este un sistem de operare?
Un sistem de operare este un software de sistem care acț ionează ca un intermediar între un utilizator al unui calculator ș i
hardware de computer.
Obiectivele sistemului de operare:
Fă ca sistemul informatic să fie convenabil de folosit. Acesta ascunde dificultatea în gestionarea
hardware.
Utilizaț i hardware-ul computerului într-un mod eficient
Oferiț i un mediu în care utilizatorul poate interacț iona uș or cu computerul.
Este un alocător de resurse
Structura sistemului computer (Componentele sistemului computer)
Sistemul informatic poate fi împărț it în patru componente:
Hardware – oferă resurse de calcul de bază CPU, memorie, dispozitive I/O
Sistemul de operare controlează ș i coordonează utilizarea hardware-ului între diverse aplicaț ii ș i
utilizatori
Programele aplicaț ie – definesc modurile în care resursele sistemului sunt utilizate pentru a rezolva
probleme de calcul ale utilizatorilor - Procesatoare de texte, compilatoare, browsere web, baze de date
sisteme, jocuri video
Utilizatori - Oameni, maș ini, alte computere

Sistemul de operare controlează ș i coordonează utilizarea hardware-ului, între diferite programe aplicaț ie (precum
compilator, procesor de text etc.) pentru diferiț i utilizatori.
Sistemul de operare alocă resursele între programe astfel încât hardware-ul să fie utilizat eficient.
folosit.

Sistemul de operare este programul care rulează în permanenț ă pe computer. De obicei, este numit
ca nucleul.

SO Non Kernel (User necessary functions)

Nucleu Core of OS(Sys. necessary functions

Departamentul de ISE, APSCE 1


Sisteme de operare

Funcț iile kernel sunt întotdeauna utilizate în sistem, aș a că sunt întotdeauna stocate în memorie. Funcț iile non-kernel
sunt stocate pe hard disk ș i sunt recuperate ori de câte ori este necesar.

Perspectiva asupra OS
Sistemul de operare poate fi văzut din două perspective–

User Views:-
Părerea utilizatorului despre sistemul de operare depinde de tipul de utilizator.
i. Dacă utilizatorul folose ș te un sistem stand-alone, atunci sistemul de operare este conceput pentru a fi u ș or de utilizat ș i pentru performan ț ă înaltă.
performanț e. Aici utilizarea resurselor nu este considerată importantă.

[Link]ă utilizatorii sunt la terminale diferite conectate la un mainframe sau la minicomputere, prin partajare
informaț ii ș i resurse, apoi sistemul de operare este conceput pentru a maximiza utilizarea resurselor. Sistemul de operare este
proiectat astfel încât timpul CPU, memoria ș i I/O să fie folosite eficient ș i niciun utilizator singular să nu ia
mai mult decât ressourcea alocată lor.

[Link]ă utilizatorii sunt în sta ț ii de lucru, conecta ț i la re ț ele ș i servere, atunci utilizatorul are un
unitate de sistem a lor proprie ș i împarte resurse ș i fiș iere cu alte sisteme. Aici, sistemul de operare este
conceput atât pentru uș urinț a în utilizare, cât ș i pentru disponibilitatea resurselor (fiș iere).

[Link] sistemelor portabile se a ș teaptă ca sistemul de operare să fie proiectat pentru u ș urinț a utilizării ș i performan ț ă.
per cantitate de viaț ă a bateriei.
[Link] sisteme, cum ar fi sistemele integrate utilizate în dispozitivele de uz casnic (cum ar fi ma ș inile de spălat) ș i automobile
nu are nici o interacț iune cu utilizatorul. Există câteva LED-uri pentru a arăta starea funcț ionării sale.

System Views:-
[Link] de resurse - Sistemul de operare ac ț ionează ca un manager al resurselor hardware ș i software. Sistemul de operar
alocă resursele programului solicitant în funcț ie de prioritate.
vii. Program de control – Sistemul de operare este un program de control ș i gestionează execu ț ia programului utilizatorului
pentru a preveni erorile ș i utilizarea necorespunzătoare a computerului.

Organizarea sistemelor de calcul


Funcț ionarea sistemului informatic
Unul sau mai multe CPU-uri, controlere de dispozitive se conectează printr-un bus comun oferind acces la
memorie partajată. Fiecare controler de dispozitiv este responsabil de un tip specific de dispozitiv.
Pentru a asigura un acces ordonat la memoria partajată, este furnizat un controler de memorie al cărui
funcț ia este de a sincroniza accesul la memorie.
CPU-ul ș i alte dispozitive execută simultan, concurând pentru ciclurile de memorie.

Dept. de ISE, APSCE 2


Sisteme de operare

Când sistemul este pornit, programul 'Bootstrap' este executat. Este programul iniț ial care rulează în
programul [Link]
. Iniț iază registrele, memoria ș i dispozitivele de I/O
. Localizează ș i încarcă nucleul în memorie
. Începe cu procesul 'init'
. Aș teaptă o întrerupere de la utilizator.

Gestionarea întreruperilor–
Apariț ia unui eveniment este de obicei semnalizată printr-o întrerupere. Întreuprea poate fi ori
fie din hardware, fie din software.
Hardware-ul poate declanș a o întrerupere în orice moment prin trimiterea unui semnal către CPU.
Software generează o întrerupere prin executarea unei operaț iuni speciale numită apel de sistem (de asemenea
apelat apel de monitor).
Când CPU-ul este întrerupt, acesta opre ș te ceea ce face ș i transferă imediat
executarea la o locaț ie fixă. Locaț ia fixă (Tabelul Vectorilor de Interrupț ie) conț ine
adresa de pornire unde se află rutina de serviciu pentru interupere.
După executarea rutinei de servicii pentru întreruperi, CPU-ul î ș i continuă activitatea întreruptă
calcul

Departamentul de ISE, APSCE 3


Sisteme de operare

Structura de Stocare
Programele de calculator trebuie să fie în memoria principală (RAM) pentru a fi executate. Memoria principală este
memoria mare la care procesorul poate accesa direct. Este implementată de obicei într-o
tehnologia semiconductorilor numită memorie dinamică cu acces aleator (DRAM).
Computerele oferă memorie doar pentru citire (ROM), a cărei date nu pot fi schimbate.
Toate formele de memorie oferă un set de cuvinte de memorie. Fiecare cuvânt are propria adresă.
Interac ț iunea se realizează printr-o secven ț ă de instruc ț iuni de încărcare sau salvare către specifice
adrese de memorie.
Un ciclu tipic de execuț ie a instrucț iunilor, aș a cum este executat pe un sistem cu arhitectura Von Neumann
arhitectură, mai întâi preia o instrucț iune din memorie ș i stochează acea instrucț iune în
registrul de instrucț iuni.
Instrucț iunea este apoi decodificată ș i poate determina fetch-ul operanzelor din memorie ș i
stocat într-un anumit registru intern.
După ce instrucț iunea asupra operanzilor a fost executată, rezultatul poate fi stocat înapoi în
memorie.
Ideal, dorim ca programele ș i datele să rezide în memoria principală permanent.
aranjamentul de obicei nu este posibil din următoarele două motive:
1. Memoria principală este de obicei prea mică pentru a stoca permanent toate programele ș i datele necesare.
2. Memoria principală este un dispozitiv de stocare volatil care îș i pierde conț inutul atunci când alimentarea este oprită.
oprire.
Astfel, majoritatea sistemelor de calcul oferă stocare secundară ca o extensie a stocării principale.
memorie. Principala cerinț ă pentru stocarea secundară este că va putea păstra cantităț i mari
cantităț i de date permanent.
Cel mai comun dispozitiv de stocare secundar este discul magnetic, care oferă stocare
pentru ambele programe ș i date. Cele mai multe programe sunt stocate pe un disc până când sunt încărcate în
memorie. Multe programe folosesc apoi discul atât ca sursă, cât ș i ca destinaț ie a
informaț ii pentru procesarea acestora.

Departamentul de ISE, APSCE 4


Sisteme de operare

The wide variety of storage systems in a computer system can be organized in a hierarchy
aș a cum se arată în figură, conform vitezei, costului ș i capacităț ii.
Nivelurile superioare sunt scumpe, dar sunt rapide. Pe măsură ce ne miș căm în josul ierarhiei,
costul pe bit în general scade, în timp ce timpul de acces ș i capacitatea de stocare
în general creș te.
Pe lângă diferenț ele în viteză ș i cost, diferitele sisteme de stocare sunt fie volatile
sau nonvolatile.
Stocarea volatilă îș i pierde conț inutul atunci când alimentarea dispozitivului este oprită.
lipsa sistemelor scumpe de baterii ș i backup cu generator, datele trebuie scrise în
stocare nonvolatilă pentru păstrare în siguranț ă.
În ierarhia prezentată în figură, sistemele de stocare deasupra discului electronic sunt
volatil, în timp ce cele de mai jos sunt nonvolatile.

Structura I/O
O mare parte din codul sistemului de operare este dedicată gestionării I/O.
Fiecare dispozitiv are un controller de dispozitiv, întreț ine un anumit buffer local ș i un set de special.
registre de scop.
Controllerul dispozitivului este responsabil pentru mutarea datelor între dispozitivele periferice. Dispozitivul
sistemele de operare au un driver de dispozitiv pentru fiecare controler de dispozitiv
Pentru a începe o operaț iune I/O, driverul dispozitivului încarcă registrele din cadrul controlerului dispozitivului
Controlerul dispozitivului examinează conț inutul acestor registre pentru a determina ce acț iune să întreprindă.
ia (de exemplu, "citeș te un caracter de la tastatură").
Controlerul începe transferul de date de la dispozitiv la bufferul său local.
Odată ce transferul de date este complet, controlerul dispozitivului informează driverul dispozitivului (OS)
printr-un întrerupător că ș i-a terminat operaț iunea.
Drv-ul dispozitivului returnează apoi controlul către sistemul de operare ș i returnează ș i datele.
alte operaț iuni, driverul de dispozitiv returnează informaț ii de stare

Această formă de I/O condusă de întreruperi este bună pentru mutarea unor cantităț i mici de date, dar foarte dificilă pentru
miș care de date în vrac. Pentru a rezolva această problemă, se utilizează accesul direct la memorie (DMA).

Departamentul de ISE, APSCE 5


Sisteme de operare

DMA este folosit pentru dispozitive I/O de mare viteză, capabile să transmită informaț ii aproape de memorie
viteze
Controlerul dispozitivului transferă blocuri de date din stocarea tampon direct în memoria principală
fără intervenț ia CPU
Numai un întrerupător este generat pe bloc, mai degrabă decât unul pe octet
Arhitectura sistemelor informatice
Categorizaț i aproximativ în funcț ie de numărul de procesoare destinate scopului general utilizate–

1. Sisteme cu un singur procesor –


Cele mai multe sisteme folosesc un singur procesor. Diversitatea sistemelor cu procesor unic variază de la PDA-uri
prin mainframe-uri.
Pe un sistem cu un singur procesor, există un procesor principal capabil să execute instrucț iuni de la utilizator
procese
Conț ine procesoare cu scop special, sub formă de procesoare specifice aparatului, pentru dispozitive precum
ca disc, tastatură ș i controlere grafice.
Utilizarea microprocesoarelor cu scop special este comună ș i nu transformă un sistem cu un singur procesor într-un
multiprocesor. Dacă există doar un CPU general, atunci sistemul este un sistem unic procesor.

2. Sisteme multiprocesoare (sisteme paralele sau sisteme strâns legate)


Sisteme care au două sau mai multe procesoare în comunicare strânsă, partajând magistrala de computer,
ceasul, memoria ș i dispozitivele periferice sunt sistemele multiprocesor.

Sistemele multiprocesoare au trei avantaje principale:


1. Cre ș terea capacită ț ii de procesare
[Link] de scară
3. Cre ș terea fiabilită ț ii - În sistemele multiprocesor func ț iile sunt împărtă ș ite între mai mul
procesele. Sarcina procesorului defectuos este preluată de către alte procesoare.
Două tehnici pentru a menț ine 'Fiabilitate Crescută' - degradare graț ioasă ș i toleranț ă la defecte
Degradare graț ioasă – Deoarece există mai multe procesoare, când un procesor
eș uează, alt proces va prelua munca sa ș i sistemul se va prăbuș i încet.
Tolerant la defectiuni – Când un procesor eș uează, operaț iile sale sunt oprite, sistemul
defecț iunea este apoi detectată, diagnosticată ș i corectată.
Există două tipuri de sisteme multiprocesor–
Procesare asimetrică multiprocesare
Multiprocessing simetric

1)Procesare multiprocesor asimetrică –(Arhitectura Master/Slave)Aici fiecare procesor este


a primit o sarcină specifică, de către procesorul principal. Un procesor principal controlează ceilalț i
procesoare în sistem. Acesta planifică ș i alocă muncă procesorilor slave.
2) Procesare simetrică multiprocesare (SMP) - To ț i procesorii sunt considera ț i egali.
nu există o relaț ie de stăpân-sclav. Toate procesoarele au propriile registre ș i CPU, doar
memoria este împărtăș ită.

Departamentul ISE, APSCE 6


Sisteme de Operare

Beneficiul acestui model este că multe procese pot rula simultan. Procesele pot
rulează dacă există NCPU—fără a provoca o deteriorare semnificativă a performanț ei.
Sistemele de operare precum Windows, Windows XP, Mac OS X ș i Linux—acum oferă
suport pentru SMP.
O tendin ț ă recentă în proiectarea CPU-urilor este includerea mai multor nuclee de calcul pe un singur cip.
comunicarea între procesoare într-un cip este mai rapidă decât comunicarea între
two single processors.

3. Sisteme Clusterizate
Sistemele clusterizate sunt două sau mai multe sisteme individuale conectate între ele prin intermediul unei reț ele
ș i partajarea resurselor software.
Clustering oferă disponibilitate ridicată a resurselor ș i serviciilor.
Există două tipuri de sisteme clusterizate
I. Clustering asimetric - un sistem este în modul de a ș teptare inactiv, în timp ce celelalte
are running the applications. The hot-standby host machine does nothing but
monitorizează serverul activ. Dacă acel server eș uează, gazda de rezervă activă devine
server activ.
II. clustering simetric – două sau mai multe sisteme rulează aplica ț ii ș i sunt
monitorizarea reciprocă. Acest mod este mai eficient, deoarece foloseș te toate resursele disponibile
hardware. Dacă vreun sistem eș uează, sarcina sa este preluată de sistemul de monitorizare.

Alte forme de clustere includ clustere paralele ș i clustering pe o reț ea de tip wide-area.
(WAN).
Clusterele paralele permit mai multor gazde să acceseze acelea ș i date din stocarea partajată.
Tehnologia clusterează se schimbă rapid cu ajutorul reț elelor de stocare (SAN).
Folosind resurse SAN, acestea pot fi partajate cu zeci de sisteme într-un cluster, care sunt
separaț i de mile.
Structura sistemului de operare
Unul dintre cele mai importante aspecte ale sistemelor de operare este capacitatea de a multiprograma.
Un singur utilizator nu poate men ț ine niciodată CPU-ul sau dispozitivele I/O ocupate tot timpul.
Multiprogramarea cre ș te utilizarea CPU-ului prin organizarea muncii, astfel încât CPU-ul
întotdeauna are unul de executat.
Sistemul de operare menț ine mai multe sarcini în memorie simultan, aș a cum este prezentat în figură.
Această set de locuri de muncă este un subset al locurilor de muncă păstrate în piscina de locuri de muncă.

Sistemul de operare alege ș i începe să execute una dintre sarcinile din memorie.
În cele din urmă, jobul poate trebui să a ș tepte o anumită sarcină, cum ar fi o opera ț iune I/O, pentru
complet.

Departamentul de ISE, APSCE 7


Sisteme de operare

Într-un sistem non-multiprogramat, CPU-ul ar sta inactiv. Într-un sistem multiprogramat


sistemul, sistemul de operare pur ș i simplu trece la, ș i execută, o altă sarcină. Când acea
job needs to wait, the CPU is switched toanotherjob, and so on.
În cele din urmă, primul job termină aș teptarea ș i primeș te CPU-ul înapoi. Astfel, CPU-ul nu este niciodată
inactiv.

Împărț irea timpului (multitasking) este o extensie logică a multiprogramării.


Aici, o singură unitate centrală de procesare execută mai multe sarcini prin comutarea între ele, în care CPU
schimbă locurile de muncă atât de des încât utilizatorii pot interacț iona cu fiecare loc de muncă în timp ce acesta rulează.
Partajarea timpului necesită un sistem informatic interactiv (sau practic), care oferă
comunicare directă între utilizator ș i sistem ș i timpul de răspuns ar trebui să fie
scurt—de obicei mai puț in de o secundă.
Fiecare utilizator are cel puț in un program executându-se în memorie. Dacă mai multe sarcini sunt pregătite să ruleze în acelaș i timp
timp, dacă procesele nu se potrivesc în memorie, schimbarea le mută în interior ș i în exterior pentru a rula
Memoria virtuală permite executarea proceselor care nu sunt complet în memorie

Operaț iunile Sistemului de Operare


Sistemele de operare moderne sunt bazate pe întreruperi. Dacă nu există procese de executat, un
sistemul de operare va aș tepta ca evenimentele să aibă loc.
Evenimentele sunt semnalate prin apariț ia unui întrerupător sau a unei capcane.
Atrap (oranexception) este un întrerupător generat de software, generat fie de o eroare
(Divizare prin zero, cerere pentru serviciul sistemului de operare) sau printr-o cerere din partea unui utilizator
program.
Pentru fiecare tip de întrerupere, este furnizată o rutină de servicii de întrerupere care este responsabilă pentru
gestionarea întreruperii.
Deoarece sistemul de operare ș i programele utilizatorului împărtă ș esc hardware-ul ș i software-ul
resursele sistemului de calculatoare, trebuie să se asigure că o eroare într-un program de utilizator
nu poate cauza probleme altor programe ș i Sistemului de Operare care rulează în
sistem.
Funcț ionarea în mod dual permite sistemului de operare să se protejeze ș i pe sine, precum ș i alte componente ale sistemului
Funcț ionare în modul dual
Abordarea aleasă este să folosim un suport hardware care ne permite să diferenț iem între diverse
moduri de executare.
Sistemul poate fi presupus că funcț ionează în două moduri separate de operare:
mod de utilizator
modul kernel (mod de supraveghere, mod de sistem sau mod privilegiat).

Departamentul de ISE, APSCE 8


Sisteme de operare

Un bit hardware al computerului, numit bitul de mod, este folosit pentru a indica modul curent:
kernel (0) sau utilizator (1).

Cu bitul de mod, putem distinge între o sarcină care este executată de sistemul de operare
sistem ș i unul care este executat de utilizator.
Când sistemul informatic execută o aplicaț ie utilizator, sistemul se află în modul utilizator.
Când o aplicaț ie a utilizatorului solicită un serviciu de la sistemul de operare (printr-o apelare a sistemului),
tranzitia de la modul utilizator la modul kernel are loc.

La pornirea sistemului, hardware-ul începe în modul kernel. Sistemul de operare este apoi
încărcat ș i porneș te aplicaț iile utilizatorului în modul utilizator.
Ori de câte ori apare un tipar sau un întrerupător, hardware-ul comută de la modul utilizator la modul kernel
(adică, schimbă bit-ul de mod de la 1 la 0). Astfel, de fiecare dată când sistemul de operare obț ine
controlul computerului, este în modul kernel.
Hardware-ul permite executarea instruc ț iunilor privilegiate doar în modul kernel. Dacă un
o tentativă de a executa o instrucț iune privilegiată în modul utilizator este tratată ca fiind ilegală ș i
o captează pentru sistemul de operare.
Cronometru
Sistemul de operare foloseș te un temporizator pentru a controla CPU-ul. Un program utilizator nu poate ț ine CPU-ul pentru mult timp.
timp, acest lucru este prevenit cu ajutorul unui temporizator.
Un cronometru poate fi setat să întrerupă computerul după o perioadă specificată. Perioada poate fi
Timer fix – După un timp fix, procesul aflat în execuț ie este întrerupt.
Timer variabil – Interrupț ia apare după un interval variabil.
Înainte de a comuta în modul utilizator, sistemul de operare se asigură că temporizatorul este setat la
interrupț ie. Dacă temporizatorul generează o întrerupere, controlul se transferă automat către sistemul de operare.

Departamentul de ISE, APSCE 9


Sisteme de operare

Managementul proceselor
Un program aflat în execuț ie este un proces. Un proces are nevoie de resurse precum timpul CPU, memoria,
fiș iere ș i dispozitive I/O pentru executarea sa.
Aceste resurse sunt oferite procesului atunci când este creat sau în timpul execuț iei.
Când procesul se încheie, sistemul de operare recuperează resursele.
Programul stocat pe un disc este o entitate pasivă, iar programul în execuț ie este un
entitate activă.
Un proces cu un singur fir de execu ț ie are un contor de program care specifică următoarea instruc ț iune de
execută. CPU-ul execută o instrucț iune a procesului după alta, până când procesul
complete.
Un proces cu fire multiple are mai multe contoare de program, fiecare indicând la următorul
instructiune de executat pentru un fir dat.
Sistemul de operare este responsabil pentru următoarele activită ț i în legătură cu procesul
management:
Procesul de programare ș i firele de execuț ie pe CPU
Crearea ș i ș tergerea atât a proceselor utilizator, cât ș i a celor de sistem
Suspendarea ș i reluarea proceselor
Oferirea mecanismelor pentru sincronizarea proceselor
Furnizarea de mecanisme pentru comunicarea proceselor

Gestionarea memoriei
Memoria principală este o matrice mare de cuvinte sau octeț i. Fiecare cuvânt sau octet are propria sa adresă.
Pe măsură ce programul se execută, procesorul central citeș te instrucț iuni ș i de asemenea citeș te ș i scrie
date din memoria principală.
Pentru a îmbunătăț i atât utilizarea CPU-ului, cât ș i viteza de răspuns a computerului la acesta
utilizatori, calculatoarele de uz general trebuie să păstreze mai multe programe în memorie, creând o necesitate
pentru gestionarea memoriei.
Sistemul de operare este responsabil pentru următoarele activităț i în legătură cu memoria
management:
Ț inând evidenț a părț ilor de memorie care sunt în prezent utilizate de utilizator.
Deciderea proceselor ș i datelor care să fie mutate în ș i din memorie.
Alocarea ș i dezalocarea spaț iului de memorie după cum este necesar.

Gestionarea stocării
Există trei tipuri de management al stocării i) Managementul sistemului de fi ș iere ii) Stocare de masă
management iii) Gestionarea cache-ului.
Managementul sistemului de fiș iere
Gestionarea fiș ierelor este una dintre cele mai vizibile componente ale unui sistem de operare.
Un fiș ier este o colecț ie de informaț ii relaț ionate definite de creatorul său. În mod obiș nuit, fiș ierele reprezintă
programe ș i date.
Sistemul de operare implementează conceptul abstract de fiș ier prin gestionarea stocării de mare capacitate
Fiș ierele sunt în mod normal organizate în directoare pentru a le face mai uș or de utilizat.

Departamentul de ISE, APSCE 10


Sisteme de operare

Când mai mulț i utilizatori au acces la fiș iere, poate fi dorit să se controleze de cine ș i în
ce modalităț i (citire, scriere, executare) pot fi accesate fiș ierele.
Sistemul de operare este responsabil pentru următoarele activită ț i în legătură cu fi ș ierul
management:
Crearea ș i ș tergerea fiș ierelor
Crearea ș i ș tergerea directoarelor pentru organizarea fiș ierelor
Primitive de suport pentru manipularea fiș ierelor ș i directoarelor
Maparea fiș ierelor pe stocarea secundară
Backup-ul fiș ierelor pe suporturi de stocare stabile (nevolatile)
Gestionarea stocării de masă
Deoarece memoria principală este prea mică pentru a putea acomoda toate datele ș i programele, ș i având în vedere că datele care
informaț iile sunt ș terse când alimentarea se pierde, sistemul de calcul trebuie să furnizeze stocare secundară
pentru a face o copie de rezervă a memoriei principale.

Cele mai moderne sisteme de calcul folosesc discuri ca mediu de stocare pentru atât programe, cât ș i date.
Cele mai multe programe - inclusiv compilatoare, asamblatoare, procesatoare de texte, editore ș i
formatterii - sunt stocaț i pe un disc până când sunt încărcaț i în memorie ș i apoi folosesc discul ca pe ambele
sursa ș i destinaț ia procesării acestora.
Prin urmare, gestionarea corespunzătoare a stocării pe disc este de o importan ț ă centrală pentru un computer
sistemul. Sistemul de operare este responsabil pentru următoarele activităț i în legătură cu
disk management:
Gestionarea spaț iului liber
Alocarea stocării
Programarea discurilor

Cache
Cachingul este un principiu important al sistemelor informatice. Datele folosite frecvent sunt copiate
sistem de stocare mai rapid—cache-ul—ca date temporare. Când o anumită bucată de
informaț iile sunt necesare, mai întâi verificăm în cache.
Deoarece cache-urile au o dimensiune limitată, gestionarea cache-ului este o problemă de design importantă.
Selectarea atentă a dimensiunii cache-ului ș i a politicii de înlocuire a paginilor poate duce la rezultate semnificative.
performanț ă crescută.
Transferul de date de la cache la CPU ș i registre este de obicei o funcț ie hardware implicită,
fără intervenț ia sistemului de operare.
În contrast, transferul de date de pe disc în memorie este de obicei controlat de sistemul de operare.
sistem-explicit.
Într-o structură de stocare ierarhică, aceleaș i date pot apărea în diferite niveluri ale
sistem de stocare. De exemplu, să presupunem că trebuie să recuperăm un întreg A de pe disc magnetic la
program de procesare. Operaț iunea continuă prin emiterea mai întâi a unei operaț iuni I/O pentru a copia discul
blocul pe care A se află în memorie principală. Această operaț iune este urmată de copierea lui A în cache
ș i într-un registru intern. Astfel, copia lui A apare în mai multe locuri: pe discul magnetic, în
memoria principală, în cache ș i într-un registru intern.

Dept. de ISE, APSCE 11


Sisteme de operare

In a multiprocessor environment, in addition to maintaining internal registers, each of the CPUs


de asemenea, conț ine un cache local. Într-un astfel de mediu, o copie a A poate exista simultan în
mai multe cache-uri. Deoarece diferitele CPU-uri pot executa toate concurrent, orice actualizare efectuată la
valoarea lui A într-un cache este reflectată imediat în toate celelalte cache-uri unde A se află. Acest lucru
situaț ia se numeș te coerenț a cache-ului ș i este de obicei o problemă de hardware (gestionaț i mai jos
nivelul sistemului de operare).

Sisteme I/O
Unul dintre scopurile unui sistem de operare este de a ascunde particularităț ile hardware-ului specific
dispozitive de la utilizator. Subsystemul I/O este compus din mai multe componente:
O componentă de gestionare a memoriei care include tamponare, stocare în cache ș i
spooling
O interfaț ă generală pentru drivere de dispozitiv
Drivere pentru dispozitive hardware specifice
Numai driverul de dispozitiv cunoaș te particularităț ile dispozitivului specific căruia îi este atribuit.

Protecț ie ș i Securitate
Protecț ie–orice mecanism pentru controlul accesului proceselor sau utilizatorilor la resursele definite de OS
Protecț ia îmbunătăț eș te fiabilitatea. Un sistem orientat spre protecț ie oferă un mijloc de a distinge între
utilizare autorizată ș i neautorizată
Security–defense of the system against internal and external attacks. Such attacks spread across a huge
incluzând viruș i ș i viermi, atacuri de tip denial-of-service etc.
Protec ț ia ș i securitatea necesită ca sistemul să fie capabil să facă distinc ț ia între to ț i utilizatorii săi. Cei mai mul ț i
sistemele de operare menț in
Identităț ile utilizatorilor (ID-uri de utilizator, ID-uri de securitate) includ numele ș i numărul asociat, câte unul per utilizator.
ID-ul utilizatorului este apoi asociat cu toate fiș ierele ș i procesele acelui utilizator pentru a determina controlul accesului.
Identificatorul grupului (ID de grup) permite definirea unui set de utilizatori ș i gestionarea acestuia.
de asemenea asociat cu fiecare proces, fiș ier.
Escalarea privilegiilor permite utilizatorului să schimbe ID-ul efectiv cu unul cu mai multe drepturi pentru a obț ine extra
permisii pentru o activitate.
Sisteme Distribuite
Un sistem distribuit este o colecț ie de sisteme care sunt conectate în reț ea pentru a oferi utilizatorilor
acces la diversele resurse din reț ea.
Accesul la o resursă partajată creș te viteza de calcul, funcț ionalitatea, disponibilitatea datelor,
ș i fiabilitate.
O reț ea este un drum de comunicare între două sau mai multe sisteme. Reț elele variază în funcț ie de
protocolele utilizate (TCP/IP, UDP, FTP etc.), distan ț ele dintre noduri ș i transportul
media(sârme de cupru, fibră optică, wireless)
Re ț elele sunt caracterizate în func ț ie de distan ț ele dintre nodurile lor. O re ț ea locală
Reț eaua (LAN) leagă computerele într-o cameră, pe un etaj sau într-o clădire.
O reț ea de mare arie (WAN) leagă, de obicei, clădiri, oraș e sau ț ări.
O reț ea metropolitană (MAN) conectează clădiri dintr-un oraș .
Dispozitivele BlueTooth ș i 802.11 folosesc tehnologie wireless pentru a comunica pe o distanț ă de

Departamentul de ISE, APSCE 12


Sisteme de operare

câț iva metri, creând în esenț ă o reț ea de mică amploare, asemănătoare cu cea care ar putea fi găsită într-o casă.
Mediile de transport pentru a purta reț elele sunt de asemenea variate. Acestea includ cabluri de cupru, fibră
fibre, ș i transmisii wireless între sateliț i, antene cu microunde ș i radiouri.

Sisteme cu scop special


Există diferite clase de sisteme informatice, a căror funcț ii sunt mai limitate ș i specifice.
ș i se ocupă de domenii de calcul limitate.
Sisteme încorporate în timp real
Calculatoarele incorporate sunt cea mai răspândită formă de computere existente. Aceste dispozitive
se găsesc peste tot, de la motoarele auto ș i robo ț ii de produc ț ie până la DVD-uri ș i
cuptoare cu microunde. Acestea au tendinț a de a avea sarcini foarte specifice.
Sistemele pe care rulează sunt de obicei primitive, a ș a că sistemele de operare oferă
funcț ii limitate. De obicei, au puț in sau deloc interfaț ă de utilizator, preferând să îș i petreacă timpul
monitorizarea ș i gestionarea dispozitivelor hardware, cum ar fi motoarele de automobile ș i braț ele robotizate.
Sisteme portabile
include asisten ț i personali digitali (PDAs), cum ar fi Palm ș i Pocket-Pes, ș i celulare
telefoane, multe dintre ele folosesc sisteme de operare încorporate cu scop special.
Dezvoltatorii de sisteme ș i aplicaț ii portabile se confruntă cu multe provocări, majoritatea dintre acestea fiind
din cauza dimensiunii limitate a unor astfel de dispozitive. De exemplu, un PDA are de obicei aproximativ 5 inci în
înălț ime ș i 3 inci lăț ime, ș i cântăresc mai puț in de o jumătate de kilogram. Datorită dimensiunii lor,
majoritatea dispozitivelor portabile au cantităț i mici de memorie, procesoare lente ș i ecrane mici
ecrarelor. Acum ne uităm la fiecare dintre aceste limitări.
3. Sisteme multimedia
Cele mai multe sisteme de operare sunt concepute pentru a gestiona date conven ț ionale, cum ar fi fi ș ierele text.
programe, documente de procesare a textului ș i foi de calcul. Cu toate acestea, o tendin ț ă recentă în
tehnologia este integrarea datelor multimedia în sistemele informatice.
Datele multimedia constau din fiș iere audio ș i video, precum ș i din fiș iere convenț ionale. Aceste date
se diferenț iază de datele convenț ionale în sensul că datele multimedia - cum ar fi cadrele de video - trebuie să fie
livrat (transmis) conform unor restricț ii de timp anumite (de exemplu, 30 de cadre pe)
al doilea).
Mediile de Calcul
Mediile de calcul diferite sunt–
Calculul tradiț ional
PC-uri conectate la o reț ea, terminale ataș ate la mainframe-uri sau mini-computere care oferă
lot ș i împărtăș irea timpului
Acum portaluri care permit sistemelor legate în reț ea ș i la distanț ă să acceseze aceleaș i resurse
Reț elele de acasă Au fost odată un singur sistem, apoi modemuri Acum protejate prin firewall, interconectate
2. Calculatoare Client-Server
Terminale proaste înlocuite de PC-uri inteligente
Multe sisteme acum servere, răspunzând la cererile generate de clienț i
Serverul de calcul oferă o interfaț ă clientului pentru a solicita servicii (de exemplu, baza de date)
Serverul de fiș iere oferă o interfaț ă pentru clienț i pentru a stoca ș i a recupera fiș iere.

Departamentul de ISE, APSCE 13


Sisteme de operare

3. Calcul Peer-to-Peer
Un alt model de sistem distribuit
P2P nu distinge între clienț i ș i servere. În schimb, toate nodurile sunt considerate colegi.
Fiecare nod trebuie să se alăture reț elei P2P, acț ionând ca client, server sau ambele.
Îș i înregistrează serviciul cu serviciul central de căutare pe reț ea, sau
Solicitare de difuzare pentru serviciu ș i răspuns la cererile de serviciu prin protocolul viadiscovery
Exemple includ Napster ș i Gnutella

4. Calcul pe bază de web


Web-ul a devenit omniprezent, cele mai răspândite dispozitive fiind PC-urile.
Mai multe dispozitive devin conectate la reț ea pentru a permite accesul la web
Nouă categorie de dispozitive pentru a gestiona traficul web între servere similare: echilibratoare de încărcare
Utilizarea sistemelor de operare precum Windows 95, pe partea client, a evoluat în Linux ș i
Windows XP, care poate fi clienț i ș i servere
5. Sisteme de operare open-source
Sistemele de operare puse la dispoziț ie sub formă de cod sursă mai degrabă decât doar binar închis -
Contra protecț iei copiilor ș i a miș cării de Management al Drepturilor Digitale (DRM)
Comandat de Free Software Foundation (FSF), care are licenț a publică GNU "copyleft".
(GPL) Exemplele includ GNU/Linux, BSD UNIX (inclusiv nucleul Mac OS X) ș i Sun
Solaris
Structurile sistemului de operare

Servicii de sistem de operare


Un sistem de operare oferă un mediu pentru execuț ia programelor. Oferă anumite servicii.
la programe ș i la utilizatorii acelor programe.

Departamentul de ISE, APSCE 14


Sisteme de Operare

Sistemele de operare oferă servicii pentru utilizatorii sistemului, inclusiv:


1. Interfa ț a utilizator. Aproape toate sistemele de operare au o interfa ț ă UI. Această interfa ț ă poate lua mai multe forme.
interfa ț ă de linie de comandă folose ș te comenzi text ș i o metodă pentru a le introduce (să zicem, o
program pentru a permite introducerea ș i editarea comenzilor)
loturi în care comenzile ș i directivele pentru a controla acele comenzi sunt introduse în fiș iere,
ș i acele fiș iere sunt executate.
Interfaț a grafică cu utilizatorul este un sistem de feronerie cu un dispozitiv de îndreptare pentru a dirija I/O, a alege
din meniuri ș i face selecț ii ș i o tastatură pentru a introduce text.
Unele sisteme oferă două sau toate trei dintre aceste variaț ii.
[Link] programului. Sistemul trebuie să fie capabil să încarce un program în memorie ș i să-l execute.
program. Programul trebuie să fie capabil să î ș i încheie execu ț ia, fie normal, fie anormal
(indicând eroarea).
[Link] sistemului de fi ș iere. Sistemul de fi ș iere este deosebit de interesant. În mod evident, programele au nevoie
a citi ș i a scrie fiș iere ș i directoare.
[Link]. There are many circumstances in which one process needs to exchange
informaț ii cu un alt proces. O astfel de comunicare poate apărea între procesele care sunt
executând pe acelaș i computer sau între procese care se execuț i pe computere diferite
sisteme.
Comunicaț iile pot fi implementate prin reț ea partajată sau prin schimbul de mesaje
[Link] erorilor. Sistemul de operare trebuie să fie constant con ș tient de posibilele erori. Erorile
poate apărea în hardware-ul CPU ș i memorie (cum ar fi o eroare de memorie sau o defecț iune de alimentare), în
Dispozitive I/O
Facilităț ile de depanare pot îmbunătăț i semnificativ abilitatea utilizatorului ș i a programatorului de a folosi sistemul
eficient.
Un alt set de funcț ii ale sistemului de operare există nu pentru a ajuta utilizatorul, ci mai degrabă pentru a asigura ...
funcț ionarea eficientă a sistemului în sine. Sistemele cu mai mulț i utilizatori pot obț ine eficienț ă prin partajarea
resursele computerului între utilizatori
[Link] resurselor – Resurse precum cicluri CPU, memorie principală, spa ț iu de stocare ș i I/O
dispozitivele trebuie să fie alocate mai multor utilizatori ș i mai multor sarcini în acelaș i timp.
2. Contabilitate - Există servicii în OS pentru a urmări activitatea sistemului ș i resursele
utilizare, fie în scopuri de facturare, fie pentru păstrarea de înregistrări statistice care pot fi folosite pentru
optimizează performanț a viitoare.
3. Protec ț ie ș i Securitate - Proprietarii informa ț iei (fi ș ierului) în medii multiutilizator sau re ț ele.
sistemul de calcul poate dori să controleze utilizarea acelor informaț ii. Când mai multe separate
procesele se execută concurent, un proces nu ar trebui să interfereze cu altul sau cu sistemul de operare.
Protecț ia implică asigurarea că toate accesurile la resursele sistemului sunt controlate. Securitatea
sistemul de la străini trebuie, de asemenea, să fie realizat, prin intermediul unei parole.

Interfaț a utilizator-sistem de operare


Există mai multe modalităț i pentru utilizatori de a interacț iona cu sistemul de operare.
[Link] ț ă de linie de comandă sau interpret de comenzi-
permite utilizatorilor să introducă direct comenzi care să fie executate de sistemul de operare.
Interpretatoarele de comenzi sunt folosite pentru a da comenzi sistemului de operare.

Departamentul de ISE, APSCE 15


Sisteme de Operare

Există mai multe interpretoare de comenzi cunoscutele sub numele de shelluri. În UNIX ș i Linux
sisteme, există mai multe tipuri diferite de shell-uri, precum shell-ul Bourne, shell-ul C, Bourne-
Încă o dată shell, Korn shell ș i altele
Func ț ia principală a interpreterului de comenzi este de a primii ș i executa comanda specificată de utilizator.
comandă. Multe dintre comenzi manipulează fiș iere: creează, ș terge, listează, imprimă, copiază, execută,
ș i aș a mai departe.

Comenzile pot fi implementate în două moduri generale -


I. Interpretatorul de comenzi conț ine el însuș i codul pentru a executa comanda.
II. Codul pentru implementarea comenzii se află într-o funcț ie într-un fiș ier separat.
2. Interfa ț ă Grafică cu Utilizatorul
Interfaț a grafică permite utilizatorilor să interacț ioneze cu sistemul de operare folosind un dispozitiv pointer ș i
sistem de meniu.
în loc să introducă comenzi direct printr-o interfaț ă de linie de comandă, utilizatorii folosesc un
sistem de feronerie ș i meniuri bazat pe mouse.
Interfeț ele grafice pentru utilizatori au apărut pentru prima dată pe computerul Xerox Alto în 1973.
Cele mai moderne sisteme permit utilizatorilor individuali să-ș i aleagă interfaț a dorită, ș i să
personalizaț i funcț ionarea sa, precum ș i capacitatea de a comuta între diferite interfeț e
necesar.

Interpretor de comenzi Bourne Shell 1 Interfaț a grafică Mac OS X 1

Departamentul de ISE, APSCE 16


Sisteme de Operare

Apeluri de sistem
Apelurile de sistem sunt un mijloc de a accesa serviciile sistemului de operare.
În general, sunt scrise în C sau C++, deș i unele sunt scrise în assembly pentru performanț ă optimă.

Figura de mai jos ilustrează secvenț a apelurilor de sistem necesare pentru a copia conț inutul unui fiș ier dintr-unul
fiș ier(fişier de intrare) către un alt fiș ier (fiș ier de ieș ire).

Cei mai mul ț i programatori nu folosesc apelurile de sistem de nivel inferior direct, ci în schimb folosesc un
Interfaț ă de Programare a Aplicaț iilor, API.
API-urile, în loc de apeluri directe de sistem, oferă o portabilitate mai mare a programului între diferite
sisteme.
Cele trei cele mai comune API-uri sunt Win32 API pentru Windows, POSIX API pentru sistemele bazate pe POSIX
(inclusiv practic toate versiunile de UNIX, Linux ș i Mac OS X), ș i API Java pentru Java
maș ină virtuală (JVM)

Exemplu de API standard


Consideraț i funcț ia ReadFile() din API-ul Win32 - o funcț ie pentru citirea dintr-un fiș ier.

O descriere a parametrilor transmiș i către ReadFile() HANDLE file—fiș ierul care trebuie citit
LPVOID buffer—un tampon unde datele vor fi citite ș i scrise
DWORD bytesToRead—numărul de bytes care trebuie citiț i în buffer
LPDWORD bytesRead—the number of bytes read during the last read
LPOVERLAPPED ovl—indică dacă I/O suprapus este folosit

Dept. de ISE, APSCE 17


Sisteme de Operare

API-ul face apoi apelurile de sistem corespunzătoare prin intermediul interfeț ei de apeluri de sistem, folosind un
tabelul apelurilor de sistem pentru a accesa apelurile de sistem numerotate specific, aș a cum este arătat în figură.

Fiecare apel de sistem are un apel de sistem numerotat specific. Tabelul apelurilor de sistem (format din
numărul apelului de sistem ș i adresa serviciului specific) invocă o rută de serviciu particulară
pentru un apel de sistem specific.
Cine sună nu trebuie să ș tie nimic despre cum este implementată apelul de sistem sau ce face.
în timpul execuț iei.

Transmiterea parametrilor apelului de sistem


Adesea, sunt necesare mai multe informaț ii decât simpla identitate a apelului de sistem dorit Tipul exact ș i cantitatea de
informaț iile variază în funcț ie de sistemul de operare ș i apel

Trei metode generale folosite pentru a transmite parametrii către OS Cele mai simple: transmite ț i parametrii în
în unele cazuri, pot fi mai mulț i parametrii decât registre
Parametrii sunt stocaț i într-un bloc sau într-un tabel, în memorie, iar adresa blocului este transmisă ca parametru într-o
această abordare adoptată de Linux ș i Solaris
Parametrii plasaț i sau împinș i pe stivă de program ș i scoș i de pe stivă de către
sistem de operare
Metodele de blocare ș i stivuire nu limitează numărul sau lungimea parametrilor transmiș i

Transmiterea parametrilor prin tabel 1

[Link] ISE, APSCE 18


Sisteme de operare

Tipuri de apeluri de sistem


Apelurile de sistem pot fi clasificate în ș ase categorii majore:

a) Controlul Proceselor
Apelurile sistemului de control al proceselor includ: sfâr ș it, anulare, încărcare, execu ț ie, crearea procesului, terminare
procesează, obț ine/setează atributele procesului, aș teaptă pentru timp sau eveniment, semnalează evenimentul ș i alocă ș i eliberează
memorie.
Procesele trebuie create, lansate, monitorizate, suspendate, reluate ș i, în cele din urmă, oprite.
Când un proces se opreș te sau se suspendă, atunci un altul trebuie să fie lansat sau reluat.
Atributele procesului, cum ar fi prioritatea procesului, timpul maxim de execu ț ie permis etc. sunt setate ș i
recuperat de OS.
După crearea noului proces, procesul părinte poate fi nevoit să aș tepte (timp de aș teptare), sau să aș tepte pentru
un eveniment care să aibă loc (aș teaptă eveniment).

Procesul trimite un semnal când evenimentul a avut loc (eveniment de semnal).

Departamentul de ISE, APSCE 19


Sisteme de operare

b) Managementul fiș ierelor


Funcț iile de gestionare a fiș ierelor ale sistemului de operare sunt–

Apelurile de sistem pentru gestionarea fi ș ierelor includ crearea fi ș ierului, ș tergerea fi ș ierului, deschiderea, închiderea, citirea, scrierea,
repoziț ionaț i, obț ineț i atributele fiș ierului ș i setaț i atributele fiș ierului.
După crearea unui fiș ier, fiș ierul este deschis. Datele sunt citite sau scrise într-un fiș ier.
Punctul de fiș ier poate fi nevoie să fie repoziț ionat într-un punct.
Atributele fi ș ierului, cum ar fi numele fi ș ierului, tipul de fi ș ier, permisiunile etc., sunt setate ș i recuperate folosind
apeluri de sistem.
Aceste operaț iuni pot fi, de asemenea, susț inute pentru directoare, precum ș i pentru fiș iere obiș nuite.

c) Managementul Dispozitivelor
Apelurile sistemului de gestionare a dispozitivelor includ cererea dispozitivului, eliberarea dispozitivului, citirea, scrierea,
repoziț ionaț i, obț ineț i/setaț i atributele dispozitivului ș i ataș aț i sau detaș aț i logic dispozitivele.
Când un proces are nevoie de o resursă, se face o solicitare pentru resursă. Apoi, controlul este acordat.
procesului. Dacă resursa solicitată este deja ataș ată la un alt proces, solicitantul
procesul trebuie să aș tepte.
În sistemele de multiprogramare, după ce un proces foloseș te dispozitivul, acesta trebuie returnat sistemului de operare, astfel
că un alt proces poate folosi dispozitivul.
Dispozitivele pot fi fizice (de exemplu, unităț i de disc) sau virtuale / abstracte (de exemplu, fiș iere, partiț ii ș i
Discuri RAM).

d) Întreț inerea informaț iilor


Apelurile sistemului de întreț inere a informaț iilor includ apeluri pentru a obț ine/a stabili timpul, data, datele sistemului ș i
atributele proceselor, fiș ierelor sau dispozitivelor.
Aceste apeluri de sistem sunt folosite pentru a transfera informa ț ia între utilizator ș i sistemul de operare.
Informaț ii precum ora ș i data curentă, numărul de utilizatori curenț i, numărul versiunii sistemului de operare, cantitatea de liber
memorie, spaț iu pe disc etc. sunt transmise de la OS la utilizator.
e) Comunicare
Apelurile sistemului de comunica ț ie creează/ ș terg conexiuni de comunica ț ie, trimit primesc
mesaje, informaț ii despre starea transferului ș i ataș ează/dezaș ează dispozitive remote.
Modelul de transmitere a mesajelor trebuie să suporte apeluri către:
o Identifică un proces ș i/sau un host remote cu care să comunici.
o Stabiliț i o conexiune între cele două procese.
o Deschideț i ș i închideț i conexiunea după cum este necesar.

o Transmiteț i mesaje pe parcursul conexiunii.


o Aș teptaț i mesaje de intrare, într-o stare blocantă sau non-blocantă.
o Ș terge conexiunea când nu mai este necesară.
Modelul de memorie partajată trebuie să sprijine apelurile la:
o Creează ș i accesează memorie care este partajată între procese (ș i fire.)
o Eliberaț i memoria partajată ș i / sau alocaț i-o dinamic după cum este necesar.
Transmiterea mesajelor este mai simplă ș i mai uș oară, (în special pentru comunicaț iile inter-computer), ș i este
în general, este potrivit pentru cantităț i mici de date. Este uș or de implementat, dar există apeluri de sistem pentru fiecare
proces de citire ș i scriere.

Departamentul de ISE, APSCE 20


Sisteme de operare

Programe de sistem
O colecț ie de programe care oferă un mediu convenabil pentru dezvoltarea ș i executarea programelor
(în afară de OS) sunt numite programe de sistem sau utilitare de sistem. Nu face parte din nucleu sau din comandă
interpreț i.
Programele de sistem pot fi împărț ite în cinci categorii:
[Link] fi ș ierelor - programe pentru a crea, ș terge, copia, redenumi, imprima, lista ș i, în general
manipulează fiș iere ș i directoare.
2. Informa ț ii despre statut - Utilitare pentru a verifica data, ora, numărul de utilizatori, procesele care rulează,
înregistrare de date, etc. Registrii sistemului sunt folosiț i pentru a stoca ș i a rechema informaț ii de configurare pentru
aplicaț ii particulare.
[Link] fi ș ierului - de exemplu, editoarele de text ș i alte instrumente care pot schimba con ț inutul fi ș ierului.
[Link] pentru limbaje de programare - De exemplu, compilatoare, interlinkere, debuggere, profilere, asamblatoare,
managementul arhivelor bibliotecilor, interpreț i pentru limbile comune ș i suport pentru make.
5. Încărcarea ș i execu ț ia programului - încărcătoare, încărcătoare dinamice, încărcătoare de suprapunere etc., precum ș i
debuggeri interactivi.
[Link] - Programe pentru furnizarea conectivită ț ii între procese ș i utilizatori,
inclusiv email, browsere web, loginuri la distanț ă, transferuri de fiș iere ș i execuț ie de comenzi la distanț ă.

Proiectarea ș i implementarea sistemului de operare


Obiective de design
Orice sistem care trebuie proiectat trebuie să aibă propriile sale obiective ș i specificaț ii. În mod similar, sistemul de operare care urmează să fie construit

va avea propriile obiective în funcț ie de tipul de sistem în care va fi utilizat, tipul de


hardware utilizat în sistem etc.
Cerinț ele definesc proprietăț ile pe care sistemul final trebuie să le aibă ș i reprezintă un pas necesar în
proiectarea oricărui sistem complex mare. Cerinț ele pot fi din două grupuri de bază:
[Link] goals (User requirements).
prezintă lucruri de care utilizatorii le pasă ș i le înț eleg, cum ar fi sistemul ar trebui să fie convenabil de folosit, uș or
a învăț a, de încredere, sigur ș i rapid
2. Obiectivele sistemului (cerin ț ele sistemului)
sunt scrise pentru dezvoltatori, adică. Persoane care proiectează sistemul de operare. Cerinț ele lor sunt precum uș or de
proiectaț i, implementaț i ș i menț ineț i, flexibil, fiabil, fără erori ș i eficient.

Mecanisme ș i Politici
Politicile determină ce trebuie făcut. Mecanismele determină cum trebuie făcut.
implementat.
Exemplu: în cronometru, numărător ș i numărător descrescător este mecanismul ș i decide cum
timpul pe care trebuie să-l stabilim sunt politicile.
Politicile se schimbă în timp. În cel mai rău caz, fiecare schimbare a politicii ar necesita o
schimbare în mecanismul de bază.
Dacă sunt separate ș i aplicate corespunzător, schimbările de politică pot fi ajustate uș or fără a re-
scrierea codului, doar prin ajustarea parametrilor sau posibil încărcarea de noi date /
fiș iere de configurare.

Departamentul de ISE, APSCE 21


Sisteme de operare

Implementare
În mod tradiț ional, sistemele de operare au fost scrise în limbaj de asamblare.
În ultimii ani, sistemele de operare sunt scrise în C sau C++. Secț iunile critice de cod sunt încă scrise în
limbaj de asamblare.
Primul sistem de operare care nu a fost scris în limbaj de asamblare a fost Programul de Control Principal
(MCP).
Avantajele utilizării unui limbaj de nivel superior pentru implementarea sistemelor de operare sunt:
Codul poate fi scris mai repede, mai compact, uș or de portat pe alte sisteme ș i este mai uș or de
înț elege ș i depanează.
Singurele dezavantaje ale implementării unui sistem de operare într-o limbaj de programare de nivel înalt sunt
viteza redusă ș i cerinț ele de stocare crescute.

Structura sistemului de operare


OS structure must be carefully designed. The task of OS is divided into small components and then
interfataț i pentru a lucra împreună.

Structură simplă
Multe sisteme de operare nu au structuri bine definite. Ele au început ca fiind mici, simple, ș i
sisteme limitate ș i apoi au crescut dincolo de domeniul lor original.
MS-DOS – scris pentru a oferi cea mai mare funcț ionalitate în cel mai mic spaț iu, fără a fi împărț it în module. Deș i
MS-DOS are o structură, interfeț ele ș i nivelurile sale de funcț ionalitate nu sunt bine separate.

Abordare stratificată
Sistemul de operare este împărț it în mai multe straturi (niveluri), fiecare construit peste straturile inferioare.
stratul de bază (stratul 0) este hardware-ul; cel mai înalt (stratul N) este interfaț a utilizatorului.
Cu modularitate, straturile sunt selectate astfel încât fiecare foloseș te funcț ii (operaț ii) ș i servicii doar de niveluri inferioare-
nivel straturi
Sistemul de operare UNIX constă din două părț i separabile: nucleul ș i programele de sistem. Nucleul este ș i el mai departe
separat într-o serie de interfeț e ș i drivere de dispozitiv. Kernelul oferă sistemul de fiș iere, CPU
programarea, gestionarea memoriei ș i alte funcț ii ale sistemului de operare prin apeluri de sistem.

Structura Sistemului UNIX

Structura stratului MS-DOS

Dept. de ISE, APSCE 22


Sisteme de Operare

Abordare stratificată
Sistemul de operare este împărț it în mai multe straturi (niveluri). Fiecare strat se sprijină pe stratul de dedesubt.
se bazează pe serviciile furnizate de următoarea strat inferior.
Stratul de bază (stratul 0) este hardware-ul, iar stratul de sus este interfaț a utilizatorului.
O strat tipic, constă dintr-o structură de date ș i rutine care pot fi invocate de niveluri superioare
strat.
Avantajul abordării pe straturi este simplitatea construcț iei ș i a depanării.
The layers are selected so that each uses functions and services of only lower-level layers. So
simplifică depanarea ș i verificarea sistemului.
The layers are debugged one by one from the lowest and if any layer doesn’t work, then error is due
numai la acel strat, deoarece straturile inferioare sunt deja de-bugate. Astfel, designul ș i implementarea sunt
simplificat.
A layer need not know how its lower level layers are implemented. Thus, hides the operations from
straturi superioare.

Dezavantajele abordării stratificate:


Diversele straturi trebuie definite în mod corespunzător, deoarece un strat poate folosi doar niveluri inferioare.
straturi.
Mai puț in eficient decât alte tipuri, deoarece orice interacț iune cu stratul 0 este necesară din stratul superior.
Apelul sistemului ar trebui să treacă prin toate straturile ș i în cele din urmă la stratul 0. Aceasta este o suprasarcină.

Microkerneluri
Ideea de bază din spatele microkernel-urilor este de a elimina toate serviciile non-esenț iale din kernel.
astfel făcând nucleul cât mai mic ș i eficient posibil.
Serviciile eliminate sunt implementate ca aplicaț ii de sistem.
Cele mai multe microkernel-uri oferă gestionarea de bază a proceselor ș i a memoriei, precum ș i transmiterea mesajelor.
între alte servicii.
Avantajul microkernel - Expansiunea sistemului poate fi, de asemenea, mai uș oară, deoarece implică doar adăugarea de mai multe
aplicaț ii de sistem, nu reconstruirea unui nou kernel.
Mach a fost primul ș i cel mai cunoscut microkernel, ș i acum formează o componentă majoră a Mac
OSX
Dezavantajul microkernelului este că suferă de o reducere a performanț ei din cauza creș terii sistemului
funcț ia de suprasarcină.

Departamentul de ISE, APSCE 23


Sisteme de operare

Structura MAC OS X

Module
Dezvoltarea modernă a sistemelor de operare este orientată pe obiect, având un nucleu de bază relativ mic ș i un set de module.
care poate fi legat dinamic.
Fiecare componentă de bază este separată
Fiecare componentă comunică cu celelalte prin interfeț e cunoscute. Fiecare poate fi încărcat după cum este necesar în nucleu.
În general, similar cu straturile, dar cu mai multă flexibilitate

Abordarea Modulară Solaris

Maș ini virtuale


Ideea fundamentală din spatele unei maș ini virtuelle este de a abstractiza hardware-ul unei singure computere (CPU-ul,
memorie, unităț i de disc, plăci de interfaț ă de reț ea ș i aș a mai departe) în mai multe medii de execuț ie diferite,
creând astfel iluzia că fiecare mediu de execu ț ie separat î ș i rulează propriul privat
computer
OS-ul gazdă este principalul OS instalat în sistem, iar celelalte OS-uri instalate în sistem sunt numite
sistem de operare guest.

[Link] ISE, APSCE 24


Sisteme de operare

System modes. (A) Nonvirtual machine (b) Virtual machine

Maș inile virtuale au apărut pentru prima dată ca sistem de operare VM pentru mainframe-urile IBM în 1972

Beneficii
Capabil de a împărtăș i acelaș i hardware ș i de a rula mai multe medii de execuț ie diferite (OS).
Sistemul gazdă este protejat de maș inile virtuale ș i maș inile virtuale sunt protejate.
de la unul la altul. Un virus în sistemul de operare gazdă va corupe acel sistem de operare, dar nu va afecta celălalt gazdă.
sisteme ș i sisteme gazdă.
Chiar dacă maşinile virtuale sunt separate una de cealaltă, resursele software pot fi
împărț it între ei. Două moduri de a împărț i resursele software pentru comunicare sunt: a) Împărtăș irea unui
sistem de fiș iere volum (parte a memoriei). b) Pentru a dezvolta o reț ea de comunicare virtuală pentru
comunicaț i între maș inile virtuale.
Sistemul de operare rulează pe ș i controlează întreaga maș ină. Prin urmare, sistemul actual
trebuie oprit ș i scos din uz în timp ce se fac ș i se testează modificările. Această perioadă este
numit în mod obiș nuit timpul de dezvoltare a sistemului. În maș inile virtuale, această problemă este eliminată.
Programele utilizatorului sunt executate într-o maș ină virtuală, iar dezvoltarea sistemului se face în
o altă mediu.
Mai multe sisteme de operare pot rula simultan pe sistemul dezvoltatorului. Aceasta ajută la rapiditate
portarea ș i testarea codului programatorilor în medii diferite.
Consolidarea sistemului – două sau mai multe sisteme sunt făcute să funcț ioneze într-un singur sistem.

Simulatie–
Aici, sistemul gazdă are o arhitectură de sistem, iar sistemul oaspete este compilat în
arhitectură diferită. Programele sistemului gazdă compilate pot fi rulate într-un emulator care
traduc fiecare instrucț iune a programului oaspete în setul de instrucț iuni native al sistemului gazdă.

Paravirtualizare
Aceasta îi prezintă oaspetelui un sistem care este similar, dar nu identic cu cel preferat de oaspete.
sistemul. Oaspeț ii trebuie modificaț i pentru a rula pe hardware-ul paravirtualizat.

[Link] ISE, APSCE 25


Sisteme de operare

Exemple
VMware
VMware rulează ca o aplicaț ie pe un sistem de operare gazdă, cum ar fi Windows sau Linux ș i permite
acest sistem gazdă pentru a rula în mod simultan mai multe sisteme de operare guest diferite ca independente
maș ini virtuale.

În scenariul de mai jos, Linux rulează ca sistem de operare gazdă; FreeBSD, Windows NT ș i
Windows XP rulează ca sisteme de operare gazdă. Stratul de virtualizare este inima
VMware, deoarece abstractizează hardware-ul fizic în ma ș ini virtuale izolate care rulează ca gazde
sisteme de operare. Fiecare maș ină virtuală are propriul său CPU virtual, memorie, unităț i de disc, reț ea
interfeț e ș i aș a mai departe.

Maș ina Virtuală Java


Java a fost conceput de la bun început pentru a fi independent de platformă, rulând Java doar pe un
Java Virtual Machine, JVM, pentru care au fost dezvoltate diferite implementări pentru
numeroase platforme hardware diferite subiacente.
Codul sursă Java este compilat în cod byte Java în fiș iere .class. Codul byte Java este binar
instrucț iuni care vor rula pe JVM.
JVM implementează gestionarea memoriei ș i colectarea deș eurilor.
JVM constă din loader de clasă ș i interpret Java. Loader-ul de clasă încarcă fiș ierele .class compilate
de la atât programul Java cât ș i API-ul Java pentru executarea interpretatorului Java. Apoi verifică
.class fiș ier pentru validitate.

Departamentul de ISE, APSCE 26


Sisteme de operare

GENERAREA SISTEMULUI DE OPERARE


Sistemele de operare sunt concepute pentru a rula pe oricare dintre o clasă de maș ini; sistemul trebuie să fie configurat
pentru fiecare site computerizat specific
Programul SYSGEN obț ine informaț ii despre configuraț ia specifică a sistemului hardware
Încărcarea – pornirea unui computer prin încărcarea nucleului
Programul de bootstrapping - cod stocat în ROM care este capabil să localizeze nucleul, să-l încarce în memorie ș i
începe execuț ia sa

ÎNCEPEREA SISTEMULUI
Sistemul de operare trebuie să fie pus la dispoziț ia hardware-ului pentru ca hardware-ul să poată să-l pornească.
Un mic fragment de cod – încărcător de bootstrap, localizează nucleul, îl încarcă în memorie ș i îl porneș te
Sometimes two-step process whereboot blockat fixed location loads bootstrap loader
Când alimentarea este iniț ializată în sistem, execuț ia începe de la o locaț ie de memorie fixă Firmware utilizat pentru a deț ine
codul iniț ial de boot

GESTIONAREA PROCESELOR
Processes Concept
Un sistem de operare execută o varietate de programe: Sistem de tip batch - lucrări, Sisteme de partajare a timpului - utilizatori
termenii programe sau sarcini job ș i proces pot fi folosiț i aproape interschimbabil
Un proces este un program în execuț ie; execuț ia procesului trebuie să progreseze într-o manieră secvenț ială. Un proces
include: contorul de program stivă, secț iunea de date

Procesul
Memoria procesului este împărț ită în patru secț iuni
Stiva este folosită pentru a stoca variabile locale, funcț ii
parametrii, valorile de returnare ale funcț iei, adresa de returnare
etc.
Heaps-ul este folosit pentru alocarea dinamică a memoriei.
Secț iunea de date stochează variabile globale ș i statice.
The text section comprises the compiled program
cod.
Reț ineț i că există un spaț iu liber între stivă ș i
heap. Când stiva este plină, aceasta creș te în jos ș i când
stiva este plină, creș te în sus

Departamentul de ISE, APSCE 27


Sisteme de operare

Starea procesului
Pe măsură ce un proces se execută, îș i schimbă starea. Un proces are 5 stări. Fiecare proces poate fi într-una dintre
următoarele state–

Nou - Procesul este în etapa de creare.


Înscris - Procesul are toate resursele de care are nevoie pentru a rula. Aș teaptă să fie alocat la
procesor.
Se rulesc – Instrucț iunile sunt executate..
Aș teptând - Procesul aș teaptă să se întâmple un eveniment. De exemplu, procesul poate aș tepta
pentru introducerea de la tastatură, cererea de acces la disc, mesaje între procese, un cronometru care să se declanș eze sau un proces copil
a termina.
Terminare - Procesul ș i-a finalizat execuț ia.



Bloc de Control al Procesului
Pentru fiecare proces există un Bloc de Control al Procesului (PCB), care stochează informaț iile specifice procesului
informaț ie.
Starea procesului - Starea procesului poate fi nouă, pregătită, în execuț ie, în aș teptare etc.
Counterul de program – Counterul indică adresa următoarei instrucț iuni care urmează să fie executată pentru
this process.
Registrele CPU - Registrele variază în număr ș i tip, în funcț ie de arhitectura computerului.
Acestea includ acumulatoare, registre index, pointeri de stivă ș i registre de uz general. Împreună
cu contorul de programe, aceste informaț ii de stare trebuie salvate atunci când apare o întrerupere, pentru a permite
procesul să continue corect mai departe.
Informa ț ii despre programarea CPU - Aceste informa ț ii includ o prioritate a procesului, pointeri către
cozile de programare ș i orice alte parametrii de programare.
Informaț ii de gestionare a memoriei – Aceasta include informaț ii precum valoarea bazei
ș i registrele de limită, tabelele de pagini sau tabelele de segmente.
Informaț ii contabile – Aceste informaț ii includ cantitatea de CPU ș i timpul real utilizat,
limite de timp, numere de cont, numere de muncă sau de proces, ș i aș a mai departe.
Informa ț ii de stare I/O – Aceste informa ț ii includ lista dispozitivelor I/O alocate la
proces, o listă de fiș iere deschise ș i aș a mai departe.

PCB-ul serveș te pur ș i simplu ca un depozit pentru orice informaț ie care poate varia de la un proces la altul.

Departamentul ISE, APSCE 28


Sisteme de Operare

Planificarea proceselor
Obiectivul multiprogramării este de a avea un proces care să ruleze în permanen ț ă, pentru a
maximize utilizarea CPU.
Obiectivul împărț irii timpului este de a comuta CPU-ul între procese atât de frecvent încât utilizatorii
poate interacț iona cu fiecare program în timp ce rulează.
Pentru a îndeplini aceste obiective, programatorul de procese selectează un proces disponibil (posibil din
un set de mai multe procese disponibile) pentru executarea programului pe CPU.
Obiectivul principal al programării proceselor este de a menț ine CPU-ul ocupat în permanenț ă.

Cozi de programare a proceselor


1. Coada de lucru – setul tuturor proceselor din sistem
2. Coada de pregătire - setul tuturor proceselor aflate în memoria principală, pregătite ș i a ș teptând să fie executate
3. Cozi de dispozitive – set de procese care a ș teaptă un dispozitiv I/O. Procesele migrează între
diverse cozi
Aceste cozi sunt de obicei stocate ca o listă înlănț uită de PCB-uri
Un antet de coadă va conț ine două pointere - pointerul de cap care indică către primul PCB ș i pointerul de coadă.
pointercare indicând către ultimul PCB din listă.
Fiecare PCB are un câmp pointer care indică către următorul proces din coadă.
A common representation of process scheduling is aqueueing [Link] rectangular box in
diagrama reprezintă o coadă.
Two types of queues are present: theready queueand a set ofdevice queues.
Cercurile reprezintă resursele care deservesc cozile, iar săgeț ile indică fluxul de
procese în sistem.

Dept. de ISE, APSCE 29


Sisteme de operare

Un nou proces este initial pus în coada de aș teptare. Aș teaptă în coada de aș teptare până când este selectat pentru
execuț ie ș i i se oferă CPU-ul.
Odată ce procesul a fost alocat CPU-ului ș i este în execuț ie, unul dintre mai multe evenimente ar putea apărea:
 The process could issue an I/O request, and then be placed in an I/O queue.
 Procesul ar putea crea un nou subproces ș i aș tepta terminarea acestuia.
 Procesul ar putea fi înlăturat cu forț a de pe CPU, ca urmare a unei întreruperi, ș i să fie pus
înapoi în coada de aș teptare.
În primele două cazuri, procesul se schimbă în cele din urmă din starea de aș teptare în starea de pregătire, ș i
apoi este readus în coada de pregătire.
Un proces continuă acest ciclu până când se termină, moment în care este eliminat din toate cozi.

Departamentul de ISE, APSCE 30


Sisteme de operare

Planificatori
Planificatorii sunt software care selectează un program disponibil pentru a fi atribuit CPU-ului.
1. Un programator pe termen lung sau programator de locuri de muncă - selectează locuri de muncă din piscina de locuri de muncă (din memoria secundară

discul) ș i le încarcă în memorie. Este invocat very rar (secunde, minute).


programatorul pe termen lung controlează gradul de multiprogramare
2. Schedulerul pe termen scurt, sau Schedulerul CPU - selectează sarcini din memorie ș i alocă CPU-ul la
Planificatorul pe termen scurt este invocat foarte frecvent (mili-secunde) Þ (trebuie să fie rapid)
Planificatorul pe termen mediu - selectează procesul din coada de aș teptare ș i îl reintroduce în
memorie.

Procesele pot fi descrise ca fiind fie:


1. Proces legat de I/O - petrece mai mult timp făcând I/O decât calcule.
2. Proces legat de CPU - petrece mai mult timp efectuând calcule ș i pu ț ine opera ț iuni I/O.

Un sistem de programare eficient va selecta un amestec bun de procese legate de CPU ș i I/O.
procesele legate.
Dacă programatorul selectează mai multe procese legate de I/O, atunci coada I/O va fi plină ș i coada de pregătire.
va fi gol.
Dacă planificatorul selectează un proces mai intens pe CPU, atunci coada de pregătire va fi plină ș i coada de I/O.
va fi gol.

Sistemele de partajare a timpului utilizează un programator pe termen mediu


Schimbă procesul din coada pregătită ș i introduce procesul în coada pregătită.
Când sarcinile sistemului devin mari, acest planificator va schimba unul sau mai multe procese din lista de aș teptare.
aș teptaț i câteva secunde, pentru a permite lucrărilor mai mici ș i mai rapide să se termine rapid ș i să elibereze
sistem.
Acest proces se numeș te schimbare.

Comutare de context
Sarcina de a schimba un CPU de la un proces la alt proces se numeș te schimbare de context.
Când CPU-ul trece la un alt proces, sistemul trebuie să salveze starea vechiului proces ș i
încarcă starea salvată pentru noul proces printr-o comutare de context
Contextul unui proces este reprezentat în PCB
Timpul de schimbare a contextului este un overhead; sistemul nu efectuează lucrări utile în timpul schimbării.
dependent de suportul hardware

Operaț iuni asupra proceselor


1. Crearea procesului
Un proces poate crea mai multe procese noi.
Procesul de creare se numeș te aparentprocess, iar noile procese se numesc thechildren
al acelui proces.
Fiecare dintre aceste noi procese poate, la rândul său, să creeze alte procese. Fiecare proces are unică
ID-ul procesului.

Dept. de ISE, APSCE 31


Sisteme de operare

Pe sistemele Solaris tipice, procesul din vârful ierarhiei este procesul 'sched' cu PID de
0.
Procesul 'sched' creează mai multe procese copii - init, pageout ș i fsflush. Pageout ș i
fsflush este responsabil pentru gestionarea memoriei ș i a sistemelor de fiș iere.
Procesul init cu un PID de 1 serveș te ca proces părinte pentru toate procesele utilizatorului.

Un proces va necesita anumite resurse (timp de CPU, memorie, fiș iere, dispozitive I/O) pentru a-ș i îndeplini
sarcină.
Când un proces creează un subproces, subprocesul poate fi capabil să obț ină resursele sale în două
moduri
direct din sistemul de operare.
Subprocesul poate prelua resursele procesului părinte.
Resursa poate fi preluată de la părinte în două moduri–
Părintele poate fi nevoit să îș i împartă resursele între copiii săi
Împărț iț i resursele între mai mulț i copii.
Există două opț iuni pentru procesul părinte după crearea copilului:
Aș teptaț i ca procesul copil să se încheie ș i apoi continuaț i execuț ia. Părintele face o
apel de sistem wait()
Fugiț i în paralel cu copilul, continuând să executaț i fără a aș tepta.
Două posibilităț i pentru spaț iul de adrese al copilului în raport cu părinte:
Procesul copil este un duplicat al procesului părinte (are acelaș i program ș i date)
ca părinte).
Procesul copil a încărcat un nou program.

Departamentul de ISE, APSCE 32


Sisteme de operare

exemplu UNIX
apelul fork sistem creează un nou proces
apelul execsystem utilizat după un fork pentru a înlocui spaț iul de memorie al procesului cu unul nou
program
Crearea proceselor

Program C Crearea Procesului Separat


int main()
{
pid_t pid;
/* fork un alt proces */
pid = fork();
dacă (pid < 0)
{
/* a apărut o eroare */ fprintf(stderr, "Fork a eș uat");
ieș ire(-1);
}
else if (pid == 0)
{ /* proces copil */
execlp("/bin/ls", "ls", NULL);
}
altfel
{
/* proces părinte */
/* părinte va aș tepta ca copilul să termine */
wait (NULL);
printf ("Copil complet"); exit(0);
}
}

Exemplu Windows
în Windows. Procesele sunt create în API-ul Win32 folosind funcț ia CreateProcess ()
. which is similar to fork ()
Două parametrii trecu ț i la CreateProcess() sunt instan ț e ale STARTUPINFO ș i
Structuri PROCESS_INFORMATION.
STARTUPINFO specifică multe proprietă ț i ale noului proces, cum ar fi dimensiunea ferestrei ș i

Departamentul de ISE, APSCE 33


Sisteme de operare

apariț ia ș i mânerele pentru fiș ierele de intrare ș i ieș ire standard.


Structura PROCESS_INFORMATION con ț ine un maner ș i identificatorii pentru noul
proces creat ș i firul său.
Funcț ia ZeroMemory() pentru a aloca memorie pentru fiecare dintre aceste structuri
Primele două parametere transmise la CreateProcess () sunt numele aplicaț iei ș i linia de comandă
parametrii. Dacă numele aplicaț iei este NULL (aș a cum este în acest caz), parametrul din linia de comandă
specifică aplicaț ia care trebuie încărcată.
WaitForSingleObject() primeș te un handle al procesului copil - [Link] - ș i aș teaptă pentru acesta
proces de completat. Odată ce procesul fiu iese, controlul revine din WaitForSingleObj ect ()
funcț ie în procesul părinte

#include <stdio.h>
#include <windows.h>
int main(VOID)
{
STARTUPINFO si;
INFORMAȚ II_PROCESS pi;
}
II alocă memorie
ZeroMemory(&si, sizeof(si));
[Link] = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
II creează proces copil
dacă (!CreateProcess(NULL, II foloseș te linia de comandă
"C:\WINDOWS\system32\[Link]", II linia de comandă
NULL, nu moș tenesc manș a de proces
{
}
NULL, Eu nu moș tenesc mânerul firului
FALS, dezactivez moș tenirea manegerului
0, II fără semne de creare
NULL, II folosesc blocul de mediu al părintelui
NULL, II foloseș te directorul existent al părintelui
&si,
&pi))
fprintf(stderr, "Crearea procesului a eș uat");
return -1;
Părintele II va aș tepta ca copilul să termine
Aș teaptăUnSingurObiect([Link], INFINIT;
printf("Copil complet");
II închide manerele
ÎnchideHandle([Link]);
ÎnchideMâna([Link]);

Departamentul de ISE, APSCE 34


Sisteme de operare

2. Încetarea Procesului
Un proces se încheie când îș i finalizează ultima instrucț iune ș i solicită sistemului de operare
sistem pentru a-l ș terge, folosind apelul de sistem exit( ).
Toate resursele atribuite procesului, cum ar fi memoria, fiș ierele deschise ș i buffer-ele I/O, sunt
dezecalificat de sistemul de operare.
Un proces poate cauza încheierea unui alt proces prin utilizarea unei apel de sistem adecvat.
Procesul părinte poate termina procesele sale copil prin cunoaș terea PID-ului copilului.
Un părinte poate suspenda executarea copiilor dintr-o varietate de motive, cum ar fi:
Copilul a depăș it utilizarea resurselor care i-au fost alocate.
Sarcina atribuită copilului nu mai este necesară.
Părintele iese, iar sistemul de operare termină toț i copiii. Acesta este
numită terminare în cascadă.

Notă: Procesele care încearcă să se termine, dar nu pot pentru că părintele lor nu este
aș teptându-i sunt numiț i zombi. Acestea sunt în cele din urmă moș tenite de init ca ș i orfani ș i
lichidat. (Shell-urile UNIX moderne nu produc atât de multe orfane ș i zombi ca versiunile mai vechi
sisteme utilizate pentru.

Comunicaț ie între procese


Procesele în execuț ie pot fi fie procese cooperative, fie procese independente.
Procese independente - procese care nu pot afecta alte procese sau fi afectate de alte procese.
procesele care se execută în sistem.
Procese de cooperare - procese care pot afecta alte procese sau pot fi afectate de alte procese
executând în sistem.
Cooperarea între procese este permisă din următoarele motive–
Partajarea informaț iilor - Pot exista mai multe procese care trebuie să acceseze acelaș i fiș ier. Aș adar
informaț ia trebuie să fie accesibilă în acelaș i timp tuturor utilizatorilor.
Acceleraț ia calculului - Adesea, o soluț ie pentru o problemă poate fi rezolvată mai repede dacă problema poate fi
fi descompuse în sub-sarcini, care sunt rezolvate simultan (în special atunci când multiple
procesoare sunt implicate.)
Modularitate - Un sistem poate fi împărț it în module care cooperează ș i poate fi executat prin trimitere
informaț ii între ele.
Convenienț ă - Chiar ș i un singur utilizator poate lucra la mai multe sarcini prin partajarea informaț iilor.
Procesele care cooperează necesită un anumit tip de comunicare între procese. Acest lucru este permis de două
models : 1(Shared Memory systems 2)Message Passing systems.

În modelul de memorie partajată, o regiune de memorie care este partajată de procesele care cooperează este
stabilit. Procesele pot apoi schimba informaț ii citind ș i scriind date în zona comună
regiune.
În modelul de transmitere a mesajelor, comunicarea are loc prin intermediul mesajelor schimbate.
între procesele cooperante. Cele două modele de comunicare sunt contrastate în Figura

Departamentul de ISE, APSCE 35


Sisteme de Operare

Nr. crt. Memorie Partajată Transmiterea mesajelor

1. O regiune de memorie este partajată de Schimbul de mesaje se face între procese


procese de comunicare, în care prin utilizarea obiectelor.

informaț ia este scrisă ș i citită

2. Util pentru trimiterea unui bloc mare de date Util pentru trimiterea de date mici.

3. Apelul de sistem este folosit doar pentru a crea partajat. Apelul de sistem este folosit în timpul fiecărei citiri ș i scrieri
memorie operaț iune.
4. Mesajul este trimis mai repede, deoarece nu există Mesajul este comunicat încet.
apeluri de sistem
Sisteme cu memorie partajată
O regiune de memorie partajată este creată în interiorul spa ț iului de adrese al unui proces, care trebuie să
comunica. Alte procese care au nevoie să comunice folosesc această memorie partajată.
Procesul ar trebui să aibă grijă ca cele două procese să nu scrie datele în memoria partajată la
aceeaș i vreme.
Consideraț i o problemă Producător-Consumator. Un proces de producător produce informaț ii care sunt
consumat de un proces de consum. De exemplu, un compilator poate produce cod de asamblare, care este
consumat de un asamblor. Asamblorul, la rândul său, poate produce module obiect, care sunt
consumat de încărcător.
O soluț ie la problema producer-consumer foloseș te memorie partajată, unde un tampon de articole care
poate fi umplut de producător ș i golit de consumator, este disponibil într-o zonă de memorie care
este partajat de procesele producător ș i consumator.
Două tipuri de tamponi pot fi folosiț i
bufferul neobstruc ț ionat nu impune nicio limită practică asupra dimensiunii bufferului
bufferul limitat presupune că există o dimensiune fixă a buffer-ului
Bufferul partajat este implementat ca un tablou circular cu două puncte logice: in ș i out.
variabila indică următoarea poziț ie liberă în buffer; out indică prima poziț ie plină în
buffer. Bufferul este gol când in == out; bufferul este plin când ((in + 1) % DIMENSIUNE_BUFFER) ==
afară

Departamentul de ISE, APSCE 36


Sisteme de operare

#define DIMENSIUNE_BUFFER 10
typedef struct
{
...
}
element tampon[DIMENSIUNE_TAMPON];
int in = 0;
int out = 0;

Procesul de producător are o variabilă locală nextProduced în care se află noul element care urmează să fie produs.
stocat. Procesul consumator are o variabilă locală next Consumed în care itemul de a fi
consumat este stocat. Acest plan permite cel mult BUFFER_SIZE - 1 elemente în buffer în aceeaș i
timp.

Procesul de producț ie
în timp ce (adevărat) {
/* Produce un articol */
în timp ce (((in = (in + 1) % DIMENSIUNE_BUFFER count) == out); /* nu face nimic -- nu sunt buffere libere */
buffer[in] = articol;
in = (in + 1) % DIMENSIUNE BUFFER;
}

Procesul de consumator
în timp ce (adevărat)

{
în timp ce (în == în afară); // nu face nimic -- nimic de consumat
// elimină un element din buffer
item = buffer[out];
out = (out + 1) % DIMENSIUNE BUFFER;
returnează itemul;
}

2. Sisteme de transmitere a mesajelor


Mecanism pentru ca procesele să comunice ș i să sincronizeze acț iunile lor.
Sistemul de mesaje - procesele comunică între ele fără a recurge la variabile partajate
Facilitatea IPC oferă două operaț iuni:
osend(mesaj) – dimensiunea mesajului fixă sau variabilă
recep ț ionează(mesaj)
Dacă două procese P ș i Q doresc să comunice, trebuie să:
a stabili o legătură de comunicare între ei
oexchange messages via send/receive Implementation of communication link: physical
(de exemplu, memorie partajată, bus de hardware) logic (de exemplu, proprietăț i logice)

Dept. de ISE, APSCE 37


Sisteme de Operare

mai multe metode pentru a implementa logic un link ș i operaț iile send 0 ș i receive():
Comunicare directă sau indirectă
Comunicare sincronă sau asincronă
Buffering automată sau explicită
Următoarele probleme sunt legate de fiecare dintre aceș ti factori

1. Denumire
Procesele care doresc să comunice trebuie să aibă o modalitate de a se referi la celelalte. Ele pot folosi fie referinț e directe, fie
comunicare indirectă.
i. Comunicare directă - fiecare proces care doreș te să comunice trebuie să numească în mod explicit
destinatar sau expeditor al
send(P, mesaj)–trimite un mesaj procesului P
receive(Q, mesaj) – primeș te un mesaj de la procesul Q
Proprietăț ile link-ului de comunicare utilizat în acest sistem
oLinks sunt stabilite automat
Un link este asociat cu exact o pereche de procese care comunică între fiecare pereche.
există exact un link
Legătura poate fi unidirec ț ională, dar de obicei este bidirec ț ională.
Această schemă manifestă simetrie în adresare; adică, atât procesul de trimitere, cât ș i cel de recepț ie
procesul trebuie să numească celălalt pentru a comunica.
osend(P, mesaj) - Trimite un mesaj procesului P.
oreceive (id, message) - Primi ț i un mesaj de la orice proces; variabila id este setată la
numele procesului prin care a avut loc comunicarea.
ii. Comunicare indirectă-
oMesajele sunt direc ț ionate ș i primite din cutiile po ș tale (de asemenea, denumite por ț i) Fiecare
cutia poș tală are un ID unic.
Procesele pot comunica doar dacă partajează o cutie po ș tală Proprietă ț i ale linkului de comunicare
oLink stabilit doar dacă procesele împărtă ș esc o cutie po ș tală comună Un link poate fi asociat cu
multe procese
Fiecare pereche de procese poate împărtă ș i mai multe linkuri de comunicare. Linkul poate fi unidirec ț ional.
sau bidirecț ional
Operaț iuni
Acum să presupunem că procesele P1, P2 ș i P3 împărtăș esc toate căsuț a poș tală A. Procesul P1 trimite un mesaj către
A, în timp ce atât P2 cât ș i P3 execută un receive() de la A. Care proces va primi mesajul
trimis de P1? Răspunsul depinde de care dintre următoarele metode alegem
Permite asocierea unui link cu cel mult două procese.
Permite ț i cel mult un singur proces la un moment dat să execute o opera ț iune de primire 0.
Permite ț i sistemului să selecteze arbitrar care proces va primi mesajul (adică,
fie P2, fie P3, dar nu ambele, vor primi mesajul.
O cutie poș tală poate fi deț inută fie de un proces, fie de sistemul de operare. Dacă cutia poș tală este
deț inut de un proces, atunci distingem între proprietar ș i utilizator
Deoarece fiecare cutie poș tală are un proprietar unic, nu poate exista nicio confuzie cu privire la care proces
ar trebui să primească un mesaj trimis la această căsuț ă poș tală.

Dept. de ISE, APSCE 38


Sisteme de operare

O cutie poș tală care este deț inută de sistemul de operare are o existenț ă proprie. Este
independent ș i nu este legat de un anumit proces.
Sistemul de operare trebuie apoi să ofere un mecanism care permite unui proces să facă
următoarea:
Creează o nouă cutie po ș tală.
Trimite ț i ș i primi ț i mesaje prin intermediul căsu ț ei po ș tale.
Ș terge un mailbox.

2. Sincronizare
Transmisia mesajelor poate fi fie blocantă, fie neblocantă
Blocatul este considerat sincron
Blocarea trimiterii blochează expeditorul până când mesajul este primit
Blocat primire a avut blocat receptorul până când un mesaj este disponibil. Non-blocant este
considerată asincronă
Trimiterea non-blocantă permite expeditorului să trimită mesajul ș i să continue.
Recepț ia non-blocantă permite receptorului să primească un mesaj valid sau null

3. Buffering
Coada de mesaje ataș ată la link; implementată în una din cele trei moduri
O coadă de capacitate zero are capacitate 0 mesaje. Astfel, legătura nu poate avea mesaje.
aș teptând în el. În acest caz, expeditorul trebuie să blocheze până când destinatarul primeș te mesajul.
Capacitate limitată Coada are lungime finită n; astfel, cel mult n mesaje pot rezida în ea.
Dacă coada nu este plină atunci când se trimite un mesaj nou, mesajul este plasat în coadă ș i
expeditorul poate continua execuț ia fără a aș tepta. Capacitatea legăturii este finită, totuș i. Dacă
linkul este plin, expeditorul trebuie să se blocheze până când există spaț iu disponibil în coadă.
Capacitate nelimitată – Lungimea cozii este poten ț ial infinită; astfel, orice număr de
mesajele pot aș tepta în el. Expeditorul nu blochează niciodată

Departamentul de ISE, APSCE 39


Sisteme de operare

Întrebări
{"text":"1) Define ț i un sistem de operare? Care este punctul de vedere al sistemului asupra unui sistem de operare?"}

2) What is OS? Explain multiprogramming and time sharing systems.


3) Explica ț i func ț ionarea în mod dual în OS cu un diagramă de blocuri clară
4) Ce sunt apelurile de sistem? Explica ț i pe scurt tipurile lor. Scrie ț i secven ț a de apeluri de sistem pentru a copia un fi ș ier din sursă.
către destinaț ie
5) Ce sunt ma ș inile virtuale? Explica ț i cu un diagramă bloc. Sublinia ț i beneficiile.
6) Explica ț i avantajele abordării în straturi, cu un diagramă.
7) Explica ț i tipurile de sisteme multiprocesor ș i tipurile de clusterizare. Ce sunt sistemele tolerate la erori?
8) Care sunt activită ț ile pentru care sistemul de operare este responsabil, în legătură cu:
i. Process management ii) File management
9) Diferen ț iaț i între multiprogramare ș i multiprocessing.
10) Care sunt diferitele modalită ț i prin care Pthread se termină
11) Explica ț i orice două facilită ț i oferite pentru implementarea procesului interactiv în limbajul de programare ș i
sistem de operare.
12) 1Care sunt proprietăț ile esenț iale ale sistemelor de operare batch, în timp real ș i distribuite
13) Este dorită separarea între mecanism ș i politică în timp ce se proiectează un sistem de operare? Discută cu
exemplu.
14) Explica ț i cum poate fi văzut un sistem de operare ca un manager de resurse.
15) Ce este un sistem de operare distribuit? Care sunt avantajele sistemului de operare distribuit?
16) Ce sunt apelurile de sistem? Cu exemple, explică diferitele categorii de apeluri de sistem.
17) Briefly explain the clustered systems and real time systems.
18) Explica ț i „degradarea gra ț ioasă” ș i „toleran ț a la erori” într-un sistem multiprocesor
19) Ce este o ‘ma ș ină virtuală’? Explica ț i compilatorul just-in-time (JIT), folosit într-o ma ș ină virtuală Java
20) Define: (i) Micro Kernel (ii) Bootstrap program (iii) Caching (iv) trap (v) Job Pool
21) Care sunt opera ț iile sistemului de operare? Explica ț i. (6)

22) ) Ofera caracteristicile sistemelor de multiprocessing simetric si asimetric. (4)


23) Give the features ofsymmetricandasymmetricmultiprocessing systems.
24) Listaț i ș i explicaț i avantajele unui sistem multiprocesor.
25) Diferentiaț i între comunicarea directă ș i comunicarea indirectă între procese
26) Descrie acț iunile pe care un sistem de operare le face pentru a schimba contextul între procese.
27) Ce este un proces? Cu un diagramă de stare, explică stările unui proces. De asemenea, scrie structura unui proces.
bloc de control (8)
28) DefineIPC (Comunicaț ia între procese). Care sunt metodele diferite utilizate pentru logică
implementarea unui sistem de transmitere a mesajelor?
29) Descrie implementarea IPC folosind memorie partajată ș i trimiterea de mesaje.
30) Explicaț i pe scurt clasele comune de servicii oferite de diferitele sisteme de operare pentru a ajuta
utilizator ș i pentru asigurarea funcț ionării eficiente a sistemului.

Departamentul de ISE, APSCE 40


Sisteme de operare

Facultatea de ISE, APSCE 41

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