cursuri despre calculatoare

Upload: andrada-halmaciu

Post on 13-Apr-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 cursuri despre calculatoare

    1/12

    1

    Capitolul 1. Hardware i software

    Noiuni fundamentale

    n viaa de zi cu zi operm cu dou tipuride entiti: materiale (care ocup un

    loc n spaiu) i nemateriale (numite generic "informaie"). Unele obiecte reprezint i

    una i alta, de exemplu un CD pe care este nregistrat un film. El este un obiect fizic,

    material, dar conine informaie. Dac uitm CD-ul pe bordul mainii, la soare,

    obiectul material va fi distrus fizic (iremediabil din pcate), informaia pe care o

    conine putnd fi totui reprodus procurnd o copie pe un suport similar sau pe un

    alt tip de suport (DVD).

    n cazul calculatorului, la componentele fizice ne referim folosind termenul

    generic "hardware" (prescurtat hard) iar la informaiile pe care le conine ne referim

    folosind termenul "software" (prescurtat soft).

    Hardware-ul unui calculator este format din componentele electronice i

    mecanice:

    Microprocesor Memoria principal (intern, de tip RAM - random access memory sau

    ROM - read-only memory)

    Memoria extern (discuri magnetice, optice)

    Dispozitive periferice (de intrare: tastatura, mouse-ul, cititorul de coduri

    cu bare, de ieire: monitorul, imprimanta, boxele audio, de intrare-

    ieire: unitile de disc magnetic).

  • 7/24/2019 cursuri despre calculatoare

    2/12

    2

    Software-ul unui calculator reunete informaiile pe care acesta le deine: date

    i programe. Un program este o list de instruciuni pe care procesorul le poate

    executa. Datele pot fi orice alt tip de informaie de care are nevoie un program:

    caractere, iruri de caractere, numere, imagini, secvene audio.

    Programele i datele sunt memorate n memoria calculatorului (intern sau

    extern) n acelai fel. Un program n curs de execuie ocup mpreun cu datele pe

    care le manipuleaz o zon din memoria RAM. Programul poate accesa datele de

    care are nevoie dar din afara acestuia, instruciunile i datele se confund.

    Noiuni privind reprezentarea n calculator a informaiei

    Din considerente legate de uurina realizrii circuitelor electronice necesare

    memorrii i prelucrrii, n calculator informaia este reprezentat n cod binar. Binar

    nseamn existena a doar dou stri, care prin convenie sunt '0' i '1' sau 'adevrat'

    i 'fals'.

    Un bit este o cifr binar, putnd deci avea valoarea 0 sau 1.

    Pentru reprezentarea n binar a diferitelor tipuri de informaii (date) exist

    convenii de reprezentare, definite prin standarde. ntre acestea de notorietate este

    standardul ASCII, care specific modul de reprezentare n binar a caracterelor

    alfabetului englez i a diferitelor semne speciale, cu sau fr echivalent grafic.

    Exist ns reprezentri standard i a caracterelor altor limbi. Deoarece codul ASCII

    presupune utilizarea a 8 poziii binare, insuficiente pentru a reprezenta simbolurile

    grafice specifice tuturor limbilor, acestea se reprezint pe 16 poziii binare

  • 7/24/2019 cursuri despre calculatoare

    3/12

    3

    (reprezentare numit Unicode). n Unicode de exemplu 1111100111111101

    reprezit caracterul . Atribuirea configuraiilor binare Unicode pentru noi

    caractere este arbitrar i se realizeaz de ctre un comitet internaional de

    standardizare. Singura restricie la atribuirea unei noi configuraii binare este s nu

    mai fi fost utilizat.

    n cazul reprezentrii altor tipuri de informaii (imagine, sunet) lucrurile devin

    repede mult mai complexe, deoarece exist pentru fiecare dintre ele mai multe

    standarde i n timp apar altele noi. Esenial este numai faptul c :

    indiferent de natura informaiei, n final se ajunge la o codificare binar,

    informaiile din memoria calculatorului sunt practic succesiuni de bii i

    ce reprezint acstea depinde doar de modul n care sunt utilizate de

    programele n execuie.

    Octetul

    Deoarece bitul este o unitate de memorare a informaiei prea mic i fr o

    semnificaie aparte, de regul memoria calculatorului este organizat n grupe de 8

    bii. O celul de memorie de 8 bii se numete octet(engl. byte).

    1 octet = 8 bii

    Octetul este suficient pentru memorarea unui caracter ASCII.

    Multiplii octetului :

    Denumire Numr de octei Putere a lui 2

    octet 1 20

    kilooctet (kilobyte), kB 1024 210

    megaoctet (megabyte), MB 1 048 576 220

    gigaoctet (gigabyte), GB 1 073 741 824 230

    teraoctet (terabyte), TB 1 099 511 627 776 240

    Dac pentru memorarea unei date sunt necesari mai mult de 8 bii se va folosi

    o succesiune de mai muli octei.

    Fiecare celul de memorie (de 1 octet) are i o adres care permite accesarea

    ei.

  • 7/24/2019 cursuri despre calculatoare

    4/12

    4

    La pornirea calculatorului fiecare celul de memorie din memoria RAM are o

    valoare arbitrar.

    Adresa unei celule i coninutul ei sunt mrimicare nu au nimic n comun.

    Coninutul memoriei

    n timpul funcionrii calculatorului, memoria acestuia reine n celulele sale

    configuraii binare specifice diferitelor informaii coninute. Se poate spune de

    asemenea c fiecare octet conine un numr ntreg ntre 0 i 255 (255 este cel mai

    mare numr ntreg care se poate reprezenta folosind 8 poziii binare).

    Procesorul calculatorului poate accesa o celul de memorie (un octet) de la o

    adres dat pentru a realiza dou funcii fundamentale:

    1. poate scrie n celul. Coninutul anterior al acesteia este nlocuit cu o

    nou valoare.

  • 7/24/2019 cursuri despre calculatoare

    5/12

    5

    2. poate citi valoarea din celul. Procesorul obine o copie a coninutului

    celulei. Coninutul celulei rmne neschimbat.

    n timpul executrii unui program, o serie de valori din memorie rmn

    neschimbate n timp ce altele se modific pe msur ce execuia programului

    progreseaz. De obicei rmn fixe celulele care conin date de intrare sau

    instruciunile programului. Dac o celul conine valori calculate, valoarea ei iniial

    va fi probabil necunoscut, arbitrar, dar va fi modificat pe parcursul execuiei

    programului.

    Procesoarele actuale pot citi sau scrie n memorie 8, 16, 32 sau 64 poziii

    binare simultan, deci 1, 2, 4 sau 8 octei.La scrierea unui program ntr-un limbaj de programare de nivel nalt nu este

    necesar inerea evidenei adreselor locaiilor din memorie care conin date sau

    informaii despre tipul acestora. Datorit faptului c n program pot fi incluse

    declaraii prin care fiecrei date i se precizeaz tipul i i se asociaz un nume, n

    program celulele de memorie vor fi referite prin numele lor, calculul adreselor i

    alocarea corect a numrului de poziii binare necesare memorrii fiecrei date

    realizndu-se automat.

  • 7/24/2019 cursuri despre calculatoare

    6/12

    6

    Folosirea suporilor externi de stoc are

    Pentru pstrarea pemanent a informaiei, aceasta este memorat pe diferii

    supori externi: discuri SSD (Solid State Disk), discuri magnetice, stick-uri dememorie, etc..

    Procesul este reversibil, deci se poate scrie i citi n mod repetat.

    Citirea sau scrierea de pe supori externi se realizeaz cuviteze relativ reduse

    (n cazul discurilor magnetice transferul este de peste 1000 ori mai lent dect n

    cazul memoriei RAM).

    La fel cum celulele memoriei centrale sunt dispuse din punct de vedere

    conceptual unele dup altele i au fiecare o adres fizic, i pe suporii externi exist

    un sistem de adresare bazat pe adrese fizice.

    Pe suporii externi informaia este organizat n fiiere. Fiierul conine

    informaii de acelai fel (un ansamblu de date, un program etc). Fiecare fiier are un

    nume i ocup pe disc o zon definit printr-o adres cunoscut de sistemul de

    operare. Accesul la fiiere, citirea i scrierea lor i organizarea discului astfel nct

    fiierele s fie rapid accesate sunt de altfel funcii principale ale sistemului de operare

    al calculatorului. Aplicaiile care realizeaz accesarea unor fiiere vor realiza

    aceasta indirect, prin intermediul unor funcii specializate disponibile la nivelul

    sistemului de operare.

  • 7/24/2019 cursuri despre calculatoare

    7/12

    7

    Fiierele pot fi de multe tipuri. Tipul unui fiier este dat de natura informaiilor

    pe care le conine i este precizat prin extensia care este plasat n continuarea

    numelui. Exemple:

    prog.exe- fiier coninnd un program executabil,

    prelucrare.cpp- fiier coninnd un program surs scris n C++,

    info.txt, - fiier coninnd un text

    f1.dat. - fiier coninnd date necesare unei aplicaii.

    Extensia unui fiier este important i pentru faptul c este folosit de sistemul

    de operare Windows pentru a stabili aciunea care trebuie executat dac acesta

    este selectat printr-un dublu clic cu mouse-ul. Astfel, dac fiierul are extensia . txt

    sistemul va lansa n execuie o aplicaie specializat pe tratarea fiierelor de text iar

    dac extensia este .exeva ncrca n memoria principal coninutul fiierului i l va

    lansa n execuie.

    Operaiile executate de un procesor

    n timpul funcionrii unui calculator, activitatea procesorului const n

    executarea cu mare vitez a unor instruciuni elementare aparinnd unui set de

    instruciuni pe care circuitele sale le pot executa. Instruciunile sunt plasate n

    memorie, una dup alta, formnd un program executabil. Instruciunile programului

    executabil sunt denumite i instruciuni n limbaj main, deoarece ele pot fi

    executate imediat de ctre procesor.

    Exemple de instruciuni executabile de ctre procesor: citirea coninutului unei

    celule de memorie, testarea unui bit al unei configuraii binare citite (dac este 1 sau

    0), incrementarea cu o unitate a unei celule de memorie, adunarea unui numr din

    procesor cu un numr aflat ntr-o celul din memoria principal etc.

    O instruciune n limbaj main const dintr-o secven de octei care conine

    att codul operaiei de executat ct i informaiile necesare adresrii operanzilor

    implicai. Dup executarea instruciunii curente procesorul execut instruciunea

    plasat n memorie n continuare sau, dac instruciunea curent este o instruciune

    de salt, execut o alt instruciune, aflat la o adres indicat n cadrul instruciunii

    de salt. Instruciunile pot forma astfel structuri logice complexe, calculatorul

    devenind instrumentul ideal pentru transmiterea i procesarea volumelor mari de

  • 7/24/2019 cursuri despre calculatoare

    8/12

    8

    date, manipularea modelelor matematice asociate proceselor fizice sau pentru

    conducerea unor procese tehnologice complexe.

    Aceasta este tot ce tie s fac un (micro)procesor. Procesoarele actuale

    execut astfel de instruciuni elementare ntr-un timp foarte scurt: t

  • 7/24/2019 cursuri despre calculatoare

    9/12

    9

    Adresa Instruciune

    0

    1

    2

    3

    4

    La pornirea periuei, se lanseaz n execuie programul din memorie ncepnd

    cu adresa 0. Programul este reluat (de la adresa 0) la execuia instruciunii avnd

    codul 0000 0100 i trebuie s se opreasc din execuie la acionarea ntreruptorului

    periuei.

    Soluia problemei n limbaj main este urmtoarea:

    Adresa Instruciune Explicaie

    0

    0000 0001 Rotaie perie spre stnga

    1 0000 0010 Rotaie perie spre dreapta

    2 0000 1000Salt peste instruciunea urmtoare dac ntreruptorul

    este deschis

    3 0000 0100 Salt la nceputul programului

    4 0000 0000 Stop

    Instruciunile de la adresele 0 la 3 formeaz un ciclu. Ele se execut continuu

    pn ce condiia de ieire din ciclu(ntreruptor deschis) este ndeplinit. Astfel de

    cicluri se ntlnesc practic n toate programele programele de calculator iar scrierea

    lor, chiar n limbaje evoluate, nu este tocmai simpl. .

  • 7/24/2019 cursuri despre calculatoare

    10/12

    10

    Capitolul 2. Programarea aplicaiilor simple n C i C++

    Asp ecte generale

    Avnd n vedere att dificultile legate de cunoaterea arhitecturii i

    funcionrii unui microprocesor ct i cele legate de descompunerea unui proces deprelucrare de date n instruciuni elementare, pe care acesta le poate executa, foarte

    rar se apeleaz la programarea n limbaj main.

    Programele de calculator sunt scrise de regul n limbaje de nivel nalt, cele

    mai folosite fiind C, C++, Java sau C#. Dup scrierea programului ntr-unul dintre

    limbajele de nivel nalt menionate, o aplicaie specializat va analiza i va traduce

    fiecare instruciune din program ntr-o succesiune de instruciuni n limbaj main.

    Exemplu de program scris n C++:

    #include

    usingnamespacestd;

    voidmain()

    {

    intsum = 0;

    inti, j;

    i = 2; j = 2;

    sum = i + j;

    cout

  • 7/24/2019 cursuri despre calculatoare

    11/12

    11

    Programul rezultat, suma.exe poate fi executat imediat. Un dublu clic pe

    pictograma acestuia n fereastra aplicaiei WindowsExplorerproduce efectul urmtor:

    Interpretoare

    Se cunoate deja faptul c programele scrise n limbaje de nivel nalt nu pot fi

    n nici un caz executate imediat de ctre microprocesor. Ele trebuie traduse mai nti

    n limbajul acestuia.

    O soluie frecvent folosit este ns utilizarea unui interpretorcare traduce pe

    rnd instruciunile limbajului de nivel nalt i execut codul rezultat n urma traducerii

    pe msur ce acesta devine disponibil. Interpretorul este o aplicaie care creeaz

    utilizatorului impresia c folosete un calculator capabil s execute direct

    instruciunile de nivel nalt pe care acesta i le transmite.

    dublu clic

  • 7/24/2019 cursuri despre calculatoare

    12/12

    12

    ntr-un astfel de caz, procesorul execut alternativ instruciunile interpretorului,

    care traduce instruciunile programului surs i instruciunile rezultate n urma

    interpretrii fiecreia dintre liniile programului surs. Pe toat durata procesului, n

    memoria principal se vor afla simultan interpretorul i programul surs. Interpretorul

    const dintr-un ansamblu de instruciunin cod main pe care procesorul le poate

    executa imediat iar programul surs const dintr-un ansamblu de instruciuni pe care

    interpretorul le cunoate i le poate prelucra.

    Dei adoptarea unei astfel de soluii ncetinete semnificativ viteza de rulare a

    unei aplicaii, ea rmne interesant dac se urmrete asigurarea portabilitii

    aplicaiilorsau dac viteza de execuie nu este un factor relevant.

    Program surs Procesor

    Interpretor BASIC

    (program executabil)

    Interpretarea programului surs