Documente Academic
Documente Profesional
Documente Cultură
PSCM 1
PSCM 1
Introducere
Clasificarea calculatoarelor este o problem[ controversat[ ]n literatura de specialitate. Una din
clasific[rile general acceptate, f[cut[ dup[ criteriul “puterii de calcul”, cuprinde:
• microcalculatoare;
• minicalculatore;
• calculatoare mari (mainframe);
• supercalculatoare.
O alt[ clasificare, care are ]n vedere num[rul problemelor ce pot fi rezolvate, cuprinde:
• calculatoare de uz general;
• calculatoare specializate sau dedicate (embbeded computers).
}n sf`r=it, o clasificare dup[ criteriul cronologic ]mparte calculatoarele ]n patru genera\ii:
• genera\ia I – calculatoare realizate cu tuburi electronice;
• genera\ia II – calculatoare cu tranzistoare;
• genera\ia III – calculatoare realizate cu circuite integrate pe scar[ redus[ sau cu microprocesoare
pe 8 bi\i;
• genera\ia IV – calculatoare cu microprocesoare pe 16 (sau mai mul\i) bi\i.
1.1
Capitolul 1. Introducere
Perturba\ie
1.2
Capitolul 1. Introducere
• ]ntreg;
• real.
O dat[ structurat[ este alc[tuit[ din mai multe sub-componente, utilizatorul dispun`nd de un procedeu
bine precizat de acces la fiecare component[.
Principalele tipuri structurate de date sunt:
• tablou;
• ]nregistrare;
• fi=ier.
Datele de tip pointer con\in adrese de memorie.
1.3
Capitolul 1. Introducere
Calculator
Date de intrare =i Date de ie=ire
program
A AB
CPU D DB
C CB
A D C A D C
MEM PIO
DI DO
Figura 1.3. Structura general[ a unui microcalculator:
CPU – unitatea central[ de prelucrare;
MEM – memoria principal[;
PIO – periferice de intrare-ie=ire;
DI – date de intrare;
DO – date de ie=ire
AB – magistral[ de adrese;
DB – magistral[ de date;
CB – magistral[ de comenzi;
A- adrese, D – date, C – comenzi;
Unitatea central[ de prelucrare (CPU – Central Processing Unit) este subsistemul prin care se
realizeaz[, ]n principal, prelucrarea datelor. De asemenea, majoritatea transferurilor de date ]ntre
subsisteme se face sub supravegherea CPU. Excep\ie face tehnica DMA (Direct Memory Access – acces
direct la memorie) prin care se realizeaz[ un transfer direct de date ]ntre un dispozitiv de intrare-ie=ire =i
memorie, f[r[ interven\ia CPU.
Memoria principal[ (MEM) este subsistemul prin care se realizeaz[ func\ia de memorare a datelor.
La microcalculatoarele de uz general, memoria principal[ este de tip RAM (Random Access Memory –
memorie cu acces aleator) cu o mic[ parte de tip ROM (Read Only Memory – memorie ce poate fi numai
citit[).
Datele =i programele sunt memorate pe un suport extern (de obicei de tip magnetic – unit[\ile de disc
dur sau flexibil) care formeaz[ memoria auxiliar[.
1.4
Capitolul 1. Introducere
Accesul la datele =i programele din memoria auxiliar[ se face prin intermediul unui periferic
specializat (controller de disc).
Forma sub care sunt p[strate datele =i programele ]n memoria auxiliar[ se nume=te fi=ier.
Componenta ROM a memoriei principale con\ine:
• rutine de test =i ini\ializare a sistemului (POST – Power On Self Test);
• programe de ini\ializare =i acces la dispozitivele periferice de baz[ (BIOS – Basic Input –
Output System).
La ini\ializarea sistemului, dup[ execu\ia rutinelor POST, componenta BIOS permite ]nc[rc[rea
sistemului de operare, din memoria auxiliar[ ]n memoria principal[. Sistemul de operare cuprinde
programe de configurare a sistemului, de gestiune a memoriei auxiliare, etc.
Aceast[ arhitectur[ permite realizarea unor sisteme deosebit de flexibile din punct de vedere software,
capabile s[ execute unui num[r teoretic nelimitat de programe.
Perifericele de intrare-ie=ire (PIE) sunt subsistemele prin care microcalculatorul comunic[ cu lumea
exterioar[. Ele se clasific[ ]n periferice de baz[ (tastatura, monitorul =i unit[\ile de disc) =i periferice
auxiliare (imprimanta, mouse-ul, unitatea de CD-ROM, MODEM-ul, etc.).
Conectarea perifericelor la magistrala microcalculatorului se face prin intermediul unei interfe\e
(figura 1.4.). Unele periferice utilizeaz[ interfe\e specializate (monitorul, tastatura sau unit[\ile de disc),
altele, interfe\e de uz general (interfe\e standard, seriale sau paralele).
A D C
PORT de
intrare-ie=ire
Interfa\[
Interfa\[
electric[
Dispozitiv
periferic
1.5
Capitolul 1. Introducere
1.6
Capitolul 1. Introducere
1.7
Capitolul 1. Introducere
Implementarea programului
}n acest[ etap[ se codific[ algoritmul ]n limbajul de programare ales. Programul ob\inut ]n urma
codific[rii se depaneaz[ (eventual) =i se testeaz[.
Depanarea este opera\ia prin care se elimin[ eventualele erori din program.
Pricipalele tipuri erori sunt:
• erori sintactice;
• erori de link-editare;
• erori ]n faza de execu\ie;
• erori logice.
Majoritatea erorilor sunt u=or de eliminat av`nd ]n verere faptul c[ mediile integrate utilizate ]n
realizarea programelor ofer[ instrumente pentru identificarea lor.
Cele mai dificile sunt erorile logice. Pentru eliminarea lor se utilizeaz[ de obicei simulatoare sau
depanatoare specializate.
Testarea programului ]nsemn[ execu\ia lui cu un set de date de intrare astfel ales ]nc`t datele de ie=ire
s[ fie previzibile sau u=or de calculat. Testarea constituie un instrument foarte bun pentru ]nl[turarea
erorilor logice.
}ntre\inerea =i documentarea programului
}ntre\inerea programului ]nseamn[ operarea unor mici modific[ri ]n program (care nu schimb[
specifica\ia programului), pe baza observa\iilor f[cute de utilizator asupra modului de func\ionare.
Documentarea programului presupune elaborarea unei documenta\ii care precizeaz[ modul de
instalare, condi\iile de func\ionare, modul de utilizare =i de ]ntre\inere a programului.
Un alt nivel de documentare ]l constituie comentarea programului care se realizeaz[ ]n programul
surs[ prin utilizarea comentariilor.
1.4.2. Algoritmi
Algoritmul este o succesiune finit[ de pa=i care se execut[ ]ntr-un timp finit =i ]ntr-o ordine bine
stabilit[. Pa=ii unui algoritm se mai numesc =i (pseudo-)instruc\iuni.
Un algoritm este alc[tuit din:
• opera\ii de baz[;
• structuri de control.
Opera\iile de baz[ sunt cele care permit prelucrarea, memorarea =i transferul datelor. Cele trei opera\ii
de baz[ sunt:
• atribuirea;
• citirea;
• scrierea.
Opera\ia de atribuire are forma general[ v←e ]n care “v” este o variabil[ iar “e” este o expresie.
Atribuirea se execut[ ]n dou[ etape: mai ]nt`i se evalueaz[ expresia “e” dup[ care, valoarea expresiei
este atribuit[ variabilei “v”.
Opera\iile de citire =i scriere permit citirea datelor de intrare, respectiv scrierea datelor de ie=ire.
Structurile de control precizeaz[ ordinea ]n care se execut[ pa=ii algoritmului.
Teorema Bohm – Jacopini precizeaz[ c[ orice algoritm poate fi realizat cu numai trei structuri de
control numite structuri de control fundamentale: secven\a, decizia =i itera\ia.
Secven\a este o succesiune de pa=i care se execut[ ]n ordinea scrierii lor.
1.8
Capitolul 1. Introducere
Decizia permite “ramificarea” algoritmului ]n func\ie de ]ndeplinirea unei anumite condi\ii. Decizia
poate fi simpl[ sau cu alternativ[.
Itera\ia permite execu\ia repetat[ a unei secven\e, numit[ corpul ciclului.
Exist[ trei tipuri de itera\ii:
• itera\ia cu test ini\ial;
• itera\ia cu test final;
• itera\ia cu contor.
Itera\ia cu test ini\ial execut[ corpul ciclului c`t timp este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu test final execut[ corpul ciclului p`n[ c`nd este ]ndeplinit[ o anumit[ condi\ie.
Itera\ia cu contor permite execu\ia corpului ciclului pentru toate valorile unei variabile speciale
(numit[ variabil[ contor) ]ntr-un interval dat.
1.4.3. Reprezentarea algoritmilor
Cele mai utilizate modalit[\i de reprezentare a algoritmilor sunt pseudocodul =i schema logic[.
Pseudocodul
Este o modalitate de reprezentare a algoritmului sub form[ de text. Pa=ii algoritmului, numi\i pseudo-
instruc\iuni, sunt reprezenta\i prin cuvinte-cheie.
Cuvintele-cheie utilizate ]n pseudocod sunt:
ALTFEL, ATUNCI, CITEŞTE, CÂT TIMP, DACĂ, ENDSEQ, EXECUTĂ, PENTRU,
PÂNĂ CÂND, REPETĂ, SCRIE, SEQ, START, STOP.
Opera\iile de intrare-ie=ire se reprezint[ ]n pseudocod astfel:
CITEŞTE <listă variabile>
SCRIE <listă variabile>
]n care “list[ variabile” este o succesiune de identificatori (de variabil[) separa\i prin virgul[.
Atribuirea se codific[ astfel:
v←e
]n care “v” este un identificator de variabil[ iar “e” este o expresie cu valori de acela=i tip cu variabila.
Pentru reprezentarea unei secven\e se utilizeaz[ cuvintele-cheie SEQ =i ENDSEQ pentru a marca
]nceputul, respectiv sf`r=itul secven\ei. Secven\a este numit[ =i (pseudo-)instruc\iune compus[.
Decizia simpl[ se codific[ astfel:
DACĂ c ATUNCI instr
]n care “c” este o expresie cu valori de tip logic (numit[ condi\ie logic[) iar “instr” este orice instruc\iune
(inclusiv una compus[).
Decizia cu alternativ[ are sintaxa:
DACĂ c ATUNCI instr1
ALTFEL instr2
]n care “c” este o expresie cu valori de tip logic iar “instr1” =i “instr2” sunt instruc\iuni.
Itera\ia cu test ini\ial se codific[ ]n pseudocod astfel:
CÂT TIMP c EXECUTĂ instr
]n care “c” este o expresie cu valori de tip logic, iar “instr” este orice instruc\iune (corpul ciclului).
Itera\ia cu test final se codific[ astfel:
1.9
Capitolul 1. Introducere
REPETĂ instr PÂNĂ CÂND c
]n care “c” este o expresie cu valori de tip logic iar “instr” este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor cresc[tor este:
PENTRU v=e1,e2 EXECUTĂ instr
]n care “v” este un identificator de variabil[ (variabil[-contor), “e1” =i “e2” sunt expresii cu valori de
acela=i tip cu “v” iar “instr” este orice instruc\iune (corpul ciclului).
Sintaxa itera\iei cu contor descresc[tor este:
PENTRU v=e1↓e2 EXECUTĂ instr
}n ambele cazuri, corpul ciclului se execut[ pentru toate valorile variabilei “v”, cuprinse ]ntre valorile
“e1” =i “e2”. }n primul caz, contorul este incrementat la fiecare parcurgere a ciclului iar ]n al doilea caz,
contorul este decrementat.
Cuvintele-cheie “START” =i “STOP” se utilizeaz[ pentru a marca ]nceputul, respectiv sf`r=itul
algoritmului.
Schema logic[
Este o modalitate grafic[ de reprezentare a unui algoritm.
Simbolurile utilizate ]n reprezentare sunt:
Blocul de start.
START DA NU
Marcheaz[ ]nceputul C Bloc de decizie
algoritmului.
Opera\iile de baz[ de intrare-ie=ire se reprezint[ prin blocuri de intrare-ie=ire iar opera\iile de atribuire
utilizeaz[ blocuri de calcul.
Secven\a nu necesit[ un simbol special pentru reprezentare ]n schema logic[.
}n figurile 1.1 =i 1.2 se prezint[ modul de reprezentare ]n schema logic[ a deciziei.
DA
C
instr NU
DA NU
C
instr1 instr2
instr
C
DA
NU
instr
C
NU
DA
1.11
Capitolul 1. Introducere
i=1
instr
i=i+1
i n
DA
NU
1.12
Capitolul 1. Introducere
1.13
Capitolul 1. Introducere
Utilizarea formei intermediare de program obiect relocabil ofer[ c`teva avantaje care sunt prezentate ]n
continuare.
}n primul r`nd, programele complexe pot fi “sparte” ]n mai multe module ce pot fi compilate =i testate
separat. Aceast[ tehnic[ se nume=te programare modularizat[.
Utilizarea program[rii modularizate conduce la cre=terea eficien\ei program[rii =i, ]n plus, permite
reutilizarea codului. Un modul, odat[ compilat =i testat, poate fi utilizat ]n mai multe proiecte, f[r[ a fi
necesar[ recompilarea sa.
Pe de alt[ parte, modulele precompilate pot fi organizate ]n biblioteci de programe.
}n acest fel, utilizatorul ]=i poate construi propriile biblioteci de programe care pot fi utilizate ]n faza de
link-editatare, al[turi de bibliotecile sistem (bibliotecile furnizate de limbajul de programare).
De men\ionat c[ exist[ o deosebire ]ntre utilizarea unui modul precompilat =i a unei biblioteci. La link-
editarea unui modul precompilat, modulul este incorporat ]n ]ntregime ]n program pe c`nd, ]n cazul unei
biblioteci, sunt incluse doar func\iile utilizate de program.
}n figura 1.7 sunt prezentate principalele faze ale compil[rii unui program.
Editor
prog.exe
1.14