cursuri despre calculatoare
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