Sunteți pe pagina 1din 9

Limbaje de Programare - curs

I.2 INTRODUCERE ÎN SISTEME DE OPERARE

I.2.1 Noţiuni generale

Din cursul precedent:


 Componentele fizice care alcătuiesc un computer se numesc hardware. Hardware-ul
reprezintă "trupul" unui computer;
 Software-ul reprezintă unul sau mai multe programe (sau seturi de instrucţiuni) ce
pot fi înţelese de un calculator. Software-ul este "sufletul" unui calculator.
Calculatoarele utilizează două tipuri de software:
 Software de sistem, ce permite calculatorului să execute operaţiile de bază, cum ar
fi cele de intrare/ieşire;
 Software de aplicaţie, ce permite utilizatorilor să realizeze diferite operaţii.
Există patru tipuri de software de sistem, prezentate în figura 1.

Software de sistem Aplicaţii

Sisteme de operare Drivere de Programe utilitare Limbaje de


dispozitiv programare
Constau din unul sau
mai multe programe Sunt programe ce oferă Majoritatea utilitarelor Sunt utilizate pentru a
Controlează calculatorului tratează operaţiile de scrie programe, ce pot fi
echipamentele informaţii specifice stocare şi gestionare a executate apoi de către
hardware privind un anumit fişierelor calculator
Gestionează toate echipament hardware Unele utilitare sunt Permit utilizatorilor să
celelalte aplicaţii Sunt utilizate de OS incluse ca părţi ale OS introducă instrucţiuni
Sunt concepute pentru pentru comunicarea cu mai inteligibile decât
a lucra cu o anumită noile echipamente limbajul maşină
arhitectura hardware

Un sistem de operare este o colecţie de programe care, după ce a fost iniţial


încărcat în computer de către un "program de încărcare" (bootstrap program),
gestionează echipamentele hardware şi toate celelalte programe din computer Celelalte
programe sunt denumite aplicaţii. Aplicaţiile utilizează sistemul de operare, cerându-i
acestuia să efectueze anumite "servicii" (funcţii). De asemenea, utilizatorul poate
interacţiona direct cu sistemul de operare, prin intermediul unei interfeţe. Fiecare sistem
de operare este conceput pentru a lucra cu o anumită arhitectură hardware. Un sistem de
operare proiectat pentru un calculator MacIntosh nu va funcţiona pe un PC. Un PC mai
vechi bazat pe procesorul 8088 nu are resursele necesare pentru rularea unui sistem de
operare destinat să funcţioneze pe un Pentium.
Sistemul de operare conţine informaţii generale despre dispozitivele ce pot fi
conectate la calculator. Driverele de dispozitiv sunt programe ce oferă calculatorului
-1-
Limbaje de Programare - curs

informaţii specifice privind un anumit echipament hardware. Când se ataşează


calculatorului un nou dispozitiv, trebuie instalat pe hard-disk driverul corespunzător.
Driverul de dispozitiv este utilizat de sistemul de operare pentru comunicarea cu noile
echipamente.
Programele utilitare sunt programe utilizate împreună cu sistemul de operare
pentru a controla şi a utiliza echipamentele hardware sau pentru a gestiona fişierele de
date şi programele. Unele dintre aceste utilitare sunt incluse ca părţi ale sistemului de
operare. Majoritatea utilitarelor tratează operaţiile de stocare şi gestionare a fişierelor.
Utilitarele sunt folosite pentru o gamă largă de operaţii, cum ar fi:
 formatarea unui disk în vederea stocării de date şi programe;
 gestionarea datelor şi programelor – copierea, mutarea, redenumirea sau ştergerea
fişierelor;
 asigurarea securităţii datelor prin controlul existenţei viruşilor sau crearea de copii de
rezervă ale documentelor importante;
 restabilirea datelor şi programelor pierdute;
 efectuarea de teste de diagnosticare asupra echipamentelor hardware.
Limbajele de programare sunt utilizate pentru a scrie programe care sunt apoi
convertite în limbaj maşină, cod binar ce poate fi executat de către calculator. Limbajele
de programare permit utilizatorilor să introducă instrucţiuni mai inteligibile decât
limbajul maşină. Cu cât comenzile unui limbaj seamănă mai mult cu un limbaj natural
(de ex. cu limba engleză), cu atât limbajul respectiv este mai uşor de învăţat şi devine
mai popular.

I.2.2. Definirea sistemului de operare

Sistemul de operare poate fi definit ca un software care:


1. Gestionează resursele computerului pentru utilizatorii şi programele concurente:
 procesorul/procesoarele (CPU)
 memoria (RAM)
 componentele de stocare (hard-disk, floppy disk, CD-ROM, etc.)
 componentele de intrare/ieşire (monitor, tastatură, mouse, imprimantă)
 componentele multimedia (placă de sunet, placă video, etc.)
 componentele de conectare în reţea (placă de reţea, modem)
 etc.
2. Oferă utilizatorului o abstractizare simplu de utilizat a unei realităţi complicate,
transformând computerul într-o maşină virtuală, uşor de utilizat şi programat:
 utilizatorii au o interfaţă simplă pentru rularea programelor, gestionarea
fişierelor, etc.
 programatorii nu trebuie să reinventeze roata; OS furnizează câteva rutine
optimizate pentru utilizarea şi alocarea resurselor maşinii;
 OS furnizează o interfaţă de programare mai simplă, programatorii neavând
nevoie să înţeleagă în detaliu interacţiunea dintre diversele componente
hardware.

-2-
Limbaje de Programare - curs

Majoritatea platformelor (hardware şi software) necesită (şi uneori includ) un


sistem de operare. Exemple de sisteme de operare: MS-DOS, Windows 95/98/NT,
UNIX, IBM-OS/2, MacOS.

I.2.3 Încărcarea sistemului de operare (booting)

Există multe tipuri de sisteme de operare, complexitatea acestora variind după


funcţiile pe care acesta le furnizează sau scopul în care acesta este utilizat. Unele
sisteme sunt responsabile pentru gestionarea multor oameni, altele controlează
dispozitive hardware, cum ar fi pompe de petrol.
Sistemul de operare poate fi încărcat în memoria (RAM) calculatorului în două
moduri:
 este deja prezent în ROM;
 este încărcat de pe hard-disk la pornirea computerului.
În cazul în care sistemul de operare este deja prezent în ROM (ex.: controleri
industriali, pompe de petrol, etc.), acesta preia controlul imediat ce procesorul este
pornit. Prima lui sarcina va fi să testeze senzorii şi alarmele hardware şi apoi să ruleze
continuu o rutină de monitorizare a tuturor senzorilor de intrare. Dacă starea unui senzor
se modifică, el va iniţializa o rutină de generare a unei alarme.
Pentru sistemele mai complexe, sistemul de operare este, uzual, stocat pe un
suport (cum ar fi hard-disk-ul) şi încărcat în RAM la pornirea computerului. Avantajul
acestui tip de sistem este acela că modificările aduse sistemului de operare sunt mai
uşor de făcut şi de implementat. La pornirea computerului, sistemul de operare se
încarcă automat în RAM, parcurgând următoarea secvenţă:
1. Când se deschide calculatorul, controlul acestuia este preluat de Sistemul de Bază de
Intrare/Ieşire (Basic Input-Output System - BIOS). BIOS-ul este un set de
instrucţiuni stocat în cipul ROM şi reprezintă interfaţa dintre echipamentele
hardware şi sistemul de operare.
2. Primul lucru pe care-l face BIOS-ul este un autotest (Power-On Self Test - POST)
pentru a se asigura că toate componentele calculatorului sunt operaţionale. Apoi, un
program de încărcare conţinut în BIOS (bootstrap loader) caută pe unităţile de disk
(dischetă, hard-disk) programul special de încărcare (OS loader), care va încărca
sistemul de operare.
3. Mai întâi, caută pe dischetă o porţiune specifică unde sunt localizate fişierele de
încărcare a sistemului. O dischetă care conţine aceste fişiere se numeşte dischetă
sistem (de exemplu, în cazul în care sistemul de operare este MS-DOS, fişierele
respective sunt IO.SYS şi MSDOS.SYS). Dacă în floppy drive există o dischetă, dar
care nu este dischetă sistem, BIOS-ul va transmite utilizatorului un mesaj,
informându-l că unitatea floppy nu conţine o dischetă sistem. Dacă nu există o
dischetă introdusă în unitatea floppy (cazul uzual), BIOS-ul va căuta fişierele sistem
pe o porţiune specifică a hard-disk-ului.
4. După ce a identificat unde sunt localizate fişierele sistem, BIOS-ul copiază
informaţii din acestea în locaţii specifice din RAM. Aceste informaţii sunt cunoscute
sub numele de boot record.
-3-
Limbaje de Programare - curs

5. Boot record conţine un program care preia controlul computerului.


6. Boot record încarcă de pe disketă sau hard-disk în RAM fişierul iniţial de sistem
(pentru MS-DOS, acesta este IO.SYS).
7. Fişierul iniţial de sistem încarcă apoi restul sistemului de operare în RAM.
8. Fişierul iniţial de sistem încarcă un fişier de sistem (de exemplu, MSDOS.SYS), care
ştie cum să lucreze cu BIOS-ul.
9. Unul din primele fişiere încărcate este şi fişierul de configurare a sistemului (pentru
MS-DOS acesta este CONFIG.SYS). Informaţiile conţinute în acesta indică ce
fişiere specifice ale sistemului de operare e necesar să fie încărcate (de exemplu,
driverele de dispozitiv specifice).
10.Un alt fişier special ce este încărcat este unul care specifică aplicaţiile sau comenzile
pe care utilizatorul doreşte să fie încărcate şi rulate ca parte a procesului de încărcare
(pentru MS-DOS acesta este AUTOEXEC.BAT, pentru Windows se numeşte
WIN.INI).
11.După ce toate fişierele sistemului de operare au fost încărcate, sistemul de operare
preia controlul computerului, îndeplineşte comenzile iniţiale şi aşteaptă prima
comandă introdusă de utilizator.
Secvenţa de încărcare a sistemului de operare este reprezentată schematic în
figura următoare:

1. programul de încărcare conţinut în BIOS (Bootstrap Loader) caută programul de


încărcare a sistemului de operare (OS Loader) pe unitatea de disk
2. apoi, transferă programul de încărcare în memoria RAM
3. programul de încărcare încarcă restul sistemului de operare in memorie

I.2.4 Interfaţa cu utilizatorul a sistemului de operare

Fiecare sistem de operare conţine o interfaţă cu utilizatorul, înţelegând prin


aceasta una sau mai multe metode de a introduce comenzi. Partea exterioară (Shell) a
sistemului de operare este programul care preia comenzile de la utilizator şi le transferă
către nucleul acestuia (Kernel).
În funcţie de sistemul de operare, interfaţa cu utilizatorul poate fi:
 bazată pe text;
-4-
Limbaje de Programare - curs

 grafică.

I.2.4.1 Interfeţe bazate pe text

În cazul unei interfeţe bazate pe text, utilizatorul tastează comenzi pentru a da


instrucţiuni calculatorului. Un astfel de sistem de operare este MS-DOS (conceput în
1981 de Microsoft).
Linia de comandă MS-DOS conţine un prompter, care informează utilizatorul că
sistemul este pregătit să primească instrucţiuni. Instrucţiunile sunt tastate după
prompter. După fiecare instrucţiune, utilizatorul trebuie să apese tasta “Enter”, pentru a
prelucra instrucţiunea. MS-DOS acceptă şi prelucrează instrucţiunile pe baza unei
biblioteci de instrucţiuni incluse în sistemul de operare. Un exemplu de interfaţă MS-
DOS este prezentat în figura următoare:

Versiuni mai recente de DOS conţin un Shell care permite utilizatorilor


introducerea comenzilor cu ajutorul mouse-ului.
UNIX reprezintă un sistem de operare multiutilizator pentru PC-uri (conceput
iniţial la AT&T Bell), cu o interfaţă, de asemenea, bazată pe DOS. Unele versiuni de
UNIX conţin o interfaţă grafică cu utilizatorul.

I.2.4.2 Interfeţe grafice

Primul sistem care utiliza o interfaţă grafică cu utilizatorul, intitulat Lisa, a fost
realizat de Apple şi costa peste 10,000 USD, nefiind un succes comercial. Apple a
adaptat sistemul de operare al calculatorului Lisa pentru a fi utilizat pe sisteme
MacIntosh, rezultând astfel sistemul de operare Mac-OS, cu o interfaţă grafică simplă.
O interfaţă grafică utilizează mici imagini, numite icons (pictograme) pentru
reprezentarea programelor şi instrucţiunilor. Pentru a da o instrucţiune sistemului de
operare, utilizatorul indică un icon şi efectuează click cu mouse-ul sau efectuează
selecţii din menu-urile aflate în Shell.
În 1985 Microsoft a lansat sistemul Windows, care oferea o interfaţă grafică şi
pentru PC-uri. Acesta nu era un sistem de operare, ci un mediu (un program utilizat
împreună cu un sistem de operare), deoarece funcţionarea sa se baza pe existenţa unui
asemenea sistem. În esenţă, Windows reprezenta un înveliş (Shell) pentru DOS, primind
-5-
Limbaje de Programare - curs

instrucţiuni prin intermediul mouse-ului şi transformându-le în comenzi ce pot fi


acceptate şi executate de DOS.
Windows 95 (lansat în 1995) este prima versiune de Windows care este chiar un
sistem de operare. Funcţiile sistemului de operare executate anterior de DOS au fost
incluse în Windows 95, acest sistem nemainecesitând un sistem de operare separat.
Microsoft deţine şi o versiune multiutilizator a sistemului Windows numită
Windows NT. Suprafaţa de lucru a acestui sistem este prezentată în figura următoare:

I.2.5 Gestionarea proceselor

Sistemele actuale se caracterizează prin activităţi care se desfăşoară în paralel.


Este vorba, fie de un paralelism autentic (de exemplu execuţia unui program de către un
procesor simultan cu derularea unei operaţii de intrare/ieşire printr-un periferic), fie de
un cvasiparalelism (dacă mai multe segmente de programe îşi împart procesorul pentru
intervale scurte de timp). Privită dinspre utilizator, execuţia acestor programe pare să se
desfăşoare în paralel, deşi în realitate nu este o execuţie paralelă, ci în sistem de
partajare a timpului (time sharing).
Pentru a face abstracţie de dependenţa relativ complicată de timp şi de loc,
sistemele de operare moderne folosesc conceptul de proces.
Programele conţin lungi liste de instrucţiuni ce sunt executate de către procesorul
computerului (procesoarele execută milioane de instrucţiuni pe secundă). În cazul
sistemelor de operare moderne, numai o porţiune a unui program este încărcată la un
moment dat, restul programului stă în aşteptare pe hard-disk până când alte porţiuni sunt
apelate, realizându-se astfel o economisire a spaţiului de memorie.
Un proces (process sau task) este o porţiune a unui program aflat în curs de
execuţie. Un program poate consta în mai multe procese. Un proces poate crea alte
procese. Procesorul poate executa o singură instrucţiune la un moment dat. Procesorul
-6-
Limbaje de Programare - curs

unui computer rulează un proces pentru o scurtă perioadă de timp, apoi este comutat
către alt proces şi aşa mai departe. Cum un procesor execută milioane de instrucţiuni pe
secundă, acesta dă senzaţia că rulează mai multe procese simultan.
În timpul existenţei sale, un proces se poate găsi într-una din următoarele trei
stări:
 pregătit pentru execuţie (ready runnable)
 activ (running)
 blocat (blocked)
Procesul poate fi activ atunci când îi este alocat un procesor şi execută programul
său. Poate fi blocat, când continuarea execuţiei depinde de un eveniment, ca de
exemplu de încheierea unei operaţii de intrare/ieşire. Mai poate fi pregătit dacă
evenimentul aşteptat s-a produs şi aşteaptă alocarea procesorului.
Terminal
Activ
Activat de
scheduler Eveniment
exclus

Alt proces activat


de scheduler
Iniţial
Pregătit Blocat
Eveniment inclus

Procesele care se află în starea pregătit sunt ordonate într-o coadă de aşteptare
(process queue). În orice moment pot coexista zeci sau chiar sute de procese
coordonând lucrul utilizatorilor, programele utilizate sau sistemul de operare însuşi.

-7-
Limbaje de Programare - curs

Atribuirea procesorului este executată de modulul programator (scheduler) al


sistemului de operare. Scheduler-ul este partea sistemului de operare care decide
ordinea în care vor fi executate procesele pregătite de a fi executate.
Când procesorul este comutat de la un proces către altul starea acestuia (regiştrii
şi datele asociate) trebuie să fie salvate, deoarece mai târziu procesul va fi reluat şi
continuat ca şi cum nu a fost niciodată întrerupt. Odată ce această stare a fost salvată
este activat următorul proces aflat în aşteptare. Aceasta presupune încărcarea regiştrilor
procesorului şi a memoriei cu toate datele salvate anterior şi repornirea lui de la
instrucţiunea ce urma să fie executată când a fost ultima oară întrerupt. Acţiunea de
comutare de la un proces la altul se numeşte comutare contextuală (context switching).
Această comutare se poate face în două moduri:
a. procesul activ la un moment dat eliberează voluntar procesorul, permiţând altui
proces să devină activ. Procesul întrerupt voluntar va trece la sfârşitul cozii de
aşteptare, iar procesul de la vârful cozii devine activ. Ca urmare, toate celelalte
procese vor înainta cu o poziţie.
b. un ceas în timp real generează întreruperi la intervale regulate de timp (de ex. o
sutime de secundă). De fiecare dată când apare o întrerupere, procesorul este
comutat către un alt proces. În acest caz scheduler-ul atribuie şi o ordine de prioritate
fiecărui proces, fiind astfel posibil ca unele procese să fie executate mai frecvent
decât altele.

I.2.6 Tipuri uzuale de sisteme de operare

-8-
Limbaje de Programare - curs

Sistemele de operare pot fi împărţite în categorii care definesc caracteristicile lor.


Sistemele moderne pot utiliza combinaţii ale celor descrise în continuare.
1. Sisteme de operare cu prelucrare pe loturi (batch processing)
 Primele sisteme de operare apărute;
 Programul era introdus în computer şi apoi executat până la terminare;
 Datele utilizate de program nu puteau fi modificate în timpul execuţiei acestora.
Orice eroare survenită în execuţie presupunea reluare execuţiei de la capăt.
2. Sisteme de operare interactive
 Permit modificarea şi introducerea datelor în timpul execuţiei programelor;
 Se utilizează în sistemele informatice cu baze de date în permanentă schimbare
(sistemele de evidenţă a conturilor bancare, sistemele de rezervare a locurilor la
companiile aviatice).
3. Sisteme de operare multiutilizator (time sharing)
 Permit conectarea simultană, printr-un terminal a mai multor utilizatori;
 Se alocă segmente de timp proceselor lansate de utilizatori.
4. Sisteme de operare multitasking
 Permite execuţia mai multor sisteme simultan, în funcţie de ordinea de priorităţi;
 Procesorul este comutat rapid între procese.
5. Sisteme de operare în timp real (real-time)
 Utilizate la comanda proceselor industriale;
 Monitorizează diferitele intrări care afectează procesele aflate în execuţie şi
răspund adecvat într-o perioadă de timp garantată (de obicei de ordinul
milisecundelor).
6. Sisteme de operare multiprocesor
 Permit utilizarea mai multor procesoare pentru execuţia proceselor.

-9-

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