Bazele informaticii.pdf

of 198 /198
Universitatea Titu Maiorescu Facultatea de Informatică Prof. univ. dr. Pau Valentin Lector univ. dr. Apostolescu Tudor Cătălin As. univ. ing. Stănescu Octavian Curs pentru învățământul la distanță București 2011 Bazele informaticii

Embed Size (px)

description

bazele informaticii

Transcript of Bazele informaticii.pdf

  • Universitatea Titu Maiorescu

    Facultatea de Informatic

    Prof. univ. dr. Pau Valentin

    Lector univ. dr. Apostolescu Tudor Ctlin

    As. univ. ing. Stnescu Octavian

    Curs pentru nvmntul la distan

    Bucureti 2011

    Bazele informaticii

  • 2

    Cuprins INTRODUCERE ........................................................................................................................... 5 UNITATEA DE NVARE 1 ................................................................................................. 11

    1. Stocarea datelor .................................................................................................................. 11 1.1. Stocarea biilor ................................................................................................................ 11 1.1.1. Pori logice i circuite basculante bistabile ..................................................................... 11 1.1.2. Tehnici de stocare ........................................................................................................... 12 1.1.3. Sistemul de notaie hexazecimal ..................................................................................... 13 1.2. Memoria principal ......................................................................................................... 13 1.2.1. Organizarea memoriei principale .................................................................................... 14 1.2.2. Organizarea unei celule de memorie .............................................................................. 15 1.3. Dispozitive de stocare de mas ....................................................................................... 19 1.3.1. Discuri magnetice ........................................................................................................... 21 1.3.2. Discuri compacte ............................................................................................................ 25 1.3.3. Benzi magnetice .............................................................................................................. 26 1.3.4. nregistrri logice i fizice .............................................................................................. 26 1.4. Codificarea utilizat pentru stocarea informaiilor ......................................................... 27 1.4.1. Reprezentarea simbolurilor ............................................................................................. 27 1.4.2. Reprezentarea valorilor numerice ................................................................................... 28 1.4.3. Reprezentarea altor tipuri de date ................................................................................... 30 1.5. Sistemul binar de numeraie ........................................................................................... 31 1.5.1. Adunarea n binar ............................................................................................................ 31 1.5.2. Reprezentarea fraciilor n sistemul binar ....................................................................... 32 1.6. Stocarea numerelor ntregi .............................................................................................. 34 1.6.1. Notaia n exces ............................................................................................................... 34 1.6.2. Notaia n complement fa de doi .................................................................................. 35 1.6.3. Adunarea numerelor reprezentate n complement fa de doi ........................................ 38 1.6.4. Problema depirii superioare ......................................................................................... 39 1.7. Stocarea numerelor fracionare ....................................................................................... 40 1.7.1. Notaia n virgul mobil ................................................................................................ 40 1.7.2. Erori de rotunjire ............................................................................................................. 42 1.8. Erori de comunicaie ....................................................................................................... 43 1.8.1. Bii de paritate ................................................................................................................. 43 1.8.2. Coduri corectoare de erori .............................................................................................. 45

    TEST AUTOEVALUARE 1 (Stocarea datelor) ....................................................................... 47 UNITATEA DE NVARE 2 .................................................................................................. 52

    2. Manipularea datelor ............................................................................................................ 52 2.1. Unitatea central de prelucrare ....................................................................................... 52 2.2. Execuia instruciunilor ................................................................................................... 55 2.3. Execuia programelor ...................................................................................................... 60

  • 3

    2.4. Alte instruciuni .............................................................................................................. 61 2.5. Principii de proiectare pentru calculatoarele actuale ...................................................... 63 2.6. Prelucrare simultan ...................................................................................................... 64 2.7. Instruciuni aritmetice i logice ................................................................................... 65 2.8. Comunicaia ntre unitatea central i controlere ....................................................... 67 2.9. Comunicaia serial i paralel ..................................................................................... 69

    TEST AUTOEVALUARE 2 (Manipularea datelor) ............................................................... 73 UNITATEA DE NVARE 3 .................................................................................................. 75

    3. Sistemele de operare........................................................................................................... 75 3.1. Evoluia sistemelor de operare .................................................................................... 75 3.2. Arhitectura unui sistem de operare ................................................................................. 77 3.3. Coordonarea activitilor desfurate de calculator ........................................................ 81 3.4. Gestionarea proceselor concurente ................................................................................. 85

    TEST AUTOEVALUARE 3 (Sisteme de operare)................................................................... 88 UNITATEA DE NVARE 4 .................................................................................................. 92

    4. Algoritmii ........................................................................................................................... 92 4.1. Conceptul de algoritm .................................................................................................... 92 4.2. Reprezentarea algoritmilor ............................................................................................. 93 4.3. Dezvoltarea algoritmilor ................................................................................................. 96 4.4. Structuri iterative ............................................................................................................ 98 4.5. Structuri recursive......................................................................................................... 102 4.6. Eficien i corectitudine .............................................................................................. 103

    TEST AUTOEVALUARE 4 (Algoritmii) ............................................................................... 107 UNITATEA DE NVARE 5 ................................................................................................ 111

    5. Limbaje de programare .................................................................................................... 111 5.1. Perspective istorice ....................................................................................................... 111 5.2. Conceptele programrii clasice .................................................................................... 114 5.3. Module de program ...................................................................................................... 121 5.4. Implementarea limbajelor ............................................................................................. 123 5.5. Programarea declarativ ............................................................................................... 128

    TEST AUTOEVALUARE 5 (Limbaje de programare) ........................................................ 132 UNITATEA DE NVARE 6 ................................................................................................ 139

    6. Structuri de date ............................................................................................................... 139 6.1. Vectori .......................................................................................................................... 139 6.1.1. Vectori unidimensionali ............................................................................................... 139 6.1.2. Vectori multidimensionali ............................................................................................ 140

  • 4

    6.2. Liste .............................................................................................................................. 141 6.3. Arbori ............................................................................................................................ 150

    TEST AUTOEVALUARE 6 (Structuri de date) .................................................................... 154 UNITATATEA DE NVARE 7 ........................................................................................... 157

    7. Structuri de fiiere ............................................................................................................ 157 7.1. Fiierele secveniale ...................................................................................................... 157 7.2. Fiiere de text ................................................................................................................ 159 7.3. Fiiere indexate ............................................................................................................. 160 7.4. Fiiere dispersate (hashed files) .................................................................................... 161 7.5. Rolul sistemului de operare .......................................................................................... 162

    TEST AUTOEVALUARE 7 (Structuri de fiiere) ................................................................. 164 UNITATEA DE INVATARE 8 ................................................................................................ 166

    8. Structuri de Baze de date .................................................................................................. 166 8.1. Consideraii generale ................................................................................................... 166 8.2. Implementarea stratificat a bazelor de date ................................................................. 167 8.3. Modelul relaional ......................................................................................................... 169

    TEST AUTOEVALUARE 8 (Structura bazelor de date) ...................................................... 181 UNITATEA DE NVARE 9 ................................................................................................ 183

    9. Sistem informatic i sistem informaional ........................................................................ 183 9.1 Conceptul de informaie ................................................................................................ 183 9.2 Noiunea de sistem ........................................................................................................ 185 9.3 Sistem informatic .......................................................................................................... 190

    TEST AUTOEVALUARE 9 (Sistem Informaional i Sistem Informatic de fiiere) ......... 196 BIBLIOGRAFIE ......................................................................................................................... 198

  • 5

    INTRODUCERE

    Informatica este o disciplin care construiete baza tiinific pentru mai multe domenii,

    ca:

    proiectarea i programarea calculatoarelor;

    prelucrarea informaiilor;

    rezolvarea algoritmic a problemelor;

    procesul algoritmic propriu-zis.

    Prin urmare, nu putem reduce studiul informaticii la deprinderea modului de utilizare a

    calculatoarelor actuale (eventual a PC-urilor), ci trebuie s nelegem att aria de cuprindere, ct

    i dinamica unui mare numr de domenii nrudite.

    a) Studiul algoritmilor

    Algoritm = set de pai prin care se definete modul n care poate fi dus la ndeplinire o

    anumit sarcin.

    n domeniul calculatoarelor algoritmii sunt reprezentai prin programe. Aceste

    programe formeaz software-ul, spre deosebire de calculatoarelor propriu-zise care poart

    numele de hardware.

    Pentru ca un calculator s poat duce la ndeplinire o anumit sarcin, trebuie (ca mai

    nti) s se descopere i s se reprezinte sub form de program un algoritm pentru efectuarea

    sarcinii respective.

    Algoritmii ocup un rol central n informatic. Principalul obiectiv al acestor eforturi era

    descoperirea unui set mic de instruciuni care s descrie modul de rezolvare a oricrei probleme

    dintr-o anumit categorie. Unul dintre cele mai cunoscute rezultate obinute n acest domeniu

    este algoritmul lui Euclid (descoperit n antichitate de matematicianul precizat).

    Determinarea celui mai mare divizor comun a 2 numere ntregi pozitive.

    Descriere: Algoritmul primete ca intrare 2 numere ntregi pozitive i calculeaz cel mai mare

    divizor comun al celor 2 numere.

    Procedura:

    Pasul 1 : Se noteaz cu M cea mai mare valoare i cu N cea mai mic valoare de intrare.

    Pasul 2 : Se mparte M la N i se noteaz cu R restul mpririi.

  • 6

    Pasul 3 : Dac R 0, se atribuie lui M valoarea N i lui N valoare R, apoi se revine la pasul 2:

    cel mai mare divizor comun al celor 2 numere este valoarea notat cu N.

    Dup descoperirea algoritmului (n cazul nostru al lui Euclid), ntr-un fel, putem spune

    c toate informaiile necesare pentru efectuarea [activitii] operaiei respective sunt incluse ntr-

    o form codificat n algoritm.

    Dezvoltarea algoritmilor este o preocupare major n domeniul efecturii calculelor i

    principalele probleme legate de aceast aciune sunt :

    descoperirea unui algoritm care s rezolve o problem (gsisirea soluiei pentru o

    problem). Pentru anumite domenii (ex. contabilitate), algoritmii se gsesc exprimai n

    legi i metodologii (norme) specifice.

    reprezentarea algoritmului ntr-o form n care poate fi comunicat unei maini sau altor

    oameni. Adic scrierea unui algoritm trebuie transcris din forma conceptual ntr-un set

    clar de instruciuni lipsit de ambiguitate. Exist o mulime de variante de scheme de

    reprezentare a algoritmilor numite limbaje de programare.

    n prezent, n acest domeniu s-au realizat sisteme automate de organizare i planificare

    care permit i nespecialitilor s dezvolte, fr ajutor din afar, sistemele de care au nevoie.

    Exprimarea curent a acestei activiti este ingineria software.

    Scopul acestor prelegeri nu este prezentarea n detaliu a modului n care arhitectura

    calculatoarelor este implementat prin intermediul circuitelor electronice (este vorba de un alt

    domeniu electronic). Ar fi de dorit ca arhitectura calculatoarelor s reflecte numai cunotinele

    legate de procesele algoritmice i s nu fie limitat de tehnic.

    Arhitectura calculatoarelor poate fi studiat i n alt context dect acela al stocrii i

    regsirii datelor. n acest domeniu, caracteristicile interne ale calculatorului se reflect adesea n

    caracteristicile externe. Proiectarea sistemele de calcul este strns legat de interfaa lor cu

    lumea exterioar. De exemplu, se pune problema modului n care algoritmul poate fi furnizat

    calculatorului i a modului de precizare n care algoritm s fie executat.

    n contextul n care calculatorul ndeplinete diferite sarcini, trebuie rezolvate multe

    probleme legate de coordonarea activitilor i alocarea resurselor .

  • 7

    b) Dezvoltarea mainilor algoritmice

    Unul din primele dispozitive de calcul utilizate de oameni a fost abacul. Prezena lui a

    fost atestat n civilizaiile antice (greac i roman), el fiind folosit i astzi. Bilele poziionate

    pe srme n cadrul abacului semnific anumite valori.

    Abacul reprezint i stocheaz valori prin poziia bilelor aezate de operatorul uman

    (intrrile) care, de asemenea, observ poziiile finale ocupate de bile, ceea ce reprezint

    rezultatul (ieirile). Deci abacul este o main de stocare a datelor i devine o main algoritmic

    numai mpreun cu omul care-l utilizeaz.

    Proiectarea mainilor de calcul s-a bazat ntr-o vreme pe tehnologia roilor dinate.

    Printre inventatorii acestui tip de maini de calcul s-a aflat i Blaise Pascal (16231662),

    Gottfried Leibniz (16461716) i Charles Babbage (17921871). Mainile lor reprezentau

    datele prin poziionarea unor roi dinate, datele de intrare erau furnizate mecanic prin stabilirea

    poziiei particulare a acestor roi.

    n cazul mainilor lui Pascal i Leibniz, valorile de ieire erau obinute prin observarea

    poziiei finale a roilor (similar citirii numerelor pe indicatorul de kilometraj al automobilului).

    La maina lui Babbage rezultatele se tipreau pe hrtie, evitnd erorile de transcriere.

    n ceea ce privete abilitatea de a urma algoritm putem spune c:

    maina lui Pascal efectua numai adunri;

    maina lui Leibniz avea algoritmii (operaiile aritmetice) nglobai, dar operatorul

    trebuia s-l selecteze pe cel dorit;

    maina lui Babbage era astfel proiectat nct secvena de pai trebuia executat s poat

    fi comunicat acesteia prin perforarea ntr-un anumit mod a unor cartele de hrtie.

    Mai trziu, Herman Hollerith (18601929) a folosit ideea reprezentrii informaiilor sub

    forma unor perforaii n cartele de carton, pentru mbuntirea procesului de nregistrare n

    cadrul recensmntului efectuat n 1890 n Statele Unite. Lucrrile sale au stat la baza crerii

    companiei I B M.

    Anul de nastere al informaticii tehnice este 1946 cand a fost creat creat computerul

    electronic de integrare numerica aritmetica construit cu tuburi electronice si cantarind sute de

    tone. John von Neumann a construit in 1951 calculatorul EDVAC (Electronic Discrete Variable

    Automatic Computer), iar in 1949 la Universitatea Cambridge (SUA) a fost realizat EDSAC

  • 8

    (Electronic Delay Storage Automatic Computer), primul calculator care dispunea de sistem de

    operare.

    c) Evoluia informaticii

    Capacitatea-limit de stocare a datelor, ca i procedurile de programare consumatoare de

    timp au reprezentat restricii care au redus complexitatea algoritmilor executai de primele

    generaii de calculatoare.

    Pe msur ce aceste limite au nceput s fie depite, sistemele de calcul au nceput s fie

    folosite pentru sarcini de mai mare anvergur, din ce n ce mai complexe. Eforturile s-au

    ndreptat din ce n ce mai mult ctre studiul algoritmilor i al procesului de programare. Aceste

    eforturi se pot aduna, fr a exagera, n tiina algoritmilor. Aria de cuprindere a acestei tiine

    este foarte larg, incluznd subiecte de matematic, inginerie, psihologie, management,

    lingvistic etc.

    Ceea ce ne propunem s prezentm n cadrul acestor prelegeri (lecii) sunt :

    ideea central a fiecrui domeniu;

    direciile curente de cercetare;

    tehnicile utilizate n domeniul respectiv.

    De exemplu, n domeniul programrii ne vom concentra asupra principiilor de baz ale

    instrumentelor de programare i asupra evoluiei lor, i nu asupra dezvoltrii abilitilor de

    programare. Pentru a nu pierde din vedere imaginea de ansamblu, vom ncerca s identificm

    cteva ntrebri fundamentale pentru informatic :

    1. Ce probleme se pot rezolva prin procesele algoritmice?

    2. Cum se pot descoperi algoritmii?

    3. Cum se pot mbunti tehnicile de reprezentare i comunicare a algoritmilor?

    4. Cum pot fi aplicate cunotinele dobndite cu privire la algoritmi (tehnologia n

    vederea obinerii unor maini algoritmice mbunttite) ?

    5. Cum pot fi analizate i comparate caracteristicile diverilor algoritmi?

    Rolul central detinut de algoritm in informatica

  • 9

    d) Rolul abstractizrii

    Pentru sistemele de o complexitate care depete capacitatea noastr de nelegere se

    poate privi sistemul respectiv ca un ansamblu de componente ale cror caracteristici interne pot

    fi ignorate, ceea ce ne permite s ne concentrm asupra modului n care componentele respective

    interacioneaz unele cu altele i asupra modului cum sunt utilizate pentru construirea unor

    componente de nivel mai nalt.

    Aceast distincie care se face ntre proprietile externe ale unei componente i detaliile

    interne care in de construcia componentei respective poart numele de abstractizare. n orice

    progres obinut, o mic parte a societii noastre se specializeaz n implementarea lui, ceilali

    folosesc rezultatul ca pe un instrument abstract, deci o unealt a crei implementare intern nu

    suntem obligai s o nelegem.

    e) Implicaii etice, sociale i juridice

    Informatica estompeaz multe distincii are serveau n trecut ca reguli pe care oamenii i

    ntemeiau deciziile i pune sub semnul ntrebrii o parte din principiile care stau la baza

    societii, ca de exemplu :

    Care este diferena ntre un comportament inteligent i inteligena propriu-zis?

    n ce condiii putem vorbi despre existena vieii?

    Care este diferena ntre plante i animale?

    Informatica genereaz asemenea ntrebri, punnd n discuie principiile i bazele pe care

    este construit cunoaterea noastr.

    n context juridic, se pune ntrebarea n ce msur cineva poate deine n proprietate un

    produs software i care sunt drepturile i obligaiile care decurg din aceast proprietate. n

    domeniul eticii, suntem confruntai cu numeroase opiuni care pun la ndoial principiile uzuale

    de comportament. n context politic, apare ntrebarea dac i n ce msur tehnologia

    calculatoarelor i aplicaiile acesteia trebuie controlate de stat.

    Rezolvarea acestor probleme necesit existena unor cunotine organizate sub forma

    metodelor, tehnicilor, normelor pentru fiecare tiin sau tehnologie pus n discuie.

  • 10

    Pentru a putea s lum decizii logice cu privire la depozitarea deeurilor radioactive,

    trebuie s nelegem care sunt efectele radiaiilor, care sunt msurile de protecie care trebuie

    luate i s putem evalua durata de risc.

    Pentru a acorda sau nu guvernelor sau companiilor dreptul de a construi baze de date

    referitoare la ceteni sau clieni, membrii societi trebuie s neleag care sunt posibilitile,

    limitele i implicaiile tehnologiei bazelor de date. Ceea ce va fi prezentat n cursul pe care-l

    propunem v furnizeaz aceste cunotine elementare n domeniul a ceea ce numim i n f o r m a

    t i c .

    Cu toate acestea, tiina nu reuete ntotdeauna s rspund clar i hotrt tuturor

    problemelor sociale care-i sunt ridicate. Nu ntotdeauna exist un singur rspuns corect; de multe

    ori aa-zisele soluii sunt n fapt compromisuri ntre mai multe puncte de vedere.

    Este nevoie de capacitatea de a asculta i de a nelege i alte puncte de vedere, de a

    purta discuii raionale i de a-i schimba opiniile n funcie de datele obinute n urma

    dialogului. Pentru a ncuraja un astfel de comportament, fiecare capitol al cursului se va finaliza

    cu un set de probleme de etic, pe care le considerm, mai ales n contextul profesiunii pe care

    ai ales-o, la fel de importante ca i aspectele tehnice propuse spre dezbatere.

  • 11

    UNITATEA DE NVARE 1

    1. Stocarea datelor

    1.1. Stocarea biilor

    Calculatoarele utilizate n prezent reprezint informaiile sub forma iruri de bii. Un bit

    (biniary digit = cifr binar) simbolizeaz una din cifrele 0 sau 1.

    Stocarea unui bit ntr-un calculator necesit un dispozitiv care s poat s se afle ntr-una

    din cele dou stri. De exemplu:

    un ntreruptor (pornit/oprit);

    un releu (deschis/nchis);

    un steag de start (ridicat/cobort).

    Una din stri este utilizat pentru reprezentarea simbolului 0, iar cealalt pentru

    reprezentarea simbolului 1.

    1.1.1. Pori logice i circuite basculante bistabile

    Trebuie introduse operaiile AND (= i), OR (= sau) i XOR (= sau exclusiv) care sunt

    prezentate mai jos :

    Figura 1.1 - Operaiile AND, OR i XOR

  • 12

    Aceste operaii lucreaz cu valorile adevr (true)/fals (false) i sunt denumite operaii

    booleene.

    Intrrile operaiei AND sunt reprezentate de adevrul sau falsitatea componentelor

    expresiei; ieirea reprezint adevrul sau falsitatea expresiei compuse.

    Expresia P AND Q este adevrat numai cnd ambele sale componente sunt adevrate.

    Toate variantele operaiei AND se pot vedea n prima linie a figurii 1.1. Similar, operaia OR se

    bazeaz pe o expresie compus sub forma P OR Q. Asemenea expresie compus este

    adevrat cnd cel puin una dintre componente este adevrat, ceea ce coincide cu

    reprezentarea OR din linia a doua a figurii 1.1.

    n limbajul curent nu exist o conjuncie care s poat exprima semnificaia operaiei

    XOR. XOR produce ca rezultat o ieire cu valoarea 1 atunci cnd una dintre intrrile sale este 1

    i cealalt 0 (vezi linia a treia din fig. 1.1.). Operaia NOT este o alt operaie boolean de

    AND, OR i XOR, prin faptul c are o singur intrare i o singur ieire. Ieirea reprezint opusul

    intrrii; dac intrarea operaiei NOT este adevrat, ieirea este fals, i invers.

    1.1.2. Tehnici de stocare

    Calculatoarele anilor '60 conineau inele de material magnetic de dimensiuni mici,

    denumite miezuri (cores), pe care erau nfurate fire electrice, [mini]bobine. La trecerea

    curentului electric prin bobine, miezul poate fi magnetizat ntr-una din cele dou direcii.

    Direcia cmpului magnetic poate fi detectat observndu-se efectul asupra unui curent electric

    ce trece prin centrul miezului.

    Astfel un miez reprezint o posibilitate de memorare a unui bit. Datorit dimensiunilor

    lor mari i a necesarului ridicat de putere (electric), aceste sisteme sunt depite astzi.

    Calculatoarele nregistreaz datele nc utiliznd tehnologia magnetic, dar ntr-un mod foarte

    apropiat de acela n care se fac nregistrrile pe band magnetic. In unele sisteme de calcul se

    folosete, de asemenea, i tehnica laserului pentru nregistrarea bitilor.

    Diferenele dintre circuitele basculante bistabile electronice i dispozitivele de stocare

    magnetice (sau laser) reprezint argumente pro i contra n ceea ce privete aplicaiile lor.

  • 13

    Circuite basculante bistabile electronice care pot fi acionate electronic sunt mai rapide

    dect cele magnetice i, de aceea, sunt utilizate pentru stocarea datelor n circuitele interne ale

    calculatorului. ns un circuit basculant bistabil electronic pierde informaia stocat n el atunci

    cnd sursa de alimentare este oprit.

    n schimb, dispozitivele de stocare magnetice sau cu laser pstreaz datele, ceea ce le

    recomand pentru realizarea de sisteme de stocare cu longevitate mare.

    1.1.3. Sistemul de notaie hexazecimal

    Cnd ne referim la activitile din interiorul unui calculator lucrm cu iruri de bii, care

    pot fi uneori foarte lungi. Pentru a simplifica reprezentarea irurilor de bii, se va analiza o

    notaie prescurtat, denumit notaia hexazecimal (hexadecimal notation).

    Notaia hexazecimal utilizeaz un singur simbol pentru reprezentarea a patru bii.

    Sistemul de codificare hexazecimal:

    Figura 1.2 - Sistemul de notaie hexazecimal

    1.2. Memoria principal

    n scopul stocrii datelor, un calculator conine un mare numr de circuite, fiecare dintre

    ele fiind capabile s stocheze bii. Acest "rezervor" de bii este cunoscut sub numele de

    memorie principal (main memory).

  • 14

    1.2.1. Organizarea memoriei principale

    Celulele de stocare din memorie sunt organizate n uniti, (cuvinte) cu dimensiunea

    uzual de 8 bii. Acest ir de 8 bii a impus cuvntul octet i, de asemenea, a impus pentru

    cuvntul byte - ir de bii cu aceeai lungime.

    Dimensiunea memoriei este adesea msurat n multipli de 1.048.576 celule (1.048.576

    = 220, fiind mai natural pentru a fi utilizat dect 1.000.000 care este o putere a lui 10). Pentru a

    desemna aceast unitate de msur se folosete termenul mega.

    Deci: 1 mega byte (1 MB) 1.048.576 byte.

    Alte uniti de msur a dimensiunilor de memorie sunt kilooctetul kilobyte (KB) care

    este egal cu 1024 octei (210 octei) i gigaoctetul gigabyte (GB) care este egal cu 1024 MB

    (230 octei).

    Pentru identificarea celulelor individuale din memoria principal a unui calculator,

    fiecare are atribuit un nume unic, denumit adres. Adresele utilizate in tehnica de calcul sunt n

    ntregime numerice. Pentru exemplificare putem considera toate celulele de memorie plasate pe

    un singur rnd i numerotate n ordine cresctoare pornind de la 0.

    Acest sistem permite identificarea unic a unei celule i, de asemenea, o relaie de

    ordonare ntre celule permite referiri de tipul "celula precedent" sau "celula urmtoare".

    Celulele din memoria principal care stocheaz bii sunt combinate cu circuite necesare pentru a

    permite, si altor circuite s stocheze i s recupereze datele din celulele memoriei principale.

    Exist astfel si alte celule (circuite) care pot prelua datele din memorie solicitnd

    informaii despre coninutul unei anumite adrese (operaie de citire) sau pot nregistra informaii

    n memorie solicitnd ca un anumit ir de bii s fie plasat n celula aflat la o anumit adres

    (operaie de scriere).

    Acest sistem de identificare a celulelor memoriei principale permite apelarea, cercetarea

    i modificarea individual a acestora. Astfel, o celul a memoriei principale cu o adres mic

    este la fel de accesibil ca si una cu o adres foarte mare, deci datele stocate n memoria

    principal a calculatorului pot fi prelucrate n orice ordine. Din aceste motive memoria

    principal a unui calculator se mai numete i memorie cu acces aleator (random access

    memory RAM).

  • 15

    Acest acces aleator la mici uniti de date (celula) se deosebete radical de sistemele de

    stocare de mas (care manipuleaz iruri lungi de bii sub forma de blocuri).

    1.2.2. Organizarea unei celule de memorie

    Considerm biii dintr-o celul de memorie ca fiind aranjai pe un rnd. Vom denumi

    capetele acestui rnd marginea superioar , iar cellalt capt marginea inferioar.

    Considera deasemenea biii aranjai ntr-un rnd orientat de la stnga la dreapta cu

    marginea superioar plasat la stnga.

    Bitul de la captul din stnga este denumit cel mai semnificativ bit.

    Figura 1.3 - Organizarea unei celule de memorie cu dimensiune de un octet

    Memoria primara

    Memoria (Memory) pstreaz programele i datele. Fr o memorie, din care

    procesoarele s poat citi i n care s poat scrie informaii, nu poate exista nici un calculator

    numeric cu program memorat.

    Bii

    Unitatea elementar a memoriei este cifra binar, numit bit. Un bit poate conine un 0

    sau un 1. Sistemul de numerotare binar necesit numai dou valori distincte, reprezentnd cea

    mai sigur metod pentru codificarea informaiei numerice.

    Ordinea octeilor

    Octeii dintr-un cuvnt pot fi numerotai de la stnga la dreapta, sau de la dreapta la

    stnga. Vom reprezenta n figur o parte a memoriei unui calculator pe 32 bii.

  • 16

    Figura 1.4 a Bii numerptai de la stnga la dreapta

    Figura 1.4 b Bii numerotai de la dreapta la stnga

  • 17

    S precizm cum vom reprezenta valoarea numeric: 6 este reprezentat de biii 110 n

    partea cea mai din dreapta a unui cuvnt i de zerouri pe ceilali 29 de bii din stnga.

    Majoritatea aplicaiilor au nevoie de un amestec de numere intregi, iruri de caractere i

    alte tipuri de date. S considerm o fi simpl de personal: nume angajat, vrsta i codul

    departamentului (Paul Sandu, 21 ani, Departament = 260 = 1 x 256 + 4) i s o reprezentm n

    cele dou moduri precizate mai sus.

    Figura 1.5 Reprezentarea unei fie de personal

    Reprezentrile sunt bune i consistente intern, problema apare la transmiterea fiei, prin

    reea de la maina cea mai semnificativ ctre cealalt main. Rezultatul transferului propus

    arat astfel:

    Figura 1.6 Rezultatul obinut

    Maina a inversat n timpul transmisiei:

    ordinea caracterelor din cuvnt (ceea ce este corect),

    octeii dintr-un ntreg (ceea ce este incorect).

    O soluie este de a inversa octeii prin software (dup crearea unei copii), ceea ce va

    conduce la :

  • 18

    Figura 1.7 Soluia de inversare prin software a octeilor

    Problema este poziia caracterului "U poziionat prost. Soluii de ndreptare nu exist la

    transferul ntre maini diferite ca organizare a memoriei. Apare evident necesitatea unui standard

    pentru stabilirea ordinii octeilor n cadrul organizrii memoriei.

    Memoria intermediar

    ntotdeauna CPU-urile au fost mai rapide dect memoriile. Proiectanii CPU-ului sunt

    preocupai de sporirea vitezei acestora, pe cnd proiectanii memoriilor sunt preocupai de

    sporirea capacitii, i nu de sporirea vitezei. Datorit acestor abordri, situaia CPU-urilor i a

    memoriilor, vis--vis de vitez, continu s se nruteasc n timp. Practic, acest dezechilibru

    are urmtoarea metamorfozare: dup ce CPU-ul a lansat o cerere ctre memorie, nu va primi

    cuvntul ateptat timp de mai multe cicluri CPU; cu ct memoria este mai lent, cu att CPU-ul

    are mai mult de ateptat.

    n acest moment, inginerii tiu cum s construiasc memorii la fel de rapide ca i CPU-

    urile, dar ar trebui ncorporate n cip-ul CPU, crescndu-i dimensiunile i costul. Cip-ul CPU

    este limitat la anumite dimensiuni. n acest sens, se cunosc tehnici de combinare a unei cantiti

    mici de memorie rapid cu o cantitate mare de memorie lent, la un pre moderat.

    Memoria mic, rapid, se numete memorie intermediar (cache). Ideea de baz a unei

    memorii intermediare : cuvintele de memorie cele mai frecvent utilizate sunt pstrate n

    memoria intermediar.

  • 19

    Figura 1.8 Plasarea memoriei intermediare

    1.3. Dispozitive de stocare de mas

    Limitele tehnologice precum i necesitatea stocrii unor copii de siguran ale datelor

    vitale, au fcut ca memoria principal a unui calculator s nu satisfac cerinele impuse de

    diversele aplicaii. Din aceste motive, calculatoarele sunt echipate, pe lng memoria principal,

    cu sisteme de stocare de mas (mass storage system), denumite i memorie secundar. Stocarea

    datelor pe aceste sisteme se face n uniti de mari dimensiuni denumite fiiere (files).

    Unul din principalele dezavantaje ale sistemelor de stocare de mas este acela c, n

    general, ele necesit o micare suplimentara mecanic, astfel fiind mai lente la stocarea i

    recuperarea datelor n comparaie cu memoria principal a calculatorului.

    Principalul avantaj al dispozitivelor de stocare de mas este acela c, n multe situaii,

    sunt mai ieftine dect memoria principal, iar suportul pe care se nregistreaz datele poate fi

    extras din calculator i depozitat ntr-un loc sigur n scopul recuperrii ulterioare a datelor.

    Cu privire la dispozitivele care pot fi cuplate sau decuplate de la calculator, se folosesc

    termenii on-line i off-line.

    Termenul On-line indica c dispozitivul sau informaiile sunt conectate i pot fi folosite

    de calculator fr intervenie uman. Termenul Off-line indica c este necesar intervenia

    uman nainte ca dispozitivul sau informaiile s poat fi utilizate de calculator; dispozitivul

    trebuie pornit sau informaiile trebuie introduse ntr-un anumit mecanism.

  • 20

    Memoria secundar

    Orict de mare ar fi memoria principal. ntotdeauna ea va fi prea mic pentru cerinele utilizatorilor.

    Figura 1.9 - Ierarhie de memorii cu cinci niveluri

    Mrimea memoriei intermediare are dimensiuni de la 32 KB pn la zeci de MB.

    Memoria principal are dimensiuni de la 16 MB pn la zeci de GB.

    Discul magnetic este suportul actual pentru pstrarea permanent (80 GB, 100 GB, 120

    GB, 200 GB) i st la baza ierarhiei de memorii, iar banda magnetic i discul optic sunt

    destinate pstrrii arhivelor. Exist urmtorii parametri importani de caracteristice specifice, pe

    msur ce ne deplasm spre baza ierarhiei:

    1. Timpul de acces se mrete (crete).

    Registrele CPU pot fi accesate n cteva monosecunde;

    Memoriile intermediare pot fi accesate ntr-un multiplu apropiat de timpul de acces al

    registrelor;

    Timpii de acces la memoria principal au valori tipice de cteva zeci de nanosecunde ;

    Timpii de acces la discul magnetic 10 msec;

  • 21

    Timpii de acces la banda magnetic i discul optic sunt de mrimea secundelor (inclusiv

    timpul de extragere i inserare n dispozitivul de intrare/ieire).

    2. Capacitatea de stocare crete.

    Registrele CPU pot stoca 128 octei;

    Memoriile intermediare pot stoca civa megaoctei (MB);

    Memoriile principale: zeci mii MB;

    Discurile magnetice: zeci sute GB;

    Benzile magnetice i discurile optice nu sunt tot timpul utilizate, astfel nct capacitatea

    lor este limitat de bugetul proprietarului.

    3. Numrul de bii primit pe dolar crete. Preurile pe componente se msoar astfel:

    Memoria principal, n dolari/MB;

    Stocarea pe discul magnetic n centime/pennies/MB;

    Stocarea pe banda magnetic, n dolari/GB.

    1.3.1. Discuri magnetice

    Un disc magnetic este alctuit din unul sau mai multe platane de aluminiu, cu un nveli magnetizabil. Iniial, diametrele acestor discuri erau de 50 cm, 12 cm, dar acum (2005) au n

    general 3 cm sau mai puin. Un cap de citire/scriere, care conine o bobin de inducie ce se

    deplaseaz foarte aproape de suprafaa platanului, sprijinindu-se pe o pern de aer (cu

    excepia discurilor flexibile/dischetelor unde atinge suprafaa). La trecerea unui curent

    negativ/pozitiv prin bobina capului, acesta magnetizeaz suprafaa de dedesubtul capului,

    aliniind particulele magnetice la dreapta sau la stnga, funcie de polaritatea curentului. Astfel,

    se realizeaz scrierea, citirea realizndu-se n modul precizat n paragraful urmtor. La trecerea

    capului de citire peste o suprafa magnetizat, un curent pozitiv/negativ este indus n bobina

    capului. n continuare este prezentat geometria unei piste specifice discului magnetic.

  • 22

    Figura 1.10 - O poriune a unei piste a discului (sunt precizate dou sectoare)

    Secvena circular de bii scris la rotaia complet a discuie se numete pist (track).

    Fiecare pist este mprit n sectoare de lungime fix, de obicei de cte 512 octei de date,

    precedai de un preambul care permite capului s se sincronizeze nainte de citire sau scriere.

    Dup zona de date urmeaz un cod corector de erori (ECC Error Correcting Code), fie un cod

    Hamming, fie un cod care poate corecta erori multiple numit Cod Reed Solomon.

    Sectoarele consecutive sunt separate de un spaiu ntre sectoare (Intersector gap).

    Capacitatea discului formatat este cu cca. 15% mai mic dect cea a discului neformatat. La

    fiecare distan radial poate fi scris o alt pist. Pistele (coroane circulare) sunt cercuri

    concentrice fa de axul discului.

    Cu tehnologia actual, discurile au ntre 800 i 2000 de piste pe centimetru, lrgimea

    pistei fiind ntre 5-10 microni. Discurile actuale ajung de la densiti de 50000 pn la 100000

    bii/cm. Astfel de discuri se numesc discuri Wincester. Majoritatea discurilor sunt constituite

    din mai multe platane suprapuse pe vertical.

    Fiecare platan dispune de propriul bra i cap. Braele sunt sudate ntre ele; la o

    deplasare ntr-o nou poziie radial sunt mutate toate odat. Setul de piste dintr-o poziie radial

    se numete cilindru.

    Factorii care influeneaz performanele discurilor sunt:

  • 23

    deplasare n poziia radial corect, cutare (seek);

    timpii medii de cutare (ntre piste alese aleatoriu) se situeaz n intervalul 5-15 msec.;

    latena de rotaie (rotational latency) necesar rotirii platanului astfel nct sectorul dorit s

    ajung sub capul de citire; ntrzierea medie: 4 8 msec. Majoritatea discurilor se rotesc la

    5400, 7200, 10800 rotaii/minut;

    timpul de transfer depinde de densitatea linear i de viteza de rotaie i are valori de 25

    100 microsecunde (la data de transfer 5 20 MB/sec., pentru un sector de 512 octei).

    Evident, timpul de cutare i latena sunt predominante n timpul de transfer. Fiecrui

    disc i este asociat un controlor de date (disk controller), un cip care controleaz dispozitivul.

    Printre sarcinile controlerului sunt :

    acceptarea comenzilor de la software, de tipul READ, WRITE, FORMAT;

    controlul micrii braului;

    detecia i corecia erorilor;

    conversia datelor citite din memorie;

    cnd controlorul descoper un sector defect, l nlocuiete cu unul din sectoarele libere

    rezervate n acest scop n cadrul fiecrui cilindru.

    Cea mai obinuit form de stocare de mas utilizat n prezent o reprezint stocarea pe

    disc. n aceast structur, stocarea datelor se face pe un disc subire care se nvrtete i care este

    acoperit cu o pelicul subire de material magnetic.

    Deasupra i/sau dedesubtul discului sunt plasate capete de citire/scriere, astfel nct, pe

    msur ce discul se rotete, fiecare cap parcurge un cerc denumit pist (track) care se afl pe

    suprafaa de sus sau jos a discului. Deoarece fiecare pist conine mai multe informaii dect

    vom dori s prelucrm la un moment dat, pistele sunt mprite n arce de cerc denumite

    sectoare, unde informaiile sunt nregistrate ca un ir continuu de bii.

    Prin repoziionarea capetelor de citire/scriere se obine acces la sectoare situate pe

    diferite piste concentrice. Pistele sunt compuse din mai multe sectoare individuale, fiecare dintre

    ele putnd fi tratate ca un ir de bii independent. Numrul de piste de pe suprafaa discului,

    precum i numrul de sectoare de pe o pist, difer de la un sistem la altul. Dimensiunile

    sectoarelor sunt n general fie de 512 octei, fie de 1024 octei.

  • 24

    Figura 1. 11 - Structura unui sistem de stocare pe disc

    Localizarea pistelor i sectoarelor nu reprezint ceva permanent n structura fizic a

    discului, ele sunt marcate magnetic printr-un proces denumit formatare (sau iniializare) a

    discului. Cele mai multe sisteme de calcul pot reformata discurile atunci cnd formatul acestuia

    nu este compatibil cu cel propriu. Reformatarea unui disc distruge toate informaiile stocate

    anterior pe el.

    Sistemele cu capacitate mic utilizeaz un singur disc, denumit i dischet/disc flexibil

    (floppy disk). Sunt disponibile in comer astfel de dischete. Dischetele au diametrul de 31/2 oli,

    si sunt introduse ntr-o carcas rigid de plastic. Dei capacitatea dischetelor este limitat la

    civa megaoctei (1,44 MB), ele au avantajul c se introduc i se scot uor n unitatea

    citire/scriere i sunt uor de pstrat. Dischetele reprezint o soluie bun pentru stocarea off-line

    a informaiilor.

    Discurile de mare capacitate, care pot stoca mai muli gigaoctei de date, constau dintr-un

    numr de cinci pn la zece discuri fixe, montate n paralel pe un ax comun, cu suficient spaiu

    ntre ele nct s permit accesul capetelor de citire/scriere. Deoarece aceste discuri sunt rigide,

    ele sunt cunoscute sub numele de hard-disc.

    n cazul acestor sisteme (hard-disc) capetele de citire/scriere nu ating suprafaa discului,

    ceea ce-i permite acestuia viteze mari de rotaie. Distana dintre capetele de citire/scriere i

    suprafaa dischetei este foarte mic, astfel nct o particul de praf se poate bloca ntre cap i

  • 25

    suprafaa discului deteriorndu-le pe amndou. Pentru prevenirea acestui fenomen hard-discul

    este nchis ntr-o carcas etan.

    Pentru evaluarea performanei discurilor se folosesc mai multe criterii (parametrii):

    timpul de cutare (seek time) = timpul necesar deplasrii capetelor de citire/scriere de la

    o pist la alta;

    timpul de ntrziere (rotation delay/latency time) = jumtate din timpul necesar pentru ca

    discul s efectueze o rotaie complet, respectiv timpul mediu n care datele respective

    ajung n poziia capului de citire/scriere dup ce acesta a fost adus la pista dorit;

    timpul de acces (access time) = suma dintre timpul de cutare i timpul de ntrziere;

    rata de transfer (transfer rate) a datelor ctre sau de la disc.

    Deoarece capetele de citire/scriere nu ating suprafaa discului, ele pot avea viteze de

    rotaie de cca. 50007000 rotaii/minut, n timp ce n cazul discurilor flexibile aceste viteze nu

    depesc 300 rotaii/minut. Rata de transfer a discurilor fixe se msoar n megabytes/secund,

    fa de cea a dischetelor care se msoar n kilobytes/ secund.

    Dac timpul de ntrziere se msoar, n cazul circuitelor electronice n nanosecunde

    (miliardimi de secund) i chiar mai mici, timpii de cutare, ntrziere i acces n cazul

    discurilor se msoar n milisecunde (miimi de secund).

    1.3.2. Discuri compacte

    Discul compact (CD) este compatibil cu cel utilizat n domeniul nregistrrilor muzicale,

    cu diferena c, pentru a obine rate ridicate de transfer al datelor, cititoarele de CD-uri din

    calculatoare, rotesc mult mai rapid discul. Aceste discuri, cu diametrul de cca. 5 oli, sunt

    confecionate dintr-un material reflectorizant, acoperit cu o pelicul protectoare transparent.

    nregistrarea informaiilor pe CD se face prin creare de striaii n adncimea suprafeei

    reflectorizante. Informaiile sunt stocate pe o singur pist care are form de spiral. Una din

    cele mai rspndite forme actuale de stocare a datelor pe compact-disc este reprezentat de

    dispozitivele ce pot fi numai citite, denumite CD-ROM (Compact disk read only memory).

    Capacitatea de stocare a acestor CD-ROM-uri este de 600 MB.

    Sunt, de asemenea, dispozitive si sisteme CD care permit si modificarea datelor stocate.

    Exist de asemenea sisteme care utilizeaz dispozitive magneto-optice pentru nregistrarea

  • 26

    informaiilor, topind suprafaa reflexiv de pe CD cu ajutorul unei raze laser i apoi rearanjnd-o

    prin intermediul unor cmpuri magnetice nainte ca aceasta s se rceasc.

    1.3.3. Benzi magnetice

    Dispozitivele de stocare mai vechi utilizeaz banda magnetic. Informaiile se

    nregistreaz pe o pelicul magnetic depus pe o band de material plastic, care este stocat pe

    un sir de role.

    Pentru acces la date, banda magnetic este introdus ntr-o unitate de band care poate

    derula banda, citi i scrie informaia sub controlul calculatorului. Exist i uniti de band

    magnetic cu cartu care utilizeaz casete. Depinznd de formatul utilizat, pe unele benzi

    magnetice pot fi stocate volume de ordinul gigabytes (GB).

    1.3.4. nregistrri logice i fizice

    Datele n memoria principal a unui calculator pot fi apelate la nivelul celulelor de

    memorie de dimensiunea unui octet. Proprietile fizice ale dispozitivelor de stocare de mas

    impun ca manipularea datelor stocate s se fac utiliznd uniti cu dimensiuni mai mari de un

    octet.

    Un bloc de date corespunztor caracteristicilor fizice ale unui dispozitiv de stocare este

    denumit nregistare fizic (phisycal record). n afara mpririi datelor n nregistrri fizice

    determinate de caracteristicile dispozitivului de stocare, fiierele stocate posed o diviziune

    natural, legat de structura aplicaiei din care fac parte.

    De exemplu, un fiier care conine informaii referitoare la angajaii unei firme este

    alctuit de obicei din blocuri de informaii referitoare la fiecare angajat. Aceste blocuri de date

    care apar n mod natural sunt denumite nregistrri logice (logical records).

    Dimensiunile nregistrrilor logice se potrivesc cu totul ntmpltor ca lungime (mrime)

    cu dimensiunile nregistrrilor fizice impuse (ca mrime) de un dispozitiv de stocare. n

    consecin este posibil s existe mai multe nregistrri logice stocate ca o singur nregistrare

    fizic sau o nregistrare logic stocat pe mai multe nregistrri fizice. n acest spirit, pentru

  • 27

    recuperarea datelor de pe sistemele de stocare de mas este necesar o anumit activitate de

    decodificare.

    1.4. Codificarea utilizat pentru stocarea informaiilor

    n continuare vor fi studiate mai n amnunt tehnicile utilizate pentru reprezentarea

    informaiilor sub forma unor iruri de bii.

    1.4.1. Reprezentarea simbolurilor

    Reprezentarea datelor ntr-un calculator se realizeaz prin proiectarea unui cod n care

    diferite simboluri (litere alfabetice, semne de punctuaie etc.) au asociate abloane (modele) de

    bii unice pentru ca informaia sa poata fi stocata sub forma unor propoziii codificate pe

    suportul magnetic. Astfel au fost create i folosite diverse coduri pentru diferite echipamente,

    acest lucru avnd ca efect apariia i proliferarea problemelor de comunicaie.

    Pentru a remedia aceast situaie, Institutul American pentru Standarde (American

    National Standards Institute ANSI) a adoptat codul American Standard Code form

    Information Interchange (ASCII).

    Acest cod utilizeaz modele cu o lungime de apte bii pentru reprezentarea literelor mari

    i mici ale alfabetului englez, semnelor de punctuaie, cifrelor de la 0 la 9, precum i a anumitor

    caractere de control (trecere rndul urmtor line feed, revenire la marginea din stnga a

    rndului carriage return, tabulator tab).

    n prezent codul ASCII este extins la un format de opt bii pe simbol, prin adugarea uni

    zero pe poziia celui mai semnificativ bit n faa fiecrui ablon al vechiului cod pe apte bii.

    Exist i alte coduri mai puternice capabile s reprezinte documente scrise ntr-o

    varietate de limbaje. Ele utilizeaz abloane (modele) pe 16 bii (65.536 abloane diferite) sau

    chiar pe 32 bii (peste 17 milioane de abloane). [Unicode, cod dezvoltat de I S O (International

    Standard Organisation).]

  • 28

    1.4.2. Reprezentarea valorilor numerice

    Metodele de stocare a informaiilor sunt ineficiente atunci cnd informaiile ce trebuie memorate sunt de natur numeric. Pentru nelegere, s presupunem c vrem s stocm nr. 99

    sub forma unor simboluri ASCII; sunt necesari 16 bii, dar observm c acesta este cel mai mare

    numr stocabil pe 16 bii.

    O abordare mult mai eficient este stocarea valorii reprezentate n baza doi (binar).

    n notaia binar (baza doi) poziia fiecrei cifre este asociat cu o anumit pondere,

    numai c ponderea asociat fiecrei poziii este de dou ori mai mare dect ponderea poziiei din

    dreapa. Mai exact, cifra cea mai din dreapta a unei reprezentri binare are asociat ponderea 1

    (20), urmtoarea poziie n stnga cu 2 (21) i aa mai departe.

    Figura 1.12 - Sistemul zecimal de numeraie

    Figura 1.13 - Sistemul binar de numeraie

    Pentru a afla valoarea unei reprezentri n binar, vom nmuli valoarea fiecrei cifre cu

    ponderea asociat poziiei sale i vom aduna rezultatele.

  • 29

    Figura 1.14 - Decodificarea reprezentrii binare 100101

    Pentru a afla reprezentarea n binar exist un algoritm clasic.

    Pasul 1. Se mparte valoarea la doi i se memoreaz restul.

    Pasul 2. Ct timp ctul obinut difer de zero, se continu mprirea noului

    ct la doi, memorndu-se restul.

    Pasul 3. Cnd s-a obinut un ct egal cu zero, reprezentarea n binar a

    valorii iniiale const din resturile mpririlor afiate de la dreapta

    la stnga n ordinea n care au fost memorate.

  • 30

    Figura 1.15 - Reprezentarea n binar a numrului treisprezece

    1.4.3. Reprezentarea altor tipuri de date

    Aplicaiile utilizate n informatica implica si folosirea de imagini, sunete, secvene video.

    Tehnicile pentru reprezentarea acestor categorii de date nu sunt nc global standardizate la nivel

    mondial.

    Una din metodele utilizate pentru stocarea imaginilor este considerarea imaginii ca o

    colecie (suma) de puncte (pixel picture element). n forma cea mai simpl, o imagine alb-

    negru poate fi codificat ca un lung ir de bii ce reprezint liniile de pixeli, unde fiecare bit are

    valoarea 1 sau 0, funcie de culoarea alb sau negru.

    Reprezentrile de acest tip sunt cunoscute sub numele de hri de bii (bit maps), deci

    irul de bii nu este altceva dect o hart a imaginii reprezentate. Sistemele "populare" de

    hri de bii includ fiiere de tip T I F F (Tag Image Format File) i G I F (Graphic

    Interchange Format). Fotografiile sunt prezentate ca hri de bii prin fiiere n format JPEG

    (Joint Photographic Experts Group).

    n cadrul acestor reprezentri acestor fiier imaginea nu poate fi scalat la o dimensiune

    arbitrar. Exist posibilitatea scalrii imaginii prin memorare ca un set de directive care

    precizeaz modul de desenare. Acest mod de precizare a modului de desenare furnizeaz o

  • 31

    descriere compatibil cu orice mrime a unitilor sistemului de coordonate care ar putea fi

    specificat atunci cnd se afieaz imaginea.

    De asemenea, tot metode de reprezentare a datelor sunt i MPEG (Motion Picture

    Experts Group) tehnic pentru date video i audio, i D X F (Drowing Interchange Format)

    utilizat la sisteme de proiectare asistat de calculator, unde imaginile trebuie rotite i

    redimensionate pe ecranul monitorului.

    1.5. Sistemul binar de numeraie

    Pentru studierea tehnicilor de stocare a valorilor numerice utilizate la calculatoarele de

    astzi, trebuie mai nti cunoscut sistemul de reprezentare binar.

    1.5.1. Adunarea n binar

    Pentru a aduna dou valori reprezentate n notaia binar, se procedeaz astfel:

    Se adun cifrele din coloana cea mai din dreapta, se scrie cifra cea mai puin

    semnificativ a acestei sume sub coloan, se transport cea mai semnificativ cifr a sumei (dac

    exist) n urmtoarea coloan din stnga i se adun apoi coloana respectiv.

    Exemplu : 0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    Se adun cifrele cele mai din dreapta 0 i 1 i obinem cifra 1, pe care o scriem sub

    coloana respectiv.

    0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    1

    Se adun apoi 1 i 1 din coloana urmtoare, obinnd rezultatul 10. Vom scrie 0 sub

    coloan i vom transfera cifra 1 deasupra coloanei urmtoare.

  • 32

    1

    0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    1 0 1

    Se adun cifrele 1, 0 i 0 din coloana urmtoare, obinnd rezultatul 1, i vom scrie 1 sub

    coloan.

    Cifrele din coloana urmtoare 1 i 1 dau ca rezultat al adunrii 10; se va scrie cifra 0 sub

    coloana respectiv i vom transfera cifra 1 deasupra coloanei urmtoare.

    1

    0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    0 1 0 1

    Adunm cifrele 1, 1 i 1 din aceast coloan i obinem 11; se va scrie cifra 1 sub

    coloana respectiv i vom transfera cifra 1 deasupra coloanei urmtoare.

    1

    0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    1 0 1 0 1

    Se va continua n acelai fel, obinnd n final:

    0 0 1 1 1 0 1 0

    + 0 0 0 1 1 0 1 1

    0 1 0 1 0 1 0 1

    1.5.2. Reprezentarea fraciilor n sistemul binar

    Pentru extinderea notaiei binare, pentru a fi adecvat reprezentrii valorilor fracionare,

    se va utiliza notaia n virgul fix (radix point). Aceasta nseamn c cifrele de la stnga

    virgulei mobile (punctului) reprezint partea ntreag a valorii i sunt interpretate ca n sistemul

  • 33

    binar, iar cifrele din dreapta punctului reprezint partea fracionar a valorii i sunt interpretate

    ntr-o manier similar, poziiile lor avnd asociate ponderi fracionare.

    Astfel prima poziie din dreapta punctului are atribuit ponderea 1/2, urmtoarea 1/4,

    apoi 1/8 i aa mai departe. Rezult c regula aplicat anterior rmne valabil, fiecare poziie

    are o pondere alocat de dou ori mai mare dect cea a poziiei din dreapta sa.

    Exemplu :

    Figura 1.16 - Decodificarea reprezentrii binare 101 . 101

    Pentru a aduna dou reprezentri binare n virgul fix, se vor alinia unul sub altul

    punctele de separare ntre partea ntreag i cea fracionar i se va aplica acelai proces de

    adunare ca i cel prezentat anterior.

    Exemplu :

    1 0 0 1 1

    + 1 0 0 1 1

    1 1 1 0 0 1

    2

  • 34

    1.6. Stocarea numerelor ntregi

    Adesea avem nevoie s memorm att valori pozitive ct i valori negative, deci este

    nevoie de un sistem de notare care s reprezinte ambele categorii de numere (pozitive i

    negative).

    Sistemele de notaie pentru reprezentarea ambelor categorii de numere pot folosi circuite

    electronice realizate i utilizate pe scar larg n cadrul echipamentelor de calcul. Vom prezenta

    n continuare dou astfel de sisteme de notaie: notaia n exces (excess notation) i notaia n

    complement fa de doi (two's complement notation).

    1.6.1. Notaia n exces

    Valorile din sistemul de reprezentare n exces sunt codificate utiliznd cuvinte binare de

    aceeai lungime. Pentru realizarea unui sistem de notaie n exces se stabilete mai nti

    lungimea cuvintelor binare utilizate, apoi scriem una sub alta toate combinaiile posibile n

    ordinea n care ar aprea dac am numra n binar.

    n aceast niruire observm c primul cuvnt binar care are pe poziia biului cel mai

    semnificativ valoarea 1 survine aproximativ la jumtatea listei.

    se va considera c acest model reprezint valoarea 0.

    cuvintele binare care urmeaz reprezint valorile 1, 2, 3,...

    cuvintele binare care-l preced sunt utilizate pentru codificarea valorilor negative -1, -

    2, -3,...

  • 35

    Figura 1.17 - Tabel conversie pentru sistemul de notaie n exces cu opt

    Figura 1.18 - Sistemul de notaie n exces care utilizeaza cuvinte cu lungimea de trei bii

    1.6.2. Notaia n complement fa de doi

    Cel mai folosit sistem de reprezentare a numerelor ntregi n informatica este notaia n

    complement fa de doi (two's complement notation). Acest sistem utilizeaz un numr fix de

    bii pentru reprezentarea valorilor din cadrul sistemului. n figurile 1.13.1 si 1.13.2. sunt

    prezentate sistemele n complement fa de doi bazate pe cuvinte de cod cu lungimea de trei i

  • 36

    patru. Pentru construcia unui astfel de sistem se ncepe cu un ir de bii cu valoarea 0 de

    lungime adecvat i apoi se numr n binar pn cnd se ajunge la un ir de bii care ncepe cu

    un bit 0, iar toi ceilali bii sunt 1. Cuvintele obinute astfel reprezint valorile 0, 1, 2, 3,...

    Utiliznd cuvinte binare de lungime trei bii :

    Figura 1.19 - Sisteme de notaie n complement fa de doi (trei bii)

    Utiliznd cuvinte binare de lungime patru bii :

    Figura 1.20 - Sisteme de notaie n complement fa de doi (patru bii)

  • 37

    Cuvintele care reprezint valorile negative se obin ncepnd cu un ir de bii cu valoarea

    1 i numrul n sens descresctor, pn la atingerea cuvntului care ncepe cu un bi 1 i are toi

    ceilali bii 0. Cuvintele astfel obinute reprezint valorile -1, -2, -3,...

    Se observ c bitul de semn, n notaia n complement fa de doi, este 1 pentru valorile

    negative i 0 pentru valorile pozitive. Complementul unui cuvnt binar este cuvntul obinut prin

    schimbarea tuturor biilor de 1 n valoarea 0, respectiv a tuturor biilor 0 n 1; cuvntul 0110 este

    complementul lui 1001 i invers.

    n sistemul de codificare n complement fa de doi pe 4 bii din figura 1.13.2., cuvintele

    care reprezint valorile 2 i -2 se termin amndou n 10, cuvntul corespunztor valorii 1

    ncepe cu 00, iar reprezentarea valorii -2 ncepe cu 11. Aceast observaie conduce la realizarea

    unui algoritm care s permit obinerea reprezentrii binare pentru valori de semne contrare, dar

    care au acelai modul.

    Vom copia cuvntul original ncepnd de la dreapta pn dup apariia unui bit cu

    valoarea 1, apoi vom face complementul biilor rmai (vom schimba toi biii 1 rmai n 0 i

    toi biii 0 n 1) pe msur ce-i copiem.

    Figura 1.21 - Codificarea valorii -6 n complement fa de doi utiliznd 4 bii

  • 38

    Aceste proprieti elementare ale sistemelor n complement fa de doi conduc la

    obinerea unui algoritm pentru decodificarea reprezentrilor n complement fa de doi.

    Dac modelul (ablonul) ce trebuie decodificat are bitul de semn 0, se va citi direct

    valoarea ca i cum cuvntul ar fi o reprezentare binar (ex. 0110 reprezint valoarea binar 110,

    adic 6). Dac ablonul care trebuie decodificat are bitul de semn 1, se va nelege c valoarea

    reprezentat este negativ i trebuie gsit modulul acestei valori. Modulul cutat se va

    determina copiind cuvntul original de la dreapta la stnga, pn la primul bit egal cu 1 (inclusiv

    acesta), apoi vom complementa biii rmai i i vom scrie n continuare tot de la dreapta la

    stnga (lng biii deja copiai), iar n final vom decodifica cuvntul obinut ca i cnd ar fi o

    reprezentare binar normal (ex. decodificm 1010; bitul de semn este 1, deci valoarea

    numrului este negativ; convertim cuvntul i obinem 0110, ceea ce corespunde valorii 6, deci

    ablonul original reprezint valoarea -6).

    1.6.3. Adunarea numerelor reprezentate n complement fa de doi

    Pentru adunarea valorilor reprezentate n complement fa de doi se aplic acelai

    algoritm ca i pentru adunarea n binar, cu excepia faptului c toate cuvintele binare, inclusiv

    rezultatul, au aceai lungime. Altfel spus, la adunarea n complement fa de doi, orice bit

    suplimentar generat la stnga rspunsului de ctre un transport final va fi eliminat.

    De exemplu: 0 1 0 1 0 1 1 1

    0 0 1 0 1 0 1 1

    0 1 1 1 0 0 1 0

    Acceptnd aceast convenie, s considerm urmtoarele trei probleme de adunare:

    3 0 0 1 1 (-3) 1 1 0 1

    +2 +0 0 1 0 + (-2) + 1 1 1 0

    0 1 0 1 5 1 0 1 1 -5

  • 39

    7 0 1 1 1

    +(-5) +1 0 1 1

    0 0 1 0 2

    Figura 1.22 - Probleme de adunare utiliznd notaia n complement fa de 2

    n fiecare caz n parte, vom codifica valorile utiliznd notaia n complement fa de doi

    (pe patru bii), vom efectua adunarea procednd aa cum s-a descris anterior i vom decodifica

    rezultatul napoi la notaia zecimal.

    Se observ c, prin trecerea la notaia n complement fa de doi, putem calcula rspunsul

    corect aplicnd n toate cazurile acelai algoritm de adunare. Dac am folosi tehnicile uzuale, a

    treia problem ar fi de fapt un proces complet diferit de primele dou; este vorba de operaia de

    scdere. Deci, n calculatorul care utilizeaz notaia n complement fa de doi se realizeaz

    numai adunare i negarea biilor.

    n consecint, dac n calculator se dorete scderea lui 5 (0101) din 7 (0111), mai nti

    va fi schimbat n -5 (1011) i apoi se va efectua adunarea 0111 + 1011 = 0010, ceea ce

    reprezint valoarea 2.

    n ceea ce privete nmulirea, ea este o adunare repetat, iar mprirea o scdere

    repetat (ex. 6:2 reprezint de fapt de cte ori poate fi sczut 2 din 6 fr s se obin un rezultat

    negativ).

    Astfel putem efectua toate cele patru operaii aritmetice standard (adunarea, scderea,

    nmulirea i mprirea) utiliznd un circuit pentru adunare combinat cu un circuit pentru

    negarea unei valori.

    1.6.4. Problema depirii superioare

    n oricare din sistemele de numeraie pe care le-am prezentat exist o limit privind

    mrimea pe care pot s o reprezinte valoric. La utilizarea notaiei n complement fa de doi cu

    cuvinte de patru bii, valoarea 9 nu are asociat un model (ablon), deci nu putem efectua corect

    adunarea 5+4.

  • 40

    O problem similar apare la utilizarea de cuvinte de cinci bii;de ex. s ncercm s

    reprezentm valoarea 17, apar erori. Aceste erori se numesc depiri superioare (overflow).

    Depirea superioar, la utilizarea notaiei n complement fa de doi, poate apare la adunarea a

    dou valori negative sau pozitive.

    Depirea poate fi detectat prin verificarea bitului de semn al rspunsului. Altfel spus,

    dac rezultatul adunrii a dou valori pozitive/ negative apare ca fiind negativ/pozitiv, este

    semnalata depasirea superioara.

    Deoarece calculatorul manipuleaz cuvinte mult mai lungi dect cele precizate mai sus (3

    bii/4 bii), valorile mari pot fi prelucrate fr s apar o valoare de depire (de exemplu, pentru

    calculatoarele care utilizeaz cuvinte de 32 de bii pentru stocare, n notaia n complement fa

    de doi, este posibil lucrul cu valori de pn la 2.147.483.647, fr apariia depirii superioare).

    Dac sunt necesare valori i mai mari, se folosete metoda denumit dubla precizie

    (double precision). Aceast metod permite ca lungimea cuvintelor utilizate s fie mrit fa de

    cea utilizat de obicei de ctre calculator. Exist i alte soluii, cum ar fi schimbarea unitii de

    msur cu pstrarea preciziei impuse.

    1.7. Stocarea numerelor fracionare

    n acest caz trebuie memorat i poziia virgulei zecimale nu numai modelele

    (abloanele) de 0 i 1. Metoda uzual pentru a face acest lucru se numete notaia n virgul

    mobil (floating point notation).

    1.7.1. Notaia n virgul mobil

    Vom explica notaia n virgul mobil printr-un exemplu care utilizeaz numai un octet

    pentru efectuarea stocrii.

    Cel mai semnificativ bit din cadrul octetului este bitul de semn. Dac bitul de semn este

    0, valoarea stocat este pozitiv; iar dac este 1, valoarea stocat este negativ. mprim cei

    apte bii rmai n dou grupuri/cmpuri: cmpul exponentului (exponent field) i cmpul

    mantisei (mantissa fied). Considerm trei bii, care urmeaz dup bitul de semn, ca fiind cmpul

    exponentului, iar cei patru bii rmai ca fiind cmpul mantisei :

  • 41

    Figura 1.23 - Elemente ale notaiei n virgul mobil

    Se poate explica semnificaia acestor cmpuri considernd urmtorul exemplu. Octetul

    conine irul de bii 01101011. Deci, bitul de semn = 0, exponentul = 110, mantisa = 1011.

    Pentru a decodifica octetul, extragem mai nti mantisa i plasm n stnga ei o virgul

    zecimal, obinnd 1011.

    Extragem apoi coninutul cmpului exponentului (110) i-l interpretm ca pe un ntreg

    stocat utiliznd metode n exces pe trei bii, n cazul nostru reprezint valoarea pozitiv 2. Acest

    fapt ne precizeaz c trebuie s mutm virgula la dreapta cu doi bii (un exponent negativ

    nseamn c virgula trebuie deplasat la stnga). n cazul nostru obinem : 10 11 ceea ce

    nseamn 23/4.

    Observm c bitul de semn din exemplul considerat este 0, deci valoarea reprezentat

    este pozitiv. Vom trage concluzia c 01101011 reprezint valoarea 23/4.

    Pentru a stoca o valoare utiliznd notaia n virgul mobil, vom proceda n sens invers

    dect n prezentarea de mai sus. De exemplu, pentru a codifica valoarea 11/8, o vom exprima

    mai nti in notaia binar 1.001 vom copia apoi cuvntul binar n cmpul rezervat mantisei de la

    stnga la dreapta, ncepnd cu primul bit diferit de zero din reprezentarea binar.

    Octetul arat astfel :

    1 0 0 1

  • 42

    Acum trebuie completat cmpul exponentului. Ne imaginm coninutul cmpului

    mantisei avnd o virgul zecimal la stnga i vom determina numrul de bii i direcia n care

    trebuie s fie deplasat virgula pentru a se obine numrul binar iniial.

    n exemplul nostru, observm c virgula din .1001 trebuie deplasat cu un bit la dreapta

    pentru a obine 1.001. Din aceast cauz, exponentul trebuie s aib valoarea pozitiv 1; vom

    plasa combinaia 101 (care este reprezentarea valorii pozitive 1, n exces cu patru) n cmpul

    exponentului:

    1 0 1 1 0 0 1

    exponent

    n final vom nscrie 0 n bitul de semn, deoarece valoarea stocat este pozitiv; la sfrit

    octetul arat astfel :

    0 1 0 1 1 0 0 1

    semn

    1.7.2. Erori de rotunjire

    S studiem ncercarea stocrii valorii 25/8 utiliznd sistemul n virgul mobil pe un octet

    (prezentat anterior). Scriem mai nti valoarea 25/8 n binar : 10.101. La copierea acestui

    rezultat n cmpul mantisei, vom descoperi c nu avem suficient spaiu i, ca urmare, ultimul 1

    (cel care orespunde ultimului 1/8) se va pierde.

    Figura 1.24 - Codificarea valorii 25/8

  • 43

    Dac ignorm aceast problem i continum completarea cmpului exponentului i a

    bitului de semn, obinem cuvntul:

    0 1 1 0 1 0 1 0

    bit de exponentul 2 pentru notaia n exces

    semn pentru exprimare pe 4 bii

    Acest cuvnt ns reprezint valoarea 21/2.

    Ceea ce s-a ntmplat poart numele de eroare de rotunjire {round - off error), cauzat

    n acest caz de lungimea prea mic a cmpului de primire a mantisei.

    Soluia pentru rezolvarea acestei probleme este creterea dimensiunii cmpului mantisei,

    ceea ce se ntmpl n cazul calculatoarelor reale.De obicei, pentru stocarea valorilor n virgul

    mobil se utilizeaz cel puin 32 bii; dac nici n acest mod nu se rezolv problema, se poate

    aplica conceptul de dubl precizie.

    1.8. Erori de comunicaie

    La transferarea informaiilor ntre diverse componente ale calculatorului sau n cazul

    stocrii datelor, exist posibilitatea ca irul de bii primit napoi s nu fie identic cu cel original.

    Pentru rezolvarea unor asemenea probleme, au fost dezvoltate diferite tehnici de

    codificare care permit detectarea i corectarea erorilor. n prezent, datorit faptului c aceste

    tehnici de codificare sunt implementate pe scar larg n componentele inteme ale sistemelor de

    calcul, ele sunt invizibile pentru cei care utilizeaz calculatoarele, dar pe ele se bazeaz

    fiabilitatea echipamentelor actuale.

    1.8.1. Bii de paritate

    O metod simpl pentru detectarea erorilor se bazeaz pe urmatoarea regula : dac fiecare

    cuvnt binar manipulat are un numr impar de bii de 1, apariia unui cuvnt cu un numr par de

  • 44

    bii de 1 semnaleaz o eroare. Pentru a folosi aceast regul, avem nevoie de un sistem n care

    fiecare cuvnt binar s conin un numr impar de bii 1, ceea ce se obine uor prin adugarea

    unui bit suplimentar, bitul de paritate (parity bit).

    Bitul de paritate se plaseaz pe poziia bitului cel mai semnificativ, deci codul de opt bii

    devine un cod de nou bii.

    Bitul de paritate va lua valoare 0 sau 1, astfel nct cuvntul rezultat s aibe un numr

    impar de 1.

    Figura 1.25 - Modificarea codurilor ASCII pentru caracterele A si I, astfel

    nct s aibe paritatea impar

    Dup aceast modificare ( precizat in figura de mai sus pentru caracterele A i I ),

    ambele cuvinte vor avea nou bii i conin un numr impar de bii 1. Dup aceast modificare a

    sistemului de codificare, un cuvnt cu un numr par de bii 1 semnaleaz faptul c s-a produs o

    eroare i deci cuvntul respectiv este incorect. Sistemul de paritate descris poart numele de

    paritate impar (odd parity), deoarece fiecare cuvnt conine un numr impar de bii 1.

  • 45

    O alt tehnic utilizeaz paritatea par (even parity). n aceast tehnic, fiecare cuvnt

    trebuie s conin un numr par de bii 1, iar prezena unei erori este semnalat de apariia unui

    cuvnt cu un numr impar de bii 1. irurile lungi de bii sunt nsoite adesea de un grup de bii

    de paritate dispui ntr-un octet de control (checkbyte).

    Printre variantele principiului de verificare cu octet de control, se numr schemele de

    detecie a erorilor numite semne de control (checksums) i control de coduri ciclice (cyclic

    redundancy check CRC).

    1.8.2. Coduri corectoare de erori

    Bitul de paritate permite detectarea unei erori singulare, dar nu furnizeaz informaia

    necesar pentru corectarea erorii. Pot fi, ns, concepute coduri corectoare de erori (error

    corecting codes) care nu numai c detecteaz erorile, dar le i corecteaz.

    Intuitiv, se poate crede c nu poate fi corectat informaia dintr-un mesaj, dect dac se

    cunoate informaia coninut de mesaj.Contrarul acestei afirmatii se va demonstra in

    continuare. Pentru a nelege modul de funcionare a codului corector de erori, vom defini

    distana Hemming dintre dou numere binare. Distana Hemming ntre dou numere binare este

    numrul de bii prin care difer cele dou cuvinte.

    Figura 1.26 Exemplu de cod corector de erori

  • 46

    Exemplu: n figura de mai sus, distana Hemming dintre simbolurile A i B n codul

    prezentat este patru, dintre B i C este trei.

    Caracteristica important a codului prezentat este c oricare dou cuvinte de cod sunt

    separate de o distan Hemming de cel puin trei biti. Altfel spus, trebuie s modificm cel puin

    patru bii n cod pentru a apare un alt cuvnt din lista propus de coduri.

    S presupunem c recepionm 010100. Dac comparm acest cuvnt binar cu lista de

    coduri propus n fig. 1.26, obinem distanele din figura 1.27. Vom putea trage concluzia c a

    fost transmis caracterul D, acesta fiind cel mai apropiat de codul recepionat.

    Cu ct distana Hemming dintre dou coduri utilizate este mai mare, cu att de pot

    detecta i corecta mai multe erori.

    Figura 1.27 - Decodificarea cuvntului 010100 utiliznd codul din figura 1.26

  • 47

    TEST AUTOEVALUARE 1 (Stocarea datelor)

    1. Care din urmatoarele reprezentari zecimale este egala cu valoarea binara : 111.01001

    1. 7 5/32

    2. 7 9/32

    3. 7 7/16

    2. Care din urmatoarele reprezentari zecimale este egala cu valoarea octala : 71.15

    1. 58 11/64

    2. 57 13/64

    3. 59 17/64

    3. Care dintre urmatoarele afirmatii despre memoria interna (RAM) este falsa :

    1. poate fi doar citita

    2. de regula are componente electromecanice in miscare

    3. informatia dispare la scoaterea de sub tensiune

    4. Care din urmatoarele reprezentari zecimale este egala cu valoarea hexazecimala

    41A.0CA:

    1. 1050 202/4096

    2. 1060 198/4096

    3. 1030 214/4096

    5. Convertiti urmatoarea fractie ordinara : - 1 (10) in informatii stocate intr-un octet,

    folosind notatia in virgula mobila.

    Se va utiliza notatia in exces pe trei biti.

    111.3

    110.2

    101.1

    100.0

    011-1

    010-2

    001... -3

    000.. -4

  • 48

    6. Convertiti in baza opt urmatoarele siruri de biti :

    1. 1011011. 1011 011

    2. 11101011. 1010101010101

    7. Care sunt sirurile de biti reprezentate de urmatoarele numere hexazecimale :

    1. BAF61C. 6A11

    2. 11010.1101111

    8. Convertii fiecare dintre urmtoarele reprezentri octale n forma zecinala (baza 10)

    echivalent :

    1. 6714. 1062

    2. 314281. 217

    9. Convertii fiecare dintre urmtoarele reprezentri binare n forma intreg si fractie

    ordinara echivalent :

    1. 1 0 0 1 . 0 1 0 1

    2. 0 . 1 0 1 1 0 1

    10. Exista urmatoarele informatii stocate intr-un octet, folosind notatia in virgula mobila :

    1. 1 010 1 0 0 1

    Calculati valoarea in baza 10 a sirului de biti de mai sus.

    Pentru rezolvare utilizati urmatoarea notatie in exces pe trei biti

    111.3

    110.2

    101.1

    100.0

    011-1

    010-2

    001... -3

    000.. -4

  • 49

    11. Care din urmatoarele reprezentari zecimale este egala cu valoarea binara : 1010.0111

    1. 10 3/4

    2. 10 7/16

    3. 10 11/64

    12. Care dintre urmatoarele afirmatii despre memoria interna (RAM) este adevarata :

    1. poate fi doar citita

    2. de regula are componente electromecanice in miscare

    3. informatia dispare la scoaterea de sub tensiune

    13. Convertiti urmatoarea fractie ordinara : - 2 (10) in informatii stocate in mantisa unui

    octet, folosind notatia in virgula mobila. Se va utiliza notatia in exces pe trei biti.

    111.3

    110.2

    101.1

    100.0

    011-1

    010-2

    001... -3

    000.. -4

    14. Utilizati notatia hexazecimala pentru a reprezenta urmatoarele siruri de biti :

    1. 1101101.110 011

    2. 11101001011.1010101010101

    15. Convertiti in baza opt urmatoarele siruri de biti :

    1. 1101101.110 011

    2. 1110100.10111010101

    16. Exista urmatoarele informatii stocate intr-un octet, folosind notatia in virgula mobila :

    1. 1 1 1 1 1 0 0 1

    Convertiti sirurul de biti de mai sus in valoarea lor in baza 10

    Pentru rezolvare utilizati urmatoarea notatie in exces pe trei biti

    111.3

    110.2

  • 50

    101.1

    100.0

    011-1

    010-2

    001... -3

    000.. -4

    17. Utilizati notatia hexazecimala pentru a reprezenta urmatoarele siruri de biti :

    1. 10110110.1110 011

    2. 1110100101.11010101010101

    18. Se considera urmatoarea reprezentare a numerelor binare in complement fata de doi:

    0111.7

    0110.6

    0101.5

    0100.4

    0011.3

    0010.2

    0001.1

    0000.0

    1111-1

    1110-2

    1101-3

    1100-4

    1011-5

    1010................................-6

    1001-7

    1000-8

    Efectuati adunarile 7+4 ; si scaderea 6 - 2.

    Detaliati modul de rezolvare a fiecarei operatii solicitate.

  • 51

    19. Care din sirurile de mai jos ar putea reprezenta un numar scris in baza hexa (16) :

    1. 10010

    2. 101011

    3. 10111

    20. Care dintre urmatoarele afirmatii despre memoria externa (CD-W, HDD, DVD-W,

    discheta) este adevarata

    1. poate fi doar citita

    2. informatia dispare la scoaterea de sub tensiune

    3. de regula are componente electromecanice in miscare

    22. Care dintre urmatoarele afirmatii despre memoria externa (CD-W, HDD, DVD-W,

    discheta) este falsa :

    1. poate fi doar citita

    2. informatia dispare la scoaterea de sub tensiune

    3. de regula are componente electromecanice in miscare

  • 52

    UNITATEA DE NVARE 2

    2. Manipularea datelor

    2.1. Unitatea central de prelucrare

    Circuitele care realizeaz diferite operaii asupra datelor nu sunt conectate direct la

    celulele memoriei principale. Aceste circuite sunt grupate n unitatea central de prelucrare

    (central processing unit CPU). Unitatea central de prelucrare (CPU) se compune din:

    unitatea aritmetico-logic (aritmetic/logic unit) conine circuitele care realizeaz

    manipularea datelor ;

    unitatea de comand (control unit) conine circuitele utilizate pentru coordonarea

    activitii calculatorului.

    registri (registrele)

    n figura de mai jos este prezentat organizarea unui calculator [simplu] construit n jurul

    unei magistrale. Unitatea Central de Prelucrare (UCP/CPU Control Processing Unit),

    creierul calculatorului, are rolul de a executa programele pstrate n memoria principal prin

    extragerea instruciunilor componente ale unui program, examinarea lor i execuia lor

    secvenial (una dup alta).

    Componentele sunt conectate printr-o magistral (bus), format dintr-o mulime de ci

    paralele prin care sunt transmise adrese, date i semnale de control. Magistralele se pot afla att

    n exteriorul UCP, conectnd-o cu memoria i dispozitivele de intrare/ieire, ct i n interiorul

    UCP. Aceasta este alctuit din mai multe componente :

    Unitatea de control care rspunde de extragerea instruciunilor din memoria

    principal i de determinarea tipului [lor] fiecruia.

    Unitatea aritmetic i logic execut operaii necesare pentru ndeplinirea

    instruciunilor (SI logic, SAU logic, ).

  • 53

    Figura 2.1 - Organizarea unui calculator simplu

    UCP conine de asemenea i o memorie special foarte rapid, folosit pentru

    depozitarea rezultatelor temporare, precum i a unor informaii de control. Aceast memorie este

    format dintr-un numr de registre, fiecare cu o anumit dimensiune i o anumit funciune.

    Principalele registre sunt:

    contorul de program (PC Program Computer) el indic urmtoarea instruciune

    care va fi extras pentru execuie;

    registrul de instruciuni (Instruction Register IR), n care se pstreaz

    instruciunea n execuie.

    Interfaa CPU / Memorie

    Transferarea cuvintelor binare ntre unitatea central a unui calculator i memoria

    principal se realizeaz prin conectarea acestora printr-un grup de fire denumite magistral

    Prin intermediul magistralei, unitatea central poate s extrag (s citeasc)/s plaseze (s scrie)

    date din/n memoria principal, furniznd adresa celulei de memorie dorite, mpreun cu un

    semnal de citire. Analiznd acest mecanism, observm c presupune att implicarea unitii de

    comand ct i a unitii aritmetico-logice.

  • 54

    Figura 2.2 - Arhitectura unitate central de prelucrare/memorie principal

    Organizarea CPU-ului Von Neumann (tipic)

    Aceast parte se numete calea de date (data path) i include pn la 32 de registre,

    Unitatea aritmetic i logic (UAL) i mai multe magistrale de legtur. Registrele trimit datele

    n cele dou registre de intrare ale UAL, notate cu A i B, care le pstreaz n timp ce UAL face

    calculele.

    Figura 2.3 - Calea de date a unei maini Von Neumann (adunarea)

  • 55

    Dup ce UAL execut cu datele de intrare, adunri, scderi i alte operaii simple,

    transmite rezultatul n registrul de ieire. Majoritatea instruciunilor executate de UAP sunt de

    tip: registru-memorie, registru-registru. Instruciunile registru-memorie permit cuvintelor din

    memorie s fie ncrcate n registre, de unde sunt folosite ca date de intrare pentru UAL n

    instruciunile urmtoare.

    Instruciunile registru-registru extrag doi operanzi din registre, i aduc n registrele de

    intrare UAL, execut o operaie oarecare asupra lor (adunare, SI logic, ) i depun rezultatul

    napoi ntr-unul din registre. Acest ultim proces se numete ciclul cii de date (Data path cycle)

    i reprezint inima celor mai multe UCP-uri. Cu ct acest ciclu este mai rapid, cu att maina

    merge mai repede.

    2.2. Execuia instruciunilor

    UCP execut fiecare instruciune printr-o serie de pai mici, dup cum urmeaz :

    a. transformarea instruciunii urmtoare din memorie n registrul de instruciuni;

    b. schimbarea contorului de program, pentru a indica instruciunea urmtoare;

    c. determinarea tipului instruciunii proaspt extrase;

    d. dac instruciunea are nevoie de un cuvnt din [spaiul] de memorie, determinarea

    locului unde se gsete acesta;

    e. extragerea cuvntului ntr-unul din registrele UCP, dac este cazul;

    f. executarea instruciunii;

    g. reluarea pasului a pentru a ncepe execuia instruciunii urmtoare.

    Aceast secven [de pai] se mai numete ciclul extrageredecodificareexecuie

    (fetchdecodeexecute). n fig. 2.4 este prezentat n detaliu procesul adunrii a dou valori

    stocate n memorie.

    Instruciuni n cod main

    Instruciunile prezentate n fig. 2.4 reprezint instruciuni executabile de ctre unitatea

    central de prelucrare i poart denumirea instruciunii n cod main (machine instructions).

    Cnd ne referim la instruciunile cunoscute de un calculator, observm c ele pot fi

    clasificate n trei categorii (grupe): instruciuni de transfer de date, instruciuni aritmetico-

    logice, instruciuni de control.

  • 56

    Figura 2.4 - Adunarea unor valori stocate n memorie

    Instruciuni de transfer de date

    Instruciuni care realizeaz deplasarea datelor dintr-un loc n altul, dar fr dispariia lor

    din poziia iniial. Paii 1, 2 i 4 din fig. 2.4 intr n aceast categorie. Termenii transfer sau

    mutare sunt mai puin adecvai; mai exaci ar fi copiere sau clonare.

    Cererea de ncrcare a unui registru de uz general cu coninutul unei celule de memorie

    este desemnat de o instruciune LOAD, iar transferul coninutului unui registru ntr-o celul de

    memorie se face prin intermediul unei instruciuni STORE.

    n fig. 2.4 paii 1 i 2 reprezint instruciuni LOAD, iar pasul 4 este o instruciune STORE.

    O parte important a instruciunilor de transfer se refer la operaii (comenzi) ntre

    dispozitive n afara CPU i memoria intern. Aceste instruciuni se ocup de operaiile de

    intrare/ieire (input/ output - I/O) din calculator i uneori plasate ntr-un grup distinct de

    instruciuni.

    Instruciuni aritmetice i logice

    Instruciunile care indic uniti de comand s solicite unitii aritmetico-logice

    efectuarea unei anumite operaii. Pasul 3 din fig. 2.4 face parte din aceast categorie de

    instruciuni.

    Operaiile logice posibile de efectuat sunt: AND, OR i XOR. Operaii care realizeaz

    deplasarea la dreapta sau la stnga a coninutului registrilor: SHIFT, ROTATE. Vor fi dataliate

    in subcapitolul 2.7.

  • 57

    Inst