Sunteți pe pagina 1din 191

CUPRINS

1. Structura generală a unui calculator personal. ........................................... 3


1.1. Ce este un calculator personal ? .................…............................…............ 3
1.2. Structura hardware de principiu a unui calculator personal. ….……........... 5
2. Reprezentarea internă a informaţiei. ............................................................ 10
2.1. Reprezentarea numerelor într-un sistem de numeraţie. ............................... 11
2.2 Conversia numerelor dintr-o bază în alta. ................................................... 13
2.3. Reprezentarea numerelor în calculator. Coduri de reprezentare. ................ 16
3. Logică combinatorică şi secvenţială. ............................................................. 19
3.1. Elemente de logică booleană. Funcţii logice. ............................................. 19
3.2. Implementarea funcţiilor logice. Minimizarea funcţiilor logice. .................. 21
3.3. Materializarea funcţiilor logice. Circuite logice. ........................................ 23
3.4. Structuri logice combinaţionale. ................................................................ 26
3.5. Sisteme logice secvenţiale. ........................................................................ 28
3.5.1. Tipuri de bistabile. ....................................................................... 29
3.5.2. Registre şi numărătoare. .............................................................. 31
4. Microprocesoarele din familia INTEL 80x86. ............................................. 34
4.1. Microprocesorul I80286. .................................................…..................... 34
4.1.1. Caracteristici generale. ................................................................. 34
4.1.2. Arhitectura internă a microprocesorului I80286. ........................... 34
4.1.3. Registrele microprocesorului I80286. ............................................ 36
4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286. ..... 40
4.1.5. Modurile de lucru ale microprocesorului I80286. .......................... 54
4.1.6. Adresarea datelor. Moduri de adresare. ......................................... 47
4.1.7. Gestiunea şi protecţia memoriei la microprocesorul I80286.
Conceptul de memorie virtuală. ..................................................... 49
4.1.8. Întreruperile microprocesorului I80286. ......................................... 55
4.2. Microprocesorul I80386. ........................................................................... 58
4.2.1. Caracteristici generale. .................................................................. 58
4.2.2. Registrele microprocesorului I80386. ............................................ 60
4.2.3. Paginarea memoriei. ..................................................................... 62
4.2.4. Modul virtual 8086 ....................................................................... 64
4.2.5. Memorii cache. ............................................................................. 65
4.2.6. Variante de realizare ale microprocesorului I80386. ...................... 67
4.3. Microprocesorul I80486. .......................................................................... 68
4.3.1. Structură internă. .......................................................................... 68
4.3.2. Arhitecturi CISC şi RISC. ..................................................…....... 70
4.3.3. Variante de realizare ale microprocesorului I80486.
Conceptul de "upgrade". ..…….........................................…........ 72
4.4. Pentium. ......................................................................................….…...... 73
5. Structura calculatoarelor personale IBM. ..................................................... 76
5.1. Generalităţi. ...........................................................................................… 76

1
5.2. Calculatoarele IBM PS/2. ......................................................................... 78
5.3. Arhitectura Microchannel. ........................................................................ 81
5.4. Interfaţarea calculatoarelor IBM. Comunicaţia paralelă şi serială. ............. 85
5.5. Tastatura. ................................................................................................ 89
5.6. Mouse. .................................................................................................... 91
5.7. Imprimante. ............................................................................................. 92
5.8. Monitoare şi adaptoare grafice. ................................................................ 94
5.9. Unităti de memorie externă. ..................................................................... 99
5.9.1. Discuri magnetice. ...……………................................................. 101
5.9.2. Discuri optice. ............................................................................. 105
5.10. Alte dispozitive de intrare/ieşire. ......................................….................. 106
6. Arhitecturi paralele de calculatoare. ........................................................... 108
6.1. Evoluţia sistemelor de calcul.Calculatorul de tip von Neumann. .....…...... 108
6.2. Paralelism în sisteme uniprocesor. ............................................................ 111
6.3. Calculatoare pipe-line. ............................................................................. 112
6.4. Clasificarea Flynn a arhitecturilor de calculatoare. .................................... 115
6.5. Calculatoare SIMD. ................................................................................ 116
6.6. Sisteme multiprocesor cu memorie partajată. ........................................... 118
6.7. Sisteme multiprocesor fără memorie partajată. Transputere. .................... 121
6.8. Sisteme multiprocesor orientate pe flux de date. ...................................... 125
7. Sisteme de operare. ....................................................................................... 130
7.1. Generalităţi. .......................... .................................................................. 130
7.1.1. Interfeţe text şi interfeţe grafice. .................................................. 132
7.1.2. Partiţionarea şi formatarea discurilor. ........................................... 136
7.2. Sistemul de operare MS-DOS. .................................………................... 138
7.2.1. Sistemul de fişiere. Structura discului sub MS-DOS. ................... 113
7.2.2. Lansarea sistemului de operare. ..... ............................................ 144
7.2.3. Configurarea sistemului de operare. ............................................ 145
7.2.4. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT. ...….. 151
7.2.5. Procesorul de comenzi COMMAND.COM. ................................ 153
7.2.6. Comenzi interne. ...................................................................….. 154
7.2.7. Comenzi externe. ..................................................................….. 159
7.3. Microsoft WINDOWS 95. ...................................................................… 167
7.3.1. Elemente Windows 95. ................................................................ 167
7.3.1.1. Ferestre. ...................................................................…… 168
7.3.1.2. Meniuri. ...................................................................…… 169
7.3.1.3. Casete de dialog. ......................................................…… 170
7.3.1.4. Desktop. ....................................................................….. 172
7.3.2. Windows Explorer. ..................................................................… 175
7.3.3. Control Panel. ........................................ ..............................….. 178
7.4. Linux. ................................................................................................….. 184
7.4.1. Structura sistemului Linux. ....................................................….. 184
7.4.2. Instalarea sistemului Linux. ....................................................…. 189
Bibliografie. ...................................................................................................…. 191

2
1. STRUCTURA UNUI CALCULATOR PERSONAL

1.1. Ce este un calculator personal ?

Un sistem de calcul, sau un calculator, este destinat prelucrării informaţiei, acceptând,


memorând şi prelucrând datele sau informaţiile de intrare, pentru a produce informaţiile de
ieşire sau rezultatele prelucrării, fiind compus din două părţi principale: hardware şi
software. Hardware este un termen general, utilizat pentru a desemna partea fizică a unui
calculator, alcătuită din componente electronice şi mecanice, împreună cu totalitatea
dispozitivelor folosite de calculator în prelucrarea informaţiei. Software este tot un termen
general, care desemnează totalitatea programelor folosite de un calculator, pentru a
transforma informaţiile sau datele de intrare, în informaţii de ieşire sau rezultate.
Structura hard-soft a unui calculator poate fi reprezentată ca o serie de cercuri sau
nivele concentrice, fiecare nivel exterior implicând existenţa nivelelor interioare, aşa cum
este arătat în figura1.1.
Sistemul de operare este format dintr-un ansamblu de programe, care asigură o interfaţă
între utilizator şi hardware-ul calculatorului, sau, cu alte cuvinte, face posibilă comunicarea
între utilizator şi calculator. De asemenea, sistemul de operare realizează interfaţa între
hardware-ul calculatorului şi restul software-ului, toate celelalte programe utilizând
hardware-ul calculatorului prin intermediul sistemului de operare.
Software-ul utilitar pune la dispoziţia utilizatorului o multitudine de instrumente
software necesare dezvoltării propriilor programe, sau programe de aplicaţie şi, de asemenea,
instrumente software cu ajutorul cărora se poate menţine buna funcţionare a sistemului de
calcul. Programele din cea de-a doua categorie sunt uneori direct invocate de către sistemul
de operare, aşa că pot fi considerate şi componente ale sistemului de operare.
Dacă, până în anii '80, se făcea o distincţie netă între calculatoare mari, calculatoare
medii sau microcalculatoare, în principal pe baza dimensiunii memoriei şi vitezei de
prelucrare a datelor, odată cu apariţia calculatoarelor personale comerciale în 1976, când
Steven Jobs şi Steve Wozniak au fondat firma APPLE, şi odată cu creşterea gradului de
integrare a componentelor electronice, noţiunile de calculatoare mici, medii sau mari nu mai
sunt atât de clare. Astăzi, un calculator personal care poate intra în dotarea oricărei familii,
dar care poate fi folosit cu succes în majoritatea aplicaţiilor întâlnite în practică, are o
capacitate de memorare şi o viteză de prelucrare mult superioară capacităţii de memorare şi
vitezei de prelucrare de la calculatoarele mari din anii '70.

3
Figura 1.1. Structura hard-soft a unui calculator

Calculatoarele personale pot fi întâlnite astăzi în birouri, în şcoli, în întreprinderi, la


domiciliu. Întrucât ele au devenit din ce în ce mai puternice, au preluat multe din sarcinile
calculatoarelor mari de acum 20 -30 de ani.
Termenul de calculator personal generează confuzie, deoarece atunci când IBM a
produs primul său calculator personal, în 1981, l-a numit IMB Personal Computer sau IBM
PC. Pentru unii, termenul de calculator personal înseamnă numai calculatoarele IBM sau
compatibile hardware cu acestea. Dar, prin extensie, prin calculator personal se poate înţelege
orice calculator monoutilizator cu destinaţie generală.
Calculatoarele cu destinaţie generală sunt acele calculatoare capabile să rezolve o mare
varietate de probleme, adaptabilitatea la fiecare tip de problemă realizându-se prin
intermediul programelor. Nu toate calculatoarele sunt calculatoare cu destinaţie generală.
Astăzi sunt produse o gamă largă de calculatoare dedicate, destinate rezolvării unor probleme
specifice, un calculator dedicat fiind capabil să ruleze numai programele necesare rezolvării
tipului respectiv de probleme pentru care este dedicat calculatorul. Calculatoare dedicate pot
fi întâlnite în ceasurile electronice, camerele video, pompele de benzină, sistemele de ghidare
ale rachetelor, sistemele de control ale roboţilor industriali etc.
Până acum câţiva ani, termenii de calculator personal (Personal Computer) şi
calculator de birou (Desktop Computer) desemnau unul şi acelaşi lucru. Astăzi, noţiunea de
calculator personal tinde să cuprindă şi acele calculatoare portabile, de mici dimensiuni, şi
care nu pot fi desemnate prin termenul de calculator de birou sau "desktop computer", care
este folosit în continuare numai pentru calculatoarele ce pot fi întâlnite în mod uzual în
birouri, şi care sunt destinate rezolvării problemelor curente dintr-un birou: procesări de
texte, baze de date, dezvoltări de programe etc.

4
Un calculator "lap-top" este un calculator personal portabil, suficient de mic şi uşor
(cântărind numai 4-5 kg) astfel încât să încapă într-un geamantan de mici dimensiuni.
Calculatoarele "lap-top" sunt prevăzute cu hard disk, ecran plat realizat pe bază de cristale
lichide (LCD - Liquid Cristal Display), fiind alimentate cu energie electrică de la o baterie
reîncărcabilă. Calculatoarele "lap-top" mai sunt desemnate şi prin termenul de "notebook
computer".
Un alt termen controversat este cel de staţie de lucru ( "workstation" ). O staţie de lucru
este un calculator de birou performant, fiind mai puternic decât calculatoarele personale
uzuale (calculatoarele IBM), şi care este folosit, în principal, de cercetători ştiinţifici,
ingineri, creatori de desene animate şi alţii, care necesită prelucrări intensive de date. Întrucât
staţiile de lucru devin din ce în ce mai ieftine, şi calculatoarele personale din ce în ce mai
puternice, este foarte dificil de trasat o linie de departajare între o staţie de lucru şi cele mai
puternice calculatoare personale.
În afara tipurilor de calculatoare descrise mai sus, şi care sunt în esenţă calculatoare
monoutilizator, deşi pot fi folosite şi ca sisteme multiutilizator, mai pot fi întâlnite astăzi
calculatoare şi mai puternice, care sunt destinate din start lucrului cu mai mulţi utilizatori în
acelaşi timp, în vederea rezolvării unor probleme deosebit de complexe. Asemenea
calculatoare sunt desemnate prin termenul de "mainframe computers", un exemplu de
calculator "mainframe" fiind calculatorul utilizat pentru rezervarea locurilor la o companie de
transport aeriană. Acest calculator permite tuturor agenţilor companiei aeriene dintr-o ţară, să
facă rezervări folosind acelaşi calculator şi aceleaşi informaţii, în acelaşi timp. Agentul
companiei aeriene comunicã cu calculatorul "mainframe" prin intermediul unui terminal, ce
este un ansamblu format din tastatură şi ecran, şi care transferă informaţiile către şi de la
calculatorul "mainframe". Calculatorul "mainframe" se poate afla într-o cameră alăturată sau
într-o altă ţară. Un alt exemplu de calculator "mainframe" este calculatorul dintr-o bancă,
care este implicat în tranzacţii financiare cu diferiţi clienţi.
Rămânând în cadrul definiţiei extensive a calculatorului personal, ca fiind un calculator
monoutilizator cu destinaţie generală, cuprinzând aici şi calculatoarele de birou,
calculatoarele portabile şi chiar staţiile de lucru, în lucrarea de faţă se vor aborda numai
calculatoarele personale IBM sau compatibile cu acestea.

1.2. Structura hardware de principiu a unui


calculator personal
Un calculator personal este un sistem de prelucrare a informaţiei, a cărui unitate
centrală de prelucrare este realizată pe baza unui microprocesor. În general, orice calculator,
şi nu neapărat un calculator personal, are trei elemente constitutive principale:
- unitatea centrală de prelucrare sau UCP ( Central Processing Unit - CPU )
- memoria ( memory )

5
- sistemul de intrare / ieşire sau porturi ( Input / Output System or ports )

Figura 1.2. Reprezentarea simplificată a hardware-ului unui calculator


personal

Unitatea centrală de prelucrare realizează prelucrările sau procesările numerice în


conformitate cu o secvenţă de operaţii elementare, sau instrucţiuni, numită program. Deci, o
unitate centrală de prelucrare poate executa un set limitat de operaţii elementare, care
compun repertoriul de instrucţiuni al UCP-ului respectiv. La calculatoarele din generaţiile
anterioare, UCP-ul era compus, din punct de vedere constructiv, din foarte multe
componente. Datorită creşterii gradului de integrare a componentelor electronice, s-a ajuns ca
o unitate centrală de prelucrare să fie condensată într-un singur circuit integrat. O unitate
centrală de prelucrare realizată pe o singură pastilă de siliciu (sau cip) se numeşte
microprocesor.
Programele care sunt executate de microprocesor sunt stocate în memoria internă a
calculatorului personal. Datele procesate de către aceste programe sunt de asemenea stocate
în memoria calculatorului. Dar, memoria internă are o capacitate limitată. Din această cauză,
se folosesc pentru stocarea programelor şi datelor, dispozitivele sau unităţile de memorie
externă. Cele mai utilizate dispozitive de memorie externă sunt dispozitivele magnetice:
discuri flexibile (floppy disks), benzile magnetice, discurile de mare capacitate sau discurile
hard (hard disks), o altã denumire frecvent utilizată pentru acestea din urmă fiind cea de
discuri Winchester. Altă categorie de dispozitive de memorie externă, folosite în prezent,
sunt dispozitivele optice: CD-ROM, DVD (Digital Versatile Disc).
Un program, pentru a fi executat, trebuie să fie adus din memoria externă în memoria
internă. Deci, un microprocesor execută secvenţe de instrucţiuni din memoria internă.

6
Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitive
periferice de bază: tastatura pentru introducerea programelor sau datelor de prelucrat,
display-ul sau ecranul pentru afişarea informaţiilor din calculator, care pot fi în particular
rezultatele prelucrării, şi imprimanta, pentru tipărirea pe hârtie a acestor informaţii. Unitatea
centrală de prelucrare preia date de la dispozitivele de intrare prin intermediul porturilor de
intrare, şi trimite date către dispozitivele de ieşire, prin intermediul porturilor de ieşire.
Totalitatea porturilor de intrare / ieşire formează sistemul de intrare / ieşire al calculatorului.
UCP este conectată la memorie şi porturile de I/E prin intermediul unor linii paralele,
care alcătuiesc magistrala de comunicaţie a calculatorului. Deci, ca element constitutiv
principal al unui calculator personal, este şi această conectare a tuturor resurselor sale prin
intermediul unei magistrale de comunicaţie.
Această magistrală are 3 secţiuni :
• magistrala de date (Data Bus), pe care microprocesorul citeşte date din memorie sau
porturile de intrare, sau scrie date în memorie sau porturile de ieşire. Datele citite din
memorie pot fi, în particular, instrucţiuni.
• magistrala de adrese (Address Bus), UCP-ul folosind aceste linii pentru a selecta
locaţia de memorie sau portul de I/E, din care se vrea o dată pentru a fi citită, sau în care
se doreşte înscrierea unei date.
• magistrala de control (Control Bus), formată din linii specifice utilizate de
microprocesor pentru controlul transferurilor de date pe magistrală. De exemplu,
printr-o linie se poate specifica dacă microprocesorul citeşte sau scrie date (dacă
microprocesorul ţine linia respectivă în "0", aceasta înseamnă cã procesorul citeşte date
din memorie sau porturile de intrare; dacă microprocesorul pune "1" pe această linie, se
va efectua o scriere în memorie sau porturile de ieşire), prin altă linie dacă se face o
operaţie cu memoria sau cu porturile de I/E etc.
Dimensiunea magistralei de date va da tipul procesorului, respectiv al calculatorului
realizat în jurul procesorului respectiv. Dacă magistrala de date are 16 linii, deci transferurile
de date se pot face numai pe cuvânt (1cuvânt = 2 octeţi), se spune că avem un calculator pe
16 biţi, dacă magistrala de date are 32 linii avem un calculator pe 32 biţi etc.
În mod obişnuit, magistrala unui calculator personal este controlată de microprocesor,
în sensul că microprocesorul este cel care dirijează transferul de date pe magistrală. Însă,
microprocesorul poate ceda controlul magistralei unor alte dispozitive, care pot efectua
transferuri de date pe magistrală. De exemplu, prin utilizarea unui dispozitiv de acces direct
la memorie, sau dispozitiv DMA (Direct Memory Access), procesorul poate ceda magistrala
acestui dispozitiv DMA, care efectuează transferuri de date între dispozitivele periferice şi
memorie, microprocesorul fiind degrevat de sarcina unor astfel de transferuri, şi efectuând în
acest timp alte operaţii, care duc la creşterea gradului de paralelism şi implicit la creşterea
vitezei de calcul. Când transferul DMA s-a terminat, dispozitivul DMA anunţă

7
microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi deci
poate efectua transferuri de date pe magistrală.
Cele mai frecvent întâlnite familii de microprocesoare sunt: Intel (8088/8086, 80286,
80386, I80486, Pentium), Motorola (Motorola 680xx), AMD, Zilog (Z80, Z8000), Sparc
(Sun Sparc şi UltraSparc pe 32 de biţi), Mips etc. Calculatoarele IBM PC/XT sau AT
utilizau unul din microprocesoarele I8088 sau I8086 ale firmei INTEL, calculatoarele din
familia IBM PS/2 unul din microprocesoarele I8086, I80286, I80386 sau chiar I80486, iar
calculatoarele IBM actuale folosesc procesoare puternice cum ar fi Pentium II sau Pentium
III.
Pentru exemplificare, microprocesorul I8088 are magistrala de date de 8 biţi, magistrala
de adrese de 16 biţi, magistrala de control de 8 biţi, iar microprocesorul I8086 are magistrala
de date de 16 biţi, magistrala de adrese de 20 de biţi şi magistrala de control de 8 biţi.
Celelalte microprocesoare Intel vor fi tratate pe larg în secţiunile următoare.
Un microprocesor poate adresa în mod direct un spaţiu de memorie de 2na locaţii de
memorie, unde na este numărul de linii de adresă ale magistralei microprocesorului. La
calculatoarele personale actuale, unitatea elementară de memorie care poate fi adresată este
octetul. Deci, microprocesorul poate scrie/citi în/din memorie cel puţin octeţi. Dacă
magistrala de date are mai mult de 8 linii, cum este cazul microprocesorului I8086 care are 16
linii de date, se pot face transferuri de date între microprocesor şi memorie atât pe octet cât şi
pe cuvânt (1 cuvânt = 2 octeti = 16 biţi). La microprocesoarele I80386 şi I80486, care au
magistrala de date de 32 de biţi, se pot face transferuri pe octet, pe cuvânt sau pe dublu-
cuvânt (1 dublu-cuvânt = 2 cuvinte = 32 de biţi ).
Totalitatea adreselor fizice de memorie pe care le poate forma un microprocesor,
formează spaţiul de adrese de memorie. De exemplu, la I8086 spaţiul de adrese de memorie
este 0 -- 220-1, adică un spaţiu de adrese de memorie de 1Moctet; microprocesoarele I80386,
I80486 şi Pentium, cu 32 de linii de adresă, având un spaţiu de adrese de memorie de 232,
adică 4Gocteţi. Spaţiul de adrese de memorie se măsoară în octeţi, cu următorii multipli:
1Koctet sau 1Kb(yte) = 210 octeţi (1024 octeţi), 1Moctet sau 1Mb = 210 Kb, 1Goctet sau 1Gb
= 210 Mb.
Analog locaţiilor de memorie, fiecare port de intrare/ieşire are asociată o adresă de
intrare/ieşire. Totalitatea adreselor de I/E formează spaţiul de I/E al unui microprocesor. La
microprocesorul I8086, porturile pot fi pe 8 sau 16 biţi, după cum microprocesorul poate citi
sau scrie date din/în porturile respective (pe octet sau pe cuvânt). Procesoarele din familia
Intel 80x86 pot adresa un spaţiu de I/E de 64Kporturi de 8biţi, sau 32Kporturi de 16 biţi.
Fiecare microprocesor are o intrare de ceas, semnalul de la această intrare fiind folosit
pentru sincronizarea operaţiilor sale interne. Frecvenţa semnalului de ceas determină viteza
cu care microprocesorul procesează datele, şi este important ca această frecvenţă să fie cât
mai mare. De exemplu, dacă microprocesorul Z80 funcţiona la o frecvenţă de 2,5 sau 4MHz,
s-a ajuns ca un procesor Pentium III să poată funcţiona la o frecvenţă de 600MHz.

8
Memoria internă a unui calculator personal poate fi realizată cu circuite de două feluri :
• ROM -Read Only Memory - ce sunt memorii din care microprocesorul poate numai
să citească date, şi al căror conţinut nu se pierde la întreruperea alimentării
calculatorului. Memoriile ROM sunt utilizate pentru a stoca programe şi date care
trebuie să existe permanent în sistem. BIOS-ul (Basic Input Output Sistem)
sistemului de operare se află rezident în memoria ROM a calculatorului. Conţinutul
memoriilor de tip ROM poate fi şters cu ajutorul unui fascicul de raze ultraviolete
(memorii EPROM – Erasable Programmable ROM), existând şi variante mai
moderne (memoriile EEPROM – Electrical Erasable Programmable ROM), al căror
conţinut poate fi şters şi rescris cu ajutorul unui program special.
• RAM - Random Access Memory - ce sunt memorii la care microprocesorul poate
atât citi cât şi scrie date, şi al căror conţinut se pierde la întreruperea alimentării.
Sunt folosite pentru stocarea temporară a informaţiei.
Din punctul de vedere al tehnologiei de realizare, memoriile de tip RAM sunt de două
feluri:
• memorii statice (SRAM – Static RAM), care menţin informaţia atât timp cât există
tensiune de alimentare, fără a mai fi necesară reîmprospătarea (refresh-ul) sau
rescrierea informaţiei. Sunt memorii rapide, dar sunt scumpe.
• memorii dinamice (DRAM – Dynamic RAM), la care informaţia se volatilizează în
timp, şi de aceea este necesară reîmprospătarea periodică a acesteia, cu ajutorul unui
circuit specializat. Memoriile dinamice sunt mai lente decât memoriile statice, însă
sunt mai ieftine, şi sunt memoriile cu care se realizează memoria internă de mare
capacitate a calculatoarelor actuale. Există mai multe variante de memorii dinamice
DRAM, mai recente fiind:
- EDO RAM (Extended data Output DRAM) – care, printr-un artificiu, fac
posibilă citirea unor date din circuit în acelaşi timp în care se termină citirea
anterioară, rezultând o creştere a vitezei de acces la aceste memorii.
- SDRAM (Synchronous DRAM) – procesorul accesând aceste memorii la o
viteză sincronă cu viteza de lucru a magistralei calculatorului (plăcii de
bază), mergând până la 100 MHz. Memoriile ESDRAM (Enhanced SDRAM)
sunt variantele mai recente şi îmbunătăţite ale memoriilor SDRAM.
Circuitele de memorie sunt încapsulate în aşa numitele circuite DIPs (Dual Inline
Packages), sub forma unor barete de memorie, în două variante constructive:
• Circuite SIMM (Single Inline Memory Module), cu 30 de pini şi care permit un acces la
date pe 8 biţi, respectiv cu 72 de pini, şi care permit un acces la date pe dublu-cuvânt.
• Circuite DIMM (Double Inline Memory Module) – realizate într-o tehnologie mai
recentă, şi mai performante. Baretele DIMM au 168 de pini şi permit un acces la datele
conţinute pe 64 de biţi.

9
2. REPREZENTAREA INTERNĂ A
INFORMAŢIEI

Este dificil de găsit o definiţie adecvată a noţiunii de informaţie, ea având multe


înţelesuri. Totuşi, în teoria informaţiei, sau mai precis în teoria transmiterii informaţiei,
termenul de informaţie se aplică acelor lucruri care pot fi comunicate, fie că au sau nu o
valoare. Astfel, cuvintele, numerele, imaginile de pe o foaie de hârtie sunt simboluri ce
reprezintă o informaţie .
Un calculator nu poate înţelege cuvinte, imagini sau chiar litere, şi nu poate procesa
informaţie fără să o dividă în unităţi mai mici de informaţie, la fel cum un copil, pentru a
înţelege un cuvânt, trebuie să audă sunetele care compun cuvântul respectiv.
Bitul este unitatea cea mai mică de informaţie. Un bit poate distinge între doua stări,
deci poate avea două valori: 0 sau 1, sau cu alte cuvinte "da" sau "nu", "alb" sau "negru". Un
calculator poate procesa cantităţi mai mari de informaţie, tratând grupurile de biţi ca unităţi de
informaţie. Astfel, o colecţie de 8 biţi numită octet sau "byte", unde fiecare bit poate fi 0 sau
1, poate distinge între 256 de stări diferite ( 28=256 ), deci dacă am vrea să comunicăm cu
cineva folosind un octet, am putea transmite cel mult 256 de mesaje diferite, fiecare mesaj
fiind asociat cu o combinaţie de 0 şi 1 a celor 8 biţi. Celelalte unităţi de masură a informaţiei,
multipli ai octetului, au fost introduse în capitolul precedent.
Ce înseamnă pentru un calculator un şir de biţi de genul 10011010 ?. Un asemenea şir
de biţi poate fi un număr, o literă a alfabetului, o instrucţiune a unui program sau orice alt
lucru. Deoarece calculatoarele reduc orice informaţie la o combinaţie de 0 şi 1, numerele din
calculator sunt reprezentate folosind numai combinaţii ale celor două cifre sau simboluri.
Astăzi, calculatoarele nu lucrează numai cu numere, ci la fel de mult sunt folosite şi
caracterele, calculatorul procesând cuvinte, propoziţii etc. Pentru aceasta, este necesar ca
fiecare caracter să fie reprezentat în mod unic ca o secvenţă de biţi, făcând posibilă
memorarea şi reprezentarea grafică a mesajelor. Cele mai utilizate coduri alfanumerice sunt
ASCII - American Standard Code for Information Interchange - şi EBCDIC - Extended
Binary Coded Decimal Interchange Code. În prezent, marea majoritate a calculatoarelor
acceptă numai codul ASCII, în care fiecărui caracter alfanumeric îi corespunde un cod unic pe
7 biţi, sau pe 8 biţi în cazul codului ASCII extins. Întrucât codul ASCII este intens folosit de
către utilizatori, este necesară menţionarea codurilor ASCII ale celor mai utilizate caractere :

A - 65 a - 97 0 - 48 ' ' - 32 ( blanc )

10
B - 66 b - 98 1 - 49 CR - 13 ( Carriage Return )
C - 67 c - 99 2 - 50 LF - 10 (Line Feed )
D - 68 d - 100 3 - 51
ş.a.m.d ş.a.m.d. ş.a.m.d.

De asemenea, instrucţiunile programelor sunt codificate folosind secvenţe de biţi. De


exemplu, secvenţa 10101001 poate determina calculatorul să adune 2 numere, în timp ce altă
secvenţă poate determina calculatorul să execute o altă operaţie.

2.1. Reprezentarea numerelor într-un sistem


de numeraţie.

Se numeşte sistem de numeraţie, o mulţime finită de simboluri (sau cifre) şi de reguli


folosite pentru reprezentarea unui număr. Un sistem de numeraţie poziţional este un sistem de
numeraţie la care aportul unei cifre în valoarea totală a unui număr depinde atât de valoarea
cifrei, cât şi de locul ocupat de cifră în reprezentarea numărului respectiv. Sistemul de
numeraţie arab este un sistem de numeraţie poziţional, spre deosebire de sistemul de
numeraţie roman care nu este un sistem poziţional.
Teorema:
Fie p∈ N, p > 1. Atunci (∀) N∈Z, (∃) m∈N astfel încât să avem în mod unic
egalitatea :
N = xmpm + xm-1pm-1 +.......+ x1p + x0 (1)
unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0

Demostraţie:

Se poate presupune că N∈ Z + (dacă N∈ Z- demonstraţia se va face identic pentru


numărul -N ∈ Z + ). Împărţind succesiv la p, obţinem egalităţile :
N = N1p + x0, x0 〈 p
N1 = N2p + x1, x1 〈 p
. (2)
.
Nm-1 = Nmp + xm-1, xm-1 〈 p
Nm = 0*p + xm , xm 〈 p

11
Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la un
cât egal cu zero.
Înmulţind cu p0 prima relaţie, cu p1 a doua relaţie ş.a.m.d cu pm ultima relaţie, adunând
membru cu membru şi simplificând, obţinem egalitatea (1). Unicitatea descompunerii
numărului N, într-o sumă ca cea de mai sus, rezultă din unicitatea obţinerii câtului şi restului
în relaţiile (2), conform teoremei de împărţire cu rest a două numere întregi.

Definiţie : Se numeşte reprezentarea în baza p a numărului întreg N, succesiunea de


cifre xmxm-1 ... x1x0, unde xi verifică relaţiile :
a) 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 (3)
b) N= xmpm + xm-1 pm-1 +.......+ x1p + x0
Conform teoremei precedente, reprezentarea (3) este unică.

Definiţie : Se numeşte reprezentarea în baza p a numărului real r, succesiunea de


cifre xmxm-1 ... x1x0,x-1x-2x-3..., unde xi verifică relaţiile :
a) 0 ≤ xi ≤ p-1 (∀) i = ... -2,-1,0,1,...,m şi xm≠0
b) r = xmpm + xm-1pm-1 +.......+ x1p + x0 + x-1p-1 + x-2p-2 + ....
Se demonstrează că reprezentarea de mai sus este unică.
Numărul real r se poate scrie sub forma :
r = ri + rl unde ri = [r] - partea întreagă a lui r
rl = {r} - partea fracţionară a lui r
Conform teoremei demonstrate anterior, numărul întreg ri se scrie în mod unic astfel :
ri = xmpm + xm-1pm-1 +.......+ x1p + x0 ,
unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0
Înmulţind rl cu p şi reţinând partea întreagă, după care continuând înmulţirea părţilor
fracţionare cu p obţinem :

rl *p = x-1 + rl1
rl1*p = x-2 + rl2 , x-i - partea întreagă (4)
rl2*p = x-3 + rl3 , rli - partea fracţionară
ş.a.m.d.

Înmulţind relaţiile (4) cu p-1, p-2, p-3 ... şi adunând membru cu membru, după
simplificare obţinem: rl = x-1p-1 + x-2p-2 + ... (5)
Evident, reprezentarea (5) este unică.
Deci r = xmpm + xm-1pm-1 +....+ x1p + x0 + x-1p-1 + x-2p-2 + ...
Dacă prin înmulţirea cu p, a părţii fracţionare obţinute într-una din relaţiile (4), obţinem
rezultatul 0, numărul real r are un număr finit de cifre zecimale, altfel va avea un număr
infinit de cifre zecimale.

12
În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întreg
sau real, într-o baza oarecare p, se folosesc numai p simboluri sau cifre. Cifrele sistemului
binar sunt 0 şi 1, ale sistemului octal (baza 8) sunt 0,1,2,3,4,5,6,7, iar ale sistemului
hexazecimal (baza 16) sunt 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

2.2. Conversia numerelor dintr-o bază în alta

Fie numărul întreg N scris în baza p. Pentru a obţine echivalentul lui în baza q, scris
N(q), va trebui să obţinem o reprezentare de forma ymym-1 ... y1y0, unde N(q) = ymqm + ym-1qm-1
+.......+ y1q + y0 şi 0 ≤ yi ≤ q-1 (∀) i = 0,1,...,m; ym≠0.
Pentru aceasta, se împarte numărul N(p) la q şi apoi succesiv câturile obţinute, până
când se obţine câtul zero. Cifrele reprezentării în baza q sunt resturile împărţirilor succesive
luate în ordinea inversă obţinerii lor.

N(p) = N1(p)*q + y0
N1(p) = N2(p)*q + y2
. 0 ≤ yi ≤ q-1, i = 0,1,2,..,m
.
Nm-1(p) = Nm(p)*q + ym-1
Nm(p) = 0 * q + ym
În acest mod se face conversia unui număr întreg, din baza p în baza q, calculele fiind
efectuate în baza p.
Fie r(p) un număr real scris în baza p. Deci, r(p) se descompune într-o parte întreagă şi o
parte fracţionară astfel : r(p) = ri(p) +rl(p).
Numărul ri(p) fiind un număr întreg, se converteşte în baza q conform procedurii date
mai sus, obţinându-se o reprezentare de forma ymym-1 ... y1y0. Pentru conversia părţii
fracţionare, se înmulţeşte rl(p) cu q, se separă partea întreagă de partea fracţionară, apoi se
continuă înmulţirea părţii fracţionare cu q, repetându-se procedeul până când partea
fracţionară devine zero, sau până când se obţin cifrele părţii fracţionare în baza q, cu o
anumită precizie.

rl(p) *q = y-1 + rl1(p)


rl1(p)*q = y-2 + rl2(p)
rl2(p)*q = y-2 + rl3(p)
ş.a.m.d.

Deci r(q) = ymqm + ym-1qm-1 +....+ y1q + y0 + y-1q-1 + y-2q-2 + ... ,

13
ymym-1 ... y1y0,y-1y-2... fiind reprezentarea în baza q a numărului real r
De asemenea, calculele sunt efectuate în baza p. Se pot evidenţia proceduri de conversie
a numerelor întregi sau reale, din baza p în baza q, calculele fiind efectuate în baza q. Se va
exemplifica o astfel de procedură în exemplele următoare, transformând numere din baza 2, 8,
16 în baza 10, calculele fiind efectuate în baza 10.
Sistemele de numeraţie folosite de către utilizatorii de calculatoare, în afară de sistemul
zecimal, sunt: sistemul binar, sistemul octal şi sistemul hexazecimal. Sistemul binar este
sistemul de numeraţie în care lucrează calculatoarele electronice, datorită faptului că nu are
decât două cifre, ceea ce duce la o implementare uşoară a calculelor în hardware. Sistemele de
numeraţie octal şi hexazecimal sunt folosite deoarece comprimă şirurile lungi de biţi din
reprezentarea unui număr în baza 2, iar conversia din baza 2 in baza 8 sau 16, şi invers, se
face foarte uşor, fără calcule laborioase.

Exemple de conversie dintr-o bază în alta :

Exemplu de conversie din baza 10 în baza 2 :

13,725(10) = 13(10) + 0,725(10)

13(10) = 1101(2)
0,725 x 2 = 1,450 = 1 + 0,450
0,450 x 2 = 0,900 = 0 + 0,900
0,900 x 2 = 1,800 = 1 + 0,800
0,800 x 2 = 1,600 = 1 + 0,600
ş.a.m.d.
0,725(10) = 0,1011..(2)
Deci 13,725(10) = 1101,1011..(2)

Exemplu de conversie din baza 10 în baza 16 :

14
Deci 418(10) = 1A2(16)

Exemple de conversie din baza 2,8,16 în baza 10:

Fie ymym-1 ... y1y0,y-1y-2... un număr real reprezentat în baza p. Pentru a obţine
reprezentarea acestui număr în baza q, calculele fiind efectuate în baza q, va trebui să
calculăm următoarea sumă: ∑ yix pi (în baza q). În cazul numerelor întregi, se calculează o
sumă asemănătoare, dar din care lipsesc termenii corespunzători puterilor negative ale lui p.

10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 16 + 0 + 4 + 0 + 1 = 21(10)


1101110(2) = 1x26 + 1x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20 = 64 + 32 + 0 + 8 + 4 +
+ 2 + 0 = 110(10)

101,1(2) = 1x22 + 0x21 + 1x20 + 1x2-1 = 4 + 0 + 1 + 0,5 = 5,5(10)


1A2(16) = 1x162 + 10x161 + 2x160 = 256 +160 + 2 = 418(10)
A0B(16) = 10x162 + 0x161 + 11x160 = 2560 + 0 + 11 = 2577(10)
163(8) = 1x82 + 6x81 + 3x80 = 64 + 48 + 3 = 115(10)

Exemple de conversie din baza 2 în baza 16 şi invers:

Pentru a transforma un număr din baza 2 în baza 16, nu este necesar să facem conversia
din baza 2 în baza 10 şi apoi conversia din baza 10 în baza 16, ci se poate face direct
conversia din baza 2 în baza 16 sau invers, utilizând tabela din figura 2.1.
Pentru a realiza conversia unui număr întreg din baza 2 în baza 16, se împarte numărul
binar în grupe de câte 4 cifre binare, începând de la cifra cea mai puţin semnificativă,
înlocuindu-se apoi fiecare grupă de 4 cifre binare cu cifra hexazecimală corespondentă din
tabela de mai jos. În cazul numerelor reale, împărţirea în grupe de câte 4 cifre binare se face
începând de la virgula zecimală spre cele două capete. Pentru conversia inversă, din baza 16
în baza 2, se înlocuieşte fiecare cifră hexazecimală cu grupul corespondent de 4 cifre binare
din tabelă. Zerourile din faţa numărului sunt nesemnificative.
Exemple :
110001010011110(2) = 0110 0010 1001 1110 = 629E(16)
10110,101011(2) = 0001 0110, 1010 1100 = 16,AC(16)
1AE(16) = 0001 1010 1110 = 110101110(2)

15
F24A(16) = 1111 0010 0100 1010 = 1111001001001010(2)

baza 10 baza 16 baza 2


0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Figura 2.1. Tabela de conversie a cifrelor hexazecimale în baza 2

Într-un mod asemănător, se poate face conversia din baza 2 în baza 8 şi invers, utilizând
o tabelă similară, ce asociază fiecărei cifre octale numărul binar echivalent scris pe 3 biţi.
Împărţirea numărului binar se face, în acest caz, pe grupe de câte 3 cifre.

2.3. Reprezentarea numerelor în calculator. Coduri


de reprezentare.

Ţinând cont de reprezentarea internă a semnului numerelor binare, distingem


următoarele trei coduri de reprezentare:
a) codul direct - în care numărul binar este reprezentat prin modulul numărului
precedat de un bit de semn; 0 dacă este pozitiv, 1 dacă este negativ.
Exemple:
x = +1101 se reprezintă în cod direct astfel : xd = 01101
y = - 11011,101 → yd = 111011,101
b) codul invers sau codul complementar faţă de 1 - în care dacă numărul este pozitiv,
se reprezintă în cod invers la fel ca şi în cod direct, deci precedat de un bit 0. Dacă numărul x

16
este negativ (x < 0), se inversează cifrele reprezentării binare în cod direct a numărului -x,
care este un număr pozitiv.
Exemple:
x = +1101 → xi = 01101
y = -1101,011 → yi = 10010,100
c) codul complementar faţă de 2 - În cazul numerelor pozitive, reprezentarea este
aceeaşi ca şi în codul direct. Pentru numerele negative, codul în complement faţă de 2 se
obţine din codul invers, la care se adaugă 1 în rangul cel mai puţin semnificativ.
Exemple:
x = +1101 → xc = 01101
y = -1101 → yi = 10010 +
1
⎯−⎯
yc = 10011
În prezent, codul în complement faţă de 2 este acceptat în exclusivitate la majoritatea
calculatoarelor electronice, şi îl vom folosi în continuare.
La reprezentare internă a unui număr binar, nu se poate face abstracţie de numărul de
biţi pe care se reprezintă numărul binar. Dacă se doreşte reprezentarea numărului binar pe un
număr mai mare de biţi, se face extensia bitului de semn în cei mai semnificativi biţi. De
exemplu, fie numărul zecimal -7, a cărui reprezentare în complement faţă de 2, pe un octet,
este 11111001 (+7 reprezentat în cod direct este 0111, deci -7 în cod complementar faţă de 2
va fi 1001, la care se face extensia bitului de semn până la octet ). Reprezentat în cod
complementar faţă de 2 pe un cuvânt, -7 va fi 1111111111111001 (de exemplu, în urma
execuţiei instrucţiunii MOV AX,-7 registrul AX va conţine valoarea binară
1111111111111001).
Ca o remarcă la reprezentarea în complement faţă de 2, se poate observa că numerele
pozitive vor avea întotdeauna cel mai semnificativ bit 0, în timp ce numerele negative vor
avea 1 în cel mai semnificativ bit.

Relativ la modul de reprezentare a virgulei zecimale, numerele reale pot fi reprezentate


în virgulă fixă sau în virgulă mobilă.
Un număr real reprezentat în virgulă fixă este o succesiune de cifre împărţite de o marcă
zecimală, într-o parte întreagă şi una fracţionară. Astfel, formatul de reprezentare în virgulă
fixă conţine un bit de semn, un câmp format dintr-un număr oarecare de biţi pentru
reprezentarea părţii întregi a numărului real şi un câmp pentru reprezentarea părţii fracţionare.
Aceste câmpuri sunt de lungime constantă.
Exemplu de format în virgulă fixă:

17
Reprezentarea în virgulă fixă limitează gama numerelor ce pot fi reprezentate. Astfel,
dacă i este numărul de biţi rezervaţi pentru partea întreagă, f numărul de biţi rezervaţi pentru
partea fracţionară, numărul real maxim ce poate fi reprezentat este rmax = 011.. 1,111...1, ce
conţine i biţi 1 în faţa virgulei zecimale şi f biţi 1 după virgula zecimală.
Dacă în cazul reprezentării în virgulă fixă a numerelor reale, sarcina evidenţei mărcii
zecimale revine programatorului, în cazul reprezentării în virgulă mobilă, această sarcină
revine calculatorului. Pentru a reprezenta un număr real r în virgulă mobilă sau flotantă,
acesta se scrie sub forma :

r = + M* bE ; b∈N, b ≥ 2 şi E∈Z
M se numeşte mantisă, E exponent, iar b este baza de reprezentare a numărului.
Reprezentarea numărului real r de mai sus este unică, dacă 1/b 〈 ⏐M⏐ 〈 1. Operaţia prin care
se modifică mantisa pentru a îndeplini această condiţie, ajustând corespunzător exponentul, se
numeşte normalizare a mantisei. De exemplu, adunând 0,785x101 (7,85) cu 0,625x101 (6,25),
obţinem 1,410x101, iar după normalizare 0,410x102.
Exemplu de format în virgulă mobilă :

Există mai multe formate standard de reprezentare a numerelor reale în virgulă fixă sau
mobilă, dar acestea nu vor fi tratate în secţiunea de faţă. Formatul de virgulă mobilă prezentat
mai sus este formatul IEEE pentru numere reale scurte (pe 32 de biţi). Operaţiile cu numere în
virgulă fixă sunt executate mai repede decât aceleaşi operaţii cu numere în virgulă mobilă,
deoarece în cel de-al doilea caz sunt necesare calcule suplimentare, dar sunt preferate
numerele reprezentate în virgulă mobilă datorită faptului că uşurează munca programatorului.
Procesoarele din familia Intel 80x86 nu au instrucţiuni de prelucrare a numerelor în virgulă
mobilă. Pentru aceasta sunt utilizate coprocesoarele aritmetice din familia 80x87. La 80486 şi
Pentium, coprocesorul arimetic este integrat pe cip împreună cu procesorul principal.

18
3. LOGICĂ COMBINATORICĂ ŞI SECVENŢIALĂ

3.1. Elemente de logică booleană. Funcţii logice.

În practica electronică, cifrele binare se reprezintă prin două niveluri de tensiune.


Astfel, pentru familia de circuite logice integrate TTL - Tranzistor Tranzistor Logic - se
asignează "1" logic pentru un nivel de tensiune mai mare de 2,4V (cuprins între 2,4V şi 5V),
şi un "0" logic pentru un nivel de tensiune mai mic de 0,4V (cuprins între 0 şi 0,4V ). Într-o
manieră simplificată, se poate considera că "1" logic este reprezentat de un nivel de tensiune
apropiat de +5Vcc, iar "0" logic este reprezentat de un nivel de tensiune apropiat de 0Vcc,
majoritatea circuitelor electronice dintr-un calculator fiind alimentate cu o tensiune electrică
continuă între +5Vcc şi 0Vcc.
Algebra care corespunde logicii binare sau bivalente, utilizate până în prezent în
calculatoare, este algebra Boole. Algebra Boole operează pe o mulţime B formată din două
valori: "0" şi "1" (deci B = {0,1}), pe care se definesc trei legi de compoziţie : negaţia,
disjuncţia şi conjuncţia.
Complementarea logică sau negaţia (operatorul NOT) este definită prin următorul tabel
de adevăr :

Simbolul grafic cel mai utilizat pentru reprezentarea operatorului negaţie este
următorul:

Disjuncţia logică sau suma logică (operatorul SAU,OR) şi conjuncţia logică sau
produsul logic (operatorul ŞI, AND ) sunt definite de următoarele tabele de adevăr:

Simbolurile grafice utilizate pentru reprezentarea celor două operaţii logice sunt:

19
Elementele mulţimii B satisfac următoarele proprietăţi, (∀) X,Y,Z ∈B:
1. idempotenţa: X+X = X ; X*X = X

2. comutativitate: X+Y = Y+X ; X*Y =Y*X

3. asociativitate: X+(Y+Z) = (X+Y)+Z ; X*(Y*Z) = (X*Y)*Z

4. distributivitate: X*(Y+Z) = X*Y+X*Z ; X+Y*Z = (X+Y)*(X+Z)

5. existenţa elementului neutru: X+0 = X ; X*1 = X

6. existenţa complementului: X+X = 1 ; X*X = 0

7. dubla negaţie: X=X

8. legile lui De Morgan: X*Y = X+Y ; X+Y = X*Y

9. absorbţia: X*(X+Y) = X ; X+X*Y = X

Formulele lui De Morgan ne permit să scriem orice relaţie logică folosind numai doi din
cei trei operatori definiţi anterior; sau numai NOT şi OR, sau numai NOT şi AND. Dacă
combinăm cei doi operatori din fiecare pereche de operatori dată mai sus, obţinem încă doi
noi operatori, cu tabelele de adevăr şi simbolurile următoare:

operatorul NOR (SAU-NU) operatorul NAND (ŞI-NU)

Orice relaţie logică se poate scrie utilizând numai unul din operatorii NAND sau NOR.
O altă operaţie logică, des utilizată, este operaţia sau relaţia logică SAU EXCLUSIV
(XOR), al cărei tabel de adevăr şi simbol grafic sunt date mai jos.

20
O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de n
ori. Valorile unei funcţii booleene pot fi prezentate într-un tabel, cu 2n linii şi n+1 coloane,
numit tabel de adevăr al funcţiei. În primele n coloane se trec cele 2n combinaţii de valori ale
variabilelor funcţiei, iar în coloana n+1 se trec valorile funcţiei corespunzătoare fiecărei
combinaţii.
Exemplu: f(X,Y,Z) = XYZ + YZ +XZ

O funcţie booleană, sau o expresie booleană, este în forma canonică disjunctivă, dacă se
scrie ca o disjuncţie de mintermeni, şi este în forma canonică conjunctivă, dacă se scrie ca o
conjuncţie de maxtermeni. Un mintermen este un produs logic, conţinând fiecare variabilă o
dată şi numai o dată, fie variabila fie negaţia ei. Un maxtermen este o sumă logică, ce conţine
fiecare variabilă o dată şi numai o dată, fie variabila fie negaţia ei.
Exemple:
f(X,Y,Z) = XYZ +XYZ +XYZ
f(X1,X2,X3) = (X1+X2+X3)(X1+X2+X3)(X1+X2+X3)
Funcţia logică al cărei tabel de adevăr a fost prezentat mai sus se poate scrie
în forma canonică disjunctivă astfel :
f(X,Y,Z) = XYZ +YZ + XZ = XYZ + (X+X)YZ + X(Y+Y)Z = XYZ + XYZ + XYZ +XYZ + XYZ
Forma canonică conjunctivă este mai puţin utilizată în practică decât forma canonică
disjunctivă.

3.2. Implementarea şi minimizarea funcţiilor logice

Porţile logice sunt circuitele care implementează funcţiile logice de bază: NOT,AND,
OR, NAND, NOR, XOR. Prin implementarea unei funcţii logice, se înţelege realizarea ei cu
ajutorul circuitelor fundamentale sau porţilor logice. Costul unei funcţii logice este egal cu
numărul de intrări în circuitele logice elementare ce realizează funcţia dată.
Exemple:
1. Să se implementeze funcţia f(X,Y,Z) = XYZ + XY + XYZ

21
2. Să se implementeze funcţia f(X,Y) = XY + X utilizând întâi porţi AND, OR,
NOT, şi apoi utilizând numai porţi NAND.

Numărul de niveluri al unei structuri sau implementări logice este egal cu numărul
maxim de circuite pe care le parcurge un semnal de la intrare la ieşire. În primul exemplu,
funcţia este implementată pe 3 niveluri logice, în cel de-al doilea exemplu fiind implementată
pe 2 niveluri logice.
Prin minimizarea unei funcţii logice se înţelege metodologia obţinerii unei expresii
logice echivalente cu cost minim, pentru un număr dat de niveluri logice. Funcţia din
exemplul 1, de mai sus, poate fi minimizată şi implementată astfel :
f(X,Y,Z) = XYZ + XY + XYZ = (X + X)YZ +XY = YZ + XY

Costul funcţiei după minimizare este C(f) = 7, spre deosebire de prima implementare, în
care costul funcţiei este C(f) = 13.

Metoda Veitch - Karnaugh de minimizare a unei functii logice:

Se consideră o funcţie de n variabile logice, în forma normală disjunctivă. Se împart


cele n variabile în 2 mulţimi de k şi p elemente, k + p = n. Vom forma o matrice cu 2k linii şi

22
2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilor
variabilelor ce poziţionează elementul în matrice. În general, putem grupa 21, 22, 23,..., 2p
termeni vecini cu valori 1 ale funcţiei , eliminându-se din termenul rezultant 1,2,3,...,p
variabile, pentru care echivalenţii binari îşi schimbă valoarea în rangurile corespunzătoare
acestor variabile. Pentru ordonarea coloanelor şi liniilor matricei Veitch-Karnaugh, se
folosesc combinaţiile posibile ale valorilor variabilelor de intrare, două coloane sau linii
alăturate schimbând doar un singur bit.
Exemplul 1:
Să se minimizeze următoarea funcţie de 4 variabile : f(X1,X2,X3,X4) = X1X2X3X4+ X1X2X3X4+
+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4

Exemplul 2:
Să se minimizeze următoarea funcţie de 3 variabile : f(X1,X2,X3) = X1X2X3+ X1X2X3+
+ X1X2X3+ X1X2X3+ X1X2X3+ X1X2X3

3.3. Materializarea funcţiilor logice. Circuite logice.

Orice poartă logică definită pentru 2 intrări, şi care implementează una din funcţiile
logice de bază descrise mai sus, poate fi gândită şi utilizată cu un număr mai mare de intrări.
Astfel, există porţi logice OR, AND, NAND etc. cu 3, 4 sau chiar 8 intrări. Pe o capsulă de
circuit integrat pot fi implementate una sau mai multe porţi, depinzând de dimensiunea
capsulei (numărul de pini al capsulei) precum şi de numărul de intrări ale porţilor logice. De

23
exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1
poartă NAND cu 8 intrări etc.

Circuitul 7404, reprezentat mai sus, este o capsulă de 14 pini în tehnologie TTL, care
conţine 6 inversoare; circuitul 7400 conţine 4 porţi NAND cu 2 intrări ; circuitul 7432 conţine
4 porţi OR cu 2 intrări etc. Capsulele sunt alimentate la o tensiune de +5Vcc.
În funcţie de tehnologia de realizare, există trei mari categorii de circuite logice :
- TTL - Tranzistor Tranzistor Logic, cu varianta TTL Shottky.
- ECL - Emiter Coupled Logic
- MOS - Metal Oxid Semiconductor, cu cele 3 variante: PMOS, NMOS, CMOS

Caracteristicile principale ale circuitelor logice :


- timpul de propagare, notat cu tp şi măsurat în nsec. Este timpul scurs între momentul
modificării unei variabile la intrare şi momentul când răspunsul este furnizat la ieşirea
circuitului.

- puterea disipată, notată cu P şi măsurată în mW.


- Fan-out, ce reprezintă numărul maxim de intrări ce pot fi conectate la ieşirea unui
circuit logic. La ieşirea unui circuit nu pot fi conectate un număr prea mare de intrări. Astfel,
pentru circuitele TTL, Fan-out = 10, ceea ce înseamnă că la ieşirea unei porţi logice TTL, din
cele prezentate în acest capitol, pot fi conectate maximum 10 intrări ale altor porţi logice.
- valorile tipice ale tensiunilor de intrare şi ieşire. De exemplu, pentru familia de
circuite logice TTL, tensiunea de ieşire minimă garantată în starea "high" (atunci când la

24
ieşire trebuie să fie "1" logic) este VOH = 2,4V, iar tensiunea de ieşire maximă în starea "low"
(atunci când la ieşire trebuie să fie "0" logic) este VOL = 0,4V.
În mod obişnuit, ieşirile circuitelor date mai sus nu pot fi conectate împreună. În unele
situaţii, cum este conectarea la magistrală, apare necesitatea conectării împreună a ieşirilor
mai multor circuite logice. În acest caz devin utile circuitele "tri-state", ieşirea circuitului
având trei stări posibile : nivel ridicat ("1"), nivel coborât ("0"), şi deconectat sau starea de
mare impedanţă. Dacă circuitul "tri-state" este activat, ieşirea circuitului va fi în starea "high"
sau "low" în funcţie de intrările circuitului. Dacă circuitul este dezactivat, ieşirea circuitului
va fi deconectată de la magistrală, magistrala sau linia comună fiind controlată de ieşirea altui
circuit logic.
Exemple:

Poartă ŞI-NU cu 2 intrări de date şi o intrare de activare

Obs: Semnalele active pe nivel coborât sunt marcate pe desen printr-un cerculeţ,
denumirea semnalului fiind supraliniată.
Mai jos este prezentat un circuit buffer sau circuit tampon, a cărui ieşire Z va fi egală cu
intrarea X dacă intrarea de activare E este 1, altfel ieşirea Z va fi în starea de mare impedanţă.

Exemplu de cuplare la o linie de magistrală a mai multor semnale (X1,X2,X3), utilizând


circuite buffer:

25
3.4. Structuri logice combinaţionale

O structură logică combinaţională, sau un circuit logic combinaţional, este un circuit cu


n intrări şi m ieşiri, la care ieşirile pot fi exprimate ca funcţii numai de intrările circuitului.

Decodorul este circuitul logic combinaţional cu n variabile de intrare şi cel mult 2n


variabile de ieşire, la care numai o singură ieşire este activă (de regulă în starea "low") la un
moment dat, celelalte ieşiri fiind inactive. Va fi activă ieşirea yk, k=0,1, ...2n-1, unde k
reprezintă corespondentul zecimal al numărului binar XnXn-1...X2X1 existent pe cele n linii de
intrare. Circuitul decodor poate avea una sau mai multe intrări de activare.
Exemple:
Circuitul 7442 este un decodor zecimal, cel mult una din cele 10 ieşiri fiind activă la un
moment dat. Astfel, dacă la intrare avem combinaţia DCBA = 0111, toate ieşirile vor fi în "1"
logic, cu excepţia ieşirii 7 care va fi în "0" logic.

Circuitul 74138 este un decodor octal cu 3 intrări de activare. Circuitul va fi activ dacă
E1=E2=0 şi E3=1. Altfel, toate ieşirile sunt inactive (în starea "high") indiferent de combinaţia
de pe liniile C,B,A. Dacă circuitul este activ, acesta va funcţiona conform următoarei tabele
de adevăr :

26
Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumit
uneori şi circuit "selector", deoarece este utilizat ca un comutator de selectare a anumitor
intrări. De exemplu, un multiplexor cu 8 intrări selectează şi trimite la ieşire una din cele 8
intrări, în funcţie de un cod de selecţie pe 3 biţi, aflat pe cele 3 intrări de selecţie.

În cazul general, cu ajutorul celor n intrări de selecţie, se selectează una din cele 2n
intrări de date, intrare care este cuplată la ieşire. Uneori, circuitele multiplexoare sunt
prevăzute cu intrări de activare. Un exemplu concret de circuit multiplexor este circuitul
74151, care implementează următoarea funcţie logică:
Y = S(CBAI0+CBAI1+CBAI2+CBAI3+CBAI4+CBAI5+CBAI6+CBAI7)
Dacă S=1 circuitul este inactiv, deci Y=0 indiferent de intrările C,B,A, I0-I7. Circuitul
este activ, funcţionând ca un comutator comandat de intrările de selecţie, numai dacă S=0.
Un alt circuit logic combinaţional este sumatorul, care realizează suma a două numere
binare. De exemplu, circuitul sumator CDB483 adună două numere binare pe 4 biţi astfel :
C4∑3∑2∑1∑0 = X3X2X1X0 +Y3Y2Y1Y0 + C0

27
Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 în
cascadă, ca în figura de mai jos. De regulă, se preferă n = 4k.

Tot circuite combinaţionale sunt şi unităţile aritmetico-logice, care pot efectua diferite
operaţii aritmetice şi logice. De exemplu, ALU74181 este o unitate aritmetico-logică pe 4 biţi,
care poate realiza 16 operaţii logice şi 16 operaţii aritmetice asupra operanzilor pe 4 biţi.
Circuitul are 4 intrări de selecţie a operaţiei şi o intrare de control a modului. Dacă intrarea de
control a modului este "0", circuitul realizează o operaţie aritmetică asupra operanzilor:
adunare, scădere etc., operaţie selectată de cele 4 intrări de selecţie a operaţiei. Dacă intrarea
de control este "1", circuitul va realiza una din cele 16 operaţii logice (produs logic, sumă
logică etc.) selectate de intrările de selecţie a operaţiei. Pentru a realiza operaţii logice sau
aritmetice pe mai mulţi biţi, se conectează mai multe circuite ALU74181 în cascadă. O
asemenea unitate aritmetico-logică, dar mult mai performantă, se găseşte în interiorul oricărui
microprocesor.

3.5. Sisteme logice secvenţiale

Capacitatea de a memora este foarte utilă în soluţionarea unor probleme. Nu toate


problemele pot fi rezolvate într-o manieră pur combinaţională. Funcţia de memorare ne
permite să reţinem datele până în momentul când este necesară prelucrarea lor, împreună cu
alte date de intrare. Dispozitivele secvenţiale sau dispozitivele cu memorie, au o intrare de
ceas (sau intrare de tact), starea lor schimbându-se numai ca urmare a tranziţiei acestui semnal
de ceas.

28
Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiind
complet definite de intrări. La un sistem secvenţial, relaţia dintre ieşiri şi intrări este
determinată şi de evoluţia anterioară a intrărilor şi ieşirilor. Un sistem logic secvenţial poate fi
divizat într-un circuit pur combinaţional şi un circuit cu memorie astfel:

Dacă poarta logică este elementul combinaţional de bază al structurilor combinaţionale,


bistabilul este elementul secvenţial de bază al sistemelor secvenţiale. Elementele de
memorare, şi în particular bistabilii, îşi modifică ieşirea în funcţie de intrări numai ca urmare
a tranziţiei semnalului de ceas.

3.5.1. Tipuri de bistabile

Bistabilul de tip D - este elementul fundamental de memorare.

Ieşirea Q la momentul n+1 (la a n+1-a tranziţie a semnalului de ceas) este egală cu
intrarea D la momentul n (intrarea anterioară tranziţiei n+1 a semnalului de ceas). Mai clar,
funcţionarea bistabilului de tip D rezultă din următoarea diagramă de semnale:

29
Bistabilul de tip R-S

Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorul


front activ al semnalului de ceas, sau altfel spus, resetează ieşirea bistabilului. Dacă intrarea
S, numită şi intrare de Set, este 1, ieşirea bistabilului va trece în 1 la următorul front activ al
ceasului. Dacă R=S=0, ieşirea bistabilului rămâne nemodificată după a n+1-a tranziţie a
semnalului de ceas. R=S=1 determină trecerea bistabilului într-o stare nedeterminată (ieşirea
poate fi atât 0 cât şi 1), fiind necesară evitarea acestei combinaţii. Pot exista bistabile R-S fără
intrare de ceas, bistabilul fiind resetat imediat ce intrarea R=1, şi fiind setat imediat ce
intrarea S=1.
Bistabilele pot fi active pe nivel sau pe front. În cazul bistabilelor active pe nivel,
tranziţia ieşirii bistabilului este determinată de nivelul semnalului de ceas, spre deosebire de
bistabilele active pe front, la care tranziţia ieşirii este determinată de frontul crescător sau
descrescător al semnalului de ceas. Bistabilul de tip D prezentat anterior este un bistabil activ
pe frontul crescător al semnalului de ceas.

Bistabilul de tip J-K

Spre deosebire de bistabilul R-S, în cazul bistabilului J-K, dacă J=K=1, ieşirea Q a
bistabilului la momentul n+1 va fi egală cu ieşirea Q la momentul anterior tranziţiei n+1 a
semnalului de ceas, inversată.

30
Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât cele
prezentate anterior. Astfel, circuitul 7474 (sau echivalentul său CDB474) conţine 2 bistabile
de tip D pe capsulă, care arată ca în figura 3.1. R şi S sunt intrări asincrone active pe nivel
coborât, care resetează, respectiv setează ieşirea Q a bistabilului, indiferent de semnalul de
ceas. De asemenea, fiecare bistabil mai este prevăzut cu o ieşire Q, ce reprezintă ieşirea Q
inversată. Ceasul este activ pe front crescător. Capsula 7473 (sau CDB473) conţine 2 bistabile
J-K active pe frontul descrecător al semnalului de ceas, cu intrări asincrone de set şi reset.

Figura 3.1. Bistabilele integrate 7474 şi 7473

3.5.2. Registre şi numărătoare

Mai multe bistabile pot fi grupate în configuraţii de registre sau numărătoare. Registrele
folosesc, de obicei, ca dispozitiv de memorare a datelor. Spre deosebire de bistabile, care
memorează o informaţie de un bit, registrele sunt dispozitive care pot stoca cuvinte (mai mulţi
biţi), deci registrele sunt realizate prin alăturare de bistabile, fiecare bistabil memorând un
singur bit. Registrele pot fi cu acces paralel sau cu acces serie. La registrele cu acces paralel,
operaţia de încărcare se realizează simultan în cele n circuite basculante ale registrului, pe
frontul activ al semnalului de ceas.
Exemplu de registru cu acces paralel, implementat cu bistabile de tip D:

În cazul registrelor cu acces serie, încărcarea bistabilelor registrului se face serial, de la


o intrare serială. Exemplu de registru serie, implementat cu bistabile de tip D:

31
La fiecare front activ al semnalului de ceas SI→Q1, Q1→Q2, Q2→Q3, Q3→Q4.
Un exemplu concret de registru integrat este circuitul 7495 (sau CDB495) prezentat în
figura 3.2, şi care este un registru de 4 biţi, cu posibilitate de operare sincronă serie sau
paralelă. Funcţionarea circuitului 7495 este următoarea: Dacă S=1, este permisă operarea
paralelă, şi se vor încărca în registru, în paralel, datele de la D0-D3, la o tranziţie din 1 în 0 a
intrării de tact CP2 (ceas activ pe front descrescător). Dacă S=0, este permisă operarea serie, şi
la o tranziţie din 1 în 0 a intrării de ceas CP1, se realizează deplasarea serie dreapta a
informaţiei din registru: DS→Q0, Q0→Q1, Q1→Q2, Q2→Q3.

Figura 3.2. Circuitele 7495 şi 74193

De asemenea, mai multe bistabile pot forma o configuraţie de numărător, o asemenea


configuraţie numărând impulsurile de la intrarea de ceas a bistabilelor. Ieşirile bistabilelor
sunt interpretate, în acest caz, ca un număr binar ce reprezintă starea numărătorului, sau cu
alte cuvinte, ieşirile bistabilelor reprezintă numărul de impulsuri de ceas apărute la intrarea de
tact a bistabilelor. Astăzi nu se mai realizează practic numărătoare cu circuite bistabile
individuale, existând numeroase numărătoare integrate.
Astfel, circuitul 74193 este un numărător binar reversibil de 4 biţi (sau numărător
modulo 16). Circuitul are două intrări de ceas active pe front pozitiv: Cu - pentru
incrementarea numărătorului şi Cd - pentru decrementarea numărătorului. Numărătorul poate
fi resetat (Y3=Y2=Y1=Y0=0), dacă intrarea R=1. PL este o intrare de comandă a încărcării
paralele, deci dacă PL efectuează o tranziţie din "1" în "0", se realizează încărcarea paralelă:
D0→Y0, D1→Y1, D2→Y2, D3→Y3. Numărarea este posibilă dacă PL=1 şi R=0. Circuitul

32
incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şi
decrementează (scade 1) numărul Y3Y2Y1Y0 la fiecare front crescător al intrării Cd. Ieşirile
TCD şi TCU sunt "low" la trecerea prin zero a numărătorului când se numără înapoi, respectiv la
trecerea prin 15 când se numără înainte. Funcţiile logice realizate de cele două ieşiri sunt:

TCU = Y3Y2Y1Y0Cu
TCD = Y3Y2Y1Y0Cd

Aceste două ieşiri sunt necesare pentru cuplarea mai multor numărătoare 74193 în
cascadă, în vederea implementării unor numărătoare pe mai mulţi biţi.
Funcţionarea ca numărător înainte rezultă din următoarea diagramă de semnale:

O diagramă asemănătoare poate fi trasată şi în cazul numărării înapoi.

33
4. MICROPROCESOARELE DIN FAMILIA INTEL 80x86

4.1. Microprocesorul I80286

4.1.1. Caracteristici generale

Microprocesorul IAPX-286, sau I80286, este un microprocesor produs de firma INTEL,


aparţinând familiei IAPX, ce cuprinde microprocesoarele I8088, I8086, I80286, I80386,
I80486, Pentium. I80286 poate funcţiona până la o frecvenţă de 25MHz, fiind perfect
compatibil în jos cu microprocesoarele anterioare din familie: I8088 şi I8086. Are două
moduri de lucru: modul real şi modul protejat. Setul de instrucţiuni al microprocesorului
I8086 a fost lărgit cu instrucţiuni specifice modului de lucru protejat, ce oferă suportul
necesar implementării unor sisteme de operare multitasking, cum este OS/2. Într-un asemenea
sistem de operare, unitatea centrală de prelucrare serveşte pe rând mai multe taskuri, sau
programe, astfel încât utilizatorul are impresia că sunt rulează mai multe programe simultan.
I80286 are magistrala de date de 16 biţi la fel ca şi I8086, dar în schimb are magistrala
de adrese de 24 de biţi, cu care poate adresa în mod direct un spaţiu de memorie de
16Mocteţi. De asemenea, are în compunere o unitate de gestiune a memoriei, prin intermediul
căreia poate adresa o memorie virtuală de 1Goctet. La fel ca şi I8086, poate adresa un spaţiu
de I/E de 64 Kporturi de 8 biţi sau 32 Kporturi de 16 biţi.
I80286 lucrează în conjuncţie cu coprocesorul matematic I80287, care, spre deosebire
de I8087, poate asigura asistenţă microprocesorului I80286, în ce priveşte efectuarea
calculelor matematice, şi în modul protejat.
Microprocesorul I80286 este microprocesorul în jurul căruia sunt realizate
calculatoarele IBM AT sau compatibile, folosind o magistrală de tip ISA - Industrial
Standard Architecture. I80286 este livrat în două moduri diferite: într-o capsulă de plastic de
formă pătrată, cu pini numai pe cele 4 laturi ale capsulei, sau într-o capsulă pătrată ce conţine
o matrice de pini - Pin Grid Array.

4.1.2. Arhitectura internă a microprocesorului I80286

Microprocesorul I80286 este compus din 4 unităţi independente care lucrează în paralel:
- unitatea de interfaţă cu magistrala - BU (Bus Unit);
- unitatea instrucţiunilor - IU (Instrucţion Unit);
- unitatea de execuţie - EU (Execution Unit);
- unitatea de adresare - AU (Adress Unit).

34
Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorul
le efectuează pe magistrală, generând adresele, datele şi semnalele de control pentru memorie
şi porturile de I/E. BU transferă date între memorie sau porturi, şi microprocesor, la cererea
unităţii de execuţie. Dacă BU nu are o astfel de cerere din partea unităţii de execuţie, va aduce
din memorie următoarea instrucţiune în secvenţă, pe care o plasează într-o coadă de
instrucţiuni. Aceasta presupune că instrucţiunile se execută în secvenţă, una după alta, în
ordinea în care apar în memorie. Dacă survine o ruptură în secvenţă (de exemplu o
instrucţiune de salt), coada de instrucţiuni este resetată şi se reîncepe citirea instrucţiunilor cu
anticipaţie de la noua adresă. Coada de instrucţiuni este o memorie internă de 6 octeţi, care
memorează codurile instrucţiunilor înainte de a fi utilizate de unitatea instrucţiunilor. Acest
mecanism de citire cu anticipaţie a instrucţiunilor permite eliminarea timpilor morţi de citire
din memorie a instrucţiunii următoare.

Figura 4.1.1. Schema bloc internă a microprocesorului I80286

Unitatea instrucţiunilor primeşte instrucţiuni din coada de instrucţiuni, le decodifică, şi


le plasează într-o altă coadă, cu lungimea de 3 octeţi, numită coada instrucţiunilor
decodificate.
Unitatea de execuţie execută instrucţiunile preluate din coada de instrucţiuni
decodificate, şi face apel la unitatea de interfaţă cu magistrala, pentru toate transferurile de
date cu memoria sau cu porturile de I/E. Unitatea de execuţie conţine o unitate aritmetico-
logică - Arithmetical Logical Unit, destinată efectuării calculelor aritmetice şi logice care
intervin în execuţia instrucţiunilor. UAL efectuează calculele manevrând regiştrii generali şi

35
operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi în
registrul indicatorilor de condiţie şi stare F.
Unitatea de adresare asigură gestiunea memoriei, mecanismele de protecţie a memoriei
şi translatarea adreselor virtuale (sau logice) în adrese fizice, care sunt apoi utilizate de
unitatea de interfaţă cu magistrala.
Arhitectura microprocesorului I80286 este o arhitectură de tip bandă de asamblare, sau
"pipe- line", cele 4 unităţi lucrând în paralel, astfel că, spre exemplu, în timp ce unitatea de
execuţie este ocupată cu execuţia instrucţiunii curente, unitatea de interfaţă cu magistrala
încarcă instrucţiunea următoare, sau transferă în memorie rezultatul instrucţiunii executate
anterior. În acelaşi timp, unitatea instrucţiunilor decodifică următoarea instrucţiune de
executat, pe care o pune în coada de instrucţiuni decodificate, pentru a fi preluată de unitatea
de execuţie.

4.1.3. Registrele microprocesorului I80286

Microprocesorul I80286 conţine 15 registre interne de 16 biţi.


Aceste registre pot fi grupate în 5 categorii astfel:
- registre generale
- registre indicatoare de adresă şi index
- registre de segment
- registrul pointerului de instrucţiuni
- registre de control şi stare

Figura 4.1.2. Registrele microprocesorului I80286

Registrele generale AX, BX, CX, DX sunt utilizate în majoritatea instrucţiunilor


aritmetice şi logice, şi pot fi folosite atât ca registre pe 16 biţi, cât şi ca registre pe 8 biţi. De
exemplu, registrul AX, registru pe 16 biţi, este compus din registrul AH ce conţine cei 8 biţi

36
mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi din
AX.
Registrele SP şi BP sunt denumite registre indicatoare de adresă (sau pointer) şi sunt
folosite numai ca registre pe 16 biţi. Registrul SP conţine deplasamentul în octeţi al vârfului
stivei, faţă de începutul segmentului de stivă curent. De cele mai multe ori, şi registrul BP
conţine un deplasament în segmentul de stivă curent. Registrele BX şi BP mai sunt denumite
uneori şi registre bază, fiind desemnate să conţină adresa de bază a unei structuri de date din
memorie, cum ar fi adresa de bază a unui tablou.
Registrele index SI şi DI sunt registre numai pe 16 biţi, şi conţin de regulă un index,
care se incrementează sau se decrementează pe măsură ce se examinează o structură de date.
Sunt folosite în special de instrucţiunile de prelucrare a şirurilor de caractere.
Spaţiul de memorie adresabil de 80286 este împărţit în segmente logice cu dimensiunea
maximă de 64Kb. În general, programele sunt constituite din mai multe segmente (module) de
cod, date, sau stivă, numai o parte din acestea fiind utilizate la un moment dat.
Microprocesorul I80286 permite unui program să aibă acces la 4 segmente simultan.
Registrele de segment sunt utilizate pentru a identifica cele 4 segmente curente, fiecare
registru fiind specializat pentru un anumit tip de segmente. Registrele de segment sunt:
- CS - registru de segment de cod
- DS - registru de segment de date
- SS - registru de segment de stivă
- ES - registru de segment de date suplimentare
Toate registrele de segment au 16 biţi. Registrele de segment pot fi modificate prin
program. Conţinutul registrelor de segment este interpretat diferit în funcţie de
modul de lucru al microprocesorului: real sau virtual.
În modul de lucru real, care este modul de lucru compatibil I8086, registrele de segment
conţin cei mai semnificativi 16 biţi ai adresei de bază a segmentelor de memorie. Pentru a
face acces la o dată din memorie, microprocesorul trebuie să cunoască adresa de bază a
segmentului în care se află data ce se doreşte a fi accesată (adresa primului octet din
segment), precum şi adresa relativă în segment a datei respective, sau un deplasament, ce
reprezintă distanţa în octeţi faţă de începutul segmentului.
Astfel, în modul real, CS conţine cei mai semnificativi 16 biţi ai adresei de bază a
segmentului de cod curent, DS conţine cei mai semnificativi 16 biţi ai adresei de bază a
segmentului de date curent ş.a.m.d.
Segmentele de cod ale unui program conţin instrucţiunile programului, segmentele de
date (referite de DS şi ES) conţin date sau variabile pentru programul ce se execută,
segmentele de stivă, referite prin intermediul registrului de segment SS, conţin zone de
memorie organizate pe principiul stivei.

37
În modul de lucru protejat, registrele de segment conţin un index într-o tabelă de
descriptori a segmentelor. O intrare în această tabelă conţine un descriptor de segment, care
cuprinde :
- adresa de bază a segmentului,
- dimensiunea segmentului,
- drepturile de acces la segmentul respectiv etc.
Deci, registrul de segment indică o intrare într-o tabelă de descriptori a segmentelor,
unde se găseşte adresa de bază a segmentului în care se doreşte a se efectua accesul. Din
această cauză, în modul de lucru protejat, registrele de segment mai sunt denumite şi selectori
de segment, deoarece selectează un segment dintr-o tabelă ce descrie mai multe segmente.
Registrul pointer de instrucţiuni - IP - este un registru de 16 biţi, care conţine adresa
relativă în raport cu începutul segmentului de cod curent, a următoarei instrucţiuni ce trebuie
executată. Registrul IP este transparent la nivelul programatorului, el fiind actualizat automat
după citirea instrucţiunii curente, astfel încât să indice deplasamentul următoarei instrucţiuni
de executat.
Registrul indicatorilor de stare şi control - F - conţine indicatorii de stare şi control ai
microprocesorului. Indicatorii de stare, în număr de 6, sunt poziţionati de unitatea aritmetico-
logică în urma execuţiei unei instrucţiuni, şi reflectă anumite stări ale rezultatului unei
operaţii aritmetice sau logice. Unele instrucţiuni ale microprocesorului testează aceşti
indicatori şi, în funcţie de cum sunt poziţionaţi (în 0 sau în 1), se execută anumite acţiuni
specifice.
Indicatorii de stare sunt următorii:
- indicatorul de transport - CF (Carry Flag ) - este unu dacă a apărut transport din
bitul cel mai semnificativ în exterior, sau s-a făcut împrumut în exterior din bitul cel mai
semnificativ al rezultatului. Indicatorul CF este afectat şi de instrucţiunile de rotire şi
deplasare.
- indicatorul de paritate -PF (Parity Flag) - este poziţionat (este pus în 1 logic) dacă
rezultatul execuţiei instrucţiunii are octetul cel mai puţin semnificativ cu un număr par de biţi
unu. În caz contrar PF este poziţionat în zero.
- indicatorul de transport auxiliar - AF (Auxiliary Carry Flag) - este unu dacă la
execuţia instrucţiunii a apărut un transport între rangul 3 şi rangul 4 al rezultatului. De
exemplu, presupunând că în registrul AH avem valoarea 58H şi în registrul BH valoarea 29H,
în urma execuţiei instrucţiunii ADD AH,BH, care adună conţinutul registrului AH cu BH şi
pune rezultatul în AH, apare un transport din rangul 3 în rangul 4, ceea ce determină setarea
indicatorului AF.
AH = 01101000 +
BH = 00101001
⎯⎯⎯⎯

38
AH = 10010001
- indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatul
instrucţiunii executate anterior a fost zero.
- indicatorul de semn - SF (Sign Flag) - este unu dacă s-a obţinut un rezultat negativ
(strict mai mic decât zero). Mai precis, SF este identic cu bitul cel mai semnificativ al
rezultatului, dat fiind faptul că, în reprezentarea numerelor în complement faţă de 2, numerele
negative au primul bit 1.
- indicatorul de depăşire - OF (Overflow Flag) - este unu dacă la execuţia instrucţiunii
anterioare a apărut o depăşire, adică dimensiunea rezultatului depăşeşte capacitatea locaţiei de
destinaţie.
Indicatorii de control pot fi poziţionati în unu sau în zero prin program, asigurând prin
aceasta controlul prin program al unor operaţii ale procesorului. Indicatorii de control sunt
următorii:
- indicatorul de direcţie - DF (Direction Flag) - Dacă DF este poziţionat în unu, atunci
şirurile de caractere vor fi prelucrate de la adrese mari spre adrese mici de memorie, sau de la
dreapta la stânga. Ştergând DF (poziţionând în zero), şirurile vor fi prelucrate de la stânga la
dreapta.
- indicatorul de întrerupere - IF (Interrupt Flag) - Dacă IF este poziţionat în unu prin
program, microprocesorul va recunoaşte cererile de întrerupere externă. Ştergând acest
indicator, întreruperile externe vor fi invalidate.
- indicatorul de urmărire - TF (Trap Flag) - Dacă TF este poziţionat în unu,
procesorul intră în modul de execuţie pas cu pas, pentru depanare. În acest mod, după
execuţia unei instrucţiuni se generează o întrerupere internă, ceea ce dă posibilitatea
investigării rezultatului execuţiei fiecărei instrucţiuni dintr-un program.
Indicatorii de stare şi control prezentaţi mai sus sunt aceeaşi cu indicatorii de condiţie şi
stare ai microprocesorului I8086. De fapt, toate registrele prezentate anterior pot fi întâlnite şi
la I8086. În plus faţă de I8086, I80286 mai conţine în registrul indicatorilor de condiţie şi
stare, trei biţi, care sunt folosiţi numai în modul protejat, fiind ignoraţi în modul de lucru real.
Aceştia sunt:
- indicatorul NT (Nested Task) - ce indică dacă instrucţiunea curentă evoluează în
cadrul aceluiaşi task, sau ea provoacă o schimbare de task.
- câmpul IOPL (I/O Priviledge Level) - format din 2 biţi, şi care reprezintă nivelul de
privilegiu cel mai slab, pentru care nivelul taskului în curs de execuţie trebuie să fie superior
sau egal, pentru a putea executa instrucţiuni de I/E. Un nivel de privilegiu este mai slab, dacă
numeric este mai mare. De exemplu, nivelul 3 este mai slab decât nivelul 2.
Registrul indicatorilor de condiţie şi stare are următoarea configuraţie :

39
Un registru care nu poate fi întâlnit la I8086, este registrul sau cuvântul de stare masină
-MSW (Machine Status Word), cu următoarea configuraţie:

Microprocesorul I80286 nu foloseşte decât cei mai puţin semnificativi 4 biţi ai acestui
registru de 16 biţi, ceilalţi biţi fiind rezervaţi pentru 80386. Semnificaţia biţilor este
următoarea:
- PE (Protected mode Enable) - Dacă acest bit este poziţionat în unu prin program,
I80286 va intra în modul protejat. Odată poziţionat în unu, numai prin resetarea
microprocesorului acest bit poate fi adus în zero, determinând intrarea microprocesorului
80286 în modul de lucru real. La microprocesorul 80386, acest bit poate fi poziţionat în zero
prin program.
- MP (Monitor Processor extension) - Dacă MP=1 se indică prezenţa unui coprocesor
matematic.
- EM (Coprocessor EMulation) - Dacă EM este setat, toate funcţiile coprocesorului
matematic vor fi emulate. Aceasta înseamnă că, spre exemplu, un logaritm nu este calculat de
coprocesorul matematic I80287, ci de o rutină din biblioteca matematică, folosind numai
instrucţiuni ale microprocesorului I80286.
- TS (Task Switch) - Dacă bitul este setat a avut loc o comutare de task, şi este posibil
să se determine dacă coprocesorul matematic execută încă o instrucţiune a taskului precedent,
sau este pregătit pentru un nou task. Deoarece anumite instrucţiuni ale coprocesorului 80287
necesită până la 1000 de perioade de ceas, este posibil ca I80286 să servească alt task în acest
timp, reîntorcându-se la taskul precedent atunci când coprocesorul a terminat de executat
instrucţiunea.

4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286

Activitatea pe magistrală a microprocesorului I80286 diferă mult faţă de activitatea


procesoarelor anterioare, datorită mecanismului de tip "pipe-line" realizat de I80286.
Procesorul I80286 plasează adresele pe magistrala de adrese înaintea sfârşitului ciclului de
magistrală precedent, datele citite sau scrise fiind valide pe magistrala de date şi la începutul
ciclului de magistrală următor. Acest lucru a permis reducerea ciclului de magistrală la numai
doi cicli procesor, în timp ce ar fi fost necesari trei cicli procesor. Se definesc următoarele
noţiuni:
- Ciclul de ceas sistem - este timpul scurs între două fronturi crescătoare ale
semnalului de ceas de la intrarea CLK a microprocesorului (perioada ceasului extern).

40
- Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşte
un ceas intern PCLK, format prin divizarea cu doi a ceasului sistem CLK. Ciclul procesor este
perioada ceasului PCLK.
- Ciclul de magistrală - este timpul necesar unui transfer de date pe magistrală (de
exemplu, citirea unui cuvânt din memorie sau porturile de intrare, sau scrierea unui cuvânt în
memorie sau porturile de ieşire ).
- Ciclul instrucţiune - este timpul necesar execuţiei unei instrucţiuni, şi este format din
cicli de magistrală şi din cicli interni ai microprocesorului.
În general, orice microprocesor execută un program prin execuţia repetată a
următorilor paşi:
- aducerea (citirea) instrucţiunii următoare din memorie;
- aducerea sau citirea operanzilor din memorie, dacă instrucţiunea citită anterior
necesită operanzi din memorie;
- efectuarea prelucrărilor numerice asupra operanzilor;
- transferul (scrierea) rezultatului în memorie, dacă instrucţiunea prevede acest lucru.
Ciclul instrucţiune este de fapt timpul de execuţie al celor două mari etape care intervin
în execuţia unei instrucţiuni: citirea instrucţiunii din memorie, şi execuţia propriu-zisă a
instrucţiunii, ce cuprinde citirea operanzilor, efectuarea calculelor şi scrierea rezultatului.
Există patru tipuri de cicli procesor, numite şi stări, fiecare stare fiind caracterizată
printr-o anumită activitate pe magistrală. Cele 4 stări sunt:
- TI (Idle) - stare inactivă;
- TS (Status) - stare de generare a semnalelor de stare;
- TC (Command) - stare de comandă în curs;
- TH (Hold) - stare de abandon a magistralei.
Toate stările durează o perioadă de ceas procesor PCLK, adică 2 perioade de ceas
sistem CLK.
Starea TI indică faptul că nu se solicită nici un transfer de date pe magistrală, procesorul
controlând magistrala ca "master", dar neefectuând transferuri de date pe magistrală.
Starea activă TS este semnalizată prin trecerea pe nivel coborât a liniilor de stare S0
şi/sau S1, care indică tipul operaţiei pe magistrală. Tot în această stare, sunt generate
semnalele de control, semnalele de adresă şi, în cazul unui ciclu de scriere, sunt generate şi
semnalele de date.
Starea TC urmează după o stare TS, şi semnifică o operaţie în curs de execuţie pe
magistrală. În această stare sunt efectuate transferurile de date între memorie sau porturi pe de
o parte, şi procesor pe de altă parte.
Starea TH indică faptul că I80286 a pierdut controlul magistralei. În această stare
magistrala este folosită de un alt dispozitiv, pentru efectuarea transferurilor de date, 80286

41
fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea de
mare impedanţă).
Microprocesorul poate să execute următoarele operaţii pe magistrală :
- citire / scriere memorie;
- citire / scriere porturi de I / E;
- recunoaştere întrerupere;
- HALT sau blocare ("shutdown").

Figura 4.1.3. Ciclul de citire

În cea de-a doua perioadă de ceas sistem a stării TC a ciclului de magistrală precedent,
procesorul plasează, pe magistrala de adrese, adresa de memorie sau adresa portului de I/E, şi
activează semnalele M/IO şi COD/INTA de pe magistrala de control, pentru a indica o
operaţie cu memoria sau cu porturile de I/E. În starea TS a ciclului de citire, procesorul
activează semnalele de stare S0 şi S1, şi anume: S0 pe nivel ridicat şi S1 pe nivel coborât,
pentru a indica un ciclu de citire.
Semnalul M/IO permite distincţia între un acces la memorie şi un acces la porturile de
I/E astfel:
M/IO = 1 - indică o operaţie cu memoria
M/IO = 0 - indică o operaţie cu porturile de I/E
Semnalul COD/INTA, combinat cu semnalul M/IO, permite distincţia între citirea unui
operand din memorie şi citirea codului unei instrucţiuni când M/IO = 1, sau permite distincţia
între o operaţie de recunoaştere a întreruperii şi o operaţie de citire/scriere port de I/E, astfel :
M/IO = 1 COD/INTA = 1 - citire cod instrucţiune din memorie
COD/INTA = 0 - citire operand / scriere rezultat din/în memorie
M/IO = 0 COD/INTA = 1 - citire/scriere port de I/E
COD/INTA = 0 - recunoaştere întrerupere

42
Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scriere
sau recunoaştere întrerupere astfel:

S1 S0
0 0 - recunoaştere întrerupere
0 1 - citire port sau memorie
1 0 - scriere port sau memorie
1 1 - neutilizată
În intervalul de timp scurs între furnizarea adreselor pe magistrala de adrese, la sfârşitul
ciclului de magistrală precedent, şi cea de-a doua jumătate a stării TC a ciclului de citire,
memoria sau portul adresat trebuie să furnizeze pe magistrala de date conţinutul locaţiei de
memorie adresate sau conţinutul portului adresat, în vederea citirii de către procesor. Dacă
memoria sau portul nu sunt atât de rapide, se vor lansa alţi cicli TC, până când datele sunt
disponibile pe magistrala de date.
La sfârşitul stării TC a ciclului de citire, procesorul testează semnalul READY, care
este controlat de memorie şi porturile de I/E. Dacă semnalul READY = 0, ceea ce specifică
faptul că datele sunt disponibile pe magistrală, ciclul de magistrală curent se va termina,
procesorul citind (preluând) datele de pe magistrala de date. Dacă READY = 1, se specifică
faptul că memoria sau portul adresat nu a furnizat încă datele pe magistrala de date, şi se va
genera încă o stare TC, la sfârşitul căreia se va testa din nou semnalul READY ş.a.m.d. (se va
prelungi ciclul de citire curent cu încă o stare TC).
Ciclul de scriere este similar cu ciclul de citire, procesorul activând corespunzător A0-
A23, M/IO, COD/INTA la sfârşitul ciclului de magistrală precedent, după care, în starea TS a
ciclului de magistrală curent, pune S1 pe 1, S0 pe 0, indicând o operaţie de scriere, şi pe
magistrala de date pune datele în vederea scrierii în memorie sau portul adresat. Dacă
memoria sau portul nu reuşesc să efectueze operaţia de scriere în timp util, vor ţine semnalul
READY pe 1, ceea ce determină procesorul să prelungească ciclul de magistrală curent cu
stări TC suplimentare.

43
Figura 4.1.4. Ciclul de scrire

Ciclii de recunoaştere întrerupere apar în urma apariţiei unei întreruperi externe, când
procesorul execută recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare a
întreruperii unde va transfera controlul.
Ciclii de HALT şi blocare apar fie ca efect al execuţiei instrucţiunii HALT (ce opreşte
procesorul din execuţia normală a instrucţiunilor), fie datorită apariţiei excepţiilor multiple la
execuţia unei instrucţiuni. Procesorul poate fi scos din starea de HALT şi din starea de
blocare fie prin resetarea microprocesorului, fie printr-o întrerupere externă nemascabilă. În
plus, procesorul poate fi scos din starea de HALT şi printr-o întrerupere externă mascabilă,
dacă întreruperile externe mascabile sunt validate.
Resetarea, sau iniţializarea procesorului, se face prin aplicarea unui "1" logic pe intrarea
RESET a procesorului. După reset I80286 intră în modul real, registrul MSW fiind încărcat
cu valoarea FFF0H, cele mai semnificative linii de adresă, A20-A23, fiind tinute în "1" logic,
astfel încât prima instrucţiune executată va fi instrucţiunea de la adresa fizică FFFFF0H, care,
de regulă, este o instrucţiune de salt în zona de memorie de până la 1Mb. Această instrucţiune
de salt determină dezactivarea liniilor A20-A23, care vor trece în zero, procesorul I80286
lucrând în modul real, ca un procesor I8086. Pentru a intra în modul protejat, trebuie setat,
prin program, bitul PE din registrul MSW.

4.1.5. Modurile de lucru ale microprocesorului I80286

Modul de lucru real este modul compatibil I8086, asigurând posibilitatea rulării pe
sisteme cu I80286 a programelor dezvoltate anterior pe microprocesoarele 8086/8088.
Singurul avantaj este faptul că viteza de lucru este mai mare.
În modul de lucru real memoria este adresată folosind un pointer de 32 de biţi, format
din două componente:

44
- un selector de segment de 16 biţi, care indică segmentul de memorie dorit, aflat într-
un din registrele de segment, şi
- un deplasament (offset) de 16 biţi, care indică octetul dorit în cadrul segmentului.
Memoria fizic adresabilă în modul real este de 1Moctet, I80286 folosind pentru
adresarea memoriei numai liniile de adresă A0-A19 şi ignorând liniile A20-A23, care sunt ţinute
în zero. Memoria de 1Mb este împărţită în mai multe segmente logice, un segment logic fiind
format din locaţii adiacente de memorie, şi având dimensiunea maximă de 64Kb. Fiecărui
segment îi corespunde o adresă de bază, care este adresa locaţiei de început a segmentului.
Toate segmentele încep la o adresă multiplu de 16. Segmentele pot fi adiacente, disjuncte,
parţial sau total suprapuse. O locaţie fizică poate să aparţină unuia sau mai multor segmente.
Adresa fizică pe 20 de biţi a unei locaţii de memorie se calculează înmulţind selectorul
de segment, aflat într-unul din registrele de segment, cu 16 (ceea ce înseamnă de fapt
deplasarea cu 4 poziţii spre stânga), la care se adună deplasamentul. Deci, conţinutul
registrului de segment este interpretat ca fiind cei mai semnificativi 16 biţi ai adresei de bază
a segmentului.

Figura 4.1.5. Calculul adresei fizice în modul real

Adresarea instrucţiunilor, stivei şi datelor în modul real:

Instrucţiunile unui program se găsesc într-unul din segmentele de cod ale programului.
Adresa fizică a instrucţiunii care urmează să se execute, se obţine folosind registrul CS, ce
conţine adresa de bază a segmentului de cod curent, şi registrul IP ca deplasament în
segmentul de cod indicat de CS.

Figura 4.1.6. Adresarea instrucţiunilor şi stivei în modul real

45
Stiva este o zonă de memorie de tip LIFO (Last In First Output), la care adăugarea unui
element se face prin plasarea lui în vârful stivei, scoaterea unui element din stivă realizându-
se prin extragerea lui din vârful stivei. Un program poate să conţină una sau mai multe stive,
fiecare stivă fiind conţinută într-unul din segmentele de stivă ale programului. Pentru
implementarea mecanismului de tip stivă, I80286 foloseşte registrul SS ca registru de bază, ce
conţine adresa de bază a segmentului de stivă curent, şi registrul SP - Stack Pointer - ce
conţine deplasamentul vârfului stivei faţă de baza segmentului de stivă pointat de SS.
Stiva creşte de la adrese mari de memorie spre adrese mici de memorie. Să luăm o stivă
de lungime 100H, în care s-au introdus 6 octeţi, şi să presupunem că registrul SS conţine
valoarea 1F20H. Valoarea iniţială a registrului SP este 0100H. După introducerea în stivă a
celor 6 octeţi, SP devine 0100H - 6 = 00FAH. Deci, când se introduc elemente în stivă SP se
decrementează, când se scot elemente din stivă SP se incrementează, cu numărul respectiv de
octeţi introduşi sau scoşi din stivă.

Dacă în acest moment se execută o instrucţiune PUSH BX, se transferă în memorie la


adresa SS:SP-1 partea "high" a registrului BX (BH), şi la adresa SS:SP-2 partea "low" a
registrului BX (BL), după care se decrementează cu 2 registrul SP. SP va indica din nou
octetul din vârful stivei. Dacă se efectuează o instrucţiune de scoatere din stivă, de exemplu
POP CX, se execută următoarele acţiuni :
CL <- octet de la adresa SS:SP
CH <- octet de la adresa SS:SP+1
SP <- SP+2
După execuţia acţiunilor de mai sus, stiva se va găsi în situaţia anterioară execuţiei
instrucţiunii PUSH BX.

46
Datele sunt adresate în modul real folosind registrele DS şi ES pe post de selectori de
segment. Există mai multe moduri de calcul al deplasamentului într-un segment de date, dar
acestea vor fi prezentate în sectiunea 4.1.6.
Modul de lucru protejat oferă mecanisme de management şi protecţie a memoriei, şi un
set de instrucţiuni asociate, microprocesorul I80286 lucrând în acest mod la întreaga sa
capacitate. Pentru a intra în modul de lucru protejat, trebuie setat bitul PE din registrul MSW,
utilizând instrucţiunea LMSW. Revenirea în modul real se face numai prin iniţializarea
procesorului.
În modul de lucru protejat se poate adresa un spaţiu de memorie de 16Mb, utilizând
liniile de adresă A0-A23, utilizatorul având la dispoziţie şi un spaţiu de memorie virtual de
1Gb/task. La fel ca şi în modul real, pentru adresarea memoriei, se foloseşte un pointer de 32
de biţi, constituit dintr-un selector de 16 biţi şi un offset de 16 biţi. Selectorul reprezintă însă
un index (deplasament) într-o tabelă, de unde se obţine adresa de bază, pe 24 de biţi, a
segmentului. La această adresă de bază se adună offset-ul, obţinându-se adresa fizică pe 24 de
biţi. Mai multe amănunte legate de modul de lucru protejat sunt prezentate în secţiunea 4.1.7.

4.1.6. Adresarea datelor. Moduri de adresare.

Operanzii instrucţiunilor pot fi conţinuti în registre, în memorie, în instrucţiune, sau în


porturile de I/E. Instrucţiunile care au ca operanzi numai registre sunt rapide, deoarece
instrucţiunea se execută numai în interiorul microprocesorului, nemaifiind necesare
transferuri de date pe magistrală. Registrele pot fi atât operanzi sursă cât şi operanzi
destinaţie. De exemplu, în instrucţiunea ADD CX,BX care adună conţinutul registrului BX la
CX (CX <- CX+BX), registrul CX este atât operand sursă cât şi operand destinaţie.
Operanzii conţinuti în instrucţiune se mai numesc şi operanzi imediaţi, şi sunt constante
pe 8 sau 16 biţi, care sunt citite odată cu codul instrucţiunii. Operanzii imediaţi pot fi numai
operanzi sursă. Exemplu: MOV CX, 6 ; încarcă valoarea 6 în registrul CX (CX <- 6).
Pentru operanzii aflaţi în memorie, microprocesorul face un calcul prealabil al adresei
operanzilor, mai precis al adresei locaţiilor de memorie în care se află operanzii. Practic,
microprocesorul calculează adresa efectivă (AE), care este un deplasament faţă de începutul
segmentului în care se află operandul. Această adresă efectivă în conjuncţie cu unul din
registrele de segment, şi în funcţie de modul de lucru al procesorului (real sau protejat) va da
adresa fizică pe 20 de biţi în modul real, sau pe 24 de biţi în modul protejat, a operandului.
După calculul adresei fizice, microprocesorul citeşte operandul din memorie, dacă este un
operand sursă, sau scrie operandul în memorie, dacă este un operand destinaţie.
Adresa efectivă se calculează însumând trei componente:
- un deplasament conţinut în instrucţiune,
- un registru de bază ( BX sau BP),

47
- un registru index ( SI sau DI ).
În funcţie de modul în care se face această sumă, se disting mai multe moduri de
adresare a operanzilor conţinuţi în memorie:
a) adresare directă - caz în care adresa efectivă este preluată din instrucţiune. Deci,
AE este un deplasament conţinut în coada instrucţiunii, care este citit odată cu codul
instrucţiunii. În acest mod se adresează variabilele simple nestructurate.
b) adresare bazată - AE este suma dintre un registru bază (BX sau BP) şi
deplasamentul din coada instrucţiunii. Adresarea bazată se foloseşte în cazul structurilor de
date, cum ar fi de exemplu înregistrările. Registrul de bază va conţine adresa de bază a
structurii, iar deplasamentul va da distanţa în octeţi fată de baza structurii. În cazul în care nu
se specifică un deplasament în instrucţiune, AE este egală numai cu conţinutul unuia din
registrele bază, acest mod de adresare numindu-se adresare bazată implicită.
Exemple : MOV AX, [BX+2] ; mută în AX cuvântul de la adresa fizică cu deplasa -
;-mentul BX+2, din segmentul pointat de registrul de
;segment DS (se obişnuieşte să se scrie condensat
;DS:BX+2 ).
MOV AX, [BX] ; mută în AX cuvântul de la adresa fizică DS:BX.
Notă: Dacă nu este specificat explicit în instrucţiune un registru de segment, în calculul
adresei fizice se va folosi registrul DS, dacă se utilizează registrul BX pentru calculul adresei
efective, şi registrul de segment SS, dacă se utilizează registrul BP.
Exemple: MOV AX, SS:[BX] ; mută în AX cuvânt de la adresa fizică SS:BX
MOV AX, [BP] ; mută în AX cuvânt de la adresa SS:BP
MOV AX, DS:[BP] ; mută în AX cuvânt de la adresa DS:BP
c) adresare indexată - AE este suma dintre un registru index (SI sau DI) şi un
deplasament din coada instrucţiunii. În cazul în care nu se specifică un deplasament în
instrucţiune, adresa efectivă se calculează doar pe baza registrului index, modul de adresare
numindu-se adresare indexată implicită. Acest tip de adresare se foloseşte în cazul tablourilor,
deplasamentul indicând începutul tabloului, valoarea din registrul index selectând un element
al tabloului.
Exemplu: MOV AX, ADR[SI] ; mută în AX cuvânt de la adresa
;fizică DS:SI+offset ADR
d) adresare bazată şi indexată - AE este suma dintre un registru bază, un registru
index şi un deplasament. Registrul de bază este cel care dictează registrul de segment implicit
ce se foloseşte în calculul adresei fizice, dacă acesta nu este specificat explicit în instrucţiune.
Adresarea bazată şi indexată se foloseşte în cazul unor structuri de date complexe, cum ar fi
un tablou de înregistrări.
Exemple : MOV AL, ADR[BX][ŞI] ; mută în AL octet de la adresa
; DS:offset ADR+BX+SI

48
MOV AX, SS:[BX+DI+offset ADR] ; mută în AX cuvânt de la adresa
; fizică SS:BX+DI+offset ADR
e) adresarea şirurilor - În cazul instrucţiunilor ce prelucrează şiruri de
caractere, microprocesorul foloseşte un mod specific de adresare. Astfel, registrul SI va da
deplasamentul pentru şirul sursă, iar registrul DI va da deplasamentul pentru şirul destinaţie.
Registrul de segment folosit în cazul şirului sursă este DS, fiind posibilă şi utilizarea unui alt
registru de segment, dacă este specificat în instrucţiune acest lucru. Şirul destinaţie trebuie să
se afle în mod obligatoriu în segmentul pointat de registrul de segment ES.
Exemple: MOVSB ; mută octet de la DS:SI la ES:DI după care SI<-SI+1, DI<-
; DI+1 dacă indicatorul DF=0, sau SI <- SI-1, DI <- DI-1 dacă
; indicatorul DF=1.
MOVSW ; mută cuvânt de la adresa DS:SI la adresa ES:D, după care SI<-SI+2,
; DI <- DI+2 dacă DF=0, sau SI <- SI-2, DI <- DI-2 dacă DF=1.
f) adresarea porturilor - microprocesorul 80286 adresează porturile de I/E în două
moduri. Prima modalitate de adresare o reprezintă adresarea directă, caz în care adresa
portului de I/E cu care se va efectua o operaţie de citire sau scriere este un operand imediat pe
8 biţi, conţinut în instrucţiune. Se pot adresa astfel porturile cu adresa cuprinsă între 0 şi 255.
A doua modalitate este o modalitate de adresare indirectă prin intermediul registrului DX,
adresa portului din/în care se va citi/scrie fiind conţinută în registrul DX. Se pot adresa astfel
porturile cu adresa cuprinsă între 0 şi 65535.
Exemple: IN AL, 40H ; citeşte în AL octet din portul de adresă 40H
IN AX, 80H ; citeşte în AX cuvânt din portul 80H
OUT 8EH, AL ; trimite conţinutul registrului AL în portul 8EH
OUT DX, AX ; scrie conţinutul registrului AX în portul a cărui adresă se
; găseşte în DX.

4.1.7. Gestiunea şi protecţia memoriei la microprocesorul


I80286. Conceptul de memorie virtuală.

În modul de lucru protejat, programatorii folosesc acelaşi set de instrucţiuni (mai puţin
câteva instrucţiuni specifice modului protejat), moduri de adresare şi tipuri de date ca şi în
modul real. Ceea ce deosebeşte fundamental modul protejat de modul real sunt facilităţile
legate de managementul memoriei, protecţie şi multitasking, care constituie suportul
dezvoltării şi implementării unor sisteme de operare evoluate.
Mecanismul de memorie virtuală dă iluzia programatorului că memoria principală
(memoria internă a calculatorului, care poate fi adresată în mod direct de microprocesor) este
foarte mare. Practic, memoria calculatorului nu mai este "văzută" ca fiind organizată pe două
nivele: memorie principală sau memorie internă, şi memorie secundară sau memorie externă.

49
Întreaga memorie a calculatorului este organizată astfel pe un singur nivel, spaţiul de adresă al
fiecărui utilizator fiind compus din adrese formate ca o combinaţie de adrese în memoria
principală şi în memoria secundară.
Programatorul foloseşte pentru adresarea memoriei adrese virtuale, o adresă virtuală
specificând o locaţie din memoria virtuală. Memoria virtuală este formată din ansamblul
memorie principală - memorie secundară. Deci, o adresă virtuală poate specifica o locaţie din
memoria principală sau o locaţie din memoria secundară. Totalitatea adreselor virtuale
formează spaţiul de adrese virtual. Spaţiul de adrese virtual este împărţit în segmente de
lungime variabilă. Pentru a adresa o locaţie în spaţiul de adresă virtual, se folosesc două
componente: o componentă care specifică segmentul din memoria virtuală, şi o componentă
care specifică deplasamentul în segment al locaţiei respective.
Dacă segmentul referit nu se află în memoria principală, se generează o întrerupere a
activităţii, şi se va aduce segmentul respectiv din memoria secundară în memoria principală,
după care se revine din întrerupere, accesând locatia respectivă, segmentul fiind acum
rezident în memoria principală. Deci, prin acest mecanism de adresare virtuală, programatorul
este degrevat de sarcina gestiunii memoriei. El nu trebuie să ştie dacă un segment se află în
memoria principală sau în memoria secundară, dacă se află în memoria secundară să aducă
segmentul în memoria principală etc., aceste sarcini fiind preluate de sistemul de operare,
programatorul având la dispoziţie un spaţiu de adresă virtual mult mai mare decât spaţiul
adreselor fizice (dimensiunea memoriei principale), dar cu care poate lucra la fel ca şi când ar
dispune de o memorie principală foarte mare. Pentru a ţine evidenţa segmentelor, se
construieşte o tabelă a segmentelor în memoria principală, în care sunt trecute toate
informaţiile despre fiecare segment din memoria virtuală: adresa de bază, dimensiunea
segmentului, dacă este sau nu rezident în memoria principală, drepturi de acces etc.
Încărcarea unui segment din memoria secundară în memoria principală se face în locul
unui alt segment sau al mai multor segmente, care vor fi scoase din memoria principală şi
transferate în memoria secundară, conform unui anumit algoritm. De exemplu, va fi scos din
memoria principală segmentul (sau segmentele) cel mai puţin recent utilizat, sau o altă
strategie poate propune scoaterea segmentului cel mai puţin utilizat (cu numărul cel mai mic
de accese la segment).
Notiunea de protecţie a memoriei desemnează totalitatea controalelor efectuate de
sistemul de operare în scopul asigurării utilizării corecte a informatiei, împiedecând
propagarea erorilor de programare, ce pot duce la alterarea, distrugerea sau pierderea
informaţiei. Pentru implementarea mecanismelor de protecţie, fiecare task se execută cu un
anumit nivel de privilegiu. Microprocesorul 80286 recunoaşte 4 nivele de privilegiu, şi nu
permite ca un task cu un anumit nivel de privilegiu să acceseze date la un nivel mai
privilegiat. Aceasta permite detectarea anumitor erori, uşurând dezvoltarea şi menţinerea
programelor.

50
Conceptul de task este de asemenea important în gestiunea memoriei. Task-ul se
defineşte la nivel de execuţie, reprezentând execuţia unui program legată de contextul fiecărui
utilizator. De exemplu, dacă mai mulţi utilizatori din sistem utilizează acelaşi program de
editare, se va crea pentru fiecare utilizator un task separat, fiecare task cu propriul său
context. Fiecărui task i se ataşează un spaţiu de adresare, numit spaţiu de adresare local. În
acelaşi timp, toate taskurile trebuie să poată avea acces la seviciile sistemului de operare, la
biblioteci etc. Se defineşte astfel un spaţiu de adresare global, care este partajabil de către
toate taskurile. În modul de lucru protejat, taskurile lucrează numai cu adrese virtuale,
neavând acces la adresele fizice generate de microprocesor.
O adresă care apare într-un program are două componente: un selector de segment de 16
biţi şi un deplasament de 16 biţi. Această adresă (sau pointer) de 32 de biţi se transformă
diferit în adresă fizică în funcţie de modul de lucru al procesorului; real sau protejat. În modul
de lucru protejat selectorul de segment are următoare structură :

Câmpul RPL - Requested Priviledge Level - specifică nivelul de prioritate al


selectorului. Bitul TI specifică spaţiul de adresare local dacă TI=1, sau spaţiul de adresare
global dacă TI=0. Biţii 3-15 ai selectorului specifică un index în tabela locală de descriptori a
segmentelor dacă TI=1, sau un index în tabela globală de descriptori dacă TI=0. Este permis
astfel accesul la 8192 (213) segmente locale şi 8192 segmente globale . Ţinând cont de faptul
că un segment are dimensiunea maximă de 64Kb, rezultă o capacitate de adresare virtuală de
1Goctet pe task (2x213x64Kb). Indexul reprezintă, astfel, un pointer într-o tabelă din
memorie, unde se găseşte adresa de bază pe 24 de biţi a segmentului în care se doreşte
accesul.
Corespunzător celor prezentate anterior, există două tipuri de tabele cu descriptori:
- tabela cu descriptori globali - GDT (Global Descriptor Table), care descrie spaţiul de
adresare global şi
- tabele cu descriptori locali - LDT (Local Descriptor Tables), fiecare tabelă locală
descriind spaţiul de adresare local al unui task.
Fiecare tabelă conţine maximum 8192 de puncte de intrare în tabelă, fiecare intrare în
tabelă, compusă din 8 octeţi, cuprinde un descriptor de segment ce conţine, în principal,
adresa de bază a segmentului, limita segmentului, drepturile de acces etc.
Pentru a accesa în memorie tabelele de descriptori, microprocesorul I80286 este
prevăzut cu două registre speciale: GDTR - Global Descriptor Table Register - care
memorează adresa de bază şi limita tabelei globale, şi LDTR - Local Descriptor Table
Register. Deoarece există mai multe tabele locale, câte una pentru fiecare task, aceste tabele
locale sunt privite ca segmente de memorie speciale, numite segmente de sistem, şi care sunt

51
descrise prin intermediul descriptorilor de sistem. Deci registrul LDTR se va schimba la
fiecare comutare de task, registrul LDTR conţinând selectorul de segment (pe lângă baza şi
limita tabelei locale curente), care indică segmentul sistem ce conţine tabela locală a taskului
respectiv. Mai precis, registrul GDTR este încărcat cu adresa de bază şi limita tabelei globale
utilizând instrucţiunea LGDT, registrul LDTR fiind încărcat cu instrucţiunea LLDT reg16 sau
LLDT mem16, unde reg16 şi mem16 sunt valori pe 16 biţi, conţinute într-un registru sau în
memorie, care selectează intrarea în tabela globală de descriptori, ce conţine descriptorul
sistem pentru tabela locală ce se doreşte a fi accesată. Din descriptorul respectiv, procesorul
va încărca în LDTR adresa de bază şi limita tabelei locale curente.
Deci, în plus faţă de registrele prezentate în figura 4.2, microprocesorul I80286 mai
conţine 4 registre de management a memoriei, prezentate mai jos :

unde TR (Task Register) este registrul taskului, iar IDTR (Interrupt Descriptor Table
Register) este un registru, cu ajutorul căruia se accesează tabela descriptorilor de întrerupere
(vezi secţiunea 4.1.8).
În concluzie, tabelele de descriptori pot conţine descriptori de segment sau descriptori
de sistem. Descriptorii de segment pot fi descriptori de segment de cod, care referă segmente
ce conţin instrucţiuni, şi descriptori de segment de date, care fac referinţă la segmentele ce
conţin date sau zone de stivă.
Un descriptor de segment de date are următoarea structură :

Ultimul cuvânt din descriptor este rezervat de firma INTEL pentru dezvoltări ulterioare,
fiind de fapt folosit de 80386. La 80286 acest cuvânt trebuie iniţializat cu zero.
Câmpurile octetului ce cuprinde drepturile de acces au următoarele semnificaţii:
P - bit de prezenţă - este poziţionat în 1 dacă segmentul adresat de descriptor se află în
memoria principală. Dacă P=0, segmentul nu se află în memoria principală, un acces la
segmentul respectiv generând o excepţie, care va realiza încărcarea segmentului din memoria
externă în memoria internă.

52
DPL - Descriptor Priviledge Level - nivelul de prioritate al segmentului accesat de
descriptor.
S=1 - indică un descriptor de segment. Pentru descriptorii de sistem S=0.
E=0 - indică un descriptor de segment de date, în cazul descriptorilor de segment de cod
E fiind egal cu 1.
ED - Expansion Direction - dacă ED=0, deplasamentul în segment trebuie să fie mai
mic sau egal decât limita segmentului şi mai mare decât zero. Dacă ED=1, deplasamentul
trebuie să fie mai mare decât limita segmentului specificată în descriptor şi mai mic decât
FFFFH.
W - Writable - dacă W=1 segmentul este accesibil atât în citire cât şi în scriere (Read-
Write), dacă W=0 segmentul poate fi doar citit şi nu poate fi modificat.
A - Accessed - dacă A=0 segmentul nu a fost accesat, dacă A=1 segmentul a fost
accesat. Acest bit este folosit de sistemul de operare pentru a stabili care segmentele sunt mai
utilizate, şi a elabora strategii de alocare a memoriei.
Baza 0-15 şi Baza 16-23 conţin cei 24 de biţi ai adresei de bază a segmentului. Se poate
astfel modifica amplasamentul segmentelor în memorie, modificând numai adresa de bază a
segmentelor, ceea ce constituie suportul relocatabilităţii programelor. Un program este
relocabil dacă poate fi rulat independent de adresa de încărcare a programului în memorie.
Limita reprezintă un cuvânt sau octet din segment, ce specifică limita superioară sau
inferioară a segmentului, în funcţie de bitul ED.
Ceea ce se modifică în descriptorul de segment de cod, faţă de descriptorul de segment
de date, este numai octetul ce conţine drepturile de acces. Astfel, bitul E=1, bitul ED devine C
(Conforming) şi bitul W devine R (Readable). Dacă R=0, conţinutul segmentului nu poate fi
decât executat, dacă R=1 segmentul este accesibil atât în execuţie cât şi în citire. Când C=0
procedura apelată din segmentul de cod respectiv se execută cu nivelul de privilegiu specificat
de DPL în descriptorul de segment, când C=1 procedura apelată se execută cu nivelul de
privilegiu al programului apelant (segment cu conformare).
Mecanismul de protecţie, implementat hard pe cip, poate localiza, izola şi preveni un
număr mare de erori de program, atât în timpul proiectării cât şi în timpul utilizării unui
program. Toate testele referitoare la protecţie se realizează în paralel cu execuţia programului,
ceea ce nu afectează performanţele sistemului. Se poate păstra astfel funcţionarea corectă a
sistemului, atunci când anumite programe încearcă să efectueze unele operaţii interzise.
Principalele tipuri de protecţie implementate de 80286 sunt :
- izolarea software-ului de sistem de software-ul de aplicaţie al utilizatorului,
- izolarea utilizatorilor între ei,
- verificarea accesului la fiecare din obiectele definite în mod protejat (segmente,
nivele, taskuri, etc.).

53
Primul tip de protecţie se realizează prin utilizarea a 4 niveluri de prioritate, nucleul
sistemului de operare şi programele de sistem executându-se pe cele mai prioritare niveluri, în
timp ce programele utilizatorilor se vor executa pe nivelurile mai puţin prioritare. O eroare de
program a unui utilizator nu va afecta, astfel, sistemul de operare.
Prin izolarea utilizatorilor între ei, se previne situaţia când o eroare a unui program
utilizator poate afecta buna funcţionare a altui program utilizator, erori care sunt greu de
depistat.
În ce priveşte al treilea tip de protecţie, microprocesorul I80286 face o verificare a
folosirii corespunzătoare a obiectelor la fiecare acces la memorie. De exemplu, segmentele de
date nu pot fi executate, segmentele de cod nu pot fi modificate etc.
Informaţia utilizată de mecanismul de protecţie se referă la:
- tipul segmentului,
- atributele segmentului (sau drepturile de acces),
- nivelul de prioritate,
- limita segmentului.
Mecanismul de protecţie acţionează de două ori:
- la încărcarea registrului de segment care va selecta un segment, şi
- la fiecare acces în segmentul selectat.
La încărcarea registrelor de segment se testează dacă descriptorul este valid (indexul din
registrul de segment nu pointează în afara tabelei cu descriptori), dacă descriptorul este
accesibil de pe nivelul de prioritate de pe care se execută programul, dacă segmentul indicat
de descriptor este prezent în memorie, dacă tipul segmentului corespunde cu registrul de
segment (de exemplu, nu se poate încărca registrul SS cu un index către un descriptor de
segment cu atributul Read-Only) etc.
În cazul unui acces în cadrul segmentului referit de un registru de segment, se verifică
dacă nu s-a depăşit limita segmentului şi dacă accesul corespunde tipului de segment. De
exemplu, într-un segment de date cu atributul citeşte-numai sau în segmentele de cod nu este
permisă scrierea.
Orice violare a unei protecţii va determina apariţia unei excepţii. Excepţiile, ca şi
întreruperile, sunt modalităţi de transfer al controlului, dar care apar ca rezultat direct al
execuţiei instrucţiunilor programului, spre deosebire de întreruperi care apar independent de
execuţia normală sau anormală a programului curent. O excepţie apare în condiţiile în care
execuţia unei instrucţiuni nu se poate termina normal. Deşi cauzele lor diferă, întreruperile şi
excepţiile utilizează acelaşi mod de transfer al controlului. Se obişnuieşte ca excepţiile să fie
numite tot întreruperi.
Tot o manifestare a mecanismului de protecţie este şi separarea spaţiilor de adresă între
utilizatori. Fiecare task utilizator are o tabelă locală cu descriptori - LDT, conţinutul tabelei
locale curente fiind schimbat la fiecare comutare de task.

54
În ce priveşte prioritatea, microprocesorul 80286 recunoaste 4 niveluri de prioritate,
numerotate de la 0 la 3, nivelul 0 fiind cel mai prioritar nivel, iar nivelul 3 cel mai puţin
prioritar nivel. Pentru manevrarea nivelelor de prioritate se definesc următoarele noţiuni:
- CPL (Current Priviledge Level) - nivelul de prioritate curent, ce reprezintă nivelul de
prioritate al segmentului de cod ce se execută. Este codificat de ultimii 2 biţi din registrul CS.
- DPL (Descriptor Priviledge Level) - nivelul de prioritate al descriptorului, ce
reprezintă nivelul de prioritate al segmentului descris de un descriptor de segment. Se găseşte
în biţii 5,6 ai octetului cu drepturi de acces din descriptorul de segment.
- RPL (Requested Priviledge Level) - nivelul de prioritate cerut, ce reprezintă nivelul
de prioritate al unui selector de segment, fiind codificat de ultimii 2 biţi ai selectorului de
segment.
- EPL (Effective Priviledge Level) - nivelul de prioritate efectiv, EPL = max (RPL,
CPL).
Reguli generale de utilizare a nivelelor de prioritate, implementate de I80286:
- se pot realiza accese la segmente de date al căror nivel de prioritate (DPL) este
acelaşi sau mai mare decât CPL.
- DPL-ul unui segment de stivă trebuie să fie egal cu CPL.
- accesul direct la segmentele de cod este permis numai pentru segmente de cod cu
acelaşi nivel de prioritate. Deci, în cazul unei instrucţiuni de transfer al controlului CALL sau
JMP, CPL trebuie să fie egal cu DPL-ul segmentului de cod în care se va transfera controlul
(segmentul adresei destinaţie).
- se poate accesa un segment de cod mai privilegiat prin intermediul porţilor.
- segmentele cu conformare sunt tratate după reguli speciale.
Poarta este un tip special de descriptor, cu lungimea de 4 cuvinte, cu o structură
oarecum asemănătoare cu cea a descriptorilor de sistem, utilizat pentru a redirecta transferul
controlului către segmente de cod de pe niveluri diferite de prioritate. În afara porţilor de apel
(call gates), prin intermediul cărora se accesează un segment de cod destinaţie cu un nivel de
privilegiu diferit de nivelul de privilegiu al segmentului de cod sursă (de unde se face
transferul controlului), există porţi de întrerupere (interrupt gates sau trap gates), folosite
pentru a activa rutinele de întrerupere la apariţia unor întreruperi hardware sau software.
Descriptorii porţilor de apel sunt stocaţi în GDT, ceilalţi sunt stocaţi în IDT (Interrupt
Descriptor Table).

4.1.8. Întreruperile microprocesorului I80286

Întreruperile sunt modalităţi de transfer al controlului. La apariţia unei întreruperi,


procesorul întrerupe execuţia programului curent, şi execută în continuare rutina de tratare a
întreruperii respective, până când întâlneşte instrucţiunea IRET, care este instrucţiunea de

55
revenire din întrerupere. După execuţia instrucţiunii IRET, procesorul reia execuţia
programului întrerupt de la instrucţiunea imediat următoare instrucţiunii ce se executa în
momentul apariţiei întreruperii.
Fiecare rutină de întrerupere are asociată o adresă, care este adresa primei instrucţiuni
din cadrul rutinei de tratare a întreruperii. Orice rutină de întrerupere se termină cu
instrucţiunea IRET.
Adresele tuturor rutinelor de tratare a întreruperilor sunt trecute într-o tabelă din
memorie. În modul real sunt rezervaţi pentru această tabelă primii 1024 de octeţi din memorie
(de la 00000H la 003FFH ), ce memorează o tabelă cu 256 de intrări, numită tabela vectorilor
de întrerupere. Deci, în modul real sunt disponibile 256 de întreruperi, fiecare intrare în tabelă
(de 4 octeţi) conţinând adresa rutinei de tratare a întreruperii corespondente, în formatul
segment:offset. Cuvântul de la adresa mai mică din fiecare intrare în tabelă conţine
deplasamentul în segment al primei instrucţiuni a rutinei de tratare a întreruperii, cuvântul de
la adresa mai mare conţinând cei mai semnificativi 16 biţi ai adresei de bază a segmentului în
care se află rutina de întrerupere.
În modul de lucru protejat, sunt disponibile de asemenea 256 de întreruperi, dar rutinele
de tratare a întreruperilor sunt accesate prin intermediul porţilor. Adresele rutinelor de
întrerupere sunt trecute într-o tabelă, numită tabela descriptorilor de întrerupere - IDT
(Interrupt Descriptor Table ), accesată prin intermediul registrului IDTR - Interrupt
Descriptor Table Register, ce conţine adresa de bază şi limita tabelei IDT. Fiecare intrare în
tabela IDT va conţine 8 octeţi, câţi sunt necesari pentru un descriptor de poartă, dimensiunea
tabelei fiind ajustată cu ajutorul câmpului Limită din IDTR. Înainte de a intra în modul
protejat, programul de iniţializare, lucrând în modul real, va trebui să completeze IDT şi
GDT, şi să încarce baza şi limita tabelelor respective în IDTR şi GDTR.
În cazul apariţiei unei întreruperi în modul real, procesorul întrerupe programul curent,
salvează registrele în stivă, serveşte întreruperea, după care restaurează registrele din stivă,
continuând programul întrerupt. În modul protejat, nu este suficient să se salveze numai
registrele, ci se salvează întreaga stare a taskului (registrele plus alte informaţii ) într-un
segment de sistem, numit segment de stare a taskului - TSS (Task State Segment).
Mai precis, la sosirea unei întreruperi (interne sau externe) în modul real,
microprocesorul efectueazã urmatoarele:
- salvează în stivă registrul indicatorilor de condiţie şi stare, CS-ul şi IP-ul
instrucţiunii următoare, în această ordine;
- se încarcă IP cu cuvântul de la adresa 0000:n*4 şi CS cu cuvântul de la adresa
0000:n*4+2, unde n este numărul întreruperii (un număr întreg între 0 şi 255);
- şterge IF şi TF;
- se execută instrucţiunile din rutina de întrerupere, până când se întâlneşte
instrucţiunea IRET;

56
- la întâlnirea instrucţiunii IRET se revine din întrerupere, restaurând din stivă IP,
CS şi registrul indicatorilor de condiţie şi stare.
Stiva trebuie să se găsească în aceeaşi stare ca la apariţia întreruperii. Este indicat ca la
începutul unei rutine de întrerupere să se salveze registrele microprocesorului în stivă,
urmând a fi restaurate înainte de execuţia instrucţiunii IRET. Atunci când se intră într-o
rutina de tratare a întreruperii, indicatorul IF este şters automat, de aceea pentru a activa din
nou întreruperile externe, este indicat ca rutina de tratare a întreruperii să înceapă cu o
instrucţiune STI, aceasta numai dacă rutina de întrerupere nu conţine secvenţe critice care nu
pot fi întrerupte. Pe durata execuţiei secvenţelor critice se invalidează IF.
Microprocesorul I80286 are trei tipuri de întreruperi:
- întreruperi hardware,
- întreruperi software,
- excepţii.
Întreruperile hardware se mai numesc şi întreruperi externe, întreruperile software şi
excepţiile fiind numite şi întreruperi interne.
Întreruperile hardware sunt generate de dispozitive hardware, şi pot fi la rândul lor de
două tipuri:
- întreruperi mascabile şi
- întreruperi nemascabile.
Întreruperile hardware mascabile sunt generate prin aplicarea unui "1" logic pe intrarea
(pinul) INTR a microprocesorului. Microprocesorul va întrerupe programul curent şi va
executa o rutină de tratare a întreruperii, numai dacă indicatorul IF din registrul indicatorilor
de condiţie şi stare este 1. Dacă IF=0, procesorul continuă nestingherit execuţia programului
curent. Indicatorul IF poate fi poziţionat în 0 sau 1 prin program. Prin invalidarea
întreruperilor externe mascabile, poziţionând IF în zero, se previne întreruperea unor secvenţe
critice de program, care nu pot fi întrerupte.
Dacă întreruperile externe sunt validate, după execuţia instrucţiunii curente,
microprocesorul va efectua recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare a
întreruperii. Majoritatea dispozitivelor periferice (imprimanta, hard disk, tastatură etc.)
folosesc mecanismul de întrerupere al microprocesorului. De exemplu, tastatura va întrerupe
microprocesorul atunci când este apăsată o tastă, în rutina de întrerupere corespunzătoare
tastaturii, procesorul preluând codul tastei apăsate, după care continuă programul întrerupt.
Deoarece există mai multe dispozitive hardware care pot genera întreruperi în acelaşi timp,
este necesară existenţa unui dispozitiv, numit dispozitiv controler de întreruperi, care permite
dispozitivelor hardware să întrerupă microprocesorul conform unei ordine de prioritate. Dacă
există cel puţin o cerere de întrerupere activă, din partea unui dispozitiv hardware ce poate
genera întreruperi, dispozitivul controler de întreruperi va pune 1 pe linia INTR, întrerupând
procesorul, după care, atunci când procesorul efectuează recunoaşterea întreruperii, în cadrul

57
unor cicli de recunoaştere a întreruperii, va pune pe magistrala de date vectorul de întrerupere
(un număr între 0 şi 255) al dispozitivului hardware cu o cerere de întrerupere activă,cel mai
prioritar. După citirea vectorului de întrerupere de pe magistrala de date, microprocesorul va
prelua din intrarea în tabela vectorilor de întrerupere sau din IDT, adresa rutinei de tratare a
întreruperii corespunzătoare dispozitivului hardware ce a generat întreruperea (intrarea în
tabelă va avea numărul egal cu vectorul de întrerupere).
Întreruperile externe nemascabile sunt generate prin aplicare unui "1" logic pe intrarea
NMI (NeMascable Interrupt), aceste întreruperi fiind asociate cu apariţia unor evenimente
deosebite, cum ar fi căderea tensiunii de alimentare, când procesorul trebuie să execute
anumite acţiuni de urgenţă. Aceste întreruperi sunt tratate imediat ce apar, nefiind posibilă
invalidarea lor. Adresa rutinei de tratere a întreruperilor nemascabile se află în intrarea
numărul 2 din tabela vectorilor de întrerupere (sau IDT), procesorul transferând automat
controlul la această rutină, imediat ce recepţionează un 1 logic pe intrarea NMI.
Întreruperile software sunt generate prin execuţia unei instrucţiuni INT n, unde n este
un număr întreg cuprins între 0 şi 255. După execuţia acestei instrucţiuni, procesorul va
transfera controlul la rutina de întrerupere a cărei adresă se găseşte în intrarea cu numărul n,
din tabela vectorilor de întrerupere sau tabela descriptorilor de întrerupere. De exemplu,
instrucţiunea INT 2 va executa aceeaşi rutină de întrerupere care se execută şi în cazul
apariţiei unei întreruperi externe nemascabile.
Excepţiile sunt întreruperi generate de către procesor însuşi. În tratarea excepţiilor,
microprocesorul nu face distincţie între o excepţie şi o întrerupere software cu numărul egal
cu cel al excepţiei respective.
Exemple de exceptii:
- division by zero - procesorul generează automat o întrerupere cu numărul 0 (deci la
fel ca şi instrucţiunea INT 0), atunci când instrucţiunile de împărţire DIV şi IDIV încearcă să
efectueze o împărţire la zero.
- overflow detection - dacă indicatorul OF este setat în urma unei instrucţiuni,
procesorul execută o întrerupere cu numărul 4.
- single step - procesorul execută întreruperea numărul 1, după fiecare instrucţiune
executată, dacă indicatorul TF este setat.
- coprocessor not prezent - procesorul execută automat o întrerupere cu numărul 7,
dacă unitatea instrucţiunilor detectează o instrucţiune pentru coprocesorul matematic şi acesta
nu este prezent.

4.2. Microprocesorul I80386


4.2.1. Caracteristici generale

58
Creşterea remarcabilă a vitezei de calcul a microprocesorului 80386, faţă de
predecesorul său 80286, se datorează în principal lucrului pe 32 de biţi. I80386 are o
magistrală de date de 32 de biţi, o magistrală de adrese de 32 de biţi, cu care poate adresa, în
mod direct, o memorie de 4Gb şi o memorie virtuală de 64Tb pe task. Spaţiul de intrare /
ieşire este limitat totuşi la 64 Kporturi, la fel ca la 80286, în schimb pe lângă porturi de 8 sau
16 biţi, I386 poate accesa şi porturi de 32 de biţi.
Microprocesorul I80386 are 3 moduri de lucru: real, protejat şi virtual 8086. În modul
real, 80386 poate adresa o memorie de 1Mb, lucrând ca un 8086 mult mai rapid. Modul
protejat I80386 este compatibil cu modul protejat 80286, dar din cauza spaţiului de memorie
mult mai mare (4Gb în loc de 16Mb), descriptorii de segmente şi porţi au fost puţin
modificaţi, păstrându-se compatibilitatea. Spaţiul de adresă virtual, de 64Tb, este împărţit în
segmente cu dimensiunea maximă de 4Gb. Deci, în modul de lucru protejat I386,
dimensiunea maximă a unui segment nu mai este limitată la 64Kb. În modul de lucru virtual
8086, I386 lucrează ca un microprocesor 8086, beneficiindu-se în schimb de toate facilităţile
de management şi protecţie oferite de I386.
I80386 este livrat într-o capsulă de formă pătrată, cu 132 de pini, de forma următoare:

Figura 4.2.1. Capsula microprocesorului I386

Pe lângă extensia registrelor interne la 32 de biţi, în plus faţă de 80286, I386


implementează o unitate de paginare a memoriei, este prevăzut cu facilităţi hardware pentru
depanarea programelor, şi cu posibilitatea de efectuare a unui autotest al componentelor
interne ale microprocesorului, la punerea sub tensiune.
Setul de instrucţiuni al microprocesorului I386 este un superset al instrucţiunilor
microprocesoarelor 8086, 80286, majoritatea instrucţiunilor fiind identice cu cele de la 80286,
excluzând instrucţiunile care exersează caracteristicile suplimentare ale microprocesorului
I80386 faţă de 80286. Instrucţiunile procesorului I80386 sunt capabile, însă, să manipuleze
date pe 32 de biţi.
Iniţializarea sau resetarea procesorului I386 se face prin aplicarea unui "1" logic pe
pinul RESET al procesorului. I386 va intra în modul real, prima instrucţiune executată fiind

59
cea de la adresa FFFFFFF0h. După prima instrucţiune, care de regulă este o instrucţiune JMP
sau CALL, pe liniile de adresă A0-A31 vom găsi numai adrese sub 1Moctet, caracteristice
modului real. După resetare, procesorul poate fi forţat să execute un autotest, prin ţinerea
semnalului BUSY de la unul din pinii procesorului, pe nivel coborât, pe durata a cel puţin 8
perioade de ceas sistem după căderea semnalului de RESET în "0". Acest autotest se execută
în 219 perioade de ceas (aproximativ 20ms la o frecventă a ceasului de 25MHz) şi, dacă nu a
fost detectat nici un defect, după autotest registrul EAX va conţine valoarea 0. Orice altă
valoare diferită de 0 indică un defect în interiorul cipului.
I80386 este prevăzut cu un coprocesor matematic – I80387 - mult mai performant decât
80287.

4.2.2. Registrele microprocesorului I80386

Figura 4.2.2. Registrele microprocesorului I80386

60
Registrele generale EAX, EBX, ECX, EDX pot fi folosite atât ca registre pe 32 de biţi,
cât şi ca registre pe 16 sau 8 biţi. De exemplu, EAX este un registru pe 32 de biţi, AX conţine
cei mai puţin semnificativi 16 biţi ai registrului EAX, AH cei mai semnificativi 8 biţi ai
registrului AX, iar AL cei mai puţin semnificativi biţi ai registrului EAX sau AX. De fapt,
pentru toate registrele pe 32 de biţi, care reprezintă extensii ale registrelor microprocesorului
80286, partea mai puţin semnificativă a acestora poate fi accesată cu acelaşi nume ca şi la
80286 sau 8086. Registrele de segment sunt registre pe 16 biţi, şi sunt folosite în acelaşi mod
ca şi la 80286. În plus, sunt disponibile două noi registre de segment, FS şi GS, pentru a
accesa segmente de date suplimentare, la fel ca şi registrul ES. Segmentele de memorie au
dimensiunea maximă de 4Gb, şi nu 64Kb ca la 80286.
Structura unui descriptor de segment a fost păstrată, biţii rezervaţi la 80286 fiind folosiţi
acum, şi reflectând modul de lucru cu adrese pe 32 de biţi a microprocesorului I80386.

Figura 4.2.3. Structura descriptorului de segment la I80386

Octetul cel mai semnificativ al descriptorului de segment conţine biţii 24-31 ai adresei
de bază a segmentului de memorie. Daca bitul G - Granularity - este 0, câmpurile Limită 15-0
şi Limită 19-16 indică lungimea segmentului în octeti; dacă G este 1, aceste câmpuri indică
lungimea segmentului în pagini, fiecare pagină de memorie având o dimensiune fixă de 4Kb
(4096 de octeţi). Cu bitul G setat, spaţiul de adrese logice (sau spaţiul de adrese virtuale) are o
dimensiune de 64Tb. Bitul DB - Default / Big - egal cu 0 forţează I386 să folosească operanzi
sau date pe 16 biţi, pentru a păstra compatibilitatea cu microprocesoarele anterioare din
familie. Bitul r este un bit rezervat de firma Intel, bitul vf este un bit neutilizat şi nerezervat,
fiind folosit în mod liber de sistemele de operare.
Descriptorii de porţi au fost schimbaţi, de asemenea pentru a reflecta noua arhitectură
pe 32 de biţi, păstrând însă compatibilitatea.
Registrul indicatorilor de condiţie şi stare a fost extins pe 32 de biţi, adăugându-se încă
doi noi biţi: VM - Virtual Mode - ce trebuie setat prin program, pentru ca I386 să intre în
modul virtual 8086, lucru posibil utilizând o poartă, şi RF - Resume Flag - ce controlează
reluarea unui program după un punct de întrerupere stabilit în registrele de depanare.
Microprocesorul 80286 are numai un singur registru de control - MSW, folosit pentru a
controla modul protejat. La I386, registrul MSW al microprocesorului 80286 este unul şi
acelaşi registru cu partea mai puţin semnificativă, de 16 biţi, a registrului CR0.

61
Bitul PG activează (PG=1) sau dezactivează (PG=0) unitatea de paginare a unităţii de
management a memoriei. Bitul r este un bit rezervat, şi nu trebuie schimbat atunci când se
încarcă registrul MSW cu instrucţiunea LMSW.

Figura 4.2.4. Registrele de control ale microprocesorului I80386

Registrele de management a memoriei: TR, LDTR, GDTR, IDTR sunt identice şi


îndeplinesc aceleaşi funcţii ca la 80286. Registrele de test TR6 şi TR7 sunt folosite pentru
testarea unui buffer intern, numit " Translation Lookaside Buffer " - TLB, folosit de unitatea
de paginare.
Depanarea programelor într-un sistem de operare multitasking este o problemă dificilă,
deoarece un program trebuie investigat în timp ce se rulează şi alte programe, a căror execuţie
nu trebuie afectată de alterarea registrelor, puncte de întrerupere ("breakpoints") sau alte
efecte ale depanării programului respectiv. I386 face posibilă depanarea eficientă a
programelor şi în modul protejat şi virtual 8086, introducând 8 registre de depanare DR0-
DR7, care conţin (în DR0- DR3) adresa fizică a maximum 4 puncte de întrerupere ale
programului, plus informaţii de stare şi control a depanării.

4.2.3. Paginarea memoriei

Cu registre de segment de 16 biţi şi deplasamente în segment de 32 de biţi, spaţiul de


adresă virtual sau logic al microprocesorului I80386 este de 64Tocteţi / task, dimensiunea
maximă a unui segment de memorie fiind de 4Gocteţi, care este de fapt şi dimensiunea
teoretică maximă a memoriei interne ce poate fi adresată, în mod direct, de I80386. În
realitate, dimensiunea memoriei interne cu care sunt echipate calculatoarele cu I80386 este
mult mai mică, tipic 4Mb.
Dacă gestiunea memoriei ar fi efectuată numai la nivel de segment ca la 80286, practic
nu s-ar putea folosi segmente mai mari decât capacitatea memoriei interne, cea mai mare
parte a spaţiului de adresă virtual rămânând nefolosită (aproximativ 99.9% din spaţiul de
adresă virtual, ce reprezintă raportul dintre 4Mb şi 4Gb). În concluzie, a fost propusă o nouă
metodă de gestiune a memoriei: paginarea.

62
Se numeste adresă liniară, adresa obţinută prin combinarea adresei de bază a
segmentului cu un deplasament în segment. Spaţiul de adresă obţinut se numeşte spaţiu de
adresă liniar, de dimensiune 4Gb (dimensiunea teoretică maximă a memoriei interne). Acest
spaţiu liniar este împărţit într-un milion de pagini de câte 4Kb fiecare, numai anumitor pagini
corespunzându-le adrese fizice de memorie, în spaţiul de memorie fizic existent (de regulă
4Mb). Astfel, segmentele de memorie de 4Gb, şi care pot fi de dimensiune variabilă, sunt
împărţite în pagini de memorie de lungime fixă, de 4Kb fiecare, gestiunea memoriei făcându-
se la nivel de pagină. Dacă o pagină nu se află în memoria fizică, sau cu alte cuvinte adresa
liniara nu a fost convertită într-o adresă fizică, sistemul de operare va trebui să aducă pagina
respectivă din memoria secundară (de obicei hard disk-ul) în memoria internă, în urma unei
excepţii "page not prezent".

Figura 4.2.5. Structura adresei liniare cu paginare

Corespondenţa între adresele liniare şi adresele fizice se realizează astfel: dacă


paginarea este activă, cei mai semnificativi 10 biţi ai adresei liniare indică numărul tabelei
conţinută în directorul de tabele, următorii 10 biţi indică numărul paginii în cadrul tabelei
selectate anterior, ultimii 12 biţi indicând deplasamentul în cadrul paginii respective de 4Kb (
212 ).
Această organizare pe două nivele a tabelelor de pagini este necesară, deoarece
organizând cele un milion de pagini pe un singur nivel, toată memoria internă, de 4Mb, ar fi
ocupată cu tabelele de pagini. Fiecare intrare într-o tabelă de pagini, sau în directorul de
tabele, conţine 4 octeti, numai directorul de tabele (4Kb) fiind reţinut tot timpul în memoria
internă. Adresa sa de bază este memorată în CR3.

Figura 4.2.6. Structura intrării într-o tabelă de pagini

Bitul P indică dacă pagina este prezentă (P=1) sau nu (P=0) în memoria internă. Dacă
pagina este prezentă, cei mai semnificativi 20 de biţi ai intrării - page frame address -
înmulţiţi cu 4096 vor da adresa de bază pe 32 de biţi a paginii, la care se va adăuga offset-ul
din adresa liniară prezentată în figura 4.2.5, rezultând adresa fizică pe 32 de biţi a obiectului
de memorie ce se doreşte a fi accesat. Daca P=0, o rutină specializată a sistemului de operare
va trebui să aducă pagina respectivă în memorie, într-o zonă liberă, sau să elibereze anterior o

63
zonă de memorie de 4Kb, prin transferarea unei pagini din memoria principală în memoria
secundară. Datorită dimensiunii reduse a paginilor, acestea pot fi transferate mult mai rapid
între memoria principală şi memoria secundară sau invers, decât segmentele, în cazul
gestiunii bazate numai pe segmente.
Deşi, datorită introducerii paginării, sunt necesare calcule suplimentare, pentru a afla
adresa fizică, aceasta nu duce neapărat la întârzieri, deoarece I80386 conţine o memorie cache
rapidă unde sunt memorate tabelele de pagini, numită "translation lookaside buffer" - TLB.
Ceilalţi biţi dintr-o intrare în tabelă au următoarele semnificaţii:
D - Dirty - dacă D=0 pagina nu a fost modificată de la ultima încărcare din memoria
secundară în memoria principală, aşa că, la eliberarea zonei de memorie respective, această
pagină nu e necesar sa fie transferată pe disc. D=1 indică o pagină cu conţinutul modificat.
A - Accessed - este setat când procesorul accesează o pagină, şi ajută sistemul de
operare să determine care pagini de memorie sunt mai puţin folosite, pentru a fi înlocuite
eventual când va fi cazul.
U/S - User/Supervisor - nu există decât două niveluri de protecţie la nivel de pagină:
utilizator pentru U/S=1 (CPL=3), şi supervisor pentru U/S=0 (CPL=0,1,2).
R/W - Read/Write - dacă R/W=0 pagina poate fi numai citită, în caz contrar poate fi şi
scrisă.
AVAIL - AVAILable - acest bit este folosit de sistemul de operare pentru a manevra
paginile.
Translatarea adreselor, în cazul folosirii unei memorii segmentat-paginate la I80386,
poate fi rezumată conform următoarei diagramei din figura 4.2.7.

4.2.4. Modul virtual 8086

Marea majoritate a programelor scrise sub MS-DOS, pentru calculatoarele IBM PC,
sunt rulate în modul real, însuşi sistemul de operare MS-DOS fiind un sistem de operare ce
utilizează numai modul real.
Modul virtual 8086 permite execuţia programelor scrise pentru microprocesorul 8086,
în context de multitasking, deşi programele respective nu au fost proiectate să lucreze în
modul protejat. Software-ul ce rulează pe I386 şi permite acest lucru, se numeşte monitor de
maşină virtuală. Hardware-ul cu care este prevăzut I80386 pentru a lucra în modul virtual,
împreună cu monitorul de maşină virtuală, alcătuiesc ceea ce se cheamă o maşină virtuală
8086. Un program, rulând pe o maşină virtuală, are impresia că lucrează pe un microprocesor
8086 fizic, deşi este numai un membru într-un context multiutilizator.
Se pot genera mai multe astfel de maşini virtuale, hard disk -ul calculatorului fiind
împărţit în mai multe secţiuni, câte una pentru fiecare maşină virtuală, care dispune şi de
propriul său spaţiu de intrare/ieşire, precum şi de propria sa tabelă de vectori de întrerupere.

64
Fiecare maşină virtuală este servită de către 80386 numai pentru un interval scurt de timp,
realizându-se astfel o rulare a mai multor taskuri în acelaşi timp.

Figura 4.2.7. Translatarea adreselor cu segmentare şi paginare

Sistemul de operare OS/2 este un sistem monoutilizator dar multitasking, acelaşi


utilizator rulând mai multe programe simultan. Sistemul UNIX, în diverse implementări, care
poate fi întâlnit pe calculatoare cu 80386, este un sistem multiutilizator, ce permite lucrul mai
multor utilizatori în acelaşi timp, pe acelaşi calculator, fiecare utilizator având în schimb
impresia că este singurul utilizator al sistemului. Folosind aceste maşini virtuale,
Windows/386 sau OS/2 pot rula în paralel mai multe programe scrise pentru 8086 în modul
real, sub primele versiuni ale sistemului de operare MS-DOS.

4.2.5. Memorii cache

Un procesor lucrând la o frecvenţă ridicată a ceasului, cum este 80386, necesită o


memorie rapidă. Memoria de mare capacitate a calculatoarelor actuale este realizată folosind
cipuri de memorie dinamică (sau DRAMs - Dynamic RAM), datorită preţului de cost scăzut al
acestora. Aceste memorii au un timp de acces de 60-120ns, fiind prea lente, spre exemplu,
pentru un procesor ce lucrează la 33MHz. Pe de altă parte, cipurile de memorie statică (sau

65
SRAMs - Static RAM) sunt mai rapide, având un timp de acces de 12-25ns, dar sunt mult mai
scumpe. În ultimul timp au apărut şi memorii dinamice mai rapide, cu timp de acces în jur de
10ns (memoriile SDRAM, ESDRAM).
Pentru a combina avantajele celor două tipuri de memorii RAM, între memoria
principală de mare capacitate, realizată cu memorii dinamice, şi procesor, se interpune o
memorie tampon sau memorie cache, de o capacitate mai mică, realizată cu memorii SRAM
de mare viteză.
Timpul de acces la memoriei cache este, de obicei, de 10 ori mai mic decât timpul de
acces la memoria principală.

Figura 4.2.8. Utilizarea unei memorii cache între CPU şi memoria principală

Este posibilă folosirea unei memorii cache, îmbunătăţindu-se considerabil viteza de


lucru, datorită proprietăţii de localitate a programelor, accesele succesive la memorie făcându-
se de regulă local, într-un spaţiu relativ restrâns de memorie.
Controlerul de memorie cache determină dacă data, ce se doreşte a fi citită de
microprocesor, se află în memoria SRAM sau nu. În caz afirmativ, data este furnizată imediat
fără ca acesta să fie nevoit să aştepte, ca în cazul unei citiri directe din memoria DRAM. Dacă
data dorită nu se află în memoria cache, controlerul va determina procesorul să aştepte până
când transferă o zonă de memorie de câţiva octeţi, numită linie cache (cache line), din
memoria principală DRAM în memoria cache, după care livrează imediat data respectivă
procesorului.
La scriere, controlerul determină, de asemenea, dacă data trebuie scrisă în memoria
cache, şi realizează acest lucru în caz afirmativ. Dacă nu, data va fi scrisă direct în memoria
DRAM chiar de către procesor. Orice scriere în memoria cache conduce la o scriere şi în
memoria DRAM. Acest procedeu de control al memoriei cache se numeste "write-through",
şi este folosit la majoritatea calculatoarelor IBM PC. Alte strategii de control pot propune
scrierea datelor în memoria principală numai dacă datele nu sunt găsite în memoria cache; sau

66
dacă data nu este gasită în SRAM, se va citi o linie cache din memoria principală în SRAM,
după care data va fi scrisă în SRAM.
Spre deosebire de strategia "write-through", scrierea unei valori în memoria cache, în
cazul ultimelor două strategii, nu implică neapărat o scriere imediată în memoria principală,
valoarea fiind scrisă numai în memoria cache. Este sarcina controlerului de memorie cache să
transfere liniile cache din SRAM în DRAM, pentru a face loc altor linii, sau să transfere din
când în când toată memoria cache în memoria principală (aşa numitul "cache flush" ). Liniile
cache reprezintă echivalentul paginilor de memorie, atunci când se transferă date între
memoria principală şi memoria secundară, dar o linie cache este de dimensiune mult mai mică
decât o pagină de memorie (tipic o linie cache are o dimensiune de ordinul zecilor de octeţi ).
Memoria cache a microprocesorului I80486, implementată pe cip, poate realiza diverse
strategii de control.

4.2.6. Variante de realizare ale microprocesorului I80386

La scurt timp după prezentarea microprocesoarelor I386 şi I387, ce pot lucra la


frecvenţe de până la 40MHz, Intel a dezvoltat o nouă pereche de procesoare, I386SX şi
I387SX, I386SX fiind absolut identic cu I386 din punct de vedere intern, dar lucrând în
exterior pe o magistrală de adrese de 24 de biţi şi o magistrală de date de 16 biţi, la fel ca
80286. În plus, I386SX nu poate lucra decât până la o frecvenţă de 25MHz.

Figura 4.2.8. Structura internă a circuitelor I386SL şi I82360SL

67
O tendinţă majoră în etapa actuală este integrarea mai multor componente pe un acelaşi
cip. Astfel, Intel a dezvoltat I386SL, care integrează pe un acelaşi cip un I386, un controler de
memorie cache şi un controler de memorie principală. I386SL este livrat în două variante, la
20MHz şi la 25MHz. Poate fi conectat la o memorie cache de 16, 32 sau 64 Kb. Controlerul
de memorie poate accesa memoria printr-o magistrală de adrese de 24 de linii şi o magistrală
de date de 16 linii, privit din exterior I386SL comportându-se ca un I386SX.
Un alt circuit superintegrat este I82360SL, care conţine un ceas de timp real, o memorie
CMOS, o interfaţă paralelă bidirecţională, o interfaţă pentru tastatură, un controler de disc
flexibil, două interfeţe seriale UART 16450, două numărătoare sau timere 8254, cu trei canale
de numărare fiecare, două controlere DMA 8237A, două controlere de întreruperi 8259A.
În plus, I82360 este prevăzut cu un controler al tensiunii de alimentare (Power
Management), care reduce semnificativ consumul componentelor electronice.
Cu un I386SL, un I82360SL, câteva cipuri de memorie DRAM şi un cip controler grafic
(de exemplu controlerul VGA 82370SL) se poate realiza un calculator personal IBM AT
complet.

4.3. Microprocesorul I80486

4.3.1. Structură internă

Microprocesorul I80486 integrează pe un acelaşi cip un microprocesor I80386 evoluat,


un coprocesor matematic I80387 mult mai puternic, şi o memorie cache de 8Kocteţi. Poate
lucra la o frecvenţă a ceasului între 25 şi 50 MHz. I80486 execută multe instrucţiuni ale
microprocesorului 80386 într-o singură perioadă a ceasului, fiind de trei ori mai rapid decât
un 80386 lucrând la aceeaşi frecvenţă.
I80486 este complet compatibil cu I80386 şi extensia acestuia I80387, lucrând cu
aceleaşi instrucţiuni, tipuri de date, şi având aceleaşi moduri de lucru: real, protejat şi virtual
8086. Deoarece I387 este pe acelaşi cip cu I386, transferul de date între cele două procesoare
se face mult mai rapid, I486 fiind un candidat ideal pentru aplicaţii matematice şi grafice
pretenţioase.
Microprocesorul I80486 este împachetat într-o capsulă de formă patrată cu 168 de
pini, necesitând o tensiune de alimentare de +5Vcc.
Conectarea microprocesorului I80486 la lumea exterioară se face prin intermediul unei
interfeţe de magistrală, care poate manipula date şi adrese pe 32 de biţi. Memoria cache, de
8Kb, este conectată direct la interfaţa de magistrală, şi conţine date, pe care le livrează unităţii
aritmetico-logice, registrelor sau unităţii de virgulă mobilă, sau instrucţiuni pe care le
livrează, pe rând, în coada de instrucţiuni (Prefetcher). Orice acces la memoria cache de pe

68
cip se efectuează într-o singură perioadă de ceas, spre deosebire de un acces la memoria
exterioară cipului, care se realizează în două perioade de ceas sistem. Deşi memoria cache
este mică, aceasta duce la o creştere semnificativă a vitezei de execuţie a instrucţiunilor.

Figura 4.3.1. Structura internă a microprocesorului I80486

Pe lângă memoria cache de pe cip, plăcile de bază ale calculatoarelor cu microprocesor


I486 au, de regulă, o memorie cache de 256Kb, numită memorie cache secundară, care poate
fi extinsă în principiu la orice dimensiune, cu condiţia ca controlerul de memorie cache să
poată manipula o asemenea memorie. Chiar şi la această memorie cache secundară, în mod
normal, accesul se realizează în două perioade de ceas sistem. Totuşi, dacă controlerul de
memorie cache, sau dacă memoria principală poate realiza acest lucru, memoria cache de pe
cip se va umple întotdeauna utilizând cicluri de magistrală comprimate sau "burst cycles".
Pentru transferarea unor cantitaţi mari de date între memorie şi procesor, I80486
implementează un nou mod de lucru pe magistrală faţă de I80386, numit mod salvă sau "burst
mode". În modul "burst", transferul unei date între memorie şi procesor se face într-o singură
perioadă de ceas, deci rata de transfer a datelor între memorie şi procesor se dublează. Într-un
ciclu "burst" pot fi transferaţi până la 16 octeţi consecutivi din acelaşi paragraf de memorie.
Un paragraf este o zonă de memorie de 16 octeţi, care începe la o adresă multiplu de 16. La o
frecvenţă a ceasului de 50MHz, rezultă în modul "burst" o rată de transfer a datelor pe
magistrală de 160Mb/s, ceea ce înseamnă că, teoretic, un hard disk de 160Mb poate fi citit
într-o secundă.

69
Din memoria cache instrucţiunile sunt transferate în coada de instrucţiuni - Prefetcher,
care este o memorie de 32 de octeţi (faţă de 16 octeţi la I386), ce separă operanzii imediaţi
sau deplasamentele de codul propriu-zis al instrucţiunii, trimiţându-le către ALU, registre sau
unitatea de segmentare, unde vor fi prelucrate. Unitatea de decodificare decodifică
instrucţiunile, aceste instrucţiuni decodificate fiind folosite apoi de unitatea de control, pentru
a comanda registrele, ALU, unitaţile de segmentare şi de virgulă mobilă. Nu toate
instrucţiunile trebuie decodificate, ca la celelalte procesoare anterioare din familia I80x86,
unele instrucţiuni pot fi executate direct, microprocesorul I80486 fiind primul din familie
care foloseşte anumite concepte şi tehnologii RISC. Comunicaţia cu unitatea de virgulă
mobilă, ce corespunde coprocesorului I80387, se face pe o magistrală internă de 64 de biţi,
ceea ce duce la o viteză mult mai mare de execuţie a calculelor matematice faţă de cazul în
care se foloseşte o pereche I386/I387, care comunică între ele pe o magistrală externă de 32
de biţi.
Unitatea de segmentare este responsabilă de protecţia şi gestiunea memoriei. În plus,
I80486 are patru buffere interne pentru scriere, procesorul transferând datele de ieşire în
aceste buffere, în ordine, numai atunci când magistrala este ocupată, după care procesorul
poate executa o altă activitate, aceste buffere fiind responsabile de livrarea datelor pe
magistrală, atunci când aceasta devine disponibilă. I80386 nu este prevăzut cu aceste buffere
de ieşire.

4.3.2. Arhitecturi CISC şi RISC

Unităţile centrale de prelucrare sau microprocesoarele de tip CISC - Complex


Instruction Set Computer - sunt caracterizate printr-un set larg de instrucţiuni masină, de
regulă mai mult de 300 de instrucţiuni, de mecanisme complexe de adresare a datelor şi de
microcodificarea instrucţiunilor procesorului. Cele mai des intâlnite microprocesoare CISC
sunt microprocesoarele din familia I80x86, care echipează calculatoarele personale IBM, şi
microprocesorul Motorola 68000 folosit la calculatoarele Apple Macintosh.
Pe de altă parte, procesoarele RISC - Reduced Instruction Set Computer, cum ar fi I860,
MIPS 2000 şi R3000, au un set redus de instrucţiuni şi nu folosesc conceptul de
microprogramare.
Instrucţiunile microprocesoarelor CISC nu sunt executate imediat, fiecare instrucţiune
fiind decodificată sau "tradusă" într-o secvenţă de microoperaţii elementare, numită
microprogram, microoperaţii care pot fi executate de către componentele electronice ale
microprocesorului: registre, UAL etc. Microprogramele corespunzătoare tuturor
instrucţiunilor maşină ale microprocesorului sunt stocate într-o memorie ROM din interiorul
procesorului. Unitatea de control a procesorului preia codurile microoperaţiilor, în secvenţă,
dintr-o coadă de instrucţiuni decodificate, ce este de fapt o coadă de microoperaţii, şi

70
comandă registrele , UAL etc., în vederea execuţiei instrucţiunilor programului. Unitatea de
decodificare preia urmatoarea instrucţiune din coada de instrucţiuni -Prefetch Queue, după
care pune microprogramul din memoria ROM corespunzător instrucţiunii respective, în coada
de microoperaţii, aceasta în timp ce unitatea de control este ocupată cu execuţia instrucţiunii
anterioare. Coada de instrucţiuni va fi resetată după o instrucţiune de transfer al controlului.

Figura 4.3.2. Microprocesor CISC

Figura 4.3.3. Microprocesor RISC

Deşi microprocesoarele I80386 sau Motorola 68000 folosesc o structură de tip bandă de
asamblare (sau "pipe-line"), la care citirea instrucţiunii următoare din memorie, decodificarea
instrucţiunii curente şi execuţia instrucţiunii anterioare se fac în paralel, totuşi datorită
folosirii conceptului de microprogramare moştenit de la calculatoarele anterioare apariţiei
microprocesorului, în cazul unei instrucţiuni complexe, decodificarea şi execuţia acesteia
poate dura mai mult decât execuţia unei secvenţe de câteva instrucţiuni simple care face
acelaşi lucru.
La microprocesoarele RISC, care au renunţat complet la conceptul de microprogramare,
instrucţiunile sunt executate direct, printr-o logică cablată (implementată în componentele
electronice de pe cip), nemaifiind necesară intervenţia unui microprogram pentru aceasta.
I80486 este o combinaţie de procesor CISC cu unul RISC, cele mai uzuale instrucţiuni fiind

71
cablate şi executate direct într-o singura perioadă a ceasului sistem, în timp ce instrucţiunile
mai complexe şi mai puţin frecvente sunt microcodificate, invocându-se un microprogram
pentru execuţia acestora.
Caracteristicile comune ale procesoarelor RISC sunt următoarele:
- set redus de instrucţiuni;
- execuţia simultană a mai multor instrucţiuni pe baza conceptului de bandă de asamblare
sau "pipe-line";
- arhitectură load-store, numai instrucţiunile de citire şi scriere accesând memoria, toate
celelalte instrucţiuni lucrând numai cu registre interne;
- procesorul RISC şi compilatorul formează o singură entitate, fiind dezvoltate într-o
maniera unitară încă de la început. Cipul RISC va implementa numai acele instrucţiuni
care simplifică munca de compilare şi creşte viteza de execuţie. Până la apariţia
procesoarelor RISC, dialogul între procesor şi software se realiza printr-o interfaţă
alcătuită din setul de instrucţiuni al procesorului respectiv, atât software-ul, cât şi
procesorul, fiind dezvoltate separat unul de celălat, de echipe diferite de specialişti.

4.3.3. Variante de realizare ale microprocesorului I80486.


Conceptul de "upgrade".

Intel a continuat seria SX, dezvoltând microprocesorul I486SX, care conţine toate
componentele ce caracterizează un I486, mai puţin unitatea de virgulă mobilă. În aplicaţiile
obişnuite, un asemenea procesor lucrează la fel de bine ca şi un I486. În aplicaţiile
matematice, pentru menţinerea parităţii cu I80486, este necesară adăugarea "coprocesorului"
I487, care nu este un coprocesor matematic propriu-zis ca ceilalţi membri ai familiei I80x87.
Începând cu I487SX, Intel a introdus conceptul de "upgrade".
Microprocesoarele I80x86 anterioare microprocesorului I486 priveau coprocesorul
matematic ca o extensie, lucrând în conjuncţie cu acesta. I487SX este de fapt un I486
complet, deci cu unitate de virgulă mobilă, ce poate lucra la o frecvenţă între 16 şi 25MHz, şi
care face inutilă prezenţa microprocesorului I486SX pe placa de bază, I487SX informează
procesorul I486SX, printr-un semnal, de prezenţa sa, ca urmare I486SX încetând orice
activitate. Nu este absolut obligatorie scoaterea efectivă a microprocesorului I486 de pe placa
de bază.
Diferenţă majoră între I486SX şi I486DX este frecvenţa mai mică a ceasului la care
poate lucra I486SX, cel mult 25MHz.
Pe lângă alte variante, Intel produce I486DX2, care dublează în interior frecvenţa
ceasului sistem de la pinul CLK al procesorului. S-a ajuns la această soluţie datorită faptului
că, atunci când se creşte frecvenţa ceasului sistem, apar probleme serioase. Astfel, un I80386
lucrând la 80MHz ar produce perturbaţii electromagnetice intense, făcând imposibilă, de

72
exemplu, utilizarea radioului. Pe de altă parte, componentele interne ale calculatorului, altele
decât microprocesorul, nu pot lucra la o asemenea frecvenţă. Totuşi, prin perfecţionarea
tehnologiilor de ecranare, s-a ajuns în prezent ca plăcile de bază ale PC-urilor actuale, bazate
pe Pentium, să lucreze la o frecvenţă a ceasului sistem (frecvenţa externă) de 100MHz.
Un I486DX2, cu un ceas extern de 33MHz, va efectua toate operaţiile interne la o
frecvenţă a ceasului de 66MHz, numai operaţiile pe magistrală derulându-se în continuare la
33MHz. Frecvenţa care este trecută pe cip indică frecvenţa ceasului intern, I486DX2 fiind
livrat la o frecvenţă a ceasului intern între 50 şi 66MHz.
Principalul avantaj al dublării interne a frecvenţei ceasului, şi care ne conduce direct la
conceptul de "upgrade", este faptul că schimbând numai procesorul de pe placa de bază, fără
nici o altă modificare, se poate lucra la o viteză mai mare de execuţie. Practic, nu se execută
nici o schimbare a procesorului de pe placa de bază, I486DX2 introducându-se într-un
conector de "upgrade" şi dezactivând pentru totdeauna vechiul procesor, de exemplu un
I486DX. În mod obişnuit, creşterea frecvenţei peste o anumită limită, implică şi schimbarea
componentelor de pe placa de bază, fiecare componentă lucrând până la anumite frecvenţe ale
ceasului sistem.
Exemple de variante disponibile pe piată sunt: I486DX la 50MHz şi I486DX2 la
50MHz, primul fiind ceva mai rapid decât cel de-al doilea, deoarece foloseşte un ceas extern
de 50MHz şi nu unul intern ca I486DX2. I486DX4 (disponibil la 100 sau 120MHz)
multiplică intern cu 4 frecvenţa ceasului extern de la pinul CLK.

4.4. Pentium
Procesorul Pentium este perfect compatibil cu procesoarele Intel anterioare, din familia
80x86, însă are două canale identice de procesare a datelor, ceea ce îi permite să execute două
instrucţiuni în acelaşi timp. Practic, Pentium reprezintă două procesoare 80486 în aceeaşi
capsulă. Cele două canale pentru executarea instrucţiunilor sunt numite canalele u şi v.
Canalul u este canalul principal.
Nu toate părţile unui program se pretează, însă, la execuţia în paralel a două instrucţiuni
secvenţiale. Atunci când nu este posibil acest lucru, se utilizează doar canalul u. Pentru
mărirea eficienţei se poate recompila software-ul, pentru a permite o astfel de procesare
paralelă. De aceea, deşi toate programele dezvoltate pe 386 şi 486 se rulează mult mai rapid
pe Pentium, mulţi utilizatori recompilează aplicaţiile pentru a folosi întreaga putere a acestui
procesor, folosind compilatoarele noi puse la dispoziţie de firma Intel.
Pentium are magistrala de date de 64 de biţi şi magistrala de adrese de 32 de biţi. În
interior, registrele sunt însă de 32 de biţi, perfect compatibile cu cele ale procesorului 80486,
deşi transferurile de date pe magistrala externă se pot face pe 64 de biţi. De asemenea,

73
Pentium mai conţine şi două memorii cache interne, separate, de 8 Kocteţi fiecare,
corespunzătoare celor două procesoare 486 de pe cip. În plus, variantele ulterioare de Pentium
(Pentium II, Pentium III) conţin o memorie cache suplimentară, de dimensiune mai mare,
integrând practic pe cip memoria cache de pe placa de baza de la variantele anterioare. De
exemplu, Pentium II Klamath conţine o memorie cache integrată pe cip, de 512 Kb.
Procesoarele Pentium au circuite de multiplicare a ceasului, pentru ca procesorul să
funcţioneze cu viteză mai mare decât magistrala. Tehnologia actuală (oct. 1999) de realizare
a procesoarelor Pentium permite funcţionarea până la o frecvenţă de 600 MHz.
De la apariţia procesorului Pentium cu facilităţi MMX, în ianuarie 1997, Intel a
dezvoltat în continuare această serie, şi a scos pe piaţă procesoare mai puternice, cum ar fi:

- Pentium II pentru calculatoare destinate micilor afaceri, PC-uri mobile, servere


de nivel inferior şi staţii de lucru;
- Pentium II Xeon pentru servere puternice şi staţii de lucru;
- Intel Celeron pentru seria de calculatoare Value PC;
- Pentium III pentru calculatoare personale destinate lucrului la domiciliu sau
afacerilor, servere de nivel inferior şi staţii de lucru;
- Pentium III Xeon, pentru servere de nivel mediu şi superior, şi staţii de lucru.

Tehnologia MMX îmbunătăţeşte procesele de intrare/ieşire, compresia/ decompresia


video, manipularea imaginilor, toate aceste procese intervenind în aplicaţiile actuale de
birotică, multimedia şi Internet. În comparaţie cu procesoarele precedente din serie, Pentium
cu facilităţi MMX are trei îmbunătăţiri esenţiale:
- un set adiţional de instrucţiuni pentru a procesa eficient informaţii video şi
audio;
- capabilităţi SIMD (Single Instruction Multiple Data) – fiind posibil ca o
instrucţiune a procesorului să fie executată asupra mai multor date, în acelaşi
timp, operaţie utilă în cazul proceselor grafice, de animaţie, video sau audio, şi
care duce la creşterea vitezei de execuţie a acestor procese;
- dublarea memoriei cache de pe cip (32 Kb comparativ cu 16 Kb la Pentium),
reducând timpul de acces la informaţia din memorie.

Pentium II încorporează tehnologia MMX, care reprezintă de fapt cea mai


semnificativă îmbunătăţire a arhitecturilor Intel din ultimii 10 ani, dar tehnologia MMX
PENTIUM II, deşi este compatibilă cu cea de la PENTIUM MMX, este adaptată arhitecturii
de bază a procesorului Pentium II. În plus faţă de Pentium cu facilităţi MMX, Pentium II
adaugă 57 de noi instrucţiuni orientate pe calcul paralel, necesare în operaţiile multimedia.

74
Pentru a răspunde necesităţilor de ordin practic, ridicate de problema limitării frecvenţei
de lucru externe (plăcii de bază) a platformelor PC, Intel a dezvoltat arhitectura bazată pe
magistrală duală - Dual Independent Bus Architecture. Această arhitectură a fost
implementată pentru prima dată la varianta anterioară Pentium Pro, dar va deveni larg
răspândită odată cu Pentium II. Având două magistrale care pot lucra în mod independent,
Pentium II poate accesa date pe oricare din cele două magistrale, simultan şi în paralel, şi nu
într-o manieră secvenţială ca la sistemele cu o singură magistrală. Cele două magistrale sunt:
magistrala de memorie cache L2 şi magistrala sistem, aceasta din urmă legând procesorul de
memoria principală. Arhitectura Dual Independent Bus permite ca un procesor Pentium II la
400 MHz, să acceseze memoria cache L2 de trei ori mai rapid decât un procesor Pentium.
Această arhitectură poate suporta magistrale sistem peste 100 Mhz, care este frecvenţa tipică
a plăcilor de bază ale platformelor PC actuale.
Pentium III poate funcţiona la o frecvenţă de 450, 500, 533, 550, 600 MHz, are, în plus
faţă de Pentium II, un set de 70 de noi instrucţiuni, frecvenţa magistralei sistem fiind de 100
sau 133 MHz, iar memoria cache de nivel secundar de 512 Kb.

75
5. STRUCTURA CALCULATOARELOR PERSONALE IBM

5.1. Generalităţi

Calculatoarele personale IBM actuale, sau compatibile IBM, sunt desemnate în general
prin termenul de PC-uri, indiferent de familia sau seria de fabricaţie din care fac parte. Una
din familiile de calculatoare reprezentative pentru IBM este familia IBM PS/*.
Calculatoarele din familia IBM PS/* (IBM PS/2, IBM PS/1, IBM PS/Value Point) au ca
punct de plecare sistemele ISA (Industrial Standard Architecture), care includ şi magistrala
standard ISA de intrare/ieşire, de 8 sau 16 biţi. Sistemele IBM PS/* au fost proiectate cu
magistrale mai avansate de intrare/ieşire: EISA, PCI, VESA Local Bus (VLB).
Calculatoarele IBM PS/2 au fost lansate pe piaţă în aprilie 1987, fiind calculatoare de
primă calitate, mai scumpe şi destinate marilor companii. Majoritatea calculatoarelor IBM
PS/2 utilizează magistrala mai puternică şi mai puţin comună MCA (MicroChannel
Architecture). Unele modele sunt dotate şi cu componente multimedia.
Calculatoarele IBM PS/1 au fost scoase pe piaţă în iunie 1990, fiind mai ieftine şi mai
uşor de utilizat, cu scopul de a proteja linia mai puternică IBM PS/2. Linia PS/1 a fost
destinată micilor afaceri şi utilizatorilor care lucrează la domiciliu. Tipurile de calculatoare
PS/1 includ procesoare 486 şi Pentium, video pe magistrală locală, echipamente multimedia,
placă de fax/modem, memorie extensibilă până la 32M sau 64M.
Linia de calculatoare IBM PS/Value Point a apărut în noiembrie 1992, şi sunt în mare
parte identice cu modelele PS/1, oferind însă mai multe posibilităţi de extensie, şi
performanţe mai ridicate la un preţ relativ scăzut. Raportul performanţă/preţ al acestor
calculatoare este comparabil cu al calculatoarelor compatibile IBM, produse de alte firme,
aşa numitele calculatoare copiate. În mod obişnuit, aceste calculatoare copiate erau mai
ieftine decât calculatoarele IBM, aceasta fiind motivaţia principală a introducerii
calculatoarelor PS/1 şi PS/Value Point de către IBM. Începând din noiembrie 1994, linia
PS/Value Point a fost separată în două linii de calculatoare: un sistem mai puternic - Value
Point Performance Series, şi seria de calculatoare puternice mainstream, denumită Value
Point SiSeries.
Placa de bază a sistemelor Performance Series este organizată în jurul magistralei
sistem ISA pe 16 biţi, sau PCI pe 32 de biţi, şi conţine magistrala locală VESA VLB pe 64

76
de biţi. Memoria video poate fi extinsă de la 1M la 2 M, şi acceptă o rezoluţie maximă de
1280 x 1024 pixeli. Un fund de sertar, denumit riser, permite conectarea plăcilor de extensie
pentru cele două tipuri de magistrale. Versiunea VLB a acestui fund de sertar detaşabil are
un conector VLB şi patru conectori ISA. Versiunea PCI permite conectarea a două plăci PCI
şi a două plăci ISA. Sistemele Performance Series, proiectate în mod obişnuit cu procesor
486, au fost îmbunătăţite ulterior, prin folosirea procesorului Pentium Overdrive.
Un exemplu de calculator din familia Value Point, era sistemul Value Point P60/D,
care utilizează un procesor Pentium în 60 Mhz, cu o memorie cache internă de 16K, conţine
o memorie cache externă de 256K, 8 sau 16M de memorie, extensibilă până la 128M prin
folosirea unor module de memorie SIMM RAM cu 72 de pini, placa de bază conţine un
circuit video SVGA PCI cu memorie video de 1M, extensibilă opţional la 2M.
Din punct de vedere constructiv, calculatoarele din liniile de fabricaţie PS/x au fost
proiectate pornind de la necesităţile de asamblare automată. Astfel, utilizatorii pot demonta
şi reinstala cea mai mare parte a componentelor, fără să utilizeze instrumente. Principalele
diferenţe dintre modelele de PS/x sunt date de tipul de magistrală internă utilizată. În mod
tipic, calculatoarele PS/2 folosesc magistrala MCA. Modelele PS/Value Point permit la
alegere utilizarea magistralelor PCI sau VLB, pentru extensii, dar posedă şi câţiva conectori
ISA. Majoritatea sistemelor PS/1 au conectori de extensie ISA cu VLB integrat. Începând cu
sistemele Value Point, IBM a introdus posibilitatea selecţiei tipului de magistrală. Astfel, la
aceste sisteme, deşi placa de bază utilizează magistrala locală VESA, prin introducerea
acelui fund de sertar detaşabil (riser), în care se pot instala plăci de extensie, se permite
utilizarea atât a unor plăci VESA, cât şi a a unor plăci PCI, rezolvând astfel dilema dintre
PCI şi VLB.
În ce priveşte subsistemul video, absolut toate calculatoarele IBM PS/x din ultimii ani
sunt aliniate la standardele VGA sau XGA, ultimul denumit şi SuperVGA (SVGA).
Calculatoarele PS/2 superioare modelului 50 sunt bazate pe magistrala MCA (Micro
Channel Architecture), diferită din punct de vedere electric şi fizic de ISA. Principalul
dezavantaj al acesteia este că, adaptoarele existente ISA pe 8 sau 16 biţi nu mai pot fi
utilizate. În ideea eliminării erorilor făcute la instalarea plăcilor adaptoare, architecura MCA
introduce opţiunea POS (Programmable Option Selection). Sistemele MCA au o ecranare
mai bună, fapt ce le face mult mai puţin sensibile la zgomote datorate transmisiilor radio sau
oricăror perturbaţii electrice, fiind mai sigure în funcţionare decât sistemele ISA. Multe
evaluări de performanţă au evidenţiat avantaje ale sistemelor MCA faţă de cele ISA, deşi
multe sisteme IBM utilizează, în continuare, standardul mai vechi ISA.
Magistralele de intrare/ieşire utilizate în calculatoarele personale IBM actuale sunt
următoarele:

77
- Industry Standard Architecture (ISA) – este cel mai răspândit standard, fiind prezent în
aproape toate calculatoarele personale. Funcţionează pe 8 sau 16 biţi, obţinând viteze
de transfer de 0.625Mb/sec., respectiv 2Mb/sec.
- Enhanced Industry Standard Architecture (EISA) – o extensie a magistralei ISA,
permiţându-i funcţionarea până la 32 de biţi.
- Micro Channel Architecture (MCA) – un standard de magistrală creat de IBM şi
întâlnit majoritar în PC-urile fabricate de IBM. Este asemănător standardului ISA,
funcţionând pe 32 de biţi.
- Video Electronics Standard Association (VESA) – standard dezvoltat special pentru
plăcile video care necesitau un trafic intens pe magistrale, ajungând până la 132
Mb/sec.
- Peripheral Interconnect Bus (PCI) – un standard rapid, dezvoltat de Intel, ce lucrează
la 33MHz pe 32 de biţi. Magistrala poate să se autoconfigureze în funcţie de plăcile de
extensie aflate pe ea, facilitate numită Plug-And-Play.
- Personal Computer Memory Card International Association (PCMCIA) – stabileşte
standarde pentru plăcile de extensie de dimensiuni reduse, care se potrivesc în
conectorii mici ai sistemelor laptop şi notebook, suportând deconectarea acestora în
timpul funcţionării.

Transferul datelor între diversele dispozitive periferice şi memoria calculatorului, unde


acestea urmează să fie prelucrate, este asigurat la nivel hardware, pentru fiecare dispozitiv în
parte, de controlere. Acestea sunt, de cele mai multe ori, plăcuţe electronice ce se inserează
în calculator prin intermediul unui slot (sau conector), care asigură compatibilitatea cu unul
din standardele de magistrale descrise anterior. Ele pot fi şi externe calculatorului, caz în
care comunicaţia se realizează prin intermediul unor magistrale speciale (SCSI – Small
Computer Serial Interface, de exemplu), sau prin intermediul unor dispozitive existente deja
în calculator, ce au posibilitatea de a comunica cu exteriorul (interfeţele seriale sau paralele,
de exemplu). Plăcile de extensie comunică cu microprocesorul prin întreruperi, porturi de
intrare/ieşire, canale DMA (Direct Memory Acces).

5.2. Calculatoarele IBM PS/2

În această secţiune sunt trecute în revistă principalele caracteristici ale calculatoarelor


IBM PS/2, una din seriile importante de calculatoare dezvoltate de IBM de-a lungul
timpului. Deşi în prezent acestea nu se mai fabrică, la momentul respectiv (1987) au
constituit un boom pe piaţa calculatoarelor personale, prin faptul că reprezentau un salt
tehnologic faţă de situaţia existentă, majoritatea caracteristicilor nou introduse regăsindu-se
în PC-urile actuale.

78
Calculatoarele IBM PS/2 sunt proiectate fie ca unităţi "desktop", cum ar fi modelele
25, 30 şi 50, precum şi în configuraţii "floor-standing" cum ar fi modelele 60 şi 80.
Principalele caracteristici arhitecturale noi, introduse de familia IBM PS/2 sunt:
- un nou sistem de plăci de bază;
- arhitectură Micro Channel;
- caracteristici grafice suplimentare preluate în hardware;
- posibilitate de lucru multitasking;
- noi dispozitive adăugate la configuraţia de bază.
Pe placa de bază au fost integrate porturile de comunicaţie paralelă şi serială, interfaţa
pentru mouse, controlerul de disc şi adaptorul grafic. Conectorii de extensie de pe placa de
bază rămân, astfel, disponibili pentru alte extensii decât cele anterioare.
Arhitectura bazată pe o magistrală de tip Micro Channel a fost inclusă numai la
modelele 50, 60, 80, şi nu la modelele 25 şi 30. Magistrala Micro Channel este o magistrală
de mare viteză, care poate transfera date pe 8, 16 sau 32 de biţi.
Adaptoarele grafice MCGA, pe modelele 25 şi 30, şi VGA, pe celelalte modele,
dotează membrii familiei PS/2 cu o rezoluţie grafică mult mai bună decât calculatoarele
precedente, precum şi cu un număr mult mai mare de culori (256 de culori disponibile la un
moment dat dintr-o paletă de aproximativ un sfert de milion de culori), ceea ce face posibilă
utilizarea calculatoarelor IBM PS/2 în aplicaţii grafice pretenţioase.
Modelele 50, 60, 80 sunt prevăzute cu sistemul de operare OS/2, care poate rula mai
multe programe simultan (sistem de operare multitasking), iar sistemul de operare MS-DOS,
utilizat în continuare pe oricare din membrii familiei PS/2, a fost îmbunătăţit prin apariţia
interfeţei grafice utilizator Microsoft Windows, care poate lucra de asemenea în regim de
multitasking, exploatând astfel toate posibilităţile arhitecturale ale microprocesoarelor ce
stau la baza acestor calculatoare.
Modelele 50 , 60, 80 şi ulterioare pot fi dotate cu noi tipuri de imprimante, un adaptor
dedicat pentru generarea, digitizarea şi memorarea sunetelor, un adaptor de recunoaştere a
vorbirii etc., absolut toate modelele familiei fiind prevăzute cu un port dedicat pentru mouse,
în vederea utilizării sistemului de operare OS/2 şi a interfeţei grafice Microsoft Windows.
Modelul 30/286 este similar modelului 30 din punct de vedere constructiv, dar, în plus
faţă de acesta, poate lucra la o frecventă de 10 MHz, dispunând de toate posibilităţile
suplimentare ale microprocesorului 80286 faţă de 8086, pe baza căruia este construit
modelulul 30, şi care poate lucra numai până la 8MHz. La fel ca şi modelul 30, modelul
30/286 poate fi găsit în două variante: una cu hard disk, caz în care controlerul de hard disk
este conţinut chiar în unitatea de hard disk, nefiind necesară o placă suplimentară; a doua
variantă, fără hard disk, fiind destinată în principal lucrului într-o reţea de calculatoare.
Ambele variante conţin o unitate de floppy disk de 1.44Mb. La fel ca şi modelul 30, este
prevăzut cu 3 conectori de extensie montaţi orizontal pe placa de bază. Modelul 30/286 este

79
primul membru din familie care încorporează adaptorul grafic VGA - Video Graphic
Adaptor, şi poate fi găsit cu o memorie de 512Kb, 1Mb, 2Mb, 4Mb.
Modelul 80/386 este produs în trei variante, cu frecvenţa ceasului între 16 şi 20 MHz,
şi cu diferite combinaţii de hard disk şi memorie. Modelul 80/386 suportă o memorie internă
de 32 de biţi, cu capacitatea maximă de 4Mb. În configuraţie minimală acesta este livrat cu o
unitate floppy disk de 3.5 inch, hard disk de 44Mb, microprocesor 80386 la 16 MHz şi
memorie internă de 1Mb. Poate fi prevăzut şi cu o unitate floppy disk de 5 1/4 ". Pe placa de
bază este prevăzut cu 8 conectori de extensie, trei dintre ei fiind de 32 de biţi.

Placa de bază a calculatoarelor din familia IBM PS/2

Numărul de circuite individuale (sau cipuri) a fost dramatic redus, circuitele cu un grad
redus de integrare fiind integrate în mai puţine circuite VLSI (Very Large Scale Integration).
Un exemplu este adaptorul grafic VGA, construit anterior pe o placă întreagă, şi care a fost
integrat într-un singur supercip, reducând numărul de componente şi numărul de
interconexiuni necesare, ceea ce a dus implicit la creşterea fiabilităţii. În plus, toate circuitele
sunt montate folosind tehnologia lipirii pe suprafaţă (surface mounted technology), care duce
de asemenea la creşterea fiabilităţii. Deoarece placa de bază conţine majoritatea
dispozitivelor de intrare/ieşire: interfaţă paralelă bidirecţională, port serial, interfaţă mouse,
adaptor grafic (MCGA pentru modelele 25 şi 30, şi VGA pentru celelalte modele), controler
de floppy disk ce poate suporta una sau două unităţi de disc flexibil de 3 1/2", aceasta nu mai
este prevăzută cu un număr mare de conectori de extensie.
Placa de bază mai conţine 640Kb de memorie pentru modelele 25 şi 30, 1Mb pentru
modelele 50, 60 şi 80 la 16MHz (80-041, 80-071), şi 2Mb pentru modelele 80 cu 80386 la
20MHz (80-111, 80-311). Memoria ROM, care este o memorie nonvolatilă (nu îşi pierde
conţinutul la întreruperea alimentării), şi care conţine programe ce sunt activate imediat după
punerea sub tensiune (de fapt conţine o parte din BIOS-ul sistemului de operare), ocupă un
spaţiu de adresă de o anumită dimensiune, în spaţiul de adresă alocat pentru placa de bază.
Memoria ROM de pe placa de bază are o capacitate de 64Kb pentru modelele 25 şi 30, şi
128Kb pentru celelalte modele.
De asemenea, pe placa de bază se mai găseşte memoria CMOS, care este o memorie
RAM de mică dimensiune, şi care necesită un consum mic de energie electrică. Ca orice
memorie RAM, memoria CMOS îşi pierde conţinutul la întreruperea alimentării. Datorită
consumului mic, este posibilă alimentarea memoriei CMOS de la o baterie de 6V, ce menţine
intact conţinutul memoriei pentru aproximativ 2 ani, fără nici o alimentare a calculatorului la
reţeaua de 220Vca. Memoria CMOS conţine acele valori care sunt folosite de programul ce
se rulează la alimentarea calculatorului, şi care configurează sistemul cu anumiţi parametri,
cum ar fi: data şi ora curentă, dimensiunea memoriei instalată în sistem, numărul şi tipul
unităţilor de floppy disk şi hard disk, tipul adaptorului video etc.

80
Placa de bază poate fi prevăzută cu următoarele extensii:
- plăci de comunicaţie,
- porturi seriale adiţionale,
- plăci grafice,
- plăci de memorie adiţională,
- coprocesor matematic.
Plăcile de comunicaţie folosesc pentru cuplarea unui calculator cu un alt calculator, sau
cu mai multe, cum ar fi spre exemplu o reţea de calculatoare, folosind pentru aceasta plăcile
de comunicaţie respective, cabluri speciale, protocoale, software adecvat etc.
Porturile seriale adiţionale se folosesc pentru a conecta imprimante seriale, sau un
număr oarecare de terminale, dacă calculatorul IBM este folosit ca un sistem multiutilizator.
Alte dispozitive care pot fi conectate la porturile seriale sunt: modemuri, plottere,
imprimante laser etc. Comunicaţiile seriale se realizează folosind, în exclusivitate,
protocolul RS-232C.
De asemenea, circuitele VGA sau MCGA de pe placa de bază pot lucra în cooperare cu
plăci grafice adiţionale, ceea ce duce la îmbunătăţirea calităţilor grafice ale membrilor
familiei IBM PS/2.
Plăcile de memorie adiţionale sunt necesare dacă se lucrează sub sistemul de operare
OS/2 sau Microsoft Windows. OS/2 necesită minimum 1.5Mb de memorie în sistem, dar este
recomandat să existe 5Mb; Windows /386 necesită minimum 1Mb, dar este indicat să existe
2Mb de memorie. Sistemul de operare UNIX necesită şi el minimum 5Mb de memorie.
Toate aceste plăci adiţionale pot fi implantate în conectorii de extensie disponibili pe placa
de bază.
Un coprocesor matematic este un cip specializat, care lucrează în conjuncţie cu
procesorul principal, mărindu-i acestuia din urmă viteza de efectuare a calculelor
transcedente (algoritmi, exponenţi, tangente etc.) şi în virgulă mobilă. Calculatoarele IBM
PS/2 nu sunt livrate implicit cu coprocesoare matematice, datorită faptului că acestea sunt
foarte scumpe, rămânând la latitudinea utilizatorului dacă să cumpere sau nu un coprocesor
matematic. Coprocesorul matematic este folosit de aplicaţii care necesită calcule matematice
intensive, cum ar fi spreadsheets-urile, aplicaţii grafice, ştiinţifice, statistice etc., mărind
considerabil viteza de execuţie a aplicaţiilor respective. Soclul pe care poate fi montat
coprocesorul matematic se află situat chiar lângă procesorul principal, pe placa de bază.
Fiecare procesor din familia I80x86 este prevăzut cu propriul său coprocesor matematic
I80x87 (de exemplu I8086 cu I8087, I80286 cu I80287, I80386 cu I80387).

5.3. Arhitectura MICROCHANNEL

81
Arhitectura Microchannel introdusă odată cu modelele 50, 60, 80 realizează o
îmbunătăţire substanţială în ce priveşte viteza de transfer a unui volum mare de date,
utilizând căi mai largi de transfer pentru date (de 32 de biţi) şi până la 15 dispozitive care pot
efectua transferuri de date pe magistrală, în afară de procesorul principal de pe placa de bază,
cum ar fi canale DMA şi master-e externe de magistrală, ce eliberează procesorul de anumite
sarcini. IBM foloseşte magistrala Microchannel nu numai la seria PS/2, ci şi la staţiile de
lucru mult mai puternice RISC System /6000, bazate pe procesoare RISC.
Arhitectura Microchannel este prevăzută cu maximum 16 nivele de prioritate pe
magistrală între diferitele dispozitive ce pot controla magistrala, astfel încât funcţiile mai
importante sunt tratate imediat, magistrala fiind alocată acestor dispozitive sau procese care
îndeplinesc funcţiile respective, în timp ce dispozitivele care îndeplinesc funcţii mai puţin
importante aşteaptă eliberarea magistralei de catre dispozitivele mai prioritare. Această
caracteristică este necesară în sistemele multitasking, asigurând astfel rularea taskurilor mai
prioritare şi care e necesar să fie rulate la un moment dat, în detrimentul taskurilor mai puţin
prioritare, caracteristică care nu poate fi întâlnită la arhitecturile anterioare ale familiei IBM
PC sau PS/2.
Arhitectura Microchannel suportă până la 8 dispozitive master de magistrala (inclusiv
UCP-ul de pe placa de bază) şi maximum 8 canale de access direct la memorie. Dispozitivele
master de magistrală pot fi plăci de comunicaţie, adaptoare de imprimantă, controlere de
disc, coprocesoare etc., şi sunt dispozitive ce conţin procesoare, care pot accesa memoria
principală independent de procesorul principal al sistemului de calcul. Dispozitivele master
pot controla magistrala în aceeaşi manieră în care o face şi procesorul principal de pe placa
de bază.
Canalele de acces direct la memorie - DMA (Direct Memory Access) - sunt folosite de
alte dispozitive sau plăci din sistem, pentru a face acces la memorie fără intervenţia
procesorului principal. Aceasta permite, spre exemplu, unui controler de disc să transfere
date în memorie, în timp ce procesorul principal execută un alt task. Dispozitivele care
utilizează accesul direct la memorie sunt controlate de circuitul controler al accesului direct
la memorie (sau controler DMA), de pe placa de bază.
Comparativ cu arhitecturile anterioare ale calculatoarelor IBM PC sau IBM PS/2,
dimensiunile unei plăci de bază Microchannel sunt reduse, conectorii de extensie sunt mai
mici şi conţin mai mulţi pini, viteza de transfer a datelor este mai mare întrucât pot fi
transferaţi la un moment dat pe magistrală 32 de biţi, faţă de 16 biţi la arhitecturile anterioare
etc.
O altă caracteristică importantă introdusă de arhitectura Microchannel este posibilitatea
de selectare a opţiunilor prin program (sau POS - Programmable Option Select). La
calculatoarele anterioare, când un utilizator dorea să adauge o nouă placă la configuraţia de
bază, acesta trebuia să selecteze anumite opţiuni, prin poziţionarea unor microcomutatoare

82
sau switches- uri, de pe noua placă sau de pe placa de bază. În locul acestor comutatoare
mecanice, arhitectura Microchannel foloseşte nişte comutatoare electronice, astfel încât tot
ce are de făcut utilizatorul este numai să introducă placa într-unul din conectorii de extensie,
după care să alimenteze sistemul de calcul şi să ruleze un program de configurare (setup
programm), care va poziţiona corespunzător comutatoarele electronice. Odată selectate
opţiunile printr-un sistem de meniuri adecvat, acestea vor fi salvate în memoria CMOS de pe
placa de bază, astfel încât la următoarea realimentare a sistemului de calcul, sistemul se va
configura cu opţiunile din CMOS, nefiind necesară rularea programului de configurare de
fiecare dată când se realimenteaza calculatorul.
Într-o arhitectura Microchannel este mai usor să foloseşti un număr mai mare de
procesoare. Astfel, într-un IBM PS/2 bazat pe o arhitectura Microchannel găsim un procesor
în controlerul de hard disk, un procesor care controlează intrările şi ieşirile de date prin
portul paralel, serial şi portul de mouse, un procesor în adaptorul grafic etc. Arhitectura
Microchannel permite, aşa cum s-a menţionat anterior, existenţa mai multor procesoare
master în acelaşi sistem, o schemă internă de arbitrare prevenind monopolizarea magistralei
de către un singur master de magistrală.
Magistrala Microchannel conţine linii separate pentru semnale audio şi video. Pe linia
audio se pot efectua transferuri de semnale audio de la o placă la alta, astfel încât toate
plăcile din sistem au acces la dispozitivul audio, respectiv difuzorul, nefiind obligatoriu ca
fiecare placă să aibă propriul sau difuzor. Calculatoarele IBM PS/2 pot conţine adaptoare de
recunoaştere a vorbirii, adaptoare telefonice (phone answering adapters), plăci muzicale
(music boards), care folosesc de asemenea linia audio. Liniile de semnal video vin de la un
conector Microchannel care are o extensie de 16 pini, şi care permite adăugarea unor plăci
video, ce pot lucra sau nu în cooperare cu adaptorul VGA de pe placa de bază.
O caracteristică principală a arhitecturii Microchannel este folosirea unui ceas sistem
separat, ce furnizează o frecvenţă de maximum 10MHz la majoritatea componentelor
Microchannel. Numai magistrala locală, între CPU şi memoria principală, operează la o
viteză superioară, dată de ceasul procesorului (CPU clock), permiţând un acces rapid al
procesorului la datele din memorie. Se spune că magistrala Microchannel este o magistrală
asincronă, deoarece viteza de transfer pe magistrală nu depinde de ceasul procesorului
principal.
Pentru realizarea unor memorii integrate de mare capacitate, astăzi se folosesc aşa
numitele memorii RAM dinamice (DRAM memory), care sunt mai lente decât memoriile
RAM statice, şi care sunt totuşi utilizate în cazul realizării unor memorii de mică capacitate
dar rapide, cum ar fi spre exemplu o memorie cache de disc. Memoriile RAM dinamice, spre
deosebire de cele statice, îşi pierd conţinutul în timp, dacă informaţia nu este reîmprospătată
periodic. Este sarcina procesorului principal, sau al altui dispozitiv, să reîmprospăteze

83
memoria dinamică. Ambele tipuri de memorii RAM îşi pierd conţinutul când calculatorul
este deconectat de la reţeaua de 220Vca.
Deoarece CPU de pe placa de bază, logica de refresh (logica de reîmprospătare a
memoriei dinamice), controlerul DMA şi master-ele externe de magistrală pot prelua
controlul magistralei, este necesar un dispozitiv de arbitrare a cererilor de ocupare a
magistralei - Bus Arbitrator, care acordă controlul magistralei în conformitate cu o ordine de
prioritate.

Figura 5.1. Arhitectura Micro Channel

Ordinea de prioritate de acordare a magistralei, la calculatoarele PS/2, este următoarea:


-2 - refresh memorie
-1 - NMI
0-7 - canalele DMA 0-7
8-14 - disponibile pentru master-e externe de magistrală
15 - CPU de pe placa de bază
Cea mai mare prioritate o are o cerere de refresh a memoriei, ceea ce înseamnă că
logica de arbitrare acordă controlul magistralei logicii de reîmprospătare a memoriei, imediat
ce o cerere de refresh este activă. Următoarea prioritate o are o cerere NMI, care apare atunci
când există o eroare majoră în sistem. Cererile NMI sunt servite de către procesorul de pe
placa de bază, dar pentru aceasta CPU trebuie să aibă controlul magistralei. Cea mai mică

84
prioritate de acordare a magistralei o are procesorul central de pe placa de bază, ceea ce
înseamnă că CPU va avea controlul magistralei numai dacă nu există o altă cerere activă de
acordare a magistralei.
În cadrul arhitecturii Microchannel, sistemul de memorie al calculatoarelor IBM PS/2 a
fost îmbunătăţit. Astfel, dacă programul de startup detectează un defect în memoria
principală, aceasta este reconfigurată folosind blocuri de 64Kb, blocurile cu defecte fiind
"mutate" în partea de sus a memoriei, nepermiţându-se accesul la acestea.
Controlerul DMA a fost armonizat cu noua arhitectură, realizând transferuri DMA pe
32 de biţi, pentru întreg spaţiul de adresă al memoriei. La fel şi controlerul de întreruperi,
fiind posibile 255 de întreruperi hardware, în timp ce, spre exemplu, la un calculator IBM
AT erau disponibile numai 15 cereri de întreruperi hardware.
În interiorul unui sistem de calcul apare adeseori necesitatea măsurarii unor intervale
de timp. Dispozitivele care fac acest lucru se numesc timer-e. La o arhitectură Microchannel
întâlnim un timer cu 4 canale independente, primul canal fiind ocupat cu generarea ceasului
sistem, al doilea cu refresh-ul memoriei, al treilea este un generator de ton pentru difuzor (se
pot genera diferite frecvenţe cu acest canal), iar ultimul este un aşa zis "watchdog timer",
care va genera o întrerupere NMI, dacă vreunul din master-ele externe de magistrală ţine
ocupată magistrala un timp îndelungat, blocând astfel refresh-ul memoriei. În plus,
calculatoarele IBM PS/2, şi deci şi cele bazate pe o arhitectură Microchannel, conţin un ceas
de timp real - RTC (Real -Time Clock) - alimentat de la aceeaşi baterie ca şi memoria
CMOS, ceea ce permite măsurarea timpului şi actualizarea datei şi timpului curent, chiar şi
atunci când calculatorul este deconectat. Data şi timpul furnizate de RTC sunt memorate în
memoria CMOS împreună cu valorile de configurare, această memorie fiind citită de rutina
de iniţializare din ROM-BIOS, care stabileşte configuraţia curentă, precum şi data şi timpul
actual. De fapt ceasul de timp real şi memoria CMOS sunt integrate într-un singur cip, de
regulă Motorola MC 146818.
Unităţile integrate pe placa de bază, cum ar fi: adaptorul VGA, controlerul de disc,
interfaţa paralelă şi serială etc., sunt accesate prin intermediul unei magistrale, numită Local
Channel sau Peripheral Standard Bus.
În concluzie, scopul magistralei Microchannel în jurul căreia se construieşte aşa
numita arhitectură Microchannel, este de a asigura transferul eficient de date între procesorul
central al calculatorului şi celelalte părţi ale sistemului de calcul (memorie, dispozitive
periferice: discul, display-ul, tastatura etc.), îndeplinind aceeaşi funcţie pe care o îndeplineşte
sistemul nervos al unui animal, legând organele de simţ cu creierul.

5.4. Interfaţarea calculatoarelor IBM.


Comunicaţia paralelă şi serială.

85
La modul general, orice dispozitiv care se conectează la un calculator, inclusiv
tastatura şi display-ul, poate fi considerat ca o interfaţă de comunicaţie.
Calculatoarele comunică folosind impulsuri digitale, o tensiune de 5V indicând un "1"
binar, o tensiune de 0V indicând un "0" binar. Codul ASCII asociază fiecărui caracter un cod
binar pe 8 biţi. Toţi aceşti biţi ai unui caracter pot fi transmişi simultan în cazul comunicatiei
paralele, sau pot fi transmişi unul câte unul în cazul comunicaţiei seriale.
Deci, comunicaţia paralelă foloseşte fire separate pentru fiecare bit de date. Depinzând
de tipul calculatorului, putem avea comunicaţie paralelă pe 8, 16 sau 32 de biţi. Comunicaţia
paralelă este mai rapidă, întrucât putem transmite simultan mai multi biţi, dar nu poate fi
folosită decât pe distanţe scurte, de ordinul metrilor, deoarece în cazul distanţelor mari apar
erori datorate unor factori cum ar fi, spre exemplu, interferenţele electrice. Un alt factor
restrictiv, în cazul comunicaţiei paralele, este costul firelor de legătură. Portul paralel de pe
placa de bază, de regulă, este folosit pentru comunicaţia cu imprimanta paralelă. Dacă acest
port nu este suficient, se pot instala alte porturi paralele, adăugând o placă de comunicaţie
paralelă într-unul din conectorii de extensie.
Pe distanţe lungi, se foloseşte aproape în exclusivitate comunicaţia serială, incluzând
aici şi comunicaţiile prin radio sau satelit. În cazul comunicaţiei seriale, biţii fiecărui caracter
sunt transmişi secvenţial unul după altul, necesitând la modul cel mai simplu numai două fire
pentru interconectarea a două calculatoare: un fir pe care se transmit secvenţial biţii, şi un fir
de masă sau fir de referinţă, faţă de care se măsoară tensiunea pe firul de date. Viteza
comunicaţiei seriale este măsurată în biţi pe secundă (bps) sau bauds. Vitezele standard de
transmisie serială sunt: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200 … bps.

86
Figura 5.2. Comunicaţia serială între două calculatoare personale
prin satelit

Comunicaţia serială asigură o protecţie mai bună împotriva erorilor, comparativ cu


comunicaţia paralelă. Comunicaţia serială poate fi sincronă sau asincronă.
În cazul comunicaţiei seriale sincrone, pe lângă firul pe care se transmit biţii de date şi
firul de masă, vom avea un alt fir pe care se transmit impulsurile de ceas. Semnalul de ceas
indică când este valid următorul bit pe linia de date.

Figura 5.3. Exemplu de comunicaţie serială sincronă.

În cazul transmisiei seriale asincrone, biţii de date trebuie să conţină o informaţie


minimă de sincronizare, care să permită receptorului să folosească aceeaşi frecvenţă a
ceasului cu care investighează firul de date, ca şi emiţătorul. Pentru sincronizarea ceasului
emiţător cu ceasul receptor, se transmite un bit de start înaintea fiecărui caracter. Astfel, linia
serială este în mod normal în "1". Atunci când se doreşte transmisia unui caracter, se
transmite întâi un bit "0" - bitul de start, prin trecerea liniei seriale în "0". Acest lucru
determină ceasul receptor să se sincronizeze cu ceasul emiţător. Este necesar acest lucru
deoarece, în mod normal, frecvenţa ceasului cu care se transmit datele nu este perfect egală
cu frecvenţa ceasului cu care se investighează linia serială la recepţie, dar după un bit de
start, se poate admite că pe durata recepţiei unui caracter, datele vor fi preluate corect de
receptor, chiar dacă cele două frecvenţe nu sunt absolut egale.
După bitul de start sunt transmişi unul după altul biţii de date ai caracterului, de regulă
8 biţi de date, după care sunt transmişi unul sau doi biţi de stop, prin trecerea liniei seriale în
"1". Nu este exclusă folosirea unor caractere cu lungimea diferită de 8 biţi (5 biţi, 7 biţi etc.),
un caracter fiind format dintr-un număr de biţi transmişi între bitul de start şi bitul (sau biţii)
de stop, noţiunea de caracter folosită aici nefiind neapărat identică cu noţiunea de caracter
ASCII.

87
Figura 5.4. Transmisia asincronă a 2 caractere de 8 biţi, cu un bit de start,
1 bit de paritate, 1 bit de stop la viteza de 2400 bauds.
Pentru a proteja biţii de date împotriva erorilor de comunicaţie, se transmite un bit de
paritate între ultimul bit de date şi primul bit de stop. Astfel, de exemplu, dacă caracterul
conţine un număr impar de biţi "1", bitul de paritate va fi "1", altfel va fi "0", sau invers . La
recepţie se verifică paritatea. De fapt, în prezent, se folosesc proceduri de detecţie şi corecţie
a erorilor mult mai sofisticate decât simpla verificare a parităţii.
În general, pentru comunicaţii seriale directe, calculatoarele IBM folosesc 3 fire: un fir
pentru transmisie, un fir pentru recepţie şi un fir de masă faţă de care se măsoară tensiunea
electrică pe cele două fire, utilizând conectori cu 9 sau 25 de pini.

Figura 5.5. Conectorii folosiţi de calculatoarele IBM pentru


comunicaţii seriale

Comunicaţia serială directă între două calculatoare se realizează numai pe distanţe


relativ scurte, până la 1-2 Km. În cazul comunicaţiilor mai lungi, este obligatorie folosirea
modemurilor. Pentru ca un modem să comunice cu un alt modem, sunt necesare numai 2 fire.
De regulă, această legatură modem-modem este realizată de reţeaua telefonică, dar poate fi
orice pereche de 2 fire; sau cum este arătat în figura 5.2, cele două modemuri pot comunica
prin satelit în cazul distanţelor foarte mari, de ordinul miilor de kilometri.
Modemul preia impulsurile digitale de la ieşirea serială a calculatorului, şi le foloseşte
pentru a modula un semnal numit purtătoare, care este trimis către celălat modem, prin
reţeaua telefonică, satelit etc. La recepţie, modemul corespondent demodulează purtătoarea,
obţinând un tren de impulsuri digitale, pe care le trimite către calculator pe legătura serială.

25 pini 9 pini Semnal Denumire semnal

1 - - Protective ground
2 3 TD Transmitted Data
3 2 RD Received Data

88
4 7 RTS Request To Send
5 8 CTS Clear To Send
6 6 DSR Data Set Ready
7 5 - Ground (common)
8 1 DCD Data Carrier Detect
20 4 DTR Data Terminal Ready

Figura 5.6. Standardul RS-232C pentru conectorii de 25 şi 9 pini


Comunicaţia serială între modem şi calculator se realizează conform standardului RS-
232C. La transmisie, calculatorul activează semnalul Request to Send, care informează
modemul de intenţia calculatorului de a trimite date, modemul răspunde activând semnalul
Clear to Send de pe pinul corespunzător al conectorului. Datele pot fi acum transmise pe
linia Transmitted Data. La recepţie, modemul activează linia Data Set Ready, care
informează calculatorul că legătura cu modemul corespondent a fost stabilită, şi modemul are
date de transmis. Calculatorul răspunde activând linia Data Terminal Ready, informând
modemul că poate primi date. Datele sunt recepţionate pe linia Received Data.
Semnalul DCD este activat de modem când acesta detectează o purtătoare, şi este gata
să stabilească legatura cu celălat modem. DCD rămâne activ pe toată durata legăturii seriale
între cele două calculatoare.
Liniile (pinii conectorului RS-232C) Transmitted Data, Received Data şi Ground sunt
folosite şi atunci când comunicaţia se face direct între calculatoare, neutilizând modemuri. În
figura următoare, este arătată configuraţia conectorului de la capătul cablului cu 3 fire ce
face legătura directă între cele două calculatoare, conector ce se introduce în conectorul
adecvat disponibil în partea din spate a calculatorului. Legând împreună liniile RTS cu CTS,
şi DSR cu DTR şi cu DCD, se simulează existenţa unui modem.

Figura 5.7. Legătura serială directă între două calculatoare,


utilizând conectori RS - 232C

5.5. Tastatura

89
Calculatoarele din familia IBM vin cu o tastatură detaşabilă, ce conţine trei zone
principale de taste: zona de taste obişnuită de la o maşină de scris, aranjată conform
standardului QWERTY, o zonă de taste numerice şi o zonă de taste funcţionale. Mai sunt
disponibile şi câteva taste de control, între zona de taste alfanumerice şi zona de taste
numerice. Tastaturile IBM actuale au 101,102 sau104 taste.
Tastatura este ea însăşi un microcalculator, conţinând un microprocesor Motorola
6805. Comunicaţia cu controlerul de tastatură de pe placa de bază se face serial,
microprocesorul 6805 scanând tastele şi trimitând către calculator un cod la apăsarea unei
taste (make code), precum şi un cod la eliberarea tastei (break code), ceea ce provoacă
întreruperea procesorului central de pe placa de bază, care va prelua codurile respective.
Tastatura conţine un buffer de 16 caractere ce permite stocarea codurilor a 16 taste, în
situaţia în care procesorul central nu poate prelua codurile de pe legătura serială (când nu
poate fi întrerupt). Comunicaţia între tastatură şi calculator este bidirecţională, acesta din
urmă trimiţând instrucţiuni sau date catre tastatură, fiecare transmisie de date sau instrucţiuni
către tastatura fiind urmată de un răspuns al tastaturii în maximum 20ms.

Figura 5.8. Schema bloc a tastaturii calculatoarelor personale IBM

Microprocesorul tastaturii supraveghează aşa numita matrice de scanare a tastaturii. În


fiecare punct de intersecţie între liniile şi coloanele matricii este fixată o tastă, care atunci
când este apasată realizează un contact între linia şi coloana corespunzătoare din matrice, ce

90
dă posibilitatea microprocesorului 6805 să determine coordonatele tastei apăsate, pe care le
va trimite sub forma unui cod pe 8 biţi (numit "scan code" sau "make code"), via buffer, către
interfaţa de tastatură de pe placa de bază. Astfel, CPU cunoaşte ce tastă este apăsată.
Conversia din "scan code" în caracterul corespunzător este realizată de un program special,
numit driver de tastatură (în cazul sistemului de operare MS-DOS, keyb.com). Astfel, se
poate schimba tastatura obişnuită (tastatura americană) cu una germană, fără să fie nevoie să
fie schimbat hardware-ul tastaturii şi în special matricea de scanare, schimbând numai tabela
de conversie a codurilor de scanare în coduri ASCII. Totuşi tastatura IBM poate schimba
codurile de scanare, oferind trei seturi de coduri de scanare. Codul de relaxare al tastei,
transmis la eliberarea tastei (break code), este egal cu codul de scanare plus 128 (bitul 7
setat).
Pentru reprezentarea caracterelor, astăzi, este folosit aproape în exclusivitate codul
ASCII, care asociază fiecărei taste de pe tastatură, sau unei combinaţii de taste ce implică
tastele SHIFT, ALT, CTRL, CAPS, un cod binar unic pe 8 biţi. Acest cod este folosit mai
departe de BIOS-ul sistemului de operare. Nu toate combinaţiile de taste au un cod ASCII
asociat.
Dacă se apasă simultan tasta SHIFT sau o tastă de control (ALT, CTRL etc.) împreună
cu o altă tastă, se transmite întâi codul de scanare al tastei SHIFT sau al tastei de control,
după care se transmite către calculator codul celei de-a doua taste. La eliberarea tastei,
ordinea de transmisie a codurilor break este inversă.

5.6. Mouse

Mouse-ul este folosit din ce în ce mai mult astăzi, pentru a introduce date în calculator
în locul tastaturii. Structura mouse-ului este foarte simplă. Acesta conţine o bilă din cauciuc
sau plastic, care se roteşte atunci când este mişcat mouse-ul. Aceasta mişcare este transmisă
la două role perpendiculare una pe alta, care convertesc mişcarea mouse-ului în plan în cele
două direcţii, într-o rotaţie a două discuri cu găuri.
Discurile sunt montate la capătul axei rolelor, şi sunt prevăzute cu găuri localizate la o
distanţă fixă una de alta şi la aceeaşi distanţă faţă de centrul discului, de o parte şi de alta a
fiecărui disc găsindu-se un ansamblu fotosenzor emiţător - receptor. Când rolele se rotesc,
discul întrerupe alternativ raza de lumină a ansamblului fotosenzor. Astfel, numărul de
întreruperi ale celor două ansambluri fotosenzor ne indică exact deplasarea mouse-ului în
direcţiile Ox şi Oy, numărul acestor întreruperi pe secundă indicând viteza de deplasare a
mouse-ului.
Mouse-ul IBM este echipat cu 2 butoane sau taste, dar există şi mouse-uri cu 3 taste.
Majoritatea mouse-urilor sunt conectate printr-o interfaţă serială. Când mouse-ul este mişcat
sau când este apăsat un buton, se trimite un pachet de date către interfaţa pentru mouse din

91
calculator, care la rândul ei provoacă o întrerupere unităţii centrale. Pentru manipularea
acestor întreruperi este necesar un driver de mouse, care interceptează întreruperile de la
interfaţa serială la care este legat mouse-ul, citeşte pachetul de date trimis de mouse şi
actualizează anumite valori, cum ar fi de exemplu poziţia mouse-ului.
Există mouse-uri care nu sunt conectate cu un cablu la PC, şi care comunică cu
calculatorul în infraroşu, într-un mod similar controlului de la distanţă al televizorului,
transmiţând datele la un receptor conectat la o interfaţă serială, sau care poate fi o placă de
extensie de sine stătătoare.

5.7. Imprimante

Una din cele mai comune probleme de interfaţare este cuplarea unei imprimante. La
calculatoarele personale IBM, sunt folosite trei tipuri mari de imprimante: imprimante laser,
imprimante cu matrice de puncte şi imprimante cu margaretă (daisy wheel printers).
Imprimantele laser funcţionează pe acelaşi principiu ca şi o maşină de fotocopiat.
Ambele folosesc un tambur acoperit cu un material fotosensibil ce nu dezvoltă o încărcare
electrică când este iluminat, cerneala sau tonerul transferându-se pe tambur numai pe zonele
încărcate, iar de aici pe hârtie, atunci când tamburul se roteşte peste foaia de hârtie. La
fotocopiatoare, este folosită o lampă, a cărei lumină se reflectă de pe document pe tamburul
fotosensibil. La imprimantele cu laser, se foloseşte un mic semiconductor laser, a cărui rază
este scanată pe suprafaţa tamburului cu ajutorul unei oglinzi rotative, la o viteză de rotaţie
mare. Raza laserului este întreruptă sau nu, în acord cu circuitul generator de caractere,
formând o imagine latentă pe tambur (sau un tipar), în acelaşi fel în care fluxul de electroni
formează o imagine pe display. Imaginea latentă de pe tambur este apoi transferată pe hârtie,
prin rotaţia tamburului peste foaia de hârtie. Deoarece raza laser poate fi modelată oricum,
imprimantele laser pot produce orice fel de imagine: text, grafică sau o combinaţie a celor
două.
Imprimantele laser sunt rapide, nezgomotoase, dar sunt mai scumpe decât alte genuri
de imprimante, ceea ce face ca, în mod normal, o imprimanta laser să fie folosită de mai
multe calculatoare, de regulă reţelele locale de calculatoare fiind prevăzute cu o singură
imprimantă laser. Din cauza partajării între mai multe calculatoare, imprimantele laser sunt
echipate, de obicei, cu o interfaţă serială lucrând la o viteză de comunicaţie mare, ceea ce
permite ca imprimanta să fie plasată într-un loc central aflat la o oarecare distanţă faţă de
calculatoarele ce-şi împart imprimanta.
Imprimantele cu matrice de puncte pot produce atât texte cât şi grafice, pot schimba
fonturile de caractere prin software, şi sunt destul de rapide pentru multe aplicaţii.
Imprimantele cu matrice de puncte se numesc aşa, deoarece capul de tipărire este alcătuit
dintr-o grupare de ace, aranjate sub formă de matrice cu un anumit număr de ace pe

92
orizontală şi un anumit număr de ace pe verticală, fiecare ac fiind comandat separat. Lovind
individual fiecare ac în parte, se pot reproduce caractere sau se pot realiza grafice. Aceste
imprimante sunt foarte populare datorită preţului de cost scăzut, însă datorită spaţiului dintre
ace, calitatea caracterelor lasă de dorit, nefiind comparabilă cu aceea obţinută cu o
imprimantă laser sau cu o imprimantă cu margaretă.
Imprimantele cu margaretă sunt imprimante cu impact, la fel ca şi cele cu matrice de
puncte, transferând prin lovire cerneala de pe ribon pe hârtie. Aceste imprimante folosesc un
singur element circular (de regulă din plastic), pe care sunt plasate caracterele, la capătul
unor "petale" radiind din acest element circular. Pentru a tipări un caracter , se roteşte
elementul circular pe care sunt prinse petalele, până când petala corespunzătoare se află în
poziţia de tipărire, după care se loveşte această petală, caracterul de pe petală lovind ribonul
şi imprimându-se astfel pe hârtie. Imprimantele cu margaretă sunt zgomotoase, sunt lente
(15-55 caractere/minut), nu pot produce grafice, însă calitatea imprimărilor alfanumerice este
superioară celei obţinute cu o imprimantă cu matrice de puncte.
Majoritatea imprimantelor cu matrice de puncte şi cu margaretă comunică cu
calculatorul printr-o interfaţă paralelă. Pentru a lucra cu o imprimantă, este necesară în
primul rând o conectare fizică a acesteia la calculator, care să producă semnalele electrice pe
care imprimanta să le "înţeleagă". În cazul unei conectări seriale, imprimantele se conectează
la calculator conform standardului RS-232C, în cazul conectării paralele utilizându-se
standardul Centronics, care necesită conectori de 36 de pini, IBM folosind numai 25 de pini
la ieşirea din calculator. În concluzie, cablul pentru o conectare paralelă are la capătul
dinspre imprimantă un conector de 36 de pini, la celălalt capăt având un conector de 25 de
pini. Lungimea acestui cablu nu trebuie să depăşească 5m, pentru a se evita erorile de
comunicaţie. Pentru distanţe mai mari, se va folosi o imprimantă serială.
O altă problemă ce poate apare la cuplarea unei imprimante este necompatibilitatea
caracterelor de control. Caracterele de control sunt caractere individuale sau grupuri de
caractere, care sunt recunoscute de imprimantă ca instrucţiuni, şi nu ca şi caractere tipăribile.
De exemplu, când se doreşte scrierea subliniată sau îngroşată a unui rând, programul ce face
tipărirea va trimite către imprimantă, la începutul şi la sfârşitul rândului, caracterele de
control respective, ce vor determina imprimanta să scrie subliniat sau îngroşat. Deci, trebuie
să existe compatibilitate între software-ul ce face tipărirea şi imprimanta pe care se
realizează tipărirea.
În afara celor trei tipuri de imprimante prezentate anterior, în ultimul timp sunt
disponibile pe piaţă imprimante cu jet de cerneală, care sunt imprimante fără impact la fel ca
şi imprimantele laser, dar mult mai ieftine. Imprimarea se face prin aruncarea unui jet de
cerneală pe hârtie, fiind posibilă obţinerea unei rezoluţii de 300 de puncte/inch (dots/inch), o
rezoluţie comparabilă cu cea a imprimantelor laser şi mai mare decât rezoluţia imprimantelor
cu matrice de puncte, care au o rezoluţie tipică de 100 de puncte/ inch.

93
5.8. Monitoare şi adaptoare grafice
Unul din subansamblele principale ale calculatorului personal IBM este subansamblul
monitor - adaptor grafic. Propriu-zis, un adaptor grafic este un dispozitiv care poate afişa atât
grafice cât şi texte.
Monitorul (display-ul) – este perifericul de ieşire şi reprezintă dispozitivul cu ajutorul
căruia un PC poate prezenta informaţii utilizatorului.
Caracteristici ale monitoarelor:
- definiţia – imaginea pe monitor fiind constituită din puncte, dimensiunea (diametrul)
unui astfel de punct (pitch) reprezintând definiţia monitorului. Cu cât această valoare este
mai mică, cu atât imaginea este mai clară, mai puţin obositoare.
- dimensiunea diagonalei monitorului – valoarea tipică pentru dimensiunea diagonalei
este de 14 inch (1inch = 2.54cm), dar se folosesc şi monitoare de 15, 17, 20 sau 21 inch
(folosite în special la staţiile grafice).
Monitoarele, din punct de vedere constructiv, sunt de mai multe categorii:
- CRT (Cathodic Ray Tube – cu tub catodic) – sunt identice ca funcţionare cu tuburile
din televizoarele casnice.
- LCD (Liquid Crystal Display – ecran cu cristale lichide) – folosite pentru sistemele
portabile şi monitoare “plate”, au un consum redus de energie.
- PDP (Plasma Display Panel – ecran pe bază de plasmă) - se foloseşte pentru
monitoare de dimensiuni foarte mari şi sunt deosebit de costisitoare.
În conjunctură cu monitorul se află placa grafică (sau placa video), care are rolul de a
prelua informaţiile din calculator, a forma imaginile, şi a le trimite monitorului, ca acesta să
le poată afişa. Caracteristica principală a unei plăci video este memoria (numită memorie
video) pe care aceasta o conţine (1, 2 sau 4Mb, de exemplu). În funcţie de capacitatea de
memorie a plăcii video şi de limitările monitorului, imaginea afisată are următoarele
caracteristici:
- rezoluţia – reprezintă numărul maxim de puncte care pot fi afişate pe o linie a
monitorului şi, separat, pe o coloană a monitorului (640x480, 720x480, 800x600, 1024x768).
Cu cât rezoluţia este mai mare, cu atât sunt mai multe puncte afişate pe ecran, iar imaginea
este mai mică, fiind astfel nevoie de monitoare de dimensiuni mai mari.
- numărul de culori – monocrome, 4 culori, 16 culori, 256 culori, 65536 culori, etc.

Partea centrală a adaptorului grafic este cipul controler grafic, care controlează toate
operaţiile monitorului, afişând cursorul, controlând numărul de linii şi coloane, afişând
graficele şi textele etc. Adaptorul grafic are două moduri de lucru: modul grafic şi modul
text. În modul text, memoria RAM video conţine codurile caracterelor ce vor fi afişate pe

94
ecran. Generatorul de caractere are sarcina de a transforma aceste coduri într-o matrice de
puncte (sau pixeli) echivalentă, astfel încât caracterele să poată fi afişate pe ecran de
controlerul grafic. În modul grafic, conţinutul memoriei RAM video va fi trimis direct pe
ecran, generatorul de caractere nemaifiind activat.
CPU pregăteşte conţinutul ecranului, scriind în memoria RAM video. De asemenea
procesorul poate citi memoria RAM video. Pentru aceasta, adaptorul grafic este prevăzut cu
o interfaţă pentru magistrală, care detectează dacă procesorul lucrează sau nu cu adaptorul
grafic. În plus, procesorul este cel care programează cipul controler grafic, de exemplu să
utilizeze un ecran de 25 de linii şi 80 de coloane, în loc de unul cu 43 de linii şi 80 de
coloane.

Figura 5.9. Schema bloc a adaptorului grafic

Deoarece programarea controlerului grafic depinde de realizarea efectivă a adaptorului


grafic, adaptoarele grafice de mare rezoluţie EGA şi VGA conţin propria lor memorie BIOS,
reprezentată de o memorie ROM ce conţine diferite rutine de lucru cu ecranul, cum ar fi:
rutine de comutare între diferitele moduri de lucru ale adaptorului, rutine ce permit folosirea
paginilor în memoria RAM video etc. Pentru aceasta, CPU de pe placa de bază nu face decât
să apeleze rutina corespunzătoare din memoria ROM - BIOS din adaptor, via magistrală.
La PC-urile actuale, adaptorul grafic prezentat mai sus este integrat pe un singur cip.
Pentru conectarea monitorului, adaptoarele grafice ce echipează calculatoarele
personale IBM furnizează un semnal analogic, disponibil la un conector adecvat, ceea ce
permite afişarea unui număr mai mare de culori pe ecran. La monitoarele RGB (Red-Green-
Blue), cuplate printr-un conector RGB, se utilizau semnale digitale separate pentru fiecare

95
culoare fundamentală, plus un semnal separat pentru intensitate (high sau low), astfel încât se
puteau afişa maximum 16 (24) culori simultane pe ecran, prin combinarea semnalelor de pe
cele 4 fire.
Calculatoarele IBM PS/2 vin echipate cu adaptoarele MCGA - MultiColor Graphics
Adapter - în cazul modelelor 25 şi 30, şi VGA -Video Graphics Adapter - în cazul celorlalte
modele (inclusiv modelul 30 /286).
Adaptorul VGA permite o rezoluţie de 640 x 480 de pixeli şi poate afişa simultan 256
de culori, dintr-o paletă de 218 = 262144 de nuanţe de culori . Este echipat cu o memorie
RAM video de 256 Kb. Adaptoarele VGA mai recente vin echipate cu o memorie RAM
video de 1, 2 sau 4Mb pe cip, ce permite o rezoluţie de 1024 x 768 sau 1280 x 1024 de
pixeli, cu 256 de culori afişate simultan pe ecran. Pentru compatibilitate, VGA poate realiza
toate modurile adaptoarelor anterioare: CGA - Colour Graphics Adapter şi EGA - Enhanced
Graphics Adapter, cu care erau echipate calculatoarele IBM PC/XT şi AT. Comparativ,
adaptorul EGA permite o rezoluţie de 640 x 350 de pixeli şi 16 culori simultane dintr-o
paletă de 64 de culori, iar CGA permite o rezoluţie de 320 x 200 de pixeli, cu 4 culori
simultane dintr-o paletă de 16 culori. Adaptorul MCGA are o rezoluţie de 320 x 200 de
pixeli la fel ca adaptorul CGA, dar poate afişa 256 de culori simultane pe ecran, dintr-o
paletă de 262144 de culori.
Pentru a elibera UCP-ul de efectuarea unor calcule laborioase, au fost realizate
adaptoarele grafice TIGA şi 8514/A, care încorporează un procesor grafic specializat, şi care,
pe lângă operaţiile obişnuite ale controlerului grafic de la adaptoarele precedente, realizează
şi unele operaţii aritmetice simple, comenzi grafice etc. Astfel, de exemplu, pentru a desena
o linie, CPU trebuie să specifice procesorului grafic din adaptor numai coordonatele
capetelor liniei, procesorul grafic fiind cel care realizează umplerea memoriei RAM video cu
un conţinut adecvat, astfel încât linia să apară trasată pe ecran. Organizarea şi managementul
memoriei RAM video cade tot în sarcina procesorului grafic. Datorită frecvenţei mai mari a
ceasului la care lucrează procesorul grafic, operaţiile grafice sunt realizate mult mai rapid,
astfel încât ne putem aştepta la o triplare a vitezei de realizare a graficelor de mare rezoluţie,
iar în cazul altor operaţii, cum ar fi umplerea unui dreptunghi, la o viteza de 10 ori mai mare
decât în cazul unui adaptor VGA.
Firma IBM livrează calculatoarele IBM PS/2 cu 5 tipuri de monitoare: 8503, 8507,
8512, 8513 şi 8514. Modelul 8503 este un monitor de 12 " alb/negru, are cel mai scăzut preţ
de cost, transformă culorile în 64 de nuanţe de gri, fiind utilizat cu succes în aplicaţii de
"word processing" sau "desktop publishing". Modelul 8514 este cel mai scump dintre toate,
este un monitor color de 16 " destinat aplicaţiilor grafice intensive, fiind singurul monitor din
cele de mai sus care poate afişa grafice de mare rezoluţie scoase de către adaptorul 8514/A.

96
Conţinutul ecranului este împărţit în mai multe rânduri, fiecare rând având o mulţime
de puncte, numite pixeli sau elemente de imagine. Există două tipuri de ecrane video: ecrane
text şi ecrane grafice.
În modul text, ecranul este împărţit în blocuri de pixeli, în fiecare bloc fiind posibilă
afişarea unui caracter. Cea mai populară împărţire a ecranului text divide ecranul în 80 de
blocuri pe orizontală şi 25 de blocuri pe verticală. Alte ecrane text suportate de calculatoarele
IBM sunt 25 x 40 şi 43 x 80. Pentru fiecare bloc de caracter, în memoria RAM video există
câte 2 octeţi asociaţi, primul indicând codul ASCII al caracterului ce va fi afişat în blocul
respectiv, iar al doilea conţinând atributul caracterului, care defineşte culoarea caracterului,
culoarea fondului pe care va fi afişat caracterul, dacă caracterul este sau nu afişat clipitor.
Memoria RAM video în modul text începe la adresa B800H:0000H pentru majoritatea
adaptoarelor grafice.
În modul grafic, ecranul nu este tratat ca o matrice de blocuri de pixeli, ci ca o matrice
de puncte, memoria RAM video conţinând pentru fiecare pixel de pe ecran informaţia de
culoare asociată. Depinzând de adaptorul grafic şi de modul grafic în care lucrează adaptorul,
fiecare adaptor grafic având mai multe moduri de lucru text sau grafice, memoria RAM
video va avea o anumită organizare. Astfel, pentru modurile grafice 4 şi 5 ale adaptorului
CGA, care permit o rezoluţie de 320 x 200 de pixeli cu 4 culori simultane, pentru fiecare
pixel se asociază 2 biţi, ce codifică cele 4 culori, astfel încât un octet din memoria RAM
poate codifica culorile a 4 pixeli astfel:

Figura 5.10. Conţinutul octetului nr. k din memoria RAM video, ce


codifică culorile pixelilor 4k, 4k+1, 4k+2, 4k+3

În modul grafic CGA nr. 6 de mare rezoluţie, 640 x 200 dar cu 2 culori simultane pe
ecran, fiecare pixel va fi codificat numai pe un bit, astfel încât octetul nr. k va conţine
codificarea culorilor pixelilor 4k - 4k+7.
În modurile grafice CGA, memoria RAM video începe de asemeni la adresa
B800H:0000H, fiind împărţită în două zone de 8Kb. Dimensiunea totală a meoriei RAM
video este de 16Kb. Prima zonă conţine codificarea culorilor pixelilor de pe liniile pare ale
ecranului, a două zonă va conţine codificarea pixelilor de pe liniile impare.

97
Figura 5.11. Structura memoriei RAM video pentru modurile
grafice CGA
În modurile grafice CGA nu există decât o singură pagină video, spre deosebire de
modurile text, unde pot exista mai multe pagini video, numai una din acestea fiind afişată la
un moment dat pe ecran. De exemplu, într-un mod text cu 25 de linii şi 80 de coloane, ceea
ce înseamnă 2000 de caractere afişate simultan pe ecran, cu 2 octeţi necesari pentru
codificarea fiecărui caracter, rezultă un necesar de 2 x 2000 = 4000 octeţi pentru o pagină.
Deci pot exista 4 pagini text în memoria RAM video de 16 Kb a adaptorului CGA.
Adaptorul EGA foloseşte pentru modurile specifice EGA o organizare diferită a
memoriei. Adaptorul VGA foloseşte exact aceeaşi organizare şi structură a memoriei ca şi
adaptoarele CGA şi EGA, în modurile text şi grafice compatibile cu modurile CGA şi EGA.
Pentru modurile grafice VGA şi EGA, memoria RAM video începe la adresa A000H:0000H.
Modurile grafice specifice EGA şi VGA folosesc o organizare a memoriei pe mai
multe nivele. Astfel, într-un mod grafic EGA sau VGA cu 16 culori simultane, cei 4 biţi de
culoare pentru fiecare pixel sunt distribuiţi pe 4 nivele paralele de memorie, pixelii fiind
astfel înşiruiţi în mod continuu în memoria RAM video, aceasta nemaifiind divizată în 2
bancuri de memorie ca la adaptorul CGA.

98
Figura 5.12. Distribuţia biţilor de culoare pe mai multe nivele,
la adaptoarele EGA şi VGA

Nivelul 0 de memorie va conţine primul bit de culoare pentru toţi pixelii de pe ecran,
nivelul 1 va conţine al doilea bit de culoare pentru toţi pixelii de pe ecran ş.a.m.d.

5.9. Unităţi de memorie externă

Pentru ca informaţia să fie exploatabilă, ea trebuie sa fie inclusă pe un suport:


dispozitiv fizic capabil să înregistreze, să păstreze, să transmită şi să restituie informaţia.
Dispozitivele cu ajutorul cărora se realizează conservarea datelor, într-un sistem de
prelucrare a informaţiei, sunt denumite memorii externe (auxiliare). Unul dintre principalele
dezavantaje ale acestor dispozitive de stocare este acela că sunt mai lente faţă de memoriile
interne. Principalul avantaj este că, de cele mai multe ori, sunt mai ieftine decât memoria
principală, iar suportul pe care se înregistrează datele poate fi extras din calculator şi poate
fi depozitat într-un loc sigur.
Dispozitivele de stocare cele mai răspândite la ora actuală sunt dispozitivele
magnetice. Acestea au avantajul unui cost redus, raportat la capacitatea de stocare, în
comparaţie cu memoriile electrice (de tip RAM, ROM), însă sunt mult mai lente din punct de
vedere al timpului de acces la informaţiile stocate. Timpul de acces reprezintă intervalul de
timp mediu scurs între momentul în care procesorul solicită o anumită informaţie
dispozitivului de stocare, şi momentul în care aceasta a fost gasită şi în care poate începe
citirea acesteia (de exemplu, o memorie SDRAM actuală are timpi de acces în jurul a 10 ns,
pe când un disc fix poate ajunge la 7-10 ms).
Suporturile magnetice sunt organizate sub formă de discuri, principiul de funcţionare
fiind asemănător cu cel de la casetele audio sau video. Trebuie să se facă distincţie între

99
unitatea de disc, care este dispozitivul ce gestionează discul, şi disc, care este suportul de
memorare propriu-zis.
Caracteristicile unui disc magnetic sunt:
- capacitatea de memorare, măsurată în Kb sau Mb;
- viteza de acces la date - timpul de răspuns, scurs între momentul unei cereri de acces
şi momentul obţinerii datelor;
- rata de transfer a datelor - cantitatea medie de date transferată în unitatea de timp, în
condiţiile accesării unui volum mare de date;
- timpul de căutare (seek time) – este timpul necesar deplasării capetelor de
citire/scriere de la o pistă la alta.
Se folosesc următoarele tipuri de discuri:
- discurile flexibile, numite şi dischete sau floppy disk-uri. Acestea sunt constituite
dintr-un singur disc cu câte un strat magnetic pe fiecare faţă a discului, discul magnetic fiind
închis într-un suport de plastic prevăzut cu o fantă pentru accesul capului de citire/scriere la
mediu. Sunt medii magnetice mobile, standardele cele mai raspândite fiind de 5,25”(1,2Mb),
3,5”(1,44Mb) şi mai rar 2” (3Mb); vitezele de rotaţie ale acestor discuri sunt de 300-360
rotaţii pe minut şi pot asigura o rată de transfer a datelor de până la 100Kb/s. Există şi
variante care folosesc un disc dur: discul Zip de 4” (100Mb) sau discul Jaz de 4,5” (1Gb),
acestea având rate de transfer superioare, dependente de tipul de interfaţă folosită la
conectare.
- discurile dure (sau fixe), numite în engleza hard-disk-uri. Acestea sunt constituite din
mai multe discuri rigide suprapuse, iar capetele de citire/scriere sunt montate pe un sistem de
braţe, care se deplasează în interstiţiile dintre discuri, asigurând citirea/scrierea de pe mai
multe feţe ale discurilor simultan. Tot ansamblul este închis într-o cutie metalică sigilată
ermetic, lucru necesar datorită faptului că discurile nu sunt atinse de capul de citire/scriere
(ca în cazul dischetelor), acesta plutind pe o pernă de aer la distanţe de ordinul micronilor.
Vitezele de rotaţie ale acestor discuri sunt cuprinse între 3000 şi 10000 rotaţii pe minut, şi
asigură rate de transfer ale datelor între 1-2 Mb/s pâna la 10-15Mb/s. Capacităţile de stocare
ale discurilor hard actuale merg până la 10-20Gb. Discurile hard mai sunt caracterizate şi de
tipul de interfaţă prin care se conectează la calculator; cele mai des întâlnite sunt discurile
IDE sau EIDE (Enhanced Integrated Drive Electronics) şi discurile SCSI.
Pentru salvarea datelor, ca măsură preventivă împotriva deteriorării informaţiei de pe
hard disk, calculatoarele IBM pot fi dotate cu unităţi de bandă magnetică (streamers),
discurile flexibile nefiind adecvate acestui scop datorită capacităţii mici de memorare, uzual
de 500-1000 de ori mai mică decât capacitatea unui hard disk. Benzile magnetice se
manipulează uşor, fiind indroduse într-o casetă, au o capacitate de memorare mare (până la
250Mb) şi un preţ de cost scăzut. Unităţile de bandă magnetică simple pot fi conectate la un
controler de floppy disk. Totuşi, unităţile de bandă magnetică performante, cu o rată de

100
transfer a datelor ridicată, necesită propriul lor controler, ce poate fi introdus într-unul din
conectorii de extensie de pe placa de bază, precum şi un software adecvat. Cu o astfel de
unitate de bandă, un hard disk de capacitate medie poate fi salvat în mai puţin de 15 minute.
Datorită faptului că sunt mai greu de manipulat, precum şi datorită apariţiei discurilor Zip şi
Jaz, benzile magnetice sunt foarte rar folosite în prezent.
Mediile de stocare optice cele mai răspândite sunt compact discurile. Acestea sunt de
mai multe tipuri:
- CD-ROM, cu o capacitate de memorare tipică de 650-700Mb. Acestea sunt realizate
dintr-un material reflectorizant închis într-un suport de plastic transparent. Înscrierea şi
citirea informaţiilor se face cu un fascicul laser, ceea ce determină o uzură scăzută a
suportului de memorare. Există şi variante care pot fi scrise de mai multe ori sau şterse (CD -
RW rewritable).
- DVD (Digital Versatile Disc) – tehnologie modernă, capacităţile de stocare fiind de
4,7Gb pentru discuri cu un singur strat, şi de 8,5 Gb pentru discuri cu două straturi. Acestea
pot fi şi cu faţă dublă, atingând capacităţi de stocare de până la 9,4, respectiv 17 Gb.

5.9.1. Discuri magnetice

Cele mai populare unităţi de memorie externă sunt unităţile magnetice, iar dintre
acestea floppy disk-urile şi hard disk-urile echipează toate calculatoarele personale IBM.
Aşa cum s-a văzut în secţiunea precedentă, calculatoarele personale IBM folosesc 2
tipuri de discuri flexibile: de 5,25" şi de 3,5" în diametru. Cele de 3,5" sunt închise într-o
carcasă rigidă de plastic, şi se introduc cu totul în unitatea de disc flexibil. Discurile hard, sau
discurile de mare capacitate, nu sunt unităţi mobile de memorie, discul hard rămânând fixat
în unitatea de hard disk. De regulă, calculatoarele personale IBM sunt dotate cu un
combicontroler, care permite conectarea a două sau mai multe discuri flexibile şi a două sau
mai multe hard disk-uri. Acest controler face legătura între CPU şi unităţile de floppy sau
hard disk, fiind de fapt un mic şi independent calculator, ce conţine un microprocesor care
rulează programe din memoria ROM de pe controler, şi care controlează toate operaţiile
componentelor electronice din controler.
Discurile flexibile sunt de fapt nişte discuri din material plastic, acoperite cu un strat de
material feromagnetic, de regulă pe ambele părţi. Primele variante de IBM PC foloseau şi
discuri flexibile simplă faţă, acoperite cu material feromagnetic numai pe una din feţe.
Timpul de acces maxim la date pentru discuri flexibile este de 200ms, deoarece în cel mai
dezavantajos caz discul trebuie să execute o rotaţie completă, care se realizează în 170-
200ms, şi capul de citire/scriere să execute o mişcare liniară de amplitudine maximă, ce se
realizează în 200ms. Cele două operaţii se pot executa în paralel.

101
Figura 5.13. Schema simplificată a unei unităţi de floppy disk

La calculatoarele IBM, întâlnim discuri flexibile de 5,25" cu o capacitate de 360Kb şi


1.2Mb, şi discuri flexibile de 3,5" cu o capacitate de 720Kb şi 1,44Mb.
Informaţia este scrisă pe disc de-a lungul unor cercuri concentrice numite piste, care
sunt împărţite la rândul lor în sectoare. Fiecare bit de date este scris prin magnetizarea unei
zone de o anumită suprafaţă, de-a lungul unei piste, mărimea acestei zone influenţând
capacitatea sau densitatea discului. Biţii unui octet de date sunt scrişi unul după altul, de-a
lungul pistei. Între piste rămân zone înguste nemagnetizate, astfel încât pistele pot fi distinse
în mod neambiguu. De regulă, discurile flexibile au între 40 şi 80 de piste, iar discurile hard
de mare capacitate au până la 2000 - 6000 de piste.
Atât la discurile flexibile, cât şi la discurile hard, care de obicei conţin mai multe
discuri ce se rotesc solidar, sunt instalate mai multe capuri de citire/scriere; câte unul pentru
fiecare faţă. Pistele corespondente de pe toate feţele, situate la aceeaşi rază, formează un
cilindru. Pistele din cadrul unui cilindru sunt distinse prin numărul capului de citire/scriere
ce accesează faţa pe care se află pista respectivă. Primul cap de citire/scriere are numărul 0.
Sectoarele de pe pistă sunt numerotate începând de la 1.

Parametrii discurilor flexibile:

Disc Piste Sectoare Lăţime pistă [mm]

5,25" 40 9 0,330
360K

5,25" 80 15 0,160
1,2M

102
3,5" 80 9 0,115
720K

3,5" 80 18 0,115
1,44M

Începutul fiecărei piste este marcat la discurile de 5,25" printr-o gaură, la discurile de
3,5" printr-o crestătură în placa de metal centrală a discului, iar la discurile hard printr-un
marcaj magnetic pe fiecare pistă, înaintea primului sector.
Fiecare sector conţine un câmp de adresă în care sunt înscrise numărul capului de
citire/scriere, numărul pistei şi numărul sectorului respectiv, în cadrul pistei, urmat de un
câmp de date în care sunt înscrise datele propriu-zise. Discurile flexibile au între 8 şi 18
sectoare pe pistă, discurile hard au până la 40 de sectoare pe pistă, sau chiar mai mult. Sub
MS-DOS şi alte sisteme de operare folosite pe calculatoarele personale IBM, câmpul de date
al fiecărui sector conţine 512 octeţi.
Împărţirea discului în piste, sectoare, cilindri, prin scrierea câmpurilor de adresă pentru
fiecare sector şi a altor informaţii folosite de controler, se numeşte formatare fizică. Deci
capacitatea unui disc neformatat este mai mare decât capacitatea discului formatat. Astfel, o
dischetă de 5,25" are 1,6Mb neformatată, dar rămân valabili numai 1,2Mb după formatare,
cei 400Kb fiind utilizaţi tocmai pentru crearea structurii fizice a discului.
În mod obişnuit, numai BIOS-ul sistemului de operare lucrează cu sectoare fizice. MS-
DOS, ca şi alte sisteme de operare, foloseşte aşa numitele sectoare logice, atribuind fiecărui
sector fizic câte un număr în secvenţă. Astfel, în cazul unui floppy disk de 3,5" de 1,44Mb,
sectorul 1 de pe pista 0, faţa 0, va fi sectorul logic 0; sectorul 1 de pe pista 0, faţa 1, va fi
sectorul logic 2 ş.a.m.d., sectorul 18 de pe pista 79, fata 1, va fi sectorul logic 2879.
Pentru o mai bună înţelegere a structurii fizice a discului, se dă mai jos formatul MFM
al unei piste. Alt format folosit pentru organizarea fizică a discurilor este formatul FM.

start of track
GAP 4A : 80 octeţi 4eh
SYNC : 12 octeţi 00h
IAM : 4 octeţi c2h, c2h, c2h, fch
GAP 1 : 50 octeţi 4eh

sector
SYNC : 12 octeţi 00h
IDAM : 4 octeţi a1h,a1h, a1h, feh
ID : 4 octeţi tr. hd. sc. sz.
CRC : 2 octeţi cu valoare CRC
GAP 2 : 22 octeţi 4eh
SYNC : 12 octeţi 00h
DAM : 4 octeţi a1h, a1h, a1h, fbh
DATA : 512 octeţi de date

103
CRC : 2 octeţi cu valoare CRC
GAP 3 : 80 octeţi 4eh

end of track (EOT)


GAP 4B : xx octeţi 4eh

Figura 5.14. Structura unei piste MFM

O pistă începe întotdeauna cu o zonă goală de 80 de octeţi scrişi cu valoarea 4eh, ce


informează controlerul de începutul unei piste. Deşi se folosesc şi marcaje mecanice pentru
începutul unei piste (o gaură de index la discurile de 5,25" sau o crestatură la discurile de
3,5"), deoarece distanţa dintre 2 biţi succesivi este de ordinul a câtorva micrometri (la un
disc de 5,25" cu 15 sectoare pe pistă, această distanţă este de 2 micrometri, şi nu se poate
executa o gaură cu o asemenea precizie), aceste marcaje mecanice nu pot indica precis
începutul unei piste, fiind necesară utilizarea zonei GAP 4A. Pentru a-şi sincroniza
elementele de decodificare a informaţiei cu viteza de rotaţie a discului (care depinde de
frecvenţa tensiunii de alimentare), controlerul utilizează nişte câmpuri de sincronizare -
SYNC, de 12 octeţi, scrişi cu valoarea 00h. Câmpul IAM - Index Address Mark - informează
controlerul că urmează zona cu sectoare de pe pistă.
Fiecare sector conţine 10 secţiuni, printre care câmpuri goale şi de sincronizare.
Câmpul IDAM - IDentification Address Mark - indică controlerului începutul sectorului
curent. Câmpul ID - IDentification - conţine un identificator de sector în formatul pistă-faţă-
sector-dimensiune sector. La formatare, controlerul calculează o valoare CRC - Cyclic
Redundancy Check - pentru cei 4 octeţi de identificare ai sectorului împreună cu câmpul
IDAM, şi scrie această valoare CRC de 2 octeţi în câmpul corespunzător din formatul dat
mai sus. Câmpul DAM - Data Address Mark - indică controlerului începutul zonei DATA,
de 512 octeţi, în care vor fi scrise propriu-zis datele. La scrierea datelor într-un sector,
controlerul calculează o valoare CRC pentru câmpul DATA, pe care o stochează în cei 2
octeţi CRC situaţi după câmpul DATA. La citirea unui sector, controlerul calculează de
asemenea valoarea CRC pentru zona de date a sectorului citit, şi compară această valoare cu
cea existentă în câmpul CRC de pe disc, situat după câmpul DATA. Folosirea câmpurilor
CRC este o metodă mult mai puternică de verificare a corectitudinii informaţiei decât simpla
verificare a parităţii.
După ultimul sector de pe pistă urmează un număr oarecare de octeţi liberi, până la
marcajul de început de pistă. Această zonă se numeşte EOT, GAP 4B servind ca un buffer
elastic între începutul şi sfârşitul pistei.
Principial nu sunt diferenţe între discurile flexibile şi discurile hard. Dimensiunile cele
mai des întâlnite pentru hard disk-uri sunt 5,25" şi 3,25". Timpul de acces mediu la hard
disk-urile actuale este între 7-10 ms (mult mai rapide decât discurile flexibile), şi reprezintă
timpul necesar mutării capului pe o anumită pistă dintr-o poziţie oarecare, la care se adaugă

104
timpul necesar ca sectorul ce se doreşte a fi accesat să apară sub capul de citire/scriere, prin
rotaţia discului.
Pentru a reduce timpul de acces la informaţia de pe hard disk, se folosesc memorii
cache integrate pe drive sau în controler, care pot reţine mai multe sectoare individuale, sau
chiar o pistă întreagă, înainte ca informaţia să fie transferată în memoria principală prin
citire, sau înainte ca datele să fie scrise pe disc, după ce au fost livrate din memoria
principală. Timpul de acces la această memorie cache este sub 0,4ms. Utilizarea memoriei
cache se bazează pe faptul că aproximativ 40% din toate accesele la disc sunt secvenţiale,
bineînţeles depinzând de aplicaţie, deci în locul unui acces direct la disc se efectuează un
acces în memoria cache. Este sarcina controlerului să transfere sectoarele sau pistele între
memoria cache şi disc.
La calculatoarele cu microprocesor 80386, 80486 sau Pentium ,şi cu memorie
principală mai mare de 1Mb, se poate emula o memorie cache de disc în memoria principală,
cu ajutorul unor programe ca Smartdrive, Diskcache etc. Dezavantajul acestor emulatoare de
memorie cache de disc în memoria principală este pierderea informaţiei din memoria cache
netransferată pe disc, în cazul unei blocări ("agăţări") a sistemului, ceea ce nu se întâmplă în
cazul memoriilor cache hardware de pe controler.

5.9.2. Discuri optice

O altă categorie de dispozitive de memorie externă este reprezentată de dispozitivele


optice. Dintre acestea, CD-ROM-urile, care folosesc acelaşi principiu de înregistrare a
informaţiei ca şi discurile compacte audio (CD-players), sunt folosite în cazul în care se
doreşte memorarea unei mari cantităţi de date, dar care nu pot fi modificate ulterior, cum ar
fi baze de date, biblioteci de programe etc. Cu un drive adecvat, CD-ROM-urile pot fi
integrate fără probleme în calculatoarele personale IBM actuale, discurile având o capacitate
uzuală de 600-700Mb.
Principiul de funcţionare, folosit de fapt şi la discurile compacte audio, este următorul:
În interiorul drive-ului de CD-ROM, un mic semiconductor laser emite o rază laser foarte
îngustă, cu lungimea de undă de 850nm. Informaţia este scrisă pe disc sub forma unor mici
denivelări. Raza laser este scanată foarte precis pe toată suprafaţa discului, cu ajutorul unei
oglinzi rotative. Un senzor din interiorul drive-ului detectează intensitatea razei reflectate de
suprafaţa discului, intensitate care variază în funcţie de adâncimea denivelărilor, şi care este
transformată ulterior într-un şir de biţi.
Spre deosebire de discurile magnetice, informaţia nu este scrisă de-a lungul unor piste
concentrice, ci de-a lungul unei spirale care începe din centrul discului.

105
Principalul dezavantaj al CD-ROM-urilor este faptul că informaţia nu poate fi
modificată. Următorul pas în dezvoltarea tehnologiilor optice de memorare a informaţiei a
fost apariţia discurilor WORM - Write Once Read Many, ce permit scrierea informaţiei pe
disc de către utilizator, dar numai o singură dată, după care informaţia poate fi citită de un
număr nelimitat de ori. Dacă vrem să modificăm o înregistrare de date de pe disc,
înregistrarea modificată va trebui scrisă într-o zonă liberă a discului, vechea înregistrare
rămânând în continuare pe disc. Discurile WORM au aceeaşi capacitate ca şi CD-ROM-
urile, dar capacitatea mare de memorare se plăteşte printr-o rată de transfer a datelor mică, de
150 Kbytes/s, şi un timp de acces mediu de 50ms. Pentru comparaţie, un floppy disk de
1,2Mb are o rată de transfer a datelor de 85Kbytes/s.
Discurile optice sunt unităţi mobile de memorie, un disc CD-ROM sau CD-WR cu
capacitatea dată mai sus fiind ceva mai mare decât un floppy disk. Discurile optice nu au
înlocuit discurile magnetice, atât datorită faptului că discurile optice sunt lente şi practic
chiar şi discurile CD-RW nu sunt discuri read-write propriu-zise, cât şi datorită creşterii
continue a capacităţii de stocare a hard disk-urilor.
Altă categorie de discuri optice sunt discurile DVD (Digital Versatile Disc),
capacităţile de stocare ale acestor discuri fiind date la începutul secţiunii 5.9.

5.10. Alte dispozitive de intrare/ieşire

Pe lângă dispozitivele de intrare/ieşire descrise în subcapitolele anterioare, la PC-urile


actuale mai pot fi conectate, prin intermediul unor plăci "plug-in board" introduse în
conectorii de extensie de pe placa de bază, următoarele dispozitive externe: scanere, unităţi
optice de recunoaştere a caracterelor, plăci de achiziţie şi prelucrare a imaginilor, plăci de
comunicaţie prin FAX, sintetizatoare muzicale, plăci de recunoaştere şi sinteză a vorbirii,
adaptoare pentru conectarea la o reţea locală de calculatoare, convertoare analog-digitale şi
digital-analogice etc.
Scanerele sunt dispozitive optice de intrare, care permit introducerea imaginilor în
calculator, după care aceste imagini pot fi memorate, prelucrate sau afişate pe ecran, fiind
utile în special în aplicaţii de "desktop publishing". Unităţile optice de recunoaştere a
caracterelor sunt, de fapt, scanere specializate pentru citirea şi conversia în coduri ASCII a
caracterelor de pe documentul scanat.
Plăcile de achiziţie şi prelucrare a imaginilor permit introducerea, memorarea şi
prelucrarea imaginilor preluate de la o cameră video, video recorder sau alte dispozitive
video. Software-ul furnizat cu aceste plăci permite atât prelucrarea detaliată a acestor
imagini, cât şi transmiterea acestor imagini prin modem către un alt calculator.

106
Plăcile de comunicaţie prin FAX permit transmiterea/recepţionarea documentelor text
sau grafice către/de la un aparat FAX, sau un calculator echipat cu o placă de comunicaţie
prin FAX. Mai precis, aceste plăci împreună cu software-ul adiacent pot prelua documente
text sau imagini grafice, pe care le pot transforma într-o formă recunoscută de către un
receptor FAX, după care pot memora pe hard disk sau transmite aceste documente.
Reţelele locale de calculatoare permit partajarea resurselor între utilizatorii reţelei,
servicii de poştă electronică şi, în general, o comunicaţie de mare viteză între calculatoare.
Cele mai uzuale adaptoare pentru o reţea locală de calculatoare sunt adaptoarele pentru
reţelele IBM Token-Ring şi Ethernet, pentru acesta din urmă fiind dezvoltat sistemul de
operare Novell Netware.
În special în aplicaţiile de conducere cu calculatorul a proceselor industriale, ne aflăm
în situaţia când trebuie să "manipulăm" sau să lucrăm cu mărimi care nu sunt numerice sau
digitale. De fapt, lumea exterioară este în esenţă continuă sau de natură analogică, şi nu
discretă sau digitală. Mărimile analogice, care de cele mai multe ori sunt nişte tensiuni
electrice variind între anumite limite, trebuie convertite în mărimi numerice înainte de a fi
introduse în calculator pentru a fi prelucrate de acesta. Acest lucru este realizat de un
dispozitiv (care poate fi un singur cip) numit convertor analog-digital, care, în principiu,
măsoară tensiunea analogică de la intrare şi transformă această mărime într-un număr binar
echivalent, pe un anumit număr de biţi. Cu cât este mai mare acest număr de biţi, cu atât vom
avea mai multe nivele discrete de tensiune care să corespundă marimii analogice de la
intrare. Numărul de biţi pe care se face conversia analog-digitală este, de fapt, un indicator
de performanţă al convertoarelor analog-digitale. Bineînţeles că este necesar şi un dispozitiv
care să realizeze conversia inversă, din mărimi numerice în mărimi analogice, acest
dispozitiv numindu-se convertor digital-analogic.

107
6. ARHITECTURI PARALELE DE CALCULATOARE

6.1. Evoluţia sistemelor de calcul. Calculatorul


de tip von Neumann.

Elementul principal, care a marcat decisiv generaţiile de calculatoare, a fost tehnologia


de realizare a dispozitivelor şi circuitelor care au stat la baza acestor calculatoare. Alte
elemente luate în calcul, atunci când se face o împărţire a calculatoarelor în generaţii, pot fi
tipurile de arhitecturi folosite în construcţia sistemelor de calcul, limbajele de programare
folosite, sistemele de operare utilizate etc.
Prima generaţie de calculatoare (1938-1953), care începe odată cu apariţia primului
calculator analogic, în 1938, şi al cărei principal reprezentant este primul calculator digital -
ENIAC, construit în 1946, este marcată de folosirea releelor electromagnetice şi a tuburilor
electronice. În această generaţie, programarea calculatorului se făcea numai în limbaj cod-
masină.
A doua generaţie de calculatoare (1952-1963) este determinată de folosirea
tranzistorului (descoperit în 1948) şi diodei, primul calculator digital tranzistorizat fiind
TRADIC, construit la Bell Laboratories în 1954. În această generaţie, programarea
calculatoarelor se face în limbaj de asamblare, şi sunt dezvoltate limbajele de nivel înalt:
FORTRAN (Formula Translation) în 1956, COBOL (Common Business Oriented Language)
în 1959 şi ALGOL (Algorithmic Language) în 1960.
În cea de-a treia generaţie de calculatoare (1962-1975), sunt folosite ca dispozitive de
bază circuitele integrate pe scară mică - SSI (Small Scale Integrated) şi scară medie - MSI
(Medium Scale Integrated), cum ar fi porţile logice, multiplexoarele, decodificatoarele,
registrele etc. Totodată sunt îmbunătăţite compilatoarele pentru limbajele de nivel înalt, apar
sistemele de operare în timp real, sunt folosite conceptele de multiprogramare (execuţia mai
multor programe în acelaşi timp, prin suprapunerea operaţiilor unităţii centrale cu operaţii de
intrare/ieşire) şi memorie virtuală. Reprezentanţii acestei generaţii sunt calculatoarele IBM
360/91, Illiac IV, Cyber-175 etc.
A patra generaţie de calculatoare începe în 1972, fiind marcată de folosirea circuitelor
integrate pe scară largă - LSI (Large Scale Integrated) şi foarte largă - VLSI (Very Large
Scale Integrated), principalele circuite de acest gen fiind microprocesorul şi circuitele
integrate de memorie. Este continuată evoluţia software-ului utilizat pe calculatoarele din
această generaţie, sunt dezvoltate calculatoarele vectoriale Cray-1 (1976) şi Cyber-205

108
(1982), şi calculatoarele "mainframe" de mare viteză cum ar fi UNIVAC 1100/80 (1976),
IBM 3081 (1980), Cray X-MP (1983) etc. Tot în această perioadă apare fenomenul
calculatoarelor personale, care încep să folosească conceptele de "pipelining" şi paralelism
întâlnite la supercalculatoare, devenind din ce în ce mai puternice.
Multă vâlvă în lumea utilizatorilor de calculatoare a fost creată în 1981, când Ministerul
Industriei şi Comerţului Exterior din Japonia, împreună cu cele mai mari firme electronice din
aceeaşi ţară: Fujitsu, Hitachi, NEC, Toshiba etc., au lansat un proiect de cercetare de mare
anvergură, cu un buget de 400 milioane dolari, care trebuia să producă saltul decisiv la
începutul anilor '90, de la calculatoarele din generaţia a patra la calculatoarele din generaţia a
cincea. Aceste calculatoare din generaţia a cincea trebuiau să aibă ca aplicaţie principală
sistemele expert, care să poată fi consultate de către cineva care necesită cunoştinţele unui
expert uman, trebuiau să aibă o interfaţă om-masină îmbunătăţită care să permită utilizatorului
să comunice cu calculatorul prin imagini şi limbaj natural, viteza de calcul trebuia să fie mult
mai mare, între 100MLIPS şi 1GMLIPS (LIPS - Logical INferences per Second - număr de
inferenţe logice pe secundă), în timp ce calculatoarele prezente aveau o viteză de 0,01MLIPS -
0,1MLIPS. Deşi în perioada de timp scursă de la lansarea acestui proiect până în prezent
dezvoltarea tehnologică a continuat, în ce priveşte gradul de integrare şi viteza de lucru a
componentelor electronice, şi de asemenea software-ul utilizat a fost perfecţionat, totuşi se
poate spune că proiectul nu şi-a atins scopurile iniţiale mult prea ambiţioase.
În concluzie, mulţi autori evită un subiect atât de controversat ca această împărţire a
calculatoarelor în generaţii de calculatoare, şi anume, dacă în prezent suntem încă în generaţia
a patra, sau am trecut deja în generaţia a cincea de calculatoare. Ce se poate afirma cu
certitudine este că există o foarte mare diferenţă între interfaţa om-maşină actuală,
caracterizată de interfeţe grafice eficiente, sisteme multimedia, achiziţie şi prelucrare a
imaginilor şi textelor folosind scanere şi camere de luat vederi, recunoaştere parţială a vorbirii
etc., şi interfaţa om-maşină de la primele calculatoare ale generaţiei a patra, deşi încă nu se
poate dialoga cu calculatorul în limbaj natural, neutilizând tastatura.
Calculatoarele comerciale uzuale, utilizate până în prezent, sunt calculatoare în care
operaţiile ce se realizează sunt codificate binar, şi sunt stocate în memoria internă a
calculatorului sub forma unui program, de unde sunt executate într-o anumită secvenţă
predefinită. Calculatoarele care au la bază acest acest concept sunt numite calculatoare de tip
von Neumann, după numele celui care a pus bazele acestui concept în anii '40.
Un calculator de tip von Neumann conţine:
- o memorie pentru stocarea atât a instrucţiunilor cât şi a datelor supuse prelucrării;
- o unitate de control pentru aducerea instrucţiunii următoare din memorie şi realizarea
operaţiilor de control;
- o unitate aritmetico-logică pentru realizarea operaţiilor aritmetice şi logice;

109
- sistemul de I/E şi dispozitivele periferice, pentru transferarea datelor între calculator şi
utilizator.
Unitatea de control şi unitatea aritmetico-logică sunt, de regulă, combinate într-o
unitate centrală de prelucrare - UCP. Pentru reprezentarea numerelor, caracterelor sau
codificarea instrucţiunilor este folosit sistemul binar, care necesită numai două nivele de
tensiune pentru reprezentarea unui digit (cifră binară), în timp ce logica booleană este folosită
pentru realizarea operaţiilor logice. Memoria principală conţine atăt instrucţiunile cât şi datele
prelucrate de aceste instrucţiuni, fiind posibilă accesarea locaţiilor de memorie în orice ordine
(conceptul de memorie RAM - Random Access Memory). Un calculator von Neumann conţine
pe lângă memoria principală, care în prezent este o memorie semiconductoare, o memorie
auxiliară de mare capacitate, mai lentă dar mai ieftină, uzual o memorie magnetică. Unitatea
centrală are un număr oarecare de registre interne folosite în operaţiile curente de prelucrare,
adresare a memoriei sau operaţii de control. Registrul indicator de instrucţiuni - IP, denumit
uneori şi registru numărător de instrucţiuni - PC (Program Counter), conţine adresa
următoarei instrucţiuni de executat şi este actualizat automat după citirea fiecărei instrucţiuni,
astfel încât să indice următoarea instrucţiune din program, care de regulă se află în următoarea
locaţie de memorie.
În scrierea unui program care realizează o anumită prelucrare, programatorul selectează
instrucţiunile dintr-un set de instrucţiuni pe care le poate executa unitatea centrală de
prelucrare pe care se execută programul. O instrucţiune este specificată prin tipul operaţiei
executate de instrucţiune (de exemplu adunare, scădere, salt etc.), precum şi prin operanzii
asupra cărora se execută operaţia respectivă. Dacă operanzii sunt conţinuti în memorie şi nu
în registrele interne, în instrucţiune vor trebui specificate adresele operanzilor, precum şi
adresa rezultatului. Se preferă ca rezultatul să fie plasat în locul unuia din operanzi, astfel
încât în instrucţiune se specifică cel mult adresele a doi operanzi. Majoritatea calculatoarelor
nu au instrucţiuni cu mai mult de doi operanzi. Pentru adresarea operanzilor, unitatea centrală
de prelucrare implementează mai multe mecanisme de adresare (vezi sectiunea 4.1.6).
Instrucţiunile sunt realizate în două etape: citirea instrucţiunii din memorie (fetch cycle) şi
execuţia instrucţiunii (execute cycle), această ultimă etapă incluzând citirea operanzilor din
memorie şi transferul rezultatului. Pentru execuţia instrucţiunilor, UCP foloseşte conceptul de
microprogramare, divizând fiecare instrucţiune într-un număr de paşi succesivi executaţi de
unitatea de control, care comandă toate operaţiile unităţii aritmetico-logice.
Calculatoarele personale IBM sunt calculatoare de tip von Neumann perfecţionate,
microprocesoarele INTEL de la baza acestor calculatoare implementând conceptul de "pipe-
line", iar în cazul microprocesoarelor I80486 şi PENTIUM concepte RISC.
Nu toate calculatoarele sunt calculatoare de tip von Neumann. Calculatoarele organizate
pe baza fluxului de date stochează instrucţiunile într-o memorie internă, dar acestea nu sunt
executate într-o secvenţă predefinită de un program (vezi sectiune 6.8), în timp ce

110
calculatoarele neuronale, realizate pe baza reţelelor neuronale (neural networks) şi care
încearcă să imite creierul uman, au renunţat complet la conceptul de instrucţiune. Alte
calculatoare pot să renunţe la sistemul binar şi logica booleană, implementând logici şi
reprezentări polivalente. Sunt produse în prezent microcontrolere şi procesoare fuzzy bazate
pe o logică fuzzy, ce este o logică continuă cu valori de adevăr cuprinse între 0 şi 1, logica
bivalentă fiind un caz particular al acesteia. Totuşi, se poate spune că aceste tipuri de
calculatoare neconvenţionale (ele nu sunt de fapt calculatoare von Neumann) rămân încă în
sfera cercetării, nefiind deocamdată calculatoare comerciale de largă utilizare. De regulă,
aceste tipuri de calculatoare neconvenţionale, ca şi calculatoarele paralele descrise în
continuare, sunt realizate sub forma unor unităţi ataşate unui calculator gazdă von Neumann,
care realizează operaţiile de I/E precum şi operaţiile generale de management şi control.

6.2. Paralelism în sistemele uniprocesor

Toate calculatoarele uniprocesor au în principiu aceeaşi structură, fiind caracterizate


prin existenţa unei singure unităţi centrale de prelucrare în sistem. Majoritatea calculatoarelor
comerciale sunt calculatoare uniprocesor. De-a lungul timpului au fost dezvoltate o serie de
mecanisme de procesare paralelă la aceste calculatoare, deşi nu sunt calculatoare paralele
propriu-zise. Aceste mecanisme sunt următoarele:
- Folosirea mai multor unităţi funcţionale - Un exemplu este calculatorul IBM 360/91
realizat în 1968, care are două unităţi de execuţie a calculelor, una pentru numere în virgulă
fixă alta pentru numere în virgulă mobilă, aceasta din urmă fiind compusă la rândul ei din
două unităţi care pot lucra în paralel: o unitate pentru adunarea şi scăderea numerelor în
virgulă mobilă, cealaltă pentru înmulţirea şi împărţirea numerelor reprezentate în virgulă
mobilă.
- Folosirea conceptului de bandă de asamblare, implementat şi la procesoarele din
familia I80x86.
- Suprapunerea operaţiilor unităţii centrale cu operaţii de intrare/ieşire, prin folosirea
procesoarelor de intrare/ieşire sau a canalelor DMA, care sunt responsabile de efectuarea
operaţiilor de intrare/ieşire, în timp ce UCP execută alte operaţii. Canalele de acces direct la
memorie DMA sunt folosite atunci când controlerul de I/E, care controlează direct operaţiile
de intrare/ieşire cu un dispozitiv periferic, nu poate accesa memoria internă, şi face apel la un
canal DMA pentru efectuarea transferurilor de date între memoria internă şi dispozitivul
periferic.
- Ierarhizarea memoriei - Întreaga memorie a calculatorului este "văzută" ca o ierarhie
de nivele care are la bază memoria externă, sau memoria secundară, care este cea mai lentă,
dar are cea mai mare capacitate, pe măsură ce urcăm treptele ierarhiei crescând viteza de
acces la memorie, dar în acelaşi timp descrescând capacitatea memoriei (vezi figura 6.1).

111
Unele unităţi centrale de prelucrare, cum ar fi I80486 sau Pentium, au o memorie cache
internă pe cip, pe lângă memoria cache externă obişnuită. De asemenea, registrele interne pot
fi considerate ca fiind unităţi de memorie foarte rapidă. Memoria cache se foloseşte pentru a
acoperi diferenţa de viteză dintre UCP şi memoria principală, în timp ce conceptul de
memorie virtuală se foloseşte pentru a acoperi diferenţa de viteză dintre memoria principală şi
memoria secundară.

Figura 6.1. Ierarhizarea memoriei într-un sistem uniprocesor.

- Multiprogramare şi time-sharing. Prin multiprogramare se înţelege existenţa mai


multor procese (programe, task-uri) active în acelaşi timp în calculator, şi care concurează în
vederea obţinerii resurselor calculatorului: UCP, memorie, dispozitive de I/E. Este posibil
acest lucru deoarece unele programe folosesc intensiv UCP-ul pentru efectuarea calculelor, în
timp ce alte programe efectuează mai mult operaţii de I/E, asa încât cele două tipuri de
programe pot fi rulate în paralel. Această suprapunere a execuţiei mai multor programe are
dezavantajul că, uneori, un program cu o prioritate înaltă poate ocupa UCP-ul sau alte resurse,
împiedecând execuţia celorlalte programe. Această problemă este rezolvată în sistemele de
operare în timp real, prin alocarea unor unităţi de timp fixe sau variabile tuturor programelor
din sistem. Astfel, o resursă este alocată unui proces un anumit interval de timp, după care,
indiferent dacă procesul a terminat sau nu operaţia, resursa este eliberată şi alocată unui alt
proces, dându-se în acest mod o şansă şi proceselor mai puţin prioritare.

6.3. Calculatoare pipe-line


În mod obişnuit, execuţia unei instrucţiuni într-un calculator digital implică execuţia
următorilor paşi:

112
- citirea instrucţiunii din memorie (instruction fetch);
- decodificarea instrucţiunii (instruction decoding);
- citirea operanzilor (operand fetch);
- execuţia instrucţiunii (execution);
- memorarea rezultatului (store result).
Într-un calculator pipe-line, mai multe instrucţiuni succesive sunt executate în paralel,
aşa cum este arătat în figura 6.2.
Acesta este un exemplu în care procesorul are 5 faze pipe-line, astfel încât pot fi
executate în paralel 5 instrucţiuni; spre exemplu, la un moment dat se face citirea instrucţiunii
I5, decodificarea instrucţiunii I4, citirea operanzilor instrucţiunii I3, execuţia instrucţiunii I2 şi
memorarea rezultatului instrucţiunii I1, rezultând o viteză de prelucrare de cinci ori mai mare.
În cazul general al unui procesor cu k faze pipe-line, rezultă o creştere a vitezei de execuţie a
instrucţiunilor de k ori.

Figura 6.2. Execuţia suprapusă a instrucţiunilor într-un calculator pipe-line.

Conceptul de "pipe-line", din calculatoare, este similar conceptului de bandă de


asamblare dintr-o fabrică, care duce la creşterea producţiei în fabrica respectivă. Pentru a se
materializa conceptul de paralelism temporal introdus mai sus, într-un calculator pipe-line
orice proces sau activitate este împărţită în subactivităţi, fiecare din acestea fiind executată de
un hardware specializat. Deci paralelismul este realizat nu prin multiplicarea unităţilor
funcţionale (paralelism spaţial), ci prin execuţia suprapusă în timp a mai multor instrucţiuni
sau activităţi.
Ceea ce s-a prezentat anterior se poate desemna prin termenul de "instruction
pipelining", sau de execuţie simultană a mai multor instrucţiuni pe baza conceptului de bandă
de asamblare. Aproape toate calculatoarele actuale implementează acest concept. Dar şi
unitatea aritmetică poate fi compusă din mai multe unităţi separate care să lucreze în paralel şi
care să execute mai multe operaţii înlănţuite, conform conceptului de bandă de asamblare.

113
Acest gen de paralelism este desemnat prin termenul de "arithmetic pipelining", un exemplu
de unitate aritmetică care implementează acest concept, fiind unitatea aritmetică a
calculatorului IBM 360/91.
Operaţiile cu numere în virgulă mobilă , spre deosebire de cele cu numere în virgulă
fixă, se pretează la o execuţie în paralel, fiind executate ca o secvenţă de paşi succesivi chiar
şi în calculatoarele care nu folosesc conceptul de "arithmetic pipelining". De exemplu,
adunarea a două numere reprezentate în virgulă mobilă : m1x2e1 şi m2x2e2 necesită execuţia
următorilor paşi:
1. calculul diferenţei e1-e2
2. dacă e1-e2 este negativ schimbă mantisele între ele şi schimbă semnul diferenţei e1-e2
3. deplasează mantisa m2 cu e1-e2 poziţii spre dreapta (se împarte cel de-al doilea număr
cu 2e1-e2)
4. adună mantisele şi pune rezultatul în m2.
5. normalizează mantisa: dacă mantisa rezultat este mai mare decât 1, deplasează
mantisa rezultatului cu o poziţie spre dreapta şi adună 1 la exponent; dacă mantisa
rezultat este mai mică decât 1/2, deplasează mantisa rezultat cu o poziţie spre stânga
şi scade 1 din exponent.
Cei 5 paşi care intervin în adunarea a două numere reprezentate în virgulă mobilă
trebuie executaţi unul după altul, dar este posibilă execuţia simultană a cinci operaţii de
adunare a două numere în virgulă mobilă, astfel încât, în timp ce se normalizează mantisa
rezultatului la prima operaţie, se adună mantisele la cea de-a doua operaţie, se deplasează
mantisa m2 la cea de-a treia operaţie etc., obţinându-se acelaşi efect ca şi când cei cinci paşi
ce intervin în execuţia adunării a două numere în virgulă mobilă ar fi executaţi în paralel.
În funcţie de instrucţiunile şi tipurile de date pe care le pot manipula, procesoarele pipe-
line pot fi clasificate în procesoare scalare şi procesoare vectoriale. Calculatoarele pipe-line
vectoriale sunt prevăzute cu resurse hardware şi instrucţiuni, care pot opera asupra unor
operanzi de tip vector. Într-un asemenea calculator se poate specifica, printr-o singură
instrucţiune, o operaţie asupra tuturor elementelor unuia sau mai multor vectori. Elementele
vectorilor pot să fie ori numai numere întregi, ori numai numere reale în virgulă mobilă.
Procesoarele vectoriale pot fi proiectate şi ca unităţi care să fie ataşate unui calculator
scalar, pentru a-i creşte acestuia din urmă viteza de execuţie a operaţiilor cu vectori. În mod
normal, supercalculatoarele actuale sunt prevăzute cu facilităţi vectoriale. Calculatoarele
vectoriale sunt o aplicaţie excelentă a conceptului de bandă de asamblare. Un procesor
vectorial, ca orice procesor von Neumann, citeşte instrucţiunile vectoriale din memorie şi
prelucrează unul sau mai mulţi vectori de intrare, pentru a produce un şir de elemente de
ieşire sau vector rezultat. Majoritatea procesoarelor vectoriale folosesc un număr mare de
registre interne pentru stocarea vectorilor, aşa cum se întâmplă la calculatoarele Cray, deşi
alte calculatoare, cum ar fi Cyber-205, stochează vectorii în memorie.

114
Cele mai recente calculatoare vectoriale sunt calculatoarele Cray-1, Cray-2, Cray X-
MP, Cray Y-MP ale firmei Cray Research, Cyber-200 şi Cyber-205 ale firmei Control Data
Corporation, Fujitsu VP-200 al firmei Fujitsu etc.

6.4. Clasificarea Flynn a arhitecturilor de calculatoare

Cea mai populară schemă de clasificare a arhitecturilor de calculatoare este cea realizată
de Flynn în 1966, care ia în calcul numărul de fluxuri de instrucţiuni şi de date dintr-un
calculator. Conform acestei scheme, arhitecturile de calculatoare pot fi împărţite în trei mari
grupe:
- Calculatoare SISD - Single Instruction stream Single Data stream - care cuprinde
majoritatea calculatoarelor actuale şi la care instrucţiunile sunt executate secvenţial, dar pot fi
suprapuse conform conceptului de bandă de asamblare. La aceste calculatoare SISD, un
singur flux de instrucţiuni operează asupra unui singur flux de date. Deci calculatoarele pipe-
line sunt tot calculatoare SISD, deoarece rămân în cadrul accepţiunii de calculator cu un
singur flux de instrucţiuni şi un singur flux de date. Un calculator SISD poate avea totuşi mai
mult de o unitate funcţională destinată îndeplinirii unei anumite funcţii. Calculatoarele IBM
360/91, PDP 11, CDC 6600, Cray-1, Fujitsu VP-200, Cyber -205, FPS -164 etc. sunt exemple
de calculatoare SISD.
- Calculatoare SIMD - Single Instruction stream Multiple Data stream. Într-un
calculator SIMD există mai multe elemente de prelucrare sau elemente de procesare,
supervizate de o unitate de control. Unitatea de control distribuie aceeaşi instrucţiune către
toate elementele de prelucrare, fiecare element de prelucrare operând pe un set diferit de date.
Se formează astfel mai multe fluxuri de date, dar numai un singur flux de instrucţiuni.
Exemple de calculatoare SIMD sunt calculatoarele ILLIAC IV, PEPE, BSP, care sunt
calculatoare word-slice, şi STARAN, MPP, DAP care sunt calculatoare bit-slice.
- Calculatoare MIMD - Multiple Instruction stream Multiple Data stream. Această
categorie cuprinde majoritatea sistemelor multiprocesor, la care se generează câte un flux de
instrucţiuni pentru fiecare procesor în parte. Toate fluxurile de instrucţiuni şi date pentru toate
procesoarele din calculator vin din aceeaşi memorie comună, ce este partajată de cele n
procesoare care cooperează în rezolvarea unei probleme. Dacă fluxurile de instrucţiuni nu vin
dintr-o memorie partajată, ci fiecare procesor are propria lui memorie, avem de-a face cu un
sistem multiprocesor cu schimb de mesaje între procesoare, şi nu cu ceea ce se înţelege printr-
un calculator MIMD intrinsec. Un asemenea sistem multiprocesor fără memorie partajată este
practic un ansamblu de sisteme SISD, care schimbă mesaje între ele printr-o reţea de
interconectare. Unii autori preferă să numească sistemele multiprocesor fără memorie
partajată tot sisteme MIMD. În lucrarea de faţă, vom utiliza noţiunea de sistem multiprocesor,
care este mai largă decât noţiunea de calculator MIMD, incluzând aici şi sistemele

115
multiprocesor cu schimb de mesaje. De asemenea, prin sistem multiprocesor vom înţelege un
sistem de calcul centralizat, cu toate resursele hardware şi software aflate într-un anumit
centru, şi cu întârzieri de comunicaţie neglijabile între subsisteme. Reţelele de calculatoare şi
sistemele distribuite nu fac obiectul acestei lucrări. Exemple de calculatoare MIMD:
UNIVAC 1100/80, IBM 3081/3084, Burroughs D-825, Cray-2, Cray X-MP, Denelcor HEP
etc.

Figura 6.3. Structuri SISD, SIMD şi MIMD conform clasificării Flynn.

Cea de-a patra combinaţie posibilă în cadrul clasificării Flynn, calculatoarele MISD -
Multiple Instruction stream Single Data stream, practic nu există în realitate, deşi unii autori
încearcă să introducă în această categorie calculatoarele pipe-line.

6.5. Calculatoare SIMD

Într-un calculator SIMD, instrucţiunile unui program sunt citite din memorie de către o
singură unitate de control, în aceeaşi manieră ca şi la un calculator von Neumann obişnuit
(calculator SISD), folosind un registru indicator de instrucţiuni.
Instrucţiunile uzuale care se întâlnesc la orice procesor, cum ar fi instrucţiunile de salt,
instrucţiunile aritmetico-logice ce prelucrează scalari etc., sunt executate direct de unitatea de
control. În schimb alte instrucţiuni, cum ar fi instrucţiunile vectoriale, sunt executate de către
o matrice de elemente de prelucrare, sau elemente de procesare, unitatea de control
distribuind o instrucţiune către toate elementele de procesare, care realizează aceeaşi operaţie,
dar asupra unor date diferite. Elementele de prelucrare pot fi inhibate printr-un mecanism de
mascare, astfel încât să nu realizeze o instrucţiune distribuită de unitatea de control.

116
Memoria din care elementele de prelucrare vor lua datele poate fi o memorie locală
elementului de prelucrare respectiv, sau o memorie globală, caz în care elementele de
prelucrare vor accesa modulele de memorie globală printr-o reţea de interconectare (vezi
figura 6.4).
Programele sunt stocate în memoria unităţii de control, care poate accesa şi memoriile
locale ale elementelor de procesare în primul caz, sau modulele de memorie globală în cel de-
al doilea caz, prin intermediul unei magistrale de date. De asemenea, reţeaua de interconectare
prin care elementele de procesare schimbă date între ele în primul caz, sau prin care
elementele de procesare sunt conectate la modulele de memorie globală în cel de-al doilea
caz, este sub controlul unităţii de control.

Figura 6.4. Arhitecturi SIMD

Fiecare element de prelucrare are registre locale, şi poate realiza operaţii aritmetico-
logice asupra unor date, care de regulă sunt elementele unui vector sau ale unei matrici. De
exemplu, la o operaţie de adunare a doi vectori A := A+B, unde A şi B sunt vectori de
dimensiune n, elementul de procesare i execută operaţia Ai := Ai+Bi, Ai fiind elementul i al
vectorului A şi Bi elementul i al vectorului B. Este necesar ca elementele Ai şi Bi să se
găsească în memoria locală a elementului de prelucare i, înainte de de execuţia instrucţiunii,
dacă se foloseşte o arhitectură SIMD cu elemente de procesare care au propria lor memorie.
Deci, există două tipuri de calculatoare vectoriale, primul tip folosind tehnici pipe-line, în
timp ce al doilea tip foloseşte o matrice de elemente de procesare.
Deşi au fost dezvoltate calculatoare SIMD destul de timpuriu, cum ar fi ILLIAC IV
dezvoltat la University of Illinois şi construit de Burroughs Corporation în 1972, şi BSP -
Burroughs Scientific Processor - dezvoltat la mijlocul anilor '70, marea majoritate a

117
producătorilor de calculatoare comerciale nu s-au arătat prea entuziasmaţi de această idee,
preferând să construiască în continuare calculatoare SISD tradiţionale, cărora să le adauge
capabilităţi vectoriale folosind conceptul de bandă de asamblare. Variantele recente ale
procesorului Intel Pentium sunt prevăzute cu capabilităţi SIMD.
Aplicaţiile prevăzute să fie rezolvate de calculatoarele SIMD sunt:
- operaţii cu matrici: adunări, înmulţiri, inversări, valori proprii etc.;
- rezolvarea unor ecuaţii diferenţiale dificile;
- probleme de programare liniară;
- analiză Fourier;
- procesare de imagini şi recunoaştere a formelor etc.
Calculatoarele SIMD pot să conţină elemente de prelucrare care operează pe un singur
bit (aşa numitele calculatoare SIMD bit-slice), şi nu pe un cuvânt format din mai mulţi biţi
(calculatoare word-slice). Aceste calculatoare SIMD bit-slice au ca aplicaţie principală
prelucrarea de imagini, întrucât o imagine este reprezentată ca o matrice de pixeli şi, de multe
ori, este necesară efectuarea aceleeaşi operaţii asupra fiecărui pixel, la o viteză mare.
Ca exemple de calculatoare SIMD bit-slice pot fi date calculatorul CLIP, dezvoltat la
University College în Londra, şi MPP - Massively Parallel Processor, dezvoltat în 1983 la
NASA şi destinat prelucrării imaginilor preluate prin satelit. Acest calculator MPP conţine o
matrice de 128 x 128 = 16384 de microprocesoare bit-slice, care pot fi folosite în paralel, şi
care sunt supervizate de o unitate de control. Deci, la aceste calculatoare, fiecare element de
prelucrare este un microprocesor bit-slice care efectuează toate operaţiile aritmetico-logice pe
un singur bit, şi care este conectat la un anumit număr de microprocesoare vecine.

6.6. Sisteme multiprocesor cu memorie partajată

Într-un sistem multiprocesor, mai multe procesoare independente operează asupra unor
fluxuri de date separate, cooperând în rezolvarea unei anumite probleme. Comunicaţia dintre
procesoare se poate realiza fie printr-o memorie comună, partajată de toate procesoarele din
sistem, fie prin trimiterea unor mesaje de la un procesor la altul folosind legături directe între
procesoare, caz în care fiecare procesor are propria lui memorie locală. În această secţiune se
vor prezenta pe scurt numai sistemele multiprocesor cu memorie partajată.
Există o mare diferenţă între un sistem de calcul multicalculator şi un sistem
multiprocesor. Un sistem multicalculator este compus din mai multe calculatoare
independente, care pot sau nu să comunice unul cu altul, un exemplu fiind sistemul de calcul
IBM Attached Support Processor System, în timp ce un sistem multiprocesor este controlat de
un singur sistem de operare care supervizează toate activităţile procesoarelor interne. Un
exemplu de sistem multiprocesor cu memorie partajată este sistemul Denelcor's HEP.

118
Figura 6.5. Structura de principiu a unui sistem multiprocesor cu
memorie partajată

În sistemele multiprocesor cu partajare a memoriei, viteza de comunicaţie între


procesoare este mare, egală cu viteza de acces la memoria comună, nefiind exclusă totuşi
folosirea unei memorii cache locale fiecărui procesor, pentru a-i creşte acestuia viteza de
prelucrare. De asemenea, este realizată o conectivitate completă între procesoare şi memoria
comună (sau mai multe module de memorie comună) prin intermediul unei reţele de
interconectare. Structura unui sistem multiprocesor cu memorie partajată este arătată în figura
6.5.
Au fost dezvoltate de-a lungul timpului mai multe modalităţi de interconectare între
resursele unui sistem multiprocesor, care constau în:
- folosirea unei singure magistrale;
- folosirea magistralelor locale şi de sistem;
- utilizarea mai multor magistrale;
- utilizarea unei reţele de comutatoare de conectare (cross-bar switch-based networks);
- utilizarea unei memorii multiport.

119
Figura 6.6. Reţele de interconectare într-un sistem multiprocesor
cu memorie partajată

Utilizarea unei singure magistrale de comunicaţie este o tehnică potrivită pentru extensii
multiprocesor ale unui calculator uniprocesor, toate procesoarele din sistem folosind
magistrala comună prin diviziune în timp. Pentru a reduce numărul de cereri de ocupare a
magistralei, fiecare procesor poate să aibă o memorie locală sau alte dispozitive locale, ce pot
fi accesate prin intermediul unei magistrale locale. Magistralele locale sunt conectate la o
magistrală de sistem, prin intermediul căreia se accesează memoria globală şi resursele
globale ale sistemului. Aceste tehnici sunt utilizate pe scară largă de producătorii de
calculatoare comerciale.
Într-un sistem cu mai multe magistrale, procesoarele pot să se conecteze la memoria
comună prin intermediul unei magistrale neocupate, din cele n magistrale ale sistemului, dar
numai n conectări pot fi făcute la un moment dat între procesoare şi memoria comună sau
dispozitivele de I/E .

120
La sistemele ce folosesc o reţea de comutatoare de conectare sunt realizate legături
directe între procesoare şi modulele de memorie, prin intermediul unor comutatoare
electronice, care conectează toate liniile magistralei unui procesor la un modul de memorie.
Ultima variantă foloseşte o memorie multiport pentru conectarea procesoarelor la memorie
comună. O memorie multiport este o memorie la care pot fi accesate mai multe locaţii de
memorie la un moment dat.
Reţelele de interconectare construite pe baza unei matrici de comutatoare sunt scumpe,
fiind necesară efectuarea a N2 conectări simultane în cazul a N procesoare şi a N module de
memorie, realizarea fiecărei legături implicând în mod obişnuit conectarea a zeci de semnale.
Din această cauză au fost dezvoltate reţelele de interconectare multinivel (multistage
networks), care au mai puţine comutatoare interne, realizarea unei legături între un procesor şi
un modul de memorie implicând comutarea mai multor comutatoare electronice, situate pe
diferite nivele. Nu se permite însă, de regulă, realizarea simultană a tuturor legăturilor posibile
dintre procesoare şi modulele de memorie, şi, de cele mai multe ori, anumite legături nu pot fi
realizate deloc. De fapt anumite legături sunt inutile şi nu are rost să fie realizate.

Figura 6.7. Reţea de interconectare cu trei nivele de celule


de comutare 2x2

De exemplu, în figura anterioară este prezentată o reţea cu trei nivele, în care fiecare
celulă de comutare a reţelei poate avea două stări: cu intrările cuplate direct la ieşiri, sau cu
intrările cuplate încrucişat.

6.7. Sisteme multiprocesor fără memorie


partajată. Transputere.

Aceste sisteme multiprocesor nu folosesc o memorie globală, ci fiecare procesor are


memoria lui locală, şi comunică cu celelalte procesoare prin mesaje transmise pe legături
directe între procesoare. Aceste tipuri de sisteme nu vor înregistra un număr mare de conflicte
de acces la memoria globală, aşa cum se întâmplă în sistemele multiprocesor cu memorie
partajată, şi care reduc considerabil viteza de calcul a sistemelor respective. Structura
generală a unui sistem multiprocesor fără memorie partajată este arătată în figura 6.8.

121
Un procesor împreună cu memoria locală şi interfeţele proprii de I/E este denumit, de
regulă, modul calculator. Memoria locală a unui modul calculator poate fi accesată numai de
procesorul modulului respectiv. Fiecare nod sau modul calculator execută unul sau mai multe
procese, procesorul local al nodului executând numai un singur proces la un moment dat, ca în
orice calculator clasic von Neumann. De asemenea, fiecare nod conţine, în memoria ROM
proprie, un nucleu al unui sistem de operare, care programează procesele din nodul respectiv
şi realizează operaţiile de transmitere şi recepţionare a mesajelor. Întregul sistem
multiprocesor este controlat de un calculator gazdă.

Figura 6.8. Structura de principiu a unui sistem multiprocesor cu


transfer de mesaje între procesoare.

Programatorul poate decide "granularitatea" proceselor ce se execută în fiecare nod.


Dacă se alege o granularitate fină, fiecare proces fiind compus din câteva instrucţiuni, rezultă
o creştere a numărului de mesaje schimbate între procesoare şi deci o aglomerare a mediului
de comunicaţie, ducând la deteriorarea performanţelor sistemului. Procesele cu granularitate
mare, ce conţin un număr mare de instrucţiuni, necesită memorii locale de ordinul
megaocteţilor, în timp ce procesele cu granularitate fină necesită memorii locale de ordinul
zecilor de kiloocteţi. Procesele cu granularitate fină pot fi găsite în sistemele multiprocesor
orientate pe flux de date. Majoritatea sistemelor multiprocesor fără memorie partajată folosesc
procese cu granularitate medie.
Pentru un număr mic de procesoare în sistem, se obţin performanţe mai bune dacă se
utilizează o memorie comună partajată de procesoarele din sistem, sistemele multiprocesor
fără memorie partajată fiind adecvate atunci când se doreşte un număr mare de procesoare în
sistem, aceste sisteme fiind mai ieftine şi pretându-se la o implementare uşoară în VLSI,
fiecare nod sau modul calculator fiind implementat pe un singur cip. Pentru o mai mare
performanţă, procesele care se execută într-un sistem multiprocesor fără memorie partajată
trebuie să fie computaţional intensive şi nu orientate pe schimb de mesaje. Atât sistemele

122
multiprocesor cu memorie partajată, cât şi cele fără memorie partajată, pot realiza prelucrări
SIMD, deşi ultimele sunt mult mai adecvate numai pentru prelucrări MIMD.
Există diferite scheme posibile de interconectare a procesoarelor dintr-un sistem
multiprocesor fără memorie partajată. Reţelele de interconectare folosite în aceste sisteme
sunt reţele statice de interconectare, care permit legături fixe directe între două noduri, şi nu
sunt reţele dinamice de interconectare, aşa cum folosesc sistemele multiprocesor cu memorie
partajată. O reţea de interconectare exhaustivă a n noduri va permite fiecărui nod să aibă o
legătură directă către oricare alt nod din sistem. Totuşi, aceste reţele nu sunt economice,
preferându-se limitarea posibilităţilor de conectare ale fiecărui nod numai la un anumit număr
de noduri vecine.
De exemplu, fiecare nod poate fi legat numai la doi din vecinii săi, formându-se o reţea
liniară de tip inel (fig 6.9a), sau la patru din vecinii săi, formându-se o reţea de tip tablou
bidimensional (fig 6.9b), această structură pretându-se la o implementare uşoară în VLSI, etc.
În cazul unei reţele organizate sub forma unui hipercub, fiecare nod are o anumită adresă,
reprezentată sub forma unui număr binar pe un anumit număr de biţi. Se va forma un
hipercub, dacă se conectează fiecare nod din sistem cu toate nodurile a căror adresă diferă
doar printr-un bit de adresa nodului respectiv. În figura 6.9e este prezentat un hipercub
tridimensional.

Figura 6.9. Reţele statice de interconectare a procesoarelor, într-un sistem


multiprocesor fără memorie partajată.

123
Un exemplu de sistem multiprocesor comercial fără memorie partajată, cu o reţea de
interconectare de forma unui hipercub, este sistemul IPSC/1 - Intel Personal SuperComputer -
dezvoltat la mijlocul anilor '80. Fiecare nod conţine un I80286, un I80287, 64 Kocteţi de
memorie ROM şi o memorie RAM duală de 512 Kocteţi, care poate fi accesată atât de
procesorul nodului, cât şi de calculatorul gazdă. Toate nodurile sunt controlate de un
calculator gazdă, numit "cub manager", ce conţine 2 - 4 Mocteţi de memorie RAM, unităţi de
disc flexibil şi de hard disk, şi care operează sub sistemul de operare XENIX. Fiecare nod
conţine în memoria ROM proprie un mic sistem de operare numit NX. De asemenea, fiecare
nod are 8 canale de comunicaţie, 7 dintre ele folosite pentru comunicarea cu alte 7 noduri din
hipercub, şi un canal Ethernet folosit pentru comunicaţia cu calculatorul gazdă. Comunicaţia
pe legăturile hipercubului este de 10 - 20 de ori mai rapidă decât comunicaţia cu calculatorul
gazdă pe cablul Ethernet. Sistemul IPSC/2 are aceeaşi structură ca şi IPSC/1, numai că
foloseşte procesoarele I80386 şi I80387, în locul perechii de procesoare I80286/I8027. În
figura următoare este prezentată structura unui nod IPSC/1.

Figura 6.10. Structura unui nod IPSC/1

Un transputer este un circuit VLSI produs de firma INMOS din Marea Britanie, care
conţine un procesor pe 16 sau 32 de biţi ce implementează concepte RISC, o memorie internă
pe cip, şi mai multe legături de comunicaţie externă către alte transputere, într-un sistem
multiprocesor. În mod obişnuit, fiecare transputer are 4 canale DMA de mare viteză, cu care
se poate conecta la alte 4 transputere, într-o structură de tip tablou bidimensional sau într-o
altă structură.

124
Primul transputer - T212, realizat în 1983, conţine un procesor aritmetic pe 16 biţi
pentru operaţii cu numere întregi, transputerul T414, realizat în 1985, conţine un procesor
aritmetic similar, dar pe 32 de biţi, în timp ce transputerul T800, realizat în 1988, conţine un
procesor aritmetic pe 32 de biţi în virgulă mobilă. Primele transputere aveau 4 legături seriale
la 10 Mbiţi/sec şi 2 Kocteţi de memorie RAM pe cip. Următoarele transputere conţin o
memorie RAM mai mare şi legături externe mai rapide. Prin interfaţa de memorie din figura
6.10, transputerului i se poate ataşa o memorie externă.

Figura 6.11. Structura internă a unui transputer.

Informaţia transmisă sau recepţionată pe legăturile externe ale transputerului este


organizată în pachete, fiecare transmisie a unui pachet de date către un alt transputer fiind
urmată de un răspuns al acestuia din urmă, care va trimite către primul transputer un pachet de
recunoaştere.
Pentru utilizarea transputerelor, a fost dezvoltat limbajul OCCAM, care furnizează
primitive pentru transferul datelor şi pentru implementarea conceptelor de programare
paralelă. Un proces, în limbajul OCCAM, este format din una sau mai multe instrucţiuni
program, care pot să fie executate secvenţial sau în paralel. Pe fiecare transputer sunt
executate în mod concurenţial unul sau mai multe procese.

6.8. Sisteme multiprocesor orientate pe flux de date

125
Calculatoarele descrise în secţiunile anterioare urmăresc într-o mai mică sau mai mare
măsură conceptele de bază ale unui calculator von Neumann. Într-un calculator orientat pe
flux de instrucţiuni, datele sunt "pasate" de la o instrucţiune la alta prin intermediul unor
locaţii de memorie, la care au acces toate instrucţiunile. O dată sau un operand al unei
instrucţiuni este referit prin intermediul adresei locaţiei de memorie care conţine data sau
operandul respectiv. Acesta este conceptul de variabilă utilizat în calculatoarele von
Neumann. În aceste calculatoare, fluxul de instrucţiuni este implicit secvenţial, deşi pot fi
folosiţi şi operatori care să specifice o prelucrare paralelă.
Într-un calculator orientat pe flux de date, o instrucţiune este executată atunci când
operanzii ceruţi de instrucţiunea respectivă devin disponibili. De asemenea, nu există
conceptul de locaţii de memorie partajate de instrucţiuni şi folosite pentru stocarea datelor, în
accepţiunea tradiţională de variabilă. Secvenţa de instrucţiuni ce se execută depinde numai de
disponibilitatea datelor pentru aceste instrucţiuni. În acest fel instrucţiunile sunt executate
asincron, neexistând un program care să controleze secvenţa acestor instrucţiuni, fiind
posibilă execuţia mai multor instrucţiuni simultan şi realizarea, în acest mod, al unui înalt
grad de paralelism.
Operanzii sunt pasaţi unei instrucţiuni sub forma unor drepturi sau permisiuni de a
utiliza valori (tokens), şi nu ca adrese ale unor variabile din memorie. Datorită faptului că
datele sunt pasate direct de la o instrucţiune la alta, şi nu prin intermediul unor adrese ale unor
locaţii de memorie partajate de către instrucţiuni, în sistemele orientate pe flux de date nu pot
apare efecte laterale.
Un sistem orientat pe flux de date operează cu două entităţi de bază : pachete de operaţii
şi token-uri de date. Un pachet de operaţii conţine codul operaţiei care se execută, operanzii şi
destinaţia rezultatului (instrucţiunea următoare). Un token este format dintr-o valoare rezultat,
împreună cu destinaţia acestei valori. Datorită acestui schimb de pachete şi de token-uri între
resursele sistemului, sistemele orientate pe flux de date pot fi considerate un caz particular de
sisteme multiprocesor cu schimb de mesaje între procesoare.
Pentru a descrie o prelucrare, modelele orientate pe flux de date folosesc un aşa numit
graf al fluxului de date. Nodurile grafului indică operaţiile ce se efectuează, arcele grafului
indicând fluxul de date între noduri. Operaţia dintr-un nod se execută când toate informaţiile
cerute de nodul respectiv sunt disponibile. Un nod necesită unul sau mai mulţi operanzi şi
produce unul sau mai multe rezultate. Deîndată ce toţi operanzii sunt disponibili la intrările
nodului, nodul respectiv este activat realizându-se operaţia din nod, după care se pasează
rezultatele de-a lungul unor arce, către nodurile ce aşteaptă aceste rezultate. Procesul se repetă
până când ultimul nod din graf a fost activat şi s-a obţinut rezultatul final. Aşa cum s-a
menţionat anterior, mai multe operaţii pot fi executate simultan, prin activarea în acelaşi timp
a mai multor noduri.

126
Graful pentru calculul expresiei E = A/B + B*C conţine pe lângă nodurile care
realizează operaţiile de înmulţire, împărţire, adunare, şi un nod special - COPY - care produce
o copie a variabilei de intrare B (vezi figura 6.11a). După aplicarea variabilelor de intrare, se
poate executa numai operaţia din nodul COPY, care nu necesită decât un singur operand (B),
iar acesta este disponibil. După ce este executată operaţia din nodul COPY, se vor executa în
paralel operaţiile din nodurile de înmulţire şi împărţire, iar după ce sunt încheiate operaţiile
din ambele noduri, este activat nodul de adunare care produce rezultatul dorit.

Figura 6.12. Graful fluxului de date pentru calculul expresiei E = A/B + B*C,
structura nodurilor MERGE şi BRANCH.

Bineînţeles că trebuie să existe şi noduri specializate pentru realizarea operaţiilor de


decizie. Aceste noduri sunt prevăzute în plus cu o intrare booleană, în funcţie de care se
realizează decizia. Într-un nod MERGE, dacă condiţia este adevărată, token-ul operandului A
este pasat la ieşire, dacă intrarea de condiţie este falsă, se va pasa la ieşire token-ul variabilei
B. În nodurile BRANCH, care au o singură intrare şi două ieşiri, dacă condiţia este adevărată,
token-ul variabilei de intrare este pasat pe ieşirea din stânga, activând nodurile succesive
arcului din stânga, dacă condiţia este falsă, token-ul este pasat pe ieşirea din dreapta. De
asemenea, cu ajutorul altor noduri specializate, se pot executa şi bucle sau cicluri în cadrul
grafului fluxului de date ce reprezintă un anumit model de calcul.

127
Arhitecturile de calculatoare orientate pe flux de date pot fi clasificate în două mari
categorii: arhitecturi statice şi arhitecturi dinamice.
Într-o arhitectură statică, pe un arc se poate pasa de la un nod la altul al grafului numai
un token la un moment dat. Într-o asemenea arhitectură, trebuie utilizate token-uri de control,
pentru a specifica momentul potrivit de transfer al token-urilor de la un nod la altul. Operaţiile
dintr-un nod se execută când toţi operanzii sunt prezenţi pe arcele de intrare. La arhitecturile
dinamice este permisă existenţa mai multor token-uri pe un arc, fiecare token având o etichetă
ce specifică contextul particular în care se poate utiliza token-ul respectiv.

Figura 6.13. Structura de tip inel a unui sistem multiprocesor


orientat pe flux de date.

Atât maşinile statice, cât şi cele dinamice, au o arhitectură simplificată de tip inel (vezi
figura 6.12), ce conţine patru secţiuni principale. Secţiunea de memorie este folosită pentru a
stoca pachetele de instrucţiuni. Unităţile de procesare permit execuţia în paralel a mai multor
instrucţiuni activate. Reţeaua de dirijare pasează token-urile rezultat către instrucţiunile
următoare, corespunzătoare nodurilor destinaţie ale arcelor de-a lungul cărora se pasează
token-urile. Secţiunea de intrare/ieşire este o interfaţă între sistemul orientat pe flux de date şi
lumea exterioară. Majoritatea maşinilor orientate pe flux de date sunt realizate sub forma unui
procesor ataşat la un calculator gazdă, care realizează operaţiile de intrare/ieşire şi de

128
translatare a codului, şi s-ar părea că prelucrarea orientată pe flux de date va deveni o tehnică
generalizată la fel ca şi conceptul de bandă de asamblare.
Totuşi se poate spune că sistemele orientate pe flux de date, ca şi limbajele orientate pe
flux de date, deşi au atras atenţia multor cercetători cu mulţi ani în urmă, de-abia în ultima
perioadă au fost dezvoltate câteva asemenea sisteme, cum ar fi maşina propusă de Jack
Dennis la MIT (Massachusetts Institute of Technology), sistemul EDDY în Japonia, maşina
Manchester în Anglia, sistemul francez LAU, maşina UTAH, maşina Newcastle etc.

129
7. SISTEME DE OPERARE

7.1. Generalităţi

La pornirea calculatorului, este efectuat un autotest care controlează memoria RAM,


încearcă să identifice fiecare dispozitiv de stocare conectat, şi verifică dacă există o
imprimantă conectată la sistem şi starea acesteia (închisă sau deschisă). Aceste secvenţe de
instrucţiuni sunt stocate în BIOS (Basic Input Output System), într-o memorie ROM al cărui
conţinut nu poate fi alterat. Versiunile mai noi de BIOS-uri au incluse funcţii suplimentare,
cum ar fi detecţia automată a diverselor dispozitive periferice ce există în sistem (Plug And
Play), autodetecţia tipului de hard-disk introdus în calculator etc. BIOS-ul reprezintă interfaţa
între echipamentele hardware ale calculatorului (resursele de bază ale sistemului: disc,
tastatură, display, memorie etc.) şi sistemul de operare.
Un sistem de operare este un complex de programe care permite exploatarea unui
sistem de calcul prin intermediul BIOS-ului, asigurând executarea lanţurilor de sarcini ale
sistemului. Sistemul de operare furnizează şi un set de funcţii standard, care pot fi utilizate de
aplicaţii pentru comunicarea cu BIOS-ul, şi deci implicit cu resursele hardware ale
calculatorului. În cursul utilizării calculatorului, sistemul de operare are datoria de a informa
despre buna (sau nu) funcţionare a dispozitivelor periferice. Sistemul de operare gestionează
operaţiile de intrare şi ieşire, prin monitorizarea şi controlarea fluxului de date şi a
programelor în execuţie. Tot el este responsabil de alocarea resurselor sistemului, atribuirea
de resurse hardware diverselor programe şi funcţii, pentru a asigura funcţionarea eficientă a
calculatorului.

Figura 7.1.1. Calculatorul privit prin prisma utilizatorului

Sistemul de operare este cel care determină numărul de utilizatori ce pot obţine acces la
calculator şi la resursele sale, în acelaşi timp. După numărul de utilizatori ce pot lucra la un

130
moment dat pe sistem, se pot diferenţia sisteme de operare monoutilizator şi sisteme de
operare multiutilizator. După numărul de task-uri, sau programe, pe care le poate rula un
utilizator la un moment dat, sistemele de operare pot fi împărţite în sisteme monotasking şi
sisteme multitasking.
Sistemul de operare este conceput pentru a lucra pe o anumită arhitectură hardware. De
exemplu, un sistem de operare proiectat pentru un calculator Macintosh nu va funcţiona pe un
PC compatibil IBM. Astfel, sistemele de operare sunt dedicate unei anume structuri
hardware. Există şi sisteme de operare care funcţionează pe mai multe tipuri de platforme
hardware (Windows NT pe Intel x86 şi DEC Alpha; SUN Solaris pe Intel x86 sau SPARC;
Linux pe x86, SPARC, DEC Alpha, Macintosh; etc.)

Software
de sistem

Sisteme de Drivere de
Limbaje de
operare dispozitiv
programare

Programe Software
utilitare de
aplicatie

Software Software Software


Software Software de
pentru pentru pentru
educativ productie
afaceri administrare distractie

Baze de date Grafica

Tehnoredactare
Comunicatii
computerizata

Calcul Diverse
tabelar utilitare

Figura 7.1.2. Tipuri de software existente într-un calculator

Toate sistemele de operare conţin o interfaţă cu utilizatorul, ce reprezintă modalitatea


prin care utilizatorul introduce comenzi sau lansează aplicaţii. Partea exterioară (shell) a

131
sistemului de operare este cea care preia comenzile de la utilizator, şi le transferă către
nucleul (kernel) sistemului de operare, care alocă în acel moment un loc în lanţul de execuţie
al sarcinilor din sistem. În funcţie de sistemul de operare, interfaţa cu utilizatorul poate fi
bazată pe grafică sau poate fi numai în mod text. Dacă nucleul permite accesul la resursele
sistemului aparent simultan (prin tehnici de time-sharing) pentru mai mulţi utilizatori, atunci
sistemul de operare se numeşte multitasking. Sistemul de operare, în aceste caz, comută
sarcinile (task-urile) care trebuie executate pe procesor, îndeajuns de repede pentru a crea
senzaţia de simultaneitate a execuţiei. În caz contrar, pe sistemele monotasking, nici un alt
proces nu poate fi lansat până la terminarea celui aflat în curs de execuţie.

Exemple de sisteme de operare:

- MS-DOS – este produs de firma Microsoft, pentru platforme x86, este monotasking,
monoutilizator, şi are interfaţa cu utilizatorul în mod text. Peste el se pot instala însă
interfeţe grafice, cum ar fi Microsoft Windows 3.xx. Există şi variante ale acestui sistem
care sunt multitasking, cum ar fi OpenDOS sau DR-DOS, produse actualmente de
Caldera, sau PC-DOS al firmei IBM. Nu se scalează pe mai multe procesoare.
- Windows NT – produs de firma Microsoft, multitasking, monouser, interfaţă grafică
conţinută în nucleul sistemului. Există pentru mai multe platforme hardware: x86,
PowerPC, Alpha, MIPS. Din septembrie 1998 există şi versiuni care sunt multiutilizator.
- Familia UNIX – sunt sisteme de operare multitasking, multiutilizator. Interfaţa cu
utilizatorul este la bază text, însă toate variantele sunt dotate şi cu sistem grafic. Există
pentru mai toate platformele hardware, în funcţie de producător. Cele mai renumite
variante sunt: Linux, SUN Solaris, HP-UX (HP), AIX (IBM), IRIX (SGI), DEC Unix,
SCO Unix.
- VMS, OpenVMS – produs de firma DEC, multiutilizator, multitasking. VMS-ul are
interfaţă cu utilizatorul în mod text, OpenVMS-ul în mod grafic.

În concluzie, un calculator funcţionează datorită sistemului de operare instalat, şi


anume prin interacţiunea sa cu resursele hardware ale calculatorului. Peste acest strat
software, al sistemului de operare, ce are rolul de a interfaţa utilizatorul cu resursele
hardware, se instalează aplicaţiile care vor fi instrumente de lucru ale beneficiarilor
sistemului de calcul. În figura 7.1.2 este prezentată o diagramă a tipurilor majore de software
existente într-un calculator.

7.1.1. Interfeţe text şi interfeţe grafice.

În cadrul unei interfeţe bazate pe text, numită mediu alfanumeric, utilizatorul tastează
comenzi pentru a da instrucţiuni calculatorului. Sistemele de operare ale calculatoarelor

132
personale utilizează interfeţe cu linii de comandă, care permit introducerea de la tastatură a
unei comenzi la un moment dat. Linia de comandă conţine un prompter, care informează
utilizatorul că sistemul este pregătit să primească comenzi sau instrucţiuni. După fiecare
instrucţiune scrisă, utilizatorul trebuie să apese tasta Enter pentru a demara prelucrarea
comenzii respective. MS-DOS-ul, care este un exemplu de sistem de operare în mediu
alfanumeric, acceptă şi prelucrează instrucţiunile pe baza unei biblioteci de instrucţiuni
inclusă în sistemul de operare. În mod analog, se pot lansa în execuţie şi comenzile şi
programele externe sistemului de operare. Există şi anumite programe de interfaţare cu
mouse-ul al sistemului de operare MS-DOS (cum ar fi NORTON COMMANDER), care
permit utilizatorului să lanseze comenzi cu ajutorul mouse-ului.
UNIX-ul este de asemenea un sistem de operare cu o interfaţă în mod text.
În figura 7.1.3. este prezentat ecranul unei astfel de interfeţe în mod text, exemplul ales
fiind o linie de comandă MS-DOS.
Interfeţele grafice au apărut ca urmare a cererii din partea utilizatorilor pentru un mediu
uşor de exploatat, şi care să aibă şi posibilitatea afişării unor grafice pe ecran. Primul sistem
care utiliza o interfaţă grafică a fost sistemul Lisa, care a fost apoi adaptat pentru calculatoare
Macintosh. Acest sistem a suferit numeroase îmbunătăţiri până în prezent, dar a fost cel care
a generat apariţia interfeţelor grafice în lumea PC-urilor. Interfaţa grafică iniţială numită
“Finder”, utiliza mici pictograme pentru reprezentarea programelor sau comenzilor. Pentru a
da o comandă sistemului de operare, utilizatorul indică o pictogramă şi efectuează un clic
(sau dublu clic) pe mouse. O altă posibilitate de a da comenzi este efectuarea de selecţii din
meniuri, aflate într-o aplicaţie ce se substitue shell-ului sistemului de operare.

Figura 7.1.3. Exemplu de interfaţă în mod text

În 1985 a apărut sistemul Microsoft Windows, care nu era un sistem de operare, ci un


mediu grafic pentru MS-DOS. Un mediu grafic reprezintă mai puţin decât un sistem de
operare, deoarece funcţionarea sa se bazează pe existenţa unui asemenea sistem. Windows

133
(3.xx, 95 sau 98), care în esenţă reprezintă un înveliş pentru MS-DOS, primeşte instrucţiuni
prin intermediul mouse-ului şi le transformă în comenzi care pot fi executate de MS-DOS.
Primele versiuni de Windows (1.0, 2.0) nu au avut succes. În 1987, IBM şi Microsoft
au început lucrul la o interfaţă grafică care îşi propunea să înlocuiască DOS-ul şi Windows-
ul. Astfel s-a născut un nou sistem de operare, numit OS/2. Microsoft a lansat în 1990
Windows 3.0, şi apoi o versiune îmbunătăţită 3.1. Acest mediu a devenit un concurent serios
pentru OS/2, şi a fost dezvoltat în continuare de Microsoft. În 1995, această firmă a lansat
Windows 95, care este mai mult decât un mediu de operare, incluzând şi funcţii ale
sistemului MS-DOS în mediul integrat Windows.
În paralel, Microsoft a dezvoltat şi un sistem de operare cu interfaţă grafică
multiutilizator, Windows NT. În figura 7.1.4. este prezentată o imagine a acestei interfeţei
grafice.

Figura 7.1.4. Interfaţa grafică Windows NT

Pentru sistemele Unix, care folosesc medii bazate pe text, au fost create diverse
interfeţe grafice care se instalează peste sistemul de operare. Există multe tipuri de interfeţe
grafice pentru această familie de sisteme de operare, majoritatea dintre ele fiind grupate sub
denumirea generică de X-Windows. O caracteristică deosebită, a acestor sisteme de interfaţă
grafică, este faptul că permit executarea unei aplicaţii sau comenzi pe un calculator aflat la
distanţă şi obţinerea rezultatului grafic pe un terminal local. Un exemplu răspândit pentru
Unix-urile de firmă (HP-UX, Ultrix, Solaris, etc.) este CDE. În figura 7.1.5, este prezentat un
ecran al interfeţei grafice CDE pentru Solaris.

134
Figura 7.1.5. Ecran al interfeţei grafice CDE

Figura 7.1.6. Ecran al interfeţei grafice KDE

135
Pentru Linux, interfeţele grafice sunt numeroase, datorită aspectului academic şi “free
software” al acestui sistem de operare. Fiecare interfaţă are specificaţii proprii, şi nu sunt
toate compatibile între ele. Cel mai răspândit sistem grafic este “fvwm” şi, în ultimii ani,
KDE. Un ecran al interfeţei KDE este prezentat în figura 7.1.6.

7.1.2. Partiţionarea şi formatarea discurilor

Informaţiile sunt stocate pe discuri magnetice sub formă de fişiere, blocuri de


informaţie în format binar care capătă sens pentru aplicaţia care le foloseşte. Pentru a
organiza fişierele, fiecare sistem de operare foloseşte un model de structurare a fişierelor, de
cele mai multe ori de formă arborescentă, după cum se va vedea în continuare.
Spaţiul disponibil pe un dispozitiv de stocare (în general hard-disk) se organizează sub
formă de partiţii, fiecare partiţie fiind văzută ca o unitate de disc proprie. Acestea permite ca
acelaşi disc să poată fi folosit de mai multe sisteme de operare, fiecare sistem folosind
partiţiile într-un mod propriu. Pentru a structura spaţiul de memorare al unui disc, pe o
anumită partiţie, se aplică o operaţiune de formatare. Formatarea discului poate fi de două
feluri:

- formatare de nivel inferior sau formatare fizică (low-level format): Prin această acţiune
pistele discului sunt împărţite într-un anume număr de sectoare, prin scrierea informaţiile
de delimitare a sectoarelor pe pistă, informaţii care sunt necesare controlerului de disc.
Pentru discurile fixe, există programe speciale de formatare fizică, de cele mai multe ori
furnizate de fabricantul discului dur (disk manager), sau aceste programe sunt incluse în
unele variante de BIOS. Pentru dischete se folosesc programe furnizate de sistemele de
operare.
- formatare de nivel superior sau formatare logică (high-level format): Este o operaţie care
se efectuează din sistemul de operare folosit, şi este prin urmare specifică acestuia. În
cadrul formatării logice se scriu structurile necesare pentru gestionarea fişierelor şi a
structurilor aferente (directoare). Spre deosebire de formatarea fizică, în cadrul căreia se
scriu efectiv pistele şi sectoarele discului, formatarea logică constă, de fapt, în crearea
unei tabele cu conţinutul util al discului, ce va fi folosită de sistemul de operare pentru a
scrie şi apoi regăsi fişierele pe disc.

Prima operaţie care se efectuează asupra unui hard disk este formatarea fizică, aceasta
fiind independentă de sistemul de operare, şi caracteristică unităţii de disc. Urmează apoi
partiţionarea, care este operaţiunea de segmentare a discului în mai multe regiuni, numite
partiţii. Fiecărei partiţii i se atribuie şi un identificator (tipul partiţiei), specific sistemului de

136
operare care îşi va pune sistemul de fişiere pe partiţia respectivă. În timpul partiţionării,
indiferent de sistemul de fişiere specificat, soft-ul de partiţionare scrie un program special
folosit pentru iniţializarea calculatorului (Boot) şi o tabelă de partiţii, pe primul sector de pe
disc, numit sector de boot (Master Boot Sector). Deoarece termenul de înregistrare, în acest
caz, este folosit şi cu sensul de sector, acest sector mai poate fi numit şi înregistrare de boot
(Master Boot Record). Dintre toate partiţiile create pe un hard disk, una singură trebuie
marcată ca fiind “activă”, adică reprezentând partiţia de pe care se va încărca sistemul de
operare la pornirea calculatorului.
După crearea partiţiilor, care vor găzdui sistemele de fişiere, se formatează logic fiecare
partiţie, în funcţie de sistemul de operare ales. Astfel, pe acelaşi disc pot coexista mai multe
sisteme de operare (sisteme multi-boot) care pot fi pornite separat.
Pentru discuri flexibile, de cele mai multe ori, sistemul de operare folosit pune la
dispoziţie un utilitar de formatare. Acesta realizează atât formatarea fizică, cât şi cea logică.

Fiecare sistem de operare are specificaţiile proprii pentru atribuirea de identificatori


diverselor partiţii formatate:
- MS-DOS-ul (şi sistemele din această categorie) atribuie fiecărui volum (partiţie) o adresă
logică notată cu o majusculă, începând cu litera C şi respectând ordinea alfabetică.
Literele A şi B sunt rezervate pentru unităţile de disc flexibil.
- Windows NT procedează în mod asemănător, începând la fel cu litera C, însă permite
schimbarea literelor asignate în timpul funcţionării.
- Linux-ul (şi familia sistemelorUnix) are nevoie de o partiţie principală numită “rădăcină”
care este notată cu “/”, iar celelalte partiţii existente apar sub formă de directoare ale
acestei rădăcini.

Se foloseşte de asemenea un tip de format logic propriu fiecărui sistem de operare, pentru
fiecare partiţie a unui hard disk, acesta numindu-se tipul partiţiei. Un sistem de operare poate
citi date de pe mai multe tipuri de partiţii. Iată câteva tipuri de partiţii existente:
- FAT (File Allocation Table) 16 sau 32 - specifice DOS-ului sau Windows-ului 95;
- NTFS (NT File System) - specific Windows-ului NT;
- Extended 2 – folosit de Linux;
- HPFS (High Performance File System) – caracteristic mediului OS/2;
- ISO9660 – folosit pentru CD-ROM.

Modul de organizare logică a informaţiei pe partiţie este diferit pentru fiecare tip de
partiţie. În subcapitolele următoare se va detalia modul de organizare logică a informaţiei
pentru fiecare sistem de operare în parte.

137
7.2. Sistemul de operare MS-DOS

Sistemul de operare MS-DOS este o interfaţă simplă între utilizator şi hardware-ul


calculatorului. Deşi sistemul de operare MS-DOS a fost dezvoltat pentru primele variante de
calculatoare personale ale firmei IBM (IBM PC), fiind total neadecvat pentru calculatoarele
personale IBM care au la bază un microprocesor I80386, I80486 sau chiar Pentium, şi care
suportă sisteme de operare mult mai puternice, totuşi datorită simplităţii şi faptului că există o
mare diversitate de programe scrise pentru acest sistem de operare, MS-DOS rămâne unul din
cele mai populare sisteme de operare.
În dezvoltarea sa, proiectanţii sistemului de operare MS-DOS s-au inspirat din cele mai
răspândite două sisteme de operare la momentul respectiv: CP/M, unanim acceptat pe
microcalculatoarele pe 8 biţi şi care în prezent nu se mai comercializează, şi UNIX, un nume
de referinţă în cadrul sistemelor de operare, şi care tinde să devină unul din cele mai utilizate
sisteme de operare.
De la CP/M, MS-DOS a împrumutat ideea independenţei faţă de echipament, realizată
prin introducerea BIOS-ului (Basic Input Output System), numele unor comenzi (ERA, DIR,
TYPE etc.), parţial modul de organizare a informaţiei pe disc etc.
De la UNIX s-a împrumutat structura arborescentă a sistemului de fişiere, înlănţuirea
unităţilor de alocare pe disc ( "clusters") ale unui fişier, ideea folosirii propriului interpretor
de comenzi ( Shell ) etc.
Caracteristicile principale ale sistemului de operare MS-DOS sunt :
- lucrează cu un singur utilizator, rulând un singur program la un moment dat (sistem de
operare monouser - monotasking );
- proceduri avansate de detecţie a erorilor;
- dispozitive de intrare / ieşire independente, MS-DOS asignând un nume de fişier
rezervat fiecărui echipament de intrare / ieşire;
- realocabilitatea completă a programelor, fiind posibilă rularea aceluiaşi program de
la mai multe adrese de încărcare;
- structură de fişiere eficientă şi rapidă;
- contabilizarea datei şi timpului.

7.2.1. Sistemul de fişiere. Structura discului sub MS-DOS.

Sistemul de operare este programul care intră în funcţiune atunci când calculatorul este
pus sub tensiune. Sistemul de operare MS-DOS are trei părţi componente:
- interpretorul de comenzi, conţinut în fişierul COMMAND.COM;

138
- fişierul DOS.COM, care mai poate fi găsit şi sub alte denumiri: MSDOS.SYS
sau IBMDOS.COM depinzând de versiunea sistemului de operare;
- fişierul BIO.COM (sau IO.SYS, IBMBIO.COM), care conţine o parte a
sistemului de intrări / ieşiri de bază - BIOS, cealaltă parte fiind rezidentă
în memoria ROM a calculatorului.
Deorece discurile magnetice sunt cele mai utilizate dispozitive de memorie externă, în
dezvoltarea sistemului de operare MS-DOS, o mare atenţie a fost acordată organizării
fişierelor pe aceste tipuri de dispozitive de memorie externă. Atât discurile flexibile cât şi
discurile de mare capacitate ( hard disks ) au aceeaşi organizare sub MS-DOS.
Pe discul magnetic, informaţia (programe sau date necesare acestor programe) este
stocată în fişiere. Fişierul reprezintă acelaşi lucru pentru discul magnetic, pe care îl reprezintă
o carte pentru o bibliotecă.
Fiecare fişier are un identificator de fişier (sau nume) asociat, compus din două
câmpuri:
- nume (filename) - format din 1..8 caractere alfanumerice, mai puţin caracterele . "
\ / : | < > + = ;
- extensie (extension) - format din maximum 3 caractere alfanumerice, mai puţin
caracterele date mai sus.
În cadrul identificatorului de fişier, cele două câmpuri sunt scrise împreună şi despărţite
de caracterul "." (punct).
Câmpul extensie desemnează, de regulă, tipul fişierului. Există extensii standard
recunoscute de MS-DOS, cum ar fi: COM, EXE pentru programe executabile, BAT pentru
fişiere de comenzi, SYS pentru drivere sistem etc., şi extensii adoptate prin tradiţie de
utilizatorii sistemului de operare MS-DOS, cum ar fi: PAS pentru fişiere sursă PASCAL, C
pentru fişiere sursă C, ASM pentru fişiere sursă scrise în limbaj de asamblare, DOC pentru
fişiere documentaţie etc.
Numele fişierului împreună cu toate informaţiile necesare accesului la fişier, cum ar fi:
nume, extensie, data şi ora la care a fost creat fişierul, informaţii de regăsire a fişierului pe
disc (numărul sectoarelor ocupate de fişier pe disc) etc., sunt conţinute într-un catalog sau
director, la fel cum numele tuturor cărţilor dintr-o bibliotecă, împreună cu informaţiile de
regăsire a acestora în bibliotecă, sunt conţinute într-un catalog sau index al bibliotecii
respective.
Deci, mai multe fişiere pot fi reunite formând un director, care la rândul lui are un nume
şi o extensie la fel ca orice fişier. Într-un director se pot găsi fişiere, precum şi unul sau mai
multe directoare (subdirectoare), care la rândul lor pot să conţină alte fişiere sau subdirectoare
ş.a.m.d. Aşadar, avem de-a face cu o structură logică arborescentă pe subdirectoare a discului,
structură împrumutată de la sistemul de operare UNIX. Există un director cu statut special,
care reprezintă originea arborelui de subdirectoare şi care poartă numele de director rădăcină.

139
Un exemplu de organizare a discului sub forma unui arbore de subdirectoare este arătat în
figura 7.2.1.

Figura 7.2.1. Exemplu de organizare a discului sub MS-DOS

Dacă din punct de vedere logic un disc este văzut ca o mulţime de fişiere grupate într-o
structură arborescentă de directoare, din punct de vedere fizic, informaţia este scrisă pe disc
de-a lungul unor cercuri concentrice, numite piste, fiecare pistă fiind împărţită în sectoare cu
dimensiunea de 512 octeţi. Capul de citire/scriere al unităţii de disc se mişcă de la o pistă la
alta în timp ce discul se roteşte, permiţând astfel capului de citire/scriere să găsească locul din
/ în care trebuie să citească sau să scrie. Mai multe amănunte legate de organizarea fizică a
discurilor magnetice au fost prezentate în capitolul 5.
Fiecare volum logic (o unitate fizică întreagă cum este discul flexibil, sau o partiţie
hard) este "văzut" ca o secvenţă continuă de sectoare logice, începând cu sectorul logic 0. Aşa
cum s-a arătat în capitolul precedent, discul fix (hard disk-ul) poate fi împărţit în mai multe
partiţii logice, care pot fi utilizate ca discuri independente, ca şi cum am dispune de mai multe
hard disk-uri de capacitate mai mică.
Orice fişier conţine unul sau mai multe sectoare. În sistemul de operare MS-DOS, nu
este necesar ca un fişier să ocupe un spaţiu contiguu pe disc (sectoarele fişierului respectiv să
fie situate unul după altul), gestiunea spaţiului pe disc făcându-se prin intermediul tabelei de
alocare a fişierelor - FAT (File Allocation Table).
Din punct de vedere funcţional, un disc este împărtit în 4 zone:
- BOOT - zonă în care se găseşte programul de încărcare al sistemului de operare,
localizată în sectorul logic 0 al discului flexibil, sau în sectorul logic 0 al partiţiei DOS active,
în cazul discurilor hard.
- DIR - zonă în care se găseşte directorul rădăcină, organizată sub forma unui tabel,
fiecare intrare în tabel (linie din tabel), de 32 de octeţi, conţinând toate informaţiile despre un
fişier. De exemplu, în octeţii 0-7 ai intrării corespunzătoare unui fişier se găseşte numele
(filename) fişierului, în octeţii 8-10 extensia fişierului, în octeţii 22-23 timpul la care a fost
creat sau modificat ultima dată fişierul, în octeţii 24-25 data creării sau ultimei modificări a
fişierului, în octeţii 26-27 numărul primului cluster al fişierului, în octeţii 28-31 dimensiunea

140
fişierului în octeţi etc. Directorul rădăcină are un număr limitat de intrări, depinzând de tipul
discului:
- 112 - pentru discurile flexibile de 320, 360 şi 720Kb;
- 224 - pentru discurile flexibile de 1,2 şi 1,4Mb;
- 512 - pentru hard disk-uri.
Un subdirector este un fişier care conţine o asemenea tabelă, cu structura dată mai sus,
numărul de intrări în tabelă nefiind limitat.
- FAT - zonă în care se găseşte tabela de alocare a fişierelor. Pentru siguranţă, se
păstrează două copii ale tabelei de alocare a fişierelor, astfel încât atunci când una din tabele
este distrusă, se poate folosi cealaltă tabelă, prevenindu-se pierderea informaţiei de pe tot
discul, prin distrugerea informaţiei de alocare a discului din FAT.
- FILE - zonă în care vor fi plasate fişierele de pe disc. La începutul acestei zone se
găsesc fişierele sistem IO.SYS şi MSDOS.SYS, care ocupă şi primele două poziţii în
directorul rădăcină.
MS-DOS împarte spaţiul pe disc în unităţi de alocare sau cluster-e. Numărul de sectoare
conţinute într-un cluster depinde de tipul şi capacitatea discului magnetic. Pentru discurile
flexibile simplă faţă, un cluster conţine un singur sector; pentru discurile flexibile dublă faţă,
un cluster conţine două sectoare etc. Cluster-ele sunt numerotate în funcţie de poziţia fizică
ocupată de acestea pe disc. Primul cluster de pe disc va conţine primul sau primele sectoare
situate după directorul rădăcină. În figura următoare este dată structura de sectoare, piste,
cluster-e a unui disc flexibil dublă faţă cu 9 sectoare pe pistă.

Orice intrare în director (în directorul rădăcină sau într-un subdirector) conţine 32 de
octeţi. În octeţii 26 şi 27 ai intrării în director corespunzătoare unui fişier se găseşte numărul
primului cluster ocupat de fişier pe disc. Numărul celui de-al doilea cluster al fişierului este
găsit în intrarea din tabela de alocare a fişierelor, cu acelaşi număr ca şi numărul primului
cluster; numărul celui de-al treilea cluster este găsit tot în FAT, în intrarea cu numărul egal cu
numărul celui de-al doilea cluster al fişierului ş.a.m.d.
O intrare în FAT conţine 2 octeţi (FAT16) în cazul discurilor hard şi 1,5 octeţi în cazul
discurilor flexibile. Proiectanţii sistemului de operare MS-DOS au decis să folosească numai
1,5 octeţi în cazul discurilor flexibile, deoarece pe 2 octeţi pot fi codificate 65536 de numere

141
care indică cluster-e pe disc şi, evident, un disc flexibil nu poate să conţină atât de multe
cluster-e. Astfel, tabela de alocare a fişierelor va ocupa mai puţin spaţiu pe discul flexibil.
Pentru gestionarea discurilor hard actuale de mari dimensiuni, în special variantele recente de
Windows (95,98), utilizează tabele FAT pe 32 de biţi (FAT32).
Valorile conţinute de o intrare în FAT împreună cu semnificaţiile lor sunt date în
următoarea tabelă:

Valoare Semnificaţie
(0)000 Cluster disponibil
(F)FF0-(F)FF6 Cluster rezervat
(F)FF7 Cluster defect
(F)FF8-(F)FFF Ultimul cluster al unui fişier
(X)XXX Cluster ce aparţine unui lant

În concluzie, orice fişier de pe disc conţine unul sau mai multe cluster-e (fiecare cluster
fiind compus din unul sau mai multe sectoare), înlănţuite prin intermediul tabelei de alocare a
fişierelor, numărul primului cluster din lanţ fiind conţinut în intrarea corespunzătoare din
directorul în care se află fişierul respectiv. Intrarea din FAT cu numărul ultimului cluster al
fişierului va conţine o valoare între FFF8H şi FFFFH pentru discurile hard, şi o valoare între
FF8H şi FFFH în cazul discurilor flexibile, ceea ce specifică sfârşitul lanţului de cluster-e ale
fişierului, această valoare nemaindicând un cluster de pe disc.
Pentru a specifica complet un fişier, identificatorul de fişier, format din nume şi
extensie, trebuie completat cu numele unităţii de disc şi numele subdirectorului în care se află
fişierul. De fapt se specifică o cale de acces (path), indicându-se modul de parcurgere al
arborelui de subdirectoare, de la directorul rădăcină la subdirectorul în care se găseşte fişierul.
Calea de acces se specifică prin scrierea numelor de subdirectoare în ordine, despărţite de
caracterul "\". Directorul rădăcină se specifică tot prin caracterul "\".
Numele unităţii de disc, pe care se găseşte fişierul, poate fi A sau B în cazul discurilor
flexibile, şi C sau o altă literă, pentru discul fix sau o partiţie logică pe discul fix.
Astfel, identificatorul complet al unui fişier este :
[d:][path]filename[.ext]
unde:
d - este numele unităţii de disc pe care se află fişierul,
path - este calea de acces din directorul rădăcină în subdirectorul în care se află
fişierul,
filename - este numele fişierului,
ext - este extensia fişierului.

142
Elementele din paranteză sunt opţionale, deci pot să lipsească. Sistemul de operare MS-
DOS ţine evidenţa a două valori: disc implicit şi director curent, care pot fi modificate cu
ajutorul comenzilor MS-DOS, şi care înlocuiesc primele două câmpuri din identificatorul
complet de fişier, atunci când acestea nu sunt specificate. Directorul curent este directorul
unde MS-DOS caută fişierele al căror identificator de fişier a fost introdus fără specificarea
directorului în care se găsesc fişierele respective. Analog, discul implicit este reprezentat de
numele discului flexibil sau al discului fix (partiţiei logice, dacă discul fix este partiţionat în
mai multe partiţii logice) pe care MS-DOS caută fişierele, atunci când unitatea de disc nu este
specificată în identificatorul de fişier.
Exemple:
A:\DOS\FORMAT.EXE - specifică fişierul FORMAT.EXE din subdirectorul DOS al
directorului rădăcină, de pe discul A.
C:\USERS\VLAD\TEXT.TXT - specifică fişierul TEXT.TXT din subdirectorul VLAD
al subdirectorului USERS, al directorului rădăcină de pe discul fix C.
B:PROGRAM.COM - specifică fişierul PROGRAM.COM din directorul rădăcină al
discului B.
\DOS\FORMAT.EXE - specifică fişierul FORMAT.EXE din subdirectorul DOS al
directorului rădăcină, de pe discul implicit.
PROG1.COM - specifică fişierul PROG1.COM din directorul curent al discului
implicit.
În afară de nume, extensie, mărime fişier, data şi ora ultimei modificări, informaţii de
regăsire a fişierului pe disc etc., în intrarea din director corespunzătoare unui fişier se
memorează şi atributele fişierului (codificate în octetul numărul 11 din intrare), care pot fi:
- R - Read only - ce specifică faptul că fişierul nu poate fi decât citit, şi nu poate fi
modificat sau şters.
- A - Archive - utilizat de comenzile BACKUP, RESTORE, XCOPY, pentru a marca
dacă fişierul a fost sau nu procesat de către o comandă anterioară.
- S - System - precizează faptul că fişierul aparţine sistemului de operare, şi nu trebuie
utilizat în operaţii curente.
- H - Hidden - determină neafişarea numelui fişierului la comanda DIR, şi face ca
fişierul să nu fie disponibil la comenzile COPY, DEL etc.
Modificarea atributelor unui fişier se poate face cu comanda ATTRIB, care poate
modifica numai primele două atribute, precum şi cu ajutorul interfeţelor grafice utilizator
NORTON COMMANDER, XTG, PCSHELL, DOSSHELL.
MS-DOS simplifică operaţiile de intrare/ieşire cu diferite echipamente periferice,
asignând un nume de fişier rezervat fiecărui echipament de intrare/ieşire. Deci, fiecare
echipament de intrare/ieşire este "văzut" ca un fişier cu un nume special. De exemplu, fişierul
cu numele CON reprezintă consola sistemului (ansamblul tastatură - ecran), fiind posibilă

143
afişarea unui text pe ecran prin scrierea textului respectiv în fişierul text CON, în acelaşi fel în
care se scrie un text în oricare alt fişier text.
Aceste nume rezervate nu pot fi folosite ca nume de fişier obişnuit, ele având un înţeles
special pentru sistemul de operare, care rezervă identificatorii respectivi pentru
echipamentele de intrare/ieşire.
Acestea sunt :
- CON - pentru consola sistemului;
- AUX sau COM1 - pentru interfaţa serială de comunicaţie numărul 1;
- COM2, COM3, COM4 - pentru interfeţele seriale 2, 3, 4;
- PRN sau LPT1 - pentru prima imprimantă (interfaţă) paralelă;
- LPT2, LPT3, LPT4 - pentru interfeţele paralele 2, 3, 4;
- NUL - pentru un echipament inexistent (fictiv), folosit de obicei pentru testarea
programelor.
Numele de echipamente de mai sus pot fi folosite în locul unui nume de fişier, în cadrul
unei comenzi DOS.

7.2.2. Lansarea sistemului de operare

La punerea sub tensiune, se execută instrucţiunea de la adresa fizică FFFF0H, pentru


sistemele cu microprocesor I8086 (FFFFF0H la I80286, şi FFFFFFF0H la I80386 şi I80486),
unde se găseşte un salt necondiţionat în ROM-BIOS-ul calculatorului; acea parte din BIOS-ul
sistemului de operare rezidentă în memoria ROM a calculatorului. Programul din această
memorie efectuează următoarele actiuni:
- scrie şi citeşte toată memoria RAM pentru depistarea eventualelor erori;
- testează componentele principale ale sistemului: discurile, tastatura etc.;
- citeşte microcomutatoarele (switch-urile) la calculatoarele IBM PC/XT, sau memoria
CMOS la celelalte variante de calculatoare IBM, pentru a determina configuraţia
curentă: dimensiunea memoriei RAM existente în sistem, numărul şi tipul unitătilor de
disc, tipul interfeţei grafice etc.
După toate aceste operaţii, programul din ROM-BIOS încarcă programul încărcător al
sistemului de operare (secvenţa BOOT), din sectorul 0, pista 0, fata 0 a primei unităţi de disc
flexibil, dacă există un disc sistem în această unitate, dacă nu încarcarea secvenţei BOOT
realizându-se din sectorul logic 0 al partiţiei DOS active, de pe discul fix. Un disc sistem este
un disc care conţine secvenţa BOOT, împreună cu cele 3 fişiere care compun sistemul de
operare.
În continuare se dă controlul programului încărcător, care încarcă fişierele IO.SYS şi
MSDOS.SYS de pe discul sistem. Fişierele IO.SYS şi MSDOS.SYS sunt invizibile (au
atributul hidden) şi nu pot fi copiate, şterse sau manipulate prin comenzi uzuale.

144
BIOS-ul sistemului de operare este o interfaţă între hardware-ul calculatorului şi restul
sistemului de operare (implicit între hardware-ul calculatorului şi programele de aplicaţie),
asigurând un caracter de universalitate celorlalte părţi ale sistemului de operare şi
programelor de aplicaţie scrise sub MS-DOS. O dischetă sistem poate fi folosită pe orice
calculator personal compatibil IBM, indiferent de configuraţia hardware a acestuia. Ceea ce
se schimbă este numai BIOS-ul sistemului de operare rezident în memoria ROM. De
asemenea, un program care execută toate operaţiile prin intermediul BIOS-ului, se poate
executa pe orice maşină MS-DOS, indiferent de configuratia hardware a acesteia. Deci
funcţiile BIOS-ului nu se rezumă numai la etapa de iniţializare a sistemului de operare, BIOS-
ul controlând direct toate operaţiile echipamentelor calculatorului: tastatură, ecran,
imprimantă, discuri etc.
Cea de-a doua parte a sistemului de operare, rezidentă în fişierul MSDOS.SYS, conţine
proceduri pentru tratarea din punct de vedere logic (la un nivel superior nivelului fizic, de
bază) a operaţiilor şi resurselor sistemului. Aceste proceduri apelează la rândul lor proceduri
BIOS, configuraţia hardware concretă fiind transparentă la acest nivel.
Interpretorul de comenzi, conţinut în fişierul COMMAND.COM, citeşte comenzi de la
tastatură sau dintr-un fişier de comenzi, după care, dacă comanda este o comandă externă
(neconţinută în fişierul COMMAND.COM, cum ar fi comenzile: DIR, ERA, TYPE etc.),
încarcă de pe disc un fişier cu acelaşi nume ca şi numele comenzii, şi cu extensia COM, EXE
sau BAT. Dacă fişierul este COM sau EXE, se dă controlul programului respectiv, dacă
fişierul are extensia BAT, deci este un fişier de comenzi MS-DOS, se execută rând pe rând
comenzile din fişier.
La iniţializarea sistemului de operare, după încărcarea primelor două fişiere, se caută pe
discul din care a fost încărcat sistemul, în directorul rădăcină, un fişier de configurare numit
CONFIG.SYS. Dacă este găsit, acesta va fi citit, şi comenzile conţinute în acest fişier vor fi
interpretate, configurând sistemul de operare cu anumiţi parametri. Dacă CONFIG.SYS nu
este găsit, sistemul de operare este configurat cu valorile implicite ale comenzilor de
configurare.
După configurarea sistemului este încărcat cel de-al treilea fişier - COMMAND.COM,
care preia controlul şi, în primul rând, încearcă încărcarea (din directorul rădăcină al discului
sistem) şi execuţia unui fişier de comenzi numit AUTOEXEC.BAT. Dacă fişierul este găsit,
sunt executate rând pe rând comenzile din AUTOEXEC.BAT, după care se afişează
prompter-ul sistem (de exemplu C:〉 ) şi se aşteaptă introducerea unei comenzi de la tastatură.
Deci, fişierul AUTOEXEC.BAT ne permite să lansăm programe, sau să executăm anumite
comenzi automat, ori de câte ori se încarcă sistemul de operare.

7.2.3. Configurarea sistemului de operare

145
Fişierul CONFIG.SYS este un fişier text, care conţine comenzi de configurare a
sistemului de operare MS-DOS cu anumiţi parametri, comenzile adăugate sau modificate în
fişierul CONFIG.SYS devenind active la următoarea lansare a sistemului de operare.
Principalele comenzi de configurare sunt următoarele:
7.2.3.1 Comanda BREAK
Sintaxa: BREAK = ON|OFF
Implicit BREAK = OFF
Cu ajutorul opţiunii OFF se poate abandona programul în execuţie, prin apăsarea
simultană a tastelor CTRL şi BREAK, numai în momentul când acesta execută o operaţie cu
tastatura, ecranul, imprimanta standard (PRN) sau adaptorul de comunicaţie COM1. Opţiunea
ON determină abandonarea programului prin CTRL-BREAK, la următorul apel de funcţie
sistem după CTRL-BREAK, nu neapărat la o funcţie sistem ce foloseşte dispozitivele de mai
sus. Funcţiile sistem sunt unităţi program conţinute în sistemul de operare, şi care sunt apelate
de programele din sistem pentru realizarea operaţiilor de intrare/ieşire sau a altor operaţii de
bază.
7.2.3.2 Comanda BUFFERS
Sintaxa: BUFFERS = n [,m] [/x]
n - este un număr între 1 şi 99, ce reprezintă numărul buffer-elor ce vor fi deschise de
sistem la lansarea acestuia;
m - este un număr, ce reprezintă numărul maxim de sectoare ce pot fi citite/scrise într-
un acces la discul magnetic (implicit m este1);
/x - specifică faptul că buffer-ele sunt plasate în memoria expandată.
Un buffer de disc este o zonă de memorie pe care sistemul de operare o utilizează în
operaţiile de citire/scriere cu discul. Sistemul de operare MS-DOS lucrează cu discul
magnetic la nivel de sector, adică scrie sau citeşte sectoare pe sau de pe disc. Dacă, de
exemplu, un program doreşte să scrie sau să citească un număr de octeţi care nu este un
multiplu al dimensiunii sectorului (512), sistemul de operare verifică dacă sectorul ce trebuie
accesat se află într-unul din buffer-ele din memorie. Dacă da, se efectuează citirea sau scrierea
din sau în buffer. Dacă sectorul nu se găseşte într-unul din buffer-e, acesta va fi citit şi adus
într-un buffer, după care se face transferul în sau din buffer.
Numărul de buffer-e deschise simultan în memorie influenţează timpul de lucru cu
discul magnetic, şi deci viteza de execuţie a aplicaţiilor. Pentru un program care utilizează
frecvent discul în operaţii de citire/scriere este indicat un număr cât mai mare de buffer-e
deschise în memorie. Dar, trebuie avut în vedere că, mai multe buffer-e deschise, vor ocupa
mai multă memorie ( n x 512 ) şi, de asemenea, crescând numărul de buffer-e, creşte timpul
de căutare în buffer-e şi acesta poate deveni comparabil cu timpul de acces la disc.
Deci nu există un număr standard de buffer-e care să satisfacă toate aplicaţiile, acesta se
determină prin încercări, în funcţie de aplicaţie şi de dimensiunea memoriei RAM disponibile.

146
7.2.3.3 Comanda COUNTRY
Sintaxa: COUNTRY = xxx [, [yyy] [, [ d: ]filename]]
xxx - codul ţării
yyy - pagina de cod (vezi comanda KEYB)
filename - numele fişierului care conţine informaţii despre ţara xxx.
Prin această comandă se specifică sistemului de operare setul de caractere pe care
dorim să-l utilizăm. Dacă în fişierul CONFIG.SYS nu se foloseşte comanda COUNTRY, se
consideră implicit setul de caractere folosit în SUA. Dacă nu se specifică nici un nume de
fişier prin filename, se vor lua informaţiile despre ţara xxx din fişierul COUNTRY.SYS.
7.2.3.4 Comanda FILES
Sintaxa: FILES = X unde
X - este un număr între 8 şi 255. Implicit X este 8.
Prin această comandă se specifică numărul maxim de fişiere ce pot fi deschise simultan.
Înainte de orice operaţie cu un fişier, sistemul de operare trebuie să deschidă acel fişier. La
deschiderea fişierului, MS-DOS construieşte blocul de parametri pentru acel fişier, în zona
proprie de memorie rezervată la lansarea sistemului de operare. Deci, numărul de fişiere ce
pot fi deschise simultan depinde de dimensiunea acestei zone, care depinde de valoarea
specificată prin comanda FILES.
7.2.3.5 Comanda SHELL
Sintaxa: SHELL = [d:][path]filename[params]
Prin această comandă se poate folosi un interpretor de comenzi diferit de
COMMAND.COM, şi care va fi încărcat şi plasat în memorie în locul lui COMMAND.COM.
filename - numele fişierului care conţine interpretorul de comenzi;
params - parametrii (linia de comandă) necesari noului interpretor de comenzi.
De exemplu, prin comanda SHELL = C:\DOS\XTG se specifică folosirea interfeţei
utilizator XTG, în locul interpretorului de comenzi COMMAND.COM.
7.2.3.6 Comanda DEVICE
Sintaxa: DEVICE = [d:][path]filename[params]
Comanda permite specificarea unui nume de fişier ce conţine un driver de intrare/ieşire,
care va fi încărcat în memorie odată cu sistemul de operare. Un driver este un program care
controlează toate operaţiile cu un dispozitiv de intrare/ieşire. Toate celelalte programe care
doresc să lucreze cu dispozitivul de intrare/ieşire respectiv , vor apela driver-ul de
intrare/ieşire corespunzător.
filename - specifică fişierul ce conţine driver-ul de intrare/ieşire,
params - parametrii (sau opţiunile) acceptaţi de driver-ul de intrare/ieşire.
La încărcarea sistemului de operare, se încarcă automat şi driver-ele pentru ecran,
tastatură, imprimantă, disc magnetic şi ceas. Deci, nu trebuie specificată nici o comandă
DEVICE care să încarce aceste driver-e. Atunci când avem un nou dispozitiv (scaner, mouse

147
etc.) sau când vrem să schimbăm driver-ele standard încărcate automat la lansarea sistemului
de operare, va trebui să specificăm, printr-o comandă DEVICE, fişierul ce conţine noul
driver, precum şi directorul în care se află. Tot în mod automat sunt încarcate şi driver-ele
COUNTRY.SYS şi KEYBOARD.SYS, la lansarea sistemului de operare.
Drivere nestandard:
ANSY.SYS - permite instalarea driver-elor cu funcţii extinse pentru ecran şi tastatură.
Prin intermediul unor secvenţe de caractere, care încep cu caracterul ESC, sunt
disponibile funcţii pentru mutarea cursorului, redefinirea caracterelor de pe
tastatură, stabilirea culorilor de fond şi pentru scriere etc.
DISPLAY.SYS - permite schimbarea paginii de cod pentru consola sistemului.
DRIVER.SYS - permite crearea unor echipamente logice de tip disc flexibil, asociate
unor unităţi de disc flexibil conectate la controlerul de disc flexibil.
PRINTER.SYS - permite schimbarea paginii de cod pentru imprimantele paralele
cuplate la porturile paralele LPT1 (PRN), LPT2, LPT3, LPT4.
RAMDRIVE.SYS (VDISK.SYS) - permite crearea unui disc virtual în memoria RAM
(sau RAM-disc). Deci, sistemul de operare va scrie/citi în/din zona de memorie
alocată pentru RAM-disc, ca şi când ar lucra cu un disc magnetic. Viteza de
acces la date va fi mult mai mare, sistemul accesând informaţiile de pe disc la
aceeaşi viteză ca şi datele din memoria internă, dar există riscul pierderii
conţinutului discului virtual în cazul unei blocări a sistemului.
SMARTDRIVE.SYS - permite accelerarea transferului de date între memoria RAM şi
discul magnetic, fiind util în aplicaţiile care lucrează cu multe fişiere, şi ducând
la o creştere a vitezei de execuţie a acestor aplicaţii de până la 10 ori. Nu poate fi
utilizat împreună cu RAMDRIVE.SYS.
XMAEM.SYS - emulează memoria expandată în memoria extinsă a sistemului. Se
utilizează numai împreună cu XMA2EM.SYS şi nu împreună cu HIMEM.SYS.
XMA2EM.SYS - driver care permite instalarea unei memorii expandate cu
specificaţiile stabilite de firmele LOTUS, INTEL, MICROSOFT.
HIMEM. SYS - driver care permite instalarea unei memorii extinse standard, şi care nu
poate fi folosit împreună cu driver-ele XMAEM.SYS şi XMA2EM.SYS.
EMM386.SYS - emulează memoria expandată în memoria extinsă, atunci când se
foloseşte driver-ul de memorie extinsă HIMEM.SYS.
SERPRN.SYS - driver de comunicaţie serială care utilizează protocolul XON|XOFF.

Pentru o mai bună înţelegere, este necesară lămurirea unor noţiuni folosite în sistemul
de operare MS-DOS, cum ar fi tipurile de memorie existente sub MS-DOS. Sistemul de
operare MS-DOS este limitat din punctul de vedere al accesului la memoria internă a
calculatorului, datorită faptului că a fost proiectat pentru calculatoare care funcţionau pe baza

148
microprocesoarelor 8086/8088, ce utilizau 1Mb de RAM. Însă, datorită avansului tehnologic,
memoria fizic disponibilă în PC-urile actuale a crescut simţitor, iar sistemul de operare MS-
DOS nu a evoluat odată cu calculatoarele. Astfel, au apărut secvenţe suplimentare de
software, pentru a permite sistemului de operare şi aplicaţiilor rulate pe el, accesul la memoria
peste limita de 640Kb. Aceste drivere de memorie se numesc “memory managers”. Există
următoarele tipuri de zone de memorie sub sistemul MS-DOS:
- Memoria convenţională - este zona de memorie cuprinsă între adresele 0Kb şi
640Kb, pe care sistemul de operare o utilizează în operaţiile obişnuite. Zona de memorie cu
adrese între 640Kb şi 1Mb este rezervată de sistemul de operare, pentru funcţii primitive ale
adaptorului video, controlerului de disc, scanner, funcţii ROM-BIOS etc. (vezi figura 7.2.2).
- Memoria expandată - este o zonă de memorie situată în afara memoriei
convenţionale, între 640Kb şi 1Mb, conţinând ferestre de memorie din această zonă
neocupate de sistemul de operare (BIOS), şi în care se translatează pagini din memoria
extinsă.
Odată cu apariţia procesoarelor 80286, memoria fizic adresabilă a crescut la 16Mb.
Deoarece MS-DOS nu permitea accesul decât la primii 640Kb, o idee (copiată de la CP/M) a
fost de a folosi o porţiune (de obicei de 64Kb) din memoria situată peste 640Kb, ca o zonă de
memorie tampon pentru accesul la un volum mai mare de memorie. Prin intermediul unui
driver de memorie expandată, acesta fiind numele acestei tehnici de mărire a spaţiului de
memorie, se poate comuta între mai multe blocuri de memorie. Sistemul poate accesa astfel o
cantitate mai mare de memorie, vizibilă însă prin fereastra de 64Kb. Acest standard a căpătat
numele LIM EMS, şi multe programe îl pot folosi (Lotus 123, Quattro Pro, Borland C++
etc.). Uneori această memorie externă poate exista în calculatoare prin intermediul unor plăci
speciale de extensie.
Deci, memoria expandată reprezintă memoria adresabilă printr-o asociere dintre un
driver de memorie extinsă şi un adaptor hardware pentru memoria expandată. Aceasta nu se
încadrează într-un interval fix de adrese, putând ocupa zona dintre 640Kb şi 1Mb, neocupată
de componentele sistemului de operare ce se găsesc în această zonă (vezi figura 7.2.3).
Principiul de funcţionare este reprezentat de o zonă de memorie variabilă neocupată, din
spaţiul 640Kb - 1Mb, în care se translatează succesiv pagini din memoria ataşată fizic
suplimentar.
- Memoria extinsă - este zona de memorie situată dincolo de 1Mb, şi pe care MS-DOS o
foloseşte pentru anumite scopuri precise, cum ar fi: instalarea unui RAM-disc, operaţii
BIOS etc. Această memorie este folosită în modul protejat al procesoarelor x86 sub
sistemele Windows şi OS/2.

149
MEMORIA CONVENŢIONALĂ
0 640KB

ROM BIOS
Memorie liberă

Interfaţă disc dur


COMMAND.COM
Drivere pentru Video color
periferice
Video monocrom
MS-DOS

Figura 7.2.2. Memoria convenţională

MEMORIA EXPANDATĂ
0 640KB

memorie MS-DOS
ROM BIOS
Bloc de 64KB

Figura 7.2.3. Memoria expandată

150
MEMORIA EXTINSĂ
16MB – 286
0 640KB 1MB 4GB – 386/386

memorie MS-DOS memorie extinsă

Figura 7.2.4. Memoria extinsă

În calculatoarele mai vechi, memoria de bază era de 1Mb, primii 640Kb fiind folosiţi de
MS-DOS, restul fiind folosit de diverse dispozitive periferice şi ca memorie extinsă. La
apariţia procesoarelor 286, 386 şi 486, au fost concepute şi o serie de cipuri complexe, care
permiteau gestiunea şi manipularea unui volum fizic mai mare de memorie pe placa de bază.
Acestea au fost numite AT Chip Set, acum comune în majoritatea PC-urilor, şi care permit
accesul la spaţiul de memorie peste limita de 1Mb. Acest aspect a complicat accesul la zonele
libere de memorie între 640Kb şi 1Mb. Cât spaţiu este disponibil în această zonă, variază de
la calculator la calculator, în funcţie de numărul şi tipul dispozitivelor periferice existente.
Această zonă are între 8Kb şi 128Kb şi este denumită Upper Memory Area. De la versiunea
MS-DOS 5.0 în sus, aceste blocuri de memorie au devenit integrate în gestiunea memoriei
sistemului de operare, via un software special (EMM386.EXE), care poate deplasa în acea
zonă în special drivere de dispozitive periferice, pentru a elibera mai multă memorie
convenţională.
La apariţia interfeţei Microsoft Windows 3.0, s-a constatat că 64Kb, în plus faţă de
normal, erau disponibili pentru aplicaţii. Aceasta se datora unor greşeli în proiectarea
procesoarelor 286 şi superioare, descoperindu-se că primii 64Kb de memorie extinsă, peste
limita de 1Mb, puteau fi accesaţi, această zonă fiind cunoscută ca High Memory Area. Astfel,
shell-ul sistemului de operare putea fi încărcat în această zonă.

7.2.4. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT.

Un fişier lot de lucrări (fişier batch) este un fişier text ce conţine una sau mai multe
comenzi DOS, care se execută împreună. Aceste fişiere de tip batch trebuie să aibă extensia
BAT. Pentru executia fişierului batch, se introduce de la tastatură numai numele fişierului,
fără extensie.
De fiecare dată când este lansat sistemul de operare, după ce se încarcă fişierul
COMMAND.COM, acesta preia controlul şi încearcă încărcarea unui fişier de comenzi, numit
AUTOEXEC.BAT, din directorul rădăcină de pe discul din care a fost încărcat sistemul, fişier
care conţine comenzile ce se doresc a fi executate automat, de fiecare dată la lansarea
sistemului de operare.

151
De exemplu, fişierul AUTOEXEC.BAT poate conţine următoarele comenzi:
CLS
DEL *.BAK
XTG
Deci, de fiecare dată când se lansează sistemul de operare, se şterge ecranul, se şterg
toate fişierele cu extensia BAK, după care se lansează în execuţie interfaţa utilizator XTG.
În interiorul unui fişier de lucrări se pot include şi parametri fictivi, care vor fi înlocuiţi
cu valorile introduse în linia de comandă, prin care se lansează în executie fişierul de comenzi
respectiv. De exemplu, dacă avem un fişier de comenzi numit LOT.BAT, şi care conţine
următoarele comenzi:
COPY %1.PAS %2.PAS
TYPE %2.PAS
DEL %1.PAS
TYPE %0.BAT
parametrii fictivi %0, %1, %2 vor fi înlocuiţi, în ordine, de parametrii din linia de
comandă prin care se execută fişierul de comenzi. Pot fi specificati 10 parametri fictivi în
interiorul unui fişier de comenzi ( %0 - %9 ). Parametrul %0 este înlocuit cu numele
fişierului de comenzi. Se poate executa fişierul LOT.BAT prin următoarea comandă:
LOT A:PROG1 C:PROG2
Efectul acestei comenzi este execuţia succesivă a următoarelor comenzi:
COPY A:PROG1.PAS C:PROG2.PAS
TYPE C:PROG2.PAS
DEL A:PROG1.PAS
TYPE LOT.BAT
Dacă se introduce comanda LOT OLD NEW, parametrii %0, %1, %2 vor fi înlocuiţi, în
ordine cu: LOT, OLD, NEW.
Un fişier de comenzi poate fi întrerupt apăsând simultan tastele CTRL şi BREAK, la
care sistemul răspunde cu întrebarea:
TERMINATE BATCH JOB (Y/N)?
Dacă se răspunde cu Y, restul comenzilor din fişier sunt ignorate; dacă se răspunde cu
N, este abandonată numai comanda aflată în execuţie, după care se continuă cu următoarele
comenzi din fişier.
În mod obişnuit, comenzile citite din fişierul de comenzi sunt afişate pe ecran în ordinea
execuţiei. Dacă însă fişierul de comenzi conţine o comandă ECHO OFF, acestea nu vor mai fi
afişate pe ecran. ECHO ON permite afişarea tuturor comenzilor în ordinea execuţiei lor.
ECHO este activ (ON) după fiecare încărcare a sistemului de operare. Comanda ECHO nu are
efect asupra mesajelor produse de execuţia comenzilor, care sunt afişate pe ecran indiferent
dacă ECHO este ON sau OFF.

152
7.2.5. Procesorul de comenzi

Procesorul de comenzi COMMAND.COM asigură interfaţa între utilizator şi sistemul


de operare, preluând de la tastatură o linie de comandă terminată cu caracterul ENTER, pe
care o depune într-un buffer intern, în vederea analizei şi execuţiei comenzii respective.
Primul cuvânt din linia de comandă reprezintă numele comenzii, şi trebuie să fie numele unei
comenzi interne sau numele unui fişier cu extensia EXE, COM sau BAT, următoarele cuvinte
din linia de comandă fiind parametrii comenzii respective.
Procesorul de comenzi acceptă, ca parametri în linia de comandă, nume generice de
fişier. Un nume generic de fişier este un identificator de fişier care conţine caracterele ? şi *.
Caracterul ? se echivalează cu un singur caracter, în timp ce caracterul * se echivalează cu un
şir de caractere. Aceste caractere pot fi folosite numai în cadrul numelui de fişier (filename) şi
al extensiei de fişier.
Exemple:
PROG*.* - specifică toate fişierele din directorul curent de pe discul implicit, al căror
nume de fişier începe cu şirul de caractere PROG, se continuă cu orice şir de
caractere, şi au orice extensie.
A:\USERS\*.PAS - specifică toate fişierele cu extensia PAS din subdirectorul USERS
al directorului rădăcină, de pe discul A.
B:FYLE?.ASM - specifică toate fişierele din directorul rădăcină al discului B, al căror
nume începe cu FYLE, se continuă cu orice caracter (dar numai un singur
caracter), şi care au extensia ASM.
Caracterele de control acceptate de COMMAND.COM sunt următoarele:
CTRL-C sau CTRL-BREAK - încheie execuţia comenzii curente,
CTRL-ALT-DEL - reîncarcă (relansează) sistemul de operare,
CTRL-P - determină trimiterea informaţiilor afişate pe ecran şi la imprimantă, până
când este tastat următorul caracter CTRL-P,
F3 - scoate din buffer linia de comandă sau restul liniei de comandă anterioare,
F1 - scoate din buffer următorul caracter al liniei de comandă executate anterior,
F2C - scoate din buffer caracterele liniei de comandă anterioare, până la întâlnirea
caracterului C.
Ultimele trei caractere de control sunt utile atunci când s-a greşit o comandă, nefiind
necesară tastarea din nou a întregii comenzi.
Tot în cadrul liniei de comandă, se mai pot folosi şi următoarele caractere speciale:
〉- redirectează ieşirea unui program de la ecran (CON) către un fişier sau alt
dispozitiv de intrare/ieşire. Dacă fişierul exista anterior, se va pierde vechiul
conţinut.

153
〉〉 - redirectează ieşirea unui program de la ecran către un fişier sau un alt dispozitiv de
intrare/ieşire. Dacă fişierul există, noile informaţii sunt adăugate la sfârşitul
fişierului.
〈 - redirectează intrarea unui program la un fişier sau alt dispozitiv de intrare/ieşire, în
locul tastaturii (CON), programul preluând datele de intrare dintr-un fişier (care
poate fi un nume rezervat pentru un echipament de intrare/ieşire) şi nu de la
tastatură.
| - cuplează ieşirea unui program cu intrarea altui program.
Exemple:
DIR A: 〉 FILE - listează conţinutul directorului rădăcină al discului A, dar nu pe
ecran, ci în fişierul text FILE, care poate fi vizualizat ulterior, de exemplu cu
comanda TYPE. Vechiul conţinut al fişierului FILE se pierde, dacă fişierul FILE
exista anterior pe disc.
DIR 〉〉 FILE - listează conţinutul directorului curent de pe discul implicit, adăugând
informaţiile la sfârşitul fişierului FILE, dacă acesta exista anterior pe disc.
TYPE FILE.DAT | PROG - programul PROG va prelucra informaţiile de ieşire ale
comenzii TYPE FILE.DAT, respectiv conţinutul fişierului text FILE.DAT va
reprezenta intrarea programului PROG.
PROG 〈 FILE - programul PROG va prelua datele de intrare din fişierul FILE, şi nu
de la tastatură.
În prezent, majoritatea utilizatorilor sistemului de operare MS-DOS preferă ca în locul
introducerii comenzilor MS-DOS printr-o linie de comandă, să folosească interfaşa grafică
DOS Shell sau o altă interfaţă grafică utilizator: NORTON COMMANDER, PCSHELL,
XTGOLD, cu ajutorul cărora, printr-un sistem de meniuri adecvat, se poate "naviga" prin
structura de directoare a discului şi, în general, se pot executa majoritatea comenzilor MS-
DOS într-o manieră mult mai facilă.

7.2.6. Comenzi interne

7.2.6.1 Comanda BREAK


Sintaxa: BREAK ON|OFF
Parametrul ON determină verificarea introducerii caracterului CTRL-BREAK la fiecare
apel de funcţie sistem, ceea ce permite şi întreruperea unui program care efectuează puţine
operaţii cu echipamentele standard de intrare/ieşire. Parametrul OFF determină verificarea
caracterului CTRL-BREAK numai la operaţiile de intrare/ieşire cu echipamentele standard.
Comanda BREAK fără nici un parametru determină afişarea stării curente: ON sau OFF.
7.2.6.2 Comanda CHCP
Sintaxa: CHCP [nnn] , unde nnn este un cod numeric zecimal pe 3 cifre.

154
Dacă se introduce comanda CHCP fără parametrul nnn, se afişează pagina de cod activă
şi paginile de cod pregătite pentru sistem. Dacă se introduce parametrul nnn, acesta trebuie să
desemneze una din paginile de cod pregătite prin comanda COUNTRY în CONFIG.SYS.
7.2.6.3 Comanda CHDIR (CD)
Sintaxa: CD [d:][path]
CHDIR [d: ][path]
Comanda determină schimbarea directorului curent de pe discul specificat sau de pe
discul implicit. Directorul poate fi specificat absolut, indicându-se întreaga cale începând din
directorul rădăcină, sau relativ, când se specifică numai subcalea ce începe din directorul
curent. Dacă în comandă nu se specifică calea prin path, se va afişa directorul curent de pe
discul d, sau discul implicit dacă nu este specificat nici discul.
Exemple:
D: 〉 CD D:\USERS - D:\USERS va deveni directorul curent
D:\USERS 〉 CD VLAD\PROG
D:\USERS\VLAD\PROG 〉 CD ..
D:\USERS\VLAD 〉 CD D:\
D: 〉
În cea de-a doua comandă, directorul care va deveni director curent a fost specificat
relativ, acelaşi efect obţinându-se prin comanda CD D:\USERS\VLAD\PROG. Prin comanda
CD .., directorul părinte al directorului curent va deveni noul director curent.
7.2.6.4 Comanda CLS
Sintaxa: CLS
Comanda CLS determină ştergerea ecranului.
7.2.6.5 Comanda COPY
Sintaxa:
COPY [/a][/b] [d:][path]filename[.ext] [/a][/b] [d:][path][filename[.ext]] [/a][/b][/v]
sau
COPY [/a][/b] [d:][path]filename[.ext] [/a][/b] [ + [/a][/b] [d:][path]filename[.ext][/a][/b]...]
[d:][path][filename[.ext]] [/a][/b][/v]
Comanda COPY copie unul sau mai multe fişiere. Cu cea de-a doua formă se face
concatenarea a două sau mai multe fişiere sursă, despărţite de caracterul "+".
/a - ASCII - copierea are loc până la detectarea caracterului CTRL-Z (orice fişier text se
termină cu caracterul CTRL-Z).
/b - binary - determină o copiere binară, lungimea fişierului fiind specificată în intrarea
din director corespunzătoare fişierului respectiv.
Orice opţiune /a sau /b rămâne activă pentru toate fişierele ce urmează
în linia de comandă, până la întâlnirea unei alte opţiuni /a sau /b.

155
/v - verify - determină verificarea corectitudinii copierii, comparând fişierul (sau
fişierele) sursă cu fişierul destinaţie.
Exemple:
COPY C:\USERS\PROG1.PAS A: - copie fişierul PROG1.PAS din directorul
USERS de pe discul C, într-un fişier cu acelaşi nume şi aceeaşi extensie, în
directorul rădăcină al discului A.
COPY *.PAS A:\USERS\*.TXT - copie toate fişierele cu extensia PAS din
directorul curent de pe discul implicit, în directorul USERS al discului A,
numele fişierelor rămânând neschimbate, în schimb extensia fişierelor
schimbându-se din PAS în TXT.
COPY FILE.TXT CON - determină copierea fişierului FILE.TXT la consolă (afişarea
fişierului FILE.TXT pe ecran, obţinându-se acelaşi efect ca în urma execuţiei
comenzii TYPE FILE.TXT).
Obs: Dacă se omite numele fişierului destinaţie, se păstrează numele fişierului sursă.
La concatenare opţiunea implicită este /a, la o copiere obişnuită fiind /b.
7.2.6.6 Comanda DATE
Sintaxa: DATE [mm-dd-yy]
Permite modificarea sau vizualizarea datei curente. Data se introduce în formatul lună /
zi / an. Ca delimitatori se pot folosi numai caracterele "/", ".", "-". Formatul precizat anterior
poate fi modificat, utilizând comanda COUNTRY sau alte pagini de cod.
7.2.6.7 Comanda DEL
Sintaxa: DEL [d:][path]filename.ext[/p]
ERASE
Comanda şterge fişierul specificat, sau fişierele specificate dacă se foloseşte un nume
generic de fişier.
/p - determină cererea confirmării din partea operatorului pentru ştergerea fiecărui
fişier, atunci când se foloseşte un nume generic de fişier.
Fişierele cu atributele read-only, hidden, system nu pot fi şterse.
7.2.6.8 Comanda DIR
Sintaxa: DIR [d:][path][filename][.ext][/p][/w]
Afişează tot conţinutul unui director, sau numai acele fişiere specificate prin
filename.ext.
/p - determină suspendarea listării conţinutului unui director atunci când s-a umplut
ecranul. Pentru reluarea listării trebuie apăsată o tastă.
/w - determină afişarea numai a numelui şi extensiei fişierelor dintr-un director, fără alte
informaţii despre fişiere, cum ar fi: data şi ora creării sau ultimei modificări,
dimensiune etc.
7.2.6.9 Comanda EXIT

156
Sintaxa: EXIT
Determină încheierea execuţiei procesorului de comenzi COMMAND.COM şi
revenirea în programul din care a fost apelat COMMAND.COM, dacă acesta există. Dacă nu,
se rămâne în COMMAND.COM.
7.2.6.10 Comanda MKDIR (MD)
Sintaxa: MKDIR [d:]path
MD
Crează un nou director. Dacă nu se specifică unitatea de disc, se consideră unitatea de
disc implicită. Directorul poate fi specificat absolut sau relativ.
7.2.6.11 Comanda PATH
Sintaxa: PATH [d:][path][; [d:][path]...]
Prin această comandă se specifică una sau mai multe căi de căutare ale fişierelor
executabile. Dacă o comandă nu este găsită în directorul curent, atunci aceasta este căutată în
ordine în toate căile introduse prin comanda PATH. Comanda PATH, fără parametri,
determină afişarea căilor de căutare introduse printr-o comandă PATH anterioară. Comanda
"PATH ;" determină ştergerea tuturor căilor de căutare.
7.2.6.12 Comanda PROMPT
Sintaxa: PROMPT [text]
Se defineşte un nou prompter al procesorului de comenzi COMMAND.COM.
Prompter-ul este mesajul care apare afişat, atunci când procesorul de comenzi aşteaptă
introducerea unei comenzi.
text poate fi orice şir de caractere alfanumerice, care poate conţine şi specificatori de
tipul $C, unde C poate fi:
p - ce se înlocuieşte cu directorul curent de pe discul implicit,
n - ce se înlocuieşte cu numele discului implicit,
g - se înlocuieşte cu caracterul " 〉 ",
l - se înlocuieşte cu caracterul " 〈 ",
etc.
Dacă nu se specifică nici un text după comanda PROMPT, MS-DOS va reface
prompter-ul normal (numele discului implicit, urmat de calea curentă şi caracterul "〉" ).
Exemple:
D:〉 PROMPT NICU$G
NICU 〉 PROMPT $N$G - reface mesajul sistem obişnuit
D:〉 _
7.2.6.13 Comanda RENAME (REN)
Sintaxa: REN[AME] [d:][path]filename[.ext] filename[.ext]
Schimbă numele fişierului specificat de primul parametru cu numele specificat de cel
de-al doilea parametru. Se pot utiliza nume generice de fişier.

157
Exemple:
REN *.PAS *.TXT - schimbă extensia tuturor fişirelor cu extensia PAS, din
directorul curent de pe discul implicit, la noua extensie
TXT.
7.2.6.14 Comanda RMDIR
Sintaxa: RMDIR [d:]path
RD
Şterge subdirectorul specificat prin path de pe discul d, sau discul implicit când nu se
specifică nici o unitate de disc. Directorul se poate specifica absolut sau relativ. Pentru a fi
şters, un director trebuie să fie gol, deci nu trebuie să conţină fişiere. Directorul curent şi
directorul rădăcină nu pot fi şterse.
Exemplu:
RD A:\USERS\VLAD
7.2.6.15 Comanda SET
Sintaxa: SET [nume = [parametru]]
Prin această comandă se echivalează şirul de caractere desemnat prin nume, cu şirul de
caractere desemnat prin parametru. Interpretorul de comenzi conţine o zonă de memorie
numită zonă context (environment), în care se găsesc toate echivalările de şiruri de caractere
introduse prin comanda SET. Aceste echivalări sunt folosite de programele din sistem.
Dimensiunea zonei context se poate specifica în CONFIG.SYS prin comanda:
SHELL = COMMAND.COM /E:xxx , unde xxx reprezintă dimensiunea în octeţi a
zonei context.
Dacă se introduce comanda SET fără nume, se vor afişa echivalările curente din zona
context; dacă se introduce SET cu nume dar fără parametru, se şterge din zona context
echivalarea şirului de caractere desemnat prin nume.
Exemple:
SET TEMP = C:\USERS\TMP - Programele de aplicaţie pot folosi variabila TEMP,
pentru a salva fişierele temporare în subdirectorul C:\USERS\TMP.
SET TEMP = - şterge din zona context echivalarea anterioară pentru variabila TEMP.
7.2.6.16 Comanda TIME
Sintaxa: TIME [hh:mm[:ss[.xx]]]
Permite introducerea sau modificarea orei curente. Dacă se introduce TIME fără
parametru, se afişează ora curentă, după care se aşteaptă modificarea orei curente.
hh - specifică ora (un număr între 0 şi 23)
mm - specifică minutele ( un număr între 0 şi 59)
ss - specifică secundele ( un număr între 0 şi 59)
xx - specifică sutimile de secundă (un număr între 0 şi 99)
7.2.6.17 Comanda TYPE

158
Sintaxa: TYPE [d:][path]filename[.ext]
Afişează conţinutul fişierului specificat la consolă. Nu se pot folosi nume generice de
fişier. Fişierul specificat trebuie să fie un fişier text.
7.2.6.18 Comanda VERIFY
Sintaxa: VERIFY [ON|OFF]
VERIFY ON determină sistemul să verifice corectitudinea operaţiilor de scriere pe disc.
Implicit VERIFY este OFF. Dacă se introduce VERIFY fără parametru, se va afişa starea
curentă (ON sau OFF) a opţiunii de verificare.
7.2.6.19 Comanda VOL
Sintaxa: VOL [d:]
Afişează eticheta volumului de disc din unitatea specificată, sau din unitatea implicită
dacă nu se specifică nici un parametru.

7.2.7 Comenzi externe

Comenzile externe sunt fişiere executabile, deci cu extensia EXE sau COM, aflate de
regulă în subdirectorul \DOS al discului sistem (de obicei C:\DOS). Prin extensie, orice
program utilizator poate fi considerat o comandă externă.
7.2.7.1 Comanda APPEND - permite căutarea fişierelor care nu sunt găsite în
directorul curent, dar nu neapărat cele cu extensia EXE, COM sau BAT, ca în cazul comenzii
PATH.
Sintaxa: APPEND [d:][path][ ;[d:][path]...][/x:ON|OFF]
[/path:ON|OFF]
APPEND [/x][/e]
Căile de căutare sunt separate prin caracterul ";". Dacă se introduce "APPEND ;" se
şterg toate căile de căutare. Comanda APPEND fără nici un parametru determină afişarea
căilor de căutare introduse printr-o comandă APPEND anterioară.
/e - determină păstrarea căilor de căutare în zona context a interpretorului de comenzi,
ceea ce face posibilă modificarea şi vizualizarea căilor de căutare şi cu comanda
SET.
/x sau /x:ON - determină adăugarea căii specificate în lista căilor de căutare pentru
programele executabile şi permite folosirea numelor generice de fişiere.
/x : OFF - anulează opţiunea /x:ON
/path:OFF - anulează temporar calea (specificată în comandă) de căutare a altor fişiere
decât cele executabile.
/path:ON - anulează opţiunea /path:OFF (opţiunea implicită este /path:ON)
Exemple:
APPEND C:\USERS\321A / x:ON/path:ON

159
APPEND /x:ON/path:OFF
APPEND /x:OFF
7.2.7.2 Comanda ASSIGN
Sintaxa: ASSIGN [ X [ = ] Y [...] ]
Reorientează toate cererile pentru unitatea de disc X către unitatea Y. Comanda
ASSIGN fără parametru determină anularea tuturor reorientărilor anterioare.
Exemple: ASSIGN A=B - în urma acestei comenzi, o comandă DIR A: va avea ca
efect afişarea directorului rădăcină al discului B.
ASSIGN A=B D=C
7.2.7.3 Comanda BACKUP
Sintaxa: BACKUP d:[path][filename[.ext]] d: [/s][/m][/a][/d:date][/t:time][/f:size]
[/l[:[d:][path]filename[.ext]]]

Salvează fişiere de pe un disc pe altul. Se pot folosi nume generice de fişier.


/s - determină salvarea tuturor subdirectoarelor inferioare directorului specificat, pe
lângă fişierele din directorul respectiv.
/m - determină salvarea numai a fişierelor modificate după ultima utilizare a comenzii
BACKUP.
/a - determină adăugarea (şi nu înlocuirea) fişierelor salvate la fişierele de pe discul
destinaţie.
/d:date - determină salvarea fişierelor care au fost modificate după o anumită dată.
/t:time - determină salvarea numai a fişierelor care au fost modificate după o anumită
oră.
/f:size - determină formatarea discului destinaţie înainte de a face salvarea propriu-zisă
(size poate fi 160, 180, 320, 360, 720, 1200, 1440, 1.2, 1.44).
/l - determină crearea unui fişier catalog, cu extensia LOG. Dacă nu se specifică numele
fişierului catalog, se consideră fişierul BACKUP.LOG de pe discul sursă, din
directorul rădăcină. În fişierul catalog sunt trecute numele şi calea tuturor fişierelor
salvate, împreună cu numărul în secvenţă al discului pe care a fost salvat fişierul.
Prima înregistrare a fişierului catalog conţine data şi ora salvării.
Exemplu:
BACKUP C:\USERS\*.PAS A: /s/d:10-09-93/f:1200 - determină salvarea pe
discul A a tuturor fişierelor cu extensia PAS din subdirectorul C:\USERS de pe discul C,
precum şi din subdirectoarele inferioare subdirectorului C:\USERS, dar numai acele fişiere
care au fost modificate după data 10-09-93, formatându-se în prealabil discul la o capacitate
de 1,2Mb.
7.2.7.4 Comanda CHKDSK
Sintaxa: CHKDSK [d:][path][filename[.ext]][/f][/v]

160
Verifică structura de directoare şi tabela de alocare a discului implicit sau cel specificat
în comandă, şi afişează un raport al stării discului. Dacă se specifică un nume de fişier, se va
afişa şi numărul zonelor necontigue ocupate de fişier (sau fişiere, dacă s-a utilizat un nume
generic de fişier).
/f - determină executarea corecţiilor în director sau tabela de alocare. Fără opţiunea /f se
pot analiza rezultatele corecţiilor fără scrierea lor efectivă pe disc (corecţiile sunt
simulate).
/v - determină afişarea detaliată a informaţiilor şi erorilor întâlnite.
7.2.7.5 Comanda EXE2BIN
Sintaxa: EXE2BIN [d:][path]filename[.ext] [d:][path][filename[.ext]]
Converteşte un fişier din format EXE în format imagine memorie (COM). Dacă nu se
specifică extensia celui de-al doilea fişier, se consideră implicit extensia BIN. Extensia
implicită a primului parametru este EXE. Fişierele în format EXE sunt fişiere relocabile,
fiind posibilă rularea lor de la diferite adrese de încărcare. Fişierele EXE conţin informaţii de
relocare, care ajută sistemul de operare să execute relocarea programului respectiv atunci
când acesta este încărcat în memorie. Fişierele COM sunt fişiere imagine memorie, fiind
încărcate şi rulate numai în zona de memorie pentru care sunt generate adresele din fişier. În
schimb, fişierele COM sunt de dimensiune mai mică, deoarece nu conţin informaţii de
relocare, şi sunt încărcate mai rapid în memorie de către procesorul de comenzi, care nu mai
execută relocarea adreselor programului respectiv.
7.2.7.6 Comanda FDISK
Sintaxa: FDISK
Partiţionează un disc hard. Comanda pune la dispozitie un sistem de menu-ri adecvat,
care ajută utilizatorul în operaţiile de gestiune a partiţiilor. Dimensiunea maximă a unei
partiţii este de 2Gocteţi. Partiţia activă este acea partiţie din care se încarcă sistemul de
operare. După partiţionare, fiecare partiţie trebuie formatată cu ajutorul comenzii FORMAT.
7.2.7.7 Comanda FORMAT
Sintaxa: FORMAT d: [/1][/4][/8][/n:sectors][/t:tracks][/v:[label]][/s]
FORMAT d: [/1][/b][/n:sectors][/t:tracks]
FORMAT d: [/v][/f:size][/s]
Comanda crează directorul rădăcină, tabela de alocare a fişierelor, scrie pe disc
programul încărcător al sistemului de operare, şi verifică discul marcând cluster-ele defecte în
FAT, prevenind în acest fel utilizarea lor ulterioară. În cazul discurilor flexibile, crează şi
structura fizică a discului (structura de sectoare, piste, cilindri ), prin scrierea informaţiilor
utilizate de către controlerul de floppy disk. La discurile fixe, structura fizică este creată cu
ajutorul unor programe ca HDINIT sau FDISK, comanda FORMAT iniţializând numai
structura logică a discului. Parametrii comenzii sunt următorii:
/1 - formatare simplă faţă

161
/4 - formatare simplă sau dublă faţă în unităti de 1,2Mocteti
(numai pentru discuri de 5,25")
/8 - formatare cu 8 sectoare pe pistă
/b - bootable - creează spaţiu pe disc pentru fişierele sistem IO.SYS şi MSDOS.SYS,
fără a le plasa pe disc
/s - system - copie fişierele sistem ale căror nume sunt găsite în fişierul FORMATS.TBL
de pe discul implicit. Discul formatat trebuie să aibă o capacitate mai mare de
1,2Mocteţi
/t:tracks - specifică numărul de piste al discului ce se formatează
/n:sectors - specifică numărul de sectoare pe pistă al discului ce se formatează
/v:label - specifică eticheta (numele discului) de volum a discului
/f:size - specifică dimensiunea discului ce se formatează. Nu se utilizează în acelaşi
timp cu opţiunile /n şi /t. Valorile posibile ale parametrului size sunt : 160, 180,
320, 360, 1200, 1.2, 720, 1440, 1.44. Practic, în prezent, marea majoritate a
utilizatorilor de calculatoare utilizează numai discuri flexibile de 3,25", cu
capacitatea de 1,44Mocteţi.
Exemple:
FORMAT A: /T:80/N:18/S - formatează discul din unitatea A, cu 18 piste şi 80 de
sectoare pe pistă, copiind fişierele sistem pe noul disc.
FORMAT B: /f:1.44/v:VOL1 - formatează discul din unitatea B la capacitatea de
1,44Mocteţi, specificând o etichetă pentru discul respectiv.
7.2.7.8 Comanda GRAPHICS
Sintaxa: GRAPHICS [type][profile][/r][/b][/lcd]
Permite tipărirea ecranului grafic la imprimantă, atunci când se apasă simultan tastele
SHIFT şi PRTSC.
type - specifică tipul imprimantei: COLOR1 pentru imprimantă IBM cu bandă tuşată
neagră şi 4 nuanţe de gri, COLOR4 pentru imprimante IBM cu bandă RGB
(Red-Green-Blue-black) etc.
profile - specifică numele fişierului ce conţine informaţii despre imprimantele suportate
de sistem. Implicit se folosesc informaţiile din fişierul GRAPHICS.PRO.
/r - reverse - dacă nu se foloseşte această optiune, se tipăreşte alb în loc de negru şi
negru în loc de alb.
/b - background - determină tipărirea culorii de fond (numai pentru COLOR4 şi
COLOR8)
/lcd - determină tipărirea imaginii de pe ecran la imprimantă, în cazul unui display IBM
cu cristale lichide.
7.2.7.9 Comanda KEYB
Sintaxa: KEYB [ xx, [yyy], [[d:][path]filename][/ID:zzz]

162
MS-DOS permite schimbarea modului de afişare a datei şi orei curente, a monedelor
naţionale precum şi schimbarea seturilor de caractere, prin comanda COUNTRY din
CONFIG.SYS. De asemenea, se pot schimba seturile de caractere şi amplasarea tastelor pe
tastatură, utilizând comanda KEYB.
MS-DOS poate afişa pe ecran sau tipări la imprimantă la un moment dat maximum 256
de caractere, care formează pagina de cod activă. Calculatoarele IBM, ca şi imprimantele, vin
cu o pagină de cod implicită, sau pagină de cod hardware. Dacă caracterele dorite nu se află în
pagina de cod hardware, utilizatorul va trebui să utilizeze paginile de cod preparate, care sunt
stocate pe disc în fişiere cu extensia .CPI. Pentru fiecare ţară suportată de MS-DOS, există
câte două pagini de cod pregătite, astfel încât utilizatorul va trebui să selecteze codul uneia
din paginile de cod pregătite pentru ţara respectivă. În totalitate MS-DOS are 6 pagini de cod
preparate, care au următoarele coduri:
863 - Canadian-French (conţine caractere ale limbilor engleză şi franceză din Canada)
850 - Latin (conţine caractere pentru majoritatea limbilor latine)
865 - Nordic (conţine caractere englezeşti, daneze şi norvegiene)
860 - Portugese (conţine caractere englezeşti şi portugheze)
437 - United States (conţine caractere englezeşti şi ale majorităţii limbilor europene)
852 - Slavic (conţine caractere pentru limbile slave cu alfabet latin)
În fiecare pagină de cod preparată, primele 128 de caractere sunt caracterele standard
ASCII, numai ultimele 128 de caractere fiind caracterele specifice limbilor naţionale.
Pentru a utiliza o pagină de cod preparată, mai întâi trebuie încărcate driver-ele
DISPLAY şi PRINTER prin CONFIG.SYS, care pregătesc ecranul şi imprimanta să accepte
alte pagini de cod, apoi trebuie încărcată în memorie pagina de cod ce se doreşte a fi utilizată,
prin comanda MODE (care poate fi plasată în AUTOEXEC.BAT), după care se schimbă
pagina de cod activă cu ajutorul comenzii CHCP.
Parametrii care intervin în sintaxa comenzii KEYB sunt:
xx - un cod pe două litere ce specifică ţara
yyy- codul uneia din paginile de cod pregătite pentru ţara xx
[[d:][path]filename] - specifică fişierul ce defineşte tastatura (implicit
KEYBOARD.SYS)
/ID:zzz - specifică tipul tastaturii utilizate.
Comanda KEYB încarcă un program pentru tastatură, ce rămâne rezident în memorie.
Dacă nu se introduce nici un parametru, se afişează tastatura curentă. CTRL-ALT-F1
determină revenirea la tastatura implicită (SUA), CTRL-ALT-F2 determină revenirea la
tastatura specificată printr-o comandă KEYB anterioară. În tabelul următor sunt date codurile
câtorva ţări, împreună cu paginile de cod pregătite pentru ţările respective.
Cod tastatură Ţara ID Pagini de cod
gr GERMANIA 129 437,850

163
us SUA 103 437,850
fr FRANŢA 120/189 437,850
df DANEMARCA 159 865,850
Exemplu: KEYB fr/120
7.2.7.9 Comanda MEM
Sintaxa: MEM [/prog] - afişează programele încărcate în memorie.
MEM [/debug] - afişează programele, driver-ele, împreună cu alte
informaţii, precum şi zonele rămase libere.
7.2.7.10 Comanda MODE
Cel mai adesea comanda MODE este utilizată pentru redirectarea imprimantei paralele
către un port serial. În acest mod se poate efectua o tipărire pe o imprimantă serială, la fel ca
pe o imprimantă paralelă, fără nici o altă modificare în software.
Sintaxa: MODE LPTn := COMm
Redirectează imprimanta paralelă LPTn către portul serial COMm (n,m = 1, 2, 3, 4 şi
reprezintă numărul portului paralel sau serial).
Comanda MODE mai poate fi folosită şi pentru:
- stabilirea modului de lucru pentru un port serial: viteză de transmisie, număr biţi de
stop, dacă se foloseşte sau nu un bit de paritate etc.;
- configurarea unei imprimante paralele: număr caractere pe linie, număr linii pe inch
etc.;
- stabilirea modului de lucru pentru ecran: număr linii pe ecran, dacă ecranul este color
sau alb/negru etc.
7.2.7.11 Comanda RECOVER
Sintaxa: RECOVER [d:][path]filename[.ext]
RECOVER d:
Prima formă recuperează toate cluster-ele nedistruse ale fişierului specificat şi
marchează cluster-ele defecte în FAT, pentru a preveni alocarea ulterioară a acestora.
Exemplu: RECOVER FIŞIER.PAS
Cea de-a doua formă este folosită când a fost distrusă informaţia din directorul rădăcină,
şi se doreşte recuperarea tuturor fişierelor de pe disc. Se investighează toate lanţurile de
cluster-e din FAT, şi se crează câte un fişier cu numele FILEnnnn.REC pentru fiecare lanţ de
alocare găsit (nnnn este un număr în secvenţă începând cu 0001).
7.2.7.12 Comanda RESTORE
Sintaxa: RESTORE d: [d:][path][filename[.ext]] [/s][/p][/b:date][/a:date][/m]
[/n][/l:time][/e:time]
Este comanda inversă comenzii BACKUP, şi restaurează unul sau mai multe fişiere
pornind de la o arhivă realizată cu comanda BACKUP, pe unul sau mai multe discuri
flexibile.

164
Primul parametru (d:) specifică unitatea de pe care se face restaurarea. Al doilea parametru
reprezintă unitatea pe care se face restaurarea şi eventual fişierele care se restaurează.
/s - se vor restaura şi fişierele din subdirectoarele inferioare directorului specificat.
/p - determină cererea confirmării din partea utilizatorului, atunci când se restaurează un
fişier care a fost modificat de la ultima salvare sau care este read-only.
/b:date - determină restaurarea tuturor fişierelor modificate înaintea datei specificate.
/a:date - determină restaurarea tuturor fişierelor modificate după data specificată
/m - determină restaurarea numai a fişierelor şterse sau modificate după ultima salvare.
/n - determină restaurarea numai a fişierelor care nu mai există pe discul destinaţie.
/l:time - determină restaurarea fişierelor modificate după ora specificată.
/e:time - determină restaurarea fişierelor modificate înainte de ora specificată.
Exemplu:
RESTORE A: C:\ /m/p - determină restaurarea numai a fişierelor modificate din
unitatea de disc A, pe unitatea C, cerându-se confirmarea la fiecare fişier
modificat ce se restaurează.
RESTORE A: C:\USERS\*.TXT - se restaurează din unitatea A numai fişierele
provenite din subdirectorul C:\USERS şi care au extensia TXT.
7.2.7.13 Comanda SYS
Sintaxa: SYS d:
Determină copierea fişierelor sistem IO.SYS şi MSDOS.SYS de pe unitatea implicită,
pe cea specificată în comandă. Aceste fişiere nu pot fi copiate cu ajutorul comenzilor COPY
şi XCOPY, la fel ca orice fişier obisnuit.
7.2.7.14 Comanda TREE
Sintaxa: TREE [d:][path] [/f][/a]
Se listează căile arborelui de directoare de pe discul specificat şi, opţional, numele
fişierelor din fiecare subdirector.
/f - listează şi numele fişierelor din subdirectoare
/a - se vor utiliza în afişare caracterele semigrafice disponibile în paginile de cod.
7.2.7.15 Alte comenzi externe:
- ATTRIB - modifică sau afişează atributele fişierelor (numai read-only şi archive).
- COMP - compară conţinutul a două fişiere.
- COMMAND - pune în funcţiune un nou procesor de comenzi.
- DISKCOMP - compară conţinutul a două discuri flexibile.
- DISKCOPY - copiază întreg conţinutul unui disc flexibil pe un alt disc flexibil.
- FASTOPEN - permite localizarea mai rapidă a fişierelor, crescând viteza aplicaţiilor
ce lucrează cu multe fişiere.

165
- JOIN - conectează o unitate de disc la o cale specificată de pe o altă unitate, creându-
se o singură structură de directoare pentru cele două unităţi. Unităţile nu vor
mai fi denumite astfel prin litere distincte.
- LABEL - crează, modifică sau şterge eticheta de volum.
- PRINT - tipăreşte fişiere text la imprimantă, în timp ce se execută alte comenzi.
- SHARE - permite partajarea fişierelor între mai mulţi utilizatori, atunci când se
lucrează în reţea.

166
7.3. MICROSOFT Windows 95

Windows95 poate fi instalat de pe dischete, CD-ROM, sau prin intermediul suportului


de reţea. Pentru instalare, sistemul foloseşte un asistent inteligent sau “wizard” (“vrăjitor” în
limba engleză), ce este un program cu interfaţă grafică, proiectat pentru a conduce instalarea
sistemului pe calculator. Acest “wizard” realizează majoritatea operaţiunilor de detecţie a
diverselor dispozitive periferice (plăci video, plăci de sunet, unităţi CD-ROM, modemuri
etc.) prezente în calculator sau conectate, respectiv construieşte şi aranjează directoarele
necesare sistemului. Prin intermediul unui dialog permanent cu utilizatorul, programul de
instalare îl ghidează pe acesta prin diversele opţiuni, pe care Windows-ul 95 le propune în
momentul instalării. La final “wizard”-ul propune repornirea calculatorului, sistemul de
operare care va demara fiind Windows 95. Durata instalării este dependentă de opţiunile alese
în cadrul “wizard”-ului.
Trebuie ţinut cont de faptul că asistentul de instalare al Windows-ului 95 nu este
capabil să creeze partiţii, şi să formateze eventualele partiţii existente. Această operaţiune,
dacă se dovedeşte a fi necesară, trebuie efectuată înainte de a începe instalarea efectivă a
sistemului.

7.3.1. Elemente Windows 95

Windows 95 oferă o interfaţă grafică prietenoasă ale cărei elemente principale vor fi
descrise în continuare. Pe lângă faptul că ecranul oferit de Windows 95 este în mod grafic,
ceea ce face sistemul mai uşor de utilizat şi înţeles, întreaga interfaţă poate fi controlată cu
ajutorul mouse-ului.
Indicatorul (sau cursorul) este o pictogramă prezentă pe ecran, în general de forma unei
săgeţi, şi indică prezenţa unui dispozitiv de poziţionare (mouse, trackball, etc.). Este folosit
pentru a selecta elemente şi pentru a alege comenzi.
Se folosesc câteva metode de lucru cu mouse-ul, după cum urmează:
- clic simplu – reprezintă o apăsare simplă a butonului din stânga al mouse-ului, folosit
pentru selectarea unui element grafic pe ecran, alegerea unei opţiuni dintr-un meniu,
apăsarea unui buton într-o fereastră sau altele.
- dublu clic – reprezintă apăsarea de două ori, rapid, a butonului din stânga al mouse-ului,
şi are de cele mai multe ori ca rol executarea unei comenzi.
- drag & drop – reprezintă apăsarea butonului stânga al mouse-ului deasupra unui element
grafic, deplasarea mouse-ului fără a elibera butonul apăsat, poziţionarea cursorului într-o
zonă aleasă ca destinaţie şi eliberarea butonului; această tehnică este folosită la

167
deplasarea unor entităţi grafice pe ecran, desenarea unor forme în editoarele grafice,
efectuarea unor selecţii prin încadrare şi altele.
Se mai foloseşte şi efectuarea unui “clic dreapta”, apăsarea butonului din dreapta al
mouse-ului efectuând accesarea unor meniuri de comenzi rapide, sau deschiderea unor
meniuri de comenzi locale, în funcţie de aplicaţia folosită.

7.3.1.1. Ferestre

Marea majoritatea a aplicaţiilor Windows95 sunt rulate într-o fereastră. În continuare,


va fi detaliată structura grafică a acestor ferestre.

Butonul meniului Control Butonul de închidere


Bara de titlu Butonul de maximizare
Bara de meniuri
Butonul de minimizare
Bara de instrumente

Dosar

Fişier

Colţul
ferestrei

Bare de derulare
Bara de stare
Chenarul ferestrei

168
O fereastră este o zonă dreptunghiulară în care se pot vizualiza fişiere, dosare, sau poate
avea un conţinut specific aplicaţiei căreia îi corespunde (de exemplu, pentru un program de
prelucrare a textelor, textul ce poate fi editat). O fereastră poate fi închisă, redusă sau
redimensionată. Se pot deschide mai multe ferestre în acelaşi timp, şi unele aplicaţii permit
deschiderea mai multor ferestre în interiorul uneia principale.
Elementele (active) comune ale ferestrelor sunt:
- Bara de titlu: conţine numele ferestrei, butoanele de control al meniului, de minimizare,
de maximizare sau refacere, şi de închidere;
- Bara cu meniuri: conţine meniuri având comenzi şi opţiuni specifice aplicaţiei pornite în
fereastra respectivă;
- Butonul de control al meniului: conţine comenzi referitoare la fereastră;
- Butonul de minimizare: reduce fereastra la un buton în bara de task-uri;
- Butonul de maximizare: măreşte fereastra pentru a ocupa tot ecranul;
- Butonul de închidere: închide fereastra şi aplicaţia care rulează în fereastra respectivă;
- Chenarul ferestrei: permite redimensionarea ferestrei;
- Colţurile ferestrei: permit şi ele redimensionarea ferestrei.
O fereastră Windows mai poate conţine şi următoarele elemente:
- Bara de instrumente (toolbar): conţine butoane având desenate instrumente care
reprezintă comenzi rapide. Afişarea ei este opţională.
- Bara de stare (status bar): este o bară aşezată orizontal, care descrie câteva proprietăţi ale
conţinutului ferestrei. Afişarea ei este opţională de cele mai multe ori.
- Bara de derulare (scroll bar): poate fi orizontală sau verticală şi permite vizualizarea
părţilor ascunse de limitele ferestrei. Ele apar automat atunci când fereastra conţine
informaţie ce nu poate fi afişată în chenarul curent.

7.3.1.2. Meniuri

Meniul reprezintă o listă de comenzi


înrudite, folosite pentru a executa anumite
acţiuni în cadrul aplicaţiilor Windows.
Comenzile din meniuri sunt organizate pe
grupuri logice. Pentru a executa o comandă
dintr-un meniu derulant, se execută un clic
stânga pe titlul meniului, pentru a-l deschide,
şi apoi se execută un clic stânga pe opţiunea
aleasă. Pentru a face meniul să dispară se
poate executa un clic în afara meniului.
Meniurile pot fi accesate şi cu ajutorul
tastaturii. Pentru a activa bara de meniuri se

169
apasă tasta “Alt”, primul meniu fiind selectat automat. Se pot folosi în continuare tastele cu
săgeţi pentru a selecta comanda dorită, după care se apasă “Enter” pentru activarea comenzii.
Opţiunea ce se doreşte a fi selectată se poate activa şi apăsând tasta corespunzătoare literei
subliniate din titlul comenzii, dacă există.
În meniuri, lângă titlul comenzii este afişată uneori şi comanda rapidă care permite
accesul direct la comandă.
Comenzile rapide permit
selecţia unei comenzi fără
ajutorul meniurilor, şi acestea
se execută, de cele mai multe
ori, prin combinaţii ale
tastelor speciale “Alt”,
“Shift” sau “Ctrl”.
Atât Windows 95, cât
şi multe aplicaţii pentru
Windows 95, oferă o
varietate de “meniuri
scurtătură” (shortcuts), ce
conţin comenzile uzuale.
Aceste meniuri scurtătură se
afişează la executarea unui
clic dreapta, deasupra unui
obiect sau a suprafeţei de
lucru.

7.3.1.3.Casete de dialog

Sistemul Windows 95 şi aplicaţiile Windows folosesc casete de dialog, pentru a


schimba informaţii cu utilizatorul. Casetele de dialog cer, de cele mai multe ori, informaţiile
necesare, pentru ca programul folosit sau sistemul să poată executa operaţia respectivă.
Windows 95 afişează, de asemenea, casete de dialog şi pentru a oferi informaţii despre
rezultatul executării unei comenzi.
Casetele de dialog variază în complexitate, depinzând de programul care le generează
sau de procedura folosită. Unele cer o simplă confirmare a unei acţiuni care trebuie
executată, altele oferă posibilitatea alegerii între numeroase opţiuni.
Componentele întâlnite într-o casetă de dialog sunt următoarele:
- Casetă text: oferă posibilitatea introducerii unor caractere de la tastatură (de exemplu,
nume de fişier, calea spre un fişier, etc.)

170
Casetă text

Casetă cu listă
derulantă

Casetă de
validare
Buton de
comandă

- Casetă cu listă: prezintă opţiunile ce pot fi alese; de cele mai multe ori se întâlnesc pe ele
şi bare de derulare; selecţia poate fi simplă sau multiplă, adică se poate selecta fie numai
un element din listă, fie mai multe.
- Caseta cu listă derulantă: este o casetă cu o listă de o singură linie, având un buton de
derulare la dreapta; la executarea unui clic stânga pe buton, o casetă cu o listă derulantă se
deschide pentru afişarea listei de opţiuni; nu permite decât o singură selecţie.
- Butoanele cu opţiuni: prezintă un grup de elemente înrudite din care poate fi ales numai
unul; un clic pe una din opţiuni le deselectează pe celelalte.
- Caseta de validare: permite selectarea sau deselectarea unei opţiuni; în cazul validării, un
semn apare în dreptul căsuţei; într-un grup de astfel de casete se pot selecta oricâte
opţiuni, sau nici una.
- Butonul de comandă: îndeplineşte funcţia care este afişată pe el. (Open, Help, Quit,
Cancel, etc.); dacă lângă numele afişat pe buton se găseşte o elipsă (…), apăsarea lui duce
la deschiderea unei noi casete de dialog.
- Etichete: reprezintă secţiuni sau pagini multiple ale unei casete de dialog; la un moment
dat numai o singură etichetă este afişată, fiecare etichetă conţinând opţiuni înrudite;
alegerea unei etichete schimbă opţiunile ce apar în caseta de dialog. Sunt deseori numite
şi Tab-uri.

171
Etichete

Casetă cu
listă
Butoane
cu opţiuni

Casetă de
validare

7.3.1.4. Desktop

Desktop-ul (suprafaţa de lucru) este o porţiune dreptunghiulară din suprafaţa ecranului,


care este cel mai îndepărtat strat din ceea ce este afişat pe ecran.

Desktop-ul poate conţine pictograme (denumite şi iconiţe) şi are ca principale


proprietăţi:
- culoarea fundalului, care poate fi o singură culoare uniformă sau o imagine;
- setarea unui tipar, care poate fi suprapus peste culoarea fundalului;

172
- spaţierea pictogramelor.
Proprietăţile desktop-ului pot fi setate executând un clic din dreapta pe suprafaţa sa.
Pictogramele aşezate pe suprafaţa de lucru reprezintă directoare sau dosare (numite folder-e),
fişiere şi aplicaţii.
Principalele pictograme standard sunt:

My Computer reprezintă conţinutul calculatorului, incluzând discurile fixe,


unităţile de dischetă şi de CD-ROM. Sunt incluse de asemenea şi imprimantele care
pot fi accesate de calculator (locale sau de reţea), dosarul cu aplicaţiile de
configurare a sistemului Windows 95 şi dosarul ce permite configurarea
modemului, dacă suportul pentru modem a fost instalat.

Network Neighborhood afişează celelate calculatoare aflate în reţeaua locală, din


reţele de tip Microsoft (Windows NT sau Windows for Workgroups) sau de alte alte
tipuri (Novell). Această iconiţă nu apare decât dacă a fost instalat în Windows 95 şi
suportul pentru reţea.

Recycle Bin, sau coşul de gunoi, reprezintă un dosar (folder) special ce conţine
toate obiectele (fişierele şi directoarele) care sunt şterse din sistem, permiţând
recuperarea lor până la o golire explicită a acestuia.

Unele variante de Windows 95 sunt livrate împreună cu pachete de programe pentru


comunicaţie în reţea şi pentru Internet. În acest caz apar noi pictograme pe fundal:

Inbox este o componentă a programului Microsoft Exchange, care permite


trimiterea şi primirea de fax-uri sau mesaje e-mail.

Internet Explorer este navigatorul Internet furnizat de firma Microsoft, pentru


accesarea de pagini html în Internet.

Peste fundal se află, de obicei în partea de jos a ecranului, bara de aplicaţii (sau bara de
task-uri, din eng. taskbar). Aceasta conţine butonul Start, care afişează un meniu din care se
poate alege o aplicaţie ce poate fi lansată, un document pentru a fi prelucrat, se poate obţine
asistenţă software, şi se pot căuta fişiere pe disc sau se poate închide sistemul Windows 95.

173
Bara de aplicaţii mai conţine în partea din dreapta o zonă specială denumită “system
tray”, în care este afişată ora sistemului împreună cu iconiţe pentru anumite tipuri de
programe, numite rezidente. Acestea se încarcă de obicei la pornirea sistemului Windows 95,
şi rulează permanent pe durata unei sesiuni. Spaţiul dintre “tray” şi butonul Start este ocupat
de butoane care apar în momentul în care o aplicaţie este pornită. Aceste butoane se
autodimensionează şi se pot aranja şi pe mai multe rânduri, în momentul în care sunt prea
multe butoane ce trebuie afişate.

Prin efectuarea unui clic din dreapta asupra unui buton din bara de aplicaţii, se deschide
un meniu local corespunzător aplicaţiei, similar de cele mai multe ori cu meniul butonului de
control din bara de titlu a aplicaţiei.

Meniul Start este afişat în momentul efectuării unui clic stânga peste butonul cu
acelaşi nume din bara de aplicaţii. Deplasând cursorul de-a lungul meniului se pot apela
comenzi directe pentru sistem sau se pot lansa aplicaţii, fiind folosit pentru a avea acces la
programe şi documente, la sistemul de asistenţă software (help) şi la alte componente ale
sistemului Windows 95. În structura sa se găsesc următoarele:

- Programs – afişează lista de programe instalate în sistem şi aplicaţiile ce vin cu


Windows 95, unele grupate în meniul Accessories, altele accesibile direct (de
exemplu Command Prompt).
- Documents – afişează cele mai recente documente deschise (15); pentru a le accesa
repede şi uşor, lansând aplicaţia cu care au fost editate, se execută un clic pe numele
documentului.
- Settings – afişează dosarele Control Panel, Printers şi Bara de taskuri pentru
personalizarea configurării Windows 95.
- Find – permite căutarea de fişiere, directoare şi/sau calculatoare în reţeaua locală.
- Help – afişează informaţii despre executarea taskurilor şi a procedurilor, şi despre
folosirea sistemului Windows 95.
- Run – permite introducerea unei linii de comandă pentru a rula un program de pe hard
disc sau dischetă.

174
- Shut Down – afişează caseta de dialog Shut Down prin care se pregăteşte oprirea
calculatorului, sau se realizează deconectarea utilizatorului curent, în vederea unei alte
sesiuni de lucru, fără a opri calculatorul.

7.3.2. Windows Explorer

Programul Windows Explorer este folosit pentru a organiza informaţia conţinută pe


discurile disponibile în sistem, permiţând lucrul cu fişiere: este posibilă schimbare numelui,
copierea, mutarea, ştergerea fişierelor şi directoarelor etc. De obicei, Windows Explorer
poate fi găsit în meniul Programs al butonului Start.
Windows Explorer este compus în principal din două panouri. Implicit, panoul din
stânga afişează structura arborescentă de pe discurile locale, împreună cu câteva directoare
speciale. Panoul din dreapta afişează lista cu fişierele şi directoarele, din directorul selectat în
panoul din stânga, sau conţinutul unui director special, dacă acesta este selectat.
Elementele ferestrei Windows Explorer:
- Bara de titlu: conţine numele ferestrei (Exploring), numele unităţii de disc şi eventual
calea până la directorul selectat în panoul din stânga, butonul meniului de control şi
butoanele de minimizare, maximizare/refacere şi de închidere a ferestrei.
- Bara de meniuri: afişează meniuri legate de operaţiile cu unităţi de disc, dosare, fişiere
sau reţea.
- Fereastra cu calea unităţii de disc: afişează calea selectată în momentul respectiv în
panoul din stânga.

175
- Bara de instrumente: oferă diferite instrumente pentru a naviga prin Explorer precum şi
accesul la principalele funcţii de lucru cu fişiere.
- Panoul de dosare şi programe: afişează directorul rădăcină sau unitatea de disc sau orice
alt director selectat.
- Panoul de fişiere şi subdosare: afişează conţinutul dosarului selectat în panoul din
stânga.
- Bara de stare: afişează date statistice, cum ar fi: spaţiul liber pe unitatea de disc
selectată, numărul de fişiere din director sau numărul elementelor selectate etc.

Fereastra unităţii de disc Bara de titlu

Bara de meniuri Bara de instrumente

Panoul stânga al dosarelor

Bara de stare
Panoul dreapta al subdosarelor şi
programelor

Pentru a vizualiza conţinutul unui director, se poate executa un clic simplu pe semnul
plus care precede numele dosarului, sau un dublu clic pe numele acestuia sau pe icoana
corespunzătoare. Pentru a îi ascunde conţinutul se execută un clic pe semnul minus din faţa
numelui sau un dublu clic pe zona de ecran ocupată de nume.
În afara numelor fişierelor, se pot vizualiza în panoul din dreapta şi diferite detalii
despre fişiere sau directoare. Pentru aceasta se pot folosi butoanele de pe bara de instrumente
sau meniul View (Details, de exemplu). Pentru aranjarea conţinutului panoului din dreapta în

176
funcţie de nume, tip (extensie), dimensiune sau dată, se poate apela la butoanele care
constituie capul tabelului afişat. O altă modalitate este selectarea meniului View -> Arrange
Icons şi alegerea tipului de sortare dorită.
Pentru crearea unui nou director (dosar) se poate proceda în mai multe feluri. Mai întâi
se poziţionează cursorul de selecţie pe directorul care va fi părinte. Se poate alege apoi din
meniul File -> New -> Folder, sau se efectuează un clic dreapta într-o zonă liberă din panoul
din dreapta, selectând din meniul de comenzi rapide apărut opţiunea New -> Folder.
Selectarea mai multor fişiere, contigue sau nu în lista afişată, se face cu ajutorul mouse-
ului. Pentru a selecta o listă de fişiere sau directoare contigue, se selectează primul element
din listă şi ţinând apăsată tasta Shift se execută un clic pe ultimul element din listă. Pentru a
selecta mai multe elemente, se ţine apăsată tasta Ctrl şi apoi se execută un clic stânga cu
mouse-ul asupra fiecărui element ce se doreşte a fi selectat. Pentru a selecta secvenţe
contigue de fişiere şi directoare, şi elemente necontigue, se combină cele două tehnici
descrise.
Observaţie: Nu se pot selecta elemente din mai multe directoare simultan. Pentru a
lucra cu fişiere (directoare) din mai multe directoare acestea trebuiesc tratate pe rând.
Ştergerea fişierelor şi a directoarelor în Windows 95 presupune mutarea fişierelor într-
un dosar special, numit Recycle Bin, (coşul de gunoi). După efectuarea selecţiei asupra
elementelor ce trebuie să fie şterse, se poate apăsa butonul de ştergere din bara de

instrumente , se poate alege opţiunea “Delete” din meniul “File”, sau se poate activa
meniul de comenzi rapide prin efectuarea unui clic dreapta asupra zonei selectate, alegând din
acest meniu “Delete” sau, o a treia variantă pentru ştergere, se poate apăsa tasta Delete.
Fişierele şi directoarele şterse pot fi recuperate din Recycle Bin poziţionând selecţia în
Windows Explorer asupra icoanei specifice, efectuând apoi un clic dreapta asupra
elementelor selectate, şi alegând opţiunea Restore din meniul de comenzi rapide apărut, sau
accesând aceeaşi comandă din meniul “File”. Elemente stocate în Recycle Bin există până la
golirea explicită a acestuia din meniurile normale sau din cele de comenzi rapide; în cazul în
care se depăşeşte dimensiunea alocată Recycle Bin-ului, sunt şterse automat cele mai vechi
intrări, cele mai vechi elemente şterse.
Pentru a copia sau deplasa fişiere sau directoare între două zone de hard disc sau între
partiţii diferite se foloseşte Clipboard-ul. Acesta reprezintă o zonă temporară de stocare a
informaţiilor, în vederea deplasării lor. Pentru copiere se efectuează selecţia elementelor ce
trebuiesc deplasate, se alege comanda “Copy” din meniul “Edit”, sau se apasă butonul

corespunzător din bara de instrumente , ceea ce are ca efect plasarea informaţiilor


necesare copierii în Clipboard. Se selectează apoi directorul destinaţie şi se alege opţiunea
“Paste” din meniul Edit, sau se apasă butonul Paste din bara de instrumente .
Dacă se doreşte redenumirea unui director sau a unui fişier, se selectează numele
corespunzător din listă, şi se alege, din meniul “File” sau din meniul de comenzi rapide,

177
opţiunea “Rename”. Se introduce apoi direct în listă numele nou al fişierului, sau al
directorului, în caseta text editabilă apărută.
Copierea şi mutarea fişierelor se mai poate realiza folosind tehnica Drag & Drop cu
ajutorul mouse-ului. Se selectează elemente ce trebuiesc deplasate, şi apoi se trage toată
selecţia făcută deasupra directorului destinaţie, indiferent de panoul în care se află acesta.
Dacă în timpul deplasării se menţine apăsată tasta Ctrl, se realizează copierea elementelor
selectate.
Dacă elementele selectate sunt deplasate deasupra directorului special Recycle Bin,
acestea vor fi şterse - mutate de fapt în Recycle Bin.
Windows-ul 95 permite crearea de “scurtături” (“shortcuts” - numite şi comenzi rapide)
spre fişiere (de orice natură) sau directoare. Acestea reprezintă doar o legătură spre fişierul
original şi permite accesul rapid la directorul sau fişierul respectiv. O legătură spre un fişier
sau director se recunoaşte imediat prin săgeata mică din colţul din stânga jos alăturată
pictogramei originale. Putem considera că aceste comenzi rapide sunt echivalente cu un
buton care permite accesul direct la fişierul, directorul sau la aplicaţia respectivă, care poate fi
situat oriunde pe discul fix sau chiar pe Desktop. La efectuarea unui dublu clic asupra
pictogramei comenzii rapide, i se spune de fapt Windows-ului să identifice fişierul ţintă şi să
îl deschidă.

7.3.3. Control Panel

Control Panel reprezintă centrul de control al Windows-ului. De aici se pot configura


cea mai mare parte a aspectului şi funcţionalităţii interfeţei grafice, mergând până la
posibilitatea configurării unor dispozitive periferice. Apare sub forma unei ferestre în care se
găsesc mai multe pictograme, fiecare lansând o aplicaţie asociată cu tipul ajustărilor dorite.
Acestea vor fi descrise în linii mari în continuare.
Control Panel-ul poate fi accesat în mai multe feluri:
- efectuând un clic în opţiunea Settings a meniului Start;
- efectuând un dublu clic în Windows Explorer sau în My Computer;
- executând, printr-un dublu clic asupra icoanei corespunzătoare în Windows
Explorer, programul control.exe.
Icoanele (şi implicit aplicaţiile) pot fi diferite de la calculator la calculator, existând
unele aplicaţii care îşi adaugă icoane proprii în Control Panel. Acestea sunt:
Accessibility – oferă accesul la configurarea interfeţei Windows, pentru persoanele
cu handicap fizic. Nu face parte din instalarea standard a Windows-ului şi aşadar
poate lipsi din anumite calculatoare; se pot configura sunete pentru anumite acţiuni ale
sistemului, se poate stabili folosirea tastelor direcţionale, şi a unor taste din segmentul de
taste numerice, pentru direcţionarea cursorului pe ecran, etc.

178
Add New Hardware – foloseşte la configurarea sistemului, atunci când se doreşte
adăugarea unor noi dispozitive periferice. Majoritatea calculatoarelor noi posedă
funcţii de Plug & Play (de obicei inserate în BIOS), care permit Windows-ului să detecteze şi
să configureze automat noile dispozitive introduse în sistem. În acest caz, asistentul oferit
prin această pictogramă în Control Panel nu este folosit, sistemul cerând utilizatorului să
introducă discurile cu driver-ele necesare. Asistentul este folosit în două cazuri de excepţie:
primul, în cazul în care calculatorul nu are opţiuni de Plug & Play sau acestea nu sunt
activate, şi al doilea în cazul în care dispozitivul introdus nu respectă standardele de
autodetecţie. În aceste situaţii, asistentul Add New Hardware va căuta dispozitivul adăugat,
încercând o configurare a acestuia, dacă există un driver în kit-ul standard de Windows 95,
dacă nu sugerând dispozitive similare.
Add/Remove Programs –
ce permite instalarea/
dezinstalarea unor aplicaţii sau
pachete de aplicaţii în sistem, şi
adăugarea/scoaterea aplicaţiilor
standard Windows 95; oferă 3
taburi separate.
Primul tab, prin butonul
Install, lansează un program care
supraveghează instalarea unor
aplicaţii noi în sistem, în vederea
creării unei liste cu fişierele
adăugate (pentru dezinstalarea
ulterioară). Este prezentată şi o
listă cu toate aplicaţiile instalate în
sistem de unde se permite
dezinstalarea fiecărei aplicaţii.
Al doilea tab oferă o listă a
aplicaţiilor care vin standard în Windows 95, permiţând adăugarea sau dezinstalarea lor
folosind kit-ul de instalare al sistemului.
Al treilea tab pune la dipoziţie
utilizatorului posibilitatea de a crea o
dischetă sistem. Discheta astfel creată
permite pornirea (boot-area) calculatorului,
în cazul în care sistemul nu mai porneşte în
mod normal de pe discul fix, şi include
majoritatea aplicaţiilor din linia de comandă

179
necesare pentru aranjarea partiţiilor şi formatarea discurilor.

Date/Time – permite setarea ceasului calculatorului şi a datei acestuia. Asistentul


poate fi accesat şi executând un dublu clic asupra zonei din bara de aplicaţii în care
este afişată ora. Se poate ajusta şi zona geografică în care este plasat calculatorul.

Display – conţine mai multe


tab-uri care permit ajustarea
aspectului interfeţei Windows 95
pe ecran. Toate aceste tab-uri
conţin o mică zonă grafică în care
este afişată o vizualizare a noului
aspect, care ar rezulta în urma
modificărilor efectuate. Back-
ground permite schimbarea
imaginii de pe fundalul desktop-
ului, iar din tab-ul Screen-Saver se
poate schimba economizorul de
ecran folosit (un program care intră
în funcţiune după o anumită
perioadă de inactivitate a tastaturii
şi mouse-ului, în scopul de a
produce o animaţie pe ecran,
pentru a nu solicita inutil
luminoforii tubului catodic al monitorului). Tab-ul Settings conţine principalele elemente
necesare pentru controlul ecranului; se poate schimba rezoluţia plăcii grafice şi profunzimea
de culoare (numărul maxim de culori afişabile) de pe ecran. Trebuie găsit un compromis între
aceste două caracteristici, în funcţie de performanţele plăcii grafice din calculator şi a
monitorului. Este de asemenea posibilă schimbarea driver-ului plăcii grafice, în cazul
schimbării acesteia din urmă. Tab-ul Appearance permite schimbarea culorilor interfeţei
Windows, modificarea mărimii şi tipului caracterelor folosite pentru afişarea ferestrelor şi
altele. Întreg aspectul interfeţei poate fi personalizat de către fiecare utilizator, sau se pot
alege scheme standard de culori şi stiluri din lista predefintă din Windows.

Fonts – deschide o fereastră ce afişează conţinutul dosarului în care sistemul îşi ţine
tipurile de caractere (font-uri) care pot fi folosite. Efectuând un dublu clic asupra unui
font se poate obţine o fereastră care să afişeze tipul respectiv de caracter în mai multe mărimi.
Meniurile ferestrei permit gestiunea fonturilor instalate în sistem, cum ar fi de exemplu
adăugarea unui nou tip de caracter.

180
Internet – în cazul în care Microsoft Internet Explorer este instalat pe calculator, din
acest asistent se pot ajusta configurările referitoare la aplicaţie în sine, precum şi tipul
de conexiune existentă în reţeaua respectivă.
Joystick – dacă există un joystick legat la calculator, din această icoană se obţine
asistentul care permite configurarea dispozitivului.
Keyboard – foloseşte la configurarea tastaturii, referitor la viteza de repetiţie a unei
taste menţinută apăsată. Tab-ul Language permite adăugarea (sau schimbarea) unei
noi limbi pentru tastatură, în cazul în care este nevoie. Tab-ul General este folosit la
schimbarea tipului de tastatură legată la calculator şi implicit a driver-ului aferent.
Modems – permite adăugarea unui modem în sistem şi configurarea acestuia. Din
acest asistent se setează, de exemplu, toate datele necesare conectării prin Dial-Up la
Internet.
Mouse – oferă diverse opţiuni referitoare la ajustarea parametrilor de funcţionare ai
mouse-ului. Se poate modifica sensibilitatea acestuia, viteza de reacţie, şi modul de
poziţionare în jurul tastaturii (în partea dreaptă sau în partea stângă). Tab-ul Pointers permite
modificarea tipului de cursoare grafice afişate. Tab-ul General este folositor atunci când se
doreşte schimbarea driver-ul pentru mouse.
Multimedia – accesează asistentul folosit pentru ajustarea parametrilor audio şi video
ai sistemului Windows 95. Tab-ul Audio permite setarea volumului de ieşire al plăcii
audio (dacă aceasta există) şi se poate opta pentru afişarea unei icoane de forma unui difuzor
în System Tray, pe bara de aplicaţii de unde se poate controla volumul; se poate ajusta şi
nivelul de intrare al microfonului. Tab-ul Video oferă câteva opţiuni referitoare la secvenţele
de animaţie care pot fi vizionate pe ecran. Tab-ul Midi particularizează instrumentele folosite
de sistem pentru înregistrări audio numerice de tip MIDI (Musical Instrument Digital
Interface). Tab-ul CD Music se referă la volumul redării CD-urilor audio, via placa de sunet
inserată în calculator. Tab-ul Advanced permite ajustarea unor opţiuni particulare plăcii de
sunet şi a parametrilor funcţionali ai acesteia.
Network – configurează parametrii plăcii de reţea, dacă acesta există în calculator,
precum şi protocolul de reţea folosit.
Passwords – conţine două Tab-
uri, care facilitează configurarea
sistemului pentru a permite mai multor
utilizatori să folosească acelaşi
calculator cu interfaţa personalizată
pentru fiecare. Primul Tab, Change
Passwords oferă o casetă de dialog ce
permite fiecărui utilizator să îşi modifice parola de autentificare pe lângă sistem, sau pe lângă
sistemele din reţea ce oferă acest serviciu (de autentificare), dacă este cazul. Tab-ul User
Profiles este cel de unde se poate seta configurarea sistemului, pentru a permite folosirea lui

181
de către mai mulţi utilizatori. În cazul în care se alege opţiunea “un singur desktop pentru toţi
utilizatorii”, fereastra de autentificare de început de sesiune nu va mai fi afişată.
Power – oferă un asistent pentru configurarea modului de economie al energiei,
opţiune utilă în cazul în care calculatorul este portabil sau dacă hardware-ul
calculatorului are module pentru această opţiune. Se poate vizualiza nivelul de încărcare al
acumulatorilor în cazul unui calculator portabil, de exemplu. Dacă este prezentă în sistem
facilitatea de gestiune a energiei (Power Management), se poate afişa din acest asistent o
intrare suplimentară în meniul Start, numită Suspend, care are ca scop trecerea calculatorului
în regim de economie de energie.
Printers – deschide dosarul ce permite configurarea imprimantelor instalate în sistem,
acelaşi cu dosarul obţinut din meniul Start ->Settings.
Regional Settings – oferă posibilitatea configurării sistemului în funcţie de zona
geografică unde este plasat calculatorul, referitor la afişarea datelor, numerelor şi a
monedei.
Sounds – Windows 95 are posibilitatea asignării unor sunete anumitor operaţiuni din
cadrul interfeţei (minimizarea, maximizarea sau închiderea unei ferestre, golirea
Recycle Bin-ului, etc.). Din aceasta casetă de dialog se pot personaliza aceste sunete.

System – este probabil cea mai importantă aplicaţie de asistenţă din cadrul Control
Panel-ului. Prin intermediul casetelor de dialog prezentate, se pot soluţiona conflicte
hardware apărute (din punct de vedere al partajării resurselor, de exemplu), poziţionarea
parametrilor în mod neadecvat în această zonă putând conduce la blocarea sistemului. Tab-ul
General oferă informaţii generale despre sistemul Windows 95 instalat şi despre memoria şi
procesorul din calculator. Tab-ul Device Manager este folositor pentru a identifica
dispozitivele periferice ce au anumite probleme în funcţionare. Principalul element este lista
arborescentă prezentată şi în figură în care apar toate dispozitivele din calculator, fiind uşor
de observat care sunt cele care au eventuale probleme. Se poate selecta un anumit element din
listă şi apoi pot fi afişate proprietăţile caracteristice acelui dispozitiv la nivel hardware
(adrese de memorie, numerele întreruperilor folosite). Printr-o ştergere a unui dispozitiv din
această listă se poate înlătura din sistem drive-ele aferente dispozitivului respectiv. Dacă se
selectează icoana din rădăcina listei (Computer) şi se apasă butonul Properties se afişează o
fereastră ce conţine informaţii despre toate resursele hardware ale calculatorului şi cui sunt
ele alocate. Aceste informaţii pot fi foarte utile în momentul în care se doreşte adăugarea unui
dispozitiv în sistem, care are nevoie de specificaţiile anumitor resurse libere în calculator.
Selectând un element din listă şi apăsând butonul Properties (sau un dublu clic asupra
elementului direct în listă) se afişează o casetă de dialog ce oferă informaţii despre
configuraţia dispozitivului ales.

182
Tab-ul General afişează informaţii generale despre dispozitiv. Tab-ul Drivers
furnizează lista cu fişierele existente în sistem care sunt folosite de acel dispozitiv (driverele
dispozitivului), iar butonul Change Driver permite schimbarea driver-elor, de exemplu în
cazul actualizării fişierelor la ultimele versiuni existente, sau atunci când, datorită unor
probleme, în baza de date a Windows-ului (Registry) nu se mai află informaţiile corecte
referitoare la dispozitivul ales. Tab-ul Resources permite afişarea resurselor folosite de
dispozitivul respectiv şi poate fi util atunci când apare o problemă în sistem, semnalând
eventualele conflicte între dispozitivul selectat şi celelalte. Dacă asistentul Device Manager
nu este capabil să ofere o soluţie viabilă spre rezolvarea conflictului, în ceea ce priveşte
alocare de resurse, se poate alege opţiunea “Use automatic settings”, la o repornire a
sistemului, Windows 95 încercând să aloce automat resursele între dispozitive. Tab-ul
Hardware Profiles este util în momentul în care se folosesc mai multe configuraţii hardware
pentru calculator. Dacă există mai multe configuraţii hardware setate pe sistemul respectiv
(de exemplu cu suport de reţea instalat sau nu), atunci la pornire sistemul va afişa un meniu,
din care se va cere alegerea configuraţiei hardware în care se doreşte funcţionarea
calculatorului. Tab-ul Performance oferă posibilitatea modificării unor parametri legaţi de
viteza de funcţionare a sistemului. În general, Windows 95 setează aceşti parametri în mod
automat şi ei nu ar trebui modificaţi fără o nevoie explicită.

183
7.4. Linux

Sistemul Linux este un sistem de operare din categoria Unix-urilor, proiectat iniţial
pentru platformele x86. Linux-ul este “freeware”, adică nu este un sistem de operare
comercial. A fost dezvoltat iniţial de Linus Torvalds la Universitatea din Helsinki, în
Finlanda, şi a fost anunţat public pentru prima dată în noiembrie 1991. Datorită răspândirii pe
care a căpătat-o în ultimul deceniu, au apărut firme comerciale care vând totuşi variante ale
acestui produs, Linux-ul devenind el însuşi o familie, la ora actuală existând mai multe
variante de Linux. Cele mai des întâlnite (şi cele mai importante) variante de Linux sunt
următoarele:
- Red Hat Linux
- Slackware Linux
- OpenLinux al firmei Caldera
- SuSE Linux (Germania)
- Debian Linux
Datorită compatibilităţii sale cu sistemele Unix majore, pe această platformă de operare
se pot găsi majoritatea aplicaţiilor care rulează şi pe Unix-urile de firmă, portarea aplicaţiilor
de la un sistem la altul nefiind foarte dificilă.
Cele mai importante caracteristici ale Linux-ului sunt următoarele:
- Multitasking veritabil şi funcţionare pe 32 de biţi, folosind modul protejat al
procesoarelor 386 şi superioare;
- Posibilitatea conectării mai multor utilizatori simultan pe acelaşi calculator;
- Sistemul grafic X Windows – interfaţa grafică standard pentru sistemele Unix;
- Suport pentru protocolul de reţea TCP/IP încorporat în sistem;
- Existenţa memoriei virtuale şi a bibliotecilor de funcţii partajate;
- Prezenţa celor mai multe facilităţi ale sistemelor Unix.

7.4.1. Structura sistemului Linux

Pentru a înţelege funcţionarea unui sistem Linux, este nevoie mai întâi de o
familiarizare cu structurile de fişiere şi organizarea acestora.
Se poate face o clasificare a fişierelor Linux, în funcţie de nişte considerente generale,
astfel:
- fişiere obişnuite: conţin informaţiile pe care le crează şi le prelucrează sistemul sau
utilizatorii. Pot fi în mod text sau binar, sau pot fi fişiere speciale create de anumite
aplicaţii, fişiere ce conţin cod executabil.
- fişiere speciale: acestea sunt nişte fişiere ale sistemului de operare prin intermediul
cărora acesta execută operaţiile cu dispozitivele periferice din calculator; se împart în
două categorii: fişiere ce comunică la nivel caracter, respectiv la nivel de blocuri. Mai

184
există un tip special de fişiere, numit “pipe”, ce reprezintă canale de comunicaţie
constituite în memorie între două procese.
- fişiere de legătură (links): reprezintă o legătură în directorul în care sunt create, spre
un alt fişier sau director aflat în altă zonă a sistemului de fişiere. Aceasta poate fi o
metodă de a da un nume nou unui fişier, fără a-l schimba pe cel original. Există două
tipuri de astfel de fişiere:
- hard links: numele original şi cel al legăturii indică acelaşi bloc de date
de pe discul fix. Există două limitări pentru acest tip de legături: un
director nu poate fi legat astfel, şi o legătură de acest tip nu se poate
extinde între două partiţii.
- symbolic (soft) links: sunt de fapt două fişiere: cel original şi legătura
care conţine numele originalului. Dezavantajul acestui tip de legătură
este că, în cazul în care este şters fişierul original, nu mai există datele
efective pe discul fix, legătura devenind inutilă.

Toate fişierele şi directoarele din sistemul Linux au un proprietar şi drepturi. Acestea se


referă la cine a creat fişierul sau directorul respectiv, şi cine are permisiunea de a-l citi sau
modifica. Pentru a înţelege structurarea acestor drepturi asupra fişierelor, trebuie, în prealabil,
parcurse structurile folosite de sistem în gestiunea utilizatorilor.
Accesul în sistemul Linux este permis pe baza unui cont (account). Fiecare cont este
creat de administrator, cu excepţia contului de administrator (root), care este creat la
instalarea sistemului. Un cont presupune un identificator (un şir de caractere) asignat unui
utilizator, prin care acesta este recunoscut de către sistem, şi o parolă cunoscută numai de
către utilizator. Fiecare cont capătă, în momentul creării, un număr numit UID (User ID),
care este folosit pentru identificarea posesiunii asupra fişierelor, directoarelor şi proceselor, în
acelaşi timp fiind asignat şi directorul care va reprezenta directorul de bază pentru utilizator.
Mai mulţi utilizatori sunt adunaţi, din punct de vedere al administrării conturilor, în
grupuri. Astfel, un grup sub Linux reprezintă o apartenenţă la o anumită categorie de
utilizatori, categoriile fiind create în prealabil de administrator. La fel ca şi în cazul unui cont,
un grup capătă la creare un GID (Group ID), care este folosit pentru diversificarea drepturilor
de acces asupra directoarelor şi fişierelor sistemului. Un utilizator poate aparţine mai multor
grupuri, însă aparţine unui grup primar (primary group), în ceea ce priveşte drepturile de
acces la datele din sistemul de fişiere. Datele despre conturile existente într-un sistem sunt
stocate într-un fişier text, /etc/passwd, iar cele despre grupuri în /etc/group. În funcţie de
tehnica de securizare a sistemului aleasă de către administrator, parolele utilizatorilor sunt
criptate şi stocate în acelaşi fişier passwd, sau în altele. Tot în fişierul passwd, vital pentru
sistem, mai sunt cuprinse şi informaţii referitoare la numele real al utilizatorului, şi la shell-ul
(sau un alt program) pe care îl va oferi sistemul de operare utilizatorului în momentul
conectării.

185
Orice fişier sau director aparţine unui singur utilizator şi unui grup, utilizatorul
numindu-se posesorul (proprietarul) fişierului sau al directorului. Drepturile de citire şi
scriere (ştergere) asupra unui fişier sau director sunt în funcţie de posesorul său şi de grupul
căruia aparţine.
Permisiunile (drepturile asupra unui fişier) sunt structurate în trei categorii:
- permisiuni pentru posesor (owner): acestea identifică operaţiile permise asupra
fişierului în funcţie de utilizator;
- permisiuni pentru grup (group): identifică operaţiile permise asupra fişierului,
în funcţie de apartenenţa la grup a utilizatorului;
- permisiuni pentru ceilalţi utilizatori (world): identifică operaţiile permise
asupra fişierului de ceilalţi utilizatori din sistem.
Există trei drepturi de acces la fişiere:
- read (r) – citire;
- write (w) – scriere;
- execute (x) – execuţie.
Rezultă astfel 9 poziţii pentru precizarea completă a drepturilor de acces la un director
sau fişier, fiecare poziţie fiind precizată de un bit. Se pot constitui astfel secvenţe binare prin
care se identifică drepturile asupra unui fişier.
În Linux, numele de fişiere şi de directoare pot avea până la 256 caractere, şi nu pot
conţine caracterele *, ?, \, /, spaţiu, “, ‘ şi alte caractere folosite de shell-ul sistemului.
Sistemul Linux este case-sensitive, adică face diferenţa între literele mari şi literele mici,
aceasta referindu-se la numele de fişiere şi directoare, şi la comenzile sistemului. Separatorul
folosit între numele de directoare şi numele de fişiere este /. Structura folosită este, ca şi în
cazul MS-DOS-ului, una arborescentă ierarhică, iar rădăcina ei este notată cu /. Datorită
faptului că sistemul este multi-user, permiţând conectarea mai multor utilizatori simultan,
care să aibă acces la resursele calculatorului, este introdus conceptul de director de bază
(home directory) al fiecărui utilizator. Acesta reprezintă un director unic pentru fiecare
utilizator, în care posesorul acestuia are drepturi depline privind crearea şi modificarea
fişierelor (şi evident a directoarelor) incluse. Poziţia acestor directoare în structura de fişiere
de pe discurile fixe din sistem este specificată de administrator, şi nu poate fi schimbată de
utilizatorul normal.
Adresarea fişierelor sau a directoarelor în Linux se face în două moduri, absolut şi
relativ, similar cu sistemul MS-DOS, păstrând însă convenţia de nume şi caractere speciale
folosită de Linux. Pentru a adresa absolut un fişier, se scrie toată calea până la acesta, plecând
de la rădăcina sistemului de fişiere, de exemplu: /usr/doc/HOWTO/other-
formats/html/mini/README. Pentru a specifica o cale relativă, aceasta se face pornind de la
directorul luat în considerare, până la locaţia precisă a fişierului sau directorului specificat.
De exemplu, dacă se ia ca director de pornire în adresare directorul /usr/doc/HOWTO,
fişierul desemnat mai înainte are calea other-formats/html/mini/README.

186
În fiecare director există două fişiere speciale, care sunt create odată cu directorul: “.” şi
“..”. Primul semnifică întotdeauna directorul însuşi, în care se lucrează la un moment dat, iar
al doilea reprezintă părintele directorului luat în considerare. Caracterul “~” are o
semnificaţie specială, el desemnând directorul de bază al fiecărui utilizator. Aceste simboluri
pot fi folosite în adresarea relativă a fişierelor şi directoarelor, de exemplu: ../fis1.txt
reprezentând fişierul fis1.txt din directorul părinte al directorului curent. Dacă se doreşte
adresarea unui fişier din directorul de bază, se poate astfel folosi: ~/dir1/fisier1.txt (calea
indică fişierul fisier1.txt din directorul dir1 creat în directorul de bază al utilizatorului curent).

Directoare speciale din structura de fişiere:

- / - rădăcina sistemului de fişiere.


- /bin – conţine majoritatea fişierelor executabile de bază din sistemul de operare
(comenzile de exemplu).
- /boot – conţine de obicei informaţii referitoare la pornirea sistemului.
- /dev – datorită faptului că Linux-ul (în urma asemănării cu sistemele Unix) tratează
mai toate fluxurile de date din sistem prin intermediul fişierelor, acest director este
creat pentru a conţine aceste fişiere speciale, care îi permit sistemului să
funcţioneze.
- /etc – conţine fişierele de configuraţie ale sistemului.
- /home – de obicei acest director conţine directoarele de bază ale utilizatorilor din
sistem.
- /lib – director ce conţine bibliotecile partajate din sistem.
- /sbin – conţine executabile destinate administrării sistemului şi funcţionării
serviciilor instalate.
- /tmp – un director în care toţi utilizatori îşi pot depune fişiere temporare.
- /usr – în acest director sunt organizate marea majoritate a aplicaţiilor şi fişierelor de
interes general din sistem. Tot în acest director este stocat sistemul X-Windows şi
bibliotecile aferente (X11R6), documentaţia sistemului Linux (doc), paginile de
manual (man).
- /var – director destinat stocării datelor tranzitorii prin sistem, în urma serviciilor
sau a aplicaţiilor ce rulează pe calculatorul respectiv. În acest director, sistemul
colectează date despre activitatea sistemului de operare în general (monitorizare).

Structura unui sistem de fişiere Linux:

Sistemul comunică cu partiţiile create pe discurile fixe existente în sistem, folosind


anumite fişiere speciale de tip bloc. Ele sunt stocate în directorul /dev şi, în cazul unui sistem
Linux, sunt de forma următoare:
Pentru discuri IDE:

187
- /dev/hda1, /dev/hda2, /dev/hda3, etc., acestea fiind partiţiile de pe primul
disc (master pe primary IDE). Pentru celelalte discuri (sau unităţi de CD)
se schimbă litera “a”, în ordine, cu “b”, “c”, “d”.
Pentru discurile SCSI:
- /dev/sda1, /dev/sda2, etc., reprezentând partiţiile de pe primul disc (ID=0)
de pe magistrala SCSI (discul fiind numit /dev/sda). La fel ca şi la
discurile IDE, celelalte discuri au nume similare, înlocuindu-se litera “a”
cu “b”, “c”, etc.
Partiţiile, numite şi volume, se ataşează sistemului de fişiere sub formă de directoare.
Aşadar rădăcina sistemului de fişiere este situată pe o partiţie, iar anumite directoare din
arbore sunt, de fapt, legate pe alte partiţii de pe discurile din calculator.

/dev/hda
/
boot
etc

var /dev/hda1

usr

/dev/hda2

/dev/hdb
home

/dev/hdb1

swap
/dev/hdb2

În figura precedentă, este prezentată o structură cu două discuri fixe: /dev/hda care are
două partiţii (/dev/hda1 şi /dev/hda2) şi /dev/hdb care are şi el două partiţii (/dev/hdb1 şi
/dev/hdb2). Pe primul volum, /dev/hda1, este aşezată rădăcina şi cu toate directoarele
sistemului de operare, mai puţin două directoare: /usr de care este ataşată partiţia /dev/hda2,

188
şi /home de care este ataşată partiţia /dev/hdb1. A patra partiţie /dev/hdb2 constituie spaţiul
“swap”, memoria virtuală a sistemului. Aceasta reprezintă o zonă specială din discul fix, în
care sistemul de operare descarcă din memorie spaţiul folosit de anumite procese, în
momentul în care memoria fizică nu mai este suficientă, urmând ca, la terminarea unor
procese active în memorie, să reîncarce imaginea proceselor depusă în zona de memorie
virtuală respectivă.

7.4.2. Instalarea sistemului Linux

Instalarea sistemului Linux se realizează, ca şi în majoritatea celorlalte sisteme de


operare, pe baza unui asistent de instalare. Acesta diferă de la o variantă de Linux la alta, însă
paşii principali sunt respectaţi de majoritatea programelor de instalare existente. În cele ce
urmează, vor fi descrişi paşii principali din instalarea variantei Red Hat Linux 6.0:
1. Pornirea asistentului de instalare. Aceasta se poate face plecând de la una sau două
dischete (în funcţie de varianta de Linux), care sunt create folosind utilitarul rawrite.exe
cuprins în distribuţia de Linux. Acesta reconstituie dischetele de pornire a calculatorului,
plecând de la imaginile existente pe CD şi presupunând că distribuţia de Linux este
disponibilă pe acest tip de suport. Instalarea poate fi făcută şi extrăgând fişierele necesare
dintr-un alt calculator, folosind un suport de reţea pentru transmiterea datelor, caz în care
trebuie aleasă imaginea de dischetă potrivită pentru această operaţie. Indicaţii referitoare
la conţinutul imaginilor se găsesc întotdeauna în directorul care conţine imaginile, într-un
fişier text. După crearea dischetelor se porneşte calculatorul folosind dischetele obţinute.
Programul de instalare mai poate fi pornit, în funcţie de calculator, prin intermediul CD-
ului, dacă acesta este boot-abil (adică permite startarea sistemului de operare de pe CD),
şi dacă BIOS-ul calculatorului recunoaşte CD-ul ca fiind o posibilă unitate de stocare de
pe care să demareze un sistem de operare. Majoritatea calculatoarelor la ora actuală au
această opţiune prevăzută în BIOS.
2. Specificarea sursei de instalare. După ce programul de instalare a fost pornit, se cere
specificarea sursei de unde acesta va copia fişierele ce vor fi instalate pe discul fix local.
În cazul instalării de pe CD-ROM, se specifică unitatea de CD, şi programul va căuta
singur fişierele necesare. În cazul în care se instalează plecând de la un calculator din
reţea, va trebui configurată placa de reţea existentă în calculator (prin introducerea datelor
de configurare a adresei locale a calculatorului şi prin specificarea tipului de protocol
folosit pentru transferul datelor în reţea: NFS sau FTP), şi vor trebui furnizate date despre
adresa sau numele calculatorului sursă din reţea, cât şi directorul de pe calculatorul
respectiv, unde se găsesc fişierele necesare. Se mai poate alege ca sursă de instalare un
director de pe o partiţie existentă pe un disc fix local.
3. Partiţionarea discului fix. Programul de instalare lansează un utilitar sistem pentru crearea
şi aranjarea partiţiilor. Vor fi create în această fază partiţiile, care vor conţine sistemul de

189
operare şi directoarele în care se montează aceste partiţii. Trebuie avut în vedere că, tot în
această etapă, se creează şi partiţia (partiţiile) pentru memoria virtuală (swap) a
sistemului.
4. Specificarea spaţiului pentru memoria virtuală. Asistentul de instalare cere specificare
partiţiilor ce vor fi folosite ca memorie virtuală a sistemului.
5. Formatarea partiţiilor din sistem. Se realizează formatarea (sau nu, dacă se alege o altă
opţiune) a partiţiilor pe care le va folosi sistemul. Se creează în continuare structura
necesară funcţionării sistemului, care să primească sistemul de fişiere.
6. Copierea fişierelor indicate în noul sistem de fişiere. Prin intermediul unor casete de
dialog, afişate în mod text, se permite selectarea pachetelor de aplicaţii ce vor fi instalate
în sistem. Se copiază apoi, din sursa indicată la paşii precedenţi, toate fişierele sistemului
de operare şi a aplicaţiilor selectate.
7. Detecţia şi configurarea mouse-ului disponibil în sistem. Se permite selectarea tipului de
mouse folosit, şi asignarea lui pe portul (de cele mai multe ori serial) ocupat de acesta.
8. Configurarea reţelei. Dacă în calculator este prevăzută o placă de reţea, se cere
configurarea acesteia (sau păstrarea configuraţiei făcute în cazul instalărilor din reţea). În
caz contrar, poate fi aleasă configurarea unei conexiuni prin modem (Dial-Up).
9. Selectarea serviciilor de sistem. Printr-o casetă de dialog, asistentul de instalare cere
specificarea serviciilor ce vor fi pornite la demararea sistemului.
10. Instalarea imprimantei. Asistentul de instalare cere instalarea unei imprimante în sistem.
11. Parola de administrator. În această etapă se introduce parola pentru administrator
(utilizatorul root).
12. Configurarea programului de încărcare al sistemului. Sistemul de operare poate fi pornit
în două moduri principale. Primul este folosirea programului de încărcare special numit
LILO (LInux LOader), care se instalează în sectorul de boot al discului fix boot-abil din
calculator, sau pe primele sectoare ale primei partiţii. Acesta poate fi configurat ulterior
din sistemul Linux. O a doua variantă este folosirea unui program special pentru DOS,
numit loadlin.exe şi disponibil în distribuţia de LINUX, care are însă nevoie de un nucleu
al sistemului instalat, prezent în afara partiţiei rădăcină din LINUX, pe partiţia de tip DOS
unde se află executabilul. Este posibilă şi crearea unei dischete pe baza căreia să fie pornit
sistemul, în cazul în care nu se alege nici una din variantele anterioare. În această etapă se
alege tipul de pornire pentru sistemul instalat.
13. Sistemul X Windows. Programul de asistenţă al instalării încearcă detecţia tipului de
placă grafică folosită în calculator, şi cere specificarea tipului de monitor folosit, după
care testează configuraţia aleasă, oferind posibilitatea alegerii rezoluţiei şi profunzimii de
culoare ce vor fi utilizate în funcţionare.
14. Repornirea sistemului. În această fază sistemul este instalat, şi va fi repornit pentru ca
toate setările efectuate să intre în vigoare.

190
BIBLIOGRAFIE

1. C.S. French, "Computer Science", 4th Edition, D.P. Publications Ltd. - UK 1992.
2. Al. Valachi, M. Bârsan, "Tehnici numerice şi automate", Editura Junimea 1988.
3. Stephen P. Morse, Douglas J. Albert, "The 80286 Architecture", John Wiley and Sons Inc.
1986.
4. Chris H.Pappas, William H. Murray, "80386 Microprocessor Handbook", Osborne
McGraw-Hill 1986.
5. Edmund Strauss, "80386 Tehnical Reference", Brady Books - UK 1987.
6. Hans Peter Messmer, "The Indispensable PC Hardware Book", Addisson Wesley
Publishers 1994.
7. T. J. Buyers, "IBM PS/2 - A Reference Guide" , Multiscience Press-USA 1989.
8. Richard Dalton, Scott Mueller, "IBM PS/2 - Hanbook" , Que Corporation-USA 1988.
9. Kai Hwang, Faye A. Briggs, "Computer Architecture and Parallel Processing", McGraw
- Hill Book Company 1986.
10. Barry Wilkinson, "Computer Architecture , Design and Performance", Prentice Hall
International (UK) Ltd. 1991.
11. R.W. Hockney, C.R. Jesshope, "Parallel Computers", IOP Publishing (UK) Ltd. 1988.
12. Vlad Ţepelea, "MS-DOS 4.01", Editura Teora 1991.
13. Jack Nimersheim, "The first Book of MS-DOS 5", SAMS 1991.
14. "Disk Operating System - User's Guide and Reference Version 5.02", IBM 1991.
15. "Manual de referinţă 80486 şi Pentium", Intel 1997.
16. Scott Mueller, "PC Depanare şi Modernizare", Editura Teora 1995.
17. Brookshear J.G., "Introducere în informatică", Editura Teora 1999.
18. Steve Oualline, "Descoperiţi sistemul Linux", Editura Teora 1997.
19. Radu Mârşanu, "Sistemele de operare MS DOS şi UNIX", Editura Tehnică 1995.
20. Jennifer Fulton, "Windows 98", Editura Teora 1999.
21. Gini Courter, Annette Marquis, "Ghidul dvs. în lumea calculatoarelor", Editura ALL
EDUCATIONAL, 1998.
22. Sharon Crawford, N. Salkind, "Windows 98", Editura Teora 1999.
23. Irina Athanasiu, Al. Pănoiu, "Microprocesoarele 8086, 286, 386", Editura Teora 1991.
24. Gh. Muscă, "Programarea în limbaj de asamblare", Editura Teora 1995.
25. Vasile Palade, "Elemente de arhitectura calculatoarelor şi sisteme de operare", curs
universitar, Universitatea "Dunărea de Jos" din Galaţi, 1994.

191