Initiere Operare PC
Initiere Operare PC
Initiere Operare PC
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
3
Figura 1.1. Structura hard-soft a unui calculator
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.
5
- sistemul de intrare / ieşire sau porturi ( Input / Output System or ports )
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
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.
Demostraţie:
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.
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.
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.
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.
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)
14
Deci 418(10) = 1A2(16)
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.
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)
Î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.
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.
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Ă
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
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:
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ă.
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.
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
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
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:
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ţă.
25
3.4. Structuri logice combinaţionale
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.
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:
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
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.
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:
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.
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:
33
4. MICROPROCESOARELE DIN FAMILIA INTEL 80x86
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.
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.
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.
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").
Î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.
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.
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.
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ă.
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.
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.
Î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ă :
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).
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.
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:
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.
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.
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.
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".
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.
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.
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ă
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.
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.
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.
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.
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.
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.
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:
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.
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.
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).
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.
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.
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
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.
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
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.
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.
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:
Î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.
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.
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
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
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.
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.
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
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.
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ă.
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.
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.
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.
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.
Î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.
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.
Î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ă
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.
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.
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ă.
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.
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.
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ă.
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.
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.
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
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
Tehnoredactare
Comunicatii
computerizata
Calcul Diverse
tabelar utilitare
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.
- 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 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.
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.
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
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.
- 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ă.
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 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.
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.
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.
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ă
MEMORIA EXPANDATĂ
0 640KB
memorie MS-DOS
ROM BIOS
Bloc de 64KB
150
MEMORIA EXTINSĂ
16MB – 286
0 640KB 1MB 4GB – 386/386
Î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ă.
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
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ă.
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.
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]]]
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
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
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
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
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
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:
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.
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:
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.
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.
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
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ă.
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.
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.
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ă.
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).
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ă.
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