250
Ghiorghiţă Nicolaie COMŞA PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI Notiţe de curs Universitatea“Transilvania” din Braşov 2008

1Programarea calculatoarelor si limbaje de programare.pdf

Embed Size (px)

Citation preview

Ghiorghiţă Nicolaie COMŞA

PROGRAMAREA CALCULATOARELOR

ŞI LIMBAJE DE

PROGRAMARE ÎN

INDUSTRIA LEMNULUI

Notiţe de curs

Universitatea“Transilvania” din Braşov

2008

INTRODUCERE

Suportul de curs reprezintă o primă cale de cunoaştere a elementelor de bază din tehnica de programare a calculatoarelor şi de utilizare a limbajelor de programare în cadrul disciplinei fundamentale cu acelaşi titlu aflată în programa de studiu a studenţilor anului I de la facultatea de industria lemnului.

Cursul de faţă va va ajuta la înţelegerea şi buna utilizare a tehnicii de calcul atât sub formă de echipamente individuale sau de modul lor de conectare în cadrul reţelelor de calculatoare specifice întreprinderilor în care veţi lucra, cât şi la programarea şi realizarea de proiecte. Există multe echipamente industriale şi insalaţii dotate cu tehnică de calcul pentru supravegherea unor procese, pentru prelucrare mecanică etc. precum şi birotica necesară în toate sectoarele de activitate specifice sectorului de prelucrare a lemnului.

Într-o prezentare tructurată pe 8 capitole sunt trecute în revistă noţiunile de fundamentale care vor fi studiate, pornind de la bazele informaticii, codificarea datelor şi sistemele de numeraţie din capitolul 1, la studiul arhitecturii calculatoarelor şi componentelor acestora din cadrul capitolului 2, la studiul princiipilor de bază ale sistemelor de operare şi prezentarea unora din cele mai uzuale din capitolele 3 şi 4. Urmează un studiul complex al reţelelor de calculatoare în capitolul 5 şi tratarea aspectelor generale ale utilizării pachetelor de programe de birotică aflate în MS Office. În ultima parte sun prezentate noţiunile de bază ale proiectării limbajelor de programare şi particularizări ale utilizării limbajului Pascal şi C.

Lucrarea realizează o trecere rapidă în revistă a principalelor noţiuni teoretice care pot fi aprofundate prin lecturarea unor titluri de cărţi tratate în bibliografie şi alte materiale şi noutăţi care apar în acest domeniu cu o rapiditate uimitoare.

Obiectivele acestei discipline sunt de a familiariza studenţii şi utilizatorii acestui curs cu echipamentele de calcul, cu arhitectura calculatoarelor şi sistemele de operare pentru echipamentele individuale sau conectate la o reţea, precum şi cu familiarizarea cu modul de abordarea a rezolvării diverselor probleme folosind programarea evoluată culimbaje de programare.

Cunoştiinţele prezentate vor fi aprofundate şi fixate prin participarea activă la orele din cadrul laboratorului de informatică din facultatea de industria lemnului. Aici vor putea fi realizate programe şi teste cu specificul particular al sectorului de industria de prelucrare a lemnului din care provin marea majoritate a participanţilor la aceste cursuri.

Colectivul facultăţii de industria lemnului va felicită pentru determinarea de care daţi dovadă în abordarea studiului din acest domeniu de activitate, vă stă la dispoziţie pentru a vă sprijini şi îndruma pe tot parcursul studiului şi vă urează succes în această încercare la care aţi pornit.

Autorul

2

CUPRINS Introducere 1 Capitolul 1 Bazele informaticii 5

1.1. Informatica 5 1.2. Conceptele de bază ale informaticii 7

1.2.1. Informaţia 7 1.2.2. Data 10

1.3. Sistemul informaţional şi sistemul informatic 11 1.4. Codificarea datelor 15

1.4.1. Codificarea externă 16 1.4.2. Codificarea internă 18

1.5. Sisteme de numeraţie 18 1.5.1. Sistemul de numeraţie nepoziţional 19 1.5.2. Sistemul de numeraţie poziţional 19

Capitolul 2 Arhitectura calculatoarelor personale 22 2.1. Istoricul apariţiei calculatoarelor electronice 22 2.2. Noţiuni generale despre sistemele de calcul 25 2.3. Clasificarea calculatoarelor electronice 29 2.4. Arhitectura unui calculator personal 37

2.4.1. Microprocesorul 38 2.4.2. Componentele calculatoarelor 42 2.4.3. Memoria internă 43 2.4.4. Dispozitive pentru memoria externă 47 2.4.5. Magistrale şi componente interne 54 2.4.6. Dispozitive periferice 56

2.5. Interfeţele calculatorului 63 Capitolul 3 Principiile de bază ale sistemelor de operare 65

3.1. Configuraţia sistemului de calcul 65 3.2. Funcţiile şi componentele unui sistem de operare 67

3.2.1. Funcţiile unui sistem de operare 68 3.2.2. Componentele sistemului de operare 70 3.2.3. Programe de comandă – control 71 3.2.4. Programe de servicii pentru dezvoltarea programelor de aplicaţie 71 3.2.5 Alte programe de servicii 74 3.2.6. Sisteme de operare la calculatoare personale 75 3.3. Tehnici de gestiune a lucrărilor la sistemele de calcul 79 3.3.1. Obiectivele urmărite în gestiunea lucrărilor 79 3.3.2. Monoprogramarea 80 3.3.3. Multiprogramarea 81 3.3.4. Sistemul spooling (Simultaneous Peripheral Operations On Line) 83 3.3.5. Sisteme TIME – SHARING (Sisteme cu timp divizat) 83 3.3.6. Multiprelucrarea 85

3.4. Gestiunea resurselor unui sistem de calcul 86 3.4.1. Gestiunea proceselor şi procesoarelor 87 3.4.2. Gestiunea memoriei 89 3.4.3. Gestiunea dispozitivelor periferice 92

3.5. Componenta ROM-BIOS şi întreruperile MS-DOS. 94 3.5.1. Prelucrarea întreruperilor 94 3.5.2. Atribuirea întreruperilor şi priorităţii. serializarea întreruperilor 97

3.6. Componenta ROM-BIOS şi MS-DOS 97 3.6.1. Elemente componente BIOS 97

3

3.6.2. Structurarea programelor şi segmentarea la MS-DOS 98 3.6.3. Alocarea memoriei pentru programe şi execuţia lor 99 3.6.4. Programe rezidente (TSR) 99

Capitolul 4 Principalele sisteme de operare 100 4.1. Generalităţi 100 4.2. Sistemul de operare MS-DOS 102

4.2.1. Structura sistemului de operare MS-DOS 102 4.2.2. Sistemul de fişiere. structura discului sub MS-DOS. 104 4.2.3. Lansarea sistemului de operare 106 4.2.4. Configurarea sistemului de operare 108 4.2.5. Procesorul de comenzi 109 4.2.6. Crearea fişierelor de comenzi. fişierul AUTOEXEC.BAT. 110 4.2.7. Comenzile sistemului de operare MS-DOS 111

4.3. Sistemul de operare Unix 113 4.3.1. Concepte de baza 113 4.3.2. Structura sistemului de operare Unix 114 4.3.3. sistemul de fişiere Unix 115 4.3.4. sistemul de protecţie al fişierelor 117 4.3.5. comenzile sistemului de operare Unix 117 4.3.6. implementări ale sistemului de operare Unix 118

4.4. Sistemul de operare Linux 119 4.4.1. Arhitectura sistemului de operare Linux 119 4.4.2. Distribuţii Linux 120 4.4.3. Caracteristicile principale ale distribuţiei Red Hat 122 4.4.4. Prezentarea interfeţelor grafice 122

4.5. Sistemul de operare Windows 126 4.5.1. Interfaţa grafică Windows 127 4.5.2. Sesiunea de lucru Windows 130 4.5.3. Sesiunea de lucru Windows XP 136 4.5.4. Sesiunea de lucru Windows Vista 141 4.5.5. Windows 7 145

Capitolul 5 Reţele de calculatoare 147 5.1. Generalităţi 147 5.2. Tipuri de reţele de calculatoare 147 5.3. Modelul de comunicaţie în sistemele de date 148 5.4. Reţele locale 150

5.4.1. Mediul de transmisie 150 5.4.2. Topologia reţelelor 154 5.4.3. Tehnica de transmisie 156 5.4.4. Protocoale de comunicaţie 160

5.4.4.1. Modelul de referinţă ISO/OSI 161 5.4.4.2. Modelul client – server 163

5.4.5. Echipamente de interconectare 163 Capitolul 6 Pachetul MS Office 165

6.1. Generalităţi 165 6.2. Editorul de texte – Word 167 6.3. Microsoft excel XP 179

Capitolul 7 Limbaje de programare 186 7.1. Domenii de utilizare ale calculatoarelor 186

7.1.1. Calculatoarele de proces 188 7.2. Organizarea structurată a calculatoarelor 191 7.3. Generalităţi despre programarea calculatoarelor 194

4

7.4. Proiectarea limbajelor de programare 195 7.4.1. Procesul de creare a software-ului 195 7.4.2. Aspecte ale calităţii softului 196 7.4.3. Criterii de proiectare a unui limbaj de programare 197

7.5. Evoluţia şl clasificarea limbajelor de programare 198 7.5.1. Limbaj maşină. limbaj de nivel înalt 199 7.5.2. Generaţii de limbaje 201 7.5.3. Paradigme de programare 201

7.5.3.1. Ciclul de viaţă şi paradigmele dezvoltării software 202 7.5.3.2. Paradigma programării structurate 203 7.5.3.3. Paradigma programării orientate pe obiecte 204 7.5.3.4. Comparaţie între paradigmele programării 205 7.5.3.5. Programarea structurată 207 7.5.3.6. Evoluţia limbajelor de programare 211

Capitolul 8 Limbajul pascal 213 8.1. Elementele de baza ale limbajului pascal 213

8.1.1. Apariţia, evoluţia şi caracteristicile generale ale limbajului 213 8.1.2. Construcţiile limbajului 214

8.2. Tipuri statice de date şi expresii 218 8.2.1. Clasificarea tipurilor statice de date.variabile şi constante 220

8.3. Realizarea structurilor fundamentale de control 226 8.4. Proceduri şi funcţii 230

8.4.1. Proceduri 231 8.4.2. Funcţii 231 8.4.3. Parametri 231

8.5. Fişiere 234 8.6. Tipuri dinamice de date 238 8.7. Unităţi de programe 242 8.8 Programarea orientată spre obiecte 247

Bibliogarfie 250

CAPITOLUL 1. BAZELE INFORMATICII

5

CAPITOLUL 1

BAZELE INFORMATICII

1.1 INFORMATICA

Informatica este un domeniu al cunoaşterii umane având drept obiect de studiu calculatoarele, principiile de funcţionare şi modul lor de utilizare. Studiază mijloacele şi tehnicile de culegere, prelucrare, transmitere şi gestiune a informaţiilor utilizând sistemele electronice de calcul, respectiv calculatoarele. Informatica a apărut după anii 1950, concomitent cu apariţia primelor calculatoare denumita iniţial ştiinţa calculatoarelor, devine ştiinţa prelucrării, culegerii, formalizării, stocării şi regăsirii informaţiilor.

Definită iniţial de către Academia Franceză (în 1966), ca fiind ştiinţa prelucrării raţionale, îndeosebi prin maşini automate, ainformaţiei, considerată ca suport al cunoştinţelor umane şi al comunicărilor în domeniile tehnicii, economice şi sociale”, informatica se conturează ca activitate practică şi concepţie teoretică, pe măsura dezvoltării calculatoarelor electronice şi a perfecţionării tehnologiei de prelucrare a datelor.

În accepţiunea curentă, informatica cuprinde toate activităţile legate de proiectarea, realizarea şi exploatarea sistemelor de prelucrare automată a datelor, în scopul creşterii eficienţei activităţilor umane, care influenţează în mod decisiv fizionomia economiei şi societăţii în general, prefigurând societatea informatizată de mâine.

Sensul etimologic al cuvântului INFORMATICĂ, provine din limba franceză (informatique) prin alăturarea cuvintelor informaţie şi matematică. (Alte surse susţin că provine din combinaţia informaţie şi automatică).

Informatica este considerată o ştiinţă de sine stătătoare sau un domeniu al cunoaşterii umane cu caracter multidisciplinar.

Informatica este definită ca ştiinţa aplicativă care se ocupă cu prelucrarea raţională şi automată a informaţiilor sau domeniul de cercetare care se ocupă de bazele ştiinţifice ale activităţii de informare şi documentare - teoria informării ştiinţifice.

Informatica este definită ca "ştiinţa şi studiul căilor şi modurilor de prelucrare şi transmitere a informaţiilor", ca "ştiinţa gestiunii şi prelucrării informaţiilor" sau ca "ansamblul tehnicilor aplicabile prelucrării informaţiilor utilizând mai ales mijloacele automate (calculatoarele)", după dicţionarul de informatică publicat de Michel Ginguay şi Annette Laurent la editura Mason (Paris). Informatica este definită ca "un domeniu al cunoaşterii umane având drept obiect de studiu calculatoarele, principiile legate de ele şi utilizarea lor, aria de investigare fiind extrem de largă, de la proiectarea şi testarea hardware-ului şi software-ului, până la reţele de calculatoare, grafică, simulări, inteligenţa artificială, teoria sistemelor informatice etc." după dicţionarul de specialitate al Universităţii din Oxford.

Istoria ştiinţei calculatoarelor precede momentul apariţiei computerului digital. Înainte de anul 1920, termenul de "computer" se referea în l. engleză la un o persoană care efectua calcule (un funcţionar). Primii cercetători în ceea ce avea să se numească ştiinţa calculatoarelor, cum sunt Kurt Gödel, Alonzo Church şi Alan Turing, au fost interesaţi de problema computaţională: ce informaţii ar putea un funcţionar uman să calculeze având hârtie şi creion, prin urmărirea pur şi simplu a unei liste de instrucţiuni, atât timp cât este necesar, fără să fie nevoie ca el să fie inteligent sau să presupună capacităţi intuitive.

Informatica este activitatea pluridisciplinară având ca scop iniţial elaborarea de noi metode, inclusiv sisteme automate, pentru distribuirea informaţiei tehnico-ştiinţifice, studiind procesele de comunicaţie în colectivităţile ştiinţifice şi industriale şi urmărind dezvoltarea unor tehnici şi sisteme pentru organizarea, memorarea şi distribuirea mai eficientă a informaţiei. Odată cu dezvoltarea sistemelor de calcul informatica şi-a lărgit sfera de acţiune şi în alte domenii, ca medicină, gestiune economică, administraţie, învăţământ, artă, drept, apărare etc, cuprinzând prelucrarea automată a informaţiilor specifice acestora. În accepţiunea curentă, informatica cuprinde toate activităţile legate

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

6

de proiectarea şi exploatarea sistemelor de prelucrare a informaţiilor, în scopul creşterii eficienţei activităţiilor umane, fizice şi intelectuale.

Informatica cuprinde (după dicţionarul LAROUSSE -PARIS 1993): - informatica teoretică - care se ocupă cu studiul teoriei limbajelor formale, respectiv

automatica, teoria computaţională şi complexităţii, teoria grafurilor, criptologie, logică ş.a.m.d punând bazele pentru construirea compilatoarelor pentru limbajele de programare şi pentru formalizarea problemelor din matematică, fiind coloana vertebrală a informaticii.

- informatica sistemelor - care cuprinde arhitectura calculatoarelor şi sistemelor de exploatare, reţele, etc,

- informatica tehnologică - care se referă la materiale, respectiv componente electronice, semiconductori, memorii, înregistrarea pe suport magnetic, echipamente sau terminale de intrare-ieşire, etc,

- informatica metodologică - care tratează cu prioritate partea de programare: compilare, limbaje, tehnici de exploatare a informaţiei, analiză, programare structurată, etc,

- informatica aplicată (sau practică) - care acoperă toate domeniile care utilizează sistemele electronice de calcul şi tratarea automată a informaţiei, respectiv a semnalelor din ramurile aplicative ale domeniilor industriale, economice, sociale şi de altă natură.

În domeniile interdisciplinare se fac cercetări pentru găsirea posibilelor soluţii pe care tehnologia informaţiei le-ar putea oferi. Astfel se poate menţiona aici dezvoltarea de sisteme geoinformaţionale, sau informatică economică ori bioinformatică.

Etapele de dezvoltare a informaticii au urmărit atât evoluţia tehnicii de calcul, cât şi dezvoltarea produselor informatice tot mai complexe şi mai uşor de folosit, pătrunzând în toate domeniile vieţii sociale şi la toate nivelele, prefigurând astfel societatea informaţională, în care toate activităţile implică utilizarea sistemelor electronice de calcul.

Informatica, principala formă a tehnologiei informaţiei, a cunoscut o evoluţie din momentul apariţiei ei, moment marcat prin impactul tehnologiei informaţiei asupra activităţilor umane, până la transformarea societăţii omeneşti într-o societate informaţională.

Faza I-a, în care informatica a apărut odată cu calculatorul electronic şi a pătruns iniţial în domeniul învăţământului şi cercetării. Tehnologia informaţiei, la începuturile sale, era strâns legată de tehnica de calcul, ceea ce inducea un grad mare de dificultate, făcând-o accesibilă doar unui număr restrâns de specialişti.

Faza a II-a, când informatica a pătruns în domeniul economic, care necesită prelucrarea unui volum mare de date, iar informaţiile rezultate, urmare a prelucrărilor, trebuiau livrate în timp util factorilor decizionali. În aceste condiţii au apărut sistemele complexe de conducere şi gestiune a proceselor economice ca instrument eficient al realizării procesului decizional. Introducerea acestor sisteme a impus un cadru organizatoric speicializat, deservit de specialişti în domeniul informaticii, ceea ce a condus la apariţia în cadrul unităţilor economice a oficiilor şi centrelor de calcul.

Faza a III-a, corespunde expansiunii informaticii, în ceea ce priveşte sfera de aplicabilitate şi utilizare a produselor informatice. Această etapă reprezintă crearea societăţii informaţionale. Analiza extinderii informaticii trebuie apreciată atât pe orizontală (ca arie de raspândire), cât şi pe verticală, ajungând până la nivelul fiecărui individ. Apariţia şi extinderea microcalculatoarelor, precum şi dezvoltarea sistemelor de comunicaţii au produs mutaţii nu numai la nivelul structurilor organizatorice, ci mai ales la nivelul individului, transformându-i viaţa. Calculatoarele personale şi reţelele de calculatoare sunt astăzi un suport pentru activitatea profesională, cât şi pentru activităţile extra-profesionale (comerţ electronic, tranzacţii financiar-bancare, poştă efectronică etc). Societatea informaţională nu va fi cu siguranţă ultimul stadiu al dezvoltării informaticii, ea însăşi generând noi exigenţe, care vor impulsiona inventivitatea umană pentru realizarea de noi tehnologii şi moduri de abordare în depăşirea celor mai îndrăzneţe idealuri. Tehnologia informaţiei şi-a extins aria de utilizare atât pe verticală, în toate domeniile vieţii sociale, cât şi pe orizontală, la nivelul tuturor indivizilor.

CAPITOLUL 1. BAZELE INFORMATICII

7

Diversificarea utilizării informaticii, face dificilă o enumerare a tuturor domeniilor de aplicabilitate şi a funcţiilor preluate de ea, în principalele ramuri ale activităţii socio-economice şi modul de implicare a informaticii în aceste domenii:

- ştiintific - educaţional - tehnic - financiar-bancar - comercial - organizatoric - comunicaţii - transporturi - construcţii - turism - social - cultural - politic - privat / individual.

Informatica este privită ca un complex de discipline prin care se asigură prelucrarea raţională a informaţiilor prin intermediul maşinilor automate, fiind divizată în nouă subdomenii :

- arhitectura calculatoarelor, - sisteme de operare, - algoritmi şi structuri de date, - limbaje de programare, - ingineria programării, - calcule numerice şi simbolice, - sisteme de gestiune a bazelor de date, - inteligenţa artificială, - animaţie şi robotică.

1.2. CONCEPTELE DE BAZĂ ALE INFORMATICII 1.2.1. Informaţia Cuvântul informaţie - preluat din latină (informatio) prin intermediul limbii franceze

(information) - este polisemantic, putând căpăta mai multe semnificaţii (uneori total diferite sau chiar contradictorii), ce sunt determinate de domeniile şi contextele foarte variate în care este folosit. În afara înţelesurilor din limbajul comun, el are şi alte sensuri, atribuite fie prin definirea sa ca termen (ştiinţific sau tehnic) fie ca şi concept în cadrul unor ramuri ale filosofiei sau al unor ştiinţe şi tehnologii al căror obiect de studiu este. Informaţia a început să fie considerată ca factor ontologic primordial, ce stă, împreună cu materia şi energia la originea universului.

Informaţia este un termen introdus iniţial, în domeniul tehnic, numai pentru a desemna incertitudinea înlăturată prin realizarea unui eveniment dintr-un set de evenimente posibile. Semnificaţia termenului s-a extins la cunoaştere în general, adică la apariţia unui nou element, necunoscut anterior, fie pentru om, fie pentru un sistem de calcul, asupra realităţii înconjurătoare. Informaţia redă într-un mod specific imaginea realităţii economico-sociale, destinată funcţiei de gândire umană în vederea descifrării semnificaţiilor sale şi transformarea acesteia prin intermediul factorului uman-decizional în decizii menite să regleze întregul sistem cibemetic condus.

Informaţia, ca obiect al comunicǎrii prin calculator, este fundamentatǎ pe date care au dobândit, prin prelucrare (procesare), semnificaţie, scop sau utilitate.

Deoarece informaţia constituie obiectul principal al comunicǎrii, trebuie sǎ atingǎ urmatoarele calitǎţi:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

8

• consistenţa - suficient de cuprinzǎtoare încât sǎ poatǎ furniza cât mai multe cunoştinţe; • relevanţa - sǎ poatǎ furniza acele cunoştinţe care lipsesc, în vederea luǎrii unei decizii; • exactitate - continutul ei sǎ reflecte situaţia realǎ a fenomenului; • oportunitate - sǎ fie furnizatǎ în timp util; • accesibilitate - sǎ fie clarǎ, uşor de înteles.

Din punct de vedere conceptual, informaţia reprezintă o reflectare în planul gândirii umane, a legăturilor de cauzalitate privind aspectele din realitatea ce ne înconjoară.

Din punct de vedere informatic, francezul J. Arsac defineşte informaţia ca "o formulă scrisă susceptibilă de a aduce o cunoştiinţă". Conform acestei definiţii rezultă caracterul de noutate pe care îl are informaţia.

Indiferent de definiţia dată conceptului de informaţie, se evidenţiază trăsăturile caracteristice ale acesteia, şi anume:

• obiectivitatea, • generalitatea, • noutatea.

Referindu-se la un fenomen real, obiectiv, informaţia are două laturi de bază: • latura calitativă; • latura cantitativă.

Latura calitativă exprimă stări care nu sunt mărimi ce pot fi determinate, iar latura cantitativă reprezintă mărimi obţinute prin măsurare sau numărare.

În diferite domenii de activitate, informaţiile sunt clasificate: - după domeniul de activitate, avem:

• informaţii ştiinţifice, • informaţii tehnologice, • informaţii economice, • informaţii sociale,

- după frecvenţa de generare şi folosire, informaţiile sunt: • informaţii operative, care exprimă starea şi dinamica fenomenelor şi proceselor ce se

desfaşoară la intervale scurte de timp (oră, schimb, zi etc.); • informaţii periodice, sunt formate din cumularea informaţiilor operative la anumite

intervale de timp prestabilite (decadă, lună, trimestru, semestru, an), în aşa fel încât fenomenele şi procesele economice să poată fi cuantificate la încheierea acestor intervale de timp.

• informaţii statistice, se bazează pe utilizarea informaţiilor cu caracter operativ, periodic şi redau dinamica şi structura fenomenelor şi proceselor economice prin comparaţii ale informaţiilor între două intervale de timp, denumite intervale de referinţă.

• informaţii previzionale, care se obţin din agregarea informaţiilor operative, periodice şi/sau statistice, în vederea determinării evoluţiei viitoare a fenomenelor şi proceselor economice pe baza căreia se vor fundamenta deciziile cu caracter precizional.

- după forma de exprimare, informaţii sunt: • informaţii analogice, care exprimă starea şi dinamica unor fenomene şi procese, care

sunt caracterizate prin parametri cu variaţie continuă, informaţiile fiind primite sub formă de semnale de la aparate de măsurat (ca de exemplu: presiune, temperatură, tensiune, intensitate şi rezistenţă electrică etc);

• informaţii numerice, care reprezintă exprimarea prin cifre a laturii cantitative a informaţiei, rezultatele fiind obţinute prin: numărare, măsurare, calcul etc;

• informaţii nenumerice, care se prezintă printr-o varietate de forme (ca de exemplu: liste, texte, rapoarte etc.), folosind diferite simboluri (cifre, litere, caractere speciale);

- după natura simbolurilor folosite, informaţiile sunt: • informaţii alfabetice, • informaţii numerice,

CAPITOLUL 1. BAZELE INFORMATICII

9

• informaţii alfanumerice, • informaţiile logice, • informaţiile de tip dată-calendaristică,

- după nivelul de detaliere al conţinutului, informaţiile sunt: • informaţii analitice, care descriu în detaliu fenomenele şi procesele pe care le

exprimă şi care nu mai pot fi descompuse în alte nivele de detaliu; • informaţii sintetice, care rezultă din agregarea sau cumularea informaţiilor analitice

realizate în timp (lunar, trimestrial, anual etc) şi în spaţiu (atelier, întreprindere etc). - dupǎ forma sa de reprezentare:

1. forma analogicǎ, 2. forma digitalǎ.

Pe suportul tehnic informaţia se prezintǎ ca o succesiune de valori binare (0 si 1) ordonate după un sistem de reguli (cod) si prin urmare introdusa în sistemul de calcul se transmite şi se memoreazǎ direct.

Clasificarea informaţiei dupǎ natura sa: 1. date: numerice, alfabetice, alfanumerice; 2. texte ; 3. documente grafice; 4. secvenţe audio ; 5. secvenţe video.

Clasificarea informaţiei din punct de vedere al suportului utilizat: 1. informaţie aflatǎ pe suporturi tehnice: suporturi magnetice sau optice. 2. informaţie aflatǎ pe suporturi grafice: suporturi opace şi transparente.

În 1928 R. Hattley introduce noţiunea esenţială de cantitate de informaţie. Cel care a dezvoltat teoria informaţiei a fost, în 1948 C. Shannon, care introduce, ca masură a informaţiei entropia informaţională, mărime care măsoară gradul de nedeterminare al unui fenomen. Unitatea de masură pentru această mărime a informaţiei este informaţia elementară.Informaţia elementară reprezintă forma cea mai simplă sub care poate fi concepută informaţia. Ea este informaţia furnizată prin precizarea unei variante din două posibile. În teoria informaţiei orice informaţie, oricât de complexă ar fi, poate fi exprimată prin informaţii elementare, iar sistemul de calcul va trebui să utilizeze sistemul de numeraţie binar.

Informaţia elementră se mai numeşte şi BIT (BInaty digiT), adică una din cele două cifre binare 0 sau 1. Bitul reprezintă atomul informaţiei, nivelul de la care informaţia nu mai poate fi descompusă. Biţii se grupează câte 8 şi formează un Byte sau un Octet.

Definirea informaţiei din punct de vedere ontologic, care face parte din triada informaţie - energie - materie, care constituie baza existenţei tuturor entităţilor materiale, biologice, sociale sau psihologice, subliniază faptul că orice entitate, naturală sau creată de om, conţine o anumită cantitatea de informţie, într-o anumită structură

Din punct de vedere cibernetic, informaţia reprezintă cantitatea de noutate pe care o conţine un mesaj pentru fiinţă umană receptoare. Gradul de noutate depinde de doi factori, gradul de interes al receptorului faţă de mesajul purtător al informaţiei şi gardul de satisfacere al acestui interes, dat de conţinutul mesajului (parţial sau integral).

Din punct de vedere semiotic, al stiinţei semnelor, informaţia se identifică cu componenta semn din cadrul dihotomiei semn - sens. Relaţia semn -sens este văzută ca relaţie mesaj-semnificaţie simultan cu relaţia dintre semnificant - semnificat. Sensul suferă o codificare naturală sau convenţional-umană, transformându-se prin forma semnelor care devin mesaje, prin interpretarea semnelor din conţinutul mesajului, se ajunge la sensul care a stat la baza construirii mesajului; transmiterea informaţiei se realizează sub formă digitală, pe baza unor coduri convenţionale, unanim acceptate.

Din punct de vedere epistemologic, adică al teoriei cunoaşterii ştiinţifice instrument utilizat în separarea adevărului de eroare, a adevărului de fals, informaţia este dihotomia realitate - informaţie. Realitatea se prezintă sub diferite forme sau fenomene trecute sau actuale, nu şi viitoare

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

10

cu cât cantitatea de informaţie este mai mare, posibilitatea de a cunoaşte realiatatea la care se referă, creşte. Aceasta este dimensiunea cantitativă a cunoaşterii umane, cu cât calitatea si fidelitatea informaţiei sunt mai mari, cu atât posibilitatea de a cunoaşte realitatea şi aflarea adevărul sunt mai mari. Aceasta este dimensiunea calitativă a cunoaşterii umane.

Valoarea unei informaţii este dată de factorii : fidelitatea informaţiei, reprezintă cantitatea de adevăr pe care o conţine puritatea sau

acurateţea informaţiei, sunt invers proporţionale cu cantitatea de eroare conţinută, accesibilitatea informaţiei, eficienţa semiotică a informaţiei este opusă redundanţei este expresia economiei de semne

pentru comunicarea unui sens, efortul pentru obţinerea sau crearea informaţiei, efectul produs la utilizatorul de informaţie, operativitatea (viteza) oportunitatea durata de viaţă etc.

În vorbirea curentă, noţiunea de informaţie se substituie celei de dată şi invers. Ambele sunt frecvent întâlnite, ele îmbrăcând cele mai diverse şi banale sensuri, mergând până la confundarea lor. Spre deosebire de continuţul şi sensurile pe care conceptele de informaţie şi dată le primesc în vorbirea curentă, lucrările de specialitate dau acestor două noţiuni o identitate proprie.

1.2.2. DATA

Cuvântul "dată" provine din cuvântul latin datum, care gramatical este participiul trecut al

verbului latin dare, "a da". Încă din antichitate propoziţiile sau faptele considerate evident adevărate erau numite "date".Datele iniţiale neprelucrate (engl.: data, date brute) sunt, în cel mai larg sens, numere, litere, imagini şi alte forme de date produse de aparate care convertesc mărimile fizice în simboluri. Aceste date sunt prelucrate apoi de oameni, sau pot fi şi introduse în calculatoare cu scopul de a fi stocate şi prelucrate acolo, sau şi pentru a fi transmise la alte persoane şi calculatoare.

În calculatoarele actuale datele sunt reprezentate intern prin simboluri din cadrul unui "alfabet" de simboluri permise. Această reprezentare internă este de obicei numerică (digitală). Cel mai des întâlnite sunt simbolurile "0" şi "1" care, înşiruite după anumite sisteme în număr suficient de mare, pot reprezenta (în mod poate surprinzător) orice date şi informaţii finite. Aceste 2 simboluri sau cifre constituie aşa-numitul alfabet binar.

Informaţia primeşte întotdeauna atributul domeniului pe care îl reflectă. Procesul de sesizare, înţelegere şi însuşire a informaţiilor dintr-un anumit domeniu reprezintă un proces de informare. Informaţiile dobândite în urma unui proces de informare într-un anumit domeniu, formează cunoştinţele despre acel domeniu, iar mulţimea acestora reprezintă patrimoniul de cunoştinţe.

Cunoştinţele reprezintă o însumare în timp a tuturor informaţiilor dobândite într-un anumit domeniu.

Data este forma de reprezentare materială a informaţiei. Datele reprezintă suportul formal al informaţiei care se concretizează în cifre, litere, simboluri, coduri şi alte semne plasate pe suporţi tehnici de date.

Datele reprezintă obiectul prelucrării pentru informatică, materia primă a acesteia şi numai prin asociere cu realitatea pe care o reflectă, se poate spune că informatica generează informaţii.

Datele obţinute în urma procesului de prelucrare pot avea calitatea de informaţii pentru o anumită categorie de utilizatori sau rămân simple date dacă îşi pierd calitatea de noutate semantică.

În procesul prelucrării şi utilizării informaţiilor, acestea sunt privite din trei puncte de vedere: - din punct de vedere sintactic, când se urmăreşte aspectul formal al reprezentării acestora, în

sensul că datele care se prelucrează se supun riguros anumitor reguli de validitate; - din punct de vedere semantic, urmărindu-se semnificaţia,înţelesul informaţiei (conţinutul

real al informaţiei) ce derivă din datele prelucrate;

CAPITOLUL 1. BAZELE INFORMATICII

11

- din punct de vedere pragmatic, urmărindu-se utilitatea, adică măsura în care sunt satisfăcute cerinţele utilizatorilor.

Data constituie o formă de reprezentare concretă, accesibilă a informaţiilor. Ca noţiune generală, informaţia nu poate fi folosită decât dacă este exprimată concret, prin intermediul unui suport. Pentru a face obiectul prelucrărilor, informaţiile, trebuie să corespundă scopului propus, şi anume trebuie să fie:

veridice -să reflecte fidel fenomenul, evenimentul la care se referă; precise -să nu lase loc pentru echivoc, pentru interpretări arbitrare; complete -să aibă toate elementele esenţiale înţelegerii fenomenului; semnificative -să prezinte un interes real pentru problema în cauză; oportune -să sosească la timp, să permită, la nevoie, o intervenţie eficientă.

Informaţiile, în procesul lor de transformare din materie primă în produs finit, vor parcurge mai multe faze:

- Faza de codificare, - Faza de generare de date, - Faza de stocare a datelor, - Faza de prelucrare a datelor, - Faza de actualizare a datelor, - Faza de regăsire a datelor, - Faza de eliminare a datelor, - Faza de transmisie a datelor. Fazele parcurse de informaţii în procesul lor de prelucrare este ilustrat în cadrul imaginii de

mai jos (fig. 1.1).

Figura 1.1. Transformările şi sensul informaţiei

Informaţiile pot fi privite pe parcursul transformărilor suferite din trei puncte de vedere: - sintactic -reprezintă aspectul formal, forma de reprezentare conform unor anumite reguli

(codificare externă, internă etc); - semantic -reprezintă evidenţierea semnificaţiei datelor (interpretarea rezultatelor obţinute

în urma prelucrărilor şi furnizate ca situaţii finale); - pragmatic -reprezintă utilitatea pentru beneficiari (valorificarea informaţiilor dobândite,

pentru fundamentarea luării deciziilor, etc). . Aceste trei sensuri sunt utilizate de informatică în unitatea lor, iar sfera lor de cuprindere este

ilustrată în figura anterioară. Termenul de informaţie este utilizat şi pentru a desemna datele, deoarece există o corespondenţă determinată între informaţie, simbol şi dată.

1.3. SISTEMUL INFORMAŢIONAL ŞI SISTEMUL INFORMATIC

Prin sistem se întelege un ansamblu de componente interdependente fizice şi logice

interconectate şi intercondiţionate prin relaţii fizice, economice, sociale sau de altă natură, care sunt organizate, interacţionează şi funcţionează pentru realizarea unui scop (obiectiv) determinat.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

12

Un sistem este format dintr-o componentă de comandă şi o componentă ce reprezintă obiectul comandat. Componenta de comandă transmite spre obiectul comandat informaţii de comandă indicând modul în care trebuie să acţioneze obiectul comandat, iar în sens invers, se transmit informaţii de stare privind rezultatele obţinute de către obiectul comandat prin efectuarea acţiunii solicitate. Informaţiile de stare sunt analizate de componenta de comandă şi se va genera o nouă comandă în funcţie de rezultatul anterior transmis. Menţinerea comunicării prin mijlocirea informaţiei, în ambele sensuri, între componenta de comandă a sistemului şi cea comandată este indispensabilă realizării funcţionării sistemului.

Un sistem economic complex reuneşte un ansamblu de elemente considerate subsisteme, care sunt sub forma unor entităţi separabile cu funcţii proprii, care se află într-o ierarhie bine determinată, având legături reciproce. O unitate economică poate fi privită ca un sistem format dintr-un ansamblu de componente intercorelate care sunt organizate şi funcţionează în vederea atingerii unui scop specific activităţilor sale. Intreprinderea ca sistem poate fi caracterizată prin următoarele elemente definitorii:

-obiectivele unităţii redau scopul sau finalitatea funcţionării întregului sistem; -elementele sistemului unităţii sunt formate din ansamblurile cu caracter material sau abstract

care compun întregul sistem şi redau statica acestuia; -relaţiile sistemului unităţii sunt reprezentate de legăturile stabilite între elementele

sistemului în vederea realizării obiectivelor sale şi redau dinamica sistemului; -structura sistemului este definită de ansamblul elementelor şi relaţiilor stabile în vederea

atingerii obiectivelor acestuia şi este reflectată prin arhitectura întregului sistem al unităţii. Prin intermediul structurii se asigură caracterul reglabil şi autoreglabil al sistemului unităţii economice.

În raport cu originea lor, sistemele se pot clasifica după cum urmează : • Sisteme naturale, care corespund fenomenelor naturale (factori climatici, geografici etc.) • Sisteme umane, care sunt create de către om

În raport cu posibilitatea de modificare , sistemele se pot clasifica după cum urmează : • Sisteme stabile, care ramân nemodificate în raport cu perioade lungi de funcţionare, • Sisteme nestabile, care se pot schimba structural sau funcţional după anumiţi factori, • Sisteme autoreglabile, care au proprietatea de a acţiona cu mijloace proprii în cazul

diverselor pertubări şi de a pastra în anumite perioade autocontrolul în funcţionare; Sistemele caracterizate prin autoreglare sunt denumite sisteme cibernetice. În raport cu ansamblul intrărilor, parametrilor şi ieşirilor subsistemele se pot clasifica după

următoarele criterii: - din punct de vedere al funcţiilor realizate de întreprindere se disting următoarele

subsisteme (între care există un ansamblu de relaţii funcţionale şi de subordonare) : -subsistemul cercetare-dezvoltare; -subsistemul producţie; -subsistemul comercial ; -subsistemul personal; -subsistemul financiar-contabil.

- din punct de vedere al modului de participare la realizarea obiectivelor întreprinderii: -subsistemul funcţiilor de conducere cuprinde activităţile specifice de informare, comandă, coordonare, decizie, reglare şi control ; -subsistemul funcţiilor de execuţie include activităţile specifice de producţie, servicii, transport etc.

- din punct de vedere al mecanismului de conducere al sistemului întreprinderii: -subsistemul de execuţie (condus); -subsistemul de informare (informaţional); -subsistemul de decizie (conducere).

Subsistemul de execuţie (condus) cuprinde ansamblul activităţilor specifice (producţie, aprovizionare, desfacere, transport, export etc. ) al căror volum şi calitate sunt reflectate prin

CAPITOLUL 1. BAZELE INFORMATICII

13

intermediul datelor consemnate în documentele justificative care redau starea şi dinamica fenomenelor şi proceselor conduse. Acest subsistem furnizează la ieşire date către sistemul informaţional şi primeşte la intrare decizii transmise de către acesta.

Subsistemul de informare (informaţional) cuprinde totalitatea principiilor, metodelor, procedeelor şi mijloacelor (tehnică electronică de calcul şi personalul specializat în informatică) folosite pentru generarea, culegerea, transmiterea, stocarea şi prelucrarea datelor în vederea analizei şi transmiterii informaţiilor către subsistemul de conducere în scopul fundamentării deciziilor pentru întregul sistem al întreprinderii. Subsistemul informaţional primeşte date de la subsistemul de execuţie, transmite informaţii către subsistemul de conducere şi decizii către cel de execuţie.

Subsistemul de decizie (conducere) cuprinde ansamblul activităţilor de conducere, coordonare, comandă, reglare şi control în vedrea asigurării optimului în funcţionarea întregului sistem al întreprinderii prin fundamentarea unor decizii pertinente cu caracter tactic, strategic şi operativ. Acest subsistem primeşte informaţii de la subsistemul informaţional şi transmite decizii către acesta.

Deci nucleul central al sistemului propriu al întreprinderii îl reprezintă subsistemul informaţional al cărui mod de prelucrare a datelor caracterizează nivelul de dezvoltare al întregului sistem.

Sistemul informaţional al întreprinderii se compune, din punct de vedere structural, din: posturi de prelucrare, fluxuri şi reţele informaţionale.

Postul de prelucrare reprezintă o poziţia organizatorică în care datele sunt stocate pe un suport tehnic, vehiculate sau prelucrate în vederea obţinerii informaţiilor necesare pentru respectivul post cât şi pentru cele cu care acesta intră în legătură. Acesta se caracterizează prin datele de intrare, funcţia de prelucrare aplicată acestora, timpul de staţionare şi informaţiile de ieşire din postul respectiv.

Fluxurile informaţionale reprezintă ansambluri omgene de informaţii transmise între posturile de prelucrare, fiind caracterizate de postul de emisie, postul de recepţie, volumul datelor şi frecvenţa de vehiculare.

Din punctul de vedere al circulaţiei informaţiilor, fluxurile informaţionale pot fi: interne şi externe, orizontale şi verticale.

Fluxul informaţional intern asigură circulaţia informaţiei între verigile organizatorice la nivelul întreprinderii. Aceste fluxuri informaţionale pot fi:

-flux informaţional orizontal; -flux informaţional vertical.

Fluxul informaţional extern asigură circulaţia informaţiei între întreprindere şi alte organisme economice cu care aceasta intră în relaţii economico-financiare şi pot fi de asemenea:

-flux informaţional orizontal; -flux informational vertical.

Reţeaua informaţională constituie ansamblul posturilor de prelucrare şi fluxurilor informaţionale aflate în corespondenţă logică, iar funcţie de modul de prelucrare a datelor, poate fi de tip descentralizat şi centralizat.

-Reţeaua informaţională descentralizată este constituită dintr-un ansamblu de posturi de prelucrare intercorelate logic şi funcţional în care prelucrarea datelor se realizează relativ independent la nivelul fiecărui post. Reţeaua prezintă avantajul că eventualele erori şi perturbaţii apărute la un post de prelucrare pot fi corectate şi anulate de către alt post fără a se afecta întregul sistem informaţional, iar dezavantajul constă într-o dispersare a capacităţii de prelucrare care favorizează realizarea obiectivelor particulare ale fiecărui post în defavoarea realizării obiectivelor generale.

-Reţeaua informaţională centralizată este caracterizată prin executarea unitară a operaţiilor de culegere, prelucrare şi transmitere a datelor prin intermediul unui post specializat, care devine în acest mod centrul de prelucrare a informaţiilor. Avantajul acestui tip de reţea constă în realizarea cu prioritate a obiectivelor strategice ale sistemului întreprinderii şi în secundar a obiectivelor specifice fiecărui post de prelucrare. Dezavantajul constă în afectarea funcţionării întregului sistem deoarece

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

14

o perturbaţie apărută la un post de prelucrare poate conduce la transmiterea de erori către postul centralizat şi de aici către posturile-satelit. Gradul de prelucrare a datelor caracterizează nivelul de dezvoltare a sistemului informaţional şi implicit a întregului sistem al întreprinderii.

Sistemul informaţional poate fi abstractizat ca model general format din trei elemente : -mulţimea intrărilor; -mulţimea prelucrărilor; -mulţimea ieşirilor.

Sistemul informaţional realizează legătura dintre sistemul conducător şi sistemul condus, fiind componenta modelatoare a sistemului condus. Prin perfecţionarea sistemului informaţional (raţionalizare) se urmăreşte realizarea următoarelor deziderate :

• Îmbunătăţirea calităţii informaţiei • Circulaţia ratională a informaţiei • Asigurarea legăturilor inverse în reglarea sistemului • Finalizarea circuitului informaţional printr-o decizie sau acţiune • Circulaţia eficientă a informaţiei prin eliminarea paralelismelor de informare şi

prelucrare repetată Sistemul informatic reprezintă o componentă a sistemului informaţional în care operaţiile de

prelucrare a datelor se realizează în mod automat cu ajutorul echipamentelor de calcul şi în primul rând al calculatoarelor electronice. Structural acest sistem este format din:

-sistemul electronic de calcul (hardware şi software); -programele de aplicaţii; -datele de prelucrat; -resursele umane şi cadrul organizatoric.

Sistemul electronic de calcul este alcătuit din două componente şi anume: -sistemul de echipamente (hardware), care reprezintă totalitatea componentelor fizice folosite pentru culegerea, stocarea, prelucrarea datelor şi transmiterea informaţiilor rezultate; -sistemul de operare ( software), format din ansamblul programelor pentru conducerea, supravegherea şi controlul întregului proces de prelucrare electronică a datelor.

Programele de aplicaţii sunt formate din totalitatea comenzilor, instrucţiunilor sau ordinelor date sistemului electronic de calcul în vederea rezolvării unor operaţii de prelucrare specifice anumitor cerinţe ale utilizatorilor, denumite aplicaţii.

Datele de prelucrat sunt constituite din colecţii omogene, sub formă de fişiere sau baze de date, ce urmează a fi prelucrate de către programele de aplicaţii prin intermediul sistemului electronic de calcul.

Resursele umane şi cadrul organizatoric cuprind personalul de specialitate şi structura organizatorică corespunzătoare (staţie, oficiu sau centru de calcul) în vederea realizării acelor activităţi necesare exploatării sistemului informatic.

Prelucrarea datelor este un proces prin care acestea sunt folosite în cadrul unor operaţii de generare, validare, calcule, comparare, selectare şi grupare în vederea transformării lor în informaţii.

Procesul de prelucrare automată a datelor înseamnă tratarea complexă a acestora, începând cu faza de culegere şi terminând cu cea de transmitere a informaţiilor finale obţinute, în mai multe etape:

- Culegerea şi înregistrarea datelor în documente primare în vederea reflectării veridice a fenomenelor şi proceselor economice, precum şi asigurarea corectitudinii datelor ce vor fi introduse în sistemul de prelucrare automată. - Transpunerea datelor din documentele primare în baza de date presupune conversia acestora, pe suporturile tehnice (bandă magnetică, casetă magnetică, discuri flexibile, harddiscuri, discuri magnetopice etc) în vederea realizării colecţiilor de date ce vor face obiectul prelucrărilor ulterioare.

CAPITOLUL 1. BAZELE INFORMATICII

15

- Prelucrarea propriu-zisă a datelor asigură executarea automată a tuturor operaţiilor necesare de către programele de aplicaţii, prin intermediul sistemului electronic de calcul. Operaţiile de prelucrare a datelor se concretizează în:

-validarea datelor introduse în baza de date, care înseamnă verificarea îndeplinirii anumitor condiţii după care are loc introducerea acestora în baza de date; -sortarea şi interclasarea datelor, care înseamnă ordonarea crescătoare sau descrescătoare după anumite criterii (exemplu: cod secţie, cod comandă, marcă, cont sintetic, număr de inventar etc.), urmată de reunirea datelor din două sau mai multe surse în una singură în raport de anumite elemente comune denumite chei de interclasare; -compararea şi testarea datelor ce se realizează în vederea selectării acelor variante de prelucrare care sunt compatibile pentru datele supuse prelucrării ; -prelucrarea logico-matematică a datelor pentru obţinerea situaţiilor de ieşire care constituie obiectivul final al prelucrării datelor.

Transmiterea informaţiilor de la sistemul electronic de calcul către structurile organizatorice ale întreprinderii se poate face pe hârtie de imprimantă sau pe ecran.

Stocarea şi arhivarea informaţiilor se realizează, după valorificarea acestora în procesul de conducere, sub forma unor fişiere de arhivă, pe suporturi magnetice, ce pot fi utilizate ulterior.

În întregul proces de prelucrare a datelor este necesar să se asigure securitatea şi confidenţialitatea datelor prin intermediul unor parametri prestabiliţi cum sunt : contul de identificare şi parola de acces ale utilizatorului (UIC şi password), precum şi alte informaţii suplimentare în vederea recunoaşterii dreptului de acces la date şi programe.

Prelucrarea automată impune ca toate datele să fie reprezentate într-o formă specială care să asigure un sistem standard de utilizare şi conversie a acestora între diversele componente ale sistemului electronic de calcul, pe de o parte, precum şi între calculator şi factorul uman, pe de altă parte, realizate prin intermediul unor sisteme convenţionale de numeraţie şi coduri de reprezentare a datelor prelucrate electronic.

1.4. CODIFICAREA DATELOR

Operaţia de transformare a informaţiei, din forma de reprezentare externă, care este

inteligibilă pentru om, în forma de reprezentare internă pe care o poate înţelege calculatorul, se numeşte codificarea internă a informaţiei.

Operaţia de codificare presupune existenţa unui cod. Pentru construirea modelului matematic al unui cod trebuie să se definească :

- mulţimea entităţilor care urmează să fie codificate (emise de o sursă de informaţii); - mulţimea simbolurilor cu care se realizează secvenţele de cod, asociate entităţilor; - mulţimea secvenţelor de cod care se asociază entităţilor de informaţie.

Secvenţa de cod se mai numeşte şi cuvânt de cod. Informaţia codificată poate să fie formată din numere sau texte, iar în funcţie de tipul entităţilor emise de sursa de informaţie codurile pot fi :

- coduri numerice (entităţi sau cifre), - coduri alfanumerice (entităţi sau caractere).

După funcţia de asociere dintre entităţile de informaţie şi secvanţa de cod sunt coduri numerice ponderate şi neponderate.

Dintre codurile numerice ponderate amintim: - codul binar-zecimal natural (pe 4 biţi), - codul Aiken (pe 8 biţi) sau - codul bichinar (pe 7 biţi).

Dintre codurile numerice neponderate amintim - codurile Exces 3 şi - codul Gray pe 4 biţi.

Pentru codurile alfanumerice binare se cunosc - codurile Baudot (5biţi),

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

16

- codul BCD (6 biţi), - codul Frieden pentru banda de hârtie perforată ( pe 8 biţi), - codul Hollerith pentru cartela perforată, - codul ASCII (7 biţi) preluat din telefonie.

Primul cod standardizat a fost impus de firma IBM, prin codul EBCDIC (Extended Binary Coded Decimal Interchange Code, pe 8 biţi). Următorul cod care s-a impus a fost codul ASCII (American Standard Code for Information Interchange) pe 8 biţi şi a devenit codul calculatoarelor compatibile IBM-PC. Acest cod a derivat de la codul ASCII pe 7 biţi, care permitea numai 27 = 128 de cuvinte de cod (setul de bază sau setul restrâns de caractere ASCII, de la 0 până la 128 de caractere), completat cu setul extins de caractere (de la 128 la 256; 28 = 256).

Setul de caractere de bază cuprinde caracterele corespunzătoare cifrelor, literelor mari şi mici precum şi caracterele de control şi cele speciale. Setul de caractere extins îmbunătăţesc codul prin caractere străine (de limba engleză şi punctuaţia americană), caractere pentru construirea caracterelor ştiinţifice, simboluri matematice şi caractere pentru construirea chenarelor.

Caracterele de control ASCII sunt primele 32 de coduri, fiind folosite pentru comanda unor acţiuni, formatarea unor semnale sau controlul comunicării.

Dacă toate entităţile codului se pun în corespondenţă cu elementele unei surse de informaţii se obţine un cod complet (cod fără redundanţă). Pe parcursul transmiterii unui cod de la sursă la destinaţie, pe canalul de transmitere pot să apară perturbaţii care să modifice secvanţa de cod.

Utilitatea operaţiei de codificare trebuie să respecte anumite reguli prestabilite: • sistematizarea şi standardizarea datelor prelucrate; • compatibilitatea datelor; • simplificarea manipulării datelor; • reducerea necesarului de memorie în stocarea şi prelucrarea datelor; • creşterea vitezei de prelucrare; • asigurarea protecţiei datelor.

În cadrul sistemelor informatice, operaţia de codificare poate precede procesul de prelucrare automată a datelor sau se poate regăsi în cadrul fazelor de prelucrare (culegere, transmitere, prelucrare, stocare). Operaţia de codificare trebuie privită sub două aspecte corespunzatoare modului în care utilizatorul se raportează la structura datelor şi a modului în care datele sunt tratate de către sistemul de calcul. Conform acestor aspecte se disting două tipuri de codificări:

• codificarea externă (realizată de către utilizator, conform cerinţelor de prelucrare); • codificarea internă ( realizată automat de sistemul de calcul).

1.4.1. CODIFICAREA EXTERNĂ

Codificarea externă se realizează la nivelul utilizatorului, corespunzând din acest punct de

vedere nivelului logic, care are drept scop organizarea logică a înregistrărilor, în conformitate cu cerinţele de prelucrare.

Codificarea externă trebuie să faciliteze operaţiile de: • culegere, • verificare, • transmitere, • prelucrare şi • regăsire rapidă a datelor.

Orice sistem de coduri utilizat în codificarea externă trebuie să respecte următoarele cerinţe: • unicitatea codului care constă în acordarea unei valori unice pentru fiecare element al

mulţimii ce face obiectul codificării; • elasticitatea care reprezintă posibilitatea inserării unor noi coduri în plaja de valori

anterior acordată;

CAPITOLUL 1. BAZELE INFORMATICII

17

• stabilitatea care reprezintă cerinţa ca o caracteristică codificată să rămână valabilă pe o perioadă cât mai îndelungată;

• claritatea care se referă la posibilitatea de întelegere facilă a modului de atribuire a codurilor, ceea ce conduce la scurtarea timpului de realizare a operaţiei de codificare;

• seminificaţia care reprezintă cerinţa impusă sistemului de codificare de a sugera caracteristicile ce fac obiectul codificării;

• operativitatea care constă în asigurarea unor facilităţi sporite de prelucrare şi regăsire a datelor.

Facilităţile oferite de codificare constau în principal la următoarele: • asigurarea condiţiilor cerute de proiectarea şi elaborarea sistemelor informatice pentru

prelucrarea automată a datelor; • asigurarea sistematizării operaţiilor de culegere şi înregistrare a datelor în condiţiile

reducerii timpului de transmitere, prelucrare etc; • simplificarea operaţiilor de gestionare a datelor; • reducerea influenţelor perturbaţiilor în timpul manipulării datelor; • uşurarea accesului la datele stocate; • facilitarea stabilirii unor legături între elementele colecţiilor de date; • reducerea necesarului de memorie externă pentru stocarea şi arhivarea datelor; • creşterea vitezei de prelucare a datelor; • asigurarea compatibilităţii şi portabilităţii datelor.

Totalitatea codurilor distincte ce se pot obţine prin combinarea codurilor de bază reprezintă capacitatea sistemului de codificare.

Numărul maxim de caractere utilizat pentru exprimarea unui cod reprezintă lungimea secvenţei de cod. Sistemul de acordare a codurilor este stabilit în funcţie de cerinţele specifice ale fiecărei aplicaţii, de către cei care analizează şi proiectează sistemul informatic, codificarea externă realizându-se la nivelul utilizatorului.

Codificarea externă trebuie să ţină seama, pe lângă cerinţele anterior menţionate, şi de unele reglementări de standardizare în ceea ce priveşte acordarea codurilor la nivel naţional şi chiar internaţional. În acest sens, se poate exemplifica utilizarea codurilor unitare pentru: marcarea produselor (codurile cu bare), simbolizarea conturilor contabile (planul de conturi), identificarea

unică a persoanelor (codul numeric personal) etc. Tipurile de coduri sunt grupate funcţie de criteriile: după natura caracterelor utilizate • coduri numerice -utilizează ca valori numai cifrele Exemple: mărcile salariaţilor, numerele matricole, codul numeric personal • coduri alfanumerice -utilizează combinaţii de cifre şi litere Exemple: codificarea autoturismelor, numărul de înregistrare a societăţilor comerciale, codul fiscal • coduri alfabetice -utilizează litere, care în general reprezintă abrevieri Exemple: codificarea profesiilor, codificarea partidelor, codificarea ţărilor, codificarea judetelor

după lungimea codului • coduri cu lungime fixăExemplu: codul numeric personal • coduri cu lungime variabilă Exemple: simbolul conturilor analitice, simbolul ţărilor

după structură • coduri elementare -care se pot clasifica în felul următor:

• secvenţiale simple Exemple: mărcile salariaţilor, numerele matricole • secvenţiale cu formare de grupe Exemple: codul numeric personal, locuri de muncă într-o unitate economică,

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

18

• coduri abreviate (mnemonice) Exemple: unităţi de măsură, denumirile unor produse informatice (DOS, BIOS, SGBD etc.)

• coduri complexe - care se pot clasifica în felul următor: • ierarhice -reprezintă codificarea elementelor multinivel Exemple: simbolurile conturilor contabile, codificarea produselor • matriceale -reprezintă coduri de tip şah Exemple: adresele celulelor din calculul tabelar.

1.4.2. CODIFICAREA INTERNĂ

Corespunde nivelului fizic, prin care se reprezintă datele în calculatorul electronic. Codurile interne generate automat de calculator, au caracter temporar şi corespund principiilor

constructive ale componentelor fizice ale sistemelor de calcul. Calculatorul trebuie să fie o maşină cu două stări, adică să ştie să modeleze sistemul de numeraţie binar. Cea mai simplă realizare fizică a sistemului binar este comutatorul:

- comutator deschis - OFF - cifra binară 0, - comutator închis - ON - cifra binară 1. Un rând de 8 astfel de comutatoare vor reprezenta o secvenţă de 8 biţi, deci un octet sau un

Byte. Calculatorul va fi un ansamblu de comutatoare. Componentele electronice care pot prezenta două stări:

- starea de conducţie - cifra binară 1, - satrea de blocare - cifra binară 0. Informaţia circulă în interiorul calculatorului sub forma de biţi, modelaţi cu ajutorul

impulsurilor electrice cu aceeaşi frecvenţă şi cu două niveluri de tensiune, adică două stări: - nivel de tensiune "înalt" - cifra binară 1, - nivel de tensiune "jos" - cifra binară 0. Nivelele corespunzătoare bitului 0 corespunde unui semnal de 0 V, iar nivelul corespunzător

bitului 1 pentru un semnal de ± 5V sau ±12 V. Fiecare piesă de informaţie va putea fi reprezentată printr-o secvenţă de biţi, iar orice informaţie manipulată de calculator va fi sub formă de secvenţe de biţi. Componentele interne au la bază circuite bistabile care permit trecerea rapidă dintr-o stare în alta, în funcţie de valoarea semnalului primit. Acest mod de funcţionare este cel mai bine modelat de sistemul de numeraţie binar.

În concordanţă cu modul de codificare intern, corespunzător unei cifre binare a fost desemnată şi unitatea elementară de măsurare a stocării datelor ca fiind bitul (BIT - BInary digiT)

Multiplii pentru bit, simbolizat cu b, sunt: 1 BYTE = 1 OCTET = 1B = 8 BIŢI = 8b 1 KiloByte = 1 KOctet = 210 Octeţi =1024 Octeţi = 210 B 1 MegaOctet = 210 KOcteţi = 1024 KOcteţi = 220 Octeţi = 220 B 1 GigaOctet = 1GB = 210 MB =210 MOcteţi = 220 KOcteţi = 230 Octeţi = 230 B 1 TeraByte = 1 TB = 210 GB = 220 MB = 230 KB = 240 B 1 PentaByte = 1PB = 210 TB = 250 B 1 ExaByte = 1EB = 210 PB = 260 B 1 Zettabyte = 1024 EB = 270

Bytes 1 Yottabyte = 1024 ZB = 280

Bytes

1.5. SISTEME DE NUMERAŢIE

Sistemul de numeraţie este format dintr-o mulţime de simboluri şi un ansamblu de reguli ce trebuie respectate pentru reprezentarea numerelor. Numărul maxim de simboluri utilizat în cadrul sistemului de numeraţie poartă denumirea de bază a sistemului de numeraţie, iar mulţimea de simboluri reprezintă alfabetul sistemului. Există două tipuri de sisteme de numeraţie: sisteme de

CAPITOLUL 1. BAZELE INFORMATICII

19

numeraţie nepoziţionale (egiptean, roman, chinez etc.) şi cele poziţionale care au la bază reprezentarea prin cifre arabe (zecimal, binar, octal, hexazecimal etc).

1.5.1. SISTEMUL DE NUMERAŢIE NEPOZIŢIONAL

Sistemul de numeraţie nepoziţional se caracterizează prin lipsa unicităţii în scrierea

numerelor, fiind un sistem greoi şi neadecvat efectuarii de calcule. În aceste sisteme există semne distincte (cifre) pentru fiecare grup de obiecte folosit în

procesul numărării. Sistemele de numeraţie nepoziţionale pot fi aditive sau multiplicative. Sistemul de numeraţie egiptean este un sistem aditiv. Valoarea unui număr se obţine prin

adunarea cifrelor după anumite reguli. De exemplu:

21.237 =

= 7 + 30 + 200 + 1.000 + 20.000

Sistemul de numeraţie roman este un sistem aditiv-substractiv. Valoarea unui număr se obţine prin adunarea sau scăderea cifrelor după anumite reguli. De exemplu: IV = 4, IX = 9, XI = 11, MMCVIII = 2108

Alfabetul sistemului este format din cifrele romane: I, V, X, L, C, D, M. Utilizarea acestor simboluri nu implică reprezentarea unică a numerelor, simbolurile neavând o valoare poziţională precis determinată. Sistemul este folosit în special ca numeral ordinal, pentru exprimarea secolelor, aniversărilor etc şi nu poate fi utilizat în prelucrarea automată a datelor. Tabelul 1.1.

SISTEMUL DE NUMERAŢIE ROMANǍ NEPOZIŢIONALǍ

Numere romane

Numere zecimale

Numere romane

Numere zecimale

Numere romane

Numere zecimale

Numere romane

Numere zecimale

I 1 XI 11 LXX 70 M 1000 II 2 XII 12 LXXX 80 MM 2000 III 3 XIII 13 XC 90 MDCCCXX 1820 IV 4 XV 15 C 100 MDCCCXL 1840 V 5 XIX 19 CC 200 MDCCCLX 1860 VI 6 XX 20 CD 400 MDCCCXC 1890 VII 7 XXX 30 D 500 MDCCCC 1900 VIII 8 XL 40 DC 600 MCM 1900 IX 9 L 50 DCC 700 MDCCCCLXI 1961 X 10 LX 60 CM 900 MMVIII 2008

Un sistem multiplicativ este acela în care pentru aflarea valorii unui număr este necesar să se înmulţească anumite perechi de simboluri într-o manieră asemănătoare sistemului aditiv (sistemul de numeraţie chinez).

1.5.2. SISTEMUL DE NUMERAŢIE POZIŢIONAL

Sistemul de numeraţie poziţional se caracterizează prin faptul că fiecare caracter din structura numărului are o dublă semnificaţie: o valoare individuală şi o valoare poziţională, dată de rangul ocupat în cadrul numărului. Sistemele poziţionale înlătură neajunsurile sistemului de numeraţie nepoziţional, ceea ce a condus la răspândirea şi utilizarea largă a acestora, căpătând o valoare universală. Sistemele de numeraţie poziţionale folosesc acelaşi sistem de reguli de reprezentare a numerelor; ele diferă doar prin alfabetul pe care îl utilizează şi, implicit, prin bază.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

20

Baza unui sistem de numeraţie poziţional este dată de numărul de elemente care formează alfabetul sistemului de numeraţie. Un sistem de numeraţie poziţional în baza “b” are următoarele caracteristici:

• utilizează un alfabet cu b simboluri diferite între ele numite cifre, cu valori consecutive; aceeaşi cifră aşezată în poziţii diferite ale unei secvenţe, poate avea valori diferite;

• cifra 0 are cea mai mică valoare când este aşezată singură; • cifra cu valoarea cea mai mare când este aşezată singură, adică valoarea cu o unitate mai

mică decât baza sistemului, deci în cazul de fată b - 1; • în funcţie de poziţia lor în număr, cifrele se înmulţesc cu puteri crescătoare ale bazei b

obţinându-se dezvoltarea numărului după puterile bazei. Reprezentarea generală a numerelor în cadrul sistemelor poziţionale este dată de expresia:

N=an-1bn-1+an-2bn-2+…+a0b0+a-1b-1+a-2b-2+…+a-nb-n (1.1) unde:

N -reprezintă numărul n -reprezintă rangul (valoarea poziţională) a -reprezintă valoarea individuală a numărului b -reprezintă baza.

Acest mod de scriere are reguli precise de reprezentare a numerelor, ceea ce permite abordarea algoritmică a operaţiilor de calcul, facilitând astfel prelucrarea automată a datelor.

Sistemul de numeratie pozitional poate fi: - binar - alfabetul este format numai din doua cifre, 0 şi 1. - ternar - alfabetul este format din trei cifre:0,1,2. - cuarternar - format din patru cifre:0,1,2,3. - octal - format din opt cifre:0,1,2,3,4,5,6,7.

- zecimal - format din zece cifre: 0,1,2,3,4,5,6,7,8,9. - hexazecimal – sunt utilizate simbolurile: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

La nivel extern, utilizatorul va folosi sistemul de numeraţie zecimal, deoarece este folosit în exprimarea uzuală a datelor numerice. La nivel intern, sistemul de calcul foloseşte sistemul de numeraţie binar, deoarece acesta modelează cel mai bine principiul circuitelor logice, care constituie elementele fizice ale componetelor sistemelor de calcul. Reprezentarea sintetică a caracteristicilor sistemelor de numeraţie utilizate de sistemele de calcul, folosite în codificarea internă, este redată în tabelul 1.2:

Tabelul 1.2. Caracteristicile sistemelor de numeraţie poziţională

Sistem de numeraţie

Bază Alfabet Utilizare în cadrul calculatorului

Zecimal 10 0,1,2,3,4,5,6,7,8,9 Introducere date, redare rezultate Binar 2 0,1 Reprezentarea internă Octal 8 0,1,2,3,4,5,6,7 Reprezentarea intermediară Hexazecimal 16 0,1,2,3,4,5,6,7,8,9,A,B,…,F Reprezentarea intermediară

Pentru reprezentarea unitară a datelor în cadrul sistemului de calcul se utilizează sistemul standardizat de reprezentare a datelor, la nivel intern, sistemul ASCII. Codurile ASCII reprezintă secvenţe binare de 8 poziţii pentru fiecare caracter (indiferent de natura lui: numeric, alfabetic, cod special etc). Ca urmare a posibilităţilor de reprezentare pe 8 poziţii (8 biţi sau un octet), se pot codifica distinct cele 256 de caractere: A 10000001 B 10000010 C 10000011 Z 10001011 a 11000001 b 11000010 c 11000011 z 11001011 9 01011001 ; 01011111 = 01111110 + 01001110.

Exemple de transformări ale numerelor dintr-o bază de numeraţie în alta, este prezentat în continuare, pe baza ordonării resturilor de la împărţirea întreagă faţă de bază:

CAPITOLUL 1. BAZELE INFORMATICII

21

93 |2*46+1 46 |2*23+0 23 |2*11+1 11 |2*5 +1 5 |2*2 +1 2 |2*1 +0 1 |2*0 +1 93|10 = 1 0 1 1 1 0 1 |2 93 |8*11+5 11 |8*1 +3 1 |8*0 +1 93| 10= 1 3 5 |8 93 |16*5+13 ( D ) 5 |16*0+5 93|10 = 5 D |16

Echivalenţa între sistemele de numeraţie (zecimal, binar, octal şi hexazecimal) folosite în codificarea internă este prezentată în continuare, în tabelul 1.3.

Tabelul 1.3. Caracteristicile sistemelor de numeraţie poziţională

Sistemul zecimal

Sistemul binar Sistemul octal

Sistemul hexazecimal

0 0 0 01 1 1 12 10 2 23 11 3 34 100 4 45 101 5 56 110 6 67 111 7 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F16 10000 20 1020 10100 24 1430 11110 36 1E40 101000 50 2B50 1010010 62 3293 1011101 135 5D255 11111111 377 FF

65565 11111111 11111111 FFFF (64 kO)4294967295 11111111 11111111 11111111 11111111 FFFFFFFF (4GO)

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

22

CAPITOLUL 2

ARHITECTURA CALCULATOARELOR PERSONALE

2.1. ISTORICUL APARIŢIEI CALCULATOARELOR ELECTRONICE Prelucrarea automată a informaţiei a fost posibilă odată cu apariţia calculatoarelor electronice.

Prin definiţie, un calculator este o maşină care trebuie să ştie să modeleze şi să manipuleze informaţia. Pentru calculator, informaţia este atât materie primă cât şi produs finit.

Primele calculatoare au apărut din necesitatea realizării unui model de lucru cu numerele şi aritmetica lor, pentru a uşura calculele numerice prin prelucrarea automată. Chiar şi denumirea lui vine de la verbul acestei acţiuni: a calcula (în limba engleză: to compute - computer). Pornind de la prelucrarea informaţiei numerice, calculatoarele au fost perfecţionate pentru a putea prelucra orice formă de informaţie.

Calculatoarele sau sistemele de calcul au avut o rapidă evoluţie în ultimul secol, urmărind îndeaproape principalele descoperiri din domeniul electrotehnicii şi informaticii. Dacă în urmă cu două - trei secole au fost concepute primele forme de mecanisme şi maşini de calcul pe bază mecanică, în ultimul secol sunt cunoscute sisteme de calcul electromagnetice şi electronice.

Sistemele de calcul sunt rezultatul dezvoltării tehnicii şi ştiinţei, implicând domenii diverse cum sunt: electronica, automatica, matematicile aplicate, telecomunicaţiile.

Oamenii au înregistrat şi prelucrat date încă din vremuri preistorice, astfel că în jurul anului 3000 î.C, sumerienii foloseau primul dispozitiv pentru reprezentarea numerelor. După 2000 de ani, chinezii, preluând ideea, au construit primul dispozitiv de calcul, care consta dintr-o cutie ce conţinea bile înşirate pe sârmă şi montate pe o scândură. Numele dispozitivului era baccus şi a fost preluat în Grecia şi Roma antica sub numele de abaccus.

Din Evul Mediu şi până în secolul al XlX-lea, tehnica de calcul a fost legată şi condiţionată de câteva mari descoperiri ştiinţifice. Primul mare matematician Al. Khwarazmi (780-846), creatorul algebrei, a introdus în matematica arabă numerele indiene, care de atunci sunt cunoscute sub denumirea de „arabe”. El este autorul primului manual de aritmetică bazat pe principiul valorii poziţiei simbolurilor numerice (cifra unităţilor, cifră zecilor, deci sistemul de numeraţie zecimal poziţional), prin intermediul cărora se pot exprima, fără dificultate, numere oricât de mari.

Maşina de tipărit inventată de Johann Gutenberg în 1450, care poate fi considerată drept unul dintre strămoşii perifericelor de ieşire ale calculatoarelor electronice. În timpul Renaşterii, Leonardo da Vinci (1452-1519) a proiectat o maşină de calcul cu 13 cifre. Un secol mai târziu, părintele logaritmilor, John Napier (1550-1519) a construit un dispozitiv de calcul denumit „Zarurile lui Napier”. Primul calculator mecanic a fost însă realizat de filozoful şi matematicianul francez Blaise Pascal (1623-1662), care a proiecta o maşină (Pascalina), care putea efectua adunări şi scăderi. Acest dispozitiv conţinea un ansamblu de roţi dinţate conectate în serie, cu ajutorul cărora se efectuau operaţiile de adunare şi scădere şi se afişau rezultatele în cele şase ferestre cu care era prevăzut dispozitivul.

În 1671 matematicianul şi fizicianul englez Gottfded Wilhelm Leibnitz a construit primul dispozitiv capabil să efectueze cele patru operaţii aritmetice. O altă invenţie importantă o constituie războiul de ţesut a lui Joseph-Marie Jacquard, care era controlată printr-o serie de cartele perforate, găurile reprezentând modelul ţesăturii. Acest dispozitiv reprezintă prima maşină controlată prin informaţii (modelul existent pe cartela perforată) şi nu de către un operator uman. Matematicianul George Boole prin lucrările despre logica simbolică a descris modul de utilizare a valorilor binare pentru efectuarea comparaţiilor şi deciziilor logice (astăzi codificarea internă a calculatoarelor moderne se bazează pe logica binară - algebra booleană).

O performanţă de importanţă deosebită a fost înregistrată abia în anul 1880 prin maşina statisticianului american Herman Hollerith, care a inventat cartela perforată şi echipamentul mecanografic pentru prelucrarea datelor înregistrate pe acest suport. Utilizarea cartelelor perforate era diferita, faţă de cea folosită de Babbage şi Jacquard, deoarece cartele nu mai erau destinate introducerii de instrucţiuni (programe), ci stocării unor date. Dispozitivul inventat de Hollerith a fost

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

23

folosit cu succes la preluarea datelor recensământului populaţiei din SUA, în anul 1890. Hollerith a beneficiat de avantajele electricităţii şi a creat primul calculator electromecanic (tabulator).

Între 1930 şi 1946 au avut loc, un număr important de descoperiri ştiinţifice în domenii ca: matematică, fizica, inginerie electrică şi statistică, ceea ce a contribuit la apariţia primului calculator electronic. Haward Aiken, de la Universitatea Harvard, a inventat primului calculator electromecanic, numit Mark I.

Istoria sistemelor electronice de calcul începe abia în anul 1946, când John Manehly, fizician la Universitatea din Pensylvania şi J. Prosper Eckert, inginer la aceeaşi universitate, realizează primul calculator electronic, numit ENIAC.

Evoluţia rapidă a performanţelor şi caracteristicilor permite structurarea calculatoarelor electronice pe cinci generaţii.

Prima generaţie (1946 - 1955) a fost reprezentată de calculatoare electronice care utilizau un număr mare de tuburi electronice şi din această cauză aveau un gabarit mare (30 tone). Viteza de calcul şi capacitatea de stocare a datelor erau foarte mici. Se utilizau, ca suport pentru date, banda de hârtie şi cartelele perforate. Funcţionarea sistemelor impunea condiţii speciale, necesita un consum de energie electrică ridicat, precum şi un volum de munca deosebit pentru exploatarea şi întreţinerea sistemelor. Programarea se efectua la nivel cod maşina, utilizând logica binară, ceea ce reprezenta o muncă extrem de laborioasă şi specializată. Dificultăţile ridicate de utilizarea acestor calculatoare le făcea accesibile numai unui număr restrâns de specialişti din domeniul cercetării şi învăţământului.

A doua generaţie (1956 -1964) a fost reprezentată de calculatoarele care utilizau tranzistorul în locul tuburilor electronice. Ca urmare a acestui fapt, performanţele sistemelor de calcul s-au îmbunătăţit: viteza de calcul şi capacitatea de stocare au crescut, gabaritul şi consumul de energie electrică s-au redus. Au apărut echipamentele periferice şi suporturile magnetice pentru stocarea datelor şi primele limbaje evoluate: FORTRAN şi COBOL. Comunicarea cu sistemul era realizată de tehnicieni specializaţi, care transmiteau calculatorului cerinţele programatorilor sub forma unor programe şi livrau rezultatul prelucrărilor.

A treia generaţie (1965 - 1970) a fost reprezentată de calculatoarele care utilizau circuitele integrate, înlocuind tranzistorul. Utilizarea circuitelor integrate a condus la miniaturizarea sistemelor de calcul, precum şi la îmbunătăţirea considerabilă a performanţelor acestora: creşterea vitezei de calcul şi a capacităţii de stocare a datelor (utilizarea suporturilor de date de mare capacitate), sporirea fiabilităţii şi reducerea costului. Limbajele evoluate de programare au cunoscut o diversificare foarte mare, iar sistemele de calcul au început să fie tot mai mult utilizate, în special în domeniul economic. Sistemele electronice s-au impus ca indispensabile pentru stocarea şi prelucrarea unui volum mare de date. Utilizarea sistemelor de calcul se făcea în cadrul unor unităţi specializate (centre/oficii de calcul), deservite de specialişti în informatică: analişti, programatori, operatori.

A patra generaţie (1971-1990) s-a remarcat prin utilizarea-circuitelor larg şi mediu integrate, ceea ce a condus la o ultraminiaturizare a componentelor şi la creşterea vitezei de calcul, contribuind la revoluţionarea tehnicii de calcul. Programarea evoluează spre standardizare şi prototipizare, precum şi spre realizarea unor componente fizice care să efectueze anumite funcţii realizate până la acel moment de programe. Calculatorul se impune rapid în toate domeniile vieţii sociale, acest fapt fiind posibil datorită performanţelor microsistemelor de calcul (calculatoare personale), costurilor lor mai reduse, dar şi datorită programelor care facilitau comunicarea utilizatorului cu sistemul de calcul, prin aşa-numita „interfaţă prietenoasă”.

A cincea generaţie (1990 - până în prezent) este marcată de creşterea considerabilă a gradului de inteligenţă a componentelor calculatorului (microprocesorul şi unităţile periferice) şi de extinderea reţelelor de calculatoare de la nivel local, la nivel metropolitan şi internaţional. Calculatoarele îşi extind posibilităţile, oferind facilităţi multiple audio-video (calculatoare multimedia). Comunicarea calculatorului cu utilizatorul a fost facilitată de apariţia interfeţei grafice, care este intuitivă şi uşor de manipulat. Extinderea utilizării calculatorului are loc şi pe orizontală, calculatorul pătrunzând în casele oamenilor, devenind util la nivelul individului.

A şasea generaţie este în experimentări având la bază utilizarea bioelectronicii, optoelectronicii precum şi noile cuceriri ale ştiinţei şi tehnologiei, în general şi ale informaticii în special.

În cadrul tabelului 2.1 sunt sintetizate câteva date semnificative referitoare la apariţia informaticii şi a sistemelor de calcul.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

24

Tabelul 2.1.

SCURT ISTORIC AL APARIŢIEI TEHNICII DE CALCUL

Anul

Realizatorul şi Dispozitivul sau tehnica de calcul

30000 î.e.n.

Oamenii din paleolitic care trăiau în Europa centrală înregistrează numerele crestând în răbojuri, pe oase de animale, fildeş şi pietre

3400 î.e.n. Egiptenii dezvoltă un simbol pentru numărul 10, simplificând reprezentarea numerelor mari 3000 î.e.n. Sumerienii foloseau primul dispozitiv pentru reprezentarea numerelor. 2600 î.e.n. Chinezii introduc abacul. Acesta a fost folosit în China pentru realizarea recensămîntelor până în 1982. 260 î.e.n. Maiaşii dezvoltă un sistem sofisticat de matematici în baza 20, care include numărul 0. 1450 Johann Gutemberg inventează maşina de tipărit, strămoşul perifericelor de ieşire ale calculatoarelor 1614 John Napier (1550-1617) descrie natura logaritmilor. De asemenea, el construieşte "Zarurile lui Napier",

un dispozitiv cu vergele gradate, precursorul riglei de calcul 1621 Wiliam Oughtred (1574-1660) inventează rigla de calcul, care a devenit învechită abea după 350 de ani 1642 Blaise Pascal (1623-1662) inventează Pascaline, primul calculator mecanic. Acesta era acţionat de mână şi

putea să facă numai adunări şi scăderi. 1802 Joseph-Marie Jacquard (1752-1834) introduce primele cartele perforate la razboaiele de ţesut din Lyon 1830 Charles Babbage concepe Motorul Analitic, dar moare înainte de finalizarea acestuia,însă conţine pentru

prima dată memorie, dispozitiv aritmetic, dispozitiv de comandă şi un program cu cartele perforate 1844 Samuel Morse a inventat alfabetul Morse, ca primă codificare binară şi s-a realizat prima linie de telegraf. 1867 Cristopher Sholes, inventează maşina de scris 1885 William Seward Burroughs a inventat prima maşină de adunat cu claviatură, predecesoarea tastaturilor. 1890 Herman Hollerith creează sistemul de tabelare electrică pentru Biroul de Recensământ din Statele Unite

ale Americii. Recensământul durează acum doi ani, în loc de opt. 1896 Herman Hollerith înfiinţează Tabulating Machine Company 1904 John Ambrose Fleming a creat prima lampă vidată (dioda lui Edison) 1926 Patentul pentru tranzistorul semiconductor 1931 Konrad Zuse crează în Germania primul calculator electromecanic cu comandă programabilă digitală de

calcul, care introduce utilizarea sistemului binar şi a valvelor, calculator numit Z1. 1943 Britanicii construiesc la British Intelligence Establishment din Bletchley primul calculator electronic,

Colossus (conţinea 2000 de tuburi electronice) 1944 Howard Aiken de la Universitatea Harvard şi IBM dezvoltă calculator electromecanic, complet

automatizat, dirijat prin program cu cartele perforate, denumit MARK 1. 1945 John von Neumann descrie un calculator digital de uz general, cu un program stocat 1946 Universitatea din Pensylvania, realizează primul calculator electronic, numit ENIAC (Electronic

Numerical Integrator Analyzer and Computer, Analizator şi calculator intergator electronic şi numeric). 1948 Electronic Control, prima firmă de calculatoare începe să construiască UNIVAC - 1 (UNIVersal

Automatic Computer), pentru Biroul de Recensământ. Este primul calculator comercializat pe piaţă 1949 EDSAC (Electrbnic Delay Storage Automatic Computer) realizat la Universitatea din Cambridge 1950 Unităţile de bandă încep să înlocuiască cartelele perforate 1958 Control Data Corporation lansează calculatorul 1604 al lui Seymour Cray, la 1,5 milioane de dolari. 1959 Este realizat primul calculator tranzistorizat care conţinea circa 4000 tranzistoare şi 3000 diode şi avea o

viteza de lucru de 1 instrucţiune în 60 microsecunde. 1959 Jack Kilby şi Robert Noyce finalizează primul circuit integrat, care conţine cinci componente pe o singură

bucată de siliciu 1960 CDC-160 este minicalculatorul lansat de firma Control Data, iar IBM-1620 este minicalculatorul lansat de

IBM. 2000 de calculatoare sunt utilizate în Statele Unite ale Americii 1962 Teletype livrează tastatura şi terminalul cu cartele perforate Model 33 1963 Finalizarea codului ASCII (American Standard Code for Information Interchange, Codul american pentru

schimbul de informaţii) permite maşinilor de la diferiţi producători să schimbe date între ele 1963 Douglas Engelbart primeşte un patent pentru un dispozitiv de indicare pe ecran de tipul mouse-ului 1965 Digital Equipment Company lansează primul minicalculator de succes, PDP-8. Sunt vândute 50000 bucăţi, 1967 IBM construieşte prima unitate de disc flexibil 1971 Apare afişajul cu cristale lichide 1972 Apar discurile compacte 1973 Andre Trung Trong Thi a realizat la firma R2E din Orsay în Franţa primul calculator numit MICRAL, care

a utilizat un microprocesor I 8088 pe 8 biţi. 1973 Sistemul de operare CP/M devine standardul pentru următorii opt ani, până când este introdus MS-DOS. 1974 Apar Notepad-urile Post It 1974 Realizarea microprocesorului cu 8 biţi: I 8080, realizat de firma Intel 1976 Stephan Jobs şi Steve Wozniak prezintă primul calculator Apple, la Home Brew Computer Club, cunoscut

mai târziu drept Silicon Valley.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

25

1978 Realizarea microprocesorului cu 16 biţi: I 8086, realizat de firma Intel 1981 IBM lansează calculatorul său personal, care foloseşte un procesor 8086 pe 16 biţi de la Intel. 1983 Lansarea calculatorului IBM PC-XT (eXtended Technologie), cu procesorul I 80186 1983 Lansarea calculatorului MacIntosh cu success de firma Apple, cu processor Motorola 36000 1984 Apple lansează Macintosh, un calculator care foloseşte un mouse şi o interfaţă grafică. 1985 Unitatea CD-ROM poate plasa 270000 de pagini de text pe o înregistrare CD 1998 Intel lansează o versiune nouă a Pentium II (cu tehnologia de producţie la 0,25 de microni) Intel lansează

un procesorul Celeron, o versiune de Pentium II căreia îi lipsea în întregime memoria cache L2. 2002 Intel prezintă Pentium 4 3,06 GHz, (nucleu Northwood), tehnologia HyperThreading, de 0,13 microni,

spre deosebire de precedentul nucleu Palomino, care era realizat la 0,18 microni. 2006 Intel lansează procesorul Core 2 Extreme QX670D, Quad-core, 8MB L2 cache, 2.66 GHz, 1066 MHz FSB 2007 Intel lansează procesorul cu numele de cod Projected Roadmap, din familia de procesoare 80986, cu

24000 MHz, cu cca. 1 bilion de tranzistori pe procesor, în tehnologia 0.045 micron (45nm) 2008 IBM lansează supercomputerul Roadrunner, cu capacitatea de calcul de 1026 TFLOPS (= 1 PFLORS) În cadrul tabelului 2.2. este realizată prezentare sintetică a generaţiilor de sisteme electronice de calcul şi a caracteristicilor acestora.

Tabelul 2.2. EVOLUŢIA SISTEMELOR ELECTRONICE DE CALCUL

Generaţia/ Utilizatorii Caracteristicile constructive Caracteristicile de utilizare

I-a

(1946-1955) / Generaţia

inventatorilor

• inteligenţa artificiala • sisteme expert • interfeţe grafice • inteligenţa artificiala • sisteme expert • interfeţe grafice

• programare în cod maşină • lipsa interfeţei de comunicare

• utilizare în domeniul ştiinţei şi învăţământului

a II-a

(1956-1963) / Generaţia

tehnologilor

• tranzistoare • echipamente periferice • suporturi magnetice de date • consum energetic mai mic • fiabilitate mai mare

• limbajele evoluate: COBOL, FORTRAN • comunicarea este asigurata de tehnicieni

a III-a

(1964-1970) / Generaţia

programatorilor

• circuite integrate • miniaturizare • creşterea vitezei de calcul • suporturi de date de mare volum • fiabilitate sporită

• limbaje de programare diverse • noi tehnici de programare şi stocare a datelor

aIV-a (1971-1990) /

Generaţia utilizatorilor

• circuite integrate pe scară medie şi largă - ultraminiaturizare

• viteză foarte mare • echipamente periferice variate

• standardizarea programării • prototipizare • interfeţe prietenoase

aV-a (1990 - prezent) /

Generaţia utilizatorilor

• microprocesorul — element de automatizare a unor funcţii

• periferice inteligente • reţele de calculatoare

• inteligenţa artificiala • sisteme expert • interfeţe grafice

2.2. NOŢIUNI GENERALE DESPRE SISTEMELE DE CALCUL

Calculatorul electronic este un sistem fizic care prelucrează datele introduse într-o formă

prestabilită şi furnizează rezultatele, fie într-o formă accesibilă utilizatorului, fie ca semnale destinate acţionării unor echipamente.

În funcţie de reprezentarea informaţiilor prelucrate se disting trei categorii de calculatoare: numerice, analogice şi hibride.

a. Calculatoarele numerice (digital computer, în limba engleză sau ordinateur, în limba franceză) sunt sisteme de calcul care primesc, prelucrează şi transmit date, respectiv informaţii codificate sub formă numerică binară. Calcul numeric (numerical computation) se referă la determinarea valorii unor expresii matematice oricât de complexe, folosind cele 4 operaţii fundamentale. Un calculator numeric poate fi programat să execute anumite operaţii, astfel încât pornind de la datele introduse, să se obţină informaţiile solicitate.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

26

b. Calculatoarele analogice (analog computer) sunt ehipamente alcătuite dintr-un set extins de elemente liniare, amplificatoare operaţionale şi circuite numerice independente care pot fi interconectate de către utilizator. Calcul analogic (analog computing) reprezintă efectuarea unor operaţii matematice continue pentru determinarea evoluţiei în timp a soluţiei unui sistem de ecuaţii, algebric sau diferenţial, folosind calculatorul analogic. Principalul avantaj al calculatorului analogic îl constituie viteza foarte mare de calcul, respectiv de obţinere a soluţiei căutate, dezavantajul fiind legat de precizia relativ redusă şi modalităţile complicate de introducere şi extragere a datelor. Elementele de calcul de tip continuu sunt sumatoare, integratoare, multiplicatoare, generatoare de funcţii, cu toate terminalele la dispoziţia utilizatorului, ducând la implementarea unor scheme de calcul complexe. c. Calculatoarele hibride (hybrid computer) constau din cuplarea unui calculator analogic cu un calculator numeric. De regulă, calculatorul numeric utilizat va fi un calculator de mică capacitate, dar cu o memorie suficientă pentru a păstra datele necesare ce urmează să fie prelucrate. Comunicarea dintre cele două calculatoare ale unui sistem hibrid se face cu ajutorul convertoarelor analog-numerice şi numeric-analogice. Comunicaţia dintre cele două calculatoare se desfăşoară pe trei nivele, respectiv de control (prin fixarea modurilor de operare, a factorilor de scală pentru timp şi prin determinarea stării curente a tuturor elementelor analitice şi numerice adresabile), de date (transfer rapid de date) şi de comandă. În continuare se vor analiza şi descrie numai calculatoarele numerice, denumite sisteme de calcul electronic, calculatoare electronice sau mai simplu calculatoare.

Un calculator numeric este un dispozitiv automat în care datele reprezentate în binar sub formă discretă sunt prelucrate pe baza unui program ce indică o succesiune determinată de operaţii, iar arhitectura unui calculator reprezintă descrierea naturii, configurării şi interconectării componentelor sale. Arhitectura generală a unui calculator respecă principiile formulate de John von Neumann în 1946 care pot fi sintetizate astfel:

1. Fiind destinate realizării de calcule, calculatoarele vor executa cel mai frecvent operaţii aritmetice, ceea ce impune existenţa unei componente specializate; această componentă se regăseşte în arhitectura calculatoarelor moderne sub numele de unitate aritmetico-logică (UAL);

2. Operaţiile de calcul se execută în mod secvenţial; 3. Necesitatea realizării unui control al prelucrărilor; acest control este realizat prin unitatea de

comandă-control (UCC) care, împreună cu UAL, formează procesorul (unitatea centrală de prelucrare -UCP);

4. Necesitatea unei componente având funcţia de a reţine datele şi instrucţiunile specifice prelucrării executate; această componentă este reprezentată de memoria internă (MI) sau operativă ce prezintă un caracter volatil (îşi pierde conţinutul o dată cu întreruperea alimentării calculatorului cu energie electrică);

5. Necesitatea unei componente care să permită stocarea permanentă a datelor; în arhitectura calculatoarelor această componentă este reprezentată de memoria externă (ME);

6. Neumann precizează necesitatea unor "senzori" care să fie capabili să recepţioneze semnalele provenite din exteriorul "maşinii", cărora le corespund, echipamentele periferice;

7. Necesitatea asigurării transferurilor dintre memoria internă şi memoria externă. Se poate concluziona că, indiferent de structura constructivă, de sistemul de operare şi de

domeniul de utilizare, arhitectura unui calculator asigură realizarea următoarelor funcţii : a) funcţia de introducere a datelor; b) funcţia de memorare; c) funcţia de prelucrare (aritmetică şi logică); d) funcţia de comandă-control; e) funcţia de ieşire (de redare a rezultatelor prelucrării).

Fiecare dintre aceste funcţii se va realiza prin intermediul uneia sau mai multor componente hardware specializate.

Unitatea de comandă şi control (UCC) împreună cu unitatea aritmetico-logică (UAL) formează unitatea centrală de prelucrare (UCP) sau procesorul central, iar dacă se include şi memoria, acestea alcătuiesc unitatea centrală (UC).

Datele iniţiale ce se supun prelucrării şi programul constituit din instrucţiuni se introduc în sistemul de calcul prin intermediul unor dispozitive periferice de intrare (DPI/). Prin intermediul canalelor de intrare/ieşire, atât datele, cât şi instrucţiunile programului sunt transferate în memoria internă a sistemului de calcul sub formă binară, în locaţii identificabile prin adresele la care au fost

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

27

memorate (şi nu prin conţinutul acestora). Instrucţiunea este trimisă la unitatea de comandă şi control (UCC) care interpretează conţinutul acesteia şi emite comenzi către:

- memorie - prin care se solicită ca anumite date, localizate prin adresele la care sunt memorate, să fie transferate către UAL pentru execuţia anumitor operaţii; după efectuarea operaţiei se va specifica adresa din memorie unde se va depune rezultatul operaţiei efectuate de UAL;

- UAL, căreia i se va solicita execuţia operaţiei specificate prin instrucţiune; - canalele de I/E, în vederea preluării altor date şi instrucţiuni de la DPI/, respectiv de

începere a transferului rezultatelor din memorie către DP/E. După terminarea execuţiei operaţiilor solicitate, rezultatele memorate la anumite adrese din

memorie sunt transferate prin intermediul canalelor de I/E către DP/E în vederea vizualizării rezultatelor prelucrării.

Funcţia de comandă-control şi funcţia de prelucrare sunt realizate de către cea mai importantă componenta a calculatorului numită unitatea centrală de prelucrare (UCP) sau procesor. UCP este formată din două componente specializate: unitatea aritmetico-logică (UAL) şi unitatea de comandă-control (UCC).

Funcţia de memorare este asigurată de două componente hardware: memoria internă (cu rolul de a stoca temporar datele supuse prelucrării şi programul/programele de executat) şi memoria internă, depozitarul permanent al datelor şi programelor.

Echipamentele hardware din componenta calculatorului care permit stocarea permanentă şi regăsirea datelor la nivelul memoriei externe sunt reprezentate de:

• unitatea de hard-disk, • unităţile de floppy-disk (pot exista 2 unităţi pentru calculatoarele mai vechi, respective de

5,25” şi 3,5” – acum nu se mai folosesc decât cele de 3,5”), • unitatea de bandă magnetică, • unitatea de disc optic şi magneto-optic, • cardurile de memorie de tip CompactFlash, pen drive-uri, unităţi de discuri amovibile

care folosesc o tehnologie magnetică sau magneto-optică pentru înregistrarea/ citirea datelor (discurile ZIP), etc.

Funcţia de intrare a datelor este realizată prin echipamentele periferice de intare (dispozitive de intrare) reprezentate de: tastatură, mouse, creionul optic şi tableta grafică, ecranul tactil, cititorul de cod de bare, scannerul, microfon, joystick, camera video, etc.

Funcţia de ieşire este realizată de echipamentele periferice de ieşire ( dispozitive de ieşire): monitorul, imprimanta, plotterul, difuzor sau boxe, sintetizator vocal, etc.

Pentru aplicaţiile multimedia (secvenţe video, audio, imagini) există perifericele de intrare şi ieşire specializate în preluarea şi redarea datelor multimedia, în afara celor standard, unele periferice de ieşire specializate în redarea datelor multimedia precum: difuzorul, casca VR (Virtual Reality, audio şi video), mănuşile VR cu senzori, etc.

În figura 2.1. este prezentată structura funcţională a unui sistem de calcul.

Figura 2.1. structura funcţională a unui sistem de calcul

În prezent, nu toate sistemele de calcul respectă principiile von Neumann.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

28

Pe lângă sistemele de calcul monoprocesor, caracterizate prin faptul că realizează execuţia unei singure instrucţiuni la un anumit moment de timp (principiul executării secvenţiale a instrucţiunilor) şi prelucrează datele într-un singur flux de date (arhitectura SISD -Single Instruction Single Data -fluxuri unice pentru instrucţiuni şi date) există alte două categorii de sisteme de calcul:

• sisteme de calcul cu arhitecturi paralele (numite sisteme cu arhitecturi Non von Neumann) care nu respectă principiul serialităţii ; • sisteme simbolice care asigură realizarea de aplicaţii specifice inteligenţei artificiale; sisteme de calcul concepute să realizeze inferenţe logice (raţionamente), neorientate către calculul matematic specific sistemelor de calcul care asigură prelucrarea automată a datelor .

Primele sisteme de calcul au fost monoprocesor, adică prezentau o arhitectură dezvoltată în jurul unui singur processor, iar ulterior au fost realizate sisteme de calcul multiprocesor. Ideea multiprocesării a avut la bază nevoia creşterii fiabilităţii calculatoarelor.

În realizarea sistemelor de calcul multiprocesor au fost abordate două strategii: • multiprocesarea asimetrică, caracterizată prin existenţa unui procesor master cu rol coordonator la nivelul întregului sistem de calcul, şi a unor procesoare slave, a căror funcţie constă în executarea independentă a unor module ale aceluiaşi program; procesorul master coordonează şi corelează toate celelalte procesoare slave. Dezavantajul multiprocesarii asimetrice constă în suprasolicitarea procesorului master; • multiprocesarea simetrică, caracterizată prin existenţa mai multor procesoare cu statut egal.

Sistemele de calcul multiprocesor pot fi clasificate funcţie de tipul procesoarelor utilizate în: • sisteme prezentând încorporate procesoare specializate pe clase de operaţii; aceasta înseamnă că, pe lângă procesorul principal, sunt încorporate procesoare specializate pentru operaţii de intrare-ieşire (I/E) sau coprocesoare matematice; • sisteme de calcul prezentând în cadrul arhitecturii mai multe procesoare independente, realizând sarcini de calcul proprii; aceste sisteme de calcul pot fi clasificate în funcţie de tehnica de prelucrare implementată la nivelul procesoarelor în: a) Sisteme pipeline, caracterizate prin faptul ca mai multe instrucţiuni executabile (cod maşină)

sunt încărcate într-o linie complexă de prelucrare, urmând să fie tratate secvenţial. Prin tehnica de pipeline, fiecare instrucţiune este descompusă în una sau mai multe microoperaţiuni, acestea urmând să fie executate de către procesoare diferite, iar rezultatul prelucrării la nivelul procesoarelor independente este "asamblat" şi transmis exteriorului.

b) Sistemele vectoriale sunt sisteme de tip pipeline caracterizate prin faptul execută un vector de operaţii asupra aceluiaşi flux de date.

c) Sistemele de tip masiv, care reprezintă în arhitectură o singură unitate de control şi mai multe unităţi de prelucrare aritmetico-logice, oferind posibilitatea executării în paralel a aceleiaşi operaţii asupra mai multor date.

d) Sisteme cu procesoare paralele, caracterizate prin cooperarea procesoarelor la executarea unor secvenţe diferite aparţinând aceluiaşi program.

Progresele realizate în domeniul sistemelor de calcul paralel au dus la o diversitate de soluţii. Caracterizarea acestora se poate realiza prin utilizarea noţiunilor de f1ux de instrucţiuni şi flux de date:

• SISD (Single Instruction Single Data) sunt sisteme von Neumann (monoprocesor) care se caracterizează prin executarea, într-o anumită fracţiune timp, a unei singure instrucţiuni, prelucrând un singur flux de date.

• SIMD (Single Instruction Multiple Data) sistemul de calcul dispune de multe procesoare (coordonate de aceeaşi unitate de control) ce execută aceeaşi instrucţiune asupra unor fluxuri de date diferite, ca în cazul calculatoarelor vectoriale şi al masivelor de procesoare. Un masiv de procesoare este un calculator vectorial implementat ca o mulţime de elemente de prelucrare sincronizate, capabile să îndeplinească simultan aceeaşi operaţie asupra unor date diferite. MISD (Multiple Instruction Single Data) nu se regăseşte în nici o arhitectură a vreunui sistem de calcul fabricat.

• MIMD (Multiple Instruction Multiple Data) în aceste sisteme mai multe fluxuri de instrucţiuni operează simultan asupra mai multor fluxuri de date.

Aceste sisteme pot prezenta două variante de arhitectură:

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

29

• MIMD cu memorie partajată: procesoare independente execută propriile sarcini, protejând datele stocate în memoria centrală comună divizată în module;

• MIMD cu memorie distribuită: fiecare procesor execută propriile sarcini, schimbând mesaje cu celelalte procesoare.

În ambele variante, procesoarele posedă propria unitate de control. 2.3. CLASIFICAREA CALCULATOARELOR ELECTRONICE

Existenţa unei mari diversităţi de sisteme de calcul a impus necesitatea clasificării acestora prin gruparea lor în clase. Apartenenţa la una din clasele de calculatoare este determinată de funcţionalitatea şi caracteristicile tehnice şi de exploatare ale componentelor ce formează arhitectura calculatorului, domeniile şi modalităţile de utilizare a acestora. În cadrul fiecărei clase se pot identifica familii de calculatoare care sunt concepute pe aceeaşi structură logico-funcţională, familii ce au în componenţă membri prezentând caracteristici generale asemănătoare, dar cu anumite particularităţi constructive. Criteriile avute în vedere la definirea claselor de calculatoare privesc: complexitatea arhitecturii, viteza de lucru, dimensiunea memoriei interne, capacitatea de stocare la nivelul memoriei externe, diversitatea şi caracteristicile perifericelor, tipurile de aplicaţii şi costul sistemelor de calcul.

Plecând de la aceste criterii, au fost definite următoarele clase de calculatoare: 1. supercalculatoare, 2. sisteme de calcul principale (mainframe), 3. minicalculatoare, 4. servere, 5. calculatoarele industriale (de proces), 6. microcalculatoare.

1. Supercalculatoarele sunt sistemele de calcul cele mai mari şi complexe, cele mai puternice şi cele mai scumpe. În arhitectura acestora se pot distinge peste 8 unităţi centrale de prelucrare care pot să execute peste 1 miliard de instrucţiuni pe secundă, ca preţ fiind situate în jurul a 20-100 milioane de dolari. Aceste sisteme sunt utilizate în prelucrări extrem de complexe a datelor, vizând diferite domenii de activitate cum ar fi: biologie, chimie, geologie, aerospaţială, medicină, meteorologie, fizică, matematică, criptografie, tehnica militară prognoza vremii, cercetări ştiinţifice în astronomie, seismologie, reactoare nucleare, criptografie, simulări din aria energiei nucleare, proiectarea aeronavelor, etc. Cercetări şi proiectări în industria supercalculatoarelor se realizează în SUA şi Japonia de către firme cum sunt: Cray Research, Fujitsu, ETA Systems, Sutherland.

Numărul de procesoare interconectate ale unui supercomputer depăşeşte la anumite modele chiar şi 100.000. Un computer normal, numit de tip "scalar", conţine un singur procesor central.

Printre primele firme care au produs supercomputere pentru piaţă ("comerciale") s-a numărat firma Cray prin anii 1970, numită aşa după fondatorul ei Seymour Cray. Primul său supercomputer vândut şi instalat oficial a fost celebrul Cray-1, care în anul 1976 a atins viteza de calcul de 130 MegaFLOPS (130 milioane de instrucţiuni cu virgulă mobilă pe secundă). Drept comparaţie, un PC normal din zilele noastre poate atinge câţiva GigaFLOPS (cu alte cuvinte, PC-ul de azi este deja de circa 10 ori mai rapid la acest gen de instrucţiuni decât supercomputerul din 1976).

Pe acest domeniu există o listă a celor mai rapide 500 de supercomputere de pe lume ("Top 500"), care se bazează pe testul standardizat numit "Linpack". Pe lângă aceste supercomputere comerciale există desigur şi linia supercomputerelor militare (care nu se pot cumpăra pe piaţă).

În tabelul 2.3. sunt prezentate rezultatele testului de evaluare a principalelor modele de supercalculatoare, cu menţionarea denumirii şi producătorului, principalelor caracteristici referitoare la numărul de procesoare, mărimea problemei (dimensiunea matricei la care a fost observată performanţa înregistrată în table) şi capacitatea teoretică maximă de calcul a sistemului.

IBM Roadrunner (după pasărea reprezentativă a statului New Mexico) este computerul construit de inginerii şi cercetătorii de la IBM şi Los Alamos National Laboratory din New Mexico, costă 133 de milioane de dolari şi a fost capabil să realizeze 1.026.000 de miliarde de operaţiuni pe secundă, va putea ajunge la viteza de 1,6 trilioane de operaţii pe secundă, fiind de două ori mai rapid

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

30

decât IBM BlueGene/L, care se află la Lawrence Livermore National Laboratory din California. Este destinat soluţionării problemelor militare secrete pentru a se asigura că armele nucleare vor continua să funcţioneze corect pe măsură ce se învechesc. Roadrunner va fi folosit pentru a simula comportamentul armelor în fracţiunea de secundă dinaintea exploziei. Va mai fi folosit şi pentru a explora probleme ştiinţifice mondiale cum ar fi schimbările climatice. Viteza Roadrunner le va permite cercetătorilor să testeze modelele climatice internaţionale cu o mai mare acuratete.

Tabelul 2.3. Evoluţia principalilor parametrii ai supercalculatoarelor

Thomas D'Agostino, administatorul National Nuclear Security Administration, a declarat că,

dacă toţi cei şase miliarde de locuitori ai planetei ar folosi calculatoare şi ar face calcule în regim continuu ar avea nevoie de 46 de ani pentru a face ceea ce poate Roadrunner să facă într-o singură zi.

Standardul cel mai performant de calcul se numeşte petaflop, computerul procesând informaţii cu viteza de un milion de miliarde de operaţiuni pe secundă, a fost mult timp un ţel vizat de organizaţiile militare, tehnice şi ştiinţifice din Statele Unite, dar şi de grupuri din Japonia, China şi Uniunea Europeana. Roadrunner are la bază un design radical, care include 12.960 de chip-uri care reprezintă o versiune îmbunătăţită a microprocesoarelor IBM Cell, şi cipuri special create pentru gadgeturile de gaming Sony PlayStation 3, care sunt utilizate ca acceleratoare pentru porţiuni de calcule. În plus, Roadrunner mai include procesoare Opteron convenţionale, realizate de Advanced Micro Devices. Roadrunner, care consuma trei megawaţi de energie electrică, echivalentul celei consumate de un centru comercial suburban, are nevoie de trei tipuri de instrumente de programare pentru cele trei tipuri de procesoare ale sale. Programatorii trebuie să găsească o soluţie prin care să ţină ocupate toate cele 116.640 de procesoare ale computerului în acelaşi timp, pentru ca acesta să ruleze eficient.

Cele mai puternice cinci supercomputere sunt: • Blue Gene/L, Lawrence Livermore National Laboratory, California. (280.6 teraflopi;

131,072 procesoare) • Jaguar, Oak Ridge National Laboratory, Tennessee (101.7 teraflopi; 11706 procesoare) • Red Storm, Sandia National Laboratories, USA (101.4 teraflopi; 26544 procesoare)

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

31

• BGW Blue Gene, IBM Thomas J. Watson Research Center, New York (91.29 teraflopi; 40960 procesoare)

• New York Blue, Stony Brook/BNL, New York Center for Computational Sciences, New York (82.161 teraflopi; 36864 procesoare)

Power 575 este un supercomputer produs de IBM, iar noua versiune instalată la Institutul Max Planck din Germania dispune de un sistem cu răcire cu apă. Schimbul de energie calorică nu se realizează în radiatoare cu răcire cu apă standard, ci prin intermediul Advanced Thermal Packaging, un sistem de răcire cu lichid dezvoltat de IBM de aproape un an ( imaginaţi-vă 14 noduri cu câte 32 de procesoare POWER6 care rulează constant la frecvenţa de 5 GHz. O răcire cu aer pentru un asemenea supercoputer implică hale dotate cu instalaţii imense de aer condiţionat şi un consum ridicat de curent pentru coolerele specifice pentru procesoare. Un centru de date cu aceleaşi noduri, dar dotat cu răcire cu apă, consumă cu 40% mai puţină energie pentru răcirea în sine.

2. Sistemele de calcul „mainframe” constituie o categorie aparte de sisteme, situată între

supercalculatoare şi minicalculatoarc, care operează cu viteze foarte ridicate. Alături de un număr de unităţi centrale de prelucrare, aceste sisteme întreţin unităţi principale de intrare, respectiv ieşire care operează şi ele cu viteze înalte.

Mainframe-urile sunt computere mari şi scumpe folosite de instituţii guvernamentale şi companii mari pentru procesarea de date importante pe domeniile: statistică, recensăminte, cercetare şi dezvoltare, proiectare, prognoză, planificarea producţiei, tranzacţii financiare ş.a. Mainframe s-ar putea traduce cu "dulap principal", ceeace provine de la aspectul exterior al primelor mainframe-uri - ele arătau ca dulapuri uriaşe de metal. Acum prin mainframe se înţelege în primul rând un calculator mare compatibil cu modelele de tip IBM System/360, care au apărut pe piaţă în anul 1965. Actualmente cel mai modern model de la IBM se numeşte System z10.

Pe lângă aceste mainframe-uri mai sunt considerate drept mainframe-uri şi calculatoarele actuale de tip:

• Fujitsu-Siemens: Nova, compatibil cu IBM System z9 • Groupe Bull: DPS • Hewlett-Packard: NonStop (provenite iniţial de la firma Tandem) • Hitachi: modele compatibile cu IBM System z9 • Platform Solutions Inc. (PSI): modele compatibile cu IBM System z9 • Unisys: ClearPath

În afară de acestea au mai existat şi alte modele de la alţi producători care azi nu mai există sau nu mai produc mainframe-uri, ca de exemplu de la firmele: Amdahl, Burroughs, Comparex, Control Data, General Electric, Honeywell, NCR, NEC, NT&T, Oki, RCA, Sperry, Telefunken, Univac, precum şi cele ale unor ţări din Tratatul de la Varşovia, care au copiat mainframe-uri de la IBM în mod ilegal. Prin contrast, următoarele tipuri de computere nu sunt considerate mainframe-uri: supercomputerele, computerele de prelucrat vectorii, apoi minicomputerele (de exemplu serverele de la firmele IBM, SGI, Sun Microsystems şi multe altele), precum şi computerele personale (de exemplu cele de la Apple şi toate PC-urile de la Acer, Asus, Dell, Fujitsu-Siemens, Hewlett-Packard, Lenovo, Medion, MSI, Packard Bell, Samsung, Sony, Toshiba şi multe altele).

În anii ‘80, accentul s-a pus pe reducerea consumului de energie şi creşterea eficienţei mainframe-ului. La acea vreme, IBM a dezvoltat un modul care disipa căldura de la suprafaţa chip-ului în mediul înconjurător. Până la 64 de chip-uri puteau fi amplasate pe un astfel de modul. Aceeaşi tehnologie a pus bazele mainframe-ului CMOS de astăzi. Cu numele de cod Picasso, IBM a proiectat a treia generaţie CMOS, dezvoltând un sistem de multiprocesare cu 6 procesoare: fiecare CPU (unitate centrală de procesare) avea o performanţă aritmetică de 14 MIPS, sistemul total având peste 70 MIPS. Până la 32 de astfel de computere puteau fi combinate într-o unitate complexă. Primul dintre acestea, IBM 9672, a fost lansat în 1994. IBM a continuat să dezvolte platforma CMOS.

Veniturile pe segmentul mainframe au surclasat veniturile obţinute pe segmentul platformelor bazate pe sistemul de operare Microsoft Windows. Abilitatea mainframe-ului de a rula noi aplicaţii – inclusiv aplicaţiile Linux şi Java – reprezintă un argument major al succesului continuu pe care îl înregistrează. Principalele sisteme sunt :

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

32

IBM System Z9 reprezintă cel mai sofisticat server pentru afaceri din lume. Unic în segmentul serverelor, arhitectura mainframe pe 64 de biţi a fost proiectată de la început încât să incorporeze procesoare ce controlează o varietate de procese specializate.

IBM Global Asset Recovery Services este parte a efortului de a proteja mediul înconjurator (unitatea IBM de recondiţionare şi reciclare, se va ocupa de procesarea şi dispunerea corespunzătoare a celor 3900 de sisteme recuperate).

Proiectul Big Green consta în software, hardware şi servicii eficiente energetic oferite de IBM şi partenerii de afaceri IBM.

IBM System z10 ajută clienţii să creeze un nou centru de date clasa enterprise. Viitoarea generaţie de mainframe de la IBM, cu processor pe 64 de biţi şi tehnologie quad-core,

a fost proiectată de la început pentru a fi răspândită şi pentru a oferi performanţă crescută pentru serverele virtualizate x86, suportând sute de miliane de utilizatori.

Z10 este echivalentul a 1,500 servere x86, cu un volum mai mic cu 85 % şi cu o reducerere a costurilor de energie cu pana la 85%.

IBM aduce noi capabilităţi Master Data Management şi Data Warehousing pentru sistemul z. Acestea vor include serverul Infosphere Master Data Management pentru sistemul z ce permite marilor business-uri să centralizeze managementul clienţilor, produselor şi informaţiilor din companie.

3. Minicalculatoarele au cunoscut o dezvoltare începând cu 1960 pentru executarea unor

programe de aplicaţii specializate, având următoarele caracteristici generale: • sunt mai mici şi mai puţin extinse decât supercalculatoarele şi sistemele principale; • sunt mai uşor de instalat şi operat decât sistemele principale; • preţul variază de la câteva mii la sute de mii de dolari; • sunt utilizate în aplicaţii multiutilizator, în maşinile cu control numeric, automatizări

industriale, prelucrări de texte, precum şi pentru transmisii de date între sisteme dispersate geografic, datorită facilităţilor oferite în cadrul proceselor de comunicaţii.

Numele lor provine din formularea "configuraţie minimă de calcul". Erau sisteme interactive (utilizatorii aflaţi în faţa unor terminale se aflau în dialog cu calculatorul) şi multiutilizator: la un moment dat mai multi utilizatori (câteva zeci sau chiar câteva sute) putea folosi calculatorul prin intermediul terminalelor. Această caracteristică impune un sistem de operare (numit RSX) performant, care să poată gestiona la un moment dat programele mai multor utilizatori şi să ofere mecanisme de protecţie a memoriei (să nu se suprapună mai multe programe în aceeasi zonă de memorie). În situaţia în care programele utilizatorilor, împreună cu soft-ul accesat de ele, nu încăpeau simultan în memorie, erau evacuate temporar pe un disc magnetic (mecanism de swap).

Pentru structurarea informaţiilor utilizatorilor aflate sub formă de fişiere pe suporturile magnetice, apare noţiunea de director (repertoar de fisiere). Existau doar două niveluri de directoare, spre deosebire de directoarele arborescente din UNIX si DOS.

Programarea pe minicalculatoare era mai anevoioasă decât pe microcalculatoarele care au apărut ulterior din cauza unei insuficiente dezvoltări a produselor soft destinate programării: procesele de editare, compilare, link-editare şi execuţie a programelor erau realizate separat, prin aplicaţii independente, care necesitau adesea o cantitate destul de mare de memorie disponibilă iar această condiţie putea fi adesea mai dificil de îndeplicit în condiţiile în care mulţi utilizatori exploatau simultan sistemul de calcul.

Minicalculatoarele lucrau pe 16 si 32 de biti. Dintre reprezentanţii lor amintim: VAX 8600, VAX 8650, PDP 11 şi calculatoarele româneşti CORAL şi INDEPENDENT.

Evoluţia minicalculatoarelor a condus la sisteme multiutilizator mai performante, care pot fi exploatate simultan de mai multe sute sau chiar mii de utilizatori – acestea sunt referite în literatura de specialitate sub numele de mainframes. Din punctul de vedere al performanţei, ele se apropie cel mai mult de supercalculatoare, la celălalt pol găsindu-se calculatoarele personale.

4. Serverele au apărut în paralel cu reţelele de calculatoare. Reţelele permit calculatoarelor să

comunice unul cu celalalt, iar pentru reţele mari apare nevoia ca un calculator să ia rolul de server şi să deservească alte calculatoare (acestea interacţionând eventual direct cu utilizatorii umani), care îşi asumă rolul de client.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

33

După apariţia serverelor, reţelele s-au dezvoltat şi au crescut mai departe, dar minicomputerele, care erau mai eficiente decât cele personale dar mai ineficiente decât mainframe – au dispărut sau au fost absorbite de unele din aceste servere.

Dispozitive de tip server. Cu toate că serverele pot fi construite, din componente obişnuite de calculatoare, este necesar ca pentru operaţii de mare amploare, unde contează mult viteza de încărcare, serverele folosesc configuraţii hardware optimizate pentru aceste cerinţe de server.

Serverele au încorporate părţi mecanice de „rezistenţă-industrială”, cum ar fi hard-discurile şi ventilatoarele folosite, fiind de performanţe deosebite şi fiabilitate mare, bineînţeles la preţuri mari. Aspectul estetic este ignorat, pentru că acestea sunt montate în camere tehnice, şi nu sunt văzute doar de cei ce le întreţin sau le repară. Cu toate că serverele folosesc mult spaţiu pe disc, sunt folosite hard-discuri de capacitate mică, pentru mai multă siguranţă. Viteza microprocesorului este mult mai mică la un server în comparaţie cu un calculator personal. Operaţiile de intrare/ieşire sunt executate mai rapid în cazul lipsei interfeţei grafice a utilizatorului (GUI), şi în aceste cazuri se măreşte puterea de calcul în favoarea altor procese. Serverele trebuie să lucreze în mod continuu şi în siguranţă având ventilatoarele zgomotoase, sisteme centralizate de aer condiţionat, pentru a păstra o temperatură cât mai mică, ca serverele să fie funcţionabile. Se folosesc UPS-uri pentru a fi siguri de continuitatea de alimentare cu energie electrică, pentru ca penele de curent să nu provoace stricăciuni ireparabile.

Programe pentru servere. Diferenţa majoră între computerele personale şi servere, nu este partea hardware ci partea de software. Pe servere rulează sisteme de operare, care sunt special proiectate pentru acestea.

Sisteme de operare. Sistemul de operare Microsoft Windows este predominant în rândul computerelor personale, dar în lumea serverelor, cele mai populare sistem de operare sunt FreeBSD, Solaris, şi GNU/Linux – care derivă şi sunt asemănătoare cu sistemul de operare UNIX. UNIX a fost proiectat iniţial pentru microcomputere şi pentru servere, care au înlocuit treptat microcomputerele. UNIX a fost o alegere logică şi eficientă ca sistem de operare pentru servere.

Sistemele de operare orientate spre servere, au multe proprietăţi în comun, care să le facă mai compatibile cu mediul server, cum ar fi: lipsa interfeţei grafice GUI (sau existând o opţiune GUI); abilitatea de a reconfigura sistemul (hardware şi software) în unele cazuri fără oprirea sistemului; facilităţi de a crea copii de siguranţă (backup-uri) pentru datele importante, la intervale de timp frecvente si/sau regulate; posibilitatea de a muta date între diferite partiţii sau dispozitive printr-un mod „transparent” pentru utilizator; capacităţi flexibile şi complexe de lucru în reţea; proprietăţi (daemoni în UNIX sau servicii în Windows) care fac ca execuţia programelor să fie mai eficiente; sistem de securitate etanş, cu utilizatori avansaţi, protecţia datelor şi a memoriei.

Cu toate astea, o anumita versiune Windows este mai puţin folosită decât cea mai recentă versiune al popularului Mac OS X (acesta este bazată pe UNIX şi dă acces complet utilizatorilor săi la sistemul de operare UNIX) din familia sistemelor de operare pentru calculatoare personale şi unele sisteme de operare având structura de bază mai proprie (cum ar fi z/OS); dar majoritatea serverelor folosesc sisteme de operare, versiuni ale UNIX sau clonele acestuia. Chiar şi în cazul popularului sistem de operare GNU/Linux de tip UNIX, folosit frecvent pe servere, în această configuraţie fiind ideală pentru servere, dar poate fi nesatisfăcătoare pentru calculatoarele personale, iar o configuraţie care rulează ideal pe calculatoarele personale, poate să lase de dorit în cazul serverelor.

Apariţia serverelor bazate pe microprocesoare, a facilitat apariţia mai multor versiuni ale sistemului de operare UNIX care rulează pe microprocesoare de tip Intel x86, incluzând Solaris, GNU/Linux şi FreeBSD.

Aplicaţiile pentru servere, sunt particulare, realizate pentru a executa numai operaţii de tip server, ca şi aplicaţiile pentru calculatoarele personale sau de tip mainframe care sunt proiectate pentru mediile respective. Un server care primeşte numai cereri, foloseşte aceleaşi tipuri de aplicaţii tot timpul, nu poate comunica calculatorului care a formulat cererea, despre îndeplinirea cererii. Servere pe Internet. Aproape toată structura Internetului se bazează pe modelul de server client. Mai multe milioane de servere, toată lumea, sunt conectate la Internet şi rulează continuu. Majoritatea serviciilor oferite pe Internet, de servere sunt: Web; Domain Name System; electronic mail sau poştă electronică; file transfer sau transfer de fişiere; instant messaging sau mesagerie instantă; fişiere audio şi video, jocuri.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

34

5. Calculatoarele industriale sunt sisteme de calcul complexe, realizate cu subansamble şi componente profesionale, proiectate special pentru utilizarea îndelungată în medii industriale cu cerinţe severe. Utilizarea calculatoarelor industriale nu este limitată numai la monitorizarea, supravegherea şi comanda proceselor de fabricaţie; asigurând un grad ridicat de fiabilitate, acestea oferă o soluţie profesională şi pentru utilizări de tip server: server de aplicaţii sau de fişiere, server de Intranet/Internet/Extranet al firmei, server pentru furnizorii de servicii Internet etc.

Domeniul calculatoarelor industriale necesită o fiabilitate sporită şi un timp mediu de bună funcţionare cât mai mare.Din acest motiv, beneficiarii unor astfel de produse sunt dispuşi să platească un preţ mai ridicat, atât pentru componentele hard, cât şi pentru pachetele software. Componentele hard ale calculatoarelor industriale trebuie să fie de cea mai bună calitate, să prezinte o fiabilitate sporită şi să asigure o stabilitate în exploatare un timp cât mai îndelungat.

Sistemele profesionale trebuie să fie prevăzute cu ventilatoare pe rulmenţi, conectoare aurite, surse de alimentare supradimensionate, condensatoare cu tantal, memorii de foarte bună calitate etc. Calculatoarele industriale includ calculatoare mono-placa („Single Board Computers” – SBC), dispozitive de stocare cu memorii semiconductoare, plăci de sertar pasive („backplanes”), surse de alimentare, module şi sisteme de afişare, periferice, comutatoare KVM(A), şasiuri, carcase etc., toate cu specificaţii industriale. Calculatoarele industriale/de proces controlează procese tehnologice sau diverse analize experimentale asistate de calculator, prelucrând informaţii numerice sau analogice despre procesul studiat şi furnizând ieşiri numerice sau analogice cu rol de reglare a procesului.

Aceste sisteme de calcul funcţionează în timp real, adică timpul de răspuns al calculatorului este compatibil cu constantele de timp ale procesului gestionat. Se pot face lesne analogii cu un proces din tehnologia fabricării PAL PFL sau MDF sau unul chimic, în care modificarea defavorabilă a unui parametru trebuie să fie rapid remarcată şi remediată de calculatorul de proces sau cu sistemele de calcul aplicate în medicină, biochimie şi fizică (de exemplu, acceleratoarele de particule sunt controlate şi ele de calculatoare de proces).

Un calculator de proces exercită funcţii de control şi comandă / reglare asupra procesului pe care îl conduce, în sensul supravegherii lui şi a prelucrării datelor de proces culese, respectiv al schimbării stării acestuia în caz că prin prelucrarea informaţiilor culese se constată că acest lucru este necesar.

6. Microcalculatoarele - denumite şi PC (Personal Computer) sau HC (Home Computer)-

apărute ca urmare a dezvoltării tehnicii de calcul şi informaticii, cu o rapidă dezvoltare şi diversificare în etapa actuală, datorită avantajelor deosebite pe care le prezintă în raport cu celelalte categorii de sisteme de calcul: accesibile tuturor utilizatorilor, care fără să aibă o pregătire specială, se pot iniţia în tehnica de calcul, sunt realizate la preţuri scăzute (între 200 şi 10.000 dolari), cu gabarit redus, unele portabile cu aplicabilitate în orice domeniu de activitate, printr-un soft specializat.

Dintre principalele caracteristici, se menţionează: • structura sistemului în jurul unei magistrale; • dispun de o structură modulară, realizată după criterii funcţionale şi constructive; • au un număr mic de componente pentru implementarea unităţii centrale de prelucrare şi a

interfeţelor cu magistrala; • se pot utiliza şi pentru comunicaţia cu alte sisteme de calcul sau cuplate cu alte sisteme,

identice sau diferite. Microcalculatoarele sunt calculatoare a căror unitate centrală este un microprocesor. Primele

microprocesoare au apărut în anii '70 dar s-au dezvoltat mai ales în anii '80 si continuă să evolueze; ele lucrează pe 8, 16 sau 32 de biti (cazul calculatoarelor folosite în prezent). Sunt sisteme interactive, monoutilizator (la un moment dat sunt exploatate de un singur utilizator). Microcalculatoarele s-au răspândit curând ca urmare a evolutiei tehnologiei care a redus foarte mult costurile lor de fabricatie. De alftel, aceste costuri sunt în continuă scădere iar performantele evoluează tot mai mult.

Primele microcalculatoare au fost calculatoare personale familiale: Sinclair Spectrum, Commodore sau cele românesti PRAE, aMIC, HC, TIMS, Cobra. Ulterior au apărut calculatoarele personale (PC) profesionale. Dintre primele microcalculatoare profesionale românesti amintim: M18, M118, CUBZ, M216 (de remarcat că acesta din urmă putea lucra atât sub sistemul de operare CP/M, cât si sub DOS); ulterior a apărut familia Felix PC. Pe plan mondial amintim calculatoarele Apple MacIntosh, cu o interfată foarte prietenoasă cu utilizatorul, create mai ales pentru neprofesionisti si

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

35

calculatoarele de tip IBM PC, care au înregistrat o evolutie tehnologică de-a dreptul spectaculoasă, bazată în principal pe evolutia microprocesoarelor (cele mai cunoscute sunt realizate de firma Intel). Pentru calculatoarele personale cu performante ridicate, care sunt dotate cu câte un microprocesor mai puternic si un monitor de calitate înaltă, cu facilităti grafice deosebite, se foloseste uzual denumirea de statii de lucru (“workstations”). Cele mai cunoscute statii de lucru au fost create de firmele SUN, Hewlett-Packard si DEC. Statiile de lucru se folosesc uzual pentru aplicatii profesionale, dezvoltare de soft, probleme care necesită facilităti grafice performante, cum ar fi proiectarea inginerească si pot fi conectate în retele de calculatoare.

Primul sistem de operare al microcalculatoarelor a fost MS DOS, care are la bază primul sistem de operare al microcalculatoarelor, CP/M, îmbunătătit cu principii din UNIX (cum ar fi structura arborescentă a directoarelor). Datorită mediilor de programare, calculatoarele personale au devenit instrumente de lucru mai convenabile pentru informaticieni. În plus, mai ales în ultimul deceniu, produsele soft au evoluat foarte mult, dezvoltându-si o interfată din ce în ce mai accesibilă, care a atras tot mai mult si utilizatorii neprofesionisti.

Microcalculatoarele sunt siteme de calcul a căror unitate centrală de prelucrare este implementată cu unul sau două microprocesoare. Microprocesoarele sunt circuite integrate monolitice care implementează cea mai mare parte a funcţiilor unui procesor tradiţional, fiind constituite dintr-o pastilă de siliciu (chip) care înglobează milioane de tranzistoare - realizată pe baza tehnologiei siliciului implantat pe rubin în variante MOS (Metal-Oxid-Semiconductor) ca: PMOS, CMOS, NMOS, HMOS etc.

Memoria este realizată modular, o parte din modulele de memorie fiind alocate utilizatorului ca zona de lucru (RAM), iar celelalte module memorării unor programe din software-ul de bază cu care este echipat microcalculatorul (ROM). modulele de memorie se prezintă sub forma unor chip-uri distincte, având o anumită capacitate de stocare,

Controlerele de acces direct la memorie au rolul de a degreva unitatea centrală de prelucrare de urmărirea permanentă a transferurilor de date realizate între memoria internă şi memoria externă tratată ca dispozitiv periferic de intrare/ieşire.

Dispozitivele periferice de intrare/ieşire sunt cuplate la magistrala microsistemului prin intermediul interfeţelor seriale sau paralele, în funcţie de modul în care se realizează transferul datelor (serial sau paralel) care implică supravegherea permanentă de către unitatea centrală de prelucrare a transferului, scăzând astfel randamentul acesteia prin menţinerea ei în stare activă.

Microcalculatoarele reprezintă sisteme de calcul având arhitectura construită în jurul microprocesorului ce are rolul de unitate centrală de prelucrare. Evoluţia microcalculatoarelor a fost deosebit de dinamică, concretizată prin apariţia mai multor subclase de astfel de sisteme de calcul:

1. Microcalculatoarele familiale, aşa-numitele Home-Computer, prezentau un microprocesor pe 8 biţi, memorie dinamică de 48Kb, folosind drept monitor televizorul, iar ca dispozitiv al memoriei externe casetofonul. Programabile în limbajul BASIC, permiteau efectuarea de calcule cu un volum de date redus (un buget de familie, de exemplu) şi, totodată, rularea unor jocuri. Larg răspândite în deceniul şapte, ele au fost oferite de mai multe firme, dintre care, cele mai reprezentative sunt: Commodore, Sinclair Spectrum,Atari etc.

2. Microcalculatoare semiprofesionale, lansate în juru1 anului 1975, realizate tot cu microprocesoare pe 8 biţi. Se deosebesc, arhitectural, de Home Computer, prin cuprinderea în configuraţie a unor periferice mai pretenţioase (unităţi floppy disk, imprimanta, unităţi de caseta magnetică, unităţi de bandă magnetică, eventual cuplor de teletransmisie)

3. Microcalculatoare profesionale sau PC-uri caracterizate din momentul lansării lor pe piaţa, prin utilizarea microprocesoarelor pe 16, 32 şi 64 biţi, includerea unei unităţi de disc WINCHESTER, destinată stocării unui volum mare de date, creşterea vitezei de prelucrare a datelor etc. Două au fost modelele de referinţă care au marcat evoluţia acestei subclase de calculatoare:

• PC -Personal Computer (1981) pe 16 biţi, lansat de IBM (SUA); • MacIntosh (1984) pe 32 biţi, lansat de firma APPLE (SUA). Strategiile celor două firme de referinţă au fost deosebite. IBM a optat pentru o arhitectură

deschisă şi transparentă. În realizarea proiectelor sale, IBM a utilizat circuite integrate produse de firma INTEL, sisteme de operare create de MICROSOFT, periferice produse de diverse alte firme.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

36

În opozitie cu IBM, firma APPLE a adoptat în realizarea microcalculatorului MacIntosh (pe scurt MAC) o arhitectură închisă. APPLE şi-a asigurat majoritatea componentelor necesare din producţie proprie, promovând componente ale unităţii centrale de prelucrare (UCP) cu natura diferită faţă de ale PC-ului, tehnologii, sistem de operare şi periferice dedicate. Unitatea centrală de prelucrare utilizează microprocesoare MOTOROLA, cu memoria operativă având valori între 1 Megaoctet şi maxim 256 MO. Specific MacIntosch este interfaţa grafică pe care a prezentat-o de la primele modele. Dacă la început cele două tipuri de microcalculatoare erau incompatibile, prin utilizarea microprocesorului POWER PC se permite utilizarea programelor PC şi MacIntosh pe acelaşi sistem de calcul şi putem vorbi de portabilitatea datelor de pe un PC pe un MacIntosh prin intermediul unor programe speciale de conversie. Cele mai cunoscute firme producătoare de microcalculatoare profesionale sunt: IBM, APPLE, COMPAQ, DELL, HEWLETT-PACKARD, OLIVETTI etc.

Microcalculatoarele profesionale sunt la rândul lor de două categorii: de birou şi portabile. PC-urile staţionare (de birou) prezintă o serie de modele: -modelul desktop, numit şi orizontal, datorită poziţiei unităţii sistem; -modelul tower, cu orientare verticală a unităţii sistem: minitower, miditower şi fulltower. -mini PC-uri, sunt modele cu gabarit redus, de format cubic. Mini PC-uri sau „barebone" reprezintă o formă relative recentă de microcalculatoare, din

categoria PC-urilor staţionare, cu caracteristica principală de miniaturizare a carcasei şi o destinaţie preponderentă pentru lumea multimedia. Un astfel de calculator în semi minatură este mai uşor de adaptat într-un interor, mai original, ocupă mai puţin spaţiu, are un design apropiat de un sistem multimedia, audio-video, poate fi comandat de la distanţă, este mai silenţios. Un „barebone” prezintă facilităţi pentru diverşi utilizatori pornind de la mediul office, home theater, platformă pentru jocuri, având implementate echipamente care oferă posibilitatea de ascultare a unui CD audio sau cu mp3-uri, vizionări DVD, implementarea unui radio FM, cititor de carduri şi alte echipamente de ultimă generaţie. Cei de la Shuttle sunt deschizători de drumuri în domeniul barebone-urilor.

PC-urile portabile existente în acest moment pe piaţă prezintă modele slim şi book, cu diferite variante de laptop sau notebook şi palmtop (PC-urile miniatură). În momentul de faţă cele mai cunoscute modele ale acestei familii de calculatoare sunt laptop-urile şi PDA- urile (Personal Digital Assistant).

Notebook-urile au o greutate între 1,5 şi 3,5 kg, primele modele şi ajungând la greutăţi sub 1 kg, au monitor color de înaltă fidelitate, memorie RAM de la 8-32 MB (primele modele), la 512 MB sau chiar 1024MB, capacitatea de stocare a hard-discului ajunge la 80 –250 GB sau mai mare, CD şi/sau DVD, placa de sunet, difuzoare, cască audio. Acestea sunt dotate cu microprocesoare de tip PENTIUM 4 M (de la mobil) de diferite caracteristici şi arhitecturi (nuclee), însă cu o caracteristică specifică calculatoarelor mobile, respectiv miniaturizarea componentelor, adaptarea la alimentarea prin acumulator sau direct de la reţea şi volumul incintei restrâns cu o ventilare îngreunată. Interfaţa este asigurată de tastatura şi de trackball sau de TouchPad (suprafaţa plană, ataşată la tastatura, ai cărei senzori urmăresc mişcarea degetelor, presiunea exercitată de acestea şi transmit mişcarea lor cursorului, pe ecran). Mai nou, notebook-urile prezintă o cameră digitală având facilităţi de videoconferinţă şi de captură a secvenţelor video. ventilatoarele ţin portabilele reci şi relativ zgo-motoase. Producătorii se întrec la realizarea sistemelor cu diagonala ecranului cât mai mare (15,4” – 17”), cu procesorul, placa video, memoria internă, harddiscul cu performanţele cele mai mari şi greutatea cât mai redusă, precum şi carcase cât mai rezistente. Producători importanţi pe piaţă sunt Toshiba, Compaq, Nec, Sony, Fujitsu-Siemens, Hewlett-Packard, etc.

PDA - urile (Personal Digital Assistant) sau Pocket PC-urile, impresionează nu doar prin dimensiune (pot fi purtate în buzunar şi au o greutate de la cca. 450 g la 150 – 100 g), dar şi prin performanţele şi funcţionalităţile lor. Majoritatea folosesc procesoare RISC pe 32 biţi, un minim de 4MB RAM şi 4MB ROM, prezintă ecran tactil şi creion optic, tastatură, monitor ce permite vizualizarea informaţiei exact ca pe un desktop, dispozitive de înregistrare şi redare a vocii, iar modelele standard prezintă un modem card. Sistemul de operare conţine instrucţiuni pre-programate care coordonează activitatea microprocesorului. El nu are însă complexitatea celui folosit de laptop, spre exempu. Generaţiile mai noi de PDA-uri permit rularea unui număr mare de programe, de la jocuri simple, filme şi muzică, până la suite office şi browser-e, devenind practic mini-calculatoare (microcalculatoare în miniatură).

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

37

Există două tipuri de sisteme de operare - Palm OS sau Pocket PC (care mai poartă numele de Windows CE, Microsoft), asigurând majoritatea facilităţilor oferite de sistemele: WINDOWS desktop. Palm OS are dimensiune mai mică şi viteză mai mare de lucru, în timp ce Pocket PC suportă mai uşor imaginile grafice sau micile aplicaţii de tip Word sau Excel, MP3 sau fişiere de tip Movie, cu repercusiuni asupra vitezei de lucru.

PDA-urile se pot clasifica şi după modalitatea de introducere a datelor sau de validare a comenzilor. Cele de tip Handheld (tip de calculator care încape în mâna utilizatorului; printre care Handheld PC-uri, PDA-uri, Smartphone-uri, pagere inteligente şi laptopuri de dimensiuni mici) au o tastatură în miniatură împreună cu ecranul LCD „preso-sensibil", în timp ce pentru aparatele de tip Palm folosiţi un „creion" în combinaţie cu ecranul care foloseşte exclusiv un program de recunoaştere a scrisului de mână. Alte versiuni sunt de tip HPA (High Performante Addressing), reprezentând un sistem LCD bazat pe o matrice pasivă, care oferă timpi de răspuns rezonabili, dar continua să aibă un contrast scăzut Nu se mai fabrici decât pentru dispozitive portabile datorită scăderilor de preţuri la matricele active.

PDA-urile poate face schimb de informaţie cu alte Pocket PC-uri fără a fi nevoie de cabluri spe-ciale de conectare (tehnologia se bazează pe razele infraroşii). Windows Mobile 2003 pentru Pocket PC dispune acum şi de suportul Bluetooth (comunicare între două unităţi electronice fără a fi nevoie de o acţiune suplimentară a utilizatorului). Firme producătoare sunt: HEWLETT-PACKARD, TOSHIBA, COMPAQ, PHILIPS, Sony, Fujitsu-Siemens, etc.

2.4. ARHITECTURA UNUI CALCULATOR PERSONAL Ansamblul integrat de componente funcţionale care formează un tot unitar, reprezintă

arhitectura sistemului de calcul. Arhitectura standard a unui microcalculator personal din clasa IBM-PC conţine: microprocesor, memoria internă, memoria externă, periferice, toate aceste componente comunicând prin intermediul magistralei de date şi magistralei de comenzi. Pentru componentele ce formează arhitectura standard a microcalculatorului se fac precizări:

Microprocesorul reprezintă "creierul" care comandă şi coordonează întreaga activitate de prelucrare din cadrul PC-ului.

Memoria internă are rolul de a stoca datele şi programele aflate în execuţie. Înseamnă că procesorul va extrage din locaţiile de memorie (unităţi elementare de memorie direct adresabile) instrucţiunile ce urmează să le execute şi date le supuse prelucrării.

Magistrala de date asigură transferul datelor între componentele PC-ului (memorie internă, memorie externă, periferice) şi unitatea centrală.

Magistrala de comenzi asigură transferul comenzilor microprocesorului către celelalte componente ale PC-ului.

Memoria externă este reprezentată de multimea mediilor care permite stocarea permanentă a datelor şi programelor (disc fix, discuri floppy, CD-ROM).

Unităţile periferice reprezintă mulţimea componentelor hardware ce permit introducerea datelor în calculator, precum şi redarea rezultatelor prelucrării, iar cele două categorii de periferice sunt periferice de intrare ( tastatură, mouse etc.) şi periferice de ieşire (monitor, imprimantă).

Echipamentul pentru comunicaţii include totalitatea dispozitivelor tehnice de conectare, codificare, decodificare, transmitere şi recepţie locală sau la distanţă a informaţiei utilizate în activitatea curentă. Unele dintre componentele arhitecturii PC-ului se regăsesc în interiorul carcasei unităţii centrale: microprocesorul, memoria internă, unitatea/unităţile de floppy-disk (pot fi două), magistrala de date şi magistrala de comenzi, precum şi sursa de alimentare, al cărui rol este de a transforma curentul altemativ furnizat de reţeaua de 220V în curent continuu.

Aceste componente sunt direct sau indirect (prin conectori) conectate pe placa de bază a PC-ului numită şi mother board. Placa de bază conţine microprocesorul, memoria internă, magistralele de date şi comenzi, conectorii de configurare, placa video, controller-ul (placa adaptoare), precum şi o serie de conectori (socluri libere) ce permit realizarea de extensii, cip-uri specializate de tipul: extensiilor de memorie, placi grafice, placi de modem sau plăcile de fax etc.

În procesul prelucrării, calculatorul realizează succesiv anumite cicluri-maşină, care presupun parcurgerea mai multor etape. Un ciclu-maşină prezintă două părţi: ciclul instrucţiunii (I-cycle) şi

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

38

ciclul execuţiei (E-cycle), în cadrul fiecărui ciclu executându-se mai multe faze impuse de executarea unei singure instrucţiuni în cadrul unităţii centrale de prelucrare. În ciclul instrucţiunii, unitatea de comanda-control (UCC) preia din memoria internă o singură instrucţiune pe care o decodifică. Plasează rezultatul decodificării (codul operaţiei) într-un registru special şi indică unităţii aritmetico- logice (UAL) ce urmează să facă. Specifică adresa datelor ce urmează să fie folosite în cadrul operaţiei în registrul de adrese. Un registru reprezintă o zonă (locaţie) temporară de stocare, aflată în UAL sau UCC, pentru instrucţiuni ale programului sau date de prelucrat ce sunt transferate din memoria internă în unitatea centrală pentru a fi prelucrate. În timpul ciclului de execuţie, UCC identifică datele necesare prelucrării în memoria internă, le plasează în registrul de date, cere UAL să execute operaţia, stochează temporar rezultatul operaţiei executate în acumulator şi apoi stochează rezultatul obţinut în memoria internă. Dupa executarea unei instrucţiuni, UCC preia spre execuţie următoarea instrucţiune din program şi astfel ciclul se reia pentru noua instrucţiune.

2.4.1. Microprocesorul Microprocesorul reprezintă "creierul" întregului PC, fiind coordonatorul tuturor operaţiilor.

Principalii producători de procesoare au rămas: INTEL, AMD şi CYRIX, între aceste firme ducându-se o permanentă luptă pentru supremaţie. De-a lungul timpului au fost realizate mai multe familii de microprocesoare dintre care amintim:

-familia X86 a lui INTEL, utilizată în realizarea microcalculatorului IBM: 8086, 80286, 80386, 80486, Pentium, PentiumPro, Pentium II, Pentium III, Pentium 4, Celeron, Pentium D, Celeron D, Core 2 Duo Core 2 Quad şi Core 2 Extreme;

-familia 68000 a lui Motorola, utilizată în realizarea microcalculatoarelor ATARI şi MacIntosh; -familia de procesoare DEC Alfa. Microprocesorul conţine două componente: unitatea de comandă-control (UCC) şi unitatea

aritmetico-logică (UAL). Unitatea de comandă-control reprezintă un veritabil "dirijor" al tuturor prelucrărilor. Rolul său este de a trata instrucţiunile ce formează programul aflat în execuţie, emiţând comenzi către toate celelalte componente ale calculatorului cu scopul realizării prelucrărilor cerute de instrucţiuni. Unitatea aritmetico-logică are rolul de a realiza calculele aritmetice, precum şi funcţiile logice impuse de programele aflate în execuţie şi comandate de către UCC.

Principalele caracteristici care definesc un microprocesor sunt: -viteza de lucru; -capacitatea maximă de memorie pe care o poate adresa; -setul de instrucţiuni pe care le poate executa. Viteza de lucru a microprocesorului este, determinată de o serie de alţi factori, şi anume: -frecvenţa ceasului intern; -dimensiunea regiştrilor interni ai microprocesorului; -debitul asigurat de magistrala de date; -existenţa şi dimensiunea memoriei cache; -tipul constructiv al microprocesorului.

Funcţionarea întregului calculator şi, în special, a microprocesorului este coordonată de ceasul intern. Ceasul intern reprezintă un oscilator ce emite pulsuri la intervale de timp egale, bine determinate. Deci, nu există nici o legătura între ceasul intern şi, respectiv, ceasul sistem care returnează timpul curent (ora şi data), contorizat de memoria CMOS, care, de altfel, pot fi modificate prin comenzile sistemului de operare.

Microprocesorul conţine o componentă numită decodorul de funcţiuni care are rolul de a descompune fiecare instrucţiune în operaţiuni elementare, fiecare dintre operaţiunile elementare identificate urmând a fi executată în intervalul dintre două pulsuri de ceas. De altfel, toate componentele calculatorului îşi vor coordona activitatea în raport cu pulsurile emise de ceasul sistem.

Un procesor modern (cunoscut şi sub denumirea de CPU - Central Processing Unit sau unitate centrală de procesare) foloseşte mai multe tehnologii pentru creşterea performanţelor:

Frecvenţă mai mare: Cea mai simplă metodă de creştere a performanţelor unui procesor este creşterea frecvenţei de funcţionare a acestuia. Din 1971, frecventa de funcţionare a procesoarelor a crescut de aproximativ 25.000 de ori. Creşterea frecvenţei de funcţionare determină şi creşterea

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

39

consumului într-o oarecare măsură contribuie la determină performanţele unui procesor, conform tabelului 2.4.

Tabelul 2.4.

EVOLUŢIA PROCESOARELOR

Mai multe nuclee : Majoritatea procesoarelor moderne au două nuclee (Dual Core), dar modele mai avansate pot avea până la patru nuclee (Quad Core), cum ar fi procesoarele Core 2 Quad ale Intel sau Phenom X4 ale AMD. în principiu, fiecare nucleu reprezintă un procesor complet. în cazul ideal, puterea de procesare creşte liniar cu umărul nucleelor. în practică, sporul de performanţă este mai mic şi depinde de fiecare aplicaţie rulată. Viitorul promite procesoare cu un număr impresionant de nuclee, de ordinul sutelor.

Mai multă memorie cache : O memorie cache mare şi rapidă ajută la procesarea mai rapidă a datelor. Memoria cache este folosită ca şi spaţiu de stocare temporar pentru cele mai importante instrucţiuni ale programelor, sau pentru cele mai frecvent utilizate. Acestea sunt accesate mult mai rapid (practic instantaneu) de către procesor, memoria cache fiind în prezent încorporată în pastila procesorului. Programele rulează astfel mult mai rapid. Teoretic, cu cât memoria cache este mai mare, cu atât performanţele sunt mai bune. Procesoarele moderne folosesc până la 3 MB de memorie cache pentru fiecare nucleu, astfel că un procesor quad core poate avea până la 12 MB de memorie cache.

Circuite mai fine : Producătorii folosesc circuite din ce în ce mai fine prin care datele circulă în interiorul procesoarelor. Prin urmare, un număr din ce în ce mai mare de tranzistoare poate fi înglobat întrun procesor, permiţând realizarea de circuite din ce în ce mai complexe, cu performanţe din ce în ce mai mari. în plus, pe aceeaşi suprafaţă sunt încorporate mai multe funcţii şi o memorie cache mai mare. Circuitele din procesoarele actuale pot avea numai 45 de nanometri lăţime (un nanometru este 0 milionime dintr-un milimetru; firul de păr are grosimea de 10.000 de nanometri). Procesul de fabricaţie pe 32 nm urmează să fie introdus, pentru prima dată, în 2009.

Magistrală de date mai rapidă: Procesoarele moderne comunică cu memoria sistemului printr-o magistrală de date, denumită şi „bus". Cu cât frecvenţa acesteia este mai mare, cu atât datele din memorie sunt accesate mai rapid (rata de transmisie a datelor creşte). Spre exemplu, primul procesor Pentium 4, cu frecvenţa magistralei de date de 400 MHz (4 x 100 MHz), avea o rată de transfer a datelor de 3,2 GB/s, în timp ce actualele procesoare Core 2 Duo au frecvenţa magistralei de date de 1333 MHz (4 x 333 MHz) şi o rată de transfer a datelor de 10,66 GB/s.

Instrucţiuni optimizate : în modelele noi, logica de control este optimizaiă, astfel că procesoarele pot executa mai multe operaţiuni pe ciclul de ceas sau pot procesa simultan o cantitate mai mare de date. Ambele situaţii se traduc printr-o procesare mai rapidă a datelor şi, deci, printr-un nivel superior de performanţă.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

40

Un procesor single-core cu frecvenţă mare de funcţionare poate fi mai rapid în anumite aplicaţii decât un procesor multi-core cu frecvenţa mai mică. Software-ul instalat trebuie să fie capabil să folosească tehnologia multi-core, dar puţine programe folosesc eficient puterea oferită de procesoarele multi-core.

Sistemul de operare trebuie, de asemenea, să fie capabil să folosească această tehnologie. Versiunile mai vechi de Windows, cum ar fi Millenium sau 98, nu permit folosirea procesoarelor multi-core. Windows XP are nevoie de Service Pack 2 sau 3 pentru a scăpa de procesele care lucrează în background către cel de-al doilea core. Cel mai potrivit pentru procesoarele multi-core este Windows Vista care poate aloca nucleelor suplimentare nu numai procesele ascunse, ci şi diferite programe. Preţul: procesoarele de top sunt foarte scumpe: un Core 2 Extreme QX9770 costă în prezent peste 4000 de lei. Prin urmare, un calculator complet poate să coste, în funcţie de configuraţie, 6000 de lei sau chiar mai mult. Pe de altă parte, un procesor Core 2 Duo E8500 oferă un nivel apropiat de performanţă (dar are numai două nuclee), pentru numai 850 de lei. Astfel, poţi să construieşti un sistem complet extrem de performant cu numai 2500 - 3000 de lei.

Consumul: întocmai cum maşinile cu motoare puternice consumă mai multă benzină, tot aşa un procesor puternic consumă mai mult curent. Acest lucru este evident mai ales în full load, unde un model de top poate să consume până la 130 de Waţi, în timp ce modelele mai lente se mulţumesc cu un maxim de 45-65 de Waţi.

Căldura: mai multă performanţă înseamnă mai multă căldură degajată şi, implicit, un zgomot mai mare generat de ventilatorul care trebuie să răcească procesorul. Zgomotul produs de ventilatoarele de mici dimensiuni poate fi deosebit de supărător. Procesoarele moderne produc în timpul funcţionării o cantitate foarte mare de căldură, care trebuie disipată de pe o suprafaţă mică. Raportat la suprafaţă, multe procesoare produc mai multă căldură decât o plită electrică. Şi, pentru că procesoarele nu pot suporta temperaturi mai mari de 90 de grade Celsius, are nevoie de un sistem de răcire eficient. Acesta este format dintr-un ventilator şi un radiator care sunt montate în contact direct cu procesorul. Principalii producători de procesoare, AMD şi Intel folosesc un sistem de numerotare care descrie schimbările de performanţă în cazul unui anumit model. în principiu, cu cât numărul este mai mare, cu atât mai rapid este un anumit procesor. Astfel, un Core 2 Duo E8200 dispune de două nuclee care funcţionează fiecare la frecvenţa de 2,66 GHz, iar E8400 are două nuclee la 3,0 GHz.

AMD foloseşte un sistem care nu trădează frecvenţa de funcţionare. Astfel, Athlon64 3800+ funcţionează la frecvenţa de 2,4 GHz. 3800+ înseamnă „la fel de eficient ca şi un procesor la frecvenţa de 3,8 GHz". în ultima vreme însă, chiar şi AMD a abandonat acest sistem de numerotare pentru procesoarele sale recente. Phenom X3 8650 are, astfel, trei nuclee care funcţionează la frecvenţa de 2,3 GHz, în timp ce Phenom X4 9850 are patru nuclee cu frecvenţa de 2,5 GHz.

În spatele denumirii comerciale a procesorului, adesea se ascund nume de cod diferite. Astfel, avem procesoare Core 2 Duo „Conroe" şi Core 2 Duo „Wolfdale". Producătorii folosesc denumirile de cod pe durata dezvoltării produsului până când denumirea comercială rămâne definitivă. Pentru specialişti, aceste denumiri dezvăluie tehnologia folosită pentru fabricarea procesorului. Astfel, un model „Conroe" foloseşte tehnologia de fabricaţie pe 65 nm, având 4 MB de memorie cache. Succesorul acestuia, „Wolf-dale" este fabricat pe 45 nm şi dispune de 6 MB de memorie cache.

În acest moment, Intel se află în faţa AMD din punct de vedere tehnologic. Cel mai rapid procesor Intel este în mod evident mai performant decât cel mai rapid procesor AMD. Dar şi mai scump: în cazul procesoarelor quad-core, Intel are şase modele mai scumpe de 3000 de lei. Pe de altă parte, cel mai scump procesor AMD costă doar 700 de lei. Dacă nu foloseşti computerul decât pentru Internet, email şi programe Office, poţi să cumperi un calculator complet cu numai 1000 - 1500 de lei dacă alegi un model cu procesor AMD.

Procesoarele folosesc socluri speciale, diferite pentru fiecare model de procesor, fiind mai răspândite următoarele modele de socket-uri:

• socket 478: pentru procesoare Pentium 4 şi Celeron; • socket 775: succesorul socket-ului 478, este folosit pentru procesoare Pentium 4, Celeron,

Pentium D, Celeron D, Core 2 Duo Core 2 Quad şi Core 2 Extreme. • socket 754 şi 939: ambele au fost folosite de AMD pentru procesoarele Athlon64 şi Sem-

pron. în prezent nu se mai produc procesoare pentru aceste socket-uri.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

41

• socket AM2: a fost introdus de AMD ca înlocuitor al socket-ului 939. Este folosit pentru procesoare din familia Athlon64 şi Sempron de ultimă generaţie.

• socket AM2+: diferă foarte puţin de socket-ul AM2, astfel că procesoarele AM2 pot fi montate într-un socket AM2+ şi viceversa.

Noile procesoare însă, cum ar fi cele din gama Phenom, rulează mai rapid de pe un socket AM2+. Poţi afla ce soclu foloseşte placa de bază a calculatorului tău citind în manualul computerului sau al plăcii de bază. Dacă PC-ul este mai vechi,este foarte posibil să nu se mai producă procesoare compatibile cu acesta.

Procesorul accesează memoria internă (RAM) pentru a extrage datele de prelucrat şi instrucţiunile pe care trebuie să le execute. Cum decalajul dintre viteza de lucru a microprocesorului şi viteza de lucru a memoriei interne este considerabil, microprocesorul este nevoit să introducă nişte cicluri de aşteptare în plus, numite wait-state, pentru a citi sau scrie date din/în memoria internă. Pentru a se elimina acest inconvenient, se introduce între microprocesor şi memoria internă o memorie rapidă numită memoria cache care are rolul de a fi mai direct legată cu microprocesorul decât memoria RAM şi asigură, reducerea la minimum a timpului de aşteptare a microprocesorului şi eliberarea la maximum a bus-ului memoriei.

Memoria internă este diferită de memoria cache, cea internă este o memorie DRAM (Dynamic Random Access Memory), iar memoria cache, mult mai rapidă, este de tip SRAM (Static Random Access Memory), cu un timp de acces de 12 ns. Din memoria internă se va încarca în memoria cache, la o singură operaţie de citire, nu o singură instrucţiune, ci un "bloc" de instrucţiuni ce urmează a fi prelucrate apoi de procesor. Pe lângă faptul că este foarte rapidă, memoria cache este şi mai "inteligentă" decât memoria internă. Prin controller-ul său sunt identificate instrucţiunile cele mai utilizate de către procesor şi reţinută adresa lor (precum şi o copie a acestora) din memoria RAM, astfel încât, când procesorul solicită o anumită adresă, mai întâi se verifică dacă ea se află în cache şi numai atunci când nu este găsită, adresa este transferată mai departe prin magistrală la memoria RAM.

În cazul PC-urilor ce lucrau sub sistemul de operare MS-DOS (monotasking) se folosea un cache de nivel 1 (L1) direct integrat în processor, iar lucrul sub mediul WINDOWS presupune un volum mare de date preluat de procesor, ceea ce a determinat adăugarea unui cache de nivel 2 (L2) situat între procesor şi memoria internă. PC-urile actuale dispun de ambele niveluri de memorie cache, intern şi extern. Majoritatea procesoarelor dispun de un cache intern de 8KB sau 16 KB, iar memoria imediată externă (de nivel 2) de 128, 256, 512, 1024 KB şi chiar 4 sau 6 MB.

Există o memorie cache de nivel L3 ca o extra memorie a procesoarelor care au memoria L2, fiind situată pe placa de bază.

În realizarea procesoarelor s-au aplicat în timp două tehnologii diferite, în funcţie de setul de instrucţiuni implementate, tehnologiile CISC şi RISC.

Tehnologia CISC (Complex Instructions Set Computer), prima utilizată, a promovat ideea dezvoltării de calculatoare ale căror procesoare să includă instrucţiuni din limbaje de nivel înalt. Aceste procesoare sunt capabile să interpreteze peste 400 de instrucţiuni.

Tehnologia RISC (Reduce Instructions Set Computer) a fost utilizată pentru prima dată la realizarea arhitecturii SPARC propusă de firma SUN Microsystems. INTEL 8086 conţinea 29000 de tranzistori, putea adresa 1 MB de memorie, lungimea cuvântului era de 16 biţi, frecvenţa de ceas fiind de 4,7 MHz, iar viteza de calcul realizată era de 0,75 MIPS (milioane de instrucţiuni pe secundă). Acum se încheie prima generaţie de microprocesoare, cu I8088 şi I8086 şi începe seria X86.

În anul 1982 este lansat microprocesorul INTEL 80286, exponentul generaţiei a doua de microprocesoare, caracterizat prin frecvenţa de ceas cu valori între 6 şi 25 MHz, memorie adresabilă de 16MB, viteza de calcul de 2,66 MIPS, dotat cu un bus de adrese de 24 de biţi, care „înlătura" limitarea de l MB de memorie adresabilă a lui 8088 / 8086 (şi crea una nouă la 16 MB), şi cu un set extins de instrucţiuni care promitea rularea mai multor aplicaţii în paralel (multitasking).

În 1985 apariţia lui 80386DX a marcat trecerea la 32 de biţi atât a core-ului, cât şi a bus-ului, mărind astfel considerabil viteza procesorului în calculele cu numere mari şi permiţând nu doar apariţia aplicaţiilor pe 32 de biţi, ci şi adresarea unei zone de memorie de 4 GB, trecându-se la generaţiei a treia de microprocesoare. Corectarea adusă arhitecturii prin completarea setului de instrucţiuni de lucru în modul protejat deschide drumul sistemului de operare multitasking şi multiuser.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

42

Generaţia a patra, marcată prin apariţia în 1989 a lui 486, aduce reproiectarea nucleului Intel cu unele îmbunătăţiri. Arhitectura CISC, pe care se bazează x86, are instrucţiuni diferite ca număr de paşi şi complexitate. includerea pe cip a 8 KB de memorie tampon (cache), a dus la o scădere a timpilor morţi în care procesorul aştepta după memoria principală, iar integrarea on-die a coprocesorului marchează apariţia unui nou criteriu de selecţie a procesoarelor: performanţa în virgulă mobilă. O altă inovaţie importantă este folosirea multiplicatorului (fixat), care permite procesorului să ruleze la frecvenţă dublă (486DX2) sau chiar triplă (486DX4) faţă de frecvenţa plăcii de bază, aducând un spor considerabil de performanţă, dar şi o nouă problemă: lăţimea redusă a bus-ului procesor-chipset.

Procesorul care a definit a cincea generaţie - Pentium (P5 - 1993, P54 -1995) - a beneficiat de o lăţime dublă a bus-ului extern de date (64 biţi) şi de dublarea motorului de execuţie. Aceasta înseamnă că Pentium este primul procesor (x86) superscalar, capabil sa execute concomitent mai multe instrucţiuni. În 1987, Intel lansează noua versiune de Pentium (P55) cu suport MMX (MultiMedia eXtension), permiţând procesarea de către o singură instrucţiune a blocuri mari de date.

Procesorul Pentium Pro (P6 - 1995), care avea să deschidă generaţia a şasea, a apărut iniţial pentru piaţa de servere şi staţii de lucru high-end. Procesorul avea on-die între 256 KB şi 1 MB de L2 cache şi 16 KB de L1 cache, ambele operând la frecvenţa procesorului - mult peste cei 16 KB de L1 cache pe care îi avea În 1998 Intel lansează o versiune nouă a Pentium II care are procesul de producţie redus la 0,25 de microni şi foloseşte un FSB de 100 MHz. Spre sfârşitul anului 1999 Intel lansează o nouă versiune a lui Pentium III, numită Coppermine, produs în noua tehnologie de 0,18 microni, cu un cache L2 de 256 KB, inclus pe pastila de siliciu.

În 1999 AMD lansează procesorul Athlon, primul din generaţia a şaptea, bazat pe un nucleu nou extrem de eficient. Spre sfârşitul anului 2002, Intel prezintă noul Pentium 4 3,06 GHz, (nucleu Northwood), cu suport pentru o tehnologie HyperThreading, iar procesorul apare ca un dublet Pentium 4 în SMP (Symmetric MultiProcessing). Rezultatul este un sistem mai rapid şi cu timpi de răspuns mult mai mici în cazul efectuării unor operaţiuni ce folosesc intens procesorul.

Următoarea generaţie, a opta este realizată în ultima perioadă şi se bazează pe procesoarele cu 2, 3, 4, 6 sau 8 nuclee de procesoare încorporate într-unul. Nu toate nucleele (core) sunt activate şi utilizate şi utilizate încă.

Pentru procesoarele ultimelor generaţii de sisteme de calcul sunt utilizate tehnologii de fabricaţie şi miniaturizare a componentelor elecronice la 0,18, 0,25 şi 0,35 microni (firul de păr are 25 de microni, adică de 100 de ori mai mult). Din 2002, cu nucleul Thoroughbred s-a trecut la a doua generaţie de Athlon XP, cu tehnologia de fabricaţie de 0,13 microni. Prin trecerea la tehnologia de 0,13 microni şi tehnologia Hyper-Threading, s-au lansat noile procesoare Prescott de la Intel, cu numele Pentium 4E (iniţial au fost 5 variante diferite) şi cu alte două procesoare: Pentium 4 EE şi Pentium 4 "Northwood" la 3,4 GHz. De la începutul anului 2004 nucleul Prescott a reprezentat trecerea la procesul de fabricaţie de 0,09 microni. Când Intel a lansat procesorul Prescott (toată lumea se aştepta la Pentium 5, dar iată că cei din Santa Clara n-au considerat că este cazul să facă şi o astfel de schimbare), cu scopul înlocirii vechiul „core" Northwood. În cadrul tendinţelor de miniaturizare producătorii de procesoare îşi propun să ajungă la litografia de 65 nm (nanometri), cu o frecvenţă de lucru de 10 GHz şi un consum de cca. 0,85 V şi la litografia de 20 nm, cu 20 GHz şi 0,7 V în 2008-2009.

2.4.2. Componentele calculatoarelor

În interiorul calculatorului personal se găsesc următoarele componente: 1. Sursa de alimentare: Toată electricitatea intră în calculatorul prin această cutie protejată, din

metal, în interiorul ei, un transformator converteşte curentul care provine de la prizele standard în tensiuni şi fluxuri de curent necesare pentru diferitele componente al calculatorului. Toate celelalte componente, de la placa de bază până la hard disc, primesc curent prin intermediul conductorilor ce sunt cuplaţi în conectori protejaţi din plastic.

2. Carcasa: De regulă din metal sau plastic, carcasa (sau şasiul) protejează componentele interne ale caiculatorului de praf şi lovituri.

3. Discul flexibil: Discurile flexibile, asemenea discurilor Zip sau Jaz, oferă cantităţi mai mari de spaţiu flexibil de stocare decât dischetele. Adesea, ele nu sunt suficient de rapide pentru a rula

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

43

programe de o manieră satisfăcătoare, dar permit arhivarea documente vechi sau utilizate rar şi să efectueze backup-ul datelor curente.

4. Unitatea CD-ROM, foloseşte o rază laser pentru a citi date dintr-o spirală de crestături şi zone plate aflate pe un strat al unui disc compact, asemănătoare cu discurile compacte muzicale. Majoritatea programelor sunt distribuite, pe CD-uri, care pot conţine aproximativ 650MB de date (700MB, iar mai recent 800MB).

5. Unitatea CD-ROM/DVD, apare tot mai des la noile calculatoare personale, un DVD (digital versatile disk) ia locul unui CD-ROM. DVD-ul foloseşte, de asemenea, un laser pentru a citi date de pe un disc care arată precum un disc compact obişnuit. Dar datele sunt mai compacte şi sunt stocate pe mai multe straturi de pe disc, oferind discului DVD o capacitate de stocare de 8 până la 17 GB, adică informaţii care, dacă ar fi pe hârtie tipărită, ar umple zece camionete. Unităţile DVD pot citi, de asemenea, CD-ROM-uri.

6. Unitatea de bandă, este o unitate de bandă de backup nu furnizează accesul aleatoriu necesar pentru operaţiunile zilnice de stocare. Unităţile de bandă sunt folosite pentru a efectua, de o manieră necostisitoare, backup-ul hard disc-urilor de mare capacitate, din motive de securitate.

7. Hard discul, este principalul depozit - sub forma unor înregistrări magnetice pe platane dure şi subţiri - al programelor şi documentelor, conţinând fişierele sistem care permit calculatorului să pornească.

8. Unitatea de dischetă: Majoritatea dischetelor conţin 1,44 MB de date, echivalentul a 500 de pagini de text tipărit. Unitatea de dischetă reprezinta metoda de efectuarea de copii de rezervă ale fişierelor, în căzul în care se întâmplă ceva cu fişierele originale de pe hard disc.

9. Controlerele IDE: De regulă construite pe placa de bază, sunt două sloturi IDE care furnizează conexiuni pentru cablurile care trimit semnalele ce controlează unitatea de dischetă, hard discul şi unitatea CD-ROM.

10. Slotul de extensie AGP: Portul de grafică accelerată furnizează plăcilor grafice 3D un acces rapid la memoria principală a calculatorului personal.

11. Slotul de extensie PCI (peripheral component interconnect, interconectare componente periferice) sunt concepute pentru plăci care folosesc tehnologia Plug and Play, un design hardware care permite plăcilor să se adapteze automat la calculatoarele personale.

12. Placa video: Transformă informaţiile din imagini în diferiţi curenţi electrici necesari pentru afişarea unei imagini pe monitor.

13. Placa de sunet, conţine circuitele pentru înregistrarea şi reproducerea de sunete multimedia. 14. Memoria RAM: Memoria cu acces aleatoriu este o colecţie de microcipuri în care

calculatorul stochează programe şi date în timp ce le foloseşte. Atunci când calculatorul este oprit, conţinutul memoriei RAM se pierde.

15. Real-time clock este un cristal care vibrează în această componentă, stabilind ritmul, sincronizează activitatea tuturor celorlalte componente.

16. CMOS, este un tip special de cip de memorie care foloseşte o baterie de mici dimensiuni pentru a păstra informaţiile despre configuraţia hardware a calculatorului personal chiar şi atunci când calculatorul este oprit.

17. Sistemul de intrare/ieşire de bază (BIOS): Dacă procesorul este creierul calculatorului personal, sistemul de intrare/ieşire de bază este inima lui. Este format din unul sau două cipuri care definesc personalitatea (sau individualitatea) calculatorului.

18. Bateria CMOS-ului: Arareori are nevoie de încărcare, dar se recomandă crearea unui fişier backup al informaţiilor conţinute în cipul CMOS.

19. Microprocesorul, este o colecţie îngustă şi complexă de tranzistori aranjaţi astfel încât să poată fi folosiţi pentru procesarea datelor.

20. Heat sink: Deoarece microprocesoarele produc multă căldură, un heat sink este folosit pentru a disipa căldura, astfel încât, componentele interne ale cipului nu se topesc.

21. Ventilatorul, atrage aer rece deasupra componentelor sensibile la căldură din interiorul carcasei. Trebuie verificată funcţionarea corectă a ventilatorului.

22. Porturile USB (universal serial bus) sunt o soluţie la lipsa de întreruperi şi resurse de sistem a calculatoarelor personale şi permite programelor să se conecteze direct la dispozitivele periferice.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

44

23. Portul mouse-ului, numit port PS2, este standard pentru calculatoarele personale mai noi. Calculatoarele personale pot utiliza un mouse care se conectează la un port serial.

24. Portul tastaturii: Tastaturile sunt de regulă separate de locul unde este adăpostită unitatea centrală de prelucrare şi se conectează la un mini-port. La sistemele mai vechi, conectarea tastaturii se poate face printr-un port de dimensiuni mai mari, rotund şi cu cinci pini.

25. Portul paralel, este folosit pentru conectarea unei imprimante, dar şi unele discuri şi alte dispozitive periferice pot fi ataşate la acest port.

26. Porturile seriale: Majoritatea calculatoarelor personale au două porturi seriale. Un calculator personal poate avea patru porturi seriale, dar într-un anumit moment nu pot fi folosite decât două.

27. Conexiunile plăcii de sunet: Mufele externe de pe placa de sunet permit conectarea unui microfon, boxe sau o sursă de sunet externă.

28. Modem-ul, conectează calculatorul personal cu o linie telefonică, astfel încât se pot accesa servicii de informaţii şi Internet-ul.

2.4.3. Memoria internă

Memoria internă reprezintă o componentă importantă a microcalculatorului, având rolul de a

stoca date şi programe. La rândul său, memoria este formată din două componente, prezentând caracteristici funcţionale şi constructive diferite: memoria internă şi memoria externă.

Memoria internă, care face parte alături de microprocesor din unitatea centrală, se caracterizează prin capacităţile relativ reduse de stocare (în raport cu memoria externă), dar are o viteză de acces la date foarte mare. Rolul ei este de a stoca, la un anumit moment, programe ale sistemului de operare (acestea se încarcă în memoria internă în momentul pornirii calculatorului), programe de aplicaţie şi datele supuse procesului de prelucrare. Constructiv, memoria internă este formată din circuite electronice. Memoria externă are rolul de a stoca în mod permanent date şi programe.

Ea se caracterizează prin capacitatea de stocare deosebit de mare, dar o viteză mult mai mică de acces la date. Ea comunică cu unitatea centrală prin intermediul magistralei de date şi înglobează hard disc-ul, discurile floppy, banda magnetică, CD ROM-ul etc.

Microcalculatoarele ce lucrează sub unele sisteme de operare (nu este cazul sistemului de operare MS DOS) utilizează memoria virtuală, care reprezintă parţi ale discului hard, utilizate pentru a simula memoria internă (RAM). Se realizează astfel stocarea unor zone masive de memorie RAM într-un fişier pe disc (swap file), eliberându-se astfel memoria RAM reală, ce poate fi utilizată acum pentru alte lucrări. La nevoie se poate realiza restaurarea, în RAM- ul real, a memoriei salvate pe disc. Apelul la memoria virtuală se justifică în cazul PC-urilor care nu dispun de suficientă memorie RAM.

Memoria internă poate fi considerată ca a doua componentă a calculatorului în ordinea importanţei după procesoare.

Fizic, memoria internă este compusă din circuite integrate ce pot prezenta tehnologii constructive diferite, asigurând particularităţi în ceea ce priveşte natura accesului la datele stocate.

Elementele ce caracterizează memoria internă sunt: 1. Capacitatea (dimensiunea) memoriei interne măsurată în KB. Această caracteristică este,

bineînţeles, dependentă de microprocesorul folosit. Oricum, performanţele microcalculatorului cresc exponenţial o dată cu sporirea dimensiunii memoriei interne.

2. Timpul de acces reprezintă intervalul de timp necesar unui circuit de memorie să localizeze un bit de informaţie. Un alt parametru este reprezentat de timpul maxim de răspuns, reprezentat de intervalul de timp ce se scurge din momentul în care se primeşte de la procesor comanda de citire şi momentul în care depune pe magistrala de date valoarea citită (similar pentru operaţia de scriere). Timpul maxim de răspuns se măsoară în nanosecunde (ns) şi depinde de tehnologia de construcţie a cipurilor de memorie.

3. Modul de organizare şi adresare. Memoria internă este organizată sub forma de locaţii de memorie (de dimensiuni egale) în care sunt memorate cuvinte de n biţi (n = 8). Rezultă deci că într-o locaţie de memorie poate fi stocat un octet. Octetul este cea mai mică unitate adresabilă. Unitatea adresabilă imediat următoare este cuvântul. El este format din 2, 4 sau 8 octeţi (cuvântul de 8 octeţi este întâlnit în cazul supercalculatoarelor: ex. CRAY).

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

45

Un calculator utilizează două tipuri fundamentale de memorie: RAM (Random Access Memory -memorie cu acces aleator) şi ROM (Read Only Memory -memorie permiţând doar operaţii de citire). Aceste două tipuri de memorie se deosebesc atât constructiv, cât şi din punct de vedere al funcţiei pe care o îndeplinesc.

Memoria RAM este alcatuită din circuite integrate foarte mici, fiind organizată sub forma unei matrice de celule de memorie, fiecare celulă stocând un bit. Datele stocate se regăsesc rapid prin indicarea rândului şi coloanei la intersecţia cărora se află celula. Memoria RAM serveşte la stocarea datelor şi programelor aflate în curs de execuţie. Permite efectuarea atât a operaţiilor de scriere, cât şi a celor de citire şi este o memorie volatilă, adică îşi pierde conţinutul o dată cu oprirea calculatorului.

Memoria ROM (Read Only Memory) este o memorie permanentă şi permite-numai operaţii de citire. La nivelul ei sunt implementate programe de firmă (firmware) ce oferă informaţii fundamentale pentru calculator: programul de test al componentelor calculatorului ( executat în momentul pomirii sistemului de calcul), programul BIOS (Basic Input Output System), reprezentând sistemul de bază pentru operaţii intrare-ieşire etc.

Dacă cipurile de memorie ROM sunt programate doar de firma producătoare şi nu pot fi şterse/modificate de către utilizator, există variante de memorie ROM ce pot fi programate/reprogramate de utilizator (stocând bineînteles alte tipuri de informaţie):

• PROM (Programmable Read Only Memory): reprezintă o memorie permanentă programabilă o singură dată de către utilizator. Se realizează pe acelaşi mediu fizic ca şi ROM-ul (pastila de siliciu), dar odată programată de utilizator informaţia nu mai poate fi ştearsă; • EPROM (Erasable Programmable Read Only Memory): memorie permanentă

programabilă ce poate fi ştearsă şi reprogramată de către utilizator; • EEPROM (Electrically Erasable Programmable Read Only Memory): memorie

permanentă ce poate fi reprogramată în mod repetat de către utilizator. Memoria de tip RAM. Există două tehnologii utilizate în realizarea memoriei RAM, dinamică

şi statică: DRAM (Dynamic RAM) şi SRAM (Static RAM). Tehnologia DRAM este cea mai folosită în arhitecturile actuale pentru realizarea memoriei

principale a calculatorului, permiţând stocarea temporară a datelor şi programelor aflate în execuţie. Apelativul de RAM dinamic provine de la necesitatea reîmprospătării de sute de ori pe secundă a conţinutului său, acest lucru datorându-se faptului că fiecare celulă de memorie este concepută ca un mic condensator ce stochează sarcina electrică. Tipurile de memorii DRAM utilizate la ora actuală sunt: FPM (Fast Page Mode), EDO (Extended Data Out), SDRAM (Synchronous DRAM). Caracteristica comună a acestor tipuri de memorie RAM este prezentată de facilitatea de a lucra în pagini de memorie. O pagină de memorie reprezintă secţiunea de memorie disponibilă prin selectarea unei adrese de rând. Modulele de memorie RAM de tip FPM şi EDO erau utilizate pentru procesoarele generaţiilor patru, cinci şi şase, dar prezintă dezavantajul modului de lucru asincron.

În implementarea hard a memoriei interne s-a renunţat la ideea cipurilor de memorie individuale, promovându-se utilizarea unor module de memorie SIMM (Single de In-Line Memory Modules) ce sunt tratate ca un cip de memorie la capacitate foarte mare. Altă soluţie pentru modulele de memorie o reprezintă DIMM-ul (Dual In-Line Memory Modules), care a fost utilizat iniţial în cazul sistemelor MacIntosch şi apoi pentru PC- uri ce prezintă pe placa de bază socluri corespunzătoare. După cum îi arată şi numele, DIMM este echivalentul unei perechi de SIMM-uri, dar foloseşte mai puţin spaţiu.

SRAM-ul foloseşte tot un sistem matriceal de reţinere a datelor, dar în raport cu DRAM-ul este de cinci ori mai rapidă, de două ori mai scumpă şi de două ori mai voluminoasă. De aceea este folosit pentru realizarea memoriei cache. Conceptual, SRAM-ul este diferit de DRAM, deoarece este gândit ca un circuit bistabil (Inchis/deschis), fiind astfel mai rapid decât DRAM-ul.

Utilizarea memoriei RAM. Sistemul de operare MS-DOS gestionează doar primul megaoctet de memorie RAM. Acest prim megabyte de memorie este structurat în două părţi distincte, având roluri diferite: memoria convenţională (ce ocupa primii 640Kb) şi memoria superioară (ocupând spaţiul rămas până la limita de 1MB). Limita dintre (memoria convenţională şi memoria superioară poartă numele de bariera DOS

Rolul memoriei convenţionale (numită şi memorie inferioară) este de a stoca datele şi programele aflate în execuţie. Cum executarea programelor de aplicaţie nu se poate realiza fără

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

46

utilizarea programelor care formează sistemul de operare, înseamnă că o parte din acestea din urmă se vor stoca în această zonă. Este vorba de procesorul de comenzi (Command.com) al cărui rol este de a interpreta comenzile DOS şi de a le lansa în execuţie, de rutina BIOS, precum şi de o serie de programe numite drivere al căror rol constă în asigurarea comunicării sistemului de operare cu unităţile periferice (deci va exista un driver pentru imprimantă, unul pentru scanner, unul pentru mouse etc.).

Memoria superioară (High Memory) este rezervată sistemului de operare MS-DOS. Primii 128 Kb formează memoria RAM video ce reţine semnalele electronice care conţin imaginea a ceea ce se afişează pe ecran. În realizarea memoriei RAM video se utilizează tehnologia VRAM sau WRAM. VRAM -Video Random Access Memory -este o memorie video cu acces aleator. Este volatilă şi face parte din sistemul video al calculatorului, alături de procesorul video şi de magistrala utilizată. Imaginea pe care o stochează -text sau grafică- urmează a fi afişată de o placă specială numită adaptor video. Datorită timpilor de acces destul de mari ce caracterizează cipurile memoriei ROM BIOS (de pe placa de bază şi plăcile adaptoare), unde sunt stocate multe din driver-ele cele mai utilizate, se utilizează metoda ROM Shadowing (duplicarea memoriei ROM). Această metodă, permite ca programele aflate în memoria lentă ROM să fie mutate în memoria RAM (superioară), mult mai rapidă. Duplicarea se realizează prin utilizarea unităţii de gestiune a memoriei (MMU -Memory Management Unit). În zona memoriei superioare pot ramâne neutilizate unele zone ce pot servi pentru încărcarea unor drivere de dispozitive periferice în vederea eliberării unei părţi a memoriei convenţionale.

Memoria extinsă (XMS) reprezintă zona de memorie aflată peste graniţa celor 1MB de memorie. Când procesorul lucrează în mod real, el poate accesa doar primul megabyte de memorie. Pentru a accesa memoria aflată peste această limită (de 1MB) procesorul trebuie să lucreze în mod protejat (mod de lucru implicit pentru procesoarele moderne). La calculatoarele prezentând procesoare 286 şi 386SX, limita memoriei extinse ajunge la 16MB, iar în cazul procesoarelor 386DX, 486 şi Pentium, până la 4GB.

Zona de memorie înaltă (High Memory Area), ocupă primii 64K din memoria extinsă şi poate fi utilizată pentru a încărca drivere de dispozitive periferice şi programe rezidente în memoria conventională. În cazul sistemului de operare MS-DOS, prin încărcarea unui driver XMS (de exemplu Himem.sys) şi completarea fişierului config.sys cu linia DOS = HIGH se poate muta nucleul sistemului de operare în HMA. Se eliberează astfel 45KB în zona memoriei convenţionale ce pot fi puşi la dispoziţia programelor de aplicaţie.

Memoria expandată (Expanded Memory Specification -EMS), ca şi memoria extinsă, nu poate fi folosită pentru rularea programelor, ci doar pentru stocarea temporară a acestora. Spre deosebire de memoria convenţională sau memoria extinsă, memoria expandată nu poate fi accesată direct de procesor. Memoria CMOS (Complementary Metal-Oxide Semiconductor), este o memorie RAM mai deosebită. Ea permite citirea şi scrierea informaţiilor stocate şi are caracter nevolatil. Ea consumă mult mai puţin decât celelalte memorii RAM şi este alimentată în mod permanent de o baterie (chiar când calculatorul este oprit). Acest lucru face ca timp de 2-3 ani informaţia să fie păstrată chiar dacă sistemul nu va fi pornit. Ea conţine o serie de informaţii deosebit de importante: tipul monitorului, tipul şi mărimea discurilor, data şi ora curentă etc.

În figura 2.2. este prezentată schematic memoria internă a unui sistem de calcul

Figura 2.2. Memoria internă a unui sistem de calcul

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

47

2.4.4. DISPOZITIVE PENTRU MEMORIA EXTERNĂ

Datele şi programele necesare pentru realizarea unui proces de prelucrare sunt încărcate în memoria RAM. Dar memoria internă prezintă o capacitate mică e stocare şi este volatilă. De aceea rolul de a stoca în mod permanent volume mai mari de date şi programe revine memoriei externe.

Toate colecţiile de date şi programele sunt înregistrate pe suporturi tehnice de date, de unde pot fi regăsite şi încărcate în memoria internă prin intermediul unor echipamente specializate.

Suportul tehnic de date reprezintă un mediu material pe care informaţiile sunt stocate şi reprezentate într-o manieră care le face accesibile perceperii lor automate de către echipamente specializate în acest sens. Suporturile tehnice de date se mai numesc memorii de masă tocmai datorită particularităţii lor de a stoca pe timp nelimitat volume mari de date. Acest termen generic de memorie de masă înglobează toate tipurile de memorie externă: hard disk, floppy disk, bandă magnetică, CD-ROM, etc. În configuraţia PC-ului se vor regăsi dispozitive ( echipamente ) care vor permite citirea/scrierea în/din aceste suporturi tehnice de date (unitatea de floppy disk, unitatea de hard disk, unitatea CD etc.).

Suporturile tehnice de date pot fi clasificate după următoarele criterii: Modul de reutilizare a suporturilor în procesul prelucrării. Dacă în perioada de început a

prelucrării automate a datelor clasificarea se rezuma la delimitarea suporturilor nereutilizabile (folosind ca mediu de stocare hârtia -cartela perforată, banda de hârtie perforată -ce nu permiteau înregistrarea datelor pe acelaşi suport -principiul înregistrării fiind cel al magnetizării), astăzi, ca urmare a generalizării tehnicilor magnetice şi optice de înregistrare a datelor, clasificăm suporturile în: read-only (oferind doar sibilitatea de citire-cazul CD-ROM-urilor) şi read-write ce dispun de posibilitatea de citire şi cea de rescriere a informaţiei.

Tehnica utilizată pentru înregistrarea datelor. La ora actuală, tehnicile utilizate au la baza principiul electromagnetic şi principiul optic (pe baza de laser), deci suporturile sunt de două categorii: magnetice şi optice.

Modalitatea de acces la date. După acest criteriu, suporturile pot fi clasificate în: -adresabile: care permit accesul direct la înregistrările dorite (hard disc, floppy disk etc. ); -neadresabile: care permit doar acces secvenţial la date (în ordinea în care au fost depuse

pe suport, de exemplu banda magnetică). Posibilitatea montării de noi suporturi pe aceeaşi unitate periferică (dispozitiv):

-suporturi amovibile (floppy disk, CD-ROM, discul Bernoulli, cititor de cartele magnetice, etc.) -suporturi fixe (hard disk-ul).

În continuare sunt prezentate principalele dispozitive pentru memoria externă. UNITĂŢI DE DISCURI MAGNETICE Reprezintă echipamente ce permit stocarea (şi regăsirea) datelor la nivelul suporturilor de tip disc

magnetic. După tipul de disc utilizat ele se clasifică în: - unităţi de hard disk, - unităţi de floppy disk, - unităţi de disc amovibil. a) Unităţile de hard disk (HDD) reprezintă principalul dispozitiv de memorare de mare

capacitate, memorie non-volatilă, mediu de stocare pentru documentele, fişierele sau aplicaţiile utilizatorului. Mai este cunoscut şi sub numele de disc dur (din cauza caracterului rigid al discurilor care îl formează), disc WINCHESTER sau disc fix (datorită faptului că nu prezintă caracter amovibil). în 1954 IBM a inventat primul hard-disk cu o capacitate de 5MB împărţită pe 24 de platane. Cu 25 de ani mai târziu cunoscutul producător de HDD-uri, Seagate introduce pe piaţă primul HDD pentru calculatoare personale, capabil să înmagazineze până la 40 MB, ajungând la rate de transfer de 625 KBps folosind modul de codare MFM (Modified Frequency Modulation). Acest mod de codare era folosit de vechile FDD-uri (floppy disk drive) sau sisteme de înmagazinare de date.

Componentele de bază ale unităţilor de hard disk sunt reprezentate de: -pachetul de discuri (platane); -capetele de citire/scriere; -mecanismul de antrenare a capetelor;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

48

-motorul pentru antrenarea pachetului de discuri; -placa logică; -conectori; -masca frontală. Discurile din interiorul carcasei se numesc platane şi sunt compuse dintr-un substrat şi un mediu

magnetic. Substratul sau materialul de bază din care este făcut platanul trebuie, prin natura lui, să fie un material non-magnetic capabil să fie prelucrat în forme foarte subţiri (grosimea acestor platane este de ordinul milimetrilor sau chiar mai mici). Astfel, materialele alese pentru realizarea platanelor sunt aluminiul sau o mixtura între sticlă şi un material ceramic. Ambele părţi ale platanului sunt acoperite cu un strat subţire de material cu proprietăţi magnetice foarte bune sau cu un strat metalizat foarte subţire. Platanul este de fapt suportul magnetic pe care se stochează datele cu diametrul de 5.25", 3.5", 2.5", l.8" şi 1.3", cele mai întâlnite fiind de 3.5", iar cele mai mici pentru sistemele portabile. Interiorul hard-disk-ului trebuie ferit de acţiunea prafului, presiunea constantă a aerului din interior fiind păstrată cu ajutorul unor filtre. Platanele sunt complet izolate fiind menţinute într-un vacuum parţial. De regulă există două sau trei platane aşezate unul peste altul şi fixate de un ax ce roteşte tot ansamblul de platane la mii de rotaţii pe minut (3600, 10000, 15000 Rpm). Controllerul de disc se ocupă de tot mecanismul din interiorul hdd-ului: de capetele de citire, de viteza de rotaţie a platanelor sau de reîmprospătarea memoriei tampon.

Capul citire-scriere reprezintă "translatorul", cel care prelucrează informaţia de pe platane, aşa cum se află ea în format digital şi o transferă la controllerul de disc, existând câte un cap de citire/scriere pentru fiecare dintre părţile platanului acestea fiind acţionate simultan, prin intermediul unui modul electro-magnetic, de către braţul de mişcare în vârful căruia se află. Capetele sunt concepute să atingă discul numai când platanele s-au oprit iar "parcarea" lor nu se face oriunde, ci într-o zonă specială numită LZ (Landing Zone).

Viteza de rotaţie (RPM) este una dintre caracteristicile principale ale HDD-ul, pentru că de ea depinde viteza de acces la datele de pe platane şi tot de ea depinde şi rata de transfer a informaţiei. cu cât viteza de rotaţie este mai mare cu atât capul de citire/scriere se deplasează mai repede şi mai multe date ajung să fie citite/scrise. viteza de rotaţie a platanelor este constantă, formatul CAV (Constant Angular Velocity -viteza unghiulară constantă). Viteza de rotaţie menţinută la hard-urile EIDE mai vechi, era până la 5400 RPM iar a hard-urilor SCSI era de 7200 RPM. în timp această viteză a tot crescut, atingând acum limitele de 7200RPM (pentru HDD-urile IDE) şi până la 12000 RPM (pentru cele SCSI). La alegerea unei unităţi hard există două variante: IDE sau SCSI (după tipul interfaţei folosite). IDE (Integrated Drive Electronics) este interfaţa des utilizată şi mai ieftină. Controfler-ul pentru astfel de unităţi este integrat pe placa de bază, ceea ce nu necesită achiziţionarea unei plăci suplimentare. O magistrală IDE suportă doar două unităţi - un master şi un slave. Ratele maxime de transfer pentru unităţile EIDE pot ajunge până la 100 MB/s şi chiar mai mult. SCSI (Small Computer System Interface) este în schimb mai rapid, oferind rate de transfer începând cu 10 MB/s - SCSI2 şi până la 80 MB/s - Wide Ultra-2 SCSI, permiţând conectarea de până la 7 sau chiar 14 dispozitive pe acelaşi controller.

Memoria tampon (cache) deţinută de fiecare unitate permite o viteză de acces, mai mare la date. Datele accesate sunt depuse în memoria tampon, iar în momentul în care se încearcă un nou acces, ele sunt obţinute direct din cache, cu cât mai mare este memoria cache, cu atât mai bună este performanţa.

Timpul de acces reprezintă timpul mediul exprimat în milisecunde în care capul de citire/scriere ajunge la sectorul pe care trebuie să îl scrie/ citească, acesta fiind calculat din momentul în care sistemul a emis cererea.

Rata de transfer (DTR - Data Transfer Rate) este rata de transfer a informaţiei între controllerul IDE şi procesor a hdd-ului, reprezintă viteza la care datele sunt transferate către sau dinspre suportul media (ne referim aici la platan), în general aceasta fiind calculată în MegaBytes pe secundă. Hard-disk-urile moderne au rate de transfer ce cresc o dată cu depărtarea de axul platanului. Caracteristicile legate de densitatea pe platanul harddisk-ului sunt: numărul de piste pe inch (Track Per Inch -TPI) şi biţi pe inch (Bits Per Inch-BPI). Pista reprezintă un inel cu centrul pe axul platanului. Hard-disk-uri performante au ajuns la un timp de acces de 7ms şi o latenţă medie de 3ms, în timp ce rata de transfer se apropie foarte mult de 20MB/sec. Tehnologia de citire/scriere a capului este bazată pe tehnologia

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

49

voltajului inductiv produs atunci când un magnet permanent (disc-platanul), este aflat sub influenţa unui modul electromagnetic (capul citire/scriere).

La formatarea discului, fiecărui sector îi sunt create (asociate) zone suplimentare necesare controller-ului pentru numerotarea sectoarelor şi pentru identificarea începutului şi sfârşitului de sector. Unitatea de transfer dintre periferic şi memoria tampon a calculatorului este reprezentată dintr-un grup de sectoare numite unităţi de alocare sau clustere. Dimensiunea clusterelor se stabileşte la formatare.

Formatarea HDD-ului reprezintă un proces în care se realizează definirea structurii fizice şi logice a suportului. Formatarea se realizează în trei etape:

• formatarea fizică sau formatarea de nivel inferior (low-level formatting); • partiţionarea • formatarea logică sau formatarea de nivel superior (high-level formatting).

Formatarea fizică este etapa la care pistele discului sunt împărţite în sectoare şi se scriu informaţiile în zonele ce preced sau succed fiecare sector, adică intervalul inter-sector şi intervalul inter-piste. Cei 512 octeţi la nivelul fiecărui sector, ce vor fi utilizaţi în procesul stocării datelor, vor primi valori fictive sau secvenţe de test. Numărul de sectoare definite la nivelul fiecărei piste este determinat de tipul de unitate HDD şi de interfaţa folosită de controller.

Noile unităţi HDD se caracterizează prin implementarea unei tehnici de înregistrare zonată (metoda de înregistrare pe zone se numeşte Multiple Zone Recording) care presupune gruparea cilindrilor pe zone consecutive (de la axul central spre exterior), numărul sectoarelor definite la nivelul cilindrilor dintr-o zonă fiind mai mare decât cel din zona precedentă. Acest lucru se datorează faptului că pistele aflate spre exterior sunt mai lungi. Limitările impuse de BIOS cer ca unitatea HDD să se comporte în relaţia sa cu sistemul ca şi când ar prezenta acelaşi număr de sectoare pe oricare dintre piste, acest lucru fiind posibil prin utilizarea unor algoritmi de translatare integraţi la nivelul controler-ului. Se pot defini 10 astfel de zone.

Partiţionarea reprezintă procesul de segmentare logică a HDD-ului în discuri logice numite partiţii (identificate prin indicativul lor D, E, F etc.). Fiecare partiţie poate fi utilizată deci ca o unitate HDD distinctă şi deci se poate realiza instalarea de sisteme de operare diferite la nivelul fiecărei partiţii (disc logic). Fiecărui sistem de operare îi este specific un anumit sistem de fişiere. În cazul sistemelor de operare specifice PC-urilor sunt caracteristice trei sisteme de fişiere:

• FAT (File Allocation Table -Tabela de alocare a fişierelor) -este recomandat din motive de compatibilitate şi reprezintă sistemul de fişiere standard pentru sistemele de operare DOS, OS/2 şi WINDOWS NT. Acceptă nume de fişiere din maxim 8 caractere (şi o extensie de 3 caractere). FAT 32 este un nou gestionar de fişiere pentru WINDOWS '95, '98, Me şi XP, cu avantajul oferit faţă de FAT16 (caracteristic pentru sistemul de operare MS-DOS) că gestionează hard-disk-uri ce depăşesc capacitatea de 2 GB fără să fie necesară partiţionarea acestuia.

• HPFS (High Performance File System) reprezintă sistemul de fişiere de tip UNIX accesibil numai sub OS/2 şi WINDOWS NT . Numele fişierelor pot avea până la 216 caractere, iar mărimea volumelor este de maxim 8GB.

• NTFS (Windows NT File System). Este tot un sistem de fişier de tip UNIX, dar accesibil numai sub sistemul de operare Windows NT, XP şi Vista.

Trebuie subliniat faptul că indiferent de sistemul de fişiere, softul de partiţionare scrie un program special folosit pentru pornirea calculatorului (boot) şi o tabelă de partiţii, pe primul sector de disc (sectorul de boot).

Formatarea logică reprezintă etapa în care are loc o organizare a partiţiei în conformitate cu cerinţele sistemului de operare.

În cazul partiţiilor FAT structura discului este rezentată în figura 2.3.

Figura 2.3. Structura unui disc magnetic

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

50

Zona BOOT se regăseşte la nivelul primului sector (sector 0) al partiţiei MS- DOS şi stochează programul încărcător al sistemului de operare. Informaţia stocată aici este deosebit de valoroasă şi se referă la: dimensiunile sectoarelor, numărul sectoarelor pe disc, numărul de sectoare pe pistă, dimensiunea unui cluster etc.

Zona FAT (Tabloul de alocare a fişierelor) reţine informaţia privitoare la modul de alocare a spaţiului disc. Unitatea de evidenţă este clusterul (format din 2-16 sectoare ). Din motive de securitate un disc poate conţine 2 zone FAT .

Zona ROOT.Dir (directorului rădăcină) stochează informaţiile privitoare la intrările în directorul rădăcină (fişiere şi subdirectoare ): numele fişierelor/subdirectoarelor; tipul, dimensiunea, data şi ora creării/actualizării fişierelor etc.

Zona utilizator reprezintă spaţiul pus la dispoziţia utilizatorului pentru stocarea fişierelor. Unităţile HDD se leagă de magistrala calculatorului prin intermediul unei interfeţe sau controler. Interfaţa cu HDD poate asigura conectarea a 2 sau 4 HDD-uri. Cele mai eficiente controlere sunt cele integrate în placa de bază, şi asigură cel mai rapid transfer al datelor şi sunt configurate din BIOS.

Dintre principalii producători sunt de menţionat Western Digital, HITACHI, Maxtor, Seagate, Samsung, etc., care utilizează interfeţe SATA 150, ATA 133, Ultra ATA 100 ş.a. La ora actuală HDD-urile prezintă capacităţi de ordinul zecilor până la 250, 400, 500 GB şi 1000 GB (1TB). Hitachi a anunţat un hard disk de 3,5" cu 2 Terabytes pentru 2009.

Printre noutăţile intervenite în acest domeniu este de menţionat „înregistrarea magnetică perpendiculară”, tehnologie revoluţionară care măreşte semnificativ capacitatea de stocare a HDD-urilor realizată de Toshiba Corporation. Metoda se bazează tot pe stocarea datelor în biţi încărcaţi magnetic, însă, spre deosebire de tehnologia clasică, în care aceştia sunt dispuşi longitudinal (orizontal) pe suprafaţa discului, de aceasta dată biţii sunt dispuşi în plan vertical, perpendicular pe suprafaţă. Spaţiul ocupat este mult mai mic, iar capacitatea de stocare a discului este mai ridicată, un platan de 1,8 inch poate fi ridicat pană la 40 de GB. Primele produse ale companiei sunt HDD-urile MK4007GAL (40 GB la o grosime de 5mm) şi MK8007GAL (80 GB-cea mai mare capacitate de stocare atinsă la un factor de formă de 1,8 inch), care vor fi folosite pentru dispozitivele portabile de genul music player-elor. Densitatea de înregistrare pe cele două drive-uri este de 206 megabiţi pe milimetru pătrat, cu 37% mai mare decât în cazul HDD-urilor actuale. Acesta este un suport de stocare holografică, ce păstrează datele ca holograme tridimensionale, este confecţionat dintr-un material fotopolimer WORM, are o grosime de 1,5 mm şi este plasat între două discuri transmisive de plastic de 130 mm diametru.

b) Unităţile de disc flexibil (floppy disk); Inventarea unităţii de disc floppy, în 1967 este atribuită echipei de ingineri condusă de Allan

Shugart de la laboratoarele IBM din San Jose. Constructiv, unitatea floppy este formată din următoarele componente fizice:

-capetele de citire/scriere); -dispozitivul de acţionare a capetelor de citire/scriere; -motorul de antrenare a dischetei (suportului); -placa logică. Primele unităţi floppy disk au fost "simplă faţă", deci puteau lucra doar pe una din feţele

dischetei. Acum există doar unităţi "dublă faţă" ce prezintă două capete de citire/scriere. Cele două capete nu sunt plasate simetric (pe aceleaşi piste) pe cele două feţe.

Motorul de antrenare a dischetei asigură rotaţia dischetei la o turaţie 300 sau 360 de rotaţii pe minut (majoritatea unităţilor au o funcţie de 3 rotaţii/min).

O clasificare a acestor suporturi poate fi făcută utilizând următoarele criterii: a) Dimensiunea dischetei:

-dischete de 8 inch (primele apărute); -dischete de 5 ¼”; -dischete 3 ½”.

b) După numărul de feţe utilizate Configuraţiile calculatoarelor personale prezintă următoarele capacităţi ale dischetelor de 5¼” şi ale celor de 3 ½”:

-discheta simplă faţă (single side- SS); -discheta dublă faţă (double side- DS).

Primele dischete apărute au fost simplă faţă, astăzi nu sunt utilizate decât cele dublă faţă.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

51

c) După densitatea înregistrării datelor: -dischete dublă densitate (double density-DD); -dischete cu densitate ridicată (high density-HD); -dischete cu densitate extinsă (extra density-ED); -dischete cu densitate foarte înaltă (HIFD-FUJI-SONY -200 MB)

Cluster reprezintă unitatea de alocare a spaţiului disc şi este format din 1 sau mai multe sectoare. Mulţi specialişti consideră că un posibil succesor al dischetei de 3 ½” discul ZIP al firmei

Iomega, un suport magnetic prezentând capacităţi de stocare de până la l00 - 200 MB. Deoarece calculatoarele personale prezintă în configuraţie doar unităţi floppy de 3 ½", considerăm utile informaţiile cu privire la modul de organizare a acestora.

c) Unităţi de discuri amovibile Folosesc o tehnologie magnetică sau magneto-optică pentru înregistrarea/citirea datelor. Cele

mai raspândite unităţi magnetice -considerate şi standarde - sunt discurile ZIP produse de firma Iomega, discurile Bernoulli şi SyQuest. Discurile Bernoulli şi SyQuest permit acces direct la datele înregistrate pe suportul magnetic şi prezintă timp de acces şi o rata de transfer compatibilă cu cea a hard disk-urilor (discurile SyQuest realizează o rată de transfer de până la (2MB/secundă). Casetele pentru aceste unităţi de disc au capacităţi între 44 MB şi 1,3 GB.

Discul ZIP este o alternativă pentru stream-ere (unităţi de bandă magnetică), fiind utilizat mai ales pentru stocarea copiilor de siguranţă ale fişierelor. Discul ZIP este un mediu magnetic de stocare asemănător cu o dischetă de 3 ½”, prezentând capacităţi de stocare până la 100-200MB.

Iomega Rev este cea mai recentă încercare de a readuce în atenţia utilizatorilor zilele de glorie ale unităţilor Zip. Acestă unitate portabilă de stocare rezolvă problema întâlnită frecvent la hard disk-urile externe legată de pătrunderea particulelor de praf între capul de citire şi platan. Iomega foloseşte un dispozitiv special de închidere, un sistem de ventilaţie intern şi un filtru extern pentru reţinerea particulelor. Capacitatea de stocare este de 35 GB, însă cu ajutorul compresiei, realizabile cu ajutorul unui program livrat special se poate ajunge la 90 GB.

UNITĂŢILE DE BANDĂ MAGNETICĂ Unităţile de bandă magnetică regăsite în configuraţia PC-urilor mai sunt cunoscute şi sub numele

de stream-ere. Ele permit stocarea unui volum mare de date, de aceea sunt utilizate în mod deosebit pentru realizarea copiilor de siguranţă (ale fişierelor de date) sau pentru transferul unor volume mari de date de pe un calculator pe altul.

Citirea datelor se poate face doar secvenţial, adică în ordinea în care înregistrările au fost stocate la nivelul benzii. Benzile magnetice -realizate pe baza standardului QIC (Quarter-Inch Committee, Comitetul de Standardizare) -se prezintă sub forma de casete similare cu cele audio (din punct de vedere al mecanismului de funcţionare). Parametrii utilizaţi în caracterizarea unităţilor de bandă sunt:

-capacitatea de stocare; -viteza de transfer a datelor; -standardul folosit în înregistrarea datelor; -preţul unităţii şi al benzii. În urma procesului destandardizare s-au definit două tipuri de cartuşe (pentru bandă): -DC ( data cartridge) pentru casetele de 4 x 6 x 5/8 inch; -MC (minicartridge) pentru casetele de 3 1/4 x 2 1/2 x 3/5 inch. Benzile conforme standardului QIC au un suport magnetic pe bază de oxizi de fier, iar

modalitatea de înregistrare a datelor este asemănătoare cu cea folosită în cazul hard disk-ului. Pentru înregistrarea datelor pot fi utilizate două tehnici: MFM (Modified Frequency Modulation) şi RLL (Run -Length Limited). Standardul QIC-80 specifică nu doar tehnica de înregistrare, ci şi modul de structurare a datelor pe suport. Un alt standard utilizat este Travan, utilizând casete cu capacităţi de stocare între 400MB şi 4GB. Există şi unităţi de bandă nestandard pe casete VHS.

Pentru a putea utiliza benzi magnetice este nevoie de un program special de gestionare a datelor pe suport. Un sistem nou de stocare mid-level care combină discul şi bandă într-un dispozitiv unic a fost realizat recent de Advanced Digital Information (ADIC).

Sistemul se adaptează mediilor de backup existente, prezentându-se ca o bibliotecă virtuală care poate fi conectată direct cu acestea. Pathlight VX2.0 include disc drive-uri EMC CLARiiON ATA

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

52

pentru o performanţă ridicată de stocare, dar şi elemente bandă pentru capacitate, economie şi refacere în caz de dezastru. Stocarea pe disc poate varia între 2,8 TB şi 3,8 TB – în condiţiile unor costuri reduse cu 50%, cu stocarea pe bandă furnizată prin integrarea bibliotecilor ADIC Scalar şi Storage Tek L-Series. Configuraţiile single-library pot atinge o capacitate nativă de 2,823 TB şi 5,599 TB cu compresie normală.

UNITĂŢI DE STOCARE ELECTRONICĂ Memoria FLASH După cum am arătat, memoria este volatilă, informaţia dispare o dată cu

oprirea calculatorului; astfel a apărut necesitatea existenţei memoriei secundare, care să stocheze datele permanent. A apărut însă o altă problemă, referitoare la viteza mică de acces la un dispozitiv de stocare a datelor secundar, cum este un disc, o rată de transfer care este semnificativ mai mică decât viteza de acces a calculatorului la memoria internă. Pare de neimaginat că datele vor putea fi memorate cândva într-un chip de memorie nevolatilă (RAM nevolatil). O speranţă în acest sens a apărut în forma memoriei flash nevolatile. Chip-urile flash sunt utilizate în telefoanele celulare, camerele digitale şi MP3 player. Chip-urile memoriilor flash sunt produse în pachete asemănătoare cărţilor de credit şi necesită foarte puţină energie. Sunt întâlnite sub denumirile de CompactFlash card şi SmartMedia card şi ajung până la 16 GB.

UNITĂŢI DE STOCARE OPTICĂ Unitatea pentru CD-ROM (CD-ROM unit): realizată pentru a citi discurile de tip CD-ROM

(Compact-Disc Read Only Memory). Ele pot conţine următoarele tipuri de informaţii: date, muzică, secvenţe video. Informaţiile de pe un disc CD-ROM au un caracter permanent şi nu pot fi şterse. Există mai multe tipuri de unităţi CD-ROM: CD-Read Only Memory care permit doar citirea CD-urilor, CD-Read Write ReWrite care permit atât citirea cât şi scrierea sau rescrierea pe CD-uri. Există CD-uri pe care inscripţionarea se realizează în mod ireversibil (CD-Recordable) dar există şi CD-uri pe care inscripţionarea se poate realiza de mai multe ori (CD ReWritable).

Unitatea pentru discuri DVD (Digital Video Disk): următoarea generaţie de discuri CD-ROM sunt DVDurile, care permit stocarea şi redarea filmelor. Acest tip de unitate a fost lansată pe piaţă recent şi necesită o placă specială şi software aferent pentru a putea fi utilizată.

Unitatea de măsură standard pentru viteza de transfer este KB/sec. Aplicaţiile care folosesc tehnica video, animaţia şi sunetul necesită viteze mari de transfer al datelor. De aceea sunt preferate unităţile CD asigurând viteze de transfer de la150KB/sec, pentru primele tipuri de CD-ROM, la 55-66 MB/s pentru CD şi la 88 MB/s (pentru DVD 8x) sau 177 MB/s (pentru DVD 16x).

Timpul de acces (prezintă aceeaşi semnificaţie ca şi în cazul hard disk- ului) este de 350ms (milisecunde). Poziţionarea mecanismului de citire într-o zonă situată spre centrul CD-ului va necesita un timp de acces mai mic decât în cazul unei citiri dintr-o zonă plasată spre exteriorul CD-ului. Formatul utilizat în înregistratea datelor pe CD este CLV –Constant Linear Velocity (Viteză Liniară Constantă). Aceasta înseamnă că densitatea de înregistrare a datelor, e o constantă pe toată suprafaţa suportului. La citire/înregistrare cu viteza liniară constantă rotaţia discului este variabilă, micşorându-se sau accelerându-se în funcţie de poziţia informaţiilor astfel încât fluxul de date să ramână constant. Mai este utillizată şi metoda CAV – Constant Angular Velocity, folosită la majoritatea unităţilor noi şi rapide. Metoda CAV implică o viteză de rotaţie fixă a discului, viteza de transfer variază, astfel încât datele din zona exterioară a discului sunt transferate la o rată mult mai mare, faţă de datele înregistrate la interiorul discului.

CD -ROM-ul este o "dezvoltare informatică" a tehnologiei de realizare a CD-DA (CD Digital Audio). Discul are un diametru de 5 inch şi este acoperit cu o peliculă metalică formată dintr-un aliaj de aluminiu, prezentând proprietăţi reflectorizante. Pelicula metalică retine informaţia şi este acoperită de un alt strart cu rol protector.

Informaţia este înregistrată la nivelul pistei sub formă de spirală ce porneşte dinspre exteriorul spre centrul discului. În procesul înregistrării datelor este utilizat laserul, contactul acestuia cu suprafaţa discului conducând la producerea unor mici cavităţi (pits) de mărimi variabile în alternanţă cu spaţii plate (lands). Citirea informaţiei de pe disc are la bază principii optice. O rază laser de putere mică este dirijată spre suprafaţa discului, fapt ce va determina reflectarea acesteia. Intensitatea razei reflectate depinde de zona de disc cu care a luat contact -zona prezentând cavităţi sau zona plată. Un

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

53

receptor optic captează lumina reflectată şi deosebeşte zonele ce au determinat o reflectare puternică a luminii de cele în care lumina a fost slab reflectată sau chiar deloc reflectată (pit), trimiţând apoi semnalele electrice către microprocesor spre a fi "traduse" în date sau sunete.

Pentru inscripţionarea datelor se folosesc tehnicile de compresie şi combinare a informaţiilor, ADPCM (Adaptive Delta Puise Code Modulation) tehnică de compresie audio ce se bazează pe encodarea diferenţelor dintre valorile eşantioanelor, acestea fiind în general mici şi necesitând un număr mai redus de biţi şi Blue Book care este un standard pentru combinarea informaţiilor audio şi a datelor pe un acelaşi CD. Cunoscut şi ca CD-Extra şi CD-Plus.

CD -ROM XA (Extended Architecture), CD -ROM cu arhitectură extinsă, respectă standardul High Sierra şi aduce ca noutate utilizarea în procesul de înregistrare a tehnicii de întreţesere. Aceasta face ca sunete, imagini fixe, imagini video să poată fi stocate în alternanţă. Unităţile Compact Disk -Digital Audio (CD -DA) pot citi date şi înregistrări audio, iar primul sector conţine informaţia ce permite identificarea tipului de înregistrare.

Un CD -ROM stochează informaţia analogică (sunetele) în formă digitală, structurat în trei zone: a) zona Lead-In (plasată spre centrul discului), conţinând tabela de materii; b) zona datelor efective; c) zona Lead-Out (ocupă ultimul mm de disc). O secundă de sunet necesită 75 de sectoare, la nivelul discului existând între 270000 -330000 de

sectoare a câte 2352 octeţi fiecare. CD I (CD -interactiv) combină imagini video, imagini animate şi sunet de calitate superioară.

Unitatea CD-I nu este un simplu perireric, ci un adevărat calculator, conţinând un procesor MOTOROLA, o memorie RAM (1MB) şi un sistem de operare CD-RTOS (Compact Disk Real Time Operating System), fapt ce determină incompatibilitatea cu sistemele MS -DOS.

Foto CD sau unităţile foto CD permit vizionarea pe televizor sau pe monitorul PC-ului a imaginilor fotografice înregistrate pe CD-audio, cât şi pe foto CD-uri.

Unităţile DVD (Digital Video Disk) asigură performanţe audio şi video full-motion remarcabile, incluzând tehnologia full-CAV, unitatea DVD este compatibilă cu discurile CD-ROM, CD-RW care pot fi citite cu viteze foarte mari. Timpii de acces asiguraţi de unitatea DVD sunt de 210 ms pentru mediile DVD şi 130 ms pentru mediile CD-ROM. DVD înseamnă digital versatile sau video şi permite stocarea a peste 2 ore de secvenţe video ( capacitatea de stocare fiind de 4,7GB, iar în cazul ultimei versiuni de 17GB). Acest suport poate înlocui cu succes CD -ROM-ul pentru arhivări de date sau pentru distribuţia de soft şi a mediilor distractive. Începând cu anul 1998, multe sisteme sunt livrate cu unitate DVD-ROM ca echipament standard în locul unităţilor CD-ROM.

La începutul anilor '90, câteva companii au început să lucreze la dezvoltarea unui format care să înlocuiască bătrânul CD. Misiunea lor era să creeze un disc similar ca dimensiuni cu CD-ul, dar cu o capacitate de stocare mult mai mare.

DVD-R este un mediu care suportă o singură scriere, similar cu CD-R. DVD-RW reprezintă versiunea reinscriptibilă a lui DVD-R. Supotând până la 4,7GB de date, un

mediu DVD-RW poate fi inscripţionat de până la 1000 de ori. In 1997 a fost anunţat un nou standard, DVD+RW, care iniţial putea stoca 3 GB, însă a creascut la 4,7 GB.

DVD-RAM este tot un mediu reinscriptibii, însă spre deosebire de DVD-RW, care oferă acces secvenţial la date, acesta permite acces aleator. Un mediu DVD-RAM poate fi scris de până la 100.000 de ori. Producătorii DVD+ şi DVD- s-au unit sub standardului DVD-Dual, în timp ce conservatorii, susţinători ai formatelor DVD- şi DVD-RAM, s-au organizat sub formatul DVD-Multi.

Acum există trei standarde predominante DVD-R/-RW, DVD+R/+RW şi DVD±R/±RW. Formatul HD-DVD (High Definition – High Density-DVD) va dispune de o capacitate de stocare de patru ori mai ridicată. Discul optic de 4,7 inch poate stoca conform acestui standard până la 20 GB de date (pe o singură faţă), în comparaţie cu cei 4,7 GB ai discurilor existente în present. Formatul a fost dezvoltat în principal de companiile Toshiba şi NEC. Formatul cu cei mai mulţi susţinători este Blu-ray Disc, o soluţie pentru înregistrările video de înaltă definiţie. Sony a dezvoltat în paralel şi formatul Professinal Disc, iar compania britanică Plasmon a lansat un format propriu numit UDO (Ultra Density Optical), - adresat pieţei arhivării şi stocării datelor. Deşi cele patru formate sunt incompatibile tehnic, ele realizează un salt mare în privinţa capacităţii de stocare a datelor datorită utilizării tehnologiei de inscripţionare cu laser albastru. Lumina albastră sau violet are o lungime de undă de

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

54

400 nm, deci mai scurtă decât cea roşie (630-650nm), care este utilizată acum în sistemele CD şi DVD. Drept urmare raza laser lasă urme mai mici pe suprafaţa discului, deci fiecare bit de informaţie va ocupa un spaţiu mai mic, iar capacitatea de stocare a discului creşte semnificativ. Pentru a atinge o capacitate de 45GB pe o faţă a unui layer se preconizează să se utilizeze laserele UV (ultraviolet).

În continuare sunt prezentate câteva detalii tehnice şi specificaţii fizice ale actualelor şi modelelor noi de DVD-uri în tabelele 2.5. şi 2.6.

Tabelul 2.5. Detalii tehnice şi specificaţii fizice pentru DVD-uri

Nume COD Structura Capacitate [GB] DVD-5 Single side/Single layer 4, 7 DVD-9 Single side/Dual layer 8,54 DVD-10 Double side/Single layer 9,4 DVD-18 Double side/Dual layer 17,08 DVD-R Single or Double side/Single layer 3,95 / 7,9 DVD-RAM Single or Double side/Single layer 2,6 / 5,2

Tabelul 2.6. Caracteristici pentru DVD-uri din generaţia următoare

Format Profunzime

a datelor Culoare laser

Capacităţi simplu/ dublu strat

Rată de transfer

HD-DVD-9 0.6 mm Red(650nm) na/8.5G (ROM) 11 Mbps AOD 0.6 mm Blue(405nm) 15G / 30G (ROM).

20G/40G (recordable) 36 Mbps

Blue-HD-DVD-1 0.6 mm Blue(405nm) 17G / na 25.05 Mbps

Blu-ray 0.1 mm Blue(405nm) 27G / 50G 36 Mbps Blue-HD

DVD-2 0.1 mm Blue(405nm) 17G/na 31.59 Mbps

2.4.5. MAGISTRALE ŞI COMPONENTE INTERNE

MAGISTRALE DE COMUNICAŢIE Microprocesorul, memoria, diferitele cip-uri etc sunt implantate pe placa de bază. Principalul

circuit care conectează toate aceste componente se numeşte magistrală. Magistrala se poate compara cu un mănunchi de fire care conectează device-urile interne şi externe ale calculatorului la UCP. Aceste fire sunt împărţite în trei grupe: linii de adrese, linii de date şi linii de control. Liniile de adrese transportă semnalele care indică ce locaţii de memorie trebuie citite/scrise pentru a executa o anumită operaţie. Liniile de date servesc la transferul instrucţiunilor de program şi al datelor din memorie în UCP şi invers. Liniile de control transportă ordine de la UCP către alte componente ale calculatorului. O magistrală se caracterizează prin lărgimea sa şi prin frecvenţa la care funcţionează.

Un micro calculator prezintă următoarele tipuri de magistrale: -magistrala intrări/ieşiri I/O(Input/output); -magistrala de adrese; -magistrala memoriei. Magistrala I/O reprezintă magistrala principală a PC-ului, ea asigurând calea de comunicaţie

pentru majoritatea datelor din sistem. Pe acest bus sunt transmise datele din sistem, datele transferate/primite la/de la periferice (sistemul video, unităţile de disc, imprimanta).

Magistrala I/O trebuie să fie cât mai rapidă. Acest lucru este impus de: viteza procesoarelor, de cerinţele soft în creştere"precum şi de creşterea cerinţelor video (cea mai intensă comunicaţie de intrare/ieşire se realizează spre şi dinspre placa video).

Principalele tipuri de magistrală I/O sunt: ISA, Micro channel, EISA, magistrala locală, magistrala VESA locală, magistrala PCMCIA, VL BUS şi PCI.

ISA (Industry Standard Architecture) reprezintă arhitectura de magistrală a primului IBM PC (1982). Deci primele plăci de bază care au folosit această arhitectură au fost cele care foloseau

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

55

microprocesoare 8086 şi 8088. Au urmat plăcile de baza care au folosit procesoare 80286, 80386, 80486 şi Pentium.

Există două versiuni de magistrale ISA deosebite prin numărul de biţi de date ce pot fi transmise simultan pe magistrală (versiunea pe 8 biţi şi versiunea mai nouă pe 16 biţi). Magistrala ISA permite un transfer la viteze mici de 8 Mhz, necesitând două până la opt perioade de ceas pentru transferul datelor. Rata de transfer - pentru versiunea ISA pe 16 biţi - maximă este de

16MB/sec, dar în realitate se ridică doar la jumătate, de aceea acest tip de magistrală limitează performanţele pe majoritatea sistemelor.

EISA (Extended ISA) reprezintă o încercare de a extinde ISA pe 32 biţi. Faţă de arhitectura ISA pe 16 biţi, permite mai multe extensii cu mai puţine conflicte între plăcile adaptoare. EISA utilizează tehnologia busmastering-ului ce permite unei plăci de extensie de a scrie şi citi direct în şi din memorie, fără a necesita vreun timp de ceas al procesorului. Această tehnologie se bazează pe un cip special (cipul ISP Integrated System Peripherial) ce permite unei plăci cu opţiunea de control total magistralei, putând astfel executa operaţii foarte rapid. Magistralele cu arhitectura ISA şi EISA prezintă dezavantajul că frecvenţa lor de tact nu corespunde vitezei mult mai mari a procesorului.

VL Bus (VESA -Video Electronics Standard Association -Local Bus) iniţial gândită pentru plăcile video, a fost extinsă pentru toate plăcile adaptoare. Prezintă ca avantaj posibilitatea negocierii directe cu microprocesorul şi memoria şi lucrează la o viteză de ceas de 40- 50 MHz. Local bus-ul, fiind proiectat pentru o magistrală de 32 biţi, realizează viteze de transfer mari, iar controller-ele pentru VL Bus sunt capabile să administreze patru hard disk-uri.

PCI (Peripheral Component Interconnect) reprezintă cel mai performant standard de bus local. Lăţimea bus-ului este de 64 biţi, la o frecvenţă de tact de 33 (66) MHz. Realizează multiplu busmastering pe aceeaşi magistrală (mai multe controllere pot rula în acelaşi timp), autoconfigurare, permite integrarea de maxim 8 funcţii la nivelul unei singure plăci.

Magistrala PCMCIA este specifică sistemelor laptop şi notebook, cărora le asigură extensibilitate, aşa cum prezintă şi sistemele desktop. Plăcile de extensie PCMCIA au dimensiunea unor credit card-uri. Conectorii lor permit plăci de extensie de memorie, plăci de fax/modem, plăci de reţea locală etc. Un tip particular de placă PCMCIA îl reprezintă Zoomed Video Port care asigură o decompresie şi o citire rapidă a fişierelor video foarte mari.

Magistrala procesorului, reprezintă calea de comunicaţie ce asigură transferul datelor între unitatea centrală de prelucrare şi magistra a principală (magistrala I/O) şi au între unitatea centrală şi memoria cache. Este o magistrală rapidă, compusă din circuite electrice pentru date, adrese şi control. În cazul sistemului Pentium, magistrala procesorului prezintă 64 linii de date, 32 linii de adresă, precum şi linii de control asociate. Viteza maximă de transfer a magistralei, numită şi lărgime de bandă, este de 528 m/s, dar efectiv ea este cu 25% mai mică.

Magistrala memoriei, asigură transferurile informaţiilor între unitatea centrală şi memoria RAM. Fizic este implementată printr-un set de cip-uri dedicate şi asigură viteze mult mai mici decât cele înregistrate de magistrala procesorului (deoarece dispune de mai puţine linii de date).

Conectorii de extensie. Magistrala I/O permite, prin conectori, adăugarea de dispozitive noi calculatorului pentru a-i extinde posibilităţile. Se pot astfel introduce controllere de hard disk, adaptoare video, precum şi o serie de dispozitive mai specializate, plăcile de sunet sau plăcile de interfaţă pentru unităţi CD-ROM.

PLACA DE BAZĂ Cea mai importantă componenta a unui calculator este placa de bază (PCB), care trebuie să ţină

cont de platforma dorită, tipul memoriei ce va fi folosit şi de viitoarele îmbunătăţiri ce urmează a fi făcute pe termen mediu şi lung. Se pot defini trei categorii de plăci de bază ce pot constitui o alegere în cazul unui utilizator individual.

Plăcile integrate asigură compatibilitatea între componente. Aceste plăci beneficiază de obicei de controlerele video şi de sunet integrate sau la includerea unui modem. Gama de procesoare suportate este mai mică dacât a celorlalte plăci, capabilităţile de overclocking fiind extrem de limitate.

A doua categorie, şi cea mai răspândită, este cea a plăcilor de nivel mediu. Acestea nu beneficiază de controler video integrat, lasând alegerea plăcii video la îndemâna utilizatorului. Toate plăcile existente pe piaţă oferă un controler audio integrat, acesta putând fi dezactivat în cazul în care

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

56

doriţi să apelaţi la o placă de sunet specializată. Numărul sloturilor PCI variază între 5 şi 6, destul pentru aproape toate plăcile de extensie pe care utilizatorul le-ar putea achiziţiona ulterior.

A treia categorie este constituită din plăcile dedicate staţiilor de lucru, destinate aplicaţiilor profesionale, care oferă suport pentru două procesoare, iar plăcile includ şi facilităţi cum ar fi controler de reţea sau SCSI şi multe sloturi PCI. Există câteva caracteristici de care trebuie să se ţină cont când se alege placa de bază potrivită.

Componentele electronice ale plăcii de bază îndeplinesc majoritatea funcţiilor unui calculator: rulează programe, fac calcule, aranjează biţii care vor fi afişaţi pe ecran. Placa de bază conţine cele mai importante elemente ale unui PC, cele care îi definesc funcţiile şi posibilităţile de extindere, cum ar fi microprocesorul, cipul BIOS, memoria, sistemul de stocare masivă, sloturile de extensie şi porturile.

BIOS. Pentru a funcţiona, calculatorul are nevoie de un program; un program simplu chiar şi pentru pornire şi pentru a putea încărca şi citi programe. Sistemul primar de intrare/ieşire (Basic Input/Output System - BIOS) este un set de rutine permanent înregistrate, care asigură sistemului caracteristicile operaţionale fundamentale, inclusiv instrucţiunile care îi spun calculatorului cum să se autotesteze la fiecare pornire. În calculatoarele mai vechi, sistemul BIOS stabileşte ce poate face calculatorul fără să încarce un program de pe disc şi modul în care calculatorul va reacţiona la instrucţiuni specifice, care fac parte din programele stocate pe disc. Sistemele de operare moderne înlocuiesc automat codul BIOS cu propriile programe, imediat după iniţializarea PC-ului. în majoritatea situaţiilor, codul BIOS este folosit numai pentru iniţializarea şi testarea calculatorului la pornire, apoi cedează locul altor produse software, care fac adevărata muncă.

Circuitele de suport de pe placa de bază fac legătura între microprocesor şi restul calculatorului. Un microprocesor, deşi este creierul unui calculator, nu este un calculator în sine (dacă ar fi fost, ar fi purtat alt nume - de exemplu, calculator). Ca să fie adus la viaţă, microprocesorul are nevoie şi de alte circuite: ceasuri, controllere şi convertoare de semnal. Fiecare dintre aceste circuite de suport are propriul mod de a reacţiona la programe, contribuind astfel la funcţionarea generală a calculatorului. În calculatoarele actuale, toate funcţiile tradiţionale ale circuitelor de suport au fost înglobate în cipset-uri, circuite integrate de dimensiuni relativ mari.

Sloturile de extensie. Aşa cum sugerează şi numele, sloturile de extensie ale unui PC permit extinderea capacităţii acestuia prin montarea unor plăci suplimentare, inteligent numite plăci de extensie. Sloturile sunt spaţii din interiorul unităţii de sistem cu socluri sau conectoare speciale, care permit conectarea plăcilor de extensie. Sloturile de extensie ale calculatoarelor notebook permit conectarea unor module de dimensiunea unui card care îndeplinesc aceleaşi funcţii ca şi plăcile de extensie. Standardele respectate de sloturile de extensie dintr-un PC determină atât tipul plăcilor care pot fi instalate, cât şi performanţele acestora.

Cipsetul - este inima plăcii de bază şi necesită o atenţie deosebită înainte de achiziţie. El este responsabil pentru tipurile de componente care vor fi suportate de placa de bază.

Arhitectura plăcii, se referă la modul în care sunt plasate componentele pe PCB, spaţiul liber din jurul socketului procesorului (un factor important pentru utilizarea unui cooler mai mare), spaţiul liber de lângă sloturile PCI (pentru plăcile de extensie cu lungimi mari).

Sloturile (4, 5 sau 6 sloturi PCI) sunt suficiente pentru viitoarele plăci de extensie pe care urmează să le folosiţi.

Suportul hardware trebuie ales funcţie de modele viitoarelor versiuni ale componentelor ce urmează a fi utilizate. Cu cât suportul oferit este mai generos, cu atât mai bine pentru viitorul upgrade. Un aspect foarte important este legat de posibilitatea de dezactivare a controlerelor integrate pe placă.

Manualul de utilizare realizat de producători de renume, cum ar fi Abit, Asus, Epox sau MSI, oferă soluţii la o largă varietate de probleme ce pot aparea în procesul de instalare.

2.4.6. DISPOZITIVE PERIFERICE Echipamentele periferice reprezintă dispozitive care asigură interfaţa dintre utilizator şi

calculator. Ele permit, pe de-o parte, introducerea datelor programelor şi comenzilor, iar pe de altă parte, redarea rezultatelor prelucrării. După funcţia pe care o îndeplinesc, perifericele se clasifică în:

-periferice de intrare, reprezentând multimea echipamentelor permiţând introducerea datelor, programelor şi comenzilor;

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

57

-periferice de ieşire, reprezentând mulţimea echipamentelor cu rol de redare a rezultatelor prelucrării;

-periferice de intrare-ieşire, permiţând citirea/scrierea în/din memoria externă (care au fost deja prezentate în capitolul rezervat memoriei externe).

PERIFERICE DE INTRARE Tastatura (Keyboard) Până la apariţia unor periferice mai putemice (interfaţa multisenzorială, comandă vocală etc.),

tastatura ramâne principalul periferic pentru introducerea datelor, fără de care nu ar exista mijloc de comunicare cu calculatorul. Acelaşi lucru este valabil şi pentru mouse, atunci când lucrăm cu interfeţe grafice.

Firma IBM a creat patru tipuri standard de tastaturi: -tastatura PC şi XT cu 83 de taste; -tastatura AT cu 84 de taste; -tastatura extinsă cu 101/102 taste lansată în 1986; -tastatura adaptată mediului Windows. Există mai multe variante constructive: tastaturi cu contact mecanic şi tastaturi cu contact bazat

pe senzori (magnetici, optici). La nivelul tastaturii standard se pot identifica următoarele grupuri principale de taste: -grupul tastelor alfanumerice, în cadrul căruia ordonarea literelor diferă de la ţară la ţară; prima

linie de taste alfabetice -în cazul unei tastaturi frantuzeşti va fi AZERTY , în timp ce pentru o tastatură englezească va fi QWERTY;

-grupul tastelor alfanumerice, funcţionale, inscriptionale F1 - F12, ce permit executarea unor funcţii prestabilite;

-grupul tastelor pentru controlul cursorului; -grupul tastelor numerice (utilizat pentru culegerea rapidă a datelor de natură numerică) activat:

prin acţionarea tastei Numeric Lock. Există tastaturi cuprinzând câteva "taste multimedia", care, pot permite modularea volumului

sonor. Constructorii, cum ar fi Compaq, IBM sau Hewlett Packard, oferă tastaturi incluzând taste particulare, programabile, prin intemiediul cărora se poate lansa o conectare la Internet, asculta CD-ul audio instalat în unitatea CD-ROM etc.

Mouse-ul Mouse-ul reprezintă un dispozitiv de intrare, permiţând selectarea cu uşurinţă a opţiunilor din

meniuri sau manipularea unor obiecte afişate în cadrul interfeţelor grafice. La ora actuală el face parte din configuraţia standard a unui PC. A fost inventat în 1964 de Douglas Engelbert, cercetător în cadrul Universităţii Standford, ideea sa fiind preluată mai târziu de firma Xerox. Ideea utilizării mouse-ului ca dispozitiv de indicare pe interfaţa gratică este preluată de specialiştii firmei Apple în urma prezentării în 1979 a calculatorului Alto către compania Xerox.

Majoritatea mouse-urilor sunt identice din punct de vedere constructiv, funcţional şi al formei de prezentare. Ele se diferenţiază prin numărul de butoane pentru selecţii (2 sau 3) şi modul de comunicare cu calculatorul. Elementele constructive ale mouse-ului sunt reprezentate de:

-carcasă; -bila de cauciuc care semnalează sistemului mişcările făcute; -butoanele (2 sau 3) pentru selecţii; -cablu pentru conectarea la calculator; -conector de interfaţă pentru ataşarea mouse-ului la sistem.

Mişcările bilei sunt transformate în semnale electrice care se transmit calculatorului prin intermediul cablului. Mouse-ul cu senzor optic, puţin utilizat astăzi, necesită un suport special (grid pad). Butoanele mouse-ului realizează o operaţie bine precizată sub controlul programelor executate. Este important de ştiut faptul că nu toate programele "ştiu" să lucreze cu mouse-ul.

Mouse-ul poate fi conectat la sistem prin: -interfaţă serială; -port dedicat pentru mouse, pe placa de bază; -interfaţă de magistrală.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

58

Principalele operaţii realizate cu mouse-ul sunt: • punctarea (click), reprezentând poziţionarea cursorului de mouse prin acţionarea scurtă a

butonului (stâng). Aceasta operaţie serveşte în acţiunea de selectare a opţiunilor din meniu/obiectelor;

• "tragerea" (drag) care permite deplasarea obiectelor (butonul mouse- ului nu se mai eliberează, el rămânând activ pe timpul deplasării mouse).

Precizia unui mouse, exprimată prin rezoluţia mecanică, se măsoară în dots per inch (dpi). Rezoluţia poate să ajungă până la 600 dpi ca în cazul modelului Kensington Thinking Mouse, destinat, în principal, utilizatorilor de aplicaţii CAD. Pentru activitatea de birotică, rezoluţia poate fi de 400 dpi.

Trackball-ul este un mouse în poziţie inversă. Deplasarea cursorului se realizează prin mişcarea bilei de cauciuc cu degetul. Este specific calculatoarelor portabile (laptop, notebook).

Touchpad-ul reprezintă o altemativă a mouse-ului standard. Este constituit dintr-o suprafaţă plană (puţin mai mare ca dimensiune decât un card bancar), senzitivă, sensibilă la atingere, care urmăreşte mişcarea degetelor, presiunea exercitată de acestea şi transmit această informaţie cursorului pe ecran. Prezintă patru butoane programabile şi este plasată, de regulă, sub tastatura unui laptop.

Joystick-ul este o soluţie mai veche, reprezentând un dispozitiv format dintr-o manetă permiţând realizarea a patru sensuri de mişcare: înainte, înapoi, stânga, dreapta. Se utilizează astăzi în general pentru jocuri. Pentru cei care desfaşoară activităţi grafice, tastatura şi mouse-ul nu sunt suficiente. Pentru aplicaţiile grafice tableta grafică este deosebit de utilă. Stiletul perrnite realizarea pe tableta grafică a desenelor care sunt transformate în desene pe monitorul calculatorului. Toate tabletele grafice dispun de o panoplie de funcţii. Tabletele cele mai sofisticate sunt capabile să sesizeze presiunea exercitată de utilizator prin intermediul stiletului pentru a trasa linii mai groase.

TouchScrean-ul este un dispozitiv de sine stătător ce include o tastatură touch-sensitive (fără taste) şi un mouse standard. Atunci când scrii la tastatură şi ai nevoie de mouse nu eşti nevoit să muţi mâna după acesta din urmă, deoarece mouse-ul se află chiar între cele două segmente ale tastaturii touch-sensitive. Majoritatea butoanelor lui TouchStream sunt asemănătoare ca mărime cu cele ale unei tastaturi obişnuite (19x19mm), cu toate că producătorul a redus dimensiunea unor taste precum BackSpace, Delete, sau Enter şi le-a aşezat în aşa fel încât să se regăsească foarte uşor în design-ul ergonomic. Bulinele mici din cauciuc, amplasate în centrul tastelor, sunt singurele forme de relief ce se găsesc pe suprafaţa plană a lui TouchStream.

Creionul optic reprezintă o baghetă folosită pentru a indica sau desena pe suprafaţa monitorului. Principiul de lucru constă în identificarea poziţiei varfului stiletului pe ecran; transmiterea acestei informatii calculatorului prin adaptorul grafic. Aceasta informaţie este apoi preluată de programe special concepute să lucreze cu acest dispozitiv de intrare.

Ecranul tactil elimină necesitatea utilizării unui dispozitiv indicator, locul acestuia fiind luat de degetul utilizatorului, un creion etc. Semnalarea selecţiei realizate pe ecran de utilizator se realizează prin intermediul unui dispozitiv de intrare inclus sau fixat pe monitor şi a razelor infraroşii.

Touchpad-ul este o zonă rectangulară sensibilă la presiune. Alunecaţi uşor degetul dumneavoastră pe suprafaţa touchpad-ului şi un pointer va efectua mişcările corespunzătoare pe ecran. Butoanele de la baza unităţii au aceleaşi funcţii ca butoanele mouse-urilor, dar majoritatea touchpad-urilor recunosc o bătaie uşoară ca apăsarea unui buton. Touchpad-urile sunt disponibile separat pentru orice calculator, dar cele mai multe sunt construite în interiorul laptop-urilor.

Tableta grafică – graphics tablet, denumită şi tableta digitală, este o tăbliţă rectangulară ce conţine o grilă invizibilă de puncte electonice. Pe măsură ce utilizatorii mută un stilet asemănător unui pix sau o bilă asemănătoare celei de la mouse pe suprafaţa tabletei locaţiile punctelor atinse sunt trimise calculatorului. Arhitecţii şi ingenerii folosesc aceste tablete pentru a crea desene precise.

Pointing stick-ul este un mic suport (post) sensibil la presiune poziţionat în centrul tastaturii intre tastele G si H. Apăsând post-ul în direcţia dorită determină pointerul să se mişte în acea direcţie. Pointerul se opreşte din mişcare când presiunea este ridicată. Butoanele sunt poziţionate la baza tastaturii.

Scanner-ul Este un dispozitiv specializat în preluarea de imagini şi texte. Imaginea scanată este descompusă

în puncte (pixeli) cu ajutorul unor senzori fotosensibili. Cu cât numărul de senzori este mai mare, cu atât creşte rezoluţia dispozitivului. Rezoluţia măsoara numărul de puncte distincte afişabile de un

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

59

dispozitiv. Unitatea de măsura este dpi (dots per inch -număr de puncte pe inch). Principiul de funcţionare este următorul: în interiorul scanner-ului există o sursă de lumină. Lumina este proiectată pe documentul supus citirii, iar razele reflectate de acesta sunt receptate de senzorii fotosensibili şi convertite în tensiune electrică preluată de PC prin intermediul unui convertor. Pot fi citite prin intermediul unui scanner documente, texte, semnături, imagini alb-negru sau color, inclusiv fotografii, informaţia analogică fiind convertită în formă digitală.

La ora actuală, piaţa oferă o largă varietate de scannere: scanner de mână, scanner cu tractor (realizează tractarea imaginii de scanat prin faţa senzorilor), scanner orizontal (flatbed), scanner holografic, cititoare de bare de cod. Rezoluţia acestor dispozitive poate fi de 100, 300, 600, până la 1200 dpi.

Cititorul de bare de cod este o combinaţie de scanner de mână şi OCR şi este destinat în principal citirii de etichete speciale, permiţând identificarea unui produs şi/sau a preţului acestora.

Scanner-ului cu tractor (de tip sheetfed) i se alimentează foile prin rotiţe motorizate hârtia către capul scanner-ului. Sunt conceute să încapă între tastatură şi monitor.

Caractere scrise de mână pot fi citite de maşinile care pot citi caracterele scrise de mână, regulile privitoare la mărime, întregime si lizibilitate a scrisului de mână sunt foarte stricte.

Microfonul Dezvoltarea aplicaţiilor multimedia a determinat utilizarea microfonului ca dispozitiv de intrare.

Microfonul se regăseşte ca dispozitiv de intrare în configuraţia standard chiar şi a sistemelor de tip laptop. Sistemele de recunoaştere a vocii reprezintă un dispozitiv de intrare care permite recunoaşterea unui număr finit de sunete izolate, cuvinte, fraze, "vocabularul" gestionat fiind de aproximativ 1000 de cuvinte. Recunoaşterea se face prin compararea undei sonore ( convertite în biţi) a unui cuvânt rostit de utilizator cu "amprentele" sonore memorate. Voice input - introducerea datelor prin intermediul vocii. Vorbirea cu un calculator, cunoscută ca voice input sau recunoaşterea vorbirii, reprezintă o altă formă de preluare a datelor de intrare. Dispozitive de recunoaştere a vorbirii acceptă cuvântul rostit printr-un microfon şi îl transformă într-un cod binar (0 şi 1) ce poate fi înţeles de către calculator. Există două mari întrebuinţări ale acestei facilităţi. Una este să dai calculatorului comenzile ce trebuie să le execute rostind pur si simplu aceste comenzi, cum ar fi o aplicaţie în particular, deschiderea unui fişier, sau mutarea la o locaţie specifică in fişier. O a doua întrebuinţare este să introduceţi volume mari de text, cum ar fi în cazul dictării unei scrisori sau redactării unui raport. Utilizatorii clasici sunt cei cu handicap fizic, cei cu mâini ocupate sau prea murdare pentru tastatură, şi cei fără acces la tastatură.

PERIFERICE DE IEŞIRE Monitorul este cel mai important echipament periferic de ieşire, el asigurând legatura dintre

utilizator şi calculator. Comenzile şi datele introduse de la tastatură, precum şi rezultatele prelucrării şi mesajele calculatorului sunt afişate pe monitor. Monitorul reprezintă unul dintre componentele sistemului video al calculatorului, cel de-al doilea element component fiind reprezentat de adaptorul video(numit şi placă video sau placă grafică).

Caracteristicile tehnice ale monitoarelor sunt următoarele: -definiţia; -rezoluţia; -numărul de culori; -dimensiunea monitorului; -capacitatea de afişare; -numărul dimensiunilor în care afişează; -tipul plăcii video; -rata de împrospătare; -alte caracteristici.

Orice imagine/caracter afişată/afişat pe ecran este realizată printr-o mulţime de puncte numite pixeli. Dimensiunea (diametrul) unui pixel reprezintă definiţia monitorului. Cu cât această valoare este mai mică, cu atât imaginea este mai clară. Valoarea standard a definiţiei este de 0,28 mm.

Rezoluţia reprezintă numărul de pixeli afişabili pe toată suprafaţa ecranului. Cu cât numǎrul lor este mai mare, cu atât imaginile au mai multe detalii. Pentru monitoarele color, în definirea rezoluţiei

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

60

se face referire şi la parametrul numit dot pitch (distanţa între puncte). Această distanţă poate fi cuprinsă între 0,25 şi 0,52 mm.

Monitoarele pot fi monocrom sau color. În cazul monitoarelor color, numărul de culori ce pot fi afişate este determinat de tipul plăcii grafice ( ca, de altfel, şi rezoluţia).

Placile adaptoare (video) dispun de memorie proprie. Cu cât rezoluţia este mai mare şi cu cât afişarea se realizează prin mai multe culori, cu atât este mai mare memoria necesară plăcii adaptoare.

O altă caracteristică a monitoarelor este dimensiunea monitorului, masurată prin diagonala sa. Diagonala monitorului poate varia către 12 inch pentru monitorul monocrom şi 42 inch în cazul monitoarelor color. Dimensiunile cele mai utilizate sunt de 17, 19, 24 inch. Dimensiunea monitoarelor în cazul noilor configuraţii de PC oferite de piaţă tinde să se fixeze la 24 inch. În cazul portabilelor, monitoarele SVGA prezintă 17 inch, In timp ce pentru standardul XGA 13,3".

Monitoarele sunt fabricate atât în stil portrait (pagină întreagă - prezentând înalţimea mai mare decât laţimea), cât şi în stil landscape (dublă pagină- este potrivit pentru urmărirea simultană a două pagini alăturate). Capacitatea de afişare a monitorului este dată de numărul de linii şi coloane afişabile. Ecranul clasic permite afişarea a 24 de linii şi 80 de coloane. Există monitoare permiţând afişarea a 24 linii şi 40 de coloane sau, în cazul monitoarelor de la EGA în sus, pot afişa în mod text până la 60 de linii şi 132 de coloane. Un caracter este generat la intersecţia unei linii cu o coloană, utilizând o matrice formată din 5 x 7 puncte sau 7 x 9 puncte. Pe lângă monitoarele clasice permiţând afişarea în două dimensiuni, există şi monitoare 3D (trei dimensiuni). Redarea imaginii în trei dimensiuni se poate realiza prin polarizarea luminii, utilizând ochelari speciali sau holografic.

Cele mai cunoscute standarde pentru plăcile video sunt pezentate în tabelul 2.8. Tabelul 2.8.

Standarde pentru placi video

Rata de împrospătare a imaginii reprezintă numărul de imagini afişate pe secundă şi deci viteza

cu care se realizează reîmprospătarea imaginii.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

61

Frecvenţa afişării (baleiajul vertical) este controlată de un dispozitiv numit Digital Analogic Converter (DAC) al cărui rol este de a transforma datele tocate în memoria video într-un semnal analogic afişat pe monitor. Frecvenţa de baleiere trebuie să fie adecvată persistenţei, astfel încât imaginea de pe ecran să tremure cât mai puţin, deloc chiar. Viteza de baleiere este cuprinsă între 60 şi 200 Hz, cea mai frecventă fiind cea de 70 MHz, ceea ce înseamnă ca imaginea este reîmprospatată pe ecran de 70 de ori pe secundă. În realizarea monitoarelor se pot utiliza mai multe tehnologii:

• Tehnologia cea mai utilizată este cea a tubului catodic, folosită şi în cazul televizoarelor. Tubul catodic constă dintr-un tub cu vid realizat din sticlă, prezentând la unul din capete un tun de electroni, iar la celalalt ecranul acoperit cu fosfor. Tubul emite un fascicul de electroni de mare viteză care lovesc ecranul, iar fosforul care-l acoperă străluceşte generând astfel lumina receptată de utilizator pe ecran.

• Tehnologia utilizată în cazul monitoarelor realizate pentru calculatoare laptop (ecrane plate) este fie cea bazată pe afişare cu cristale lichide (LCD -Liquid Cristal Display), fie cea bazată pe plasmă (GDP - Gas Plasma Display), Plasma Display Panel (PDP) este considerat de specialişti monitorul mileniului trei. Producătorii se ambiţionează să realizeze PDP-uri cu diagonala de 21" şi rezoluţie de 1280 x 1024 aducându-le astfel în zona aplicaţiilor pentru staţii de lucru.

Noile tehnologii propuse privesc monitoarele plate numerice (DFP Digital Flat Panel). Acestea sunt ecrane realizate pe principiul cristalelor lichide (LCD), numai că nu mai prezintă convertizorul analogic/numeric care astăzi le este indispensabil pentru a funcţiona cu plăcile grafice ale PC-ului.

Afişarea caracterelor pe ecran se poate realiza: normal, blinking (clipitor), pe niveluri de luminozitate, video -invers.

Monitoarele pot funcţiona în două moduri: -scroll (liniile noi tastate apar la baza ecranului şi text defilează ca la maşina de scris); . -paginat ( dupa completarea unui ecran cu informaţie se înlocuieşte cu un altul).

Cele mai cunoscute firme producătoare de monitoare sunt: IBM, Mitsubishi, NEC, Sony. Imprimanta Reprezintă un periferic de ieşire opţional a cărui funcţie este de a tipări pe hârtie rezultatele

prelucrării. Principalele caracteristici ale unei imprimante sunt:

-rezoluţia; -viteza de tipărire; -memoria imprimantei; -limbajul de control al imprimantei; -capacitatea de emulare; -numărul de fonturi; -dimensiunea hârtiei utilizate; -modalitatea de alimentare cu hârtie; -cromatica rezultatului listării; -fiabilitatea.

Rezoluţia se măsoară îin dots per inch (dpi), deci în număr de puncte tipărite pe un inch, cu precizarea că rezoluţia pe orizontală nu este întotdeauna egală cu cea pe verticală. Ea este determinată de metoda folosită pentru imprimare şi poate prezenta următoarele valori: 300, 600, 720 dpi, iar în cazul imprimantelor profesionale, 1200 dpi (sau chiar rezoluţii de 2400 x 600 dpi).

Viteza de tipărire realizată de imprimanta este determinată de o serie de factori cum ar fi: motorul său, dimensiunea memoriei imprimantei, de procesor, complexitatea paginii de tipărit. Viteza se măsoară fie în caractere pe secundă (cps), în pagini pe minut (ppm) şi poate varia între 1-16 ppm. Procesorul determină procesul de transformare a unui fişier în formatul accesibil imprimantei, proces numit rasterizare.

Dimensiunea memoriei imprimantei este un parametru deosebit de important în cazul imprimantelor laser, şi aceasta deoarece numărul şi complexitatea desenelor ce urmează a fi tipărite pe o pagină sunt proporţionale în mod direct cu dimensiunile memoriei imprimantei.

Capacitatea memoriei unei imprimante laser este, de obicei, de 5l2K, dar poate să atingă 3MB pentru rezoluţii de 600dpi sau chiar mai mult.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

62

Limbajul de control reprezintă setul de comenzi folosit pentru controlul imprimantei. Capacitatea de emulare reprezintă capacitatea unei imprimante de a folosi limbajul de control

al altei imprimante. Dimensiunea hârtiei utilizate, aceasta este dependentă de lăţimea carului (imprimanta pe 80 de

caractere sau 132). Se poate utiliza hârtie de dimensiunea A4 (21 cm) sau A3 (aproximativ 42 cm). Fiabilitatea este apreciată în funcţie de capacitatea imprimantei de a funcţiona la parametri

normali pe perioade cât mai mari de timp în condiţii normale de exploatare. Clasificarea imprimantelor dupa metoda utilizată în procesul tipăririi cuprinde tipurile:

imprimante orientate pe caracter, pe linie, pe pagină. a) Imprimantele orientate pe caracter (sau seriale) Lucrează după principiile maşinii de scris, deci tipărirea se realizează caracter după caracter.

Viteza de tipăriere este mică, ridicându-se la câteva zeci de caractere pe secundă. Din această categorie fac parte imprimantele matriceale, imprimantele termice şi imprimantele cu jet de cerneală.

Imprimantele matriceale sunt numite şi imprimante cu ace datorită modalitaţii în care are loc tipărirea: imprimarea se realizează prin intermediul unor ace (capul de tipărire al imprimantei prezintă 9 sau 24 de ace) care percutează o bandă tuşată, astfel încât imaginea tipărită se construieşte din mulţimea punctelor realizate. Rezoluţia acestor imprimante este modestă (180dpi-360dpi) la o viteză între 120 şi 800cps.

Imprimantele termice se bazează pe procedeul de fixare termică pe hârtie a vaporilor de cerneală. În această categorie se cuprind imprimantele color caracterizate printr-o rezoluţie bună în condiţiile unei viteze de 250cps.

Imprimantele cu jet de cerneală, de obicei imprimante color, asigură rezoluţii înalte (600dpi) la viteze de 8-9ppm. Cerneala este pulverizată dintr-un rezervor printr-o serie de mici capilare la nivelul hârtiei, fiind astfel generate caracterele sau imaginile.

b) Imprimantele orientate pe linie dispun de o memorie tampon, capabilă să stocheze caracterele ce urmează a fi tiparite în timpul unui simplu ciclu (la o rotire de tambur sau de bandă). Sunt imprimantele de viteze mari, până la 3000 linii pe minut, asigură tipăriri de calitate bună, iar hârtia este antrenată de un tractor (hârtia prezintă margini perforate pentru a permite antrenarea).

c) Imprimantele orientate pe pagină, cunoscute, sub numele de imprimante laser, pot asigura tipărirea de texte, imagini, grafice de foarte bună calitate, la viteze mari de pâna la 600 ppm.

Denumirea de imprimante laser provine de la tehnologia utilizată: o rază laser polarizează electrostatic un cilindru care va atrage cantităţi variabile dintr-un praf de carbune, toner, care se fixa pe suportul de hârtie. Utilizarea imprimantelor presupune instalarea unui driver specializat.

Plotter Dispozitiv periferic permiţând realizarea de desene tehnice, hărţi de mare precizie pe suporturi

de tip hârtie, calc, film. Spre deosebire de imprimantă-unde dispozitivul (capul) de imprimare realizează o mişcare într-un singur sens, plotter- ul dispune de un braţ mobil aparţinând modulului de trasare ce poate reveni pe o zona în care s-a realizat anterior deja o parte a imaginii tipărite.

Difuzoare Aplicaţiile multimedia şi lucrul cu interfaţa MIDI impun difuzoare stereo, externe, de înaltă

fiabilitate. Calitatea difuzoarelor se apreciază în funcţie de următorii parametri: • Răspunsul în frecvenţă care reprezintă amplitudinea gamei de sunete, de la cele mai joase la

cele mai înalte, pe care o poate reproduce difuzorul. Gama poate lua valori între 20Hz şi 20 kHz. • Distorsiunea care măsoară abaterea (diferenţa) dintre sunetul emis de difuzor şi cel perceput

de om. Se consideră că sub 0,1% reprezintă un nivel de distorsiune acceptabil, în cazul căştilor acestea putând ajunge până la 2%.

• Puterea difuzoarelor măsurată în waţi. Modem-ul Poate fi încorporat sau poate fi exterior PC-ului şi are funcţia de a converti semnalul digital -

furnizat de calculator - în semnal analog, transmis la distanţă prin intermediul liniilor telefonice. Sintetizatoarele vocale Reprezintă un dispozitiv de ieşire care "mimează" vorbirea umană pe care o "construieşte" din

sunete preînregistrate. Principiul constă în prelucrarea unui text care apoi este redat în cuvinte vorbite, fiecărui caracter scris fiindu-i asociat un sunet.

CAPITOLUL 2. ARHITECTURA CALCULATOARELOR PERSONALE

63

2.5. INTERFEŢELE CALCULATORULUI Interfaţa reprezintă un dispozitiv ce permite comunicarea între două componente ale sistemului

de calcul, prezentând caracteristici funcţionale diferite (unitatea centrală şi un periferic). Interfaţa are rolul de a face cele două componente, între care se interpune, să se înţeleagă

reciproc. Acest lucru presupune transmiterea datelor trimise de către unitatea centrală către periferic într-o formă acceptată de acesta, precum şi gestionarea comenzilor transmise de UCP spre periferic şi a semnalelor transmise de periferic.

Conceptul de interfaţa este generic, el corespunzând unor denumiri particulare, cum ar fi: -adaptor video (placă video) pentru interfaţa cu monitorul; -cuplor ( controller) de disc pentru interfaţa cu discul etc. Deoarece echipamentele periferice, după funcţia lor, se pot grupa în echipamente de intrare şi

echipamente de ieşire, înseamnă că şi interfeţele se pot clasifica utilizând acelaşi criteriu în: -interfeţe de intrare ce permit transferul datelor de la periferice către microprocesor. Este cazul interfeţei pentru tastatură şi mouse;

-interfeţe de ieşire ce permit transferul datelor dinspre microprocesor către periferic; -este cazul interfeţei pentru imprimantă şi, respectiv, monitor O interfaţă este cuplată la unitatea centrală (UCD) printr-un punct numit port. Prin acest port

UCD face schimb de informaţii cu exteriorul ei. O interfaţă este cuplată la unitatea centrală (UCD) printr-un punct numit port. Prin acest port

UCD face schimb de informaţii cu exteriorul ei. Comunicaţia asincronă, mai lentă, se caracterizează prin utilizarea unei linii de comunicaţie pe

care datele se transmit bit cu bit. Primul bit de date este precedat de un bit de START, iar ultimul, de unul sau doi biţi de STOP. Comunicalia asincronă impune deci existenţa unor mecanisme de serializare/deserializare ale corectitudinii transmisiei. Interfaţa asincronă (serială) prezintă tastatura, mouse-ul, uneori, imprimanta.

Comunicaţia sincronă (paralelă) de viteză mare utilizează mai multe linii fizice diferite (opt fire pentru cei opt biţi ai unui octet plus un fir pentru comenzi), pe care are loc transmisia în acelaşi timp, ceea ce impune o sincronizare între semnalele emise. Interfeţele paralele prezintă în majoritatea cazurilor imprimanta, sub tehnologiile menţionate.

-interfeţe de intrare ce permit transferul datelor de la periferice către microprocesor. Este cazul interfeţei pentru tastatură şi mouse;

-interfeţe de ieşire ce permit transferul datelor dinspre microprocesor către periferic; este cazul interfeţei pentru imprimantă şi, respectiv, monitor.

O interfaţă este cuplată la unitatea centrală (UCD) printr-un punct numit port. Prin acest port UCD face schimb de informaţii cu exteriorul ei.

Comunicaţia realizată prin intemlediul portului poate fi asincronă sau sincronă.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

65

CAPITOLUL 3

PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

3.1. CONFIGURAŢIA SISTEMULUI DE CALCUL

Un sistem de operare este o colecţie organizată de programe de control şi serviciu, stocate permanent într-o memorie principală sau auxiliară,specifice tipurilor de echipamente din componenţa sistemului, având ca sarcină optimizarea utilizării resurselor, minimizarea efortului uman de programare şi automatizarea operaţiilor manuale în cât mai mare măsură, în toate fazele de pregătire şi exploatare a componentelor sistemului de calcul.

Sistemul de operare oferă o interfaţă între programator şi sistemul de calcul, concretizată într-un interpretor al comenzilor utilizatorului exprimate cu ajutorul unui limbaj de comandă.

Unul din conceptele cheie ale oricărui sistem de operare este procesorul. Un proces este de fapt un program în execuţie. El poate crea unul sau mai multe subprocese numite procese fiu, se poate afla în anumite stări, se poate sincroniza cu alte procese, poate comunica cu alte procese etc.

Dintre conceptele implementate pentru creşterea performanţelor şi mărirea eficienţei utilizării resurselor sistemelor de calcul, un rol important l-a avut multiprogramarea. În sistemele cu multiprogramare, la un moment dat, în memorie se află încărcate mai multe procese care concurează, pe baza unei scheme de priorităţi, pentru accesul la anumite resurse ale sistemului. Când o resursă este retrasă unui proces ea poate fi imediat alocată altui proces care o solicită.

Un alt mecanism este multitasking-ul. Acesta constă în multiprogramarea a două sau mai multe procese având un obiect comun. Aceste procese pot comunica între ele şi îşi pot sincroniza activităţile.

Interfaţa dintre sistemul de operare şi programele utilizatorului (numite şi lucrări) este asigurată de o colecţie de „instrucţiuni extinse” ale sistemului de operare numite apeluri sistem. Folosind apelurile sistem, un program utilizator poate crea, utiliza şi şterge diverse obiecte gestionate de un sistem de operare.

Unele din cele mai importante obiecte gestionate de un sistem de operare sunt procesele şi fişierele.

Un fişier este un şir de caractere terminat printr-o marcă de sfârşit de fişier. El poate fi stocat pe disc, în memorie.

Sistemul de operare oferă apeluri sistem pentru lucrul cu fişiere: creare, ştergere, citire, scriere etc. Fişierele pot fi grupate într-un catalog şi pot fi caracterizate de anumite atribute (proprietar, dimensiune, data ultimului acces în scriere, coduri de protecţie etc).

Caracteristicile unui sistem de operare sunt: 1) modul de introducere a programelor în sistem; 2) modul de planificare a proceselor; 3) numărul de programe prezente simultan în memorie; 4) modul de utilizare a resurselor; 5) numărul de utilizatori ce pot folosi sistemul în acelaşi timp.

După modul de introducere a lucrărilor (programelor) în sistem, se disting • sisteme de operare seriale ce acceptă introducerea lucrărilor de la un singur

dispozitiv de intrare, • sisteme de operare paralele ce admit introducerea lucrărilor de la mai multe

dispozitive de intrare, precum şi • sisteme de operare cu introducerea lucrărilor de la distanţă.

După modul de planificare a lucrărilor pentru execuţie, există • sisteme de operare orientate pe lucrări ce admit ca unitate de planificare lucrarea

alcătuită din unul sau mai multe programe succesive ale aceluiaşi utilizator, precum şi • sisteme de operare orientate pe proces care admit ca unitate de planificare procesul.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

66

După numărul de programe prezente simultan în memoria principală se evidenţiază • sistemele cu monoprogramare şi • sistemele cu multiprogramare.

După numărul de utilizatori acceptaţi simultan de sistemul de operare, există • sisteme monoutilizator şi • sisteme multiutilizator.

După modul de utilizare al resurselor se disting: • sisteme de operare cu resurse alocate, în care resursele necesare lucrărilor sunt afectate acestora pe toată durata execuţiei; • sisteme de operare în timp real care permit controlul executării lucrărilor în interiorul unui interval de timp specificat; • sisteme cu resurse partajate (divizate) în care resursele necesare lucrărilor sunt afectate acestora periodic pe durata unor cuante de timp.

Un sistem de calcul (calculator) este o structură destinată prelucrării informaţiei. El este alcătuit din resurse fizice (procesoare, memorie centrală, dispozitive de intrare / ieşire etc.), resurse logice (sistem de operare, programe utilitare, aplicaţii etc) şi resurse informaţionale (sistem de operare, programe utilitare, aplicaţii etc.) care cooperează pentru satisfacerea cerinţelor utilizatorilor privind introducerea, memorarea (stocarea), prelucrarea, transmisia, (spre un alt sistem de calcul), precum şi regăsirea informaţiilor.

Resursele fizice constituie partea de echipament a sistemului de calcul numită şi hardware, iar totalitatea resurselor logice se numeşte software.

Fig 3.1. Sistemul de calcul

Sistemul hardware constituie nivelul inferior al sistemului de calcul, construit pe baza unor componente electronice, magnetice, optice, mecanice, etc.

Al doilea nivel este o extensie a nivelului hardware, dar şi un subnivel al sistemului software. Acest nivel este numit firmware şi cuprinde fie microprogramele, în cazul sistemelor de calcul ce pot să simuleze alte sisteme de calcul, fie programele de control pentru diferite componente ale sistemului de calcul. Nivelul următor este reprezentat de sistemul de operare şi alte instrumente pentru utilizarea funcţiilor oferite de straturile anterioare.

Firmware-ul este componenta de programe încărcate în memoria fixă ROM de către producătorul sistemului de calcul. Această componentă se află la limita dintre hardware şi software, reprezentând software-ul integrat în partea de hardware. Componenta firmware a unui sistem de calcul, setul de instrucţiuni microprogramate încărcate în memoria fixă ROM, defineşte un anumit mod de funcţionare şi implicit de utilizare a sistemului de calcul. Prin utilizarea unor memorii cu citire-scriere nevolatile alături de memoria ROM se obţin componente cu microprogramare dinamică.

Componenta ROM-BIOS (Basic Input Output System) a sistemelor de calcul compatibile PC este o componentă firmware realizată prin microprogramare dinamică. Rolul componentei BIOS este de interfaţă între hardware şi software, oferind componentei software funcţii de bază pentru utilizarea hardware-ului. Fiind realizată prin microprogramare dinamică, componenta firmware (BIOS) permite modificarea unor parametri de funcţionare ai PC-ului într-o secvenţă specială derulată în timpul procedurii de încărcare a sistemului de operare la pornirea sistemului de calcul.

Procesorul efectuează prelucrarea care are loc în sistemul de calcul prin executarea unui program şi dirijează activitatea celorlalte echipamente. Unitatea centrală de prelucrare

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

67

(procesorul) este alcătuită din una sau mai multe unităţi aritmetico-logice, un set de registre (memorie rapidă) ce păstrează temporar datele precum şi o unitate de comandă.

Într-o formǎ simplificatǎ, structura unui calculator este formatǎ din: - UC - unitatea de comanda sau microprocesor, care controleazǎ prin intermediul unor

dispozitive întreaga activitate a calculatorului. Dispozitivele de bazǎ ale UC ar fi urmatoarele: - DAL - dispozitiv aritmetico-logic şi este definit ca fiind reuniunea unor componente

electronice care ştiu sǎ efectueze o operaţie aritmetico-logicǎ sau de alt ǎ naturǎ. - DC reprezintǎ dispozitivul de comandǎ numit şi procesor, care decodificǎ, interpretezǎ

comenzile sau instrucţiunile furnizate calculatorului şi dǎ sarcini altor dispozitive. - DM reprezintǎ dispozitivul de memorare care conţine asa numitele registre în care sunt

memorate informaţii şi rezultate relative la programul care se executa la un moment dat de cǎtre calculator.

Fig 3.2. Componentele unui sistemul de calcul

Stocarea informaţiilor în sistemul de calcul se realitează prin intermediul memoriei. În funcţie

de locul ocupat, distingem memoria centrală (numită şi memoria principală sau internă) şi memoria secundară (numită şi auxiliară sau externă) în memoria centrală sunt păstrate programele şi datele utilizate de acestea în timpul execuţiei lor către procesor. Memoria secundară păstrează cantităţi mari de date şi programe folosite frecvent şi încărcabile în memoria centrală.

În funcţie de natura accesului la informaţia ce o înmagazinează, memoria centrală a unui calculator poate fi cu acces numai în citire şi respectiv cu acces în scriere şi citire. Memoria de tip ”citeşte numai” (ROM) se mai numeşte memorie permanentă, deoarece programele înscrise în ea sunt fixate odată pentru totdeauna. În general în această memorie este depozitat firmware-ul. Memoria ce permite acces de tip „citire-scriere” se mai numeşte memorie cu acces aleator (RAM).

Totalitatea echipamentelor unui sistem de calcul diferite de UC şi memoria internă formează mulţimea echipamentelor periferice. Din această categorie fac parte unităţile de memorie externă, echipamentele de intrare, echipamentele de ieşire şi echipamentele de intrare / ieşire.

Una dintre cele mai importante unităţi de memorare externă este unitatea de disc. Discurile care conţin un singur platan se numesc discuri floppy, iar platanul propriu-zis se numeşte dischetă sau disc flexibil. Discurile conţinând mai multe platane se numesc discuri rigide (hard disc).

Principalele echipamentele de intrare / ieşire sunt tastatura, mouse-ul, digitizorul, tableta graficǎ, scanner-ul, creionul optic, joistick-ul, monitorul, imprimanta, ploterul etc.

Componentele software, reprezintǎ un set de programe ce transformǎ ansamblul componentelor hardware în unelte utilizabile, care sunt grupate în sisteme de operare, compilatoare şi interpretoare, programe de aplicaţii, programe de tip utilizator şi programe proprii.

3.2. FUNCŢIILE ŞI COMPONENTELE UNUI SISTEM DE OPERARE

Un sistem de calcul nu poate să prelucreze date fără să fie programat, un program constând dintr-o succesiune de instrucţiuni ce converg către soluţia problemei ce se rezolvă.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

68

Există două categorii de programe: 1) programe de aplicaţii care sunt destinate să rezolve probleme specifice; acestea

efectuează prelucrări ale datelor, în concordanţă cu cerinţele informaţionale; 2) programe de sistem destinate să coordoneze operarea circuitelor sistemului, asistând la

dezvoltarea programelor de aplicaţii; ele sunt proiectate să faciliteze utilizarea eficientă a resurselor sistemului de calcul şi să ajute la dezvoltarea si execuţia programelor de aplicaţii.

Un sistem de operare constă dintr-o colecţie integrată de programe de sistem, ce oferă utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurând la dezvoltarea programelor de aplicaţie. Se poate aprecia că un sistem de operare acţionează ca o interfaţa între componenta hardware a unui sistem de calcul şi utilizator, reprezentat prin programele sale de aplicaţie (fig.3.3.).

Majoritatea sistemelor de operare sunt organizate pe două niveluri: 1) nivelul fizic care este mai apropiat de partea de hardware, interferând cu aceasta printr-un sistem de întreruperi ce semnalizează anumite evenimente deosebite ce au loc în sistem; în acel moment va da controlul unor rutine de pe nivelul logic în vederea tratării acestora şi al informării utilizatorului despre cauzele care le-au generat. 2) nivelul logic este mai apropiat de utilizator, interferând cu acesta prin:

- comenzi ce specifică execuţia anumitor subfuncţii ale sistemului de operare; - macroinstrucţiuni ce conduc la expandarea în programele de aplicaţii, a unor macrodefiniţii cu funcţii speciale; - limbaje de programare; - mesaje către utilizator; - întreruperi solicitate de către software.

Fig. 3.3. Sistemul de operare-interfaţă între hardware şi utilizator

3.2.1. Funcţiile unui sistem de operare

Pentru a îndeplini rolul de interfaţă între hardware şi utilizatori, un sistem de operare trebuie să fie capabil a îndeplini următoarele funcţii:

1) oferirea posibilităţii de pregătire şi lansare în execuţie a programelor de aplicaţie (fig.3.4), în acest scop, un sistem de operare trebuie să dispună de cel puţin următoarele componente:

- un editor de texte pentru a introduce şi modifica un program sursă (PS) scris într-un limbaj de programare;

- un translator pentru limbajul de programare folosit (asamblor, compilator sau interpretor), care să traducă instrucţiunile programului sursă, într-o formă recunoscută de sistemul de calcul (formă binară) - program obiect sau module obiect (PO);

- un editor de legături care să realizeze legătura dintre diverse module obiect, sau să apeleze la module obiect din bibliotecile sistemului, respectiv la modulele obiect din biblioteca utilizatorului - care au fost catalogate în prealabil, pentru a construi structura pe segmente impusă de sistemul de calcul în vederea execuţiei programelor (program obiect executabil-POE). Odată construită structura pe segmente, programul va fi gata de execuţie, ceea ce va implica încărcarea acestuia în memoria internă şi execuţia efectivă; componenta sistemului de operare ce realizează

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

69

acest deziderat se numeşte încărcător. Dacă această componentă lansează automat execuţia programului după încărcarea în memoria internă, încărcătorul este de tip Load and Go.

Fig. 3.4. Pregătirea execuţiei programelor

2) alocarea resurselor necesare execuţiei programelor prin: - identificarea programelor ce se execută şi a necesarului de resurse; - alocarea memoriei interne şi a dispozitivelor periferice; - identificarea şi protecţia colecţiilor de date. 3) acordarea unor facilităţi prin utilitare de interes general: - gestiune cataloage (directori, subdirectori) şi fişiere; - creare, modificare, copiere, mutare, ştergere, recuperare directori şi fişiere; - sortare/interclasare; - comprimare/decomprimare spaţiu pe suporturile de memorie externă; - depistare şi eliminare viruşi informatici şi altele. 4) planificarea execuţiei mai multor programe (multiprogramare) după anumite criterii, în

vederea utilizării eficiente a unităţii centrale de prelucrare.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

70

5) coordonarea execuţiei mai multor programe ce se execută simultan, prin urmărirea modului de execuţie a instrucţiunilor programelor, depistarea şi tratarea erorilor, lansarea în execuţie a operaţiilor de intrare/ieşire şi depistarea eventualelor erori.

6) asistarea execuţiei programelor de către utilizator, prin comunicaţia sistem de calcul-utilizator atât la nivel hardware cât şi la nivel software.

7) asigurarea organizării şi protecţiei datelor în memorie. 8) posibilitatea generării unui sistem de operare pe măsura configuraţiei existente.

3.2.2. Componentele sistemului de operare

Sistemul de operare este interfaţa intre hardware-ul calculatorului şi utilizator; este alcătuit

dintr-o colecţie de programe care gestionează resursele calculatorului şi îi controlează activitatea. Componentele sistemului de operare sunt:

• nucleul (kernel); • interfaţa (shell).

Nucleul sistemului de operare conţine programele care gestionează resursele calculatorului şi controlează activitatea echipamentelor şi a programelor. Primele funcţii menţionate mai sus, sunt realizate de nucleu, respectiv:

• gestiunea resurselor fizice ale calculatorului şi a dispozitivelor periferice; • gestiunea operaţiilor de intrare/ieşire; • gestiunea datelor (fişierelor) pe suportul de memorie externă; • controlul încărcării în memoria internă, punerii în funcţiune şi încetării activităţii

pentru programele utilizator; • sesizarea evenimentelor deosebite care apar în timpul execuţiei şi tratarea acestor

evenimente (mesaje de erori şi recomandări de rezolvare); Interfaţa sistemului de operare asigură comunicarea între utilizator şi calculator. Prin

intermediul tastaturii sau al mouse-ului, utilizatorul transmite comenzi sau răspunsuri la solicitările calculatorului iar prin intermediul monitorului, transmite utilizatorului mesaje sau întrebări. Ultima funcţie a sistemului de operare menţionată mai sus este realizată de interfaţa sistemului de operare. Interfeţele pot fi realizate utilizând:

• limbaj de comandă; • sistem de meniuri; • grafic cu ajutorul simbolurilor (pictogramelor).

Interfaţa realizată printr-un limbaj de comandă. În acest tip de interfaţă utilizatorul transmite comenzile calculatorului sub forma unui şir de caractere care respectă o anumită sintaxă. Calculatorul permite utilizatorului să introducă o comandă afişând pe primele poziţii ale liniei curente de pe ecran un sir de caractere numit prompter. De regulă prompterul este compus din numele unităţii curente de disc, urmat eventual de numele directorului curent şi terminându-se cu caracterul “>” (ex: C:\LUCRU>).

De la tastatură (keyboard) utilizatorul introduce comanda care este păstrată în memoria internă numită “zona de editare a tastaturii”. Se acţionează tasta <Enter>, moment în care comanda este transferată în zona de memorie internă unde se află programul numit interpretor de comenzi.

Interpretorul analizează comanda, dacă aceasta este corectă, solicită procesorului să o execute utilizând resursele logice şi fizice, în final se afişează din nou prompterul. În cazul în care comanda nu a fost corect editată, pe ecran se afişează mesajul “Bad command or file name”.

Interfaţa realizată printr-un sistem de meniuri. In acest tip de interfaţă utilizatorul transmite comenzile calculatorului prin intermediul unui sistem de meniuri şi opţiuni de meniu sau poate folosi combinaţia de taste care apare în dreapta numelui opţiunii cunoscută şi sub numele de scurtătură (shortcut keys). Acest tip de interfaţă presupune existenta unui interpretor de comenzi care să folosească un sistem de meniuri sau interpretorul de comenzi să folosească un program care se suprapune peste interpretorul de comenzi.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

71

Pentru deschiderea meniurilor, declanşarea unei comenzi se realizează prin folosirea tastaturii (tehnica barei selectoare-dreptunghi evidenţiat pe ecran cu altă culoare sau tehnica literei de identificare-litera de identificare subliniată) sau mouse-ul.

Interfaţa realizată grafic cu ajutorul simbolurilor (pictogramelor). In acest tip de interfaţă instrucţiunile se dau calculatorului prin intermediul unor simboluri care sugerează conceptul, de exemplu o componentă a calculatorului, aplicaţie, parametru, etc. Aceste interfeţe folosesc metoda de trage şi plasează (drag and drop) prin care obiectele reprezentate prin pictograme pot fi copiate sau mutate. Utilizatorul trebuie în acest tip de interfaţă să cunoască pictograma care reprezintă aplicaţia. Sisteme de operare cu interfaţa realizata grafic sunt din familia Windows sau Linux.

Încărcarea sistemului de operare în memoria internă a calculatorului. La începutul fiecărei sesiuni de lucru trebuie încărcat în memoria internă nucleul sistemului de operare (conţine programele necesare gestionării resurselor calculatorului). Sistemul de operare se livrează pe suport magnetic sau optic, împreună cu calculatorul. Suport conţine un program de dimensiuni mici numit încărcător, situat la început de suport, şi programele aferente nucleului sistemului de operare.

În memoria tip ROM există un program numit preîncărcător utilizat pentru iniţializarea lucrului cu calculatorul. La pornire, programul preîncărcător iniţializează echipamentele periferice, identifică configuraţia calculatorului, caută sistemul de operare pe un suport magnetic, încarcă în memoria internă programul încărcător de la începutul suportului şi îl lansează în execuţie.

3.2.3. Programe de comandă – control

Sisteme de operare sunt alcătuite în principal, din două categorii de programe: - programe de comandă-control având rolul de coordonare şi control al tuturor funcţiilor

sistemului de operare; - programe de servicii care sunt executate sub supravegherea programelor de comandă-

control, utilizate de programator pentru dezvoltarea aplicaţiilor. Programele de comandă-control cunoscute şi sub numele de monitoare, supervizoare sau

executive, coordonează activitatea celorlalte componente ale sistemului de operare. Cele mai frecvent utilizate componente ale supervizorului sunt încărcate în memoria internă încă de la generarea sistemului de operare, fiind păstrate în memoria internă pe tot parcursul execuţiei aplicaţiilor de către sistemul de calcul; aceste programe se numesc rutine rezidente, formând nucleul sistemului de operare; celelalte componente rămân în memoria externă fiind apelate şi executate numai atunci când sunt solicitate de către nucleul sistemului de operare ( se numesc rutine tranziente) asemenea oricărui program de aplicaţie.

Dispozitivele periferice de intrare/ieşire trebuie să fie alocate aplicaţiilor care le solicită, datele solicitate fiind transferate în memoria internă sub controlul sistemului de gestiune a intrărilor/ieşirilor.

Programele de comandă control îndeplinesc trei funcţii majore: a. administrarea resurselor fizice ale sistemului de calcul; b. planificarea, lansarea şi urmărirea execuţiei aplicaţiilor; c. depistarea şi tratarea evenimentelor deosebite ce apar în timpul execuţiei unei aplicaţii. 3.2.4. Programe de servicii pentru dezvoltarea programelor de aplicaţie

Programele de servicii se execută sub controlul programelor de comandă control ca orice program de aplicaţie, având în componenţă programe care facilitează dezvoltarea programelor de aplicaţii respectiv programe utilitare de interes general. Principalele programe de care dispune orice sistem de operare pentru dezvoltarea unui program de aplicaţie sunt: editoarele de texte, translatoarele de limbaje, editoarele de legături, încărcătoarele şi depanatoarele.

1. Editoare de texte Un editor de texte este un set de programe ce oferă posibilitatea introducerii, editării, şi

tipăririi de texte sub forma unor fişiere ASCII. Editoarele de texte au ca activitate principală,

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

72

crearea şi editarea de texte; împreună cu hardware-ul, furnizează calea de urmat pentru vizualizarea, memorarea, editarea şi regăsirea textelor create. Proiectanţii editoarelor au prevăzut pentru cele mai frecvente funcţii, un sistem de Help ce constă în informaţii minime afişate la monitor referitor la modul de lucru al funcţiei.

Numele fişierului, pagina curentă, linia şi coloana în care se află cursorul, sunt permanent afişate pe monitor în vederea orientării utilizatorului; textul poate fi memorat pe suport magnetic, se poate refolosi şi modifica după necesităţi.

Editoarele de texte sunt componente ale sistemului de operare cu cea mai mare frecvenţa de utilizare, existând astăzi o mare varietate datorită serviciilor aduse pentru a degreva utilizatorul de sarcini elementare cum sunt: despărţirea în silabe, alinierea textelor, paragrafelor, titlurilor, sublinierea unor porţiuni din text, căutare unui şir de caractere şi editarea acestuia, indexarea documentului, realizarea cuprinsului, etc.

Observaţii: procesorul de texte poate produce fişiere ASCII numai dacă include opţiunea out of ASCII text; limbajul Java foloseşte caractere ASCII reprezentate pe 16 biţi (caractere Unicode) ce include caracterele întâlnite la majoritatea limbilor străine.

2. Translatoare de limbaje Translatoarele de limbaje sunt componente ale programelor de servicii care traduc programe

sursă(PS) scrise de utilizator într-un limbaj de programare, în programe obiect(PO), a căror instrucţiuni în limbaj maşină sunt recunoscute şi executate de sistemul de calcul.

Translatoarele de limbaje se divid în două categorii: 1) compilative care realizează numai traducerea PS → PO; acestea pot fi: • asambloare - programe de servicii care traduc programe sursă scrise în limbaje de

asamblare specifice fiecărui sistem de calcul (masm, tasm); • compilatoare - programe de servicii care traduc programe sursă scrise în limbaje

evoluate, universale (Pascal, C); 2) interpretative - care odată cu compilarea realizează şi execuţia programului (Basic). Spre deosebire de asambloare, compilatoarele creează o formă intermediară arborescentă a

instrucţiunilor din programul sursă astfel: - orice variabilă este un nod terminal al arborelui; - orice operator creează un arbore binar a cărui ramură stângă este primul operand, iar cea din

dreapta este al doilea operand.

Fig. 3.5. Etapele unui proces de compilare

(1) Analiza lexicală descompune PS în atomi lexicali (identificatori, cuvinte rezervate, constante, operatori) pe care îi introduce în tabela de simboluri sub formă codificată. (2) Analiza sintactică prin care şirul de atomi lexicali este analizat în privinţa depistării unor structuri sintactice ca: expresii, liste, proceduri, plasându-le într-un arbore de derivare (arbore

sintactic). (3) Analiza semantică foloseşte structura programului şi informaţiile din tabela de simboluri pentru generarea unui grup de instrucţiuni simple cu format fix (codul intern); dacă arborele

sintactic nu respectă gramatica limbajului, semnalizează erori. (4) Optimizarea codului presupune eliminarea redundanţelor, a lungimii şi variabilelor

inutile, în vederea unei execuţii mai eficiente.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

73

(5) Generarea codului alocă zone de memorie pentru păstrarea datelor în timpul execuţiei, alocă registre şi produce codul obiect.

(6) Gestiunea structurilor de date reprezintă o colecţie de proceduri care creează şi actualizează baza de date cu care lucrează celelalte faze; în baza de date se găsesc tabelele identificatorilor, a constantelor, a constructorilor, a cuvintelor cheie, a procedurilor standard, care uneori sunt înglobate într-o unică tabelă de simboluri.

(7) Tratarea erorilor este realizată de o colecţie de proceduri ce sunt activate când se depistează o eroare în program; utilizatorul primeşte mesaje de diagnostic iar compilatorul continuă analiza sintactică pentru a depista alte erori.

O succintă abordare comparată a translatoarelor de limbaje conduce către următoarele aspecte mai semnificative:

- asamblorul este determinat de limbajul maşină specific fiecărui sistem de calcul, iar compilatorul este specific unui limbaj de programare independent de sistemul de calcul;

- compilatorul oferă posibilitatea scrierii de programe pentru orice sistem de calcul ce dispune de compilatorul respectiv;

- asamblorul translatează o definiţie simbolică a programului sursă într-o singură definiţie din programul obiect, în timp ce compilatorul o poate translata în mai multe definiţii din

programul obiect; - interpretorul este util în special, la controlul proceselor industriale ce se desfăşoară în timp

real, însă interpretarea este mai lentă decât compilarea; - execuţia repetată a unui program este facilitată de compilator care realizează translatarea o

singură dată, în timp ce interpretorul îl translatează de fiecare dată. Există componente ale sistemului de operare ce sunt concepute ca programe generalizate care,

în funcţie de necesităţile utilizatorului se pot adapta pentru a realiza un grup de funcţii; aceasta se realizează în faza de asamblare, prin intermediul unui macrolimbaj care asigură generarea secvenţelor de program (PS şi PO) specificate. Macrolimbajul foloseşte macroinstrucţiuni care sunt instrucţiuni ale PS, care asigură prin intermediul comenzilor, inserarea în PS a secvenţei de instrucţiuni în locul unde a apărut macroinstrucţiunea.

Macroasamblorul este componenta programelor de servici a sistemului de operare care tratează macroinstrucţiunile, având ca activităţi de bază:

- recunoaşterea macrodefiniţiilor indicate prin MACRO, ENDM; - memorarea definiţiilor macroinstrucţiunilor de care are nevoie pentru a le expanda la un apel

macro; - recunoaşterea apelului macroinstrucţiunii cu secvenţa de instrucţiuni corespunzătoare. - înlocuirea macroinstrucţiunii cu secvenţa de instrucţiuni corespunzătoare. 3. Editorul de legături Structura externă a unui PS este alcătuită din secţiune, segment şi program. Secţiunea este o unitate de program independentă constituită dintr-o secvenţă de definire a

datelor şi o secvenţă de instrucţiuni, ce asigură posibilitatea comunicării cu alte unităţi ale PS. Definirea datelor şi procedurilor servesc atât propriei secţiuni cât şi altor secţiuni. Compilatorul asigură pe lângă generarea codului obiect şi informaţii de legătură între secţiuni: - informaţii de identificare (nume secţiune, punctul de intrare); - informaţii de legătură. Structura unei secţiuni după compilare conţine Numele secţiunii, Punctul de intrare,

Dicţionarul de legǎturǎ şi Codul obiect. Dicţionarul de legături rezultă în urma determinării de către compilator, a elementelor de comunicaţie specificate în fiecare secţiune a PS, conţinând două tipuri de simboluri: - externe - nedefinite în secţiune, cu adresa necunoscută; - interne - definite în secţiune, dar referite din exteriorul acesteia. Segmentul este o succesiune de secţiuni între care au fost rezolvate legăturile conţinând: - numele segmentului; - punctul de intrare în segment;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

74

- codul obiect al secţiunilor aranjate într-o anumită ordine. Programul este o structură arborescentă de segmente (segment principal şi segmente

subordonate organizate pe substructuri); acesta este organizat într-o structură multifazică de către editorul de legături, care pe baza numelor segmentelor din care este alcătuit programul şi a secvenţei de secţiuni din care este compus fiecare segment, creează structura de program pe care o depune pe suport extern (de obicei, hard-disk) de unde va fi încărcat în RAM pentru execuţie.

Editorul de legături prelucrează PO rezultat în urma compilării secţiunilor, în scopul construirii structurii pe segmente a programului; el este o componentă a programelor de servicii care asigură următoarele funcţii:

- construirea dicţionarului de legături între diverse secţiuni; - înlocuirea fiecărei secţiuni din cadrul unui segment, cu un factor de relocare; - alocarea de zone continue pentru segment; - modificarea constantelor de adresă relocabile; - căutarea în biblioteca relocabilă, a modulelor obiect catalogate; - construirea structurii arborescente a programelor executabile.

Observaţii: mediul de programare Pascal include editorul de legături în compilator, iar sub sistemul de operare UNIX editarea legăturilor se realizează implicit.

3.2.5 Alte programe de servicii

Încărcătorul este componenta sistemului de operare ce încarcă programul obiect executabil

(POE) în RAM în vederea execuţiei şi iniţializarea execuţiei. Încărcarea programelor în RAM pentru execuţie se poate face: - imediat după translatare, când sistemul de operare are inclus încărcătorul în compilator (compilatoare Load and Go); - în momentul editării de legături (încărcătorul inclus în Link); - după editarea de legături, ca proces distinct. Activitatea încărcătorului la sistemul de operare MS-DOS este materializată prin execuţia

funcţiei exec, în timp ce la sistemul de operare UNIX funcţia similară este execl. Depanatorul este un program de servicii ce oferă utilizatorului mijloace convenabile pentru

depanarea şi controlul operaţiilor programului său prin: - lansarea în execuţie a programului; - suspendarea execuţiei în puncte predeterminate (breakpoints) sau execuţie pas cu pas; - examinarea şi modificarea conţinutului cuvintelor din RAM şi registre; - realizarea de modificări şi corecţii adiţionale la rularea programului, utilizând codul binar,

octal, hexazecimal. Sub MS-DOS există utilitarul debug, în timp ce sub UNIX se poate folosi utilitarul sdb ce se

constituie ca un depanator simbolic care permite analiza execuţiei pas cu pas a programelor, prin vizualizarea stării variabilelor, a parametrilor ce definesc mediul de execuţie şi altele.

Alături de programele de servicii destinate acordării de instrumente ce oferă facilităţi utilizatorilor pentru dezvoltarea propriilor programe de aplicaţie, un sistem de operare dispune de programe de interes general care sunt lansate în execuţie prin specificarea unor comenzi aparţinând interpretorului de comenzi sau se găsesc pe suportul de memorie externă sub forma fişierelor executabile:

- gestiunea cataloagelor (directori, subdirectori): copiere, mutare, ştergere, creare, redenumire etc. - gestiunea datelor şi programelor sub forma fişierelor: creare, mutare, copiere, ştergere,

redenumire, salvare, refacere etc.; - informaţii despre sistemul de calcul, despre componente şi despre resursele utilizate; - opţiuni de configurare a resurselor; - comprimare/decomprimarea spaţiu de memorie externă: pkzip/pkunzip, arj, rar, stacker; - antivirus: scan, clean, tbav, fprot, avx, rav; - alte comenzi

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

75

3.2.6. Sisteme de operare la calculatoare personale Categorii de sisteme de operare La calculatoarele personale (PC) există în principal două categorii de sisteme de operare: 1) monotasking care execută un singur task (program sau parte a unui program aflat în faza

de execuţie) la un moment dat, având ca principale funcţii: - încărcarea şi execuţia programelor; - asigurarea unei interfeţe omogene cu dispozitivele periferice; - posibilitatea dialogării cu utilizatorul prin intermediul unui interpretor de comenzi. 2) multitasking care va asigura suplimentar, partajarea timpului între programele ce se

execută simultan şi gestiunea alocării resurselor sistemului de calcul atât hardware cât şi software; nucleul sistemului de operare include următoarele componente:

- supervizorul care are ca principale activităţi lansarea, oprirea sau suspendarea aplicaţiilor; - planificatorul proceselor care reglează timpul de execuţie alocat pentru diverse activităţi.

I. alocatorul de resurse evidenţiază resursele libere sau alocate; II. modulul de gestiune pentru intrări /ieşiri ce asigură dialogul cu perifericele.

La nucleul sistemului de operare se adaugă: I. interpretorul de comenzi; II. sistemul de gestiune al fişierelor; III. sistemul de gestiune al bazelor de date; IV. programe de comunicaţie

Un sistem de operare, în forma cea mai simplă, apare ca o colecţie de proceduri cu funcţii precise şi cu o interfaţă bine precizată între acestea.

Serviciile furnizate de sistemul de operare, sunt solicitate prin • încărcarea anumitor registre cu informaţia necesară sau depunerea acestei informaţii în

stivă şi apoi • provocarea unei întreruperi cunoscută sub numele de apel provizoriu sau apel nucleu.

Acest apel determină trecerea sistemului de calcul din modul utilizator în modul nucleu şi transferă controlul sistemului de operare.

Sistemul de operare analizează parametrii apelului pentru a-l identifica, iar apoi apelează procedura de serviciu necesară.

Această descriere sugerează scheletul unui sistem de operare, un program ce invocă o procedură de serviciu, o bibliotecă de proceduri ce corespund apelurilor sistem, o bibliotecă de proceduri utilitare pentru procedurile de serviciu.

O altă posibilitate este de a privi sistemul de operare structurat pe nivele. Un sistem de operare cu 6 nivele poate cuprinde (din interior spre exterior):

• alocarea procesorului şi multiprogramarea, • gestiunea memoriei, comunicaţia operator – sistem, • gestiunea echipamentelor de intrare / ieşire, • programele utilizator şi operatorul.

Referirile s-au făcut la nucleul sistemelor de operare rezident în memoria internă, parte componentă a programelor de comandă control; considerentele precizate la programele de sistem rămân valabile cu specificul impus de categoria microsistemelor.

Principalele sisteme de operare existente astăzi pe PC-uri sunt: MS-DOS şi interfeţele grafice Windows, Unix, OS/2, Apple/Macintosh DOS, VMS.

1) MS-DOS (Microsoft – Disk Operating System). În 1981 firma Microsoft a lansat sistemul de operare IBM MS-DOS care în 1985 a devenit standardul sistemelor de operare pe microcalculatoare cu implementarea microprocesoarelor pe 16 biţi (I 8086, I 8088) MS-DOS versiunea 3.3; versiunile ulterioare oferă facilităţi pentru desfăşurarea activităţii utilizatorului prin punerea la dispoziţie a unor opţiuni de alegere din meniu, comparativ cu versiunile anterioare care presupuneau cunoaşterea sintaxei fiecărei comenzi; software-ul special – denumit DOS SHELL – a făcut din sistemul de operare MS-DOS un sistem uşor de utilizat, cu meniu disponibil pentru

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

76

comenzi. Ultima versiune este MS-DOS 7 sub interfeţele grafice Windows. Sistemul de operare MS-DOS a fost proiectat în principal, să execute un singur program pentru un singur utilizator.

2) Digital Research Corporation a introdus câteva versiuni noi, incluzând DOS Concurent care suporta execuţia mai multor programe în acelaşi timp (DR-DOS).

3) Apple DOS a fost introdus pe PC-urile de tip Apple, care se bazează pe microprocesoare diferite decât cele folosite de IBM, deci incompatibil cu clasele de PC-uri de tip IBM; iniţial a fost destinat pentru un singur utilizator care execută un program la un anumit moment.

Un sistem de operare mult mai puternic este Macintosh DOS proiectat să fie utilizat pe PC-uri de tip Apple /Macintosh DOS (implementat cu microprocesor Motorola 68040) ce permite multiprogramare şi memorie virtuală. Apple Computer a lansat generaţia de sisteme de operare constituită din Mac OS 8 şi Rhapsody. Mac OS 10.5 sau OS X Leopard (denumire comercială), a cincea generaţie a sistemului de operare OS X, a pregătit 300 de noi facilităţi. Una dintre cele mai aşteptate deopotrivă de către utilizatorii tradiţionali de Mac cât de către cei ai Windows - dar fani ai elegantelor produse Apple - se numeşte “Boot Camp”. Aceasta permite instalarea Windows XP sau Vista pe un computer Macintosh cu procesor Intel, alături de sistemul de operare OS X Leopard.

4) Interfeţele grafice WINDOWS sunt orientate pe ferestre; utilizatorul poate lansa concomitant mai multe aplicaţii, fiecare în fereastra ei, precum şi efectuarea schimbului de informaţii între acestea. Se consideră ca apariţia sa marchează momentul în care calculatoarele IBM şi compatibile, au putut egala facilităţile de utilizare şi viteza calculatoarelor din gama Macintosh.

Windows 3.11. for Wokgroups, spre deosebire de Windows 3.1., dispune suplimentar de facilităţi pentru lucru în reţea a grupurilor de utilizatori conectaţi; aceştia pot efectua transferuri de date, mesaje, informaţii prin simpla selectare şi activare a unor comenzi şi funcţii disponibile.

Windows NT (New Tehnology) a fost proiectată în ideea compatibilităţii cu interfeţele grafice precedente, Windows 3.1. şi Windows 3.11. for Workgroups. Are posibilitatea implementării atât pe platforme Intel şi pe platforme bazate pe microprocesoare RISC.

Windows 95 (Chicago) spre deosebire de versiunile precedente, încearcă să fie un compromis de sistem de operare ce lucrează pe 32 de biţi; încorporează majoritatea facilităţilor regăsite la celelalte interfeţe grafice, adăugând şi altele noi. Este util doar în aplicaţii pe 32 de biţi, chiar dacă păstrează compatibilitatea cu aplicaţiile pe 16 biţi.

Windows 98 (Memphis)este un sistem de operare complet integrat cu Internetul, constituindu-se ca un suport pentru noile tehnologii hardware şi păstrând compatibilitatea cu Windows 95 faţă de care apare ca un upgrade.

Windows 2000 este un sistem de operare de reţea, proiectat pentru organizaţii de orice dimensiune, oferă siguranţă sporită şi costuri mai reduse pentru aplicaţii şi servicii derulate prin Internet. Windows 95/98 şi NT sunt combinate în Windows 2000, pentru aplicaţii profesionale, multimedia, jocuri, cu o mare amprentă asupra securităţii datelor. Windows este considerat începând cu versiunea 98, ca un sistem de operare destul de stabil.

Windows Millennium Edition (Windows Me) extinde Windows 98 Second Edition cu elemente preluate din Windows 2000, pentru mediul pe 32 biţi, pentru segmentului home-user.

Windows XP este generaţia celui mai răspândit sistem de operare din lume, bazat pe tehnologia NT pentru staţiile de lucru. Windows XP Professional integrează punctele forte ale versiunii Windows 2000 - securitatea crescută, administrabilitatea şi fiabilitatea cu cele mai bune caracteristici de business ale Windows 98 şi Windows Me - Plug and Play, interfaţa cu utilizatorul uşor de folosit şi serviciile inovative de suport. Windows XP Home Edition cu noul nucleu Windows, oferă fiabilitate şi stabilitate calculatorelor de acasă.

Windows 2003 este un sistem de operare destinat serverelor şi este bazat pe tehnologia Microsoft.NET. Windows Server 2003 R2 aduce:

• management simplificat al serverelor din sucursale; • costuri reduse pentru managementul spaţiului de stocare; • platformă Web bogată; • virtualizarea serverelor la costuri reduse; • management îmbunătăţit al identităţii şi al accesului.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

77

Windows Vista este ultima versiune a sistemului de operare Microsoft Windows, proiectată sub numele de cod Longhorn. Windows Vista are sute de noi proprietăţi şi capacităţi, cum ar fi o modernă interfaţă grafică şi un stil vizual nou numit Aero, tehnologia de căutare îmbunătăţită, noi unelte multimedia, precum şi sub-sistemele complet remodelate de reţea, audio, imprimare şi afişare (display). Windows Vista este comercializat în 35 de versiuni lingvistice, între care şi una în limba română. Noi în Windows Vista sunt şi două structuri pentru tastatură, Română (Legacy) şi Română (Programatori), care conţin caracterele ş şi ţ cu virgulă în loc de vechiul standard Windows cu sedilă (ş şi ţ).

Windows Server 2008 este noua versiune a sistemului de operare destinatǎ lumii profesionale disponibilǎ în patru varinate (fara a contoriza dualitatea 32 / 64 bits). Windows Server 2008 poate fi uşor transformat într-un sistem de operare pentru desktop, vine default cu Powershell, o soluţie de virtualizare integrată, mai puţine găuri de securitate datorită SP1. Windows Server 2008 este cel mai avansat sistem de operare Windows Server de până acum, conceput sa stea la baza urmatoarei generatii de retele, aplicatii si servicii web. Ca urmare a alegerilor tehnologice facute in perspectiva anilor urmatori, arhitectura SeniorERP este configurata pentru a oferi avantaje pe termen lung:

• Server de aplicatie SeniorERP hostat in IIS 7.0 + Windows Process Activation Service (WAS) si .Net 3.0

• Server baze de date: SQL Server 2005 • Client Windows: smart client, .Net 3.0, cu actualizare automata prin ClickOnce • Client mobile: smart client .NET CF 2.0 • Portal E-Commerce integrat cu SeniorERP, realizat utilizand ASP.NET 2.0 • Platforma de colaborare + publicare BI: Sharepoint 3.0 • Platforma de comunicare SeniorERP bazata integral pe Windows Communication

Foundation (WCF) Între restul atuurilor aduse de Windows Server 2008 se numara si Internet Information

Services 7.0, Terminal Services RemoteApp, noi protocoale TCP/IP si Read-Only Domain Controller.

5) OS/2 (Operating System / 2) a fost introdus în 1988 de IBM şi Microsoft, dorind să preia avantajele microprocesoarelor I 80286 şi I 80386 pentru seria de microcalculatoare IBM PS/2 pe 32 biţi. Este un sistem de operare multitasking, fiind capabil a adresa 16 M memorie internă; necesită 1,5 M memorie internă şi hard disc; versiunile construite în jurul microprocesorului I 80386 sunt şi multiutilizator (maxim 16 utilizatori simultan). Deşi spaţiul adreselor fizice este de 16 M, prin mecanismul memoriei virtuale spaţiul adreselor virtuale poate accesa până la 32 MB. OS/2 păstrează majoritatea comenzilor MS-DOS în special pentru operaţiile cu fişiere şi periferice.

Pentru a permite mişcarea intre aplicaţii a utilizatorului, OS/2 dispune de o interfaţă PM (Presentation Manager) orientată pe ferestre pentru introducerea comenzilor, selectarea taskurilor ce se vor executa, gestiunea taskurilor şi altele; PM dispune de două programe de comandă control:

▪ controlul pentru configurarea porturilor, culorilor ecranului şi setului de caractere, etc.; ▪ utilitar pentru fişiere ce permite deplasarea prin arbori de directori, mutare, copiere, ştergere

de fişiere şi subdirectori, modificarea atributelor, sortarea şi alte operaţii. Versiunile recente OS/2 Warp şi OS/2 Warp Connect solicită cel puţin un sistem AT 386 cu

4 M de RAM (OS/2 Warp) respectiv 8 M de RAM (Warp Connect). OS/2 Warp este un sistem de operare ce controlează acţiunile calculatorului, dar este şi o

interfaţă grafică utilizator (GUI-Graphical User Interface), care permite comanda calculatorului, prin selectarea de simboluri vizuale. Dintre facilităţile disponibile la OS/2 Warp se pot enumera:

▪ lucrul cu mai multe programe (multitasking); ▪ interfaţa sistemului Warp este uşor de înţeles, de memorat; ▪ programele livrate cu Warp au aspecte grafice şi de operare similare (pachetul Bonus

Pak) ▪ OS/2 Warp facilitează conectarea la Internet (CIM)

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

78

Bonus Pak include un procesor de texte, un program de tip foaie electronică de calcul (spredsheet), generator de diagrame, Sistem de Gestiune a Bazelor de Date (SGBD), generator de rapoarte; utilitare pentru accesoriile: plăci audio, fax / modem, video, etc.

6) UNIX a fost iniţial creat pentru minicalculatoare, pentru a mări disponibilităţile sistemului: memorie virtuală, multiutilizator şi multitasking; rescris în limbajul C, a fost portabil pe o gamă mai largă de sisteme de calcul: mainframes, microcalculatoare, de unde şi unul din marile sale avantaje. Actualmente, sistemele de operare UNIX sunt proiectate de mai multe firme specializate, ceea ce a condus la existenta mai multor versiuni cum sunt: AIX, SCO-ODT, HP-UX, SOLARIS, Digital, UNIX, IRIX, Linux, ş.a.

Trăsăturile principale ale sistemului de operare UNIX sunt: ▪ Sistemul de fişiere structurat pe mai multe niveluri, ceea ce permite mai multor utilizatori să

lucreze cu acelaşi calculator în acelaşi timp (multiuser); ▪ Orice utilizator curent poate solicita execuţia mai multor programe în acelaşi timp

(multitasking); ▪ Un program utilizator poate să transmită rezultatele sale altui program; ▪ Utilizatorul poate redirecta rezultatele programului său de la un dispozitiv periferic la altul; ▪ Interpretor de comenzi şi un limbaj adecvat, cunoscut sub denumirea de Shell; ▪ Foloseşte un limbaj structurat, C, pentru programarea sistemelor; ▪ Includerea unor componente pentru editarea textelor şi formatarea lor pentru tipărire; ▪ Utilizarea de tehnici evoluate pentru conectarea sistemelor de calcul care operează sub

UNIX sau alt sistem de operare; ▪ Nu impune vreo limită la eventualele modificări determinate de specificul aplicaţiei. Linux a fost dezvoltat ca o versiune distribuită gratuit de UNIX, UNIX fiind unul dintre cele

mai utilizate sisteme de operare în lume, mult timp standardul pentru staţii de lucru de înaltă performanţă şi servere mari. Pentru că UNIX este un produs comercial, el trebuie cumpărat pentru fiecare platformă pe care rulează. Licenţele pentru versiunile UNIX pentru PC-uri sunt destul de scumpe şi de aceea, în tentativa de a face UNIX-ul disponibil fără costuri pentru cei care vor să-l experimenteze.

Una dintre primele astfel de versiuni ale UNIX-ului a fost Minix, scrisă de Andrew Tanenbaum. Cu toate că Minix nu avea un set foarte mare de caracteristici, a fost un mic sistem de operare ce putea fi folosit pe PC-uri. Pentru a extinde Minix-ul, un număr de programatori au început dezvoltarea unui sistem de operare mai puternic care să profite de avantajele arhitecturii microprocesorului I 80386. Unul din primii proiectanţi ai acestui sistem cunoscut ulterior sub numele de Linux, a fost Linus Torvalds de la Universitatea din Helsinki. El a lansat o primă versiune a Linux-ului în 1991.

Linux nu se bazează pe o singură versiune de UNIX, ci este o consolidare a celor mai bune caracteristici ale BSD UNIX şi System V. BSD UNIX a fost dezvoltat şi implementat la Universitatea din California (Berkeley) începând din anul 1997. Câteva lansări majore au crescut puterea lui BSD UNIX. Compania AT&T care a realizat prima versiune de UNIX, a continuat propria dezvoltare producând o serie de versiuni UNIX numite System III, System IV şi System V. Linux foloseşte prima lansare a lui BSD UNIX numită 4.4 BSD ca bază şi preia câteva alte caracteristici din ultima lansare a versiunii System V, numită System V Release 4 ( SVR4 ).

Linux este un sistem de operare complet multitasking şi multiuser care se comportă ca sistemele de operare UNIX în termenii comportamentului nucleului şi a suportului pentru

periferice. Linux are toate trăsăturile UNIX-ului, plus câteva extensii recente care i-au adăugat mai multa flexibilitate .

Unele servicii software furnizate chiar de nucleu, au proprietăţi similare, prin urmare au fost abstractizate în clase. De exemplu, diferitele protocoale de reţea au fost abstractizate într-o singură interfaţă de programare numită BSD socket library. Fişierele de sistem virtuale (Virtual File System -VFS) abstractizează operaţii legate de fişiere şi fiecare sistem de fişiere are propria implementare. Pentru a face ca Linux-ul să fie acceptat la scară largă, el suportă un număr de sisteme de fişiere

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

79

inclusiv cele compatibile cu DOS şi OS/2. Sistemul iniţial de fişiere propriu al Linux-ului numit ext2fs proiectat pentru o utilizare optimă a discului.

Linux-ul este ideal pentru dezvoltare de aplicaţii şi experimentare cu noi limbaje. Diferite compilatoare, inclusiv C, C++, Fortran, Pascal, Modula-2, LISP, Ada, Basic şi Smalltalk vin prin distribuirea software-ului. Multe dintre compilatoarele Linux-ului, instrumente, debuggere şi editoare provin de la proiectul GNU Free Software Foundation.

7) Open VMS, iniţial denumit VMS ( Virtual Memory System ), a fost conceput în 1976 ca un sistem de operare pentru noua linie de calculatoare pe 32 de biţi a firmei DEC (Digital Eguipment Corporation), numită VAX (Virtual Address eXtension ). Primul model VAX ( 11/780 ) a fost denumit Star, de aici şi numele de cod Starlet pentru sistemul de operare VMS, nume care se păstrează şi astăzi ca nume pentru biblioteca sistem ( STARLET.OLB). Versiunea actuală a sistemului de operare este Open VMS 7.2. Open VMS este un sistem de operare pe 32 de biţi cu suport pentru multitasking, multiprocesor şi memorie virtuală.

Ultima versiune (OpenVMS V7.2-1) include suport pentru COM V1.1 pentru OpenVMS, canale de fibre optică pentru conectarea dispozitivelor de stocare, suport pentru multe din standardele importante cum ar fi OSF/Motif şi OSF Distributed Computing Enviroment (DCE), Java şi Microsoft Distributed Component Object Model (DCOM).

3.3. TEHNICI DE GESTIUNE A LUCRĂRILOR LA SISTEMELE DE CALCUL Unul dintre obiectivele utilizării eficiente a sistemelor de calcul este acela de a executa un

volum cât mai mare de lucrări, cu o configuraţie minimă (termenul de lucrare desemnează activităţile declanşate de solicitarea unor prelucrări cu ajutorul sistemelor de calcul).

În acest scop se analizează componenta hardware (din punct de vedere al costului, ca măsură a utilizării eficiente a volumului de lucrări ce trece prin system într-o perioadă dată de timp) şi software (un program este bun dacă răspunde cerinţelor informaţionale pentru care a fost realizat, utilizează un spaţiu minim de memorie internă şi un timp de execuţie cât mai redus).

Rolul principal al sistemului de operare este să îmbunătăţească eficienţa utilizării resurselor sistemului de calcul. Componentele sistemului de operare, sunt astfel proiectate încât să utilizeze cât mai eficient fiecare resursă a sistemului de calcul: timpul unităţii centrale de prelucrare, spaţiul de memorie internă şi externă, registre, dispozitive periferice de intrare/ieşire şi altele.

Pentru aprecierea performanţelor unui sistem de calcul se pot utiliza o serie de indicatori: - volumul de lucrări intrate în sistem; - timpul petrecut în sistem; - timpul de răspuns ca diferenţă între momentul servirii cererii şi emiterea ei; - accesibilitatea sistemului; - fiabilitatea sistemului; - costul serviciilor prestate. Unii indicatori sunt în conflict, astfel că o creştere a performanţelor unui indicator se

realizează pe seama scăderii performanţelor altui (altor) indicator(i); exemplu: creşterea volumului de lucrări din sistem implică o creştere a timpului petrecut în sistem de către fiecare lucrare şi implicit la creşterea timpului de răspuns; verificările de securitate măresc timpul de prelucrare.

3.3.1. Obiectivele urmărite în gestiunea lucrărilor Una dintre funcţiile majore ale unui sistem de operare este de a optimiza utilizarea tuturor

resurselor unui sistem de calcul: timp unitate centrală de prelucrare, spaţiu de memorie internă, canale, registre, dispozitive periferice de intrere/ieşire, biblioteci, programatori, utilizatori, rezultate ale prelucrării.

Cu o planificare foarte riguroasă este posibilă apropierea de încărcarea maximă a unităţii centrale de prelucrare şi a procesoarelor de intrare/ieşire (canale). Chiar şi în acest caz însă, sunt

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

80

menţinute neocupate alte resurse ale sistemului de calcul: memoria internă, memoria externă, dispozitivele periferice de intrare/ieşire.

La stabilirea unei modalităţi de planificare a lucrărilor trebuie cunoscute foarte precis obiectivele, uneori subiective şi contradictorii, de realizare simultană a următoarelor activităţi: execuţia unui volum cât mai mare de lucrări în unitatea de timp, dacă se rulează lucrări cu timp redus de execuţie, reducerea timpilor de aşteptare ai unităţii centrale de prelucrare, dacă se execută lucrări cu volum mare de calcule şi număr redus de operaţii de intrare/ieşire, încărcarea dispozitivelor periferice la capacitate maximă, când se execută lucrări cu volum mare de operaţii de intrare/ieşire şi volum redus de calcule. Se observă că unele obiective se exclud prin natura lor.

Se poate aprecia în general, că pentru stabilirea unei strategii de planificare a execuţiei unor lucrări în condiţiile impuse de limitările hardware, se vor urmări obiectivele:

- maximizarea ratei de ieşire a lucrărilor; - minimizarea timpului mediu de răspuns; - servirea unui număr cât mai mare de utilizatori, într-un timp acceptabil; - reducerea costurilor pentru serviciile prestate; - posibilitatea execuţiei unor lucrări cu prioritate (printr-un cost mai ridicat); - încărcarea echilibrată a unităţii centrale de prelucrare şi a sistemului de intrare/ieşire; - folosirea cu un randament ridicat a spaţiului de memorie internă şi externă; - distribuirea prelucrării unui program, prin împărţirea acestuia în sarcini mai mici (taskuri) ce

se pot executa în paralel (multitasking); - integrarea unui număr cât mai mare de utilizatori (clienţi) la procesorul central (server). 3.3.2. Monoprogramarea Monoprogramarea este o tehnică de gestiune a lucrărilor ce presupune execuţia secvenţială a

lucrărilor solicitate a se prelucra pe un sistem de calcul. Caracteristicile acestei tehnici se concretizează în următoarele aspecte: - planificarea lucrărilor se realizează strict secvenţial într-o ordine prestabilită; - fiecare lucrare are la dispoziţie toate resursele sistemului de calcul în momentul execuţiei; - fiecărei lucrări i se asociază un singur proces la un moment dat, astfel că pe durata

operaţiilor de intrare/ieşire (care durează mult comparativ cu durata de execuţie a unităţii centrale de prelucrare), unitatea centrală de prelucrare aşteaptă terminarea acestor operaţii, conducând la creşterea duratei de execuţie a lucrărilor.

Obiectivul urmărit în cadrul acestei tehnici îl constituie reducerea timpului mediu petrecut de lucrare în sistem.

Execuţia lucrărilor în monoprogramare Un program solicită pe parcursul execuţiei operaţii de intrare/ieşire; operaţiile sunt

supervizate de către un procesor de comunicaţii numit canal, care transferă conţinutul între memoria internă şi dispozitivele periferice de intrare/ieşire.

Dacă unitatea centrală de prelucrare întâlneşte o instrucţiune de citire, atunci iniţiază execuţia unui proces de intrare către procesorul de comunicaţie, continuând-şi activitatea de prelucrare fără a se interfera cu activitatea canalului. Procesele de intrare/ieşire fiind mai lente, unitatea centrală de prelucrare va aştepta transferal datelor solicitate în vederea prelucrării lor ulterioare; dacă procesul de intrare s-a încheiat, unitatea centrală de prelucrare va fi sesizată de canal printr-o întrerupere.

Sincronizarea activităţilor dintre unitatea centrală de prelucrare şi procesorul de comunicaţie este redată în fig. 3.6.

Pentru aprecierea eficienţei utilizării acestor procesoare ( CPU, DMAC), se calculează randamentul de utilizare (în % ):

(3.1.)

(3.2.)

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

81

Deşi prezenţa canalului ameliorează productivitatea sistemului datorită simultaneităţii activităţii acestuia cu activitatea CPU (parţial sau total), există intervale de timp impuse de necesitatea sincronizării activităţilor în care CPU este în starea de aşteptare.

Fig. 3.6. Sincronizarea activităţilor dintre unitatea centrală de prelucrare ( CPU ) şi procesorul

de comunicaţie ( DMAC ) în monoprogramare t1 - momentul iniţierii de către CPU a unei operaţii de intrare; t2 - momentul în care CPU are nevoie de datele solicitate de la dispozitivul periferic de

intrare, pe care nu le are deoarece nu s-a terminat operaţia de citire; t3 - se termină operaţia de citire şi se reia execuţia programului de către CPU cu datele

solicitate; t4 - momentul încheierii execuţiei programului.

3.3.3. Multiprogramarea

Timpul de inactivitate al CPU impus de perioadele de aşteptare poate fi redus substanţial dacă în memoria internă ar putea coexista simultan mai multe programe ce pot solicita CPU atunci când aceasta aşteaptă terminarea unei operaţii de intrare/ieşire pentru lucrarea curentă în execuţie.

Multiprogramarea este o tehnică de gestiune a lucrărilor pe sistemele de calcul prin care sunt plasate mai multe lucrări simultan în memoria internă iar CPU comută între ele; din punct de vedere conceptual, multiprogramarea implică simultaneitatea a "n" procesoare pe un singur procesor sau existenţa a "n" procesoare virtuale în cadrul unui singur procesor.

Caracteristicile de bază ale acestei tehnici constă în: - existenţa simultană a mai multor lucrări în memoria internă; - existenţă unui mecanism de trecere de la un program la altul astfel ca randamentul

sistemului să fie ridicat; - existenţa unui mecanism de protecţie între lucrări care să permită execuţia fiecăreia, fără

afectarea celorlalte lucrări existente în memoria internă; - existenţa unui mecanism pentru gestiunea resurselor fizice şi logice solicitate de către

lucrările în execuţie (echipamente periferice, informaţii, etc.). Obiectivul urmărit în multiprogramare îl constituie maximizarea volumului de lucrări care

trec prin sistem şi minimizarea timpului petrecut de o lucrare în sistem. Multiprogramarea se poate aprecia ca o dezvoltare a sistemului de operare, iar folosirea

partajată a CPU de către lucrări, ca o execuţie concurentă (în realitate, partajarea este realizată pe intervale distincte).

Planificarea execuţiei lucrărilor Sistemele de calcul ce utilizează tehnica multiprogramării sunt prevăzute cu o componentă a

sistemului de operare numită monitor de planificare a lucrărilor, care alege dintr-un grup de programe în ordinea sosirilor, pe acelea potrivit cărora timpul neocupat al CPU să fie minim; există o limită pentru numărul de lucrări ce pot fi executate simultan funcţie de memoria afectată utilizatorilor.

Procesul de planificare are două funcţii distincte: - asigurarea priorităţii; - alocarea resurselor care utilizează prioritatea. Algoritmii de planificare presupun că lucrările sunt ordonate pe bază de prioritate, sub forma

firelor de aşteptare. Alegerea unui anumit algoritm se va face după obiectivele urmărite; Dintre algoritmii frecvent utilizaţi în multiprogramare se menţionează:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

82

STF (Shortest proccessing Time First) - lucrarea cu cel mai scurt timp de prelucrare este prima executată, urmăreşte minimizarea timpului de trecere prin sistem a lucrărilor ce durează puţin;

LTF (Longest proccessing Time First) - lucrarea cu cel mai lung timp de prelucrare este prima executată, urmăreşte reducerea timpului total de execuţie a lucrărilor;

SMF (Smallest Memory requirment First) - lucrarea ce necesită cel mai mic spaţiu de memorie este prima executată;

LMF (Largest Memory requirment First) - lucrarea ce necesită cel mai mare spaţiu de memorie este prima executată;

FIFO (First Input First Output) - lucrările sunt executate în ordinea lansării în execuţie; LIFO (Last Input First Output) - lucrările sunt executate în ordinea inversă lansării în

execuţie; Round-Robin sau planificarea circulară, fiecare lucrare având alocată o cuantă de timp

(interval de 1-10 ms), după care controlul este comutat la următoarea lucrare. Sincronizarea activităţii CPU cu activitatea procesorului de comunicaţie Sincronizarea activităţii CPU cu activitatea procesorului de comunicaţie este redată în fig. 3.7.

presupunând existenţa a trei programe încărcate în memoria internă (P1,P2,P3) la un moment dat, ce sunt executate de CPU conform algoritmului Round-Robin.

Fig. 3.7. Sincronizarea activităţilor dintre CPU şi procesorul de comunicaţie în

multiprogramare

(3.3.)

(3.4.) t1 - momentul iniţierii unei operaţii de intrare/ieşire de către CPU pentru P1; t2 - momentul când P1 are nevoie de transferul datelor solicitate la t1 care nu sunt disponibile

deoarece nu s-a terminat operaţia de intrare/ieşire, comutând astfel la execuţia programului următor P2;

t3 - terminarea operaţiei de intrare/ieşire pentru P1 (CPU este ocupată cu P2); t4 - iniţierea operaţiei de intrare/ieşire pentru P2; canalul fiind liber, trece la execuţia

solicitată; t5 - momentul când P2 necesită datele solicitate; operaţia de intrare/ieşire nu s-a încheiat, deci

CPU comută la P3; t6 - iniţierea unei operaţii de intrare/ieşire de către P3; canalul este ocupat, trece operaţia în

aşteptare; t7 - se termină operaţia de intrare/ieşire iniţiată de P2 şi poate fi lansată operaţia de

intrare/ieşire iniţiată de P3 (t8);

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

83

t9 - momentul când CPU devine liberă de la P3 şi având datele solicitate de P1 încă de la momentul

t3, reia execuţia P1; t10 - se încheie execuţia P1 şi CPU comută la P2; t11 - se încheie execuţia P2 şi CPU aşteaptă deoarece nu s-a încheiat operaţia de intrare/ieşire

iniţiată de P3; t12 - se încheie operaţia de intrare/ieşire şi se redă controlul CPU pentru P3; t13 - sfârşit P3.

3.3.4. Sistemul spooling (Simultaneous Peripheral Operations On Line) Activitatea de suprapunere a operaţiilor de intrare, prelucrare şi ieşire prin intermediul tehnicii

spooling, are ca principal obiectiv îmbunătăţirea randamentului sistemului de calcul şi lărgirea gamei de facilităţi oferite utilizatorilor.

Tehnica dispune de următoarele caracteristici: - disponibilitatea unei memorii externe de capacitate mare şi cu acces direct (discuri

magnetice), care asociată cu tehnica multiprogramării permite manipularea unor succesiuni continue de operaţii de intrare, ieşire şi alte prelucrări, ameliorând astfel diferenţa dintre timpul de execuţie al operaţiilor de intrare/ieşire şi timpul de execuţie al operaţiilor de către CPU;

- asigurarea unei încărcări la întreaga capacitate a dispozitivelor periferice de intrare/ieşire; - esenţialul acestei tehnici constă în organizarea de zone tampon de memorie (buffere) în care

se creează dispozitive periferice de intrare/ieşire virtuale ce permit: • introducerea de lucrări înainte ca acestea să fie executate; • redarea rezultatelor la imprimante în timpul execuţiei altor lucrări; • planificarea execuţiei lucrărilor în ordinea priorităţilor fără a ţine seama de disciplina

de introducere a acestora în sistem; • schimbarea ordinii de execuţie a lucrărilor prin priorităţi asociate.

Organizarea unui sistem spooling este redată în fig. 3.8. P1, P2 se introduc de la tastatură; P3, P4 aşteaptă încărcarea în memoria internă; P5, P6, P7,

P8 sunt active în memoria internă; P9, P10 sunt executate şi aşteaptă tipărirea; P11, P12 se tipăresc.

Fig. 3.8. Organizarea unui sistem spooling

3.3.5. Sisteme TIME – SHARING (Sisteme cu timp divizat) Tehnica de gestiune a lucrărilor time-sharing este caracterizată de utilizarea concurentă a

resurselor unui sistem de calcul de către "n" utilizatori prin intermediul staţiilor de lucru (work

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

84

stations) plasate local sau la distanţă; elementele globale ce definesc aceste sisteme sunt tehnica divizării timpului şi multiplexarea resurselor între mai mulţi utilizatori independenţi; termenul de multiplexare semnifică partajarea resurselor sistemului astfel încât se creează mai multe procese, fiecare utilizator având senzaţia că sistemul îi aparţine integral (practic, se comută sau se multiplexează în timp, de la un utilizator la altul).

În time-sharing CPU este partajată pe bază de cerere, planificarea execuţiei urmărind obţinerea unui timp de răspuns minim; lucrările nu au priorităţi prestabilite, astfel că acestea trebuie să fie executate într-o manieră dinamică. Multiplexarea resurselor între procese necesită existenţa unei componente a programelor de comandă-control capabilă să trateze o largă gamă de întreruperi.

Utilizatorii sunt aleatori, se schimbă în orice moment, lucrează programe diferite, se conectează/deconectează la/din sistem independent unii de alţii utilizând perioade de timp diferite pentru execuţia lucrărilor.

Trăsăturile esenţiale ale acestei tehnici constau în: - protecţia memoriei, prin care programele utilizatorilor trebuie să fie protejate între ele pentru

a nu permite accesul neautorizat, fiecare program fiind limitat la spaţiul său de memorie; - independenţa utilizatorilor, prin care se stabileşte o cuantă de timp pentru fiecare utilizator; dacă programul nu s-a terminat în acest interval de timp, este returnat în memoria externă şi

plasat la sfârşitul firului de aşteptare, încărcându-se alt program în memoria internă, ş.a.m.d. - alocarea resurselor pentru programele utilizatorilor este efectuată de monitorul rezident în

memoria internă (monitor de time-sharing): spaţiu de memorie internă, timp CPU, tratarea cererilor de întrerupere de la terminale, etc.;

- alocarea memoriei interne se realizează printr-o tehnică de alocare şi control a mişcării paginilor între memoria internă şi cea externă.

Caracteristici hardware solicitate implică: - memorie internă de capacitate mare şi CPU rapidă pentru asigurarea unui timp minim de

răspuns (volum mic de migrări între memoria internă şi cea externă, respectiv comutarea rapidă între programe);

- ceas de timp real care să genereze întreruperi pentru comutarea CPU de la un program la altul;

- memorie externă cu acces direct în care o soluţie ar fi cuplarea în paralel a memoriei externe la CPU şi terminale, ceea ce implică transferul între memoria externă şi terminale independent de activitatea CPU;

- sistem de comunicaţie transferul informaţiilor între CPU şi terminale, linii de comunicaţii, modemuri, concentratoare şi multiplexoare;

- terminale şi CPU adecvate. Caracteristici software Caracteristicile software sunt realizate în principal de monitorul de time-sharing care

gestionează resursele întregului sistem: - alocarea şi comutarea CPU după timpul alocat pe baza unui algoritm de planificare a

execuţiei stabilit astfel încât să se asigure: - reducerea timpului de răspuns; - minimizarea timpului necesar comutării între procese; - posibilitatea lansării în execuţie a oricărui proces care aşteaptă, lansare ce se execută în

funcţie de priorităţi; - încărcarea echilibrată a sistemului; - stabilirea locului fiecărui program în firul de aşteptare, în funcţie de prioritate; - alocarea spaţiului de memorie internă: zona de memorie şi adresa unde se încarcă fiecare

program; - tratarea întreruperilor prin analiza motivului întreruperii care va determină acţiunea ce se întreprinde în continuare; - gestiunea fişierelor prin care se determină locul unde sunt memorate colecţiile de date,

regăsirea lor rapidă, parola de protecţie ş.a..

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

85

Modul de lucru al unui sistem time-sharing este redat în fig. 3.9.

Fig. 3.9. Modul de lucru al unui sistem time-sharing

3.3.6. Multiprelucrarea

Dacă mai multe programe se găsesc în acelaşi timp în memoria internă şi partajează resursele

sistemului de calcul atunci sistemul utilizează tehnica multiprogramării; dacă în multiprogramare se folosesc mai multe procesoare, atunci sistemul utilizează tehnica de gestiune denumită în multiprelucrare. Se poate aprecia că multiprogramarea este un concept software, iar multiprelucrarea un concept hardware.

Un sistem de calcul utilizează tehnica multiprelucrării dacă cel puţin două CPU lucrează în paralel; unităţile centrale de prelucrare pot executa instrucţiunile unui singur program sau pot executa instrucţiuni din programe diferite.

Oportunitatea multiprelucrării constă în : - încărcarea partajată a programelor pentru execuţie, fiecare procesor având acces la firul de aşteptare alcătuit din lucrările solicitate a se executa; - separarea diverselor funcţii ale sistemului - program responsabil pentru fiecare funcţie; - creşterea fiabilităţii sistemului, pentru care există două posibilităţi: - duplexarea sistemelor, prin care una sau mai multe componente hardware sunt dublate, una

fiind în activitate iar cealaltă va fi activată la apariţia unui defect al primei componente; pe durata funcţionării corecte a procesorului principal, procesorul secundar poate fi folosit pentru alte peraţii;

- sisteme duale, sunt sistemele în care două procesoare centrale prelucrează simultan acelaşi program de aplicaţie, periodic verificându-se reciproc privind validarea rezultatelor. Sisteme master/slave Unul din obiectivele multiprelucrării este de a degreva o CPU, de sarcini specifice ca: tabelări

de date, editări de texte, gesţiunea colecţiilor de date (fişiere, baze de date); pentru a realize acest deziderat, la o CPU - denumită slave, este cuplată o CPU care este destinată coordonării activităţilor din sistem - denumită master.

Master-ul poate să coordoneze toate operaţiile de intrare/ieşire în timp ce slave-ul execută operaţii complexe; masterul este referit ca "front-end processor" având rol de interfaţă între slave şi dispozitivele periferice de intrare/ieşire. Dar masterul se poate utiliza şi ca interfaţă între slave şi colecţii voluminoase de date existente în memoria externă, situaţie în care este referit ca "back-end processor" fiind responsabil de gestiunea colecţiei de date.

Planificarea execuţiei lucrărilor În funcţie de gradul de planificare al lucrărilor şi al sistemului de comunicaţie, se disting

următoarele clase de sisteme:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

86

1) sisteme cu CPU identice care sunt determinate de modul în care CPU partajează memoria: • memorie unică pentru CPU cuplate în care mai multe CPU partajează o memorie; • memorie proprie pentru fiecare CPU din sistem.

Legăturile dintre memoria internă şi CPU se pot realiza în următoarele variante: - legătură matriceală (cross bar) prin intermediul unui sistem de comunicaţie, cererile

neservite fiind plasate într-un fir de aşteptare gestionat prin hardware sau software; - legătură prin canale multiple - procesoarele partajează o cale unica pentru fiecare memorie; - legătură printr-un singur canal folosit partajat - interfaţa dintre toate CPU şi memoria

internă . 2) sisteme cu CPU diferite care presupun existenţa unui număr de CPU periferice care

lucrează în paralel cu CPU principală; pot fi organizate sub formă de: - arie de procesoare (processor array) care implică divizarea unui program în activităţi

independente ce se pot executa simultan pe CPU existente în configuraţie; - conductă (pipe) ceea ce permite operarea directă asupra unui şir de vectori (pipeline)

elementele şirului fiind reprezentate de CPU; - puternic conectate, caracterizate de o creştere a volumului de lucrări executate datorită

controlului direct exercitat de CPU din configuraţie asupra resurselor; - slab conectate, care pot partaja: sistemul de comunicaţie, volumele de memorie cu acces

direct, programele de servici prin care componenta software dintr-un sistem comunică cu componenta software din alt sistem, pentru cereri de partajare a resurselor; nu există un control asupra resurselor unui procesor exercitat de alt procesor.

Planificarea execuţiei lucrărilor în multiprelucrare depinde de modul de conectare al sistemelor, existând următoarele variante:

1) planificarea în cazul sistemelor diferite se poate realiza: - manual, fără nici o planificare, doar cu comutarea de la un procesor la altul; - prin urmărirea încărcării echilibrate a sistemelor, dacă sunt slab conectate şi au CPU proprie; 2) planificarea în cadrul sistemelor master/slave în care toate resursele sunt disponibile tuturor

CPU; în acest caz, memoria internă şi dispozitivele periferice de intrare/ieşire sunt alocate la procese nu la CPU, iar CPU sunt asigurate să execute procesele de către modulul de planificare a execuţiei proceselor (sisteme puternic conectate). În cazul tehnicii de planificare master/slave, o CPU master reţine starea tuturor proceselor din sistem şi planifică activitatea tuturor CPU slave.

3) planificarea în cazul sistemelor omogene. În această situaţie, CPU sunt tratate ca CPU slave, având loc o planificare descentralizată; se crează o listă în memoria internă ce conţine numele proceselor şi starea lor, fiind permis oricărei CPU să acceseze această listă. 3.4. GESTIUNEA RESURSELOR UNUI SISTEM DE CALCUL

Componenta hardware a sistemelor de calcul necesită existenţa unui sistem de operare care să poată gestiona resursele hardware, concomitent cu asistarea utilizatorului pe timpul pregătirii şi lansării în execuţie a lucrărilor sale. Programele de comandă-control ale sistemului de operare sunt constituite din programe care coordonează şi controlează resursele hardware (memoria, CPU, canalele, dispozitivele periferice) şi informaţiile (programe, date), îndeplinind astfel rolul sistemului de operare de a asigura utilizarea eficientă a resurselor şi de a rezolva conflictele apărute în competiţia dintre utilizatori.

Pentru gestionarea resurselor programele de comandă-control ale sistemului de operare trebuie să realizeze următoarele activităţi:

- evidenţierea fiecărei resurse; - adoptarea unei strategii pentru determinarea în orice moment cărui proces să-i aloce resursa,

cât din resursă, la ce moment de timp şi cuanta de timp alocată; - să aloce resursele, iar la terminarea activităţii să le dezaloce. În acest scop, programele de comandă-control ale sistemului de operare au fost grupate în 4

categorii, corespunzător funcţiilor îndeplinite:

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

87

1) funcţia de gestiune a memoriei care constă în: - evidenţa acestei resurse: câtă memorie este alocată şi pentru care programe; - ce proces primeşte memorie, la ce moment şi în ce cantitate - în cazul multiprogramării; - alocă părţi din memorie şi asigură metode de acces şi protecţie pentru procesele solicitante; - dezalocă zonele de memorie alocate. 2) funcţia de gestiune a procesorului (CPU) se referă la: - evidenţa procesoarelor şi stărilor acestora ("traffic controller"); - decide cine poate să utilizeze procesorul ("proccesor scheduler"), la ce moment de timp şi

pentru cât timp; - alocă procesorul la un proces prin pregătirea şi încărcarea unor registre hardware; - retrage alocarea când procesul renunţă la utilizarea procesorului, s-a terminat sau a depăşit

cuanta de timp alocată. 3) gestiunea dispozitivelor periferice realizează următoarele activităţi: - evidenţa dispozitivelor, a unităţilor de control şi a canalelor ("I/O Traffic Controller"); - decide metoda cea mai eficientă de alocare a dispozitivelor periferice; dacă are loc o

utilizare simultană, decide cine foloseşte resursa şi cât timp ("schedulering I/O"); - alocarea dispozitivelor periferice şi iniţiază operaţia de intrare/ieşire; - dezalocarea dispozitivelor periferice la terminarea execuţiei operaţiilor de intrare/ieşire. 4) gestiunea informaţiei care se materializează în: - evidenţierea resursei (informaţia), localizarea ei, utilizarea, starea, etc. (File System); - decide cine utilizează informaţia, impune protecţia cerută şi oferă rutine de acces necesare; - alocă resursele prin deschiderea fişierului (OPEN); - dezalocă resursele prin închiderea fişierului (CLOSE). 3.4.1. Gestiunea proceselor şi procesoarelor Utilizarea partajată a resurselor unui sistem de calcul este determinată de insuficienţa la un

moment dat a resurselor necesare execuţiei simultane a proceselor create de utilizatori. Gestiunea procesoarelor are ca scop asigurarea procesoarelor la procesele create.

Fiecărui program de aplicaţie, sistemul de operare îi asociază o serie de procese. Procesul reprezintă un program în execuţie (program de serviciu, de aplicaţie sau rutină a

sistemului de operare). Procesorul reprezintă componenta capabilă să execute un program (CPU sau canal). Programul este o secvenţă de instrucţiuni, iar procesul o serie de activităţi (taskuri) executate

prin program. Activitatea (task) este o unitate de lucru internă creată de sistemul de operare, atunci când o

etapă din lucrare este acceptată de sistemul de calcul. Lucrarea reprezintă o colecţie de activităţi (taskuri) ce se execută de către sistemul de calcul. Procese concurente şi coordonarea proceselor Procesele concurente numite şi procese paralele, presupun că la un moment dat, mai multe

programe pot fi urmărite între punctul de începere şi terminare a execuţiei; în acest caz procesele interacţionează în două moduri:

- indirect, prin concurarea la aceiaşi resursă a sistemului; - direct, prin utilizarea simultană a aceloraşi resurse. Oportunitatea programării concurente constă în necesitatea reducerii timpului de răspuns la

solicitările la care este supus sistemul de calcul concomitent cu utilizarea eficientă a resurselor precum şi în necesitatea utilizării partajate a informaţiei şi comunicaţiei între programele în curs de execuţie, ceea ce implică şi o sincronizare specifică la nivelul software-ului de bază.

Coordonarea proceselor concurente implică următoarele aspecte: 1) determinarea proceselor potrivit cărora sistemul de activităţi trebuie să fie independent de

vitezele relative de execuţie ale activităţilor componente, conducând la un rezultat unic; dacă acest

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

88

rezultat depinde de ordinea şi viteza de execuţie a activităţilor, sistemul este nedeterminat şi în acest caz se vor introduce restricţii de prioritate (grad de precedenţă);

2) interblocarea proceselor apare atunci când două sau mai multe procese aşteaptă un timp nedefinit într-un fir de aşteptare circular, ca alt proces să renunţe la pretenţiile de utilizare a unei resurse; interblocarea poate fi înlăturată prin mecanisme cum sunt:

- prealocarea resurselor partajate; - alocarea controlului în avans de execuţie; - organizarea secvenţială a cererilor şi ierarhizarea resurselor pe nivele astfel încât atunci când

un proces a dobândit resursele de la un anumit nivel, poate solicita resurse numai de la un nivel superior;

- excluderea mutuală a proceselor prin care anumite activităţi vor fi programate astfel încât să nu poată fi în execuţie în acelaşi timp (de exemplu, READ şi WRITE).

Sincronizarea proceselor Sincronizarea proceselor include mecanisme prin care anumite procese vor fi oprite la un

moment dat, până ce apar anumite evenimente ce se află sub controlul altei activităţi. Problema sincronizării apare datorită partajării resurselor în legătură cu alocarea proceselor pentru execuţie şi comunicaţia între procese care generează două aspecte:

- apariţia condiţiei de competiţie între procese care se iveşte atunci când planificarea unor procese pentru execuţie devine critică deoarece parametrii pentru planificarea execuţiei provin din calcule diferite;

- tendinţa de a obţine resursa de către procese ar putea genera interblocarea acestora. Mecanismele de sincronizare pentru coordonarea şi comunicarea între procese includ

următoarele posibilităţi: 1) biţi de atenţi. Prin această modalitate, orice resursă partajată de "n" procese va dispune de

un bit de atenţie "lock-bit" folosindu-se convenţia: lock-bit = 0 - resursa este disponibilă; lock-bit = 1 - resursa este în folosinţă. Înainte ca un proces să aibă acces la un procesor, acesta va verifica starea lock-bit-ului: dacă lock-bit = 0 atunci este permis acestui proces să aibă acces la procesor, iar la terminarea

execuţiei va trece lock-bit-ul în starea iniţială 0; dacă pe parcursul execuţiei un alt proces va solicita procesorul, acesta va găsi lock-bit-ul în starea 1, el fiind trecut în starea de aşteptare până când lock-bit-ul devine 0.

2) mecanisme de aşteptare şi semnalizare. Inconvenientul sincronizării proceselor prin lock-bit constă în continuarea secvenţei de testare a lock-bit-ului pentru comutarea din starea 1 în starea 0; în acest sens, o variantă de utilizare mai eficientă a procesorului în sensul reducerii timpului de aşteptare şi de ciclare o constituie plasarea procesului într-o listă de procese blocate alături de alte procese. Atunci când procesorul alocat unui proces încheie execuţia, acesta va introduce un semnal de legătură (pointer) prin care unul din procesele blocate din lista celor care aşteaptă, este sesizat că resursa pentru care a fost blocat a devenit liberă; în acest moment, procesul care câştigă competiţia este trecut din lista de procese blocate, în lista proceselor gata de execuţie, urmând să fie din nou planificat pentru reluarea execuţiei din punctul în care a fost întrerupt.

3) calculul semafoarelor prin operaţiile P şi V. P şi V sunt primitive care operează pe semafoarele S constituite din variabile ce iau valori întregi (nu numai 0 şi 1). Mecanismul se desfăşoară astfel:

P(S): decrementează valoarea lui S cu 1 şi dacă S <= 0 atunci aşteaptă; V(S): incrementează valoarea lui S cu 1 şi dacă S <= 0 atunci semnal. 4) comunicarea directă de tip SEND/RECEIVE. Mecanismele de sincronizare anterioare

realizează comunicaţii indirecte. Sincronizarea se poate realiza şi într-o manieră directă, prin intermediul primitivelor SEND (Proces1, mesaj) şi RECEIVE(Proces2, mesaj).

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

89

5) cutii poştale. Cutiile poştale sunt constituite din zone tampon din memoria dinamică, tratată ca dispozitiv periferic de intrare/ieşire. Fiecare activitate creează o cutie poştală cu informaţii ce pot fi extrase de celelalte activităţi înainte de lansarea în execuţie.

Gestiunea procesoarelor Gestiunea procesoarelor presupune asigurarea procesoarelor la procesele create; această

activitate se desfăşoară la două nivele: 1) planificarea lucrărilor, la care se decide care lucrări vor fi executate şi care va fi prima

lansată în execuţie; 2) alocarea procesorului la procese. În acest scop există module specializate ale programelor de comandă-control ale sistemului de

operare, ce realizează o serie de activităţi: Modulul pentru planificarea lucrărilor îndeplineşte următoarele activităţi: - evidenţierea stării tuturor lucrărilor sesizând care dintre lucrări solicită servicii; - alegerea disciplinei prin care vor intra lucrările în sistem: priorităţi, resurse solicitate,

încărcarea echilibrată, etc.; - alocarea resurselor necesare lucrării planificate: memorie internă, externă, dispozitive periferice, CPU; - dezalocarea resurselor la terminarea execuţiei lucrării. Modulul de planificare a lucrărilor creează unul sau mai multe procese pentru lucrarea

considerată în momentul trecerii din starea de pregătire în starea de execuţie, stabilind totodată şi modul de comunicaţie între procese; cu alte cuvinte, alocă resursele fizice disponibile la procese, în scopul utilizării eficiente a sistemului de calcul, prin simularea unei maşini virtuale pentru fiecare proces şi un sistem de facilităţi ce permit proceselor concurente să realizeze o excludere mutuală din regiunile critice şi să comunice cu alte procese.

Modulul pentru planificarea procesoarelor decide care dintre procese va dispune de procesor, în ce moment şi care este cuanta de timp alocată:

- evidenţiază starea tuturor proceselor (componenta traffic controller); - decide procesul care va dispune de procesor şi pentru cât timp (processor scheduller); - alocă procesorul la procese, ceea ce implică actualizarea conţinutului registrelor procesorului care să reflecte starea curentă; - dezalocarea procesorului atunci când cuanta de timp acordată a expirat sau procesul trebuie să aştepte datorită unei întreruperi cum ar fi solicitarea unei operaţii de intrare/ieşire. În acest

caz e necesară salvarea conţinutului registrelor procesorului, în vederea păstrării stării la care a fost întrerupt, pentru reîncărcarea la reluarea execuţiei din punctul în care a fost întrerupt. Pentru planificarea lucrărilor la nivelul procesorului se întâlnesc două tipuri de sisteme: 1) sisteme nepreemptive în care fiecare activitate se execută până la execuţia completă; în acest caz, procesorul va executa cererea cea mai prioritară din sistem până la terminarea

execuţiei, chiar dacă pe durata execuţiei apar cereri mai prioritare în sistem; 2) sisteme preemptive sunt sistemele în care cererile se pot afla în diverse etape ale execuţiei;

la un moment dat sistemul execută o singură activitate, dar dacă apare o cerere cu prioritate mai mare, execuţia curentă este întreruptă şi trecută în aşteptare.

3.4.2. Gestiunea memoriei Sistemele de calcul includ diverse dispozitive de memorare organizate în final pe două nivele:

memoria internă şi memoria externă. Gestiunea memoriei are rolul de a decide cum trebuie organizată informaţia pe cele două

nivele şi când trebuie transferată informaţia între acestea; tehnicile de gestiune a lucrărilor (multiprogramare, multitasking, time-sharing,etc) implică existenţa unor metode eficiente pentru gestiunea memoriei: tehnici de alocare dinamică şi memoria virtuală.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

90

Obiectivul activităţii de gestiune a memoriei este de a furniza o viteză de execuţie sporită a programelor, prin menţinerea în memoria internă a acelor părţi din programe care sunt referite cu o frecvenţă mare de către CPU (de regulă, programe independente între ele); deoarece în memoria internă există simultan mai multe programe independente între ele, pentru a utiliza eficient CPU apar următoarele aspecte:

- introducerea în memoria internă a programului ce urmează a fi executat necesită un spaţiu de memorie determinat de dimensiunea sa, de spaţiul liber din memoria internă în acel moment şi de modul de ocupare al memoriei interne de către alte programe;

- pentru zonele de memorie alocate diferitelor programe, trebuie să se asigure protecţia acestora faţă de anumite interferenţe şi adresări cu alte programe.

Alocarea spaţiului din memoria internă se realizează în funcţie de disponibilitatea memoriei în acel moment, fapt care nu permite cunoaşterea adreselor reale ocupate de program la momentul execuţiei (numite şi adrese fizice) în etapele scrierii şi translatării programelor a căror adrese de memorie, sunt simbolice (numite adrese logice). Translatarea adreselor logice în adrese fizice se realizează printr-o funcţie de translatare care precede execuţia instrucţiunii respective.

Activitatea de gestiune a memoriei are la bază trei algoritmi (fig.3.16.): 1) algoritmul de transfer care determină când un bloc trebuie transferat din memoria externă în memoria internă - înaintea execuţiei sau în timpul execuţiei; 2) algoritmul de plasare care determină ce zonă nealocată din memoria internă este folosită pentru plasarea blocului încărcat din memoria externă; 3) algoritmul de reamplasare care determină care blocuri şi la ce moment trebuie reîncărcate în memoria internă. Alocarea dinamică a memoriei Alocarea memoriei interne se poate realiza: - static când programul este încărcat iniţial în orice zonă liberă din memoria internă. În momentul solicitării unei întreruperi, acesta este transferat în memoria externă urmând a fi reluat după tratarea întreruperii. Reîncărcarea sa în memoria internă se va face obligatoriu în acelaşi spaţiu de adrese fizice în care a fost încărcat iniţial, ceea ce reprezintă un mare neajuns în cazul multiprogramării şi multitasking-ului; - dinamic când adresele relative ale instrucţiunilor programului după editarea de legături, nu sunt translatate în adrese fizice în faza de încărcare a programului în memoria internă, ci doar în momentul execuţiei instrucţiunilor. Adresele relative se păstrează pentru o deplasare a programului dintr-o zonă în alta a memoriei interne şi o reîncărcare a programului din memoria externă, într-o altă zonă din memoria internă. Memoria virtuală Conceptul unui singur nivel de memorie- denumită memorie virtuală- oferă utilizatorului

iluzia că memoria internă are o capacitate foarte mare, partea de hardware realizând automat transferul informaţiei din memoria internă în memoria externă şi invers.

Unitatea de transfer între memoria internă şi cea externă este pagina, aceasta reprezentând o entitate a memoriei de dimensiune fixă de 512, 1024, 2048 sau 4096 kbytes; procesul de deplasare al paginilor între memoria internă şi memoria externă este referit ca transfer de pagini.

O adresă folosită de programator se numeşte adresă virtuală, iar adresa reală unde este memorată se numeşte adresă fizică (dimensiunea spaţiului de adrese virtuale este mult mai mare decât dimensiunea spaţiului de adrese reale).

Funcţia de translatare a unei adrese virtuale ai în adresă reală bj se poate defini astfel: ft = 0 dacă informaţia de la adresa virtuală solicitată (ai) nu este în acel moment rezidentă în memoria internă; ft = bj dacă adresa virtuală ai găseşte rezidentă adresa reală bj în memoria internă. Dacă ft(ai) = 0 se emite un semnal de nerezidenţă şi se generează o întrerupere care are ca

efect plasarea din memoria externă în memoria internă, a informaţiei referite de procesor prin

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

91

adresa virtuală ai. La terminarea întreruperii (care lansează în execuţie algoritmii de transfer, plasare şi reamplasare) ft(ai) va fi nenulă, având loc o nouă iniţiere a activităţii întrerupte. Dispozitivul de translatare este redat în fig.3.9.

Fig.3.9. Mecanismul de translatare a adreselor virtuale în adrese fizice

Din punct de vedere al modului de organizare, există implementate următoarele variante pentru memoria virtuală:

1. organizarea la nivel de adresă (fig.3.10.) Dacă procesorul referă adresa virtuală ai, aceasta se introduce în registrul de adrese virtuale RV, registrul REZIDENT este resetat (pus pe 0), iar registrul de ACCES setat (pus pe 1), iniţializându-se procesul de translatare: - dacă se găseşte cu ai o intrare în tabela ft, atunci conţinutul găsit se introduce în registrul de

adrese fizice al memoriei interne RM, având loc extragerea din memoria internă a informaţiei solicitată de procesor de la adresa reală bj;

Fig. 3.10. Organizarea la nivel de adresă a memoriei virtuale

- dacă nu se găseşte o intrare în ft, atunci RM = 0, registrul REZIDENT este setat şi are loc iniţierea celor 3 algoritmi care vor aduce din memoria externă în memoria internă informaţia

referită de procesor, actualizând totodată şi tabela de descriere a funcţiei de translatare ft. 2. organizarea la nivel de pagină, conduce la reducerea necesarului de informaţie conţinut

în tabela ft deoarece spaţiul de adrese este divizat în blocuri de dimensiune constantă numite pagini. Dimensiunea paginii virtuale coincide cu dimensiunea paginii reale ceea ce implică

netranslatarea adresei cuvântului de pagină. Dispozitivul de translatare construieşte o tabelă a paginilor organizată în memoria internă (MTP) cu informaţii necesare procesului de translatare din adrese virtuale în adrese fizice.

Pentru orice adresă virtuală ai se asociază perechea (P,C) unde P reprezintă numărul cuvintelor din pagină, iar C numărul unui cuvânt referit din P. Prin P se intră în tabela de pagini, la unul din cuvintele de la 0 la 2p, de unde se extrage componenta Q de o anumită dimensiune; dacă:

- RM (Q) are conţinut nenul, atunci adresa solicitată de procesor are drept corespondent o pagină de memorie rezidentă în memoria internă; - RM (Q) = 0 atunci adresa virtuală solicitată nu are adresă de pagină reală în memoria

internă, ceea ce conduce la declanşarea celor 3 algoritmi ca urmare a setării registrului de

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

92

REZIDENT. Algoritmii vor determina transferul paginii corespunzătoare din memoria externă în memoria internă, actualizând totodată şi MTP, după care procesorul referă din nou adresa.

Organizarea la nivel de pagină oferă avantajul că un program se poate executa fără a avea toate paginile încărcate în memoria internă, ele putând fi încărcate pe măsură ce devin necesare în prelucrare, deci o utilizare mai eficientă a memoriei şi totodată, o protecţie mai sigură a informaţiei.

3. organizarea la nivel de segment, împarte spaţiul de memorie în blocuri de dimensiune variabilă, numite segmente (pot fi module de program sau anumite structuri de date).

Adresa virtuală referită de procesor constă din numele segmentului S şi numele cuvântului din segment C; adresa de memorie unde începe segmentul S reprezintă adresa de bază R, iar prin D se specifică dimensiunea segmentului. Adresa reală determinată prin R+C se obţine dacă registrul de buffer conţine adresa extrasă din memoria tabelei de segmente, efectuându-se şi comparaţia dintre C şi D; dacă R = 0, atunci se vor declanşa cei trei algoritmi.

4. organizarea la nivel de segment-pagină Organizarea la nivel de segment-pagină divide adresele virtuale şi adresele fizice în segmente,

iar segmentele în pagini, în vederea fructificării avantajelor celor două metode de organizare: - paginarea, care oferă implementarea simplă şi cel mai sigur mijloc de protecţie a

informaţiei; - segmentarea, care satisface într-o mai mare măsură cerinţele programatorului prin divizarea

în segmente, deci ţinând seama de logica programului. În cadrul acestui mod de organizare, există o singură tabelă de segmente şi un număr de tabele

de pagini egal cu numărul de segmente. Atunci când procesorul referă o adresă virtuală, acesteia i se asociază: - adresa virtuală a segmentului S; - adresa virtuală a paginii în segment CP; - adresa virtuală a cuvântului din cadrul paginii CC; iar registrul de acces segment este setat. Prin S din RV se caută în MTS; dacă se găseşte o adresă, aceasta este reprezentată prin: - R - adresa tabelei de pagini; - D - dimensiunea segmentului exprimată în pagini şi introdusă apoi în registrul de buffer. Prin intermediul lui R din registrul de buffer se selectează o tabelă de pagini din MTP;

componenta CP din registrul de adrese şi R din registrul de buffer, permit extragerea din tabela de pagini a cuvântului indicat prin CP din RV; cuvântul selectat are Q biţi şi reprezintă una din paginile reale din memoria internă, fiind introdus în RM unde vine şi componenta CC care indică adresa reală a cuvântului în pagină. Dacă nu se găseşte prin S din RV nici o intrare în MTS, atunci segmentul virtual adresat nu are corespondent în memoria internă, deci registrul de REZIDENT este setat şi se declanşează algoritmii de transfer din memoria externă în memoria internă a segmentului solicitat actualizându-se şi memoria tabelei de segmente. Accesul în MTP se realizează prin poziţionarea registrului de acces la pagină pe 1, iar componentele Q şi CC sunt introduse în RM.

La proceselor concurente, gestiunea memoriei între mai multe procese poate fi analizată prin : - limitarea frecvenţei transferului de date şi programe; - conservarea execuţiei programelor din memoria internă, în timp ce alte programe sunt în aşteptare în memoria externă; - transferul datelor şi programelor din memoria internă atunci când procesele le solicită. 3.4.3. Gestiunea dispozitivelor periferice O mare pondere din arhitectura sistemelor de calcul este deţinută de echipamentele de

intrare/ieşire (denumite dispozitive periferice), fapt care implică o atenţie deosebită acordată utilizării lor eficace. Deşi evoluţia continuă în domeniul facilităţilor (mai ales a vitezelor de execuţie) a condus la multe îmbunătăţiri, continuă să existe diferenţe mari între viteza dispozitivelor periferice şi vitezele la care operează CPU şi memoria internă, ceea ce motivează introducerea canalelor de intrare/ieşire şi a procesoarelor specializate în operarea cu unităţile de control ale dispozitivelor periferice.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

93

Unităţi de control şi canale de transfer Unităţile de control ale dispozitivelor periferice sunt prevăzute cu circuite electronice

destinate controlului automat al citirii/scrierii pe mediile fizice, îndeplinind următoarele funcţii: - recunoaşterea adreselor dispozitivelor periferice pe care le controlează; - conversia comenzilor primite de la canal în forma acceptată de mecanismele şi circuitele perifericului comandat; - transmiterea către canal a secvenţelor de semnale standard ce indică desfăşurarea operaţiilor de intrare/ieşire solicitate; - efectuarea controlului de paritate asupra datelor şi informaţiilor de control; - urmărirea îndeplinirii condiţiilor de execuţie a comenzii; - generarea informaţiei de stare a dispozitivelor periferice şi a unităţilor de control care se prezintă canalului la iniţierea şi, prelucrarea modului în care s-a terminat transferul de date; - conversia formatului datelor din codul acceptat de dispozitivul periferic, în codul acceptat de CPU la citire sau invers la scriere. Există unităţi de control ce permit conectarea la canal a unui singur dispozitiv periferic sau

mai multor dispozitive periferice, numărul acestora fiind limitat de debitul canalului şi de numărul de periferice admis de acesta. Canalele de transfer dirijează fluxul de informaţie între memoria internă şi dispozitivele periferice degrevând CPU de sarcina tratării proceselor de intrare/ieşire îndeplinind ca principale funcţii:

- transformarea informaţiei de comandă primită de la CPU în semnale acceptate de către unităţile de control ale dispozitivelor periferice; - prelucrarea controlului transferului de date şi eliberarea CPU pentru alte lucrări; - asamblarea sau dezasamblarea datelor transferate între dispozitivele periferice şi memoria

internă; - sincronizarea transferului de date cu activitatea CPU; - controlul adresei care reprezintă sursa sau destinaţia transferului de date în memoria internă,

inclusiv verificarea protecţiei memoriei; - generarea informaţiei de stare a canalului, pe care o ţine la dispoziţia CPU. Transferul de informaţii între dispozitivele periferice şi memoria internă, se poate realiza: - continuu - când un dispozitiv periferic se conectează logic la canal până la terminarea

transferului de date, nepermiţând altui dispozitiv periferic să comunice cu canalul în acest interval de timp;

- multiplex - când mai multe dispozitive periferice pot transmite simultan prin interfaţă. Activitatea de gestiune a dispozitivelor periferice O operaţie de intrare/ieşire este iniţiată de CPU prin executarea unei instrucţiuni ce specifică

canalul, adresa dispozitivului periferic şi adresa locaţiei din memoria internă unde începe programul de transfer numit driver, care specifică operaţiile de intrare/ieşire ce se vor executa; în timpul execuţiei driver-ului, CPU poate executa alte operaţii în mod concurent; totodată CPU controlează modul în care se desfăşoară execuţia procesului de intrare/ieşire prin instrucţiuni specifice.

Procesul de intrare/ieşire cunoaşte starea CPU prin cercetarea conţinutului registrelor de stare. Comunicaţia dintre canalul de intrare/ieşire şi CPU se realizează, de obicei, prin intermediul întreruperilor (o întrerupere constituie o facilitate hardware care poate suspenda execuţia operaţiei curente de către CPU, memorarea stării curente şi transferul la o locaţie specifică unde se găseşte un program pentru tratarea întreruperii respective).

CPU şi canalele de intrare/ieşire sunt proiectate pentru a opera în mod concurent în următoarea ierarhie: CPU controlează activitatea canalelor de intrare/ieşire, canalele de intrare/ ieşire controlează activitatea unităţilor de control ale dispozitivelor periferice iar acestea controlează activitatea dispozitivelor periferice ataşate.

Un sistem de intrare/ieşire poate fi organizat în următoarele moduri:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

94

- un canal de intrare/ieşire poate fi utilizat în mod partajat de două CPU folosind un controller pentru canalul de intrare/ieşire- situaţie întâlnită la sistemele de calcul exploatate în multiprelucrare;

- o unitate de control poate fi partajată între mai multe canale, pentru acelaşi dispozitiv periferic există mai multe căi de acces, iar doua CPU partajează aceeaşi unitate de control; - dispozitivele periferice de intrare/ieşire pot fi partajate între mai multe unităţi de control ataşate la diferite canale de intrare/ieşire ale aceleiaşi CPU sau la canalele mai multor CPU.

Gestiunea dispozitivelor periferice trebuie să îndeplinească următoarele funcţii: - evidenţa stării tuturor dispozitivelor periferice sub forma blocurilor unităţilor de control

asociate pentru fiecare dispozitiv periferic; - introducerea unei discipline pentru a determina cărui proces îi este alocat dispozitivul

periferic, pentru cât timp şi la ce moment, în funcţie de natura proceselor, de viteza dispozitivului periferic şi modul lui de funcţionare;

- alocarea dispozitivului periferic, a unităţii de control şi a canalului pentru proces; - dezalocarea la nivelul procesului. Utilizarea eficientă a dispozitivelor periferice se realizează cu ajutorul unor metode hardware

şi a unor module specializate ale sistemului de operare. Gestiunea dispozitivelor periferice prin metode hardware se poate realiza prin: 1) operarea dispozitivului periferic independent, fără asistenţa canalului sau unităţii de

control; 2) disciplina buffer care implică existenţa unui buffer pentru date în dispozitivul periferic sau

al unităţii de control, ce ar permite unui dispozitiv periferic lent să lucreze independent de canal; 3) căi de acces multiple, concretizate în mai multe căi de acces pentru fiecare dispozitiv

periferic. Driverele pentru gestiunea dispozitivelor periferice vor ţine evidenţa căilor de acces şi or determina ruta liberă pentru servirea unei cereri de intrare/ieşire la dispozitivul periferic solicitat;

4) multiplexarea canalului prin execuţia unor programe de canal multiple, ceea ce înseamnă o implementare hardware a multiprogramării pentru programele de canal.

Gestiunea dispozitivelor periferice de către sistemul de operare este realizată de următoarele module specializate:

1) controlorul traficului de intrare/ieşire (I/O Traffic controller) care are rolul de a evidenţia informaţiile de stare pentru fiecare dispozitiv periferic, furnizând informaţii mecanismului prin care un dispozitiv periferic poate fi alocat sau nu. În acest scop, construieşte un bloc de control pentru dispozitivul periferic, unul pentru unitatea de control şi unul pentru canal;

2) planificatorul operaţiilor de intrare/ieşire (I/O Scheduller) care conţine algoritmul privind strategia utilizată pentru alocarea canalului, a unităţilor de control şi a dispozitivelor periferice;

3) manipulatorul dispozitivelor periferice de intrare/ieşire (I/O Devices Handler) are rolul de a crea programul de canal pentru execuţia funcţiei dorite, executând fizic operaţia respectivă;

4) dispozitive periferice utilizate partajat (Shared Devices) sunt partajate între mai multe procese concurente, ceea ce implică:

- interferenţa cererilor din partea proceselor; - protecţia împotriva acceselor neautorizate. 5) dispozitive periferice virtuale sunt dispozitive periferice ce pot fi convertite pentru a putea

fi utilizate partajat prin sistemul Spooling. 3.5. COMPONENTA ROM-BIOS ŞI ÎNTRERUPERILE MS-DOS. 3.5.1. Prelucrarea întreruperilor Conceptul de întrerupere În cadrul procesului de execuţie al unui program CPU trebuie să asigure următoarele funcţii: - evidenţierea stării în care se află şi asigurarea unui mecanism de schimbarea stării; - asigurarea înlănţuirii automate a instrucţiunilor; - asigurarea comenzilor necesare execuţiei unei instrucţiuni.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

95

În ceea ce priveşte schimbarea stării CPU, aceasta se poate realiza prin: - memorarea dinamică a informaţiei de stare, în cuvântul de stare al procesorului (MSW -

Machine Status Word); - sistemul de întreruperi. CPU se poate afla în una din următoarele stări: - operaţională- atunci când poate executa operaţii de prelucrare a datelor; - neoperaţională- care corespunde unei situaţii de defect. Starea operaţională se caracterizează prin una din următoarele stări generate de procese: - activă sau în aşteptare; - întreruptibilă sau neîntreruptibilă, funcţie de luarea în considerare a întreruperii sau nu (se spune că întreruperea este mascată); - sistem sau utilizator, după cum este sub controlul sistemului de operare sau al programelor de aplicaţie lansate de utilizatori. Informaţia de stare este dinamică şi reflectă în orice moment funcţionarea CPU, fiind

memorată într-un registru de stare sub denumirea de cuvânt de stare program MSW (Machine Status Word), conţinând în general, următoarele informaţii:

- dreptul de acces al programului la zona respectivă de memorie; - o informaţie sintetică asupra modului cum s-a încheiat execuţia instrucţiunii precedente,

numită cod de condiţie (registrul Eflags la microprocesoarele Intel); - măştile de întreruperi; - starea CPU; - nivelul de prioritate al programului; - adresa următoarei instrucţiuni de executat (registrul EIP - Extended Instruction Pointer la

microprocesoarele Intel). Posibilitatea comutării stării CPU se realizează prin procese de întrerupere care (de exemplu,

în cazul multiprogramării) este o condiţie indispensabilă în sensul asigurării trecerii controlului de la un program la altul. Prelucrarea întreruperilor este realizată de o componentă hardware specializată inclusă în CPU şi o componentă software (ce dispune de rutine incluse în sistemul de operare pentru a trata fiecare întrerupere în parte).

Etapele tratării unei întreruperi : - în momentul apariţiei unei cereri de întreruperi, aceasta se va lua în considerare dacă este

cea mai prioritară din şirul de întreruperi; - analiza tipului de întrerupere şi salvarea cuvântului de stare al programului la o anumită

adresă din memoria internă; - încărcarea unui cuvânt de stare al programului specific întreruperii şi lansarea în execuţie a

rutinei ce prelucrează întreruperea; - reîncărcarea vechiului cuvânt de stare al programului de la adresa unde a fost salvat în

memoria internă, după terminarea prelucrării întreruperii; - redarea controlului programului întrerupt. Întreruperile pot fi generate: de program, de operaţiile de intrare/ieşire, de defect al CPU sau

externe sistemului de calcul provenind de la alte echipamente cu care este cuplat. Întreruperi la PC – uri La microprocesoarele implementate pe PC -uri care permit multiprogramarea, controlul

accesului între programele de aplicaţie şi sistemul de operare este asigurat prin controlul spaţiului de adresă şi un mecanism de protecţie privilegiat astfel:

- controlul spaţiului de adresă separă programele de aplicaţii unele faţă de altele; - mecanismul privilegiat de protecţie izolează software-ul de bază de software-ul aplicaţii. Acesta garantează posibilitatea programelor de a avea acces la segmentul de cod, de date şi

resursele de intrare/ieşire de bază, numai pentru nivelul privilegiat al segmentului respectiv. Protecţia se bazează pe noţiunea de ierarhie de tutelă, existând patru niveluri privilegiate

aranjate în inel, începând cu cea mai mare tutelă 0. Nivelul 0 este rezervat în general, sistemului de

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

96

operare, iar nivelul 3 este nivelul cea mai mică tutelă. Nivelul privilegiat este un atribut de protecţie alocat la toate segmentele prin software-ul sistemului, aceasta determinând care proceduri pot accesa segmentul, în timp ce drepturile de acces sunt implementate hardware.

Codul sistemului de operare şi segmentele de date plasate la cel mai privilegiat nivel (nivel 0) nu pot fi accesate prin programe de alt nivel privilegiat, fiecare program putând accesa date la un nivel identic sau mai mare.

Întreruperile şi excepţiile sunt cazuri speciale de transfer al controlului între programe. O întrerupere este generată de un eveniment independent de programul în curs de execuţie, în

timp ce excepţiile sunt rezultate direct din programul în curs de execuţie, apărând atunci când o instrucţiune nu poate fi executată complet în mod normal. Pentru localizarea întreruperii, CPU asociază fiecărei surse de întrerupere un număr, numit vector de întrerupere cu rol de adresă în IDT.

Tabela de descriere a întreruperilor (IDT) defineşte dirijarea acestora pentru fiecare tip de întrerupere; această tabelă poate fi localizată oriunde în spaţiul adreselor fizice, ea fiind accesată în memoria reală prin adrese ce sunt păstrate în registrul tabelei de descriere a întreruperilor (IDTR).

Fiecare intrare în tabela de descriere a întreruperilor conţine adresa planificatorului de întreruperi. Erorile de execuţie care generează excepţiile referă o intrare în tabela de descriere a întreruperilor ce se poate identifica prin bitul 1 în codul de eroare. Acest bit este setat pe 1 dacă întreruperea a fost Nivel 3→Nivel 2→Nivel 1→Nivel 0, cauzată de un eveniment extern programului (flagul TF=1).

Excepţiile au totodată şi rolul de a detecta faulturile sau erorile de programare produse de utilizarea operanzilor sau a nivelurilor privilegiate; ele nu pot fi mascate, având fixaţi vectorii în primele 32 de întreruperi. De exemplu, încercarea de a viola protecţia cauzează o excepţie care, ca orice fault este dirijată de programul care a generat-o dacă aceasta este o întrerupere, respectiv de un alt program, dacă este o intrare în tabela de descriere a întreruperilor.

Clase de întreruperi la PC – uri Sistemul de întreruperi la PC este realizat cu ajutorul unui controlor de întreruperi (standard

8259 A), existând mai multe niveluri de întreruperi situate fie pe magistrala sistemului, fie pe placa de bază a CPU.

PC din gama IBM sau compatibile manevrează următoarele clase de întreruperi: 1) întreruperi ale microprocesorului grupate pe tipuri de întreruperi, fiecărui tip fiindu-I

atribuit un cod după care se identifică; 2) întreruperi iniţiate hardware sunt cauzate de evenimente externe activate pe două linii:

INTR (INTerrupt Request) şi NMI (Non Maskable Interrupt-pini de întrerupere ai microprocesorului):

- dacă linia INTR este activă, CPU execută anumite activităţi în funcţie de indicatorul de validare al întreruperii (IF);

- dacă linia NMI este activă, întreruperea anunţă producerea unor evenimente critice, iar CPU le dă imediat controlul; evenimentele ce utilizează intrarea NMI sunt nemascabile, iar evenimentele care utilizează intrarea INTR sunt calificate ca întreruperi posibil de inhibat (mascabile).

3) întreruperi iniţiate software sunt produse explicit de instrucţiuni de întrerupere sau sunt rezultatul unor condiţii de excepţie ce previn programul asupra continuării execuţiei; sunt întreruperi nemascabile.

O instrucţiune INT (INTerrupt) generează o întrerupere imediat după execuţia sa. Tipul de întrerupere este codificat în instrucţiune anunţând CPU care rutină de tratare a întreruperii să o execute. Dacă este setat bitul TF, CPU generează o întrerupere după execuţia fiecărei instrucţiuni; aceasta se numeşte execuţie pas cu pas (step by step) constituindu-se într-un instrument deosebit de util pentru testarea şi depanarea programelor.

Întreruperile software sunt fixate la orice PC din gama IBM sau compatibil, ele făcând parte din programele BIOS-ului.

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

97

4) întreruperile DOS sunt disponibile numai sistemului de operare MS-DOS; rutinele de tratare a acestor întreruperi gestionează operaţii de bază, lucrul cu fişierele, gestionarea memoriei, ş.a.

5) întreruperile Basic sunt folosite numai dacă în memoria ROM, interpretorul Basic este activ. 6) întreruperile de adresă se găsesc sub forma vectorilor de întreruperi, în tabela vectorilor de

întrerupere şi conţin adresele diferitelor tabele din memorie, nefiind asociate cu rutinele de tratare a întreruperilor; trei tabele sunt mai semnificative:

- tabela de iniţializare video; - tabela de bază a discului; - tabela de caractere grafice. 7) întreruperile folosite de programe utilizator care de regulă, au un interval rezervat. 3.5.2. Atribuirea întreruperilor şi priorităţii. Serializarea întreruperilor Iniţial, microprocesoarele familiei Intel X86 aveau opt întreruperi incluse pe controlerul

standard Intel 8259 A numerotate de la 0 la 7, cu priorităţi în ordine descrescătoare numerelor atribuite (NMI, IRQ0, IRQ1,..., IRQ7); existau doar două linii de semnal dintre care una era folosită de întreruperea nemascabilă NMI (eroare de paritate a memoriei sau provenită de la coprocesorul matematic), iar cealaltă era folosită de întreruperile IRQ în funcţie de prioritatea asociată.

Ulterior, la modelele AT numărul liniilor de semnal s-a dublat prin introducerea unui nou controler Intel 8259 A legat în cascadă cu primul controler, la întreruperea IRQ 2 care a fost redistribuită liniei IRQ 9, modificându-se şi priorităţile.

Magistralele PCI nu folosesc controlerul de întreruperi AT, având integrat propriul controler care include patru linii de întrerupere (patru linii a câte opt biţi), neimpunând limite în modul de folosire al semnalelor de întrerupere datorită în principal software-ului.

Majoritatea PC - urilor actuale bazate pe microprocesoare Pentium, pentru a păstra compatibilitatea cu microprocesoarele Intel precedente, includ plăci ISA/PCI, legătura cu microprocesorul realizeazându-se pe magistrala PCI printr-un cip de legătură PCI-magistrala locală a microprocesorului, în timp ce legătura cu magistrala ISA se realizează printr-un cip de legătură ISA/PCI care include un standard de serializare a întreruperilor IRQ pentru magistrala PCI.

Standardul de serializare IRQ se bazează pe un semnal special IRQ SER ce codifică întreruperile IRQ; printr-un ciclu IRQ SER se trimit informaţii despre starea tuturor întreruperilor din sistem (durata unui ciclu este de 4 - 8 cicluri de ceas), acesta fiind divizat în cadre ce includ câte trei cicluri de ceas. Un cadru codifică starea unei întreruperi.

3.6. COMPONENTA ROM-BIOS ŞI MS-DOS 3.6.1. Elemente componente BIOS Sistemul driverelor de intrare/ieşire de bază - BIOS (Basic Input Output System) rezident în

memoria ROM, conţine următoarele elemente: - programe de test pentru resursele sistemului din configuraţia standard; - program de încărcare a înregistrării ce conţine încărcarea sistemului de operare pe disc; - proceduri pentru tratarea cererilor de întrerupere externe. - proceduri pentru comanda şi controlul execuţiei operaţiilor de intrare/ieşire la nivel fizic,

pentru dispozitivele periferice din configuraţia standard. Programele de test pentru resursele din configuraţia standard se execută automat odată cu

pornirea sistemului realizând următoarele activităţi: - testarea sumară a microprocesorului care include testarea registrelor accesibile utilizatorului

şi a căilor de date; - testarea şi programarea canalului DMA (Direct Memory Acces) şi a contorului programabil

ce participă la realizarea operaţiei de reîmprospătare a memoriei interne;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

98

- testarea şi programarea contorului programabil pe baza căruia se construieşte ceasul de timp real;

- stabilirea configuraţiei sistemului prin determinarea poziţiei comutatorilor; - testarea memoriei RAM; - testarea sistemului de întreruperi şi iniţializarea tabelei ce conţine adresele rutinelor pentru

tratarea acestora; - stabilirea legăturilor cu alte ROM din afara plăcii de bază incluse în interfeţele dispozitivelor

periferice, ce constă în: • stabilirea adreselor de tratare a întreruperilor aferente; • iniţializarea dispozitivelor periferice şi a variabilelor asociate; • testarea sumară a adaptoarelor pentru tastatură, monitor şi discuri.

3.6.2. Structurarea programelor şi segmentarea la MS-DOS Programele executabile pot fi memorate pe suport extern în două forme: - nume_fişier.EXE constituit dintr-o structură multisegment: stiva, datele, codul; - nume_fişier.COM constituit dintr-un singur segment ce include atât datele cât şi codul

instrucţiunilor programului. Într-un fişier cu extensia .EXE, programul este constituit într-un format relocabil incluzând un

antet cu privire la informaţiile necesare pentru realocare. Fişierele cu extensia .COM ocupă un spaţiu mai redus pe suport magnetic, încărcându-se în

RAM mult mai repede. Oricare ar fi formatul programului executabil, în momentul încărcării în RAM pentru execuţie

acesta este precedat de un prefix de segment al programului (PSP) a cărui adresă de început este ds:0000 şi es:0000 având următoarea structură constituită din 256 bytes (100H).

Structura unui fişier .EXE conţine 3 segmente: a. segmentul de stivă, segment ce poate apare în orice ordine relativă din alt segment; este

utilizat de programe pentru a memora orice date care trebuie salvate şi reapelate apoi de program; b. segmentul de date este segmentul care conţine variabile referite de segmentul de cod, motiv

pentru care este important să fie plasat înaintea acestuia în vederea scăderii posibilităţii de a se produce erori, a creşterii vitezei de execuţie şi a eficienţei asamblării;

c. segmentul de cod conţine instrucţiunile executabile începând cu o etichetă ce identifică punctul de intrare în segment.

În momentul încărcării fişierului .EXE pentru execuţie, se va poziţiona în RAM mai întâi PSP ce conectează programul cu MS-DOS după care MS-DOS poziţionează în RAM segmentul de cod, segmentul de date şi cel de stivă al programului. În final, MS-DOS plasează elementele de identificare ale segmentului de cod şi ale segmentului de stivă în registrele de segment:

- registrele ES şi DS sunt iniţializate la adresa de segment corespunzătoare adresei de început a segmentului de date;

- registrul CS este iniţializat la adresa de început segmentului ce conţine programul. - registrul de stivă (SS) şi indicator al adresei din stivă (SP) se vor iniţializa dacă nu a fost

declarat explicit un segment pentru stivă sau se doreşte utilizarea unui alt segment pentru stivă, decât cel de cod.

Structura fişierului .COM Fişierul .COM are un singur segment "comun" ce conţine toate datele programului, PSP par şi

stiva. Dimensiunea maximă a unui program .COM poate fi de 64 K cât este dimensiunea unui segment, şi toate referirile din program sunt relative la adresa de început a segmentului. MS-DOS construieşte PSP şi îl include în segment pe primii 256 bytes (100H) ceea ce implică definirea punctului de intrare în program la 100H după blocul de 256 bytes al PSP. După definirea punctului de intrare în program, acesta trebuie comutat la instrucţiunea de început a execuţiei programului.

La terminarea programului, faţă de fişierele .EXE există următoarele deosebiri:

CAPITOLUL 3. PRINCIPIILE DE BAZĂ ALE SISTEMELOR DE OPERARE

99

- redarea controlului MS-DOS se realizează cu instrucţiunea RET înaintea terminării procedurii principale, care are ca efect un salt la primul byte din prefixul programului unde se găseşte instrucţiunea INT 20H memorată la începutul prefixului de program;

- instrucţiunea END trebuie să identifice eticheta punctului de intrare la deplasarea 100H. La execuţia editării de legături se va semnala o eroare ce se ignoră, cu privire la nedeclararea

segmentului de stivă SS. 3.6.3. Alocarea memoriei pentru programe şi execuţia lor Având în vedere organizarea logică a memoriei interne la PC - uri, sistemul de operare MS-

DOS divide memoria de 640 K în două zone: - prima zonă începe la adresa 0000:0000H şi conţine: • vectorii de întrerupere; • tabela vectorilor de întreruperi; • zonele tampon; • nucleul sistemului de operare (partea rezidentă);

- a doua zonă - zona de tranzienţe - conţine programele şi informaţii de context pentru aceste programe (environment);

Încărcarea şi execuţia unui program se realizează prin execuţia funcţiei EXEC prin care programul încărcător va solicita sistemului de operare alocarea a două blocuri de memorie:

- un bloc de memorie pentru program; - alt bloc de memorie, pentru contextul acestuia. Înainte de apelul funcţiei EXEC, trebuie salvate toate registrele ce conţin informaţii utile şi a

conţinutului registrelor SP şi SS în memoria programului apelant. La revenirea din programul apelat se refac registrele salvate.

3.6.4. Programe rezidente (TSR) Programele rezidente (TSR Terminate and Stay Resident) sunt o manieră rudimentară de exploatare multitasking la MS-DOS, ce constă în existenţa în RAM a mai multor programe

care sunt activate prin producerea unui eveniment extern, putându-se comuta rapid de la un program la altul şi creând astfel iluzia de multitasking. Pentru activarea unui program TSR trebuie să aibă loc un eveniment extern (combinaţii de taste), fiind astfel necesară utilizarea unei secvenţe ce tratează întreruperea de nivel 9, activare ce nu trebuie să afecteze execuţia altor programe care se mai execută (chiar alte TSR). Din acest motiv la activarea întreruperii 9 se execută:

- salvarea stării curente; - salvarea codului de scanare curent; - dacă are loc un eveniment extern atunci se execută TSR, altfel se tratează întreruperea de

nivel 9 şi se reface starea salvată. Deoarece un program TSR poate conţine funcţii DOS şi MS-DOS nu este reentrant, activarea

programelor TSR se va face numai dacă nu este în execuţie o funcţie DOS sau sistemul de operare nu este în tratarea unei erori critice.

Dacă programul TSR realizează operaţii cu discuri, e necesară salvarea adresei PSP a programului întrerupt şi a adresei zonei de transfer a discului (DTA Disk Transfer Area) urmând ca la sfârşitul execuţiei programului TSR, să se realizeze operaţia inversă.

Un program TSR conţine trei secvenţe de program distincte: - instalarea programului (iniţializarea), ce constă dintr-o secvenţă ce creează legăturile

programului cu sistemul de operare (INT 35H şi INT 25H): INT 35H permite obţinerea şi salvarea ultimei adrese de tratare a întreruperii, respectiv INT 25H pentru crearea noii legături.

- programul TSR ce conţine secvenţa de program propriu-zisă; - dezafectarea legăturilor TSR- MS-DOS şi refacerea vechilor legături.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

100

CAPITOLUL 4 PRINCIPALELE SISTEME DE OPERARE

4.1. GENERALITĂŢI

La pornirea calculatorului, este efectuat un autotest care controlează memoria RAM, încearcă să identifice fiecare dispozitiv de stocare conectat, şi verifică dacă există o imprimantă conectată la sistem şi starea acesteia (închisă sau deschisă). Aceste secvenţe de instrucţiuni sunt stocate în BIOS (Basic Input Output System), într-o memorie ROM al cărui conţinut nu poate fi alterat. Versiunile mai noi de BIOS-uri au incluse funcţii suplimentare, cum ar fi detecţia automată a diverselor dispozitive periferice ce există în sistem (Plug And Play), autodetecţia tipului de hard-disk introdus în calculator etc. BIOS-ul reprezintă interfaţa între echipamentele hardware ale calculatorului (resursele de bază ale sistemului: disc, tastatură, display, memorie etc.) şi sistemul de operare.

Un sistem de operare este un complex de programe care permite exploatarea unui sistem de calcul prin intermediul BIOS-ului, asigurând executarea lanţurilor de sarcini ale sistemului. Sistemul de operare furnizează şi un set de funcţii standard, care pot fi utilizate de aplicaţii pentru comunicarea cu BIOS-ul, şi deci implicit cu resursele hardware ale calculatorului. În cursul utilizării calculatorului, sistemul de operare are datoria de a informa despre buna funcţionare a dispozitivelor periferice. Sistemul de operare gestionează operaţiile de intrare şi ieşire, prin monitorizarea şi controlarea fluxului de date şi a programelor în execuţie, este responsabil de alocarea resurselor sistemului, atribuirea de resurse hardware diverselor programe şi funcţii, pentru a asigura funcţionarea eficientă a calculatorului.

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 moment dat pe sistem, se pot diferenţia sisteme de operare monoutilizator şi 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 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, XP sau VISTA pe Intel x86 şi DEC Alpha; SUN Solaris pe Intel x86 sau SPARC; Linux pe x86, SPARC, DEC Alpha, Macintosh; etc.).

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

Exemple de sisteme de operare: • MS-DOS – este produs de firma Microsoft, pentru platforme x86, este monotasking,

monoutilizator, şi are interfaţa cu utilizatorul în mod text. • Windows XP sau VISTA – produs de firma Microsoft, multitasking, monouser şi

multiutilizator, interfaţă grafică conţinută în nucleul sistemului. • 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: Linux, SUN Solaris, HP-UX (HP), AIX (IBM), IRIX (SGI), DEC Unix, SCO Unix.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

101

• VMS, OpenVMS – produs de firma DEC, multiutilizator, multitasking. VMS-ul are interfaţă cu utilizatorul în mod text, OpenVMS-ul în mod grafic.

În concluzie, un calculator funcţionează datorită sistemului de operare instalat, şi anume prin interacţiunea sa cu resursele hardware ale calculatorului.

Î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 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.a. 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.

a. b.

c. d.

Figura 4.1. Interfaţa text a MS DOS; b. interfaţa grafică Windows XP; c. ecran al interfeţei grafice CDE; d. ecran al interfeţei grafice KDE

Din 1985 a apărut sistemul Microsoft Windows, care nu era un sistem de operare, ci un mediu grafic pentru MS-DOS. Un mediu grafic reprezintă mai puţin decât un sistem de operare, deoarece funcţionarea sa se bazează pe existenţa unui asemenea sistem. Din 1995 a lansat Windows 95, care

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

102

este mai mult decât un mediu de operare, incluzând şi funcţii ale sistemului MS-DOS în mediul integrat Windows, lucru preluat şi de versiunile ulterioare, până astăzi (fig 4.1.b).

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 4.1.c este prezentat un ecran al interfeţei grafice CDE pentru Solaris. 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 4.1.d.

4.2. SISTEMUL DE OPERARE MS-DOS

MS-DOS (MicroSoft Disk Operating System) – este un sistem de operare monoutilizator, monotasking, monoprocesor, ce funcţionează pe microcalculatoarele dotate cu procesoare Intel 8088 şi succesoarele acestuia (80286, 80386, 80486, Pentium etc.). Acest sistem de operare a fost inclus în alte sisteme de operare, cum ar fi: Windows 95/98/Me/NT/2000/XP/2003/Vista/2008 şi Novell NetWare.

Proiectanţii sistemului de operare MS-DOS s-au inspirat din sisteme de operare CP/M, unanim acceptat pe microcalculatoarele pe 8 biţi şi UNIX.

De la CP/M, MS-DOS a împrumutat ideea independenţei faţă de echipament, realizată prin introducerea BIOS-ului (Basic Input Output System), numele unor comenzi (ERASE, DIR, TYPE etc.), parţial modul de organizare a informaţiei pe disc etc.

De la UNIX s-a împrumutat structura arborescentă a sistemului de fişiere, înlănţuirea unităţilor de alocare pe disc ("clusters") ale unui fişier, ideea folosirii propriului interpretor de comenzi ( Shell ) etc.

Caracteristicile principale ale sistemului de operare MS-DOS sunt : - lucrează cu un singur utilizator, rulând un singur program la un moment dat (sistem de

operare monouser - monotasking ); - proceduri avansate de detecţie a erorilor; - dispozitive de intrare / ieşire independente, MS-DOS asignând un nume de fişier rezervat

fiecărui echipament de intrare / ieşire; - realocabilitatea completă a programelor, fiind posibilă rularea aceluiaşi program de la mai

multe adrese de încărcare; - structură de fişiere eficientă şi rapidă; - contabilizarea datei şi timpului.

4.2.1. Structura sistemului de operare MS-DOS Sistemul de operare MS-DOS este structurat pe trei nivele:

• BIOS (Basic Input Output System); • Nucleul; • Shell-ul (COMMAND.COM).

Ultimele două componente reprezintă sistemul de operare propriu-zis şi sunt realizate de firma Microsoft.

În principal, componenta BIOS (componenta fizică) conţine un set de programe care asigură: • autotestarea la punerea sub tensiune, operaţie denumită POST (Power-On Self Test). În

acest test procesorul se autoverifică şi apoi verifică timer-ul sistemului şi memoria RAM. În acest moment, dacă găseşte vreo eroare, se trimite un mesaj către monitor. Dacă se

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

103

întâlnesc erori ce nu pot fi afişate pe monitor, ele sunt semnalizate sub formă de sunete. După POST se transmite un sunet şi pe acran apar mesaje de încărcare a sistemului de operare odată ce bootstrap a înregistrat terminarea activităţilor POST;

• suportul software pentru dispozitivele periferice standard – în felul acesta izolează sistemul de operare de ceea ce este specific hardware-ului (componenta BIOS conţine codurile apelurilor de sistem pentru citirea şi scrierea de la adresele absolute de pe disc, pentru citirea unui caracter de la tastatură sau pentru afişarea unui caracter pe ecran);

• rutina pentru iniţializarea sistemului; • programul de încărcare a primului sector logic de pe discul flexibil sau hard disc.

La pornirea calculatorului se porneşte încărcătorul bootstrap care este localizat în cipul BIOS. Acesta asigură testarea componentelor hardware ale calculatorului şi încărcarea sistemului de operare în memoria RAM.

Există două modalităţi de pornire a calculatorului: • Pornirea la rece (cold-boot); • Pornirea la cald (warm-boot), care se realizează prin apăsarea tastelor Ctrl+Alt+Delete.

Pornirea la rece implică următorii paşi: 1) Sursa de curent – se iniţializează; chipset-ul plăcii de bază aşteaptă pentru semnalul

„Power Good” din partea sursei; 2) BIOS ROM – procesorul localizează programul de boot (iniţializare) al BIOS-ului; 3) POST – BIOS-ul rulează secvenţa POST. Dacă apare vreo eroare majoră, procesul de boot

se opreşte; 4) Video – BIOS-ul caută programul BIOS pentru placa video şi îl execută pentru iniţializarea

plăcii video; 5) Alte dispozitive BIOS – BIOS-ul caută programe BIOS pentru alte echipamente BIOS (hard

disk) şi le execută; 6) Ecranul de pornire – BIOS-ul afişează ecranul de pornire; 7) Memoria – BIOS-ul testează alte componente ale calculatorului şi un test de memorie; 8) Hardware – BIOS-ul testează sistemul pentru a găsi componentele hardware (de exemplu

hard-discuri); 9) Plug and Play – Configurarea dispozitivelor Plug and Play; 10) Ecranul de configurare – BIOS-ul afişează un sumar al configuraţiei hardware a

sistemului; 11) Discul de boot – BIOS-ul caută un disc de boot pe baza secvenţei de iniţializare; 12) Boot record – BIOS-ul caută primul dispozitiv de boot din secvenţă pentru MBR (Master

Boot Record) de pe un disc hard sau VBS (Volume Boot Sector) de pe o dischetă floppy; 13) SO – BIOS-ul începe să iniţializeze sistemul de operare, moment în care acesta preia

controlul de la BIOS; 14) Eroare – dacă BIOS-ul nu găseşte un dispozitiv de iniţializare în cadrul secvenţei de boot,

va afişa un mesaj de eroare şi va bloca sistemul. Componenta BIOS este furnizată de constructor şi nu de firma Microsoft, fiind localizată în

memoria ROM (Read Only Memory) în blocul de 64 KB, chiar sub limita de 1 MB a spaţiului de adresare. Procedurile BIOS sunt apelate prin intermediul vectorilor de întreruperi şi nu prin apeluri directe, ceea ce permite constructorilor schimbarea mărimii şi a amplasării procedurilor BIOS.

Fişierul IO.SYS (IBMBIO.COM în versiunile IBM) este un fişier ascuns, care există în toate sistemele MS-DOS. Se utilizează la iniţializarea calculatorului şi oferă o interfaţă cu BIOS-ul pentru apelurile de proceduri.

Nucleul sistemului de operare poate accesa serviciile BIOS-ului prin intermediul procedurilor din IO.SYS. Existenţa acestui fişier permite o izolare mai bună a nucleului de componenta hardware. De exemplu, nucleul nu trebuie să cunoască ce vector de întrerupere corespunde unui serviciu BIOS dat, această informaţie fiind regăsită prin fişierul IO.SYS.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

104

Nucleul conţine partea sistemului de operare independentă de calculator şi se găseşte într-un alt fişier ascuns, MSDOS.SYS (IBMDOS.COM). Are rolul de a gestiona procesele, memoria şi sistemul de fişiere, ca şi interpretarea tuturor apelurilor de sistem.

După nucleu, cea de-a treia parte a sistemului de operare este shell-ul reprezentat prin fişierul COMMAND.COM. Totuşi acesta poate fi înlocuit de către utilizator. Fişierul COMMAND.COM realizează interfaţa dintre utilizator şi nucleul sistemului de operare, conţinând:

• o parte rezidentă care este totdeauna în memorie; • o parte nerezidentă, ce se încarcă în partea superioară a memoriei, la limita celor 640 KB şi poate fi înlocuită.

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

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 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 1până la 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.

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ă. Un exemplu de organizare a discului sub forma unui arbore de subdirectoare este arătat în figura 4.2.

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

Dacă din punct de vedere logic un disc este văzut ca o mulţime de fişiere grupate într-o structură arborescentă de directoare, din punct de vedere fizic, informaţia este scrisă pe disc de-a lungul unor cercuri concentrice, numite piste, fiecare pistă fiind împărţită în sectoare cu

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

105

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.

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. Discul fix (hard disk-ul) poate fi împărţit în mai multe partiţii logice, care pot fi utilizate ca discuri independente.

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).

Discul 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, - 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 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. Orice intrare în director (în directorul rădăcină sau într-un subdirector) conţine 32 de octeţi. O intrare în FAT conţine 2 octeţi (FAT16) în cazul discurilor hard şi 1,5 octeţi în cazul discurilor flexibile.

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 unde se află fişierul, filename - este numele fişierului, ext - este extensia fişierului.

Elementele din paranteză sunt opţionale, deci pot să lipsească. Sistemul de operare MSDOS ţine evidenţa a două valori: disc implicit şi director curent, care pot fi modificate cu ajutorul

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

106

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. Î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 - 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ă 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. 4.2.3. Lansarea sistemului de operare La punerea sub tensiune, se execută instrucţiunea de la adresa fizică FFFF0H, pentru

sistemele cu microprocesor I8086 (FFFFF0H la I80286, şi FFFFFFF0H la I80386 şi I80486), unde se găseşte un salt necondiţionat în ROM-BIOS-ul calculatorului; acea parte din BIOS-ul sistemului de operare rezidentă în memoria ROM a calculatorului. Programul din această memorie efectuează următoarele actiuni:

- scrie şi citeşte toată memoria RAM pentru depistarea eventualelor erori; - testează componentele principale ale sistemului: discurile, tastatura etc.; - citeşte microcomutatoarele (switch-urile) la calculatoarele IBM PC/XT, sau memoria CMOS

la celelalte variante de calculatoare IBM, pentru a determina configuraţia curentă: dimensiunea memoriei RAM existente în sistem, numărul şi tipul unitătilor de disc, tipul interfeţei grafice etc.

După toate aceste operaţii, programul din ROM-BIOS încarcă programul încărcător al sistemului de operare (secvenţa BOOT), din sectorul 0, pista 0, faţa 0 a primei unităţi de disc flexibil, dacă există un disc sistem în această unitate, dacă nu încarcarea secvenţei BOOT realizându-se din sectorul logic 0 al partiţiei DOS active, de pe discul fix. Un disc sistem este un disc care conţine secvenţa BOOT, împreună cu cele 3 fişiere care compun sistemul de operare.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

107

În continuare se dă controlul programului încărcător, care încarcă fişierele IO.SYS şi MSDOS.SYS de pe discul sistem. Fişierele IO.SYS şi MSDOS.SYS sunt invizibile (au atributul hidden) şi nu pot fi copiate, şterse sau manipulate prin comenzi uzuale.

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. 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ă, î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.

În sistemele de operare Windows 95 şi 98 se află în subdirectorul WINDOWS\COMMAND, sistemul de operare MS-DOS. Intrarea în MS-DOS (Command Prompt) parcurge următorii paşi:

a. b. c.

d.

Figura 4.3. a. Lansarea MS-DOS din Windows 95/98; b. Lansarea MS-DOS din Windows XP; c. Lansarea MS-DOS din meniul “run”; d. fereasra prompteru-lui DOS.

1. Se execută clic stânga pe butonul “Start” din bara de sistem sau apăsăm combinaţia de taste Ctrl + Esc şi ne deplasăm cu săgeată în sus şi apoi se alege opţiunea “Shut Down”. 2. Selectăm butonul radio cu opţiunea “Restart in MS-DOS mode” şi apăsăm OK.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

108

3. Acum ne aflăm în catalogul (folderul) C:\Windows şi putem executa comenzi şi programe specifice MS-DOS. Pentru revenire în sistemul de operare Window, se scrie la tastatură comanda “EXIT”. În sistemele de operare Windows 2000, Me, Xp, 2003 Server, Vista se poate activa sesiunea

de lucru DOS de la butonul Start şi apoi prin meniurile desfǎşate: Start → Programs → Accessories → Command Prompt, sau Start → run → şi se tasteazǎ comanda cmd. Se obţine o fereastrǎ a prompteru-lui DOS.

4.2.4. Configurarea sistemului de operare 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: Comanda BREAK care permite abandonarea programul în execuţie, prin apăsarea simultană a

tastelor CTRL şi BREAK. Comanda BUFFERS ce reprezintă numărul buffer-elor ce vor fi deschise de sistem la lansare; Comanda SHELL poate folosi un interpretor de comenzi diferit de COMMAND.COM,

încărcat şi plasat în memorie în locul lui COMMAND.COM. Comanda DEVICE 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. 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 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. 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 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 MSDOS 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.

- Memoria superioară - 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ă. 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

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

109

- Memoria extinsă - este zona de memorie situată dincolo de 1Mb, pe care MS-DOS o foloseşte pentru anumite scopuri precise: instalarea unui RAM-disc, operaţii BIOS etc. Această memorie este folosită în modul protejat al procesoarelor x86 sub sistemele Windows şi OS/2.

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

operare, preluând de la tastatură o linie de comandă terminată cu caracterul ENTER, pe care o depune într-un buffer intern, în vederea analizei şi execuţiei comenzii respective.

Primul cuvânt din linia de comandă reprezintă numele comenzii, şi trebuie să fie numele unei comenzi interne sau numele unui fişier cu extensia EXE, COM sau BAT, următoarele cuvinte din linia de comandă fiind parametrii comenzii respective.

Procesorul de comenzi acceptă, ca parametri în linia de comandă, nume generice de fişier. Un nume generic de fişier este un identificator de fişier care conţine caracterele ? şi *.

Caracterul ? se echivalează cu un singur caracter, în timp ce caracterul * se echivalează cu un şir de caractere. Aceste caractere se folosesc în cadrul numelui (filename) şi al extensiei de fişier. Exemple:

PROG*.* - specifică toate fişierele din directorul curent de pe discul implicit, al căror nume de fişier începe cu şirul de caractere PROG, continuă cu orice şir de caractere, şi au orice extensie.

B:FYLE?.C - specifică toate fişierele din directorul rădăcină al discului B, al căror nume începe cu FYLE, se continuă cu orice caracter (dar numai un singur caracter), şi care au extensia C.

Caracterele de control acceptate de COMMAND.COM sunt următoarele: CTRL-C sau CTRL-BREAK - încheie execuţia comenzii curente, CTRL-ALT-DEL - reîncarcă (relansează) sistemul de operare, CTRL-P - determină trimiterea informaţiilor afişate pe ecran şi la imprimantă, până când este

tastat următorul caracter CTRL-P, F3 - scoate din buffer linia de comandă sau restul liniei de comandă anterioare, F1 - scoate din buffer următorul caracter al liniei de comandă executate anterior, F2 C - scoate din buffer caracterele liniei de comandă anterioare, până la întâlnirea

caracterului C. Ultimele trei caractere de control sunt utile atunci când s-a greşit o comandă, nefiind necesară

tastarea din nou a întregii comenzi. Tot în cadrul liniei de comandă, se mai pot folosi şi următoarele caractere speciale: > - redirectează ieşirea unui program de la ecran (CON) către un fişier sau alt dispozitiv de

intrare/ieşire. Dacă fişierul exista anterior, se va pierde vechiul conţinut. >> - 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 ş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, conţinutul fişierului text FILE.DAT va reprezenta intrarea programului PROG.

PROG < FILE - programul PROG va prelua datele din fişierul FILE, şi nu de la tastatură. Procesorul de comenzi COMMAND.COM are trei părţi:

- partea rezidentă - partea temporara

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

110

- partea de iniţializare Partea rezidentă se află permanent în memorie, în zona de început a memoriei, deasupra

tabelei vectorilor de întrerupere. Ea conţine codul pentru procesarea comenzilor Ctrl-C şi Ctrl-Break, codul pentru trararea erorilor şi codul pentru încărcarea părţii temporare când este necesar.

Partea temporară este cea care recepţionează comenzi de la tastatură şi care conţine codul comenzilor interne. Ea este încărcată imediat sub limita de 640 kB a memoriei RAM. Dacă programul de aplicaţie este mare, el poate să elimine partea temporară a COMMAND.COM din memorie. În acest caz, la terminarea execuţiei programului de aplicaţie, partea rezidentă va reîncărca partea temporară.

Partea de iniţializare este încărcată în memorie numai în timpul procesuIui de încărcare a sistemului de operare. Ea conţine codul pentru execuţia lui AUTOEXEC.BAT. Acest fişier realizează ultima parte a iniţializării MS-DOS-ului. Partea de iniţializare este eliminată din memorie după ce AUTOEXEC.BAT este apelat.

Procesorul de comenzi COMMAND.COM acceptă trei tipuri de comenzi: - comenzi interne - comenzi externe - comenzi de tip batch (indirecte)

Comenzile interne (sau intrinseci) sunt cele al căror cod este conţinut în COMMAND.COM, DIR, COPY, REN, DEL sunt exempIe de comenzi interne.

Comenzile externe sunt cele ale căror cod se află pe disc, sub forma unor fişiere .EXE sau .COM. Toate programele de aplicaţie sunt încărcate şi executate sub formă de comenzi externe. Chiar MS-DOS are în componenţă programe cum ar fi CHDSK sau FORMAT, care sunt executate ca şi comenzi externe.

Atât comenzile interne cât şi comenzile externe încarcă programul specificul în zona de memorie numită TPA (Transient Program Area) şi apoi trasferă controlul primei instrucţiuni din program. Odată ce execuţia programului este terminată, codul aflat în TPA nu mai este valid.

Comenzile de tip batch sau comenzile indirecte se referă la fişiere de tip text (cu extensia .BAT) care conţin mai multe comenzi. Acest fişier este interpretat utilizând un interpretor din partea temporară a COMMAND.COM. Interpretorul citeşte fiecare linie din fişier şi apoi execută comanda corespunzatoare liniei citite.

Când o comandă este introdusă de către utilizator, COMMAND.COM încearcă mai întâi să găsească un program intern cu numele respectiv. Dacă detecţia internă eşuează, atunci încearcă să detecteze în calea curentă un fişier cu numele respectiv şi cu extensia .COM, .EXE sau .BAT (în această ordine). Dacă şi această detecţie eşuează, atunci COMMAND.COM afişează mesajul "Bad Command or File Name".

Dacă un fişier cu numele specificat şi extensia .EXE sau .COM este detectat, atunci COMMAND.COM utilizează funcţia EXEC a lui MS-DOS pentru a încărca programul şi a-i transfera controlul. Când execuţia programului este terminată, partea temporară a COMMAND.COM este încărcată din nou iar controlul revine sistemului de operare prin intermediul COMMAND.COM.

Spre deosebire de sistemele de operare mari, MS-DOS pierde aproape tot controlul sistemului pe durata execuţiei unui program (programul are la dispoziţie toate resursele calculatorului), componente MS-DOS care rămân în control în timpul execuţiei unui program sunt rutina de ceas (care întrerupe periodic programul aflat în execuţie, pentru actualizarea timpului şi datei sistemului) şi sistemul de întreruperi al tastaturii (care permite să a se acţioneze combinaţia de taste Ctrl-Break pentru a opri execuţia programului şi a permite revenirea în sistemul de operare).

4.2.6. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT. Un fişier lot de lucrări (fişier batch) este un fişier text ce conţine una sau mai multe comenzi

DOS, care se execută împreună. Aceste fişiere de tip batch trebuie să aibă extensia BAT. Pentru executia fişierului batch, se introduce de la tastatură numai numele fişierului, fără extensie.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

111

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.

Avantajele utilizării programelor batch constau în: -automatizarea unor procese de prelucrare, sporindu-se astfel viteza de execuţie a lucrărilor; -"personalizarea" comenzilor, realizându-se atingerea obiectivelor propuse, precum şi

proiectarea unor prompter-e şi mesaje dorite. Într-un fişier de comenzi putem include orice comandă MS-DOS (executabilă de la prompt),

precum şi un set de comenzi gândite special pentru acest tip de fişiere. Comenzile specifice fişierelor batch sunt:

CALL -apelează un alt program batch pe care îl lansează în execuţie; ECHO -afişează mesaje pe ecran şi suprimă la dorinţă afişarea comenzilor programului batch

ce se execută; FOR -execută repetat o comandă pentru un grup specificat de fişiere; GOTO -determină executarea unui salt într-un punct al programului marcat printr-o etichetă; IF -execută o comandă în funcţie de îndeplinirea unei condiţii; PAUSE -opreşte temporar execuţia programului batch; reluarea execuţiei se va face prin

acţiunea oricărei taste. REM -permite intorducerea unor comentarii în cadrul programului; SHIFT -modifică valoarea unor parametri în cadrul programului batch. 4.2.7. Comenzile sistemului de operare MS-DOS Comenzile sistemului de operare MS-DOS se împart în 6 categorii: 1. Comenzi pentru lucrul cu directori dintre care amintim : APPEND - permite programelor să deschidă fişiere de date dintr-un director oarecare ca şi cum aceste ar face parte din directorul curent. CD - afişează sau schimbă directorul curent. DIR - afişează lista fişierelor şi subdirectoarelor unui director. DELTREE – şterge o structură de fişiere şi directori (sub Windows nu mai este activă). MD - crează un director. PATH - setează o cale de căutare pentru fişierele executabile. RD - şterge un director. TREE - afişează structura de directoare a unui disc. 2. Comenzi pentru lucrul cu fişiere : ATTRIB - afişează sau schimbă atributele unui fişier. BACKUP - salvarea unuia sau mai multor fişiere de pe un disc pe altul. RESTORE - reface fişiere salvate cu comanda backup. COMP - compară conţinutul a două fişiere. COPY - copiere de fişier sau grupuri de fişiere într-o altă locaţie. Comanda poate fi folosită şi pentru combinarea fişierelor, respectiv concatenarea. DEL - şterge fişierul (fişierele) specifacat. FASTOPEN - permite localizarea mai rapidă a fişierelor, crescând viteza aplicaţiilor ce

lucrează cu multe fişiere. FIND - filtru DOS ; caută un şir de caractere într-un fişier sau într-un grup de fişiere. MORE - execută o ieşire pe monitor afişând câte un ecran. PRINT - depune un fişier text în coada de aşteptare la tipărire; fişierul va fi tipărit pe imprimantă când îi va veni rândul; între timp, uitlizatorul poate executa alte comenzi MS-DOS.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

112

SHARE - permite partajarea fişierelor între mai mulţi utilizatori, când se lucrează în reţea. SORT - citeşte o intrare , ordonează datele şi scrie rezultatele pe ecran sau într-un fişier poate

fi folosit ca un filtru înlănţuit cu altă comandă. RENAME - schimbă numele unui fişier sau unui grup de fişiere. TYPE - afişează conţinutul unui fişier text. UNDELETE - Reface fişierele şterse cu comanda DEL. XCOPY - copiază fişiere şi directoare incluzând subdirectoarele acestora. 3. Comenzi pentru lucrul la nivel de discuri : CHKDSK - afişază un raport de stare al discului referitor la ocuparea acestuia şi la erorile

logice întâlnite în tabela de alocare a fişierelor (FAT) DISKCOPY - copiază conţinutul unui disc floppy pe un alt disc formatat sau neformatat DISKCOMP - compară conţinutul a două discuri floppy compararea se face pistă cu pistă

numărul de sectoare pe pistă se determină analizând primul disc specificat FDISK - lansează programul de configurare a harddiscului în format utilizabil de MS- DOS FORMAT - formatează un disc şi crează pe el tabela de alocare a fişierelor (FAT) precum şi

directorul rădăcină; programul detectează şi marchează unităţile de alocare (CLUSTERS), defecte şi poate crea programul încărcător (BOOT) pentru un disc sistem; el poate copia pe disc, la cerere, fişierele sistem IO.SYS, MSDOS.SYS şi COMMAND.COM.

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ă, schimbă sau şterge o etichetă de volum pe disc. MSAV – program antivirus. SCANDISK – program de verificare a starii discului. SYS - copiaza fişierele sistem precum şi interpretorul de comenzi. UNFORMAT - reface un disc şters cu o comandă FORMAT sau reorganizat cu RECOVER reface tabela de partiţii a unui harddisc. VERIFY - verifică corectitudinea operaţiilor de scriere pe disc. VOL - afişează eticheta de volum disc şi numărul de serie dacă există. 4. Comenzi pentru interfaţa cu utilizatorul : CLS - golire ecran şi poziţionare cursor în poziţia 0,0 HELP - afişează informaţii ajutătoare despre comenzile disponibile ale MS DOS PROMPT - schimbă prompturile MS-DOS de pe linia de comandă 5. Comenzi pentru fixarea unor parametrii de lucru : COMMAND - pune în funcţiune un nou procesor de comenzi. DATE - afişează sau setează (schimbă) data curentă. KEYB - permite schimbarea modului de afişare a datei şi orei curente, a monedelor naţionale

precum şi schimbarea seturilor de caractere. MEM - afişează memoria folosită şi cea ramasă liberă în sistem precum şi starea programelor existente în memorie. MODE - este utilizată pentru redirectarea imprimantei paralele către un port serial. MSD – program de diagnostic (de întreţinere). RECOVER - recuperează toate cluster-ele nedistruse ale fişierului specificat şi marchează

cluster-ele defecte în FAT, pentru a preveni alocarea ulterioară a acestora. SET - echivalează şirul de caractere desemnat prin nume, cu şirul de caractere desemnat prin

parametru. Aceste echivalări sunt folosite de programele din sistem. TIME - afişează timpul sistemului şi permite setarea ceasului. VER - afişează versiunea MS -DOS folosită.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

113

6. Comenzi specifice fişierelor de comenzi: • comenzi utilizate în fişierele de comenzi (*.bat) : CALL, CHOICE, ECHO, FOR, GOTO,

IF, PAUSE, REM, SHIFT • comenzi de configurare în fişierul config.sys : BREAK, BUFFERS, CONTRY, DEVICE,

DEVICEHIGH, DOS, DRIVPARM, FCBS, FILES, INCLUDE, INSTALL, LASTDRIVE, MENUCOLOR, MENUDEFAULT, MENUITEM , NUMLOCK, REM, SET, SHELL, STACKS, SUBMENU, SWITCHES.

4.3. SISTEMUL DE OPERARE UNIX

4.3.1. Concepte de baza

La originea sistemului de operare UNIX a stat proiectul lansat de laboratoarele Bell în anul

1969, ce viza realizarea unui mediu de programare pentru cercetare şi dezvoltare în domeniul programarii. Noul sistem de operare, numit UNICS, a fost realizat pe un calculator PDP-7 şi a fost gândit iniţial ca un sistem monoutilizator. După lansarea primului compilator pentru limbajul C (1972) sistemul de operare a fost rescris în acest limbaj şi lansat sub numele de UNIX. Sistemul de operare UNIX a reprezentat, în momentul lansării, principala soluţie de standardizare în domeniul sistemelor de operare, un sistem deschis disponibil pe o gamă foarte largă de sisteme (mainframe-uri, mini şi microcalculatoare).

Sintetizând, principalele caracteristici definitorii ale sistemului de operare UNIX sunt: - sistem de operare robust; - disponibil pe o gamă foarte largă de platforme: de la PC-uri la, staţii de lucru şi

mainframe-uri; - un sistem de operare portabil de pe o arhitectură pe alta; acest lucru este determinat de

scrierea sa in limbaj C; portabilitatea vizează atât sistemul de operare însuşi, cât şi soft-ul de aplicaţie dezvoltat sub acest sistem;

- sistem deschis: mulţi programatori au putut să adauge propriile programe asigurând facilitati noi sistemului de operare;

- sistem de operare de tip time sharing, multitasking şi multiutilizator; sistemul de operare realizează planificarea proceselor, alocarea unei cuante de timp fiecărui proces şi activarea/dezactivarea acestora pentru a asigura folosirea la capacitate maximă a procesorului; paralelism efectiv se poate realiza doar pe sistemele multiprocesor, iar în cazul sistemelor monoprocesor se realizează o intreţesere a proceselor;

- gestionează un sistem de fişiere organizat ierarhic-arborescent; - operaţiile de intrare/ieşire sunt integrate în sistemul de fişiere (fişiere speciale ); - gestiunea memoriei se face printr-un mecanism ce permite schimbul de pagini între

memoria RAM -rezervată unui proces şi cea externă swap-memory; - permite asigurarea protecţiei fişierelor şi a mediului de executie, prin intermediul parolelor; - promovează modularitatea şi dispune de un sistem de gestiune a proceselor; - dispune de un sistem de gestiune a proceselor; - este un sistem de operare interactiv; - oferă utilizatorilor o largă paletă de componente software: compilatoare pentru limbaje de

nivel înalt (BASIC, COBOL, C, C ++, FORTRAN, PASCAL, PROLOG, LISP etc.) la care se adaugă utilitare diverse acoperind un spectru larg de aplicaţii: lucrul cu baze de date, reţele de calculatoare, grafică, inteligenţă artificială, instruire asistată de calculator etc.;

- calculatoarele lucrând sub sistemul de operare UNIX oferă utilizatorilor posibilitatea rularii aplicaţiilor scrise sub MS-DOS în paralel cu aplicaţiile scrise sub UNIX;

Are şi dezavantaje ca incompatibilitatea cauzată de multiplele implementări şi caracterul său criptic şi poate prea tehnic.

Lansarea sistemului de operare Windows NT a însemnat începutul unei perioade grele pentru sistemele UNIX care până atunci dominau piaţa sistemelor conectabile la Internet.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

114

Sistemul de operare UNIX a introdus o serie de concepte specifice: a) conceptul Kernel reprezentând nucleul sistemului de operare; b) fişiere speciale definind dispozitive periferice de intrare sau ieşire; c) procesul, unitatea fundamentală de execuţie în UNIX definind un program aflat în

execuţie caracterizat prin resursele pe care le utilizează: zona de memorie destinată pentru stocarea programului ce se execută şi a datelor prelucrate de acesta, fişierele deschise la un moment dat etc.

d) pipe, desemnand o structura de date şi o metodă de sincronizare a proceselor, astfel încat unul sau mai multe procese scriu date în acest fişier temporar din care sunt citite apoi de către alte procese;

e) swap-memory: memorie auxiliară rezidentă pe disc; o aplicaţie poate utiliza în mod transparent un spaţiu de memorie mai mare decât cel disponibil în memoria internă, sistemul de operare realizând transferul între memoria principală şi disc a paginii de memorie necesară . O pagina de memorie care nu este utilizată mai mult timp va fi transferată din memoria internă, pe disc, pentru a face loc paginilor de memorie necesare aplicaţiilor aflate în execuţie.

4.3.2. Structura sistemului de operare UNIX

Sistemul de operare UNIX prezintă trei componente: a) interfaţa cu utilizatorul (Shell); b) nucleul sistemului de operare (Kernel); c) componente software de aplicaţie. a) Interfaţa cu utilizatorul are rolul de a prelua comenzile utilizatorului, de a le analiza şi lansa

în execuţie. Interfaţa este reprezentată de un program numit SHELL ce poate fi ales dintr-o paletă destul de largă (C Shell, Bourne Shell, Kom Shell etc.). Pe lângă interfaţa de tip caracter, clasica, ce presupune tastarea comenzilor de către utilizator, UNIX dispune astăzi de o interfaţă grafică şi este mult mai prietenos. Un script reprezintă un program ce poate fi executat de către un Shell, fiind un fişier text ce poate conţine comenzi UNIX, bazate pe programe de sistem şi comenzi specifice Shell-ului.

b) Kernel-ul reprezintă nucleul sistemului de operare. Acesta se încarca la pornirea calculatorului şi are rolul de a planifica şi controla execuţia proceselor, gestiunea memoriei, gestiunea dispozitivelor periferice, gestiunea fişierelor.

Subsistemul de control al proceselor realizează planificarea, sincronizarea şi comunicarea dintre procese, precum şi gestiunea memoriei. La gestiunea proceselor trebuie subliniate caracteristicile de time-sharing şi multitasking realizate de UNIX.

Crearea unui nou proces se realizează în două etape : 1. Se execută funcţia fork care realizează o copie fidelă (numita proces-fiu) a procesului

aflat în execuţie, numit proces părinte; 2. În procesul-fiu se execută funcţia exec, ceea ce va produce înlocuirea procesului curent

cu un alt proces încărcat dintr-un fişier executabil. O combinaţie a mecanismului fork-exec este faptul că toate procesele aflate în execuţie au fost lansate, direct sau indirect, de catre alte procese sau chiar de un proces iniţial, numit init ce se lansează automat în execuţie la pomirea calculatorului.

Funcţia de gestionare a fişierelor presupune alocarea memoriei exteme pentru stocarea şi regasirea rapidă a fişierelor, eliberarea spaţiului de memorie externă în urma ştergerii de fişiere, structurarea sistemului de fişiere sub forma unui arbore, ceea ce-i asigura flexibilitate şi uşurinţă în utilizarea, protejarea faţă de accesul neautorizat la fişiere.

Serviciile de sistem oferă utilizatorului posibilitatea să administreze sistemul, să-şi configureze mediul de lucru, să gestioneze sistemul de fişiere (prin crearea de noi conturi, specificarea parametrilor de control ai accesului utilizatorilor la fişiere etc.).

c ) Sistemul de operare Unix pune la dispoziţia utilizatorilor o paletă largă de software de aplicaţie, cuprinzând: compilatoare, interpretoare, sisteme de gestiune a bazelor de date, procesoare de texte, programe pentru grafică, instrumente IA etc.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

115

4.3.3. Sistemul de fişiere UNIX Sistemul de operare UNIX utilizează următoarele categorii de fişiere:

• Fişiere text • Fişiere de date • Fişiere sursă (ce conţin codul sursă al unor programe) • Fişiere executabile • Programe shell • Fişiere legătură • Fişiere asociate unor dispozitive

a) Fişiere text reprezintă cel mai simplu tip de fişiere îl constituie fişierul text, ce conţine doar caractere (ASCII -American Standard Code for Information Interchange). b) Fişiere de date conţin date utilizate de diverse aplicaţii de pe sistem. c) Fişiere cod sursă conţin date scrise într-un limbaj de programare (C, C++, Java, Pascal,

Fortran etc.) şi vor avea extensia corespunzătoare limajului de programare. d) Fişiere executabile reprezintă programe obţinute cu ajutorul unui compilator (sau

interpretor) şi editor de legături ce pot fi rulate (executate). e) Programe de tip shell. Un fişier de tip shell este atât un fişier text cât şi un fişier ce poate fi rulat. El conţine linii text ce reprezintă instrucţiuni legate de programarea shell; de regulă,

prima linie din program este o linie ce începe cu secvenţa de caractere “#!” şi precizează tipul de shell utilizat.

f) Fişiere de tip legătură. Un fişier legătură (link) este o referinţă către un fişier stocat în altă locaţie în sistem. În loc să avem două sau mai multe copii ale unui fişier pe disc, putem crea o

legătură către un fişier deja existent pe sistem. g) Fişiere asociate unor dispozitive, denumite în UNIX “device special files”(sau, pe scurt,

fişiere device) conţin informaţii legate de componente hardware ale calculatorului şi sunt fişiere speciale cu referire (de regulă) la funcţii de administrare a sistemului. Tipurile de fişiere UNIX sunt prezentate în tabelul 4.1. şi au următoarele caracteristici:

Tabelul 4.1. Tipuri de fişiere UNIX

Tipul de fişier b) Descriere - Fişier simplu ("ordinary file") d Director b Fişier bloc ("block special") c Fişier caracter ("character

special") l Fişier legătură ("link") M Fişier de memorie partajată

("shared memory") P Fişier pipe ("named pipe") S Fişier semafor ("semaphore")

`Fişierele simple (-) • Nu este impusă nici o structură asupra conţinutului – acesta reprezintă o înşiruire de octeţi; • Aceste fişiere pot fi text (ASCII) sau binare.

Fişiere director (d) • Reprezintă un fel de tabel de fişiere; • Are o structură internă precis definită; • Oferă posibilitatea organizării sistemului de fişiere.

Fişierele bloc (b) • Identifică un dispozitiv; • Este un bloc de I/O; • Pot identifica unităţi floppy, hard-discuri, unităţi de bandă.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

116

Fişiere caracter (c ) • Identifică un dispozitiv; • Reprezintă caractere de I/O; • Pot identifica porturi seriale, paralele (terminale, imprimante).

Fişiere de legătură simbolică (l) • Sunt fişiere pointer către alt fişier existent; • Sunt de regulă folosite pentru a oferi un alias altui fişier.

Fişiere de memorie partajată (m) • Permit mai multor programe să acceseze un spaţiu comun de memorie; • Folosite de regulă de programele de aplicaţii.

Fişiere pipe (p) • Folosite pentru a transmite date între comenzi sau programe.

Fişiere semafor (s) • Folosite pentru sincronizarea proceselor active concurente; • Folosite de programele de aplicaţii.

Fiecare fişier prezintă un i-nod care conţine următoarele informaţii: -proprietarul fişierului (u; d); -grupul de utilizatori căruia îi aparţine proprietarul (gid); -drepturile asupra fişierului; -tipul fişierului specificat în cadrul i-nod-ului astfel: d -director -fişier obişinuit p -pipe c -fişier special de tip caracter b -fişier special de tip bloc etc. -data creării; -data ultimei modificări; -data ultimului acces; -lungimea fişierului etc"

Chiar dacă pe disc mai există spaţiu disponibil pentru stocarea de date, în momentul în care toate i-nod-urile au fost utilizate nu se mai pot crea noi fişiere.

Fişierele prezintă un nume format din maxim 14 caractere şi opţional extensie. Specificarea unui grup de fişiere se poate realiza utilizând metacaracterele: ? , * (wildcard-uri).

Directoarele sunt vectori de legături (link-uri). Ele permit asocierea unui nume de fişier la un i-nod. Structura unui link este:

-bit-ul care prin valoarea 0 sau 1 indică faptul că link-ul este liber sau ocupat; -numele fişierului; -i-nod-ul asociat fişierului. Un director conţine cel putin două link-uri:

a) primul este . care reprezintă un link la i-nod-ul directorului însuşii; b) al doilea este .. care reprezintă link-ul la directorul părinte.

Fişierele nu sunt incluse în directoare. Directoarele gestionează nişte pointeri (numărul de i-nod) spre fişierele propriu-zise, asociindu-le. De aceea, pot lista link-uri multiple la un acelaşii i-nod, în acelaşii director sau în directoare diferite.

Operaţiile asupra fişierelor impun specificarea numelui de fişier, la nivel fizic, se operează prin i-nod. Astfel, pentru a crea un fişier, trebuie să i se aloce acestuia un i-nod şi apoi definit un link. În urma comenzilor de ştergere a fişierelor, se produce de fapt ştergerea link-urilor şi deci decrementarea numărului de referinţă (bit-ul devine 0). În cazul în care fişierul "şters" nu este deschis de nici un proces în acel moment blocurile sale de date sunt trecute pe lista blocurilor libere.

Spre deosebire de sistemul de operare MS-DOS unde exista un singur director curent, în cazul UNIX-ului fiecare proces are un director curent.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

117

Specificarea unui director ca fiind director curent presupune lansarea comenzii CD şi specificarea căii de directoare (succesiunii de directoare către directorul dorit).

Ca o particularitate faţă de MS-DOS, numele de directoare sunt separate prin caracterul / (şi nu cum suntem obişinuiţi în cazul sistemului de operare MS-DOS prin \).

La nivel de director, sunt stabilite în UNIX trei feluri de drepturi: r -indica dreptul de a citi conţinutul directorului (de a afla i-nod-ul ce corespunde unui nume); x -indica dreptul de a citi conţinutul unui i-nod; w -indica dreptul de a crea\şterge directoare. Dintre directoarele prezentate în fig. 4.4. prezentăm rolul unora dintre acestea:

Fig. 4.4. Structura arborescentă de directoare a sistemului de operare UNIX

• directorul BIN conţine majoritatea programelor executabile necesare functionarii sistemului şii accesul utilizatorilor la resursele sistemului; • directorul DEV conţine fişierele speciale la care sunt asociate perifericele de I/E; fişiere ce specifică numele de identificare (numite major şi minor) necesare identificării controller-ului de interfaţă cu perifericele şi fiecare periferic gestionat de respectivul controller; • directorul LIB conţine bibliotecile sistem şi bibliotecile de aplicaţie; • directorul ETC conţine fişiere de configurare; • directorul TMP conţine fişiere temporare generate de diferitele procese; • directorul USR conţine la rândul său alte directoare dintre care amintim:

MAN -conţine manuale ( documentaţii); SPOOL -conţine fişiere pentru imprimantă; SYS -textul sursă al sistemului de operare; USERS -directoare pentru fiecare utilizator .

4.3.4. Sistemul de protecţie al fişierelor

În UNIX există trei categorii de utilizatori:

proprietar (u) reprezentat de utilizatorul ce a creat un fişier; fiecare utilizator poate face parte dintr-un grup (g) şi ceilalţi utilizatori (o).

Fiecare dintre aceste trei categorii de utilizatori poate dispune de unul din următoarele drepturi asupra fişierelor:

r (read) a citi; w (write) a modifica; x (execuţia) a executa în fişier. Rezultă că unui fişier îi vor fi asociate cele 9 drepturi, câte trei pentru fiecare categorie de

utilizatori. Sistemul de protecţie al accesului la fişier va urmări dacă prin procesele iniţiate utilizatorul încalcă sau nu drepturile ce i-au fost atribuite.

Exemplu: Fie fişierul DOCUMENT căruia îi sunt asociate următoarele drepturi de acces rw xr-wxr-w-x. Rezultă că toate drepturile asupra fişierului le are proprietarul, grupul are dreptul de a citi şi

executa, iar ceilalţi utilizatori doar de a citi.

4.3.5. Comenzile sistemului de operare UNIX Comenzile sunt programe executabile, aparţinând sistemului de operare, realizând anumite

funcţii. Ele sunt lansate în execuţie de catre Shell după introducerea lor de la tastatură de către utilizator.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

118

Există două categorii de comenzi UNIX: -comenzi privilegiate ce pot fi lansate doar de administratorul de sistem; -comenzi neprivilegiate ce pot fi lansate de oricare utilizator; La rândul lor aceste comenzi, după funcţiile ce le executa, se clasifica în:

• comenzi pentru lucrul cu directoare: CD, LS, MKDIR, PWD,RMDIR; • comenzi pentru gestiunea fişierelor obişinuite: MORE, PG, FIND,RM, MV,

CRYPT, CMP, CHOWN/CHGRP , CHMOD; • comenzi pentru lucrul cu perifericele: CANCEL, LPSTAT, LP, TTY; • comenzi pentru gestiunea proceselor: AT, KILL, PS, SLEEP, SH; • comenzi informaţionale: DATE, LOGIN, PASSWD, WHO.

Sintaxa generala a comenzilor UNIX este: comanda [optiuni] ["specificator fişier"] Întreruperea din execuţie a unei comenzi se face prin tastarea simultană a tastelor CTRL şi C. Comenzi pentru lucrul cu directoare:

Comanda CD schimbă directorul curent. Comanda LS listează conţinutul unui director (unor directoare). Comanda MKDIR permite crearea unui nou fişier director. Comanda PWD afişiează numele directorului curent. Comanda RMDIR şterge un director (directorul este vid). Comanda CHMOD modifică drepturile de acces la fişierul specificat. Comanda CMP compară conţinutul a două fişiere text. Comanda CRYPT criptarea conţinutului unui fişier în vederea asigurării protecţiei lui;

criptarea se realizează prin parola precizată de utilizator. Comanda FIND permite căutarea unui fişier în directorul specificat. Comanda MORE afişiează conţinutul fişierului specificat. Comanda MV mută/redenumeşte un fişier . Comanda PG afişarea conţintitului unui fişier (sau al mai multor fişiere) pagină cu pagină

(prin acţionarea tastei ENTER se produce saltul la pagina următoare). Comanda RM şterge fişieru/fişierele specificate.

Comenzi pentru lucrul cu perifericele Comanda CANCEL analizează o comandă de listare lansată anterior. De obicei această

comandă este precedata de comanda LPSTAT pentru a cunoaşte identificatorul cererii de listare ce trebuie anulată.

Comanda LPSTAT afişează informaţii referitoare la imprimantele din sistem şi comenzilor de listare lansate ce urmează a fi executate.

Comanda KILL opreşte un proces aflat în execuţie. Comanda PS afişează starea proceselor active Comanda SLEEP suspendă temporar execuţia unui proces. Comanda SH lansează în execuţie fişierele de comenzi Shell.

Comenzi informaţionale Comanda DATE afişeaza data şi ora sistem. Comanda LOGIN permite iniţierea unei sesiuni de lucru de către un utilizator, fără ca

sesiunea de lucru deschisă anterior de un alt utilizator să se fi încheiat; deschiderea sesiunii presupune introducerea codului de identiticare şi parola utilizatorului.

Comanda PASSWD instalează /modifică parola

4.3.6. Implementări ale sistemului de operare UNIX Sistemul de operare UNIX cunoaşte multiple implementări: HP-UX de la Hewlett-Packard,

Ultrix de la Digital, AIX de la IBM, Solaris de la SUN, la care se adaugă implementări distribuite gratuit LINUX.

Două dintre familiile importante ale sistemului de operare UNIX sunt:

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

119

UNIX System V Release 4, cunoscut de regulă sub denumirea de SVR4 sau V.4, derivă din modelul original dezvoltat la Bell Laboratories, cunoscut mai târziu sub numele de UNIX Systems Laboratory (USL) şi vândut apoi către SCO (Santa Cruz Operation) şi

Berkeley Software Distribution (BSD) versiunea 4.4., variantă cunoscută sub denumirea de 4.4 BSD. Există însă o mare varietate de sisteme de operare UNIX, majoritatea acestora fiind similare deoarece sunt bazate pe standardul SVR4. Celelalte varietăţi sunt bazate pe BSD. UNIX a devenit o marcă înregistrată (deţinută de The Open Group – www.opengroup.org), de aceea fiecare producător de UNIX şi-a ales propriul nume. Spre exemplu, versiunea de UNIX a firmei Sun se numeşte Solaris, a firmei IBM se numeşte AIX iar a firmei Hewlett Packard se intitulează HP-UX.

În tabelul 4.2. sunt prezentate o serie de implementări UNIX, platformele hardware pe care acestea activează precum şi vânzătorii produselor. Aceste variante de UNIX sunt concepute să ruleze pe platformele hardware specifice firmelor care le-au dezvoltat. Unele variante însă rulează pe mai multe platforme hardware; spre exemplu, Solaris rulează atât pe staţii de lucru Sun cât şi pe staţii cu microprocesoare Intel şi până la computere de tip mainframe şi supercomputere.

Diferite implementări de UNIX Tabelul 4.2.

Implementarea UNIX

Platforma hardware Vânzător

A/UX Macintosh Apple Computer AIX Staţii şi mainframe-uri IBM,

RS/6000 IBM

HP-UX Staţii HP RISC Hewlett-Packard Corporation

Linux Intel x86 Shareware NextStep Intel 486 sau Pentium, Next Next Computer OSF/1 şi Ultrix Staţii DEC VAX şi Alpha Digital Equipment SCO OpenServer Intel 486 sau Pentium Santa Cruz Operation Solaris Staţii Sun Sparc şi Intel x86 SunSoft UNIXWare Intel 486 sau Pentium Novell

Ultimul sistem de operare derivat din kernelul UNIX îl reprezintă Linux-ul, conceput să ruleze pe microprocesorul Intel de la staţii de lucru ieftine (chiar şi 386!) până la servere performante. Linux-ul a devenit foarte popular printre specialiştii entuziaşti ai computerelor în necesitatea găsirii unui sistem de operare stabil şi ieftin.

4.4. SISTEMUL DE OPERARE LINUX

4.4.1. Arhitectura sistemului de operare Linux

Sistemul de operare Linux a fost dezvoltat ca o versiune distribuită gratuit de UNIX, acesta

fiind unul dintre cele mai utilizate sisteme de operare în lume, mult timp standardul pentru staţii de lucru de înaltă performanţă şi servere mari. Pentru că UNIX este un produs comercial, el trebuie cumpărat pentru fiecare platformă pe care rulează.

Licenţele pentru versiunile UNIX pentru PC-uri sunt destul de scumpe şi de aceea, în tentativa de a face UNIX-ul disponibil fără costuri pentru cei care vor să-l experimenteze, un număr important de sisteme UNIX pentru domeniul public au fost dezvoltate de-a lungul anilor.

Una dintre primele astfel de versiuni ale UNIX-ului a fost Minix, scrisă de Andrew Tanenbaum. Cu toate că Minix nu avea un set foarte mare de caracteristici, a fost un mic sistem de operare ce putea fi folosit pe PC-uri. Pentru a extinde Minix-ul, un număr de programatori au început dezvoltarea unui sistem de operare mai puternic care să profite de avantajele arhitecturii microprocesorului I 80386. Unul din primii proiectanţi ai acestui sistem cunoscut ulterior sub numele de Linux, a fost Linus Torvalds de la Universitatea din Helsinki. El a lansat o primă versiune a Linux-ului în 1991. O versiune comercială, aproape fără nici un bug, a fost lansată pentru programatori în martie 1992.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

120

Curând, mulţi programatori au început să lucreze la Linux şi pe măsură ce provocarea şi dorinţa de a construi un sistem de operare asemănător UNIX-ului a început să prindă, Linux-ul a crescut cu o rată remarcabilă. Deoarece numărul celor care lucrau la Linux creştea, într-un final acest sistem de operare a fost terminat şi acum include toate instrumentele ce se pot întâlni într-o versiune comercială a UNIX-ului.

Linux este un sistem de operare complet multitasking şi multiuser care se comportă ca sistemele de operare UNIX în termenii comportamentului nucleului şi a suportului pentru periferice. Linux are toate trăsăturile UNIX-ului şi extensii recente care i-au adăugat mai multa flexibilitate.

Pentru a face ca Linux-ul să fie acceptat la scară largă, el suportă un număr de sisteme de fişiere inclusiv cele compatibile cu DOS şi OS/2. Linux-ul este ideal pentru dezvoltare de aplicaţii şi experimentare cu noi limbaje. Diferite compilatoare, inclusiv C, C++, Fortran, Pascal, Modula-2, LISP, Ada, Basic şi Smalltalk vin prin distribuirea softwareului. Multe dintre compilatoarele Linux-ului, instrumente, debuggere şi editoare provin de la proiectul GNU Free Software Foundation.

4.4.2. Distribuţii Linux

Linux este numele nucleului unui sistem de operare asemanator cu UNIX. Exista mai multe

sisteme de operare bazate pe nucleul Linux. Acestea se numesc distribuţii şi fiecare are un nume. Fiind un sistem de operare complet, o distributie contine:

• nucleul Linux; • un program pentru instalarea sistemului de operare; • interfeţe grafice (managere de ferestre); • programe pentru lucrul cu fişiere şi directoare (managere de fişiere) • programe utilitare pentru: configurarea sistemului de operare, Internet, grafică,

multimedia, etc; • jocuri; • implementǎri ale unor limbaje de programare C, C++, Pearl, etc; • documentaţie în mai multe formate (HTML, pagini de manual, etc.); • codul sursǎ pentru orice program din distribuţie.

O diferenţǎ importantǎ faţǎ de UNIX este aceea că toate distribuţiile Linux folosesc acelaşi nucleu (kernel în limba englezǎ), care este controlat de Linus Torvalds.

O nouă versiune de kernel apare la fiecare douǎ sǎptamâni şi poate fi descarcatǎ de pe Internet la adresa www.kernel.org.

Una dintre diferenţele majore este programul de instalare. Unele programe de instalare sunt grafice, interactive, altele lucreazǎ numai în modul text, iar altele pur şi simplu crează directorii şi copiază fişierele în directoarele corespunzătoare.

O altǎ diferenţǎ constǎ în fişierele şi directorii cu care lucreazǎ distribuţia, diferǎ managerele de ferestre, managerele de fişiere şi programele utilitare.

Orice distribuţie Linux permite lucrul cu sistemul de operare in douǎ moduri: modul text, folosit mai mult de profesionişti şi modul grafic folosit de utilizatorii începǎtori. În modul text se lucreazǎ ca in sistemul de operare MS-DOS, iar în modul grafic ca în Windows 95/98/XP/ Vista.

Sistemul de operare Linux se găseşte în mai multe distribuţii în funcţie de producătorul lor şi de software-ul inclus. Unele pot fi orientate spre utilizatorul casnic, altele către servere sau către utilizatorii cu calculatoare mai vechi. Cele mai folosite distribuţii de Linux sunt:

Fedora Core - născut din proiectul RedHat, dar conţinând exclusiv software liber, şi disponibil gratuit de pe Internet.

SuSE Linux - o distribuţie orientată atât spre servere cât şi spre staţii de lucru şi desktopuri, faimoasă pentru uşurinţa în utilizare şi configurare. Produsă de compania germană Suse, parte a grupului Novell.

TFM/GNU Linux - distribuţie de Linux Server şi Workstation 100% românească, stabilă, uşor de instalat şi nu necesită cunoştinţe avansate de linux. Produsă de compania TFM Group

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

121

Mandriva Linux, fost Mandrake Linux, o altă distribuţie uşor de utilizat, orientată spre piaţa desktop, creată de compania franceză Mandriva.

Debian GNU/Linux, una din distribuţiile cele mai vaste de pe Internet, conţinând un număr uriaş de pachete. Inventatorii managerului de pachete apt şi al pachetelor deb.

Gentoo Linux, o distribuţie orientată spre performanţe şi optimizări maxime. Notorie pentru timpul foarte lung necesar instalării (majoritatea pachetelor se compilează şi optimizează pentru sistemul pe care se face instalarea - de aici viteza mare a sistemelor Gentoo instalate, nu se copiază ca în cazul celorlalte distribuţii) şi pentru instalarea dificilă dar şi pentru managerul de pachete şi de sistem foarte avansat (portage).

Slackware Linux, o distribuţie axată pe servere, una din cele cu istoria cea mai lungă, notorie pentru moto-ul "Păstrează-l simplu", ducând la lipsa multor unelte de configurare simplificată, dar şi la o viteză mare de lucru, posibilitate de a-l instala pe hardware mai vechi, şi la o simplitate în organizarea sistemului.

NimbleX, o distribuţie versatilă, fabricată in Romania şi bazată pe Slackware care rulează direct de pe CD, USB sau chiar şi LAN. Partea cea mai atractivă a sa este faptul că, deşi este mic, NimbleX-ul are o interfaţă grafică puternică şi frumoasă şi o mulţime de programe incorporate pentru navigarea pe Internet, editarea de documente, ascultarea muzicii, rularea filmelor etc.

Knoppix, o distribuţie completă care rulează direct de pe CD, nu instalează absolut nimic pe hard disk, putând fi folosit atât pentru călătorii sau demonstraţii cât şi pentru diagnosticări de sistem, reparări, recuperări de date etc.

Slax, o altă distribuţie care rulează direct de pe CD, dar de data asta capabilă să încapă pe un flash drive de 256 MB.

Ubuntu, o distribuţie orientată spre utilizatorul obişnuit, foarte populară prin faptul că este foarte aerisită, uşor de utilizat şi configurat, dar în acelaşi timp puternică şi stabilă. În prezent formează o întreagă familie de distribuţii strâns înrudite: Kubuntu (foloseşte KDE), Xubuntu (foloseşte Xfce), Edubuntu (orientat spre educaţie).

RedHat Linux - una din cele mai cunoscute distribuţii, acum orientată exclusiv spre piaţa serverelor şi spre mediul de afaceri. A dat naştere proiectului Fedora Core.

PCLinuxOS – uşur de instalat - ideal pentru începători. Cele mai multe din distribuţiile de mai sus pot fi descărcate legal şi gratuit de pe siturile

respective. Anumite distribuţii vând manuale, sau seturi complete CD + manuale + suport tehnic + documentaţie aferentă.

a. b. c.

d. e. f. Fig 4.5. Distribuţii Linux, a. Red Hat; b. Debian; c. Mandriva; d. Slackware; e. Ubuntu; f. Kubuntu

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

122

4.4.3. Caracteristicile principale ale distribuţiei Red Hat În anul 1995 Bob Young şi Marc Ewing au înfiinţat firma Red Hat. Numele firmei vine de la

pǎlǎria roşie pe care o purta Bob atunci când programa. Astazi firma detine peste 70% din piaţa distribuţiilor Linux. Principalele venituri ale firmei nu provin din vânzarea de software (numai 5% dintre utilizatorii unei distribuţii Red Hat o plǎtesc) ci din servicii: cursuri, consultanţă, etc.

Elementele caracteristice ale distribuţiei Red Hat sunt: • uşor de instalat: instalarea se face printr-un program grafic (Anaconda), are loc detectarea

automata a componentelor hardware, partiţionarea automată; • uşor de utilizat: dispune de două interfeţe grafice simple şi interactive (GNOME şi KDE); • conţine multe aplicaţii multimedia şi jocuri; • dispune de programe pentru administrarea utilizatorilor, controlul echipamentelor

hardware (oferǎ suport pentru 500 de tipuri de imprimante, recunoaşte dispozitivele USB); • permite accesul rapid la Internet; • oferǎ trei suite de tip Microsoft Office gratuit: OpenOffice, Koffice şi suita GNOME; • permite execuţia programelor scrise pentru Windows sau MS- DOS; • permite încǎrcarea sistemului de operare (bootare) de pe hard disk, dischetǎ sau CDROM; • oferǎ o securitate deosebitǎ; • permite accesul transparent la resurse (indiferent cǎ sunt locale sau pe Internet ; • oferǎ un sistem de fişiere cu jurnalizare (ext3) care reduce riscul pierderii datelor; • oferǎ douǎ managere de fişiere performante (Nautilus, Konqueror); • are o arhitecturǎ bazatǎ pe pachete de programe; utilitarul de lucru cu pachete (RPM).

4.4.4. Prezentarea interfeţelor grafice Linux Red Hat 9.0 are douǎ interfeţe grafice: GNOME şi KDE. Dacǎ la primele versiuni

existau diferenţe totale la modul cum arǎtau şi lucrau cele douǎ interfeţe, în ultimele versiuni acestea încep sǎ arate şi sǎ se comporte la fel.

Dacǎ la versiunile Red Hat mai mici de 8.0 meniul sistemului de operare era simbolizat diferit în cele douǎ interfeţe (un icon cu litera K pentru KDE, respectiv un icon cu o talpa de picior pentru GNOME) acum existǎ acelaşi simbol în ambele interfeţe (pǎlǎrie roşie). De asemenea, modul de reprezentare pe ecran a ferestrelor era diferit, ca şi programele utilitare sau aplicaţiile instalate în fiecare interfaţǎ graficǎ. Interfaţa GNOME este mai rapidǎ decât KDE, de aceea este şi interfaţa implicitǎ, care se lanseazǎ automat în execuţie la pornirea sistemului.

Interfeţa grafică GNOME Elemente caracteristice interfeţei grafice GNOME sunt: • este prezentǎ în multe distribuţii; • este simplǎ, prietenoasǎ, gratuitǎ; • este oferitǎ împreunǎ cu codul sursǎ, deci poate fi modificatǎ dupǎ dorinţǎ; • are suport pentru o gamǎ largǎ de limbi straine (este disponibilǎ şi în limba românǎ); • conţine un manager de fişiere (gen Windows Explorer), o suitǎ de aplicaţii de birou gen Office, programe diverse, jocuri, programe pentru Internet, unelte de programare; • este un mediu excelent pentru programatori prin oferirea unui set complet de biblioteci.

Ecranul prezentat de GNOME este compus din trei pǎrţi (ca şi la KDE sau Windows): desktop, taskbar şi meniul principal.

Desktop-ul este partea cea mai mare a ecranului prezentat de GNOME şi seamǎnǎ foarte mult cu desktop-ul din Windows. Pe el se gǎsesc trei iconuri care sunt shortcut-uri ale unor programe: root's Home, Start Here şi Trash. Efectuând un dublu clic pe iconul root's Home se deschide managerul de fişiere implicit al interfeţei GNOME (care se numeşte Nautilius) şi se poziţioneazǎ în directorul Home al utilizatorului root.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

123

În Linux fiecare utilizator are un director personal care se numeşte Home (casa) unde îşi poate ţine documentele (asemǎnǎtor lui My Documents din Windows).

a. b.

Figura 4.6. a. Interfaţa grafică GNOME; b. managerul de fişiere Nautilius Modul de lucru cu Nautilus este asemănător modului de lucru cu Windows Explorer şi

prezintă câteva particularitǎţi: • fişierele şi directoarele pot fi vizualizate ca iconuri sau ca listǎ; • în cazul vizualizǎrii sub formǎ de listǎ se pot face sortǎri dupǎ nume, mǎrime, tip sau data modificǎrii; • crearea unui nou director se face cu comanda New Folder din meniul File; • selecţia fişierelor se face cu clic sau CTRL+clic; • copierea sau mutarea fişierelor sau a folderelor se face prin metoda clasicǎ (Cut/Copy şi apoi Paste); • nu se poate vedea arborele de directoare ca în Windows Explorer; • dispune de un toolbar asemǎnǎtor celui din Internet Explorer (cu butoanele Back, Forward, Up, Stop, Reload, Home), deci funcţioneazǎ ca un browser; • directoarele se deschid implicit prin dublu clic (se poate configura sǎ deschidǎ directoarele prin clic); • se poate alege dintr-o multitudine de iconuri pentru a reprezenta un tip de fişier; • se pot pune semne de carte la directoare (bookmarks) pentru a uşura accesarea lor (asemǎnǎtor cu semnele de carte puse paginilor Internet).

Efectuând un dublu clic pe iconului Start Here de pe desktop se va deschide tot Nautilus, dar de data aceasta permite accesul la anumite programe care configurează interfaţa graficǎ.

În GNOME existǎ meniuri locale. Printr-un clic dreapta într-o zonǎ liberǎ de pe desktop se deschide un meniu care permite printre altele:

• simplificarea accesului la discheta sau CD-ROM (în Linux este mai dificil de accesat aceste periferice deoarece ele trebuie, în prealabil montate folosind o comandǎ specialǎ); • crearea unui shortcut folosind comanda New Launcher din meniul local.

În rubrica Name se specificǎ numele shortcut-ului, programul care va fi lansat în execuţie se scrie în rubrica Command sau se alege folosind butonul Browse.

Iconul shortcut-ului se alege dintr-o multitudine de iconuri folosind butonul No Icon. Taskbar-ul (Panel) are acelaşi rol ca taskbar-ul din Windows şi conţine elementele:

• icon pentru accesarea meniului principal (palarie roşie) -echivalentul butonului Start din Windows; • un toolbar asemǎnǎtor lui Quick Launch din Windows care conţine:

-shortcut cǎtre browser-ul de Internet implicit (Mozilla) - Echivalentul lui Internet Explorer; -shortcut cǎtre programul de e-mail implicit (Ximian Evolution) – echivalentul lui Outlook Express; -shortcut cǎtre procesorul de texte din suita Open Office.org – echivalentul lui Microsoft Word;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

124

-shortcut cǎtre programul de prezentǎri din suita Open Office.org – echivalentul lui Microsoft Power Point; -shortcut cǎtre programul de calcul tabelar din suita Open Office.org – echivalentul lui Microsoft Excel; -shortcut catre programul Print Manager;

• cele patru ecrane virtuale; • zona în care apar numele programelor care se execută; • data şi ora.

Implicit sunt patru ecranele virtuale şi sunt aşezate în douǎ grupuri de câte douǎ (numerotarea se face de la stânga la dreapta şi de sus în jos). Dacǎ butonul corespunzator primului ecran virtual este apǎsat, înseamnǎ cǎ este în prim plan. Numai un singur ecran virtual poate fi în prim plan la un moment dat. Meniul local corespunzǎtor taskbar-ului se deschide (clic dreapta într-o zonǎ liberǎ) şi permite: adaugarea de noi shortcut-uri (Add to Panel) şi modificarea proprietǎţilor (Properties) :

-stabilirea poziţiei pe ecran (sus, jos, stanga, dreapta); -stabilirea mǎrimii iconurilor; -activarea autoascunderii; -stabilirea culorilor şi a transparenţei. Meniul principal (Main Menu) permite lansarea în execuţie a tuturor programelor instalate

în interfaţa graticǎ GNOME (nu toate programele instalate în GNOME pot fi lansate în execuţie din KDE şi invers). Fiind vorba de interfeţe grafice diferite, programele sunt scrise ori pentru a funcţiona din GNOME ori pentru a funcţiona din KDE.

Programele sunt organizate în grupuri, la fel ca în Windows. Diferenţa constǎ în numele şi numǎruI grupurilor şi al programelor. Dacǎ în Windows existǎ numai câteva grupe de programe (Accesories, Games, StartUp), în fiecare din cele douǎ interfeţe grafice din Linux Red Hat se poate spune cǎ s-a fǎcut risipǎ de programe (adicǎ sunt oferite programe - gratuit).

Grupurile de programe din GNOME sunt: • Accessories: conţine diferite programe de interes general; • Games; • Graphics: programe pentru graficǎ; • Internet: utilitare necesare lucrului în Internet; • Office: conţine suite de birou gen Microsoft Office; • Preferences: permite configurarea interfeţei grafice; • Programming: instrumente pentru programatori; • Sound & Video: utilitare multimedia; • System Settings: permite configurarea sistemului de operare ; • System Tools: diferite instrumente necesare lucrului cu sistemul de operare.

Pe lângǎ grupuri de programe, in Main Menu se gǎsesc şi programe, ca: • Help: deschide browser-ul numit help care permite rǎsfoirea documentaţiei; • Home Folder: are acelaşi rol ca iconul root's Home de pe desktop (deschide Nautilus); • Network Servers: permite accesarea serverelor din reţea; • Run Program... : lansarea în execuţie a unui program, identic cu RUN din Windows. • Search for Files… : are acelaşi nume în Windows XP şi se numeşte Find Files în Windows.

Interfeţa grafică KDE După ce s-a realizat autentificarea prin introducerea corectă a numelui de utilizator şi a

parolei, primul ecran al interfeţei grafice KDE care va apărea va fi Desktop-ul (fig. 4.7.a.). Acesta este împărţi în două zone. Prima, si cea mai mare, este spaţiul de lucru, un spaţiu virtual unde şi de unde se pot accesa şi scrie fişiere, aplicaţii, etc. În acest spaţiu se găsesc iniţial cinci pictograme: Start Here, Home, Floppy, CD/DVD-Rom şi Trash.

Efectuând dublu clic pe pictograma Start Here, se lansează în execuţie aplicaţia Konqueror, (fig. 4.7.b.).

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

125

a. b.

Fig. 4.7. a. Interfaţa grafică KDE; b. Directorul virtual Start-Here.

Managerul de fişiere permite accesul imediat la anumite aplicaţii (Applications), configurări (Preferences), setări ale serverului sau setări ale sistemului (Server Settings, respectiv System Settings) prin intermediul zonei din dreapta. În zona din stânga acestei ferestre, conform preferinţelor proprii, se accesează la directoarele existente pe disc, sau se pot audia sau viziona un fişier media, accesa reţeaua LAN sau Internet-ul, etc., accesul la aceste facilităţi făcându-se prin intermediul pictogramelor laterale aflate in extremitatea stângă a ferestrei.

Accesând pictograma Home de pe spaţiul de lucru, o fereastră a aceluiaşi browser, Konqueror, se va deschide, afişând conţinutul directorului utilizatorului curent, în cazul de faţă, numele utilizatorului fiind Home (fig.4.8.a.)

a. b.

c.

Fig. 4.8. a. Konqueror utilizat ca manager de fişiere; b. Opţiunile meniului K Menu; c. Spaţiul Panel al interfeţei KDE (Zona de control a spaţiilor de lucru)

Pictograma Thrash este utilizată pentru a accesa directorul în care sunt stocate fişierele şi directoarele care au fost şterse. Este permisă restaurarea acestor fişiere şi directoare sau ştergerea lor permanentă de pe disc.

A doua zonă, cunoscută ca şi panoul (panel), ce conţine mai multe zone cu pictograme:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

126

• zona de start, de unde se accesează în mod direct aplicaţii; • zona de control a spaţiilor de lucru; • zona de control a spaţiului de lucru curent; • zona aplicaţiilor care rulează transparent (tray); • zona ceasului.

Primul element al spaţiului Panel este butonul cu pictograma specifică distribuţiei Linux instalată, în cazul de faţă Red Hat, asociat meniului K Menu. Acesta este un meniu derulant, care, în momentul accesării cu un singur clic stânga al mouse-ului oferă posibilitatea de a alege aplicaţiile care vor fi lansate în execuţie.

Meniu K Menu (fig.4.8.b.)este împărţit în patru zone: • zona de configurare; • zona de rulare a comenzilor în mod text; • zona aplicaţiilor standard şi a comenzilor; • zona celor mai frecvent / recent utilizate aplicaţii.

În spaţiul Panel, imediat după K Menu, sunt aliniate cinci shortcut-uri în versiunea standard a distribuţiei: Web Browser, Email, OpenOffice.org Writer, Impress şi Calc, care permit accesarea Internetului, verificarea email-ului, fie rularea unei aplicaţii precum editarea unui text, conceperea unei prezentări sau deschiderea unei foi de calcul.

Urmează zona de control a spaţiilor de lucru, prin intermediul căreia se poate accesa unul dintre cele patru spaţii de lucru setate din maximum 16 posibile (fig. 4.8.c.).

Trecerea de la un spaţiu de lucru la altul se mai poate efectua şi prin utilizarea simultană a tastelor Ctrl şi TAB.

Printre elementele caracteristice interfeţei grafice KDE remarcăm faptul că este mult mai complexǎ decât GNOME, are suport pentru o gamǎ largǎ de limbi strǎine (este disponibilǎ şi în limba românǎ), reţine deasupra meniului principal numele ultimelor programe lansate (asemǎnǎtor cu Windows XP), conţine un manager de fişiere (gen Windows Explorer), o suitǎ de aplicaţii de birou gen Office, programe diverse, jocuri, programe pentru Internet şi are un sistem de ajutor (Help) foarte bine pus la punct.

4.5. SISTEMUL DE OPERARE WINDOWS

Sistemul de operare WINDOWS a apărut în urma unui proces laborios, prin care s-a urmărit perfecţionarea sistemului MS-DOS în sensul eliminării unor dezavantaje şi apropierea mai puternică dintre calculator şi utilizator, prin impunerea modului de lucru meniu.

Calculatoarele personale care operau sub MS-DOS, nu-şi puteau valorifica integral performanţele hardware în continuă creştere, datorită limitărilor generate de filozofia acestui sistem care se caracterizează prin modul de lucru linie-comandă, absenţa multitasking-ului, organizarea memoriei interne şi programe pe 16 biţi.

Modul de lucru linie-comandă al sistemului de operare MS-DOS se bazează pe: - introducerea de la tastatură a unor comenzi însoţite de parametrii şi uneori, de confirmarea

sau anularea unor acţiuni sau consecinţe ale comenzilor lansate; - afişarea pe monitor a unor mesaje în legătură cu comenzile primite, a unor întrebări privind

opţiunile pentru efectuarea acţiunii dorite şi a informaţiilor solicitate de utilizator. Trebuie recunoscut că acest mod de lucru este greoi şi rigid, obligând utilizatorul la o

pregătire specială pentru a se familiariza cu sintaxa comenzilor şi este mai convenabil ca parametrii să fie ceruţi automat de sistem atunci când se lansează o comandă. De la această idee s-a plecat în realizarea programelor utilitare tip PcShell, Norton Commander, Dos Navigator sau X-Tree Gold. De altfel, la ultimele versiuni MS-DOS au apărut şi comenzi tip meniu (de exemplu, comenzile Mem Maker, Edit, Defrag şi chiar un Shell încorporat).

Modul de lucru meniu asigură dialogul dintre utilizator şi calculator pe baza unor liste de opţiuni sau comenzi afişate pe ecran, din care utilizatorul trebuie să le activeze pe cele dorite; avantajul faţă de modul de lucru linie-comandă este că utilizatorul nu trebuie să tasteze linia de

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

127

comandă şi să memoreze sintaxa comenzilor deoarece acestea sunt afişate sub formă de opţiuni pe ecranul monitorului. Totodată, interfaţa dintre utilizator şi calculator este mai prietenoasă, deoarece utilizatorul nu mai trebuie să scrie multe comenzi, atenţia sa fiind concentrată permanent la ce se întâmplă pe ecranul monitorului. Avantajele au făcut ca sistemul de operare MS-DOS să fie înlocuit treptat cu sistemul de operare Windows.

Deschizător de drumuri a fost firma Macintosh care în 1984 a introdus în lumea PC-urilor conceptul GUI (Graphical User Interface) prin intermediul căreia comunicarea utilizator-calculator a devenit mai prietenoasă. Firma Microsoft preia şi dezvoltă conceptul GUI şi în anul 1985 apare pe piaţă sistemul Windows 1.0.

Numele de Windows (ferestre) vine de la faptul că fiecare program se execută într-o fereastră distinctă. Fereastra este o zonă de formă dreptunghiulară ce apare pe ecran. Pe suprafaţa ecranului pot exista mai multe ferestre, fiecare fereastră corespunzând unui anumit program.

Windows reprezintă un sistem de programe şi comenzi conceput şi dezvoltat pe un mediu de interfaţă grafică de utilizator (GUI Graphical User Interface) care se pot selecta, instala şi executa pe calculatoare personale, în funcţie de configuraţiile hardware disponibile şi de cerinţele utilizatorilor.

Simbolurile grafice (denumite pictograme) sunt mici desene sugestive ale unor elemente cu care operează sistemul Windows, însoţite de un text explicativ afişat sub desene. Alături de pictograme, Windows include şi alte forme de prezentare grafică: butoane, casete de dialog, bare de navigare.

De la prima versiune denumită Windows 1.0 (1985), s-a ajuns astăzi la utilizarea curentă a interfeţelor Windows 95/98, Windows 2000, Windows Millenium, Windows XP, Windows 2003, Windows Vista şi Windows 2008.

4.5.1. Interfaţa grafică Windows

Interfaţa grafică Windows începând cu Windows 95, pune la dispoziţia utilizatorului un

mod specific de aranjare, vizualizare şi activare a programelor. Pentru familiarizarea cu acest mod de operare, se vor prezenta conceptele de bază cu care se operează: Fereastră, Meniu, Casetă de dialog, Buton, Desktop, Pictogramă, Clipboard.

Fereastra este conceptul central al aplicaţiilor Windows. Fiecare aplicaţie Windows are asociată o fereastră. Fereastra este o suprafaţă dreptunghiulară care individualizează activitatea curentă desfăşurată de calculator ca urmare a unei comenzi sau a unui program lansat de operator.

Există mai multe tipuri de ferestre: • de navigare, prin intermediul cărora se pot investiga un grup de aplicaţii, cum este de

exemplu fereastra asociată pictogramei My Computer; • de aplicaţie, specifice programelor executabile; • document, ferestre de lucru utilizate pentru crearea unui document, de exemplu în

Word sau a unei foi de calcul în Excel; ele apar în interiorul ferestrei de aplicaţii; • de dialog, cum este fereastra Run din meniul butonului Start, ferestre utile pentru

introducerea unor informaţii de control necesare executării unor aplicaţii. O fereastră afişată pe ecran conţine o serie de elemente standard prin intermediul cărora sunt

posibile o serie de operaţii: • deplasarea unei ferestre pe spaţiul de lucru; • redimensionare – readucerea ferestrei la dimensiunile iniţiale; • minimizare – ascunderea temporară a ferestrei şi plasarea pictogramei asociate pe bara

de taskuri sau pe linia de stare; • maximizare – afişarea ferestrei la dimensiunile maxime ale ecranului; • defilarea conţinutului ferestrei în plan vertical sau orizontal; • închiderea ferestrei şi implicit a aplicaţiei.

În fig. 4.9. este prezentată o fereastră Windows şi elementele constitutive ale acesteia.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

128

Fig. 4.9. Fereastră Windows şi elementele acesteia

În continuare sunt prezentate elementele unei ferestre Windows: 1. meniul System pentru închiderea, redimensionarea sau mutarea ferestrei;

2. bara de titlu care permite mutarea ferestrei într-o altă poziţie pe spaţiul de lucru; Bara de

titlu conţine numele ferestrei în partea stângă şi cele trei butoane de lucru (minimizare, maximizare, închidere) în partea dreaptă.

3. butonul de minimizare; 4. butonul de maximizare , respectiv restaurare ; 5. butonul de închidere Close ; 6. meniul principal; 7. toolbar (bara cu instrumente) conţine un set de pictograme pentru cele mai uzuale comenzi

folosite pe durata sesiunii de lucru cu un anumit program şi înlocuieşte utilizarea tastelor funcţionale, a combinaţiilor de taste hot keys sau short cuts.

Bara de instrumente poate fi vizualizată şi completată cu seturi suplimentare de pictograme faţă de cele standard, seturi asociate unor proceduri de operare complexe; seturile de pictograme sunt extrase dintr-o bibliotecă proprie fiecărui program; opţional, utilizatorul poate să-şi insereze prin tehnica “click & drag” diverse pictograme pentru anumite comenzi apelând la meniul Tools, opţiunea Customize, pentru a-şi personaliza bara de lucru;

8. bara de defilare; 9. bara de stare;

10. colţ pentru redimensionarea ferestrei.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

129

Procesarea multitasking se realizează deschizând mai multe ferestre în care se lansează în execuţie diverse programe ce vor rula independent, aparent în paralel. Ferestrele deschise pe ecran pot fi rearanjate apelând la opţiunile meniului View, în moduri cascadă (Cascade) şi mozaic (Tile).

O singură fereastră este fereastra curentă, activă la un moment dat, are bara de titlu intens colorată, celelalte având bara de titlu inhibată. Comenzile transmise şi mesajele afişate aparţin aplicaţiei care se execută în fereastra curentă. Comutarea pe o altă fereastră care să devină fereastră curentă, se face cu un clic pe bara de titlu a ferestrei respective.

Meniurile sunt grupuri de comenzi prin intermediul cărora se realizează funcţiile unui program. Există trei tipuri de meniuri:

• orizontale (Bar); • verticale (PopUp); • combinate (PullDown sau Cascade).

Într-un meniu combinat Pull Down, unui submeniu Bar i se asociază un meniu PopUp afişat sub denumirea sa, apărând ca o descompunere a meniului în comenzi, pe verticală (fig. 4.10.a.).

Meniul combinat Cascade, realizează acelaşi lucru numai că descompunerea este în plan orizontal, aşa cum este de pildă meniul butonului Start.

Pentru a selecta şi lansa o comandă, meniul trebuie activat cu tasta ALT, sau cu mouse-ul cu un clic pe bara de meniu. Selecţia unei comenzi dintr-un meniu echivalează cu marcarea ei prin deplasarea cursorului, în timp ce lansarea comenzii în execuţie se poate face:

• tastând Enter; • tastând litera subliniată din numele comenzii; • acţionând clic.

În unele cazuri, anumite comenzi nu sunt disponibile, fiind afişate într-o tonalitate de culoare gri deschis în caseta meniului. Anularea unei selecţii se face cu tasta ESC sau cu un clic în afara casetei meniului. Atunci când o comandă este urmată de puncte de suspensie înseamnă că este necesară introducerea unor parametri suplimentari pentru execuţia comenzii; parametri se introduc prin intermediul unor casete de dialog şi butoane. Un element specific în meniuri este semnul de validare (check mark) ca o bifă. Opţiunile bifate sunt active, deci comanda se va executa ţinând seama numai de opţiunile bifate. O casetă de dialog este o mică fereastră dreptunghiulară afişată pe ecran, independent de aplicaţia care se execută, (fig.4.10.b.). Ea conţine parametrii şi opţiunile din care utilizatorul va selecta pe cele necesare prelucrării curente şi va introduce parametrii care-i sunt solicitaţi.

a. b.

Fig. 4.10. a. Meniuri orizontale şi verticale; b. Casetă de dialog cu butoane Casetele de dialog însoţesc comenzile care intră în meniu şi sunt urmate de trei puncte de

suspensie; există mai multe tipuri de casete de dialog grupate astfel: • casete de text; • casete cu liste; • casete cu opţiuni exclusive;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

130

• casete de validare; • casete cu pagini de opţiuni.

Casetele de text se utilizează atunci când utilizatorul introduce explicit de la tastatură o comandă sau parametrii comenzii sub forma unui şir de caractere. Un exemplu îl constituie caseta comenzii Run din meniul butonului Start.

Selecţia unei opţiuni se face cu un clic pe caseta cu liste. Dacă lista conţine un număr de opţiuni care nu încap în chenarul casetei sunt puse la dispoziţie butoanele de defilare pentru parcurgerea listei înainte sau înapoi (listele se mai numesc şi liste derulante). Derularea unei liste se poate face şi acţionând butonul Browse pentru răsfoirea listei, existând opţiuni asemănătoare celor utilizate de programul Explorer sau pachetul de programe Norton. Casetele cu opţiuni exclusive conţin opţiuni care se exclud reciproc; în consecinţă, se va marca cu un clic punctul din stânga opţiunii dorite.

Spre deosebire de casetele cu opţiuni exclusive, casetele de validare conţin un set de opţiuni din care pot fi active la un moment dat mai multe, toate, sau nici una dintre ele. Opţiunile selectate şi deci active, sunt marcate cu o bifă de selectare în partea stângă.

Windows şi programele care rulează sub Windows pot afişa pe ecran un grup de mai multe pagini de opţiuni suprapuse. Fiecare pagină are o etichetă în partea superioară cu numele paginii, dar la un moment dat numai o singură pagină este activă (cea afişată prima pe ecran). Cu un clic pe eticheta unei alte pagini, pagina curentă este înlocuită cu pagina selectată ce devine pagina activă.

Butoanele au formă dreptunghiulară încadrate de un chenar, având în interior un text autoexplicativ. Butoanele pot fi acţionate cu un clic, Enter sau tasta Space.

Există următoarele tipuri de butoane: • butoane de comandă, care declanşează execuţia operaţiei selectate; • butoane de opţiuni care permit selectarea modului de continuare a procesului de

prelucrare şi sunt: • butoane radio; • butoane de marcare sau de validare (check).

Clipboard-ul este o zonă de memorie RAM ce permite transferul de informaţii, secvenţe de text, imagini grafice, porţiuni şi chiar un ecran întreg de la o aplicaţie la alta sau de la un document la altul în cadrul aceleaşi aplicaţii, constituindu-se ca una din facilităţile prelucrării multitasking. Informaţiile sunt plasate automat în Clipboard atunci când se execută comenzile Copy, Cut sau s-a acţionat tasta PrtScr. Inserarea informaţiilor aflate în zona Clipboard într-un alt text se realizează prin comanda Paste. Comenzile Edit, Cut, Paste se află în meniul Edit al programelor sub Windows.

Pictograma (Icon) este un mic desen simbolic asociat unui obiect Windows, obiect ce poate fi o componentă hardware, un director, un fişier, un program executabil, un grup de programe sau de fişiere; desenul este însoţit şi de un text, care denumeşte pictograma respectivă.

Există patru tipuri de pictograme: • program; • fişier/director; • calculator; • componentă hardware.

Executând un dublu clic pe o pictogramă de program, programul va fi încărcat în memoria RAM şi lansat în execuţie; dacă se acţionează cu un clic pe o pictogramă de director, pe ecran se va afişa cuprinsul directorului respectiv. Un clic pe pictograma unui fişier echivalează cu comanda de lansare în execuţie a aplicaţiei asociate fişierului.

4.5.2. Sesiunea de lucru Windows Prin sesiune de lucru se înţelege perioada de timp în care un utilizator se găseşte în dialog cu

sistemul de calcul pe durata unei aplicaţii. Sesiunea de lucru poate fi considerată şi perioada de timp în care un utilizator foloseşte individual un calculator care este conectat la o reţea. Pentru a deschide o sesiune de lucru se porneşte calculatorul. Sistemul execută automat procedura de autotestare a

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

131

configuraţiei hardware, încărcarea sistemului de operare şi iniţializarea sesiunii de lucru. În cazul conectării calculatorului la o reţea, accesul este condiţionat de introducerea unei parole în fereastra de dialog Enter Network Password la care utilizatorul trebuie să introducă informaţiile referitoare la numele de utilizator (User name) şi parola (Password). După introducerea acestor informaţii, acţionarea butonului OK şi efectuarea de către sistem a operaţiilor de validare necesare, pe întreg ecranul monitorului se afişează interfaţa de lucru a sistemului de operare Windows.

Pentru încheierea sesiunii de lucru, utilizatorul nu trebuie să acţioneze imediat butonul de întrerupere a alimentării cu energie electrică deoarece va pierde informaţii din fişierele cu care a lucrat.

Astfel, el va executa un clic pe butonul Start din care va alege comande Shut Down sau Turn Off ce conţine mai multe opţiuni, în funcţie de versiunea de sistem de operare instalat:

• Shut down – oprirea definitivă a calculatorului; • Restart – repornirea calculatorului; • Restart the computer in MS-DOS mode – repornirea pentru lucrul în sistemul de

operare MS-DOS, folosind comenzile acestui sistem de operare (în cazul Windows 95 şi 98);

• Log Off – închiderea tuturor programelor şi menţinerea resurselor partajate la dispoziţia unui alt utilizator conectat la o reţea;

• Standby – calculatorul trece într-o stare în care consumul de energie este foarte scăzut, fiind pregătit pentru reluarea stării anterioare la apăsarea unei taste;

• Hibernate – toate datele aflate în memoria RAM sunt salvate pe disc într-un fişier special, după care calculatorul se opreşte; la repornirea acestuia, datele sunt încărcate din fişierul special în memoria RAM şi sistemul se va regăsi în starea de dinaintea intrării în modul de hibernare.

După alegerea şi execuţia opţiunii Shut down, va apărea o fereastră cu mesajul: Please wait while your computer shuts down prin care utilizatorul este atenţionat să aştepte până când sistemul va termina aplicaţiile aflate în lucru, va închide fişierele folosite şi va disponibiliza resursele alocate. Dacă aceste operaţii s-au executat normal şi nu au fost semnalate motive conflictuale, majoritatea calculatoarelor se opresc automat, având în vedere că sursele de alimentare sunt ATX. În cazul în care oprirea nu se face automat, pe ecranul monitorului se afişează mesajul: It’s now safe to turn off your computer, după care utilizatorul poate închide în siguranţă calculatorul, acţionând întrerupătorul reţelei electrice.

După autentificare, pe ecranul monitorului se afişează suprafaţa de lucru (desktop-ul), ce conţine în partea de jos bara de lucru, denumită şi bară de operaţii sau bară de taskuri. În partea stângă a barei de lucru se găseşte butonul Start de unde utilizatorul poate să înceapă lucrul cu componentele Windows (fig.4.11).

Fig. 4.11. Interfaţa grafică Windows

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

132

Desktop-ul desemnează suprafaţa de lucru a sistemului de operare Windows. Este de fapt fundalul ce acoperă ecranul din momentul lansării în execuţie a programului. Pe această suprafaţă sunt plasate obiectele cu care se interacţionează în mod uzual.

Există un grup de elemente principale ce apar implicit pe spaţiul de lucru: My Computer, Recycle Bin, My Documents. În cazul în care calculatorul este conectat la o reţea de calculatoare apare şi pictograma Network Neighborhood.

My Computer (calculatorul meu) este un driver care afişează descrierea fizică a componentelor hardware din configuraţia PC-ului: floppy discul, discul, imprimanta şi panoul de control Control Panel, utilizabil pentru setări hardware.

În Recycle Bin (coşul de gunoi) se găsesc fişierele şi directoarele care au fost şterse sau mutate acolo şi de unde pot fi recuperate ulterior.

Fişierele se pot recupera numai dacă nu se au fost şterse definitiv din Recycle Bin. My Documents oferă posibilitatea grupării într-un singur loc documentele cu care se lucrează. Network Neighborhood oferă posibilitatea de a investiga reţeaua de calculatoare la care cuplat

calculatorul pe care se lucrează. Se pot afla ce staţii de lucru mai sunt conectate şi ce resurse se pot utiliza în cadrul reţelei.

Pe spaţiul de lucru pot fi create şi salvate fişiere, fiecare având asociat o pictogramă. Fiecare pictogramă poate fi mutată oriunde pe spaţiul de lucru, scop pentru care se procedează astfel:

1) se plasează cursorul pe pictogramă şi se apasă butonul stânga al mouse-ului (un clic); 2) cu butonul ţinut apăsat, se deplasează mouse-ul prin glisare pe desktop şi apoi se eliberează

butonul stânga. Utilizatorul are posibilitatea să adauge sau să elimine pictograme ale diverselor programe,

altele decât cele standard înscrise de Windows pe Desktop. Adăugarea unei pictograme se realizează prin crearea unui shortcut. Butonul Start şi bara de taskuri aflate pe ultima linie a ecranului, servesc la mai buna

organizare a sesiunii de lucru. Acţionarea butonului Start determină activarea meniului cascadă. Din meniul afişat pe ecran se pot selecta şi lansa în execuţie programele dorite.

a. b.

Fig. 4.12. a. Meniul Start cu principale opţiuni ; b. Meniul Programs cu opţiunile structurate în cascadă

Prin executarea unui singur clic pe pictograma butonului Start, pe suprafaţa de lucru se afişează meniul Start (fig. 4.12.a.)

Opţiunile meniului Start sunt următoarele: • Programs/All programs; • Documents/My Recent Documents; • Settings; • Find/Search; • Help and Support; • Run;

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

133

• Log Off • Turn Off Computer

Opţiunile Programs, Documents, Settings şi Find/Search sunt organizate structural sub formă de meniu tip cascadă, astfel că prin marcarea şi glisarea la dreapta cu mouse-ul, se poate trece la opţiunile situate pe alte niveluri ierarhice.

Opţiunea Programs afişează grupurile de programe care pot fi lansate în execuţie. În opţiunea Programs, grupurile de programe se afişează ca pictograme de directoare, iar programele se afişează cu pictogramele specifice. Din caseta cu opţiuni, utilizatorul poate lansa în execuţie orice program existent în calculator. De exemplu, dacă utilizatorul doreşte să lanseze în execuţie programul Media Player (fig. 4.12.b.) va proceda astfel:

• un clic pe butonul Start; • se poziţionează indicatorul mouse-ului succesiv pe opţiunile Programs, Accessories,

Entrertainment şi Media Player; • un clic pe Media Player, după care pe ecranul monitorului va apare fereastra de dialog

Media Player. Cu opţiunea Documents, utilizatorul poate regăsi rapid documentele recent folosite; după

activarea opţiunii, din lista afişată se va selecta numele documentului care doreşte să se deschidă. Deschiderea documentului selectat va fi precedată de lansarea automată în execuţie a

programului folosit pentru prelucrarea lui. De exemplu, dacă documentul a fost prelucrat cu procesorul de texte Word, atunci va fi lansat în execuţie procesorul de texte Word şi apoi deschis documentul respectiv.

Din opţiunea Settings utilizatorul poate să stabilească condiţiile de lucru pentru folosirea resurselor sistemului în funcţie de cerinţe.

Astfel, cu Control Panel se poate efectua configurarea sau reconfigurarea sistemului, prin adăugarea şi eliminarea unor componente hardware (cu Add New Hardware) şi software (cu Add/Remove Programs).

Cu opţiunea Find/Search se poate căuta şi localiza rapid orice fişier existent pe disc, fără a cunoaşte unde se găseşte şi numele exact: din lista afişată se va alege File or Folders după care utilizatorul este aşteptat să introducă numele fişierului sau o parte din nume.

Opţiunea Help permite utilizatorului să folosească sistemul de asistenţă software care poate fi răsfoit după trei criterii de clasificare:

Contents, Index şi Find; Contents prezintă domeniile mari de informaţii (topics-uri), Index clasifică informaţiile în ordine alfabetică, iar Find permite căutarea de informaţii în acces direct, prin specificarea termenului sau operaţiei pentru care se solicită explicaţii.

Cu opţiunea Run utilizatorul poate să lanseze imediat în execuţie programe specificând numele programului în caseta afişată, sau numele unor documente care doreşte să le deschidă.

Utilizatorul are posibilitatea să adauge sau să elimine programe în cascadă arborescentă a meniului butonului Start.

Bara de taskuri plasată iniţial în partea de jos a ecranului şi conţine pe lângă butonul Start: • pictogramele programelor folosite frecvent (se pot activa ulterior cu un simplu clic) • programele ale căror ferestre au fost minimizate temporar în timpul sesiunii de lucru;

totodată, se poate comuta de la un program aflat pe bara de taskuri, la alt program. • ora exactă şi butonul de control al volumului plăcii de sunet

Proprietăţile barei de taskuri pot fi modificate astfel încât acesta să fie: afişată permanent sau ascunsă (hidden), dar poate fi afişată poziţionând indicatorul mouse-ului pe marginea de jos a suprafeţei de lucru sau apăsând combinaţia de taste Ctrl + Esc;

De asemenea, bara de taskuri poate fi redimensionată prin mărirea înălţimii, trăgând în sus de marginea superioară cu mouse-ul şi poziţionată cu ajutorul mouse-ul în orice parte a ecranului.

Orice program aflat în execuţie şi orice document deschis se afişează cu butonul propriu pe bara de lucru (fig. 4.13.). Ele pot fi activate cu un clic, fereastra acestuia fiind afişată pe suprafaţa de lucru ca fereastră curentă. La rândul ei, orice fereastră poate fi minimizată executând un clic pe butonul de minimizare sau închisă cu un clic pe butonul de închidere.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

134

Figura 4.13. Bara de lucrări (Taskbar)

În partea dreaptă a barei se află zona de notificare (Notification area). Între butonul Start şi zona de notificare utilizatorul poate afişa o serie de bare de instrumente implicite sau proprii:

1 Bara de adrese (Address ); 2. Bara de legături (Links); 3. Bara pentru vizualizarea tipului tastaturii (engleză, română, etc.) (Language bar); 4. Suprafaţa de lucru (Desktop); 5. Bara de lansare rapidă (Quick Launch); 6. Bară de instrumente nouă, creată de utilizator (New Toolbar).

Lansarea în execuţie a unui program se poate realiza în mai multe moduri: 1. de pe desktop, cu un clic pe pictograma asociată programului, în cazul în care acesta

există; 2. din meniul butonului Start, dacă este instalată aplicaţia; 3. cu comanda Run a butonului Start indicând specificatorul fişierului executabil sau

selectându-l prin intermediul opţiunii Browse; 4. de pe bara de lucru cu un clic pe pictograma programului, dacă există; 5. prin intermediului aplicaţiei Explorer, cu dublu click pe fişierul asociat aplicaţiei.

a. b.

Fig. 4.14. a.. Fereastra de dialog Run; b. Fereastra Windows Explorer Închiderea unui program şi cedarea controlului sistemului de operare se face fie printr-un clic

pe butonul de închidere al ferestrei, fie apelând comanda Exit disponibilă în meniul File al fiecărui program, respectiv comanda Close din meniul sistem asociat ferestrei.

Windows Explorer poate fi considerat programul utilitar cel mai folosit pentru managementul fişierelor şi a directoarelor.

Pentru lansarea în execuţie a programului utilitar Windows Explorer se poate proceda în mai multe moduri:

• executând un clic pe pictograma Windows Explorer afişată pe bara de scurtături (Quick Launch) pe bara de taskuri în dreapta meniului Start;

• deschizând meniul Start, selectând Programs, apoi Windows Explorer, dacă bara de scurtături nu este creată;

• folosind My Computer pentru a avea acces pe discul si calea unde se găseşte fişierul executabil corespunzător (C>:\Windows\ Explorer.exe)

După lansarea în execuţie, se afişează fereastra Windows Explorer (fig. 4.14.b.), care asemănător oricărei ferestre de aplicaţie, conţine bara de titlu, bara de meniuri, bara cu instrumente de lucru şi bara de stare.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

135

Caracteristica esenţială a ferestrei Windows Explorer este divizarea în două panouri (stânga şi dreapta).

Panoul din stânga permite: • prezentarea schematică a unităţilor de discuri şi directoarele de pe suprafaţa de lucru,

existente în calculator sau în alte calculatoare (dacă se lucrează în reţea) şi deplasarea • (navigarea) rapidă prin structura de directoare; • afişarea unei imagini a structurii directoarelor; • copierea sau mutarea de documente prin alunecare şi fixare.

În panoul din stânga, toate obiectele existente pe suprafaţa de lucru sunt afişate cu pictograma specifică şi cu numele corespunzător.

Unele obiecte au în faţa pictogramei semnul + sau semnul –. Semnul + (plus) menţionează că obiectul respectiv este afişat sub formă restrânsă, conţinând cel puţin un director, iar semnul – (minus) arată că obiectul este afişat sub formă expandată. Executând un clic pe semnul +, obiectul se va afişa expandat, iar cu un clic pe semnul –, obiectul se va afişa sub formă restrânsă.

Panoul din dreapta este cel mai folosit pentru efectuarea de operaţii obişnuite cu documente: copiere, deschidere, ştergere şi alte operaţii. În acest panou sunt afişate în detaliu dosarele care au fost selectate în panoul din stânga.

În panoul din dreapta se afişează în detaliu conţinutul directorului selectat în panoul din stânga; conţinutul poate fi afişat cu pictograme mici sau mari sau ca o listă simplă sau detaliată, în funcţie de pictograma selectată pe bara de unelte de lucru dintre ultimele patru pictograme. De asemenea, în acest panou se pot executa şi alte operaţii

folosind celelalte pictograme sau opţiunile din bara de meniuri (File, Edit, View, Tools, Help). Dacă numărul obiectelor existente pe suprafaţa de lucru este mai mare decât spaţiul de afişare

(pe verticală) disponibil pe panou sau dacă lăţimea panoului nu este suficient de mare pentru afişarea în întregime a structurii sau conţinutului unui director selectat, atunci pe panoul respectiv apar automat barele de derulare (pe verticală sau orizontală) cu cele două butoane de derulare; pentru a vizualiza în întregime conţinutul unui panou, se fixează indicatorul mouse-ului pe unul din cele două butoane de derulare şi executând clic pe butonul din stânga, se poate deplasa conţinutul panoului cu câte un rând sau o coloană în direcţia respectivă; deplasarea se poate face şi prin fixarea indicatorului mouse-ului pe bara de derulare, executând clic pe butonul din stânga şi trăgând mouse-ul în direcţia dorită.

Suprafaţa de afişare a celor două panouri se poate modifica, mărind sau micşorând lăţimea unui panou faţă de celălalt panou. În acest scop, pe bara verticală care separă cele două panouri se fixează indicatorul mouse-ului, se aşteaptă până când acesta se transformă într-o săgeată dublă, se apasă butonul din stânga şi ţinându-l apăsat se trage

mouse-ul în direcţia dorită; după ce s-a obţinut suprafaţa de afişare în mărimea dorită, se eliberează butonul mouse-ului.

Bara de meniuri conţine alături de elementele de meniu comune tuturor ferestrelor şi elemente specifice:

• trecerea directă la un alt director; • schimbarea directorului curent cu cel de origine; • determinarea unui disc sau un director din reţea să se comporte ca şi cum ar fi local; • operaţii de decupare, copiere, respectiv de adăugare a unui document sau director; • anularea ultimei operaţii efectuate; • ştergerea obiectului selectat; • afişarea ferestrei cu proprietăţile obiectului selectat; • execuţia comenzilor de sortare şi afişare documente din fereastră (afişare cu

pictograme mari sau mici, afişare sub formă de listă simplă, respectiv afişare sub formă de listă detaliată).

Bara de stare situată în partea de jos a celor două ferestre, furnizează informaţii despre numărul obiectelor selectate (directoare, fişiere), spaţiul de memorie pe disc ocupat de obiecte şi spaţiul de memorie disponibil.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

136

4.5.3. Sesiunea de lucru Windows XP Windows XP integrează punctele forte ale versiunii Windows 2000 – securitatea crescută,

administrabilitatea şi fiabilitatea cu cele mai bune caracteristici de business ale Windows 98 şi Windows Me – Plug and Play, interfaţa cu utilizatorul uşor de folosit şi serviciile inovative de support. Sistemul de operare Windows XP este distribuit în două ediţii: Windows XP Home şi Windows XP Professional.

Din punctul de vedere al Plug&Play, acesta lucrează la fel ca cel din versiunile anterioare de Windows, componentele ataşate fiind detectate fără probleme. Ca de obicei, fiecare versiune de Windows poate recunoaşte o gamă din ce în ce mai mare de componente hardware, iar Windows XP nu se abate de la această regulă, fiind la zi cu multe din noile apariţii.

Noutăţile şi îmbunătăţirile existente în Windows XP sunt: • Automatic Update este un serviciu care permite actualizare automată a sistemului de

operare prin intermediul Internetului; • CD Burning permite salvarea informaţiilor pe CD asemănător salvării pe dischete sau

disc magnetic; • ClearType, o tehnologie nouă care permite triplarea rezoluţiei orizontale pentru randarea

textului prin software; • Compressed Folders permite copierea de fişiere şi directoare într-un director comprimat,

ceea ce are ca efect comprimarea acestora, reducându-se spaţiul ocupat pe disc; • Suport pentru Fax, ceea ce permite trimitea de faxuri prin intermediul reţelei; • Fast User Switching permite comutarea între utilizatori fără a obliga un utilizator să

închidă toate aplicaţiile care rulează şi să încheie sesiunea înainte de conectarea celuilalt • utilizator; • Instant Messaging permite utilizatorilor să comunice uşor utilizând multimedia audio,

video şi date în timp real prin intermendiul Internetului; • Internet Connection Firewall (ICF) protejează calculatorul când acesta este conectat la o

reţea; • Web Distributed Authoring and Versioning (WebDAV) redirector este un nou mini-

redirector care suportă protocolul WebDAV protocol pentru partajarea documentelor prin intermediul HTTP.

Avantajele sistemului de operare Windows XP sunt date de: • Implementare şi integrare mult uşurate - Windows XP asigură o administrare avansată,

implementare şi instrumente pentru suport tehnic care fac sarcina administratorilor de sistem mai uşoară. Windows XP se integrează fără probleme în mediile existente ale Windows 2000 Active Directory, oferind şi politici noi de sistem;

• Mobilitate – Windows XP aduce facilităţile inovative în mobilitate cum ar fi Remote Desktop care permit lucrul la distanţă şi accesarea calculatorului de la distanţă, prin intermediul conexiunii la reţea ;

• Securitate la nivel de business – Caracteristicile de securitate de prim nivel vizează apărarea fişierelor importante, informaţiilor, activităţilor pe Internet şi confidenţialitatea, cum ar fi Internet Connection Firewall;

• Fiabilitate sporită – Comunicaţiile cu clienţii şi partenerii - Windows Messenger şi conferinţele online permit comunicarea şi colaborarea directă, folosind programul de comunicare interactivă cu text, audio sau video;

• Pivotul reţelei unei companii de dimensiuni mici – Companiile mici pot partaja acum mai uşor resurse valoroase şi dispozitive, cum ar fi documente, faxuri, imprimante şi chiar conexiuni Internet.

În ceea ce priveşte interfaţa grafică, s-au înregistrat o serie de schimbări faţă de sistemul de operare Windows 2000, (fig. 4.15.a.).

În meniul Start a fost adăugate:

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

137

• o listă cu programele cele mai recent utilizate; • programele instalate se regăsesc la opţiunea All Programs; • două butoane pentru închiderea sesiunii curente: Log Off şi Turn Off Computer; • legături către My Documents, My Recent Documents, My Pictures, My Music, My

Computer, Control Panel, conexiuni Internet, imprimante şi faxuri. Opţiunile din meniul Start şi ale barei de taskuri pot fi configurate prin intermediul

proprietăţilor butonului Start, (fig. 4.15.b.). După acţionarea cu un clic pe butonul drept al mouse-ului, se poate alege din meniul Start

care dintre opţiuni să fie expandabile (Dial-Up NetWorking, My Documents, Control Panel, My Pictures, Printers).

Includerea Control Panel în această categorie este favorabilă, deoarece până acum doar secţiunea Printers putea fi accesată direct din butonul de Start fără deschiderea unor ferestre suplimentare. Dintre celelalte opţiuni ale proprietăţilor meniului Start se mai poate aminti afişarea sau nu în meniu a rubricilor Run, Favorites şi Logoff.

a. b. Fig. 4.15. a. Interfaţa Windows XP; b. Proprietăţile barei de stare şi ale meniului Start Interfaţa specifică Windows XP poate fi schimbată cu interfaţa clasică Windows din caseta de

proprietăţi a meniului Start şi din pagina Display properties din Control Panel. Configuraţia directoarelor se face din Control Panel cu noi opţiuni, spre deosebire de

versiunile anterioare în care setările se făceau prin intermediul Windows Explorer. Tot în Control Panel (fig. 4.16.a.) a fost introdusă rubrica Scanners and Cameras ce confirmă orientarea Windows XP spre partea de multimedia.

Scanerele şi camerele video sunt mai uşor de instalat sub Windows XP şi se pot configura astfel încât să lanseze anumite programe specificate de utilizator când se scanează o imagine.

Windows XP suportă ultimele standarde în materie de echipamente hardware. Windows XP prezintă o serie de noutăţi în legate de multimedia. Astfel, Media Player

prezintă o serie de caracteristici noi, având integrat un sistem de căutare a fişierelor în tot PC-ul, cu posibilitatea de a selecta anumite fişiere (de muzică sau filme) fără a le mai deschide unul câte unul sau director cu director. Design-ul este mult îmbunătăţit permiţând alegerea unor skin-uri, dar şi a unor vizualizări mai interesante. Suportul pentru skin-uri a fost îmbunătăţit, adăugându-i-se codec-uri noi (deşi încă nu poate reda nici un format Real Media) şi un egalizator cu diverse module de vizualizare, apropiindu-se din acest punct de vedere de player-ele cu mai mare impact pe piaţă (WinAmp sau Sonique). Dar aspectul cel mai important este posibilitatea de a face CD ripping în format WMF (Windows Media Format). Fişierele obţinute sunt în general cu 3-5 % mai mici decât cele în format MP3, la aproximativ aceeaşi calitate.

Internet Explorer 6 este inclus în Windows XP în ciuda procesului anti-trust în care unul din capetele de acuzare era interconectarea dintre browser-ul Internet şi sistemul de operare. Ultima versiune conţine numeroase elemente care ar adăuga un plus de eficienţă paginilor Web, dacă designerii se vor decide să utilizeze instrucţiunile HTML suplimentare. O altă opţiune utilă este posibilitatea de a face o vizualizare a paginilor Web înainte de imprimare. Această vizualizare, nu funcţionează prea bine cu paginile ce conţin elemente de Java Script.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

138

Tehnologia IntelliSense încorporată în Internet Explorer salvează timp prin efectuarea unor operaţii de rutină în mod automat, cum ar fi: completarea adresei de Web şi a formularelor în locul utilizatorului, detectarea automată a stării reţelei şi a conectării.

a. b.

Fig. 4.16. a. Control Panel în Windows XP; b. System Restore din Windows XP Când se scrie o adresă de Web (în Address bar) folosită frecvent, este pusă la dispoziţie o listă

de adrese similare din care se poate alege adresa dorită. Dacă o adresă a unei pagini de Web este greşită, Internet Explorer caută o adresă similară, încercând să găsească adresa corectă.

Folosind Content Advisor, se poate selecta ca anumite elemente ale paginilor de Web să nu poată fi vizionate folosind caracteristicile paginii selectate, caracteristici care au fost definite de Comitetul PICS (Platform for Internet Content Selection). Folosind zonele de securitate, se pot defini anumite niveluri de securitate pentru diferite arii de Web pentru a mări protecţia PC-ului.

Dacă se vizitează un site de pe Web care a fost scris în mai multe limbi, Internet Explorer încărca automat setul de caractere necesar pentru ca respectiva pagină de Web să poată fi vizionată corect în respectiva limbă ce a fost solicitată.

Microsoft Windows poate actualiza PC-ul în mod automat, prin căutarea ultimelor noutăţi referitoare la pachetele şi componentele sale, fără perceperea unor taxe suplimentare. Windows determină care actualizări sunt necesare sistemului pe care este instalat şi informează prompt de fiecare dată când o astfel de actualizare devine accesibilă.

Actualizarea automată are loc doar dacă PC-ul este conectat la Internet şi dacă Windows-ul a fost înregistrat la Microsoft. Pentru această operaţie, se va selecta din meniul Start, opţiunea Settings, urmată de Control Panel, de unde se lansează fereastra de dialog System, în care există Automatic Updates.

În ceea ce priveşte stabilitatea, Windows XP este cel mai stabil sistem de operare din familia Windows, căderile de sistem fiind mult mai rare şi erorile mult mai puţin criptice. Însă metodele folosite pentru obţinerea unui plus de stabilitate lasă de dorit şi îşi au dezavantajele lor.

În primul rând, Microsoft a rupt definitiv legăturile cu trecutul şi a eliminat MS-DOS din Windows. Se mai poate încă intra în modul linie de comandă, însă nu se mai poate iniţializa PC-ul în mod MS-DOS doar folosind Emergency Boot Disk, metodă care nu lasă suficientă memorie liberă pentru rescrierea BIOS-ului sau alte astfel de operaţii care necesită rularea doar din linia de comandă.

În plus, Windows XP nu permite ca o aplicaţie să scrie ceva în fişierul Autoexec.bat sau alte fişiere mai vechi de sistem; când se întâmplă acest lucru, înlocuieşte conţinutul cu propriile sale instrucţiuni considerate mai sigure. Astfel, driverele de MS-DOS nu mai funcţionează cum trebuie, iar unele jocuri sau programe de MS-DOS nu merg decât în fereastră.

Opţiunea System Files Protection este una dintre noile modalităţi de prevenire a căderilor sistemului, prin plasarea unor restricţii software în ceea ce priveşte suprascrierea DLL-urilor Windows-ului sau a altor fişiere de sistem de importanţă vitală. Când un program reuşeşte totuşi să suprascrie un fişier de sistem, modulul de protecţie care funcţionează în background, va înlocui fişierul cu cel din CAB-urile Windows-ului. Singurul dezavantaj este un spaţiu ocupat de sistemul de operare pe disc mai mare.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

139

Cea mai importantă opţiune preluată din Windows 2000 este System Restore care face un backup al fişierelor din sistem în mod automat la fiecare 10 ore de funcţionare sau la cererea utilizatorului (fig. 4.16.b.). Dacă prin instalarea unui nou hardware a unui nou program Windows XP sau o altă aplicaţie ce a fost instalată în prealabil funcţionează precar, System Restore poate ajuta la rezolvarea acestei probleme pri restaurarea PC-ului la o stare de funcţionare anterioară declanşării problemei. În acelaşi timp cu îndepărtarea problemei în cauză, sunt protejate toate fişierele create pe perioada cuprinsă între momentul de restaurare şi momentul apariţiei problemei. Păstrarea evidenţei se realizează prin intermediul unor salvări ale informaţiilor esenţiale, denumite puncte de restaurare (restore points) sau puncte de verificare (checkpoints).

Uneori se pot şterge accidental sau pot fi corupte fişiere vitale pentru funcţionarea unor programe. Pentru îndepărtarea acestor neregularităţi, ar fi nevoie de o eventuală reinstalare a programelor, instalare care nu asigură 100% revenirea la statutul sistemului deţinut anterior deteriorării programului respectiv. System Restore este capabil să restaureze în întregime partiţiile tuturor discurilor; numărul punctelor de restaurare depinde de intensitatea activităţii, de mărimea partiţiei pe care se află Windows şi de spaţiul care a fost alocat pentru crearea punctelor. System Restore se prezintă sub forma unui calendar, uşurând astfel alegerea unui punct dorit. În acest scop este necesară doar selectarea ultimului moment în care sistemul nu se confrunta cu probleme.

Având în vedere că numărul punctelor variază şi în funcţie de intensitatea activităţii, pentru o zi pot exista mai multe puncte de restaurare sau nici unul. Tipuri de puncte de restaurare sunt următoarele:

• Sistemul iniţial de puncte de verificare, care este creat imediat ce PC-ul este pornit după instalare Windows XP sau la prima pornire a unui nou PC. Selectând acest sistem, nu se vor restaura programele instalate în perioada cuprinsă între instalarea Windows-ului şi momentul efectuării restaurării şi nici un fişier creat de utilizator în aceeaşi perioadă de timp. Dacă System Restore va avea nevoie de spaţiu pe disc, el va elimina orice alt punct, păstrându-l doar pe cel iniţial.

• Puncte de verificare sistem. System Restore creează în mod regulat puncte de verificare, chiar dacă nu au avut loc modificări importante. Aceste puncte de verificare create automat, se fac la fiecare 10 ore de funcţionare continuă şi la fiecare 24 ore. Dacă PC-ul nu este folosit o perioadă mai mare de 24 ore, System Restore va crea nu nou punct de verificare. Selectând un astfel de punct de verificare, programele vor reveni la starea lor precedentă.

• Puncte de verificare ce poartă denumirea unui program. La fiecare instalare a unui nou program ce foloseşte Installshield şi Windows Installer, System Restore creează un punct de verificare. Selectând un astfel de punct de verificare, programul instalat va fi şters împreună cu toate referirile, iar programele care au fost modificate prin instalare vor reveni la starea lor precedentă. Dacă instalarea unui program nu foloseşte formele precizate mai sus, se poate restaura de la un punct de verificare anterior instalării acestuia.

• Puncte de verificare întocmite automat de Windows referitor la actualizări. Dacă se efectuează o actualizare a Windowsului, System Restore creează de asemenea un punct de verificare înaintea instalării actualizării. Acest punct va fi creat doar la instalare şi nu la copierea actualizării. Punctele astfel create pot servi situaţiilor în care actualizările cauzează un conflict cu alte programe sau componente.

• Puncte de verificare create manual. Utilizatorul poate crea în orice moment puncte de verificare ce poartă denumiri definite de acesta. Astfel de puncte sunt utile când se anticipează efectuarea unui număr mare de modificări ce pot afecta stabilitatea sistemului.

În orice moment se pot anula efectele unei restaurări; anularea se face automat doar atunci când System Restore eşuează în restaurarea unui anumit punct de verificare.

Protecţia fişierelor se poate realiza şi prin File Signature Verification care identifică fişierele ce nu corespund din punctul de vedere al semnăturii şi furnizează următoarele informaţii: nume, locaţie, data modificării, tipul fişierului şi versiunea.

Cu opţiunea de hibernare, PC-ul poate fi stins în siguranţă, chiar dacă sunt deschise fişiere nesalvate. Când sistemul este repornit, totul revine la starea în care a fost înainte de a fi oprit.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

140

Hibernarea poate fi configurată să înceapă după un anumit număr de minute în care PC-ul nu a fost folosit. În această stare, PC-ul est ferit de degradare fizică deoarece se comportă din aproape toate punctele de vedere ca şi calculator oprit.

Opţiunea Standby este folosită îndeosebi pentru conservarea energiei, fiind utilă sistemelor portabile ce folosesc baterii sau acumulatoare. Spre deosebire de hibernare, Stanby-ul opreşte doar discul şi monitorul, plasând sistemul într-o stare de consum minim de energie. Singura avertizare este aceea că Stanby-ul nu salvează conţinutul memoriei astfel încât la o mică întrerupere de curent, informaţiile din memorie se pierd instantaneu. Aşadar, este recomandat ca înainte de intrarea în Stanby, toate fişierele deschise să fie salvate.

Windows XP îmbunătăţeşte sistemul de Help incluzând numeroase programe de asistenţă de tip wizard printre care se numără şi Home Networking, destinat celor care îşi instalează o reţea acasă (între camere, între apartamente sau între blocuri). Wizard-ul creează o dischetă cu configuraţia, dischetă ce poate fi folosită pentru a include în reţea un alt calculator. Wizard-ul Network Connection asistă în crearea conectărilor prin telefon la Internet, în reţeaua locală etc. Se pot seta protocoalele şi serviciile necesare pentru fiecare conectare în parte, având mai mult control asupra configurărilor calculatorului pentru lucrul în reţea.

Există încorporat în sistem şi un Internet Connection Wizard care asistă la setarea unui Internet Provider şi instalarea software-ului necesar. Directorul My Network Places conţine locaţiile cel mai recent vizitate.

Când se lucrează într-o reţea, se pot afla uşor resursele reţelei care se foloseşte. Folosind facilitatea Search For People, se pot localiza persoane în Windows Address Book.

Interconectarea PC-ului cu scannere şi camere foto digitale se face prin intermediul protocolului WIA (Windows Image Aquisition); pentru o cameră digitală compatibilă, permite managementul imaginilor fără ca acestea să fie transferate pe calculator, iar procesul de scanare este mult simplificat de prezenţa unui Wizard.

Windows XP include Outlook Express 6.0 pentru citirea şi gestionarea e-mail-ului. Sistemul conţine şi diferite facilităţi pentru trimiterea, recepţionarea, direcţionarea către imprimantă sau monitor, a fax-urilor. Organizarea conferinţelor pe internet se poate face cu programul Microsoft NetMeeting.

Includerea MSN Messenger-ului permite interacţiunea utilizatorilor pentru o serie de jocuri on-line. Există o serie de servicii sau de site-uri la care accesul se poate face prin intermediul unui .NET passport care poate fi creat utilizând un cont existent pe Microsoft Hotmail sau prin intermediul MSN Messenger şi a unei legături la Internet.

Folosind Windows XP, există mai multe posibilităţi de conectare a calculatorului la o reţea: • cuplarea la un alt calculator folosind o conectare directă prin cablu; conectarea directă

prin cablu reprezintă o legătură a porturilor de I/O a două calculatoare, legătură realizată cu un singur cablu şi nu prin modem-uri sau alte interfeţe.

• legarea la o reţea privată folosind un modem, un adaptor ISDN (Integrated Services Digital Network)

• legarea la o reţea folosind o conectare VPN (Virtual Private Network). VPN reprezintă o extensie a unei reţele private care cuprinde legături încapsulate, criptate şi autentice, cu reţelele publice sau private de pe Internet.

Pentru conectarea la un LAN (Local Area Network), sunt necesare următoarele resurse: • software-ul client care conectează calculatorul la un server. • software-ul de service care asigură accesul la resursele reţelei; • protocolul de reţea care reprezintă limba în care comunică calculatorul pe reţea. Pentru a

comunica unul cu celălalt, calculatoarele trebuie să folosească acelaşi protocol (de exemplu, TCP/IP).

Dacă PC-ul este legat fizic la o reţea în timpul operaţiei de Setup, Windows XP detectează automat placa de reţea şi instalează driver-ul cel mai apropiat de cerinţele plăcii dacă nu chiar cel al plăcii.

Când se activează Network Connection Wizard se afişează următoarele opţiuni:

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

141

• Dial-up către o reţea privată prin intermediul unui modem şi a unei linii telefonice, sau printr-o linie ISDN; opţiunea se poate folosi pentru a realiza transferuri de pe reţeaua de la locul de muncă;

• Dial-up către Internet prin intermediul unui modem şi a unei linii telefonice, sau printr-o linie ISDN. Se poate folosi această opţiune pentru a conectarea la un ISP (Internet Service Provider);

• Conectarea la o reţea privată prin Internet poate folosi ISP pentru conectare la o reţea privată, prin care se creează o conectare prin intermediul unei VPN, prin Internet între calculatorul de acasă şi reţeaua de la locul de muncă.

4.5.4. Sesiunea de lucru Windows VISTA

Windows Vista este ultima versiune a sistemului de operare Microsoft Windows, proiectată sub numele de cod Longhorn şi lansată în noiembrie 2006 pentru variantele destinate firmelor comerciale, şi ianuarie 2007 pentru variantele destinate utlizatorilor obişnuiţi. Windows Vista are noi proprietăţi şi capacităţi, cum ar fi o modernă interfaţă grafică şi un stil vizual nou numit Aero, tehnologia de căutare îmbunătăţită, noi unelte multimedia, precum şi subsistemele de reţea, audio, imprimare şi afişare (display). Windows Vista este comercializat în 35 de versiuni lingvistice, între care şi una în limba română.

Windows Vista lansează experienţe revoluţionare în utilizarea calculatorului, care sunt captivante vizual, sunt concepute intuitiv şi schimbă modul în care este utilizat calculatorul. Se pot organiza şi căuta mai eficient informaţiile. Se pot "vedea" fişierele şi aplicaţiile într-un mod intuitiv.

Designul intuitiv al sistemului Windows Vista ajută la navigarea eficientă pe calculator. Utilizând noul meniu Start din Windows Vista, se poate utiliza noul câmp Căutare

instantanee din colţul stânga jos. Pe măsură ce se tastează un cuvânt sau o frază asociată cu elementele căutate, Windows Vista caută instantaneu în numele de fişiere, în proprietăţile fişierelor (denumite metadate), şi chiar în informaţiile din fişiere şi afişează dinamic rezultatele corelate. Meniul Start poate căuta aplicaţii, documente, muzică, filme, mesaje e-mail, evenimente din calendar şi chiar contacte.

Meniul Start face rapidă şi facilă vizualizarea şi navigarea prin toate aplicaţiile instalate pe calculator. Cu meniul Start din Windows XP trebuie că parcurgeţi meniuri în cascadă pentru a lansa o aplicaţie.

În Windows Vista, explorerele sunt instrumentele principale de căutare, vizualizare şi administrare a informaţiilor şi resurselor, cum sunt documentele, fotografiile, dispozitivele, conţinutul Internet şi chiar setările din Panoul de control. Oferind o experienţă vizuală şi funcţională complexă, Explorerele din Windows Vista sunt concepute pentru a permite administrarea informaţiilor, cu flexibilitate şi control optim. Acest lucru este realizat prin fluidizarea meniurilor, a barelor de instrumente, a navigării şi a Panourilor de detalii într-o singură interfaţă.

Explorerele includ un panou de navigare atât foldere tradiţionale, cât şi noile Foldere de căutare, o bară de comandă care afişează sarcinile relevante contextual, o casetă Căutare instantanee disponibilă în orice moment, pictograme live ale fiecărui fişier şi un Panou de detalii, care oferă informaţii detaliate despre fişiere

Panoul de navigare din fiecare Explorer a fost reconceput pentru a face mai simplă navigarea pe calculator şi găsirea rapidă a elementelor căutate. Vizualizarea prestabilită din Panoul de navigare are o serie de legături care duc către Explorerul de documente, Explorerul de fotografii sau Explorerul de muzică. Există o legătură Căutări care permite să vizualizarea Folderelor de căutare de pe calculator.

Folderele tradiţionale şi conţinutul acestora au o adresă specifică pe unitatea hard-disk. În contrast, un Folder de căutare, este o căutare salvată care rulează instantaneu în momentul în care faceţi clic pe ea. Foldere de căutare pot organiza automat fişierele în mod logic, fără a le muta la alte locaţii de pe calculator şi se pot vizualiza fişierele în diverse moduri, fără probleme cu privire la

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

142

locaţia fişierelor. Este posibilă şi vizualizarea tradiţională, sub formă de arbore, selectând controlul folderelor din partea de jos a panoului.

Noua bară de comandă afişează sarcinile relevante pentru fişierele afişate într-un anumit Explorer. De exemplu, Explorerul de documente conţine sarcini ale barei de comenzi relevante pentru documente, iar Explorerul de muzică, conţine sarcini din bara de comenzi relevante fişierelor muzicale. Spre deosebire de Windows Explorer din Windows XP, bara de comenzi şi panoul de navigare sunt disponibile simultan.

Noua funcţionalitate scalabilă Pictograme live îmbunătăţeşte pictogramele generice din versiunile anterioare de Windows oferind o previzualizare a componentelor unui anumit fişier fără a deschide efectiv fişierul.

Pentru orice fişier selectat, Windows Vista afişează un set complet de proprietăţi ale fişierului în Panoul de detalii, înlocuind caseta de dialog Proprietăţi. Pentru aplicaţiile şi formatele de fişiere acceptate care au această caracteristică activată, Panoul de detalii poate oferi o modalitate rapidă de "previzualizare" a fişierului fără a-l deschide în aplicaţia asociată.

Spre deosebire de versiunile de Windows anterioare, Windows Vista oferă două interfeţe pentru utilizator diferite: o interfaţă "elementară" pentru sistemele entry-level şi o interfaţă mai dinamică denumită Windows Aero. Interfaţa elementară a fost actualizată şi fluidizată pentru a permite lucrul cu programele şi fişierele mai uşor.

Windows Aero dezvoltă experienţa elementară a utilizatorului şi oferă cea mai avansată şi performantă experienţă desktop de la Microsoft. Pentru a utiliza Aero este nevoie de un calculator cu o placă video compatibilă.

Un element nou al experienţei Aero este efectul translucid al Aero Glass, care oferă reflexii dinamice şi animaţii clare.

Două caracteristici noi din Aero, Windows Flip şi Windows Flip 3D, oferă o modalitate nouă de a administra cu încredere ferestrele de pe desktop, pentru a le putea vedea într-un mod uimitor, dar convenabil. Aero Glass creează o fereastră cu adevărat transparentă, concentrată asupra conţinutului, dar care vă permite totuşi să urmăriţi celelalte ferestre de pe desktop. În Windows Vista, ferestrele sunt dinamice. Când este minimizată, o fereastră va fi animată subtil la o anumită locaţie din bara de sarcini, făcând mai uşoară localizarea sa ulterior.

Cu Windows Aero, miniaturile live din bara de sarcini arată conţinutul ferestrelor deschise, fie că sunt în background sau sunt minimizate în bara de sarcini. Când opriţi mouse-ul deasupra titlului unei ferestre din bara de sarcini, se poate vedea conţinutul "live" al acelei ferestre, fără a fi necesar să o aduceţi în prim-plan.

a. b.

Figura 4.17. a. Interfaţa Windows Aero b. Meniul START Windows Flip este o actualizare a caracteristicii cunoscute sub numele de ALT+TAB în

versiunile anterioare de Windows. Cu Aero, Windows Flip prezintă miniaturi live ale ferestrelor

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

143

deschise în locul pictogramelor generice, făcând mai facilă identificarea ferestrei pe care o căutaţi. Această nouă caracteristică permite chiar să minimizaţi toate ferestrele de pe desktop.

Cu Aero, Windows Flip 3D creează o vizualizare a ferestrelor deschise într-o stivă tridimensională, pe desktop. Utilizând tasta cu sigla Windows în combinaţie cu tasta TAB, puteţi parcurge ferestrele deschise pentru a localiza şi selecta rapid fereastra dorită.

Când utilizaţi Windows Aero, ferestrele deschise parcurg mai lin ecranul când le mutaţi sau le redimensionaţi. Nu există artefacte de mişcare, latenţă sau efecte de "scurgere" care erau în trecut vizibile în special în cazul ferestrelor care afişează conţinut dinamic, cum sunt filmele. Utilizând Aero se reduc problemele anterioare legate de driverul pentru grafică. Cu interfaţa elementară Windows Vista şi cu Windows Aero se pot găsiţi organiza rapid informaţiile pe desktop şi derula activităţile cu productivitate crescută. Cu sistemul de stocare inovator din Windows Vista, se pot marca şi personaliza fişierele cu proprietăţi.

Folderele de căutare reprezintă căutări care sunt rulate instantaneu când faceţi clic pe ele. Windows Vista este livrat cu câteva foldere de căutare preconfigurate, cum ar fi Documente recente şi toate ataşamentele care vă arată toate fişierele de pe calculator care sunt ataşate la e-mailuri. Folderele de căutare colectează toate fişierele corelate în foldere preconfigurate sau foldere create personalizat.

Căutarea instantanee este contextuală - optimizează rezultatele pe baza activităţii curente, fie că sunt căutate applet-uri din Panoul de control, fişiere cu muzică din Windows Media Player sau fişiere şi aplicaţii din meniul Start. Pentru a căuta un anumit fişier, mesaj e-mail, contact, eveniment, o aplicaţie sau o adresă Internet favorită, deschideţi meniul start şi începeţi să tastaţi în câmpul Căutare instantanee. Pe măsură ce tastaţi, Windows Vista caută şi afişează instantaneu elementele corelate, fie că este vorba despre aplicaţii, adrese internet favorite, documente media, contacte, evenimente din calendar sau mesaje e-mail.

Căutarea instantanee este evidenţiată în colţul dreapta sus al fiecărei ferestre Explorer: Explorer de documente, Explorer de muzică, Explorer de fotografii şi noul Explorer de căutare. Ca şi în cazul meniului Start, nu trebuie decât să tastaţi câteva litere pentru ca cele mai relevante rezultate să fie afişate rapid. Dacă rezultatele afişate nu sunt ceea ce căutaţi, căutarea instantanee că oferă acces facil la instrumente care vă pot ajuta să creaţi căutări mai exacte sau puteţi să căutaţi pe Internet utilizând motorul de căutare dorit.

Funcţia de căutare este de asemenea activă în colţul dreapta sus al Panoului de control din Windows Vista. Tastaţi un cuvânt sau o frază asociată cu sarcina pe care vreţi să o îndepliniţi şi în Panoul de control vor fi filtrate cele mai relevante opţiuni disponibile pentru realizarea sarcinii. De exemplu, dacă tastaţi "schimbare rezoluţie ecran" în câmpul de căutare instantanee, vor fi afişate rapid toate controalele corelate cu schimbarea rezoluţiei monitorului.

Funcţia Căutare instantanee este de asemenea activă în Windows Photo Gallery şi în Windows Media Player. Oriunde vedeţi câmpul de căutare, începeţi să tastaţi şi veţi găsi cu uşurinţă ceea că căutaţi, rapid, exact şi în contextul în care căutaţi.

Pentru detalii suplimentare despre căutările dintr-un Explorer, se utilizează panoul de filtrare avansată pentru a crea o căutare cu mai multe criterii. Se pot adăuga filtre suplimentare, inclusiv cuvinte cheie şi intervale de date. Când s-a creat o căutare utilă, este uşor să o salvaţi sub forma unui folder de căutare nou, pentru ca mai târziu să puteţi repeta instantaneu acea căutare printr-un simplu clic.

În cazul în care conectaţi unităţi externe independente la calculatorul pe care este instalat Windows Vista, în scopul stocării, backup-ului sau arhivării, conţinutul acestor unităţi va fi de asemenea afişat în rezultatele căutării. Adăugaţi unităţile la indexul de căutare şi când creaţi un Folder de căutare nou, conţinutul unităţilor va fi inclus în rezultate.

Explorerele din Windows Vista extind beneficiile căutărilor pe desktop la următorul nivel, combinând căutările instantanee şi posibilitatea de a organiza automat conţinutul pe baza proprietăţilor, cum ar fi numele de fişiere, tipurile de fişiere, autorul sau cuvintele cheie descriptive (sau "etichetele") pe care le puteţi asocia cu fişierele.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

144

Controalele îmbunătăţite pentru antetele coloanelor sunt susţinute de utilizarea extinsă a proprietăţilor fişierelor din Windows Vista. Cu ajutorul controalelor extinse pentru antetul coloanelor, se pot gestiona uşor numărul mare de fişiere care pot fi afişate în Explorer sau în rezultatele căutării. Noile controale pentru antetul coloanelor au meniuri derulante, care pot afişa toate valorile din orice coloană cu informaţii asociată cu fişierele.

Noile controale pentru antetul coloanelor, dispun de noi vizualizări pe care le puteţi utiliza pentru a parcurge conţinutul. Vizualizarea Stivă afişează de asemenea, conţinutul organizat după valorile dintr-o anumită coloană. De exemplu, dacă selectaţi antetul coloanei Autori şi selectaţi ordonarea în stivă după autor, toate fişierele din acea vizualizare vor fi rearanjate automat în stive, organizate după numele autorului. Vizualizarea în stivă afişează fişierele ordonate în stivă după o anumită valoare, asociată cu fişierele, cum ar fi de exemplu: numele autorului, data, aplicaţia, sau un cuvânt cheie

Aceste stive se comportă asemeni folderelor tradiţionale şi puteţi face clic pe ele pentru a le deschide şi a vedea toate elementele din acea stivă. Spre deosebire de folderele tradiţionale, stivele nu au o locaţie fizică pe calculator. Din acest punct de vedere, stivele sunt vizualizări virtuale ale conţinutului. În plus, dacă un fişier are doi autori, acel fişier este inclus în stivele corespunzătoare fiecăruia dintre cei doi, oferindu-vă flexibilitate maximă în modul de organizare a fişierelor.

Vizualizarea Grupare după este similară vizualizării Stivă, dar fişierele de conţinut sunt organizate în grupuri conform valorilor unui anumit antet de coloană. Gruparea fişierelor după autor vă oferă o vizualizare mai granulară a documentelor care aparţin unui anumit autor.

Noile caracteristici puternice de căutare şi vizualizare din Windows Vista utilizează extensiv proprietăţile (denumite metadate sau cuvinte cheie) asociate cu fişierele stocate pe calculator, pentru a oferi modalităţi dinamice de vizualizare a conţinutului. Aceste proprietăţi pot include criterii ca data creării fişierului, autorul, numele persoanelor care apar într-o fotografie sau aplicaţia care a fost utilizată pentru crearea fişierului.

Pentru a adăuga uşor proprietăţi la un fişier, selectaţi-l şi faceţi clic pe legătura Editare din Panoul de detalii. Astfel va fi deschisă caseta de dialog Proprietăţi în care se pot adăuga sau edita cu uşurinţă proprietăţile fişierelor. Multe dintre câmpurile din această casetă dispun de caracteristica de completare automată, făcând adăugarea proprietăţilor mult mai facilă. Se poate să eticheta un grup întreg de fişiere simultan, selectând fişierele şi adăugând o proprietate în caseta de dialog Proprietăţi. Dacă doriţi să vă asiguraţi că proprietăţile şi cuvintele cheie personalizate ale dvs sunt confidenţiale când trimiteţi un fişier prin e-mail sau îl postaţi pe un site Web, Windows Vista conţine un instrument de ştergere care vă ajută să ştergeţi rapid şi uşor acele proprietăţi ale fişierului.

Windows Vista dispune de o casetă de dialog nouă, comună, pentru deschiderea şi salvarea fişierelor. Cu aplicaţiile care utilizează acest control, cum este Office 2007, puteţi utiliza toate caracteristicile noi şi inovatoare de căutare şi etichetare când deschideţi şi salvaţi fişiere. Pentru a adăuga proprietăţi când salvaţi un fişier, introduceţi proprietăţile direct în Panoul de detalii şi acestea vor fi adăugate automat la fişier atunci când îl salvaţi.

Explorer-ul din Windows Vista conţine o legătură de Căutare instantanee în colţul din dreapta sus. Funcţia Căutare instantanee conţine Explorerul de documente, de muzică, de fotografii şi noul Explorer de căutare. Fereastra Căutare instantanee apare de asemenea în colţul din dreapta sus al noului Panou de control. Caseta Căutare instantanee poate fi găsită în programele Windows, cum sunt Internet Explorer 7, Windows Photo Gallery şi chiar Windows Media Player. Network and Sharing Center oferă controlul asupra conectivităţii în reţea ; poate verifica starea conexiunii, vizualiza reţeaua şi depana problemele de conectare.

Network and Sharing Center informează cu privire la reţea şi verifică dacă PC-ul, poate accesa Internetul în siguranţă — apoi sumarizează aceste informaţii sub forma unei hărţi de reţea.

Dacă un calculator din reţea se deconectează de la Internet, Network and Sharing Center oferă o reprezentare grafică a conexiunii întrerupte. Apoi, cu Network Diagnostics and Troubleshooting se stabileşte cauza problemei şi modalităţile posibile de rezolvare.

CAPITOLUL 4. PRINCIPALELE SISTEME DE OPERARE

145

Parental Controls - responsabilitate faţă de copii, integrate în Windows Vista sunt concepute pentru a oferi linişte părinţilor şi a le da încredere în modul în care gestionează exact activităţile pe care copiii le pot desfăşura pe calculator. Aceste controale ajută părinţii să stabilească jocurile care pot fi jucate de copii, programele pe care aceştia le pot utiliza şi site-urile web pe care le pot accesa şi în ce momente. Părinţii pot restricţiona utilizarea calculatorului numai la anumite momente şi pot avea încredere că Windows Vista va aplica acele restricţii, chiar dacă ei nu sunt acasă. Pentru copii, pictograma Control parental este disponibilă în system tray (funcţia Control parental este activă).

Windows Photo Gallery oferă o modalitate facilă, mai intuitivă, de vizualizare, gestionare şi restrângere a fotografiilor şi filmelor. Un proces fluidizat simplifică captarea şi importul imaginilor şi filmelor, iar noile opţiuni de organizare ajută la găsirea amintirilor înregistrate

Windows Vista vă oferă două modalităţi de a tipări fotografiile: Online Print Wizard şi Photo Print Wizard. Cu aceste metode, se pot selecta şi tipări o sarcină fie din Windows Photo Gallery, fie din Explorerul de fotografii.

Windows DVD Maker, permite să creaţi DVD-uri cu aspect profesional cu filme şi fotografii, care pot fi vizualizate pe DVD playere, indiferent de codurile regionale ale zonei geografice.

Transferul realizat cu Windows Movie Maker HD pe un video DVD este uşor. DVD Maker din Windows Vista publică direct în format MPEG-2, permiţând scrierea DVD-

urilor direct de pe camera video. Utilizând suportul pentru slide show încorporat în Windows DVD Maker, se poate partaja

prezentări foto şi video sau filme utilizând un DVD player. Imaginile adăugate pe DVD sunt incluse sub forma unui slide show cu efecte şi tranziţii între fotografii şi cu coloana sonoră dorită.

Windows Media Center permite urmărirea fotografiilor într-o expunere cinematică, colecţia de muzică după coperţile albumelor, DVD-uri, înregistrarea TV, descărcarea şi vizionarea de filme.

Windows Media Center conţine noile jocuri pentru Windows: Chess Titans şi Mahjong Titans care pot fi vizualizate şi pe televizor.

Pentru a se asigura că oferă tuturor categoriilor de utilizatori produsele de care au nevoie, Microsoft a lansat 5 ediţii diferite Windows Vista: Windows Vista Home Basic şi Premium, Windows Vista Business, Windows Vista Enterprise şi Windows Vista Ultimate. Pentru organizaţiile mari, cu infrastructuri IT complexe, se recomandă ediţia Windows Vista Enterprise.

Principalele caracteristici ale sistemului de operare Vista sunt asigurate de noile programe: • Windows Defender şi Windows Firewall, • Căutarea instantanee şi Windows Internet Explorer 7, • Windows Aero cu meniuri cu aspect de sticlă, Flip 3D şi miniaturi live, • Centrul de mobilitate Windows şi suport Tablet PC, • Spaţiul de întâlnire Windows, • Windows Media Center şi extensiile Media Center, • Windows Complete PC Backup and Restore, • Spaţiul de lucru la distanţă, • Centrul de reţea, • criptarea unităţilor de disc Windows BitLocker, • Windows DVD Maker, • trei jocuri speciale, noi-nouţe: Chess Titans, Mahjong Titans şi Inkball, • crearea de filme de înaltă definiţie cu Windows Movie Maker şi Movie Maker HD.

4.5.5. Windows 7

Interesul specialiştilor IT a început să migreze masiv de la Windows Vista la intens

mediatizatul Windows 7, ce urmează să fie lansat în 2010 sau 2011. Windows 7, cunoscut sub numele de cod Blackcomb (Vienna), va fi mai uşor, mai rapid şiconţine aplicaţii multi-touch. Există informaţii despre versiunea 7 de Windows Mobile, unul dintre cele mai populare sisteme de operare pentru telefoane mobile inteligente şi PDA-uri cu

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

146

funcţie de telefon. Una dintre cele mai mari schimbări a viitorului Windows Seven este aşa numitul “Recover Center” care va apărea în panoul de control al sistemului de operare. Cu acest program, utilizatorii vor fi capabili să repare Windows-ul sau fişierele care au fost afectate, spre exemplu, de un virus, fără să mai fie necesară reinstalarea. Un alt plus îl reprezintă faptul că niciun fel date nu vor fi afectate de “reparaţii”.

Microsoft va lansa DirectX 11 înainte de apariţia noului sistem de operare Windows 7. Microsoft pare să fi ajuns la această decizie la presiunea unor nume mari din industria jocurilor, care vor să integreze în noile apariţii elemente din noul API (cum ar fi tesselation).

În figura 4.18 sunt prezentate ferestre şi sigla Windows 7 cunoscute din prezentările recente.

a. b.

c. d.

Figura 4.18. a. Interfaţa Windows 7, b. Sigla Windows 7, c. Fereastra START, d. Control Panel. Unul din inginerii Microsoft, a făcut o demonstraţie cu Windows 7 - care se vrea a fi urmaşul

lui Vista. De fapt Windows 7 este în momentul de faţă un sistem de operare “gol” care rulează în mod text şi are doar 13 servicii pornite printre care şi un mini-server http. Aceasta versiune demonstrativă se instalează doar pe 25 MB pe hard disk şi consumă doar 40MB de memorie. Versiunea alfa va fi diponibilă dezvoltatorilor în cadrul Professional Developers Conference (PDC) care se va desfaşura în luna octombrie. Microsoft a confirmat că Windows 7 va fi disponibil pe piaţa în 2010. Conform informaţiilor existente până în prezent, Windows 7 va utiliza acelaşi kernel ca şi Vista, ceea ce reduce considerabil riscul unor întârzieri majore în cadrul proiectului şi evitarea unor probleme de compatibilitate dintre Vista şi Windows 7. Eforturile sunt cu atât mai intensificate cu cât problemele legate de Vista au constituit nişte paşi înapoi pentru Microsoft. Prezentarea anterioara a lui Windows 7, cea din mai, a fost considerată, mult prea scurtă şi fără prea mare importanţă, din moment ce compania nu a răspuns la întrebări.

CAPITOLUL 5. REŢELE DE CALCULATOARE

147

CAPITOLUL 5

REŢELE DE CALCULATOARE

5.1. GENERALITĂŢI O reţea de calculatoare este alcătuită dintr-o colecţie de calculatoare interconectate printr-un

mediu fizic de comunicaţie, care a evoluat de la cablul telefonic la transmisia prin satelit (engl.: computer network). Comunicarea fizică între calculatoarele din reţea oferă utilizatorului individual avantaje deosebite, de la schimbul reciproc de mesaje la accesul de oriunde şi oricând la resursele hardware şi software ale reţelei, respectiv:

- accesul la baze de date aflate pe alte calculatoare; - folosirea unor programe aflate în alt loc decât pe propriul hard disc; - utilizarea în comun a unor echipamente hardware conectate la reţea.

De obicei e nevoie şi de măsuri de restricţie/siguranţă a accesului. Reţea este gruparea de calculatoare denumite noduri centrale (NC), care comunică pe canale

de transmisie centrale (CTC) la care se conectează calculatoarele utilizatorilor, alcătuind nodurile utilizator (NU) care comunică pe canale de transmisie utilizator (NTU).

Metodele de conectare sunt în continuă dezvoltare şi deja foarte diverse, începând cu tot felul de cabluri metalice şi de fibră optică, cabluri submarine şi terminând cu legături prin unde radio cum ar fi WLAN, WiMAX sau Bluetooth, prin raze infraroşii ca de ex. IrDA sau chiar prin intermediul sateliţilor. Foarte răspândită este metoda Ethernet, termen care se referă la natura fizică a cablului folosit şi la tensiunile electrice ale semnalului. Cel mai răspândit protocol de comunicare în reţelele Ethernet se numeşte CSMA/CD ("Carrier Sense Multiple Access / Collision Detection"). Dacă drept mediu fizic sunt utilizate undele radio, atunci reţeaua se numeşte reţea fără fir (wireless).

5.2. TIPURI DE REŢELE DE CALCULATOARE

Tipurile de reţele se diferenţiază în funcţie de anumite criterii. La modul cel mai general, ele se clasifică după următoarele criterii:

a) aria geografică în care operează; b) tehnologia de comunicare.

Aria geografică în care operează o reţea depinde de distanţa maximă dintre două noduri ale reţelei. Astfel se pot distinge:

- reţele locale ( LAN - Local Area Network); - reţele academice (CAN - Campus Area Network) - reţele metropolitane ( MAN - Metropolitan Area Network); - reţele pe arie extinsă (WAN - Wide Area Network); - reţele pe arie de extindere foarte mică (PAN - Personal Area Network).

Reţelele relativ mici, de exemplu cu cel mult câteva sute de calculatoare în aceeaşi clădire legate între ele direct, se numesc Local Area Network (LAN). O reţea de tip LAN dar fără fir (prin unde radio) se numeşte WLAN (Wireless LAN). Reţea academică (Campus Area Network) este o reţea de calculatoare asemănatoare cu cea de tip LAN dar ea se extinde pe zone geografice mult mai restrînse. Această reţea se poate de considerat ca o formă a reţelei metropolitane, configurată după necesităţi academice. În cazul unei universităţi o reţea CAN, poate face legătură dintre diferite clădiri a campusului care poate include: departamentele academice, bibliotecă universitară reşedinţele studenţilor. CAN este mai mare decît reţelele locale LAN dar mai mici decît WAN, în unele cazuri. Reţelele CAN au fost create cu scopul de a facilita studenţii la accesul liber la reţeau internet şi la resursele universităţii. Reţele de mare întindere geografică, de exemplu între 2 oraşe, pe o ţară, un continent sau chiar pe întreaga lume, se numesc Wide Area Network (WAN). Reţelele particulare de tip WAN au fost iniţial foarte costisitoare. La ora actuală însă, cele mai multe conexiuni de tip WAN folosesc ca mijloc de comunicaţie Internetul (GAN= Global Area Network) -

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

148

acesta este universal şi public, deci nu foarte controlabil de către un utilizator. PAN înseamnă Personal Area Network - o reţea de foarte mică întindere, de cel mult câţiva metri, constând din aparatele interconectabile pe care o persoană le poartă cu sine, ca de exemplu telefon mobil, player MP3 sau aparat de navigaţie portabil.

Tehnologia de comunicare separă reţelele în două categorii: - reţele fără comutare; - reţele cu comutare.

1. Reţelele fără comutare sunt reţele în care nodurile sunt conectate prin echipamentele specializate cunoscute sub denumirea de „canale de comunicaţie”. Pe aceste canale se întâlnesc două tipuri de legături:

- legături punct la punct (unicast): un emiţător şi un receptor; - legături multipunct sau difuziune (broadcast sau multicast): un emiţător şi mai mulţi

receptori. Legătura punct la punct conectează două noduri la un canal de comunicaţie. Legătura multipunct conectează mai multe noduri la un nod central prin partajarea aceluiaşi

canal de comunicaţie. Nodul central asigură şi rezolvarea conflictelor de acces pe canalul comun. 2. Reţelele cu comutare pot fi la rândul lor:

- reţele cu comutare fizică (de circuite); - reţele cu comutare logică.

a) comutarea de circuite sau comutarea fizică asigură selectarea şi rezervarea unui canal fizic de transmisie care rămâne, conectate pe o perioadă de timp proporţională cu durata apelului.

b) comunicarea logică este de două feluri: - comutare de mesaje; - comutare de pachete.

Comutarea de mesaje este tehnologia prin care mesajul, care se mai numeşte cadru sau frame, este transmis de la sursă la destinaţie ca o entitate unică. Mesajul tranzitează unul sau mai multe calculatoare intermediare până la destinaţie, traseul fiind stabilit pe baza unor algoritmi de dirijare.

Comutarea de pachete fragmentează un mesaj în unităţi numite „pachete”. Pachetele conţin în antetul lor informaţii care permit refacerea mesajului la destinaţie în condiţiile în care pachetele au fost dirijate aleatoriu pe traseele găsite libere.

5.3. MODELUL DE COMUNICAŢIE ÎN SISTEMELE DE DATE

Analiza noţiunilor legate de reţelele de calculatoare presupune clarificarea unor aspecte legate

de suportul de comunicaţie necesar. Vehicularea informaţiilor transmise de către o sursa către o destinaţie, indiferent dacă acestea sunt operatori umani sau maşini, presupune o abordare complexă şi o viziune de ansamblu multidisciplinară. Reţeaua de calculatoare reprezintă un ansamblu de calculatoare interconectate prin intermediul unor medii de comunicaţie, asigurându-se în acest fel utilizarea în comun, de către un număr mare de utilizatori, a unor resurse fizice (hardware), logice (software şi aplicaţii de baza) şi informaţionale (baze de date) de care dispune ansamblul de calculatoare conectate. Prin noţiunea de lucru în reţea se va înţelege conceptul de interconectare a unor echipamente de calcul care partajează resurse.

Resursele pot fi date (baze de date), aplicaţii (programe de editare texte, programe de gestiune a stocurilor etc.), periferice (imprimante, scannere etc.). Tehnicile utilizate în transmiterea informaţiilor se referă la totalitatea mijloacelor şi metodelor de transmisie eficientă şi de protejare a informaţiei împotriva perturbaţiilor. Modelul unui sistem pentru transmiterea informaţiei este prezentat în figura 5.1.

Figura 5.1 Modelul unui sistem de transmitere a informaţiei

CAPITOLUL 5. REŢELE DE CALCULATOARE

149

Semnficaţiile blocurilor funcţionale sunt: E = emiţător, G = generator de purtătoare, C = canal de transmisiuni, P = perturbaţii, S = sursa de informaţii, R = receptor, D = destinatar.

Prin sursă de informaţii (S) se va înţelege mecanismul prin care se alege într-un mod imprevizibil la nivelul destinatarului, un anumit mesaj ce urmează a fi transmis. Sursa de informaţii poate furniza o mulţime de mesaje (m), dar la un moment dat ea va alege un anumit mesaj pe care-l va transmite, fără ca destinatarul să cunoască alegerea făcută.

Pentru transmiterea mesajelor la distanţă este necesar un emiţător care realizează trei operaţii: • traducerea, • codarea, • modularea.

Deoarece natura fizică a mesajelor furnizate de o sursă este foarte diversă este necesară transformarea acestor mesaje, cu ajutorul unor traductoare, în semnale electrice sau în semnale uşor de prelucrat ulterior. Operaţiunea se numeşte traducere. În scopul măririi eficienţei transmisiunii şi protejării informaţiei transmise împotriva perturbaţiilor semnalele de la ieşirea traductoarelor sunt transformate în semnale elementare prin operaţiunea de codare. Pentru asigurarea posibilităţii de propagare la distanţă a semnalului tradus şi codat, se generează un semnal de înaltă frecvenţă (purtătoare) care este modulat de informaţia mesajului prelucrat anterior prin procedura de modulare.

Prin canal de transmisiuni se înţelege mediul fizic prin care se poate propaga informaţia (cablul telefonic, cablu telegrafic, cablu coaxial, canal radio, canal TV, cablu optic).

Toate canalele de transmisiuni sunt perturbate de anumite zgomote astfel încât semnalul de la ieşirea canalului (r), este o sumă între semnalul transmis de emiţător (s) şi zgomotul (n) ce apare inevitabil pe orice cale de transmisiune. În transmisiunile binare, zgomotul are caracter aditiv (se sumează binar modulo 2 cu biţii transmişi).

Receptorul (R) realizează operaţiile inverse celor asociate emiţătorului în scopul recuperării informaţiei iniţiale:

• demodularea, • decodarea, • traducerea.

Receptorul (R) trebuie astfel sintetizat, ca din semnalul recepţionat (r) şi pe baza cunoaşterii statisticii a zgomotului ce poate apare pe canal, să estimeze, după un anumit criteriu de fidelitate, ce mesaj a transmis sursa. La ieşirea receptorului se obţine astfel un mesaj care este, cu o anumită probabilitate, similar cu mesajul transmis şi care este numit estimatorul mesajului transmis (m’).

Între m şi m’ există o anumită diferenţă, numită eroare de estimare. Scopul sintezei receptorului este acela de a realiza o eroare de estimare cât mai mică.

Unul din elementele fundamentale într-o reţea de date este canalul de comunicaţie. Un canal de comunicaţie poate fi definit ca o cale de vehiculare a informaţiei în interiorul unei linii, prin linie de comunicaţie înţelegandu-se echipamentul fizic şi configuraţiile aferente utilizate în telecomunicaţii. O linie poate conţine mai multe canale, circuite sau trunchiuri.

Canalele prezintă limitări în ceea ce priveşte posibilităţile de vehiculare a informaţiilor, limitări dependente de caracteristicile lor electrice şi fizice.

În funcţie de posibilităţile de vehiculare direcţionată a datelor, sunt cunoscute trei tipuri fundamentale de canale: simplex, semi-duplex (half-duplex), duplex (full-duplex).

Considerând o legătura de tip "punct la punct" între două puncte, A şi B, avem situaţiile: • -transmisie într-un singur sens, de la A către B, specifice terminalelor de supervizare. Un

astfel de canal este de tip simplex. • -transmisia de la A către B, sau de la B către A, dar alternativ şi nu simultan, defineşte

canalele semi-duplex (half-duplex). În cazul circuitelor care utilizează două fire conductoare, linia trebuie comutată pentru schimbarea sensului de transmisie. Comutarea

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

150

liniei poate fi evitată dacă se utilizează circuite pe patru fire (sau separearea benzilor de frecvenţa în cazul transmisiunilor modulate).

• -transmisia simultana de la A către B şi de la B către A se numeşte transmisie full-duplex sau simplu duplex. De multe ori un canal full-duplex utilizează circuite distincte din punct de vedere fizic (pe patru fire, de exemplu, câte o pereche pentru fiecare sens) dar exista şi posibilitatea unei transmisii full-duplex şi pe un circuit fizic comun (de exemplu prin divizarea spectrului de frecvenţa, creandu-se un canal de transmisie şi un canal de recepţie sau prin utilizarea de radiaţii optice cu lungimi de undă diferite în cazul comunicaţiilor prin fibra optică).

Un caz particular îl constituie transmisia de tip echoplex pe canale full-duplex, care constă în retransmisia înapoi a caracterului recepţionat, efect similar cu ecoul.

Echoplexarea este utilă pentru detectarea şi corectarea erorilor. De exemplu, caracterele tastate de la o tastatură pot fi verificate prin vizualizare pe un monitor, prin redirecţionarea lor de către echipamentul receptor (ecou).

Fig. 5.2. Tipuri de canale de comunicatie

5.4. REŢELE LOCALE

Reţelele locale sunt alcătuite din staţii de lucru conectate la un calculator central numit server. Ele sunt diferenţiate de particularităţile următoarelor elemente:

- mediul de transmisie; - topologie; - tehnica de transmisie; - protocolul de comunicaţie.

5.4.1. Mediul de transmisie

Mediul de transmisie este reprezentat de cablul de transmisie a semnalelor electrice între

calculatoare. Acesta poate fi: - cablul torsadat (răsucit), - cablul coaxial; - fibra optică.

Mediul de transmitere influenţează viteza, calitatea şi securitatea transmisiei. Cablul de fibră optică este cel mai folosit acum pentru că asigură viteze de transmisie între 100 – 1000 Mbps (mega biţi pe secundă) e drept cu costuri de instalare mai ridicate. Prin cablul de fibră optică se pot transmite pe distanţe mari, în condiţii de calitate şi securitate sporite, date, voce, imagini video, fax.

1. Cablul torsadat (răsucit) Unshielded Twisted-Pair (UTP) este mediul de transmisie format din patru perechi de fire, izolate între ele (fig.5.3.a.). Prin torsadarea perechilor de fire apare efectul de anulare, efect ce limitează degradarea semnalelor datorită interferenţelor magnetice sau radio.

UTP-ul este un cablu uşor de instalat (are un diamtru de 0.17”) şi mult mai ieftin decat alte tipuri de cabluri. Deşi este considerat cel mai rapid mediu de transmisie bazat pe cupru, este mai vulnerabil în faţa zgomotelor electrice în comparaţie cu alte categorii de cabluri.

Twisted-pair este în stransă legatură cu topologia fizică stea. Ratele de transfer sunt de 100Mbps şi chiar mai mult. Distanţa maximă între un computer şi componenta centrală (hub) este de regulă de 100m.

Unshielded însemnă că perechile singulare de fire răsucite nu au protecţie proprie. Cablurile UTP sunt destul de sensibile la pertubări. Dacă de exemplu în trunchiul unui cablu sunt mai multe cabluri se poate ajunge la perturbarea transferului de date.

CAPITOLUL 5. REŢELE DE CALCULATOARE

151

STP (Shielded Twisted-pair) înseamnă că fiecare pereche de fire este protejată printr-un înveliş. Tot cablul (toate perechile de fire) au un înveliş protector adiţional. Cablurile STP sunt de aceea mult mai puţin sensibile la perturbări. Datele pot fi tranferate cu rate mari şi pe distanţe mari.

Ecranarea (Screened). Atât UTP cât şi STP există şi în versiunea Sc, care înseamnă că sunt protejate adiţional toate perechile de fire printr-un ecran (screen) din metal au cu o folie de metal (Foiled Twisted Pairs) ce realizeaza ecranajul, atât din exterior cât şi din interior. Notaţiile acestor cabluri sunt ScUTP/FTP şi S/STP. Cablurile torsadate sunt standardizate prin performanţele pe care trebuie să le asigure şi nu prin parametri fizici. În acest sens sunt definite mai multe categorii de performanţă. Acest fapt este un avantaj important deoarece, indiferent de producător, ne aşteptăm la performanţe similare pentru cabluri din aceiaşi clasă. Principale organisme cu atribuţii în domeniul standardizării (ANSI, FCC, EIA) au definit standarde pentru cablare sau pentru elemente de infrastructură dar şi categorii de performanţă pentru cabluri.

Atunci când cablurile TP se folsesc pentru a conecta două echipamente este necesar ca cele două perechi pentru transmisie respectiv recepţie să fie inversate (transmisia unuia să ajungă la recepţia celuilalt), rezultand cablul cross-over (inversor).

Atunci când se folosesc echipamente dedicate de interconectare inversiunea respectivă este realizată în interiorul echipamentului (hub, switch) cablul folosit fiind de tip 1:1 (straight through, cablu direct). Echipamentele moderne au capacitatea de a determina singure perechea emiţătoare respectiv receptoare, funcţie numită Auto-sensing, Auto-MDI/MDI-X, Universal Cable Recognition sau Auto-uplink. În afara cablurilor menţionate există şi varianta roll-over (inversare în oglindă).

Cablurile UTP sunt împărţite pe diferite categorii, oferind informaţii despre proprităţile cablurilor. La cele mai multe categorii sunt folosite patru perechi de fire răsucite.

Există numeroase tipuri de cabluri torsadate, două dintre acestea fiind mai importante pentru reţele. Cablurile UTP din categoria 3 sunt formate din două fire izolate împletite împreună. O variantă mai performantă de astfel de cabluri este categoria 5. Sunt similare celor din categoria 3 dar au mai multe răsuciri pe centimetru şi ar trebui să fie izolate cu teflon, rezultând de aici o interferenţă redusă şi o mai bună calitate a semnalului pe distanţe mari (tabelul 5.1.).

Tabelul 5.1. Comparaţie între caracteristicile diferitelor categorii de cabluri torsadate UTP

Elemente de legatura. Pentru legarea cablurilor twisted-pair la hub, respectiv la placa reţelei,

sunt folosite steckere/cuple RJ-45 (Registered Jack), ca în figura 5.3.b., aseamnătoare cu cele de telefon (RJ-11), sunt însă ceva mai mari şi conţin opt pini de cabluri în loc de patru.

Caseta de distributie (Patch-panel) folosesc la preluarea, legarea şi împărţirea cablurilor, oferă o posibilitate simplă, confortabilă, structurată de a organiza centralizat un număr mare de conexiuni. Elementele de legatură la cablurile de tip 1 şi 2 sunt denumite cupla MIC (Media Interface Connector). Tipul 3 foloseşte RJ-45 si RJ-11.

2. Cablul coaxial subţire (thinnet) (coax) constă dintr-un înveliş protector care îmbracă două elemente conductoare: un fir de cupru îmbrăcat într-un material izolator şi o folie metalică (sau o

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

152

plasă) ce acţionează ca al doilea fir din circuit. Acest al doilea element este folosit pentru a reduce interferenţele externe. Este cablul cu cea mai bună ecranare, însă nu prea se mai foloseşte (cu excepţia reţelelor vechi). Circuitele în cablu coaxial permit o viteză de propagare ridicată care variază foarte puţin cu frecvenţa, ceea ce implică existenţa unor distorsiuni de întarziere reduse. În cazul transmisiunilor binare, debitul binar scade cu creşterea distanţei datorită atenuării semnalului electric. Lungimea maximă de propagare este limitată prin standardele de comunicaţie de timpul de propagare, cu precădere în cazul comunicaţiilor bazate pe cerere şi răspuns.

a. b.

Figura 5.3. Cablul torsadat UTP a. cablu; b. cuple RJ-45. Avantajul cablurilor coaxiale constă în oferirea posibilităţii unor comunicaţii de bandă largă

pe distanţe relativ mari echipamentele fiind conectate la o magistrală unică folosind conectoare adaptoare în forma de T. Aceste conectoare fac ca sistemele conectate să apară ca fiind, unul după altul, în cascadă (figura 5.4.b). Mediul de comunicaţie se comportă ca un ghid de undă şi din acest motiv trebuie asigurată adaptarea de impedanţa la capetele liniei (folosind conectoare de capăt sau terminatoare) dar şi la nivelul punctelor de inserare a echipamentelor de date. Ele a fost folosite iniţial ca medii de transmisie dedicate pentru reţelele de date tip Ethernet, dar treptat au fost înlocuite cu medii de transmisie mai performante.

a. b. Figura 5.4. Cablul coaxial a. cablu; b. cuple BNC.

Principalele dezavantaje ale acestui cablu care a dus la înlocuirea sa aproape totală sunt urmatoarele: este relativ fragil şi fără o rezistenţă mecanică deosebită, are un cost ridicat, o dimensiune a cablului semnificativă (grosime de 1 cm sau mai mult în funcţie de tip) şi nu în ultimul rând dificulatăţile de a asigura adaptarea de impedanţă a magistralei de comunicaţie. Lipsa adaptării de impedanţă determină fenomene de reflexie şi refracţie a undelor electromagnetice. Pentru adaptare la capetele liniei de comunicaţie se folosesc conectoare de capat sau terminatoare. În cazul cablurilor coaxiale utilizate în retelele locale (Ethernet) comunicaţia are loc alternativ în cele două sensuri, fiind astfel de tip semiduplex.

Conectorul folosit de acest tip de cablu se numeşte BNC (British Naval Connector sau Bayone-Neill-Concelman)

3. Fibra optică reprezintă mediul ideal pentru reţelele de mare viteză şi întindere medie şi mică datorită unor avantaje certe date de caracteristicile sale de transmisie. Este nesesară o gama largă de produse în domeniul sistemelor bazate pe fibre optice: cabluri de fibră optică cu diferite performanţe, conectoare specifice, adaptoare, amplificatoare, elemente auxiliare, scule şi truse de scule necesare realizării şi întreţinerii sistemelor şi nu în ultimul rând echipamente de testare specifice.

CAPITOLUL 5. REŢELE DE CALCULATOARE

153

Cablul cu fibră optică este format dintr-un fir de material sticlos numit miez, acoperit cu un înveliş numit manta. Proprietăţile de difracţie ale celor două medii de sticlă sunt diferite. La exterior ele sunt protejate de un înveliş de protecţie.

Fibrele optice pot avea o gamă variată de forme, dimensiuni şi domenii de lungimi de undă transportate. Tipic un cablu cu fibre optice are structura din figura 5.5.

a. b.

c. d.

Figura 5.5. Cablul cu fibre optice a, b cablu; c. conector; d. secţiune. Axa centrală a fibrei este ocupată de către un mediu optic pur care are capacitatea de a

transporta în siguranţă radiaţia luminoasă pe distanţe mari. Cablurile optice conţin grupuri de două sau mai multe fibre. Deoarece fascicolul luminos se propagă de la o sursa către receptor, rezultă că o fibră poate transporta informaţia într-un singur sens. Pentru o transmisie duplex sunt necesare cel puţin două fibre. În cazul în care se utilizează lungimi de undă diferite, două radiaţii luminoase pot călatori pe aceiaşi fibră cu condiţia ca elementele opto-electronice utilizate la emisie şi recepţie să aibă capacitatea de a le separa, ceea ce presupune costuri suplimentare. Mai multe fibre alcatuiesc un cablu optic.

Fibra optică este mediul care asigură transmiterea luminii, modulată la o anumită frecvenţă. Comparativ cu alte medii de transmisie, fibra optică este cea mai costisitoare, dar nu este susceptibilă la interferenţe electromagnetice şi în plus asigură rate de transfer mult mai ridicate decat celelalte categorii de medii.

Cablul fibră optică constă în două fibre de sticlă îmbrăcate separat într-un înveliş de plastic (materialul se numeşte Kevlar). Cele două fibre formează inima acestui mediu de transmisie, sticla din care sunt realizate avand un grad ridicat de refracţie.

Sursa de lumină pentru cablul de fibră optică este o diodă luminescentă; iar datele sunt codificate prin varierea intensităţii luminii. Există două tipuri de cabluri cu fibre optice: mod unic (single mode) şi multimod (multimode). Primul tip are diametrul mai mic, este mai scump şi transmite semnale la distanţe mai mari.

Fibrele optice folosesc ca purtător de informaţie radiaţia electromagnetică din spectrul vizibil 1014 - 1015 Hz. Ele permit o mult mai larga lărgime de bandă şi o capacitate net superioară altor medii de transmisie. Distanţa maximă de transmisie a informaţiei optice depinde de atenuarea fasciculului luminos. Această atenuare depinde la rândul ei de două elemente:

- calitatea radiaţiei luminoase emise (lungime de unda, putere, coerenţă), fiind utilizate trei lungimi de unda: 850 nm, 1300 nm, 1500 nm, - calitatea fibrei optice şi a îmbinărilor acesteia. Performanţa de a transporta radiaţia luminoasă la distanţe mari este determinată de nivelul de

atenuare al fibrei, care a evoluat continuu de la 500 ÷ 1000 dB/km în 1966 la 0.158 dB/km la 1550 nm prin 1986. Atenuarea depinde şi de lungimea de undă a radiaţiei luminoase utilizate, cele mai bune performanţe obtinându-se în banda de 1550 nm.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

154

Diametrul fibrei optice variază de la 5 microni până la câteva sute de microni. În cazul fibrelor optice care au diametrul miezului mult mai mare decât lungimea de undă a luminii transmise, fasciculul luminos circulă prin fibră reflectându-se continuu la suprafaţa de separare dintre miez şi înveliş.

5.4.2. Topologia reţelelor

Topologia unei reţele este percepută în mod uzual ca o reprezentare grafică a geometriei de

interconectare a calculatoarelor, este studiul de aranjament sau cartografierea a elementelor (legături, noduri, etc) dintr-o reţea, în special interconexiunile fizice (reale) şi logice (virtuale) dintre noduri.

O reţea locală reprezintă atât o topologie fizică cât şi o topologie logică. Orice nod în reţeaua locală va avea una sau mai multe link-uri către unul sau mai multe noduri din reţea. Pentru determinarea topologiei fizice a reţelei, toate nodurile şi link-urile sunt reprezentate în formă de graf. De asemenea, reprezentarea fluxului de date dintre noduri în formă de graf determină topologia logică a reţelei. Topologia logică şi fizică pot fi atât identice în orice reţele particulare cât şi diferite. Prin urmare tehnologia reţelei locale este bazată pe teoria grafului.

Tipurile de topologii sunt • fizice, • de semnal şi • logice.

Topologia Point-to-Point este cea mai simplă topologie din această categorie reprezentând o legătură permanentă (link) între două terminaţii (endpoint). Topologiile de tip switched point-to-point sunt modelele de bază a telefoniei convenţionale. Valoarea definitivă a reţelelor point-to-point este o valoare garantată dinte cele două terminaţii. Valoarea conexiunilor de tip on-demand point-to-point este proporţională cu numărul de perechi de potenţialii abonaţi şi a fost exprimată în Legea lui Metcalfe.

a. b. c. d. e. f. g.

Fig. 5.6. Topologia reţelelor a. inel, b. mesh, c. stea, d. linie, e. arbore, f. conectare totală, g. magistrală

Topologia BUS este tipul de topologie de reţea în care toate nodurile reţelei sunt conectate la un mediu comun de transmisie care are exact două terminaţii (endpoints), toate datele care sunt transmise între noduri în reţea este transmis în cursul acestei magistrale comune de transport şi de mediu în aşa măsură ca să fie primite de către toate nodurile din reţea, aproape simultan (fără a ţine seama de întârzieri răspîndite). Cele două terminaţii care fac parte din magistrala comuna de transport şi sunt oprite în mod normal, cu un dispozitiv care se numeşte terminală (terminator). Dispozitivul respectiv absoarbe energia care rămîne în semnal astfel prevenind reflectarea sau propagarea semnalului în direcţia opusă, care poate provoca interferenţă sau chiar poate duce la degradarea semnalului.

Topologia BUS este cel mai simplu mod de a conecta mai mulţi clienţi, dar au adesea probleme când doi clienţi doresc simultan să transmită date pe aceiaşi magistrală. Astfel sistemele care folosesc arhitectura de reţea de tip magistrală au proiectate nişte scheme pentru evitarea coliziunilor de date pe magistrala comună, cel mai des este folosită metoda Carrier Sense Multiple Access (CSMA) care controlează resursele partajate a magistralei comune fiind un protocol Media Access Control (MAC) în care un nod înainte de a transmite informaţia pe magistrala comună verifică prezenţa altui trafic de pe mediul comun de transmisie.

Există următoarele topologii de bază: • topologia magistrală,

CAPITOLUL 5. REŢELE DE CALCULATOARE

155

• topologia inel şi • topologia stea.

Pe baza acestora se construiesc actual reţele cu topologii complexe. Topologia magistrală – BUS, se caracterizează prin aceea că toate nodurile (staţiile) reţelei

sunt interconectate total, un nod putând comunica cu oricare din celelalte noduri ale reţelei (fig. 5.7.a.). Transmisia se face folosind un singur canal fizic numit magistrală – BUS.

Gestiunea comunicării în reţea o asigură server-ul, care este de regulă un PC mai performant decât staţiile de lucru.

Avantajele topologiei BUS: • Uşor de implementat şi de extins, • Necesită mai puţină lungime de cablu decât reţelele stea, • Sunt bine adaptate pentru reţele temporare şi mici care nu necesită viteze mari, în plus

se poate uşor de configurat, • Sunt mai puţin costisitoare deoarece se foloseşte numai un cablu.

a. b. c.

Fig. 5.7. Topologia reţelei, a. magistrală, b. stea (Star); c. Stea extinsă (Extended Star) Dezavantajele topologiei BUS:

• Lungimea cablului este limitată şi la fel numărul de staţii, • Dacă există probleme cu cablul, toată reţeaua se opreşte, • Costurile de întreţinere pot fi mari pe o perioadă lungă de timp, • Performanţa scade dacă sunt conectate prea multe calculatore, • Este necesar terminaţia corectă a semnalului, • Capacitatea de încărcare semnificativă (fiecare tranzacţie trebuie să ajungă la destinaţie) • Lucrează mai bine cu un număr limitat de noduri, • Este mai lentă decît alte topologii, • Dacă un calculator se defectează atunci toată reţeaua se opreşte.

Topologia inel – RING se caracterizează prin aceea că o staţie de lucru este conectată doar cu staţiile vecine. Transmiterea datelor în cadrul inelului se face unidirecţional (topologia este cunoscută şi sub numele de topologie TOKEN – RING).

O astfel de reţea este vulnerabilă deoarece dacă una din staţii se defectează, reţeaua nu mai este funcţională. Deficienţa se elimină prin includerea unui dispozitiv numit HUB cu funcţia de repetor al mesajelor care circulă de la staţia sursă la staţia destinaţie. Prin această modificare topologia inel devine topologie stea-inel.

Presupune conectarea tuturor echipamentelor pe un singur cablu de comunicaţie. Transmisia se derulează într-un singur sens şi este controlată de server. Pachetul de date circulă într-o singură direcţie şi nu pot fi coliziuni de date. Datorită fluxului într-un sens unic, topologia este perfect adaptata fibrelor optice. Fiecare calculator recepţionează datele predecesorului sau le verifica şi le transmite amplificat către calculatorul următor. Fiecare calculator din reţeaua inelară are un predecesor şi un urmaş univoc. Acestă topologie prezintă urmatoarele dezavantaje:

• Dacă se defectează un post de lucru, comunicaţia se întrerupe în întreaga reţea; • Dacă se rupe cablul de comunicaţie se blocheaza reţeaua, dar defecţiunea poate fi uşor

localizată.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

156

Topologia stea - STAR, se caracterizează printr-o conectivitate totală a staţiilor de lucru (fig. 5.7.b). Tipul de topologie de reţea stea este aceea în care fiecare din nodurile de reţea este conectat la un nod central, numit hub sau switch. Toate datele care sunt transmise dintre nodurile din reţea este transmis în acest nod central, care apoi sunt retransmise la unele sau la toate celelalte noduri în reţea. Această conexiune centralizată permite o conexiune permanentă chiar dacă un dispozitiv de reţea iese din funcţie. Singura ameninţare este ieşirea din funcţie a nodului central, care duce la pierderea legăturii cu toată reţeaua.

Avantajele topologiei stea sunt: • performanţă sporită: Trecerea pachetelor de date (data packets) prin noduri inutile este

prevenită de această topologie. Această topologie după sine induce o mare încărcătură asupră nodului central, cu toate acestea dacă acest nod are capacitatea respectivă, atunci o utilizare intensivă de către un dispozitiv din reţea nu va afecta celelalte dispozitive din reţeaua respectivă.

• izolarea dispozitivelor: Fiecare dispozitiv este izolat inerent de către legătura (link) care se conectează la nodul central. Acest lucru face izolarea dispozitivelor individuale destul de simplu, şi permite deconectarea lui în orice moment de la nodul central. Această procedură de izolare previne orice eşec non-centralizat care va afecta toată reţeaua.

Dezavantajele topologiei stea sunt: • Primul dezavantaj este dependenţa sistemului cu privire la funcţionarea nodului central.

În timpul ce eşecul unei legături individuale duce numai la izolarea unui singur nod, pe când defecţiunea nodului central duce la perderea legăturii dintre toate nodurile. Scalabilitatea şi performanţa reţelei tot depind de nodul central. Marimea reţelei este limitată de numărul de conexiuni pe care nodul central poate să le suporte. Traficul dintre un nod şi nodul central este izolat de celelalte, dar dacă un nod din reţea ocupă o parte semnificativă din capacitatea de procesare a nodului central atunci celelalte noduri pot să se confrunte cu scăderea performanţei a reţelei.

Topologia arborescentă (tree) este constituită din mai multe nivele ierarhice de noduri (hub-uri, concentratoare) la care sunt conectate gazdele, rezultând o structură de tip arbore. Având în vedere că de multe ori peste o structură arborescentă de noduri funcţionează o topologie logică de tip inel, uneori acestă topologie este numită inel-stea (ierarhică).

Topologia Mesh reprezintă o reţea total conectată, care este destinată pentru transportarea datelor, instrucţiunilor şi servicii de transport voce prin nodurile de reţea. Datorită acestei topologii putem dispune de conexiuni continue chiar dacă există legături deteriorate sau blocate.

Reţelele mesh fără fir (wireless) este cea mai frecventă topologie folosită în zilele de azi. Aceste reţele au fost dezvoltate iniţial pentru aplicaţii militare, dar au fost supuse unei evoluţii semnificative în ultimii zece ani. Progresul echipamentului de transmisuni de date a permis reţelelor mesh să ofera un larg spectru de servicii cum ar fi client-access, servicii backhaul. Nodurile mesh au devenit mai performante unele modele pot suporta mai multe cartele radio, fiecare operînd la diferite frecvenţe.

Topologii complexe se obţin prin plasarea unor elemente de interconectare suplimentare (hub-uri) pentru optimizarea performanţelor reţelei. Se pot astfel menţiona:

a) topologii cu înlănţuire – daisy chain care se obţin prin conectarea serială a hub-urilor de interconectare a grupurilor de staţii de lucru ale unei reţele mari. Topologia Stea extinsă - Extended Star, se obţine prin cuplarea mai multor reţele în topologia stea (fig.5.7.c.).

b) topologii ierarhice care pot fi în varianta inele-ierarhice, varianta ierarhică-stea sau alte combinaţii de topologii ierarhice.

5.4.3. Tehnica de transmisie

Tehnica de transmisie este o caracteristică absolut inginerească dependentă şi de mediul de

transmitere. Se pot utiliza două metode de transmisie: în bandă de bază şi în bandă largă. Tehnica de transmisie în bandă largă este mai complexă şi asigură viteze mari.

CAPITOLUL 5. REŢELE DE CALCULATOARE

157

Transmisia informaţiei între o sursă şi una sau mai multe destinaţii presupune transferarea datelor, într-un format adecvat, prin intermediul unor semnale de natură electrică, electromagnetică sau optică adaptate canalului de transport disponibil.

Scopul fundamental al unei transmisiuni este acela de a reproduce la echipamentul receptor mesaje cu acelaşi conţinut cu cele care au fost expediate.

Canalul de comunicaţie poate fi privit ca fiind alcătuit din infrastructura de comunicaţie (echipamente) şi mediul aferent de transmitere a informaţiei (semnale electrice pe perechi de conductoare, radiaţii luminoase prin fibra optică, unde radio). Performaneţele unui canal de comunicaţie sunt evaluate în principal prin cantitatea de informaţie care poate fi vehiculată printr-o secţiune a canalului în unitatea de timp, parametru numit lăţime de bandă (bandwidth). În cazul transmisiilor analogice lăţimea de bandă are în vedere intervalul din spectrul de frecvenţe ocupat. La nivelul transmisiunilor digitale evaluarea cantităţii de informaţie transferate se face prin volumul de informaţie logică vehiculată. Laţimea de bandă în frecvenţă este direct corelată cu volumul binar transferat. Din acest motiv, în cazul comunicaţiilor digitale, lăţimea de bandă a unui canal se apreciază prin cantitatea de informaţie binară transferată într-o unitate de timp şi se măsoară în biţi/secundă, bps (bits per second).

În transmisiunile de date se foloseste pe larg termenul throughput (debit util) care se referă la lăţimea de bandă efectivă, la un moment dat, atunci când are loc un transfer de date. Se poate considera că termenul se referă la debitul informaţional net sau la informaţia efectiv transportată în unitatea de timp, fără a lua în considerare şi informaţiile ajutatoare care însoţesc transferul (delimitatori de secvenţă, informaţii necesare pentru identificare/corectarea erorilor, retransmisii etc.). Factorii care intervin în transferul de date şi influenţează lăţimea de bandă efectivă sunt numeroşi, fiind vorba de dispozitivele folosite, tipul de date transferate, topologia reţelei, echipamentul utilizat, numărul de utilizatori sau procese concurente, viteza sursei de date, congestii de transmisie etc. Prin urmare, debitul binar net (throughput) este diferit de rata de transfer a canalului de comunicaţie. Evoluţia calitativă a performanţelor liniilor pentru transmisiuni de date este prezentată în figura 5.8.a.

Evaluarea capacităţii de transport a unui canal de comunicaţie. H.Nyquist a aratat (1924) ca, în cazul transmiterii unui semnal pe un canal de bandă limitată,

în absenţa zgomotelor, este posibilă reconstruirea completă a acestuia prin extragerea unui număr de eşantioane pe secundă egal cu dublul benzii. Eşantionarea cu o frecvenţă mai mare este inutilă deoarece componenetele suplimentare care ar putea fi recuperate au fost deja eliminate prin filtrarea introdusă de canal sau circuit.

Pornind de la acest raţionament şi considerând un semnal având mai multe nivele discrete, Nyquist a demonstrat teorema care îi poartă numele care determină viteza maximă de transfer a datelor printr-un mediu de bandă limitată. Pentru o banda de 3 KHz (banda telefonică vocală) şi un semnal cu două nivele (binar) rezultă o viteză maximă de 6 kbps.

a. b.

Figura 5.8. a. Evoluţia performanţelor liniilor de comunicaţie, b. Utilizarea spectrului de frecvenţă în comunicaţii

Pentru a calcula capacitatea teoretică de transport a unui canal de comunicaţie (viteza maximă), în prezenta zgomotului, se foloseste teorema lui Schannon. Extinzând cercetarile lui

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

158

Nyquist, Claude Schannon a calculat capacitatea maximă de transport a canalului, în b/s pentru un canal ideal caracterizat de o lăţime de bandă şi un anumit raport între puterea de semnal şi puterea de zgomot. Dacă se urmăreşte transmiterea de date pe un canal telefonic de bandă limitată 300-3400Hz, pe baza formulei lui Schannon se obtine o capacitate a canalului de 39,6 Kbps. Modemurile uzuale de linie telefonica lucrează cu viteze tipice de 33.6 kbps.

O astfel de transmisie se numeşte transmisie în bandă de bază. Numărul de modificări în unitatea de timp ale formei de undă folosită pentru semnalizare este aceiaşi ca în secvenţa de succedare a biţilor.

În cazul în care sistemul funcţionează cu mai multe nivele de semnal, se operează cu noţiunea de rată de semnalizare (sau rata simbolurilor sau viteza de modulaţie), care se defineşte ca numărul simbolurilor transmise în unitatea de timp şi care se masoară în [Bauds] sau [Bd] (dupa Emile Baudot). Semnificaţia fizică a ratei de semnalizare este numărul de schimbări (de nivel sau de altă natură) ale semnalului. Deşi formula lui Schannon determină capacitatea teoretică a unui canal, în practică capacitatea scade şi datorită altor factori, ca interferenţa dintre două simboluri transmise consecutiv, numită interferenţa intersimbol.

Mediile ghidate de transmisie utilizate în mod curent pot fi grupate în două mari categorii: medii ghidate şi medii neghidate.

Mediile ghidate sunt cele care oferă o cale de propagare în afara căreia semnalul nu poate să existe într-o forma utilizabilă, rămânând dependent de mediu.

Principalele medii ghidate de transmisie sunt: • transmisiuni pe cabluri coaxiale • transmisiuni pe cabluri cu perechi de conductoare torsadate

- ne-ecranate: UTP (Unshielded Twisted Pairs) - ecranate: STP (Shielded Twisted Pairs), ScUTP (Screened UTP) sau FTP (Foiled

Twisted Pairs) • transmisiuni pe fibră optică:

- multimod - monomod

• transmisiuni prin ghiduri de undă Transmisiunile neghidate sunt cele la care propagarea nu este restricţionată la un spaţiu fizic,

înţelegând-se de obicei prin aceasta propgarea în aer liber. Principalele medii de transmisie neghidate sunt:

• undele radio • microunde • radiaţia laser • radiaţia infraroşie

Principiul transmisiei cu fibră optică, cabluri optice. Sistemele de comunicaţie cu fibre optice au o importanţă din ce în ce mai mare în transmisia şi prelucrarea datelor deoarece oferă o serie de avantaje suplimentare comparativ cu sistemele bazate pe transmisia informaţiei pe cale electronică. La sistemele optice semnalele sunt transmise sub forma de lumină (fotoni), fără sarcină electrică, şi de aceea nu sunt afectate de câmpuri electrice cum sunt cele ce apar în echipamentele de tensiune înaltă sau în timpul descărcarilor electrice. Similar, câmpurile magnetice, cum sunt cele produse de motoare şi transformatoare, nu au efect asupra transmisiei optice. Nu există probleme de interacţiune între canale învecinate de comunicaţie, deoarece fluxul luminos foarte redus ce s-ar pierde din fibra optică este reţinut în învelişul opac din jurul fibrei, asigurând că semnalele optice nu interferă chiar dacă fibrele sunt foarte apropiate una de cealalta. Lipsa oricărei pierderi de semnal din fibră spre exterior asigură şi o securitate perfectă a transmisiei, fiind imposibilă măsurarea semnalului din exteriorul fibrei.

Natura fibrei optice asigură că aceasta poate funcţiona în orice condiţii atmosferice şi poate fi imersată în majoritatea fluidelor. Masa, dimensiunile reduse şi rezistenţa mecanică ridicată sunt utile în majoritatea aplicaţiilor. Izolarea electrică perfectă este un avantaj evident, oferind o libertate

CAPITOLUL 5. REŢELE DE CALCULATOARE

159

mai mare în proiectarea emiţătorului, a liniei de transmisie şi a receptorului, eliminând şi necesitatea buclelor de împământare.

Avantajul cel mai important este însă banda de frecvenţe mai ridicată şi pierderile de transmisie mai reduse. La orice cablu coaxial sau paralel banda de frecvenţe variază invers proportional cu pătratul lungimii, in timp ce la fibra optica aceasta variaza doar invers proporţional cu lungimea. Rezultă posibilitatea unor lungimi mari de tronson de fibră optică. Se remarcă o capacitate mare de transmisie şi viteze mari de transfer.

Energia luminoasă se propagă în interiorul fibrei optice într-un număr finit de configuraţii. Fiecare configuraţie, numită mod, are propriile proprietăţi de propagare. Fibra optică ce permite folosirea mai multor moduri de propagare poartă denumirea de fibră multimodală.

Pentru întelegerea corectă a modului de utilizare şi a parametrilor caracteristici ai fibrelor optice este necesară o întelegere corectă a modului de funcţionare. Fibra optică transmite lumina pe principiul reflexiei interne totale. Razele de lumină ce ajung la suprafaţa de separaţie dintre două medii optic transparente cu densităţi diferite suferă o refracţie, schimbându-şi direcţia.

Fibra multimod. Transmisiunea multimod este datorată propăgării unui grup de fascicule luminoase emise de către un LED. Un LED nu este o sursă de lumină foarte concentrată, fasciculul emis având o împrăştiere mare şi prin urmare necesită o cale de transmisie optică destul de largă. Această rată de dispersie impune limitele maxime ale lungimii efective a fibrei optice. Datorită dispersiei modale doar o parte din energia emisă va fi recuperată la recepţie, transmisiunile multimod sunt predispuse unor atenuări importante. Aceste limitări le fac utilizabile în special pe distanţe scurte unde oferă un raport preţ/performanţă rezonabil. Fibra optică tipică utilizată în mod obişnuit în reţelele de calculatoare are diametrul de 62,5 microni şi ofera suport pentru comunicaţii multimod comandate de un LED. Tipic se ating viteze de 100Mbps pe distanţe de 10Km şi 1Gbps pe 1Km.

Fibra monomod. Dacă diametrul miezului fibrei este doar de câteva ori mai mare decât lungimea de undă a luminii transmise, va fi favorizată propagarea a doar unui singur fascicol (sau mod) şi nu va apărea nici o interferenţă între raze. Aceste fibre, numite fibre monomod, sunt mediile utilizate în majoritatea sistemelor de transmisie. Fibra monomod utilizează o diodă laser cu injecţie (ILD – Injection Laser Diode). Laserele sunt binecunoscute pentru fasciculele lor extrem de focalizate şi coerente. Şi aceste raze suferă dispersii dar acestea sunt aproape insesizabile pe distanţele din domeniul reţelelor LAN. Într-un sistem de fibre optice monomod fasciculul laser transportă informaţia în lungul fibrei, reflexiile fiind nesemnificative. Prin urmare, fascicolul purtator transmis rămane aliniat cu axa centrală a fibrei de-a lungul întregului drum prin mediul respectiv. Utilizarea diodelor laser presupune costuri mai ridicate şi necesită stabilizarea puterii emise cu temperatura, dar permite obţinerea unor rate de transfer ridicate, limitate în principiu doar de proprietăţile de comutaţie ale fotodetectorului (uzual la aproximativ 1 sau 10 Gbps), distanţele acoperite fiind de ordinul zecilor sau sutelor de km. Fibrele optice monomod au în general un diametru între 5 şi 10 microni şi un strat protector de 125 de microni. La distanţe de 60 Km se pot atinge viteze de 1Gbps, iar la 10 Km 6 Gbps.

Transmisiuni prin ghiduri de undă. Un ghid de undă este un tub metalic cu o secţiune determinată şi prin care se propagă unde radio de înaltă frecvenţa. Există două tipuri principale de ghiduri de undă: rectangulare şi circulare. Ghidurile de undă rectangulare sunt utilizate pentru racordarea antenelor la echipamentele asociate, rareori fiind utilizate pentru distanţe mai mari de câteva sute de metri. Ghidurile circulare pot transmite frecvenţe superioare celor rectangulare, structura fiind protejată de un înveliş de oţel şi rigidizată cu răşini epoxidice. Structura permite atenuarea modurilor de propagare nedorite. Interiorul ghidului de undă este uneori presurizat cu aer uscat sau cu azot pentru a elimina umiditatea din mediul de propagare care ar putea atenua microundele.

Medii neghidate de transmitere a informaţiei se referă la undele radio (inclusiv domeniul microundelor), radiaţiile laser şi radiaţiile infraroşii. Transmisiunile care utilizează semnale purtatoare sub 1GHz sunt considerate în mod curent transmisiuni radio, iar cele peste 1GHz sunt transmisiuni prin microunde.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

160

A. Transmisiuni radio. Transmisiunile ghidate necesită existenţa unui mediu de propagare intrinsecă (conductoare, fibre optice, ghiduri de undă). În practică este necesară de multe ori depăşirea unor obstacole naturale ceea ce a determinat utilizarea undelor electromagnetice radio ca suport de transmisie. Undele radio au avantaje importante datorită posibilităţi de propagare prin aer sau vid, pot transporta date, pot traversa obstacole. Ele sunt utilizate atât pentru transmisii terestre cât şi pentru transmisii prin satelit atunci când se urmăreşte conectarea unor zone greu accesibile.

Undele electromagnetice sunt caracterizate de frecvenţă şi lungimea de unda (lambda). Viteza de propagare a undelor electromagnetice (viteza luminii) în vid este cunoscută şi este de 3 x 108 m/s. Aşadar cunoscând frecvenţa se poate determina lungimea de undă şi invers. Un semnal cu frecvenţa de 2,4 GHz, frecvent utilizat în comunicaţiile radio, va avea de exemplu o lungime de unda de 12,5 cm. În figura 5.8.b. este reprezentata maniera de identificare a undelor radio în spectrul electromagnetic.

B. Transmisiuni prin microunde. Legăturile de comunicaţie care folosesc microunde suportă sute de canale de comunicaţie tip voce, date sau televiziune, capacitatea lor fiind însă inferioară cablurilor coaxiale. Spectrul de frecvenţe alocat este cuprins între 1 GHz şi 15 GHz. Datorită directivităţii lor microundele sunt afectate mai puţin de interferenţe, dar necesită vizibilitate directă între punctul de emisie şi cel de recepţie. Luând în calcul curbura pământului, pentru antene situate la înalţimea de 100m, distanţa acoperită este de 80 km. Microundele necesită relee intermediare pentru retransmisie situate uzual la distante de 30-50km şi cu vizibilitate directă între antenele acestora. Sunt necesare mai puţine amplificatoare intermediare decât în cazul cablurilor coaxiale (care necesită amplificare la fiecare 2-6 km), motiv pentru care sunt preferate pentru transmisiunile TV la mare distanţă.

C. Transmisiuni Laser. Transmisiile bazate pe laser într-un mediu LAN fără fir pot fi considerate ca fiind similare cu cele care folsesc fibre optice la care lipseşte cablarea prin fibre optice. Mai multe staţii se pot interconecta cu o unitate de acces care transmite şi recepţionează semnale laser în numele unui grup de staţii. Când laserele sunt utilizate în acest mod, dispozitivele laser trebuie să fie plasate în zone cu vizibilitate optică (de obicei aproape de plafon), cât mai departe posibil de interferenţe şi obstacole. Laserele pot fi utilizate şi pentru a interconecta reţele LAN cablate, aflate la distanţe de maximum câteva sute de metri. În cazul utilizării transmisuinilor laser in aer liber trebuie avute în vedere posibilele interferenţe atmosferice (particole de apă, ceaţă, fulgi de zăpadă) care determină fenomene optice ce pot altera fasciculul. Comunicaţiile care folosesc ca suport de transport radiaţia laser care se propagă în aer liber are o utilizare foarte restransă, o alternativă mult mai fiabilă rămânând însă transmisunile radio.

D. Transmisiuni în infraroşu. Aceasta tehnologie de transmisie fără fir, în infraroşu, utilizează ca suport de transmisie domeniul de frecvenţe situat la limita vizibilă a spectrului electromagnetic. Chiar dacă fasciculele de radiaţii infraroşii nu pot penetra solide opace, ele pot fi reflectate de acestea. Există două tehnologii uzuale: infraroşu difuzat şi infraroşu direct.

Infraroşu difuzat sau indirect, cu redirectare, bazat pe reflectarea pe suprafeţe interioare (când distanţa este mare, semnalul poate fi recepţionat numai parţial (este nesigur), se referă la emiterea unei radiaţii infraroşii omnidirectional, acoperind astfel zona de interes în care se află receptorii. Tehnologia în infraroşu constă în tramsmiterea unui fascicul direcţionat către o destinaţie. Zona deservită este limitată la conul de acoperire iar puterea necesară la emisie este mai redusă, deoarece radiaţiile sunt focalizate (prin sisteme optice) evitând difuzarea semnalului în afara zonei de interes. Acest principiu este utilizat la telecomenzile celor mai multe dispozitive electronice casnice, dar şi pentru conectări unidirecţinale pe distanţe scurte: tastatura fără fir, mouse fără fir, porturi IrDA (Infrared Data Association).

5.4.4. Protocoale de comunicaţie Datele se comunică de la un nod sursă al reţelei la nodul destinaţie conform unui set de reguli

precise, standardizate pe plan mondial cunoscut sub denumirea de protocol de comunicaţie. Şirul

CAPITOLUL 5. REŢELE DE CALCULATOARE

161

de biţi care reprezintă datele ce se transmit pe canal se încapsulează alături de un grupaj de biţi ce servesc pentru adresare şi regrupare la destinaţie. Acest tren de biţi se numeşte cadru sau frame.

Protocolul de comunicaţie stabileşte dimensiunea, structura, manipularea şi controlul cadrelor care se transmit pe reţea.

Pentru a se asigura compatibilitatea conectării şi comunicaţiei la nivelul reţelei şi între reţele pe lângă standardizarea protocoalelor a mai fost necesară şi o standardizare în plan hardware şi software astfel încât structura ierarhică pe nivele de comunicaţie în reţea să fie unanim acceptată şi implementată identic de toată lumea.

5.4.4.1. Modelul de referinţă ISO/OSI

Conectarea şi comunicaţia într-o reţea de calculatoare respectă o propunere dezvoltată de

Organizaţia Internaţională pentru Standarde. Modelul OSI (Open Systems Interconnection) propune o soluţie de conectare a sistemelor

deschise. El a fost elaborat de către Organizaţia Internaţională de Standarde (ISO - International Standards Organization) între 1977 şi 1994.

Proprietatea de "open" (deschis) a unui sistem se referă la faptul că sistemul este pregătit pentru comunicaţii cu orice alt sistem din reţea fiind "deschis" pentru schimburi informaţionale cu alte gazde, pe baza unor regului (protocoale de comunicaţie). Modelul ISO/OSI este structurat pe şapte nivele ierarhice. Fiecare nivel are un grad de abstractizare şi funcţii bine definite. Funcţiile asociate fiecarui nivel sunt reflectate în standarde de comunicaţie specifice. Această ierarhie de protocoale de comunicaţie se numeşte şi stivă de protocoale.

Transferul informaţional între două aplicaţii presupune parcurgerea întregii stive de protocoale într-un sens la sursă şi în sens invers la destinaţie. Cele şapte nivele propuse de modelul ISO/OSI sunt prezentate în firgura 5.12.

Fig 5.12. Modelul conceptual de referinţă ISO/OSI

Propunerea este cunoscută ca modelul ISO/OSI – RM, Open System Interconection Reference Model pentru arhitectura reţelelor deschise. Până la apariţia sa modelul uzual al arhitecturii reţelelor a fost modelul TCP/IP, care coexistă încă în multe aplicaţii.

Diferenţierea pe 7 nivele propuse de standardul ISO/OSI a fost necesară din considerente tehnologice şi pentru individualizarea componentelor software de reţea. Un nivel al unui sistem nu poate dialoga decât cu nivelul similar al celuilalt sistem, respectând regulile protocolului de comunicaţie. Protocolul de comunicaţie va conţine componente specializate pe nivele, şi anume protocol la nivel aplicaţie, protocol la nivel prezentare, protocol sesiune si pentru sistemul de legătură va funcţiona protocolul reţea, legătură date şi la nivel fizic.

Pe verticală interfaţa dintre două nivele adiacente asigură operaţiile primitive şi serviciile utilizate de nivelul superior. La nivelul de bază se face efectiv o comunicare fizică dar la celelalte niveluri comunicarea pe interfaţă este o comunicaţie virtuală care utilizează semnalul nivelului fizic.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

162

Nivelul fizic realizează transmisia impulsurilor electrice utilizând un anumit mediu de comunicaţie, cablu torsadat, coaxial sau fibră optică, o anumită tehnică de comunicaţie şi o reţea de transmisie. La acest nivel nu se face verificarea corectitudinii datelor.

Nivelul reţea asigură dirijarea cadrelor prin reţea, determinându-se pentru fiecare cadru calea de urmat de la nodul sursă la nodul destinaţie. Cadre adiacente pot urma trasee diferite, urmând ca mesajul original să fie recompus la destinaţie.

Nivelul transport asigură secvenţializarea şi transmiterea corectă a datelor, sincronizează ritmul de transmitere şi asigură retransmiterea cadrelor pierdute sau eronate.

Nivelul sesiune asigură conexiunea logică între două staţii prin iniţierea, desfăşurarea şi la sfârşit închiderea unui dialog în timpul căruia se comunică mesaje specifice unei aplicaţii.

Nivelul prezentare asigură transformarea mesajelor în formatul convenabil terminalelor care le vor afişa.

Nivelul aplicaţie asigură serviciile de bază ale reţelei: transferul de fişiere, accesul de la distanţă, Telnet, poşta electronică, accesul Web.

Protocoale de comunicaţie Comunicarea informaţiilor calculator-calculator sau calculator server se poate realiza în două

moduri: - fără conexiune, similar transmiterii unei scrisori; - cu conexiune, similar convorbirii telefonice. Comunicarea fără conexiune este numită şi serviciu de „datagram”. Datagram este un mesaj fără confirmare. Dacă se doreşte totuşi confirmarea, receptorul

trebuie să trimită el un mesaj explicit. Comunicarea cu conexiune este numită şi serviciu „sesiune”, care presupune o conexiune

logică pentru confirmarea apelului, derularea transmisiei şi închiderea sesiunii. Cele mai cunoscute protocoale utilizate pentru comunicaţia în reţea şi pe care le vom comenta

pe scurt sunt protocoalele: IPX/SPX, TCP/IP şi NETBIOS/NETBEUI. a) protocolul IPX/SPX Protocolul, sau mai corect stiva de protocoale IPX şi SPX au fost dezvoltate de firma Novell

ca standard de reţea pe baza protocolului XNS – Xerox Network Systems, pe care firma Rank Xerox la folosit la prima generaţie de reţele LAN cu topologie BUS cunoscute ca reţele EtherNet.

IPX - adică Internetworking Package Exchange, este un protocol orientat pe mesaje tip datagram utilizat pe gestiunea mesajelor PC – PC.

SPX - Sequenced Package Exchange, este orientat pe comunicarea cu conexiune asigurând transmiterea mesajelor în orice sens între calculatoarele conectate la aceeaşi reţea LAN .

IPX/SPX include patru din cele şapte straturi specificate de standardul ISO/OSI: aplicaţie, internetworking, legătura de date, şi accesul la mediul fizic permiţând o bună funcţionalitate.

b) protocolul TCP/IP Pentru comunicarea pe Internet la ora actuală practic toate sistemele de operare folosesc

familia de protocoale TCP/IP – Tansmition Control Protocol / Internet Protocol. Protocolul a fost dezvoltat de Departament of Defence din SUA într-o arhitectură ierarhică, spre deosebire de standardul ISO /OSI care are o arhitectură stratificată. Dacă standardul ISO/OSI este mai adecvat mecanismelor de interconectare a calculatoarelor, protocolul TCP/IP se dovedeşte a fi cel mai adecvat protocol pentru interconectarea reţelelor, deci şi pentru interconectarea reţelelor LAN în reţele MAN şi WAN. Cele două grupe de protocoale TCP şi respectiv IP realizează funcţii diferite dar corelate.

Nivelul aplicaţie conţine protocoale TCP pentru accesul la distanţă, partajarea resurselor şi pentru aplicaţii uzuale ca Telnet, SMTP–Simple Mail Transfer Protocol, HTTP şi altele.

Nivelul transport are rolul de a transporta datele de la un nod central la altul. Nodurile centrale se numesc „calculatoare HOST” sau gazdă. La acest nivel pe lângă protocolul TCP se foloseşte şi protocolul UDP - User Datagram Protocol.

CAPITOLUL 5. REŢELE DE CALCULATOARE

163

Nivelul reţea sau internetworking asigură conectarea reţelelor prin intermediul protocolului IP. Acesta asigură separarea şi identificarea datagramelor, adresarea în Internet, circulaţia datelor, direcţionarea lor către calculatoarele aflate la distanţă etc.

Calculatoarele conectate la aceeaşi reţea LAN pot comunica local utilizând protocoale dedicate, de exemplu:

- X.25 pentru reţele cu comutare de mesaje; - X.21 pentru reţele cu comutare de pachete; - IEEE.802.x pentru reţele locale având topologii diferite.

c) NETBIOS/NETBEUI Sistemul de operare cel mai răspândit pentru reţele Windows NT are capacitatea de a separa

serviciile de reţea de protocoalele de comunicaţie, fapt ce permite beneficiarilor să aleagă dintre protocoalele de comunicaţie dorite TCP/IP, IPX/SPX şi mai recent NETBEUI. Acest lucru este posibil datorită componentei NETBIOS – Network Basic Input/Output System creat în 1984 de IBM.

Microsoft introduce suplimentar conceptul NETBEUI – Netbios Extended User Interaface pentru diferenţierea în cadrul protocolului Netbios a funcţiilor cu care se operează la nivelul protocolului de acces de funcţiile cu care se operează la nivelul serviciilor de reţea, îmbunătăţire care aduce o mai bună flexibilitate configurării comunicaţiilor din reţea. In cadrul acestui protocol este disponibil şi sistemul SMB – System Message Blocks care implementează o serie de servicii de partajre a fişierelor, imprimantei şi alte servicii utilizator la nivelul aplicaţiei.

5.4.4.2. Modelul client – server

Iniţierea şi derularea schimbului de mesaje în reţelele de calculatoare actuale se desfăşoară

după noul model client - server. Clientul este reprezentat de aplicaţia sau mai simplu de programul care rulează pe staţia de

lucru a utilizatorului. De exemplu, OUTLOOK EXPRESS este o aplicaţie client. Clientul adresează o cerere către server.

Serverul trebuie văzut ca o colecţie de programe care rulează de regulă pe un alt calculator decât clientul. Condiţia este ca aplicaţia client să cunoască adresa de server. Dacă reţeaua este o reţea complexă cu mai multe servere atunci clientul este preluat mai întâi de un server de nume.

Serverul identifică şi rezolvă cererea clientului trimiţându-i înapoi acestuia rezultatul prelucrării. În exemplul anterior, OUTLOOK EXPRESS va primi de exemplu lista mesajelor din cutia poştală Inbox aflată pe serverul de e-mail.

Complexitatea cererilor a crescut datorită performanţelor intrinseci ale serverelor tot mai puternice şi software-ul tot mai specializat. Se asistăm la o diferenţiere a serverelor pe funcţii, astfel că o conectare se va realiza după caz la un:

- File Server; - Database Server; - Communication Server ; - E-Mail Sever; - Application Server; - Printer Server. Modelul client - server se poate implementa în diverse variante în funcţie de particularităţile

mediului tehnologic al reţelei. 5.4.5. Echipamente de interconectare Problemele de interconectare a calculatoarelor, a reţelelor LAN, MAN şi WAN sunt

determinate de creşterea numărului de staţii dintr-o reţea şi din faptul ca platformele hardware şi software ale reţelelor care se interconectează sunt diferite.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

164

Standardul ISO/OSI rezolvă tocmai aceste probleme permiţând utilizarea de dispozitive hardware care să asigure cerinţe diferitelor nivele ale structurii de interconectare.

Dispozitivele şi nivelurile la care sunt utilizate sunt următoarele: • nivelul 1, fizic – repetoare; • nivelul 2, legătură date – punţi; • nivelul 3, reţea – rutere; • nivelul 4, transport – pasarele; • nivelul 5 şi mai sus, - porţi de acces aplicaţie.

Repetoarele sunt cunoscute şi sub denumirea de HUB-uri. Ele se folosesc în cazul unor trasee prea lungi de cablare. Printr-un hub trec toate cablajele unei reţele LAN. Hub-ul funcţionează ca un repetitor şi distribuitor de semnale electrice sau optice ce reprezintă copii ale şirurilor de biţi care se transmit între diferite segmente de cablu de reţea.

Punţile – bridge, sunt echipamente care asigură conectivitatea la nivelul legăturii de date a două reţele care pot avea topologii diferite, de exemplu o reţea Ethernet cu o reţea TokenRing. Ele au în componenţa lor microprocesoare şi utilizează rutine software dedicate.

Comutatoarele – switch-uri, sunt asemănătoare hub-urilor, utilizând componente hardware pentru comutarea mesajelor între reţele cu viteze diferite. Ca şi punţile, comutatoarele operează la nivelul 2 ISO/OSI, dar au performanţe tehnice mai mari, ceea ce la fac mult mai eficiente. De exemplu una din facilităţi o constituie transmisia de tip full-duplex, deci în ambele sensuri ale canalului de comunicaţie, un mare avantaj pentru creşterea vitezei de lucru a reţelei.

Routere, sunt componente inteligente, chiar PC-uri, care lucrează la nivelul 3, asemănătoare conceptual cu bridge-urile. Router-ul dispune de un software care pe baza unor algoritmi de dirijare transmite pe rute optime datele între reţele. Rutele individuale modifică ordinea de sosire a cadrelor, acestea fiind rearanjate în final pentru a putea fi transferate corect la nivelul superior.

Pasarele de transport – transport gateway, se utilizează pentru interconectarea reţelelor ce folosesc protocoale de comunicaţie diferite. De exemplu ISO/OSI şi TCP/IP.

Pasarelele de acces / aplicaţie – application gateway, ca şi pasarelele de transport asigură compatibilitatea comunicaţiei între reţele care folosesc protocoale distincte dar sunt ceva mai puţin performante decât acestea. Ele permit staţilor de lucru dintr-o reţea să acceseze resursele unei aplicaţii aflate pe un server la distanţă.

Reţea backbone – coloană vertebrală, sunt reţele specializate pentru interconectarea unor reţele LAN individuale, care pot opera apoi în paralel pentru comunicarea cu exteriorul, evitându-se congestionările pe reţea. Administrarea reţelei, adăugarea, eliminarea unor staţii din reţea se face cu mai multă uşurinţă.

Ziduri de protecţie – FireWalls, sunt destinate prevenirii virusării şi accesării neautorizate a reţelei. Un zid de protecţie este alcătuit din două routere pentru filtrarea mesajelor (pachetelor) şi o poartă de acces de aplicaţie. Alături de criptarea datelor, zidurile de protecţie au menirea de a spori securitatea datelor care circulă mai ales prin reţeaua Internet.

Conectarea a două calculatoare pe linie telefonică Transmiterea informaţiilor digitale pe linie telefonică se poate face numai prin interpunerea

unui echipament de modulare-demodulare între cele două calculatoare, bine cunoscutul modem. La destinaţie, modemul pereche reconverteşte semnalul vocal într-un şir de biţi. Protocoalele

SLIP şi PPP sunt indispensabile pentru utilizarea unui modem. Aceste protocoale permit transmiterea pe linie serială a pachetelor IP.

Protocolul SLIP- Serial in Line Internet Protocol utilizează un mecanism simplu de încadrare a datagramelor şi transmiterea lor pe linia serială. Datagramele, sub forma şirurilor de biţi sunt încadrate de caractere speciale care punctează începutul şi sfârşitul datagramei SLIP nu face

controlul şi corecţia transmisiei. El poate fi utilizat numai pentru datagrame IP. Protocolul PPP – Point to Point Protocol asigură transmisia datagramelor pe legături seriale

punct la punct. Indiferent de protocolul utilizat calculatorul se comportă aproape la fel ca orice nod Internet, având acces la serviciile interactive: Telnet, FTP, WWW, E-mail. Serviciile Internet sunt acum disponibile şi prin telefonia mobilă.

CAPITOLUL 6. PACHETUL MS OFFICE

165

CAPITOLUL 6

PACHETUL MS OFFICE

6.1. GENERALITĂŢI

Microsoft Office sau MS Office este o suită de programe de birou create de firma Microsoft Corporation, care sunt însoţite şi de o aplicaţie specială suprapusă lor pentru accesarea unitară simplă.

Versiunile de MS Office până la MS Office 2003 inclusiv folosesc nativ formate de fişier binare, proprietare, cu extensiile ".doc" (pentru Microsoft Word), ".xls" (Microsoft Excel), ".ppt" (Microsoft PowerPoint), etc. Începând cu MS Office 2007 s-a trecut la un format bazat pe XML, incompatibil înapoi (cu versiunile mai vechi), numit Office OpenXML (OOXML).

Microsoft a înaintat la organizaţia ISO o propunere de standardizare a formatului Office OpenXML (OOXML) - propunere care încă nu a fost adoptată, deoarece a primit critici serioase d.p.d.v. tehnic.

Principalul competitor de piaţă al formatelor de fişier Microsoft este formatul "OpenDocument Format" (ODF), care a fost adoptat ca standard oficial ISO în anul 2006 (standardul ISO/IEC 26300:2006). Formatul OpenDocument este folosit de o categorie largă de programe, cum ar fi suita liberă OpenOffice.org, Sun StarOffice, IBM Lotus Notes sau KOffice.

Totuşi, utilizatorii de MS Office pot utiliza şi fişierele de format OpenDocument, cu condiţia să instaleze plugin-ul gratuit ODF, creat de firma Sun Microsystems.

Încă de la primele versiuni ale sale Microsoft Office a fost localizat (adaptat şi tradus) în limba română. Prima versiune localizată a fost Office '97, care a beneficiat de utilitarele de corectare şi de ajutor în română, deşi meniurile şi casetele de dialog nu fuseseră încă traduse. Office 2000, Office XP, Office System 2003 şi Office System 2007 au fost complet localizate în limba română.

Pentru ultima versiune sunt comercializate mai multe forme care conţin dotări diferite: Office Basic, Office Standard, Office Home, Office Small Business, Office Professional, Office Professional Plus¸ Office Entreprise.

Pachetul de programe Microsoft Office conţine mai multe aplicaţii: • Microsoft Word; • Microsoft Power Point; • Microsoft Outlook; • Microsoft Excel; • Microsoft Access.

1. Procesorul de texte Word este un program puternic pentru prelucrarea textelor şi organizarea lor sub forma de tipăritură: comunicări, broşuri, etc.

2. Programul de grafică Power Point permite realizarea prezentărilor pentru retroproiector, proiecţii utilizând calculatorul.

3. Programul pentru gestionarea foilor de calcul Excel este un program care permite prelucrarea datele sub formă de tabele şi reprezentarea lor grafică.

4. Sistemul de gestiune a bazelor de date Access este un program specializat în construirea şi încărcarea bazelor de date şi conţine proceduri de consultare şi interogare rapida a datelor înregistrate.

5. Aplicaţia Outlook permite organizarea corespondentei şi planificarea activităţilor într-o agendă. Folosirea aplicaţiilor din pachetul Microsoft Office are următoarele avantaje:

• Aplicaţiile lucrează folosind aceleaşi concepte şi metode. • Aplicaţiile comunică între ele prin intermediul aceloraşi proceduri şi nu apar probleme de

incompatibilitate. Aplicaţiile din pachetul Microsoft Office prezintă următoarele avantaje:

• Sistemul de meniuri conţine pentru toate aceste 5 aplicaţii aceleaşi 9 meniuri verticale: File, Edit, View, Insert, Format, Tools, Table / Date / Draw, Window, Help.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

166

• Folosesc aceleaşi taste scurtături (shortcut) pentru opţiunile comune din meniuri: Ctrl + C pentru Copy, Ctrl + N pentru New, etc. • Informaţiile suplimentare despre fişierele de date administrate de fiecare aplicaţie sunt

aceleaşi. • Folosesc rigle pentru poziţionarea mai uşoară a fişierului de date.

Aplicaţiile Microsoft Office dispun de instrumente de ajutor sub formă de: • Proceduri expert _ Wizard sunt instrucţiuni prin care sunt realizate fişiere de stare de date

complexe; • Previzualizări – Previews, arată pe ecran aspectul fişierului de date aşa cum vor fi listate

la imprimantă; • Demonstraţii – Demos arată, la cerere, cum trebuie procedat la execuţia unei lucrări mai

complexe. Microsoft Office Professional 2007 este o suită completă de programe software de productivitate

şi de baze de date, care ajută la economisirea timpului şi lucrul organizat. Are caracteristicile noi, ca meniuri îmbunătăţite care afişează instrumentele corecte atunci când sunt necesare, bare de instrumente noi, bazate pe activităţi, care afişează automat comenzile şi opţiunile care se pot utiliza, facilitând şi accelerând găsirea caracteristicilor software-ului necesare. Caracteristica Examinare în direct facilitează probarea modificărilor înainte ca acestea să fie aplicate.

Office Professional 2007 are următoarele avantaje: - meniuri şi comenzi îmbunătăţite, care prezintă instrumentele necesare atunci când trebuie; - are programul Căutarea instantanee; - are filtre îmbunătăţite pentru corespondenţa nedorită (şi anti-înşelăciune). - crează documente, foi de calcul şi prezentări cu aspect profesionist, gata pentru publicare,

fără timp pierdut pentru formatări şi stilizări; - cu activităţi în Microsoft Office Outlook 2007 pot să apară şi în calendar; - există o nouă bară de operare Office Outlook 2007, care oferă o prezentare a activităţilor,

informaţiilor de calendar şi a mesajelor de poştă electronică semnalizate pentru urmărire; - există noi şabloane şi instrumente din Word 2007 care facilitează reutilizarea conţinutului,

aplicarea formatărilor profesioniste şi examinarea rapidă a modificărilor; - apar noi instrumente din Excel 2007 pentru filtrarea, sortarea şi vizualizarea informaţiilor,

pentru analiza mai eficientă datelor de afaceri; - se pot centraliza toate informaţiile de contact, de prospectare şi despre clienţi - inclusiv

istoricul comunicărilor, valoarea estimată a vânzărilor, probabilitatea încheierii tranzacţiilor şi activităţile - utilizând Office Outlook 2007 cu Business Contact Manager;

- se pot înregistra într-un singur loc toate tipurile de comunicări cu fiecare client - inclusiv poşta electronică, apelurile telefonice, întâlnirile, notele şi documentele;

- se pot estima vânzările şi stabili prioritatea activităţilor, utilizând tabloul de bord particularizabil din Office Outlook 2007 cu Business Contact Manager;

- se poate lucra offline pe laptop sau pe PDA şi apoi să sincroniza datele la revenirea la birou; - se pot urmări într-un singur loc informaţiile legate de proiect (lucrare) - inclusiv poşta

electronică, întâlnirile, notele, activităţile şi documentele - şi atribuiţi cu uşurinţă persoane de contact, clienţi şi activităţi altor persoane, utilizând Office Outlook 2007 cu Business Contact Manager;

- există o bibliotecă de aplicaţii predefinite de urmărire a bazelor de date pentru cele mai uzuale procese de afaceri care este inclusă în Office Access 2007;

- se pot gestiona bazele de date Office Access 2007 mai intuitiv, utilizând interfaţa utilizator Microsoft Office Fluent şi noua vizualizare foaie de date, care se aseamănă cu Excel;

- se pot crea rapoarte în Office Access 2007 printr-un singur clic şi utiliza instrumente îmbunătăţite pentru a filtra, sorta, grupa şi subtotaliza date;

- se pot sintetiza informaţiile şi găsi informaţiile necesare utilizând vizualizările PivotTable şi PivotChart, utilizând Office Excel 2007.

Pachetele lingvistice Office se adresează nevoilor persoanelor care utilizează mai multe limbi şi care creează sau editează în mod regulat documente şi prezentări în limbi diferite. Ele ajută organizaţiile care implementează aplicaţii de birou în medii în care PC-urile sunt partajate de vorbitori

CAPITOLUL 6. PACHETUL MS OFFICE

167

de limbi diferite sau ajută firmele să ofere servicii clienţilor din ţări diferite. Pachetele lingvistice furnizează flexibilitatea de comutare a întregii experienţe a utilizatorului, incluzând meniurile şi ajutorul sau utilizarea numai a instrumentelor de verificare, cum ar fi verificatorul ortografic, dicţionarul şi lexiconul în oricare dintre 37 de limbi diferite.

Instrumentele de verificare a documentelor includ: Verificatoare ortografice, Verificatoare gramaticale şi de stil, Lexicoane, Despărţitori în silabe, Liste de autocorecţie, Capacităţi de rezumare automată, Dicţionare de traducere, Editori metodă de intrare (IME) pentru limbile est-asiatice.

Se pot schimba limba interfeţei cu utilizatorul pentru următoarele programe 2007 Microsoft Office System: Microsoft Office Word 2007, Microsoft Office Access 2007, Microsoft Office Excel 2007, Microsoft Office Groove 2007, Microsoft Office InfoPath 2007, Microsoft Office OneNote 2007, Microsoft Office Outlook 2007, Microsoft Office PowerPoint 2007, Microsoft Office Project 2007, Microsoft Office Publisher 2007, MS Office SharePoint Designer 2007, MS Office Visio 2007.

În plus, meniurile şi ajutorul pentru instrumentele suitei Microsoft Office 2007, cum ar fi Clip Organizer, Document Imaging, Document Scanning şi Picture Manager, se localizează când se activează pachetele lingvistice.

Pachetele lingvistice Office se pot conecta la şabloane gratuite Office Online în limba interfeţei cu utilizatorul. Şabloanele Office Online sunt uşor de instalat, adaugă proiectări predefinite şi resurse pentru afaceri la aplicaţii şi documente.

O colecţie a tuturor pachetelor lingvistice Office plus un pachet lingvistic în limba engleză este disponibilă ca Microsoft Office Multi-Language Pack 2007.

Pe lângă limbile de bază, instrumentele de verificare a documentelor sunt incluse pentru limbi suplimentare însoţitoare.

Toate elementele pachetului MS Office prezintă îmbunătăţiri semnuficative faţă de versiunile anterioare.

În continuare se vor trece în revistă principalele elemente ale pachetului MS Office şi caracteristicile semnificative ale acestora, indiferent de versiunea abordată.

6.2. EDITORUL DE TEXTE – WORD

Pentru prelucrarea simplă a textelor pot fi folosite editoarele de texte Notepad şi Word pad

care se găseşte în folder-ul (dosarul) Accessories. Fişierele cu texte au extensia cu .txt. Acest sistem de lucru este mai puţin folosit în prezent.

Pentru prelucrarea documentelor, care implicit conţin şi texte, se foloseşte cu precădere programul Microsoft Word, ce poate fi activat după clicare cu mouse-ul a butonului Start şi apoi a butonului Microsoft Ofice/Programs şi în final activarea butonului Microsoft Word.

Aşa cum s-a prezentat mai sus, cele 9 meniuri verticale utilizate de Microsoft Word sunt:

• Files, care conţine opţiuni pentru lucrul cu fişierele pe care le creează şi le actualizează programul; • Edit, care conţine opţiuni pentru operaţii de editare; • View, care conţine opţiuni pentru prezentarea după dorinţă a paginii de lucru pe ecran; • Insert, asigură introducerea anumitor date, paginaţii etc.; • Format, care asigură formatarea şi aşezarea paragrafelor în cadrul paginii; • Tools, care conţin o serie de facilităţi pentru lucrul cu documentele; • Table, folosit pentru realizarea de tabele; • Window, asigură facilităţi de folosirea ecranului; • Help, pentru asigurarea de informaţii suplimentare, la cerere, de folosirea programelor

windows.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

168

Lucrul cu fişierele Word

A. Pornirea aplicaţiei Word se realizează funcţie de versiunea ce o avem la dispoziţie pe calculator. Se porneşte sistemul de operareWindows 95, 98, NT, me, , XP, Vista, apoi se urmează paşii:

1. Clic butonul Start de pe taskbar 2. Se alege Programs, Microsoft Word.

Elementele principale ale ferestrei Word apar pe ecran. Fereastra Aplicaţiei Word 2000 se afişează cu un document blank ca în figura de mai jos.

B. Închiderea aplicaţiei Word Din meniul File se selectează comanda Exit, sau se apasă butonul Close de pe bara de titlu a

aplicaţiei( figurile de mai sus). C. Crearea unui nou document (fişier) Sunt mai multe variante:

1. Ctrl+N sau butonul New din bara de instrumente standard. 2. Din meniul File se alege opţiunea New. 3. Se face clic pe Start şi din meniu se alege opţiunea New Office Document.

D. Deschiderea unui fişier Sunt mai multe variante:

1. Ctrl+O sau butonul Open din bara de instrumente standard. 2. Din meniul File se alege opţiunea Open. În primele două variante paşii sunt:

• Apare caseta de dialog Open; se selectează discul unde se află fişierul şi directorul. • Se scrie numele fişierului in caseta File Name, sau se alege din listă. • Se execută clic pe Open.

3. Se execută clic pe butonul Start şi din meniu se alege opţiunea Open Office Document. E. Deschiderea unui fişier recent folosit

Se mai poate deschide un fişier aflat în lista celor mai recente fişiere deschise (din meniul File): 1. Se deschide meniul File. 2. Din lista cu denumirile fişierelor (în partea de jos a meniului), se selectează fişierul ce

trebuie deschis (dacă de la ultima deschidere, fişierul a fost mutat sau şters, Word-ul nu îl va putea deschide).

CAPITOLUL 6. PACHETUL MS OFFICE

169

Pentru schimbarea numărului de fişiere din listă, se selectează Tools, Options, General; se scrie

un alt număr în lista Recently Used File şi această opţiune trebuie să fie bifată.

F. Deschiderea fişierelor din Windows Explorer

Paşii sunt: 1. Se execută clic-dreapta pe butonul Start. Din meniul rapid desfăşurat se alege opţiunea

Explore 2. În fereastra Windows Explorer se localizează fişierul; 3. Se execută dublu-clic pe denumirea lui.

G. Deschiderea fişierelor editate în alte formate Pot fi deschise cu Word-ul fişiere editate cu WordPerfect, Works, Write, Outlook Address Book,

Excel, Lotus 1-2-3, alte versiuni de Word, fişiere text, fişiere HTML. Datele pot fi uşor importate prin deschiderea cu Word-ul a fişierului respectiv şi salvarea fişierului ca document Word.

Paşii sunt: 1. Se deschide meniul File, din care se alege opţiunea Open; 2. În fereastra Open în lista Files of Type se selectează tipul fişierului; 3. În lista Look In se alege directorul unde se află fişierul; 4. Se selectează fişierul din listăşi se execută clic pe Open.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

170

5. Tipul de deschidere a unui fişier poate fi: deschidere propriu-zisă (Open), forma Read-Only (Open Read-only), deschiderea unei copii (Open as Copy), deschiderea în browser (Open in Browser).

H. Vizualizarea rapidă a fişierelor înainte de deschidere Fereastra Open poate fi folosită pentru o vizualizare a documentului înainte de a fi deschis.

Paşii sunt: 1. File , Open 2. În lista Look In se selectează discul şi directorul unde se află fişierul. 3. Se execută clic pe săgeata din dreapta butonului View pentru a se desfăşura un meniu

din care se alege opţiunea Preview. 4. Fereastra Open este împărţită în două sectoare. În cel stâng este lista fişierelor din

directorul dorit. Prin selectarea fişierului ce se doreşte a se deschide, în panoul drept apare o imagine a conţinutului fişierului.

I. Căutarea fişierelor

Un fişier poate fi căutat după nume, extensie, după informaţiile introduse la Summary. Paşii sunt:

1. File, Open, Advanced 2. Din lista Property se alege proprietatea după care se face căutarea; în lista Condition se

alege condiţia, iar în lista Value se scrie valoarea 3. În lista Look In se scrie calea către fişier; pentru căutare şi în subdirectoare, se bifează

opţiunea Search Subfolders 4. Clic butonul Add to List; se pot adăuga criterii suplimentare de căutare 5. Se apasă butonul Find Now; toate fişierele ce îndeplinesc criteriile date, vor apare în

listă, în fereastra Open Pentru salvarea informaţiilor folosite pentru o căutare, se apasă butonul Save Search, se dă un

nume căutarii respective; OK. J. Vizualizarea proprietăţilor fişierelor

Paşii sunt: 1. Pentru vizualizarea proprietăţilor fişierului deschis, din meniul File se alege Properties. Va

apare fereastra cu proprietăţile fişierului deschis. 2. Pentru vizualizarea proprietatilor fisierelor de pe disc: se deschide fereastra Open şi se

execută clic pe butonul View . Din meniul desfăşurat se alege Properties. Atunci în

CAPITOLUL 6. PACHETUL MS OFFICE

171

sectorul drept al ferestrei se va afişa un sumar al proprietăţilor fişierului selectat. Pentru un fişier care este deja deschis nu se vor afişa proprietăţile.

3. Tot din fereastra Open din meniul desfăşurat de la butonul Tools se alege opţiunea

Properties. Va apare aceeaşi fereastră separată de proprietăţi ca şi la deschiderea din meniul File.

4. În fereastra Open se poate realiza clic-dreapta pe fişierul dorit şi se desfăşoară un meniu rapid din care se va alege opţiunea Properties.

K. Ştergerea fişierelor

Paşii sunt: 1. Din meniul File se alege opţiunea Open sau se acţionează direct butonul Open de pe

bara de instrumente standard. 2. Din lista Look In se selectează discul şi directorul unde se află fişierul. 3. Se execută clic-dreapta pe numele fişierului; se alege comanda Delete din meniul

desfăşurat sau se acţionează butonul Delete . Un fişier deschis nu poate fi şters. 4. În fereastra de mesaj Confirm File Delete se alege Yes pentru confirmarea ştergerii.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

172

L. Închiderea fişierelor

Paşii sunt: 1. Pentru închiderea unui document se apasă butonul Close de pe bara de titlu sau se foloseşte

comanda Close din meniul File sau combinaţia de taste Ctrl+F4. Pentru închiderea tuturor documentelor deschise, se ţine apăsată tasta Shift apoi se alege comanda Close All din meniul File.

2. Dacă au fost operate schimbări în document, de la ultima deschidere sau salvare, la comanda Close apare o fereastra de dialog cu opţiuni de salvare a schimbărilor; se apasă Yes pentru salvare, No pentru închidere fără salvarea schimbărilor, Cancel pentru reîntoarcerea la document.

M. Salvarea fişierelor Numele sub care sunt salvate fişierele (calea completă şi numele fişierului) pot conţine până la

255 de caractere; nu pot conţine următoarele caractere: /, \, >, <, *, ., ?, “, |, :, ;. Fişierul salvat va avea extensia .DOC.

Paşii sunt: 1. Din meniul File se alege opţiunea Save As sau Save 2. La prima salvare a documentului, apare fereastra de dialog Save As. 3. În caseta Save In se selectează discul şi directorul unde va fi salvat fişierul 4. În caseta File Name se va denumi fişierului apoi se apasă butonul Save. 5. Pentru salvarea aceluiaşi document cu un alt nume, se alege Save As din meniul File; în

continuare, se urmează paşii de mai sus şi se redenumeşte fişierul. 6. Pentru salvarea fişierului în alt format, din lista Save As Type se alege tipul dorit.

Dacă fişierul a fost o dată salvat şi ulterior au fost aduse completări sau modificări şi se doreşte salvarea acestuia în noua formă, se va alege din meniul File opţiunea Save sau se va acţiona direct

butonul Save din bara de instrumente standard.

N. Salvarea automată a fişierelor Word-ul permite salvarea automată a documentului la care se lucrează, la un interval specificat.

Paşii sunt: 1. În meniul Tools se alege Options; 2. Se va deschide fereastra Options în care se va acţiona pe eticheta Save;

CAPITOLUL 6. PACHETUL MS OFFICE

173

3. Se bifează opţiunea Save AutoRecover info every şi se trece numărul de minute în caseta Minutes;

4. Se execută clic pe OK. O. Crearea automată de copii ale fişierelor Word-ul poate crea o copie a fişierului la fiecare salvare a sa (copia va fi un fişier cu extensia

WKP, plasat în acelaşi director cu originalul). Paşii sunt:

1. În meniul Tools se alege Options; 2. În fereastra Options se bifează opţiunea Always create backup Copy; 3. Se execută clic pe OK.

P. Schimbarea directorului implicit pentru fişierele Word Paşii sunt:

1. Din meniul Tools se alege Options; 2. În fereastra Option se acţionează pe eticheta File Locations; 3. În lista File Types se alege Documents şi se acţionează butonul Modify; 4. În fereastra Modify Locations, în caseta Folder name se scrie calea completă pentru

directorul care va apare implicit în ferestra de deschidere şi de salvare a documentelor; 5. OK

R. Vizualizarea documentelor înainte de printare

Print Preview permite vizualizarea aranjamentului paginilor documentului, înainte de a fi tipărit. Bara de instrumente Print Preview conţine butoane pentru mărire şi pentru vizualizarea mai multor pagini. Documentul poate fi editat în modul de vizualizare Print Preview.

• Butonul Magnifier măreşte porţiunea de document unde se execută clic cu mouse-ul, pentru o mai bună vizualizare.

• Butonul Shrink to Fit (dacă documentul e puţin mai mare decât o pagină) permite înghesuirea conţinutului pe o pagină.

• Butonul Multiple Pages permite vizualizarea în acelaşi timp a mai multor pagini.

Comutarea la modul de vizualizare individuală se face cu butonul One page . • Cu ajutorul butonului Zoom putem stabili procentual gradul de vizualizare.

• Butonul Print trimite documentul la imprimantă. • Butonul Close închide modul de vizualizare Print Preview.

S. Imprimarea documentelor Paşii sunt:

1. Din meniul File se alege opţiunea Print; 2. Apare fereastra Print; în lista Name se alege numele imprimantei folosite; 3. Se execută clic pe butonul Properties pentru vizualizarea ferestrei cu opţiunile

imprimantei alese; se fac modificările dorite şi se acţioneză pe OK; 4. Din fereastra Print se aleg opţiunile pentu imprimarea documentului: Din lista Print What se alege:

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

174

• Styles pentru imprimarea caracteristicilor stilurilor folosite în document • Key Assignments pentru imprimarea combinaţiilor de taste atribuite macrourilor

create • Document Properties pentru imprimarea proprietăţilor documentului • Comments pentru imprimarea comentariilor inserate în document • AutoText pentru imprimarea textelor ce pot fi inserate automat

În caseta Number of Copies se scrie numărul de exemplare; În secţiunea Page Range se alege:

• Current Page pentru imprimarea paginii pe care se află cursorul • Pages pentru imprimarea mai multor pagini; în caseta alăturată se scriu numerele

paginilor; exemplu: 1- 3 pentru imprimarea paginilor:1, 2, 3; 1, 3 pentru imprimarea paginilor:1, 3; 1-3, 5 pentru imprimarea paginilor:1, 2, 3,5

5. OK.

T. Adăugarea de informaţii despre fişier Pentru fiecare document creat pot fi introduse şi alte informaţii opţionale care să descrie fişierul

respectiv, pe lângă numele, mărimea şi data fişierului. Paşii sunt:

1. Din meniul File se alege Properties; 2. Se deschide fereastra Properties în care se acţionează pe eticheta Summary; în această

fereastră se pot scrie: • în caseta Title - titlul documentului • în caseta Subject – o scurtă descriere a conţinutului fişierului adică subiectul;

(pentru o descriere mai lungă a documentului), • autorul, în caseta Author (numele celui care a creat fişierul), • categoria de subiecte din care face parte, în caseta Category; • în caseta keywords - cuvinte cheie după care să se facă căutarea fişierului; • comentarii (scurte informaţii pentru o căutare mai uşoară a documentului, sau

pentru alte persoane ce lucrează cu documentul respectiv), în caseta Comments.

CAPITOLUL 6. PACHETUL MS OFFICE

175

• Este afişat şi numele şablonului pe care e bazat documentul, în caseta Template.

3. Butonul Statistics afişează o fereastră cu informaţii despre data creării documentului, a

modificării, a printării şi a accesării lui; cine l-a salvat ultima oară, numărul de revizii. 4. Butonul Contents afişează o fereastră cu părţi din fişier.

5. Butonul Custom afişează o fereastră în care se selectează un nume de câmp din lista Name,

apoi se alege tipul de informaţie ce se stochează în câmp; dacă tipul e număr, trebuie introdusă o valoare de la 1 la 9 în câmpul Value.

6. Toate modificările aduse în aceste ferestre se certifică cu butonul OK. U. Gruparea documentelor folosind Microsoft Binder Mai multe fişiere create în Word, Excel, ori PowerPoint, având acelaşi subiect, pot fi grupate cu

ajutorul aplicaţiei Microsoft Binder din grupul Office. Paşii sunt:

1. Deschiderea aplicaţiei de la butonul Start, se intră în meniul Programs şi se alege Microsoft Office Tools şi mai departe Microsoft Binder.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

176

2. În fereastra numită Binder 1 se deschide meniul Section şi se alege Add from File .Apare o nouă fereastră în care se pot selecta unul sau mai multe documente care se vor doresc a se grupa. Se acţioneză butonul Add.

3. După adăugarea tuturor documentelor, în fereastra Binder 1, deschidem meniul File şi selectăm opţiunea Save Binder As. În noua fereastră se va alege calea unde va fi salvată şi va fi denumită gruparea de fişiere, ce se comportă ca un alt fişier.

4. Pentru printarea tuturor fişierelor din grupare: File, Print Binder Când este editat un document din fişierul Binder, schimbările vor fi salvate doar în acest document,

nu şi în original.

V. Şabloane Şabloanele sunt fişiere ce conţin părţi dintr-un document şi aranjamente specifice unui anumit

tip de document; pot conţine text, imagini, grafice, formatare, stiluri, macrouri, câmpuri, meniuri personalizate, combinaţii de taste pentru anumite comenzi. Ataşarea unui şablon la document

Paşii sunt: 1. Se deschide documentul 2. Din meniul Tools se alege opţiunea Templates and Add-Ins. Apare fereastra cu acelaşi

nume. 3. Acţionând butonul Attach apare fereastra Attach Template; se selectează discul şi

directorul unde este fişierul şablon, apoi se selectează şablonul. Dacă se doreşte folosirea stilurilor din şablon, se bifează opţiunea Automatically Update Document Styles.

X. Crearea de documente şablon Paşii sunt:

1. Se deschide documentul File, Save As; în caseta de opţiuni Save as Type se selectează Document Template

2. Şablonul va fi salvat în directorul unde sunt toate şabloanele; poate fi salvat şi în alt director

(numele directorului reprezintă numele butonului din fereastra New) 3. Se scrie numele fişierului în caseta File Name şi se acţioneză Save.

Y. Crearea unui document bazat pe un şablon Paşii sunt:

1. Din meniul File se selectează New. Se selectează opţiunea Template şi apoi tipul de document ce se doreşte a fi creat ca şablon.

2. Se acţionează butonul OK.

CAPITOLUL 6. PACHETUL MS OFFICE

177

Dacă se crează un document nou prin combinaţia de taste Ctrl+N sau executând clic pe butonul

New din bara de instrumente standard, nu va fi afişată ferestra New; noul document va fi bazat pe şablonul normal.

Z. Editarea documentelor şablon Paşii sunt : 1. Din meniul File se selectează Open sau se acţionează direct butonul din bara de instrumente

; 2. În fereastra Open se va selecta şablonul si se execută clic pe comanda Open; 3. Se deschide şablonul în care se operează schimbările dorite; 4. Salvarea şablonului se realizează ca şi în cazul oricărui fişier Office: din meniul File cu Save

as, când şablonul va fi salvat cu un alt nume; dacă se doreşte salvarea lui cu acelaşi nume, se foloseşte opţiunea sau butonul Save.

W. Help Paşii sunt :

1. Pentru a obţine mai multe informaţii despre un buton sau o linie de meniu se apasă butonul din bara de instrumente standard sau combinaţia de taste Shift+F1 sau se alege opţiunea

What is This? din meniul Help. Cursorul mouse-ului işi modifică forma cu simbolul indicat pe buton.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

178

2. Se executClic pe butonul sau linia de meniu pentru care se doreşte ajutor; va apare o fereastră cu explicaţii

3. Clic în fereastra documentului pentru a o îndepărta de pe ecran. AA. Help: Conţinut şi Index În orice loc poate fi accesat Help-ul pentru a da asistenţă, a arăta definiţii sau sfaturi pentru

realizarea anumitor acţiuni mai repede. Facilităţile Contents şi Index din fereastra Microsoft Word Help dă informaţii detaliate despre un subiect.

Paşii sunt: 1. Din meniul Help se alege opţiunea Microsoft Word Help; 2. În fereastra care se deschide alegeţi unul dintre subiectele expuse sau tastaţi în casetă

întrebarea. 3. Se execută Clic pe butonul Search. 4. În următoarea fereastră care va apare executând clic pe butonul show se vor vizualiza şi

butoanele Contents şi Index; 5. Inchiderea ferestrei Help se face cu butonul Close.

Se foloseşte butonul Index, dacă se doreşte vizualizarea unor cuvinte specifice care sunt aranjate într-un index.

AB. Tipărirea informaţiilor furnizate de Help Paşii sunt :

1. Din fereastra Microsoft Word Help Se alege butonul Print sau

2. Sau din meniul desfăşurat de la săgeata butonului Options se alege comanda Print; 3. Se pot face modificări în caseta de dialog Print; se execută clic pe OK; 4. Close.

AC. Căutarea de subiecte Când nu se ştie unde pot fi găsite explicaţiile despre un anumit subiect, se poate proceda astfel:

1. Din meniul Help se alege opţiunea Microsoft Word Help sau se execută clic pe butonul din

bara de instrumente standard 2. În fereastra What would you like to do?, în caseta de text se scrie cuvântul care trebuie

căutat; 3. Se va acţiona butonul Search; 4. Sau din fereastra Microsoft Word Help, la Index puteţi tasta un cuvânt cheie (keyword) sau

puteţi alege deja unul dintr-o listă;

CAPITOLUL 6. PACHETUL MS OFFICE

179

5. Search.

AD. Asistentul Office Este o altă facilitate a Office-ului ce furnizează sfaturi, informaţii; este un program interactiv ce

furnizează ajutor în timpul lucrului. Poate fi închis pentru a dispare de pe ecran: se execută clic pe butonul-dreapta pe Office

Assistant şi se alege din meniu opţiunea Hide. Pentru specificarea condiţiilor în care să apară asistentul: se execută clic pe butonul-dreapta pe

Office Assistant şi se alege opţiunea Options. În această fereastră se vor bifa cele ce se doresc. Pentru a se schimba aspectul asistentului: clic pe butonul-dreapta pe Office Assistant şi se alege

opţiuneaChoose Assistant. Defilarea se va face cu butoanele Next si Back şi pentru confirmarea alegerii se activează butonul OK.

AE. Explicaţii pentru butoanele de pe bare Word-ul afişează pentru fiecare buton etichete explicative numite Screentips atunci când cursorul

este în dreptul lor Pentru a activa/dezactiva opţiunea Screentips se vor urma paşii:

1. Din meniul View se alege opţiunea Toolbars şi mai departe Customize;

2. În fereastra Customize se alege Options şi se bifează / debifează opţiunea Show Screentips; 3. Close

6.3. MICROSOFT EXCEL XP Programul Miscrosoft Excel este un program complex ce combină calculul tabelar cu

prelucrarea bazelor de date, prelucrări grafice şi diagrame. Astfel, programul Excel este util pentru: - organizare datelor şi prezentarea de rapoarte în forma dorită; - realizarea calculelor, de la cele simple până la cele statistice complexe; - încorporarea de imagini şi adnotări; - stabilirea de legături între mai multe foi de calcul; - crearea şi prelucrarea bazelor de date. Lansarea în execuţie a programului Excel se face cu opţiunea Microsoft Excel din submeniul

Programs al meniului Start sau cu ajutorul unei scurtături de pe Desktop (dacă există). De asemenea programul Excel este încărcat la deschiderea oricărui document Excel – adică fişier cu extensia xls.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

180

Fereastra Excel seamănă destul de mult cu cea a programului Word. Există însă şi diferenţe legate de unele butoane şi mai ales de organizarea documentului pe linii şi coloane.

Un document Excel se numeşte registru sau caiet de lucru (workbook) şi e format din mai multe foi de lucru (Worksheets), la început trei. Fiecare foaie de lucru e împărţiră în linii şi coloane. Coloanele sunt marcare cu litere mari (A - IV), iar liniile sunt numerotate (1 – 16384). La intersecţia unei linii cu o coloană se formează o celulă. Celula este unitatea de prelucrare a programului Excel.

Spre deosebire de Word, barele de derulare sunt un pic mai complexe. În partea stânga-jos a

ferestrei există patru butoane suplimentare pentru derulare: , pentru deplasare la începutul foii de lucru, o poziţie la stânga, o poziţie la dreapta şi respectiv deplasare la sfârşitul foii de lucru.

Operaţii cu fişiere document Operaţiile cu fişiere în Excel se fac identic cu cele cu fişiere document în Word, cu opţiuni

din meniul Fişier (File). Operaţiile cu fişiere document sunt:

1. Crearea unui nou document – se face cu opţiunea Nou (New) din acest meniu sau cu butonul din bara de instrumente sau cu scurtătura Ctrl+N.

2. Deschiderea unui document salvat pe disc – se face cu opţiunea Deschidere (Open) sau cu butonul sau cu combinaţia de taste Ctrl+O. Se deschide o casetă de dialog în care putem alege documentul dorit dintr-o listă.

3. Închiderea documentului fără a închide programul Word se face cu opţiunea Închide sau cu butonul de închideri a ferestrei document (nu a ferestrei Word).

4. Salvarea documentului pe disc – se face cu opţiunea Salvare (Save) sau Salvare ca (Save As) sau cu butonul sau cu scurtătura Ctrl+S. La prima salvare a unui document sau dacă folosim Salvare ca se deschide o casetă de dialog în care putem alege numele şi locul de salvare a documentului. De asemenea, tot aici se poate proteja documentul cu o parolă prin opţiunea Opţiuni de securitate (Security Options) a meniului Instrumente (Tools) (din caseta de dialog Salvare ca).

De asemenea pot fi folosite butoanele din bare de instrumente

A. Selectarea celulelor Butoanele pe care sunt marcate denumirile coloanelor şi respectiv numerele liniilor sunt folosite

pentru a selecta o coloană întreagă şi respectiv o linie întreagă. Acest lucru se face cu click stânga. Cu un click pe butonul din stânga sus (deasupra liniei 1 şi în stânga coloanei A) sau cu Ctrl+A

sau cu Crtr+Shift +Space se selectează toate celulele. O celulă poate fi selectată cu click pe ea sau deplasând celula activă (cea cu marginea îngroşată)

cu săgeţile de pe tastatură până la celula dorită.

CAPITOLUL 6. PACHETUL MS OFFICE

181

O zonă dreptunghiulară de celule poate fi selectată cu „drag and drop” pe o diagonală a dreptunghiului. Selectarea unor celule sau grupuri de celule neconsecutive sau nealăturate se face selectându-le pe rând în timp ce se ţine tasta Ctrl apăsată.

B. Introducerea de informaţii în celule Celula este unitatea de informaţie pentru Excel şi una dintre cele mai importante operaţii este

introducerea datelor în celule. Datele de introduc întotdeauna în celula activă (selectată). O celulă poate conţine o valoare constantă (numerică, şir de caractere) sau o formulă care începe

întotdeauna cu semnul =. Introducerea unei valori constante se face se la tastatură sau prin copierea unei valori cu o

succesiune Copy – Parte exact ca în Word. O operaţie importantă este formatare conţinutului celulei. Aceasta se face cu opţiunea Celule

(Cells) din meniul Format (Formatare). Ca observaţie, în mod normal o celulă conţine informaţia pe un singur rând. Dacă dorim să

scriem un text pe mai multe rânduri selectăm în caseta deschisă mai sus opţiunea Wrap Text.

Introducerea unei formule înseamnă definirea valorii din celulă ca rezultat al unei operaţii. O

formulă poate fi introdusă de la tastatură. Formula este o succesiune operand-operator care începe şi se termină cu operanzi. De multe ori în calcule sunt necesare valorile din celelalte celule. Ele pot fi folosite doar scriind adresa lor în formulă. Pe scurt, adresa unei celule este formată din numele liniei urmat de numărul coloanei pe care se află celula. Vom aprofunda noţiunea de adresă mai târziu.

Un alt mod de construire a unei formule e următorul: 1. selectăm celula în care vrem să scriem formula 2. tastăm semnul = 3. selectăm prima celulă care va intra în calcul 4. tastăm operatorul dorit 5. selectăm următoarea celulă 6. repetăm paşii 4 şi 5 de câte ori e necesar 7. apăsăm tasta Enter

Astfel, se calculează automat valoarea şi e scrisă în celulă. Operatorii folosiţi în celule sunt cei aritmetici: +, - , *, / , % (procent), ^ (ridicare la putere), cei

relaţionali: <, >, <=, >=, =, <> (diferit). Ordinea lor de aplicare este cea cunoscută din matematică. Pe lângă aceştia există şi operatorul & pentru concatenarea (lipirea) de şiruri de caractere.

Să revenim acum asupra adreselor. Putem adresa o celulă cum am văzut mai sus sau un grup alăturate (sub formă de dreptunghi) de celule scriind adresa celulei din colţul stânga sus şi cel al celulei din colţul dreapta jos separate prin semnul : , de exemplu A2:B4.

Există trei tipuri de adrese: 1. Adrese relative

Adresa relativă indică formulei cum să găsească celula pornind de la celula care conţine formula. Adresa relativă unei celule e formată din numele liniei urmat de numărul coloanei.

Sunt cel mai des utilizate pentru că permit extinderea unor formule la alte celule. DE exemplu dacă în celula C1 avem formula =A1+B1, dacă copiem formula în C2 suma va fi =A2+B2, în C3 va fi =A3+B3, etc. Acest lucru se poate face cu „drag and drop” pe colţul dreapta-jos al celulei C1. Aceasta este o facilitate importantă de editare prin care putem la fel să umplem mai multe celule cu aceeaşi valoare sau cu valori consecutive sau care se pot obţine printr-o regulă simplă, de exemplu.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

182

Adrese absolute Adresele absolute spun poziţia exactă a celulei în foaia de lucru şi se scriu cu semnul $ înaintea

coloanei şi înaintea liniei (exemplu $E$3). O operaţie de felul celor de mai sus nu modifică formula. 2. Adrese mixte

Adresele mixte spun cum să fie găsită o celulă combinând cele două tipuri de adrese de mai sus (exemplu $A2, A$2).

La introducerea unei formule, în celulă e afişată valoarea calculată cu acea formulă, iar în bara de formule e scrisă formula. Modificarea poate fi făcută doar în această bară de formule.

Copierea unei formule cu o succesiune de comenzi Copy – Paste are ca rezultat copierea

formulei. Dacă adresele folosite sunt relative atunci ele se modifică în funcţie de locul unde am copiat formula.

Dacă programul Excel afişează într-o celulă o valoare precedată de semnul #, atunci ea e greşită şi înseamnă că formula sau datele din ea nu sunt corecte.

Ştergerea informaţiilor din celule se face selectând celulele si apoi cu tasta Delete. Ştergerea celulelor (nu doar a informaţiilor din ele) se face cu opţiunile submeniului Ştergere

(Delete) din meniul Editare (Edit): - (Shift Cells Left) şterge celulele şi le deplasează pe cele rămase spre stânga - (Shift Cells Up) şterge celulele şi le deplasează pe cele rămase în sus - (Entire Row) şterge o linie şi le deplasează pe cele de mai jos cu o poziţie în sus - (Entire Column) şterge o coloană şi le deplasează pe cele din dreapta spre stânga

C. Operaţii de căutare Programul Excel permite căutarea unei valori şi eventual înlocuirea ei cu alta. Aceste operaţii se

realizează în caseta de dialog Găsire şi înlocuire (Find and Replace) care se deschide cu opţiunea Găsire(Find) sau Înlocuire (Replace) din meniul Editare (Edit).

Ea este o casetă de dialog cu o secţiune pentru căutare şi una pentru căutare şi înlocuire. În ele se

precizează textul căutat şi cu ce să se înlocuiască, precum şi opţiunile de căutare (doar celule întregi, diferenţierea sau nediferenţierea literelor mici de cele mari) şi cum să se facă căutarea (pe rânduri sau pe coloane). Căutarea se lansează cu butonul Următorul găsit (Find Next), iar înlocuirea cu (Replace) sau (Replace All).

De asemenea se poate preciza partea din document în care să se facă aceste operaţii: în tot documentul, sau doar în foaia curentă.

În precizarea informaţiei căutate se pot folosi caracterele de înlocuire ? şi * exact ca în Windows. D. Formatarea celulelor Formatarea celulelor şi a informaţiilor din ele, a coloanelor, a rândurilor şi a întregii foi de lucru

se face cu opţiunile meniului Formatare (Format). El are următoare opţiuni: • Rând (Row) – submeniu pentru alegerea caracteristicilor rândului cu opţiunile: - Height – înălţimea rândului - AutoFit – autoredimensionarea - Hide – ascunde rândul - Unhide – face rândul vizibil

CAPITOLUL 6. PACHETUL MS OFFICE

183

• Coloană (Column) – submeniu pentru alegerea caracteristicilor coloane cu opţiunile: - Width – lăţimea coloanei - AutoFit – autoredimensionarea - Hide – ascunde coloana - Unhide – face coloana vizibilă - Standard Width – reface lăţimea coloanei la cea standard • Foaie (Sheet) – submeniu cu următoarele caracteristici ale foii de lucru: - Rename – redenumeşte foaia de lucru - Hide – ascunde foaia de lucru - Unhide – face foaia de lucru vizibilă - Background – stabileşte fondul foii de lucru • Celule (Cells) – formatează caracteristicile celulelor şi ale informaţiilor din acestea. Se

deschide următoarea casetă de dialog. Pentru tipul informaţiilor dintr-o celulă putem alege din secţiunea Număr (Number):

- General (General) – tipul implicit - Număr (Number) – număr şi putem preciza numărul de zecimale, separatorul pentru

ordine, modul de afişare a numerelor negative - Simbol monetar (Currency) – pentru a folosi simbolul monetar - Dată (Date) – pentru data calen-daristică şi formatele ei - Oră (Time) – ora şi formatele ei - Procentaj (Percentage) – valori re-prezentate pro-centual - Fracţie (Fraction) – pentru numere raţionala n/m - Text (Text) – valori şir de caractere

În secţiunea Aliniere (Alignment) alegem modul de alinierea a informaţiei în celule. În secţiunea Font (Font) formatăm caracterele ca în Word: • Setul de caractere – fontul (Font) care stabileşte forma caracterelor. Putem alege din sute de

astfel de fonturi. Cele mai folosite sunt Times New Roman şi Arial • Stilul – care poate fi normal (Regular), îngroşat (Bold), înclinat (Italic) şi îngroşat - înclinat

(Bold Italic) • Dimensiunea (Size) – între 8 şi 72 (dar se poate scrie şi o altă mărime) • Culoarea caracterelor (Font Color) • Modul de subliniere (Underline Style) • Efecte (Effects) cum ar fi: tăierea cu o linie orizontală (Strikethrough), scrierea cu indici

(Subscript) sau cu exponenţi (Superscript). Cele mai importante caracteristici se pot alege şi din bara de formatare din bara de

instrumente. În secţiunea Bordură (Border) alegem bordurile celulelor. Grila în care e împărţită o foaie de

lucru nu apare la imprimantă, aşa că e bine să stabilim noi bordurile tabelelor (formate din celulele selectate pentru formatare) şi culoarea liniilor lor.

În secţiunea Modele (Patterns) alegem culoarea interiorului celulei. Pe lângă aceste modalităţi de formatare există şi o bară de formatare, iar unele operaţii se pot

face şi mai simplu. De exemplu redimensionarea rândurilor sau a coloanelor se face cu „drag and

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

184

drop” pe zona care separă numerele rândurilor şi respectiv pe zona care separă marcajele (denumirile) coloanelor. Aici mouse-ul îşi schimbă cursorul săgeată în cursor de redimensionare.

E. Tipărea documentului Tipărirea documentului este asemănătoare cu cea din Word. Ea poate fi precedată de formatarea

paginilor care se face cu opţiunea Iniţializare pagină (Page Setup) din meniu Fişier (File).

Această opţiune deschide următoarea casetă de dialog: Secţiunile acesteia sunt: • Pagină (Page) care stabileşte dimensiunile paginii utile prin precizarea dimensiunilor celor

patru margini ale foii care rămân neutilizate şi modul de centrare în pagină (orizontal sau vertical).

• Margini (Margins) care stabilesc dimensiunile foii şi modul se orientare. Se alege orientarea acesteia – orizontală (Landscape) sau verticală (Portrait). Există o serie de dimensiuni standard de unde putem alege dimensiunea dorită (Letter, A4, A3, etc).

• Antet / subsol (Header and Footer) permite introducerea antetului (Header) şi a subsolului (Footer) şi alegerea de opţiuni pentru acestea.

Pentru tipărire e bine să se urmeze cei trei paşi indicaţi şi la Word: 1. Previzualizarea documentului aşa cum va fi tipărit se face cu opţiunea Examinare înaintea

imprimării (Print Preview) din meniul Fişier (File) sau cu butonul . 2. Stabilirea opţiunilor de tipărire se face cu opţiunea Imprimare (Print) din meniul Fişier (File).

Se deschide o casetă de dialog în care putem alege imprimanta la care să tipărim şi proprietăţile acesteia (dimensiunea foii, calitate, culori – în funcţie de fiecare imprimantă), paginile dorite şi numărul de copii.

3. Lansarea tipăririi cu opţiunile stabilite anterior se face cu butonul Ok din caseta de dialog

Imprimare (Print) deschisă anterior. F. Sortarea datelor Ordonarea celulelor dintr-o foaie de lucru se face selectând celulele şi apoi cu opţiunea Sort din

meniul Data. Aceasta deschide o casetă de dialog în care alegem coloanele după care să se facă ordonarea şi felul ordonării, crescătoare sau descrescătoare. De asemenea se poate preciza dacă se ia şi capul de table sau nu. Ordonarea poate fi lansată şi cu unul dintre butoanele .

CAPITOLUL 6. PACHETUL MS OFFICE

185

G. Inserarea de obiecte într-o foaie de lucru Programul Excel permite şi inserarea de obiecte, cum ar fi imaginile, simbolurile, figuri,

formule, etc. Operaţiile de introducere se obiecte se realizează din meniul Inserare (Insert), asemănător cu programul Word..

• Simbolurile (matematice, financiare, din alfabetul grecesc) se inserează cu opţiunea Simbol (Symbol) care deschide o casetă de dialog cu o listă din care putem alege şi insera simbolul dorit. Pentru simbolurile des utilizate se pot crea scurtături de la tastatură cu butonul (Shortcut Key), tastând noua scurtătură (fără a alege din cele folosite deja de Word) şi apoi cu butonul (Assign).

• Diagramele se inserează cu opţiunea Diagramă (Chart). Acest lucru se face într-o casetă de dialog în patru paşi. Întâi alegem tipul diagramei (imaginea), apoi datele care intră în ea, apoi numele şi notaţiile din diagramă şi la final dacă ea să fie pusă în foaia de lucru curentă sau în una nouă.

• Imaginile se introduc din submeniul Imagine (Picture) care are mai multe opţiuni: pentru desene realizate pe baza unor figuri de bază (Autoshapes), pentru imagini salvate pe disc (From File), imagini conţinute în galeriile Clip Art ,) sau texte scrise în diferite forme şi culori (Wordart). Categoria (Autoshapes) este foarte importantă pentru că e mecanismul de desenare al programului Word. Desenele se realizează din forme se bază grupate pe categorii:

Pentru cele mai des utilizare există butoane separate . Partea de inserare de imagini este identică cu cea din Word. H. Crearea de diagrame Crearea de diagrame este o operaţie importantă în Excel. Datele din foile de calcul, pot fi de

asemenea vizualizate într-o forma sintetică şi atractivă folosind diagramele. Pentru aceasta se selectează datele care ar trebui să se regăsească în diagrama şi se efectuează

clic pe butonul . Urmând cei 4 paşii de mai sus, pe exemplul nostru putem obţine o diagramă:

-

1.000

2.000

3.000

4.000

Vanzaresem 1

Media

Vanzari

Series1

Funcţii matematice în tabele Pentru a introduce o formulă într-o celula, se parcurg următorii paşi:

• se da clic in celula respectiva • se apasă tasta = (sau se apasă butonul Editează formula (=) sau Inserează funcţia (f x) • se introduce formula • se apasă tasta Enter

Pentru a efectua operaţiile matematice de baza, se folosesc următorii operatori aritmetici: Operatorul aritmetic Semnificaţia Exemplu + (semnul plus) Adunare 3+3 - (semnul minus) Scădere;

număr negativ 3–1 –1

* (asterisc) Înmulţire 3*3 / (slash) Împărţire 3/3 % (semnul procent) Procent 20% ^ (semnul circumflex) Ridicare la putere 3^2

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

186

CAPITOLUL 7

LIMBAJE DE PROGRAMARE

7.1. DOMENII DE UTILIZARE ALE CALCULATOARELOR Principalele domenii de utilizare ale calculatoarelor sunt:

• prelucrarea datelor, • proiectare, • simulare, • conducerea proceselor.

Prelucrarea datelor cuprinde mai multe aspecte: - înregistrarea, - selectarea, - sortarea, - ordonarea, - prelucrarea matematică, - analiza, - rezumarea, - raportarea informaţiilor.

Selectarea datelor se referă la asocierea unui element de informaţie cu un ansamblu de caracteristici date. De exemplu: o indicaţie bibliografică, un tip de sculă sau un tip de ascuţire.

Sortarea reprezintă separarea unei liste în părţi (clase) care se exclud reciproc. De exemplu: selecţa fişierelor cu extensia .exe sau selecţia unor articolele unui autor.

Ordonarea reprezintă aranjarea unei liste în conformitate cu un sistem liniar (oarecare, stabilit). De exemplu: ordonare după criteriu alfabetic sau crescător.

Prelucrarea matematică reprezintă efectuarea operaţiilor matematice indicate prin program asupra informaţiilor introduse.

Analiza, rezumarea şi raportarea informaţiilor se referă la efectuarea programată a acestor operaţii asupra informaţiilor pe care le poate furniza în urma prelucrării prealabile a datelor.

Rezultatele sunt analizate, iar prin rezumare se reţin cele care urmează a fi raportate prin sistemul de ieşire al datelor din calculator.

Utilizarea calculatoarelor în procesele de proiectare constituie o ramură preponderent inginerească şi cuprinde un spectru larg de probleme care pot fi abordate.

Proiectarea reprezintă aplicarea creatoare a unui fond de cunoştiinţe la realizarea unor produse utile.

Proiectul reprezintă din punct de vedere semantic o lucrare tehnică întocmită pe baza unei teme date, cuprinzând :

• calcule tehnico-economice, • desene, • instrucţiuni necesare executării unei construcţii, maşini, instalaţii, tehnologii etc.

Clasificarea problemelor de proiectare: 1. probleme structurale, 2. probleme nestructurale, 3. probleme semisructurale.

1. Problemele structurale au următoarele caracteristici: • variabile cunoscute, • relaţii funcţionale dintre variabile bine definite, • este posibilă o rigurozitate completă (matematică), • algoritmi precişi.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

187

Pe baza principalelor caracteristici precizate se poate constata că problemele structurale pot fi rezolvate relativ uşor şi cu ajutorul maşinilor de calcul, fapt care le recomandă pentru proiectarea automată (prin calculator).

2. Problemele nestructurale sunt caracterizate de: • slabă definire a relaţiei dintre variabile, • nesiguranţă în compararea variabilelor individuale.

3. Problemele semistructurale sunt caracterizate de: • au caracteristici comune (structurale şi nestructurale), • sunt parţial structurale şi parţial nestructurale.

Pe baza principalelor caracteristici precizate se poate constata că problemele semistructurale pot fi rezolvate relativ cu ajutorul calculatorului. Proiectantul stabileşte strategia şi algoritmul de rezolvare a problemei, iar calculatorul execută calculele.

Problemele nestructurale datorită slabei definiri a relaţiilor dintre parametrii şi variabilele individuale solicită proiectantul să introducă reguli după care se va lua decizia şi se face alegerea variantei cea mai bună. Proiectantul alege varianta finală, ia decizia, dar la soluţie nesatisfăcătoare modifică regulile de calcul a soluţiei şi reia rezolvarea problemei. Calculatorul realizează produsul, însă proiectantul precizează sistemul care proiectează produsul.

Proiectare euristică este cea care se aplică în aceste cazuri. Euristica este metoda de studiu şi cercetare bazată pe descoperirea unor fapte noi în timpul procesului în desfăşurare şi schimbarea metodei în cazul neomologării (fig 7.1.).

Figura 7.1. Etapele parcurse de informaţie până la omologarea şi decizia finală.

Alt domeniu important de utilizarea a calculatoarelor este simularea. În acest domeniu este

necesară o abordare soft şi hard adecvată şi în concordanţă cu procesul urmărit. Calculatoarele în simulare trebuie să ţină seama de aspectele:

• reprezentarea printr-un model matematic a fiecărui element al sistemului care urmează a fi simulat, specificându-se interacţiunea dintre elemente, • elaborarea unui program de calculator care evoluează în concordanţă cu modelul matematic.

Pornind de la simulatoare de navigaţie (zbor), de conducere auto, la simularea prelucrării pe CNC a panourilor de mobilă, a decorărilor de interioare cu diferite obiecte demobilier, schimbarea ambientului prin modificarea texturii şi culorii, utilizarea analizelor cu element finit pentru testarea şi îmbunătăţirea formelor şi secţiunilor produrelor de mobilier, simularea matematică a diferitelor încărcări cu forţe concentrate sau distribuite etc., până la simplele jocuri simularea îşi face apariţia şi îşi aduce un aport important la formarea unor deprinderi sau la verificarea nedistructiva a unor variante proiectate.

Alt domeniu în care se impune utilizarea calculatoarelor este în conducerea proceselor: • conducerea unor procese tehnologice care au loc la maşini unelte şi instalaţii, • conducerea proceselor de producţie din punct de vedere organizatoric şi economic.

Rolul calculatoarelor în domeniul conducerii proceselor industriale: - performanţe şi capacităţii acestora de a înmagazina şi prelucra rapid datele,

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

188

- echipamentele periferice specializate ce asigură transmiterea şi recepţionarea rapidă în timp real a fluxului informaţional din proces,

- imposibilitatea operatorului uman de a asigura, prin metodele clasice, conducerea eficientă a producţiei.

Introducerea şi utilizarea calculatoarelor electronice în procesul de producţie urmăreşte: -atingerea şi menţinerea unor regimuri tehnologice optimale; -conducerea proceselor tehnologice cu grad de nocivitate ridicat; -reduceri ale consumurilor specifice de materii prime şi materiale; -reduceri ale consumurilor de energie; -creşterea productivităţii utilajelor, proceselor tehnologice, siguranţei în funcţionare; -posibilităţi de conducere operativă a marilor platforme industriale; -creşterea eficienţei economice a activităţii industriale.

7.1.1. Calculatoarele de proces Calculatoarele de proces formează o categorie aparte, care se caracterizează printr-o structură

complexă generată atât de existenţa unor module ce asigură primirea şi transmiterea informaţiilor din şi în instalaţia tehnologică, cât şi de existenţa unor module de prelucrare a informaţiilor numerice, de calcul şi de decizie, proprii unor calculatoare electronice numerice universale.

Calculatorul de proces asigură: - prelucrarea unor volume mari de informaţii; - viteza şi precizie mare în prelucrarea datelor; - calcule de complexitate ridicată; - funcţionarea în timp real; - intervenţie rapidă în procesul tehnologic.

Folosirea sistemelor de prelucrare a datelor în acest domeniu impune crearea şi dezvoltarea unor sisteme de programe de exploatare şi aplicative adecvate.

Calculatoarele de proces se caracterizează prin existenta a două interfeţe: calculator - proces şi

calculator - operator uman. Interfaţa între aceste sisteme complexe şi omul care este chemat să le mânuiască este realizată

prin sistemul de programe şi limbajele de programare. Programele utilizate în contextul sistemelor de conducere se împart în:

- programe destinate exploatării curente a sistemelor (software de bază şi software de aplicaţie);

- programe (sau sisteme de programe) destinate elaborării programelor de aplicaţie, pentru o aplicaţie anume.

Mărimile de intrare sau variabilele independente sunt informaţiile primite despre proces. Principalele informaţii sunt relative la temperaturi, presiuni, debite.

Mărimile pot fi împărţite în două grupe: - cele care pot fi comandate direct de operator, numite comenzi; - cele care nu sunt supuse comenzii directe a operatorului, numite perturbaţii. Mărimile de ieşire sau variabilele dependente, pot fi grupate în:

- performante, variabilele care intervin în formularea obiectivelor procesului şi care trebuie menţinute între anumite limite date;

- variabile intermediare, care apar în diverse puncte intermediare ale procesului sau ale unui model matematic al procesului, sau compoziţia, care pot fi utilizate ca masură a unor perturbaţii inaccesibile, ca un predictor al calităţii produsului.

Scopul conducerii procesului tehnologic se poate formula astfel: prin ajustarea variabilelor comandate, să se asigure realizarea unor obiective bine definite ale procesului, ţinând seama de perturbaţii şi folosind rezultatele măsurării indicatorilor de performanţă, variabilelor intermediare şi pertbaţiilor. Operatorul stă la consola de proces de unde controlează şi dirijează procesul.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

189

Moduri de conectare calculator – proces. În conducerea proceselor tehnologice, calculatorul poate îndeplini diferite funcţiuni ce sunt

raportate la modul în care acesta primeşte informaţia şi, transmite informaţia de la/la proces. Introducerea datelor în calculator se face pe trei căi : - utilizarea unui suport de informaţie; - direct de la operator în calculator, prin intermediul consolei; - direct de la sursă în calculator, prin intermediul dispozitivelor de cuplare la proces. Datele prelucrate de un calculator pot fi folosite pentru: - asigurarea cu date a operatorului, într-o formă intermitentă; - asigurarea de înregistrări permanente pentru operator; - comanda directă a instalaţiilor din proces. Evidenţiind aceste căi de introducere-extragere a datelor, putem defini următoarele moduri de

conectare dintre calculator şi proces: Calculatoare " OFF-LINE", nu este conectat direct la proces, iar legatura informaţională între

calculator şi proces este stabilită prin intermediul omului. Un astfel de sistem poate fi utilizat acolo unde întârzierile nu contează şi unde manipularea manuală a dalelor nu este costisitoare.

Calculatoare " IN-LINE". Operatorul introduce datele privind procesul, direct în calculator, în mod rapid şi frecvent, cu ajutorul unei claviaturi, lector de simboluri, creion optic etc., pot fi prelucrate imediat (dacă este cazul), iar rezultatele sunt aplicate manual de către operator. La acest regim (ca şi în cel “off-line") informaţia de la ieşirea calculatorului se prezintă sub formă de mesaj tiparit sau pe un dispozitiv de afişare.

Calculatoare " ON-LINE", este un sistem conectat fizic cu procesul, astfel încât să primească informaţia fără intervenţia omului şi fără întârziere. Calculatorul poate primi direct informaţii de la proces prin dispozitivele sale periferice.

Sistemele “on-line" transmit informaţii de la un proces în memoria calculatorului fără ca prelucrarea să aibă loc imediat, în mod obligatoriu. Atunci când prelucrarea informaţiilor transmise “on- line" se desfăşoară imediat, în timpul funcţionării procesului, sistemul se numeşte “on-line", în timp real. Un calculator care posedă aceasta capacitate se numeşte, în mod convenţional, calculator de proces. În cazul în care nu este nevoie de nici o intervenţie manuală, acţiunile de conducere sunt calculate de calculator şi aplicate direct procesului, sistemul se numeşte “on-line" în circuit închis.

STRUCTURA UNUI CALCULATOR DE PROCES Un calculator de proces posedă o serie de caracteristici fundamentale, care-l deosebesc de un

calculator electronic universal, şi anume: - capacitatea de a comunica direct şi eficient cu aparatura de măsură şi control, precum şi

cu echipamentul de reglare al procesului; - posibilitatea de a răspunde rapid, în timp util, la semnale de prioritate emise de procesul

condus (proprietate de întrerupere); - capacitatea de a opera suficient de rapid asupra datelor, asigurând funcţionarea şi

conducerea procesului în timp real (timpul cronometric). Calculatorul de proces este un sistem integrat format dintr-un calculator electronic universal

(unitatea centrală şi echipamentele periferice clasice) şi un echipament periferic specializat pentru cuplarea calculatorului la proces (dispozitive analogice, dispozitive numerice, consola operatorului de proces).

Funcţiile generale şi nivelurile de conducere a proceselor industriale sunt împărţite în: - funcţii de supraveghere; - funcţii de reglare şi comandă; - funcţii de optimizare; - funcţii de planificare. O parte din aceste activităţi pot fi efectuate de calculatorul de proces. Alegerea depinde de

necesităţile de memorie, periferice şi, bineînţeles, de preţ.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

190

Funcţiile de conducere a proceselor industriale prezentate mai sus se realizează ierarhizat, conducând la urmatoarele nivele de comandă şi supraveghere a proceselor : supraveghere, reglare, optimizare, planificare.

Sistemul de operare şi programare aferent unui calculator de proces are ca sarcină optimizarea utilizării sistemului de calcul, minimizarea efortului uman de programare şi automatizarea operaţiilor manuale într-o măsură cât mai mare.

Sistemele de operare şi programare aferente calculatoarelor de proces prezintă structuri diferite, corelate cu configuraţiile de echipamente ale fiecărui calculator de proces.

Ceea ce este comun tuturor acestor sisteme este prezenţa urmatoarelor componente: - un sistem de exploatare de bază aferent calculatorului numeric universal (pentru

conducerea non-proces) ; - un sistem de timp real (pentru conducerea "on-line"); - un sistem de procesoare, Sistemul de programe de timp real trebuie să asigure ordonarea deservirii întreruperilor

externe, supravegherea şi comanda operaţiilor de intrare/ieşire (din/spre proces), gestiunea proceselor de timp real, comunicarea cu operatorul de proces.

Cu cât limbajul de programare este mai apropiat de limbajul utilizat la analiza şi definirea problemei care se programează, cu atât gradul de automatizare al programării este mai ridicat. Limbajele de programare destinate conducerii proceselor industriale, duc la realizarea unui program care să realizeze schema de reglare a procesului într-un timp scurt şi un consum de memorie relativ minim. Cerintele preliminare necesare conducerii unui astfel de proces pot fi exprimate cu ajutorul următoarelor documente sursă: specificatia procesului industrial ce urmează a fi condus, diagrama de comandă, schema logică a descrierii procesului.

Elementele unui astfel de limbaj vor fi identificatorii (ex: nume, adrese etc.), ce indică obiectele şi atributele obiectelor şi operatorii (ex: verbe imperative, operatori aritmetici etc.), ce indică operaţia ce urmează a fi executată cu obiecte.

În vederea descrierii procesului industrial este necesar a fi furnizate listele cu tabele referitoare la intrări analogice, semnale de ieşire, semnale de tip contact.

Pentru mărimile analogice aceste tabele vor conţine: identificator (nume etc.), valoare, limite de alarmă etc., traductoare şi semnale, perioada de explorare, conversia în unităţi inginereşti etc.

Pentru semnalele de ieşire aceste tabele vor conţine: identificator, dispozitiv şi semnal, alarmare şi blocare, caracteristici ale reacţiei inverse (feedback).

Pentru semnalele de tip-contact, aceste tabele vor conţine: identificator, dispozitiv, poziţia contactului în cadrul dispozitivului, poziţia normală a contactului (deschis, închis), explorarea (aleatorie sau sincronizată cu un anumit interval de timp).

Diagrama de comandă din blocuri sau simboluri speciale care reprezintă atât calcule ce trebuiesc efectuate cât şi fluxul informaţional. Sistemul de comandă poate fi definit ca o entitate cu un nume şi o serie de elemente de comandă. Schema logică descrie procesul industrial, inclusiv operaţiile ce sunt permise atât în timpul operării normale cât şi în condiţii exceptionale, în general, schema logică constă dintr-un grup de operatori reprezentaţi printr-o suită de simboluri standard.

Limbajul de programare specializat destinat conducerii proceselor industriale poate fi astfel realizat în două forme:

- forma lungă, în care o parte sau toate elementele limbajului sunt separate prin simboluri, denumite, delimitatori – limbajul seamană cu un limbaj de programare procedural tipic;

- forma scurtă, în care elementele limbajului ocupă poziţii fixe în fluxul de intrare -şi nu sunt separate prin delimitatori - limbajul seamană cu limbajele de programare specializate de proces de tipul “fill-in-the-blanks". Putem clasifica limbajele existente, în present, în urmatoarele trei clase: • limbaje de nivel înalt orientate spre aplicaţii industriale • limbaje procedurale • limbaje orientate pe problemă

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

191

În esenţă, proiectarea unor astfel de limbaje generează o standardizare a funcţiilor specializate de supraveghere şi conducere a procesului şi conduc totodată la reducerea efortului de programare-implementare.

Limbajele din aceasta categorie sunt limbaje interpretative a unor diagrame logice. Ele necesită cunoştinţe minime de programare, dar folosesc o serie de simboluri ce reprezintă ordinele de codificare a diagramelor logice care sunt prezentate sub forma mnemotehnică.

7.2. ORGANIZAREA STRUCTURATĂ A CALCULATOARELOR Un calculator numeric poate rezolva probleme prin executarea instrucţiunilor ce i-au fost date. O instrucţiune este o comandă dată calculatorului, prin care se descrie operaţia sau operaţiile

pe care acesta trebuie să le execute. Instrucţiunile pe care le execută un calculator sunt de fapt grupuri de 1 şi 0 care reprezintă

semnale electronice produse în interiorul calculatorului. Totalitatea instrucţiunilor care descriu cum se rezolvă o anumită problemă se numeşte program.

Circuitele electronice ale unui calculator pot recunoaşte şi executa un set finit de instrucţiuni primare, simple, în care trebuie transformate toate programele, înainte ca acestea să poată fi rulate (adică executate de către microprocesor).

Totalitatea instrucţiunilor pe care un procesor le poate recunoaşte şi executa, formează setul de instrucţiuni al procesorului respectiv.

Aceste instrucţiuni primare execută operaţii ca : • adună două numere, • verifică dacă un număr este egal cu 0, • copiază date dintr-o zonă a calculatorului în alta, precum şi câteva operaţii ceva mai

complicate. Toate informaţiile dintr-un program sunt codificate binar. Unitatea de măsură pentru

informaţie este bitul (0 sau 1). În interiorul calculatoarelor toate informaţiile sunt reprezentate sub forma unor numere binare grupate în biţi. Aceste grupe pot fi de 8, 16, 32, 64 de biţi.

Întregul set de instrucţiuni primare reprezintă un limbaj care permite comunicarea dintre calculator (procesorul unui calculator) şi om. Acest limbaj se numeşte limbaj maşină, şi este singurul limbaj pe care îl poate înţelege un calculator. Evident acest limbaj este binar.

Proiectanţii de calculatoare trebuie să decidă setul de instrucţiuni primare folosit de noul procesor. Fiecare tip de microprocesor are un set de instrucţiuni propriu. La primele calculatoare se puteau scrie programe cu ajutorul a 8 comutatoare (instrucţiuni pe 8 biţi) care se puteau poziţiona pe 0 sau 1, şi astfel puteau fi scrise şi executate programele. Astazi acest fel de scriere nu se mai foloseşte, cel mai de “jos" limbaj fiind limbajul de asamblare.

Deoarece este destul de dificil de scris programe în limbaj maşină, va fi necesară proiectarea unui nou set de instrucţiuni (limbaj) mai uşor de utilizat de către oameni decât setul de instrucţiuni maşină, pe care îl vom nota cu L1. Vom nota setul de instrucţiuni maşină cu L0.

O metodă de executare a unui program scris în L1 este de a înlocui fiecare instrucţiune din acest limbaj cu un set echivalent funcţional din L0. O astfel de tehnică se numeşte traducere.

Cea de a doua tehnică constă în a scrie un program în L0 care preia programe în L1 ca şi date de intrare şi le execută examinând fiecare instrucţiune pe rând şi executând secvenţa echivalentă de instrucţiuni direct în L0. O astfel de tehnică se numeşte interpretare şi programul care o realizează se numeşte interpretor.

Traducerea şi interpretarea sunt similare. În ambele metode, instrucţiunile din L1 sunt în final realizate pe baza executării unor secvenţe echivalente de instrucţiuni în L0.

Programul L1 se mai numeşte program sursă iar programul L0 se numeşte program în cod maşină (limbaj maşină). Pentru un limbaj de programare, programul sursă este cel scris cu ajutorul instrucţiunilor limbajului respectiv iar programul în cod maşină este cel rezultat în urma compilării programului sursă.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

192

Toate fişierele cu extensia exe sau com de sub sistemul de operare MS-DOS sunt programe în cod mşină. În timpul executării, se rulează noul program generat în L0 şi acesta este cel care are controlul calculatorului.

Limbajul de pe nivelul cel mai de jos este cel mai simplu iar limbajul de pe nivelul cel mai înalt este cel mai sofisticat. Cele mai multe calculatoare moderne sunt formate din două sau mai multe niveluri.

Vom analiza un calculator cu şase niveluri. Nivelul 0, corespunde structurii hardware a maşinii care execută instrucţiunile în limbaj

maşină de pe nivelul 1. Pentru corectitudine trebuie menţionat un nivel aflat sub nivelul 0, care tine de domeniul ingineriei electronice şi se numeşte nivelul echipamentelor electronice (device level).

La acest nivel se găsesc tranzistoarele cu ajutorul cărora se pot proiecta circuitele integrate şi respectiv circuitele logice. Tranzistoarele precum şi alte componente electronice sunt considerate primitivele de nivelul cel mai scăzut pentru proiectanţii de calculatoare.

Se poate coborî la un nivel şi mai de jos, dar acesta se ocupă cu tehnologia siliciului, adică a fabricării componentelor electronice.

Pentru nivelul logic digital (digital logic level), sunt de interes obiectele numite porţi logice. Ele sunt construite din componente analogice, cum ar fi tranzistoarele, şi alcătuiesc circuitele digitale. Fiecare poartă are una sau mai multe intrări digitale (0 sau 1) şi calculează o funcţie logică drept ieşire, cum ar fi SI sau SAU logic. Câteva porţi pot fi combinate pentru a forma o memorie de un bit. Memoriile de 1 bit pot fi combinate în grupuri de 16, 32 sau 64 pentru a forma registre.

Nivelul 1 sau Nivelul microarhitecturii (microarhitecture level) conţine o colecţie de 8 până la 64 de registre de dimensiune cuprinsă între 8 şi 32 de biţi, formând o parte din memoria internă a procesorului, şi un circuit numit UAL (Arithmetic Logic Unit) unitate aritmetică şi logică care poate executa operaţii aritmetice şi logice simple.

Registrele sunt conectate la UAL pentru a forma o cale de date (data path) prin care se transmit datele. Operaţiile principale ale căii de date constau în selecţia a unu sau două registre asupra cărora operează UAL, de exemplu le adună şi rezultatul se memorează într-unul dintre registre.

Ciclul căii de date constă în citirea operanzilor din registre şi trimiterea lor prin magistralele interne la unitatea UAL şi la alte unităţi funcţionale pentru execuţie.

Calea de date este controlată de un circuit de comandă (command circuit), a cărui sarcină este să gestioneze toate activităţile microprocesorului, începând din momentul în care acesta este alimentat cu curent şi are semnal de tact.

Circuitul de comandă generează toate semnalele de comandă pentru activarea elementelor interne şi externe procesorului.

Operaţiile principale ale circuitului de comandă sunt: -citeşte din memorie instrucţiunea; -o decodifică pentru a întelege operaţiile necesare execuţiei; -programează toate activităţile interne şi externe pentru execuţia instrucţiunii.

Pe anumite calculatoare circuitul de comandă este un program (soft) numit microprogram, iar pe alte calculatoare (în special pe cele moderne) este implementat prin hardware.

Pe calculatoarele cu control software al căii de date, microprogramul este un interpretor al instrucţiunilor de pe nivelul 2.

Interpretorul extrage, examinează şi execută instrucţiunile una după alta, folosind pentru aceasta calea de date. Operaţiile logice pe care le poate executa sunt: SI, SAU, SAU EXCLUSIV, COMPARATIE şi COMPLEMENTARE.

Cu toate că setul de operaţii pare foarte restrâns, dacă se cunoşte îndeajuns bazele analizei numerice se pot programa calcule ştiinţifice foarte complexe. Totul constă în cunoştinţele matematice ale programatorului şi abilitatea programării instrucţiunilor de bază. Nivelul 2 reprezintă un nivel numit nivelul arhitecturii setului de instrucţiuni sau nivelul ISA - Instruction Set Arhitecture. Fiecare producător de calculatoare (microprocesoare) publică un manual pentru microprocesoarele pe care le fabrică, numit " Manualul de referinţă al limbajului

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

193

maşinii". În manuale producătorii detaliază întregul set de instrucţiuni pe care microprocesorul le poate recunoşte şi executa.

Nivelul 3 este un nivel hibrid în care cele mai multe instrucţiuni din limbajul de la acest nivel, sunt instrucţiuni ale nivelului ISA.

O instrucţiune de pe un nivel poate aparţine şi altui nivel. De exemplu, sistemul de operare DOS este scris în limbaj de asamblare 20% şi în limbajul C 80%. La fel, sistemele de operare Windows sunt scrise o parte în limbajul C++ şi o parte în limbajul de asamblare.

În cadrul nivelului 3 există un set de instrucţiuni noi, o organizare diferită a memoriei, posibilitatea de executare concurentă a două sau mai multe programe precum şi alte caracteristici.

Exista mai multe posibilităţi de proiectare a nivelului 3 decât în cazul nivelurilor 1 şi 2. Noile operaţii permise pe nivelul 3 sunt realizate de un interpretor care se execută pe nivelul 2, interpretor numit sistem de operare.

Instrucţiunile de pe nivelul 3 care sunt identice cu cele de pe nivelul 2 sunt executate direct de către microprogram (sau controlate hardware) şi nu de sistemul de operare. Cu alte cuvinte unele dintre instrucţiunile de pe nivelul 3 sunt interpretate de sistemul de operare iar altele direct de circuitul de comandă. Acest nivel este numit nivelul maşină al sistemului de operare (operating system machine level). Primele trei niveluri sunt concepute în principal pentru execuţia interpretoarelor şi translatoarelor necesare susţinerii nivelurilor superioare. Aceste interpretoare şi translatoare sunt scrise de programatorii de sistem.

Nivelul 4 şi cele superioare sunt destinate programatorilor de aplicaţii care au de rezolvat o problemă specifică. Altă diferenţă între nivelurile 1, 2, 3 şi nivelurile 4 şi 5 este natura limbajului oferit. Limbajele maşină ale nivelurilor 1, 2 şi 3 sunt numerice, programele scrise în aceste limbaje sunt formate din serii lungi de numere care sunt convenabile pentru procesoare dar greu de înţeles pentru oameni. Începând de pe nivelul 4 limbajele conţin cuvinte şi abrevieri pe înţelesul oamenilor.

Nivelul 4. Limbajul de asamblare pe care îl găsim la nivelul 4 este o formă simbolică pentru limbajul cod maşină. Acest nivel oferă programatorilor posibilitatea de a scrie programe pentru nivelurile 1, 2 şi 3 care nu sunt atât de complexe ca limbajele de pe nivelul 5. Programele scrise în limbaj de asamblare sunt întâi traduse în unul din limbajele nivelurilor 1, 2 sau 3 şi apoi interpretate de microprocesor. Programul care efectuează traducerea se numeşte asamblor.

Nivelul 5 este reprezentat de limbaje proiectate pentru a fi utilizate de programatorii de aplicaţii care au de rezolvat anumite probleme.

Astfel de limbaje se numesc limbaje de nivel înalt. Există sute de astfel de limbaje, printre cele mai cunoscute se numără BASIC, C++, Java, LISP, PROLOG, PASCAL ş.a.

Programele scrise în aceste limbaje sunt în general traduse pentru nivelurile 3 sau 4 de translatoare cunoscute sub numele de compilatoare, deşi există şi interpretoare.

În anumite cazuri nivelul 5 poate fi considerat un interpretor pentru un domeniu aplicativ particular, de exemplu programul AUTOCAD scris în limbajul LISP sau MATHCAD scris în limbajul C++.

Mulţimea de tipuri de date, operaţii şi caracteristici ale fiecărui nivel se numeşte arhitectură. Arhitectura se referă la acele aspecte care sunt vizibile pentru utilizatorul unui anumit nivel. Diferitele caracteristici văzute de programator, de exemplu

• câtă memorie disponibilă există, • dimensiunea regiştrilor, • lărgimea magistralei, • memoria secundară sunt parţi ale arhitecturii.

Aspectele de implementare ca tehnologia cipurilor de memorie, nu fac parte din arhitectură. Studiul proiecării acelor părţi ale unui sistem de calcul care sunt vizibile programatorului se numeşte arhitectura calculatoarelor.

Un calculator este compus din două părţi principale: - o parte hardware care este formată din obiecte tangibile cum sunt: circuitele integrate,

plăci imprimate, cabluri, surse de putere, memoriile, echipamente periferice şi nu din idei abstracte cum ar fi algoritmi sau instrucţiuni.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

194

- o parte de software care constă din: algoritmi (instrucţiuni detaliate care spun cum se poate face un anumit lucru) şi modelarea lor cu ajutorul limbajelor de programare, adică programe.

Programele pot fi memorate pe dispozitive de stocare a datelor, dar esenţa software-ului este setul de instrucţiuni care formează programul şi nu mediile fizice pe care acestea sunt memorate.

În cazul primelor calculatoare există o diferenţă clară între hardware şi software. Cu timpul linia de demarcaţie dintre cele două a devenit foarte flexibilă, în special datorită

adăugarii, eliminării sau compactării unor niveluri odată cu evoluţia calculatoarelor. Hardware-ul şi software-ul sunt logic echivalente.

Orice operaţie executată prin software poate fi, de asemenea, construită direct în hardware, de preferinţă după ce este destul de bine înţeleasă. Reversul este de asemenea adevărat: orice instrucţiune executată de hardware poate fi simulată prin software. Decizia de a realiza anumite funcţii prin hardware şi altele prin software se bazează pe factori cum ar fi costul, viteza, siguranţa în funcţionare şi schimbările ulterioare avute în vedere, spre exemplu: module grafice implementate hardware, reţele neuronale implementate hardware sau o gamă largă de module folosite pe calculatoarele din tehnica militară.

7.3. GENERALITĂŢI DESPRE PROGRAMAREA CALCULATOARELOR Lumea limbajelor de programare este indisolubil legată de evoluţia, într-un interval de timp

destul de redus, al sistemelor de calcul electronice. Dependente de iniţiativa şi capacitatea omului de a le structura capabilităţile fundamentale, sistemele de calcul electronice nu se pot exprima decât în prezenţa unor sisteme de comunicaţie cu acesta.

Potenţialul de calcul al unui sistem de calcul electronic, privit ca maşină fizică, poate fi valorificat şi chiar amplificat, cu ajutorul suportului oferit de maşinile virtuale (sisteme de operare, sisteme de gestiune a bazelor de date, limbaje de programare, medii vizuale de programare, etc.)

Pentru a înţelege relaţia sistem de calcul - limbaj de programare, reamintim că, potrivit arhitecturii von Neumann, un sistem de calcul electronic are componentele: sistemul de introducere a datelor, unitatea centrală de prelucrare şi comandă, memoria principală, memoria secundară şi sistemul de extragere a rezultatelor.

Limbajul prin care se transmit datele către un sistem de calcul electronic, la nivelul cel mai de jos se numeşte limbaj maşină. Alfabetul unui astfel de limbaj este format de simboluri aparţinând mulţimii {0,1}.

Enunţurile formulate de cunoscătorii limbajelor maşină şi adresate unităţii centrale de prelucrare şi comandă în vederea decodificării şi execuţiei se compun din ordine (comenzi) destinate procesorului pentru a efectua, în ultimă analiză, diverse calcule aritmetico-logice sau transferuri de date între memoria principală şi memoria secundară. Pentru a se mări productivitatea în programare s-au specificat o serie de limbaje al căror alfabet coincide în mare parte cu alfabetul limbajelor naturale, făcându-se, prin aceasta, loc programării simbolice, mult mai aproape de modul de gândire al oamenilor decât programarea în limbaj maşină. În această categorie intră: limbajele de asamblare, limbajele de programare de nivel înalt iar, mai recent, limbajele de programare vizuale.

Tendinţa permanentă în definirea limbajelor de programare este de apropiere de limbajul natural. Apropierea de modul de gândire al oamenilor a generat, implicit, o îndepărtare de modul în care lucrează un sistem de calcul electronic. Acesta este motivul pentru care un program scris într-un limbaj care nu este limbaj maşină suferă un proces de translatare (de regulă în mai multe etape) de la codul sursă la codul executabil de către unitatea centrală de prelucrare şi comandă al sistemului de calcul electronic. Astfel că, într-un limbaj de programare de nivel înalt (categorie în care intră şi limbajul Pascal asupra căruia ne vom îndrepta atenţia în continuare) drumul de la enunţul problemei până la forma executabilă a programului care o rezolvă este similar celui descris:

• enunţul problemei • stabilirea algoritmului • prezentarea soluţiei specificată în pseudocod

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

195

• codificarea soluţiei specificată în pseudocod în limbajul de programare ales • editarea codului sursă pentru găsirea soluţiei • translatarea codului sursă în cod executabil • execuţia codului executabil şi afişarea soluţiei În practica programării operaţia de translatare este realizată de nişte "programe speciale"

numite compilatoare sau, uneori, interpretere. Datele de intrare pentru compilator sau interpreter sunt reprezentate de codul sursă al soluţiei unei probleme (cod recunoscut de compilator sau interpreter).

Etapele parcurse de codul sursă până la obţinerea codului executabil cu ajutorul unui compilator sunt :

• Analiza lexicală a programelor, are ca scop descompunerea codului sursă în unităţi lexicale (numite token-uri) specifice limbajului recunoscut de compilator (cuvinte rezervate, identificatori, constante, etc.).

• Analiza sintactică, are ca scop verificarea corectitudinii sintactice a codului sursă. Existenţa acestei faze dovedeşte faptul că obţinerea codului sursă corect al unei aplicaţii-utilizator este un demers întemeiat pe respectarea unor exigenţe de natură sintactică. Pentru începători aceste exigenţe sunt percepute ca nişte constrângeri care pot diminua drastic apetitul pentru exerciţiul de a realiza programe adevărate şi utile.

• Verificare semantică, se referă la anumite compilatoare care pot semnala situaţii contraproductive de genul: "tip de dată declarat şi nefolosit, variabilă declarată şi nefolosită, etc".

• Generare cod intermediar, reprezintă în această fază, codul acceptat lexical, sintactic şi semantic este transformat în cod binar intermediar.

• Optimizare cod şi Generare cod executabil, sunt două faze în urma cărora, în cazul compilatoarelor moderne (cum este cazul şi la compilatorul Borland Pascal) se generează cod executabil optimizat. Optimizarea codului se referă, în esenţă, la memoria RAM ocupată de cod (lungimea codului generat, în octeţi) şi la viteza de execuţie a codului generat.

7.4. PROIECTAREA LIMBAJELOR DE PROGRAMARE

7.4.1. Procesul de creare a software-ului

Limbajele de programare sunt instrumente pentru scrierea de programe,iar prin proiectarea şi

implementarea lor respectă etapele componente ale acestui proces. Realizarea unui limbaj nou este structural identică cu realizarea unei aplicaţii software complexe, prin faze bine definite ale procesului de creare .

1. Analiza şi specificarea cerinţelor - Orice aplicaţie software este concepută pentru a veni în sprijinul unui anumit grup de utilizatori potenţiali. Cerinţele sunt stabilite sub forma unui document care trebuie să precizeze ceea ce trebuie să facă aplicaţia respectivă şi nu cum. La elaborarea documentului participă atât potenţialii utilizatori, cât şi specialiştii în dezvoltarea de software. Acest document conţine specificaţii privind manualele utilizator, studii de cost şi fezabilitate, cerinţe privind performanţele ş.a.

2. Proiectarea şi specificarea - De la cerinţele specificate în faza precedentă, echipa care realizează această etapă (proiectanţii de software) realizează specificaţiile de proiectare, care identifică fiecare modul al sistemului, precum şi interfeţele dintre module. Metodologia de proiectare utilizată în această fază are o mare importanţă pentru alegerea limbajului de programare utilizat în faza imediat următoare.

3. Implementarea - Această fază este singura în care este utilizat explicit un limbaj de pro-gramare. Implementarea înseamnă scrierea de unităţi de program corespunzătoare modulelor descrise în specificaţiile de proiectare şi editarea documentaţiei corespunzătoare. Rezultatul acestei faze este un sistem implementat şi documentat complet.

4. Certificarea - Scopul acestei etape este verificarea cerinţelor impuse în prima etapă şi se realizează de obicei prin testarea sistemului în raport cu fiecare cerinţă specificată, utilizându-se o

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

196

baterie de teste, adică un set de programe (când este vorba de un limbaj de programare) sau un set de exemple (când este vorba de o aplicaţie oarecare) care acoperă toate necesităţile impuse. Din punctul de vedere al testării, nu se poate face o distincţie clară între fazele 3 şi 4. Astfel, este normal ca în faza de implementare să se realizeze testarea la nivel de modul, efectuată de fiecare programator, şi parţial testarea interfeţelor inter-module (testarea de integrare), care se realizează prin legarea câtorva dintre modulele aplicaţiei. În faza de certificare se realizează testarea sistemului, care verifică sistemul în ansamblul său. Rezultatul acestei faze este un sistem verificat şi certificat complet, livrabil utilizatorilor.

5. Întreţinerea - După intrarea în exploatare a aplicaţiei, pot apare necesare modificări în aceasta, provocate fie de detectarea unor erori nedepistate în faza 4, fie de dorinţa de a-i adăuga noi specificaţii (cerinţe). De obicei, costul întreţinerii unei aplicaţii întrece costul tuturor celorlalte faze (1-4) luate împreună.

Toate fazele de dezvoltare a unui sistem software pot fi realizate cu ajutorul calculatorului. In mod normal, faza de implementare necesită prezenţa calculatorului şi a unui set de utilitare (editoare de texte, asambloare, link-editoare, biblioteci), dar şi în celelalte faze utilizarea calculatorului este benefică, mărind productivitatea muncii.

În general, orice produs software trebuie să satisfacă următoarele cerinţe: - să fie fiabil; - să fie uşor de întreţinut; - să se execute eficient.

7.4.2. Aspecte ale calităţii softului

Toată lumea doreşte ca programele să fie: rapide, fiabile, uşor de folosit, lizibile, modulare,

structurate etc. Calitatea produselor program se defineşte ca o compunere a mai multor trǎsături, factori de

calitate care sunt factori externi şi factori interni. Factorii externi de calitate sunt sesizaţi de cei care interacţionează direct cu produsul final şi care cumpără produsul, contractează dezvoltarea şi întreţinerea lui. Factorii interni de calitate se pot detecta doar de către persoanele implicate în procesul de dezvoltare de software.

Factorii externi de calitate sunt enumeraţi mai jos: 1. Corectitudinea, este abilitatea produsului de a executa exact sarcinile sale, în conformitate cu

cerinţele şi specificarea sa. 2. Robusteţea, este abilitatea sistemului de a funcţiona chiar şi în condiţii anormale. Termenul

fiabilitate este folosit uneori în loc de robusteţe; trebuie precizat că fiabilitatea este un concept mai general şi se interpretează cel mai bine ca acoperind atât corectitudinea cât şi robusteţea.

3. Extensibilitatea, este uşurinţa cu care produsele software se pot adapta la schimbări ale specificaţiilor.

Două principii sunt esenţiale pentru îmbunătăţirea extensibilităţii: a. Simplitatea proiectului: o arhitectură mai simplă va fi întotdeauna mai uşor de adaptat la

modificări decât una complicată. b. Descentralizarea: cu cât sunt mai autonome modulele într-o arhitectură software, cu atât

va fi mai mic numărul de consecinţe ale unei modificări simple; ea va trebui să afecteze doar modulul în cauză sau un număr cât mai mic de alte module.

4. Reutilizabilitatea, este abilitatea produselor software de a fi reutilizate, în întregime sau parţial, la noi aplicaţii.

5. Compatibilitatea, este uşurinţa cu care produsele software pot fi combinate între ele (pot interacţiona).

6. Eficienţa, înseamnă folosirea raţională (buna folosire) a resurselor hardware ca: procesoare, memorie internă şi externă, dispozitive de comunicare.

7. Portabilitatea, este uşurinţa cu care produsele software se pot transfera în diverse medii hardware şi software.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

197

8. Verificabilitatea, este uşurinţa de elaborare a procedurilor de acceptare (în particular date de test) şi a procedurilor de detectare şi trasare (transformare în erori) a căderilor (failures) în timpul fazelor de validare şi exploatare.

9. Integritatea, este abilitatea produselor software de a-şi proteja componentele lor (pro-grame, date, documente) faţă de accese şi modificări neautorizate.

10. Uşurinţa în utilizare, se referă la învăţarea utilizării sistemului, operarea, pregătirea datelor de intrare, interpretarea rezultatelor şi recuperarea din situaţii de eroare.

Factorii interni de calitate sunt strâns legaţi de natura intimă a procesului de elaborare a produselor program, în mod esenţial, aici contribuie:

- metodele de analiză şi proiectare a produselor program; - facilităţile oferite de limbajele de programare folosite la implementare; - aspectele organizatorice ale industriei soft; Ca factori interni de calitate menţionăm: 1. Modularitatea. Structural, produsul program trebuie să fie alcătuit din module, urmărindu-se

principiul descentralizării. 2. Documentarea completă trebuie să clară şi adusă la zi pentru fiecare fază a ciclului de viaţă a

programului. Un limbaj de programare fiabil trebuie să posede următoarele calităţi: • să permită o descriere cât mai naturală a problemei care se rezolvă, permiţând

programatorului să se concentreze asupra problemei, şi nu asupra detaliilor de adresare, indexare; • să aibă un grad de lizibilitate cât mai ridicat, adică un program să poată fi uşor de descifrat

(sintactic şi semantic) de oricine îl consultă; • să permită gestiunea excepţiilor (depăşiri aritmetice, erori de intrare-ieşire etc).

7.4.3. Criterii de proiectare a unui limbaj de programare Există 11 criterii de care trebuie să se ţină seama la proiectarea unui limbaj de programare: 1. O descriere sintactică şi semantică bine definită. Descrierea sintactică se poate realiza cu mai multe metode (forma Backus-Naur, grafele de

sintaxă, gramaticile context-free). Semantica poate fi, la rândul ei, descrisă interpretativ (engl. interpretive semantics) cu ajutorul unei maşini abstracte, axiomatic (engl. axiomatic semantics) atunci când se foloseşte un set de axiome, sau denotaţional (engl. denotational semanlics; programele sunt definite ca funcţii matematice.

Descrierea interpretativă este utilă la implementarea limbajului, descrierea axiomatică este un prim pas spre verificarea programelor, iar cea denotaţională este folosită la studiul unui limbaj, independent de implementări.

2. Fiabilitate, în afară de calităţile enumerate, prin fiabilitate se mai înţelege şi faptul că limbajul este proiectat astfel încât descurajează greşelile de programare (atât cele sintactice, cât şi cele de logică).

3. Traducere rapidă. Prin intermediul programelor traducătoare se realizează decodificarea unui program sursă şi obţinerea codului maşină corespunzător. Sunt dezvoltate multe metode de analiză sintactică, în general această operaţie de traducere realizându-se într-unul sau mai mulţi paşi.

4. Cod obiect eficient este un criteriu esenţial pentru un compilator. Eficienţa codului obiect generat de un compilator este în strânsă legătură cu informaţiile de care compilatorul dispune în momentul compilării. De exemplu, limbajul Pascal necesită cunoaşterea tuturor detaliilor în faza de compilare. Un limbaj se numeşte puternic tipizat (engl. strong typed) dacă tipul tuturor expresiilor este cunoscut la compilare. De obicei dacă alocarea variabilelor se face static, atunci se poate genera un cod eficient, pe când dacă acest lucru este făcut dinamic (în timpul execuţiei), atunci eficienţa codului scade, rămânând mai multe acţiuni de efectuat la momentul execuţiei.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

198

5. Ortogonalitatea, se referă la faptul că limbajul posedă un număr relativ mic de elemente de bază, independente, care pot fi aplicate ortogonal (elementele se pot utiliza independent sau concatenate).

6. Independenţa de maşină, este un deziderat apărut odată cu conceptul de portabilitate, concept care exprimă proprietatea unui program sursă de a putea fi implementat în medii hard şi soft diferite fără a fi supus modificărilor sau cel mult să fie supus unor modificări minime. Dificultăţile întâlnite în realizarea acestei cerinţe sunt datorate între altele aritmeticii maşinii, dimensiunii cuvântului maşină şi sistemului de codificare a caracterelor şi instrucţiunilor maşină, precum şi sistemului de intrări/ieşiri.

7. Demonstrabilitatea, reprezintă cerinţa ca un limbaj să fie demonstrabil fiind strâns legată de aspectele privind corectitudinea programelor.

8. Consistenţa, a două sau mai multe afirmaţii reprezintă compatibilitatea logică a acestora, în limbajele de programare se urmăreşte consistenţa notaţiilor folosite pentru operaţii sau funcţii cu cele folosite în limbajul matematic.

9. Existenţa subseturilor. Ideea de bază a apariţiei subseturilor este că nu se impune cunoaşterea întregului limbaj atunci când se utilizează doar o parte din specificaţiile lui. Există însă şi dialecte ale unui limbaj. Toate aceste dialecte au în comun acelaşi subset al limbajului. Ele însă diferă prin ceea ce s-a adăugat la acest subset, în special fiind vorba de instrucţiuni grafice sau de generare a sunetelor.

10. Uniformitatea este conceptul după care lucrurile similare trebuie să aibă înţelesuri similare, sau, construcţii asemănătoare din punct de vedere sintactic trebuie să aibă înţelesuri cât mai apropiate. 11. Extensibilitatea, reprezintă un motiv pentru care apare această cerinţă în general translatoarele sunt forţate să aleagă, pentru un anumit obiect de un tip precizat, o reprezentare prestabilită, fapt care contribuie la scăderea eficientei codului.

Aceste 11 criterii trebuiesc considerate doar ca linii generale în proiectarea specificaţiilor unui nou limbaj. Domeniul de utilizare al limbajului respectiv poate să stabilească prioritatea unora dintre cerinţele enumerate şi eventuala renunţare la altele.

Există diverse soluţii pentru realizarea unui nou limbaj de programare şi pentru impunerea cerinţelor specificate. Compilarea rapidă se poate obţine utilizându-se compilarea separată, adică posibilitatea de a compila în momente de timp diferite părţi separate (module) ale unei aplicaţii. Super-seturile Pascal ale firmei Borland (Turbo şi Borland Pascal) utilizează module numite unit-uri care se compilează separat.

Principalele dezavantaje al unui compilator optim sunt încetineala şi consumul sporit de resurse. Nu există o regulă generală în ceea ce priveşte etapele care trebuie parcurse pentru proiectarea unui limbaj de programare. Horowitz recomandă metoda celor 10 paşi, ilustrată mai jos:

1. alegerea unui domeniu de aplicaţii; 2. stabilirea unui comitet (grup) de proiectanţi cât mai mic; 3. definirea unor trăsături precise de proiectare; 4. distribuirea primei versiuni a proiectului unui grup restrâns de persoane interesate; 5. revizuirea definiţiei limbajului (după primirea observaţiilor de la 4); 6a. încercarea de a realiza un prototip de compilator; sau 6b. încercarea de a obţine o definiţie formală a semanticii limbajului; 7. revizuirea definiţiei limbajului (a doua revizuire); 8. realizarea unui manual al limbajului, clar şi concis, şi distribuirea acestuia; 9. producerea unui compilator de calitate şi distribuirea lui pe scară largă; 10. scrierea unor manuale de învăţare (engl. primers), foarte clare, care să explice cum se

utilizează limbajul şi care să conţină un număr mare de exemple.

7.5. EVOLUŢIA Şl CLASIFICAREA LIMBAJELOR DE PROGRAMARE Prin limbaj de programare înţelegem o notaţie sistematică prin care este descris un proces de

calcul. Rolul unui limbaj de programare este de a pune la dispoziţia programatorilor construcţii

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

199

sintactice pentru organizarea calculelor. Procesul de calcul este constituit dintr-o mulţime de paşi pe care o maşină îi poate executa pentru a rezolva o anumită problemă, paşi care sunt exprimaţi în comenzi elementare pe care maşina (calculatorul) ştie să le execute. Pentru descrierea procesului de calcul este necesară cunoaşterea setului de comenzi (instrucţiuni) al maşinii la care ne referim.

7.5.1. Limbaj maşină. Limbaj de nivel înalt

Limbajul nativ al unui computer este aşa-numitul limbaj maşină al tipului de calculator

respectiv, acest limbaj reprezentând notaţia la care calculatorul răspunde în mod direct. Setul de comenzi elementare al unui calculator este constituit din: - operaţii aritmetice şi logice; - operaţii de intrare-ieşire; - unele funcţii speciale, numite funcţii de control. Comenzile şi instrucţiunile limbajului maşină sunt scrise într-o formă codificată, foarte

compactă, fapt ce îngreunează foarte mult înţelegerea textului sursă. Din păcate, limbajul maşină este foarte legat de arhitectura fizică a maşinii, fiind constituit din succesiuni de codificări binare.

Datorită apropierii de maşină, executarea unei operaţii complexe necesită scrierea unei secvenţe lungi de instrucţiuni şi comenzi.

Limbajul de asamblare al unui calculator face din acest punct de vedere un pas înainte prin atribuirea de nume simbolice (aşa numitele mnemonici) codificărilor operaţiilor maşinii, precum şi locaţiilor de memorie asociate. Limbajele maşină şi cele de asamblare se numesc limbaje de nivel scăzut.

Aceste limbaje sunt foarte departe de limbajul natural, aşa că s-a căutat elaborarea altor limbaje, mai apropiate de exprimarea naturală. Rezultatul este ceea ce numim acum limbaje de programare de nivel înalt (engl. high-level programming languages, echivalate uneori cu termenul de limbaje de programare). Aceste limbaje utilizează notaţii mai puţin primitive decât limbajele de asamblare, în care exprimarea acţiunilor de urmat devine uşoară, clară şi concisă.

Nivelul înalt are semnificaţia unei distanţări suficient de mari faţǎ de nivelul de exprimare al maşinii. Un limbaj de nivel înalt măreşte considerabil numărul celor ce vor utiliza echipamentele disponibile la un moment dat. Putem spune că proiectarea şi implementarea limbajelor de programare este activitatea capitală de a cărei calitate depinde lărgirea comunităţii programatorilor care să poată realiza eficient dezvoltarea unor aplicaţii de larg interes.

Orice notaţie utilizată care este diferită de limbajul maşină nu poate fi executată direct, ea trebuind să fie tradusă în limbajul maşină al calculatorului gazdă. Activitatea de traducere (numită generic translatare) este preluată de programe specializate numite compilatoare (dacă textul sursă iniţial este scris într-un limbaj de nivel înalt) sau asambloare (dacă textul sursă este scris în limbaj de asamblare).

Etapele tehnologiei de programare presupune trecerea de la codul unui program sursă (PS) scris într-un limbaj de programare, prin programul obiect (PO) la un program obiect executabil (POE) care poate fi înţeles de calculator (fig.7.2.)

Operaţia de traducere (translatare) corespunde transformării progarmului sursă în programul obiect (fig. 7.2.b.).

Operaţia de interpretare realizează direct trecerea din progarm sursă în program obiect executabil (fig. 7.2.c.) şi este specifică limbajelor cu program interpretor ca limbajul BASIC. Este specific şi operaţiei de asamblare prin programul asamblor (cod maşină), obţinându-se un program direct executabil, ca în cazul limbajului de asamblare (ASSEMBLER, M80).

Operaţia de compilare corespunde unui program compilator ca în cazul limbajelor PASCAL, C, FORTRAN (fig. 7.2.d.).

Execuţia unui program se poate realiza în două moduri : - cu ajutorul unui COMPILATOR

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

200

• după verificările de corectitudine, traduce programul în cod OBIECT, iar prin operaţia de ediţie de legături este convertit într-un program OBIECT EXECUTABIL înţeles de maşină,

• după conversie programul poate fi utilizat independent, indiferent de limbajul în care a fost scris.

Figura 7.2. a. etapele tehnologiei de programare, b. translatarea, c. interpretarea, d. compilarea. În acest mod sunt realizate utilitarele cele mai performante. - prin intermediul unui INTERPRETOR

• conversia nu mai este necesară,execuţia făcându-se pe măsura verificării şi traducerii programului fără a mai ieşi din interpretor,

• metoda nu este foarte eficientă Deficienţe :

necesitatea încărcării limbajului în memorie la fiecare execuţie, viteza de lucru sensibil scăzuta datorită diferitelor verificări şi controale.

Datorită interpunerii compilatoarelor şi asambloarelor este evident că odată cu creşterea clarităţii şi accesibilităţii, limbajele de programare de nivel înalt aduc cu ele şi o scădere a performanţei de execuţie faţă de variantele de program scrise direct în limbaj maşină. Aceste scăderi se manifestă pe două planuri:

• timp maşină cerut de procesul de compilare; • codul rezultat în urma translatării este de obicei mai lung şi necesită mai mult timp de

execuţie decât varianta codificată direct în limbaj maşină. Trecerea la utilizarea pe scară largă a limbajelor de nivel înalt a adus cu sine o caracteristică

foarte importantă a programelor scrise în astfel de limbaje: portabilitatea, adică posibilitatea ca programele să fie rulate pe arhitecturi de calcul de tipuri diferite fără ca programele sursă să fie supuse unor modificări (sau cel mult să fie supuse unor modificări cu totul minore). Acest moment a fost foarte important pentru dezvoltarea unei comunităţi de programatori, pentru răspândirea soft-ului şi pentru crearea de biblioteci de programe reutilizabile.

Elementele esenţiale pe care le promovează un limbaj de programare de nivel înalt sunt: a. Modelul de calcul (computation model) Reflectă principiile de lucru ale programelor scrise în acel limbaj (am amintit în acest sens că

limbajele imperative promovează modelul de calcul von Neumann). Din acest punct de vedere un limbaj poate reflecta prin modelul de calcul adoptat arhitectura maşinii pe care rulează sau poate reflecta o arhitectură diferită.

b. Tipuri de date şi operaţii Calculatorul dispune de un set de tipuri de bază (întreg, caracter, real). Este rolul limbajului să

pună la dispoziţie mecanisme de generare a unor structuri combinate pe baza tipurilor de bază. c. Facilităţi de abstractizare Funcţiile şi procedurile reprezintă abstractizări ale operaţiilor şi acţiunilor necesare dintr-un

program. Definirea de noi tipuri de dată reprezintă o altă utilizare a facilităţilor de abstractizare: un program poate defini tipul de dată coadă, după care acest tip de dată va avea acelaşi regim ca şi tipul predefinit tablou, spre exemplu.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

201

d. Verificare Faza de compilare poate detecta pe lângă clasicele erori de sintaxă o clasă largă de erori

posibile la execuţie: de exemplu, o incompatibilitate de tip (de exemplu, încercarea de utilizare a unei variabile întregi pe post de variabilă de tablou), chiar dacă nu este o eroare tipică de sintaxă, face parte din categoria erorilor de execuţie detectabile în faza de compilare. Aşadar, faza de translatare, în ciuda unor dezavantaje menţionate anterior, sporeşte siguranţa programelor procesate.

Majoritatea limbajelor de nivel înalt (Pascal, C, Modula, FORTRAN, ALGOL, Oberon) reflectă la orice nivel acest principiu, din această cauză ele numindu-se limbaje dirijate de control (control-flow languages), adică limbaje în cadrul cărora execuţia este dirijată de instrucţiuni de control al execuţiei (instrucţiuni care dirijează fluxul modificărilor celulelor de memorie la care programul are acces). Dintre aceste instrucţiuni, rolul central îl are instrucţiunea de atribuire, iar limbajele dirijate de control se mai numesc şi limbaje imperative (termen derivat din caracterul "imperativ", tranşant, ferm, al acţiunii instrucţiunilor de atribuire). Un limbaj de programare imperativ poate fi privit ca o extensie a tipului de arhitectură hard pe care se implementează, iar un program poate fi privit ca o extensie a limbajului de programare respectiv.

7.5.2. Generaţii de limbaje

Un sumar al evoluţiei în timp a limbajelor de programare s-ar putea exprima astfel: 1954-1958 Limbaje de prima generaţie (FORTRAN I, ALGOL58). Acestea au meritul de a fi

făcut pasul decisiv de la limbajul de asamblare la limbajele de nivel înalt. 1959-1961 Limbaje de generaţia a doua (ALGOL60, FORTRAN II, Cobol, Lisp). Sunt

considerate limbaje stabile, durabile, care se utilizează intens şi astăzi. Influenţa ALGOL60 a fost imensă în dezvoltarea limbajelor Pascal, PL/1, Simula şi Ada.

1962-1971 Limbaje de generaţia a treia (PL/1, ALGOL68, Pascal, Simula). ALGOL60 reprezintă un pas înainte faţă de succesorii săi. Limbajul PL/1 a combinat elemente de FORTRAN, ALGOL şi COBOL rezultând un limbaj puternic, dar mult prea complex, deosebit de dificil de învăţat şi de implementat, încercarea limbajului ALGOL68 de a generaliza limbajul ALGOL60 a fost caracterizată drept elegantă dar neacceptată practic de marea masă a programatorilor. Limbajul Pascal, deşi cu un enorm succes din punct de vedere didactic, nu este considerat nici astăzi suficient de robust pentru utilizare la scară industrială.

1972-1979 Limbaje de generaţia a patra (CLU, CSP, Ada, Smalltalk). Au avut o răspândire şi mai redusă decât cele de generaţia a treia, justificând pe bună dreptate denumirea acestei perioade drept "gol de generaţie" (generation gap). Această perioadă a fost însă o perioadă de cercetare intensă şi de reevaluare a obiectivelor proiectării limbajelor de programare. Criza software de la sfârşitul anilor '60 a condus la o schimbare de optică în acest sens, accentul căzând pe structurare. La nivel micro acest lucru s-a făcut prin eliminarea instrucţiunilor goto şi înlocuirea lor cu instrucţiuni de tip while, iar la nivel macro s-a pus mare accent pe modularizarea programelor prin utilizarea intensivă de funcţii şi proceduri şi prin promovarea conceptului de abstractizare a datelor.

1980-1990 Paradigme ale limbajelor de programare. Deceniul al nouălea se caracterizează printr-o intensă activitate de cercetare, concentrată nu atât pe studiul şi dezvoltarea unor limbaje particulare, cât pe studiul paradigmelor asociate claselor de limbaje. În acest sens, se remarcă clasele de limbaje funcţionale, logice, orientate obiect şi distribuite, ele reprezentând şi cele patru paradigme de programare cel mai intens studiate la ora actuală.

7.5.3. Paradigme de programare

Paradigmele de programare sunt colecţii individualizate de caracteristici de evaluare şi

criterii de abstractizare care determină şi diferenţiază clasele de limbaje de programare. Ca exemple de astfel de criterii amintim structura programului, noţiunea de stare a execuţiei, metodologia programării etc.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

202

În 1990 Wegner dă următoarea clasificare relativ la paradigmele de programare acceptate şi la exponenţii lor cei mai reprezentativi:

a. paradigma programării procedurale şi structurate. Este caracterizată prin faptul ca un program este privit ca o mulţime ierarhică de blocuri şi proceduri. Exponent: ALGOL60.

b. paradigma programării bazate obiect şi orientată obiect. Un program este constituit dintr-o colecţie de obiecte care interacţionează. Exponenţi: Simula, Smalltalk, C++.

c. paradigma programării concurente şi distribuite. Execuţia unui program este constituită din acţiuni multiple posibil a fi executate în paralel pe una sau mai multe maşini. Execuţia acţiunilor poate fi independentă sau acţiunile pot depinde una de alta, situaţie în care este nevoie de primitive de sincronizare şi comunicare.

d. paradigma programării funcţionale. Un program este descris pe baza unor funcţii de tip matematic (în sensul lipsei efectelor secundare), utilizate de obicei recursiv.

e. paradigma programării logice. Un program este descris printr-un set de relaţii între obiecte precum şi de restricţii ce definesc cadrul în care funcţionează acele obiecte. Execuţia înseamnă aici activarea unui proces deductiv care va furniza concluzii posibile pe baza datelor de intrare.

f. paradigma programării la nivelul bazelor de date, Acţiunile programului sunt dictate de cerinţele unei gestiuni corecte şi consistente a bazelor de date asupra cărora acţionează programul.

Paradigmele prezentate nu sunt mutual exclusive. Astfel de limbaje se numesc sisteme multiparadigmă (MP).

Limbajele PL/1 şi Ada reprezintă două bune exemple în acest sens, rezultatul fiind în ambele cazuri un limbaj foarte complex care a slăbit aplicabilitatea paradigmelor constituente printr-o inadecvată generalizare a acestora.

Viitorul în această direcţie este privit ca fiind al sistemelor distribuite cu independenţă individuală sporită (loosely coupled distributed systems), capabile sa suporte subsisteme MP cooperante.

7.5.3.1. Ciclul de viaţă şi paradigmele dezvoltării software

O greşeală obişnuită facută în privinţa software-ului este presupunerea că partea principală a dezvoltării software este programarea (codarea). Programarea (codarea) este doar o parte a procesului de dezvoltare software. Mulţi alţi paşi sunt implicaţi în succesul dezvoltării de software pentru computere. Toţi aceşti paşi poartă denumirea de ciclu de viaţă software. Cea mai mare parte a modelelor ciclului de viaţă software includ următoarele şase etape: ingineria cerinţelor, proiectare, codare, integrare, livrare şi întreţinere. În continuare se vor descrie fiecare dintre aceste procese. Ingineria cerinţelor. În timpul acestui proces, proiectanţii şi clienţii se întâlnesc pentru a discuta ideile pentru noul produs software. Proiectanţii utilizează o varietate de tehnici pentru a aprecia necesităţile reale ale clientului. O asemenea tehnică este prototiparea rapidă, în care se construieşte un model prototip care poate simula funcţionarea software-ului dorit. Procesul ingineriei cerinţelor este complet când sunt scrise specificaţiile pentru noul produs software într-un document formal denumit documentul specificaţiilor cerinţelor. Proiectarea. În timpul acestui proces proiectanţii decid cum vor construi programul astfel încât să satisfacă cerinţele prevăzute în documentul specificaţiilor cerinţelor. Proiectarea programului trece prin câteva stadii, în care se divide din ce în ce mai detaliat, constituind rafinarea în paşi şi permite programatorilor să conducă complexitatea software-ului prin amânarea deciziilor privind detaliile pentru a se concentra pe alte aspecte importante ale proiectării. Când proiectarea este completă, este înregistrată în documentul specificaţiilor de proiectare. Codarea În timpul acestui proces, echipele de programatori scriu codul pentru software. Software-ul este împărţit în unităţi separate denumite module, datorită complexităţii procesului de codare. Aceste echipe sunt responsabile atât pentru codarea modulelor lor, cât şi pentru documentarea adecvată a codului şi pentru testarea acestuia în vederea asigurării corectitudinii.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

203

Integrare. În timpul acestui proces, modulele individuale ale produsului software sunt combinate pentru a forma produsul software. Deoarece modulele au fost dezvoltate separat, testarea este cruciala pentru procesul de integrare. Chiar şi în cazul unui proiect bun, este posibil să existe imcompatibilităţi între module. Livrare În timpul acestui proces, proiectanţii livrează clientilor software-ul complet. De obicei clienţii vor realiza teste asupra software-ului pentru a determina dacă satisface sau nu cerinţele din documentul specificaţiilor cerinţelor. O dată software-ul acceptat, acesta este instalat şi utilizat de către client. Întreţinere. În timpul acestui proces, software-ul suferă variate modificări după livrare pentru a repara erori, adaugă noi funcţionalităţi, instalează software-ul pe noi platforme, sau adaptează software-ul la noi tehnologii. Deşi s-ar parea că software-ul trebuie să fie finalizat înainte de livrare, aceasta este departe de adevăr. Mulţi ani produsele software au fost realizate pe principiul programării structurate, metodă care are la bază realizarea secvenţială a operaţiilor de calcul în conformitate cu principiul de lucru al echipamentelor hardware ale calculatoarelor. În acest gen de programe datele şi programul sunt separate, ceea ce duce la necesitatea scrierii de subrutine pentru realizarea driverelor, operaţiilor cu date, multe task-uri. Task-urile lucrează serial şi secvenţial. Acest mod de realizare a software-ului se numeşte paradigma procedurală sau a programării structurate. Această paradigmă are avantajul unui program compact, o execuţie rapidă şi dejavantaje cum ar fi slaba flexibilitate a programelor, reutilizare scăzută, depanare dificilă. Dintre toate procese descrise, întreţinerea este dominantă în privinţa costurilor din cadrul ciclului de viaţă. Deoarece costurile de întreţinere sunt atât de importante (cca. 60-70%), mulţi proiectanţi încep să utilizeze metode de proiectare care duc la software care este mai uşor de întreţinut. O asemenea metodă este paradigma programării orientată pe obiect. Principala caracteristică a acestei paradigme este cuprinderea în acelaşi task şi a datelor şi a funcţiilor ce lucrează cu acestea, formând o clasă de obiecte. În felul acesta programarea se face pe obiecte câştigând flexibilitate şi reusabilitate, dar devine mai abstractă. Au fost create multe modele diferite pentru a reprezenta ciclul de viaţă software. Deşi aceste modele utilizează nume diferite pentru procesele ciclului de viaţă, toate includ cele şase procese descrise mai sus. În plus, aceste modele de obicei accentuează alte câteva aspecte ale dezvoltării software, cum ar fi : o anumită tehnică de proiectare (de exemplu, prototiparea rapidă), tehnici de management (de exemplu, managementul riscului) sau modelul descrie un domeniu limitat de dezvoltare software (de exemplu, software în timp-real).

7.5.3.2. Paradigma programării structurate

Probabil cea mai cunoscută metodă a dezvoltării de software este paradigma programării structurate. Brookshear în 1997 a spus ca paradigma programării structurate "reprezintă abordarea tradiţională a procesului de programare. Într-adevăr, paradigma programării structurate este cea pe care se bazeaza un ciclu CPU "fetch-decode-execute" (preia-decodifică-execută). Aşa cum spune şi numele, paradigma programării structurate defineşte procesul de programare ca fiind o dezvoltare de succesiuni de comenzi care, atunci când sunt urmate, manipulează datele pentru a produce rezultatul dorit." Se observă că paradigma programării structurate abordează dezvoltarea de software într-o manieră care se potriveşte cu hardware-ul de bază al unui calculator PC. Procesorul computerului lucrează prin preluarea unei singure instrucţiuni, interpretarea şi apoi executarea acesteia. Paradigma programarii structurate se potriveşte acestei arhitecturi prin faptul ca ghidează dezvoltarea de software astfel încât să aibă o logică secvenţială. Ca rezultat, programele structurate pot fi urmărite de la început până la sfârşit astfel încât întreaga logică a programului este o serie de instrucţiuni.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

204

Aceasta conduce la programe cu eficienţă mare în execuţie. Conform paradigmei structurate problema se descompune mai întâi în subtask-uri, întreaga proiectare este divizată în unităţi logice care reprezintă module şi subrutine.

O dată realizată descompunerea proiectării în sarcini, programele individuale sunt codate, testate şi integrate pentru a forma un nou modul.

Una dintre caracteristicile de bază ale software-ului proiectat prin paradigma programării structurate este logica secvenţială, fluxul programului poate fi urmărit de la început până la sfârşit. În paradigma programării structurate relaţia dintre modulul apelant şi subprogramul apelat este întodeauna secvenţială.

7.5.3.3. Paradigma programării orientate pe obiecte

O altă paradigmă importantă a dezvoltării sfotware este paradigma programării orientate pe obiecte. În timp ce paradigma programării structurate se bazează pe task-uri, adică se concentrează asupra acţiunilor pe care trebuie să le realizeze software-ul, paradigma programării orientate pe obiect se bazează pe task-uri şi pe date. Astfel, paradigma programării orientate pe obiect grupează împreună date şi task-uri relavante în entităţi cunoscute ca obiecte. Să considerăm exemplul unei liste de numere. După cum spune Brookshear, "în paradigma programării structurate tradiţionale, această listă este considerată doar o colecţie de date. Orice program care accesează această listă trebuie să conţină algoritmii pentru realizarea manipulărilor necesare. Astfel, lista este pasivă în sensul că este întreţinută de către un program de control şi nu are responsabilitatea de a se întreţine singura."

Paradigma programării orientate pe obiecte tratează lista şi operaţiile asociate ca o entitate cunoscută, ca un obiect. Brookshear spune că: "În paradigma programării orientate pe obiect, lista este considerată un obiect cuprinzând lista împreună cu o colecţie de rutine pentru manipularea listei. Acestea pot include rutine pentru introducerea unui nou element în listă, detectarea dacă lista este goală şi sortarea listei. În schimb, programul ce accesează această listă nu trebuie să conţină algoritmii pentru realizarea acestor task-uri, deoarece utilizează rutinele obiectului. Într-un fel, în loc să sorteze lista ca în paradigma programării structurate, programul cere listei să se sorteze singură". Astfel, paradigma programării orientate pe obiecte se bazează pe task-uri deoarece lucrează cu operaţii cum sunt introducreea unui nou element în listă sau detectarea dacă lista este goală. Oricum, se bazează şi pe date deoarece aceste operaţii sunt grupate împreună cu datele relevante.

Un obiect generic din paradigma programării orientate pe obiecte conţine date private care corespund listei şi metode ce corespund opearaţiilor cu lista cum ar fi introducerea unui nou element în listă, detectarea dacă lista este goală şi alte operaţi asupra listei. Nu toate obiectele vor folosi o lista pentru organizarea datelor sale. Unele obiecte pot conţine doar tipuri de bază de date cum ar fi intregi, caractere, numere reale, în timp ce alte obiecte pot conţine tipuri coplexe de date cum ar fi arbori sau grafuri.

Metodele obiectului pot fi operaţii care accesează sau manipulează date privateale obiectului. Programele care doresc să utilizeze un obiect pot accesa metodele obiectului printr-o interfaţă. Interfaţa specifică modul de transmitere a unui mesaj la obiect, adică o cerere pentru realizarea unei anumite operaţii.

În continuare se prezintă câteva definiţii de bază care sunt importante pentru paradigma programării orientate pe obiecte.

Obiect = o colecţie de date private şi un set de operaţii care pot fi realizate cu datele. Metoda = o operaţie de accesare sau manipulare a datelor dintr-un obiect. Mesaj = o cerere de realizare a unei anumite acţiuni de către un anumit obiect. Interfaţa = o colecţie de metode care specifică modul de trimitere a mesajele către un obiect. Încapsulare = utilizatorul vede doar serviciile care sunt disponibile pentru un obiect, nu şi

modul în care sunt implementate acestea.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

205

Ideea de încapsulare presupune ca obiectul poate fi privit din două perspective diferite. Aceste perspective sunt denumite perspectiva abstractă şi perspectiva implementării.

Perspectiva abstractă este ceea ce utilizatorul vede atunci când utilizează obiectul. Din această perspectivă intefaţa obietului este vizibilă dar sunt invizibile detaliile privind modul în care obiectul îşi execută metodele sau îşi stochează datele private.

Perspectiva implementării este ceea ce vede proiectantul obiectului. Din această perspectivă sunt dezvăluite toate detaliile. În timp ce aceste detalii sunt importante pentru proiectantul obiectului, utilizatorii acestuia nu au nevoie de ele. De fapt, ar fi mult mai bine ca celelalte module software să nu exploateze cunoştiintele speciale despre modul de implementare a obiectului, pentru cazul în care proiectantul decide ulterior să modifice modul de implementare al obiectului. De exemplu, proiectantul poate decide să utilizeze un al tip de date pentru a stoca datele private. Această modificare nu trebuie să afecteze modulele care utilizează obiectul deoarece acestea accesează datele doar prin interfaţa obiectului. Atâta timp cât interfaţa obiectului rămâne aceeaşi, proiectantul poate modifica modul de implementare fără nici un risc asupra celorlalte module care utilizează obiectul. Această flexibilitate este un avantaj major pe care încapsularea îl conferă paradigmei programăarii orientate pe obiecte.

Proiectele care incorporează încapsularea sunt mult mai uşor de intreţinut decât cele care nu fac nici o separare între interfaţă şi implementare.

Pe lângă obiecte, există alte două concepte fundamentale pentru programarea orientată pe obiecte, şi anume: clasele şi moştenirea. Clasele sunt un mod de specificare de tipuri abstracte de date în paradigma programării orientate pe obiecte. Clasele diferă de conceptul tradiţional de tipuri abstracte de date prin aceea că au moştenire. Moşetenirea permite definirea de noi tipuri de date (adică clasele) ca extensie la tipurile de date definite anterior.

Pentru a ilustra aceste noi concepte vom considera obiectul listă, care stochează o listă de numere şi permite realizarea de operaţii uzuale cum ar fi inserarea unui număr, ştergerea unui număr şi sortarea listei. În general, în proiectare adesea sunt necesare mai multe liste. Un singur obiect listă nu poate stoca datele din toate listele. Dar toate listele realizează aceleaşi operaţii, deci sunt strâns legate între ele. Pentru a rezolva această problemă, proiectantul are nevoie de un tip de date listă care va servi drept şablon pentru crearea tuturor obiectelor listă. Utilizând tipul de date listă, proiectantul poate crea obiecte listă multiple, care au acelaşi comportament dar au date private proprii. În paradigma programării orientate pe obiecte, un asemenea tip de date este denumit clasă. Clasa List specifică cerinţele de stocare pentru datele private ale fiecărui obiect listă şi clasă. List defineşte şi comportamentul obiectelor prin specificarea metodelor pe care le va folosi fiecare obiect pentru a accesa şi manipula datele sale private. O dată ce proiectantul a completat clasa List, el poate utiliza această clasă pentru a crea multe obiecte listă similare. Crearea unui nou obiect listă este numită instanţiere. Fiecare obiect al listei care este instanţiat este diferit de celelalte obiecte listă şi are spaţiul său propriu pentru stocarea datelor private.

Utilizând clasele este posibilă modelarea unei mari varietăţi de entităţi, nu doar structurile simple de date prezentate până acum.

Datele private pentru clase se compun din diverse atribute care sunt specifice doar unor clase. Metodele ca şi atributele sunt specifice anumitor clase. O soluţie mai bună ar fi abstractizarea caracteristicilor commune într-o clasă separată care poate servi ca şi clasă de bază pentru mai multe clase. Acest mod de abordare a proiectării se numeşte moştenire.

Se crează o nouă clasă abstractizând atributele şi metodele commune. Nu trebuie să se facă confuzie între moştenire şi instanţiere. Moştenirea înseamnă o relaţie

între diferite clase în timp ce instanţierea înseamnă crearea unui obiect dintr-o clasă.

7.5.3.4. Comparaţie între paradigmele programării Cele două paradigme majore ale programării, şi anume: paradigma programării structurate şi

paradigma programării orientate pe obiecte urmează să fie comparate fiind scoase în evidenţă

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

206

punctele forte şi punctele slabe ale fiecăreia. Ambele paradigme sunt apreciate în concordanţă cu cele şase caracteristici ale calităţii software-ului.

Se spune ca o paradigmă a programării este caracterizată prin viziunea sa asupra procesului de descompunere. Procesul de descompunere se referă la modul în care o anumită paradigmă divide proiectul în unităţi logice. Paradigma programării structurate are o abordare orientată pe task-uri, care-şi începe sprijinul pentru procesul de proiectare atunci când se propune o soluţie pentru problema pusă. Soluţia propusă este descompusă într-o secvenţă de task-uri. Aceste task-uri formează blocurile de bază pentru o aplicaţie structurată. Aceasta înseamnă că paradigma programării structurate începe doar după ce proiectantul a identificat o soluţie posibilă. Aceasta soluţie este apoi descompusă în diferite module şi submodule logice (funcţii şi proceduri) în concordanţă cu acţiunile pe care le realizează. O dată ce este implementat proiectul, execuţia task-urilor poate fi urmărită foarte uşor de la început până la sfârşit.

Paradigma programării orientate pe obiecte asigură ciclul de viaţă complet al dezvoltării software de la analiză la proiectare. Paradigmele programării structurate asigură doar paşii de proiectare şi codare deoarece trebuie specificată o soluţie ppotenţială înainte de a putea începe descompunerea în task-uri. Paradigma programării orientate pe obiecte înlătură această restricţie asigurând o abordare cuprinzătoare a dezvoltării software. Paradigma programării orientate pe obiecte asigură o abordare din punct de vedere al modelului. Modelul este construit prin privirea domeniului problemei ca un set de entităţi care interacţionează împreună cu relaţiile dintre ele.

Entităţile sunt modelate prin proiectarea de clase pentru a instanţia obiecte. Relaţiile dintre obiecte sunt modelate prin moştenire şi prin mecanismul de comunicare prin

transmiterea de mesaje. În timp ce programele proiectate cu paradigma programării structurate sunt de fapt o secvenţă de task-uri, programele proiectate cu paradigma programării orientate pe obiecte sunt un set de obiecte care interacţionează între ele prin transmiterea de mesaje.

Cele şase caracteristici ale calităţii software asigură un alt mod prin care inginerii software să aprecieze elementele pro şi contra pentru paradigmele programării.

Utilizând aceste caracteristici, inginerii software încearcă să răspundă la întrebarea: "Această paradigmă a programării produce software care este mai mentenabil, mai fiabil, mai portabil etc?"

Mentenabilitate - Uşuinţa cu care se pot face modificări care să satisfacă noile cerinţe sau să corecteze deficienţele.

Corectitudine - Gradul în care software-ul corespunde cerinţelor specificate. Revalorificare - Uşuinţa cu care poate fi reutilizat software-ul la dezvoltarea altor produse

software. Fiabilitate - Frecvenţa eşuărilor software-ului şi cât de critice sunt aceste eşuâri. Eşuare este

un efect sau comportare neacceptabilă apărută în condiţii de operare normale. Portabilitate - Uşuinţa cu care poate fi folosit software-ul pe alte configuraţii de computere

decât cea curentă. Eficienţa - Gradul în care software-ul îşi satisface scopul fără pierdere de resurse. Mentenabilitatea. Majoritatea proiectelor orientate pe obiecte sunt mai mentenabile, avantaj

datorat în parte faptului ca paradigma programarii orientate pe obiect forţează proiectanţii să creeze obiecte încapsulate. Incapsularea înseamnă că interfaţa obiectului este separată de implementarea obiectului. Asemenea separare este foarte binevenită deoarece multe părţi ale programului pot depinde de o anumită interfaţă. Dacă trebuie făcute modificări în interfaţă, atunci vor trebui făcute multe modificări în tot programul. O proiectare orientată pe obiecte bună va minimiza modificările care trebuie făcute în interfaţă. Aşadar, mentenanţa este localizată în implementarea unui anumit obiect.

Corectitudinea se testeaza prin verificare şi validare. Verificarea răspunde la întrebarea "Construim cum trebuie software-ul?" în timp ce validarea răspunde la întrebarea "Construim software-ul care trebuie?". Există diferite tehnici de realizare a verificării şi validării software şi aceste tehnici sunt aplicabile ambelor paradigme. Oricum, Schach spune "afirmaţia că utilizând paradigma programării orientate pe obiecte se reduce necesitatea de testare este foarte adevărată". Aceasta deoarece moştenirea permite reutilizarea software-ului care a fost deja testat. Aşadar,

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

207

paradigma programării orientate pe obiecte poate contribui la dezvoltarea de software corect prin reducerea numărului de teste necesare.

Revalorificare. Evident paradigma programării orientate pe obiecte oferă suport pentru reutilizarea software-ului mai mult decât paradigma programării structurate. În paradigma programării structurate pot fi reutilizate module sau subprograme, dar nu există nici o metodă care să necesite sau măcar să încurajeze reutilizarea software. Din contră, paradigma programării orientate pe obiecte oferă suport pentru reutilizare prin moştenire. Moştenirea însăşi este reutilizare, definirea de noi clase ca extensii la clasele definite anterior.

Fiabilitatea, este rezultatul unei bune proiectări software mai mult decât al unei paradigme a programării. Astfel, programele structurate care sunt bine proiectate vor fi la fel de fiabile ca cele orientate pe obiecte dacă sunt bine proiectate. Oricum, este important de luat în considerare care paradigmă conduce la proiecte mai bune. Dacă paradigma programării orientate pe obiecte oferă suport pentru întregul proces de dezvoltare (analiză, proiectare, implementare ), atunci s-ar părea că această paradigmă va ajuta la producerea de proiecte mai bune şi mai fiabile. Însă, aceasta este o legătură indirectă. Utilizând paradigma programării orientate pe obiecte nu se oferă nici o garanţie ca proiectul realizat va fi fiabil. Trebuie ţinut cont şi de faptul că fiabilitatea se măsoară adesea prin durata medie a reparării unei erori software. Dacă software-ul orientat pe obiecte este într-adevar mai mentenabil, atunci este normal să ne aşteptăm ca aceste software să fie mai uşor de reparat şi astfel mai fiabil.

Portabilitatea la fel ca fiabilitatea, nu depinde chiar de paradigma utilizată pentru crearea software-ului. Portabilitatea unui produs software este afectată mai mult de limbajul de programare folosit pentru implementarea software-ului şi de constrângerile platformei harware pe care rulează software-ul. Astfel portabilitatea unui produs software nu este influenţată prea mult de alegerea paradigmei de programare.

Eficienţa. În timp ce paradigma programării orientate pe obiecte asigură suport mai bun pentru crearea de software mentenabil, reutilizabil şi corect, toată lumea este de acord că paradigma programării structurate asigură suport mai bun pentru software eficient. Logica unui program structurat este cea a suportului hardware pe care rulează. Software-ul constă dintr-o secvenţă de task-uri logice şi hardware-ul execută o secvenţă de instrucţiuni. Programele orientate pe obiecte necesită mai multe instrucţiuni care să implementeze moştenirea şi transmiterea mesajelor.

7.5.3.5. Programarea structurată Prin programarea structurată se urmăreşte : - utilizarea judicioasă a resurselor umane şi resurselor calculatorului, - reducerea duratei de realizare a produselor program, - creşterea fiabilităţii şi portabilităţii programelor, - standardizarea activităţii de programare prin utilizarea unui limbaj unic şi precis de

proiectare, - elaborarea în mod unic şi unitar a documentaţiei, - sporirea posibilităţilor de pregatire a cadrelor în domeniul programării, - existenţa unei baze ştiinţifice de demonstrare teoretică şi practică a fundamentelor

programării. Principale conceptele în domeniul programării structurate sunt: - proiectarea top - down, - proiectarea modulară, - proiectarea structurată. Proiectarea top - down, presupune descompunerea în manieră descendentă a problemei în

subprobleme sau funcţii de prelucrare care pot fi tratate independent, până la obţinerea unor rutine sau module primitive care conţin operaţii ce pot fi comandate prin instrucţiuni.

În urma descompunerii se obţine o structură arborescentă în care blocurile, indiferent de tipuri şi de probleme au următoarele funcţii :

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

208

• iniţializări, • introducere / extragere de date, • prelucrări, • prelucrări finale. Este necesar să fie îndeplinite două condiţii: • să cunoască sistemul de calcul pe care lucrează (minimum de cunoştinţe hard şi cunoştinţe

cât mai ample despre capabilităţile oferite de sistemul de operare gazdă); • să aibă deprinderea de a gândi algoritmic; deprindere strict necesară pentru a face un pas

spre obţinerea unei soluţii de calitate problemei în cauză. Aceste condiţii, pot fi îndeplinite dacă utilizatorul are nişte noţiuni minime de arhitectura

sistemelor de calcul, de algoritmică şi de iniţiere în utilizarea unui sistem de operare. Pentru a scrie programe bune mai sunt şi alte cerinţe de îndeplinit. Este vorba, mai ales în

cazul problemelor a căror complexitate este semnificativă, de necesitatea unei strategii de elaborare a soluţiei care să asigure:

• mijloace de stăpânire a complexităţii atât în ceea ce priveşte organizarea datelor cât şi referitor la identificarea prelucrărilor aferente acestora;

• corectitudinea codului sursă obţinut (abilitatea codului executabil asociat de a îndeplini toate sarcinile definite în faza de specificare ;

• extensibilitatea codului sursă obţinut (posibilitatea de a adapta acest cod sursă la modificări şi cerinţe noi); .

• eliminarea rendundanţelor, prin care înţelegem efortul de minimizare a codului necesar pentru a obţine o funcţionalitate dată;

Robusteţea codului sursă elaborat (abilitatea codului executabil asociat de a reacţiona adecvat în condiţii anormale de exploatare). O strategie verificată în practica programării, de îndeplinire a cerinţelor de mai sus, poate avea la bază principiul modularizării, potrivit căruia problema iniţială (de complexitate semnificativă) se descompune în subprobleme; acest proces de descompunere poate fi aplicat şi subproblemelor, până când gradul de detaliere este satisfăcător din punctul de vedere al posibilităţilor de codificare în limbajul ales. Acest procedeu de obţinere a soluţiei se numeşte proiectare top-down (top-down design) iar fiecare treaptă a procesului de descompunere se numeşte rafinare succesivă (stepwise refinement). Produsele acestui proces de proiectare se numesc module. Relaţiile dintre modulele astfel identificate pot fi ilustrate grafic. Este vorba de relaţiile de subordonare între module situate pe nivele de descompunere diferite şi de relaţia de succesiune între modulele subordonate aceluiaşi modul ierarhic superior.

Pentru o rezolvare corectă a problemelor se recomandă următorul set de reguli, făcute pentru a ajuta gândirea nu pentru a o înlocui:

• Analizează problema. • Găseşte algoritmii. • Scrie codul sursă. • Execută programul cu date de test şi date reale. • Verifică rezultatele. • Documentează programul.

Ca metodologie de proiectare se foloseşte des metoda FIFO (Hierarhical Input Processing Ouput), impune ca structură globală a sistemului să fie oglindită de o diagramă sintetică.

• proiectarea top - down, este nnsoţită de o codificare şi o testare top-down. • codificarea top - down oferă posibilitatea scrierii unui modul înainte de a se proiecta

modulele de nivel inferior şi se poate realiza şi documentaţia programului o dată cu scrierea acestuia.

• testarea top - down constă în ierarhizarea operaţiilor de sus în jos: se porneste cu modulul radacină şi cu unul sau mai multe nivele de ordin imediat inferior, se continuă cu ataşarea altui nivel inferior, până când s-au inclus în testare modulele ultimului nivel.

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

209

Proiectarea şi programarea modulară, constă în descompunerea sistemelor (programelor) în module intercorelate în conformitate cu o ierarhie bine precizată.

Tehnica modularizării presupun : • identificarea funcţiilor sistemului, printr-o analiză top-down, • stabilirea legilor de structură prin prospectarea legăturilor dintre module Modularizarea a impus o metodologie adecvată de proiectare şi realizare a sistemelor

informatice şi a programelor, precum şi unele facilităţi de definire, utilizare, corectare, asamblare şi catalogare a modulelor

Etapele sunt următoarele: • Analiza problemei şi întocmirea listei funcţiilor acesteia • Definirea modulelor aferente funcţiilor, atribuirea de semne acestora şi • Întocmirea schemei ierarhizate dintre modulele • Analiza posibilităţilor de utilizare a modulelor existente din alte sisteme, programe sau

pachete de programe • Stabilirea interfeţelor dintre module • Organizarea echipei de realizare a proiectului şi repartizarea sarcinilor • Proiectarea şi realizarea modulelor • Testarea modulelor • Implementarea modulelor Proiectarea şi programarea structurată, constă dintr-o mulţime de restricţii şi reguli care

forţează programatorul să urmeze o forma strânsă, eliminindu-se în acest fel mulţi factori care conduc la erori şi care complică înţelegerea programului

Programarea structurată, este modalitatea de ordonare a activităţii mentale desfasurată în scopul obţinerii de programe constituite din structuri fundamentale: secvenţa, alternanţa, iteraţia, cu grad de structurare cât mai mare şi în condiţiile minimizării efortului de programare, dar obţinerii unui produs de cea mai bună calitate.

Printr-o programare empirică se pot obţine programe slabe, greu de înţeles şi de depanat. În schimb printr-o programare disciplinată se obţin programe puternice, uşor de depanat şi însoţite de documentaţia corespunzătoare.

Programarea disciplinată se efectuează respectând o anumită tehnologie care cuprinde etapele: 1. analiza 2. proiectarea 3. codificarea 4. implementarea, modificarea, rularea, întreţinerea Schema etapelor tehnologice ale unui program este prezentată în figura 7.3., iar ca

documentaţie se menţionează fazele:

Figura 7.3. Schema etapelor tehnologice ale unui program

1. specificaţia 2. proiectul 3. programul scris într-un limbaj. Analiza problemei de rezolvat presupune parcurgerea etapelor (cerinţelor):

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

210

• ce se doreşte să se obţină – stabilirea obiectivelor, • se stabileşte structura datelor de intrare şi ieşire, • modul de afişare, • se stabileşte tabelul de variabile, • se descriu funcţiile programului.

Prin tabelul de variabile se ţine cont să fie lămurite toate constantele şi variabilele ce vor fi utilizate la rezolvarea problemei. Sunt prezentate variabile de intrare, variabile de stare (intermediare) şi variabile de ieşire (rezultatele). Se vor menţiona atât notaţiile, definirile variabilelor, cât şi unităţile de măsură ale acestora sub care le întâlnim în relaţiile de calcul (tab. 7.1.).

Tabelul 7.1. TABELUL DE VARIABILE

-------------------------------------------------------------------------------------------------- Variabile de intrare Variabile de stare Variabile de ieşire -------------------------------------------------------------------------------------------------- LU - lungimea [mm] VN - volum net [m3] V - volum [m3] LA - lăţimea [mm] CU - coeficient de S - suprafaţa [m2] G - grosimea [mm] utilizare SIGMA - efort unitar [N/m2] --------------------------------------------------------------------------------------------------- Specificaţia de programare conţine: - datele de intrare, - datele de ieşire, - tabelul de variabile. Proiectarea duce la stabirea algoritmului de calcul. Algoritmul constă dintr-o secvenţă finită de operaţii, ordonată şi complet definită care

pornind de la date (intrare) produce rezultate (ieşiri). Proprietăţile algoritmilor sunt:

1. să fie bine definit - adică operaţiile să fie specificate riguros şi fără ambiguitate, 2. să fie descris foarte exact, aşa încât o maşină programabilă să-l poată realiza, 3. să fie efectiv, adică să se termine după efectuarea unui număr finit de (paşi) operaţii, 4. să fie universal - adică să permită rezolvarea unei clase de probleme.

Instrumente de lucru sunt: • diagrama de structură (sintaxă), • schema logică, • limbajul pseudocod.

Diagrama de structură sau diagrama de sintaxă se referă la încadrarea simbolică a unei structuri cu forme specifice pentru ca pornind de la o formă generală să poată fi particularizată orice structură particulară a unui algoritm transpus în program într-un anumit limbaj.

Schema logică este reprezentarea grafică a algoritmului folosind diferite blocuri care indică tipul operaţiei care se efectuează ca în tabelul 7.2., respectiv blocuri de: intrare, ieşire, atribuire, decizie, apel de procedură, conectori.

Limbajul pseudocod descrie algoritmul prin cuvinte cheie, folosind anumite enunţuri: - standard - conţin cuvinte cheie - nestandard - conţin texte ce descriu anumite activităţi şi încep cu simbolul asterix ‘*’ - comentarii - se descrie * text * - cuvinte cheie ale limbajului pseudocod: CITEŞTE SCRIE ATRIBUIE REPETĂ ... PÂNĂ CÂND CÂT TIMP...EXECUTĂ PENTRU ... EXECUTĂ

CAPITOLUL 7. LIMBAJE DE PROGRAMARE

211

DACĂ ...ATUNCI ... ALTFEL PROCEDURA … ESTE

Tabelul 7.2. Blocurile utilizate în schemele logice

Sintaxa limbajului pseudocod nu este rigidă, însă disciplinarea scrierii este binevenită,

sporind claritatea descrierii algoritmului Semantica limbajului pseudocod este de obicei vag precizată de cuvintele cheie folosite în

limbaj şi de convenţiile ce şi le asumă proiectantul Limbajul de programare este un intermediar între realitatea reprezentărilor utilizatorului

asupra problemelor de rezolvat şi realitatea calculatorului cu care se lucrează. Utilizatorul trebuie să privească fiecare element al limbajului, din două puncte de vedere :

• LOGIC - cel al problemei, • FIZIC - cel al implementării.

Utilizatorul este confruntat cu 3 universuri distincte : a - universul problemei, b - universul limbajelor de programare, c - universul calculatorului. Definiţia unui limbaj conţine Sintaxa, Semantica şi Pragmatica Sintaxa este mulţimea regulilor ce descriu mulţimea tuturor propoziţiilor (succesiunea de

semne) din limbaj. Semantica reprezintă o mulţime de reguli ce determină sensul, înţelesul fiecărei propoziţii a

limbajului. Pragmatica este formată dintr-o mulţime de reguli ce descriu formarea efectului propoziţiilor

limbajului pentru un anumit receptor.

7.5.3.6. Evoluţia limbajelor de programare

Prezentăm în continuare aspectele importante din evoluţia istorică a celor mai cunoscute limbaje de programare, aspecte ce au menirea de a clarifica locul şi rolul jucat de fiecare dintre aceste limbaje de-a lungul timpului, în tabelul 7.2.

Limbajul Pascal apare spre sfârşitul anilor '60, după introducerea a douǎ concepte noi: generalitatea şi ortogonalitatea limbajelor. Niklaus Wirth a realizat limbajul Pascal cu ideea de bază urmărită la proiectarea acestui limbaj de operare cu un număr mic de concepte integrate, care să fie compilabile într-un cod eficient. Printre atuurile Pascal-ului se numără:

- mecanismul de structurare a datelor, ce permite un nivel superior de abstractizare; - existenţa unei definiţii axiomatice a limbajului;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

212

- mecanismul de verificare a programelor în faza de compilare. Cu toate aceste avantaje, limbajul Pascal are şi părţi mai puţin bune:

- nu este evitată alierea (engl. aliasing); - utilizarea pointerilor nu este controlată strict, putând rezulta erori grave; - mecanismul de definire a tipurilor prezintă anumite anomalii (toate tipurile enumerare sunt

ordonate; toate tipurile care sunt subdomenii de întregi sunt considerate întregi; nu este posibilă verificarea completă a compatibilităţii tipurilor în faza de compilare, de exemplu în cazul tipului record cu variante);

- imposibilitatea folosirii tablourilor cu dimensiuni variabile, lucru posibil de exemplu în ALGOL68.

Tabelul 7.2. Limbaje de programare

Primul compilator Pascal a fost realizat tot de Wirth în 1971. Limbajul PASCAL a devenit

lingua franca în mediul academic, el căpătând o largă utilizare datorită uşurinţei cu care se pot realiza programe puternice şi eficiente, utilizându-se un set redus de concepte.

Încorporarea de mecanisme pentru descrierea proceselor paralele, datorată creşterii volumului aplicaţiilor în timp real (sisteme de operare, sisteme de control al proceselor industriale, sisteme de rezervări de locuri sau de gestiune bancară etc.), care necesită exploatarea simultană a mai multor programe care au acces la aceleaşi resurse, numite în general procese. Pentru sincronizarea proceselor s-au dezvoltat mai multe concepte, cum sunt: semaforul, monitorul implementat în Pascalul Concurent şi sincronizarea prin transmitere de mesaje.

CAPITOLUL 8. LIMBAJUL PASCAL

213

CAPITOLUL 8

LIMBAJUL PASCAL

8.1. ELEMENTELE DE BAZA ALE LIMBAJULUI PASCAL Limbajele de programare reprezintǎ unul din principalele mijloace de comunicare om-

maşinǎ, evoluţia lor fiind nemijlocit legatǎ de cea a calculatoarelor electronice, a cǎror erǎ începe în 1944. Primele calculatoare puteau fi programate numai în limbaj maşinǎ. La începutul anilor ’50, se înregistreazǎ trecerea la programarea simbolicǎ, prin apariţia limbajelor de asamblare caracterizate prin folosirea codurilor mnemonice pentru instrucţiuni şi a adresǎrii simbolice a operanzilor.

8.1.1. Apariţia, evoluţia şi caracteristicile generale ale limbajului

Apariţia limbajului Pascal este un rezultat al conceptelor dezvoltate ca urmare a crizei

programǎrii ce caracteriză domeniul programǎrii calculatoarelor la sfârşitul anilor ’60. În aceastǎ perioadǎ, rǎspândirea pe plan mondial a prelucrǎrii automate a datelor a cunoscut o extindere remarcabilǎ, trecându-se la abordarea şi rezolvarea unor probleme din ce în ce mai complexe. Ca rǎspuns la cerinţa de elaborare a unei metodologii generale de dezvoltare sistematicǎ a programelor s-a cristalizat metoda proiectǎrii şi programǎrii structurate.

Un program structurat este constituit din unitǎţi funcţionale bine conturate, ierarhizate conform naturii intrinseci a problemei. În interiorul unor astfel de unitǎţi, structura se manifestǎ atât la nivelul acţiunilor (instructiunilor), cât şi al datelor.

Programarea structuratǎ este o metodǎ independentǎ de limbajul de programare, acţionând la nivelul stilului de lucru. În 1968, profesorul elveţian Niklaus Wirth realizează acest limbaj. Numele limbajului a fost ales ca un omagiu adus marelui matematician, fizician, filosof şi scriitor francez Blaise Pascal (1623-1662), primul care, în 1642, a inventat o maşinǎ de calcul. Dupǎ o fazǎ de dezvoltare extensivǎ, un prim compilator devine operaţional în 1970, limbajul fiind publicat în 1971. Interesul trezit de apariţia sa a condus la necesitatea unor consolidǎri ale limbajului, finalizate prin publicarea în 1973 a unui raport revizuit, în care se realizeazǎ o definire a formei de referinţǎ numitǎ Pascal Standard, redactatǎ ulterior conform normelor ISO şi devenitǎ bazǎ comunǎ pentru diverse implementǎri.

Limbajul Pascal include conceptele programǎrii structurate în ambele laturi ale efortului de abstractizare presupus de realizarea unui program - organizarea datelor şi conceperea acţiunilor.

Printre principalele caracteristici ale lui pot fi menţionate: • Include o serie de instrucţiuni care reprezintǎ chiar structurile de control impuse de tehnica

progrămǎrii structurate (IF-THEN-ELSE, CASE, REPEAT, WHILE, FOR). • Are facilitǎţi puternice şi deosebit de flexibile pentru reprezentarea datelor. Noţiunea de tip

de date a fost extinsǎ dincolo de cercul restrâns al datelor întregi, reale, şiruri de caractere şi tablouri (masive). S-au introdus structuri de date complexe, ca articolul (înregistrarea), mulţimea, fisierul şi posibilitǎţi de a descrie altele noi, combinându-le pe cele existente. La acestea se adaugǎ facilitatea de a defini şi manipula structuri dinamice (liste liniare, arbori etc.). În anumite implementǎri ale limbajului a fost introdus tipul obiect, care permite reunirea în aceeasi construcţie a datelor şi metodelor care le prelucreazǎ (proceduri şi funcţii), creând cadrul trecerii la programarea orientatǎ obiect (POO).

• Oferǎ posibilitǎţi de modularizare a programelor, prin structurarea lor în module cǎrora le pot fi asociate construcţii ale limbajului (proceduri şi funcţii).

• Fundamenteazǎ construcţiile pe conceptul de bloc, care permite, pe de o parte, definirea de date proprii (variabile locale) şi, pe de altǎ parte, accesul la datele din blocurile de pe nivelurile superioare (variabile globale).

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

214

• Posedǎ o bibliotecǎ bogatǎ de funcţii şi proceduri standard, cu elemente specifice diverselor implementǎri ale limbajului şi permite, totodatǎ, construirea de biblioteci ale utilizatorului.

Aceste caracteristici au fǎcut ca, deşi conceput iniţial pentru a servi ca suport de studiu al programǎrii structurate, limbajul sǎ fie folosit intens şi de cǎtre programatorii profesionişti.

Firma Borland a realizat, începând cu 1983, medii integrate de dezvoltare (IDE - Integrated Development Environment) cu denumirile generice Turbo Pascal, Borland Pascal şi Delphi. Turbo Pascal, ajuns la versiunea 7.0, a marcat introducerea progresivǎ a unor noi facilitǎţi:

· realizarea segmentǎrii programelor prin tehnica overlay, începând cu versiunea 5.0 (1988); · introducerea conceptelor POO, începând cu versiunea 5.5 (1989); · folosirea mouse-ului, ferestrelor de editare multiple, asamblorului integrat şi sistemului

Turbo Vision, pentru dezvoltarea de aplicaţii orientate obiect, în versiunea 6.0 (1990). Versiunile din categoria Turbo Pascal sunt destinate utilizǎrii sub DOS. Pentru dezvoltarea de

aplicaţii Windows a fost lansatǎ implementarea Borland Pascal 7.0 pentru Windows, cu posibilitǎţi superioare de utilizare a POO. Ultima realizare a firmei Borland o reprezintǎ Delphi, care implementeazǎ facilitǎţi de POO şi programare vizualǎ. Dacǎ în cazul implementǎrilor pe 16 biţi apare limitarea importantǎ a dimensiunii segmentelor de date şi de cod la 64 KB (spaţiul maxim de adrese care poate fi gestionat cu un cuvânt de 16 biţi), trecerea la cod pe 32 de biţi face ca limitǎrile sǎ fie impuse numai de sistemul de operare.

8.1.2. Construcţiile limbajului Acceptând terminologia folositǎ în definirea limbajelor formale, limbajului Pascal îi poate fi

asociatǎ o gramaticǎ formatǎ din urmǎtoarele clase de elemente: - alfabetul terminal (AT), format din entitǎţile elementare ale limbajului, (cele mai mici

unitǎţi cu semnificaţie proprie). Prin comparaţie cu limbajul natural, aceste unitǎţi formeazǎ mulţimea cuvintelor sau lexicul limbajului Pascal (simboluri speciale, cuvinte rezervate, identificatori, etichete, literali numerici, literali nenumerici);

- alfabetul neterminal (AN), format din mulţimea constructiilor sintactice realizate prin agregare succesivǎ pornind de la elementele alfabetului terminal;

- simbolul de start sau axioma gramaticii (aoÎAN), care este construcţia sintacticǎ de cel mai înalt nivel;

- mulţimea producţiilor (P), formatǎ din regulile de sintaxǎ ce se aplicǎ în realizarea construcţiilor limbajului.

Construcţiile sintactice ale limbajului Pascal sunt formate, din unitǎţi lexicale şi separatori, unde separatorul este un spaţiu sau un comentariu. Douǎ unitǎţi lexicale trebuie sǎ fie separate prin unul sau mai mulţi separatori, dacǎ fiecare dintre ele este un cuvânt rezervat, un identificator, o etichetǎ sau un numǎr. Separatorii nu pot fi parte a unitǎţilor lexicale, cu excepţia includerii în şiruri de caractere.

Principalele construcţii sintactice ale limbajului Pascal sunt: - expresiile, care sunt construcţii formate din operanzi (date numerice, logice, de tip

caracter etc.) şi operatori (aritmetici, relaţionali, logici etc.) şi a cǎror evaluare produce o valoare de un anumit tip;

- declaraţiile, care sunt construcţii pentru definirea şi descrierea datelor (constante şi/sau variabile, date scalare şi/sau structuri de date etc.);

- instrucţiunile, pentru descrierea acţiunilor realizate asupra datelor; - subprogramele de tip funcţie şi procedurǎ; - programul, reprezentând construcţia sintacticǎ de nivel superior, care poate face obiectul

prelucrǎrii şi execuţiei pe un sistem de calcul. În termenii folosiţi anterior, construcţiile sintactice enumerate aparţin alfabetului neterminal,

iar, dintre ele, programul reprezintǎ axioma gramaticii limbajului Pascal. Regulile de sintaxǎ ce formeazǎ mulţimea producţiilor pot fi specificate în mai multe moduri,

dintre care se remarcǎ: notaţia formalǎ BNF (Backus Normal Form) şi diagramele de sintaxǎ. În notaţia BNF, regulile sintactice (metadefiniţiile) au forma:

CAPITOLUL 8. LIMBAJUL PASCAL

215

<parte-stânga> ::= parte-dreapta unde: <parte-stânga> : desemneazǎ metavariabila (variabila neterminalǎ) ce se defineşte; ::= : metasimbol având sensul de "este prin definiţie"; parte-dreapta : definiţia metavariabilei. În cadrul definiţiei (parte-dreapta) se întâlnesc urmǎtoarele elemente: <metavariabila>: categorie sintacticǎ folositǎ în definirea altei categorii sintactice; metaconstanta : element al alfabetului terminal; | : separǎ alternativele în definiţie; [ ] : indicǎ o construcţie opţionalǎ; { } : indicǎ posibilitatea repetǎrii construcţiei. Alternativele se constituie prin juxtapunerea de metavariabile şi/sau metaconstante. O diagramǎ de sintaxǎ este un graf orientat având o singurǎ intrare şi o singurǎ ieşire. Orice

drum posibil în graf, începând cu intrarea şi terminând cu ieşirea, defineşte o construcţie sintacticǎ corectǎ. Ca noduri ale grafului se folosesc urmǎtoarele figuri geometrice, pentru care se precizeazǎ şi condiţiile de utilizare în prezentarea limbajului Pascal:

încadreazǎ simboluri speciale;

încadreazǎ cuvinte rezervate;

încadreazǎ elementele limbajului care se definesc prin alte diagrame de sintaxǎ. În sens restrâns, diagramele de sintaxǎ şi meta-definiţiile ar trebui asociate numai

construcţiilor sintactice propriu-zise (neterminale). Utilizatorul este implicat în alcǎtuirea unora din clasele de componenţe ale lexicului, se vor folosi, şi în cazul acestora, diagrame de sintaxǎ şi/sau metadefiniţii. Pentru a ilustra comparativ cele douǎ moduri de reprezentare a regulilor sintactice, se prezintǎ în continuare metadefiniţiile şi diagramele de sintaxǎ pentru literǎ, cifrǎ (zecimalǎ) şi cifrǎ hexazecimalǎ.Construcţiile sintactice enumerate aparţin alfabetului neterminal, iar dintre ele programul reprezintǎ axioma gramaticii limbajului Pascal.

Lexicul limbajului Pascal se construieşte pe baza unui set de caractere format din urmǎtoarele submulţimi de caractere ASCII:

- litere mari şi mici ale alfabetului englez; (8.1.)

- cifrele sistemului zecimal; (8.2.)

- cifrele sistemului hexazecimal; (8.3.) - caracterul spaţiu (#32) şi toate caracterele de control (#0..#31); - o serie de caractere speciale. Dupǎ modul lor de construire, componentele lexicului pot fi grupate în: - entitǎţi lexicale prestabilite, în care se înscriu simbolurile speciale şi cuvintele rezervate; - entitǎţi realizate de utilizator, în care se înscriu identificatorii, etichetele, numerele şi

constantele de tip şir. Entitǎţile prestabilite se folosesc conform destinaţiei impuse de definitorul limbajului, pentru

utilizator fiind suficientǎ specificarea mulţimii acestora (de exemplu, prin enumerare) şi a modului de utilizare.

Sunt simboluri speciale în Pascal urmǎtoarele caractere ASCII: + - * / = < > [ ] . , ( ) ; : ^ ' _ @ { } & $ # etc. şi urmǎtoarele perechi de caractere: <= >= := .. (* *) (. .) <>.

Unele dintre simbolurile speciale servesc ca operatori în expresii.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

216

Cuvintele rezervate ale limbajului Pascal sunt prezentate în tabelul 8.1. Scrierea cuvintelor rezervate cu majuscule este numai o convenţie de prezentare, în programe fiind permisǎ folosirea atât a literelor mari cât şi a celor mici, cu aceeaşi semnificaţie.

Tabelul 8.1. Lista cuvintelor rezervate

ABSOLUTE AND ARRAY BEGIN CASE CONST DIV DO

DOWNTO ELSE END EXTERNAL FILE FOR FORWARD FUNCTION

GOTO IF IMPLEMENTATION IN INLINE INTERFACE INTERRUPT LABEL

MOD NIL NOT OF OR PACKED PROCEDURE PROGRAM

SHR RECORD REPEAT SET SHL STRING THEN TO

TYPE UNIT UNTIL USES VAR WHILE WITH XOR

Identificatorii sunt folosiţi în Pascal pentru a desemna date, proceduri, funcţii etc. (8.4.).

(8.4.) În notaţia BNF, regula de construire a unui identificator este urmǎtoarea: <identificator>::=<literǎ>|_{<literǎ>|<cifrǎ>|_} Un identificator trebuie sǎ înceapǎ cu o literǎ sau cu caracterul _ (liniuţa de subliniere)

urmatǎ, eventual, de litere, cifre zecimale şi liniuţe de subliniere. Un identificator poate avea orice lungime, dar numai primele 63 de caractere sunt semnificative.

Identificatorii pot fi scrişi atât cu litere mari, cât şi cu litere mici. Caracterul liniuţă de subliniere (#95) folosit în construirea identificatorilor este, formal, tratat ca literǎ.

Etichetele sunt secvenţe de cifre zecimale din intervalul 0 la 9999 (8.6.), care asociate unor instructiuni permit transferul cǎtre acestea prin instrucţiuni de salt necondiţionat (GOTO).

În condiţiile programǎrii structurate folosirea instrucţiunii GOTO (şi a etichetelor) este foarte redusǎ şi se realizeazǎ în condiţii restrictive, cu respectarea riguroasǎ a cerinţelor de construire a structurilor fundamentale de control.

Numerele denumite în prezentarea unor limbaje de programare şi literali numerici, sunt constante de tip întreg şi real (8.5.- 8.11.).

(8.5) (8.6)

(8.7) (8.8)

(8.9) (8.10)

(8.11) Numerele întregi se pot scrie în baza 10 sau în baza 16, precedate, eventual, de semn. Cifre le

hexazecimale au ca prefix caracterul $. Numerele reale se pot scrie în forma uzualǎ din matematicǎ, cu parte întreagǎ şi fracţionarǎ,

separate prin caracterul "." şi, eventual, precedate de semn, sau în forma ştiinţificǎ (cu exponent),

CAPITOLUL 8. LIMBAJUL PASCAL

217

adicǎ urmate de E sau e şi de un întreg reprezentând o putere a lui 10. Numerele cu parte fracţionarǎ sau exponent corespund constantelor (literalilor) reale, iar celelalte numere zecimale, precum şi numerele hexazecimale, corespund constantelor (literalilor) întregi. Şirurile de caractere (literali nenumerici) sunt - în sens restrâns - secvenţe de zero sau mai multe caractere ASCII afişabile, incluse între apostrofuri (8.12 – 8.13).

(8.12)

(8.13) Şirul format din zero caractere, deci cu nimic între apostrofuri, se numeste şir nul. Pentru a

include un apostrof în cadrul şirului se folosesc douǎ apostrofuri consecutive. Lungimea unui şir (L) va fi datǎ de numǎrul efectiv de caractere incluse între apostrofuri.

Structura generalǎ a programelor Pascal. Pentru evidenţierea relaţiilor între diverse construcţii sintactice, în cele ce urmeazǎ se face o

abordare descendentǎ, pornind de la axioma gramaticii limbajului. În forma sa cea mai generalǎ, structura unui program Pascal poate fi descrisǎ prin diagramele de sintaxǎ 8.14 şi 8.15:

(8.14)

(8.15) Antetul programului, atunci când este prezent, are rol pur informativ. Posibilitatea definirii

unor eventuali parametri este menţionatǎ numai pentru asigurarea similitudinii cu Pascal Standard, fǎrǎ a avea nici o semnificaţie în Turbo Pascal. Clauza USES, cu caracter opţional, permite specificarea unitǎţilor (UNIT-urilor) folosite în programul respectiv.

Principala componentǎ a unui program este blocul, care reprezintǎ corpul acestuia. Blocul (diagramele 8.16 – 8.27) este format din declaraţii (instrucţiuni neexecutabile) şi instrucţiuni (instrucţiuni executabile).

(8.16) (8.18)

(8.17) (8.19)

(8.20) (8.21)

(8.22) (8.23)

(8.24) (8.25)

(8.26) (8.27)

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

218

Partea de declaratii a blocului este subîmpǎrţitǎ în: - partea de declarare a etichetelor (LABEL), în care se declarǎ etichetele folosite în partea de

instrucţiuni a blocului; - partea de declarare a tipurilor (TYPE), care conţine definirea unor tipuri de date pe baza

altor tipuri definite anterior, standard sau ale utilizatorului; - partea de declarare a constantelor (CONST), care cuprinde declararea constantelor

simbolice (identificatori asociaţi unor constante) şi a constantelor cu tip (variabile iniţializate în momentul compilǎrii);

- partea de declarare a variabilelor (VAR), conţine definirea variabilelor specifice blocului; - partea de declarare a procedurilor şi/sau funcţiilor. Procedurile şi funcţiile sunt subprograme interne sau externe. Constructiv, indiferent de tipul

sǎu, un subprogram este format din un antet şi un corp (8.23 şi 8.24). Antetul unui subprogram de tip PROCEDURE precizeazǎ numele (identificatorul) acestuia şi

lista parametrilor formali, care în momentul apelǎrii vor fi puşi în corespondenţǎ cu parametrii actuali, asigurând schimbul de informaţii în contextul de apelare. Parametrii sunt de intrare şi/sau de ieşire, ceea ce înseamnǎ cǎ un subprogram PROCEDURE returneazǎ zero, unu sau mai multe rezultate. Un subprogram de tip FUNCTION returneazǎ (cel puţin) un rezultat asociat cu numele funcţiei, iar în antetul sǎu se va include şi o declaraţie de tip corespunzând acestui rezultat (8.26).

Corpul procedurilor interne conţine drept principalǎ componentǎ blocul, care are aceeaşi structurǎ ca în cazul programului. Partea de instrucţiuni (8.27) este formatǎ din instrucţiunile executabile prin care se codificǎ algoritmul problemei. Termenul instrucţiune desemneazǎ generic tipurile de instrucţiuni pe care le posedǎ limbajul. Însǎşi construcţia BEGIN...END reprezintǎ o instrucţiune compusǎ (care poate sǎ fie vidǎ).

Analizând diagramele de sintaxǎ rezultă urmǎtoarele aspecte practice: • partea de declaraţii poate sǎ lipseascǎ; • partea de declaraţii, atunci când este prezentǎ, o precede obligatoriu pe cea de instrucţiuni; • ordinea diverselor componenete ale pǎrţii de declaraţii este oarecare, cu condiţia ca orice

referire a unui obiect sǎ fie precedatǎ de definirea sa; • procedurile (funcţiile) interne sunt opţionale, iar când sunt prezente se definesc anterior

pǎrţii de instrucţiuni care le referǎ; • pot fi realizate subprograme imbricate, adicǎ definirea de proceduri/funcţii în cadrul altor

proceduri/funcţii. Programul se prezintǎ ca o succesiune de linii, fiecare de maximum 127 de caractere. Declaraţiile şi instrucţiunile programului se separǎ între ele prin simbolul “;”. Se recomandǎ ca fiecare linie sǎ conţinǎ o singurǎ declaraţie sau instrucţiune, dar este permisǎ

scrierea mai multor asemenea construcţii pe aceeasi linie sau continuarea lor pe mai multe linii. Comentariul este o succesiune de caractere inclusǎ între acolade { } sau între perechile de

caractere speciale (* şi *) folosite ca delimitatori. Delimitatorii folosiţi pentru comentarii pot servi şi la introducerea unor directive de compilare, ce conţin dupǎ delimitatorul stânga caracterul $, urmat de codul unei directive.

8.2. TIPURI STATICE DE DATE ŞI EXPRESII Limbajul Pascal oferǎ posibilitǎti deosebit de elastice în declararea şi utilizarea tipurilor de

date. El acceptǎ tipuri de date simple şi structurate, statice şi dinamice. Programatorii pot sǎ-şi defineascǎ propriile tipuri de date. Prin tip de date se înţelege mulţimea valorilor pe care le poate lua data împreunǎ cu mulţimea operatiilor care se aplicǎ asupra acestora.

O clasificare a tipurilor statice de date în Turbo Pascal este prezentatǎ în figura 8.1. Tipurile ordinale (scalare) reprezintǎ mulţimi finite şi ordonate de valori discrete. Unui

element i se asociazǎ un numǎr de ordine în cadrul mulţimii, obţinut implicit sau prin funcţia ORD. Pot fi referite elementele succesor - predecesor ale unui element, prin funcţiile SUCC şi PRED.

CAPITOLUL 8. LIMBAJUL PASCAL

219

Valoarea unei date ordinale se reprezintǎ intern prin ordinul ei. Elementele pot fi puse în relaţie (<, <=, =, >, >=, <>), rezultatul fiind evaluat în funcţie de numǎrul de ordine.

Figura 8.1. Tipuri statice de date

Dupǎ modul de specificare a valorilor pe care le pot avea, datele de tip ordinal pot fi subîmpǎrţite în date de tip domeniu (subdomeniu) şi date de tip enumerativ. Pentru tipul domeniu (subdomeniu), mulţimea valorilor discrete se precizeazǎ printr-un interval închis (8.28).

Marginile intervalului trebuie sǎ îndeplineascǎ condiţia: ORD(limita_inferioarǎ)<=ORD(limita_superioarǎ).

(8.28) Tipurile standard întregi au domeniile implicite prezentate în tabelul 8.2. De exemplu, prin tipul standard INTEGER se desemneazǎ mulţimea numerelor întregi din intervalul -32768..32767.

Tipul standard CHAR are domeniul implicit #0..#255 (mulţimea caracterelor setului extins ASCII). Tabelul 8.2.

Tipuri întregi de date

Pentru tipul enumerativ, multimea de valori discrete se precizeazǎ prin liste ordonate (8.29).

(8.29) Tipul standard BOOLEAN are lista de valori implicitǎ (FALSE,TRUE). Utilizatorul poate sǎ-şi defineascǎ propriile tipuri enumerative. Elementelor datelor de tip enumerativ li se asociazǎ numere de ordine, prima valoare din listǎ având ordinalitatea zero.

Datele de tip real au valori în mulţimea R. În funcţie de lungimea internǎ, se disting mai multe tipuri reale care au precizii diferite (tabelul 8.3).

Datele de tip structurat sunt mulţimi (colecţii) de date de tipuri simple sau structurate, constituite dupǎ anumite reguli bine stabilite. Nici o datǎ structuratǎ nu poate ocupa în memorie mai mult de 65520 octeţi. Tipul datelor statice poate fi definit ca în diagrama 8.30 în care identificator_tip desemneazǎ un tip definit de utilizator.

(8.30) Tabelul 8.3.

Tipuri reale de date

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

220

8.2.1. Clasificarea tipurilor statice de date.Variabile şi constante Din punct de vedere al posibilitǎtii de modificare a valorii în faza de execuţie a programului,

se disting: date variabile, care îşi pot modifica valoarea pe parcursul execuţiei programului; date constante, predefinite la momentul scrierii programului şi ale cǎror valori sunt generate

în faza de compilare. Toate variabilele cu care se lucreazǎ într-un program Pascal trebuie declarate în secţiunea

VAR (unele şi în CONST) a pǎrţii de declaraţii a programului. Într-o declaraţie (8.31) pot fi specificate mai multe variabile.

(8.31) Datele constante pot fi literali care se autoindentificǎ prin valoare, sau constante simbolice, referite prin identificatori, cǎrora li se asociazǎ declaraţii în secţiunea CONST a pǎrţii de declaraţii a programului.

Expresie_de_constante este evaluatǎ în momentul compilarii, având ca operanzi numai literali sau constante simbolice. Operatorii folosiţi în expresii sunt cei specifici tipului de datǎ pentru care se defineşte constanta. În expresiile de constante pot fi folosite şi urmǎtoarele funcţii: ABS, CHR, HI, LENGTH, LO, ODD, ORD, PRED, ROUND, SIZEOF, SUCC, SWAP, TRUNC.

Limbajul Pascal defineşte ca fiind constante şi acele variabile iniţializate în momentul compilǎrii, numindu-se în limbaj, constante cu tip sau variabile initializate (8.32).

(8.32) În multe construcţii sintactice se cere respectarea unor clase de compatibilitǎţi de tip. Prin

noţiunea de variabile de acelaşi tip se va întelege: • variabile de acelaşi tip utilizator; • variabile simple de acelaşi tip standard; • variabile definite în aceiaşi descriere.

Tipurile întregi de date sunt: BYTE, WORD, SHORTINT, INTEGER, LONGINT. Ele se referǎ la întregi farǎ semn (BYTE, WORD) şi la întregi cu semn (SHORTINT, INTEGER, LONGINT). În operaţii, toate tipurile întregi sunt compatibile între ele. Operatorii aritmetici sunt:

+ adunare (sau operator unar); - scǎdere (sau operator unar); * înmulţire; DIV împǎrţire întreagǎ (se obţine câtul); împǎrţire întreagǎ (se obţine restul).

Datele de tip întreg pot fi puse în relaţie (<, <=, =, >, >=, <>), rezultatul logic fiind în concordanţǎ cu ordinea lor (ca tip ordinal) sau cu valoarea lor în Z. Funcţiile specifice tipurilor ordinale (ORD, PRED, SUCC) se aplicǎ şi tipurilor întregi, cu menţiunea cǎ numǎrul de ordine a datei coincide cu valoarea sa din Z.

În Turbo Pascal existǎ douǎ constante predefinite, având identificatorii MaxInt (tip INTEGER) şi MaxLongint (tip LONGINT) care au valoarea egalǎ cu maximul din valorile domeniilor acestor tipuri (32767, respectiv 2147483647).

Tipul BOOLEAN este ordinal, enumerativ: (FALSE, TRUE). Asupra datelor booleene se pot aplica funcţiile specifice tipului ordinal (ORD, PRED, SUCC).

O datǎ de tip BOOLEAN se reprezintǎ în memorie pe un octet, în care se memoreazǎ valorile ordinelor elementelor: 0 (pentru FALSE), 1 (pentru TRUE).

Operatorii logici sunt: NOT (nu); AND (şi); OR (sau); XOR (sau exclusiv). Tipul caracter (CHAR) este ordinal, subdomeniul #0..#255. Mulţimea valorilor tipului

caracter este formatǎ din caracterele setului extins ASCII (256 caractere). O datǎ de tip CHAR

CAPITOLUL 8. LIMBAJUL PASCAL

221

ocupǎ în memorie un octet, în care se memoreazǎ valori binare interne din intervalul 0..255. Literalii de tip CHAR pot fi scrişi în urmǎtoarele moduri (8.33):

a) Un caracter imprimabil cuprins între apostrofuri; b) Un întreg din domeniul 0..255, precedat de caracterul #; c) Un caracter imprimabil precedat de ^. Prin exprimarea literalilor CHAR sub forma ^x se

pot preciza uşor codurile de control al transmisiei şi imprimǎrii (caractere neimprimabile), din intervalul de valori #0..#31.

(8.33) Asupra datelor de tip caracter se poate realiza operaţia de concatenare (+), rezultatul fiind de

tip STRING. Acelaşi efect se poate obţine utilizând funcţia CONCAT. Asupra datelor de tip CHAR se pot aplica funcţiile specifice tipurilor ordinale: ORD, PRED, SUCC.

Datele de tip CHAR pot fi puse în relaţie (<, <=, =, >, >=, <>), rezultatul logic fiind în concordantǎ cu ordinalitatea lor, care se memoreazǎ intern. Funcţiile ORD şi CHR sunt inverse.

Tipul ordinal enumerativ se defineşte ca o listǎ ordonatǎ de identificatori ai utilizatorului (8.34). Valorilor din lista ordonatǎ care precizeazǎ tipul enumerativ li se asociazǎ numere de ordine în cadrul acesteia, începând de la zero. Un identificator precizat într-o listǎ nu poate fi prezent si într-o altǎ listǎ. Dacǎ numǎrul elementelor listei este mai mic sau egal cu 256, variabilele de tip enumerativ se reprezintǎ pe un octet. În caz contrar, ele se reprezintǎ pe un cuvânt. Intern este memorat numǎrul de ordine a valorii. Din aceastǎ cauzǎ, numǎrul elementelor listei enumerative este maxim 65536. Referirea unui element se face prin intermediul unui identificator de tip şi nu al unui identificator de variabilǎ. Asupra datelor de tip enumerativ se pot aplica funcţiile specifice tipurilor ordinale: ORD, PRED, SUCC.

(8.34) Datele de tip enumerativ pot fi puse în relaţie (<, <=, =, >, >=, <>), rezultatul logic fiind în

concordanţǎ cu ordinea valorii lor. Datele de tip enumerativ se folosesc în urmǎtoarele situaţii: • în operaţia de atribuire: unei variabile de tip enumerativ i se poate atribui o valoare definitǎ în lista tipului respectiv; • în declararea dimensiunilor masivelor şi în expresiile indiceale pentru referirea elementelor; • ca variabile de control în instrucţiunea FOR. Tipul ordinal subdomeniu se mai numeşte tip interval şi se defineşte ca submulţime a unui

tip ordinal ("tip pǎrinte"), prin precizarea intervalului închis de valori. Toate caracteristicile tipului pǎrinte se regǎsesc în tipul subdomeniu, singura deosebire dintre ele referindu-se la mulţimea valorilor pe care le pot lua. Literalii, constantele, funcţiile şi operaţiile definite pentru datele de tip subdomeniu sunt similare celor specifice tipului pǎrinte. Funcţia ORD aplicatǎ unui element dintr-un subdomeniu returneazǎ numǎrul de ordine din domeniul pǎrinte. Datele de tip subdomeniu se memoreazǎ identic cu cele din tipul pǎrinte.

Tipurile reale sunt: REAL, SINGLE, DOUBLE, EXTENDED, COMP. Datele reale sunt memorate intern în virgulǎ mobilǎ. În ISO Standard Pascal este inclus doar tipul REAL, celelalte tipuri sunt cuprinse în convenţia IEEE (Institute for Electrical and Electronics Engineers). Tipul COMP desemneazǎ o datǎ realǎ particularǎ, având numai valori întregi. În operaţii, toate tipurile reale sunt compatibile între ele. Operatorii aritmetici sunt: + adunare (sau operator unar), - scǎdere (sau operator unar), * înmulţire şi / împǎrţire realǎ. Datele de tip real pot fi puse în relaţie (<, <=, =, >, >=, <>), rezultatul logic fiind în concordanţǎ cu valoarea lor în mulţimea R.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

222

Tipul şir de caractere este implementat tipul structurat şir (STRING), care defineşte şiruri de caractere ASCII, de lungime variabilǎ. Lungimea maximǎ a şirurilor este 255 caractere, iar lungimea minimǎ este zero, pentru şirul null (vid).

Din analiza diagramei se observǎ cǎ în definirea literalilor de tip STRING se pot succede şiruri scrise în cele trei moduri corespunzătoare tipului caracter.

Tipul şir se declarǎ conform diagramei 8.35. Dacǎ la declarare nu se specificǎ lungimea maximǎ, se considerǎ, implicit, 255 caractere. Lungimea efectivǎ a şirului este numǎrul de caractere pe care îl are valoarea memoratǎ. Lungimea maximǎ a şirului este numǎrul de caractere specificat în descrierea datelor STRING.

(8.35) Cu datele de tip STRING poate fi realizatǎ operaţia de concatenare (+). Acelaşi efect se obtine utilizând funcţia CONCAT. Datele de tip STRING pot fi puse în

relaţie (<, <=, =, >, >=, <> ). Compararea se face caracter cu caracter, de la stânga la dreapta (lexicografic), terminându-se fie la întâlnirea primei perechi de caractere neegale, fie dupǎ un numǎr de comparǎri egal cu minimul dintre lungimile şirurilor.

Tipul masiv (ARRAY) este structurat şi desemneazǎ o mulţime finitǎ de elemente omogene constituitǎ ca un tablou cu una, douǎ sau mai multe dimensiuni (8.36). Mulţimea are un singur identificator şi oferǎ posibilitatea referirii elementelor în acces direct prin poziţie, determinatǎ printr-un numǎr de expresii indiceale corespunzând dimensiunilor masivului.

(8.36) Tip_dimensiune este ordinal (mai puţin LONGINT) şi precizeazǎ, pe de o parte, numǎrul de

elemente de pe fiecare dimensiune, care se rezervǎ în momentul compilǎrii, iar pe de altǎ parte, tipul expresiei indiceale care se poate utiliza în referirea elementelor masivului.

Pot fi declarate oricâte dimensiuni pentru masiv, dar zona de memorie rezervatǎ pentru el nu trebuie sǎ depǎseascǎ 65520 octeţi. Masivele se memoreazǎ cu liniarizare în ordine lexicograficǎ (de exemplu, la matrice, în ordinea liniilor). Tip_element este orice tip de date, mai puţin tipul fişier.

Se pot declara constante de tip ARRAY (8.37). Valorile iniţiale din constantele cu tip ARRAY se precizeazǎ în ordinea linializǎrii masivelor în memorie ("pe linii"), construindu-se entitǎţi cuprinse între paranteze pentru fiecare dimensiune, mai puţin ultima.

(8.37)

Referirea elementelor unui masiv se face prin variabile indexate, iar expresia indicealǎ trebuie sǎ aibǎ tipul dimensiunii respective, prezent la declararea masivului.

Observaţie: Limbajul nu are incluse operaţii cu masive. Se pot realiza operaţii cu elemente ale masivelor, operaţii care sunt caracteristice tipului acestor elemente.

Tipul structurat mulţime (SET - diagrama 8.38) desemneazǎ o mulţime - în sens matematic - de elemente de acelaşi tip şi operaţii specifice de lucru pe mulţimi (intersecţie, reuniune, incluziune etc.). Mulţimea poate avea maxim 256 elemente dintr-un tip "pǎrinte" ordinal, care la rândul sǎu, nu poate avea mai mult de 256 elemente şi poate fi de tip CHAR, BYTE, BOOLEAN, subdomeniu.

CAPITOLUL 8. LIMBAJUL PASCAL

223

(8.38) Reprezentarea internǎ a datelor de tip SET are la bazǎ urmǎtorul mecanism: se rezervǎ un

numǎr de biţi (maxim 256) egal cu numǎrul de elemente ale tipului "pǎrinte". Biţii corespunzǎtori obiectelor din tipul pǎrinte, prezente în SET, sunt puşi pe valoarea unu, ceilalţi pe valoarea zero.

Operaţiile şi relaţiile se aplicǎ mulţimilor compatibile între ele (care au acelaşi tip pǎrinte). Operatorii care se aplicǎ datelor de tip SET sunt:

* Intersecţia (rezultǎ o mulţime formatǎ din elementele comune celor douǎ mulţimi). Fizic se realizeazǎ funcţia SI între biţii valorilor interne ale celor douǎ variabile.

+ Reuniunea (rezultǎ o mulţime formatǎ din elementele celor douǎ mulţimi). Fizic se realizeazǎ funcţia SAU între biţii valorilor interne ale celor douǎ variabile.

- Diferenţa (A-B: rezultǎ o mulţime formatǎ din elemente care aparţin mulţimii A şi nu aparţin mulţimii B). Fizic se realizeazǎ funcţia A SI NOT(B) între biţii valorilor interne ale celor douǎ variabile.

Operatorul IN, care se aplicǎ între un element e şi o mulţime A: e IN A. Expresia are valoarea TRUE dacǎ elementul e se regǎseşte în mulţimea A - apartenenţǎ (eÎA).

Atribuirea, operaţiile şi relaţiile pe mulţimi au la bazǎ testarea şi/sau poziţionarea biţilor din reprezentarea internǎ a datelor de tip SET.

Tipul articol (RECORD) desemneazǎ o structurǎ de date staticǎ, eterogenǎ, cu acces direct, între componentele cǎreia existǎ o relaţie de ordine ierarhicǎ. Articolul poate fi reprezentat sub formǎ de arbore, ale cǎrui noduri sunt asociate componentelor structurii. Componentele de pe ultimul nivel sunt scalare şi se numesc date elementare sau câmpuri. Datele de pe celelalte niveluri, numite de grup, se constituie prin agregarea datelor de pe nivelurile inferioare. Data de grup de cel mai înalt nivel (rǎdǎcina arborelui) corespunde articolului în ansamblu (figura 8.2).

Posibilitatea construirii recursive se remarcǎ în figura 8.2.b, unde data de grup DATA_NASTERII este formal echivalentǎ cu articolul DATA.

Figura 8.2. Exemple de structuri de articole Tipul articol se declarǎ conform diagramei 8.39, iar variabilele de acest tip conform diagramei

8.40. Tip este orice tip de date PASCAL, mai puţin tipul fişier. În cazul componentelor care sunt la rândul lor structuri de date (RECORD, SET, STRING, ARRAY) apar aspecte specifice în rezervarea zonelor de memorie şi/sau în referirea lor. Tipul articol poate fi definit şi ca structurǎ vidǎ. Câmpurile care se succed imediat şi sunt de acelaşi tip pot fi declarate ca liste. Din punct de vedere practic, utilizarea tipului articol este strâns legatǎ de prelucrarea fişierelor binare. În lucrul cu variabilele de tip articol se recomandǎ declararea identificatorului de tip în secţiunea TYPE. În acest mod, identificatorul de tip articol poate fi folosit în definirea mai multor variabile, inclusiv a celor asociate fişierelor cu tip. În procesul de descriere a unui articol, arborele se parcurge în preordine (de la rǎdǎcinǎ spre extremitǎţi şi de la stânga la dreapta).

(8.39)

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

224

(8.40) Variabilele de tip articol se reprezintǎ intern ca succesiuni de câmpuri elementare, cu

reprezentarea internǎ şi lungimea fizicǎ specifice tipurilor lor. Datele STRING se memoreazǎ pe lungimea fizicǎ (octet de lungime plus lungime maximǎ), componentele SET se reprezintǎ pe maxim 32 octeţi (depinzând de numǎrul de elemente ale mulţimii) iar pentru componentele ARRAY se rezervǎ numǎrul de octeţi necesari fiecǎrui element al masivului. Lungimea zonei de memorie rezervatǎ pentru variabila de tip articol rezultǎ din însumarea lungimilor câmpurilor.

Structura arborescentǎ a articolelor poate fi exprimatǎ sugestiv şi prin machete, care evidenţiazǎ componentele, natura, lungimea declaratǎ şi lungimea fizicǎ ale acestora.

Datele de tip articol pot fi referite în douǎ moduri: global sau pe componente. Referirea globalǎ este permisǎ numai în operaţia de atribuire, cu condiţia ca ambele variabile (sursǎ şi destinaţie) sǎ fie articole de acelaşi tip. Referirea unor componente de tip articol din structura altui articol este posibilǎ numai în operaţia de atribuire, în condiţiile precizate anterior la referirea globalǎ.

Existǎ douǎ variante de referire a componentelor articolelor: referirea prin calificare şi referirea fǎrǎ calificare.

În referirea prin calificare asigurarea identificǎrii unice a câmpurilor se realizeazǎ prin asocierea numelui acestora cu numele articolului care le conţine. Construcţia rǎmâne la aceastǎ formǎ dacă structura are numai douǎ niveluri: articolul şi câmpurile elementare ale acestuia.

În articolele cu structurǎ recursivǎ se realizeazǎ calificarea progresivǎ cu articolele de pe nivelurile superioare, primul calificator fiind numele articolului rǎdǎcinǎ.

Pentru referirea fǎrǎ calificare se foloseste instrucţiunea WITH, care are la bazǎ un procedeu similar scoaterii factorului comun din matematicǎ. Câmpurile unui articol pot fi referite numai prin identificatorii lor, fǎrǎ a fi descrisǎ explicit întreaga structurǎ arborescentǎ de care aparţin, referirea având efect în instrucţiunea care aparţine structurii WITH.

Sintaxa instrucţiunii WITH este precizatǎ în diagrama 8.41. Pot fi folosite structuri WITH imbricate, cu condiţia evitǎrii ambiguitǎţilor: se includ în WITH toate nivelurile superioare de arborescenţǎ, începând cu identificatorul de variabilǎ al articolului şi continuând cu identificatorii de câmpuri de tip grup. Pe baza declarǎrilor din WITH, compilatorul "reface" adresarea fizicǎ a câmpurilor.

(8.41) Forma WITH r1, r2, ..., rm DO instrucţiune, poate fi scrisǎ astfel:

WITH r1 DO WITH r2 DO ............... WITH rm DO instructiune;

Referirea câmpurilor articolelor fǎrǎ calificare este preferabilǎ atunci când se realizeazǎ operaţii asupra mai multor câmpuri ale aceleiaşi variabile articol. Ea poate fi aplicatǎ întregului program Pascal, dacǎ instructiunea WITH este plasatǎ la începutul pǎrţii executabile.

Limbajul PASCAL oferǎ posibilitatea lucrului cu articole care au structurǎ variabilǎ. Acestea au în componentǎ o parte fixǎ şi o parte variabilǎ. Partea variabilǎ este descrisǎ în funcţie de existenţa mai multor variante de structurǎ ale articolului. Tipul articol se declarǎ, în acest caz, conform diagramelor 8.42 şi 8.43 (care pot fi considerate generale pentru tipul articol). Descrierea pǎrţii variabile începe cu cuvântul CASE. Variantele de structurǎ se descriu prin "selecţie", pe baza valorilor unei caracteristici (selector) de tip ordinal sau pe baza valorilor unui tip ordinal.

Din studiul diagramelor 8.44 – 8.45 se desprind urmǎtoarele reguli practice: • partea fixǎ, când existǎ, o precede pe cea variabilǎ;

CAPITOLUL 8. LIMBAJUL PASCAL

225

• fiecare variantǎ de structurǎ se descrie între paranteze rotunde; • partea variabilǎ poate avea, la rândul ei, o parte fixǎ şi o parte variabilǎ.

(8.42)

(8.43)

(8.44)

(8.45) Valoarea iniţialǎ trebuie sǎ fie de acelaşi tip cu câmpul cǎruia îi corespunde. Când articolul

conţine la rândul sǎu alt articol, identificarea câmpului care se iniţializeazǎ se face pe niveluri, folosind perechi corespunzǎtoare de paranteze.

La initializarea câmpurilor unui articol cu parte variabilǎ, constanta de tip articol se asociazǎ unei singure structuri, deoarece zona de memorie rezervatǎ pentru articol este unicǎ.

Expresii Asupra datelor pot fi aplicaţi operatori din diverse clase, rezultând construcţiile sintactice

numite expresii. Expresiile sunt alcǎtuite din operanzi şi operatori. Evaluarea expresiilor produce ca rezultat o valoare de un anumit tip. În metalimbajul BNF expresia poate fi definitǎ astfel:

<expresie>::=<operand>|<operator_unar><expresie>|<expresie><operator_binar><expresie> Prima variantǎ din definiţie corespunde celei mai simple forme de expresie, redusǎ la o

variabilǎ sau o constantǎ de un anumit tip. A doua şi a treia variantǎ, prin aplicare repetatǎ, conduc la recursivitate în construirea expresiilor.

Ordinea de aplicare a operatorilor din expresii poate fi, total sau parţial, impusǎ prin folosirea parantezelor. Acestea sunt evaluate cu prioritate, iar dacǎ sunt mai multe niveluri de paranteze, evaluarea se realizeazǎ din interior spre exterior. În absenţa parantezelor, respectiv în interiorul acestora, evaluarea se realizeazǎ în funcţie de ordinul de precedentǎ a operatorilor. Se disting cinci clase de precedentǎ, care (de la superior la inferior) sunt:

1 : operatorii unari + si -; 2 : operatorul unar NOT; 3 : *, DIV, /, MOD, AND, SHR, SHL; 4 : +, -, OR, XOR, intersecţie (*), reuniune (+), diferenţǎ (-) de mulţimi; 5 : <, <=, =, >, >=, <>, IN şi operatorii relaţionali între mulţimi. Pentru operatorii aparţinând aceleiaşi clase de precedenţǎ, evaluarea se realizeazǎ de la stânga

la dreapta. Operatorii se aplicǎ operanzilor de acelaşi tip, cu rezultat în mulţimea tipului de datǎ respectiv. Existǎ şi excepţii:

- Expresiile aritmetice au operanzi numerici. În categoria acestora se includ datele de tip întreg (BYTE, WORD, INTEGER, LONGINT, SHORTINT) şi cele de tip real (REAL, SINGLE, DOUBLE, EXTENDED, COMP). În general, toate tipurile numerice sunt compatibile între ele, cu unele excepţii prezentate în tabelul 8.4. Deoarece expresiile se evalueazǎ pe subexpresii definite de un operator, comutativitatea din matematicǎ nu este conservatǎ (în programare, expresia A+B+C nu este întotdeauna egalǎ cu A+C+B, depinzând de tipurile variabilelor). Operatorii *, /, +, -, pot fi aplicaţi şi în cazul când un operand este întreg iar celǎlalt real, rezultatul fiind de tip real. În operaţiile de împǎrţire (/, DIV, MOD), împǎrţitorul nu poate fi zero. În evaluarea expresiilor nu se sesizeazǎ eventuala depǎşire a domeniului de valori admise de tipul rezultatului, care, în acest caz, este imprevizibil pentru utilizator.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

226

Tabelul 8.4 Operatori arimetici

- Expresiile logice sunt cele care, în urma evaluǎrii, produc rezultat de tip BOOLEAN. În

funcţie de operatorii utilizaţi, se disting expresii relaţionale şi expresii logice propriu-zise. Expresiile relaţionale se construiesc cu operatorii < <= = > >= <> incluşi în clasa de

precedentǎ cinci. Operanzii expresiilor (subexpresiilor) relaţionale trebuie sǎ fie compatibili. Se considerǎ urmǎtoarele clase de compatibilitǎti:

- operanzii numerici (tipurile întregi si reale); - operanzii STRING sau CHAR ; - operanzii de tip BOOLEAN ; - operanzii de tip enumerativ ; - operanzii de tip multimi compatibile (acelasi tip "pǎrinte").

Operatorii relaţionali pot fi aplicaţi şi operanzilor de tip mulţime, semnificaţia lor fiind: incluziune (<=), egalitate (=), neegalitate (<>), apartenenţǎ (IN). Rezultatul este de tip BOOLEAN (TRUE sau FALSE). Operatorii relaţionali aplicaţi mulţimilor au clasa de precedenţǎ cinci.

Expresiile logice propriu-zise au operanzi de tip logic şi se construiesc cu operatorii NOT (clasa de precedenţǎ doi), AND (clasa de precedenţǎ trei), OR si XOR (clasa de precedenţǎ patru). Rezultatul evaluǎrii este de tip BOOLEAN (TRUE sau FALSE).

- Expresii cu şiruri de caractere. Operaţia care se realizeazǎ cu şiruri de caractere este concatenarea (+). Operanzii trebuie sǎ fie de tip STRING sau CHAR. Rezultatul este de tip STRING. Şirul rezultat va fi trunchiat la dreapta dacǎ are lungimea mai mare de 255 de caractere.

8.3. REALIZAREA STRUCTURILOR FUNDAMENTALE DE CONTROL

Limbajul Pascal este puternic orientat spre programarea structuratǎ. Este conceput astfel încât

sǎ implementeze fidel conceptele proiectǎrii şi realizǎrii structurate şi modularizate a programelor. Tipurile de instrucţiuni Instrucţiunile specificǎ operaţiile (acţiunile) care se aplicǎ datelor în vederea obţinerii

rezultatelor scontate prin algoritm. În programul obiect rezultat dupǎ compilare, ele se regǎsesc sub forma unor secvenţe de apeluri şi instrucţiuni cod maşinǎ. Aceeaşi instrucţiune sursǎ poate avea diverse configuraţii cod maşinǎ, depinzând de tipul operanzilor pe care îi referǎ. Instrucţiunile unui program Pascal se grupeazǎ într-un bloc BEGIN...END. Un program trebuie sǎ execute cel puţin o instrucţiune, chiar dacǎ, la limitǎ, aceasta este vidǎ. Rezultǎ deci, cǎ forma cea mai simplǎ a unui program Pascal este: BEGIN END. Dupǎ modul de realizare a construcţiilor sintactice şi al numǎrului de acţiuni descrise, se disting instrucţiuni simple şi structurate. Pot fi create blocuri de instrucţiuni executabile, denumite instrucţiuni compuse.

O instrucţiune compusǎ este o secvenţǎ de instrucţiuni (simple, structurate sau compuse) delimitatǎ de cuvintele rezervate BEGIN şi END (8.46). Ea implementeazǎ natural structura secvenţialǎ din programarea structuratǎ. Mulţimea instrucţiunilor executabile ale unui program este o instrucţiune compusǎ.

(8.46)

CAPITOLUL 8. LIMBAJUL PASCAL

227

O instrucţiune este simplǎ dacǎ descrie o singurǎ acţiune, unic determinatǎ şi care nu provoacǎ condiţionǎri. Din categoria instrucţiunilor simple fac parte: atribuirea, saltul necondiţionat (GOTO), apelul procedurilor, instrucţiunea INLINE (secvenţe de program scrise în cod maşinǎ) şi instrucţiunea vidǎ.

Instrucţiunile structurate sunt construcţii care conţin alte instrucţiuni (simple, compuse sau structurate) care vor fi executate alternativ sau repetitiv. Prin instrucţiunile structurate se codificǎ structurile fundamentale alternative sau repetitive din algoritm. Instrucţiunile sunt separate între ele prin caracterul ; şi poate lipsi înaintea cuvântului rezervat END. În limbaj existǎ şi alte cuvinte rezervate cu rol de separator (ELSE, UNTIL). În concluzie, conceptului de instrucţiune îi poate fi asociatǎ diagrama de sintaxă 8.47.

(8.47) Instrucţiunile simple ale limbajului Prin instrucţiunile simple se realizeazǎ o parte a operaţiilor de bazǎ din algoritmi.

· Instructiunea vidǎ descrie actiunea vidǎ. Ea este definitǎ prin lipsǎ în contextul unor construcţii Pascal, neavând o mnemonicǎ explicitǎ. Prin construcţia instrucţiune se subîntelege şi instrucţiunea vidǎ.

· Instrucţiunea de atribuire evalueazǎ o expresie şi atribuie valoarea acesteia unei variabile sau funcţii. Instrucţiunea are forma:

identificator:=expresie, unde identificator referǎ o variabilǎ (simplǎ sau indexatǎ) sau o funcţie (8.48).

(8.48) Limbajul Pascal acceptǎ un numǎr limitat de atribuiri neomogene: când variabila este de un

tip real şi expresia este de un tip întreg sau variabila este de tip şir şi expresia este de tip caracter. Alte combinaţii de tipuri neomogene genereazǎ erori în momentul compilǎrii. În cazul în care expresia din dreapta atribuirii este o constantǎ simbolicǎ sau un literal, compilatorul verificǎ atât compatibilitatea de tip, cât şi încadrarea valorii în domeniul (lista) de valori admise de tipul variabilei receptoare, semnalând, eventual, erorile corespunzǎtoare.

La atribuire de şiruri, când şirul rezultat din expresie are lungimea mai mare decât cea declaratǎ pentru variabila receptoare, acesta va fi trunchiat la dreapta. Octetul de lungime al variabilei receptoare primeşte valoarea şirului efectiv atribuit.

· Instrucţiunea de apel al unei proceduri (8.49) are forma: nume_procedurǎ [ (listǎ_parametri_actuali ) ];

(8.49) Parametrii din apel se numesc actuali şi se pun în corespondenţǎ cu parametrii corespunzǎtori

definiţi în antetul subprogramelor, care se numesc formali. Realizarea structurilor alternative Structurile alternative se realizeazǎ prin instrucţiunile IF şi CASE.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

228

· În instrucţiunea condiţionalǎ IF, continuarea execuţiei instrucţiunilor programului depinde de rezultatul evaluǎrii unei expresii logice (condiţii). Instrucţiunea IF (8.50), are forma:

IF condiţie THEN instrucţiune [ELSE instrucţiune]; unde condiţie este o expresie logicǎ, iar instrucţiune corespunde definiţiei.

(8.50) În figura 8.3. se prezintǎ douǎ exemple de structuri alternative: c desemneazǎ o condiţie

(expresie logicǎ), a cǎrei evaluare produce rezultatul TRUE (ramura DA în schema logicǎ) sau FALSE (ramura NU în schema logicǎ); s1 şi s2 desemneazǎ secvenţe de operaţii ce se transpun în limbaj prin construcţia instrucţiune, fiind posibilǎ, la limitǎ, situaţia de instrucţiune vidǎ; pentru lizibilitate, se recomandǎ scrierea cu indentare (cu deplasarea cu câteva poziţii spre dreapta) a secvenţelor s1 şi/sau s2. Întrucât s1 şi s2 trebuie sǎ rǎspundǎ cerinţelor construcţiei instrucţiune, adicǎ sǎ fie o instrucţiune simplǎ, compusǎ sau structuratǎ, se vor constitui instrucţiuni compuse care sǎ înglobeze eventualele succesiuni de instrucţiuni ce corespund lui s1 şi/sau s2.

Structura pseudoalternativǎ IF-THEN poate fi descrisǎ şi ca o structurǎ alternativǎ simplǎ, cu instrucţiune vidǎ pe ramura FALSE:

IF c THEN s1 ELSE; O structurǎ IF-ELSE se poate descrie fie ca structurǎ pseudoalternativǎ IF-THEN, fie ca

structurǎ IF-THEN-ELSE cu instrucţiune vidǎ pe ramura THEN: IF NOT c THEN s1; IF c THEN ELSE s1;

Figura 8.3. Structura alternativă simplă (a) şi pseudoalternativă (b)

Se remarcǎ faptul cǎ instrucţiunea ce precede ELSE nu trebuie urmatǎ de caracterul ; . Prezenta lui ar genera interpretarea eronatǎ a întregii instrucţiuni IF. În cazul în care

secventele s1 şi/sau s2 conţin alte instrucţiuni IF, se ajunge la structuri alternative multiple. Pentru o imbricare clarǎ şi corectǎ, se recomandǎ ca pe ramurile care se dezvoltǎ sǎ se construiascǎ instrucţiuni compuse.

· Instrucţiunea alternativă CASE permite alegerea unei acţiuni dintr-un grup, în funcţie de valorile pe care le poate lua un selector (8.51).

(8.51) CASE selector OF listǎ_constante : instructiune {;listǎ_constante : instructiune} [ELSE instructiune] END;

Selector este o expresie de tip ordinal, listǎ_constante conţine literali compatibili cu tipul selectorului iar instrucţiune corespunde definiţiei din digrama 8.5.

Instrucţiunea CASE selecteazǎ pentru execuţie instrucţiunea a cǎrei listǎ_constante conţine o valoare egalǎ cu valoarea curentǎ a selectorului. Dacǎ nici o constantǎ nu îndeplineşte condiţia de

CAPITOLUL 8. LIMBAJUL PASCAL

229

egalitate, se executǎ instrucţiunea care urmeazǎ dupǎ ELSE (dacǎ aceasta existǎ) sau nu se executǎ nimic (dacǎ aceasta lipseşte).

Instrucţiunea permite realizarea structurii alternative generalizate (CASE-OF) a cǎrei formǎ de principiu se prezintǎ în figura 8.4.

Figura 8.4. Structura CASE - OF

Constantele din listǎ sunt literali compatibili cu selectorul, a cǎror ordine este arbitrarǎ. Valorile acestora trebuie sǎ fie unice în cadrul aceleiaşi instructiuni CASE.

Realizarea structurilor repetitive Limbajul Pascal dispune de instrucţiuni care realizeazǎ natural structurile repetitive cu

condiţie anterioarǎ, posterioarǎ şi cu numǎrător. · Structurile repetitive condiţionate anterior se realizeazǎ cu instrucţiunea WHILE (8.52), care

are forma: WHILE condiţie DO instrucţiune;, unde condiţie este o expresie logicǎ, iar instrucţiune corespunde definiţiei.

(8.52) Instrucţiunea WHILE este repetitivǎ cu un numǎr necunoscut de paşi, al cǎrei corp poate sǎ nu

fie executat niciodatǎ, dacǎ expresia logicǎ are de la început valoarea FALSE. Programatorul trebuie sǎ asigure în corpul ciclǎrii modificarea, la un moment dat, a valorii expresiei logice, pentru a evita ciclarea infinitǎ.

La execuţia instrucţiunii WHILE (figura 8.5) se realizeazǎ urmǎtoarele operaţii: 1. se evalueazǎ expresia logicǎ; 2. dacǎ valoarea este TRUE se trece la pasul 3, altfel se trece la pasul 4; 3. se executǎ instrucţiunea şi se revine la pasul 1; 4. se trece la instrucţiunea s de dupǎ construcţia WHILE.

Figura 8.5. Structura WHILE - DO

· Structurile repetitive condiţionate posterior se realizeazǎ cu instrucţiunea REPEAT (8.53), care are forma:

(8.53) REPEAT instructiune

{;instructiune} UNTIL conditie;

unde condiţie şi instrucţiune au aceleaşi semnificaţii prezentate la instrucţiunea WHILE.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

230

Instrucţiunea REPEAT este repetitivǎ cu numǎr nedefinit de iteraţii, al cǎrei corp se executǎ cel puţin o datǎ. La întâlnirea ei, funcţioneazǎ urmǎtorul algoritm (figura 8.6):

Figura 8.6. Structura DO - UNTIL

1. se executǎ corpul de instructiuni S; 2. se evalueazǎ expresia logicǎ; 3. dacǎ valoarea este FALSE, se revine la pasul 1, altfel se trece la pasul 4; 4. se trece la instructiunea de dupǎ constructia REPEAT.

Programatorul trebuie sǎ asigure în corpul ciclǎrii modificarea valorii expresiei logice, pentru a evita ciclarea infinitǎ.

Dacǎ S este mulţime de instrucţiuni, nu este necesarǎ formarea unei instrucţiuni compuse deoarece instrucţiunea REPEAT are delimitatori expliciţi: cuvintele REPEAT şi UNTIL.

· Structurile repetitive cu numǎrǎtor se realizeazǎ cu instrucţiunea FOR (8.54) care are urmǎtoarele forme sintactice:

(8.54) FOR contor := vi TO vf DO instrucţiune; FOR contor := vi DOWNTO vf DO instrucţiune;

unde contor este variabilǎ de tip ordinal pentru controlul ciclǎrii, vi şi vf sunt expresii compatibile cu tipul contorului, semnificând valoarea initialǎ, respectiv valoarea finalǎ a acestuia, iar instrucţiune corespunde corpului ciclului.

Structurile asociate instructiunii FOR sunt prezentate în figura 8.7. Numǎrul de iteraţii se determinǎ astfel: n= ±[ORD(vf)-ORD(vi)]+1.

Figura 8.7. Structura DO - FOR

Semnul + se utilizeazǎ pentru forma instrucţiunii cu TO, iar semnul - pentru forma cu

DOWNTO. Dacǎ de la început n≤0, s nu se executǎ şi se trece la urmǎtoarea instrucţiune. La sfârşitul execuţiei instrucţiunii, variabila contor are o valoare nedefinitǎ. Nu se recomandǎ modificarea de cǎtre programator a valorii variabilei contor în corpul ciclǎrii.

Dacǎ algoritmul necesitǎ ca pasul iteraţiei sǎ fie diferit de SUCC(v) sau PRED(v), structura repetitivǎ cu numǎrator se va transforma într-o structurǎ repetitivǎ cu numǎr necunoscut de iteraţii (WHILE sau REPEAT).

8.4. PROCEDURI ŞI FUNCŢll Procedurile şi funcţiile sunt secvenţe de program subordonate (subprograme), care se

execută sub controlul programului principal. Procedurile şi funcţiile prezintă aceeaşi structura în trei secţiuni (antet, secţiune de declaraţii, secţiune de instrucţiuni) ca şi programul.

CAPITOLUL 8. LIMBAJUL PASCAL

231

Procedurile sunt activate prin invocarea numelui lor în instrucţiuni de apelare, iar funcţiile sunt activate prin evaluarea unor expresii care conţin apeluri ale acestor funcţii ca operanzi, valoarea rezultată din evaluarea funcţiilor fiind asociată numelui acestora.

8.4.1. Proceduri

Declaraţia unei proceduri asociază unui bloc un identificator, care este numele procedurii. Structura generală a unei proceduri este următoarea:

PROCEDURE nume_proc[(lista_param_formali)]; [opţiune;] LABEL {declaraţii de etichete locale};

CONST {declaraţii de constante locale}; TYPE {declaraţii de tipuri locale}; VAR {declaraţii de variabile locale};

{declaraţii de subprograme FUNCTION şi PROCEDURE}; BEGIN

{instrucţiuni -corpul procedurii}; . END;

Antetul procedurii specifică numele procedurii, nume_proc, lista parametrilor formali, lista_param_formali şi, eventual, o opţiune.

Detalii asupra listei parametrilor formali sunt date în continuare. Pentru opţiune există următoarele posibilităţi:

FORWARD pentru declararea anticipată a procedurii ; INLINE pentru proceduri scrise în cod obiect; EXTERNAL pentru declararea procedurilor externe scrise în limbaj de asamblare; INTERRUPT pentru declararea procedurilor de întreruperi.

Activarea unei proceduri se poate realiza printr-o instrucţiune de apel de procedură, care specifică numele procedurii şi, dacă este cazul, lista parametrilor actuali:

nume_proc[(lista_param_actuali)]; unde nume_proc este numele utilizat la declararea procedurii, iar lista_param _actuali este lista parametrilor actuali.

8.4.2. Funcţii

Declaraţia unei funcţii defineşte un bloc, care calculează o valoare asociată numelui funcţiei. Funcţiile prezintă o structură similară cu cea a procedurilor:

FUNCTION nume func[(lista_param_formali)]: tip_func; [opţiune;] LABEL {declaraţii de etichete locale}; CONST {declaraţii de constante locale}; TYPE {declaraţii de tipuri locale}; VAR {declaraţii de variabile locale};

{declaraţii de subprograme FUNCTION şi PROCEDURE}; BEGIN

{instrucţiuni- corpul funcţiei}; END.

Antetul funcţiei specifică identificatorul funcţiei, nume_func, lista parametrilor formali, lista_param_formali, dacă este cazul, şi tipul rezultatului funcţiei, tip_func. Blocul unei funcţii trebuie să conţină cel puţin o instrucţiune de atribuire către identificatorul funcţiei. O funcţie este activată prin invocarea ei ca operand într-o expresie.

8.4.3. Parametri

Parametrii specificaţi în listele de parametri ale declaraţiilor procedurilor şi funcţiilor se numesc parametri formali. Parametrii formali sunt identificatori de variabile locale, care pot fi

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

232

referite în blocul subprogramului respectiv. Parametrii utilizaţi în locul parametrilor formali în listele de parametri ale apelurilor procedurilor sau funcţiilor se numesc parametri actuali. Parametrii actuali pot fi variabile, expresii sau valori.

Parametrii formali ai unui subprogram primesc ca valori actuale valorile corespunzătoare din lista de parametri actuali a apelului subprogramului respectiv şi, de aceea, trebuie să existe coincidentă de număr şi tip între parametrii formali şi, parametrii actuali corespunzători.

În funcţie de modul transmiterii parametrilor actuali către parametrii formali, aceştia din urmă sunt de două tipuri:

a) parametri valoare b) parametri variabilă (parametri referinţă).

Un parametru valoare se comportă ca o variabilă locală a subprogramului apelat, cu deosebirea că primeşte ca valoare iniţială valoarea parametrului actual corespunzător din lista de argumente a apelulul subprogramului în momentul apelării. Modificarea valorii unui parametru valoare nu are efect asupra valorii parametrului actual corespunzător din blocul apelant. Prin urmare, prin intermediul unui parametru valoare poate fi transmisă o valoare din blocul apelant către subprogram, nu însă şi în sens invers. Parametrul actual corespunzător unui parametru valoare poate fi o expresie, a cărei valoare însă nu trebuie să fie de tip fişier, sau să aparţină unui tip structurat care implică în definiţie un tip fişier .

Un parametru variabilă devine în momentul apelului, şi este pe parcursul execuţiei subprogramului, chiar variabilă care constituie parametrul actual corespunzător din blocul apelant, putând fi identificaţi în cele două blocuri prin nume diferite. Orice referire a parametrului formal de tip variabilă accesează însuşi parametrul actual, modificarea valorii parametrului variabilă reflectându-se imediat asupra parametrului actual. În consecinţă, un parametru variabilă este, utilizat în situaţia în care trebuie transmisă o valoare din subprogramul apelat către blocul apelant şi, de aceea, parametrul actual corespunzător trebuie să fie un identificator de variabilă de un tip compatibil, neputând fi o expresie.

Sintaxa scrierii listei de parametri formali din declaraţia unei proceduri sau funcţii este următoarea:

( [VAR] id _1, id_2 , ...: tip_1 [ ; [VAR]id_i, id_j , ..: tip_2 ; ...]) unde identificatorii corespunzători aceluiaşi tip (tip _i) sunt separaţi prin virgule, grupurile de

identificatori corespunzători unor tipuri diferite fiind separaţi prin " ; ". Cuvântul rezervat VAR trebuie să apară numai înaintea grupurilor de parametri variabilă. În

program argumentul formal n al procedurii fact este parametru valoare, parametrul actual corespunzător din programul principal este o variabilă distinctă (deşi are acelaşi nume), care la revenirea execuţiei în programul principal nu este afectată de eventuala modificare a variabilei n din procedură. Argumentul formal f este declarat ca parametru variabilă (fiind precedat de cuvântul rezervat VAR), pentru ca la revenirea execuţiei din procedura în programul principal, parametrul actual corespunzător f să conţină valoarea calculată a factorialului.

Parametrii actuali trebuie separaţi în lista de argumente prin virgule. Domeniul de valabilitate al declaraţiilor Declaraţia identificatorilor şi etichetelor este valabilă în interiorul blocului în care au fost

definite, incluzând toate blocurile subordonate. În particular, identificatorii sau etichetele definite în programul principal pot fi folosite în orice bloc al programului.

Declararea identificatorilor şi etichetelor trebuie să fie unică la nivelul exterior dintr-un bloc. Excepţie fac redeclarările din blocurile subordonate sau câmpurile tipurilor RECORD. Identificatorii şi etichetele pot fi redeclarate în blocurile subordonate blocului în care au fost declarate, noua declaraţie desemnând obiecte diferite faţă de cele declarate la nivelul superior şi fiind valabilă până la revenirea execuţiei în blocul apelant, unde ramâne valabilă declaraţia iniţială.

Utilizarea unui identificator declarat în lista de argumente formale a subprogramului, implică considerarea acestuia ca variabilă locală dacă este parametru valoare, sau ca variabilă a blocului apelant dacă este parametru variabilă. Declaraţia este valabilă în blocul în care a fost declarată:

CAPITOLUL 8. LIMBAJUL PASCAL

233

- variabile globale - sunt variabile declarate în programul principal şi sunt recunoscute în orice procedura sau funcţie;

- variabile locale - sunt variabile declarate în blocul procedurii sau funcţiei şi sunt recunoscute în blocurile subordonate (de nivel inferior).

O variabilă decalarată în program, procedură sau funcţie, este considerată globală la nivel de program şi locală la nivel de procedură sau funcţie. Se preferă ca toate variabilele din proceduri sau funcţii, să fie declarate în lista de parametrii formali sau în cadrul procedurii (ca variabile locale), pentru a nu se modifica variabilele globale în mod nedorit.

Declaraţii forward de procedură. O procedură sau funcţie poate apela o procedura sau funcţie deja declarată, declararea fiind

amplasată în program înainte de daclararea procedurii sau funcţiei ce o apelează. O declaraţie de procedură ce specifică directiva FORWARD în loc de bloc, este o declaraţie

FORWARD de procedură. După această declaraţie, procedura poate fi definită oriunde, dar lista de parametrii formali trebuie să fie sursă şi să se închidă blocul.

Procedure Nume1 [(lista parametrilor formali)];forward; ..............

Procedure Nume2 [(lista parametrilor formali)]; begin .............. Nume1(lista parametrilor actuali); .............. end;

Procedure Nume1; begin

............... Nume2(lista parametrilor actuali);

............... end; ...............

Procedure Nume1 (lista parametrilor formali);forward; Procedure Nume2 (lista parametrilor formali);

begin ............... Nume1(lista parametrilor actuali); ...............

end; Procedure Nume1;

begin ............... Nume2(lista parametrilor actuali); ...............

end; Proceduri şi funcţii recursive. În Turbo-Pascal este permis ca o procedură sau funcţie să se

apeleze pe sine. Aceasta tehnică se numeşte recursivitate. Folosirea acestei tehnici impune introducerea în program a directivelor de compilare {$S+},

prin care se genereaza un cod care verifica depaşirea stivei. Directiva de compliare {$M stacksize, heapmin, heapmax}, stabileşte dimensiunea stivei (stacksize), de început (heapmin), şi de sfârşit (heapmax), a zonei de heap. Valorile implicite sunt: {$M 6384,0,655360}.

Recursivitatea directă. Un subprogram (funcţie sau procedură) este direct recursivă dacă se apelează pe el insuşi. Aceasta proprietate este realizabila in PASCAL , datorita faptului ca variabilele locale ale subprogramului sunt create in momentul apelului si apoi distruse la sfarsitul executiei subprogramului

Recursivitatea implică activarea unei proceduri sau funcţii din propria secţiune de instrucţiuni (se autoapelează). La autoapelări repetate, spaţiul ocupat în stivă poate depăşi limitele admise.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

234

Recursivitatea indirectă (mutuală) implică apelarea reciprocă a două sau mai multe subprograme şi poate fi realizată cu ajutorul directivei FORWARD, care permite apelarea unui subprogram înaintea definirii sale complete în textul sursă.

8.5. FIŞIERE

Prin fişier în general se înţelege o structură de date care constă dintr-o secvenţă de componente. Fiecare componentă din secvenţă are acelaşi tip. Numărul acestor componente nu este fixat. Aceasta este o caracteristicii prin care se distinge clar fişierul de tablou. La un moment dat însă, este accesibilă direct numai o singură componentă a secvenţei. Celelalte componente sunt accesibile progresând secvenţial în fişier. Progresarea în componentele unui fişier se realizează prin subprograme de citire şi de scriere. Datele fişierului sunt stocate de obicei pe un suport magnetic.

Datele se manevrează, pe purtători tehnici de informaţii, dar se prelucrează numai când sunt prezente în memoria internă, acestea trebuie organizate atât extern, cât şi intern.

În organizarea externă a datelor se identifica două niveluri de abordare logic şi fizic. Fişierul reprezintă termenul generic care desemnează structurile de date externe. El reprezintă o mulţime (colecţie) de date omogene din punct de vedere al semnificaţiei şi al cerintelor de prelucrare. În purtatorul extern, fişierul are, pe lângă partea de date, şi informaţii de identificare.

Privit din punctul de vedere al prelucrării, un fişier este o colecţie ordonată de date, numite articole. Articolul este constituit dintr-o mulţime ordonată de valori ale unor caracteristici care aparţin, unei singure entităţi Componentele articolului destinate diverselor caracteristici sunt denumite câmpuri de date. Depinzând de natura, ordinul de mărime şi forma de reprezentare externă a valorilor asociate, fiecare câmp de date are o lungime, exprimată în octeti. Lungimea unui articol este dată de suma lungimilor câmpurilor care îl compun. După cum toate articolele dintr-un fişier au sau nu aceeaşi lungime, se face distincţie între fişierele cu articole de lungime fixă sau variabilă. Limbajul Pascal acceptă atât fişiere cu articole de lungime fixă (stabilită la momentul fiecărei prelucrări), cât şi de lungime variabilă (implementată prin separarea fizică a două înregistrari alăturate - de exemplu, prin caracterele CR/LF).

Principiile şi regulile după care se memorează articolele unui fişier pe purtatorul extern, cu asigurarea protecţiei şi regăsirii acestor, constituie metoda de organizare. În evoluţia organizării datelor externe s-au conturat mai multe metode (secvenţială, relativă, indexată), dintre care, în limbajul Pascal este inclusă metoda de organizare secventială. Tipul de acces reprezintă modalitatea de regăsire (localizare) a articolelor din fişier. Noţiunea de acces trebuie aplicată atât pentru operaţia de scriere, cât şi pentru cea de citire a datelor.

Accesul secvenţial este posibil la toţi purtatorii tehnici de date şi presupune înscrierea înregistrărilor în ordinea furnizării lor şi regăsirea ulterioară în ordinea în care au fost înscrise în suport. O problemă importantă la consultarea (citirea) în acces secvenţial este controlul ajungerii la sfârşitul fişierului. Dupa citirea ultimei entităţi (articol, bloc, linie sau câmp), pointerul indică marcatorul (logic sau fizic) de sfârşit de fisier – EOF (End of File).

În accepţiunea limbajului Turbo Pascal, pot fi definite trei structuri de tip fişier: • fişier cu tip • fişier text • fişier fără tip,

Să notăm cu f o variabilă de tip fişier. Înainte ca variabila să fie ulilizată, ea trebuie asociată cu un fişier extern, prin apelul procedurii Assign. În general, fişierul extern este un fişier pe disc, dar variabila de fişier poate fi asociată şi cu un dispozitiv (de exemplu tastatura, ecran). Fişierul extern marchează informaţiile scrise în, fişier sau furnizează informaţiile depuse. După ce s-a stabilit asocierea cu un fişier extern, fişierul trebuie "deschis". Această deschidere pregăteşte fişierul pentru citire şi/sau scriere. Un fişier existent poate fi deschis cu ajutorul procedurii Reset. Un fişier nou poate fi deschis cu procedura Rewrite. Fişierele de tip text deschise cu Reset permit doar operaţii de citire; fişierele de tip text deschise cu procedura Rewrite sau Append permit numai

CAPITOLUL 8. LIMBAJUL PASCAL

235

operaţii de scriere. Fişierele cu tip sau fără tip permit atât citiri cât şi scrieri, indiferent dacă ele au fost deschise cu Rewrite sau cu Reset.

Fiecare fişier este o secvenţă liniară de componente, fiecare componentă având tipul de bază al variabilei fişier. Fiecare componentă a fişierului are asociat un număr, numit numărul componentei. Prima componenta a fişierului este considerată având numărul de componentă zero. Cea de a doua componenta are numărul 1 şi aşa până la n-1 ultima componentă.

În mod normal accesul la componentele fişierului este secvenţial. Aceasta înseamnă ca atunci când se citeşte o componentă cu ajutorul procedurii standard Read, sau când se scrie o componentă cu ajutorul rocedurii standard Write, poziţia curentă de fişier se deplasează la următoarea componentă, în sensul ordonării numerice. În afară de acest mod de acces, fişierele cu tip şi fişierele fără tip permit şi accesul direct (aleator) la componentele fişierului. Accesul direct se bazează pe procedura de căutare Seek, care mută poziţia curentă în; fişier pe o componentă specificată. După această poziţionare componenta astfel aleasă poate fi citită. Funcţiile standard File-Pos şi File-size permit determinarea poziţiei curente în fişier, respectiv a dimensiunii actuale a fişierului. Când prelucrarea componentelor unui fişier se termină, fişierul trebuie închis cu procedura standard Close. După ce fişierul a fost închis, se vor actualize datele fişierului extern asociat. După fiecare apel de procedură şi funcţie standard de intrare/ieşire se testează automat reuşita operaţiei de intrare/ieşire. În cazul în care apare o eroare, programul se termină şi se afişează un mesaj, de eroare în execuţie. Directiva de compilare $I permite ca această eroare să fie tratată în program. În stare decuplată {$I-}, programul nu se opreşte la o eroare de intrare/ieşire. Pentru a analiza cauza erorii, se apelează funcţia standard IoResult, care în caz de operaţie reuşită returnează valoarea zero, iar în caz de eşec returnează o valoare diferită de zero, care codifică natura erorii. Ştergerea fişierului extern asociat unui fişier închis poate fi realizată cu procedura Erase.

În procesul de citire a unui fişier, faptul că s-a ajuns la sfârşitul fişierului poate fi urmărit cu funcţia Eof. Această funcţie returnează valoarea logica true dacǎ s-a ajuns la sfirşitul fişierului, respectiv false în caz contrar. Logica apelurilor diferitelor subprograme şi funcţii standard de intrare/ieşire sint prezentate în figura 8.8.

Figura 8.8. Principalele proceduri utilizate la lucrul cu fişiere

Fişiere cu tip, reprezintă o secvenţă de componente, fiecare componentǎ având acelaşi tip,

numit tipul de bază al fişierului. Fişierele cu tip sunt constituite, logic, din articole de lungime fixă,

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

236

cărora li se asociază numere relative, începând de la zero. Fişierele cu tip se mai numesc fişiere cu prelucrare la nivel de articol. Operaţiile de acces la articolele fişierelor cu tip transferă date fără conversie. Unitatea de transfer este articolul, definit ca variabilă de acelaşi tip cu fişierul. Mecanismul fizic de "decupare" a articolelor în cadrul fişierului se bazează pe faptul că ele au lungime fixă (lart), definită în momentul prelucrării. Operaţia de I/E transferă atâţia octeţi câţi indică lart. Lungimea fisierului, exprimată în octeţi, este memorată în intrarea lui din director (sfârşitul de fişier este logic). Numărul de articole din fişier (Filesize(f)) este determinat de sistem prin împărţirea întreagă a lungimii acestuia la lart. Fişierele cu tip acceptă accesul secvenţial şi relativ la articole. Accesul secvenţial poate fi combinat cu cel relativ în cadrul aceluiaşi program. Poziţionarea directă pe articolul cu numărul relativ r se realizează cu procedura Seek(f,r). Citirea articolelor se face cu procedura Read, iar scrierea cu procedura Write. Asupra fişierelor cu tip nu se pot aplica funcţiile Eoln, SeekEoln, SeekEof şi procedurile WriteLn, ReadLn.

Tipul fişier cu tip se declară conform diagramei 8.55, unde tip este orice tip de date Pascal, mai puţin tipul fişier.

(8.55)

O variabilă de acest tip poate fi declarată printr -o declaraţie de forma: var nume_fişier : file of tip_de_bază;

unde tip _de_bază este un tip arbitrar, exceptând tipul fişier (nu există fişier de fişiere). Deseori tipul de bază este un tip înregistrare (record), astfel încât fiecare linie a unui fişier

reprezintă o înregistrare cu toate câmpurile completate. Fişiere de tip text, conţine caractere structurate pe linii, fiecare linie fiind terminată cu un

caracter de sfârşit de linie (EOLN character). Lungimea liniilor este variabilă. Caracterul de sfârşit de linie este de regulă CR (ASCII #13), care poate să fie urmat şi de un caracter LF (ASCII #10). Un fişier text este terminat cu un caracter de sfârşit de fişier CTRL-Z.

Fişierele TEXT acceptă numai accesul secvenţial. Operaţia de citire se realizează cu procedurile Read şi ReadLn, iar scrierea cu procedurile Write si WriteLn. Deoarece datele memorate în fişiere TEXT au reprezentarea externă ASCII, nu toate tipurile de date pot face obiectul operaţiilor de citire/scriere. Nu pot fi citite/scrise date de tip SET sau enumerativ, date de tip ARRAY sau RECORD, ci numai elemente ale acestora. Există dispozitive fizice care acceptă numai fişiere TEXT, cum ar fi: tastatura, care emite numai coduri ASCII. Tipul TEXT se declară conform diagramei 8.56, unde TEXT este cuvântul rezervat.

(8.56)

Un fişier text este declarat prin tipul predefinit text, de exemplu: var f : text; Notăm că un fişier text nu este echivalent cu un fişier de tip file of char. Lungimea liniilor fiind variabilă, poziţia unei linii în cadrul fişierului nu este calculabilă. În

consecinţă, la fişiere text accesul nu poate fi decât secvenţial. Asocierea numelui fişierului la suportul extern este realizată cu procedura Assign. Deschiderea fişierului poate fi realizată prin trei subprograme standard. Un fişier nou se

deschide cu procedura Rewrite, un fişier existent poate fi deschis fie la începutul fişierului, fie la sfârşitul lui, în vederea adăugării liniilor noi. Deschiderea la început se realizează cu procedura Append.

Pentru fişiere text, formele speciale ale subprogramelor Read şi Write permit citirea şi scrierea nu numai a valorilor de tip caracter, ci şi a valorilor de tip întreg, real şi de tip şir de caractere. De exemplu, Read(f,i), unde i este o variabilă de tip intreg, va citi o secvenţă de cifre, care vor fi interpretate ca un întreg zecimal, şi care va fi depus în variabila i.

Detectarea caracterelor de sfârşit de linie poate fi realizată cu funcţia Eoln, care returnează valoarea true dacă s-a ajuns la sfârşitul liniei curente.

CAPITOLUL 8. LIMBAJUL PASCAL

237

Funcţia SeekEoln este similară cu Eoln; exceptând faptul că se sare peste blancuri şi tab-uri, după care se testează starea de sfârşit de linie.

Starea de sfârşit de fişier poate fi testată cu funcţia Eof, precum şi cu funcţia SeekEof; aceasta sare peste blancuri şi tab-uri, după care se returnează true dacă s-a ajuns la sfârşitul fişierului.

Procedura SetTextBuf permite ataşarea unui tampon de intrare/ieşire de lungime dată la un fişier text. Golirea tamponului unui fişier text deschis pentru scriere poate fi realizată cu procedura Flush.

Aşa cum s-a arătat la generalităţi despre fişiere, există două fişiere text standard: Input şi Output. Fişierul Input este destinat numai pentru operaţii de citire şi este asociat cu fişierul standard de intrare al sistemului de operare (de regulă claviatură). Fişierul Output este destinat numai pentru operaţii de scriere şi este asociat cu fişierul standard de ieşire al sistemului de operare (de regula ecranul). Aceste fişiere sunt deschise automat înainte de începutul execuţiei, ca şi cum ar fi prezente instrucţiunile.

Assign(Input,' '); Reset(Input); Assign(Output,' '); Rewrite(Output);

Aceste fişiere sunt închise automat după ce s-a terminat execuţia programului. Unele proceduri şi funcţii de intrare/ieşire permit ca numele fişierului să nu fie specificat în

lista de argumente. În acest caz se presupune că fişierul text implicit este sau Input, sau Output, în funcţie de natura subprogramului. De exemplu, Read(x) este echivalent cu Read (Input,x), iar Write(x) este echivalent cu Write(Output,x).

Un fişier deschis cu Reset suportă numai proceduri şi funcţii orientate spre citire. Analog, un fişier deschis cu Rewrite sau Append permite utilizarea acelor proceduri şi funcţii, care sunt orientate spre scriere.

Fişiere fără tip, sunt canale de intrare/ieşire de nivel inferior, utilizate în primul rând pentru accesul direct la orice fişier disc, indiferent de tipul şi de structurarea internă a fişierului.

Fişierele fără tip sunt construite, logic, din blocuri de lungime fixă, asupra cărora nu se face nici o ipoteză de structură. Se mai numesc fişiere cu prelucrare la nivel de bloc. Unitatea de transfer este blocul, a carui lungime este definită, implicit sau explicit, la deschiderea fişierului (parametrul RecSize). Transferul datelor între memoria internă şi suportul extern se realizează fără conversie.

Între fişierele cu tip şi cele fără tip există multe asemănări de prelucrare. Dintre aceste, cele mai importante se referă la faptul ca transferul este binar (fără conversie) şi ca entităţile transferate (articolul sau blocul) au lungime fixă. Deosebirea esenţială dintre cele două tipuri de fişiere constă în aceea că la fişierele cu tip, articolul are definită o structură, iar la cele fără tip, blocului nu i se asociază o structura.

Tipul fişier fără tip se declară conform diagramei 8.57, unde FILE este cuvânt rezervat.

(8.57) În operaţiile de intrare/ieşire, la fişierele fără tip informaţiile sunt transferate direct între fişier

disc şi variabile, economisindu-se astfel spaţiul necesar zonei tampon. Un fişier fără tip este compatibil cu orice fişier (cu tip sau text).

Pentru fişiere fără tip, procedurile de deschidere Reset şi Rewrite permit folosirea unui parametru auxiliar. Acest parametru specifică lungimea unei componente a fişierului. Valoarea acestui parametru, din motive istorice, este 128. Se recomandă alegerea valorii 1, deoarece această valoare permite reflectarea corectă a dimensiunii exacte a fişierului (când această valoare este 1, nu sunt posibile componente fracţionate).

Exceptând procedurile Read şi Write, toate procedurile şi funcţiile standard utilizabile pentru fişierele cu tip sunt permise şi pentru fişierele fără tip. În locul procedurilor Read şi Write, pentru realizarea transferurilor rapide de date sunt folosite procedurile BlockRead şi BlockWrite.

Procedura BlockRead citeşte din işierul fără tip un număr precizat de componente, care se depun în memorie de la o adresă specificată. La revenire din procedură, o variabilă -care se poate specifica opţional –va conţine numărul componentelor citite efectiv. Dacă această variabilă nu este specificată, şi dacă nu s-a reuşit citirea tuturor componentelor, va apare o eroare de intrare/ieşire.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

238

Procedura BlockWrite scrie în fişierul fără tip un număr precizat de componente, componentele fiind luate de la o adresă specificată. La revenire din procedura o variabilă opţională va conţine numărul componentelor scrise efectiv. Dacă această variabilă nu este specificată şi dacă nu s-a reuşit scrierea tuturor componentelor, atunci va apare o eroare de intrare/ieşire.

Numărul componentelor se determină cu funcţia FileSize, iar numărul componentei actuale se determină cu funcţia FilePos. Procedura Truncate permite trunchierea fişierului, pornind de la componenta actuală din fişier.

Caracteristici generale ale algoritmilor de prelucrare a fişierelor Pascal Organizarea datelor în fişiere pe suporţi externi de informaţii presupune proiectarea unor

algoritmi specifici operaţiilor de gestiune a acestora, denumiţi generic algoritmi de prelucrare a fişierelor de date. Datorită complexităţii aplicaţiilor care prelucrează fişiere este recomandată aplicarea metodei modularizării algoritmilor şi programelor. Modularizarea presupune ca, pe baza analizei problemei, să se descompună rezolvarea ei în părţi distincte, numite module, astfel încât fiecare dintre acestea să îndepliniească anumite funcţii. Descompunerea se poate realiza în mai multe faze (pe mai multe niveluri), prin metoda top-down. Criteriile de descompunere în module se refera la: omogenizarea funcţiilor; utilizarea diverselor structuri de date; separarea funcţiilor de intrare/iesire de funcţiile de prelucrare; utilizarea unor module deja existente; utilizarea eficientă a resurselor calculatorului. Modulele se implementează în program prin proceduri interne sau externe.

De cele mai multe ori o aplicaţie necesită existenţa mai multor fişiere active simultan, cu rol diferit (de intrare, de ieşire, de intrare/iesire). Indiferent de numărul fisierelor utilizate, în marea majoritate a algoritmilor, logica prelucrării este coordonată, la un moment dat, de un singur fişier, obligatoriu de intrare, parcurs secvenţial, numit fişier conducător (sau director). Fişierul conducător are proprietatea ca articolele lui pot fi citite independent de prelucrarea altor fişiere. Accesul la datele memorate în fişierul conducător se realizează la nivel de articol. De aceea, algoritmii de prelucrare, indiferent de operaţia de gestiune, necesită utilizarea unei structuri repetitive pentru parcurgerea (parţială sau integrală) a fişierului.

· Modulul ÎNCEPUT se realizează o singură dată, înaintea prelucrării primului articol al fişierului conducător şi cuprinde următoarele grupe de operaţii:

Operaţii iniţiale specifice, facultative, existenţa lor depinzând de particularităţile problemei abordate care includ, în principal: iniţializări de variabile de total, afişări ale antetului, titlului şi/sau a capului de tabel pentru situaţii de ieşire etc.

· Modulul PRELUCRARE se execută repetitiv (în general, printr-o structură WHILE-DO) şi cuprinde, pe de o parte, totalitatea operaţiilor de prelucrare a articolului curent al fişierului conducător - operaţii specifice fiecărei probleme - şi, citirea unui articol din fişierul conducător.

· Modulul SFÂRŞIT se execută o singură dată, după prelucrarea ultimului articol al fişierului conducător şi include următoarele grupe de operaţii: operaţii finale standard, corespunzând închiderii fişierelor implicate în prelucrare; operaţii finale specifice, care depind de natura problemei şi includ, de regulă: afişarea variabilelor de total, a statisticilor privind operaţiile de gestiune executate, închiderea situaţiilor de ieşire etc.

· Modalitatea de detectare/tratare a sfârşitului de fişier conduce la existenţa mai multor variante ale schemei generale de prelucrare cu fişier conducător, prin forme particulare ale condiţiei sfârsit_de_prelucrare. În funcţie de variantele alese, se pot construi scheme logice valabile pentru toate tipurile de fişiere sau numai pentru fişierele binare, scheme valabile pentru toate tipurile de fisiere.

8.6. TIPURI DINAMICE DE DATE Datele de tip static au caracteristici care limiteazǎ rezolvarea unor clase de probleme. Spaţiul de memorie aferent unor astfel de date se defineşte şi se rezervǎ la dimensiune

maximǎ, prestabilitǎ, ca spaţiu propriu care nu poate fi disponibilizat şi nici împǎrţit cu alte date, chiar dacǎ, în momentul diverselor execuţii ale programului, nu este în întregime utilizat (rezervare staticǎ sau la momentul compilǎrii).

CAPITOLUL 8. LIMBAJUL PASCAL

239

Componentele structurilor statice ocupǎ locuri prestabilite în spaţiul rezervat, determinate de relaţia de ordonare specificǎ fiecǎrei structuri.

Limbajul defineşte operaţiile admise cu valorile componentelor, potrivit tipului de bazǎ al structurii, încât numǎrul maxim şi ordinea componentelor structurii nu pot fi modificate.

În aceste condiţii, structurile statice sunt dificil de utilizat în rezolvarea problemelor care prelucrazǎ mulţimi de date pentru care numǎrul şi ordinea componentelor se modificǎ frecvent în timpul execuţiei programului. Limbajul PASCAL oferǎ posibilitatea utilizǎrii datelor de tip dinamic, cǎrora li se pot aloca şi elibera zone de memorie pe parcursul execuţiei programului.

Lucrul cu adrese în Pascal Adresarea memoriei se realizeazǎ prin registre ale unitǎţii centrale, care au apacitatea de un

cuvânt. La adresarea în modul real, pentru formarea unei adrese fizice din spaţiul de 1Mo este necesarǎ folosirea a douǎ registre: de segment (segment), care conţine adresa de început a segmentului, numitǎ şi adresa de bazǎ; de deplasare (offset), care precizeazǎ distanţa la care se aflǎ octetul adresat faţǎ de începutul segmentului. Astfel, orice adresǎ din memorie poate fi specificatǎ în formatul segment:offset sau, în alţi termeni, bazǎ:deplasare. Memoria este împǎrţitǎ în paragrafe de câte 16 octeţi, iar fiecare segment începe la graniţǎ de paragraf, adicǎ de la o adresǎ divizibilǎ cu 16. Într-un spaţiu de 1Mo sunt 216 paragrafe, adresa de început a unui segment, corespunzând unui numǎr de paragraf, poate fi reprezentatǎ ca o valoare pe 16 biţi. Adresele din segmentul curent se numesc apropiate (near), iar cele din afara acestuia sunt îndepǎrtate (far). Accesul la o adresǎ apropiatǎ presupune doar schimbarea conţinutului registrului de deplasare, în timp ce pentru o adresǎ îndepǎrtatǎ trebuie schimbatǎ atât valoarea registrului de segment, cât şi a celui de deplasare.

În unitatea System sunt definite functiile Seg(Var x):WORD, Ofs(VAR x):WORD care furnizeazǎ adresa de segment şi deplasarea variabilei, procedurii sau funcţiei x. În Pascal existǎ tipul de date pointer, memorat pe douǎ cuvinte, în care cuvântul superior (high) conţine partea de segment, iar cuvântul inferior (low) pe cea de deplasare asociate unei adrese. Pentru a se putea exemplifica modul de lucru cu adrese, se precizeazǎ faptul cǎ:

· tipul pointer se defineşte prin construcţia de forma ^tip; · adresarea indirectǎ a unei variabilei se defineşte prin construcţia identificator^; · referirea adresei unei variabile se defineşte prin construcţia @identificator. În sintaxa @identificator, identificator se referǎ la o variabilǎ, procedurǎ sau funcţie. Efectul

referirii @identificator este similar celui obţinut prin funcţia Addr definitǎ în unitatea System astfel: Addr(VAR x):pointer, unde x este variabilǎ, funcţie sau procedurǎ. Folosirea referirii identificator^ presupune existenţa unei adrese valide în variabila identificator.

Structura memoriei la execuţia unui program Dupǎ încǎrcarea programului executabil, memoria aferentǎ lui se structureazǎ în urmǎtoarele

regiuni (segmente): segmentul prefix program, regiunea de cod, segmentul de date, stiva şi zona heap. Pentru adresarea acestora, unitatea centralǎ de prelucrare foloseşte registre specializate, la unele dintre ele existând acces direct sau indirect.

• Segmentul prefix al programului (PSP) este o zonǎ de 256 de octeţi constituitǎ la încǎrcarea în memorie a fişierului de tip .EXE. Adresa de segment este memoratǎ în variabila publicǎ PrefixSeg, de tip WORD, definitǎ în unitatea System.

• Regiunea de cod este constituitǎ din mai multe segmente de cod: unul corespunzând programului principal, respectiv câte unul pentru fiecare unitate referitǎ în program. Registrul CS conţine adresa de start a instrucţiunilor programului, iar registrul IP (registru pointer al instrucţiunilor) precizeazǎ adresa urmǎtoarei instrucţiuni de executat. Programele Pascal nu au acces la registrul IP, dar valoarea curentǎ a registrului CS poate fi obţinutǎ cu funcţia CSeg.

• Segmentul de date este unic şi conţine constantele cu tip urmate de variabilele globale. Atunci când necesarul de memorie pentru datele interne depǎşeşte 64Ko, trebuie sǎ se recurgǎ la folosirea unor tehnici adecvate (memorarea datelor în heap sau pe medii externe, folosirea compactǎrii etc.).

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

240

• Segmentul de stivǎ, ca şi cel de date, poate avea maximum 64Ko, reducându-se la unul singur. Stiva este folositǎ în lucrul cu subprograme pentru memorarea parametrilor formali, variabilelor locale şi adreselor de revenire.

• Zona variabilelor dinamice, poate corespunde întregii memorii convenţionale a calculatorului, rǎmasǎ disponibilǎ dupǎ încǎrcarea programului. În heap se memoreazǎ variabilele dinamice, buffer-ele pentru structuri de reacoperire şi pentru lucrul în modul grafic. Adresa de început a zonei heap este datǎ de variabila publicǎ HeapOrg, iar adresa curentǎ este datǎ de variabila HeapPtr, ambele de tip pointer, definite în unitatea System. Alocarea variabilelor începe de la adrese mai mici cǎtre adrese mai mari, spaţiul maxim ce poate fi alocat unei variabile neputând depǎşi 64Ko (65520 octeţi), ca urmare a limitǎrilor impuse mecanismului de adresare a memoriei. Dupǎ modul lor de funcţionare, stiva şi heap-ul pot fi asimilate cu douǎ stive aşezate spate în spate. Programatorul poate controla repartizarea memoriei disponibile între stivǎ şi heap în faza de execuţie cu directiva de compilare {$M}, care are urmǎtoarea formǎ sintacticǎ: {$M StackSize,HeapMin,HeapMax}

StackSize trebuie sǎ fie un întreg din domeniul 1024 (1Ko) la 65520 (64 Ko), prin care se specificǎ mǎrimea segmentului de stivǎ. HeapMin şi HeapMax specificǎ dimensiunea minimǎ, respectiv maximǎ a heap-ului, teoretic cu valori între 0 si 640 Ko. Riguros, HeapMin poate avea valori de la 0 la 655360, iar HeapMax trebuie sǎ fie în domeniul de la HeapMin la 655360. Valorile implicite pentru aceşti parametri de alocare sunt {$M 16384,0,655360}.

Rezultǎ cǎ dimensiunea implicitǎ a stivei este de 16 Ko, iar zona de heap se extinde, teoretic, în tot spaţiul rǎmas liber în memoria convenţionalǎ. Practic, din dimensiunea de 640 Ko trebuie scǎzut, pe lângǎ spaţiul ocupat de programul însusi, cel corespunzǎtor componentelor sistemului de operare rezidente în memorie pe parcursul executiei.

Tipuri dinamice de date În Pascal se opereazǎ cu douǎ tipuri de date dinamice - referinţǎ şi pointer - primele fiind "cu

tip" iar celelalte "fǎrǎ tip". · Tipul referinţǎ are sintaxa: tip_referintǎ=^tip_de_bazǎ; Simbolul ^ are semnificaţia de "indirect". Datoritǎ asocierii cu un tip de bazǎ, variabilele

tip_referintǎ se mai numesc şi variabile cu referinţǎ legatǎ. La compilare, pentru astfel de variabile, se vor rezerva în segmentul de date douǎ cuvinte şi la referirea lor se vor genera instrucţiuni cod maşinǎ conform tipului de bazǎ, dar cu adresare indirectǎ. Înainte de referire, în variabilele de tip_referintǎ trebuie sǎ se încarce adresele variabilelor de tipul tip_de_bazǎ. Declararea unui tip referinţǎ permite referirea anterior declarǎrii tipului de bazǎ. Astfel, urmǎtoarea secvenţǎ de declarǎri este corectǎ: TYPE pointer_a=^vector; vector=ARRAY[1..20] OF REAL;

Construcţia sintacticǎ a referirii unei variabile dinamice depinde de caracteristicile tipului sǎu de bazǎ: este de forma identificator^ în cazul tipurilor nestructurate sau celor structurate care permit referirea globalǎ (STRING, RECORD şi SET); conţine prefixul identificator^, urmat de elementele specifice modului de referire a componentelor, în cazul tipurilor structurate care permit referirea pe componente (ARRAY, STRING şi RECORD).

· Tipul pointer este desemnat prin cuvântul rezervat pointer. Variabilele de tip pointer pot fi denumite variabile cu referintǎ liberǎ, deoarece pot fi folosite la memorarea adreselor pentru variabile de orice tip. Tehnica de lucru cu astfel de variabile este asemǎnǎtoare celei prezentate la tipul referinţǎ. Utilizarea efectivǎ presupune o asociere explicitǎ cu un anumit tip de bazǎ, dar soluţia folositǎ este diferitǎ. La tipul referinţǎ, asocierea se face prin declarare, iar în cazul tipului pointer asocierea se realizeazǎ la utilizare, prin diverse tehnici. O posibilitate este asiguratǎ de referinta typecasting (transfer de tip), care are forma generalǎ: tip(variabilǎ), unde tip este un tip standard sau declarat anterior de utilizator iar variabilǎ poate fi cu/fǎrǎ tip sau o referinţǎ prin pointer, de forma variabilǎ_pointer^.

Din punct de vedere fizic, variabilele de tip referintǎ_legatǎ şi pointer memoreazǎ adrese sub forma segment:offset. În limbajul de specialitate, ambele tipuri se definesc prin termenul pointer.

CAPITOLUL 8. LIMBAJUL PASCAL

241

Urmǎtorul evemplu evalueazǎ expresia e:=a+b, folosind adresarea indirectǎ pentru toate variabilele (a şi e prin referintǎ_cu_tip iar b prin pointer):

VAR a,b,e:REAL; pa,pe:^REAL; pb:POINTER;

BEGIN pa:=addr(a); pb:=@b; pe:=@e;

Write(‘A=); ReadLn(pa^); Write(‘B=’); ReadLn(REAL(pb^)); pe^:=pa^+REAL(pb^); WriteLn(‘E= ‘,pe^:8:2))

END. Variabilele pointer (referinţǎ sau pointer) pot fi puse în relaţie cu operatorii = şi < >. Douǎ

variabile vor fi egale dacǎ au componentele segment, respectiv offset egale. De remarcat faptul cǎ douǎ variabile de tip pointer care indicǎ aceeasi adresǎ pot fi neegale, deoarece le diferǎ componentele. Variabilele pointer pot fi folosite în atribuiri. Atât în relaţii cât şi în atribuiri sunt definite urmǎtoarele clase de compatibilitate: tipul referinţǎ este compatibil cu orice alt tip dinamic; douǎ variabile de tip referinţǎ sunt compatibile dacǎ sunt de acelaşi tip.

Observaţie: pa şi pb nu sunt de acelaşi tip dacǎ sunt declarate astfel: pa:^real; pb:^real. Ele sunt de acelaşi tip dacǎ sunt declarate astfel: pa,pb:^real.

Este definitǎ o constantǎ simbolicǎ (nil) cu semnificaţie de valoare nulǎ a tipului dinamic (valoarea nil nu puncteazǎ o zonǎ de memorie).

Utilizarea zonei heap Noţiunea de dinamic este strâns legatǎ de utilizarea zonei de memorie heap (deşi tipul

dinamic poate fi asociat variabilelor memorate în orice componentǎ a memoriei principale). În unitatea System sunt definite urmǎtoarele variabile de tip pointer, care pot fi folosite în

gestionarea zonei heap: HeapOrg, HeapPtr, HeapEnd, HeapError, FreeList. HeapOrg puncteazǎ pe adresa de început a zonei heap, iar HeapEnd dǎ adresa de sfârşit a

heap-ului. HeapPtr conţine urmǎtoarea adresa disponibilǎ din heap. Ea este variabila prin care se

gestioneazǎ fiecare nouǎ alocare, punctând pe prima adresǎ disponibilǎ din heap. Toate procedurile de alocare (New, GetMem, Mark) lucreazǎ cu aceastǎ variabilǎ. HeapError corespunde adresei rutinei de tratare a erorilor de alocare pentru variabile dinamice. FreeList serveşte la gestiunea blocurilor devenite libere în interiorul heap-ului, punctând pe primul bloc liber în heap, care puncteazǎ pe al doilea. Ultimul bloc liber puncteazǎ pe vârful heap-ului, adicǎ pe locatia datǎ de HeapPtr, asigurându-se astfel posibilitatea realocǎrii acestor spaţii. Dacǎ în interiorul heap-ului nu existǎ blocuri libere, atunci FreeList va fi egalǎ cu HeapPtr.

În unitatea System sunt definite o serie de proceduri şi funcţii care pot fi utilizate în lucrul cu variabilele dinamice. Procedurile GetMem(p,n), FreeMem(p,n), respectiv New(p) şi Dispose(p) se folosesc pentru a aloca /elibera un bloc a cǎrui adresǎ este datǎ de variabila pointer sau referintǎ, p.

Se poate stabili dacǎ spaţiul disponibil este acoperitor pentru o variabilǎ de un anumit tip, scriind o relaţie de forma MaxAvail >= SizeOf (tip).

· Alocarea şi eliberarea zonelor pentru variabile referintǎ_legatǎ se face cu procedurile New, respectiv Dispose, definite în unitatea System astfel:

New(VAR p:pointer), Dispose(VAR p:pointer). Procedura New rezervǎ în heap o zonǎ de memorie de lungime egalǎ cu cea indicatǎ de tipul

de bazǎ şi încarcǎ în variabila p adresa acestei zone. Existǎ douǎ niveluri de rezervare: staticǎ (corespunzǎtoare lui px) şi dinamicǎ (datoratǎ procedurii New(px), care rezervǎ variabila în heap, în conformitate cu tipul de bazǎ). Din punct de vedere fizic, operaţia realizeazǎ memorarea în variabila p a valorii HeapPtr şi avansarea acesteia din urmǎ cu lungimea specificǎ tipului de bazǎ.

Dacǎ nu existǎ o zonǎ contiguǎ disponibilǎ de lungime mai mare sau egalǎ cu cea necesarǎ se genereazǎ eroare de execuţie. Procedura Dispose elibereazǎ zona alocatǎ variabilei. Urmǎtorea alocare se poate face pe spaţiul eliberat, dacǎ este acoperitor ca lungime. Fizic, se reface în HeapPtr valoarea de dinaintea alocǎrii prin New.

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

242

Prin posibilitatea de generare a unor succesiuni de valori de acelaşi tip, de la simpla alocare dinamicǎ de spaţiu pentru o singurǎ valoare a unei variabile se poate trece la realizarea unor structuri dinamice de date.

Acest lucru este posibil pe baza înlǎnţuirii succesiunilor de valori, ca urmare a includerii la fiecare element al structurii a douǎ pǎrţi:

o parte de informaţii, corespunzând valorii propriu-zise a elementului; o parte de legǎturǎ, care va conţine adresa urmǎtorului element.

· Alocarea şi eliberarea zonelor pentru variabile de tip pointer se realizeazǎ cu procedurile GetMem, respectiv FreeMem, definite în unitatea System astfel:

GetMem(VAR p:pointer; l:WORD), FreeMem(VAR p:pointer; l:WORD). Efectul acestora este asemǎnǎtor procedurilor New şi Dispose, cu precizarea cǎ este necesarǎ

specificarea lungimii, care nu poate fi dedusǎ implicit, neexistând un tip de bazǎ. Spaţiul alocat la un apel al procedurii GetMem corespunde dimensiunii articolului (6 octeti). · Ca alternative ale procedurilor New, GetMem, respectiv Dispose, FreeMem, pot fi folosite

procedurile Mark şi Release, definite în unitatea System astfel: Mark(VAR p:pointer), Release(VAR p:pointer). Procedura Mark memoreazǎ în variabila p valoarea din HeapPtr, iar procedura Release

depune în variabila HeapPtr conţinutul variabilei p. Folosirea în pereche a procedurilor Mark şi Release oferǎ posibilitatea ca dupǎ diverse alocǎri sǎ se restabileascǎ valoarea variabilei HeapPtr cu valoarea memoratǎ prin Mark.

Apelul Release(HeapOrg) aduce HeapPtr pe începutul zonei heap (elibereazǎ zona). În exemplul urmǎtor, se memoreazǎ în y adresa de la un moment dat a lui HeapPtr (fie ea a),

se modificǎ HeapPtr prin rezervarea a 12 octeţi (pentru x2, x3), se reface conţinutul lui HeapPtr cu adresa a, ceea ce înseamnǎ cǎ x3^ se rezervǎ la aceastǎ adresǎ (în locul variabilei x2^). VAR

x1,x2,x3.x4:^REAL; y:POINTER;

BEGIN New(x1); x1^:12; Mark(y); {Memorarea valorii HeapPtr in Y} New(x2); x2^:=10; New(x3); x3^:=34; Release(y); {Reincarcarea valorii din Y in Heapptr} New(x4); x4:=46; {Se va memora peste valoare 10 din x2}

O altă facilitate a limbajului consta în posibilitatea utilizării tipurilor care se autoreferă (sunt definite recursiv). Tipul reper "listă" reperează un tip "articol", în care câmpul "următor" la rândul lui este de asemenea de tip "lista". Aceasta facilitate poate fi folosită de exemplu la alcătuirea listelor înlănţuite. După crearea unei variabile dinamice a cărei adresă este depusă într-o variabilă de tip reper, ea poate fi accesată prin aşa zisa dereperare: numele variabilei de tip reper este urmat de semnul ^. Acest semn poate fi urmat şi de un alt calificator (de câmp, de tablou, etc.).

8.7. UNITĂŢI DE PROGRAME

Unitǎţile de program (UNIT-uri), stau la baza programarii modulare în Turbo- Pascal. Ele sunt folosite pentru a crea biblioteci ce pot fi incluse în diferite programe. Programele

mari se pot împarţi în module logice create şi testate separat. Unit-ul este o colecţie de constante predefinite, declaraţii de tip şi variabile, funcţii şi

proceduri, care sunt stocate în forma compilatǎ şi este recunoscut dupǎ identificatorul de nume, care are extensia .TPU

Incorporarea Unit-urilor în programul Turbo-Pascal, se realizează cu instrucţiunea USES, plasată în prima linie de program, dupǎ linia de titlu PROGRAM (dacǎ aceasta existǎ).

Formatul general al instructiunii USES este:

CAPITOLUL 8. LIMBAJUL PASCAL

243

USES Nume_unit1[,Nume_unit2,...]; unde: Nume_unit1, Nume_unit2,... - reprezintǎ numele Unit-urilor ce vor fi incorporate în

program. La întâlnirea acestei instrucţiuni, compilatorul pregateste incorporarea în program a unit-ului

specificat în USES, astfel: A - caută unit-urile specificate în fişierul Turbo.TPL. Dacǎ acesta este găsit, este încărcat în

memoria centrală şi astfel codurile obiect sunt incorporate în program; B - dacă unit-ul nu se găseşte în Turbo.TPL, compilatorul caută în catalogul de unităţi un

fişier cu numele unit-ului şi extensia .TPU. Dacă este găsit, se realizează paşii de la punctul A. C - dacă nu-l gaseşte, compilatorul caută un fişier sursǎ cu numele unit-ului şi extensia .PAS.

Daca îl găseşte , acesta va fi compilat şi-l va include în program; D - dacă un astfel de fişier nu exista, este semnalată eroarea. În Turbo-Pascal se pot folosi două categori de Unit-uri: - unit-uri STANDARD - puse la dispoziţie de mediul Turbo-Pascal; - unit-uri NESTANDARD - create de utilizatori. Unit-urile STANDARD sunt urmatoarele: - unit-ul SYSTEM, conţine toate funcţiile şi procedurile de bază din Turbo-Pascal. Acest

unit se încarcă automat. - unit-ul DOS, conţine proceduri şi funcţii echivalente cu funcţiile DOS cele mai

utilizate. - unit-ul OVERLAY, conţine proceduri şi funcţii care permit gestionarea segmentelor de

program pentru proiectarea programelor mari. - unit-ul CRT, conţine proceduri şi funcţii pentru folosirea ecranului în mod alfanumeric şi a tastaturii. - unit-ul GRAPH, conţine proceduri şi funcţii, pentru folosirea ecranului în mod grafic. - unit-ul PRINTER, conţine funcţiile de lucru cu imprimanta. - unit-urile GRAPH3,TURBO3, care permit folosirea programelor mari scrise în Turbo-

Pascal versiunea 3.0. Unităţile STANDARD sunt pastrate în fişierul bibliotecă Turbo.TPL Actualizarea acestui fişier se poate face cu programul utilitar TPUMOVER.EXE. Unit-urile NESTANDARD, sunt acele unit-uri create de utilizatori, în care sunt incluse

proceduri şi funcţii proprii utilizatorului. Crearea unui unit propriu, necesita următoarele etape: - editarea unit-ului; - compilare in memorie şi eliminarea erorilor de compilare;

- salvarea Unit-ului editat şi compilat în memorie sub un nume de fişier (care va fi numele unit-ului), cu extensia .PAS;

- compilarea fişierului pe disc, obţinându-se fişierul cu extensia .TPU Dupǎ creare, unit-ul poate fi incorporat în program, folosind instructiunea USES. Editarea Unit-ului Initial programatorul editeaza textul unui unit într-un fişier sursǎ nume_unit.PAS. Pentru a edita unit-ul, se deschide un fişier folosind opţiunea OPEN din meniul FILE (F10,

File, Open, sau ALT-F,O), şi se introduce numele viitorlui UNIT. Se deschide o fereastră de editare cu numele UNIT-ului, în care se va edita codul sursă într-o

anumită structurǎ. Structura unui unit consta din: - titlul Unit-ului (UNIT HEADING); - secţiunea INTERFACE - care conţine lista de declaraţii de constante, tipuri, variabile,

proceduri şi funcţii; - secţiunea IMPLEMENTATION - care conţine codul sursă a procedurilor şi funcţiilor declarate în secţiunea INTERFACE;

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

244

- secţiunea INITIALIZATION - care conţine instrucţiuni pe care Turbo-Pascal-ul le execută la prima apelare a Unit-ului, respectiv la linia finală din programul principal.

Forma generala în limbajul Turbo-Pascal a unui Unit este: UNIT Nume_unit; INTERFACE uses {lista unit-urilor folosite} {declaratii globale } {lista de proceduri si functii globale} IMPLEMENTATION {declaraţii locale de etichete} {declaratii locale de constante} {declaraţii locale de tipuri} {declaraţii locale de variabile} {proceduri şi funcţii} [ begin {iniţializare} {instrucţiuni} ] {opţional} end. {sfârşit iniţializare şi unitate}

Numele unităţii Nume_unit , este identificatorul unităţii utilizat în clauza USES. Numele acestor unităţi trebuie să difere între ele. Lista unit-urilor folosite, este lista numelor unităţilor utilizate de unitatea curentă. Ordinea

unităţilor este oarecare, exceptând cazul când o unitate apeleaza pe alta; atunci unitatea apelată trebuie să preceadă unitea apelantă.

Declaraţiile globale, conţin declaraţii de constante, tipuri şi variabile accesibile altor unităţi. Lista de funcţii şi proceduri, cuprinde antetele funcţiilor şi procedurilor accesibile altor

unităţi. Procedurile şi funcţiile conţin declaraţiile procedurilor şi funcţiilor locale sau globale şi corpul

acestora cu zona de instrucţiuni cuprinsă între Begin şi End. Secvenţa de iniţializare cuprinde instrucţiunile care trebuiesc executate înainte de declanşarea

execuţiei programului principal. Exemplu:

Unit Mate; {O+F+} INTERFACE function fact(x:integer):longint; IMPLEMENTATION function fact(x:integer):longint; var f:longint; i:integer; begin f:=1; for i:=2 to x do f:=f+i; fact:=f; end end.

Incorporarea acestui unit într-un program se realizează cu linia USES Mate; Program calcule; uses mate; var NFact:longint; - - - - - - begin - - - - - - NFact:=Nfact(10); - - - - - - end.

Programul apelează funcţia Fact(10) care este definită în unitul Mate.

CAPITOLUL 8. LIMBAJUL PASCAL

245

Compilarea în memorie şi eliminarea erorilor la compilare. După terminarea editarii se verifică dacă opţiunea de compilare Compile din meniul

COMPILE, este setată pe MEMORY după care se efectuează complilarea (ALT+F9 sau ALT+F,C). Daca în timpul compilării apar erori, acestea se vor corecta şi se va relua compilarea. Rezultatul compilării unit-ului editat, este fişierul nume_unit.PAS. Salvarea Unit-ului compilat sub numele viitorului unit (nume folosit la OPEN) se realizează

cu opţiunea Save din meniul FILE (F2 sau ALT+F,S) Se obţine fişierul cu numele nume_unit.Pas Compilarea Unit-ului Se procedează la setarea opţiunii Compile pe Compile Disk (din meniul Compile ALT+F10,C

sau ALT+F9) Se obţine fişierul nume_unit.TPU, care reprezintă fişierul obiect al unit-ului. Când se efectuează modificări în partea de implementare, sau de iniţializare a unui unit,

unităţile care-l utilizează trebuiesc recompilate. Când se efectuează modificări în interfaţa unit-ului, trebuiesc recompilate toate unit-urile care

la rândul lor o utilizează. Acest lucru se efectuează automat cu Compile Built şi Make din meniul Compile. Comanda Make, compară data creării fişierului sursă (.PAS) şi obiect (.TPU) ale unităţilor

folosite şi le recompilează pe cele care au fost modificate dar nu au fost compilate din nou. Comanda Built, recompilează toate unităţile indiferent de data creării. Codul obiect generat pentru fiecare Unit, nu trebuie să depasească 64k, fiid limitat de

dimensiunea unui segment în care trebuie să se încadreze. Organizarea programelor mari. Fişiere incluse. Editorul Turbo Pascal poate trata programe a căror text nu depăşeşte 64K. Programele mai mari trebuiesc împărţite în mai multe fişiere, a căror grupare poate fi realizată

prin directive de includere. Un exemplu este dat în programul următor, dispus în două fişiere diferite. Fişierul inclus Proc.inc conţine textul:

Procedure ListareFisier; Var i : integer; Begin ....corp procedura .... End.

Fişierul principal Princ.pas conţine: {$I Proc.inc} Begin ListareFisier; End;

Directiva $I face ca Turbo Pascal să trateze conţinutul fişierului Proc.inc ca parte a programului, plasată chiar în poziţia directivei.

Forma generala a directivei de includere este : {$I nume_fisier_inclus} unde: nume_fisier_inclus este identificatorul unui fişier conţinând un text sursă Pascal. Dacǎ numele nu este însoţit de extensie, Turbo Pascal considerǎ implicit extensia .Pas. Stive şi cozi Listele, implementate dinamic, sunt foarte utile atunci când se lucrează cu multe informaţii,

pe care vectorii se dovedesc incapabili a le stoca, sau ineficienţi. Un caz particular de liste (simplu înlănţuite) îl constituie stivele şi cozile. Acestea

implementează două mecanisme diferite de intrare şi ieşire a elementelor din lista. La ambele feluri de liste, un nod al listei este o înregistrare ce conţine o informaţie (info), precum şi un pointer (indicator) către următorul element al listei (prec sau urm).

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

246

. Stiva este o structurǎ dinamicǎ de date reprezentatǎ de o listǎ simplu înlǎnţuitǎ în care mecanismul de intrare-ieşire a elementelor este de tip LIFO – Ultimul intrat este primul ieşit (last in – first out). Este de ajuns un pointer către primul element al stivei, pentru a realiza atât operaţia de adăugare a unui element (numită Push), cât şi cea de eliminare (Pop), deoarece ambele operaţii se realizează prin partea superioară a listei.

. Coada este o structurǎ dinamicǎ de date reprezentatǎ de o listǎ simplu înlǎnţuitǎ în care mecanismul de intrare-ieşire a elementelor este de tip FIFO – primul intrat este primul ieşit (first in – first out). În cazul cozii, avem nevoie de doi pointeri, unul către primul element al cozii (capul cozii), iar altul către ultimul său element (coada cozii), deoarece introducerea în listă se face prin spate, iar eliminarea prin faţă. (Există şi o variantă de coadă circulară, în care elementele sunt legate într-un cerc, iar cei doi pointeri, indicând capul şi coada cozii, sunt undeva pe acest cerc.).

Liste dublu înlǎnţuite În cazul listelor dublu înlănţuite avem, spre deosebire de stive şi cozi, următoarele noi

elemente: • există doi pointeri speciali: început şi sfârşit care pointează către două celule extreme ale

listei, dar care nu fac parte din listă; ei se numesc santinele, • există un pointer numit curent care indică întotdeauna elementul curent din listă; • fiecare element a listei este legat prin doi pointeri (prec şi urm) de elementele dinaintea şi

de după el din cadrul listei; • avem un câmp lungime, care va indica lungimea listei. Operaţiile ce se cer a se efectua cu o astfel de listă sunt:

• iniţializarea listei; • adăugarea unui element ta sfârşitul listei; • inserarea unui element înaintea elementului curent din listă; • ştergerea elementului curent din listă. • afişarea listei.

Când se adaugă sau se inserează un nou element în listă, acel element devine cel curent. Când elementul curent se şterge din listă, locul său este preluat de elementul care îl succeda, în cadrul listei. În momentul în care se introduce sau se eliminǎ un element din listă, dispar unele legături şi apar altele. Procese aproape inverse se realizează la eliminarea elementului curent din listă. Fireşte, acest lucru se poate realiza doar dacă lista nu este vidă. Pentru a elibera efectiv zona de memorie ocupată de elementul eliminat, se apelează procedura Dispose. Eliminarea elementului curent va presupune legarea elementului ce-l precede cu cel ce îl succede. Succesorul elementului eliminat devine element curent, iar lungimea listei scade cu o unitate.

Arbori binari. Arborescenţe în digrafuri Fie H=(V,E) un digraf (graf orientat). Se numeşte rădăcină a lui G un vârf V0ЄV astfel încât

oricare ar fi un vârf vЄV, există cel puţin un drum de la V0 la v. Dacă H=(V,E) este un digraf, prin graful suport al lui H vom înţelege graful obţinut din H, prin renunţarea la orientarea arcelor. H se numeşte arborescentă dacă are o rădăcină şi graful său suport este arbore.

În informatică, arborescentele sunt numite, prin abuz de limbaj, arbori, specificându-se rădăcina şi considerând implicită orientarea muchiilor corespunzător parcurgerii drumului unic de la rădăcină la fiecare vârf. Fiecare vârf are astfel nişte fii, adică vecinii imediat următori pe drumul de la rădăcină în jos (către frunze, adică noduri fără fii). Un arbore cu cel mult doi fii se, mai numeşte şi arbore binar. Se pote considera arborele ca fiind organizat pe mai multe niveluri. Primul nivel este cel al rădăcinii. Urmează nivelul fiilor acesteia şi tot aşa până la ultimul nivel, cel al ultimelor frunze.

Referirea unui arbore binar şi, implicit, definirea sa, pote fi făcută printr-un pointer către nodul său rădăcină. Fiecare nod din arbore este o înregistrare cu următoarele elemente:

• o informaţie info de tip întreg; • doi pointeri către cei doi fii (subarborii stâng şi drept) ai nodului: stg şi dr. În programul care urmează, vom construi astfel de arbori, care au în plus următoarea

proprietate: fiecare nod din arbore este mai mare sau egal cu nodurile din fiul stâng şi mai mic decât

CAPITOLUL 8. LIMBAJUL PASCAL

247

nodurile din fiul drept (din punct de vedere al câmpului info). Un astfel de arbore se numeşte arbore de căutare - sortare,

O căutare a unui element în astfel de arbori este într-adevăr uşor de realizat: dacă elementul căutat este identic cu informaţia din nod, atunci căutarea se încheie cu succes, dacă nu, atunci se pleacă pe una din cele două direcţii: dacă elementul căutat este mai mic, atunci se merge pe fiul stâng, altfel pe fiul drept. Dacă se încearcă o trecere dincolo de un nod terminal, deci la nil, atunci căutarea eşuează.

Un arbore binar poate fi parcurs în trei feluri: • în inordine se parcurge mai întâi, recursiv, în inordine, fiul stâng, apoi rădăcina, apoi fiul

drept; • în postordiner se parcurge fiul stâng, apoi cel drept, în final rădăcina; • în preordine se parcurge rădăcina, fiul stâng şi apoi fiul drept. Se observă că parcurgerea în inordine a unui astfel de arbore duce la afişarea în ordine

crescătoare a elementelor din nodurile arborelui, motiv pentru care astfel de arbori pot fi consideraţi şi de sortare.

Memorarea arborilor oarecare în arbori binari se realizează dacă legăm rădăcina 1 de nodul 2, iar apoi, nodul 2 poate fi legat de primul fiu al său (21) şi de următorul fiu al rădăcinii, deci 3, despre care se spune că este un frate a lui 2. Procedând astfel pentru toate nodurile din arbore, vom obţine un arbore binar, cu două legături: cea din stânga este către primul fiu, iar cea din dreapta către primul frate din dreapta al acestui fiu.

Arborii oarecare se vor memora sub forma unei structuri ce conţine o informaţie info (de tip Integer), un numǎr de fii (NrFii), precum şi un vector de pointeri (referinţe) cǎtre toţi fii nodului în cauzǎ (fiu: array[1..max] of arbore).

8.8 PROGRAMAREA ORIENTATĂ SPRE OBIECTE

O tendinţă naturală în evoluţia limbajelor de programare este de a pune în corespondenţă

obiectele acestei realităţi cu reprezentări cât mai fidele la nivelul limbajului. Limbajele orientate spre obiecte elimină neajunsurile menţionate prin includerea conceptelor

de încapsulare şi moştenire, pentru caracterizarea acestor limbaje care sugerează că reprezentarea obiectelor în limbaj se apropie tot mai mult de realitatea acestora.

Încapsularea realizeaza "fuziunea" dintre datele şi procedurile caracteristice unui obiect, într-o structură unică ce-l caracterizează static şi comportamental. Moştenirea permite captarea unor mecanisme naturare ca specializarea, abstractizarea, aproximarea şi evoluţia. Moştenirea poate fi folosită pentru organizarea mai bună a prelucrărilor.

Programarea orientată spre obiecte este o tehnică de programare, iar un limbaj de programare orientat spre obiecte are mecanismele-suport necesare acestui stil de programare. Limbajul este înzestrat cu elementele care fac programarea orientată spre obiecte suficient de comodă.

Unitatea grupează datele şi procedurile de prelucrare a lor, cu următoarele efecte: -ascunde utilizatorului unităţii amănuntele de implementare a listei (încapsulare); -furnizează o interfaţăa clară de acces la listă, doar prin procedurile şi funcţiile definite; -face iniţializarea listei.

Utilizând tehnica modularizării, sunt posibile următoarele soluţii: -modificarea unităţii de program lista, astfel încât să gestioneze un număr oarecare de liste, nu doar una singură; -utilizarea unei unităţi separate, cu acelaşi conţinut dar cu nume diferit, pentru gestionarea unei a doua liste,

Definirea obiectelor Deşi programarea orientată spre obiecte este un stil de programare -fundamental deosebit de

cel tradiţional, construcţiile sintactice ale limbajului Turbo Pascal care o facilitează pot fi înţelese ca "extinderi" ale unora mai vechi. Astfel, asocierea dintre datele caracteristice unor subprobleme şi

PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE ÎN INDUSTRIA LEMNULUI

248

procedurile de prelucrare a lor nu este nouă, ea fiind întâlnită şi în cazul unităţilor de program. În cazul obiectelor, programatorul are posibilitatea să definească această asociere în forma unui tip, care se comportă aproape la fel ca celelalte tipuri ale limbajului, cum ar fi înregistrările: se pot declara variabile având tipul respectiv şi se pot realiza prelucrări cu ele. Acest nou tip poartă numele de object.

Obiectul conţine declaraţii atât pentru date, cât şi pentru proceduri şi funcţii, într-o formă similară definirii unei înregistrări. Procedurile şi funcţiile declarate într-un obiect se numesc metode. Obiectul cuprinde doar antetul metodelor, blocurile asociate lor urmând a fi specificate separat. Câmpurile de date sunt definite ca în înregistrări, prin selectorul şi tipul fiecăruia.

O metodă este identificată prin numele obiectului la care se referă, urmat de un punct şi de numele procedurii sau al funcţiei, după tiparul notaţiei unui câmp de înregistrare. În schimb, în blocul metodei, câmpurile de date sunt referite doar prin selector, ca şi cum acesta s-ar afla sub incidenţa unei instrucţiuni with referitoare la obiectul corespunzator.

Odată ce a fost definit un object, pot fi declarate instanţe ale sale. Acestea pot fi valorile unor variabile-obiect statice, declarate în maniera cunoscută (declaraţia var), sau ale unor variabile dinamice create prin aplicarea procedurilor predefinite new şi getmem unor variabile referinţe la obiectul declarat.

O astfel de modificare directă a câmpurilor unei instanţe nu este în concordanţă cu stilul programării cu obiecte, care recomandă folosirea exclusivă a metodelor. Apelul unei metode are forma uzuală a apelului oricarei proceduri sau funcţii, cu observaţia ca numele metodei este prefixat de numele variabilei căreia i se aplică.

Observaţie. Terminologia adoptată în Turbo Pascal diferă de cea a altor limbaje orientate spre obiecte. Astfel, în C + + , se utilizează denumirile clasa (pentru un tip obiect) şi obiect (pentru o instanţă). Turbo Pascal este mai conservator, denumirile adoptate fiind în concordanţă cu noţiunile mai vechi ale limbajului. Prin urmare, se vorbeşte despre un tip object în acelaşi mod în care ne referim la un tip înregistrare şi despre o variabilă obiect la fel ca despre o variabilă înregistrare.

Variabilele obiect pot fi iniţializate cu ajutorul declaraţiei const, similar altor variabile. Deoarece iniţializarea se referă doar la câmpurile obiectelor nu şi la metode, iniţializarea variabilelor obiect are aceeaşi formă cu iniţializarea variabilelor înregistrare: numele instanţei insoţit de tip şi de lista valorilor iniţiale ale câmpurilor, inclusă între paranteze rotunde. Valoarea iniţială a unui câmp este precedată de selectorul acestuia.

Unul din scopurile programării orientate spre obiecte este utilizarea obiectelor ca entităţi complete, de sine stătătoare: niciunul din câmpurile unui obiect nu trebuie să fie direct accesibil utilizatorului, orice operaţie asupra sa realizându-se prin intermediul metodelor. Metodele trebuie să alcătuiasca un set cât mai complet de operaţii relative la object. Metodele permit testarea şi actualizarea oricărui câmp al obiectului, eliminând necesitatea adresării directe la câmpurile acestuia.

Utilizatorul are la dispoziţie un set complet de metode pentru prelucrarea câmpurilor obiectului, accesul direct la aceste câmpuri nu este îngrădit, deoarece ele sunt declarate în partea de interfaţă, la fel ca metodele. Versiunea 6 a limbajului Turbo Pascal permite însă divizarea declaraţiei obiectului în două secţiuni: una publică, accesibilă din afara obiectului şi una privată, accesibilă doar în cadrul obiectului, inclusiv în declaraţiile metodelor sale. Se asigură astfel o protecţie a câmpurilor şi metodelor private. Prin aceasta, se elimină posibilitatea manevrării lor incorecte, prin acţiuni din afara obiectului, de îndată ce metodele care au acces la ele sunt puse la punct. Secţiunea privată este specificată prin cuvântul cheie private şi se află după secţiunea publică a obiectului.

Definiţia unui obiect începe cu declararea elementelor publice, urmată de secţiunea privată. Aceasta este indicată de cuvântul cheie private, urmat de declaraţiile corespunzătoare. Există

şi situaţii în care şi unele metode sunt dispuse în zona privată. Includerea unor structuri de date în altele este un procedeu obişnuit de realizare a unor

structuri complexe. O astfel de imbricare nu este permisă în cazul obiectelor. Există totuşi un

CAPITOLUL 8. LIMBAJUL PASCAL

249

mecanism prin care un object să moştenească componentele altui obiect, declaraţia primului trebuie să facă o referire la cel de-al doilea obiect.

Definirea metodei init într-un obiect face ca metoda init a strămoşului său să nu mai fie moştenită, fiind astfel redefinită. În schimb ea poate fi utilizată în noua metodă, evitând astfel duplicarea codului necesar câmpurilor care sunt prezente. Redefinirea unei metode poate schimba lista parametrilor acesteia.

Spre deosebire de metode, ale căror nume pot fi duplicate, selectorii câmpurilor nu pot fi redefiniţi în nici un obiect descendent.

Metode statice şi virtuale. Dacă dorim să îmbogăţim metodele obiectelor definite anterior cu una de modificare a unui

câmp, această metodă ar trebui adăugată obiectului, de ea beneficiind, prin moştenire şi obiectul. Mecanismul care permite realizarea unei legături dinamice este acela al metodelor virtuale. Sintactic, declararea unei metode virtuale se face prin adăugarea cuvântului rezervat virtual antetului metodei din declaraţia obiectului. Dacă o metodă a fost declarată virtuală într-un obiect, ea trebuie declarată virtuală în toţi descendenţii acestuia, antetul metodei rămânând nemodificat în toţi descendenţii (nu se pot modifică parametrii şi nu se poate schimba o funcţie cu o procedură sau invers).

Implementarea metodelor virtuale se bazează pe construcţia unor tabele de metode virtuale (virtual method table -VMT), care conţin adresele metodelor virtuale. Fiecare obiect care conţine o metodă virtuală are o astfel de tabelă realizată de o metodă specială a obiectului numită constructor. El trebuie apelat înaintea oricărei metode virtuale; de obicei el este apelat înaintea oricarei alte metode a obiectului. Sintactic, constructorul diferă de celelalte metode prin prezenţa cuvântului rezervat constructor, în loc de function sau procedure.

Funcţia inversă celei a constructorului este realizată de o altă metodă specială, numită destructor. Sintactic, ea se deosebeşte de celelalte metode prin cuvântul rezervat destructor folosit în locul cuvintelor procedure sau function.

Destructorul este ultima metodă apelată a unui obiect. Uzual, destructorul nu are parametri. Mecanismul metodelor virtuale se bazează pe construirea şi utilizarea unei tabele de metode

virtuale (VMT -Virtual Methods Table) pentru fiecare object. Ea are următoarea alcătuire: -dimensiunea obiectului (1 cuvânt); -valoarea negativă a primului cuvânt; -adresa primei metode virtuale (2 cuvinte: segment + deplasare) -adresa celei de-a doua metode virtuale etc. Al doilea cuvânt al acestei structuri este prevăzut pentru validarea tabelei în cazul în care se

utilizează directiva de compilare ($R+ }. Ea constă în însumarea primelor două cuvinte, rezultatul fiind zero dacă tabela este iniţializată corect şi diferit de zero în caz contrar.

La apelul unei metode virtuale, Turbo Pascal transmite automat prin stivă adresa variabilei-obiect prin care s-a facut apelul. De exemplu, la apelul s.afisare se transmite prin stiva adresa lui s. Aceasta este cunoscută sub denumirea de parametrul self şi este ultimul parametru încărcat în stivă la apelul metodei.

Compatibilitatea obiectelor. Variabilele obiect pot fi copiate prin instrucţiuni de atribuire şi pot fi folosite ca parametri variabile, la apelul subprogramelor. Rutinele cu parametri variabile objecte pot fi incluse într-o unitate, şi păstrate în forma compilată. Obiecte care conţin referinţe. Dacă un object are un câmp referinţă, constructorul trebuie să realizeze nu numai iniţializarea VMT ci şi a câmpurilor de tip referinţă (cu NIL, sau prin alocarea memoriei pentru variabilele dinamice).

Referinţe la obiecte. În Turbo Pascal este permisă utilizarea variabilelor referinţă la obiecte. Variabilele dinamice referite se creează şi se distrug prin apelul procedurilor predefinite new

şi dispose. Acestea au fost extinse astfel încât prima să facă automat apelul constructorilor obiectului referit, după alocarea spaţiului necesar instanţei corespunzătoare, iar a doua să apeleze automat destructorul înainte de eliberarea spaţiului ocupat de instanţa referită.

Turbo Pascal consideră că toate tipurile derivate sunt compatibile în privinţa operaţiei de atribuire, cu tipurile object de la care provin.

250

BIBLIOGRAFIA 1. Baron, C., Mureşan, M., s.a. – Bazele informaticii, Editura Oscar Print,Bucureşti, 2001 2. Bocu, D. – Introducere în programarea calculatoarelor utilizând limbajului Pascal, Editura

Albastră, Cluj-Napoca, 2001 3. Bott, E., Leonhard, W. – Microsoft Office XP, Editura Teora, Bucureşti, 2002 4. Bucerzan, D., Vulpe, A. – Lecţii de utilizare a calculatoarelor, Editura Albastră, Cluj-

Napoca, 2001 5. Collin S., H. - Dictionary of Computing, Peter Collins Publishers, 1990 6. Cowart, R., Knittel, B. – Microsoft Windows XP professional, Editura Teora, Bucureşti,

2002 7. Glenn, W. - Microsoft Windows XP în imagini, Editura Teora, Bucureşti, 2002 8. Ionescu, M., Ionescu, I., Mihai, F., Panǎ, A., Stanciu, A., Oancea, M., Mihailov, G. –

Informatica utilizatorului. Office 2003, Editura Infomega, Bucureşti, 2004 9. Johnson, S., Perspection, Inc. - Microsoft Windows XP, Editura Teora, Bucureşti, 2002 10. Mihăilescu T., Comşa Gh.,N. s.a. – Programarea şi proiectarea asistată de calculator.

Indrumar de laborator. Limbajul Turbo-Pascal. Fascicula 2. Reprografia Univeresităţii “TRANSILVANIA” Braşov 1993

11. Mihăilescu, T., Comşa, Gh. ş.a – Programare şi Proiectare Asistată de calculator. Indrumar pentru Lucrări Practice. Fascicula 1. SISTEMUL DE OPERARE MS-DOS, Reprografia Universităţii “Transilvania” Braşov, 1992

12. Kovacs, S. – Excel 2000. Ghid de utilizare, Ed. Albastră, Cluj-Napoca, 2001 13. McFedries, P. – Microsoft Windows Vista. Utilizare şi performanţǎ, Editura All,

Bucureşti, 2007 14. Mueller, S. – PC. Depanare şi modernizare, vol I şi II, Editura Teora, Bucureşti, 2003 15. Munteanu, A., Greavu-Serban, V., Cristescu G.- Reţele Windows. Servere şi clienţi.

Exemple practice, Editura Polirom, Bucureşti, 2004 16. Negus, C. – Red Hat Lunux 8, Editura Teora, Bucureşti, 2003 17. Norton, P., Kearn, D. – Reţele de calculatoare, Editura Teora, Bucureşti, 2002 18. Overland, B. – C++. Ghid pentru începǎtori, Editura Corint, Bucureşti, 2005 19. Pătruţ, B. – Învăţaţi limbajul Pascal în 12 lecţii, Editura Teora, Bucureşti, 2002 20. Perry, G. – învaţǎ singur Microsoft Windows XP în 24 de ore, Editura Niculescu,

Bucureşti, 2004 21. Perry, G. – învaţǎ singur Microsoft Windows XP în 24 de ore, Editura Niculescu,

Bucureşti, 2004 22. Ruest, N., Ruest, D, - Windows Server 2003 pentru administratori, Editura All, Bucureşti,

2003 23. Schmidt, H. – C. Manual Complet, Editura Teora, Bucureşti, 2003 24. Schwarz, M., Anderson, J., Curtis, P., Murphy, S. – Instrumente Linux, Editura Niculescu,

Bucureşti, 2005 25. Simmons, C. – Totul despre Windows Vista, Editura Rosetti, Bucureşti, 2007 26. Sinclair I.,R., în Collins Dictionary of Personal Computing, Haper Collins Publishers,

ediţia a 2-a, 1991