Sunteți pe pagina 1din 9

Cursurile

2-3

STRUCTURA I FUNC IONAREA UNUI SISTEM DE CALCUL


1.1 Definirea unor no iuni de baz

Sistem de calcul: ansamblu de dispozitive care prelucreaz automat o informa ie codificat sub form discret (numeric ) printr-o succesiune finit de opera ii aritmetice i logice. Informa ia: formul care poate fi scris sau simbolizat , susceptibil de a aduce o cuno tin . ncercnd s o descriem sau s o explic m, putem spune c informa ia este un "mesaj despre anumite lucruri sau evenimente care au avut loc, au sau vor avea loc". Cod: o combina ie de simboluri. Codul, n func ie de natura simbolurilor care-1 compun, poate fi: numeric alfabetic alfanumeric. Datele sunt elemente constitutive ale informa iei. n prelucrarea automat ne intereseaz datele din punct de vedere sintactic, adic din punct de vedere al reprezent rii i organiz rii lor. Din acest punct de vedere, datele apar ca o succesiune de simboluri sau caractere. Distingem trei categorii de caractere: caractere alfabetice (literele alfabetului latin) caractere numerice (cifrele sistemului de numera ie zecimal) caractere speciale (semne de punctua ie etc.) In func ie de caracterele utilizate, datele pot fi: alfabetice, numerice alfanumerice. Datele au i aspect semantic, ceea ce le confer valoare cognitiv , o valoare de mesaj care se transmite. Observa ie. ntre date i informa ii exist diferen e: datele privesc evenimente primare, fiind colectate din diferite situa ii sau diverse locuri, neorganizate i/sau
1

neprelucrate ntr-o form care s stea la baza lu rii unor decizii; informa iile sunt mesaje ob inute prin prelucrarea datelor; aceste mesaje trebuie s fie concise, actuale, complete i clare, astfel nct s r spund cerin elor informa ionale n scopul c rora au fost preluate datele. Cu alte cuvinte, pentru a deveni informa ii, datele trebuie prelucrate n conformitate cu cerin ele informa ionale. Datele se pot prelucra manual sau cu echipamente electronice de calcul, de unde i denumirea de prelucrare automat . Un sistem de calcul (calculator electronic) este o instala ie complex , automat , capabil s prelucreze informa ia n conformitate cu cerin ele algoritmilor utilizatorului. Prin algoritm se n elege o succesiune finit i ordonat de opera ii, care pornind de la o mul ime finit de date (ini iale) conduce (prin aplicarea n mod mecanic i repetat a opera iilor) la o mul ime finit de rezultate. Un calculator electronic lucreaz pe baz de program. Prin program n elegem reprezentarea unui algoritm ntr-un limbaj de programare. Un limbaj de programare este un limbaj artificial destinat descrierii prelucr rilor de date ce urmeaz a fi realizate de un calculator. Un sistem de calcul (calculator electronic) reune te dou categorii de componente: componente fizice (echipamente de calcul) cunoscute sub numele de hardware; componente logice (programe), prin intermediul c rora sunt utilizate echipamentele, cunoscute sub numele de software. Un calculator electronic se define te ca un complex fizic de echipamente (hardware) care mpreun cu un sistem de programe (software) asigur prelucrarea informa iei n conformitate cu algoritmii impu i de necesitatea utilizatorului. Ansamblul de programe care realizeaz gestiunea resurselor unui calculator electronic (sistem de calcul), asigurnd func ionarea acestuia, i care permite comunicarea ntre utilizator sistemul de calcul, se nume te sistem de operare.

1.2 Structura hardware a unui sistem de calcul

n general, un sistem de calcul are n componen a sa cinci unit i func ionale: unit i de intrare; unit i de memorare; unitatea aritmetic i logic ; unitatea de comand ; unit i de ie ire. Unit ile de intrare realizeaz introducerea informa iei n sistemul de calcul i conversia din forma uzual (numere, texte, imagini, sunete) n formatul intern (binar). Formatul intern binar este urmare utiliz rii n construc ia calculatoarelor a circuitelor electronice care prezint dou st ri stabile (nivele de tensiune). Conven ional, cele dou st ri reprezint cifrele binare 0 i 1. Unit ile de memorie asigur stocarea informa iei (date i programe). Capacitatea memoriei este reprezentat de volumul de informa ie pe care-l poate stoca, folosind ca unitate de m sur octetul sau byte-ul (8 bi i), mpreun cu multiplii s i: 1 KB (KiloByte) = 2 10 octe i, 1 MB (MegaByte) = 2 20 octe i, 1 GB (GigaByte) = 2 30 octe i etc. Memoria unui calculator este format din: memoria intern (principal ); memoria extern (secundar ). n memoria intern se p streaz temporar programele i datele ce se utilizeaz la un moment dat de c tre sistemul de calcul, precum i rezultatele temporare i finale. n memoria extern se p streaz programe i date pe perioad ndelungat . Unitatea aritmetic i logic realizeaz prelucrarea informa iei prin: opera ii aritmetice; opera ii logice. Unitatea de comand calcul, parcurgnd etapele: controleaz activitatea ntregului sistem de

citirea instruc iunii curente; decodificarea instruc iunilor (identificarea opera iilor ce trebuie realizate) i aducerea din memorie a operanzilor; execu ia opera iilor cerute de instruc iuni. Unit ile de ie ire realizeaz transferul rezultatelor prelucr rii c tre mediul exterior. Rezultatele pot fi n format intern (binar) sau n format direct utilizabil (numere, texte, grafice, imagini, sunete). Dac rezultatele sunt destinate ac ion rii unor echipamente, unitatea de ie ire genereaz , prin intermediul unor circuite speciale (interfe e), semnalele necesare ac ion rii echipamentelor. Un program este executat secven ial, instruc iune cu instruc iune. Datele i programele sunt introduse n calculator prin intermediul unit ii de intrare, fiind stocate n memorie. Unitatea de comand trimite c tre memorie semnale de control i ob ine instruc iunile programului ce urmeaz a fi executat. De asemenea, unitatea de comand trimite c tre memorie semnale de control reprezentnd adresele datelor ce urmeaz a fi transferate n vederea execut rii, de c tre unitatea aritmetic i logic , a opera iilor indicate de fiecare instruc iune. Rezultatele sunt stocate temporar n memorie sau transferate mediului extern prin intermediul unit ilor de ie ire. 1.3 Limbaje de programare Una din modalit ile de a comunica cu un sistem de calcul const n utilizarea unui limbaj de programare. n prezent, n lume exist peste 200 limbaje de programare. Num rul mare al limbajelor de programare se datoreaz att diversific rii domeniilor de aplica i, precum i dezvolt rii structurii i tipurilor de calculatoare. O clasificare a limbajelor de programare poate fi astfel: limbaje de programare n cod ma in ; limbaje de asamblare; limbaje de nivel nalt. Limbajele de programare n cod ma in sunt limbaje de nivel sc zut, descrierea opera iilor ce urmeaz a fi executate de sistemul de calcul fiind f cut n format direct executabil. Opera iile pe care trebuie s le execute sistemul de calcul sunt reprezentate prin coduri numerice. Un program n cod ma in este o secven de coduri binare sau hexazecimale (corespunz toare codurilor ma in specifice unui anumit tip de calculator), fiind sub form direct executabil .
4

Limbajul ma in este specific fiec rui tip de sistem de calcul i se stabile te n etapa de proiectare a acestuia. Aceste limbaje prezint avantajul c prin utilizarea lor pot fi exploatate la maximum resursele hardware ale unui sistem de calcul. Programarea n cod ma in este laborioas , greoaie (opera iile ce urmeaz a fi executate de calculator trebuie descrise n detaliu) i presupune o bun cunoa tere a arhitecturii i performan elor hardware ale sistemului de calcul respectiv. Limbajele de asamblare sunt limbaje de nivel mediu, fiind apropiate de sistemele de calcul, permi nd exploatarea performan elor hardware ale acestora. Opera iile pe care trebuie s le execute sistemul de calcul sunt specificate prin simboluri (mnemonice). Unei instruc iuni n limbaj de asamblare i corespunde o instruc iune n limbaj ma in . Programarea n limbaj de asamblare presupune o foarte bun cunoa tere a arhitecturii, resurselor hardware i software ale sistemului de calcul respectiv. Limbajele de asamblare ofer programatorilor o serie de facilit i n scrierea programelor, putnd opera la nivelul registrelor n care se afl operanzi. Limbajele de asamblare se utilizeaz , n general, n aplica ii ce necesit acces direct la resursele hardware ale sistemului de calcul si/sau n aplica ii care necesit vitez mare de execu ie. Un limbaj de asamblare este specific unui anumit tip de sistem de calcul, programele scrise n aceste limbaje nefiind portabile pe alte tipuri de calculatoare. Limbajele de nivel nalt con in instruc iuni care sunt mai apropiate de utilizator dect de calculator. Complexitatea opera iilor puse la dispozi ia programatorului este mult mai mare dect n cazul limbajelor de asamblare. Unei instruc iuni scrise n limbaj de nivel nalt i corespunde o secven de instruc iuni n cod ma in . Limbajele de nivel nalt sunt portabile, fiind independente de sistemul de calcul. Exemplu. Pentru calculatoarele IBM-PC, n cod ma in nmul irea se reprezint pe 7 bi i prin codul 1111011, n limbaj de asamblare se reprezint prin mnemonicul MUL, iar n limbaj de nivel nalt prin simbolul *. Pentru a executa un program scris ntr-un limbaj de nivel nalt pe un anumit calculator, instruc iunile acestuia trebuie transformate cod ma in . Aceast opera ie se realizeaz cu ajutorul unui program special, numit translator. Translatoarele se clasific astfel: compilatoare, care sunt programe speciale de traducere, realiznd conversia unui program scris ntr-un limbaj de nivel
5

nalt (program surs sau cod surs ), n limbaj ma in . Compilatorul nlocuie te fiecare instruc iune din programul surs cu secven e echivalente de instruc iuni n limbaj ma in . Programul rezultat n urma conversiei n limbaj ma in se nume te cod obiect. Opera ia de traducere (conversie) se nume te compilare. Compilarea se face o singur dat , iar execu ia ori de cte ori este nevoie. Compilarea se realizeaz n cazul unor programe surs scrise n limbajele Fortran, Pascal, C etc.; interpretoarele analizeaz fiecare instruc iune din programul scris n limbaj de nivel nalt i o converte te n secven a echivalent de instruc iuni n limbaj ma in . Interpretarea presupune traducerea programului instruc iune cu instruc iune, ori de cte ori acesta este executat de sistemul de calcul respectiv. Opera ia este realizat de un program special, numit interpretor. Interpretarea se aplic n cazul unor programe surs scrise n limbajele Basic, Java etc. Translatarea unui program din limbaj de asamblare n limbaj ma in se realizeaz cu ajutorul unui program special numit asamblor. Func ionarea unui sistem de calcul este condi ionat de modul cum lucreaz mpreun componentele sale hardware cu produsele software corespunz toare. n afara termenilor consacra i de hardware i software, se folose te i termenul firmware, care se refer la software-ul cablat n momentul fabric rii sistemului de calcul. Multe dintre opera iile efectuate prin software pot fi implementate prin hardware, i reciproc, opera ii executate de hardware pot fi simulate prin software. De aici rezult c , din punct de vedere logic, ntre hardware i software exist echivalen e. Stabilirea implement rii unor opera ii n hardware sau software se face n etapa de proiectare a unui calculator i are la baz criterii ca viteza de execu ie, costuri, fiabilitate etc. De exemplu, opera iile elementare (adunare, sc dere, nmul ire, mp r ire) cu numere reale au fost implementate ini ial n software; ulterior, au fost proiectate circuite specializate care s efectueze aceste opera ii, avantajul principal fiind execu ia mult mai rapid dect n cazul simul rii prin software. Structura func ional a unui sistem de calcul se prezint astfel:

instruc iuni i date ini iale


DP / I

adrese dat
UCC

comenzi

UAL UAL

MEM

CANALE I/E

MEM EXT

date

date rezultate

instruc iuni
DP / E

Liniile punctate indic existen a informa iilor de stare ntre componentele sistemului de calcul, prin intermediul c rora exist un schimb reciproc de mesaje privind modul de func ionare i executare a opera iilor. DP/I - dispozitiv periferic de intrare, avnd rolul de a introduce date n vederea prelucr rii. DP/E - dispozitiv periferic de ie ire, care transfer spre exterior rezultatele prelucr rii. UAL - unitatea aritmetic i logic , care execut opera iile aritmetice i logice cu datele ce i sunt furnizate din memorie. MEM - memoria intern (principal ) care p streaz datele i instruc iunile programului pe parcursul execu iei acestuia. MEMEXT - memoria extern care se utilizeaz pentru prelucr rile care dep esc capacitatea memoriei interne sau pentru stocarea pentru diferite perioade de timp a datelor, programelor, rezultatelor etc. UCC unitatea de comand i control, care analizeaz instruc iunile programului aflat n memorie, le interpreteaz i emite comenzi de transfer i adrese c tre MEM, comenzi de execu ie c tre UAL, comenzi de transfer c tre DP/I i DP/E, prin intermediul canalelor de intrare/ie ire I/E. UCC mpreun cu UAL formeaz UCP (unitatea central de prelucrare). UCP mpreun cu memoria intern formeaz UC (unitatea central ) a sistemului de calcul.

1.4 Modul de func ionare al unui sistem de calcul

Datele ini iale ce urmeaz a fi prelucrate i programul se introduc n sistemul de calcul cu ajutorul dispozitivele periferice de intrare DP/I, prin intermediul canalelor I/E, fiind transferate n memoria intern a sistemului de calcul, sub form binar , n loca ii identificabile, prin adresele la care au fost memorate. n general, un program parcurge urm toarele etape : - editarea fi ierului surs , care const n scrierea programului folosind regulile de sintax ale editorului de texte corespunz tor; - compilarea fi ierului surs , care const n transformarea instruc iunilor programului surs n instruc iuni ma in , cu ajutorul compilatorului. n cadrul acestei etape pot s apar erori sintactice de utilizarea incorect a regulilor de scriere a programului surs . Pentru remedierea acestor erori se revine n etapa de editare a textului programului. n cazul n care compilatorul nu detecteaz erori sintactice, el va genera un fi ier numit fi ier obiect. - editarea leg turilor, este o etap n cadrul c reia un program specializat numit linkeditor, asambleaz mai multe module obiect i genereaz programul executabil sub forma unui fi ier. i n cazul acestei etape pot s apar erori generate de reguli de incompatibilitatea modulelor obiect asamblate. - lansarea n execu ie programul se afl sub form executabil i poate fi lansat n execu ie. n aceast etap pot s apar erori fie datorit datelor eronate introduse n calculator, fie conceperii gre ite a programului. Fiecare instruc iune a programului lansat n execu ie este interpretat de UCC, care emite comenzi c tre: - memoria intern , prin care se solicit ca anumite date, localizate prin adresele la care au fost memorate, s fie transferate c tre UAL pentru execu ia unei anumite opera ii; dup efectuarea opera iei se va specifica adresa de memorie unde se va depune rezultatul; - UAL c reia i se va solicita execu ia opera iei specificate prin instruc iune; - Canalele de I/E n vederea realiz rii transferurilor corespunz toare. Dup terminarea execu iei opera iilor solicitate, rezultatele memorate la anumite adrese din memoria principal sunt transferate, prin intermediul
8

canalelor de I/E, c tre DP/E pentru utilizarea rezultatelor prelucr rii sau c tre MEMEXT, pentru arhivarea datelor i programelor, n scopul reutiliz rii lor.