Sunteți pe pagina 1din 21

1

CALCULATORUL
I SISTEMUL DE OPERARE.
NOIUNI INTRODUCTIVE
1.1 Introducere
n ultimii ani calculatoarele au devenit, indiscutabil, componente
vitale ale societii, fiind prezente n activiti din cele mai diverse n
industrie, economie, educaie, sntate, cercetare; practic n orice domeniu
economic sau social al societii. De asemenea, calculatoarele au produs o
nou revoluie pentru civilizaie, revoluia informaional adus de acestea
ncadrndu-se dup revoluiile din agricultur i din industrie. Contribuind
la creterea puterii intelectuale a omenirii, calculatoarele au afectat i
afecteaz n continuare toate domeniile investigaiei tiinifice, cercetarea
computaional conlucrnd cu cea teoretic i cea experimental n
explorarea de noi frontiere ale cunoaterii n cele mai diverse domenii:
biologie, chimie, astronomie, medicin, etc. Revoluia din domeniul
calculatoarelor evolueaz continuu; aplicaii care pn ieri erau de domeniul
tiinifico-fantasticului sunt astzi aplicaii banale, de la automatele bancare
la microprocesoarele integrate n automobile, de la calculatoarele mobile
ultra-compacte i miniaturizate la Internet i World Wide Web.
Cartea de fa i propune s nfieze aspectele mai ascunse, de
detaliu ale acestei mainrii extraordinare care este calculatorul personal.
Sunt prezentate aici elementele arhitecturale vizibile programatorului
(mulimea de instruciuni a procesorului, numrul de bii utilizai pentru
reprezentarea datelor, mecanisme de intrare/ieire, tehnici de adresare, etc.)
precum i cteva elemente organizatorice (funcionaliti legate de semnale
de control, interfee, tehnologii de memorie). Primul capitol trateaz
aspectele fundamentale, ideile i definiiile de baz legate de componentele
hardware i software ale calculatoarelor.

Elemente de arhitectur a sistemelor de calcul i operare

1.2 Noiuni preliminarii


Calculatorul este un dispozitiv extrem de complex; pentru a putea
nelege mai bine arhitectura sa i modalitatea de funcionare, de regul se
apeleaz la o mprire ierarhic pe componente. Aceste componente
ierarhice pleac de la nivelul cel mai de jos (nivelul cel mai apropiat de
structura hardware-fizic a calculatorului) i continu apropierea de
utilizator prin considerarea elementelor nivelului mai nalt (nivelul apropiat
de componenta software-programe a calculatorului). Componentele unui
astfel de model ierarhic sunt prezentate n figura 1.1.

Fig. 1.1 Niveluri ierarhice n studiul calculatoarelor

Aa cum se observ n acest desen, nivelurile inferioare sunt


constituite de componentele hardware (tranzistori, circuite integrate, pori
logice) ce stau la baza construciei calculatorului. Urmeaz apoi unitile
funcionale ale microprocesorului (unitatea de control ce administreaz
ntreaga funcionare, unitatea aritmetico-logic ce execut operaiile
aritmetice i logice, memoria, magistralele de conexiune etc.) i ne
apropiem de nivelul superior al programelor de aplicaii (cel mai apropiat de
utilizator) prin nivelul microprogramat, nivelul limbajului de asamblare i
nivelul limbajelor de programare de nivel nalt.

Calculatorul i sistemul de operare. Noiuni introductive

Din punct de vedere fizic, un calculator este constituit din patru


componente de baz:
microprocesorul, denumit i UCP (Unitatea Central de
Procesare), este componenta care controleaz modalitatea de
funcionare a calculatorului i execut i operaiile de procesare a
datelor;
memoria principal necesar pentru stocarea datelor;
interfeele de intrare/ieire necesare pentru asigurarea
interaciunii calculatorului cu mediul extern (introducere de
date/oferirea rezultatelor);
componenta de conexiune ntre componente magistrala de sistem
este mecanismul ce ofer modalitatea de comunicare ntre
componentele sistemului.
Aceste componente sunt ilustrate n figura 1.2.

Fig. 1.2 Componentele arhitecturale de baz ale unui calculator

Pentru a putea funciona, un computer are nevoie, pe lng


componentele fizice din care este alctuit, de nite programe special scrise
pentru a putea rezolva n mod automatizat anumite sarcini. Fr existena
unor programe speciale un calculator nu poate fi utilizat, nu se pot introduce
date de la tastatur, nu se pot afia rezultate pe ecranul monitorului i nu se
poate porni un program de aplicaie sau, dac vrei, un joc pe calculator.
Totalitatea resurselor fizice de care dispune calculatorul formeaz

Elemente de arhitectur a sistemelor de calcul i operare

componenta hardware, pe cnd celelalte resurse logice, formate din diverse


programe i rutine formeaz componenta software.
Componenta software cuprinde dou categorii distincte de programe:
programele de aplicaii i programele de sistem, sau, pe scurt, sistemul de
operare. Sistemul de operare este constituit dintr-o serie de rutine software
ce asigur interfaa ntre componenta hardware i programele de aplicaii
(figura 1.3). Toate celelalte componente software sunt guvernate de ctre
sistemul de operare i ruleaz sub ndrumarea acestuia. Accesul la
componentele hardware ale sistemului (calculatorului) se face numai prin
intermediul sistemului de operare. Sistemul de operare are, deci, rolul de a
asigura interfaa ntre hardware i software; din aceast cauz, programarea
aplicaiilor se face innd cont de acest rol primordial al sistemului de
operare. Programatorii de software de aplicaii pot astfel utiliza diverse
rutine ale sistemului de operare pentru a avea un acces mai simplu la
operaiile de intrare/ieire cu partea hardware a sistemului.
PROGRAME
DE
APLICAII

SISTEMUL
DE OPERARE

HARDWARE

Utilizator

Fig. 1.3 Sistemul de operare asigur interfaa ntre hardware i programele de aplicaii

Componentele unui sistem de operare ofer funcionaliti diverse,


cum ar fi asigurarea comunicrii cu dispozitivele periferice (operaiile de
intrare/ieire) sau preluarea de comenzi de la utilizator i execuia diverselor
comenzi (crearea unui fiier sau director, lansarea n execuie a unui
program, accesarea memoriei, adugarea unei noi componente hardware
calculatorului, etc.). Majoritatea acestor sarcini reprezint cerine sine qua
non pentru toate programele de aplicaie.
Deoarece programele de aplicaie acceseaz partea hardware prin
intermediul sistemului de operare, rolul acestuia din urm este, prin urmare,
acela al unui depozit sau biblioteci ce conine astfel de rutine ce asigur
accesul la dispozitivele hardware ale calculatorului. Existena unei astfel de
biblioteci de rutine software pentru acces la componenta hardware asigur
simplificarea programrii la nivelul software-ului de aplicaie, avnd n
vedere c sarcinile legate de operaiile de intrare/ieire nu sunt totdeauna
dintre cele mai simplu de programat.
Din punct de vedere hardware, computerele provenite de la diveri
productori nu sunt compatibile ntre ele 100%. De aceea, un program

Calculatorul i sistemul de operare. Noiuni introductive

software scris pentru un anumit calculator nu va rula pe un calculator


provenit de la un productor ce utilizeaz un alt tip de microprocesor
(denumit i UCP Unitatea Central de Procesare), spre exemplu. Este
cazul i sistemelor de operare: un sistem de operare scris pentru un
calculator de tipul IBM-PC nu va rula pe un calculator SUN-Sparc i viceversa. Deoarece componentele hardware sunt diferite iar sistemul de operare
reprezint interfaa ntre software i hardware, i interfaa trebuie s fie
diferit, drept urmare sistemul de operare trebuie s conin rutine diferite.
Aceste rutine ale sistemului de operare ce comunic direct cu partea
hardware pot fi diferite ns ele constituie o platform de interfa
consistent pentru asigurarea comunicrii cu programele de aplicaii.
Datorit acestei interfee, programatorii de aplicaii pot ignora diferenele
hardware i se pot concentra asupra aplicaiei n sine.
1.3 Principalele componente ale unui sistem de operare
Evoluia din punct de vedere hardware a computerelor a determinat
i o evoluie la nivel software. Din acest punct de vedere, sistemele de
operare moderne au o serie de componente principale (figura 1.4), asigurnd
urmtoarele funcii de baz:
Interfaa cu utilizatorul;
Managementul memoriei;
Managementul fiierelor;
Managementul microprocesorului;
Managementul dispozitivelor periferice.
Acest capitol fiind unul introductiv, vom prezenta n continuare n
linii mari caracteristicile generale ale acestor cinci funciuni de baz oferite
de ctre un sistem de operare modern.
Interfaa cu utilizatorul. Componenta sistemului de operare ce
asigur interfaa cu utilizatorul (denumit n marea majoritate a cazurilor
componenta shell), ofer modalitile prin care utilizatorul i programele de
aplicaii pot comunica cu sistemul de operare i pot efectua cereri de servicii
ctre acesta. Interfeele simple la linia de comand din MS-DOS i UNIX
sunt exemplele clasice, n timp ce n ultimii ani s-au impus interfeele
grafice de tip GUI (Graphical User Interface) ale sistemelor de operare
Windows, Macinstosh sau interfeele (de asemenea grafice) de tip
X-Window (KDE, Gnome, etc.) ale diverselor variante de Linux sau UNIX.
Prin intermediul interfeelor grafice se pot selecta simboluri grafice
(icon-uri) cu ajutorul mouse-ului, se pot selecta opiuni din meniurile
ferestrelor grafice, se pot lansa n execuie programe etc.

Elemente de arhitectur a sistemelor de calcul i operare

Managementul fiierelor reprezint capacitatea unui sistem de


operare (ntlnit de regul sub numele de sistem de fiiere) de a permite
utilizatorilor i programelor de aplicaie de a manipula (crea, modifica,
redenumi, modifica, terge, etc.) fiiere i directoare.

Interfaa cu
utilizatorul
(SHELL)

Managementul
fiierelor

Managementul
procesorului

Managementul
dispozitivelor
periferice

Managementul
memoriei

Fig. 1.4 Principalele funciuni ale unui sistem de operare

Managementul microprocesorului asigur o bun administrare a


modalitii de utilizare a microprocesorului i a timpului alocat de acesta
diverselor programe n execuie. Noiunea de baz cnd este vorba de timpul
alocat de procesor diverselor instane ale programelor aflate n execuie
(cunoscute sub denumirea de procese) este cea de ciclu de ceas.
Managementul dispozitivelor periferice se refer la responsabilitatea sistemului de operare de a administra comunicaiile cu dispozitivele
periferice ale calculatorului, de exemplu cu: tastatura, mouse-ul, ecranul,
imprimanta, scanner-ul, modem-ul, unitatea de CD-ROM, etc.
n fine, ultima funcie de baz, managementul memoriei este legat
de administrarea resurselor de memorie principal a sistemului. Se cunoate
faptul c pentru a putea fi lansat n execuie, un program are nevoie de
memorie. Prin funcia de management al memoriei, sistemul de operare
asigur n timpul funcionrii calculatorului alocarea spaiului necesar
aplicaiilor s ruleze, asigurnd ca spaiile de memorie alocate aplicaiilor s
nu interfereaz ntre ele sau s nu se suprapun peste spaiul de memorie
alocat nsui sistemului de operare.
Orice sistem de operare modern, fie c este vorba despre UNIX,
Linux sau Windows, ofer toate aceste funcionaliti. Chiar dac acestea au
fost prezentate separat, nu nseamn c ele nu interacioneaz ntre ele; din

Calculatorul i sistemul de operare. Noiuni introductive

contr, toate aceste componente ale unui sistem de operare conlucreaz


mpreun pentru buna funcionare a sistemului de calcul. Spre exemplu, s
considerm cazul n care dorim s deschidem un fiier pentru a-l tipri la
imprimant. Ce operaii rezolv sistemul de operare pentru acest lucru? n
primul rnd, sistemul de fiiere preia numele fiierului i determin locaia
precis a acestuia n cadrul sistemului de fiiere de pe hard-disk. n
continuare, rutinele de management al dispozitivelor periferice folosesc
aceast locaie pentru a accesa hard-disk-ul i a citi fiierul. n acest timp,
managementul memoriei se ocup cu asigurarea spaiului de memorie
necesar pentru a stoca temporar fiierul, managementul procesorului ofer
suport pentru a ghida n continuare procesorul pentru a iniia rutina de
management a dispozitivelor periferice pentru a accesa imprimanta i a face
n final tiprirea. Toat aceast succesiune complicat de operaii se petrece
de fiecare dat cnd deschidem un fiier pentru editare sau pentru tiprire,
ne pregtim s trimitem un e-mail sau un fax, totul ntmplndu-se
transparent fa de utilizator.
1.4 Resursele fizice ale unui sistem de calcul
1.4.1 Memoria
Memoria unui sistem de calcul se poate mpri n dou clase mari
de memorie: memoria principal sau intern (pe scurt, memorie) i memoria
secundar sau extern (reprezentat de diferite medii de stocare externe,
cum ar fi dischetele, hard-disk-ul, CD-ROM-ul, etc.). Pentru a putea fi
executat, un program trebuie mai nti ncrcat n memoria principal. Un
sistem de calcul nu poate executa un program direct de pe un suport de
memorie extern (din memoria extern) i nici nu poate manipula date
stocate n memoria extern dect dac acestea au fost ncrcate n prealabil
n memoria intern.
Memoria principal conine ntotdeauna programul curent ce se
execut i datele curente ce sunt procesate. n timp ce memoria intern este
o memorie volatil, al crui coninut se pierde o dat cu nchiderea
calculatorului, memoria extern reprezint modalitatea de stocare a datelor
pe termen lung, fiind o memorie nevolatil. Memoria intern este de regul
identificat cu aa-numita memorie RAM (Random Access Memory), o
memorie care poate fi att citit ct i scris.
Operaia prin care o valoare este adus (citit) de la o anumit adres
din memorie poart numele de citire din memorie, pe cnd operaia de
stocare a unei valori la o adres de memorie poart numele de scriere n

Elemente de arhitectur a sistemelor de calcul i operare

memorie. Operaia de citire este o operaie nedistructiv, n sensul n care


valoarea citit rmne stocat n memorie, pe cnd operaia de scriere este o
operaie distructiv, n sensul c valoarea anterioar din memorie se pierde,
fiind nlocuit cu noua valoare scris n memorie. Coninutul memoriei
RAM poate fi att citit ct i scris, deci modificat cu uurin. Programele
utilizeaz memoria RAM pentru a fi executate i a procesa date.
Un alt tip de memorie este memoria ROM (Read Only Memory) care
poate fi citit, nu i scris. Acest tip de memorie este folosit pentru a stoca
date legate de configuraia hardware a calculatorului, aa-numitul BIOS
(Basic Input Output System), cipul responsabil de stocarea programului
bootstrap, ce reprezint programul iniial de configurare a calculatorului.
O alt categorie de memorie intern este memoria cache (pronunat
ca n englezescul cash). Pe scurt, memoria cache este o memorie
intermediar utilizat pentru stocarea valorilor din memoria RAM nainte de
a fi prelucrate de microprocesor. Memoria cache este o memorie foarte
rapid i este utilizat pentru a mri viteza de procesare a datelor n drumul
lor din memoria RAM spre microprocesor.
n principal, mecanismul de funcionare a memoriei cache este
urmtorul: un program n execuia este stocat n memoria RAM, iar
instruciunile i datele programului ce vor fi executate ntr-un timp foarte
apropiat sunt aduse nti n memoria ultrarapid de tip cache. De aici, datele
i instruciunile sunt transferate ctre microprocesor; n acest mod,
microprocesorul va utiliza direct memoria cache care este mult mai rapid
dect memoria RAM i, drept urmare, viteza de procesare crete.
Singurul tip de memorie mai rapid dect memoria cache este
memoria intern a procesorului, format din regitrii microprocesorului.
Mai multe detalii despre arhitectura intern a microprocesorului vom analiza
n capitolul consacrat microprocesorului. Prezentm n figura 1.5 o ierarhie
sub form piramidal a memoriei, n care baza piramidei este alctuit din
memoria secundar de tip band magnetic iar vrful este format de regitrii
microprocesorului, cu cea mai sczut capacitate de stocare dar cel mai
rapid tip de memorie i, totodat, cel mai mare pre. n partea din dreapta a
figurii sunt prezentate dimensiunile standard ale celor ase tipuri de
memorie din ierarhie. n general exist dou reguli valabile legate de
ierarhia de memorie a unui sistem de calcul:
Memoria rapid este scump;
Memoria ieftin este mai puin rapid;
n consecin, se ncearc minimizarea raportului pre/ performan
avnd n vedere anumite costuri.

Calculatorul i sistemul de operare. Noiuni introductive

Regitrii UCP
2,5 ns

256 B

Memoria cache de nivel 1


5 ns

16 KB

Memoria cache de nivel 2


15 ns

256 KB

Memoria principal (RAM)


60 ns

128 MB

Hard-disk
20 ms

20 GB

Band magnetic
10 min.

10 TB

Fig. 1.5 O ierarhie a memoriei

Fiecare tip de memorie din ierarhie este administrat de ctre o


unitate de control: regitrii microprocesorului sunt administrai de ctre aanumita unitate de control a UCP, memoria cache de nivel 1 (cache L1)
este administrat de controller-ul primar de memorie cache iar memoria
cache de nivel 2 (cache L2) este guvernat de ctre controller-ul secundar de
memorie cache. Memoria principal RAM este administrat de ctre
unitatea de management a memoriei (MMU Memory Management Unit)
iar hard-disk-ul i banda magnetic de ctre utilizator. De asemenea, la
fiecare din cele ase nivele din ierarhie datele sunt grupate n uniti de date
diferite din punct de vedere al mrimii (ca numr de octei - bytes), astfel:
La nivelul regitrilor UCP unitatea de date se numete cuvnt
(word) i poate fi reprezentat pe 2,4 sau 8 octei;
La nivelul memoriei cache L1 i L2 datele sunt structurate n linii
de memorie 32 de octei;
La nivelul memoriei RAM avem de-a face cu pagini de memorie de
4 KB;
La nivelul hard-disk-ului i al unitii de band fiierele se msoar
de regul n MB.

Elemente de arhitectur a sistemelor de calcul i operare

Adresarea memoriei
Capacitatea de stocare a memoriei este reprezentat n mod uzual
prin MB (Megabytes sau Megaoctei), unde 1 MB=1.024 KB=1.048.576 B.
Observaie: De regul, capacitatea de stocare a memoriei se msoar
n multipli de bytes (notai cu litera mare B), pe cnd n comunicaii, viteza
de transfer a datelor (ntr-o reea de calculatoare, spre exemplu), denumit i
lime de band, se msoar n multipli de bii (notai cu litera mic b).
Astfel, notaia 1 KB reprezint un kilobyte, pe cnd notaia 1 Kb reprezint
un kilobit.
Octeii de memorie (sau grupurile de octei) au atribuite o serie de
adrese de memorie pentru a putea fi accesai. De regul, octeii sau cuvintele
(grupri de octei) sunt numerotai secvenial: 0,1,2, n acest mod,
procesorul poate avea acces la o anumit zon de memorie specificnd
adresa de memorie a acelei zone. Dac, spre exemplu, microprocesorul
trebuie s utilizeze datele stocate n memorie la adresa 1000, nu are de fcut
dect s acceseze memoria la adresa 1000. n funcie de tipul de memorie,
octetul sau gruparea de octei (reunii sub denumirea de cuvnt - word)
reprezint unitatea fundamental adresabil de memorie. Astfel, datele
prelucrate de ctre microprocesor la un moment dat pot fi sub form de
octei (bytes) sau sub form de cuvinte (words).
1.4.2 Microprocesorul
Microprocesorul reprezint componenta principal a unui calculator,
fiind considerat, pe bun dreptate, creierul calculatorului. ntlnit i sub
denumirea de UCP (Unitatea Central de Procesare), microprocesorul are
nevoie totui de un program pentru a putea controla i procesa datele, de
aceea coeficientul de inteligen al su depinde ntr-o mare msur i de
software. Datele stocate n memorie sunt prelucrate de ctre microprocesor
prin intermediul unui program stocat n memorie. n esen, un program
reprezint o secven de instruciuni (de genul: adunare, scdere, nmulire,
comparare, etc.) care guverneaz modalitatea de prelucrare a datelor de ctre
microprocesor. Fiecare instruciune are un cod de operaiei i poate avea
unul sau mai muli operanzi, sau nici unul. Codul operaiei specific
operaia ce va fi executat, n timp ce operanzii identific datele din
memorie asupra cror se va aplica acea operaie (fie c este vorba despre o
adunare, scdere, nmulire, comparare, etc.). Mai multe detalii despre
componentele i funcionarea microprocesorului vom prezenta n capitolul
rezervat acestuia.

Calculatorul i sistemul de operare. Noiuni introductive

1.4.3 Dispozitive de stocare (memoria secundar)


Datorit faptului c memoria RAM este foarte scump i este, dup
cum am mai spus, o memorie volatil, pentru stocarea pentru mai mult timp
(nu numai pe parcursul funcionrii calculatorului) a datelor s-a cutat
utilizarea unui alt tip de memorie. Acest tip de memorie este memoria
extern (sau memoria secundar), care este o memorie relativ rapid, fiabil,
ieftin, de mare capacitate i, pe deasupra, ne-volatil. Am vzut mai nainte
c un calculator nu poate executa un program dect dac acesta este ncrcat
n memoria principal, din acest punct de vedere, memoria principal
reprezint memoria utilizat pentru stocarea programului ce se execut i a
datelor ce sunt prelucrate iar memoria secundar reprezint memoria
folosit pentru stocarea pe termen lung a datelor.
1.4.4 Dispozitive de intrare/ieire
Dispozitivele de intrare/ieire (sau dispozitivele periferice) asigur
modalitatea prin care utilizatorul are acces la calculator. Dispozitivul de
intrare cel mai comun ntlnit este, desigur, tastatura. Pe msur ce
caracterele sunt tastate cu ajutorul tastelor de pe tastatur, acestea sunt
stocate n memorie i apoi copiate din memorie ctre dispozitivul de baz de
ieire, care este monitorul. n linii mari, ecranul monitorului reprezint
fereastra prin care utilizatorul poate vizualiza respectivul coninut al
memoriei. Imaginea care apare pe ecranul monitorului este, evident, o
imagine temporar; n momentul ntreruperii alimentrii cu curent a
monitorului aceast imagine dispare; putem ns direciona aceast imagine
ctre o imprimant pentru a obine o imagine permanent. Imprimantele cu
jet de cerneal sau imprimantele laser reprezint principalele tipuri de
imprimante folosite n practic n prezent.
Alte tipuri de dispozitive periferice de intrare/ieire sunt reprezentate
de dispozitivele magnetice sau de dispozitivele optice. Un exemplu de
dispozitiv magnetic l reprezint cardurile cu band magnetic emise de
bnci. Banda magnetic a cardului stocheaz informaii ca: numrul de cont
al titularului, limita de debit/credit i data de expirare a cardului, acest tip de
card fiind citit ntr-o manier asemntoare cu aceea a citirii unei benzi
magnetice audio. Printre dispozitivele periferice optice ntlnite n mod
frecvent sunt scannerele de uz general, prin intermediul crora imagini de pe
hrtie sunt preluate i convertite n format digital ce poate fi prelucrat cu
ajutorul calculatorului. Un tip special de scannere l reprezint scannerele

Elemente de arhitectur a sistemelor de calcul i operare

(cititoarele) pentru coduri de bare ataate la casele de marcat din majoritatea


supermarket-urilor.
Dispozitive de interfa
Datele sunt stocate n calculator sub forma unor iruri de bii; n
acest sens sunt utilizate diverse codificri. La nivelul computerului, aceste
reprezentri sunt unice; spre exemplu, dac n reprezentarea intern a
calculatorului caracterul Z are forma: 01011010, atunci acest ir de bii este
folosit n mod unic pentru a reprezenta caracterul Z.
Aceast regul nu este ns valabil pentru dispozitivele periferice
sau pentru memoria secundar. n cazul unei tastaturi, fiecare tast
genereaz un caracter. n cazul unei imprimante, caracterele sunt
reprezentate sub form unor matrice de puncte. Un dispozitiv optic citete
informaia prin intermediul intensitii luminoase, n timp ce un dispozitiv
magnetic nregistreaz i citete poriuni magnetizate. Fiecare echipament
periferic folosete o modalitate proprie de reprezentare a datelor iar aceast
reprezentare poate s coincid sau nu cu reprezentarea intern a datelor n
calculator. Dac aceste reprezentri sunt diferite este necesar un dispozitiv
de translatare dintr-o reprezentare n alta. Aici intervine rolul dispozitivului
de interfa, numit i placa de interfa.
Considernd cazul tastaturii, atunci cnd o tast este apsat, se
transmite un semnal electronic ctre interfaa tastaturii. Ca rspuns la
semnalul electronic primit, interfaa tastaturii genereaz codul ce reprezint
caracterul stocat n interiorul calculatorului, transfernd acest cod n
memoria calculatorului. n cazul unei imprimante, irurile de bii transmise
dinspre calculator spre imprimant sunt preluate de interfaa imprimantei,
care translateaz aceste iruri de bii n reprezentarea recunoscut de ctre
imprimant pentru a se putea face tiprirea. Cele dou dispozitive periferice
considerate aici, tastatura i imprimanta, reprezint dou dispozitive diferite
din punct de vedere al reprezentrii datelor; datorit existenei dispozitivelor
de interfa, ele pot fi conectate la acelai calculator. La intrare, interfaa
translateaz semnalele externe ntr-un format ce este recunoscut de ctre
calculator. n cazul semnalelor de ieire, acestea sunt convertite din formatul
intern al calculatorului n formatul propriu al dispozitivului de ieire
respectiv.
i n cazul dispozitivelor de memorie secundar legtura dintre
calculator i acestea se face prin intermediul interfeelor. Interfaa
controleaz din punct de vedere fizic dispozitivul de disc, acceptnd
comenzi de citire, scriere, cutare din partea microprocesorului. Atribuirea
unei interfee fiecrui echipament conectat la un calculator este un lucru
practic n cazul calculatoarelor personale.

Calculatorul i sistemul de operare. Noiuni introductive

Pentru calculatoare ce pot avea sute sau mii de echipamente


periferice (cazul computerelor mainframe) conectate, modalitatea de
comunicare dintre calculator i dispozitivele periferice se schimb: sunt
utilizate canale i uniti de control I/O specifice. n acest caz, fiecare
dispozitiv fizic are propria unitate de control iar canalul asigur comunicaia
cu calculatorul, n timp ce unitatea de control comunic cu echipamentul
extern n limbajul acestuia din urm. Canalul i unitile de control
acioneaz mpreun pentru a realiza operaia de translatare n ambele
sensuri.
1.5 Modalitatea general de funcionare a unui calculator
Pentru a putea analiza att structura ct i modalitatea de funcionare
ale unui computer digital, trebuie s vedem care sunt etapele necesare unui
program pentru a ajunge s fie executat n memoria calculatorului. Vom
discuta n continuare despre asambloare, compilatoare, editoare de legturi
i interpretoare.
Reamintim cteva date importante din istoria computerelor:
Blaise Pascal 1642 inventeaz primul calculator mecanic;
Charles Babbage 1830 a construit dou maini (funcionau cu
aburi!) de calcul: "Difference Engine" i "Analytical Engine";
Fundamentele structurale ale generaiei actuale de computere
digitale se bazeaz pe arhitectura elaborat de John von Neumann n anii
1940 (Figura 1.6).
Date
de intrare
(INPUT)

PROCESARE

Date
de ieire
(OUTPUT)

Fig. 1.6 Modelul procesrii datelor al lui John von Neumann

Ideea original a lui von Neumann a fost aceea a unui program


executabil care s controleze activitatea unei maini de uz-general. n acest
caz programul este o list de instruciuni folosite ntr-un anumit scop iar
computerele folosesc memoria intern pentru a stoca att programe ct i
date.
Vom vedea c pentru a face distincie ntre programe i date (n final
acestea se rezum la iruri de bii) trebuie ca acestea s fie stocate n
memorie n regiuni specifice diferite.

Elemente de arhitectur a sistemelor de calcul i operare

Activitatea complex a unui computer este posibil prin strns


interaciune ntre hardware i software. Software-ul este stocat n memorie
iar unitatea central de procesare (UCP - procesorul) reprezint partea
hardware ce execut practic instruciunile unui program. Este interesant de
remarcat faptul c ideea de baz a lui von Neumann a rmas neschimbat de
peste 50 de ani: un computer conine un program modificabil aflat n
memoria unificat i guverneaz activitile sale operaionale.
O mic modificare a fost totui adus acestui concept de baz: aa
numita "ARHITECTUR HARVARD", care separ datele de programe
i necesit memorii distincte pentru acestea, ct i magistrale de acces
diferite. Scopul acestei separri este acela de a crete ratele de transfer i de
a mbunti (crete) cantitatea de date procesate n unitatea de timp.
1.6 Software
Un program reprezint o serie de instruciuni ce coordoneaz
activitatea unui calculator ntr-un ir de etape. Fiecare instruciune spune
calculatorului s execute una dintre operaiile de baz: adunare, scdere,
nmulire, mprire, comparaie, citire, scriere sau copiere. Pentru a realiza
acest lucru, procesorul aduce o instruciune din memorie pe care o execut
n timpul unui ciclu main. De regul, o instruciune conine un cod al
operaiei ce specific funcia pe care trebuie s o ndeplineasc i o serie de
operanzi care identific locaiile de memorie sau regitrii de memorie ce
conin datele ce vor fi manipulate. Fiind dat instruciunea: ADD 5,6,
aceasta poate spune unui calculator s adune coninutul regitrilor 5 i 6. n
acest caz, codul operaiei este ADD.
De regul, mulimea de instruciuni pe care le nelege un procesor
este limitat. Pentru a aduna dou numere, de fapt sunt utilizate n mod
normal nu mai puin de patru instruciuni, deoarece valorile numerelor
trebuie aduse din memorie i ncrcate n regitri, apoi valorile din regitri
sunt adunate i rspunsul este stocat. n acest caz, cele patru instruciuni
sunt: LOAD, LOAD, ADD i STORE.
Un calculator ruleaz sub controlul unui program stocat n memorie
sub form de bii. Din aceast cauz, pentru a fi executat, programul trebuie
s existe sub form de bii (form binar). La nceputurile programrii
primelor calculatoare, programatorii scriau programele chiar sub forma unor
iruri de bii; lucru deosebit de dificil. Apariia limbajelor de programare, a
asambloarelor, compilatoarelor i interpretoarelor a schimbat, din fericire,
acest mod de lucru al programatorilor.

Calculatorul i sistemul de operare. Noiuni introductive

Noiuni de adresare a memoriei


Memoria unui calculator poate fi accesat dac se cunoate o adres
de memorie. n acest sens, octeii sunt numerotai secvenial: 0,1,2,3, etc.
Componentele hardware lucreaz cu aceste adrese de memorie, cunoscute
sub numele de adrese absolute. Programele software folosesc ns alt tip de
adresare, adresarea relativ. O adres relativ reprezint o adres de
memorie exprimat relativ la o locaie de baz. De exemplu, o rutin a unui
program poate fi scris astfel nct primul octet al su se afl la adresa 0
(numit i punct de intrare) iar celelalte adrese sunt exprimate ca adrese de
deplasament (offset) relativ la aceast adres. Atunci cnd rutina de program
este ncrcat n memorie, adresa absolut de nceput este stocat ntr-un
registru, stabilindu-se o adres de baz pentru rutina program.
Adresarea relativ are dou scopuri: n primul rnd, permite unei
rutine s fie relocalizat n memorie (s poat fi ncrcat ntr-o locaie
diferit de memorie de fiecare dat cnd ruleaz). Deoarece fiecare locaie a
rutinei este exprimat relativ la punctul de intrare, iar acesta este stocat
ntr-un registru de baz, totdeauna este posibil s se calculeze adresa
absolut prin adunarea adresei de baz cu adresa de deplasament. n al
doilea rnd, deoarece doar adresa de deplasament trebuie stocat n
instruciune, sunt necesari mai puini bii pentru a stoca fiecare adres, acest
lucru conducnd la existena unor instruciuni de mrime mai mic.
1.7 Limbaje de nivel nalt i de nivel jos. Instruciuni
Microprocesoarele au o mulime fix, restrns, de instruciuni
denumit mulimea de instruciuni main (sau cod-main). Cu ajutorul
acestor instruciuni microprocesoarele pot fi programate s execute sarcinile
pe care le dorim. Fiecare productor de cipuri (procesoare), fie c este vorba
de Intel, IBM, Sun sau DEC proiecteaz i produce microprocesoare i
computere ce posed un limbaj propriu nativ propria mulime de
instruciuni main. Acest limbaj conine, de regul, 100-200 de instruciuni
diferite. Nu exist n acest caz un standard universal recunoscut cum ar fi
codurile ASCII sau UNICODE, spre exemplu.
n afara acestor limbaje main ce posed pn la cteva sute de
instruciuni, s-au dezvoltat aa numitele limbaje de nivel nalt (HLL High
Level Language). De aceea, limbajele main sunt cunoscute i sub
titulatura de limbaje de nivel jos (LLL Low Level Language). Limbajele
de nivel nalt sunt preferate de regul de ctre programatori, deoarece
acestea ofer un set de instruciuni i concepte apropiate de limbajul natural.
Exemple: BASIC, Pascal, C, C++, Java. Instruciunile unui astfel de limbaj
de nivel nalt trebuie ns translatate n codul main de nivel jos pentru ca

Elemente de arhitectur a sistemelor de calcul i operare

microprocesorul s le neleag i s le ruleze. Aceast translatare


expandeaz o instruciune HLL n 3-10 instruciuni LLL.
Exemplu:
HLL (C)

i=j+k;

ASM

MOV eax,[12011234]
ADD eax,[12011238]
MOV [1201123C], eax

Cod binar main

0010 0000 0011 1001


0001 0010 0000 0001
0001 0010 0011 0100
1101 0000 1011 1001
0001 0010 0000 0001
0001 0010 0011 1000
0010 0011 1100 0000
0001 0010 0000 0001
0001 0010 0011 1100

n primele stadii de dezvoltare ale computerelor problema de baz


era cum s fie scris un program i apoi cum s fie introdus n memoria
computerului. Iniial, programele erau scrise de mn n binar i introduse
(tot manual!) n memorie.
Instruciunile main pot fi grupate n patru mari categorii. Ele pot fi
instruciuni pentru:
Transferul i manipularea datelor;
Operaii de intrare/ieire;
Transferul controlului programului;
Controlul mainii (termin procesarea, reseteaz maina etc.).
1.8 Compilatoare i asambloare
Compilatoarele translateaz instruciunile HLL n binar cod - main
pentru a fi direct executate de ctre computer. Ele au devenit componente de
baz ntr-un sistem de calcul, reflectnd, de regul, eficiena cu care
resursele harware sunt exploatate de ctre programatori. nainte de apariia
limbajelor de nivel nalt i a compilatoarelor, programatorii foloseau
limbajul de asamblare (ASM) i asambloarele. Acest lucru avea, de
asemenea, avantajul de a nu scrie programe direct n binar. Limbajul de
asamblare posed instruciuni cod-main ce poart denumirea de

Calculatorul i sistemul de operare. Noiuni introductive

mnemonice (provin de la cuvintele n englez ce specific aciunea lor)


precum ADD, MOV, SUB sau JMP.
Programul apare sub forma unei liste de astfel de mnemonice ce pot
fi convertite uor n limbajul de cod binar. Programele ce fac aceast
translatare se numesc asambloare. Exemple de limbaje de asamblare sunt:
MASM (Microsoft Assembler) i TASM (Turbo Assembler dezvoltat de
firma Borland).
Translatarea unui program HLL se poate face fie prin intermediul
unui compilator, fie prin intermediul unui interpretor. Limbajele BASIC i
Java au pornit la nceput folosind interpretoare, dar acum exist i
compilatoare pentru ele.
Pentru a fi executat de ctre microprocesor, un program trebuie s
parcurg urmtoarele etape (figura 1.7):
Editare (EDIT)
Compilare (COMPILE)
Editare de legturi (LINK)
ncrcare n memorie (LOAD)

Editare
(EDIT)

Fiier
surs

Compilare
(COMPILE)

Fiier
obiect
(binar)

Editare
de legturi
(LINK)

Fiier
executabil

ncrcare
n memorie
(LOAD)

Ruleaz

Fig. 1.7 Schema general EDIT-COMPILE-LINK-LOAD

1.9 Editarea de legturi


Dimensiunile mari ale programelor de astzi a condus la mprirea
acestora n mai multe pri, denumite module. Pentru obinerea unui
program executabil, fiecare modul trebuie proiectat, scris i compilat iar
apoi toate componentele rezultate trebuie combinate mpreun de un editor
de legturi (linker sau link editor). Acest proces nu implic doar punerea
mpreun a componentelor, ci presupune rezolvarea referinelor externe.
Atunci cnd un program este partiionat n module sunt frecvente cazurile n
care codul dintr-un modul trebuie s fac referire la date sau subrutine
dintr-un alt modul pereche. Compilatoarele translateaz un singur modul la
un moment dat. Atunci cnd un compilator ncearc s determine
echivalentul numeric al acestor referine simbolice, va descoperi c nu
exist valori valide n cadrul modului curent. Aceste simboluri nerezolvate
sunt denumite referine externe i rmn simbolice (fr o valoare
numeric) pn n momentul n care editorul de legturi rezolv aceste
referine.

Elemente de arhitectur a sistemelor de calcul i operare

1.10 Interpretoare
Interpretoarele ofer o alternativ pentru a rula programe scrise
ntr-un limbaj nalt de programare. n loc de a translata instruciunile de
nivel nalt n cod main i de a crea un program executabil, interpretorul
citete instruciunile de nivel nalt una cte una i le execut folosind o
bibliotec proprie de rutine. n acest mod, codul executabil nu este generat
din codul surs ci este coninut n cadrul interpretorului.
Rutine
de comenzi

Editare

Fiier
surs

Analiz
Decodific,
selecteaz
i execut
Erori

Fig. 1.8 Modul de lucru al unui interpretor

Interpretorul "vede" codul surs HLL ca date de intrare care trebuie


analizate i apoi trebuie procesate conform semnificaiei lor. Avantajele
folosirii unui interpretor sunt: pornirea rapid i aparenta lips a
complexitii legate de compilare i editare de legturi. Dezavantajul este c
opereaz foarte lent; programele compilate au fost ntotdeauna superioare
programelor interpretate.
Este ceva obinuit ca interpretoarele s converteasc instruciunile
de intrare ntr-o form intermediar alctuit din anumite simboluri, nainte
de a se lua o decizie asupra aciunilor ce vor fi executate (figura 1.8).
Simbolurile generate sunt apoi trecute unui decodificator care va selecta
rutina corespunztoare ce va fi executat. Uneori interpretorul este vzut ca
o "main virtual" deoarece se comport ntr-un fel ca o component
hardware: citete instruciuni pe rnd i se supune lor. Interpretoarele
apropie nivelul execuiei instruciunilor de nivelul programului conceput n
limbajul de nivel nalt. Limbajul de programare Java posed o modalitate
interesant de compilare i interpretare ilustrat n figura 1.9.

Calculatorul i sistemul de operare. Noiuni introductive

1.11 Monoprocesare i multiprocesare. Definiii


n continuare prezentm cteva definiii legate de mono-procesare,
multi-procesare, execuie paralel, procese i fire de execuie, noiuni
necesare pentru nelegerea cunotinelor prezentate n continuare.
Calculator monoprocesor
Prin definiie, un calculator dotat cu o singur unitate central de
procesare (microprocesor) se numete calculator mono-procesor.
Calculator multiprocesor
Un calculator multiprocesor este un calculator ce conine dou sau
mai multe UCP.
Task
Un task reprezint o mulime de instruciuni executate de ctre un
procesor. Din acest punct de vedere, definiia este echivalent cu aceea de
aplicaie sau program.

Editare

Fiier
surs
Java

Compilator
Java

Java
Byte
codes

Interpretor
Java

Applet Java

Fiier
HTML

Browser
Web

Fig. 1.9 Compilarea i interpretarea Java

Sistem de operare monotasking


Un sistem de operare este un sistem monotasking dac poate executa
o singur aplicaie (sau task) ntr-un anumit moment. Sistemul de operare
MS-DOS este un exemplu de sistem de operare monotasking. Sub sistemul
de operare MS-DOS un program poate fi executat prin introducerea numelui
su la linia de comand. Pn cnd programul curent nu se termin, nu se
poate lansa n execuie alt program.

Elemente de arhitectur a sistemelor de calcul i operare

Sistem de operare multitasking


Un sistem de operare multitasking poate executa mai multe aplicaii
(task-uri) n acelai timp. Acest lucru este posibil prin execuia alternativ a
unor segmente din cele dou (sau mai multe) task-uri. mprirea task-urilor
n segmente i execuia alternativ a acestor segmente poart denumirea de
time-slicing. Exist dou tipuri de sisteme de operare multitasking:
cooperative i preemptive.
Un sistem de operare cooperativ se bazeaz pe capacitatea
aplicaiilor ce se execut pentru implementarea multitasking-ului. Aplicaia
respectiv trebuie s fac un apel (de sistem) ctre sistemul de operare,
ntrerupndu-i execuia i permind altei aplicaii s ruleze. Dac aplicaia
nu face acest apel, va prelua controlul complet asupra procesorului, fcnd
imposibil execuia altui program. Un exemplu de sistem de operare
multitasking cooperativ este Windows 3.1.
Un sistem de operare preemptiv nu are nevoie ca aplicaiile s emit
apeluri de sistem pentru a permite execuia i a altor programe. Modalitatea
de control a sistemului de operare este alta: fiecrei aplicaii i se aloc un
timp pentru a rula; n momentul n care acest timp a expirat, aplicaia este
automat ntrerupt i se permite altei aplicaii s utilizeze capacitatea de
calcul a microprocesorului. Majoritatea sistemelor de operare de astzi sunt
sisteme multitasking preemptive (UNIX, Linux, toate variantele de
Windows dup Windows NT inclusiv).
Execuie n paralel
Execuia n paralel (sau paralel) reprezint execuia simultan a
dou sau mai multe task-uri pe un calculator multiprocesor.
Proces
Un proces poate fi definit ca o instan a unui program aflat n
execuie. Fiecare proces posed o mulime de instruciuni denumit
segment de text ce definete modalitatea de funcionare a procesului i
segmentul de memorie ce este folosit pentru execuia acestuia. Segmentul de
text conine o instruciune specific prin care se specific unde va ncepe s
se execute procesul. Memoria utilizat de ctre un proces este accesibil
doar acelui proces. Oricare alt proces are interzis accesul n acest spaiu de
memorie.
Thread
Un thread (fir de execuie) reprezint un flux de execuie n cadrul
unui proces; astfel, un singur proces poate conine mai multe fire de
execuie. Sistemul de operare asigur controlul acestor fire de execuie i
aloc timpi de execuie (de ctre microprocesor) pentru ca acestea s se
execute.
Multithreading
Operaiunea de multithreading este echivalent cu multitasking-ul la
nivelul unui singur proces. Acest termen descrie posibilitatea ca o aplicaie

Calculatorul i sistemul de operare. Noiuni introductive

ce se execut pe un calculator s aib mai multe fire de execuie. Un proces


ce este mprit n mai multe fire de execuie are capacitatea de a executa
mai multe seturi de instruciuni n mod concurent. Diferena major ntre
execuia mai multor fire de execuie n cazul unui proces i mai multe
procese ce se execut pe un sistem este aceea c firele de execuie partajeaz
acelai spaiu de memorie n cadrul aceluiai proces, pe cnd procesele
separate au spaii de memorie distincte.
Multiprocesarea
Multiprocesarea poate avea mai multe definiii n funcie de
contextul de referin. Avnd n vedere definiia unui proces, o definiie
logic a multi-procesrii este aceea a capacitii unui calculator de a executa
mai multe procese simultan. Din aceast perspectiv, definiia coincide deci
cu definiia multitasking-ului.
Din punct de vedere al capacitii fizice a unui calculator de a
executa mai multe instruciuni n aceeai perioad de timp, nu ne putem
referi dect la calculatoare multiprocesor. n acest caz, definiia
multiprocesrii coincide cu definiia execuiei n paralel.
Exist i o a treia semnificaie a multiprocesrii, i anume cnd se
privete din perspectiva unei anumite aplicaii software. Dac o aplicaie
suport multiprocesarea, atunci pot fi executate mai multe instane ale acelei
aplicaii n mod concurent.
1.12 Rezumat
Un calculator reprezint un dispozitiv complex, a crui cunoatere i
nelegere a principiilor de funcionare implic modularizarea studiului pe
mai multe nivele structurale. Calculatorul reprezint o conclucrare ntre
componentele fizice (hardware) i programe (componenta software).
Sistemul de operare asigur interfaa ntre componenta hardware a
sistemului de calcul i programele de aplicaii. De asemenea, sistemul de
operare cuprinde o colecie (partajat de celelalte programe de aplicaii) ce
cuprinde rutine de acces hardware i definete o platform pentru elaborarea
de software de aplicaie.
Un sistem de operare modern cuprinde o serie de rutine ce asigur
urmtoarele funcionaliti de baz: interfaa cu utilizatorul (shell-ul),
managementul fiierelor (sistemul de fiiere), managementul procesorului,
managementul dispozitivelor periferice i managementul memoriei.
Componentele de baz ale unui calculator sunt: unitatea central de
procesare (UCP - microprocesorul), memoria principal, dispozitivele de
intrare/ieire i magistrala de interconexiune a componentelor. n continuare
vom prezenta detalii referitoare la aceste principale elemente arhitecturale
ale unui calculator.

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