• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Initiere operare pc
 

Initiere operare pc

on

  • 2,279 views

 

Statistics

Views

Total Views
2,279
Views on SlideShare
2,279
Embed Views
0

Actions

Likes
0
Downloads
32
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Initiere operare pc Initiere operare pc Document Transcript

    • CUPRINS1. Structura generală a unui calculator personal. ........................................... 3 1.1. Ce este un calculator personal ? .................…............................…............ 3 1.2. Structura hardware de principiu a unui calculator personal. ….……........... 52. Reprezentarea internă a informaţiei. ............................................................ 10 2.1. Reprezentarea numerelor într-un sistem de numeraţie. ............................... 11 2.2 Conversia numerelor dintr-o bază în alta. ................................................... 13 2.3. Reprezentarea numerelor în calculator. Coduri de reprezentare. ................ 163. Logică combinatorică şi secvenţială. ............................................................. 19 3.1. Elemente de logică booleană. Funcţii logice. ............................................. 19 3.2. Implementarea funcţiilor logice. Minimizarea funcţiilor logice. .................. 21 3.3. Materializarea funcţiilor logice. Circuite logice. ........................................ 23 3.4. Structuri logice combinaţionale. ................................................................ 26 3.5. Sisteme logice secvenţiale. ........................................................................ 28 3.5.1. Tipuri de bistabile. ....................................................................... 29 3.5.2. Registre şi numărătoare. .............................................................. 314. Microprocesoarele din familia INTEL 80x86. ............................................. 34 4.1. Microprocesorul I80286. .................................................…..................... 34 4.1.1. Caracteristici generale. ................................................................. 34 4.1.2. Arhitectura internă a microprocesorului I80286. ........................... 34 4.1.3. Registrele microprocesorului I80286. ............................................ 36 4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286. ..... 40 4.1.5. Modurile de lucru ale microprocesorului I80286. .......................... 54 4.1.6. Adresarea datelor. Moduri de adresare. ......................................... 47 4.1.7. Gestiunea şi protecţia memoriei la microprocesorul I80286. Conceptul de memorie virtuală. ..................................................... 49 4.1.8. Întreruperile microprocesorului I80286. ......................................... 55 4.2. Microprocesorul I80386. ........................................................................... 58 4.2.1. Caracteristici generale. .................................................................. 58 4.2.2. Registrele microprocesorului I80386. ............................................ 60 4.2.3. Paginarea memoriei. ..................................................................... 62 4.2.4. Modul virtual 8086 ....................................................................... 64 4.2.5. Memorii cache. ............................................................................. 65 4.2.6. Variante de realizare ale microprocesorului I80386. ...................... 67 4.3. Microprocesorul I80486. .......................................................................... 68 4.3.1. Structură internă. .......................................................................... 68 4.3.2. Arhitecturi CISC şi RISC. ..................................................…....... 70 4.3.3. Variante de realizare ale microprocesorului I80486. Conceptul de "upgrade". ..…….........................................…........ 72 4.4. Pentium. ......................................................................................….…...... 735. Structura calculatoarelor personale IBM. ..................................................... 76 5.1. Generalităţi. ...........................................................................................… 76 1
    • 5.2. Calculatoarele IBM PS/2. ......................................................................... 78 5.3. Arhitectura Microchannel. ........................................................................ 81 5.4. Interfaţarea calculatoarelor IBM. Comunicaţia paralelă şi serială. ............. 85 5.5. Tastatura. ................................................................................................ 89 5.6. Mouse. .................................................................................................... 91 5.7. Imprimante. ............................................................................................. 92 5.8. Monitoare şi adaptoare grafice. ................................................................ 94 5.9. Unităti de memorie externă. ..................................................................... 99 5.9.1. Discuri magnetice. ...……………................................................. 101 5.9.2. Discuri optice. ............................................................................. 105 5.10. Alte dispozitive de intrare/ieşire. ......................................….................. 1066. Arhitecturi paralele de calculatoare. ........................................................... 108 6.1. Evoluţia sistemelor de calcul.Calculatorul de tip von Neumann. .....…...... 108 6.2. Paralelism în sisteme uniprocesor. ............................................................ 111 6.3. Calculatoare pipe-line. ............................................................................. 112 6.4. Clasificarea Flynn a arhitecturilor de calculatoare. .................................... 115 6.5. Calculatoare SIMD. ................................................................................ 116 6.6. Sisteme multiprocesor cu memorie partajată. ........................................... 118 6.7. Sisteme multiprocesor fără memorie partajată. Transputere. .................... 121 6.8. Sisteme multiprocesor orientate pe flux de date. ...................................... 1257. Sisteme de operare. ....................................................................................... 130 7.1. Generalităţi. .......................... .................................................................. 130 7.1.1. Interfeţe text şi interfeţe grafice. .................................................. 132 7.1.2. Partiţionarea şi formatarea discurilor. ........................................... 136 7.2. Sistemul de operare MS-DOS. .................................………................... 138 7.2.1. Sistemul de fişiere. Structura discului sub MS-DOS. ................... 113 7.2.2. Lansarea sistemului de operare. ..... ............................................ 144 7.2.3. Configurarea sistemului de operare. ............................................ 145 7.2.4. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT. ...….. 151 7.2.5. Procesorul de comenzi COMMAND.COM. ................................ 153 7.2.6. Comenzi interne. ...................................................................….. 154 7.2.7. Comenzi externe. ..................................................................….. 159 7.3. Microsoft WINDOWS 95. ...................................................................… 167 7.3.1. Elemente Windows 95. ................................................................ 167 7.3.1.1. Ferestre. ...................................................................…… 168 7.3.1.2. Meniuri. ...................................................................…… 169 7.3.1.3. Casete de dialog. ......................................................…… 170 7.3.1.4. Desktop. ....................................................................….. 172 7.3.2. Windows Explorer. ..................................................................… 175 7.3.3. Control Panel. ........................................ ..............................….. 178 7.4. Linux. ................................................................................................….. 184 7.4.1. Structura sistemului Linux. ....................................................….. 184 7.4.2. Instalarea sistemului Linux. ....................................................…. 189Bibliografie. ...................................................................................................…. 191 2
    • 1. STRUCTURA UNUI CALCULATOR PERSONAL 1.1. Ce este un calculator personal ? Un sistem de calcul, sau un calculator, este destinat prelucrării informaţiei, acceptând,memorând şi prelucrând datele sau informaţiile de intrare, pentru a produce informaţiile deieşire sau rezultatele prelucrării, fiind compus din două părţi principale: hardware şisoftware. Hardware este un termen general, utilizat pentru a desemna partea fizică a unuicalculator, alcătuită din componente electronice şi mecanice, împreună cu totalitateadispozitivelor folosite de calculator în prelucrarea informaţiei. Software este tot un termengeneral, care desemnează totalitatea programelor folosite de un calculator, pentru atransforma informaţiile sau datele de intrare, în informaţii de ieşire sau rezultate. Structura hard-soft a unui calculator poate fi reprezentată ca o serie de cercuri saunivele concentrice, fiecare nivel exterior implicând existenţa nivelelor interioare, aşa cumeste arătat în figura1.1. Sistemul de operare este format dintr-un ansamblu de programe, care asigură o interfaţăîntre utilizator şi hardware-ul calculatorului, sau, cu alte cuvinte, face posibilă comunicareaîntre utilizator şi calculator. De asemenea, sistemul de operare realizează interfaţa întrehardware-ul calculatorului şi restul software-ului, toate celelalte programe utilizândhardware-ul calculatorului prin intermediul sistemului de operare. Software-ul utilitar pune la dispoziţia utilizatorului o multitudine de instrumentesoftware necesare dezvoltării propriilor programe, sau programe de aplicaţie şi, de asemenea,instrumente software cu ajutorul cărora se poate menţine buna funcţionare a sistemului decalcul. Programele din cea de-a doua categorie sunt uneori direct invocate de către sistemulde operare, aşa că pot fi considerate şi componente ale sistemului de operare. Dacă, până în anii 80, se făcea o distincţie netă între calculatoare mari, calculatoaremedii sau microcalculatoare, în principal pe baza dimensiunii memoriei şi vitezei deprelucrare a datelor, odată cu apariţia calculatoarelor personale comerciale în 1976, cândSteven Jobs şi Steve Wozniak au fondat firma APPLE, şi odată cu creşterea gradului deintegrare a componentelor electronice, noţiunile de calculatoare mici, medii sau mari nu maisunt atât de clare. Astăzi, un calculator personal care poate intra în dotarea oricărei familii,dar care poate fi folosit cu succes în majoritatea aplicaţiilor întâlnite în practică, are ocapacitate de memorare şi o viteză de prelucrare mult superioară capacităţii de memorare şivitezei de prelucrare de la calculatoarele mari din anii 70. 3
    • Figura 1.1. Structura hard-soft a unui calculator Calculatoarele personale pot fi întâlnite astăzi în birouri, în şcoli, în întreprinderi, ladomiciliu. Întrucât ele au devenit din ce în ce mai puternice, au preluat multe din sarcinilecalculatoarelor mari de acum 20 -30 de ani. Termenul de calculator personal generează confuzie, deoarece atunci când IBM aprodus primul său calculator personal, în 1981, l-a numit IMB Personal Computer sau IBMPC. Pentru unii, termenul de calculator personal înseamnă numai calculatoarele IBM saucompatibile hardware cu acestea. Dar, prin extensie, prin calculator personal se poate înţelegeorice calculator monoutilizator cu destinaţie generală. Calculatoarele cu destinaţie generală sunt acele calculatoare capabile să rezolve o marevarietate de probleme, adaptabilitatea la fiecare tip de problemă realizându-se prinintermediul programelor. Nu toate calculatoarele sunt calculatoare cu destinaţie generală.Astăzi sunt produse o gamă largă de calculatoare dedicate, destinate rezolvării unor problemespecifice, un calculator dedicat fiind capabil să ruleze numai programele necesare rezolvăriitipului respectiv de probleme pentru care este dedicat calculatorul. Calculatoare dedicate potfi întâlnite în ceasurile electronice, camerele video, pompele de benzină, sistemele de ghidareale rachetelor, sistemele de control ale roboţilor industriali etc. Până acum câţiva ani, termenii de calculator personal (Personal Computer) şicalculator de birou (Desktop Computer) desemnau unul şi acelaşi lucru. Astăzi, noţiunea decalculator personal tinde să cuprindă şi acele calculatoare portabile, de mici dimensiuni, şicare nu pot fi desemnate prin termenul de calculator de birou sau "desktop computer", careeste folosit în continuare numai pentru calculatoarele ce pot fi întâlnite în mod uzual înbirouri, şi care sunt destinate rezolvării problemelor curente dintr-un birou: procesări detexte, baze de date, dezvoltări de programe etc. 4
    • Un calculator "lap-top" este un calculator personal portabil, suficient de mic şi uşor(cântărind numai 4-5 kg) astfel încât să încapă într-un geamantan de mici dimensiuni.Calculatoarele "lap-top" sunt prevăzute cu hard disk, ecran plat realizat pe bază de cristalelichide (LCD - Liquid Cristal Display), fiind alimentate cu energie electrică de la o bateriereîncărcabilă. Calculatoarele "lap-top" mai sunt desemnate şi prin termenul de "notebookcomputer". Un alt termen controversat este cel de staţie de lucru ( "workstation" ). O staţie de lucrueste un calculator de birou performant, fiind mai puternic decât calculatoarele personaleuzuale (calculatoarele IBM), şi care este folosit, în principal, de cercetători ştiinţifici,ingineri, creatori de desene animate şi alţii, care necesită prelucrări intensive de date. Întrucâtstaţiile de lucru devin din ce în ce mai ieftine, şi calculatoarele personale din ce în ce maiputernice, este foarte dificil de trasat o linie de departajare între o staţie de lucru şi cele maiputernice calculatoare personale. În afara tipurilor de calculatoare descrise mai sus, şi care sunt în esenţă calculatoaremonoutilizator, deşi pot fi folosite şi ca sisteme multiutilizator, mai pot fi întâlnite astăzicalculatoare şi mai puternice, care sunt destinate din start lucrului cu mai mulţi utilizatori înacelaşi timp, în vederea rezolvării unor probleme deosebit de complexe. Asemeneacalculatoare sunt desemnate prin termenul de "mainframe computers", un exemplu decalculator "mainframe" fiind calculatorul utilizat pentru rezervarea locurilor la o companie detransport aeriană. Acest calculator permite tuturor agenţilor companiei aeriene dintr-o ţară, săfacă rezervări folosind acelaşi calculator şi aceleaşi informaţii, în acelaşi timp. Agentulcompaniei aeriene comunicã cu calculatorul "mainframe" prin intermediul unui terminal, ceeste un ansamblu format din tastatură şi ecran, şi care transferă informaţiile către şi de lacalculatorul "mainframe". Calculatorul "mainframe" se poate afla într-o cameră alăturată sauîntr-o altă ţară. Un alt exemplu de calculator "mainframe" este calculatorul dintr-o bancă,care este implicat în tranzacţii financiare cu diferiţi clienţi. Rămânând în cadrul definiţiei extensive a calculatorului personal, ca fiind un calculatormonoutilizator cu destinaţie generală, cuprinzând aici şi calculatoarele de birou,calculatoarele portabile şi chiar staţiile de lucru, în lucrarea de faţă se vor aborda numaicalculatoarele personale IBM sau compatibile cu acestea. 1.2. Structura hardware de principiu a unui calculator personal Un calculator personal este un sistem de prelucrare a informaţiei, a cărui unitatecentrală de prelucrare este realizată pe baza unui microprocesor. În general, orice calculator,şi nu neapărat un calculator personal, are trei elemente constitutive principale: - unitatea centrală de prelucrare sau UCP ( Central Processing Unit - CPU ) - memoria ( memory ) 5
    • - sistemul de intrare / ieşire sau porturi ( Input / Output System or ports ) Figura 1.2. Reprezentarea simplificată a hardware-ului unui calculator personal Unitatea centrală de prelucrare realizează prelucrările sau procesările numerice înconformitate cu o secvenţă de operaţii elementare, sau instrucţiuni, numită program. Deci, ounitate centrală de prelucrare poate executa un set limitat de operaţii elementare, carecompun repertoriul de instrucţiuni al UCP-ului respectiv. La calculatoarele din generaţiileanterioare, UCP-ul era compus, din punct de vedere constructiv, din foarte multecomponente. Datorită creşterii gradului de integrare a componentelor electronice, s-a ajuns cao unitate centrală de prelucrare să fie condensată într-un singur circuit integrat. O unitatecentrală de prelucrare realizată pe o singură pastilă de siliciu (sau cip) se numeştemicroprocesor. Programele care sunt executate de microprocesor sunt stocate în memoria internă acalculatorului personal. Datele procesate de către aceste programe sunt de asemenea stocateîn memoria calculatorului. Dar, memoria internă are o capacitate limitată. Din această cauză,se folosesc pentru stocarea programelor şi datelor, dispozitivele sau unităţile de memorieexternă. Cele mai utilizate dispozitive de memorie externă sunt dispozitivele magnetice:discuri flexibile (floppy disks), benzile magnetice, discurile de mare capacitate sau discurilehard (hard disks), o altã denumire frecvent utilizată pentru acestea din urmă fiind cea dediscuri Winchester. Altă categorie de dispozitive de memorie externă, folosite în prezent,sunt dispozitivele optice: CD-ROM, DVD (Digital Versatile Disc). Un program, pentru a fi executat, trebuie să fie adus din memoria externă în memoriainternă. Deci, un microprocesor execută secvenţe de instrucţiuni din memoria internă. 6
    • Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitiveperiferice de bază: tastatura pentru introducerea programelor sau datelor de prelucrat,display-ul sau ecranul pentru afişarea informaţiilor din calculator, care pot fi în particularrezultatele prelucrării, şi imprimanta, pentru tipărirea pe hârtie a acestor informaţii. Unitateacentrală de prelucrare preia date de la dispozitivele de intrare prin intermediul porturilor deintrare, şi trimite date către dispozitivele de ieşire, prin intermediul porturilor de ieşire.Totalitatea porturilor de intrare / ieşire formează sistemul de intrare / ieşire al calculatorului. UCP este conectată la memorie şi porturile de I/E prin intermediul unor linii paralele,care alcătuiesc magistrala de comunicaţie a calculatorului. Deci, ca element constitutivprincipal al unui calculator personal, este şi această conectare a tuturor resurselor sale prinintermediul unei magistrale de comunicaţie. Această magistrală are 3 secţiuni :• magistrala de date (Data Bus), pe care microprocesorul citeşte date din memorie sau porturile de intrare, sau scrie date în memorie sau porturile de ieşire. Datele citite din memorie pot fi, în particular, instrucţiuni.• magistrala de adrese (Address Bus), UCP-ul folosind aceste linii pentru a selecta locaţia de memorie sau portul de I/E, din care se vrea o dată pentru a fi citită, sau în care se doreşte înscrierea unei date.• magistrala de control (Control Bus), formată din linii specifice utilizate de microprocesor pentru controlul transferurilor de date pe magistrală. De exemplu, printr-o linie se poate specifica dacă microprocesorul citeşte sau scrie date (dacă microprocesorul ţine linia respectivă în "0", aceasta înseamnă cã procesorul citeşte date din memorie sau porturile de intrare; dacă microprocesorul pune "1" pe această linie, se va efectua o scriere în memorie sau porturile de ieşire), prin altă linie dacă se face o operaţie cu memoria sau cu porturile de I/E etc. Dimensiunea magistralei de date va da tipul procesorului, respectiv al calculatoruluirealizat în jurul procesorului respectiv. Dacă magistrala de date are 16 linii, deci transferurilede date se pot face numai pe cuvânt (1cuvânt = 2 octeţi), se spune că avem un calculator pe16 biţi, dacă magistrala de date are 32 linii avem un calculator pe 32 biţi etc. În mod obişnuit, magistrala unui calculator personal este controlată de microprocesor,în sensul că microprocesorul este cel care dirijează transferul de date pe magistrală. Însă,microprocesorul poate ceda controlul magistralei unor alte dispozitive, care pot efectuatransferuri de date pe magistrală. De exemplu, prin utilizarea unui dispozitiv de acces directla memorie, sau dispozitiv DMA (Direct Memory Access), procesorul poate ceda magistralaacestui dispozitiv DMA, care efectuează transferuri de date între dispozitivele periferice şimemorie, microprocesorul fiind degrevat de sarcina unor astfel de transferuri, şi efectuând înacest timp alte operaţii, care duc la creşterea gradului de paralelism şi implicit la creştereavitezei de calcul. Când transferul DMA s-a terminat, dispozitivul DMA anunţă 7
    • microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi decipoate efectua transferuri de date pe magistrală. Cele mai frecvent întâlnite familii de microprocesoare sunt: Intel (8088/8086, 80286,80386, I80486, Pentium), Motorola (Motorola 680xx), AMD, Zilog (Z80, Z8000), Sparc(Sun Sparc şi UltraSparc pe 32 de biţi), Mips etc. Calculatoarele IBM PC/XT sau ATutilizau unul din microprocesoarele I8088 sau I8086 ale firmei INTEL, calculatoarele dinfamilia IBM PS/2 unul din microprocesoarele I8086, I80286, I80386 sau chiar I80486, iarcalculatoarele IBM actuale folosesc procesoare puternice cum ar fi Pentium II sau PentiumIII. Pentru exemplificare, microprocesorul I8088 are magistrala de date de 8 biţi, magistralade adrese de 16 biţi, magistrala de control de 8 biţi, iar microprocesorul I8086 are magistralade date de 16 biţi, magistrala de adrese de 20 de biţi şi magistrala de control de 8 biţi.Celelalte microprocesoare Intel vor fi tratate pe larg în secţiunile următoare. Un microprocesor poate adresa în mod direct un spaţiu de memorie de 2na locaţii dememorie, unde na este numărul de linii de adresă ale magistralei microprocesorului. Lacalculatoarele personale actuale, unitatea elementară de memorie care poate fi adresată esteoctetul. Deci, microprocesorul poate scrie/citi în/din memorie cel puţin octeţi. Dacămagistrala de date are mai mult de 8 linii, cum este cazul microprocesorului I8086 care are 16linii de date, se pot face transferuri de date între microprocesor şi memorie atât pe octet cât şipe cuvânt (1 cuvânt = 2 octeti = 16 biţi). La microprocesoarele I80386 şi I80486, care aumagistrala de date de 32 de biţi, se pot face transferuri pe octet, pe cuvânt sau pe dublu-cuvânt (1 dublu-cuvânt = 2 cuvinte = 32 de biţi ). Totalitatea adreselor fizice de memorie pe care le poate forma un microprocesor,formează spaţiul de adrese de memorie. De exemplu, la I8086 spaţiul de adrese de memorieeste 0 -- 220-1, adică un spaţiu de adrese de memorie de 1Moctet; microprocesoarele I80386,I80486 şi Pentium, cu 32 de linii de adresă, având un spaţiu de adrese de memorie de 232,adică 4Gocteţi. Spaţiul de adrese de memorie se măsoară în octeţi, cu următorii multipli:1Koctet sau 1Kb(yte) = 210 octeţi (1024 octeţi), 1Moctet sau 1Mb = 210 Kb, 1Goctet sau 1Gb= 210 Mb. Analog locaţiilor de memorie, fiecare port de intrare/ieşire are asociată o adresă deintrare/ieşire. Totalitatea adreselor de I/E formează spaţiul de I/E al unui microprocesor. Lamicroprocesorul I8086, porturile pot fi pe 8 sau 16 biţi, după cum microprocesorul poate citisau scrie date din/în porturile respective (pe octet sau pe cuvânt). Procesoarele din familiaIntel 80x86 pot adresa un spaţiu de I/E de 64Kporturi de 8biţi, sau 32Kporturi de 16 biţi. Fiecare microprocesor are o intrare de ceas, semnalul de la această intrare fiind folositpentru sincronizarea operaţiilor sale interne. Frecvenţa semnalului de ceas determină vitezacu care microprocesorul procesează datele, şi este important ca această frecvenţă să fie câtmai mare. De exemplu, dacă microprocesorul Z80 funcţiona la o frecvenţă de 2,5 sau 4MHz,s-a ajuns ca un procesor Pentium III să poată funcţiona la o frecvenţă de 600MHz. 8
    • Memoria internă a unui calculator personal poate fi realizată cu circuite de două feluri : • ROM -Read Only Memory - ce sunt memorii din care microprocesorul poate numai să citească date, şi al căror conţinut nu se pierde la întreruperea alimentării calculatorului. Memoriile ROM sunt utilizate pentru a stoca programe şi date care trebuie să existe permanent în sistem. BIOS-ul (Basic Input Output Sistem) sistemului de operare se află rezident în memoria ROM a calculatorului. Conţinutul memoriilor de tip ROM poate fi şters cu ajutorul unui fascicul de raze ultraviolete (memorii EPROM – Erasable Programmable ROM), existând şi variante mai moderne (memoriile EEPROM – Electrical Erasable Programmable ROM), al căror conţinut poate fi şters şi rescris cu ajutorul unui program special. • RAM - Random Access Memory - ce sunt memorii la care microprocesorul poate atât citi cât şi scrie date, şi al căror conţinut se pierde la întreruperea alimentării. Sunt folosite pentru stocarea temporară a informaţiei. Din punctul de vedere al tehnologiei de realizare, memoriile de tip RAM sunt de douăfeluri: • memorii statice (SRAM – Static RAM), care menţin informaţia atât timp cât există tensiune de alimentare, fără a mai fi necesară reîmprospătarea (refresh-ul) sau rescrierea informaţiei. Sunt memorii rapide, dar sunt scumpe. • memorii dinamice (DRAM – Dynamic RAM), la care informaţia se volatilizează în timp, şi de aceea este necesară reîmprospătarea periodică a acesteia, cu ajutorul unui circuit specializat. Memoriile dinamice sunt mai lente decât memoriile statice, însă sunt mai ieftine, şi sunt memoriile cu care se realizează memoria internă de mare capacitate a calculatoarelor actuale. Există mai multe variante de memorii dinamice DRAM, mai recente fiind: - EDO RAM (Extended data Output DRAM) – care, printr-un artificiu, fac posibilă citirea unor date din circuit în acelaşi timp în care se termină citirea anterioară, rezultând o creştere a vitezei de acces la aceste memorii. - SDRAM (Synchronous DRAM) – procesorul accesând aceste memorii la o viteză sincronă cu viteza de lucru a magistralei calculatorului (plăcii de bază), mergând până la 100 MHz. Memoriile ESDRAM (Enhanced SDRAM) sunt variantele mai recente şi îmbunătăţite ale memoriilor SDRAM. Circuitele de memorie sunt încapsulate în aşa numitele circuite DIPs (Dual InlinePackages), sub forma unor barete de memorie, în două variante constructive: • Circuite SIMM (Single Inline Memory Module), cu 30 de pini şi care permit un acces la date pe 8 biţi, respectiv cu 72 de pini, şi care permit un acces la date pe dublu-cuvânt. • Circuite DIMM (Double Inline Memory Module) – realizate într-o tehnologie mai recentă, şi mai performante. Baretele DIMM au 168 de pini şi permit un acces la datele conţinute pe 64 de biţi. 9
    • 2. REPREZENTAREA INTERNĂ A INFORMAŢIEI Este dificil de găsit o definiţie adecvată a noţiunii de informaţie, ea având multeînţelesuri. Totuşi, în teoria informaţiei, sau mai precis în teoria transmiterii informaţiei,termenul de informaţie se aplică acelor lucruri care pot fi comunicate, fie că au sau nu ovaloare. Astfel, cuvintele, numerele, imaginile de pe o foaie de hârtie sunt simboluri cereprezintă o informaţie . Un calculator nu poate înţelege cuvinte, imagini sau chiar litere, şi nu poate procesainformaţie fără să o dividă în unităţi mai mici de informaţie, la fel cum un copil, pentru aînţelege un cuvânt, trebuie să audă sunetele care compun cuvântul respectiv. Bitul este unitatea cea mai mică de informaţie. Un bit poate distinge între doua stări,deci poate avea două valori: 0 sau 1, sau cu alte cuvinte "da" sau "nu", "alb" sau "negru". Uncalculator poate procesa cantităţi mai mari de informaţie, tratând grupurile de biţi ca unităţi deinformaţie. Astfel, o colecţie de 8 biţi numită octet sau "byte", unde fiecare bit poate fi 0 sau1, poate distinge între 256 de stări diferite ( 28=256 ), deci dacă am vrea să comunicăm cucineva folosind un octet, am putea transmite cel mult 256 de mesaje diferite, fiecare mesajfiind asociat cu o combinaţie de 0 şi 1 a celor 8 biţi. Celelalte unităţi de masură a informaţiei,multipli ai octetului, au fost introduse în capitolul precedent. Ce înseamnă pentru un calculator un şir de biţi de genul 10011010 ?. Un asemenea şirde biţi poate fi un număr, o literă a alfabetului, o instrucţiune a unui program sau orice altlucru. Deoarece calculatoarele reduc orice informaţie la o combinaţie de 0 şi 1, numerele dincalculator sunt reprezentate folosind numai combinaţii ale celor două cifre sau simboluri. Astăzi, calculatoarele nu lucrează numai cu numere, ci la fel de mult sunt folosite şicaracterele, calculatorul procesând cuvinte, propoziţii etc. Pentru aceasta, este necesar cafiecare caracter să fie reprezentat în mod unic ca o secvenţă de biţi, făcând posibilămemorarea şi reprezentarea grafică a mesajelor. Cele mai utilizate coduri alfanumerice suntASCII - American Standard Code for Information Interchange - şi EBCDIC - ExtendedBinary Coded Decimal Interchange Code. În prezent, marea majoritate a calculatoareloracceptă numai codul ASCII, în care fiecărui caracter alfanumeric îi corespunde un cod unic pe7 biţi, sau pe 8 biţi în cazul codului ASCII extins. Întrucât codul ASCII este intens folosit decătre utilizatori, este necesară menţionarea codurilor ASCII ale celor mai utilizate caractere : A - 65 a - 97 0 - 48 - 32 ( blanc ) 10
    • B - 66 b - 98 1 - 49 CR - 13 ( Carriage Return ) C - 67 c - 99 2 - 50 LF - 10 (Line Feed ) D - 68 d - 100 3 - 51 ş.a.m.d ş.a.m.d. ş.a.m.d. De asemenea, instrucţiunile programelor sunt codificate folosind secvenţe de biţi. Deexemplu, secvenţa 10101001 poate determina calculatorul să adune 2 numere, în timp ce altăsecvenţă poate determina calculatorul să execute o altă operaţie. 2.1. Reprezentarea numerelor într-un sistem de numeraţie. Se numeşte sistem de numeraţie, o mulţime finită de simboluri (sau cifre) şi de regulifolosite pentru reprezentarea unui număr. Un sistem de numeraţie poziţional este un sistem denumeraţie la care aportul unei cifre în valoarea totală a unui număr depinde atât de valoareacifrei, cât şi de locul ocupat de cifră în reprezentarea numărului respectiv. Sistemul denumeraţie arab este un sistem de numeraţie poziţional, spre deosebire de sistemul denumeraţie roman care nu este un sistem poziţional. Teorema: Fie p∈ N, p > 1. Atunci (∀) N∈Z, (∃) m∈N astfel încât să avem în mod unicegalitatea : N = xmpm + xm-1pm-1 +.......+ x1p + x0 (1) unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 Demostraţie: Se poate presupune că N∈ Z + (dacă N∈ Z- demonstraţia se va face identic pentrunumărul -N ∈ Z + ). Împărţind succesiv la p, obţinem egalităţile : N = N1p + x0, x0 〈 p N1 = N2p + x1, x1 〈 p . (2) . Nm-1 = Nmp + xm-1, xm-1 〈 p Nm = 0*p + xm , xm 〈 p 11
    • Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la uncât egal cu zero. Înmulţind cu p0 prima relaţie, cu p1 a doua relaţie ş.a.m.d cu pm ultima relaţie, adunândmembru cu membru şi simplificând, obţinem egalitatea (1). Unicitatea descompuneriinumărului N, într-o sumă ca cea de mai sus, rezultă din unicitatea obţinerii câtului şi restuluiîn relaţiile (2), conform teoremei de împărţire cu rest a două numere întregi. Definiţie : Se numeşte reprezentarea în baza p a numărului întreg N, succesiunea decifre xmxm-1 ... x1x0, unde xi verifică relaţiile : a) 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 (3) b) N= xmpm + xm-1 pm-1 +.......+ x1p + x0 Conform teoremei precedente, reprezentarea (3) este unică. Definiţie : Se numeşte reprezentarea în baza p a numărului real r, succesiunea decifre xmxm-1 ... x1x0,x-1x-2x-3..., unde xi verifică relaţiile : a) 0 ≤ xi ≤ p-1 (∀) i = ... -2,-1,0,1,...,m şi xm≠0 b) r = xmpm + xm-1pm-1 +.......+ x1p + x0 + x-1p-1 + x-2p-2 + .... Se demonstrează că reprezentarea de mai sus este unică. Numărul real r se poate scrie sub forma : r = ri + rl unde ri = [r] - partea întreagă a lui r rl = {r} - partea fracţionară a lui r Conform teoremei demonstrate anterior, numărul întreg ri se scrie în mod unic astfel : ri = xmpm + xm-1pm-1 +.......+ x1p + x0 , unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 Înmulţind rl cu p şi reţinând partea întreagă, după care continuând înmulţirea părţilorfracţionare cu p obţinem : rl *p = x-1 + rl1 rl1*p = x-2 + rl2 , x-i - partea întreagă (4) rl2*p = x-3 + rl3 , rli - partea fracţionară ş.a.m.d. Înmulţind relaţiile (4) cu p-1, p-2, p-3 ... şi adunând membru cu membru, dupăsimplificare obţinem: rl = x-1p-1 + x-2p-2 + ... (5) Evident, reprezentarea (5) este unică. Deci r = xmpm + xm-1pm-1 +....+ x1p + x0 + x-1p-1 + x-2p-2 + ... Dacă prin înmulţirea cu p, a părţii fracţionare obţinute într-una din relaţiile (4), obţinemrezultatul 0, numărul real r are un număr finit de cifre zecimale, altfel va avea un numărinfinit de cifre zecimale. 12
    • În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întregsau real, într-o baza oarecare p, se folosesc numai p simboluri sau cifre. Cifrele sistemuluibinar sunt 0 şi 1, ale sistemului octal (baza 8) sunt 0,1,2,3,4,5,6,7, iar ale sistemuluihexazecimal (baza 16) sunt 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. 2.2. Conversia numerelor dintr-o bază în alta Fie numărul întreg N scris în baza p. Pentru a obţine echivalentul lui în baza q, scrisN(q), va trebui să obţinem o reprezentare de forma ymym-1 ... y1y0, unde N(q) = ymqm + ym-1qm-1+.......+ y1q + y0 şi 0 ≤ yi ≤ q-1 (∀) i = 0,1,...,m; ym≠0. Pentru aceasta, se împarte numărul N(p) la q şi apoi succesiv câturile obţinute, pânăcând se obţine câtul zero. Cifrele reprezentării în baza q sunt resturile împărţirilor succesiveluate în ordinea inversă obţinerii lor. N(p) = N1(p)*q + y0 N1(p) = N2(p)*q + y2 . 0 ≤ yi ≤ q-1, i = 0,1,2,..,m . Nm-1(p) = Nm(p)*q + ym-1 Nm(p) = 0 * q + ym În acest mod se face conversia unui număr întreg, din baza p în baza q, calculele fiindefectuate în baza p. Fie r(p) un număr real scris în baza p. Deci, r(p) se descompune într-o parte întreagă şi oparte fracţionară astfel : r(p) = ri(p) +rl(p). Numărul ri(p) fiind un număr întreg, se converteşte în baza q conform procedurii datemai sus, obţinându-se o reprezentare de forma ymym-1 ... y1y0. Pentru conversia părţiifracţionare, se înmulţeşte rl(p) cu q, se separă partea întreagă de partea fracţionară, apoi secontinuă înmulţirea părţii fracţionare cu q, repetându-se procedeul până când parteafracţionară devine zero, sau până când se obţin cifrele părţii fracţionare în baza q, cu oanumită precizie. rl(p) *q = y-1 + rl1(p) rl1(p)*q = y-2 + rl2(p) rl2(p)*q = y-2 + rl3(p) ş.a.m.d. Deci r(q) = ymqm + ym-1qm-1 +....+ y1q + y0 + y-1q-1 + y-2q-2 + ... , 13
    • ymym-1 ... y1y0,y-1y-2... fiind reprezentarea în baza q a numărului real r De asemenea, calculele sunt efectuate în baza p. Se pot evidenţia proceduri de conversiea numerelor întregi sau reale, din baza p în baza q, calculele fiind efectuate în baza q. Se vaexemplifica o astfel de procedură în exemplele următoare, transformând numere din baza 2, 8,16 în baza 10, calculele fiind efectuate în baza 10. Sistemele de numeraţie folosite de către utilizatorii de calculatoare, în afară de sistemulzecimal, sunt: sistemul binar, sistemul octal şi sistemul hexazecimal. Sistemul binar estesistemul de numeraţie în care lucrează calculatoarele electronice, datorită faptului că nu aredecât două cifre, ceea ce duce la o implementare uşoară a calculelor în hardware. Sistemele denumeraţie octal şi hexazecimal sunt folosite deoarece comprimă şirurile lungi de biţi dinreprezentarea unui număr în baza 2, iar conversia din baza 2 in baza 8 sau 16, şi invers, seface foarte uşor, fără calcule laborioase. Exemple de conversie dintr-o bază în alta : Exemplu de conversie din baza 10 în baza 2 : 13,725(10) = 13(10) + 0,725(10) 13(10) = 1101(2) 0,725 x 2 = 1,450 = 1 + 0,450 0,450 x 2 = 0,900 = 0 + 0,900 0,900 x 2 = 1,800 = 1 + 0,800 0,800 x 2 = 1,600 = 1 + 0,600 ş.a.m.d. 0,725(10) = 0,1011..(2) Deci 13,725(10) = 1101,1011..(2) Exemplu de conversie din baza 10 în baza 16 : 14
    • Deci 418(10) = 1A2(16) Exemple de conversie din baza 2,8,16 în baza 10: Fie ymym-1 ... y1y0,y-1y-2... un număr real reprezentat în baza p. Pentru a obţinereprezentarea acestui număr în baza q, calculele fiind efectuate în baza q, va trebui săcalculăm următoarea sumă: ∑ yix pi (în baza q). În cazul numerelor întregi, se calculează osumă asemănătoare, dar din care lipsesc termenii corespunzători puterilor negative ale lui p. 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 16 + 0 + 4 + 0 + 1 = 21(10) 1101110(2) = 1x26 + 1x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20 = 64 + 32 + 0 + 8 + 4 + + 2 + 0 = 110(10) 101,1(2) = 1x22 + 0x21 + 1x20 + 1x2-1 = 4 + 0 + 1 + 0,5 = 5,5(10) 1A2(16) = 1x162 + 10x161 + 2x160 = 256 +160 + 2 = 418(10) A0B(16) = 10x162 + 0x161 + 11x160 = 2560 + 0 + 11 = 2577(10) 163(8) = 1x82 + 6x81 + 3x80 = 64 + 48 + 3 = 115(10) Exemple de conversie din baza 2 în baza 16 şi invers: Pentru a transforma un număr din baza 2 în baza 16, nu este necesar să facem conversiadin baza 2 în baza 10 şi apoi conversia din baza 10 în baza 16, ci se poate face directconversia din baza 2 în baza 16 sau invers, utilizând tabela din figura 2.1. Pentru a realiza conversia unui număr întreg din baza 2 în baza 16, se împarte numărulbinar în grupe de câte 4 cifre binare, începând de la cifra cea mai puţin semnificativă,înlocuindu-se apoi fiecare grupă de 4 cifre binare cu cifra hexazecimală corespondentă dintabela de mai jos. În cazul numerelor reale, împărţirea în grupe de câte 4 cifre binare se faceîncepând de la virgula zecimală spre cele două capete. Pentru conversia inversă, din baza 16în baza 2, se înlocuieşte fiecare cifră hexazecimală cu grupul corespondent de 4 cifre binaredin tabelă. Zerourile din faţa numărului sunt nesemnificative. Exemple : 110001010011110(2) = 0110 0010 1001 1110 = 629E(16) 10110,101011(2) = 0001 0110, 1010 1100 = 16,AC(16) 1AE(16) = 0001 1010 1110 = 110101110(2) 15
    • F24A(16) = 1111 0010 0100 1010 = 1111001001001010(2) baza 10 baza 16 baza 2 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 Figura 2.1. Tabela de conversie a cifrelor hexazecimale în baza 2 Într-un mod asemănător, se poate face conversia din baza 2 în baza 8 şi invers, utilizândo tabelă similară, ce asociază fiecărei cifre octale numărul binar echivalent scris pe 3 biţi.Împărţirea numărului binar se face, în acest caz, pe grupe de câte 3 cifre. 2.3. Reprezentarea numerelor în calculator. Coduri de reprezentare. Ţinând cont de reprezentarea internă a semnului numerelor binare, distingemurmătoarele trei coduri de reprezentare: a) codul direct - în care numărul binar este reprezentat prin modulul număruluiprecedat de un bit de semn; 0 dacă este pozitiv, 1 dacă este negativ. Exemple: x = +1101 se reprezintă în cod direct astfel : xd = 01101 y = - 11011,101 → yd = 111011,101 b) codul invers sau codul complementar faţă de 1 - în care dacă numărul este pozitiv,se reprezintă în cod invers la fel ca şi în cod direct, deci precedat de un bit 0. Dacă numărul x 16
    • este negativ (x < 0), se inversează cifrele reprezentării binare în cod direct a numărului -x,care este un număr pozitiv. Exemple: x = +1101 → xi = 01101 y = -1101,011 → yi = 10010,100 c) codul complementar faţă de 2 - În cazul numerelor pozitive, reprezentarea esteaceeaşi ca şi în codul direct. Pentru numerele negative, codul în complement faţă de 2 seobţine din codul invers, la care se adaugă 1 în rangul cel mai puţin semnificativ. Exemple: x = +1101 → xc = 01101 y = -1101 → yi = 10010 + 1 ⎯−⎯ yc = 10011 În prezent, codul în complement faţă de 2 este acceptat în exclusivitate la majoritateacalculatoarelor electronice, şi îl vom folosi în continuare. La reprezentare internă a unui număr binar, nu se poate face abstracţie de numărul debiţi pe care se reprezintă numărul binar. Dacă se doreşte reprezentarea numărului binar pe unnumăr mai mare de biţi, se face extensia bitului de semn în cei mai semnificativi biţi. Deexemplu, fie numărul zecimal -7, a cărui reprezentare în complement faţă de 2, pe un octet,este 11111001 (+7 reprezentat în cod direct este 0111, deci -7 în cod complementar faţă de 2va fi 1001, la care se face extensia bitului de semn până la octet ). Reprezentat în codcomplementar faţă de 2 pe un cuvânt, -7 va fi 1111111111111001 (de exemplu, în urmaexecuţiei instrucţiunii MOV AX,-7 registrul AX va conţine valoarea binară1111111111111001). Ca o remarcă la reprezentarea în complement faţă de 2, se poate observa că numerelepozitive vor avea întotdeauna cel mai semnificativ bit 0, în timp ce numerele negative voravea 1 în cel mai semnificativ bit. Relativ la modul de reprezentare a virgulei zecimale, numerele reale pot fi reprezentateîn virgulă fixă sau în virgulă mobilă. Un număr real reprezentat în virgulă fixă este o succesiune de cifre împărţite de o marcăzecimală, într-o parte întreagă şi una fracţionară. Astfel, formatul de reprezentare în virgulăfixă conţine un bit de semn, un câmp format dintr-un număr oarecare de biţi pentrureprezentarea părţii întregi a numărului real şi un câmp pentru reprezentarea părţii fracţionare.Aceste câmpuri sunt de lungime constantă. Exemplu de format în virgulă fixă: 17
    • Reprezentarea în virgulă fixă limitează gama numerelor ce pot fi reprezentate. Astfel,dacă i este numărul de biţi rezervaţi pentru partea întreagă, f numărul de biţi rezervaţi pentrupartea fracţionară, numărul real maxim ce poate fi reprezentat este rmax = 011.. 1,111...1, ceconţine i biţi 1 în faţa virgulei zecimale şi f biţi 1 după virgula zecimală. Dacă în cazul reprezentării în virgulă fixă a numerelor reale, sarcina evidenţei mărciizecimale revine programatorului, în cazul reprezentării în virgulă mobilă, această sarcinărevine calculatorului. Pentru a reprezenta un număr real r în virgulă mobilă sau flotantă,acesta se scrie sub forma : r = + M* bE ; b∈N, b ≥ 2 şi E∈Z M se numeşte mantisă, E exponent, iar b este baza de reprezentare a numărului.Reprezentarea numărului real r de mai sus este unică, dacă 1/b 〈 ⏐M⏐ 〈 1. Operaţia prin carese modifică mantisa pentru a îndeplini această condiţie, ajustând corespunzător exponentul, senumeşte normalizare a mantisei. De exemplu, adunând 0,785x101 (7,85) cu 0,625x101 (6,25),obţinem 1,410x101, iar după normalizare 0,410x102. Exemplu de format în virgulă mobilă : Există mai multe formate standard de reprezentare a numerelor reale în virgulă fixă saumobilă, dar acestea nu vor fi tratate în secţiunea de faţă. Formatul de virgulă mobilă prezentatmai sus este formatul IEEE pentru numere reale scurte (pe 32 de biţi). Operaţiile cu numere învirgulă fixă sunt executate mai repede decât aceleaşi operaţii cu numere în virgulă mobilă,deoarece în cel de-al doilea caz sunt necesare calcule suplimentare, dar sunt preferatenumerele reprezentate în virgulă mobilă datorită faptului că uşurează munca programatorului.Procesoarele din familia Intel 80x86 nu au instrucţiuni de prelucrare a numerelor în virgulămobilă. Pentru aceasta sunt utilizate coprocesoarele aritmetice din familia 80x87. La 80486 şiPentium, coprocesorul arimetic este integrat pe cip împreună cu procesorul principal. 18
    • 3. LOGICĂ COMBINATORICĂ ŞI SECVENŢIALĂ 3.1. Elemente de logică booleană. Funcţii logice. În practica electronică, cifrele binare se reprezintă prin două niveluri de tensiune.Astfel, pentru familia de circuite logice integrate TTL - Tranzistor Tranzistor Logic - seasignează "1" logic pentru un nivel de tensiune mai mare de 2,4V (cuprins între 2,4V şi 5V),şi un "0" logic pentru un nivel de tensiune mai mic de 0,4V (cuprins între 0 şi 0,4V ). Într-omanieră simplificată, se poate considera că "1" logic este reprezentat de un nivel de tensiuneapropiat de +5Vcc, iar "0" logic este reprezentat de un nivel de tensiune apropiat de 0Vcc,majoritatea circuitelor electronice dintr-un calculator fiind alimentate cu o tensiune electricăcontinuă între +5Vcc şi 0Vcc. Algebra care corespunde logicii binare sau bivalente, utilizate până în prezent încalculatoare, este algebra Boole. Algebra Boole operează pe o mulţime B formată din douăvalori: "0" şi "1" (deci B = {0,1}), pe care se definesc trei legi de compoziţie : negaţia,disjuncţia şi conjuncţia. Complementarea logică sau negaţia (operatorul NOT) este definită prin următorul tabelde adevăr : Simbolul grafic cel mai utilizat pentru reprezentarea operatorului negaţie esteurmătorul: Disjuncţia logică sau suma logică (operatorul SAU,OR) şi conjuncţia logică sauprodusul logic (operatorul ŞI, AND ) sunt definite de următoarele tabele de adevăr: Simbolurile grafice utilizate pentru reprezentarea celor două operaţii logice sunt: 19
    • Elementele mulţimii B satisfac următoarele proprietăţi, (∀) X,Y,Z ∈B: 1. idempotenţa: X+X = X ; X*X = X 2. comutativitate: X+Y = Y+X ; X*Y =Y*X 3. asociativitate: X+(Y+Z) = (X+Y)+Z ; X*(Y*Z) = (X*Y)*Z 4. distributivitate: X*(Y+Z) = X*Y+X*Z ; X+Y*Z = (X+Y)*(X+Z) 5. existenţa elementului neutru: X+0 = X ; X*1 = X 6. existenţa complementului: X+X = 1 ; X*X = 0 7. dubla negaţie: X=X 8. legile lui De Morgan: X*Y = X+Y ; X+Y = X*Y 9. absorbţia: X*(X+Y) = X ; X+X*Y = X Formulele lui De Morgan ne permit să scriem orice relaţie logică folosind numai doi dincei trei operatori definiţi anterior; sau numai NOT şi OR, sau numai NOT şi AND. Dacăcombinăm cei doi operatori din fiecare pereche de operatori dată mai sus, obţinem încă doinoi operatori, cu tabelele de adevăr şi simbolurile următoare: operatorul NOR (SAU-NU) operatorul NAND (ŞI-NU) Orice relaţie logică se poate scrie utilizând numai unul din operatorii NAND sau NOR. O altă operaţie logică, des utilizată, este operaţia sau relaţia logică SAU EXCLUSIV(XOR), al cărei tabel de adevăr şi simbol grafic sunt date mai jos. 20
    • O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de nori. Valorile unei funcţii booleene pot fi prezentate într-un tabel, cu 2n linii şi n+1 coloane,numit tabel de adevăr al funcţiei. În primele n coloane se trec cele 2n combinaţii de valori alevariabilelor funcţiei, iar în coloana n+1 se trec valorile funcţiei corespunzătoare fiecăreicombinaţii. Exemplu: f(X,Y,Z) = XYZ + YZ +XZ O funcţie booleană, sau o expresie booleană, este în forma canonică disjunctivă, dacă sescrie ca o disjuncţie de mintermeni, şi este în forma canonică conjunctivă, dacă se scrie ca oconjuncţie de maxtermeni. Un mintermen este un produs logic, conţinând fiecare variabilă odată şi numai o dată, fie variabila fie negaţia ei. Un maxtermen este o sumă logică, ce conţinefiecare variabilă o dată şi numai o dată, fie variabila fie negaţia ei. Exemple: f(X,Y,Z) = XYZ +XYZ +XYZ f(X1,X2,X3) = (X1+X2+X3)(X1+X2+X3)(X1+X2+X3) Funcţia logică al cărei tabel de adevăr a fost prezentat mai sus se poate scrieîn forma canonică disjunctivă astfel : f(X,Y,Z) = XYZ +YZ + XZ = XYZ + (X+X)YZ + X(Y+Y)Z = XYZ + XYZ + XYZ +XYZ + XYZ Forma canonică conjunctivă este mai puţin utilizată în practică decât forma canonicădisjunctivă. 3.2. Implementarea şi minimizarea funcţiilor logice Porţile logice sunt circuitele care implementează funcţiile logice de bază: NOT,AND,OR, NAND, NOR, XOR. Prin implementarea unei funcţii logice, se înţelege realizarea ei cuajutorul circuitelor fundamentale sau porţilor logice. Costul unei funcţii logice este egal cunumărul de intrări în circuitele logice elementare ce realizează funcţia dată. Exemple: 1. Să se implementeze funcţia f(X,Y,Z) = XYZ + XY + XYZ 21
    • 2. Să se implementeze funcţia f(X,Y) = XY + X utilizând întâi porţi AND, OR, NOT, şi apoi utilizând numai porţi NAND. Numărul de niveluri al unei structuri sau implementări logice este egal cu numărulmaxim de circuite pe care le parcurge un semnal de la intrare la ieşire. În primul exemplu,funcţia este implementată pe 3 niveluri logice, în cel de-al doilea exemplu fiind implementatăpe 2 niveluri logice. Prin minimizarea unei funcţii logice se înţelege metodologia obţinerii unei expresiilogice echivalente cu cost minim, pentru un număr dat de niveluri logice. Funcţia dinexemplul 1, de mai sus, poate fi minimizată şi implementată astfel : f(X,Y,Z) = XYZ + XY + XYZ = (X + X)YZ +XY = YZ + XY Costul funcţiei după minimizare este C(f) = 7, spre deosebire de prima implementare, încare costul funcţiei este C(f) = 13. Metoda Veitch - Karnaugh de minimizare a unei functii logice: Se consideră o funcţie de n variabile logice, în forma normală disjunctivă. Se împartcele n variabile în 2 mulţimi de k şi p elemente, k + p = n. Vom forma o matrice cu 2k linii şi 22
    • 2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilorvariabilelor ce poziţionează elementul în matrice. În general, putem grupa 21, 22, 23,..., 2ptermeni vecini cu valori 1 ale funcţiei , eliminându-se din termenul rezultant 1,2,3,...,pvariabile, pentru care echivalenţii binari îşi schimbă valoarea în rangurile corespunzătoareacestor variabile. Pentru ordonarea coloanelor şi liniilor matricei Veitch-Karnaugh, sefolosesc combinaţiile posibile ale valorilor variabilelor de intrare, două coloane sau liniialăturate schimbând doar un singur bit. Exemplul 1: Să se minimizeze următoarea funcţie de 4 variabile : f(X1,X2,X3,X4) = X1X2X3X4+ X1X2X3X4+ + X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4 Exemplul 2: Să se minimizeze următoarea funcţie de 3 variabile : f(X1,X2,X3) = X1X2X3+ X1X2X3+ + X1X2X3+ X1X2X3+ X1X2X3+ X1X2X3 3.3. Materializarea funcţiilor logice. Circuite logice. Orice poartă logică definită pentru 2 intrări, şi care implementează una din funcţiilelogice de bază descrise mai sus, poate fi gândită şi utilizată cu un număr mai mare de intrări.Astfel, există porţi logice OR, AND, NAND etc. cu 3, 4 sau chiar 8 intrări. Pe o capsulă decircuit integrat pot fi implementate una sau mai multe porţi, depinzând de dimensiuneacapsulei (numărul de pini al capsulei) precum şi de numărul de intrări ale porţilor logice. De 23
    • exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1poartă NAND cu 8 intrări etc. Circuitul 7404, reprezentat mai sus, este o capsulă de 14 pini în tehnologie TTL, careconţine 6 inversoare; circuitul 7400 conţine 4 porţi NAND cu 2 intrări ; circuitul 7432 conţine4 porţi OR cu 2 intrări etc. Capsulele sunt alimentate la o tensiune de +5Vcc. În funcţie de tehnologia de realizare, există trei mari categorii de circuite logice : - TTL - Tranzistor Tranzistor Logic, cu varianta TTL Shottky. - ECL - Emiter Coupled Logic - MOS - Metal Oxid Semiconductor, cu cele 3 variante: PMOS, NMOS, CMOS Caracteristicile principale ale circuitelor logice : - timpul de propagare, notat cu tp şi măsurat în nsec. Este timpul scurs între momentulmodificării unei variabile la intrare şi momentul când răspunsul este furnizat la ieşireacircuitului. - puterea disipată, notată cu P şi măsurată în mW. - Fan-out, ce reprezintă numărul maxim de intrări ce pot fi conectate la ieşirea unuicircuit logic. La ieşirea unui circuit nu pot fi conectate un număr prea mare de intrări. Astfel,pentru circuitele TTL, Fan-out = 10, ceea ce înseamnă că la ieşirea unei porţi logice TTL, dincele prezentate în acest capitol, pot fi conectate maximum 10 intrări ale altor porţi logice. - valorile tipice ale tensiunilor de intrare şi ieşire. De exemplu, pentru familia decircuite logice TTL, tensiunea de ieşire minimă garantată în starea "high" (atunci când la 24
    • ieşire trebuie să fie "1" logic) este VOH = 2,4V, iar tensiunea de ieşire maximă în starea "low"(atunci când la ieşire trebuie să fie "0" logic) este VOL = 0,4V. În mod obişnuit, ieşirile circuitelor date mai sus nu pot fi conectate împreună. În unelesituaţii, cum este conectarea la magistrală, apare necesitatea conectării împreună a ieşirilormai multor circuite logice. În acest caz devin utile circuitele "tri-state", ieşirea circuituluiavând trei stări posibile : nivel ridicat ("1"), nivel coborât ("0"), şi deconectat sau starea demare impedanţă. Dacă circuitul "tri-state" este activat, ieşirea circuitului va fi în starea "high"sau "low" în funcţie de intrările circuitului. Dacă circuitul este dezactivat, ieşirea circuituluiva fi deconectată de la magistrală, magistrala sau linia comună fiind controlată de ieşirea altuicircuit logic. Exemple: Poartă ŞI-NU cu 2 intrări de date şi o intrare de activare Obs: Semnalele active pe nivel coborât sunt marcate pe desen printr-un cerculeţ, denumirea semnalului fiind supraliniată. Mai jos este prezentat un circuit buffer sau circuit tampon, a cărui ieşire Z va fi egală cuintrarea X dacă intrarea de activare E este 1, altfel ieşirea Z va fi în starea de mare impedanţă. Exemplu de cuplare la o linie de magistrală a mai multor semnale (X1,X2,X3), utilizândcircuite buffer: 25
    • 3.4. Structuri logice combinaţionale O structură logică combinaţională, sau un circuit logic combinaţional, este un circuit cun intrări şi m ieşiri, la care ieşirile pot fi exprimate ca funcţii numai de intrările circuitului. Decodorul este circuitul logic combinaţional cu n variabile de intrare şi cel mult 2nvariabile de ieşire, la care numai o singură ieşire este activă (de regulă în starea "low") la unmoment dat, celelalte ieşiri fiind inactive. Va fi activă ieşirea yk, k=0,1, ...2n-1, unde kreprezintă corespondentul zecimal al numărului binar XnXn-1...X2X1 existent pe cele n linii deintrare. Circuitul decodor poate avea una sau mai multe intrări de activare. Exemple: Circuitul 7442 este un decodor zecimal, cel mult una din cele 10 ieşiri fiind activă la unmoment dat. Astfel, dacă la intrare avem combinaţia DCBA = 0111, toate ieşirile vor fi în "1"logic, cu excepţia ieşirii 7 care va fi în "0" logic. Circuitul 74138 este un decodor octal cu 3 intrări de activare. Circuitul va fi activ dacăE1=E2=0 şi E3=1. Altfel, toate ieşirile sunt inactive (în starea "high") indiferent de combinaţiade pe liniile C,B,A. Dacă circuitul este activ, acesta va funcţiona conform următoarei tabelede adevăr : 26
    • Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumituneori şi circuit "selector", deoarece este utilizat ca un comutator de selectare a anumitorintrări. De exemplu, un multiplexor cu 8 intrări selectează şi trimite la ieşire una din cele 8intrări, în funcţie de un cod de selecţie pe 3 biţi, aflat pe cele 3 intrări de selecţie. În cazul general, cu ajutorul celor n intrări de selecţie, se selectează una din cele 2nintrări de date, intrare care este cuplată la ieşire. Uneori, circuitele multiplexoare suntprevăzute cu intrări de activare. Un exemplu concret de circuit multiplexor este circuitul74151, care implementează următoarea funcţie logică: Y = S(CBAI0+CBAI1+CBAI2+CBAI3+CBAI4+CBAI5+CBAI6+CBAI7) Dacă S=1 circuitul este inactiv, deci Y=0 indiferent de intrările C,B,A, I0-I7. Circuituleste activ, funcţionând ca un comutator comandat de intrările de selecţie, numai dacă S=0. Un alt circuit logic combinaţional este sumatorul, care realizează suma a două numerebinare. De exemplu, circuitul sumator CDB483 adună două numere binare pe 4 biţi astfel : C4∑3∑2∑1∑0 = X3X2X1X0 +Y3Y2Y1Y0 + C0 27
    • Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 încascadă, ca în figura de mai jos. De regulă, se preferă n = 4k. Tot circuite combinaţionale sunt şi unităţile aritmetico-logice, care pot efectua diferiteoperaţii aritmetice şi logice. De exemplu, ALU74181 este o unitate aritmetico-logică pe 4 biţi,care poate realiza 16 operaţii logice şi 16 operaţii aritmetice asupra operanzilor pe 4 biţi.Circuitul are 4 intrări de selecţie a operaţiei şi o intrare de control a modului. Dacă intrarea decontrol a modului este "0", circuitul realizează o operaţie aritmetică asupra operanzilor:adunare, scădere etc., operaţie selectată de cele 4 intrări de selecţie a operaţiei. Dacă intrareade control este "1", circuitul va realiza una din cele 16 operaţii logice (produs logic, sumălogică etc.) selectate de intrările de selecţie a operaţiei. Pentru a realiza operaţii logice sauaritmetice pe mai mulţi biţi, se conectează mai multe circuite ALU74181 în cascadă. Oasemenea unitate aritmetico-logică, dar mult mai performantă, se găseşte în interiorul oricăruimicroprocesor. 3.5. Sisteme logice secvenţiale Capacitatea de a memora este foarte utilă în soluţionarea unor probleme. Nu toateproblemele pot fi rezolvate într-o manieră pur combinaţională. Funcţia de memorare nepermite să reţinem datele până în momentul când este necesară prelucrarea lor, împreună cualte date de intrare. Dispozitivele secvenţiale sau dispozitivele cu memorie, au o intrare deceas (sau intrare de tact), starea lor schimbându-se numai ca urmare a tranziţiei acestui semnalde ceas. 28
    • Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiindcomplet definite de intrări. La un sistem secvenţial, relaţia dintre ieşiri şi intrări estedeterminată şi de evoluţia anterioară a intrărilor şi ieşirilor. Un sistem logic secvenţial poate fidivizat într-un circuit pur combinaţional şi un circuit cu memorie astfel: Dacă poarta logică este elementul combinaţional de bază al structurilor combinaţionale,bistabilul este elementul secvenţial de bază al sistemelor secvenţiale. Elementele dememorare, şi în particular bistabilii, îşi modifică ieşirea în funcţie de intrări numai ca urmarea tranziţiei semnalului de ceas. 3.5.1. Tipuri de bistabile Bistabilul de tip D - este elementul fundamental de memorare. Ieşirea Q la momentul n+1 (la a n+1-a tranziţie a semnalului de ceas) este egală cuintrarea D la momentul n (intrarea anterioară tranziţiei n+1 a semnalului de ceas). Mai clar,funcţionarea bistabilului de tip D rezultă din următoarea diagramă de semnale: 29
    • Bistabilul de tip R-S Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorulfront activ al semnalului de ceas, sau altfel spus, resetează ieşirea bistabilului. Dacă intrareaS, numită şi intrare de Set, este 1, ieşirea bistabilului va trece în 1 la următorul front activ alceasului. Dacă R=S=0, ieşirea bistabilului rămâne nemodificată după a n+1-a tranziţie asemnalului de ceas. R=S=1 determină trecerea bistabilului într-o stare nedeterminată (ieşireapoate fi atât 0 cât şi 1), fiind necesară evitarea acestei combinaţii. Pot exista bistabile R-S fărăintrare de ceas, bistabilul fiind resetat imediat ce intrarea R=1, şi fiind setat imediat ceintrarea S=1. Bistabilele pot fi active pe nivel sau pe front. În cazul bistabilelor active pe nivel,tranziţia ieşirii bistabilului este determinată de nivelul semnalului de ceas, spre deosebire debistabilele active pe front, la care tranziţia ieşirii este determinată de frontul crescător saudescrescător al semnalului de ceas. Bistabilul de tip D prezentat anterior este un bistabil activpe frontul crescător al semnalului de ceas. Bistabilul de tip J-K Spre deosebire de bistabilul R-S, în cazul bistabilului J-K, dacă J=K=1, ieşirea Q abistabilului la momentul n+1 va fi egală cu ieşirea Q la momentul anterior tranziţiei n+1 asemnalului de ceas, inversată. 30
    • Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât celeprezentate anterior. Astfel, circuitul 7474 (sau echivalentul său CDB474) conţine 2 bistabilede tip D pe capsulă, care arată ca în figura 3.1. R şi S sunt intrări asincrone active pe nivelcoborât, care resetează, respectiv setează ieşirea Q a bistabilului, indiferent de semnalul deceas. De asemenea, fiecare bistabil mai este prevăzut cu o ieşire Q, ce reprezintă ieşirea Qinversată. Ceasul este activ pe front crescător. Capsula 7473 (sau CDB473) conţine 2 bistabileJ-K active pe frontul descrecător al semnalului de ceas, cu intrări asincrone de set şi reset. Figura 3.1. Bistabilele integrate 7474 şi 7473 3.5.2. Registre şi numărătoare Mai multe bistabile pot fi grupate în configuraţii de registre sau numărătoare. Registrelefolosesc, de obicei, ca dispozitiv de memorare a datelor. Spre deosebire de bistabile, carememorează o informaţie de un bit, registrele sunt dispozitive care pot stoca cuvinte (mai mulţibiţi), deci registrele sunt realizate prin alăturare de bistabile, fiecare bistabil memorând unsingur bit. Registrele pot fi cu acces paralel sau cu acces serie. La registrele cu acces paralel,operaţia de încărcare se realizează simultan în cele n circuite basculante ale registrului, pefrontul activ al semnalului de ceas. Exemplu de registru cu acces paralel, implementat cu bistabile de tip D: În cazul registrelor cu acces serie, încărcarea bistabilelor registrului se face serial, de lao intrare serială. Exemplu de registru serie, implementat cu bistabile de tip D: 31
    • La fiecare front activ al semnalului de ceas SI→Q1, Q1→Q2, Q2→Q3, Q3→Q4. Un exemplu concret de registru integrat este circuitul 7495 (sau CDB495) prezentat înfigura 3.2, şi care este un registru de 4 biţi, cu posibilitate de operare sincronă serie sauparalelă. Funcţionarea circuitului 7495 este următoarea: Dacă S=1, este permisă operareaparalelă, şi se vor încărca în registru, în paralel, datele de la D0-D3, la o tranziţie din 1 în 0 aintrării de tact CP2 (ceas activ pe front descrescător). Dacă S=0, este permisă operarea serie, şila o tranziţie din 1 în 0 a intrării de ceas CP1, se realizează deplasarea serie dreapta ainformaţiei din registru: DS→Q0, Q0→Q1, Q1→Q2, Q2→Q3. Figura 3.2. Circuitele 7495 şi 74193 De asemenea, mai multe bistabile pot forma o configuraţie de numărător, o asemeneaconfiguraţie numărând impulsurile de la intrarea de ceas a bistabilelor. Ieşirile bistabilelorsunt interpretate, în acest caz, ca un număr binar ce reprezintă starea numărătorului, sau cualte cuvinte, ieşirile bistabilelor reprezintă numărul de impulsuri de ceas apărute la intrarea detact a bistabilelor. Astăzi nu se mai realizează practic numărătoare cu circuite bistabileindividuale, existând numeroase numărătoare integrate. Astfel, circuitul 74193 este un numărător binar reversibil de 4 biţi (sau numărătormodulo 16). Circuitul are două intrări de ceas active pe front pozitiv: Cu - pentruincrementarea numărătorului şi Cd - pentru decrementarea numărătorului. Numărătorul poatefi resetat (Y3=Y2=Y1=Y0=0), dacă intrarea R=1. PL este o intrare de comandă a încărcăriiparalele, deci dacă PL efectuează o tranziţie din "1" în "0", se realizează încărcarea paralelă:D0→Y0, D1→Y1, D2→Y2, D3→Y3. Numărarea este posibilă dacă PL=1 şi R=0. Circuitul 32
    • incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şidecrementează (scade 1) numărul Y3Y2Y1Y0 la fiecare front crescător al intrării Cd. IeşirileTCD şi TCU sunt "low" la trecerea prin zero a numărătorului când se numără înapoi, respectiv latrecerea prin 15 când se numără înainte. Funcţiile logice realizate de cele două ieşiri sunt: TCU = Y3Y2Y1Y0Cu TCD = Y3Y2Y1Y0Cd Aceste două ieşiri sunt necesare pentru cuplarea mai multor numărătoare 74193 încascadă, în vederea implementării unor numărătoare pe mai mulţi biţi. Funcţionarea ca numărător înainte rezultă din următoarea diagramă de semnale: O diagramă asemănătoare poate fi trasată şi în cazul numărării înapoi. 33
    • 4. MICROPROCESOARELE DIN FAMILIA INTEL 80x86 4.1. Microprocesorul I80286 4.1.1. Caracteristici generale Microprocesorul IAPX-286, sau I80286, este un microprocesor produs de firma INTEL,aparţinând familiei IAPX, ce cuprinde microprocesoarele I8088, I8086, I80286, I80386,I80486, Pentium. I80286 poate funcţiona până la o frecvenţă de 25MHz, fiind perfectcompatibil în jos cu microprocesoarele anterioare din familie: I8088 şi I8086. Are douămoduri de lucru: modul real şi modul protejat. Setul de instrucţiuni al microprocesoruluiI8086 a fost lărgit cu instrucţiuni specifice modului de lucru protejat, ce oferă suportulnecesar implementării unor sisteme de operare multitasking, cum este OS/2. Într-un asemeneasistem de operare, unitatea centrală de prelucrare serveşte pe rând mai multe taskuri, sauprograme, astfel încât utilizatorul are impresia că sunt rulează mai multe programe simultan. I80286 are magistrala de date de 16 biţi la fel ca şi I8086, dar în schimb are magistralade adrese de 24 de biţi, cu care poate adresa în mod direct un spaţiu de memorie de16Mocteţi. De asemenea, are în compunere o unitate de gestiune a memoriei, prin intermediulcăreia poate adresa o memorie virtuală de 1Goctet. La fel ca şi I8086, poate adresa un spaţiude I/E de 64 Kporturi de 8 biţi sau 32 Kporturi de 16 biţi. I80286 lucrează în conjuncţie cu coprocesorul matematic I80287, care, spre deosebirede I8087, poate asigura asistenţă microprocesorului I80286, în ce priveşte efectuareacalculelor matematice, şi în modul protejat. Microprocesorul I80286 este microprocesorul în jurul căruia sunt realizatecalculatoarele IBM AT sau compatibile, folosind o magistrală de tip ISA - IndustrialStandard Architecture. I80286 este livrat în două moduri diferite: într-o capsulă de plastic deformă pătrată, cu pini numai pe cele 4 laturi ale capsulei, sau într-o capsulă pătrată ce conţineo matrice de pini - Pin Grid Array. 4.1.2. Arhitectura internă a microprocesorului I80286 Microprocesorul I80286 este compus din 4 unităţi independente care lucrează în paralel: - unitatea de interfaţă cu magistrala - BU (Bus Unit); - unitatea instrucţiunilor - IU (Instrucţion Unit); - unitatea de execuţie - EU (Execution Unit); - unitatea de adresare - AU (Adress Unit). 34
    • Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorulle efectuează pe magistrală, generând adresele, datele şi semnalele de control pentru memorieşi porturile de I/E. BU transferă date între memorie sau porturi, şi microprocesor, la cerereaunităţii de execuţie. Dacă BU nu are o astfel de cerere din partea unităţii de execuţie, va aducedin memorie următoarea instrucţiune în secvenţă, pe care o plasează într-o coadă deinstrucţiuni. Aceasta presupune că instrucţiunile se execută în secvenţă, una după alta, înordinea în care apar în memorie. Dacă survine o ruptură în secvenţă (de exemplu oinstrucţiune de salt), coada de instrucţiuni este resetată şi se reîncepe citirea instrucţiunilor cuanticipaţie de la noua adresă. Coada de instrucţiuni este o memorie internă de 6 octeţi, carememorează codurile instrucţiunilor înainte de a fi utilizate de unitatea instrucţiunilor. Acestmecanism de citire cu anticipaţie a instrucţiunilor permite eliminarea timpilor morţi de citiredin memorie a instrucţiunii următoare. Figura 4.1.1. Schema bloc internă a microprocesorului I80286 Unitatea instrucţiunilor primeşte instrucţiuni din coada de instrucţiuni, le decodifică, şile plasează într-o altă coadă, cu lungimea de 3 octeţi, numită coada instrucţiunilordecodificate. Unitatea de execuţie execută instrucţiunile preluate din coada de instrucţiunidecodificate, şi face apel la unitatea de interfaţă cu magistrala, pentru toate transferurile dedate cu memoria sau cu porturile de I/E. Unitatea de execuţie conţine o unitate aritmetico-logică - Arithmetical Logical Unit, destinată efectuării calculelor aritmetice şi logice careintervin în execuţia instrucţiunilor. UAL efectuează calculele manevrând regiştrii generali şi 35
    • operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi înregistrul indicatorilor de condiţie şi stare F. Unitatea de adresare asigură gestiunea memoriei, mecanismele de protecţie a memorieişi translatarea adreselor virtuale (sau logice) în adrese fizice, care sunt apoi utilizate deunitatea de interfaţă cu magistrala. Arhitectura microprocesorului I80286 este o arhitectură de tip bandă de asamblare, sau"pipe- line", cele 4 unităţi lucrând în paralel, astfel că, spre exemplu, în timp ce unitatea deexecuţie este ocupată cu execuţia instrucţiunii curente, unitatea de interfaţă cu magistralaîncarcă instrucţiunea următoare, sau transferă în memorie rezultatul instrucţiunii executateanterior. În acelaşi timp, unitatea instrucţiunilor decodifică următoarea instrucţiune deexecutat, pe care o pune în coada de instrucţiuni decodificate, pentru a fi preluată de unitateade execuţie. 4.1.3. Registrele microprocesorului I80286 Microprocesorul I80286 conţine 15 registre interne de 16 biţi. Aceste registre pot fi grupate în 5 categorii astfel: - registre generale - registre indicatoare de adresă şi index - registre de segment - registrul pointerului de instrucţiuni - registre de control şi stare Figura 4.1.2. Registrele microprocesorului I80286 Registrele generale AX, BX, CX, DX sunt utilizate în majoritatea instrucţiuniloraritmetice şi logice, şi pot fi folosite atât ca registre pe 16 biţi, cât şi ca registre pe 8 biţi. Deexemplu, registrul AX, registru pe 16 biţi, este compus din registrul AH ce conţine cei 8 biţi 36
    • mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi dinAX. Registrele SP şi BP sunt denumite registre indicatoare de adresă (sau pointer) şi suntfolosite numai ca registre pe 16 biţi. Registrul SP conţine deplasamentul în octeţi al vârfuluistivei, faţă de începutul segmentului de stivă curent. De cele mai multe ori, şi registrul BPconţine un deplasament în segmentul de stivă curent. Registrele BX şi BP mai sunt denumiteuneori şi registre bază, fiind desemnate să conţină adresa de bază a unei structuri de date dinmemorie, cum ar fi adresa de bază a unui tablou. Registrele index SI şi DI sunt registre numai pe 16 biţi, şi conţin de regulă un index,care se incrementează sau se decrementează pe măsură ce se examinează o structură de date.Sunt folosite în special de instrucţiunile de prelucrare a şirurilor de caractere. Spaţiul de memorie adresabil de 80286 este împărţit în segmente logice cu dimensiuneamaximă de 64Kb. În general, programele sunt constituite din mai multe segmente (module) decod, date, sau stivă, numai o parte din acestea fiind utilizate la un moment dat.Microprocesorul I80286 permite unui program să aibă acces la 4 segmente simultan.Registrele de segment sunt utilizate pentru a identifica cele 4 segmente curente, fiecareregistru fiind specializat pentru un anumit tip de segmente. Registrele de segment sunt: - CS - registru de segment de cod - DS - registru de segment de date - SS - registru de segment de stivă - ES - registru de segment de date suplimentare Toate registrele de segment au 16 biţi. Registrele de segment pot fi modificate prinprogram. Conţinutul registrelor de segment este interpretat diferit în funcţie demodul de lucru al microprocesorului: real sau virtual. În modul de lucru real, care este modul de lucru compatibil I8086, registrele de segmentconţin cei mai semnificativi 16 biţi ai adresei de bază a segmentelor de memorie. Pentru aface acces la o dată din memorie, microprocesorul trebuie să cunoască adresa de bază asegmentului în care se află data ce se doreşte a fi accesată (adresa primului octet dinsegment), precum şi adresa relativă în segment a datei respective, sau un deplasament, cereprezintă distanţa în octeţi faţă de începutul segmentului. Astfel, în modul real, CS conţine cei mai semnificativi 16 biţi ai adresei de bază asegmentului de cod curent, DS conţine cei mai semnificativi 16 biţi ai adresei de bază asegmentului de date curent ş.a.m.d. Segmentele de cod ale unui program conţin instrucţiunile programului, segmentele dedate (referite de DS şi ES) conţin date sau variabile pentru programul ce se execută,segmentele de stivă, referite prin intermediul registrului de segment SS, conţin zone dememorie organizate pe principiul stivei. 37
    • În modul de lucru protejat, registrele de segment conţin un index într-o tabelă dedescriptori a segmentelor. O intrare în această tabelă conţine un descriptor de segment, carecuprinde : - adresa de bază a segmentului, - dimensiunea segmentului, - drepturile de acces la segmentul respectiv etc. Deci, registrul de segment indică o intrare într-o tabelă de descriptori a segmentelor,unde se găseşte adresa de bază a segmentului în care se doreşte a se efectua accesul. Dinaceastă cauză, în modul de lucru protejat, registrele de segment mai sunt denumite şi selectoride segment, deoarece selectează un segment dintr-o tabelă ce descrie mai multe segmente. Registrul pointer de instrucţiuni - IP - este un registru de 16 biţi, care conţine adresarelativă în raport cu începutul segmentului de cod curent, a următoarei instrucţiuni ce trebuieexecutată. Registrul IP este transparent la nivelul programatorului, el fiind actualizat automatdupă citirea instrucţiunii curente, astfel încât să indice deplasamentul următoarei instrucţiunide executat. Registrul indicatorilor de stare şi control - F - conţine indicatorii de stare şi control aimicroprocesorului. Indicatorii de stare, în număr de 6, sunt poziţionati de unitatea aritmetico-logică în urma execuţiei unei instrucţiuni, şi reflectă anumite stări ale rezultatului uneioperaţii aritmetice sau logice. Unele instrucţiuni ale microprocesorului testează aceştiindicatori şi, în funcţie de cum sunt poziţionaţi (în 0 sau în 1), se execută anumite acţiunispecifice. Indicatorii de stare sunt următorii: - indicatorul de transport - CF (Carry Flag ) - este unu dacă a apărut transport dinbitul cel mai semnificativ în exterior, sau s-a făcut împrumut în exterior din bitul cel maisemnificativ al rezultatului. Indicatorul CF este afectat şi de instrucţiunile de rotire şideplasare. - indicatorul de paritate -PF (Parity Flag) - este poziţionat (este pus în 1 logic) dacărezultatul execuţiei instrucţiunii are octetul cel mai puţin semnificativ cu un număr par de biţiunu. În caz contrar PF este poziţionat în zero. - indicatorul de transport auxiliar - AF (Auxiliary Carry Flag) - este unu dacă laexecuţia instrucţiunii a apărut un transport între rangul 3 şi rangul 4 al rezultatului. Deexemplu, presupunând că în registrul AH avem valoarea 58H şi în registrul BH valoarea 29H,în urma execuţiei instrucţiunii ADD AH,BH, care adună conţinutul registrului AH cu BH şipune rezultatul în AH, apare un transport din rangul 3 în rangul 4, ceea ce determină setareaindicatorului AF. AH = 01101000 + BH = 00101001 ⎯⎯⎯⎯ 38
    • AH = 10010001 - indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatulinstrucţiunii executate anterior a fost zero. - indicatorul de semn - SF (Sign Flag) - este unu dacă s-a obţinut un rezultat negativ(strict mai mic decât zero). Mai precis, SF este identic cu bitul cel mai semnificativ alrezultatului, dat fiind faptul că, în reprezentarea numerelor în complement faţă de 2, numerelenegative au primul bit 1. - indicatorul de depăşire - OF (Overflow Flag) - este unu dacă la execuţia instrucţiuniianterioare a apărut o depăşire, adică dimensiunea rezultatului depăşeşte capacitatea locaţiei dedestinaţie. Indicatorii de control pot fi poziţionati în unu sau în zero prin program, asigurând prinaceasta controlul prin program al unor operaţii ale procesorului. Indicatorii de control sunturmătorii: - indicatorul de direcţie - DF (Direction Flag) - Dacă DF este poziţionat în unu, atuncişirurile de caractere vor fi prelucrate de la adrese mari spre adrese mici de memorie, sau de ladreapta la stânga. Ştergând DF (poziţionând în zero), şirurile vor fi prelucrate de la stânga ladreapta. - indicatorul de întrerupere - IF (Interrupt Flag) - Dacă IF este poziţionat în unu prinprogram, microprocesorul va recunoaşte cererile de întrerupere externă. Ştergând acestindicator, întreruperile externe vor fi invalidate. - indicatorul de urmărire - TF (Trap Flag) - Dacă TF este poziţionat în unu,procesorul intră în modul de execuţie pas cu pas, pentru depanare. În acest mod, dupăexecuţia unei instrucţiuni se generează o întrerupere internă, ceea ce dă posibilitateainvestigării rezultatului execuţiei fiecărei instrucţiuni dintr-un program. Indicatorii de stare şi control prezentaţi mai sus sunt aceeaşi cu indicatorii de condiţie şistare ai microprocesorului I8086. De fapt, toate registrele prezentate anterior pot fi întâlnite şila I8086. În plus faţă de I8086, I80286 mai conţine în registrul indicatorilor de condiţie şistare, trei biţi, care sunt folosiţi numai în modul protejat, fiind ignoraţi în modul de lucru real.Aceştia sunt: - indicatorul NT (Nested Task) - ce indică dacă instrucţiunea curentă evoluează încadrul aceluiaşi task, sau ea provoacă o schimbare de task. - câmpul IOPL (I/O Priviledge Level) - format din 2 biţi, şi care reprezintă nivelul deprivilegiu cel mai slab, pentru care nivelul taskului în curs de execuţie trebuie să fie superiorsau egal, pentru a putea executa instrucţiuni de I/E. Un nivel de privilegiu este mai slab, dacănumeric este mai mare. De exemplu, nivelul 3 este mai slab decât nivelul 2. Registrul indicatorilor de condiţie şi stare are următoarea configuraţie : 39
    • Un registru care nu poate fi întâlnit la I8086, este registrul sau cuvântul de stare masină-MSW (Machine Status Word), cu următoarea configuraţie: Microprocesorul I80286 nu foloseşte decât cei mai puţin semnificativi 4 biţi ai acestuiregistru de 16 biţi, ceilalţi biţi fiind rezervaţi pentru 80386. Semnificaţia biţilor esteurmătoarea: - PE (Protected mode Enable) - Dacă acest bit este poziţionat în unu prin program,I80286 va intra în modul protejat. Odată poziţionat în unu, numai prin resetareamicroprocesorului acest bit poate fi adus în zero, determinând intrarea microprocesorului80286 în modul de lucru real. La microprocesorul 80386, acest bit poate fi poziţionat în zeroprin program. - MP (Monitor Processor extension) - Dacă MP=1 se indică prezenţa unui coprocesormatematic. - EM (Coprocessor EMulation) - Dacă EM este setat, toate funcţiile coprocesoruluimatematic vor fi emulate. Aceasta înseamnă că, spre exemplu, un logaritm nu este calculat decoprocesorul matematic I80287, ci de o rutină din biblioteca matematică, folosind numaiinstrucţiuni ale microprocesorului I80286. - TS (Task Switch) - Dacă bitul este setat a avut loc o comutare de task, şi este posibilsă se determine dacă coprocesorul matematic execută încă o instrucţiune a taskului precedent,sau este pregătit pentru un nou task. Deoarece anumite instrucţiuni ale coprocesorului 80287necesită până la 1000 de perioade de ceas, este posibil ca I80286 să servească alt task în acesttimp, reîntorcându-se la taskul precedent atunci când coprocesorul a terminat de executatinstrucţiunea.4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286 Activitatea pe magistrală a microprocesorului I80286 diferă mult faţă de activitateaprocesoarelor anterioare, datorită mecanismului de tip "pipe-line" realizat de I80286.Procesorul I80286 plasează adresele pe magistrala de adrese înaintea sfârşitului ciclului demagistrală precedent, datele citite sau scrise fiind valide pe magistrala de date şi la începutulciclului de magistrală următor. Acest lucru a permis reducerea ciclului de magistrală la numaidoi cicli procesor, în timp ce ar fi fost necesari trei cicli procesor. Se definesc următoarelenoţiuni: - Ciclul de ceas sistem - este timpul scurs între două fronturi crescătoare alesemnalului de ceas de la intrarea CLK a microprocesorului (perioada ceasului extern). 40
    • - Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşteun ceas intern PCLK, format prin divizarea cu doi a ceasului sistem CLK. Ciclul procesor esteperioada ceasului PCLK. - Ciclul de magistrală - este timpul necesar unui transfer de date pe magistrală (deexemplu, citirea unui cuvânt din memorie sau porturile de intrare, sau scrierea unui cuvânt înmemorie sau porturile de ieşire ). - Ciclul instrucţiune - este timpul necesar execuţiei unei instrucţiuni, şi este format dincicli de magistrală şi din cicli interni ai microprocesorului. În general, orice microprocesor execută un program prin execuţia repetată aurmătorilor paşi: - aducerea (citirea) instrucţiunii următoare din memorie; - aducerea sau citirea operanzilor din memorie, dacă instrucţiunea citită anterior necesită operanzi din memorie; - efectuarea prelucrărilor numerice asupra operanzilor; - transferul (scrierea) rezultatului în memorie, dacă instrucţiunea prevede acest lucru. Ciclul instrucţiune este de fapt timpul de execuţie al celor două mari etape care intervinîn execuţia unei instrucţiuni: citirea instrucţiunii din memorie, şi execuţia propriu-zisă ainstrucţiunii, ce cuprinde citirea operanzilor, efectuarea calculelor şi scrierea rezultatului. Există patru tipuri de cicli procesor, numite şi stări, fiecare stare fiind caracterizatăprintr-o anumită activitate pe magistrală. Cele 4 stări sunt: - TI (Idle) - stare inactivă; - TS (Status) - stare de generare a semnalelor de stare; - TC (Command) - stare de comandă în curs; - TH (Hold) - stare de abandon a magistralei. Toate stările durează o perioadă de ceas procesor PCLK, adică 2 perioade de ceassistem CLK. Starea TI indică faptul că nu se solicită nici un transfer de date pe magistrală, procesorulcontrolând magistrala ca "master", dar neefectuând transferuri de date pe magistrală. Starea activă TS este semnalizată prin trecerea pe nivel coborât a liniilor de stare S0şi/sau S1, care indică tipul operaţiei pe magistrală. Tot în această stare, sunt generatesemnalele de control, semnalele de adresă şi, în cazul unui ciclu de scriere, sunt generate şisemnalele de date. Starea TC urmează după o stare TS, şi semnifică o operaţie în curs de execuţie pemagistrală. În această stare sunt efectuate transferurile de date între memorie sau porturi pe deo parte, şi procesor pe de altă parte. Starea TH indică faptul că I80286 a pierdut controlul magistralei. În această staremagistrala este folosită de un alt dispozitiv, pentru efectuarea transferurilor de date, 80286 41
    • fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea demare impedanţă). Microprocesorul poate să execute următoarele operaţii pe magistrală : - citire / scriere memorie; - citire / scriere porturi de I / E; - recunoaştere întrerupere; - HALT sau blocare ("shutdown"). Figura 4.1.3. Ciclul de citire În cea de-a doua perioadă de ceas sistem a stării TC a ciclului de magistrală precedent,procesorul plasează, pe magistrala de adrese, adresa de memorie sau adresa portului de I/E, şiactivează semnalele M/IO şi COD/INTA de pe magistrala de control, pentru a indica ooperaţie cu memoria sau cu porturile de I/E. În starea TS a ciclului de citire, procesorulactivează semnalele de stare S0 şi S1, şi anume: S0 pe nivel ridicat şi S1 pe nivel coborât,pentru a indica un ciclu de citire. Semnalul M/IO permite distincţia între un acces la memorie şi un acces la porturile deI/E astfel: M/IO = 1 - indică o operaţie cu memoria M/IO = 0 - indică o operaţie cu porturile de I/E Semnalul COD/INTA, combinat cu semnalul M/IO, permite distincţia între citirea unuioperand din memorie şi citirea codului unei instrucţiuni când M/IO = 1, sau permite distincţiaîntre o operaţie de recunoaştere a întreruperii şi o operaţie de citire/scriere port de I/E, astfel : M/IO = 1 COD/INTA = 1 - citire cod instrucţiune din memorie COD/INTA = 0 - citire operand / scriere rezultat din/în memorie M/IO = 0 COD/INTA = 1 - citire/scriere port de I/E COD/INTA = 0 - recunoaştere întrerupere 42
    • Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scrieresau recunoaştere întrerupere astfel: S1 S0 0 0 - recunoaştere întrerupere 0 1 - citire port sau memorie 1 0 - scriere port sau memorie 1 1 - neutilizată În intervalul de timp scurs între furnizarea adreselor pe magistrala de adrese, la sfârşitulciclului de magistrală precedent, şi cea de-a doua jumătate a stării TC a ciclului de citire,memoria sau portul adresat trebuie să furnizeze pe magistrala de date conţinutul locaţiei dememorie adresate sau conţinutul portului adresat, în vederea citirii de către procesor. Dacămemoria sau portul nu sunt atât de rapide, se vor lansa alţi cicli TC, până când datele suntdisponibile pe magistrala de date. La sfârşitul stării TC a ciclului de citire, procesorul testează semnalul READY, careeste controlat de memorie şi porturile de I/E. Dacă semnalul READY = 0, ceea ce specificăfaptul că datele sunt disponibile pe magistrală, ciclul de magistrală curent se va termina,procesorul citind (preluând) datele de pe magistrala de date. Dacă READY = 1, se specificăfaptul că memoria sau portul adresat nu a furnizat încă datele pe magistrala de date, şi se vagenera încă o stare TC, la sfârşitul căreia se va testa din nou semnalul READY ş.a.m.d. (se vaprelungi ciclul de citire curent cu încă o stare TC). Ciclul de scriere este similar cu ciclul de citire, procesorul activând corespunzător A0-A23, M/IO, COD/INTA la sfârşitul ciclului de magistrală precedent, după care, în starea TS aciclului de magistrală curent, pune S1 pe 1, S0 pe 0, indicând o operaţie de scriere, şi pemagistrala de date pune datele în vederea scrierii în memorie sau portul adresat. Dacămemoria sau portul nu reuşesc să efectueze operaţia de scriere în timp util, vor ţine semnalulREADY pe 1, ceea ce determină procesorul să prelungească ciclul de magistrală curent custări TC suplimentare. 43
    • Figura 4.1.4. Ciclul de scrire Ciclii de recunoaştere întrerupere apar în urma apariţiei unei întreruperi externe, cândprocesorul execută recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare aîntreruperii unde va transfera controlul. Ciclii de HALT şi blocare apar fie ca efect al execuţiei instrucţiunii HALT (ce opreşteprocesorul din execuţia normală a instrucţiunilor), fie datorită apariţiei excepţiilor multiple laexecuţia unei instrucţiuni. Procesorul poate fi scos din starea de HALT şi din starea deblocare fie prin resetarea microprocesorului, fie printr-o întrerupere externă nemascabilă. Înplus, procesorul poate fi scos din starea de HALT şi printr-o întrerupere externă mascabilă,dacă întreruperile externe mascabile sunt validate. Resetarea, sau iniţializarea procesorului, se face prin aplicarea unui "1" logic pe intrareaRESET a procesorului. După reset I80286 intră în modul real, registrul MSW fiind încărcatcu valoarea FFF0H, cele mai semnificative linii de adresă, A20-A23, fiind tinute în "1" logic,astfel încât prima instrucţiune executată va fi instrucţiunea de la adresa fizică FFFFF0H, care,de regulă, este o instrucţiune de salt în zona de memorie de până la 1Mb. Această instrucţiunede salt determină dezactivarea liniilor A20-A23, care vor trece în zero, procesorul I80286lucrând în modul real, ca un procesor I8086. Pentru a intra în modul protejat, trebuie setat,prin program, bitul PE din registrul MSW. 4.1.5. Modurile de lucru ale microprocesorului I80286 Modul de lucru real este modul compatibil I8086, asigurând posibilitatea rulării pesisteme cu I80286 a programelor dezvoltate anterior pe microprocesoarele 8086/8088.Singurul avantaj este faptul că viteza de lucru este mai mare. În modul de lucru real memoria este adresată folosind un pointer de 32 de biţi, formatdin două componente: 44
    • - un selector de segment de 16 biţi, care indică segmentul de memorie dorit, aflat într- un din registrele de segment, şi - un deplasament (offset) de 16 biţi, care indică octetul dorit în cadrul segmentului. Memoria fizic adresabilă în modul real este de 1Moctet, I80286 folosind pentruadresarea memoriei numai liniile de adresă A0-A19 şi ignorând liniile A20-A23, care sunt ţinuteîn zero. Memoria de 1Mb este împărţită în mai multe segmente logice, un segment logic fiindformat din locaţii adiacente de memorie, şi având dimensiunea maximă de 64Kb. Fiecăruisegment îi corespunde o adresă de bază, care este adresa locaţiei de început a segmentului.Toate segmentele încep la o adresă multiplu de 16. Segmentele pot fi adiacente, disjuncte,parţial sau total suprapuse. O locaţie fizică poate să aparţină unuia sau mai multor segmente. Adresa fizică pe 20 de biţi a unei locaţii de memorie se calculează înmulţind selectorulde segment, aflat într-unul din registrele de segment, cu 16 (ceea ce înseamnă de faptdeplasarea cu 4 poziţii spre stânga), la care se adună deplasamentul. Deci, conţinutulregistrului de segment este interpretat ca fiind cei mai semnificativi 16 biţi ai adresei de bazăa segmentului. Figura 4.1.5. Calculul adresei fizice în modul real Adresarea instrucţiunilor, stivei şi datelor în modul real: Instrucţiunile unui program se găsesc într-unul din segmentele de cod ale programului.Adresa fizică a instrucţiunii care urmează să se execute, se obţine folosind registrul CS, ceconţine adresa de bază a segmentului de cod curent, şi registrul IP ca deplasament însegmentul de cod indicat de CS. Figura 4.1.6. Adresarea instrucţiunilor şi stivei în modul real 45
    • Stiva este o zonă de memorie de tip LIFO (Last In First Output), la care adăugarea unuielement se face prin plasarea lui în vârful stivei, scoaterea unui element din stivă realizându-se prin extragerea lui din vârful stivei. Un program poate să conţină una sau mai multe stive,fiecare stivă fiind conţinută într-unul din segmentele de stivă ale programului. Pentruimplementarea mecanismului de tip stivă, I80286 foloseşte registrul SS ca registru de bază, ceconţine adresa de bază a segmentului de stivă curent, şi registrul SP - Stack Pointer - ceconţine deplasamentul vârfului stivei faţă de baza segmentului de stivă pointat de SS. Stiva creşte de la adrese mari de memorie spre adrese mici de memorie. Să luăm o stivăde lungime 100H, în care s-au introdus 6 octeţi, şi să presupunem că registrul SS conţinevaloarea 1F20H. Valoarea iniţială a registrului SP este 0100H. După introducerea în stivă acelor 6 octeţi, SP devine 0100H - 6 = 00FAH. Deci, când se introduc elemente în stivă SP sedecrementează, când se scot elemente din stivă SP se incrementează, cu numărul respectiv deocteţi introduşi sau scoşi din stivă. Dacă în acest moment se execută o instrucţiune PUSH BX, se transferă în memorie laadresa SS:SP-1 partea "high" a registrului BX (BH), şi la adresa SS:SP-2 partea "low" aregistrului BX (BL), după care se decrementează cu 2 registrul SP. SP va indica din nouoctetul din vârful stivei. Dacă se efectuează o instrucţiune de scoatere din stivă, de exempluPOP CX, se execută următoarele acţiuni : CL <- octet de la adresa SS:SP CH <- octet de la adresa SS:SP+1 SP <- SP+2 După execuţia acţiunilor de mai sus, stiva se va găsi în situaţia anterioară execuţieiinstrucţiunii PUSH BX. 46
    • Datele sunt adresate în modul real folosind registrele DS şi ES pe post de selectori desegment. Există mai multe moduri de calcul al deplasamentului într-un segment de date, daracestea vor fi prezentate în sectiunea 4.1.6. Modul de lucru protejat oferă mecanisme de management şi protecţie a memoriei, şi unset de instrucţiuni asociate, microprocesorul I80286 lucrând în acest mod la întreaga sacapacitate. Pentru a intra în modul de lucru protejat, trebuie setat bitul PE din registrul MSW,utilizând instrucţiunea LMSW. Revenirea în modul real se face numai prin iniţializareaprocesorului. În modul de lucru protejat se poate adresa un spaţiu de memorie de 16Mb, utilizândliniile de adresă A0-A23, utilizatorul având la dispoziţie şi un spaţiu de memorie virtual de1Gb/task. La fel ca şi în modul real, pentru adresarea memoriei, se foloseşte un pointer de 32de biţi, constituit dintr-un selector de 16 biţi şi un offset de 16 biţi. Selectorul reprezintă însăun index (deplasament) într-o tabelă, de unde se obţine adresa de bază, pe 24 de biţi, asegmentului. La această adresă de bază se adună offset-ul, obţinându-se adresa fizică pe 24 debiţi. Mai multe amănunte legate de modul de lucru protejat sunt prezentate în secţiunea 4.1.7. 4.1.6. Adresarea datelor. Moduri de adresare. Operanzii instrucţiunilor pot fi conţinuti în registre, în memorie, în instrucţiune, sau înporturile de I/E. Instrucţiunile care au ca operanzi numai registre sunt rapide, deoareceinstrucţiunea se execută numai în interiorul microprocesorului, nemaifiind necesaretransferuri de date pe magistrală. Registrele pot fi atât operanzi sursă cât şi operanzidestinaţie. De exemplu, în instrucţiunea ADD CX,BX care adună conţinutul registrului BX laCX (CX <- CX+BX), registrul CX este atât operand sursă cât şi operand destinaţie. Operanzii conţinuti în instrucţiune se mai numesc şi operanzi imediaţi, şi sunt constantepe 8 sau 16 biţi, care sunt citite odată cu codul instrucţiunii. Operanzii imediaţi pot fi numaioperanzi sursă. Exemplu: MOV CX, 6 ; încarcă valoarea 6 în registrul CX (CX <- 6). Pentru operanzii aflaţi în memorie, microprocesorul face un calcul prealabil al adreseioperanzilor, mai precis al adresei locaţiilor de memorie în care se află operanzii. Practic,microprocesorul calculează adresa efectivă (AE), care este un deplasament faţă de începutulsegmentului în care se află operandul. Această adresă efectivă în conjuncţie cu unul dinregistrele de segment, şi în funcţie de modul de lucru al procesorului (real sau protejat) va daadresa fizică pe 20 de biţi în modul real, sau pe 24 de biţi în modul protejat, a operandului.După calculul adresei fizice, microprocesorul citeşte operandul din memorie, dacă este unoperand sursă, sau scrie operandul în memorie, dacă este un operand destinaţie. Adresa efectivă se calculează însumând trei componente: - un deplasament conţinut în instrucţiune, - un registru de bază ( BX sau BP), 47
    • - un registru index ( SI sau DI ). În funcţie de modul în care se face această sumă, se disting mai multe moduri deadresare a operanzilor conţinuţi în memorie: a) adresare directă - caz în care adresa efectivă este preluată din instrucţiune. Deci,AE este un deplasament conţinut în coada instrucţiunii, care este citit odată cu codulinstrucţiunii. În acest mod se adresează variabilele simple nestructurate. b) adresare bazată - AE este suma dintre un registru bază (BX sau BP) şideplasamentul din coada instrucţiunii. Adresarea bazată se foloseşte în cazul structurilor dedate, cum ar fi de exemplu înregistrările. Registrul de bază va conţine adresa de bază astructurii, iar deplasamentul va da distanţa în octeţi fată de baza structurii. În cazul în care nuse specifică un deplasament în instrucţiune, AE este egală numai cu conţinutul unuia dinregistrele bază, acest mod de adresare numindu-se adresare bazată implicită. Exemple : MOV AX, [BX+2] ; mută în AX cuvântul de la adresa fizică cu deplasa - ;-mentul BX+2, din segmentul pointat de registrul de ;segment DS (se obişnuieşte să se scrie condensat ;DS:BX+2 ). MOV AX, [BX] ; mută în AX cuvântul de la adresa fizică DS:BX. Notă: Dacă nu este specificat explicit în instrucţiune un registru de segment, în calcululadresei fizice se va folosi registrul DS, dacă se utilizează registrul BX pentru calculul adreseiefective, şi registrul de segment SS, dacă se utilizează registrul BP. Exemple: MOV AX, SS:[BX] ; mută în AX cuvânt de la adresa fizică SS:BX MOV AX, [BP] ; mută în AX cuvânt de la adresa SS:BP MOV AX, DS:[BP] ; mută în AX cuvânt de la adresa DS:BP c) adresare indexată - AE este suma dintre un registru index (SI sau DI) şi undeplasament din coada instrucţiunii. În cazul în care nu se specifică un deplasament îninstrucţiune, adresa efectivă se calculează doar pe baza registrului index, modul de adresarenumindu-se adresare indexată implicită. Acest tip de adresare se foloseşte în cazul tablourilor,deplasamentul indicând începutul tabloului, valoarea din registrul index selectând un elemental tabloului. Exemplu: MOV AX, ADR[SI] ; mută în AX cuvânt de la adresa ;fizică DS:SI+offset ADR d) adresare bazată şi indexată - AE este suma dintre un registru bază, un registruindex şi un deplasament. Registrul de bază este cel care dictează registrul de segment implicitce se foloseşte în calculul adresei fizice, dacă acesta nu este specificat explicit în instrucţiune.Adresarea bazată şi indexată se foloseşte în cazul unor structuri de date complexe, cum ar fiun tablou de înregistrări. Exemple : MOV AL, ADR[BX][ŞI] ; mută în AL octet de la adresa ; DS:offset ADR+BX+SI 48
    • MOV AX, SS:[BX+DI+offset ADR] ; mută în AX cuvânt de la adresa ; fizică SS:BX+DI+offset ADR e) adresarea şirurilor - În cazul instrucţiunilor ce prelucrează şiruri decaractere, microprocesorul foloseşte un mod specific de adresare. Astfel, registrul SI va dadeplasamentul pentru şirul sursă, iar registrul DI va da deplasamentul pentru şirul destinaţie.Registrul de segment folosit în cazul şirului sursă este DS, fiind posibilă şi utilizarea unui altregistru de segment, dacă este specificat în instrucţiune acest lucru. Şirul destinaţie trebuie săse afle în mod obligatoriu în segmentul pointat de registrul de segment ES. Exemple: MOVSB ; mută octet de la DS:SI la ES:DI după care SI<-SI+1, DI<- ; DI+1 dacă indicatorul DF=0, sau SI <- SI-1, DI <- DI-1 dacă ; indicatorul DF=1. MOVSW ; mută cuvânt de la adresa DS:SI la adresa ES:D, după care SI<-SI+2, ; DI <- DI+2 dacă DF=0, sau SI <- SI-2, DI <- DI-2 dacă DF=1. f) adresarea porturilor - microprocesorul 80286 adresează porturile de I/E în douămoduri. Prima modalitate de adresare o reprezintă adresarea directă, caz în care adresaportului de I/E cu care se va efectua o operaţie de citire sau scriere este un operand imediat pe8 biţi, conţinut în instrucţiune. Se pot adresa astfel porturile cu adresa cuprinsă între 0 şi 255.A doua modalitate este o modalitate de adresare indirectă prin intermediul registrului DX,adresa portului din/în care se va citi/scrie fiind conţinută în registrul DX. Se pot adresa astfelporturile cu adresa cuprinsă între 0 şi 65535. Exemple: IN AL, 40H ; citeşte în AL octet din portul de adresă 40H IN AX, 80H ; citeşte în AX cuvânt din portul 80H OUT 8EH, AL ; trimite conţinutul registrului AL în portul 8EH OUT DX, AX ; scrie conţinutul registrului AX în portul a cărui adresă se ; găseşte în DX. 4.1.7. Gestiunea şi protecţia memoriei la microprocesorul I80286. Conceptul de memorie virtuală. În modul de lucru protejat, programatorii folosesc acelaşi set de instrucţiuni (mai puţincâteva instrucţiuni specifice modului protejat), moduri de adresare şi tipuri de date ca şi înmodul real. Ceea ce deosebeşte fundamental modul protejat de modul real sunt facilităţilelegate de managementul memoriei, protecţie şi multitasking, care constituie suportuldezvoltării şi implementării unor sisteme de operare evoluate. Mecanismul de memorie virtuală dă iluzia programatorului că memoria principală(memoria internă a calculatorului, care poate fi adresată în mod direct de microprocesor) estefoarte mare. Practic, memoria calculatorului nu mai este "văzută" ca fiind organizată pe douănivele: memorie principală sau memorie internă, şi memorie secundară sau memorie externă. 49
    • Întreaga memorie a calculatorului este organizată astfel pe un singur nivel, spaţiul de adresă alfiecărui utilizator fiind compus din adrese formate ca o combinaţie de adrese în memoriaprincipală şi în memoria secundară. Programatorul foloseşte pentru adresarea memoriei adrese virtuale, o adresă virtualăspecificând o locaţie din memoria virtuală. Memoria virtuală este formată din ansamblulmemorie principală - memorie secundară. Deci, o adresă virtuală poate specifica o locaţie dinmemoria principală sau o locaţie din memoria secundară. Totalitatea adreselor virtualeformează spaţiul de adrese virtual. Spaţiul de adrese virtual este împărţit în segmente delungime variabilă. Pentru a adresa o locaţie în spaţiul de adresă virtual, se folosesc douăcomponente: o componentă care specifică segmentul din memoria virtuală, şi o componentăcare specifică deplasamentul în segment al locaţiei respective. Dacă segmentul referit nu se află în memoria principală, se generează o întrerupere aactivităţii, şi se va aduce segmentul respectiv din memoria secundară în memoria principală,după care se revine din întrerupere, accesând locatia respectivă, segmentul fiind acumrezident în memoria principală. Deci, prin acest mecanism de adresare virtuală, programatoruleste degrevat de sarcina gestiunii memoriei. El nu trebuie să ştie dacă un segment se află înmemoria principală sau în memoria secundară, dacă se află în memoria secundară să aducăsegmentul în memoria principală etc., aceste sarcini fiind preluate de sistemul de operare,programatorul având la dispoziţie un spaţiu de adresă virtual mult mai mare decât spaţiuladreselor fizice (dimensiunea memoriei principale), dar cu care poate lucra la fel ca şi când ardispune de o memorie principală foarte mare. Pentru a ţine evidenţa segmentelor, seconstruieşte o tabelă a segmentelor în memoria principală, în care sunt trecute toateinformaţiile despre fiecare segment din memoria virtuală: adresa de bază, dimensiuneasegmentului, dacă este sau nu rezident în memoria principală, drepturi de acces etc. Încărcarea unui segment din memoria secundară în memoria principală se face în loculunui alt segment sau al mai multor segmente, care vor fi scoase din memoria principală şitransferate în memoria secundară, conform unui anumit algoritm. De exemplu, va fi scos dinmemoria principală segmentul (sau segmentele) cel mai puţin recent utilizat, sau o altăstrategie poate propune scoaterea segmentului cel mai puţin utilizat (cu numărul cel mai micde accese la segment). Notiunea de protecţie a memoriei desemnează totalitatea controalelor efectuate desistemul de operare în scopul asigurării utilizării corecte a informatiei, împiedecândpropagarea erorilor de programare, ce pot duce la alterarea, distrugerea sau pierdereainformaţiei. Pentru implementarea mecanismelor de protecţie, fiecare task se execută cu unanumit nivel de privilegiu. Microprocesorul 80286 recunoaşte 4 nivele de privilegiu, şi nupermite ca un task cu un anumit nivel de privilegiu să acceseze date la un nivel maiprivilegiat. Aceasta permite detectarea anumitor erori, uşurând dezvoltarea şi menţinereaprogramelor. 50
    • Conceptul de task este de asemenea important în gestiunea memoriei. Task-ul sedefineşte la nivel de execuţie, reprezentând execuţia unui program legată de contextul fiecăruiutilizator. De exemplu, dacă mai mulţi utilizatori din sistem utilizează acelaşi program deeditare, se va crea pentru fiecare utilizator un task separat, fiecare task cu propriul săucontext. Fiecărui task i se ataşează un spaţiu de adresare, numit spaţiu de adresare local. Înacelaşi timp, toate taskurile trebuie să poată avea acces la seviciile sistemului de operare, labiblioteci etc. Se defineşte astfel un spaţiu de adresare global, care este partajabil de cătretoate taskurile. În modul de lucru protejat, taskurile lucrează numai cu adrese virtuale,neavând acces la adresele fizice generate de microprocesor. O adresă care apare într-un program are două componente: un selector de segment de 16biţi şi un deplasament de 16 biţi. Această adresă (sau pointer) de 32 de biţi se transformădiferit în adresă fizică în funcţie de modul de lucru al procesorului; real sau protejat. În modulde lucru protejat selectorul de segment are următoare structură : Câmpul RPL - Requested Priviledge Level - specifică nivelul de prioritate alselectorului. Bitul TI specifică spaţiul de adresare local dacă TI=1, sau spaţiul de adresareglobal dacă TI=0. Biţii 3-15 ai selectorului specifică un index în tabela locală de descriptori asegmentelor dacă TI=1, sau un index în tabela globală de descriptori dacă TI=0. Este permisastfel accesul la 8192 (213) segmente locale şi 8192 segmente globale . Ţinând cont de faptulcă un segment are dimensiunea maximă de 64Kb, rezultă o capacitate de adresare virtuală de1Goctet pe task (2x213x64Kb). Indexul reprezintă, astfel, un pointer într-o tabelă dinmemorie, unde se găseşte adresa de bază pe 24 de biţi a segmentului în care se doreşteaccesul. Corespunzător celor prezentate anterior, există două tipuri de tabele cu descriptori: - tabela cu descriptori globali - GDT (Global Descriptor Table), care descrie spaţiul de adresare global şi - tabele cu descriptori locali - LDT (Local Descriptor Tables), fiecare tabelă locală descriind spaţiul de adresare local al unui task. Fiecare tabelă conţine maximum 8192 de puncte de intrare în tabelă, fiecare intrare întabelă, compusă din 8 octeţi, cuprinde un descriptor de segment ce conţine, în principal,adresa de bază a segmentului, limita segmentului, drepturile de acces etc. Pentru a accesa în memorie tabelele de descriptori, microprocesorul I80286 esteprevăzut cu două registre speciale: GDTR - Global Descriptor Table Register - carememorează adresa de bază şi limita tabelei globale, şi LDTR - Local Descriptor TableRegister. Deoarece există mai multe tabele locale, câte una pentru fiecare task, aceste tabelelocale sunt privite ca segmente de memorie speciale, numite segmente de sistem, şi care sunt 51
    • descrise prin intermediul descriptorilor de sistem. Deci registrul LDTR se va schimba lafiecare comutare de task, registrul LDTR conţinând selectorul de segment (pe lângă baza şilimita tabelei locale curente), care indică segmentul sistem ce conţine tabela locală a taskuluirespectiv. Mai precis, registrul GDTR este încărcat cu adresa de bază şi limita tabelei globaleutilizând instrucţiunea LGDT, registrul LDTR fiind încărcat cu instrucţiunea LLDT reg16 sauLLDT mem16, unde reg16 şi mem16 sunt valori pe 16 biţi, conţinute într-un registru sau înmemorie, care selectează intrarea în tabela globală de descriptori, ce conţine descriptorulsistem pentru tabela locală ce se doreşte a fi accesată. Din descriptorul respectiv, procesorulva încărca în LDTR adresa de bază şi limita tabelei locale curente. Deci, în plus faţă de registrele prezentate în figura 4.2, microprocesorul I80286 maiconţine 4 registre de management a memoriei, prezentate mai jos : unde TR (Task Register) este registrul taskului, iar IDTR (Interrupt Descriptor TableRegister) este un registru, cu ajutorul căruia se accesează tabela descriptorilor de întrerupere(vezi secţiunea 4.1.8). În concluzie, tabelele de descriptori pot conţine descriptori de segment sau descriptoride sistem. Descriptorii de segment pot fi descriptori de segment de cod, care referă segmentece conţin instrucţiuni, şi descriptori de segment de date, care fac referinţă la segmentele ceconţin date sau zone de stivă. Un descriptor de segment de date are următoarea structură : Ultimul cuvânt din descriptor este rezervat de firma INTEL pentru dezvoltări ulterioare,fiind de fapt folosit de 80386. La 80286 acest cuvânt trebuie iniţializat cu zero. Câmpurile octetului ce cuprinde drepturile de acces au următoarele semnificaţii: P - bit de prezenţă - este poziţionat în 1 dacă segmentul adresat de descriptor se află înmemoria principală. Dacă P=0, segmentul nu se află în memoria principală, un acces lasegmentul respectiv generând o excepţie, care va realiza încărcarea segmentului din memoriaexternă în memoria internă. 52
    • DPL - Descriptor Priviledge Level - nivelul de prioritate al segmentului accesat dedescriptor. S=1 - indică un descriptor de segment. Pentru descriptorii de sistem S=0. E=0 - indică un descriptor de segment de date, în cazul descriptorilor de segment de codE fiind egal cu 1. ED - Expansion Direction - dacă ED=0, deplasamentul în segment trebuie să fie maimic sau egal decât limita segmentului şi mai mare decât zero. Dacă ED=1, deplasamentultrebuie să fie mai mare decât limita segmentului specificată în descriptor şi mai mic decâtFFFFH. W - Writable - dacă W=1 segmentul este accesibil atât în citire cât şi în scriere (Read-Write), dacă W=0 segmentul poate fi doar citit şi nu poate fi modificat. A - Accessed - dacă A=0 segmentul nu a fost accesat, dacă A=1 segmentul a fostaccesat. Acest bit este folosit de sistemul de operare pentru a stabili care segmentele sunt maiutilizate, şi a elabora strategii de alocare a memoriei. Baza 0-15 şi Baza 16-23 conţin cei 24 de biţi ai adresei de bază a segmentului. Se poateastfel modifica amplasamentul segmentelor în memorie, modificând numai adresa de bază asegmentelor, ceea ce constituie suportul relocatabilităţii programelor. Un program esterelocabil dacă poate fi rulat independent de adresa de încărcare a programului în memorie. Limita reprezintă un cuvânt sau octet din segment, ce specifică limita superioară sauinferioară a segmentului, în funcţie de bitul ED. Ceea ce se modifică în descriptorul de segment de cod, faţă de descriptorul de segmentde date, este numai octetul ce conţine drepturile de acces. Astfel, bitul E=1, bitul ED devine C(Conforming) şi bitul W devine R (Readable). Dacă R=0, conţinutul segmentului nu poate fidecât executat, dacă R=1 segmentul este accesibil atât în execuţie cât şi în citire. Când C=0procedura apelată din segmentul de cod respectiv se execută cu nivelul de privilegiu specificatde DPL în descriptorul de segment, când C=1 procedura apelată se execută cu nivelul deprivilegiu al programului apelant (segment cu conformare). Mecanismul de protecţie, implementat hard pe cip, poate localiza, izola şi preveni unnumăr mare de erori de program, atât în timpul proiectării cât şi în timpul utilizării unuiprogram. Toate testele referitoare la protecţie se realizează în paralel cu execuţia programului,ceea ce nu afectează performanţele sistemului. Se poate păstra astfel funcţionarea corectă asistemului, atunci când anumite programe încearcă să efectueze unele operaţii interzise. Principalele tipuri de protecţie implementate de 80286 sunt : - izolarea software-ului de sistem de software-ul de aplicaţie al utilizatorului, - izolarea utilizatorilor între ei, - verificarea accesului la fiecare din obiectele definite în mod protejat (segmente,nivele, taskuri, etc.). 53
    • Primul tip de protecţie se realizează prin utilizarea a 4 niveluri de prioritate, nucleulsistemului de operare şi programele de sistem executându-se pe cele mai prioritare niveluri, întimp ce programele utilizatorilor se vor executa pe nivelurile mai puţin prioritare. O eroare deprogram a unui utilizator nu va afecta, astfel, sistemul de operare. Prin izolarea utilizatorilor între ei, se previne situaţia când o eroare a unui programutilizator poate afecta buna funcţionare a altui program utilizator, erori care sunt greu dedepistat. În ce priveşte al treilea tip de protecţie, microprocesorul I80286 face o verificare afolosirii corespunzătoare a obiectelor la fiecare acces la memorie. De exemplu, segmentele dedate nu pot fi executate, segmentele de cod nu pot fi modificate etc. Informaţia utilizată de mecanismul de protecţie se referă la: - tipul segmentului, - atributele segmentului (sau drepturile de acces), - nivelul de prioritate, - limita segmentului. Mecanismul de protecţie acţionează de două ori: - la încărcarea registrului de segment care va selecta un segment, şi - la fiecare acces în segmentul selectat. La încărcarea registrelor de segment se testează dacă descriptorul este valid (indexul dinregistrul de segment nu pointează în afara tabelei cu descriptori), dacă descriptorul esteaccesibil de pe nivelul de prioritate de pe care se execută programul, dacă segmentul indicatde descriptor este prezent în memorie, dacă tipul segmentului corespunde cu registrul desegment (de exemplu, nu se poate încărca registrul SS cu un index către un descriptor desegment cu atributul Read-Only) etc. În cazul unui acces în cadrul segmentului referit de un registru de segment, se verificădacă nu s-a depăşit limita segmentului şi dacă accesul corespunde tipului de segment. Deexemplu, într-un segment de date cu atributul citeşte-numai sau în segmentele de cod nu estepermisă scrierea. Orice violare a unei protecţii va determina apariţia unei excepţii. Excepţiile, ca şiîntreruperile, sunt modalităţi de transfer al controlului, dar care apar ca rezultat direct alexecuţiei instrucţiunilor programului, spre deosebire de întreruperi care apar independent deexecuţia normală sau anormală a programului curent. O excepţie apare în condiţiile în careexecuţia unei instrucţiuni nu se poate termina normal. Deşi cauzele lor diferă, întreruperile şiexcepţiile utilizează acelaşi mod de transfer al controlului. Se obişnuieşte ca excepţiile să fienumite tot întreruperi. Tot o manifestare a mecanismului de protecţie este şi separarea spaţiilor de adresă întreutilizatori. Fiecare task utilizator are o tabelă locală cu descriptori - LDT, conţinutul tabeleilocale curente fiind schimbat la fiecare comutare de task. 54
    • În ce priveşte prioritatea, microprocesorul 80286 recunoaste 4 niveluri de prioritate,numerotate de la 0 la 3, nivelul 0 fiind cel mai prioritar nivel, iar nivelul 3 cel mai puţinprioritar nivel. Pentru manevrarea nivelelor de prioritate se definesc următoarele noţiuni: - CPL (Current Priviledge Level) - nivelul de prioritate curent, ce reprezintă nivelul deprioritate al segmentului de cod ce se execută. Este codificat de ultimii 2 biţi din registrul CS. - DPL (Descriptor Priviledge Level) - nivelul de prioritate al descriptorului, cereprezintă nivelul de prioritate al segmentului descris de un descriptor de segment. Se găseşteîn biţii 5,6 ai octetului cu drepturi de acces din descriptorul de segment. - RPL (Requested Priviledge Level) - nivelul de prioritate cerut, ce reprezintă nivelulde prioritate al unui selector de segment, fiind codificat de ultimii 2 biţi ai selectorului desegment. - EPL (Effective Priviledge Level) - nivelul de prioritate efectiv, EPL = max (RPL,CPL). Reguli generale de utilizare a nivelelor de prioritate, implementate de I80286: - se pot realiza accese la segmente de date al căror nivel de prioritate (DPL) esteacelaşi sau mai mare decât CPL. - DPL-ul unui segment de stivă trebuie să fie egal cu CPL. - accesul direct la segmentele de cod este permis numai pentru segmente de cod cuacelaşi nivel de prioritate. Deci, în cazul unei instrucţiuni de transfer al controlului CALL sauJMP, CPL trebuie să fie egal cu DPL-ul segmentului de cod în care se va transfera controlul(segmentul adresei destinaţie). - se poate accesa un segment de cod mai privilegiat prin intermediul porţilor. - segmentele cu conformare sunt tratate după reguli speciale. Poarta este un tip special de descriptor, cu lungimea de 4 cuvinte, cu o structurăoarecum asemănătoare cu cea a descriptorilor de sistem, utilizat pentru a redirecta transferulcontrolului către segmente de cod de pe niveluri diferite de prioritate. În afara porţilor de apel(call gates), prin intermediul cărora se accesează un segment de cod destinaţie cu un nivel deprivilegiu diferit de nivelul de privilegiu al segmentului de cod sursă (de unde se facetransferul controlului), există porţi de întrerupere (interrupt gates sau trap gates), folositepentru a activa rutinele de întrerupere la apariţia unor întreruperi hardware sau software.Descriptorii porţilor de apel sunt stocaţi în GDT, ceilalţi sunt stocaţi în IDT (InterruptDescriptor Table). 4.1.8. Întreruperile microprocesorului I80286 Întreruperile sunt modalităţi de transfer al controlului. La apariţia unei întreruperi,procesorul întrerupe execuţia programului curent, şi execută în continuare rutina de tratare aîntreruperii respective, până când întâlneşte instrucţiunea IRET, care este instrucţiunea de 55
    • revenire din întrerupere. După execuţia instrucţiunii IRET, procesorul reia execuţiaprogramului întrerupt de la instrucţiunea imediat următoare instrucţiunii ce se executa înmomentul apariţiei întreruperii. Fiecare rutină de întrerupere are asociată o adresă, care este adresa primei instrucţiunidin cadrul rutinei de tratare a întreruperii. Orice rutină de întrerupere se termină cuinstrucţiunea IRET. Adresele tuturor rutinelor de tratare a întreruperilor sunt trecute într-o tabelă dinmemorie. În modul real sunt rezervaţi pentru această tabelă primii 1024 de octeţi din memorie(de la 00000H la 003FFH ), ce memorează o tabelă cu 256 de intrări, numită tabela vectorilorde întrerupere. Deci, în modul real sunt disponibile 256 de întreruperi, fiecare intrare în tabelă(de 4 octeţi) conţinând adresa rutinei de tratare a întreruperii corespondente, în formatulsegment:offset. Cuvântul de la adresa mai mică din fiecare intrare în tabelă conţinedeplasamentul în segment al primei instrucţiuni a rutinei de tratare a întreruperii, cuvântul dela adresa mai mare conţinând cei mai semnificativi 16 biţi ai adresei de bază a segmentului încare se află rutina de întrerupere. În modul de lucru protejat, sunt disponibile de asemenea 256 de întreruperi, dar rutinelede tratare a întreruperilor sunt accesate prin intermediul porţilor. Adresele rutinelor deîntrerupere sunt trecute într-o tabelă, numită tabela descriptorilor de întrerupere - IDT(Interrupt Descriptor Table ), accesată prin intermediul registrului IDTR - InterruptDescriptor Table Register, ce conţine adresa de bază şi limita tabelei IDT. Fiecare intrare întabela IDT va conţine 8 octeţi, câţi sunt necesari pentru un descriptor de poartă, dimensiuneatabelei fiind ajustată cu ajutorul câmpului Limită din IDTR. Înainte de a intra în modulprotejat, programul de iniţializare, lucrând în modul real, va trebui să completeze IDT şiGDT, şi să încarce baza şi limita tabelelor respective în IDTR şi GDTR. În cazul apariţiei unei întreruperi în modul real, procesorul întrerupe programul curent,salvează registrele în stivă, serveşte întreruperea, după care restaurează registrele din stivă,continuând programul întrerupt. În modul protejat, nu este suficient să se salveze numairegistrele, ci se salvează întreaga stare a taskului (registrele plus alte informaţii ) într-unsegment de sistem, numit segment de stare a taskului - TSS (Task State Segment). Mai precis, la sosirea unei întreruperi (interne sau externe) în modul real,microprocesorul efectueazã urmatoarele: - salvează în stivă registrul indicatorilor de condiţie şi stare, CS-ul şi IP-ul instrucţiunii următoare, în această ordine; - se încarcă IP cu cuvântul de la adresa 0000:n*4 şi CS cu cuvântul de la adresa 0000:n*4+2, unde n este numărul întreruperii (un număr întreg între 0 şi 255); - şterge IF şi TF; - se execută instrucţiunile din rutina de întrerupere, până când se întâlneşte instrucţiunea IRET; 56
    • - la întâlnirea instrucţiunii IRET se revine din întrerupere, restaurând din stivă IP, CS şi registrul indicatorilor de condiţie şi stare. Stiva trebuie să se găsească în aceeaşi stare ca la apariţia întreruperii. Este indicat ca laînceputul unei rutine de întrerupere să se salveze registrele microprocesorului în stivă,urmând a fi restaurate înainte de execuţia instrucţiunii IRET. Atunci când se intră într-orutina de tratare a întreruperii, indicatorul IF este şters automat, de aceea pentru a activa dinnou întreruperile externe, este indicat ca rutina de tratare a întreruperii să înceapă cu oinstrucţiune STI, aceasta numai dacă rutina de întrerupere nu conţine secvenţe critice care nupot fi întrerupte. Pe durata execuţiei secvenţelor critice se invalidează IF. Microprocesorul I80286 are trei tipuri de întreruperi: - întreruperi hardware, - întreruperi software, - excepţii. Întreruperile hardware se mai numesc şi întreruperi externe, întreruperile software şiexcepţiile fiind numite şi întreruperi interne. Întreruperile hardware sunt generate de dispozitive hardware, şi pot fi la rândul lor dedouă tipuri: - întreruperi mascabile şi - întreruperi nemascabile. Întreruperile hardware mascabile sunt generate prin aplicarea unui "1" logic pe intrarea(pinul) INTR a microprocesorului. Microprocesorul va întrerupe programul curent şi vaexecuta o rutină de tratare a întreruperii, numai dacă indicatorul IF din registrul indicatorilorde condiţie şi stare este 1. Dacă IF=0, procesorul continuă nestingherit execuţia programuluicurent. Indicatorul IF poate fi poziţionat în 0 sau 1 prin program. Prin invalidareaîntreruperilor externe mascabile, poziţionând IF în zero, se previne întreruperea unor secvenţecritice de program, care nu pot fi întrerupte. Dacă întreruperile externe sunt validate, după execuţia instrucţiunii curente,microprocesorul va efectua recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare aîntreruperii. Majoritatea dispozitivelor periferice (imprimanta, hard disk, tastatură etc.)folosesc mecanismul de întrerupere al microprocesorului. De exemplu, tastatura va întrerupemicroprocesorul atunci când este apăsată o tastă, în rutina de întrerupere corespunzătoaretastaturii, procesorul preluând codul tastei apăsate, după care continuă programul întrerupt.Deoarece există mai multe dispozitive hardware care pot genera întreruperi în acelaşi timp,este necesară existenţa unui dispozitiv, numit dispozitiv controler de întreruperi, care permitedispozitivelor hardware să întrerupă microprocesorul conform unei ordine de prioritate. Dacăexistă cel puţin o cerere de întrerupere activă, din partea unui dispozitiv hardware ce poategenera întreruperi, dispozitivul controler de întreruperi va pune 1 pe linia INTR, întrerupândprocesorul, după care, atunci când procesorul efectuează recunoaşterea întreruperii, în cadrul 57
    • unor cicli de recunoaştere a întreruperii, va pune pe magistrala de date vectorul de întrerupere(un număr între 0 şi 255) al dispozitivului hardware cu o cerere de întrerupere activă,cel maiprioritar. După citirea vectorului de întrerupere de pe magistrala de date, microprocesorul vaprelua din intrarea în tabela vectorilor de întrerupere sau din IDT, adresa rutinei de tratare aîntreruperii corespunzătoare dispozitivului hardware ce a generat întreruperea (intrarea întabelă va avea numărul egal cu vectorul de întrerupere). Întreruperile externe nemascabile sunt generate prin aplicare unui "1" logic pe intrareaNMI (NeMascable Interrupt), aceste întreruperi fiind asociate cu apariţia unor evenimentedeosebite, cum ar fi căderea tensiunii de alimentare, când procesorul trebuie să executeanumite acţiuni de urgenţă. Aceste întreruperi sunt tratate imediat ce apar, nefiind posibilăinvalidarea lor. Adresa rutinei de tratere a întreruperilor nemascabile se află în intrareanumărul 2 din tabela vectorilor de întrerupere (sau IDT), procesorul transferând automatcontrolul la această rutină, imediat ce recepţionează un 1 logic pe intrarea NMI. Întreruperile software sunt generate prin execuţia unei instrucţiuni INT n, unde n esteun număr întreg cuprins între 0 şi 255. După execuţia acestei instrucţiuni, procesorul vatransfera controlul la rutina de întrerupere a cărei adresă se găseşte în intrarea cu numărul n,din tabela vectorilor de întrerupere sau tabela descriptorilor de întrerupere. De exemplu,instrucţiunea INT 2 va executa aceeaşi rutină de întrerupere care se execută şi în cazulapariţiei unei întreruperi externe nemascabile. Excepţiile sunt întreruperi generate de către procesor însuşi. În tratarea excepţiilor,microprocesorul nu face distincţie între o excepţie şi o întrerupere software cu numărul egalcu cel al excepţiei respective. Exemple de exceptii: - division by zero - procesorul generează automat o întrerupere cu numărul 0 (deci lafel ca şi instrucţiunea INT 0), atunci când instrucţiunile de împărţire DIV şi IDIV încearcă săefectueze o împărţire la zero. - overflow detection - dacă indicatorul OF este setat în urma unei instrucţiuni,procesorul execută o întrerupere cu numărul 4. - single step - procesorul execută întreruperea numărul 1, după fiecare instrucţiuneexecutată, dacă indicatorul TF este setat. - coprocessor not prezent - procesorul execută automat o întrerupere cu numărul 7,dacă unitatea instrucţiunilor detectează o instrucţiune pentru coprocesorul matematic şi acestanu este prezent. 4.2. Microprocesorul I80386 4.2.1. Caracteristici generale 58
    • Creşterea remarcabilă a vitezei de calcul a microprocesorului 80386, faţă depredecesorul său 80286, se datorează în principal lucrului pe 32 de biţi. I80386 are omagistrală de date de 32 de biţi, o magistrală de adrese de 32 de biţi, cu care poate adresa, înmod direct, o memorie de 4Gb şi o memorie virtuală de 64Tb pe task. Spaţiul de intrare /ieşire este limitat totuşi la 64 Kporturi, la fel ca la 80286, în schimb pe lângă porturi de 8 sau16 biţi, I386 poate accesa şi porturi de 32 de biţi. Microprocesorul I80386 are 3 moduri de lucru: real, protejat şi virtual 8086. În modulreal, 80386 poate adresa o memorie de 1Mb, lucrând ca un 8086 mult mai rapid. Modulprotejat I80386 este compatibil cu modul protejat 80286, dar din cauza spaţiului de memoriemult mai mare (4Gb în loc de 16Mb), descriptorii de segmente şi porţi au fost puţinmodificaţi, păstrându-se compatibilitatea. Spaţiul de adresă virtual, de 64Tb, este împărţit însegmente cu dimensiunea maximă de 4Gb. Deci, în modul de lucru protejat I386,dimensiunea maximă a unui segment nu mai este limitată la 64Kb. În modul de lucru virtual8086, I386 lucrează ca un microprocesor 8086, beneficiindu-se în schimb de toate facilităţilede management şi protecţie oferite de I386. I80386 este livrat într-o capsulă de formă pătrată, cu 132 de pini, de forma următoare: Figura 4.2.1. Capsula microprocesorului I386 Pe lângă extensia registrelor interne la 32 de biţi, în plus faţă de 80286, I386implementează o unitate de paginare a memoriei, este prevăzut cu facilităţi hardware pentrudepanarea programelor, şi cu posibilitatea de efectuare a unui autotest al componentelorinterne ale microprocesorului, la punerea sub tensiune. Setul de instrucţiuni al microprocesorului I386 este un superset al instrucţiunilormicroprocesoarelor 8086, 80286, majoritatea instrucţiunilor fiind identice cu cele de la 80286,excluzând instrucţiunile care exersează caracteristicile suplimentare ale microprocesoruluiI80386 faţă de 80286. Instrucţiunile procesorului I80386 sunt capabile, însă, să manipulezedate pe 32 de biţi. Iniţializarea sau resetarea procesorului I386 se face prin aplicarea unui "1" logic pepinul RESET al procesorului. I386 va intra în modul real, prima instrucţiune executată fiind 59
    • cea de la adresa FFFFFFF0h. După prima instrucţiune, care de regulă este o instrucţiune JMPsau CALL, pe liniile de adresă A0-A31 vom găsi numai adrese sub 1Moctet, caracteristicemodului real. După resetare, procesorul poate fi forţat să execute un autotest, prin ţinereasemnalului BUSY de la unul din pinii procesorului, pe nivel coborât, pe durata a cel puţin 8perioade de ceas sistem după căderea semnalului de RESET în "0". Acest autotest se executăîn 219 perioade de ceas (aproximativ 20ms la o frecventă a ceasului de 25MHz) şi, dacă nu afost detectat nici un defect, după autotest registrul EAX va conţine valoarea 0. Orice altăvaloare diferită de 0 indică un defect în interiorul cipului. I80386 este prevăzut cu un coprocesor matematic – I80387 - mult mai performant decât80287. 4.2.2. Registrele microprocesorului I80386 Figura 4.2.2. Registrele microprocesorului I80386 60
    • Registrele generale EAX, EBX, ECX, EDX pot fi folosite atât ca registre pe 32 de biţi,cât şi ca registre pe 16 sau 8 biţi. De exemplu, EAX este un registru pe 32 de biţi, AX conţinecei mai puţin semnificativi 16 biţi ai registrului EAX, AH cei mai semnificativi 8 biţi airegistrului AX, iar AL cei mai puţin semnificativi biţi ai registrului EAX sau AX. De fapt,pentru toate registrele pe 32 de biţi, care reprezintă extensii ale registrelor microprocesorului80286, partea mai puţin semnificativă a acestora poate fi accesată cu acelaşi nume ca şi la80286 sau 8086. Registrele de segment sunt registre pe 16 biţi, şi sunt folosite în acelaşi modca şi la 80286. În plus, sunt disponibile două noi registre de segment, FS şi GS, pentru aaccesa segmente de date suplimentare, la fel ca şi registrul ES. Segmentele de memorie audimensiunea maximă de 4Gb, şi nu 64Kb ca la 80286. Structura unui descriptor de segment a fost păstrată, biţii rezervaţi la 80286 fiind folosiţiacum, şi reflectând modul de lucru cu adrese pe 32 de biţi a microprocesorului I80386. Figura 4.2.3. Structura descriptorului de segment la I80386 Octetul cel mai semnificativ al descriptorului de segment conţine biţii 24-31 ai adreseide bază a segmentului de memorie. Daca bitul G - Granularity - este 0, câmpurile Limită 15-0şi Limită 19-16 indică lungimea segmentului în octeti; dacă G este 1, aceste câmpuri indicălungimea segmentului în pagini, fiecare pagină de memorie având o dimensiune fixă de 4Kb(4096 de octeţi). Cu bitul G setat, spaţiul de adrese logice (sau spaţiul de adrese virtuale) are odimensiune de 64Tb. Bitul DB - Default / Big - egal cu 0 forţează I386 să folosească operanzisau date pe 16 biţi, pentru a păstra compatibilitatea cu microprocesoarele anterioare dinfamilie. Bitul r este un bit rezervat de firma Intel, bitul vf este un bit neutilizat şi nerezervat,fiind folosit în mod liber de sistemele de operare. Descriptorii de porţi au fost schimbaţi, de asemenea pentru a reflecta noua arhitecturăpe 32 de biţi, păstrând însă compatibilitatea. Registrul indicatorilor de condiţie şi stare a fost extins pe 32 de biţi, adăugându-se încădoi noi biţi: VM - Virtual Mode - ce trebuie setat prin program, pentru ca I386 să intre înmodul virtual 8086, lucru posibil utilizând o poartă, şi RF - Resume Flag - ce controleazăreluarea unui program după un punct de întrerupere stabilit în registrele de depanare. Microprocesorul 80286 are numai un singur registru de control - MSW, folosit pentru acontrola modul protejat. La I386, registrul MSW al microprocesorului 80286 este unul şiacelaşi registru cu partea mai puţin semnificativă, de 16 biţi, a registrului CR0. 61
    • Bitul PG activează (PG=1) sau dezactivează (PG=0) unitatea de paginare a unităţii demanagement a memoriei. Bitul r este un bit rezervat, şi nu trebuie schimbat atunci când seîncarcă registrul MSW cu instrucţiunea LMSW. Figura 4.2.4. Registrele de control ale microprocesorului I80386 Registrele de management a memoriei: TR, LDTR, GDTR, IDTR sunt identice şiîndeplinesc aceleaşi funcţii ca la 80286. Registrele de test TR6 şi TR7 sunt folosite pentrutestarea unui buffer intern, numit " Translation Lookaside Buffer " - TLB, folosit de unitateade paginare. Depanarea programelor într-un sistem de operare multitasking este o problemă dificilă,deoarece un program trebuie investigat în timp ce se rulează şi alte programe, a căror execuţienu trebuie afectată de alterarea registrelor, puncte de întrerupere ("breakpoints") sau alteefecte ale depanării programului respectiv. I386 face posibilă depanarea eficientă aprogramelor şi în modul protejat şi virtual 8086, introducând 8 registre de depanare DR0-DR7, care conţin (în DR0- DR3) adresa fizică a maximum 4 puncte de întrerupere aleprogramului, plus informaţii de stare şi control a depanării. 4.2.3. Paginarea memoriei Cu registre de segment de 16 biţi şi deplasamente în segment de 32 de biţi, spaţiul deadresă virtual sau logic al microprocesorului I80386 este de 64Tocteţi / task, dimensiuneamaximă a unui segment de memorie fiind de 4Gocteţi, care este de fapt şi dimensiuneateoretică maximă a memoriei interne ce poate fi adresată, în mod direct, de I80386. Înrealitate, dimensiunea memoriei interne cu care sunt echipate calculatoarele cu I80386 estemult mai mică, tipic 4Mb. Dacă gestiunea memoriei ar fi efectuată numai la nivel de segment ca la 80286, practicnu s-ar putea folosi segmente mai mari decât capacitatea memoriei interne, cea mai mareparte a spaţiului de adresă virtual rămânând nefolosită (aproximativ 99.9% din spaţiul deadresă virtual, ce reprezintă raportul dintre 4Mb şi 4Gb). În concluzie, a fost propusă o nouămetodă de gestiune a memoriei: paginarea. 62
    • Se numeste adresă liniară, adresa obţinută prin combinarea adresei de bază asegmentului cu un deplasament în segment. Spaţiul de adresă obţinut se numeşte spaţiu deadresă liniar, de dimensiune 4Gb (dimensiunea teoretică maximă a memoriei interne). Acestspaţiu liniar este împărţit într-un milion de pagini de câte 4Kb fiecare, numai anumitor paginicorespunzându-le adrese fizice de memorie, în spaţiul de memorie fizic existent (de regulă4Mb). Astfel, segmentele de memorie de 4Gb, şi care pot fi de dimensiune variabilă, suntîmpărţite în pagini de memorie de lungime fixă, de 4Kb fiecare, gestiunea memoriei făcându-se la nivel de pagină. Dacă o pagină nu se află în memoria fizică, sau cu alte cuvinte adresaliniara nu a fost convertită într-o adresă fizică, sistemul de operare va trebui să aducă paginarespectivă din memoria secundară (de obicei hard disk-ul) în memoria internă, în urma uneiexcepţii "page not prezent". Figura 4.2.5. Structura adresei liniare cu paginare Corespondenţa între adresele liniare şi adresele fizice se realizează astfel: dacăpaginarea este activă, cei mai semnificativi 10 biţi ai adresei liniare indică numărul tabeleiconţinută în directorul de tabele, următorii 10 biţi indică numărul paginii în cadrul tabeleiselectate anterior, ultimii 12 biţi indicând deplasamentul în cadrul paginii respective de 4Kb (212 ). Această organizare pe două nivele a tabelelor de pagini este necesară, deoareceorganizând cele un milion de pagini pe un singur nivel, toată memoria internă, de 4Mb, ar fiocupată cu tabelele de pagini. Fiecare intrare într-o tabelă de pagini, sau în directorul detabele, conţine 4 octeti, numai directorul de tabele (4Kb) fiind reţinut tot timpul în memoriainternă. Adresa sa de bază este memorată în CR3. Figura 4.2.6. Structura intrării într-o tabelă de pagini Bitul P indică dacă pagina este prezentă (P=1) sau nu (P=0) în memoria internă. Dacăpagina este prezentă, cei mai semnificativi 20 de biţi ai intrării - page frame address -înmulţiţi cu 4096 vor da adresa de bază pe 32 de biţi a paginii, la care se va adăuga offset-uldin adresa liniară prezentată în figura 4.2.5, rezultând adresa fizică pe 32 de biţi a obiectuluide memorie ce se doreşte a fi accesat. Daca P=0, o rutină specializată a sistemului de operareva trebui să aducă pagina respectivă în memorie, într-o zonă liberă, sau să elibereze anterior o 63
    • zonă de memorie de 4Kb, prin transferarea unei pagini din memoria principală în memoriasecundară. Datorită dimensiunii reduse a paginilor, acestea pot fi transferate mult mai rapidîntre memoria principală şi memoria secundară sau invers, decât segmentele, în cazulgestiunii bazate numai pe segmente. Deşi, datorită introducerii paginării, sunt necesare calcule suplimentare, pentru a aflaadresa fizică, aceasta nu duce neapărat la întârzieri, deoarece I80386 conţine o memorie cacherapidă unde sunt memorate tabelele de pagini, numită "translation lookaside buffer" - TLB. Ceilalţi biţi dintr-o intrare în tabelă au următoarele semnificaţii: D - Dirty - dacă D=0 pagina nu a fost modificată de la ultima încărcare din memoriasecundară în memoria principală, aşa că, la eliberarea zonei de memorie respective, aceastăpagină nu e necesar sa fie transferată pe disc. D=1 indică o pagină cu conţinutul modificat. A - Accessed - este setat când procesorul accesează o pagină, şi ajută sistemul deoperare să determine care pagini de memorie sunt mai puţin folosite, pentru a fi înlocuiteeventual când va fi cazul. U/S - User/Supervisor - nu există decât două niveluri de protecţie la nivel de pagină:utilizator pentru U/S=1 (CPL=3), şi supervisor pentru U/S=0 (CPL=0,1,2). R/W - Read/Write - dacă R/W=0 pagina poate fi numai citită, în caz contrar poate fi şiscrisă. AVAIL - AVAILable - acest bit este folosit de sistemul de operare pentru a manevrapaginile. Translatarea adreselor, în cazul folosirii unei memorii segmentat-paginate la I80386,poate fi rezumată conform următoarei diagramei din figura 4.2.7. 4.2.4. Modul virtual 8086 Marea majoritate a programelor scrise sub MS-DOS, pentru calculatoarele IBM PC,sunt rulate în modul real, însuşi sistemul de operare MS-DOS fiind un sistem de operare ceutilizează numai modul real. Modul virtual 8086 permite execuţia programelor scrise pentru microprocesorul 8086,în context de multitasking, deşi programele respective nu au fost proiectate să lucreze înmodul protejat. Software-ul ce rulează pe I386 şi permite acest lucru, se numeşte monitor demaşină virtuală. Hardware-ul cu care este prevăzut I80386 pentru a lucra în modul virtual,împreună cu monitorul de maşină virtuală, alcătuiesc ceea ce se cheamă o maşină virtuală8086. Un program, rulând pe o maşină virtuală, are impresia că lucrează pe un microprocesor8086 fizic, deşi este numai un membru într-un context multiutilizator. Se pot genera mai multe astfel de maşini virtuale, hard disk -ul calculatorului fiindîmpărţit în mai multe secţiuni, câte una pentru fiecare maşină virtuală, care dispune şi depropriul său spaţiu de intrare/ieşire, precum şi de propria sa tabelă de vectori de întrerupere. 64
    • Fiecare maşină virtuală este servită de către 80386 numai pentru un interval scurt de timp,realizându-se astfel o rulare a mai multor taskuri în acelaşi timp. Figura 4.2.7. Translatarea adreselor cu segmentare şi paginare Sistemul de operare OS/2 este un sistem monoutilizator dar multitasking, acelaşiutilizator rulând mai multe programe simultan. Sistemul UNIX, în diverse implementări, carepoate fi întâlnit pe calculatoare cu 80386, este un sistem multiutilizator, ce permite lucrul maimultor utilizatori în acelaşi timp, pe acelaşi calculator, fiecare utilizator având în schimbimpresia că este singurul utilizator al sistemului. Folosind aceste maşini virtuale,Windows/386 sau OS/2 pot rula în paralel mai multe programe scrise pentru 8086 în modulreal, sub primele versiuni ale sistemului de operare MS-DOS. 4.2.5. Memorii cache Un procesor lucrând la o frecvenţă ridicată a ceasului, cum este 80386, necesită omemorie rapidă. Memoria de mare capacitate a calculatoarelor actuale este realizată folosindcipuri de memorie dinamică (sau DRAMs - Dynamic RAM), datorită preţului de cost scăzut alacestora. Aceste memorii au un timp de acces de 60-120ns, fiind prea lente, spre exemplu,pentru un procesor ce lucrează la 33MHz. Pe de altă parte, cipurile de memorie statică (sau 65
    • SRAMs - Static RAM) sunt mai rapide, având un timp de acces de 12-25ns, dar sunt mult maiscumpe. În ultimul timp au apărut şi memorii dinamice mai rapide, cu timp de acces în jur de10ns (memoriile SDRAM, ESDRAM). Pentru a combina avantajele celor două tipuri de memorii RAM, între memoriaprincipală de mare capacitate, realizată cu memorii dinamice, şi procesor, se interpune omemorie tampon sau memorie cache, de o capacitate mai mică, realizată cu memorii SRAMde mare viteză. Timpul de acces la memoriei cache este, de obicei, de 10 ori mai mic decât timpul deacces la memoria principală. Figura 4.2.8. Utilizarea unei memorii cache între CPU şi memoria principală Este posibilă folosirea unei memorii cache, îmbunătăţindu-se considerabil viteza delucru, datorită proprietăţii de localitate a programelor, accesele succesive la memorie făcându-se de regulă local, într-un spaţiu relativ restrâns de memorie. Controlerul de memorie cache determină dacă data, ce se doreşte a fi citită demicroprocesor, se află în memoria SRAM sau nu. În caz afirmativ, data este furnizată imediatfără ca acesta să fie nevoit să aştepte, ca în cazul unei citiri directe din memoria DRAM. Dacădata dorită nu se află în memoria cache, controlerul va determina procesorul să aştepte pânăcând transferă o zonă de memorie de câţiva octeţi, numită linie cache (cache line), dinmemoria principală DRAM în memoria cache, după care livrează imediat data respectivăprocesorului. La scriere, controlerul determină, de asemenea, dacă data trebuie scrisă în memoriacache, şi realizează acest lucru în caz afirmativ. Dacă nu, data va fi scrisă direct în memoriaDRAM chiar de către procesor. Orice scriere în memoria cache conduce la o scriere şi înmemoria DRAM. Acest procedeu de control al memoriei cache se numeste "write-through",şi este folosit la majoritatea calculatoarelor IBM PC. Alte strategii de control pot propunescrierea datelor în memoria principală numai dacă datele nu sunt găsite în memoria cache; sau 66
    • dacă data nu este gasită în SRAM, se va citi o linie cache din memoria principală în SRAM,după care data va fi scrisă în SRAM. Spre deosebire de strategia "write-through", scrierea unei valori în memoria cache, încazul ultimelor două strategii, nu implică neapărat o scriere imediată în memoria principală,valoarea fiind scrisă numai în memoria cache. Este sarcina controlerului de memorie cache sătransfere liniile cache din SRAM în DRAM, pentru a face loc altor linii, sau să transfere dincând în când toată memoria cache în memoria principală (aşa numitul "cache flush" ). Liniilecache reprezintă echivalentul paginilor de memorie, atunci când se transferă date întrememoria principală şi memoria secundară, dar o linie cache este de dimensiune mult mai micădecât o pagină de memorie (tipic o linie cache are o dimensiune de ordinul zecilor de octeţi ). Memoria cache a microprocesorului I80486, implementată pe cip, poate realiza diversestrategii de control. 4.2.6. Variante de realizare ale microprocesorului I80386 La scurt timp după prezentarea microprocesoarelor I386 şi I387, ce pot lucra lafrecvenţe de până la 40MHz, Intel a dezvoltat o nouă pereche de procesoare, I386SX şiI387SX, I386SX fiind absolut identic cu I386 din punct de vedere intern, dar lucrând înexterior pe o magistrală de adrese de 24 de biţi şi o magistrală de date de 16 biţi, la fel ca80286. În plus, I386SX nu poate lucra decât până la o frecvenţă de 25MHz. Figura 4.2.8. Structura internă a circuitelor I386SL şi I82360SL 67
    • O tendinţă majoră în etapa actuală este integrarea mai multor componente pe un acelaşicip. Astfel, Intel a dezvoltat I386SL, care integrează pe un acelaşi cip un I386, un controler dememorie cache şi un controler de memorie principală. I386SL este livrat în două variante, la20MHz şi la 25MHz. Poate fi conectat la o memorie cache de 16, 32 sau 64 Kb. Controlerulde memorie poate accesa memoria printr-o magistrală de adrese de 24 de linii şi o magistralăde date de 16 linii, privit din exterior I386SL comportându-se ca un I386SX. Un alt circuit superintegrat este I82360SL, care conţine un ceas de timp real, o memorieCMOS, o interfaţă paralelă bidirecţională, o interfaţă pentru tastatură, un controler de discflexibil, două interfeţe seriale UART 16450, două numărătoare sau timere 8254, cu trei canalede numărare fiecare, două controlere DMA 8237A, două controlere de întreruperi 8259A. În plus, I82360 este prevăzut cu un controler al tensiunii de alimentare (PowerManagement), care reduce semnificativ consumul componentelor electronice. Cu un I386SL, un I82360SL, câteva cipuri de memorie DRAM şi un cip controler grafic(de exemplu controlerul VGA 82370SL) se poate realiza un calculator personal IBM ATcomplet. 4.3. Microprocesorul I80486 4.3.1. Structură internă Microprocesorul I80486 integrează pe un acelaşi cip un microprocesor I80386 evoluat,un coprocesor matematic I80387 mult mai puternic, şi o memorie cache de 8Kocteţi. Poatelucra la o frecvenţă a ceasului între 25 şi 50 MHz. I80486 execută multe instrucţiuni alemicroprocesorului 80386 într-o singură perioadă a ceasului, fiind de trei ori mai rapid decâtun 80386 lucrând la aceeaşi frecvenţă. I80486 este complet compatibil cu I80386 şi extensia acestuia I80387, lucrând cuaceleaşi instrucţiuni, tipuri de date, şi având aceleaşi moduri de lucru: real, protejat şi virtual8086. Deoarece I387 este pe acelaşi cip cu I386, transferul de date între cele două procesoarese face mult mai rapid, I486 fiind un candidat ideal pentru aplicaţii matematice şi graficepretenţioase. Microprocesorul I80486 este împachetat într-o capsulă de formă patrată cu 168 depini, necesitând o tensiune de alimentare de +5Vcc. Conectarea microprocesorului I80486 la lumea exterioară se face prin intermediul uneiinterfeţe de magistrală, care poate manipula date şi adrese pe 32 de biţi. Memoria cache, de8Kb, este conectată direct la interfaţa de magistrală, şi conţine date, pe care le livrează unităţiiaritmetico-logice, registrelor sau unităţii de virgulă mobilă, sau instrucţiuni pe care lelivrează, pe rând, în coada de instrucţiuni (Prefetcher). Orice acces la memoria cache de pe 68
    • cip se efectuează într-o singură perioadă de ceas, spre deosebire de un acces la memoriaexterioară cipului, care se realizează în două perioade de ceas sistem. Deşi memoria cacheeste mică, aceasta duce la o creştere semnificativă a vitezei de execuţie a instrucţiunilor. Figura 4.3.1. Structura internă a microprocesorului I80486 Pe lângă memoria cache de pe cip, plăcile de bază ale calculatoarelor cu microprocesorI486 au, de regulă, o memorie cache de 256Kb, numită memorie cache secundară, care poatefi extinsă în principiu la orice dimensiune, cu condiţia ca controlerul de memorie cache săpoată manipula o asemenea memorie. Chiar şi la această memorie cache secundară, în modnormal, accesul se realizează în două perioade de ceas sistem. Totuşi, dacă controlerul dememorie cache, sau dacă memoria principală poate realiza acest lucru, memoria cache de pecip se va umple întotdeauna utilizând cicluri de magistrală comprimate sau "burst cycles". Pentru transferarea unor cantitaţi mari de date între memorie şi procesor, I80486implementează un nou mod de lucru pe magistrală faţă de I80386, numit mod salvă sau "burstmode". În modul "burst", transferul unei date între memorie şi procesor se face într-o singurăperioadă de ceas, deci rata de transfer a datelor între memorie şi procesor se dublează. Într-unciclu "burst" pot fi transferaţi până la 16 octeţi consecutivi din acelaşi paragraf de memorie.Un paragraf este o zonă de memorie de 16 octeţi, care începe la o adresă multiplu de 16. La ofrecvenţă a ceasului de 50MHz, rezultă în modul "burst" o rată de transfer a datelor pemagistrală de 160Mb/s, ceea ce înseamnă că, teoretic, un hard disk de 160Mb poate fi cititîntr-o secundă. 69
    • Din memoria cache instrucţiunile sunt transferate în coada de instrucţiuni - Prefetcher,care este o memorie de 32 de octeţi (faţă de 16 octeţi la I386), ce separă operanzii imediaţisau deplasamentele de codul propriu-zis al instrucţiunii, trimiţându-le către ALU, registre sauunitatea de segmentare, unde vor fi prelucrate. Unitatea de decodificare decodificăinstrucţiunile, aceste instrucţiuni decodificate fiind folosite apoi de unitatea de control, pentrua comanda registrele, ALU, unitaţile de segmentare şi de virgulă mobilă. Nu toateinstrucţiunile trebuie decodificate, ca la celelalte procesoare anterioare din familia I80x86,unele instrucţiuni pot fi executate direct, microprocesorul I80486 fiind primul din familiecare foloseşte anumite concepte şi tehnologii RISC. Comunicaţia cu unitatea de virgulămobilă, ce corespunde coprocesorului I80387, se face pe o magistrală internă de 64 de biţi,ceea ce duce la o viteză mult mai mare de execuţie a calculelor matematice faţă de cazul încare se foloseşte o pereche I386/I387, care comunică între ele pe o magistrală externă de 32de biţi. Unitatea de segmentare este responsabilă de protecţia şi gestiunea memoriei. În plus,I80486 are patru buffere interne pentru scriere, procesorul transferând datele de ieşire înaceste buffere, în ordine, numai atunci când magistrala este ocupată, după care procesorulpoate executa o altă activitate, aceste buffere fiind responsabile de livrarea datelor pemagistrală, atunci când aceasta devine disponibilă. I80386 nu este prevăzut cu aceste bufferede ieşire. 4.3.2. Arhitecturi CISC şi RISC Unităţile centrale de prelucrare sau microprocesoarele de tip CISC - ComplexInstruction Set Computer - sunt caracterizate printr-un set larg de instrucţiuni masină, deregulă mai mult de 300 de instrucţiuni, de mecanisme complexe de adresare a datelor şi demicrocodificarea instrucţiunilor procesorului. Cele mai des intâlnite microprocesoare CISCsunt microprocesoarele din familia I80x86, care echipează calculatoarele personale IBM, şimicroprocesorul Motorola 68000 folosit la calculatoarele Apple Macintosh. Pe de altă parte, procesoarele RISC - Reduced Instruction Set Computer, cum ar fi I860,MIPS 2000 şi R3000, au un set redus de instrucţiuni şi nu folosesc conceptul demicroprogramare. Instrucţiunile microprocesoarelor CISC nu sunt executate imediat, fiecare instrucţiunefiind decodificată sau "tradusă" într-o secvenţă de microoperaţii elementare, numitămicroprogram, microoperaţii care pot fi executate de către componentele electronice alemicroprocesorului: registre, UAL etc. Microprogramele corespunzătoare tuturorinstrucţiunilor maşină ale microprocesorului sunt stocate într-o memorie ROM din interiorulprocesorului. Unitatea de control a procesorului preia codurile microoperaţiilor, în secvenţă,dintr-o coadă de instrucţiuni decodificate, ce este de fapt o coadă de microoperaţii, şi 70
    • comandă registrele , UAL etc., în vederea execuţiei instrucţiunilor programului. Unitatea dedecodificare preia urmatoarea instrucţiune din coada de instrucţiuni -Prefetch Queue, dupăcare pune microprogramul din memoria ROM corespunzător instrucţiunii respective, în coadade microoperaţii, aceasta în timp ce unitatea de control este ocupată cu execuţia instrucţiuniianterioare. Coada de instrucţiuni va fi resetată după o instrucţiune de transfer al controlului. Figura 4.3.2. Microprocesor CISC Figura 4.3.3. Microprocesor RISC Deşi microprocesoarele I80386 sau Motorola 68000 folosesc o structură de tip bandă deasamblare (sau "pipe-line"), la care citirea instrucţiunii următoare din memorie, decodificareainstrucţiunii curente şi execuţia instrucţiunii anterioare se fac în paralel, totuşi datorităfolosirii conceptului de microprogramare moştenit de la calculatoarele anterioare apariţieimicroprocesorului, în cazul unei instrucţiuni complexe, decodificarea şi execuţia acesteiapoate dura mai mult decât execuţia unei secvenţe de câteva instrucţiuni simple care faceacelaşi lucru. La microprocesoarele RISC, care au renunţat complet la conceptul de microprogramare,instrucţiunile sunt executate direct, printr-o logică cablată (implementată în componenteleelectronice de pe cip), nemaifiind necesară intervenţia unui microprogram pentru aceasta.I80486 este o combinaţie de procesor CISC cu unul RISC, cele mai uzuale instrucţiuni fiind 71
    • cablate şi executate direct într-o singura perioadă a ceasului sistem, în timp ce instrucţiunilemai complexe şi mai puţin frecvente sunt microcodificate, invocându-se un microprogrampentru execuţia acestora. Caracteristicile comune ale procesoarelor RISC sunt următoarele:- set redus de instrucţiuni;- execuţia simultană a mai multor instrucţiuni pe baza conceptului de bandă de asamblare sau "pipe-line";- arhitectură load-store, numai instrucţiunile de citire şi scriere accesând memoria, toate celelalte instrucţiuni lucrând numai cu registre interne;- procesorul RISC şi compilatorul formează o singură entitate, fiind dezvoltate într-o maniera unitară încă de la început. Cipul RISC va implementa numai acele instrucţiuni care simplifică munca de compilare şi creşte viteza de execuţie. Până la apariţia procesoarelor RISC, dialogul între procesor şi software se realiza printr-o interfaţă alcătuită din setul de instrucţiuni al procesorului respectiv, atât software-ul, cât şi procesorul, fiind dezvoltate separat unul de celălat, de echipe diferite de specialişti. 4.3.3. Variante de realizare ale microprocesorului I80486. Conceptul de "upgrade". Intel a continuat seria SX, dezvoltând microprocesorul I486SX, care conţine toatecomponentele ce caracterizează un I486, mai puţin unitatea de virgulă mobilă. În aplicaţiileobişnuite, un asemenea procesor lucrează la fel de bine ca şi un I486. În aplicaţiilematematice, pentru menţinerea parităţii cu I80486, este necesară adăugarea "coprocesorului"I487, care nu este un coprocesor matematic propriu-zis ca ceilalţi membri ai familiei I80x87.Începând cu I487SX, Intel a introdus conceptul de "upgrade". Microprocesoarele I80x86 anterioare microprocesorului I486 priveau coprocesorulmatematic ca o extensie, lucrând în conjuncţie cu acesta. I487SX este de fapt un I486complet, deci cu unitate de virgulă mobilă, ce poate lucra la o frecvenţă între 16 şi 25MHz, şicare face inutilă prezenţa microprocesorului I486SX pe placa de bază, I487SX informeazăprocesorul I486SX, printr-un semnal, de prezenţa sa, ca urmare I486SX încetând oriceactivitate. Nu este absolut obligatorie scoaterea efectivă a microprocesorului I486 de pe placade bază. Diferenţă majoră între I486SX şi I486DX este frecvenţa mai mică a ceasului la carepoate lucra I486SX, cel mult 25MHz. Pe lângă alte variante, Intel produce I486DX2, care dublează în interior frecvenţaceasului sistem de la pinul CLK al procesorului. S-a ajuns la această soluţie datorită faptuluică, atunci când se creşte frecvenţa ceasului sistem, apar probleme serioase. Astfel, un I80386lucrând la 80MHz ar produce perturbaţii electromagnetice intense, făcând imposibilă, de 72
    • exemplu, utilizarea radioului. Pe de altă parte, componentele interne ale calculatorului, alteledecât microprocesorul, nu pot lucra la o asemenea frecvenţă. Totuşi, prin perfecţionareatehnologiilor de ecranare, s-a ajuns în prezent ca plăcile de bază ale PC-urilor actuale, bazatepe Pentium, să lucreze la o frecvenţă a ceasului sistem (frecvenţa externă) de 100MHz. Un I486DX2, cu un ceas extern de 33MHz, va efectua toate operaţiile interne la ofrecvenţă a ceasului de 66MHz, numai operaţiile pe magistrală derulându-se în continuare la33MHz. Frecvenţa care este trecută pe cip indică frecvenţa ceasului intern, I486DX2 fiindlivrat la o frecvenţă a ceasului intern între 50 şi 66MHz. Principalul avantaj al dublării interne a frecvenţei ceasului, şi care ne conduce direct laconceptul de "upgrade", este faptul că schimbând numai procesorul de pe placa de bază, fărănici o altă modificare, se poate lucra la o viteză mai mare de execuţie. Practic, nu se executănici o schimbare a procesorului de pe placa de bază, I486DX2 introducându-se într-unconector de "upgrade" şi dezactivând pentru totdeauna vechiul procesor, de exemplu unI486DX. În mod obişnuit, creşterea frecvenţei peste o anumită limită, implică şi schimbareacomponentelor de pe placa de bază, fiecare componentă lucrând până la anumite frecvenţe aleceasului sistem. Exemple de variante disponibile pe piată sunt: I486DX la 50MHz şi I486DX2 la50MHz, primul fiind ceva mai rapid decât cel de-al doilea, deoarece foloseşte un ceas externde 50MHz şi nu unul intern ca I486DX2. I486DX4 (disponibil la 100 sau 120MHz)multiplică intern cu 4 frecvenţa ceasului extern de la pinul CLK. 4.4. Pentium Procesorul Pentium este perfect compatibil cu procesoarele Intel anterioare, din familia80x86, însă are două canale identice de procesare a datelor, ceea ce îi permite să execute douăinstrucţiuni în acelaşi timp. Practic, Pentium reprezintă două procesoare 80486 în aceeaşicapsulă. Cele două canale pentru executarea instrucţiunilor sunt numite canalele u şi v.Canalul u este canalul principal. Nu toate părţile unui program se pretează, însă, la execuţia în paralel a două instrucţiunisecvenţiale. Atunci când nu este posibil acest lucru, se utilizează doar canalul u. Pentrumărirea eficienţei se poate recompila software-ul, pentru a permite o astfel de procesareparalelă. De aceea, deşi toate programele dezvoltate pe 386 şi 486 se rulează mult mai rapidpe Pentium, mulţi utilizatori recompilează aplicaţiile pentru a folosi întreaga putere a acestuiprocesor, folosind compilatoarele noi puse la dispoziţie de firma Intel. Pentium are magistrala de date de 64 de biţi şi magistrala de adrese de 32 de biţi. Îninterior, registrele sunt însă de 32 de biţi, perfect compatibile cu cele ale procesorului 80486,deşi transferurile de date pe magistrala externă se pot face pe 64 de biţi. De asemenea, 73
    • Pentium mai conţine şi două memorii cache interne, separate, de 8 Kocteţi fiecare,corespunzătoare celor două procesoare 486 de pe cip. În plus, variantele ulterioare de Pentium(Pentium II, Pentium III) conţin o memorie cache suplimentară, de dimensiune mai mare,integrând practic pe cip memoria cache de pe placa de baza de la variantele anterioare. Deexemplu, Pentium II Klamath conţine o memorie cache integrată pe cip, de 512 Kb.Procesoarele Pentium au circuite de multiplicare a ceasului, pentru ca procesorul săfuncţioneze cu viteză mai mare decât magistrala. Tehnologia actuală (oct. 1999) de realizarea procesoarelor Pentium permite funcţionarea până la o frecvenţă de 600 MHz. De la apariţia procesorului Pentium cu facilităţi MMX, în ianuarie 1997, Intel adezvoltat în continuare această serie, şi a scos pe piaţă procesoare mai puternice, cum ar fi: - Pentium II pentru calculatoare destinate micilor afaceri, PC-uri mobile, servere de nivel inferior şi staţii de lucru; - Pentium II Xeon pentru servere puternice şi staţii de lucru; - Intel Celeron pentru seria de calculatoare Value PC; - Pentium III pentru calculatoare personale destinate lucrului la domiciliu sau afacerilor, servere de nivel inferior şi staţii de lucru; - Pentium III Xeon, pentru servere de nivel mediu şi superior, şi staţii de lucru. Tehnologia MMX îmbunătăţeşte procesele de intrare/ieşire, compresia/ decompresiavideo, manipularea imaginilor, toate aceste procese intervenind în aplicaţiile actuale debirotică, multimedia şi Internet. În comparaţie cu procesoarele precedente din serie, Pentiumcu facilităţi MMX are trei îmbunătăţiri esenţiale: - un set adiţional de instrucţiuni pentru a procesa eficient informaţii video şi audio; - capabilităţi SIMD (Single Instruction Multiple Data) – fiind posibil ca o instrucţiune a procesorului să fie executată asupra mai multor date, în acelaşi timp, operaţie utilă în cazul proceselor grafice, de animaţie, video sau audio, şi care duce la creşterea vitezei de execuţie a acestor procese; - dublarea memoriei cache de pe cip (32 Kb comparativ cu 16 Kb la Pentium), reducând timpul de acces la informaţia din memorie. Pentium II încorporează tehnologia MMX, care reprezintă de fapt cea maisemnificativă îmbunătăţire a arhitecturilor Intel din ultimii 10 ani, dar tehnologia MMXPENTIUM II, deşi este compatibilă cu cea de la PENTIUM MMX, este adaptată arhitecturiide bază a procesorului Pentium II. În plus faţă de Pentium cu facilităţi MMX, Pentium IIadaugă 57 de noi instrucţiuni orientate pe calcul paralel, necesare în operaţiile multimedia. 74
    • Pentru a răspunde necesităţilor de ordin practic, ridicate de problema limitării frecvenţeide lucru externe (plăcii de bază) a platformelor PC, Intel a dezvoltat arhitectura bazată pemagistrală duală - Dual Independent Bus Architecture. Această arhitectură a fostimplementată pentru prima dată la varianta anterioară Pentium Pro, dar va deveni largrăspândită odată cu Pentium II. Având două magistrale care pot lucra în mod independent,Pentium II poate accesa date pe oricare din cele două magistrale, simultan şi în paralel, şi nuîntr-o manieră secvenţială ca la sistemele cu o singură magistrală. Cele două magistrale sunt:magistrala de memorie cache L2 şi magistrala sistem, aceasta din urmă legând procesorul dememoria principală. Arhitectura Dual Independent Bus permite ca un procesor Pentium II la400 MHz, să acceseze memoria cache L2 de trei ori mai rapid decât un procesor Pentium.Această arhitectură poate suporta magistrale sistem peste 100 Mhz, care este frecvenţa tipicăa plăcilor de bază ale platformelor PC actuale. Pentium III poate funcţiona la o frecvenţă de 450, 500, 533, 550, 600 MHz, are, în plusfaţă de Pentium II, un set de 70 de noi instrucţiuni, frecvenţa magistralei sistem fiind de 100sau 133 MHz, iar memoria cache de nivel secundar de 512 Kb. 75
    • 5. STRUCTURA CALCULATOARELOR PERSONALE IBM 5.1. Generalităţi Calculatoarele personale IBM actuale, sau compatibile IBM, sunt desemnate în generalprin termenul de PC-uri, indiferent de familia sau seria de fabricaţie din care fac parte. Unadin familiile de calculatoare reprezentative pentru IBM este familia IBM PS/*.Calculatoarele din familia IBM PS/* (IBM PS/2, IBM PS/1, IBM PS/Value Point) au capunct de plecare sistemele ISA (Industrial Standard Architecture), care includ şi magistralastandard ISA de intrare/ieşire, de 8 sau 16 biţi. Sistemele IBM PS/* au fost proiectate cumagistrale mai avansate de intrare/ieşire: EISA, PCI, VESA Local Bus (VLB). Calculatoarele IBM PS/2 au fost lansate pe piaţă în aprilie 1987, fiind calculatoare deprimă calitate, mai scumpe şi destinate marilor companii. Majoritatea calculatoarelor IBMPS/2 utilizează magistrala mai puternică şi mai puţin comună MCA (MicroChannelArchitecture). Unele modele sunt dotate şi cu componente multimedia. Calculatoarele IBM PS/1 au fost scoase pe piaţă în iunie 1990, fiind mai ieftine şi maiuşor de utilizat, cu scopul de a proteja linia mai puternică IBM PS/2. Linia PS/1 a fostdestinată micilor afaceri şi utilizatorilor care lucrează la domiciliu. Tipurile de calculatoarePS/1 includ procesoare 486 şi Pentium, video pe magistrală locală, echipamente multimedia,placă de fax/modem, memorie extensibilă până la 32M sau 64M. Linia de calculatoare IBM PS/Value Point a apărut în noiembrie 1992, şi sunt în mareparte identice cu modelele PS/1, oferind însă mai multe posibilităţi de extensie, şiperformanţe mai ridicate la un preţ relativ scăzut. Raportul performanţă/preţ al acestorcalculatoare este comparabil cu al calculatoarelor compatibile IBM, produse de alte firme,aşa numitele calculatoare copiate. În mod obişnuit, aceste calculatoare copiate erau maiieftine decât calculatoarele IBM, aceasta fiind motivaţia principală a introduceriicalculatoarelor PS/1 şi PS/Value Point de către IBM. Începând din noiembrie 1994, liniaPS/Value Point a fost separată în două linii de calculatoare: un sistem mai puternic - ValuePoint Performance Series, şi seria de calculatoare puternice mainstream, denumită ValuePoint SiSeries. Placa de bază a sistemelor Performance Series este organizată în jurul magistraleisistem ISA pe 16 biţi, sau PCI pe 32 de biţi, şi conţine magistrala locală VESA VLB pe 64 76
    • de biţi. Memoria video poate fi extinsă de la 1M la 2 M, şi acceptă o rezoluţie maximă de1280 x 1024 pixeli. Un fund de sertar, denumit riser, permite conectarea plăcilor de extensiepentru cele două tipuri de magistrale. Versiunea VLB a acestui fund de sertar detaşabil areun conector VLB şi patru conectori ISA. Versiunea PCI permite conectarea a două plăci PCIşi a două plăci ISA. Sistemele Performance Series, proiectate în mod obişnuit cu procesor486, au fost îmbunătăţite ulterior, prin folosirea procesorului Pentium Overdrive. Un exemplu de calculator din familia Value Point, era sistemul Value Point P60/D,care utilizează un procesor Pentium în 60 Mhz, cu o memorie cache internă de 16K, conţineo memorie cache externă de 256K, 8 sau 16M de memorie, extensibilă până la 128M prinfolosirea unor module de memorie SIMM RAM cu 72 de pini, placa de bază conţine uncircuit video SVGA PCI cu memorie video de 1M, extensibilă opţional la 2M. Din punct de vedere constructiv, calculatoarele din liniile de fabricaţie PS/x au fostproiectate pornind de la necesităţile de asamblare automată. Astfel, utilizatorii pot demontaşi reinstala cea mai mare parte a componentelor, fără să utilizeze instrumente. Principalelediferenţe dintre modelele de PS/x sunt date de tipul de magistrală internă utilizată. În modtipic, calculatoarele PS/2 folosesc magistrala MCA. Modelele PS/Value Point permit laalegere utilizarea magistralelor PCI sau VLB, pentru extensii, dar posedă şi câţiva conectoriISA. Majoritatea sistemelor PS/1 au conectori de extensie ISA cu VLB integrat. Începând cusistemele Value Point, IBM a introdus posibilitatea selecţiei tipului de magistrală. Astfel, laaceste sisteme, deşi placa de bază utilizează magistrala locală VESA, prin introducereaacelui fund de sertar detaşabil (riser), în care se pot instala plăci de extensie, se permiteutilizarea atât a unor plăci VESA, cât şi a a unor plăci PCI, rezolvând astfel dilema dintrePCI şi VLB. În ce priveşte subsistemul video, absolut toate calculatoarele IBM PS/x din ultimii anisunt aliniate la standardele VGA sau XGA, ultimul denumit şi SuperVGA (SVGA). Calculatoarele PS/2 superioare modelului 50 sunt bazate pe magistrala MCA (MicroChannel Architecture), diferită din punct de vedere electric şi fizic de ISA. Principaluldezavantaj al acesteia este că, adaptoarele existente ISA pe 8 sau 16 biţi nu mai pot fiutilizate. În ideea eliminării erorilor făcute la instalarea plăcilor adaptoare, architecura MCAintroduce opţiunea POS (Programmable Option Selection). Sistemele MCA au o ecranaremai bună, fapt ce le face mult mai puţin sensibile la zgomote datorate transmisiilor radio sauoricăror perturbaţii electrice, fiind mai sigure în funcţionare decât sistemele ISA. Multeevaluări de performanţă au evidenţiat avantaje ale sistemelor MCA faţă de cele ISA, deşimulte sisteme IBM utilizează, în continuare, standardul mai vechi ISA. Magistralele de intrare/ieşire utilizate în calculatoarele personale IBM actuale sunturmătoarele: 77
    • - Industry Standard Architecture (ISA) – este cel mai răspândit standard, fiind prezent în aproape toate calculatoarele personale. Funcţionează pe 8 sau 16 biţi, obţinând viteze de transfer de 0.625Mb/sec., respectiv 2Mb/sec. - Enhanced Industry Standard Architecture (EISA) – o extensie a magistralei ISA, permiţându-i funcţionarea până la 32 de biţi. - Micro Channel Architecture (MCA) – un standard de magistrală creat de IBM şi întâlnit majoritar în PC-urile fabricate de IBM. Este asemănător standardului ISA, funcţionând pe 32 de biţi. - Video Electronics Standard Association (VESA) – standard dezvoltat special pentru plăcile video care necesitau un trafic intens pe magistrale, ajungând până la 132 Mb/sec. - Peripheral Interconnect Bus (PCI) – un standard rapid, dezvoltat de Intel, ce lucrează la 33MHz pe 32 de biţi. Magistrala poate să se autoconfigureze în funcţie de plăcile de extensie aflate pe ea, facilitate numită Plug-And-Play. - Personal Computer Memory Card International Association (PCMCIA) – stabileşte standarde pentru plăcile de extensie de dimensiuni reduse, care se potrivesc în conectorii mici ai sistemelor laptop şi notebook, suportând deconectarea acestora în timpul funcţionării. Transferul datelor între diversele dispozitive periferice şi memoria calculatorului, undeacestea urmează să fie prelucrate, este asigurat la nivel hardware, pentru fiecare dispozitiv înparte, de controlere. Acestea sunt, de cele mai multe ori, plăcuţe electronice ce se insereazăîn calculator prin intermediul unui slot (sau conector), care asigură compatibilitatea cu unuldin standardele de magistrale descrise anterior. Ele pot fi şi externe calculatorului, caz încare comunicaţia se realizează prin intermediul unor magistrale speciale (SCSI – SmallComputer Serial Interface, de exemplu), sau prin intermediul unor dispozitive existente dejaîn calculator, ce au posibilitatea de a comunica cu exteriorul (interfeţele seriale sau paralele,de exemplu). Plăcile de extensie comunică cu microprocesorul prin întreruperi, porturi deintrare/ieşire, canale DMA (Direct Memory Acces). 5.2. Calculatoarele IBM PS/2 În această secţiune sunt trecute în revistă principalele caracteristici ale calculatoarelorIBM PS/2, una din seriile importante de calculatoare dezvoltate de IBM de-a lungultimpului. Deşi în prezent acestea nu se mai fabrică, la momentul respectiv (1987) auconstituit un boom pe piaţa calculatoarelor personale, prin faptul că reprezentau un salttehnologic faţă de situaţia existentă, majoritatea caracteristicilor nou introduse regăsindu-seîn PC-urile actuale. 78
    • Calculatoarele IBM PS/2 sunt proiectate fie ca unităţi "desktop", cum ar fi modelele25, 30 şi 50, precum şi în configuraţii "floor-standing" cum ar fi modelele 60 şi 80.Principalele caracteristici arhitecturale noi, introduse de familia IBM PS/2 sunt: - un nou sistem de plăci de bază; - arhitectură Micro Channel; - caracteristici grafice suplimentare preluate în hardware; - posibilitate de lucru multitasking; - noi dispozitive adăugate la configuraţia de bază. Pe placa de bază au fost integrate porturile de comunicaţie paralelă şi serială, interfaţapentru mouse, controlerul de disc şi adaptorul grafic. Conectorii de extensie de pe placa debază rămân, astfel, disponibili pentru alte extensii decât cele anterioare. Arhitectura bazată pe o magistrală de tip Micro Channel a fost inclusă numai lamodelele 50, 60, 80, şi nu la modelele 25 şi 30. Magistrala Micro Channel este o magistralăde mare viteză, care poate transfera date pe 8, 16 sau 32 de biţi. Adaptoarele grafice MCGA, pe modelele 25 şi 30, şi VGA, pe celelalte modele,dotează membrii familiei PS/2 cu o rezoluţie grafică mult mai bună decât calculatoareleprecedente, precum şi cu un număr mult mai mare de culori (256 de culori disponibile la unmoment dat dintr-o paletă de aproximativ un sfert de milion de culori), ceea ce face posibilăutilizarea calculatoarelor IBM PS/2 în aplicaţii grafice pretenţioase. Modelele 50, 60, 80 sunt prevăzute cu sistemul de operare OS/2, care poate rula maimulte programe simultan (sistem de operare multitasking), iar sistemul de operare MS-DOS,utilizat în continuare pe oricare din membrii familiei PS/2, a fost îmbunătăţit prin apariţiainterfeţei grafice utilizator Microsoft Windows, care poate lucra de asemenea în regim demultitasking, exploatând astfel toate posibilităţile arhitecturale ale microprocesoarelor cestau la baza acestor calculatoare. Modelele 50 , 60, 80 şi ulterioare pot fi dotate cu noi tipuri de imprimante, un adaptordedicat pentru generarea, digitizarea şi memorarea sunetelor, un adaptor de recunoaştere avorbirii etc., absolut toate modelele familiei fiind prevăzute cu un port dedicat pentru mouse,în vederea utilizării sistemului de operare OS/2 şi a interfeţei grafice Microsoft Windows. Modelul 30/286 este similar modelului 30 din punct de vedere constructiv, dar, în plusfaţă de acesta, poate lucra la o frecventă de 10 MHz, dispunând de toate posibilităţilesuplimentare ale microprocesorului 80286 faţă de 8086, pe baza căruia este construitmodelulul 30, şi care poate lucra numai până la 8MHz. La fel ca şi modelul 30, modelul30/286 poate fi găsit în două variante: una cu hard disk, caz în care controlerul de hard diskeste conţinut chiar în unitatea de hard disk, nefiind necesară o placă suplimentară; a douavariantă, fără hard disk, fiind destinată în principal lucrului într-o reţea de calculatoare.Ambele variante conţin o unitate de floppy disk de 1.44Mb. La fel ca şi modelul 30, esteprevăzut cu 3 conectori de extensie montaţi orizontal pe placa de bază. Modelul 30/286 este 79
    • primul membru din familie care încorporează adaptorul grafic VGA - Video GraphicAdaptor, şi poate fi găsit cu o memorie de 512Kb, 1Mb, 2Mb, 4Mb. Modelul 80/386 este produs în trei variante, cu frecvenţa ceasului între 16 şi 20 MHz,şi cu diferite combinaţii de hard disk şi memorie. Modelul 80/386 suportă o memorie internăde 32 de biţi, cu capacitatea maximă de 4Mb. În configuraţie minimală acesta este livrat cu ounitate floppy disk de 3.5 inch, hard disk de 44Mb, microprocesor 80386 la 16 MHz şimemorie internă de 1Mb. Poate fi prevăzut şi cu o unitate floppy disk de 5 1/4 ". Pe placa debază este prevăzut cu 8 conectori de extensie, trei dintre ei fiind de 32 de biţi. Placa de bază a calculatoarelor din familia IBM PS/2 Numărul de circuite individuale (sau cipuri) a fost dramatic redus, circuitele cu un gradredus de integrare fiind integrate în mai puţine circuite VLSI (Very Large Scale Integration).Un exemplu este adaptorul grafic VGA, construit anterior pe o placă întreagă, şi care a fostintegrat într-un singur supercip, reducând numărul de componente şi numărul deinterconexiuni necesare, ceea ce a dus implicit la creşterea fiabilităţii. În plus, toate circuitelesunt montate folosind tehnologia lipirii pe suprafaţă (surface mounted technology), care ducede asemenea la creşterea fiabilităţii. Deoarece placa de bază conţine majoritateadispozitivelor de intrare/ieşire: interfaţă paralelă bidirecţională, port serial, interfaţă mouse,adaptor grafic (MCGA pentru modelele 25 şi 30, şi VGA pentru celelalte modele), controlerde floppy disk ce poate suporta una sau două unităţi de disc flexibil de 3 1/2", aceasta nu maieste prevăzută cu un număr mare de conectori de extensie. Placa de bază mai conţine 640Kb de memorie pentru modelele 25 şi 30, 1Mb pentrumodelele 50, 60 şi 80 la 16MHz (80-041, 80-071), şi 2Mb pentru modelele 80 cu 80386 la20MHz (80-111, 80-311). Memoria ROM, care este o memorie nonvolatilă (nu îşi pierdeconţinutul la întreruperea alimentării), şi care conţine programe ce sunt activate imediat dupăpunerea sub tensiune (de fapt conţine o parte din BIOS-ul sistemului de operare), ocupă unspaţiu de adresă de o anumită dimensiune, în spaţiul de adresă alocat pentru placa de bază.Memoria ROM de pe placa de bază are o capacitate de 64Kb pentru modelele 25 şi 30, şi128Kb pentru celelalte modele. De asemenea, pe placa de bază se mai găseşte memoria CMOS, care este o memorieRAM de mică dimensiune, şi care necesită un consum mic de energie electrică. Ca oricememorie RAM, memoria CMOS îşi pierde conţinutul la întreruperea alimentării. Datorităconsumului mic, este posibilă alimentarea memoriei CMOS de la o baterie de 6V, ce menţineintact conţinutul memoriei pentru aproximativ 2 ani, fără nici o alimentare a calculatorului lareţeaua de 220Vca. Memoria CMOS conţine acele valori care sunt folosite de programul cese rulează la alimentarea calculatorului, şi care configurează sistemul cu anumiţi parametri,cum ar fi: data şi ora curentă, dimensiunea memoriei instalată în sistem, numărul şi tipulunităţilor de floppy disk şi hard disk, tipul adaptorului video etc. 80
    • Placa de bază poate fi prevăzută cu următoarele extensii: - plăci de comunicaţie, - porturi seriale adiţionale, - plăci grafice, - plăci de memorie adiţională, - coprocesor matematic. Plăcile de comunicaţie folosesc pentru cuplarea unui calculator cu un alt calculator, saucu mai multe, cum ar fi spre exemplu o reţea de calculatoare, folosind pentru aceasta plăcilede comunicaţie respective, cabluri speciale, protocoale, software adecvat etc. Porturile seriale adiţionale se folosesc pentru a conecta imprimante seriale, sau unnumăr oarecare de terminale, dacă calculatorul IBM este folosit ca un sistem multiutilizator.Alte dispozitive care pot fi conectate la porturile seriale sunt: modemuri, plottere,imprimante laser etc. Comunicaţiile seriale se realizează folosind, în exclusivitate,protocolul RS-232C. De asemenea, circuitele VGA sau MCGA de pe placa de bază pot lucra în cooperare cuplăci grafice adiţionale, ceea ce duce la îmbunătăţirea calităţilor grafice ale membrilorfamiliei IBM PS/2. Plăcile de memorie adiţionale sunt necesare dacă se lucrează sub sistemul de operareOS/2 sau Microsoft Windows. OS/2 necesită minimum 1.5Mb de memorie în sistem, dar esterecomandat să existe 5Mb; Windows /386 necesită minimum 1Mb, dar este indicat să existe2Mb de memorie. Sistemul de operare UNIX necesită şi el minimum 5Mb de memorie.Toate aceste plăci adiţionale pot fi implantate în conectorii de extensie disponibili pe placade bază. Un coprocesor matematic este un cip specializat, care lucrează în conjuncţie cuprocesorul principal, mărindu-i acestuia din urmă viteza de efectuare a calculelortranscedente (algoritmi, exponenţi, tangente etc.) şi în virgulă mobilă. Calculatoarele IBMPS/2 nu sunt livrate implicit cu coprocesoare matematice, datorită faptului că acestea suntfoarte scumpe, rămânând la latitudinea utilizatorului dacă să cumpere sau nu un coprocesormatematic. Coprocesorul matematic este folosit de aplicaţii care necesită calcule matematiceintensive, cum ar fi spreadsheets-urile, aplicaţii grafice, ştiinţifice, statistice etc., mărindconsiderabil viteza de execuţie a aplicaţiilor respective. Soclul pe care poate fi montatcoprocesorul matematic se află situat chiar lângă procesorul principal, pe placa de bază.Fiecare procesor din familia I80x86 este prevăzut cu propriul său coprocesor matematicI80x87 (de exemplu I8086 cu I8087, I80286 cu I80287, I80386 cu I80387). 5.3. Arhitectura MICROCHANNEL 81
    • Arhitectura Microchannel introdusă odată cu modelele 50, 60, 80 realizează oîmbunătăţire substanţială în ce priveşte viteza de transfer a unui volum mare de date,utilizând căi mai largi de transfer pentru date (de 32 de biţi) şi până la 15 dispozitive care potefectua transferuri de date pe magistrală, în afară de procesorul principal de pe placa de bază,cum ar fi canale DMA şi master-e externe de magistrală, ce eliberează procesorul de anumitesarcini. IBM foloseşte magistrala Microchannel nu numai la seria PS/2, ci şi la staţiile delucru mult mai puternice RISC System /6000, bazate pe procesoare RISC. Arhitectura Microchannel este prevăzută cu maximum 16 nivele de prioritate pemagistrală între diferitele dispozitive ce pot controla magistrala, astfel încât funcţiile maiimportante sunt tratate imediat, magistrala fiind alocată acestor dispozitive sau procese careîndeplinesc funcţiile respective, în timp ce dispozitivele care îndeplinesc funcţii mai puţinimportante aşteaptă eliberarea magistralei de catre dispozitivele mai prioritare. Aceastăcaracteristică este necesară în sistemele multitasking, asigurând astfel rularea taskurilor maiprioritare şi care e necesar să fie rulate la un moment dat, în detrimentul taskurilor mai puţinprioritare, caracteristică care nu poate fi întâlnită la arhitecturile anterioare ale familiei IBMPC sau PS/2. Arhitectura Microchannel suportă până la 8 dispozitive master de magistrala (inclusivUCP-ul de pe placa de bază) şi maximum 8 canale de access direct la memorie. Dispozitivelemaster de magistrală pot fi plăci de comunicaţie, adaptoare de imprimantă, controlere dedisc, coprocesoare etc., şi sunt dispozitive ce conţin procesoare, care pot accesa memoriaprincipală independent de procesorul principal al sistemului de calcul. Dispozitivele masterpot controla magistrala în aceeaşi manieră în care o face şi procesorul principal de pe placade bază. Canalele de acces direct la memorie - DMA (Direct Memory Access) - sunt folosite dealte dispozitive sau plăci din sistem, pentru a face acces la memorie fără intervenţiaprocesorului principal. Aceasta permite, spre exemplu, unui controler de disc să transferedate în memorie, în timp ce procesorul principal execută un alt task. Dispozitivele careutilizează accesul direct la memorie sunt controlate de circuitul controler al accesului directla memorie (sau controler DMA), de pe placa de bază. Comparativ cu arhitecturile anterioare ale calculatoarelor IBM PC sau IBM PS/2,dimensiunile unei plăci de bază Microchannel sunt reduse, conectorii de extensie sunt maimici şi conţin mai mulţi pini, viteza de transfer a datelor este mai mare întrucât pot fitransferaţi la un moment dat pe magistrală 32 de biţi, faţă de 16 biţi la arhitecturile anterioareetc. O altă caracteristică importantă introdusă de arhitectura Microchannel este posibilitateade selectare a opţiunilor prin program (sau POS - Programmable Option Select). Lacalculatoarele anterioare, când un utilizator dorea să adauge o nouă placă la configuraţia debază, acesta trebuia să selecteze anumite opţiuni, prin poziţionarea unor microcomutatoare 82
    • sau switches- uri, de pe noua placă sau de pe placa de bază. În locul acestor comutatoaremecanice, arhitectura Microchannel foloseşte nişte comutatoare electronice, astfel încât totce are de făcut utilizatorul este numai să introducă placa într-unul din conectorii de extensie,după care să alimenteze sistemul de calcul şi să ruleze un program de configurare (setupprogramm), care va poziţiona corespunzător comutatoarele electronice. Odată selectateopţiunile printr-un sistem de meniuri adecvat, acestea vor fi salvate în memoria CMOS de peplaca de bază, astfel încât la următoarea realimentare a sistemului de calcul, sistemul se vaconfigura cu opţiunile din CMOS, nefiind necesară rularea programului de configurare defiecare dată când se realimenteaza calculatorul. Într-o arhitectura Microchannel este mai usor să foloseşti un număr mai mare deprocesoare. Astfel, într-un IBM PS/2 bazat pe o arhitectura Microchannel găsim un procesorîn controlerul de hard disk, un procesor care controlează intrările şi ieşirile de date prinportul paralel, serial şi portul de mouse, un procesor în adaptorul grafic etc. ArhitecturaMicrochannel permite, aşa cum s-a menţionat anterior, existenţa mai multor procesoaremaster în acelaşi sistem, o schemă internă de arbitrare prevenind monopolizarea magistraleide către un singur master de magistrală. Magistrala Microchannel conţine linii separate pentru semnale audio şi video. Pe liniaaudio se pot efectua transferuri de semnale audio de la o placă la alta, astfel încât toateplăcile din sistem au acces la dispozitivul audio, respectiv difuzorul, nefiind obligatoriu cafiecare placă să aibă propriul sau difuzor. Calculatoarele IBM PS/2 pot conţine adaptoare derecunoaştere a vorbirii, adaptoare telefonice (phone answering adapters), plăci muzicale(music boards), care folosesc de asemenea linia audio. Liniile de semnal video vin de la unconector Microchannel care are o extensie de 16 pini, şi care permite adăugarea unor plăcivideo, ce pot lucra sau nu în cooperare cu adaptorul VGA de pe placa de bază. O caracteristică principală a arhitecturii Microchannel este folosirea unui ceas sistemseparat, ce furnizează o frecvenţă de maximum 10MHz la majoritatea componentelorMicrochannel. Numai magistrala locală, între CPU şi memoria principală, operează la oviteză superioară, dată de ceasul procesorului (CPU clock), permiţând un acces rapid alprocesorului la datele din memorie. Se spune că magistrala Microchannel este o magistralăasincronă, deoarece viteza de transfer pe magistrală nu depinde de ceasul procesoruluiprincipal. Pentru realizarea unor memorii integrate de mare capacitate, astăzi se folosesc aşanumitele memorii RAM dinamice (DRAM memory), care sunt mai lente decât memoriileRAM statice, şi care sunt totuşi utilizate în cazul realizării unor memorii de mică capacitatedar rapide, cum ar fi spre exemplu o memorie cache de disc. Memoriile RAM dinamice, spredeosebire de cele statice, îşi pierd conţinutul în timp, dacă informaţia nu este reîmprospătatăperiodic. Este sarcina procesorului principal, sau al altui dispozitiv, să reîmprospăteze 83
    • memoria dinamică. Ambele tipuri de memorii RAM îşi pierd conţinutul când calculatoruleste deconectat de la reţeaua de 220Vca. Deoarece CPU de pe placa de bază, logica de refresh (logica de reîmprospătare amemoriei dinamice), controlerul DMA şi master-ele externe de magistrală pot preluacontrolul magistralei, este necesar un dispozitiv de arbitrare a cererilor de ocupare amagistralei - Bus Arbitrator, care acordă controlul magistralei în conformitate cu o ordine deprioritate. Figura 5.1. Arhitectura Micro Channel Ordinea de prioritate de acordare a magistralei, la calculatoarele PS/2, este următoarea: -2 - refresh memorie -1 - NMI 0-7 - canalele DMA 0-7 8-14 - disponibile pentru master-e externe de magistrală 15 - CPU de pe placa de bază Cea mai mare prioritate o are o cerere de refresh a memoriei, ceea ce înseamnă călogica de arbitrare acordă controlul magistralei logicii de reîmprospătare a memoriei, imediatce o cerere de refresh este activă. Următoarea prioritate o are o cerere NMI, care apare atuncicând există o eroare majoră în sistem. Cererile NMI sunt servite de către procesorul de peplaca de bază, dar pentru aceasta CPU trebuie să aibă controlul magistralei. Cea mai mică 84
    • prioritate de acordare a magistralei o are procesorul central de pe placa de bază, ceea ceînseamnă că CPU va avea controlul magistralei numai dacă nu există o altă cerere activă deacordare a magistralei. În cadrul arhitecturii Microchannel, sistemul de memorie al calculatoarelor IBM PS/2 afost îmbunătăţit. Astfel, dacă programul de startup detectează un defect în memoriaprincipală, aceasta este reconfigurată folosind blocuri de 64Kb, blocurile cu defecte fiind"mutate" în partea de sus a memoriei, nepermiţându-se accesul la acestea. Controlerul DMA a fost armonizat cu noua arhitectură, realizând transferuri DMA pe32 de biţi, pentru întreg spaţiul de adresă al memoriei. La fel şi controlerul de întreruperi,fiind posibile 255 de întreruperi hardware, în timp ce, spre exemplu, la un calculator IBMAT erau disponibile numai 15 cereri de întreruperi hardware. În interiorul unui sistem de calcul apare adeseori necesitatea măsurarii unor intervalede timp. Dispozitivele care fac acest lucru se numesc timer-e. La o arhitectură Microchannelîntâlnim un timer cu 4 canale independente, primul canal fiind ocupat cu generarea ceasuluisistem, al doilea cu refresh-ul memoriei, al treilea este un generator de ton pentru difuzor (sepot genera diferite frecvenţe cu acest canal), iar ultimul este un aşa zis "watchdog timer",care va genera o întrerupere NMI, dacă vreunul din master-ele externe de magistrală ţineocupată magistrala un timp îndelungat, blocând astfel refresh-ul memoriei. În plus,calculatoarele IBM PS/2, şi deci şi cele bazate pe o arhitectură Microchannel, conţin un ceasde timp real - RTC (Real -Time Clock) - alimentat de la aceeaşi baterie ca şi memoriaCMOS, ceea ce permite măsurarea timpului şi actualizarea datei şi timpului curent, chiar şiatunci când calculatorul este deconectat. Data şi timpul furnizate de RTC sunt memorate înmemoria CMOS împreună cu valorile de configurare, această memorie fiind citită de rutinade iniţializare din ROM-BIOS, care stabileşte configuraţia curentă, precum şi data şi timpulactual. De fapt ceasul de timp real şi memoria CMOS sunt integrate într-un singur cip, deregulă Motorola MC 146818. Unităţile integrate pe placa de bază, cum ar fi: adaptorul VGA, controlerul de disc,interfaţa paralelă şi serială etc., sunt accesate prin intermediul unei magistrale, numită LocalChannel sau Peripheral Standard Bus. În concluzie, scopul magistralei Microchannel în jurul căreia se construieşte aşanumita arhitectură Microchannel, este de a asigura transferul eficient de date între procesorulcentral al calculatorului şi celelalte părţi ale sistemului de calcul (memorie, dispozitiveperiferice: discul, display-ul, tastatura etc.), îndeplinind aceeaşi funcţie pe care o îndeplineştesistemul nervos al unui animal, legând organele de simţ cu creierul. 5.4. Interfaţarea calculatoarelor IBM. Comunicaţia paralelă şi serială. 85
    • La modul general, orice dispozitiv care se conectează la un calculator, inclusivtastatura şi display-ul, poate fi considerat ca o interfaţă de comunicaţie. Calculatoarele comunică folosind impulsuri digitale, o tensiune de 5V indicând un "1"binar, o tensiune de 0V indicând un "0" binar. Codul ASCII asociază fiecărui caracter un codbinar pe 8 biţi. Toţi aceşti biţi ai unui caracter pot fi transmişi simultan în cazul comunicatieiparalele, sau pot fi transmişi unul câte unul în cazul comunicaţiei seriale. Deci, comunicaţia paralelă foloseşte fire separate pentru fiecare bit de date. Depinzândde tipul calculatorului, putem avea comunicaţie paralelă pe 8, 16 sau 32 de biţi. Comunicaţiaparalelă este mai rapidă, întrucât putem transmite simultan mai multi biţi, dar nu poate fifolosită decât pe distanţe scurte, de ordinul metrilor, deoarece în cazul distanţelor mari aparerori datorate unor factori cum ar fi, spre exemplu, interferenţele electrice. Un alt factorrestrictiv, în cazul comunicaţiei paralele, este costul firelor de legătură. Portul paralel de peplaca de bază, de regulă, este folosit pentru comunicaţia cu imprimanta paralelă. Dacă acestport nu este suficient, se pot instala alte porturi paralele, adăugând o placă de comunicaţieparalelă într-unul din conectorii de extensie. Pe distanţe lungi, se foloseşte aproape în exclusivitate comunicaţia serială, incluzândaici şi comunicaţiile prin radio sau satelit. În cazul comunicaţiei seriale, biţii fiecărui caractersunt transmişi secvenţial unul după altul, necesitând la modul cel mai simplu numai două firepentru interconectarea a două calculatoare: un fir pe care se transmit secvenţial biţii, şi un firde masă sau fir de referinţă, faţă de care se măsoară tensiunea pe firul de date. Vitezacomunicaţiei seriale este măsurată în biţi pe secundă (bps) sau bauds. Vitezele standard detransmisie serială sunt: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200 … bps. 86
    • Figura 5.2. Comunicaţia serială între două calculatoare personale prin satelit Comunicaţia serială asigură o protecţie mai bună împotriva erorilor, comparativ cucomunicaţia paralelă. Comunicaţia serială poate fi sincronă sau asincronă. În cazul comunicaţiei seriale sincrone, pe lângă firul pe care se transmit biţii de date şifirul de masă, vom avea un alt fir pe care se transmit impulsurile de ceas. Semnalul de ceasindică când este valid următorul bit pe linia de date. Figura 5.3. Exemplu de comunicaţie serială sincronă. În cazul transmisiei seriale asincrone, biţii de date trebuie să conţină o informaţieminimă de sincronizare, care să permită receptorului să folosească aceeaşi frecvenţă aceasului cu care investighează firul de date, ca şi emiţătorul. Pentru sincronizarea ceasuluiemiţător cu ceasul receptor, se transmite un bit de start înaintea fiecărui caracter. Astfel, liniaserială este în mod normal în "1". Atunci când se doreşte transmisia unui caracter, setransmite întâi un bit "0" - bitul de start, prin trecerea liniei seriale în "0". Acest lucrudetermină ceasul receptor să se sincronizeze cu ceasul emiţător. Este necesar acest lucrudeoarece, în mod normal, frecvenţa ceasului cu care se transmit datele nu este perfect egalăcu frecvenţa ceasului cu care se investighează linia serială la recepţie, dar după un bit destart, se poate admite că pe durata recepţiei unui caracter, datele vor fi preluate corect dereceptor, chiar dacă cele două frecvenţe nu sunt absolut egale. După bitul de start sunt transmişi unul după altul biţii de date ai caracterului, de regulă8 biţi de date, după care sunt transmişi unul sau doi biţi de stop, prin trecerea liniei seriale în"1". Nu este exclusă folosirea unor caractere cu lungimea diferită de 8 biţi (5 biţi, 7 biţi etc.),un caracter fiind format dintr-un număr de biţi transmişi între bitul de start şi bitul (sau biţii)de stop, noţiunea de caracter folosită aici nefiind neapărat identică cu noţiunea de caracterASCII. 87
    • Figura 5.4. Transmisia asincronă a 2 caractere de 8 biţi, cu un bit de start, 1 bit de paritate, 1 bit de stop la viteza de 2400 bauds. Pentru a proteja biţii de date împotriva erorilor de comunicaţie, se transmite un bit deparitate între ultimul bit de date şi primul bit de stop. Astfel, de exemplu, dacă caracterulconţine un număr impar de biţi "1", bitul de paritate va fi "1", altfel va fi "0", sau invers . Larecepţie se verifică paritatea. De fapt, în prezent, se folosesc proceduri de detecţie şi corecţiea erorilor mult mai sofisticate decât simpla verificare a parităţii. În general, pentru comunicaţii seriale directe, calculatoarele IBM folosesc 3 fire: un firpentru transmisie, un fir pentru recepţie şi un fir de masă faţă de care se măsoară tensiuneaelectrică pe cele două fire, utilizând conectori cu 9 sau 25 de pini. Figura 5.5. Conectorii folosiţi de calculatoarele IBM pentru comunicaţii seriale Comunicaţia serială directă între două calculatoare se realizează numai pe distanţerelativ scurte, până la 1-2 Km. În cazul comunicaţiilor mai lungi, este obligatorie folosireamodemurilor. Pentru ca un modem să comunice cu un alt modem, sunt necesare numai 2 fire.De regulă, această legatură modem-modem este realizată de reţeaua telefonică, dar poate fiorice pereche de 2 fire; sau cum este arătat în figura 5.2, cele două modemuri pot comunicaprin satelit în cazul distanţelor foarte mari, de ordinul miilor de kilometri. Modemul preia impulsurile digitale de la ieşirea serială a calculatorului, şi le foloseştepentru a modula un semnal numit purtătoare, care este trimis către celălat modem, prinreţeaua telefonică, satelit etc. La recepţie, modemul corespondent demodulează purtătoarea,obţinând un tren de impulsuri digitale, pe care le trimite către calculator pe legătura serială. 25 pini 9 pini Semnal Denumire semnal 1 - - Protective ground 2 3 TD Transmitted Data 3 2 RD Received Data 88
    • 4 7 RTS Request To Send 5 8 CTS Clear To Send 6 6 DSR Data Set Ready 7 5 - Ground (common) 8 1 DCD Data Carrier Detect 20 4 DTR Data Terminal Ready Figura 5.6. Standardul RS-232C pentru conectorii de 25 şi 9 pini Comunicaţia serială între modem şi calculator se realizează conform standardului RS-232C. La transmisie, calculatorul activează semnalul Request to Send, care informeazămodemul de intenţia calculatorului de a trimite date, modemul răspunde activând semnalulClear to Send de pe pinul corespunzător al conectorului. Datele pot fi acum transmise pelinia Transmitted Data. La recepţie, modemul activează linia Data Set Ready, careinformează calculatorul că legătura cu modemul corespondent a fost stabilită, şi modemul aredate de transmis. Calculatorul răspunde activând linia Data Terminal Ready, informândmodemul că poate primi date. Datele sunt recepţionate pe linia Received Data. Semnalul DCD este activat de modem când acesta detectează o purtătoare, şi este gatasă stabilească legatura cu celălat modem. DCD rămâne activ pe toată durata legăturii serialeîntre cele două calculatoare. Liniile (pinii conectorului RS-232C) Transmitted Data, Received Data şi Ground suntfolosite şi atunci când comunicaţia se face direct între calculatoare, neutilizând modemuri. Înfigura următoare, este arătată configuraţia conectorului de la capătul cablului cu 3 fire ceface legătura directă între cele două calculatoare, conector ce se introduce în conectoruladecvat disponibil în partea din spate a calculatorului. Legând împreună liniile RTS cu CTS,şi DSR cu DTR şi cu DCD, se simulează existenţa unui modem. Figura 5.7. Legătura serială directă între două calculatoare, utilizând conectori RS - 232C 5.5. Tastatura 89
    • Calculatoarele din familia IBM vin cu o tastatură detaşabilă, ce conţine trei zoneprincipale de taste: zona de taste obişnuită de la o maşină de scris, aranjată conformstandardului QWERTY, o zonă de taste numerice şi o zonă de taste funcţionale. Mai suntdisponibile şi câteva taste de control, între zona de taste alfanumerice şi zona de tastenumerice. Tastaturile IBM actuale au 101,102 sau104 taste. Tastatura este ea însăşi un microcalculator, conţinând un microprocesor Motorola6805. Comunicaţia cu controlerul de tastatură de pe placa de bază se face serial,microprocesorul 6805 scanând tastele şi trimitând către calculator un cod la apăsarea uneitaste (make code), precum şi un cod la eliberarea tastei (break code), ceea ce provoacăîntreruperea procesorului central de pe placa de bază, care va prelua codurile respective.Tastatura conţine un buffer de 16 caractere ce permite stocarea codurilor a 16 taste, însituaţia în care procesorul central nu poate prelua codurile de pe legătura serială (când nupoate fi întrerupt). Comunicaţia între tastatură şi calculator este bidirecţională, acesta dinurmă trimiţând instrucţiuni sau date catre tastatură, fiecare transmisie de date sau instrucţiunicătre tastatura fiind urmată de un răspuns al tastaturii în maximum 20ms. Figura 5.8. Schema bloc a tastaturii calculatoarelor personale IBM Microprocesorul tastaturii supraveghează aşa numita matrice de scanare a tastaturii. Înfiecare punct de intersecţie între liniile şi coloanele matricii este fixată o tastă, care atuncicând este apasată realizează un contact între linia şi coloana corespunzătoare din matrice, ce 90
    • dă posibilitatea microprocesorului 6805 să determine coordonatele tastei apăsate, pe care leva trimite sub forma unui cod pe 8 biţi (numit "scan code" sau "make code"), via buffer, cătreinterfaţa de tastatură de pe placa de bază. Astfel, CPU cunoaşte ce tastă este apăsată.Conversia din "scan code" în caracterul corespunzător este realizată de un program special,numit driver de tastatură (în cazul sistemului de operare MS-DOS, keyb.com). Astfel, sepoate schimba tastatura obişnuită (tastatura americană) cu una germană, fără să fie nevoie săfie schimbat hardware-ul tastaturii şi în special matricea de scanare, schimbând numai tabelade conversie a codurilor de scanare în coduri ASCII. Totuşi tastatura IBM poate schimbacodurile de scanare, oferind trei seturi de coduri de scanare. Codul de relaxare al tastei,transmis la eliberarea tastei (break code), este egal cu codul de scanare plus 128 (bitul 7setat). Pentru reprezentarea caracterelor, astăzi, este folosit aproape în exclusivitate codulASCII, care asociază fiecărei taste de pe tastatură, sau unei combinaţii de taste ce implicătastele SHIFT, ALT, CTRL, CAPS, un cod binar unic pe 8 biţi. Acest cod este folosit maideparte de BIOS-ul sistemului de operare. Nu toate combinaţiile de taste au un cod ASCIIasociat. Dacă se apasă simultan tasta SHIFT sau o tastă de control (ALT, CTRL etc.) împreunăcu o altă tastă, se transmite întâi codul de scanare al tastei SHIFT sau al tastei de control,după care se transmite către calculator codul celei de-a doua taste. La eliberarea tastei,ordinea de transmisie a codurilor break este inversă. 5.6. Mouse Mouse-ul este folosit din ce în ce mai mult astăzi, pentru a introduce date în calculatorîn locul tastaturii. Structura mouse-ului este foarte simplă. Acesta conţine o bilă din cauciucsau plastic, care se roteşte atunci când este mişcat mouse-ul. Aceasta mişcare este transmisăla două role perpendiculare una pe alta, care convertesc mişcarea mouse-ului în plan în celedouă direcţii, într-o rotaţie a două discuri cu găuri. Discurile sunt montate la capătul axei rolelor, şi sunt prevăzute cu găuri localizate la odistanţă fixă una de alta şi la aceeaşi distanţă faţă de centrul discului, de o parte şi de alta afiecărui disc găsindu-se un ansamblu fotosenzor emiţător - receptor. Când rolele se rotesc,discul întrerupe alternativ raza de lumină a ansamblului fotosenzor. Astfel, numărul deîntreruperi ale celor două ansambluri fotosenzor ne indică exact deplasarea mouse-ului îndirecţiile Ox şi Oy, numărul acestor întreruperi pe secundă indicând viteza de deplasare amouse-ului. Mouse-ul IBM este echipat cu 2 butoane sau taste, dar există şi mouse-uri cu 3 taste.Majoritatea mouse-urilor sunt conectate printr-o interfaţă serială. Când mouse-ul este mişcatsau când este apăsat un buton, se trimite un pachet de date către interfaţa pentru mouse din 91
    • calculator, care la rândul ei provoacă o întrerupere unităţii centrale. Pentru manipulareaacestor întreruperi este necesar un driver de mouse, care interceptează întreruperile de lainterfaţa serială la care este legat mouse-ul, citeşte pachetul de date trimis de mouse şiactualizează anumite valori, cum ar fi de exemplu poziţia mouse-ului. Există mouse-uri care nu sunt conectate cu un cablu la PC, şi care comunică cucalculatorul în infraroşu, într-un mod similar controlului de la distanţă al televizorului,transmiţând datele la un receptor conectat la o interfaţă serială, sau care poate fi o placă deextensie de sine stătătoare. 5.7. Imprimante Una din cele mai comune probleme de interfaţare este cuplarea unei imprimante. Lacalculatoarele personale IBM, sunt folosite trei tipuri mari de imprimante: imprimante laser,imprimante cu matrice de puncte şi imprimante cu margaretă (daisy wheel printers). Imprimantele laser funcţionează pe acelaşi principiu ca şi o maşină de fotocopiat.Ambele folosesc un tambur acoperit cu un material fotosensibil ce nu dezvoltă o încărcareelectrică când este iluminat, cerneala sau tonerul transferându-se pe tambur numai pe zoneleîncărcate, iar de aici pe hârtie, atunci când tamburul se roteşte peste foaia de hârtie. Lafotocopiatoare, este folosită o lampă, a cărei lumină se reflectă de pe document pe tamburulfotosensibil. La imprimantele cu laser, se foloseşte un mic semiconductor laser, a cărui razăeste scanată pe suprafaţa tamburului cu ajutorul unei oglinzi rotative, la o viteză de rotaţiemare. Raza laserului este întreruptă sau nu, în acord cu circuitul generator de caractere,formând o imagine latentă pe tambur (sau un tipar), în acelaşi fel în care fluxul de electroniformează o imagine pe display. Imaginea latentă de pe tambur este apoi transferată pe hârtie,prin rotaţia tamburului peste foaia de hârtie. Deoarece raza laser poate fi modelată oricum,imprimantele laser pot produce orice fel de imagine: text, grafică sau o combinaţie a celordouă. Imprimantele laser sunt rapide, nezgomotoase, dar sunt mai scumpe decât alte genuride imprimante, ceea ce face ca, în mod normal, o imprimanta laser să fie folosită de maimulte calculatoare, de regulă reţelele locale de calculatoare fiind prevăzute cu o singurăimprimantă laser. Din cauza partajării între mai multe calculatoare, imprimantele laser suntechipate, de obicei, cu o interfaţă serială lucrând la o viteză de comunicaţie mare, ceea cepermite ca imprimanta să fie plasată într-un loc central aflat la o oarecare distanţă faţă decalculatoarele ce-şi împart imprimanta. Imprimantele cu matrice de puncte pot produce atât texte cât şi grafice, pot schimbafonturile de caractere prin software, şi sunt destul de rapide pentru multe aplicaţii.Imprimantele cu matrice de puncte se numesc aşa, deoarece capul de tipărire este alcătuitdintr-o grupare de ace, aranjate sub formă de matrice cu un anumit număr de ace pe 92
    • orizontală şi un anumit număr de ace pe verticală, fiecare ac fiind comandat separat. Lovindindividual fiecare ac în parte, se pot reproduce caractere sau se pot realiza grafice. Acesteimprimante sunt foarte populare datorită preţului de cost scăzut, însă datorită spaţiului dintreace, calitatea caracterelor lasă de dorit, nefiind comparabilă cu aceea obţinută cu oimprimantă laser sau cu o imprimantă cu margaretă. Imprimantele cu margaretă sunt imprimante cu impact, la fel ca şi cele cu matrice depuncte, transferând prin lovire cerneala de pe ribon pe hârtie. Aceste imprimante folosesc unsingur element circular (de regulă din plastic), pe care sunt plasate caracterele, la capătulunor "petale" radiind din acest element circular. Pentru a tipări un caracter , se roteşteelementul circular pe care sunt prinse petalele, până când petala corespunzătoare se află înpoziţia de tipărire, după care se loveşte această petală, caracterul de pe petală lovind ribonulşi imprimându-se astfel pe hârtie. Imprimantele cu margaretă sunt zgomotoase, sunt lente(15-55 caractere/minut), nu pot produce grafice, însă calitatea imprimărilor alfanumerice estesuperioară celei obţinute cu o imprimantă cu matrice de puncte. Majoritatea imprimantelor cu matrice de puncte şi cu margaretă comunică cucalculatorul printr-o interfaţă paralelă. Pentru a lucra cu o imprimantă, este necesară înprimul rând o conectare fizică a acesteia la calculator, care să producă semnalele electrice pecare imprimanta să le "înţeleagă". În cazul unei conectări seriale, imprimantele se conecteazăla calculator conform standardului RS-232C, în cazul conectării paralele utilizându-sestandardul Centronics, care necesită conectori de 36 de pini, IBM folosind numai 25 de pinila ieşirea din calculator. În concluzie, cablul pentru o conectare paralelă are la capătuldinspre imprimantă un conector de 36 de pini, la celălalt capăt având un conector de 25 depini. Lungimea acestui cablu nu trebuie să depăşească 5m, pentru a se evita erorile decomunicaţie. Pentru distanţe mai mari, se va folosi o imprimantă serială. O altă problemă ce poate apare la cuplarea unei imprimante este necompatibilitateacaracterelor de control. Caracterele de control sunt caractere individuale sau grupuri decaractere, care sunt recunoscute de imprimantă ca instrucţiuni, şi nu ca şi caractere tipăribile.De exemplu, când se doreşte scrierea subliniată sau îngroşată a unui rând, programul ce facetipărirea va trimite către imprimantă, la începutul şi la sfârşitul rândului, caracterele decontrol respective, ce vor determina imprimanta să scrie subliniat sau îngroşat. Deci, trebuiesă existe compatibilitate între software-ul ce face tipărirea şi imprimanta pe care serealizează tipărirea. În afara celor trei tipuri de imprimante prezentate anterior, în ultimul timp suntdisponibile pe piaţă imprimante cu jet de cerneală, care sunt imprimante fără impact la fel caşi imprimantele laser, dar mult mai ieftine. Imprimarea se face prin aruncarea unui jet decerneală pe hârtie, fiind posibilă obţinerea unei rezoluţii de 300 de puncte/inch (dots/inch), orezoluţie comparabilă cu cea a imprimantelor laser şi mai mare decât rezoluţia imprimantelorcu matrice de puncte, care au o rezoluţie tipică de 100 de puncte/ inch. 93
    • 5.8. Monitoare şi adaptoare grafice Unul din subansamblele principale ale calculatorului personal IBM este subansamblulmonitor - adaptor grafic. Propriu-zis, un adaptor grafic este un dispozitiv care poate afişa atâtgrafice cât şi texte. Monitorul (display-ul) – este perifericul de ieşire şi reprezintă dispozitivul cu ajutorulcăruia un PC poate prezenta informaţii utilizatorului. Caracteristici ale monitoarelor: - definiţia – imaginea pe monitor fiind constituită din puncte, dimensiunea (diametrul)unui astfel de punct (pitch) reprezintând definiţia monitorului. Cu cât această valoare estemai mică, cu atât imaginea este mai clară, mai puţin obositoare. - dimensiunea diagonalei monitorului – valoarea tipică pentru dimensiunea diagonaleieste de 14 inch (1inch = 2.54cm), dar se folosesc şi monitoare de 15, 17, 20 sau 21 inch(folosite în special la staţiile grafice). Monitoarele, din punct de vedere constructiv, sunt de mai multe categorii: - CRT (Cathodic Ray Tube – cu tub catodic) – sunt identice ca funcţionare cu tuburiledin televizoarele casnice. - LCD (Liquid Crystal Display – ecran cu cristale lichide) – folosite pentru sistemeleportabile şi monitoare “plate”, au un consum redus de energie. - PDP (Plasma Display Panel – ecran pe bază de plasmă) - se foloseşte pentrumonitoare de dimensiuni foarte mari şi sunt deosebit de costisitoare. În conjunctură cu monitorul se află placa grafică (sau placa video), care are rolul de aprelua informaţiile din calculator, a forma imaginile, şi a le trimite monitorului, ca acesta săle poată afişa. Caracteristica principală a unei plăci video este memoria (numită memorievideo) pe care aceasta o conţine (1, 2 sau 4Mb, de exemplu). În funcţie de capacitatea dememorie a plăcii video şi de limitările monitorului, imaginea afisată are următoarelecaracteristici: - rezoluţia – reprezintă numărul maxim de puncte care pot fi afişate pe o linie amonitorului şi, separat, pe o coloană a monitorului (640x480, 720x480, 800x600, 1024x768).Cu cât rezoluţia este mai mare, cu atât sunt mai multe puncte afişate pe ecran, iar imagineaeste mai mică, fiind astfel nevoie de monitoare de dimensiuni mai mari. - numărul de culori – monocrome, 4 culori, 16 culori, 256 culori, 65536 culori, etc. Partea centrală a adaptorului grafic este cipul controler grafic, care controlează toateoperaţiile monitorului, afişând cursorul, controlând numărul de linii şi coloane, afişândgraficele şi textele etc. Adaptorul grafic are două moduri de lucru: modul grafic şi modultext. În modul text, memoria RAM video conţine codurile caracterelor ce vor fi afişate pe 94
    • ecran. Generatorul de caractere are sarcina de a transforma aceste coduri într-o matrice depuncte (sau pixeli) echivalentă, astfel încât caracterele să poată fi afişate pe ecran decontrolerul grafic. În modul grafic, conţinutul memoriei RAM video va fi trimis direct peecran, generatorul de caractere nemaifiind activat. CPU pregăteşte conţinutul ecranului, scriind în memoria RAM video. De asemeneaprocesorul poate citi memoria RAM video. Pentru aceasta, adaptorul grafic este prevăzut cuo interfaţă pentru magistrală, care detectează dacă procesorul lucrează sau nu cu adaptorulgrafic. În plus, procesorul este cel care programează cipul controler grafic, de exemplu săutilizeze un ecran de 25 de linii şi 80 de coloane, în loc de unul cu 43 de linii şi 80 decoloane. Figura 5.9. Schema bloc a adaptorului grafic Deoarece programarea controlerului grafic depinde de realizarea efectivă a adaptoruluigrafic, adaptoarele grafice de mare rezoluţie EGA şi VGA conţin propria lor memorie BIOS,reprezentată de o memorie ROM ce conţine diferite rutine de lucru cu ecranul, cum ar fi:rutine de comutare între diferitele moduri de lucru ale adaptorului, rutine ce permit folosireapaginilor în memoria RAM video etc. Pentru aceasta, CPU de pe placa de bază nu face decâtsă apeleze rutina corespunzătoare din memoria ROM - BIOS din adaptor, via magistrală. La PC-urile actuale, adaptorul grafic prezentat mai sus este integrat pe un singur cip. Pentru conectarea monitorului, adaptoarele grafice ce echipează calculatoarelepersonale IBM furnizează un semnal analogic, disponibil la un conector adecvat, ceea cepermite afişarea unui număr mai mare de culori pe ecran. La monitoarele RGB (Red-Green-Blue), cuplate printr-un conector RGB, se utilizau semnale digitale separate pentru fiecare 95
    • culoare fundamentală, plus un semnal separat pentru intensitate (high sau low), astfel încât seputeau afişa maximum 16 (24) culori simultane pe ecran, prin combinarea semnalelor de pecele 4 fire. Calculatoarele IBM PS/2 vin echipate cu adaptoarele MCGA - MultiColor GraphicsAdapter - în cazul modelelor 25 şi 30, şi VGA -Video Graphics Adapter - în cazul celorlaltemodele (inclusiv modelul 30 /286). Adaptorul VGA permite o rezoluţie de 640 x 480 de pixeli şi poate afişa simultan 256de culori, dintr-o paletă de 218 = 262144 de nuanţe de culori . Este echipat cu o memorieRAM video de 256 Kb. Adaptoarele VGA mai recente vin echipate cu o memorie RAMvideo de 1, 2 sau 4Mb pe cip, ce permite o rezoluţie de 1024 x 768 sau 1280 x 1024 depixeli, cu 256 de culori afişate simultan pe ecran. Pentru compatibilitate, VGA poate realizatoate modurile adaptoarelor anterioare: CGA - Colour Graphics Adapter şi EGA - EnhancedGraphics Adapter, cu care erau echipate calculatoarele IBM PC/XT şi AT. Comparativ,adaptorul EGA permite o rezoluţie de 640 x 350 de pixeli şi 16 culori simultane dintr-opaletă de 64 de culori, iar CGA permite o rezoluţie de 320 x 200 de pixeli, cu 4 culorisimultane dintr-o paletă de 16 culori. Adaptorul MCGA are o rezoluţie de 320 x 200 depixeli la fel ca adaptorul CGA, dar poate afişa 256 de culori simultane pe ecran, dintr-opaletă de 262144 de culori. Pentru a elibera UCP-ul de efectuarea unor calcule laborioase, au fost realizateadaptoarele grafice TIGA şi 8514/A, care încorporează un procesor grafic specializat, şi care,pe lângă operaţiile obişnuite ale controlerului grafic de la adaptoarele precedente, realizeazăşi unele operaţii aritmetice simple, comenzi grafice etc. Astfel, de exemplu, pentru a desenao linie, CPU trebuie să specifice procesorului grafic din adaptor numai coordonatelecapetelor liniei, procesorul grafic fiind cel care realizează umplerea memoriei RAM video cuun conţinut adecvat, astfel încât linia să apară trasată pe ecran. Organizarea şi managementulmemoriei RAM video cade tot în sarcina procesorului grafic. Datorită frecvenţei mai mari aceasului la care lucrează procesorul grafic, operaţiile grafice sunt realizate mult mai rapid,astfel încât ne putem aştepta la o triplare a vitezei de realizare a graficelor de mare rezoluţie,iar în cazul altor operaţii, cum ar fi umplerea unui dreptunghi, la o viteza de 10 ori mai maredecât în cazul unui adaptor VGA. Firma IBM livrează calculatoarele IBM PS/2 cu 5 tipuri de monitoare: 8503, 8507,8512, 8513 şi 8514. Modelul 8503 este un monitor de 12 " alb/negru, are cel mai scăzut preţde cost, transformă culorile în 64 de nuanţe de gri, fiind utilizat cu succes în aplicaţii de"word processing" sau "desktop publishing". Modelul 8514 este cel mai scump dintre toate,este un monitor color de 16 " destinat aplicaţiilor grafice intensive, fiind singurul monitor dincele de mai sus care poate afişa grafice de mare rezoluţie scoase de către adaptorul 8514/A. 96
    • Conţinutul ecranului este împărţit în mai multe rânduri, fiecare rând având o mulţimede puncte, numite pixeli sau elemente de imagine. Există două tipuri de ecrane video: ecranetext şi ecrane grafice. În modul text, ecranul este împărţit în blocuri de pixeli, în fiecare bloc fiind posibilăafişarea unui caracter. Cea mai populară împărţire a ecranului text divide ecranul în 80 deblocuri pe orizontală şi 25 de blocuri pe verticală. Alte ecrane text suportate de calculatoareleIBM sunt 25 x 40 şi 43 x 80. Pentru fiecare bloc de caracter, în memoria RAM video existăcâte 2 octeţi asociaţi, primul indicând codul ASCII al caracterului ce va fi afişat în bloculrespectiv, iar al doilea conţinând atributul caracterului, care defineşte culoarea caracterului,culoarea fondului pe care va fi afişat caracterul, dacă caracterul este sau nu afişat clipitor.Memoria RAM video în modul text începe la adresa B800H:0000H pentru majoritateaadaptoarelor grafice. În modul grafic, ecranul nu este tratat ca o matrice de blocuri de pixeli, ci ca o matricede puncte, memoria RAM video conţinând pentru fiecare pixel de pe ecran informaţia deculoare asociată. Depinzând de adaptorul grafic şi de modul grafic în care lucrează adaptorul,fiecare adaptor grafic având mai multe moduri de lucru text sau grafice, memoria RAMvideo va avea o anumită organizare. Astfel, pentru modurile grafice 4 şi 5 ale adaptoruluiCGA, care permit o rezoluţie de 320 x 200 de pixeli cu 4 culori simultane, pentru fiecarepixel se asociază 2 biţi, ce codifică cele 4 culori, astfel încât un octet din memoria RAMpoate codifica culorile a 4 pixeli astfel: Figura 5.10. Conţinutul octetului nr. k din memoria RAM video, ce codifică culorile pixelilor 4k, 4k+1, 4k+2, 4k+3 În modul grafic CGA nr. 6 de mare rezoluţie, 640 x 200 dar cu 2 culori simultane peecran, fiecare pixel va fi codificat numai pe un bit, astfel încât octetul nr. k va conţinecodificarea culorilor pixelilor 4k - 4k+7. În modurile grafice CGA, memoria RAM video începe de asemeni la adresaB800H:0000H, fiind împărţită în două zone de 8Kb. Dimensiunea totală a meoriei RAMvideo este de 16Kb. Prima zonă conţine codificarea culorilor pixelilor de pe liniile pare aleecranului, a două zonă va conţine codificarea pixelilor de pe liniile impare. 97
    • Figura 5.11. Structura memoriei RAM video pentru modurile grafice CGA În modurile grafice CGA nu există decât o singură pagină video, spre deosebire demodurile text, unde pot exista mai multe pagini video, numai una din acestea fiind afişată laun moment dat pe ecran. De exemplu, într-un mod text cu 25 de linii şi 80 de coloane, ceeace înseamnă 2000 de caractere afişate simultan pe ecran, cu 2 octeţi necesari pentrucodificarea fiecărui caracter, rezultă un necesar de 2 x 2000 = 4000 octeţi pentru o pagină.Deci pot exista 4 pagini text în memoria RAM video de 16 Kb a adaptorului CGA. Adaptorul EGA foloseşte pentru modurile specifice EGA o organizare diferită amemoriei. Adaptorul VGA foloseşte exact aceeaşi organizare şi structură a memoriei ca şiadaptoarele CGA şi EGA, în modurile text şi grafice compatibile cu modurile CGA şi EGA.Pentru modurile grafice VGA şi EGA, memoria RAM video începe la adresa A000H:0000H. Modurile grafice specifice EGA şi VGA folosesc o organizare a memoriei pe maimulte nivele. Astfel, într-un mod grafic EGA sau VGA cu 16 culori simultane, cei 4 biţi deculoare pentru fiecare pixel sunt distribuiţi pe 4 nivele paralele de memorie, pixelii fiindastfel înşiruiţi în mod continuu în memoria RAM video, aceasta nemaifiind divizată în 2bancuri de memorie ca la adaptorul CGA. 98
    • Figura 5.12. Distribuţia biţilor de culoare pe mai multe nivele, la adaptoarele EGA şi VGA Nivelul 0 de memorie va conţine primul bit de culoare pentru toţi pixelii de pe ecran,nivelul 1 va conţine al doilea bit de culoare pentru toţi pixelii de pe ecran ş.a.m.d. 5.9. Unităţi de memorie externă Pentru ca informaţia să fie exploatabilă, ea trebuie sa fie inclusă pe un suport:dispozitiv fizic capabil să înregistreze, să păstreze, să transmită şi să restituie informaţia. Dispozitivele cu ajutorul cărora se realizează conservarea datelor, într-un sistem deprelucrare a informaţiei, sunt denumite memorii externe (auxiliare). Unul dintre principaleledezavantaje ale acestor dispozitive de stocare este acela că sunt mai lente faţă de memoriileinterne. Principalul avantaj este că, de cele mai multe ori, sunt mai ieftine decât memoriaprincipală, iar suportul pe care se înregistrează datele poate fi extras din calculator şi poatefi depozitat într-un loc sigur. Dispozitivele de stocare cele mai răspândite la ora actuală sunt dispozitivelemagnetice. Acestea au avantajul unui cost redus, raportat la capacitatea de stocare, încomparaţie cu memoriile electrice (de tip RAM, ROM), însă sunt mult mai lente din punct devedere al timpului de acces la informaţiile stocate. Timpul de acces reprezintă intervalul detimp mediu scurs între momentul în care procesorul solicită o anumită informaţiedispozitivului de stocare, şi momentul în care aceasta a fost gasită şi în care poate începecitirea acesteia (de exemplu, o memorie SDRAM actuală are timpi de acces în jurul a 10 ns,pe când un disc fix poate ajunge la 7-10 ms). Suporturile magnetice sunt organizate sub formă de discuri, principiul de funcţionarefiind asemănător cu cel de la casetele audio sau video. Trebuie să se facă distincţie între 99
    • unitatea de disc, care este dispozitivul ce gestionează discul, şi disc, care este suportul dememorare propriu-zis. Caracteristicile unui disc magnetic sunt: - capacitatea de memorare, măsurată în Kb sau Mb; - viteza de acces la date - timpul de răspuns, scurs între momentul unei cereri de accesşi momentul obţinerii datelor; - rata de transfer a datelor - cantitatea medie de date transferată în unitatea de timp, încondiţiile accesării unui volum mare de date; - timpul de căutare (seek time) – este timpul necesar deplasării capetelor decitire/scriere de la o pistă la alta. Se folosesc următoarele tipuri de discuri: - discurile flexibile, numite şi dischete sau floppy disk-uri. Acestea sunt constituitedintr-un singur disc cu câte un strat magnetic pe fiecare faţă a discului, discul magnetic fiindînchis într-un suport de plastic prevăzut cu o fantă pentru accesul capului de citire/scriere lamediu. Sunt medii magnetice mobile, standardele cele mai raspândite fiind de 5,25”(1,2Mb),3,5”(1,44Mb) şi mai rar 2” (3Mb); vitezele de rotaţie ale acestor discuri sunt de 300-360rotaţii pe minut şi pot asigura o rată de transfer a datelor de până la 100Kb/s. Există şivariante care folosesc un disc dur: discul Zip de 4” (100Mb) sau discul Jaz de 4,5” (1Gb),acestea având rate de transfer superioare, dependente de tipul de interfaţă folosită laconectare. - discurile dure (sau fixe), numite în engleza hard-disk-uri. Acestea sunt constituite dinmai multe discuri rigide suprapuse, iar capetele de citire/scriere sunt montate pe un sistem debraţe, care se deplasează în interstiţiile dintre discuri, asigurând citirea/scrierea de pe maimulte feţe ale discurilor simultan. Tot ansamblul este închis într-o cutie metalică sigilatăermetic, lucru necesar datorită faptului că discurile nu sunt atinse de capul de citire/scriere(ca în cazul dischetelor), acesta plutind pe o pernă de aer la distanţe de ordinul micronilor.Vitezele de rotaţie ale acestor discuri sunt cuprinse între 3000 şi 10000 rotaţii pe minut, şiasigură rate de transfer ale datelor între 1-2 Mb/s pâna la 10-15Mb/s. Capacităţile de stocareale discurilor hard actuale merg până la 10-20Gb. Discurile hard mai sunt caracterizate şi detipul de interfaţă prin care se conectează la calculator; cele mai des întâlnite sunt discurileIDE sau EIDE (Enhanced Integrated Drive Electronics) şi discurile SCSI. Pentru salvarea datelor, ca măsură preventivă împotriva deteriorării informaţiei de pehard disk, calculatoarele IBM pot fi dotate cu unităţi de bandă magnetică (streamers),discurile flexibile nefiind adecvate acestui scop datorită capacităţii mici de memorare, uzualde 500-1000 de ori mai mică decât capacitatea unui hard disk. Benzile magnetice semanipulează uşor, fiind indroduse într-o casetă, au o capacitate de memorare mare (până la250Mb) şi un preţ de cost scăzut. Unităţile de bandă magnetică simple pot fi conectate la uncontroler de floppy disk. Totuşi, unităţile de bandă magnetică performante, cu o rată de 100
    • transfer a datelor ridicată, necesită propriul lor controler, ce poate fi introdus într-unul dinconectorii de extensie de pe placa de bază, precum şi un software adecvat. Cu o astfel deunitate de bandă, un hard disk de capacitate medie poate fi salvat în mai puţin de 15 minute.Datorită faptului că sunt mai greu de manipulat, precum şi datorită apariţiei discurilor Zip şiJaz, benzile magnetice sunt foarte rar folosite în prezent. Mediile de stocare optice cele mai răspândite sunt compact discurile. Acestea sunt demai multe tipuri: - CD-ROM, cu o capacitate de memorare tipică de 650-700Mb. Acestea sunt realizatedintr-un material reflectorizant închis într-un suport de plastic transparent. Înscrierea şicitirea informaţiilor se face cu un fascicul laser, ceea ce determină o uzură scăzută asuportului de memorare. Există şi variante care pot fi scrise de mai multe ori sau şterse (CD -RW rewritable). - DVD (Digital Versatile Disc) – tehnologie modernă, capacităţile de stocare fiind de4,7Gb pentru discuri cu un singur strat, şi de 8,5 Gb pentru discuri cu două straturi. Acesteapot fi şi cu faţă dublă, atingând capacităţi de stocare de până la 9,4, respectiv 17 Gb. 5.9.1. Discuri magnetice Cele mai populare unităţi de memorie externă sunt unităţile magnetice, iar dintreacestea floppy disk-urile şi hard disk-urile echipează toate calculatoarele personale IBM. Aşa cum s-a văzut în secţiunea precedentă, calculatoarele personale IBM folosesc 2tipuri de discuri flexibile: de 5,25" şi de 3,5" în diametru. Cele de 3,5" sunt închise într-ocarcasă rigidă de plastic, şi se introduc cu totul în unitatea de disc flexibil. Discurile hard, saudiscurile de mare capacitate, nu sunt unităţi mobile de memorie, discul hard rămânând fixatîn unitatea de hard disk. De regulă, calculatoarele personale IBM sunt dotate cu uncombicontroler, care permite conectarea a două sau mai multe discuri flexibile şi a două saumai multe hard disk-uri. Acest controler face legătura între CPU şi unităţile de floppy sauhard disk, fiind de fapt un mic şi independent calculator, ce conţine un microprocesor carerulează programe din memoria ROM de pe controler, şi care controlează toate operaţiilecomponentelor electronice din controler. Discurile flexibile sunt de fapt nişte discuri din material plastic, acoperite cu un strat dematerial feromagnetic, de regulă pe ambele părţi. Primele variante de IBM PC foloseau şidiscuri flexibile simplă faţă, acoperite cu material feromagnetic numai pe una din feţe.Timpul de acces maxim la date pentru discuri flexibile este de 200ms, deoarece în cel maidezavantajos caz discul trebuie să execute o rotaţie completă, care se realizează în 170-200ms, şi capul de citire/scriere să execute o mişcare liniară de amplitudine maximă, ce serealizează în 200ms. Cele două operaţii se pot executa în paralel. 101
    • Figura 5.13. Schema simplificată a unei unităţi de floppy disk La calculatoarele IBM, întâlnim discuri flexibile de 5,25" cu o capacitate de 360Kb şi1.2Mb, şi discuri flexibile de 3,5" cu o capacitate de 720Kb şi 1,44Mb. Informaţia este scrisă pe disc de-a lungul unor cercuri concentrice numite piste, caresunt împărţite la rândul lor în sectoare. Fiecare bit de date este scris prin magnetizarea uneizone de o anumită suprafaţă, de-a lungul unei piste, mărimea acestei zone influenţândcapacitatea sau densitatea discului. Biţii unui octet de date sunt scrişi unul după altul, de-alungul pistei. Între piste rămân zone înguste nemagnetizate, astfel încât pistele pot fi distinseîn mod neambiguu. De regulă, discurile flexibile au între 40 şi 80 de piste, iar discurile hardde mare capacitate au până la 2000 - 6000 de piste. Atât la discurile flexibile, cât şi la discurile hard, care de obicei conţin mai multediscuri ce se rotesc solidar, sunt instalate mai multe capuri de citire/scriere; câte unul pentrufiecare faţă. Pistele corespondente de pe toate feţele, situate la aceeaşi rază, formează uncilindru. Pistele din cadrul unui cilindru sunt distinse prin numărul capului de citire/scrierece accesează faţa pe care se află pista respectivă. Primul cap de citire/scriere are numărul 0.Sectoarele de pe pistă sunt numerotate începând de la 1. Parametrii discurilor flexibile: Disc Piste Sectoare Lăţime pistă [mm] 5,25" 40 9 0,330 360K 5,25" 80 15 0,160 1,2M 102
    • 3,5" 80 9 0,115 720K 3,5" 80 18 0,115 1,44M Începutul fiecărei piste este marcat la discurile de 5,25" printr-o gaură, la discurile de3,5" printr-o crestătură în placa de metal centrală a discului, iar la discurile hard printr-unmarcaj magnetic pe fiecare pistă, înaintea primului sector. Fiecare sector conţine un câmp de adresă în care sunt înscrise numărul capului decitire/scriere, numărul pistei şi numărul sectorului respectiv, în cadrul pistei, urmat de uncâmp de date în care sunt înscrise datele propriu-zise. Discurile flexibile au între 8 şi 18sectoare pe pistă, discurile hard au până la 40 de sectoare pe pistă, sau chiar mai mult. SubMS-DOS şi alte sisteme de operare folosite pe calculatoarele personale IBM, câmpul de dateal fiecărui sector conţine 512 octeţi. Împărţirea discului în piste, sectoare, cilindri, prin scrierea câmpurilor de adresă pentrufiecare sector şi a altor informaţii folosite de controler, se numeşte formatare fizică. Decicapacitatea unui disc neformatat este mai mare decât capacitatea discului formatat. Astfel, odischetă de 5,25" are 1,6Mb neformatată, dar rămân valabili numai 1,2Mb după formatare,cei 400Kb fiind utilizaţi tocmai pentru crearea structurii fizice a discului. În mod obişnuit, numai BIOS-ul sistemului de operare lucrează cu sectoare fizice. MS-DOS, ca şi alte sisteme de operare, foloseşte aşa numitele sectoare logice, atribuind fiecăruisector fizic câte un număr în secvenţă. Astfel, în cazul unui floppy disk de 3,5" de 1,44Mb,sectorul 1 de pe pista 0, faţa 0, va fi sectorul logic 0; sectorul 1 de pe pista 0, faţa 1, va fisectorul logic 2 ş.a.m.d., sectorul 18 de pe pista 79, fata 1, va fi sectorul logic 2879. Pentru o mai bună înţelegere a structurii fizice a discului, se dă mai jos formatul MFMal unei piste. Alt format folosit pentru organizarea fizică a discurilor este formatul FM. start of track GAP 4A : 80 octeţi 4eh SYNC : 12 octeţi 00h IAM : 4 octeţi c2h, c2h, c2h, fch GAP 1 : 50 octeţi 4eh sector SYNC : 12 octeţi 00h IDAM : 4 octeţi a1h,a1h, a1h, feh ID : 4 octeţi tr. hd. sc. sz. CRC : 2 octeţi cu valoare CRC GAP 2 : 22 octeţi 4eh SYNC : 12 octeţi 00h DAM : 4 octeţi a1h, a1h, a1h, fbh DATA : 512 octeţi de date 103
    • CRC : 2 octeţi cu valoare CRC GAP 3 : 80 octeţi 4eh end of track (EOT) GAP 4B : xx octeţi 4eh Figura 5.14. Structura unei piste MFM O pistă începe întotdeauna cu o zonă goală de 80 de octeţi scrişi cu valoarea 4eh, ceinformează controlerul de începutul unei piste. Deşi se folosesc şi marcaje mecanice pentruînceputul unei piste (o gaură de index la discurile de 5,25" sau o crestatură la discurile de3,5"), deoarece distanţa dintre 2 biţi succesivi este de ordinul a câtorva micrometri (la undisc de 5,25" cu 15 sectoare pe pistă, această distanţă este de 2 micrometri, şi nu se poateexecuta o gaură cu o asemenea precizie), aceste marcaje mecanice nu pot indica precisînceputul unei piste, fiind necesară utilizarea zonei GAP 4A. Pentru a-şi sincronizaelementele de decodificare a informaţiei cu viteza de rotaţie a discului (care depinde defrecvenţa tensiunii de alimentare), controlerul utilizează nişte câmpuri de sincronizare -SYNC, de 12 octeţi, scrişi cu valoarea 00h. Câmpul IAM - Index Address Mark - informeazăcontrolerul că urmează zona cu sectoare de pe pistă. Fiecare sector conţine 10 secţiuni, printre care câmpuri goale şi de sincronizare.Câmpul IDAM - IDentification Address Mark - indică controlerului începutul sectoruluicurent. Câmpul ID - IDentification - conţine un identificator de sector în formatul pistă-faţă-sector-dimensiune sector. La formatare, controlerul calculează o valoare CRC - CyclicRedundancy Check - pentru cei 4 octeţi de identificare ai sectorului împreună cu câmpulIDAM, şi scrie această valoare CRC de 2 octeţi în câmpul corespunzător din formatul datmai sus. Câmpul DAM - Data Address Mark - indică controlerului începutul zonei DATA,de 512 octeţi, în care vor fi scrise propriu-zis datele. La scrierea datelor într-un sector,controlerul calculează o valoare CRC pentru câmpul DATA, pe care o stochează în cei 2octeţi CRC situaţi după câmpul DATA. La citirea unui sector, controlerul calculează deasemenea valoarea CRC pentru zona de date a sectorului citit, şi compară această valoare cucea existentă în câmpul CRC de pe disc, situat după câmpul DATA. Folosirea câmpurilorCRC este o metodă mult mai puternică de verificare a corectitudinii informaţiei decât simplaverificare a parităţii. După ultimul sector de pe pistă urmează un număr oarecare de octeţi liberi, până lamarcajul de început de pistă. Această zonă se numeşte EOT, GAP 4B servind ca un bufferelastic între începutul şi sfârşitul pistei. Principial nu sunt diferenţe între discurile flexibile şi discurile hard. Dimensiunile celemai des întâlnite pentru hard disk-uri sunt 5,25" şi 3,25". Timpul de acces mediu la harddisk-urile actuale este între 7-10 ms (mult mai rapide decât discurile flexibile), şi reprezintătimpul necesar mutării capului pe o anumită pistă dintr-o poziţie oarecare, la care se adaugă 104
    • timpul necesar ca sectorul ce se doreşte a fi accesat să apară sub capul de citire/scriere, prinrotaţia discului. Pentru a reduce timpul de acces la informaţia de pe hard disk, se folosesc memoriicache integrate pe drive sau în controler, care pot reţine mai multe sectoare individuale, sauchiar o pistă întreagă, înainte ca informaţia să fie transferată în memoria principală princitire, sau înainte ca datele să fie scrise pe disc, după ce au fost livrate din memoriaprincipală. Timpul de acces la această memorie cache este sub 0,4ms. Utilizarea memorieicache se bazează pe faptul că aproximativ 40% din toate accesele la disc sunt secvenţiale,bineînţeles depinzând de aplicaţie, deci în locul unui acces direct la disc se efectuează unacces în memoria cache. Este sarcina controlerului să transfere sectoarele sau pistele întrememoria cache şi disc. La calculatoarele cu microprocesor 80386, 80486 sau Pentium ,şi cu memorieprincipală mai mare de 1Mb, se poate emula o memorie cache de disc în memoria principală,cu ajutorul unor programe ca Smartdrive, Diskcache etc. Dezavantajul acestor emulatoare dememorie cache de disc în memoria principală este pierderea informaţiei din memoria cachenetransferată pe disc, în cazul unei blocări ("agăţări") a sistemului, ceea ce nu se întâmplă încazul memoriilor cache hardware de pe controler. 5.9.2. Discuri optice O altă categorie de dispozitive de memorie externă este reprezentată de dispozitiveleoptice. Dintre acestea, CD-ROM-urile, care folosesc acelaşi principiu de înregistrare ainformaţiei ca şi discurile compacte audio (CD-players), sunt folosite în cazul în care sedoreşte memorarea unei mari cantităţi de date, dar care nu pot fi modificate ulterior, cum arfi baze de date, biblioteci de programe etc. Cu un drive adecvat, CD-ROM-urile pot fiintegrate fără probleme în calculatoarele personale IBM actuale, discurile având o capacitateuzuală de 600-700Mb. Principiul de funcţionare, folosit de fapt şi la discurile compacte audio, este următorul:În interiorul drive-ului de CD-ROM, un mic semiconductor laser emite o rază laser foarteîngustă, cu lungimea de undă de 850nm. Informaţia este scrisă pe disc sub forma unor micidenivelări. Raza laser este scanată foarte precis pe toată suprafaţa discului, cu ajutorul uneioglinzi rotative. Un senzor din interiorul drive-ului detectează intensitatea razei reflectate desuprafaţa discului, intensitate care variază în funcţie de adâncimea denivelărilor, şi care estetransformată ulterior într-un şir de biţi. Spre deosebire de discurile magnetice, informaţia nu este scrisă de-a lungul unor pisteconcentrice, ci de-a lungul unei spirale care începe din centrul discului. 105
    • Principalul dezavantaj al CD-ROM-urilor este faptul că informaţia nu poate fimodificată. Următorul pas în dezvoltarea tehnologiilor optice de memorare a informaţiei afost apariţia discurilor WORM - Write Once Read Many, ce permit scrierea informaţiei pedisc de către utilizator, dar numai o singură dată, după care informaţia poate fi citită de unnumăr nelimitat de ori. Dacă vrem să modificăm o înregistrare de date de pe disc,înregistrarea modificată va trebui scrisă într-o zonă liberă a discului, vechea înregistrarerămânând în continuare pe disc. Discurile WORM au aceeaşi capacitate ca şi CD-ROM-urile, dar capacitatea mare de memorare se plăteşte printr-o rată de transfer a datelor mică, de150 Kbytes/s, şi un timp de acces mediu de 50ms. Pentru comparaţie, un floppy disk de1,2Mb are o rată de transfer a datelor de 85Kbytes/s. Discurile optice sunt unităţi mobile de memorie, un disc CD-ROM sau CD-WR cucapacitatea dată mai sus fiind ceva mai mare decât un floppy disk. Discurile optice nu auînlocuit discurile magnetice, atât datorită faptului că discurile optice sunt lente şi practicchiar şi discurile CD-RW nu sunt discuri read-write propriu-zise, cât şi datorită creşteriicontinue a capacităţii de stocare a hard disk-urilor. Altă categorie de discuri optice sunt discurile DVD (Digital Versatile Disc),capacităţile de stocare ale acestor discuri fiind date la începutul secţiunii 5.9. 5.10. Alte dispozitive de intrare/ieşire Pe lângă dispozitivele de intrare/ieşire descrise în subcapitolele anterioare, la PC-urileactuale mai pot fi conectate, prin intermediul unor plăci "plug-in board" introduse înconectorii de extensie de pe placa de bază, următoarele dispozitive externe: scanere, unităţioptice de recunoaştere a caracterelor, plăci de achiziţie şi prelucrare a imaginilor, plăci decomunicaţie prin FAX, sintetizatoare muzicale, plăci de recunoaştere şi sinteză a vorbirii,adaptoare pentru conectarea la o reţea locală de calculatoare, convertoare analog-digitale şidigital-analogice etc. Scanerele sunt dispozitive optice de intrare, care permit introducerea imaginilor încalculator, după care aceste imagini pot fi memorate, prelucrate sau afişate pe ecran, fiindutile în special în aplicaţii de "desktop publishing". Unităţile optice de recunoaştere acaracterelor sunt, de fapt, scanere specializate pentru citirea şi conversia în coduri ASCII acaracterelor de pe documentul scanat. Plăcile de achiziţie şi prelucrare a imaginilor permit introducerea, memorarea şiprelucrarea imaginilor preluate de la o cameră video, video recorder sau alte dispozitivevideo. Software-ul furnizat cu aceste plăci permite atât prelucrarea detaliată a acestorimagini, cât şi transmiterea acestor imagini prin modem către un alt calculator. 106
    • Plăcile de comunicaţie prin FAX permit transmiterea/recepţionarea documentelor textsau grafice către/de la un aparat FAX, sau un calculator echipat cu o placă de comunicaţieprin FAX. Mai precis, aceste plăci împreună cu software-ul adiacent pot prelua documentetext sau imagini grafice, pe care le pot transforma într-o formă recunoscută de către unreceptor FAX, după care pot memora pe hard disk sau transmite aceste documente. Reţelele locale de calculatoare permit partajarea resurselor între utilizatorii reţelei,servicii de poştă electronică şi, în general, o comunicaţie de mare viteză între calculatoare.Cele mai uzuale adaptoare pentru o reţea locală de calculatoare sunt adaptoarele pentrureţelele IBM Token-Ring şi Ethernet, pentru acesta din urmă fiind dezvoltat sistemul deoperare Novell Netware. În special în aplicaţiile de conducere cu calculatorul a proceselor industriale, ne aflămîn situaţia când trebuie să "manipulăm" sau să lucrăm cu mărimi care nu sunt numerice saudigitale. De fapt, lumea exterioară este în esenţă continuă sau de natură analogică, şi nudiscretă sau digitală. Mărimile analogice, care de cele mai multe ori sunt nişte tensiunielectrice variind între anumite limite, trebuie convertite în mărimi numerice înainte de a fiintroduse în calculator pentru a fi prelucrate de acesta. Acest lucru este realizat de undispozitiv (care poate fi un singur cip) numit convertor analog-digital, care, în principiu,măsoară tensiunea analogică de la intrare şi transformă această mărime într-un număr binarechivalent, pe un anumit număr de biţi. Cu cât este mai mare acest număr de biţi, cu atât vomavea mai multe nivele discrete de tensiune care să corespundă marimii analogice de laintrare. Numărul de biţi pe care se face conversia analog-digitală este, de fapt, un indicatorde performanţă al convertoarelor analog-digitale. Bineînţeles că este necesar şi un dispozitivcare să realizeze conversia inversă, din mărimi numerice în mărimi analogice, acestdispozitiv numindu-se convertor digital-analogic. 107
    • 6. ARHITECTURI PARALELE DE CALCULATOARE 6.1. Evoluţia sistemelor de calcul. Calculatorul de tip von Neumann. Elementul principal, care a marcat decisiv generaţiile de calculatoare, a fost tehnologiade realizare a dispozitivelor şi circuitelor care au stat la baza acestor calculatoare. Alteelemente luate în calcul, atunci când se face o împărţire a calculatoarelor în generaţii, pot fitipurile de arhitecturi folosite în construcţia sistemelor de calcul, limbajele de programarefolosite, sistemele de operare utilizate etc. Prima generaţie de calculatoare (1938-1953), care începe odată cu apariţia primuluicalculator analogic, în 1938, şi al cărei principal reprezentant este primul calculator digital -ENIAC, construit în 1946, este marcată de folosirea releelor electromagnetice şi a tuburilorelectronice. În această generaţie, programarea calculatorului se făcea numai în limbaj cod-masină. A doua generaţie de calculatoare (1952-1963) este determinată de folosireatranzistorului (descoperit în 1948) şi diodei, primul calculator digital tranzistorizat fiindTRADIC, construit la Bell Laboratories în 1954. În această generaţie, programareacalculatoarelor se face în limbaj de asamblare, şi sunt dezvoltate limbajele de nivel înalt:FORTRAN (Formula Translation) în 1956, COBOL (Common Business Oriented Language)în 1959 şi ALGOL (Algorithmic Language) în 1960. În cea de-a treia generaţie de calculatoare (1962-1975), sunt folosite ca dispozitive debază circuitele integrate pe scară mică - SSI (Small Scale Integrated) şi scară medie - MSI(Medium Scale Integrated), cum ar fi porţile logice, multiplexoarele, decodificatoarele,registrele etc. Totodată sunt îmbunătăţite compilatoarele pentru limbajele de nivel înalt, aparsistemele de operare în timp real, sunt folosite conceptele de multiprogramare (execuţia maimultor programe în acelaşi timp, prin suprapunerea operaţiilor unităţii centrale cu operaţii deintrare/ieşire) şi memorie virtuală. Reprezentanţii acestei generaţii sunt calculatoarele IBM360/91, Illiac IV, Cyber-175 etc. A patra generaţie de calculatoare începe în 1972, fiind marcată de folosirea circuitelorintegrate pe scară largă - LSI (Large Scale Integrated) şi foarte largă - VLSI (Very LargeScale Integrated), principalele circuite de acest gen fiind microprocesorul şi circuiteleintegrate de memorie. Este continuată evoluţia software-ului utilizat pe calculatoarele dinaceastă generaţie, sunt dezvoltate calculatoarele vectoriale Cray-1 (1976) şi Cyber-205 108
    • (1982), şi calculatoarele "mainframe" de mare viteză cum ar fi UNIVAC 1100/80 (1976),IBM 3081 (1980), Cray X-MP (1983) etc. Tot în această perioadă apare fenomenulcalculatoarelor personale, care încep să folosească conceptele de "pipelining" şi paralelismîntâlnite la supercalculatoare, devenind din ce în ce mai puternice. Multă vâlvă în lumea utilizatorilor de calculatoare a fost creată în 1981, când MinisterulIndustriei şi Comerţului Exterior din Japonia, împreună cu cele mai mari firme electronice dinaceeaşi ţară: Fujitsu, Hitachi, NEC, Toshiba etc., au lansat un proiect de cercetare de mareanvergură, cu un buget de 400 milioane dolari, care trebuia să producă saltul decisiv laînceputul anilor 90, de la calculatoarele din generaţia a patra la calculatoarele din generaţia acincea. Aceste calculatoare din generaţia a cincea trebuiau să aibă ca aplicaţie principalăsistemele expert, care să poată fi consultate de către cineva care necesită cunoştinţele unuiexpert uman, trebuiau să aibă o interfaţă om-masină îmbunătăţită care să permită utilizatoruluisă comunice cu calculatorul prin imagini şi limbaj natural, viteza de calcul trebuia să fie multmai mare, între 100MLIPS şi 1GMLIPS (LIPS - Logical INferences per Second - număr deinferenţe logice pe secundă), în timp ce calculatoarele prezente aveau o viteză de 0,01MLIPS -0,1MLIPS. Deşi în perioada de timp scursă de la lansarea acestui proiect până în prezentdezvoltarea tehnologică a continuat, în ce priveşte gradul de integrare şi viteza de lucru acomponentelor electronice, şi de asemenea software-ul utilizat a fost perfecţionat, totuşi sepoate spune că proiectul nu şi-a atins scopurile iniţiale mult prea ambiţioase. În concluzie, mulţi autori evită un subiect atât de controversat ca această împărţire acalculatoarelor în generaţii de calculatoare, şi anume, dacă în prezent suntem încă în generaţiaa patra, sau am trecut deja în generaţia a cincea de calculatoare. Ce se poate afirma cucertitudine este că există o foarte mare diferenţă între interfaţa om-maşină actuală,caracterizată de interfeţe grafice eficiente, sisteme multimedia, achiziţie şi prelucrare aimaginilor şi textelor folosind scanere şi camere de luat vederi, recunoaştere parţială a vorbiriietc., şi interfaţa om-maşină de la primele calculatoare ale generaţiei a patra, deşi încă nu sepoate dialoga cu calculatorul în limbaj natural, neutilizând tastatura. Calculatoarele comerciale uzuale, utilizate până în prezent, sunt calculatoare în careoperaţiile ce se realizează sunt codificate binar, şi sunt stocate în memoria internă acalculatorului sub forma unui program, de unde sunt executate într-o anumită secvenţăpredefinită. Calculatoarele care au la bază acest acest concept sunt numite calculatoare de tipvon Neumann, după numele celui care a pus bazele acestui concept în anii 40. Un calculator de tip von Neumann conţine: - o memorie pentru stocarea atât a instrucţiunilor cât şi a datelor supuse prelucrării; - o unitate de control pentru aducerea instrucţiunii următoare din memorie şi realizarea operaţiilor de control; - o unitate aritmetico-logică pentru realizarea operaţiilor aritmetice şi logice; 109
    • - sistemul de I/E şi dispozitivele periferice, pentru transferarea datelor între calculator şi utilizator. Unitatea de control şi unitatea aritmetico-logică sunt, de regulă, combinate într-ounitate centrală de prelucrare - UCP. Pentru reprezentarea numerelor, caracterelor saucodificarea instrucţiunilor este folosit sistemul binar, care necesită numai două nivele detensiune pentru reprezentarea unui digit (cifră binară), în timp ce logica booleană este folosităpentru realizarea operaţiilor logice. Memoria principală conţine atăt instrucţiunile cât şi dateleprelucrate de aceste instrucţiuni, fiind posibilă accesarea locaţiilor de memorie în orice ordine(conceptul de memorie RAM - Random Access Memory). Un calculator von Neumann conţinepe lângă memoria principală, care în prezent este o memorie semiconductoare, o memorieauxiliară de mare capacitate, mai lentă dar mai ieftină, uzual o memorie magnetică. Unitateacentrală are un număr oarecare de registre interne folosite în operaţiile curente de prelucrare,adresare a memoriei sau operaţii de control. Registrul indicator de instrucţiuni - IP, denumituneori şi registru numărător de instrucţiuni - PC (Program Counter), conţine adresaurmătoarei instrucţiuni de executat şi este actualizat automat după citirea fiecărei instrucţiuni,astfel încât să indice următoarea instrucţiune din program, care de regulă se află în următoarealocaţie de memorie. În scrierea unui program care realizează o anumită prelucrare, programatorul selecteazăinstrucţiunile dintr-un set de instrucţiuni pe care le poate executa unitatea centrală deprelucrare pe care se execută programul. O instrucţiune este specificată prin tipul operaţieiexecutate de instrucţiune (de exemplu adunare, scădere, salt etc.), precum şi prin operanziiasupra cărora se execută operaţia respectivă. Dacă operanzii sunt conţinuti în memorie şi nuîn registrele interne, în instrucţiune vor trebui specificate adresele operanzilor, precum şiadresa rezultatului. Se preferă ca rezultatul să fie plasat în locul unuia din operanzi, astfelîncât în instrucţiune se specifică cel mult adresele a doi operanzi. Majoritatea calculatoarelornu au instrucţiuni cu mai mult de doi operanzi. Pentru adresarea operanzilor, unitatea centralăde prelucrare implementează mai multe mecanisme de adresare (vezi sectiunea 4.1.6).Instrucţiunile sunt realizate în două etape: citirea instrucţiunii din memorie (fetch cycle) şiexecuţia instrucţiunii (execute cycle), această ultimă etapă incluzând citirea operanzilor dinmemorie şi transferul rezultatului. Pentru execuţia instrucţiunilor, UCP foloseşte conceptul demicroprogramare, divizând fiecare instrucţiune într-un număr de paşi succesivi executaţi deunitatea de control, care comandă toate operaţiile unităţii aritmetico-logice. Calculatoarele personale IBM sunt calculatoare de tip von Neumann perfecţionate,microprocesoarele INTEL de la baza acestor calculatoare implementând conceptul de "pipe-line", iar în cazul microprocesoarelor I80486 şi PENTIUM concepte RISC. Nu toate calculatoarele sunt calculatoare de tip von Neumann. Calculatoarele organizatepe baza fluxului de date stochează instrucţiunile într-o memorie internă, dar acestea nu suntexecutate într-o secvenţă predefinită de un program (vezi sectiune 6.8), în timp ce 110
    • calculatoarele neuronale, realizate pe baza reţelelor neuronale (neural networks) şi careîncearcă să imite creierul uman, au renunţat complet la conceptul de instrucţiune. Altecalculatoare pot să renunţe la sistemul binar şi logica booleană, implementând logici şireprezentări polivalente. Sunt produse în prezent microcontrolere şi procesoare fuzzy bazatepe o logică fuzzy, ce este o logică continuă cu valori de adevăr cuprinse între 0 şi 1, logicabivalentă fiind un caz particular al acesteia. Totuşi, se poate spune că aceste tipuri decalculatoare neconvenţionale (ele nu sunt de fapt calculatoare von Neumann) rămân încă însfera cercetării, nefiind deocamdată calculatoare comerciale de largă utilizare. De regulă,aceste tipuri de calculatoare neconvenţionale, ca şi calculatoarele paralele descrise încontinuare, sunt realizate sub forma unor unităţi ataşate unui calculator gazdă von Neumann,care realizează operaţiile de I/E precum şi operaţiile generale de management şi control. 6.2. Paralelism în sistemele uniprocesor Toate calculatoarele uniprocesor au în principiu aceeaşi structură, fiind caracterizateprin existenţa unei singure unităţi centrale de prelucrare în sistem. Majoritatea calculatoarelorcomerciale sunt calculatoare uniprocesor. De-a lungul timpului au fost dezvoltate o serie demecanisme de procesare paralelă la aceste calculatoare, deşi nu sunt calculatoare paralelepropriu-zise. Aceste mecanisme sunt următoarele: - Folosirea mai multor unităţi funcţionale - Un exemplu este calculatorul IBM 360/91realizat în 1968, care are două unităţi de execuţie a calculelor, una pentru numere în virgulăfixă alta pentru numere în virgulă mobilă, aceasta din urmă fiind compusă la rândul ei dindouă unităţi care pot lucra în paralel: o unitate pentru adunarea şi scăderea numerelor învirgulă mobilă, cealaltă pentru înmulţirea şi împărţirea numerelor reprezentate în virgulămobilă. - Folosirea conceptului de bandă de asamblare, implementat şi la procesoarele dinfamilia I80x86. - Suprapunerea operaţiilor unităţii centrale cu operaţii de intrare/ieşire, prin folosireaprocesoarelor de intrare/ieşire sau a canalelor DMA, care sunt responsabile de efectuareaoperaţiilor de intrare/ieşire, în timp ce UCP execută alte operaţii. Canalele de acces direct lamemorie DMA sunt folosite atunci când controlerul de I/E, care controlează direct operaţiilede intrare/ieşire cu un dispozitiv periferic, nu poate accesa memoria internă, şi face apel la uncanal DMA pentru efectuarea transferurilor de date între memoria internă şi dispozitivulperiferic. - Ierarhizarea memoriei - Întreaga memorie a calculatorului este "văzută" ca o ierarhiede nivele care are la bază memoria externă, sau memoria secundară, care este cea mai lentă,dar are cea mai mare capacitate, pe măsură ce urcăm treptele ierarhiei crescând viteza deacces la memorie, dar în acelaşi timp descrescând capacitatea memoriei (vezi figura 6.1). 111
    • Unele unităţi centrale de prelucrare, cum ar fi I80486 sau Pentium, au o memorie cacheinternă pe cip, pe lângă memoria cache externă obişnuită. De asemenea, registrele interne potfi considerate ca fiind unităţi de memorie foarte rapidă. Memoria cache se foloseşte pentru aacoperi diferenţa de viteză dintre UCP şi memoria principală, în timp ce conceptul dememorie virtuală se foloseşte pentru a acoperi diferenţa de viteză dintre memoria principală şimemoria secundară. Figura 6.1. Ierarhizarea memoriei într-un sistem uniprocesor. - Multiprogramare şi time-sharing. Prin multiprogramare se înţelege existenţa maimultor procese (programe, task-uri) active în acelaşi timp în calculator, şi care concurează învederea obţinerii resurselor calculatorului: UCP, memorie, dispozitive de I/E. Este posibilacest lucru deoarece unele programe folosesc intensiv UCP-ul pentru efectuarea calculelor, întimp ce alte programe efectuează mai mult operaţii de I/E, asa încât cele două tipuri deprograme pot fi rulate în paralel. Această suprapunere a execuţiei mai multor programe aredezavantajul că, uneori, un program cu o prioritate înaltă poate ocupa UCP-ul sau alte resurse,împiedecând execuţia celorlalte programe. Această problemă este rezolvată în sistemele deoperare în timp real, prin alocarea unor unităţi de timp fixe sau variabile tuturor programelordin sistem. Astfel, o resursă este alocată unui proces un anumit interval de timp, după care,indiferent dacă procesul a terminat sau nu operaţia, resursa este eliberată şi alocată unui altproces, dându-se în acest mod o şansă şi proceselor mai puţin prioritare. 6.3. Calculatoare pipe-line În mod obişnuit, execuţia unei instrucţiuni într-un calculator digital implică execuţiaurmătorilor paşi: 112
    • - citirea instrucţiunii din memorie (instruction fetch); - decodificarea instrucţiunii (instruction decoding); - citirea operanzilor (operand fetch); - execuţia instrucţiunii (execution); - memorarea rezultatului (store result). Într-un calculator pipe-line, mai multe instrucţiuni succesive sunt executate în paralel,aşa cum este arătat în figura 6.2. Acesta este un exemplu în care procesorul are 5 faze pipe-line, astfel încât pot fiexecutate în paralel 5 instrucţiuni; spre exemplu, la un moment dat se face citirea instrucţiuniiI5, decodificarea instrucţiunii I4, citirea operanzilor instrucţiunii I3, execuţia instrucţiunii I2 şimemorarea rezultatului instrucţiunii I1, rezultând o viteză de prelucrare de cinci ori mai mare.În cazul general al unui procesor cu k faze pipe-line, rezultă o creştere a vitezei de execuţie ainstrucţiunilor de k ori. Figura 6.2. Execuţia suprapusă a instrucţiunilor într-un calculator pipe-line. Conceptul de "pipe-line", din calculatoare, este similar conceptului de bandă deasamblare dintr-o fabrică, care duce la creşterea producţiei în fabrica respectivă. Pentru a sematerializa conceptul de paralelism temporal introdus mai sus, într-un calculator pipe-lineorice proces sau activitate este împărţită în subactivităţi, fiecare din acestea fiind executată deun hardware specializat. Deci paralelismul este realizat nu prin multiplicarea unităţilorfuncţionale (paralelism spaţial), ci prin execuţia suprapusă în timp a mai multor instrucţiunisau activităţi. Ceea ce s-a prezentat anterior se poate desemna prin termenul de "instructionpipelining", sau de execuţie simultană a mai multor instrucţiuni pe baza conceptului de bandăde asamblare. Aproape toate calculatoarele actuale implementează acest concept. Dar şiunitatea aritmetică poate fi compusă din mai multe unităţi separate care să lucreze în paralel şicare să execute mai multe operaţii înlănţuite, conform conceptului de bandă de asamblare. 113
    • Acest gen de paralelism este desemnat prin termenul de "arithmetic pipelining", un exemplude unitate aritmetică care implementează acest concept, fiind unitatea aritmetică acalculatorului IBM 360/91. Operaţiile cu numere în virgulă mobilă , spre deosebire de cele cu numere în virgulăfixă, se pretează la o execuţie în paralel, fiind executate ca o secvenţă de paşi succesivi chiarşi în calculatoarele care nu folosesc conceptul de "arithmetic pipelining". De exemplu,adunarea a două numere reprezentate în virgulă mobilă : m1x2e1 şi m2x2e2 necesită execuţiaurmătorilor paşi: 1. calculul diferenţei e1-e2 2. dacă e1-e2 este negativ schimbă mantisele între ele şi schimbă semnul diferenţei e1-e2 3. deplasează mantisa m2 cu e1-e2 poziţii spre dreapta (se împarte cel de-al doilea număr cu 2e1-e2) 4. adună mantisele şi pune rezultatul în m2. 5. normalizează mantisa: dacă mantisa rezultat este mai mare decât 1, deplasează mantisa rezultatului cu o poziţie spre dreapta şi adună 1 la exponent; dacă mantisa rezultat este mai mică decât 1/2, deplasează mantisa rezultat cu o poziţie spre stânga şi scade 1 din exponent. Cei 5 paşi care intervin în adunarea a două numere reprezentate în virgulă mobilătrebuie executaţi unul după altul, dar este posibilă execuţia simultană a cinci operaţii deadunare a două numere în virgulă mobilă, astfel încât, în timp ce se normalizează mantisarezultatului la prima operaţie, se adună mantisele la cea de-a doua operaţie, se deplaseazămantisa m2 la cea de-a treia operaţie etc., obţinându-se acelaşi efect ca şi când cei cinci paşice intervin în execuţia adunării a două numere în virgulă mobilă ar fi executaţi în paralel. În funcţie de instrucţiunile şi tipurile de date pe care le pot manipula, procesoarele pipe-line pot fi clasificate în procesoare scalare şi procesoare vectoriale. Calculatoarele pipe-linevectoriale sunt prevăzute cu resurse hardware şi instrucţiuni, care pot opera asupra unoroperanzi de tip vector. Într-un asemenea calculator se poate specifica, printr-o singurăinstrucţiune, o operaţie asupra tuturor elementelor unuia sau mai multor vectori. Elementelevectorilor pot să fie ori numai numere întregi, ori numai numere reale în virgulă mobilă. Procesoarele vectoriale pot fi proiectate şi ca unităţi care să fie ataşate unui calculatorscalar, pentru a-i creşte acestuia din urmă viteza de execuţie a operaţiilor cu vectori. În modnormal, supercalculatoarele actuale sunt prevăzute cu facilităţi vectoriale. Calculatoarelevectoriale sunt o aplicaţie excelentă a conceptului de bandă de asamblare. Un procesorvectorial, ca orice procesor von Neumann, citeşte instrucţiunile vectoriale din memorie şiprelucrează unul sau mai mulţi vectori de intrare, pentru a produce un şir de elemente deieşire sau vector rezultat. Majoritatea procesoarelor vectoriale folosesc un număr mare deregistre interne pentru stocarea vectorilor, aşa cum se întâmplă la calculatoarele Cray, deşialte calculatoare, cum ar fi Cyber-205, stochează vectorii în memorie. 114
    • Cele mai recente calculatoare vectoriale sunt calculatoarele Cray-1, Cray-2, Cray X-MP, Cray Y-MP ale firmei Cray Research, Cyber-200 şi Cyber-205 ale firmei Control DataCorporation, Fujitsu VP-200 al firmei Fujitsu etc. 6.4. Clasificarea Flynn a arhitecturilor de calculatoare Cea mai populară schemă de clasificare a arhitecturilor de calculatoare este cea realizatăde Flynn în 1966, care ia în calcul numărul de fluxuri de instrucţiuni şi de date dintr-uncalculator. Conform acestei scheme, arhitecturile de calculatoare pot fi împărţite în trei marigrupe: - Calculatoare SISD - Single Instruction stream Single Data stream - care cuprindemajoritatea calculatoarelor actuale şi la care instrucţiunile sunt executate secvenţial, dar pot fisuprapuse conform conceptului de bandă de asamblare. La aceste calculatoare SISD, unsingur flux de instrucţiuni operează asupra unui singur flux de date. Deci calculatoarele pipe-line sunt tot calculatoare SISD, deoarece rămân în cadrul accepţiunii de calculator cu unsingur flux de instrucţiuni şi un singur flux de date. Un calculator SISD poate avea totuşi maimult de o unitate funcţională destinată îndeplinirii unei anumite funcţii. Calculatoarele IBM360/91, PDP 11, CDC 6600, Cray-1, Fujitsu VP-200, Cyber -205, FPS -164 etc. sunt exemplede calculatoare SISD. - Calculatoare SIMD - Single Instruction stream Multiple Data stream. Într-uncalculator SIMD există mai multe elemente de prelucrare sau elemente de procesare,supervizate de o unitate de control. Unitatea de control distribuie aceeaşi instrucţiune cătretoate elementele de prelucrare, fiecare element de prelucrare operând pe un set diferit de date.Se formează astfel mai multe fluxuri de date, dar numai un singur flux de instrucţiuni.Exemple de calculatoare SIMD sunt calculatoarele ILLIAC IV, PEPE, BSP, care suntcalculatoare word-slice, şi STARAN, MPP, DAP care sunt calculatoare bit-slice. - Calculatoare MIMD - Multiple Instruction stream Multiple Data stream. Aceastăcategorie cuprinde majoritatea sistemelor multiprocesor, la care se generează câte un flux deinstrucţiuni pentru fiecare procesor în parte. Toate fluxurile de instrucţiuni şi date pentru toateprocesoarele din calculator vin din aceeaşi memorie comună, ce este partajată de cele nprocesoare care cooperează în rezolvarea unei probleme. Dacă fluxurile de instrucţiuni nu vindintr-o memorie partajată, ci fiecare procesor are propria lui memorie, avem de-a face cu unsistem multiprocesor cu schimb de mesaje între procesoare, şi nu cu ceea ce se înţelege printr-un calculator MIMD intrinsec. Un asemenea sistem multiprocesor fără memorie partajată estepractic un ansamblu de sisteme SISD, care schimbă mesaje între ele printr-o reţea deinterconectare. Unii autori preferă să numească sistemele multiprocesor fără memoriepartajată tot sisteme MIMD. În lucrarea de faţă, vom utiliza noţiunea de sistem multiprocesor,care este mai largă decât noţiunea de calculator MIMD, incluzând aici şi sistemele 115
    • multiprocesor cu schimb de mesaje. De asemenea, prin sistem multiprocesor vom înţelege unsistem de calcul centralizat, cu toate resursele hardware şi software aflate într-un anumitcentru, şi cu întârzieri de comunicaţie neglijabile între subsisteme. Reţelele de calculatoare şisistemele distribuite nu fac obiectul acestei lucrări. Exemple de calculatoare MIMD:UNIVAC 1100/80, IBM 3081/3084, Burroughs D-825, Cray-2, Cray X-MP, Denelcor HEPetc. Figura 6.3. Structuri SISD, SIMD şi MIMD conform clasificării Flynn. Cea de-a patra combinaţie posibilă în cadrul clasificării Flynn, calculatoarele MISD -Multiple Instruction stream Single Data stream, practic nu există în realitate, deşi unii autoriîncearcă să introducă în această categorie calculatoarele pipe-line. 6.5. Calculatoare SIMD Într-un calculator SIMD, instrucţiunile unui program sunt citite din memorie de către osingură unitate de control, în aceeaşi manieră ca şi la un calculator von Neumann obişnuit(calculator SISD), folosind un registru indicator de instrucţiuni. Instrucţiunile uzuale care se întâlnesc la orice procesor, cum ar fi instrucţiunile de salt,instrucţiunile aritmetico-logice ce prelucrează scalari etc., sunt executate direct de unitatea decontrol. În schimb alte instrucţiuni, cum ar fi instrucţiunile vectoriale, sunt executate de cătreo matrice de elemente de prelucrare, sau elemente de procesare, unitatea de controldistribuind o instrucţiune către toate elementele de procesare, care realizează aceeaşi operaţie,dar asupra unor date diferite. Elementele de prelucrare pot fi inhibate printr-un mecanism demascare, astfel încât să nu realizeze o instrucţiune distribuită de unitatea de control. 116
    • Memoria din care elementele de prelucrare vor lua datele poate fi o memorie localăelementului de prelucrare respectiv, sau o memorie globală, caz în care elementele deprelucrare vor accesa modulele de memorie globală printr-o reţea de interconectare (vezifigura 6.4). Programele sunt stocate în memoria unităţii de control, care poate accesa şi memoriilelocale ale elementelor de procesare în primul caz, sau modulele de memorie globală în cel de-al doilea caz, prin intermediul unei magistrale de date. De asemenea, reţeaua de interconectareprin care elementele de procesare schimbă date între ele în primul caz, sau prin careelementele de procesare sunt conectate la modulele de memorie globală în cel de-al doileacaz, este sub controlul unităţii de control. Figura 6.4. Arhitecturi SIMD Fiecare element de prelucrare are registre locale, şi poate realiza operaţii aritmetico-logice asupra unor date, care de regulă sunt elementele unui vector sau ale unei matrici. Deexemplu, la o operaţie de adunare a doi vectori A := A+B, unde A şi B sunt vectori dedimensiune n, elementul de procesare i execută operaţia Ai := Ai+Bi, Ai fiind elementul i alvectorului A şi Bi elementul i al vectorului B. Este necesar ca elementele Ai şi Bi să segăsească în memoria locală a elementului de prelucare i, înainte de de execuţia instrucţiunii,dacă se foloseşte o arhitectură SIMD cu elemente de procesare care au propria lor memorie.Deci, există două tipuri de calculatoare vectoriale, primul tip folosind tehnici pipe-line, întimp ce al doilea tip foloseşte o matrice de elemente de procesare. Deşi au fost dezvoltate calculatoare SIMD destul de timpuriu, cum ar fi ILLIAC IVdezvoltat la University of Illinois şi construit de Burroughs Corporation în 1972, şi BSP -Burroughs Scientific Processor - dezvoltat la mijlocul anilor 70, marea majoritate a 117
    • producătorilor de calculatoare comerciale nu s-au arătat prea entuziasmaţi de această idee,preferând să construiască în continuare calculatoare SISD tradiţionale, cărora să le adaugecapabilităţi vectoriale folosind conceptul de bandă de asamblare. Variantele recente aleprocesorului Intel Pentium sunt prevăzute cu capabilităţi SIMD. Aplicaţiile prevăzute să fie rezolvate de calculatoarele SIMD sunt: - operaţii cu matrici: adunări, înmulţiri, inversări, valori proprii etc.; - rezolvarea unor ecuaţii diferenţiale dificile; - probleme de programare liniară; - analiză Fourier; - procesare de imagini şi recunoaştere a formelor etc. Calculatoarele SIMD pot să conţină elemente de prelucrare care operează pe un singurbit (aşa numitele calculatoare SIMD bit-slice), şi nu pe un cuvânt format din mai mulţi biţi(calculatoare word-slice). Aceste calculatoare SIMD bit-slice au ca aplicaţie principalăprelucrarea de imagini, întrucât o imagine este reprezentată ca o matrice de pixeli şi, de multeori, este necesară efectuarea aceleeaşi operaţii asupra fiecărui pixel, la o viteză mare. Ca exemple de calculatoare SIMD bit-slice pot fi date calculatorul CLIP, dezvoltat laUniversity College în Londra, şi MPP - Massively Parallel Processor, dezvoltat în 1983 laNASA şi destinat prelucrării imaginilor preluate prin satelit. Acest calculator MPP conţine omatrice de 128 x 128 = 16384 de microprocesoare bit-slice, care pot fi folosite în paralel, şicare sunt supervizate de o unitate de control. Deci, la aceste calculatoare, fiecare element deprelucrare este un microprocesor bit-slice care efectuează toate operaţiile aritmetico-logice peun singur bit, şi care este conectat la un anumit număr de microprocesoare vecine. 6.6. Sisteme multiprocesor cu memorie partajată Într-un sistem multiprocesor, mai multe procesoare independente operează asupra unorfluxuri de date separate, cooperând în rezolvarea unei anumite probleme. Comunicaţia dintreprocesoare se poate realiza fie printr-o memorie comună, partajată de toate procesoarele dinsistem, fie prin trimiterea unor mesaje de la un procesor la altul folosind legături directe întreprocesoare, caz în care fiecare procesor are propria lui memorie locală. În această secţiune sevor prezenta pe scurt numai sistemele multiprocesor cu memorie partajată. Există o mare diferenţă între un sistem de calcul multicalculator şi un sistemmultiprocesor. Un sistem multicalculator este compus din mai multe calculatoareindependente, care pot sau nu să comunice unul cu altul, un exemplu fiind sistemul de calculIBM Attached Support Processor System, în timp ce un sistem multiprocesor este controlat deun singur sistem de operare care supervizează toate activităţile procesoarelor interne. Unexemplu de sistem multiprocesor cu memorie partajată este sistemul Denelcors HEP. 118
    • Figura 6.5. Structura de principiu a unui sistem multiprocesor cu memorie partajată În sistemele multiprocesor cu partajare a memoriei, viteza de comunicaţie întreprocesoare este mare, egală cu viteza de acces la memoria comună, nefiind exclusă totuşifolosirea unei memorii cache locale fiecărui procesor, pentru a-i creşte acestuia viteza deprelucrare. De asemenea, este realizată o conectivitate completă între procesoare şi memoriacomună (sau mai multe module de memorie comună) prin intermediul unei reţele deinterconectare. Structura unui sistem multiprocesor cu memorie partajată este arătată în figura6.5. Au fost dezvoltate de-a lungul timpului mai multe modalităţi de interconectare întreresursele unui sistem multiprocesor, care constau în: - folosirea unei singure magistrale; - folosirea magistralelor locale şi de sistem; - utilizarea mai multor magistrale; - utilizarea unei reţele de comutatoare de conectare (cross-bar switch-based networks); - utilizarea unei memorii multiport. 119
    • Figura 6.6. Reţele de interconectare într-un sistem multiprocesor cu memorie partajată Utilizarea unei singure magistrale de comunicaţie este o tehnică potrivită pentru extensiimultiprocesor ale unui calculator uniprocesor, toate procesoarele din sistem folosindmagistrala comună prin diviziune în timp. Pentru a reduce numărul de cereri de ocupare amagistralei, fiecare procesor poate să aibă o memorie locală sau alte dispozitive locale, ce potfi accesate prin intermediul unei magistrale locale. Magistralele locale sunt conectate la omagistrală de sistem, prin intermediul căreia se accesează memoria globală şi resurseleglobale ale sistemului. Aceste tehnici sunt utilizate pe scară largă de producătorii decalculatoare comerciale. Într-un sistem cu mai multe magistrale, procesoarele pot să se conecteze la memoriacomună prin intermediul unei magistrale neocupate, din cele n magistrale ale sistemului, darnumai n conectări pot fi făcute la un moment dat între procesoare şi memoria comună saudispozitivele de I/E . 120
    • La sistemele ce folosesc o reţea de comutatoare de conectare sunt realizate legăturidirecte între procesoare şi modulele de memorie, prin intermediul unor comutatoareelectronice, care conectează toate liniile magistralei unui procesor la un modul de memorie.Ultima variantă foloseşte o memorie multiport pentru conectarea procesoarelor la memoriecomună. O memorie multiport este o memorie la care pot fi accesate mai multe locaţii dememorie la un moment dat. Reţelele de interconectare construite pe baza unei matrici de comutatoare sunt scumpe,fiind necesară efectuarea a N2 conectări simultane în cazul a N procesoare şi a N module dememorie, realizarea fiecărei legături implicând în mod obişnuit conectarea a zeci de semnale.Din această cauză au fost dezvoltate reţelele de interconectare multinivel (multistagenetworks), care au mai puţine comutatoare interne, realizarea unei legături între un procesor şiun modul de memorie implicând comutarea mai multor comutatoare electronice, situate pediferite nivele. Nu se permite însă, de regulă, realizarea simultană a tuturor legăturilor posibiledintre procesoare şi modulele de memorie, şi, de cele mai multe ori, anumite legături nu pot firealizate deloc. De fapt anumite legături sunt inutile şi nu are rost să fie realizate. Figura 6.7. Reţea de interconectare cu trei nivele de celule de comutare 2x2 De exemplu, în figura anterioară este prezentată o reţea cu trei nivele, în care fiecarecelulă de comutare a reţelei poate avea două stări: cu intrările cuplate direct la ieşiri, sau cuintrările cuplate încrucişat. 6.7. Sisteme multiprocesor fără memorie partajată. Transputere. Aceste sisteme multiprocesor nu folosesc o memorie globală, ci fiecare procesor arememoria lui locală, şi comunică cu celelalte procesoare prin mesaje transmise pe legăturidirecte între procesoare. Aceste tipuri de sisteme nu vor înregistra un număr mare de conflictede acces la memoria globală, aşa cum se întâmplă în sistemele multiprocesor cu memoriepartajată, şi care reduc considerabil viteza de calcul a sistemelor respective. Structuragenerală a unui sistem multiprocesor fără memorie partajată este arătată în figura 6.8. 121
    • Un procesor împreună cu memoria locală şi interfeţele proprii de I/E este denumit, deregulă, modul calculator. Memoria locală a unui modul calculator poate fi accesată numai deprocesorul modulului respectiv. Fiecare nod sau modul calculator execută unul sau mai multeprocese, procesorul local al nodului executând numai un singur proces la un moment dat, ca înorice calculator clasic von Neumann. De asemenea, fiecare nod conţine, în memoria ROMproprie, un nucleu al unui sistem de operare, care programează procesele din nodul respectivşi realizează operaţiile de transmitere şi recepţionare a mesajelor. Întregul sistemmultiprocesor este controlat de un calculator gazdă. Figura 6.8. Structura de principiu a unui sistem multiprocesor cu transfer de mesaje între procesoare. Programatorul poate decide "granularitatea" proceselor ce se execută în fiecare nod.Dacă se alege o granularitate fină, fiecare proces fiind compus din câteva instrucţiuni, rezultăo creştere a numărului de mesaje schimbate între procesoare şi deci o aglomerare a mediuluide comunicaţie, ducând la deteriorarea performanţelor sistemului. Procesele cu granularitatemare, ce conţin un număr mare de instrucţiuni, necesită memorii locale de ordinulmegaocteţilor, în timp ce procesele cu granularitate fină necesită memorii locale de ordinulzecilor de kiloocteţi. Procesele cu granularitate fină pot fi găsite în sistemele multiprocesororientate pe flux de date. Majoritatea sistemelor multiprocesor fără memorie partajată folosescprocese cu granularitate medie. Pentru un număr mic de procesoare în sistem, se obţin performanţe mai bune dacă seutilizează o memorie comună partajată de procesoarele din sistem, sistemele multiprocesorfără memorie partajată fiind adecvate atunci când se doreşte un număr mare de procesoare însistem, aceste sisteme fiind mai ieftine şi pretându-se la o implementare uşoară în VLSI,fiecare nod sau modul calculator fiind implementat pe un singur cip. Pentru o mai mareperformanţă, procesele care se execută într-un sistem multiprocesor fără memorie partajatătrebuie să fie computaţional intensive şi nu orientate pe schimb de mesaje. Atât sistemele 122
    • multiprocesor cu memorie partajată, cât şi cele fără memorie partajată, pot realiza prelucrăriSIMD, deşi ultimele sunt mult mai adecvate numai pentru prelucrări MIMD. Există diferite scheme posibile de interconectare a procesoarelor dintr-un sistemmultiprocesor fără memorie partajată. Reţelele de interconectare folosite în aceste sistemesunt reţele statice de interconectare, care permit legături fixe directe între două noduri, şi nusunt reţele dinamice de interconectare, aşa cum folosesc sistemele multiprocesor cu memoriepartajată. O reţea de interconectare exhaustivă a n noduri va permite fiecărui nod să aibă olegătură directă către oricare alt nod din sistem. Totuşi, aceste reţele nu sunt economice,preferându-se limitarea posibilităţilor de conectare ale fiecărui nod numai la un anumit numărde noduri vecine. De exemplu, fiecare nod poate fi legat numai la doi din vecinii săi, formându-se o reţealiniară de tip inel (fig 6.9a), sau la patru din vecinii săi, formându-se o reţea de tip tabloubidimensional (fig 6.9b), această structură pretându-se la o implementare uşoară în VLSI, etc.În cazul unei reţele organizate sub forma unui hipercub, fiecare nod are o anumită adresă,reprezentată sub forma unui număr binar pe un anumit număr de biţi. Se va forma unhipercub, dacă se conectează fiecare nod din sistem cu toate nodurile a căror adresă diferădoar printr-un bit de adresa nodului respectiv. În figura 6.9e este prezentat un hipercubtridimensional. Figura 6.9. Reţele statice de interconectare a procesoarelor, într-un sistem multiprocesor fără memorie partajată. 123
    • Un exemplu de sistem multiprocesor comercial fără memorie partajată, cu o reţea deinterconectare de forma unui hipercub, este sistemul IPSC/1 - Intel Personal SuperComputer -dezvoltat la mijlocul anilor 80. Fiecare nod conţine un I80286, un I80287, 64 Kocteţi dememorie ROM şi o memorie RAM duală de 512 Kocteţi, care poate fi accesată atât deprocesorul nodului, cât şi de calculatorul gazdă. Toate nodurile sunt controlate de uncalculator gazdă, numit "cub manager", ce conţine 2 - 4 Mocteţi de memorie RAM, unităţi dedisc flexibil şi de hard disk, şi care operează sub sistemul de operare XENIX. Fiecare nodconţine în memoria ROM proprie un mic sistem de operare numit NX. De asemenea, fiecarenod are 8 canale de comunicaţie, 7 dintre ele folosite pentru comunicarea cu alte 7 noduri dinhipercub, şi un canal Ethernet folosit pentru comunicaţia cu calculatorul gazdă. Comunicaţiape legăturile hipercubului este de 10 - 20 de ori mai rapidă decât comunicaţia cu calculatorulgazdă pe cablul Ethernet. Sistemul IPSC/2 are aceeaşi structură ca şi IPSC/1, numai căfoloseşte procesoarele I80386 şi I80387, în locul perechii de procesoare I80286/I8027. Înfigura următoare este prezentată structura unui nod IPSC/1. Figura 6.10. Structura unui nod IPSC/1 Un transputer este un circuit VLSI produs de firma INMOS din Marea Britanie, careconţine un procesor pe 16 sau 32 de biţi ce implementează concepte RISC, o memorie internăpe cip, şi mai multe legături de comunicaţie externă către alte transputere, într-un sistemmultiprocesor. În mod obişnuit, fiecare transputer are 4 canale DMA de mare viteză, cu carese poate conecta la alte 4 transputere, într-o structură de tip tablou bidimensional sau într-oaltă structură. 124
    • Primul transputer - T212, realizat în 1983, conţine un procesor aritmetic pe 16 biţipentru operaţii cu numere întregi, transputerul T414, realizat în 1985, conţine un procesoraritmetic similar, dar pe 32 de biţi, în timp ce transputerul T800, realizat în 1988, conţine unprocesor aritmetic pe 32 de biţi în virgulă mobilă. Primele transputere aveau 4 legături serialela 10 Mbiţi/sec şi 2 Kocteţi de memorie RAM pe cip. Următoarele transputere conţin omemorie RAM mai mare şi legături externe mai rapide. Prin interfaţa de memorie din figura6.10, transputerului i se poate ataşa o memorie externă. Figura 6.11. Structura internă a unui transputer. Informaţia transmisă sau recepţionată pe legăturile externe ale transputerului esteorganizată în pachete, fiecare transmisie a unui pachet de date către un alt transputer fiindurmată de un răspuns al acestuia din urmă, care va trimite către primul transputer un pachet derecunoaştere. Pentru utilizarea transputerelor, a fost dezvoltat limbajul OCCAM, care furnizeazăprimitive pentru transferul datelor şi pentru implementarea conceptelor de programareparalelă. Un proces, în limbajul OCCAM, este format din una sau mai multe instrucţiuniprogram, care pot să fie executate secvenţial sau în paralel. Pe fiecare transputer suntexecutate în mod concurenţial unul sau mai multe procese. 6.8. Sisteme multiprocesor orientate pe flux de date 125
    • Calculatoarele descrise în secţiunile anterioare urmăresc într-o mai mică sau mai maremăsură conceptele de bază ale unui calculator von Neumann. Într-un calculator orientat peflux de instrucţiuni, datele sunt "pasate" de la o instrucţiune la alta prin intermediul unorlocaţii de memorie, la care au acces toate instrucţiunile. O dată sau un operand al uneiinstrucţiuni este referit prin intermediul adresei locaţiei de memorie care conţine data sauoperandul respectiv. Acesta este conceptul de variabilă utilizat în calculatoarele vonNeumann. În aceste calculatoare, fluxul de instrucţiuni este implicit secvenţial, deşi pot fifolosiţi şi operatori care să specifice o prelucrare paralelă. Într-un calculator orientat pe flux de date, o instrucţiune este executată atunci cândoperanzii ceruţi de instrucţiunea respectivă devin disponibili. De asemenea, nu existăconceptul de locaţii de memorie partajate de instrucţiuni şi folosite pentru stocarea datelor, înaccepţiunea tradiţională de variabilă. Secvenţa de instrucţiuni ce se execută depinde numai dedisponibilitatea datelor pentru aceste instrucţiuni. În acest fel instrucţiunile sunt executateasincron, neexistând un program care să controleze secvenţa acestor instrucţiuni, fiindposibilă execuţia mai multor instrucţiuni simultan şi realizarea, în acest mod, al unui înaltgrad de paralelism. Operanzii sunt pasaţi unei instrucţiuni sub forma unor drepturi sau permisiuni de autiliza valori (tokens), şi nu ca adrese ale unor variabile din memorie. Datorită faptului cădatele sunt pasate direct de la o instrucţiune la alta, şi nu prin intermediul unor adrese ale unorlocaţii de memorie partajate de către instrucţiuni, în sistemele orientate pe flux de date nu potapare efecte laterale. Un sistem orientat pe flux de date operează cu două entităţi de bază : pachete de operaţiişi token-uri de date. Un pachet de operaţii conţine codul operaţiei care se execută, operanzii şidestinaţia rezultatului (instrucţiunea următoare). Un token este format dintr-o valoare rezultat,împreună cu destinaţia acestei valori. Datorită acestui schimb de pachete şi de token-uri întreresursele sistemului, sistemele orientate pe flux de date pot fi considerate un caz particular desisteme multiprocesor cu schimb de mesaje între procesoare. Pentru a descrie o prelucrare, modelele orientate pe flux de date folosesc un aşa numitgraf al fluxului de date. Nodurile grafului indică operaţiile ce se efectuează, arcele grafuluiindicând fluxul de date între noduri. Operaţia dintr-un nod se execută când toate informaţiilecerute de nodul respectiv sunt disponibile. Un nod necesită unul sau mai mulţi operanzi şiproduce unul sau mai multe rezultate. Deîndată ce toţi operanzii sunt disponibili la intrărilenodului, nodul respectiv este activat realizându-se operaţia din nod, după care se paseazărezultatele de-a lungul unor arce, către nodurile ce aşteaptă aceste rezultate. Procesul se repetăpână când ultimul nod din graf a fost activat şi s-a obţinut rezultatul final. Aşa cum s-amenţionat anterior, mai multe operaţii pot fi executate simultan, prin activarea în acelaşi timpa mai multor noduri. 126
    • Graful pentru calculul expresiei E = A/B + B*C conţine pe lângă nodurile carerealizează operaţiile de înmulţire, împărţire, adunare, şi un nod special - COPY - care produceo copie a variabilei de intrare B (vezi figura 6.11a). După aplicarea variabilelor de intrare, sepoate executa numai operaţia din nodul COPY, care nu necesită decât un singur operand (B),iar acesta este disponibil. După ce este executată operaţia din nodul COPY, se vor executa înparalel operaţiile din nodurile de înmulţire şi împărţire, iar după ce sunt încheiate operaţiiledin ambele noduri, este activat nodul de adunare care produce rezultatul dorit. Figura 6.12. Graful fluxului de date pentru calculul expresiei E = A/B + B*C, structura nodurilor MERGE şi BRANCH. Bineînţeles că trebuie să existe şi noduri specializate pentru realizarea operaţiilor dedecizie. Aceste noduri sunt prevăzute în plus cu o intrare booleană, în funcţie de care serealizează decizia. Într-un nod MERGE, dacă condiţia este adevărată, token-ul operandului Aeste pasat la ieşire, dacă intrarea de condiţie este falsă, se va pasa la ieşire token-ul variabileiB. În nodurile BRANCH, care au o singură intrare şi două ieşiri, dacă condiţia este adevărată,token-ul variabilei de intrare este pasat pe ieşirea din stânga, activând nodurile succesivearcului din stânga, dacă condiţia este falsă, token-ul este pasat pe ieşirea din dreapta. Deasemenea, cu ajutorul altor noduri specializate, se pot executa şi bucle sau cicluri în cadrulgrafului fluxului de date ce reprezintă un anumit model de calcul. 127
    • Arhitecturile de calculatoare orientate pe flux de date pot fi clasificate în două maricategorii: arhitecturi statice şi arhitecturi dinamice. Într-o arhitectură statică, pe un arc se poate pasa de la un nod la altul al grafului numaiun token la un moment dat. Într-o asemenea arhitectură, trebuie utilizate token-uri de control,pentru a specifica momentul potrivit de transfer al token-urilor de la un nod la altul. Operaţiiledintr-un nod se execută când toţi operanzii sunt prezenţi pe arcele de intrare. La arhitecturiledinamice este permisă existenţa mai multor token-uri pe un arc, fiecare token având o etichetăce specifică contextul particular în care se poate utiliza token-ul respectiv. Figura 6.13. Structura de tip inel a unui sistem multiprocesor orientat pe flux de date. Atât maşinile statice, cât şi cele dinamice, au o arhitectură simplificată de tip inel (vezifigura 6.12), ce conţine patru secţiuni principale. Secţiunea de memorie este folosită pentru astoca pachetele de instrucţiuni. Unităţile de procesare permit execuţia în paralel a mai multorinstrucţiuni activate. Reţeaua de dirijare pasează token-urile rezultat către instrucţiunileurmătoare, corespunzătoare nodurilor destinaţie ale arcelor de-a lungul cărora se paseazătoken-urile. Secţiunea de intrare/ieşire este o interfaţă între sistemul orientat pe flux de date şilumea exterioară. Majoritatea maşinilor orientate pe flux de date sunt realizate sub forma unuiprocesor ataşat la un calculator gazdă, care realizează operaţiile de intrare/ieşire şi de 128
    • translatare a codului, şi s-ar părea că prelucrarea orientată pe flux de date va deveni o tehnicăgeneralizată la fel ca şi conceptul de bandă de asamblare. Totuşi se poate spune că sistemele orientate pe flux de date, ca şi limbajele orientate peflux de date, deşi au atras atenţia multor cercetători cu mulţi ani în urmă, de-abia în ultimaperioadă au fost dezvoltate câteva asemenea sisteme, cum ar fi maşina propusă de JackDennis la MIT (Massachusetts Institute of Technology), sistemul EDDY în Japonia, maşinaManchester în Anglia, sistemul francez LAU, maşina UTAH, maşina Newcastle etc. 129
    • 7. SISTEME DE OPERARE 7.1. Generalităţi La pornirea calculatorului, este efectuat un autotest care controlează memoria RAM,încearcă să identifice fiecare dispozitiv de stocare conectat, şi verifică dacă există oimprimantă conectată la sistem şi starea acesteia (închisă sau deschisă). Aceste secvenţe deinstrucţiuni sunt stocate în BIOS (Basic Input Output System), într-o memorie ROM al căruiconţ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 AndPlay), 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 unuisistem de calcul prin intermediul BIOS-ului, asigurând executarea lanţurilor de sarcini alesistemului. Sistemul de operare furnizează şi un set de funcţii standard, care pot fi utilizate deaplicaţii pentru comunicarea cu BIOS-ul, şi deci implicit cu resursele hardware alecalculatorului. În cursul utilizării calculatorului, sistemul de operare are datoria de a informadespre buna (sau nu) funcţionare a dispozitivelor periferice. Sistemul de operare gestioneazăoperaţiile de intrare şi ieşire, prin monitorizarea şi controlarea fluxului de date şi aprogramelor în execuţie. Tot el este responsabil de alocarea resurselor sistemului, atribuireade resurse hardware diverselor programe şi funcţii, pentru a asigura funcţionarea eficientă acalculatorului. Figura 7.1.1. Calculatorul privit prin prisma utilizatorului Sistemul de operare este cel care determină numărul de utilizatori ce pot obţine acces lacalculator şi la resursele sale, în acelaşi timp. După numărul de utilizatori ce pot lucra la un 130
    • moment dat pe sistem, se pot diferenţia sisteme de operare monoutilizator şi sisteme deoperare multiutilizator. După numărul de task-uri, sau programe, pe care le poate rula unutilizator la un moment dat, sistemele de operare pot fi împărţite în sisteme monotasking şisisteme multitasking. Sistemul de operare este conceput pentru a lucra pe o anumită arhitectură hardware. Deexemplu, un sistem de operare proiectat pentru un calculator Macintosh nu va funcţiona pe unPC compatibil IBM. Astfel, sistemele de operare sunt dedicate unei anume structurihardware. Există şi sisteme de operare care funcţionează pe mai multe tipuri de platformehardware (Windows NT pe Intel x86 şi DEC Alpha; SUN Solaris pe Intel x86 sau SPARC;Linux pe x86, SPARC, DEC Alpha, Macintosh; etc.) Software de sistem Sisteme de Drivere de Limbaje de operare dispozitiv programare Programe Software utilitare de aplicatie Software Software Software Software Software de pentru pentru pentru educativ productie afaceri administrare distractie Baze de date Grafica Tehnoredactare Comunicatii computerizata Calcul Diverse tabelar utilitare Figura 7.1.2. Tipuri de software existente într-un calculator Toate sistemele de operare conţin o interfaţă cu utilizatorul, ce reprezintă modalitateaprin care utilizatorul introduce comenzi sau lansează aplicaţii. Partea exterioară (shell) a 131
    • sistemului de operare este cea care preia comenzile de la utilizator, şi le transferă cătrenucleul (kernel) sistemului de operare, care alocă în acel moment un loc în lanţul de execuţieal sarcinilor din sistem. În funcţie de sistemul de operare, interfaţa cu utilizatorul poate fibazată pe grafică sau poate fi numai în mod text. Dacă nucleul permite accesul la resurselesistemului aparent simultan (prin tehnici de time-sharing) pentru mai mulţi utilizatori, atuncisistemul 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 creasenzaţia de simultaneitate a execuţiei. În caz contrar, pe sistemele monotasking, nici un altproces nu poate fi lansat până la terminarea celui aflat în curs de execuţie. Exemple de sisteme de operare:- MS-DOS – este produs de firma Microsoft, pentru platforme x86, este monotasking, monoutilizator, şi are interfaţa cu utilizatorul în mod text. Peste el se pot instala însă interfeţe grafice, cum ar fi Microsoft Windows 3.xx. Există şi variante ale acestui sistem care sunt multitasking, cum ar fi OpenDOS sau DR-DOS, produse actualmente de Caldera, sau PC-DOS al firmei IBM. Nu se scalează pe mai multe procesoare.- Windows NT – produs de firma Microsoft, multitasking, monouser, interfaţă grafică conţinută în nucleul sistemului. Există pentru mai multe platforme hardware: x86, PowerPC, Alpha, MIPS. Din septembrie 1998 există şi versiuni care sunt multiutilizator.- Familia UNIX – sunt sisteme de operare multitasking, multiutilizator. Interfaţa cu utilizatorul este la bază text, însă toate variantele sunt dotate şi cu sistem grafic. Există pentru mai toate platformele hardware, în funcţie de producător. Cele mai renumite variante sunt: Linux, SUN Solaris, HP-UX (HP), AIX (IBM), IRIX (SGI), DEC Unix, SCO Unix.- VMS, OpenVMS – produs de firma DEC, multiutilizator, multitasking. VMS-ul are interfaţă cu utilizatorul în mod text, OpenVMS-ul în mod grafic. În concluzie, un calculator funcţionează datorită sistemului de operare instalat, şianume prin interacţiunea sa cu resursele hardware ale calculatorului. Peste acest stratsoftware, al sistemului de operare, ce are rolul de a interfaţa utilizatorul cu resurselehardware, se instalează aplicaţiile care vor fi instrumente de lucru ale beneficiarilorsistemului de calcul. În figura 7.1.2 este prezentată o diagramă a tipurilor majore de softwareexistente într-un calculator. 7.1.1. Interfeţe text şi interfeţe grafice. În cadrul unei interfeţe bazate pe text, numită mediu alfanumeric, utilizatorul tasteazăcomenzi pentru a da instrucţiuni calculatorului. Sistemele de operare ale calculatoarelor 132
    • personale utilizează interfeţe cu linii de comandă, care permit introducerea de la tastatură aunei 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ă fiecareinstrucţiune scrisă, utilizatorul trebuie să apese tasta Enter pentru a demara prelucrareacomenzii respective. MS-DOS-ul, care este un exemplu de sistem de operare în mediualfanumeric, acceptă şi prelucrează instrucţiunile pe baza unei biblioteci de instrucţiuniinclusă în sistemul de operare. În mod analog, se pot lansa în execuţie şi comenzile şiprogramele externe sistemului de operare. Există şi anumite programe de interfaţare cumouse-ul al sistemului de operare MS-DOS (cum ar fi NORTON COMMANDER), carepermit utilizatorului să lanseze comenzi cu ajutorul mouse-ului. UNIX-ul este de asemenea un sistem de operare cu o interfaţă în mod text. În figura 7.1.3. este prezentat ecranul unei astfel de interfeţe în mod text, exemplul alesfiind o linie de comandă MS-DOS. Interfeţele grafice au apărut ca urmare a cererii din partea utilizatorilor pentru un mediuuşor de exploatat, şi care să aibă şi posibilitatea afişării unor grafice pe ecran. Primul sistemcare utiliza o interfaţă grafică a fost sistemul Lisa, care a fost apoi adaptat pentru calculatoareMacintosh. Acest sistem a suferit numeroase îmbunătăţiri până în prezent, dar a fost cel carea 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 ada 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 dinmeniuri, aflate într-o aplicaţie ce se substitue shell-ului sistemului de operare. Figura 7.1.3. Exemplu de interfaţă în mod text În 1985 a apărut sistemul Microsoft Windows, care nu era un sistem de operare, ci unmediu grafic pentru MS-DOS. Un mediu grafic reprezintă mai puţin decât un sistem deoperare, deoarece funcţionarea sa se bazează pe existenţa unui asemenea sistem. Windows 133
    • (3.xx, 95 sau 98), care în esenţă reprezintă un înveliş pentru MS-DOS, primeşte instrucţiuniprin intermediul mouse-ului şi le transformă în comenzi care pot fi executate de MS-DOS. Primele versiuni de Windows (1.0, 2.0) nu au avut succes. În 1987, IBM şi Microsoftau început lucrul la o interfaţă grafică care îşi propunea să înlocuiască DOS-ul şi Windows-ul. Astfel s-a născut un nou sistem de operare, numit OS/2. Microsoft a lansat în 1990Windows 3.0, şi apoi o versiune îmbunătăţită 3.1. Acest mediu a devenit un concurent seriospentru OS/2, şi a fost dezvoltat în continuare de Microsoft. În 1995, această firmă a lansatWindows 95, care este mai mult decât un mediu de operare, incluzând şi funcţii alesistemului MS-DOS în mediul integrat Windows. În paralel, Microsoft a dezvoltat şi un sistem de operare cu interfaţă graficămultiutilizator, Windows NT. În figura 7.1.4. este prezentată o imagine a acestei interfeţeigrafice. Figura 7.1.4. Interfaţa grafică Windows NT Pentru sistemele Unix, care folosesc medii bazate pe text, au fost create diverseinterfeţe grafice care se instalează peste sistemul de operare. Există multe tipuri de interfeţegrafice pentru această familie de sisteme de operare, majoritatea dintre ele fiind grupate subdenumirea 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 ladistanţă şi obţinerea rezultatului grafic pe un terminal local. Un exemplu răspândit pentruUnix-urile de firmă (HP-UX, Ultrix, Solaris, etc.) este CDE. În figura 7.1.5, este prezentat unecran al interfeţei grafice CDE pentru Solaris. 134
    • Figura 7.1.5. Ecran al interfeţei grafice CDEFigura 7.1.6. Ecran al interfeţei grafice KDE 135
    • Pentru Linux, interfeţele grafice sunt numeroase, datorită aspectului academic şi “freesoftware” al acestui sistem de operare. Fiecare interfaţă are specificaţii proprii, şi nu sunttoate compatibile între ele. Cel mai răspândit sistem grafic este “fvwm” şi, în ultimii ani,KDE. Un ecran al interfeţei KDE este prezentat în figura 7.1.6. 7.1.2. Partiţionarea şi formatarea discurilor Informaţiile sunt stocate pe discuri magnetice sub formă de fişiere, blocuri deinformaţie în format binar care capătă sens pentru aplicaţia care le foloseşte. Pentru aorganiza fişierele, fiecare sistem de operare foloseşte un model de structurare a fişierelor, decele mai multe ori de formă arborescentă, după cum se va vedea în continuare. Spaţiul disponibil pe un dispozitiv de stocare (în general hard-disk) se organizează subformă de partiţii, fiecare partiţie fiind văzută ca o unitate de disc proprie. Acestea permite caacelaşi disc să poată fi folosit de mai multe sisteme de operare, fiecare sistem folosindpartiţiile într-un mod propriu. Pentru a structura spaţiul de memorare al unui disc, pe oanumită partiţie, se aplică o operaţiune de formatare. Formatarea discului poate fi de douăfeluri:- formatare de nivel inferior sau formatare fizică (low-level format): Prin această acţiune pistele discului sunt împărţite într-un anume număr de sectoare, prin scrierea informaţiile de delimitare a sectoarelor pe pistă, informaţii care sunt necesare controlerului de disc. Pentru discurile fixe, există programe speciale de formatare fizică, de cele mai multe ori furnizate de fabricantul discului dur (disk manager), sau aceste programe sunt incluse în unele variante de BIOS. Pentru dischete se folosesc programe furnizate de sistemele de operare.- formatare de nivel superior sau formatare logică (high-level format): Este o operaţie care se efectuează din sistemul de operare folosit, şi este prin urmare specifică acestuia. În cadrul formatării logice se scriu structurile necesare pentru gestionarea fişierelor şi a structurilor aferente (directoare). Spre deosebire de formatarea fizică, în cadrul căreia se scriu efectiv pistele şi sectoarele discului, formatarea logică constă, de fapt, în crearea unei tabele cu conţinutul util al discului, ce va fi folosită de sistemul de operare pentru a scrie şi apoi regăsi fişierele pe disc. Prima operaţie care se efectuează asupra unui hard disk este formatarea fizică, aceastafiind independentă de sistemul de operare, şi caracteristică unităţii de disc. Urmează apoipartiţionarea, care este operaţiunea de segmentare a discului în mai multe regiuni, numitepartiţii. Fiecărei partiţii i se atribuie şi un identificator (tipul partiţiei), specific sistemului de 136
    • operare care îşi va pune sistemul de fişiere pe partiţia respectivă. În timpul partiţionării,indiferent de sistemul de fişiere specificat, soft-ul de partiţionare scrie un program specialfolosit pentru iniţializarea calculatorului (Boot) şi o tabelă de partiţii, pe primul sector de pedisc, numit sector de boot (Master Boot Sector). Deoarece termenul de înregistrare, în acestcaz, este folosit şi cu sensul de sector, acest sector mai poate fi numit şi înregistrare de boot(Master Boot Record). Dintre toate partiţiile create pe un hard disk, una singură trebuiemarcată ca fiind “activă”, adică reprezentând partiţia de pe care se va încărca sistemul deoperare la pornirea calculatorului. După crearea partiţiilor, care vor găzdui sistemele de fişiere, se formatează logic fiecarepartiţie, în funcţie de sistemul de operare ales. Astfel, pe acelaşi disc pot coexista mai multesisteme de operare (sisteme multi-boot) care pot fi pornite separat. Pentru discuri flexibile, de cele mai multe ori, sistemul de operare folosit pune ladispoziţie un utilitar de formatare. Acesta realizează atât formatarea fizică, cât şi cea logică. Fiecare sistem de operare are specificaţiile proprii pentru atribuirea de identificatoridiverselor partiţii formatate:- MS-DOS-ul (şi sistemele din această categorie) atribuie fiecărui volum (partiţie) o adresă logică notată cu o majusculă, începând cu litera C şi respectând ordinea alfabetică. Literele A şi B sunt rezervate pentru unităţile de disc flexibil.- Windows NT procedează în mod asemănător, începând la fel cu litera C, însă permite schimbarea literelor asignate în timpul funcţionării.- Linux-ul (şi familia sistemelorUnix) are nevoie de o partiţie principală numită “rădăcină” care este notată cu “/”, iar celelalte partiţii existente apar sub formă de directoare ale acestei rădăcini. Se foloseşte de asemenea un tip de format logic propriu fiecărui sistem de operare, pentrufiecare partiţie a unui hard disk, acesta numindu-se tipul partiţiei. Un sistem de operare poateciti date de pe mai multe tipuri de partiţii. Iată câteva tipuri de partiţii existente: - FAT (File Allocation Table) 16 sau 32 - specifice DOS-ului sau Windows-ului 95; - NTFS (NT File System) - specific Windows-ului NT; - Extended 2 – folosit de Linux; - HPFS (High Performance File System) – caracteristic mediului OS/2; - ISO9660 – folosit pentru CD-ROM. Modul de organizare logică a informaţiei pe partiţie este diferit pentru fiecare tip departiţie. În subcapitolele următoare se va detalia modul de organizare logică a informaţieipentru fiecare sistem de operare în parte. 137
    • 7.2. Sistemul de operare MS-DOS Sistemul de operare MS-DOS este o interfaţă simplă între utilizator şi hardware-ulcalculatorului. Deşi sistemul de operare MS-DOS a fost dezvoltat pentru primele variante decalculatoare personale ale firmei IBM (IBM PC), fiind total neadecvat pentru calculatoarelepersonale IBM care au la bază un microprocesor I80386, I80486 sau chiar Pentium, şi caresuportă sisteme de operare mult mai puternice, totuşi datorită simplităţii şi faptului că există omare diversitate de programe scrise pentru acest sistem de operare, MS-DOS rămâne unul dincele mai populare sisteme de operare. În dezvoltarea sa, proiectanţii sistemului de operare MS-DOS s-au inspirat din cele mairăspândite două sisteme de operare la momentul respectiv: CP/M, unanim acceptat pemicrocalculatoarele pe 8 biţi şi care în prezent nu se mai comercializează, şi UNIX, un numede referinţă în cadrul sistemelor de operare, şi care tinde să devină unul din cele mai utilizatesisteme de operare. De la CP/M, MS-DOS a împrumutat ideea independenţei faţă de echipament, realizatăprin introducerea BIOS-ului (Basic Input Output System), numele unor comenzi (ERA, DIR,TYPE etc.), parţial modul de organizare a informaţiei pe disc etc. De la UNIX s-a împrumutat structura arborescentă a sistemului de fişiere, înlănţuireaunităţilor de alocare pe disc ( "clusters") ale unui fişier, ideea folosirii propriului interpretorde comenzi ( Shell ) etc. Caracteristicile principale ale sistemului de operare MS-DOS sunt : - lucrează cu un singur utilizator, rulând un singur program la un moment dat (sistem de operare monouser - monotasking ); - proceduri avansate de detecţie a erorilor; - dispozitive de intrare / ieşire independente, MS-DOS asignând un nume de fişier rezervat fiecărui echipament de intrare / ieşire; - realocabilitatea completă a programelor, fiind posibilă rularea aceluiaşi program de la mai multe adrese de încărcare; - structură de fişiere eficientă şi rapidă; - contabilizarea datei şi timpului. 7.2.1. Sistemul de fişiere. Structura discului sub MS-DOS. Sistemul de operare este programul care intră în funcţiune atunci când calculatorul estepus sub tensiune. Sistemul de operare MS-DOS are trei părţi componente: - interpretorul de comenzi, conţinut în fişierul COMMAND.COM; 138
    • - fişierul DOS.COM, care mai poate fi găsit şi sub alte denumiri: MSDOS.SYS sau IBMDOS.COM depinzând de versiunea sistemului de operare; - fişierul BIO.COM (sau IO.SYS, IBMBIO.COM), care conţine o parte a sistemului de intrări / ieşiri de bază - BIOS, cealaltă parte fiind rezidentă în memoria ROM a calculatorului. Deorece discurile magnetice sunt cele mai utilizate dispozitive de memorie externă, îndezvoltarea sistemului de operare MS-DOS, o mare atenţie a fost acordată organizăriifişierelor pe aceste tipuri de dispozitive de memorie externă. Atât discurile flexibile cât şidiscurile de mare capacitate ( hard disks ) au aceeaşi organizare sub MS-DOS. Pe discul magnetic, informaţia (programe sau date necesare acestor programe) estestocată în fişiere. Fişierul reprezintă acelaşi lucru pentru discul magnetic, pe care îl reprezintăo carte pentru o bibliotecă. Fiecare fişier are un identificator de fişier (sau nume) asociat, compus din douăcâmpuri: - nume (filename) - format din 1..8 caractere alfanumerice, mai puţin caracterele . " / : | < > + = ; - extensie (extension) - format din maximum 3 caractere alfanumerice, mai puţin caracterele date mai sus. În cadrul identificatorului de fişier, cele două câmpuri sunt scrise împreună şi despărţitede caracterul "." (punct). Câmpul extensie desemnează, de regulă, tipul fişierului. Există extensii standardrecunoscute de MS-DOS, cum ar fi: COM, EXE pentru programe executabile, BAT pentrufişiere de comenzi, SYS pentru drivere sistem etc., şi extensii adoptate prin tradiţie deutilizatorii sistemului de operare MS-DOS, cum ar fi: PAS pentru fişiere sursă PASCAL, Cpentru fişiere sursă C, ASM pentru fişiere sursă scrise în limbaj de asamblare, DOC pentrufiş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 pedisc (numărul sectoarelor ocupate de fişier pe disc) etc., sunt conţinute într-un catalog saudirector, la fel cum numele tuturor cărţilor dintr-o bibliotecă, împreună cu informaţiile deregăsire a acestora în bibliotecă, sunt conţinute într-un catalog sau index al biblioteciirespective. Deci, mai multe fişiere pot fi reunite formând un director, care la rândul lui are un numeşi o extensie la fel ca orice fişier. Într-un director se pot găsi fişiere, precum şi unul sau maimulte directoare (subdirectoare), care la rândul lor pot să conţină alte fişiere sau subdirectoareş.a.m.d. Aşadar, avem de-a face cu o structură logică arborescentă pe subdirectoare a discului,structură împrumutată de la sistemul de operare UNIX. Există un director cu statut special,care reprezintă originea arborelui de subdirectoare şi care poartă numele de director rădăcină. 139
    • Un exemplu de organizare a discului sub forma unui arbore de subdirectoare este arătat înfigura 7.2.1. Figura 7.2.1. Exemplu de organizare a discului sub MS-DOS Dacă din punct de vedere logic un disc este văzut ca o mulţime de fişiere grupate într-ostructură arborescentă de directoare, din punct de vedere fizic, informaţia este scrisă pe discde-a lungul unor cercuri concentrice, numite piste, fiecare pistă fiind împărţită în sectoare cudimensiunea de 512 octeţi. Capul de citire/scriere al unităţii de disc se mişcă de la o pistă laalta în timp ce discul se roteşte, permiţând astfel capului de citire/scriere să găsească locul din/ în care trebuie să citească sau să scrie. Mai multe amănunte legate de organizarea fizică adiscurilor magnetice au fost prezentate în capitolul 5. Fiecare volum logic (o unitate fizică întreagă cum este discul flexibil, sau o partiţiehard) este "văzut" ca o secvenţă continuă de sectoare logice, începând cu sectorul logic 0. Aşacum s-a arătat în capitolul precedent, discul fix (hard disk-ul) poate fi împărţit în mai multepartiţii logice, care pot fi utilizate ca discuri independente, ca şi cum am dispune de mai multehard disk-uri de capacitate mai mică. Orice fişier conţine unul sau mai multe sectoare. În sistemul de operare MS-DOS, nueste 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 dealocare a fişierelor - FAT (File Allocation Table). Din punct de vedere funcţional, un disc este împărtit în 4 zone: - BOOT - zonă în care se găseşte programul de încărcare al sistemului de operare,localizată în sectorul logic 0 al discului flexibil, sau în sectorul logic 0 al partiţiei DOS active,în cazul discurilor hard. - DIR - zonă în care se găseşte directorul rădăcină, organizată sub forma unui tabel,fiecare intrare în tabel (linie din tabel), de 32 de octeţi, conţinând toate informaţiile despre unfiş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 fostcreat sau modificat ultima dată fişierul, în octeţii 24-25 data creării sau ultimei modificări afişierului, în octeţii 26-27 numărul primului cluster al fişierului, în octeţii 28-31 dimensiunea 140
    • fişierului în octeţi etc. Directorul rădăcină are un număr limitat de intrări, depinzând de tipuldiscului: - 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ţă, sepăstrează două copii ale tabelei de alocare a fişierelor, astfel încât atunci când una din tabeleeste distrusă, se poate folosi cealaltă tabelă, prevenindu-se pierderea informaţiei de pe totdiscul, 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 segăsesc fişierele sistem IO.SYS şi MSDOS.SYS, care ocupă şi primele două poziţii îndirectorul rădăcină. MS-DOS împarte spaţiul pe disc în unităţi de alocare sau cluster-e. Numărul de sectoareconţinute într-un cluster depinde de tipul şi capacitatea discului magnetic. Pentru discurileflexibile simplă faţă, un cluster conţine un singur sector; pentru discurile flexibile dublă faţă,un cluster conţine două sectoare etc. Cluster-ele sunt numerotate în funcţie de poziţia fizicăocupată de acestea pe disc. Primul cluster de pe disc va conţine primul sau primele sectoaresituate după directorul rădăcină. În figura următoare este dată structura de sectoare, piste,cluster-e a unui disc flexibil dublă faţă cu 9 sectoare pe pistă. Orice intrare în director (în directorul rădăcină sau într-un subdirector) conţine 32 deocteţi. În octeţii 26 şi 27 ai intrării în director corespunzătoare unui fişier se găseşte numărulprimului cluster ocupat de fişier pe disc. Numărul celui de-al doilea cluster al fişierului estegăsit în intrarea din tabela de alocare a fişierelor, cu acelaşi număr ca şi numărul primuluicluster; numărul celui de-al treilea cluster este găsit tot în FAT, în intrarea cu numărul egal cunumărul celui de-al doilea cluster al fişierului ş.a.m.d. O intrare în FAT conţine 2 octeţi (FAT16) în cazul discurilor hard şi 1,5 octeţi în cazuldiscurilor flexibile. Proiectanţii sistemului de operare MS-DOS au decis să folosească numai1,5 octeţi în cazul discurilor flexibile, deoarece pe 2 octeţi pot fi codificate 65536 de numere 141
    • care indică cluster-e pe disc şi, evident, un disc flexibil nu poate să conţină atât de multecluster-e. Astfel, tabela de alocare a fişierelor va ocupa mai puţin spaţiu pe discul flexibil.Pentru gestionarea discurilor hard actuale de mari dimensiuni, în special variantele recente deWindows (95,98), utilizează tabele FAT pe 32 de biţi (FAT32). Valorile conţinute de o intrare în FAT împreună cu semnificaţiile lor sunt date înurmătoarea tabelă: Valoare Semnificaţie (0)000 Cluster disponibil (F)FF0-(F)FF6 Cluster rezervat (F)FF7 Cluster defect (F)FF8-(F)FFF Ultimul cluster al unui fişier (X)XXX Cluster ce aparţine unui lant În concluzie, orice fişier de pe disc conţine unul sau mai multe cluster-e (fiecare clusterfiind compus din unul sau mai multe sectoare), înlănţuite prin intermediul tabelei de alocare afişierelor, numărul primului cluster din lanţ fiind conţinut în intrarea corespunzătoare dindirectorul în care se află fişierul respectiv. Intrarea din FAT cu numărul ultimului cluster alfişierului va conţine o valoare între FFF8H şi FFFFH pentru discurile hard, şi o valoare întreFF8H şi FFFH în cazul discurilor flexibile, ceea ce specifică sfârşitul lanţului de cluster-e alefişierului, această valoare nemaindicând un cluster de pe disc. Pentru a specifica complet un fişier, identificatorul de fişier, format din nume şiextensie, 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 alarborelui 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 decaracterul "". 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 discurilorflexibile, şi C sau o altă literă, pentru discul fix sau o partiţie logică pe discul fix. Astfel, identificatorul complet al unui fişier este : [d:][path]filename[.ext] unde: d - este numele unităţii de disc pe care se află fişierul, path - este calea de acces din directorul rădăcină în subdirectorul în care se aflăfişierul, filename - este numele fişierului, ext - este extensia fişierului. 142
    • Elementele din paranteză sunt opţionale, deci pot să lipsească. Sistemul de operare MS-DOS ţine evidenţa a două valori: disc implicit şi director curent, care pot fi modificate cuajutorul comenzilor MS-DOS, şi care înlocuiesc primele două câmpuri din identificatorulcomplet de fişier, atunci când acestea nu sunt specificate. Directorul curent este directorulunde MS-DOS caută fişierele al căror identificator de fişier a fost introdus fără specificareadirectorului în care se găsesc fişierele respective. Analog, discul implicit este reprezentat denumele discului flexibil sau al discului fix (partiţiei logice, dacă discul fix este partiţionat înmai multe partiţii logice) pe care MS-DOS caută fişierele, atunci când unitatea de disc nu estespecificată în identificatorul de fişier. Exemple: A:DOSFORMAT.EXE - specifică fişierul FORMAT.EXE din subdirectorul DOS al directorului rădăcină, de pe discul A. C:USERSVLADTEXT.TXT - specifică fişierul TEXT.TXT din subdirectorul VLAD al subdirectorului USERS, al directorului rădăcină de pe discul fix C. B:PROGRAM.COM - specifică fişierul PROGRAM.COM din directorul rădăcină al discului B. DOSFORMAT.EXE - specifică fişierul FORMAT.EXE din subdirectorul DOS al directorului rădăcină, de pe discul implicit. PROG1.COM - specifică fişierul PROG1.COM din directorul curent al disculuiimplicit. În afară de nume, extensie, mărime fişier, data şi ora ultimei modificări, informaţii deregăsire a fişierului pe disc etc., în intrarea din director corespunzătoare unui fişier sememorează şi atributele fişierului (codificate în octetul numărul 11 din intrare), care pot fi: - R - Read only - ce specifică faptul că fişierul nu poate fi decât citit, şi nu poate fi modificat sau şters. - A - Archive - utilizat de comenzile BACKUP, RESTORE, XCOPY, pentru a marca dacă fişierul a fost sau nu procesat de către o comandă anterioară. - S - System - precizează faptul că fişierul aparţine sistemului de operare, şi nu trebuie utilizat în operaţii curente. - H - Hidden - determină neafişarea numelui fişierului la comanda DIR, şi face ca fişierul să nu fie disponibil la comenzile COPY, DEL etc. Modificarea atributelor unui fişier se poate face cu comanda ATTRIB, care poatemodifica numai primele două atribute, precum şi cu ajutorul interfeţelor grafice utilizatorNORTON 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, fiecareechipament de intrare/ieşire este "văzut" ca un fişier cu un nume special. De exemplu, fişierulcu numele CON reprezintă consola sistemului (ansamblul tastatură - ecran), fiind posibilă 143
    • afişarea unui text pe ecran prin scrierea textului respectiv în fişierul text CON, în acelaşi fel încare 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ţelesspecial pentru sistemul de operare, care rezervă identificatorii respectivi pentruechipamentele de intrare/ieşire. Acestea sunt : - CON - pentru consola sistemului; - AUX sau COM1 - pentru interfaţa serială de comunicaţie numărul 1; - COM2, COM3, COM4 - pentru interfeţele seriale 2, 3, 4; - PRN sau LPT1 - pentru prima imprimantă (interfaţă) paralelă; - LPT2, LPT3, LPT4 - pentru interfeţele paralele 2, 3, 4; - NUL - pentru un echipament inexistent (fictiv), folosit de obicei pentru testarea programelor. Numele de echipamente de mai sus pot fi folosite în locul unui nume de fişier, în cadrulunei comenzi DOS. 7.2.2. Lansarea sistemului de operare La punerea sub tensiune, se execută instrucţiunea de la adresa fizică FFFF0H, pentrusistemele 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-ulsistemului 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 alsistemului de operare (secvenţa BOOT), din sectorul 0, pista 0, fata 0 a primei unităţi de discflexibil, dacă există un disc sistem în această unitate, dacă nu încarcarea secvenţei BOOTrealizându-se din sectorul logic 0 al partiţiei DOS active, de pe discul fix. Un disc sistem esteun disc care conţine secvenţa BOOT, împreună cu cele 3 fişiere care compun sistemul deoperare. În continuare se dă controlul programului încărcător, care încarcă fişierele IO.SYS şiMSDOS.SYS de pe discul sistem. Fişierele IO.SYS şi MSDOS.SYS sunt invizibile (auatributul hidden) şi nu pot fi copiate, şterse sau manipulate prin comenzi uzuale. 144
    • BIOS-ul sistemului de operare este o interfaţă între hardware-ul calculatorului şi restulsistemului 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 şiprogramelor de aplicaţie scrise sub MS-DOS. O dischetă sistem poate fi folosită pe oricecalculator personal compatibil IBM, indiferent de configuraţia hardware a acestuia. Ceea cese schimbă este numai BIOS-ul sistemului de operare rezident în memoria ROM. Deasemenea, un program care execută toate operaţiile prin intermediul BIOS-ului, se poateexecuta pe orice maşină MS-DOS, indiferent de configuratia hardware a acesteia. Decifuncţ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ţineproceduri pentru tratarea din punct de vedere logic (la un nivel superior nivelului fizic, debază) a operaţiilor şi resurselor sistemului. Aceste proceduri apelează la rândul lor proceduriBIOS, configuraţia hardware concretă fiind transparentă la acest nivel. Interpretorul de comenzi, conţinut în fişierul COMMAND.COM, citeşte comenzi de latastatură sau dintr-un fişier de comenzi, după care, dacă comanda este o comandă externă(neconţinută în fişierul COMMAND.COM, cum ar fi comenzile: DIR, ERA, TYPE etc.),încarcă de pe disc un fişier cu acelaşi nume ca şi numele comenzii, şi cu extensia COM, EXEsau 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ândcomenzile din fişier. La iniţializarea sistemului de operare, după încărcarea primelor două fişiere, se caută pediscul din care a fost încărcat sistemul, în directorul rădăcină, un fişier de configurare numitCONFIG.SYS. Dacă este găsit, acesta va fi citit, şi comenzile conţinute în acest fişier vor fiinterpretate, configurând sistemul de operare cu anumiţi parametri. Dacă CONFIG.SYS nueste găsit, sistemul de operare este configurat cu valorile implicite ale comenzilor deconfigurare. 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 disculuisistem) ş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 anumitecomenzi automat, ori de câte ori se încarcă sistemul de operare. 7.2.3. Configurarea sistemului de operare 145
    • Fişierul CONFIG.SYS este un fişier text, care conţine comenzi de configurare asistemului de operare MS-DOS cu anumiţi parametri, comenzile adăugate sau modificate înfişierul CONFIG.SYS devenind active la următoarea lansare a sistemului de operare. Principalele comenzi de configurare sunt următoarele: 7.2.3.1 Comanda BREAK Sintaxa: BREAK = ON|OFF Implicit BREAK = OFF Cu ajutorul opţiunii OFF se poate abandona programul în execuţie, prin apăsareasimultană a tastelor CTRL şi BREAK, numai în momentul când acesta execută o operaţie cutastatura, ecranul, imprimanta standard (PRN) sau adaptorul de comunicaţie COM1. OpţiuneaON determină abandonarea programului prin CTRL-BREAK, la următorul apel de funcţiesistem după CTRL-BREAK, nu neapărat la o funcţie sistem ce foloseşte dispozitivele de maisus. Funcţiile sistem sunt unităţi program conţinute în sistemul de operare, şi care sunt apelatede programele din sistem pentru realizarea operaţiilor de intrare/ieşire sau a altor operaţii debază. 7.2.3.2 Comanda BUFFERS Sintaxa: BUFFERS = n [,m] [/x] n - este un număr între 1 şi 99, ce reprezintă numărul buffer-elor ce vor fi deschise de sistem la lansarea acestuia; m - este un număr, ce reprezintă numărul maxim de sectoare ce pot fi citite/scrise într- un acces la discul magnetic (implicit m este1); /x - specifică faptul că buffer-ele sunt plasate în memoria expandată. Un buffer de disc este o zonă de memorie pe care sistemul de operare o utilizează înoperaţiile de citire/scriere cu discul. Sistemul de operare MS-DOS lucrează cu disculmagnetic la nivel de sector, adică scrie sau citeşte sectoare pe sau de pe disc. Dacă, deexemplu, un program doreşte să scrie sau să citească un număr de octeţi care nu este unmultiplu al dimensiunii sectorului (512), sistemul de operare verifică dacă sectorul ce trebuieaccesat se află într-unul din buffer-ele din memorie. Dacă da, se efectuează citirea sau scriereadin sau în buffer. Dacă sectorul nu se găseşte într-unul din buffer-e, acesta va fi citit şi adusîntr-un buffer, după care se face transferul în sau din buffer. Numărul de buffer-e deschise simultan în memorie influenţează timpul de lucru cudiscul magnetic, şi deci viteza de execuţie a aplicaţiilor. Pentru un program care utilizeazăfrecvent discul în operaţii de citire/scriere este indicat un număr cât mai mare de buffer-edeschise în memorie. Dar, trebuie avut în vedere că, mai multe buffer-e deschise, vor ocupamai multă memorie ( n x 512 ) şi, de asemenea, crescând numărul de buffer-e, creşte timpulde căutare în buffer-e şi acesta poate deveni comparabil cu timpul de acces la disc. Deci nu există un număr standard de buffer-e care să satisfacă toate aplicaţiile, acesta sedetermină prin încercări, în funcţie de aplicaţie şi de dimensiunea memoriei RAM disponibile. 146
    • 7.2.3.3 Comanda COUNTRY Sintaxa: COUNTRY = xxx [, [yyy] [, [ d: ]filename]] xxx - codul ţării yyy - pagina de cod (vezi comanda KEYB) filename - numele fişierului care conţine informaţii despre ţara xxx. Prin această comandă se specifică sistemului de operare setul de caractere pe caredorim să-l utilizăm. Dacă în fişierul CONFIG.SYS nu se foloseşte comanda COUNTRY, seconsideră implicit setul de caractere folosit în SUA. Dacă nu se specifică nici un nume defişier prin filename, se vor lua informaţiile despre ţara xxx din fişierul COUNTRY.SYS. 7.2.3.4 Comanda FILES Sintaxa: FILES = X unde X - este un număr între 8 şi 255. Implicit X este 8. Prin această comandă se specifică numărul maxim de fişiere ce pot fi deschise simultan.Înainte de orice operaţie cu un fişier, sistemul de operare trebuie să deschidă acel fişier. Ladeschiderea fişierului, MS-DOS construieşte blocul de parametri pentru acel fişier, în zonaproprie de memorie rezervată la lansarea sistemului de operare. Deci, numărul de fişiere cepot fi deschise simultan depinde de dimensiunea acestei zone, care depinde de valoareaspecificată prin comanda FILES. 7.2.3.5 Comanda SHELL Sintaxa: SHELL = [d:][path]filename[params] Prin această comandă se poate folosi un interpretor de comenzi diferit deCOMMAND.COM, şi care va fi încărcat şi plasat în memorie în locul lui COMMAND.COM. filename - numele fişierului care conţine interpretorul de comenzi; params - parametrii (linia de comandă) necesari noului interpretor de comenzi. De exemplu, prin comanda SHELL = C:DOSXTG se specifică folosirea interfeţeiutilizator XTG, în locul interpretorului de comenzi COMMAND.COM. 7.2.3.6 Comanda DEVICE Sintaxa: DEVICE = [d:][path]filename[params] Comanda permite specificarea unui nume de fişier ce conţine un driver de intrare/ieşire,care va fi încărcat în memorie odată cu sistemul de operare. Un driver este un program carecontrolează toate operaţiile cu un dispozitiv de intrare/ieşire. Toate celelalte programe caredoresc să lucreze cu dispozitivul de intrare/ieşire respectiv , vor apela driver-ul deintrare/ieşire corespunzător. filename - specifică fişierul ce conţine driver-ul de intrare/ieşire, params - parametrii (sau opţiunile) acceptaţi de driver-ul de intrare/ieşire. La încărcarea sistemului de operare, se încarcă automat şi driver-ele pentru ecran,tastatură, imprimantă, disc magnetic şi ceas. Deci, nu trebuie specificată nici o comandăDEVICE care să încarce aceste driver-e. Atunci când avem un nou dispozitiv (scaner, mouse 147
    • etc.) sau când vrem să schimbăm driver-ele standard încărcate automat la lansarea sistemuluide operare, va trebui să specificăm, printr-o comandă DEVICE, fişierul ce conţine nouldriver, precum şi directorul în care se află. Tot în mod automat sunt încarcate şi driver-eleCOUNTRY.SYS şi KEYBOARD.SYS, la lansarea sistemului de operare. Drivere nestandard: ANSY.SYS - permite instalarea driver-elor cu funcţii extinse pentru ecran şi tastatură. Prin intermediul unor secvenţe de caractere, care încep cu caracterul ESC, sunt disponibile funcţii pentru mutarea cursorului, redefinirea caracterelor de pe tastatură, stabilirea culorilor de fond şi pentru scriere etc. DISPLAY.SYS - permite schimbarea paginii de cod pentru consola sistemului. DRIVER.SYS - permite crearea unor echipamente logice de tip disc flexibil, asociate unor unităţi de disc flexibil conectate la controlerul de disc flexibil. PRINTER.SYS - permite schimbarea paginii de cod pentru imprimantele paralele cuplate la porturile paralele LPT1 (PRN), LPT2, LPT3, LPT4. RAMDRIVE.SYS (VDISK.SYS) - permite crearea unui disc virtual în memoria RAM (sau RAM-disc). Deci, sistemul de operare va scrie/citi în/din zona de memorie alocată pentru RAM-disc, ca şi când ar lucra cu un disc magnetic. Viteza de acces la date va fi mult mai mare, sistemul accesând informaţiile de pe disc la aceeaşi viteză ca şi datele din memoria internă, dar există riscul pierderii conţinutului discului virtual în cazul unei blocări a sistemului. SMARTDRIVE.SYS - permite accelerarea transferului de date între memoria RAM şi discul magnetic, fiind util în aplicaţiile care lucrează cu multe fişiere, şi ducând la o creştere a vitezei de execuţie a acestor aplicaţii de până la 10 ori. Nu poate fi utilizat împreună cu RAMDRIVE.SYS. XMAEM.SYS - emulează memoria expandată în memoria extinsă a sistemului. Se utilizează numai împreună cu XMA2EM.SYS şi nu împreună cu HIMEM.SYS. XMA2EM.SYS - driver care permite instalarea unei memorii expandate cu specificaţiile stabilite de firmele LOTUS, INTEL, MICROSOFT. HIMEM. SYS - driver care permite instalarea unei memorii extinse standard, şi care nu poate fi folosit împreună cu driver-ele XMAEM.SYS şi XMA2EM.SYS. EMM386.SYS - emulează memoria expandată în memoria extinsă, atunci când se foloseşte driver-ul de memorie extinsă HIMEM.SYS. SERPRN.SYS - driver de comunicaţie serială care utilizează protocolul XON|XOFF. Pentru o mai bună înţelegere, este necesară lămurirea unor noţiuni folosite în sistemulde operare MS-DOS, cum ar fi tipurile de memorie existente sub MS-DOS. Sistemul deoperare MS-DOS este limitat din punctul de vedere al accesului la memoria internă acalculatorului, datorită faptului că a fost proiectat pentru calculatoare care funcţionau pe baza 148
    • microprocesoarelor 8086/8088, ce utilizau 1Mb de RAM. Însă, datorită avansului tehnologic,memoria fizic disponibilă în PC-urile actuale a crescut simţitor, iar sistemul de operare MS-DOS nu a evoluat odată cu calculatoarele. Astfel, au apărut secvenţe suplimentare desoftware, pentru a permite sistemului de operare şi aplicaţiilor rulate pe el, accesul la memoriapeste 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 şi640Kb, pe care sistemul de operare o utilizează în operaţiile obişnuite. Zona de memorie cuadrese între 640Kb şi 1Mb este rezervată de sistemul de operare, pentru funcţii primitive aleadaptorului video, controlerului de disc, scanner, funcţii ROM-BIOS etc. (vezi figura 7.2.2). - Memoria expandată - este o zonă de memorie situată în afara memorieiconvenţ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 memoriaextinsă. Odată cu apariţia procesoarelor 80286, memoria fizic adresabilă a crescut la 16Mb.Deoarece MS-DOS nu permitea accesul decât la primii 640Kb, o idee (copiată de la CP/M) afost de a folosi o porţiune (de obicei de 64Kb) din memoria situată peste 640Kb, ca o zonă dememorie tampon pentru accesul la un volum mai mare de memorie. Prin intermediul unuidriver de memorie expandată, acesta fiind numele acestei tehnici de mărire a spaţiului dememorie, se poate comuta între mai multe blocuri de memorie. Sistemul poate accesa astfel ocantitate mai mare de memorie, vizibilă însă prin fereastra de 64Kb. Acest standard a căpătatnumele LIM EMS, şi multe programe îl pot folosi (Lotus 123, Quattro Pro, Borland C++etc.). Uneori această memorie externă poate exista în calculatoare prin intermediul unor plăcispeciale de extensie. Deci, memoria expandată reprezintă memoria adresabilă printr-o asociere dintre undriver de memorie extinsă şi un adaptor hardware pentru memoria expandată. Aceasta nu seîncadrează într-un interval fix de adrese, putând ocupa zona dintre 640Kb şi 1Mb, neocupatăde componentele sistemului de operare ce se găsesc în această zonă (vezi figura 7.2.3).Principiul de funcţionare este reprezentat de o zonă de memorie variabilă neocupată, dinspaţiul 640Kb - 1Mb, în care se translatează succesiv pagini din memoria ataşată fizicsuplimentar.- Memoria extinsă - este zona de memorie situată dincolo de 1Mb, şi pe care MS-DOS o foloseşte pentru anumite scopuri precise, cum ar fi: instalarea unui RAM-disc, operaţii BIOS etc. Această memorie este folosită în modul protejat al procesoarelor x86 sub sistemele Windows şi OS/2. 149
    • MEMORIA CONVENŢIONALĂ0 640KB ROM BIOS Memorie liberă Interfaţă disc dur COMMAND.COM Drivere pentru Video color periferice Video monocrom MS-DOS Figura 7.2.2. Memoria convenţională MEMORIA EXPANDATĂ0 640KB memorie MS-DOS ROM BIOS Bloc de 64KB Figura 7.2.3. Memoria expandată 150
    • MEMORIA EXTINSĂ 16MB – 286 0 640KB 1MB 4GB – 386/386 memorie MS-DOS memorie extinsă Figura 7.2.4. Memoria extinsă În calculatoarele mai vechi, memoria de bază era de 1Mb, primii 640Kb fiind folosiţi deMS-DOS, restul fiind folosit de diverse dispozitive periferice şi ca memorie extinsă. Laapariţia procesoarelor 286, 386 şi 486, au fost concepute şi o serie de cipuri complexe, carepermiteau gestiunea şi manipularea unui volum fizic mai mare de memorie pe placa de bază.Acestea au fost numite AT Chip Set, acum comune în majoritatea PC-urilor, şi care permitaccesul la spaţiul de memorie peste limita de 1Mb. Acest aspect a complicat accesul la zonelelibere de memorie între 640Kb şi 1Mb. Cât spaţiu este disponibil în această zonă, variază dela calculator la calculator, în funcţie de numărul şi tipul dispozitivelor periferice existente.Această zonă are între 8Kb şi 128Kb şi este denumită Upper Memory Area. De la versiuneaMS-DOS 5.0 în sus, aceste blocuri de memorie au devenit integrate în gestiunea memorieisistemului de operare, via un software special (EMM386.EXE), care poate deplasa în aceazonă în special drivere de dispozitive periferice, pentru a elibera mai multă memorieconvenţională. La apariţia interfeţei Microsoft Windows 3.0, s-a constatat că 64Kb, în plus faţă denormal, erau disponibili pentru aplicaţii. Aceasta se datora unor greşeli în proiectareaprocesoarelor 286 şi superioare, descoperindu-se că primii 64Kb de memorie extinsă, pestelimita de 1Mb, puteau fi accesaţi, această zonă fiind cunoscută ca High Memory Area. Astfel,shell-ul sistemului de operare putea fi încărcat în această zonă. 7.2.4. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT. Un fişier lot de lucrări (fişier batch) este un fişier text ce conţine una sau mai multecomenzi DOS, care se execută împreună. Aceste fişiere de tip batch trebuie să aibă extensiaBAT. Pentru executia fişierului batch, se introduce de la tastatură numai numele fişierului,fără extensie. De fiecare dată când este lansat sistemul de operare, după ce se încarcă fişierulCOMMAND.COM, acesta preia controlul şi încearcă încărcarea unui fişier de comenzi, numitAUTOEXEC.BAT, din directorul rădăcină de pe discul din care a fost încărcat sistemul, fişiercare conţine comenzile ce se doresc a fi executate automat, de fiecare dată la lansareasistemului de operare. 151
    • De exemplu, fişierul AUTOEXEC.BAT poate conţine următoarele comenzi: CLS DEL *.BAK XTG Deci, de fiecare dată când se lansează sistemul de operare, se şterge ecranul, se ştergtoate fişierele cu extensia BAK, după care se lansează în execuţie interfaţa utilizator XTG. În interiorul unui fişier de lucrări se pot include şi parametri fictivi, care vor fi înlocuiţicu valorile introduse în linia de comandă, prin care se lansează în executie fişierul de comenzirespectiv. De exemplu, dacă avem un fişier de comenzi numit LOT.BAT, şi care conţineurmătoarele comenzi: COPY %1.PAS %2.PAS TYPE %2.PAS DEL %1.PAS TYPE %0.BAT parametrii fictivi %0, %1, %2 vor fi înlocuiţi, în ordine, de parametrii din linia decomandă prin care se execută fişierul de comenzi. Pot fi specificati 10 parametri fictivi îninteriorul unui fişier de comenzi ( %0 - %9 ). Parametrul %0 este înlocuit cu numelefişierului de comenzi. Se poate executa fişierul LOT.BAT prin următoarea comandă: LOT A:PROG1 C:PROG2 Efectul acestei comenzi este execuţia succesivă a următoarelor comenzi: COPY A:PROG1.PAS C:PROG2.PAS TYPE C:PROG2.PAS DEL A:PROG1.PAS TYPE LOT.BAT Dacă se introduce comanda LOT OLD NEW, parametrii %0, %1, %2 vor fi înlocuiţi, înordine cu: LOT, OLD, NEW. Un fişier de comenzi poate fi întrerupt apăsând simultan tastele CTRL şi BREAK, lacare sistemul răspunde cu întrebarea: TERMINATE BATCH JOB (Y/N)? Dacă se răspunde cu Y, restul comenzilor din fişier sunt ignorate; dacă se răspunde cuN, este abandonată numai comanda aflată în execuţie, după care se continuă cu următoarelecomenzi din fişier. În mod obişnuit, comenzile citite din fişierul de comenzi sunt afişate pe ecran în ordineaexecuţiei. Dacă însă fişierul de comenzi conţine o comandă ECHO OFF, acestea nu vor mai fiafişate pe ecran. ECHO ON permite afişarea tuturor comenzilor în ordinea execuţiei lor.ECHO este activ (ON) după fiecare încărcare a sistemului de operare. Comanda ECHO nu areefect asupra mesajelor produse de execuţia comenzilor, care sunt afişate pe ecran indiferentdacă ECHO este ON sau OFF. 152
    • 7.2.5. Procesorul de comenzi Procesorul de comenzi COMMAND.COM asigură interfaţa între utilizator şi sistemulde operare, preluând de la tastatură o linie de comandă terminată cu caracterul ENTER, pecare 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 uneicomenzi interne sau numele unui fişier cu extensia EXE, COM sau BAT, următoarele cuvintedin linia de comandă fiind parametrii comenzii respective. Procesorul de comenzi acceptă, ca parametri în linia de comandă, nume generice defişier. Un nume generic de fişier este un identificator de fişier care conţine caracterele ? şi *.Caracterul ? se echivalează cu un singur caracter, în timp ce caracterul * se echivalează cu unşir de caractere. Aceste caractere pot fi folosite numai în cadrul numelui de fişier (filename) şial extensiei de fişier. Exemple: PROG*.* - specifică toate fişierele din directorul curent de pe discul implicit, al căror nume de fişier începe cu şirul de caractere PROG, se continuă cu orice şir de caractere, şi au orice extensie. A:USERS*.PAS - specifică toate fişierele cu extensia PAS din subdirectorul USERS al directorului rădăcină, de pe discul A. B:FYLE?.ASM - specifică toate fişierele din directorul rădăcină al discului B, al căror nume începe cu FYLE, se continuă cu orice caracter (dar numai un singur caracter), şi care au extensia ASM. Caracterele de control acceptate de COMMAND.COM sunt următoarele: CTRL-C sau CTRL-BREAK - încheie execuţia comenzii curente, CTRL-ALT-DEL - reîncarcă (relansează) sistemul de operare, CTRL-P - determină trimiterea informaţiilor afişate pe ecran şi la imprimantă, până când este tastat următorul caracter CTRL-P, F3 - scoate din buffer linia de comandă sau restul liniei de comandă anterioare, F1 - scoate din buffer următorul caracter al liniei de comandă executate anterior, F2C - scoate din buffer caracterele liniei de comandă anterioare, până la întâlnirea caracterului C. Ultimele trei caractere de control sunt utile atunci când s-a greşit o comandă, nefiindnecesară tastarea din nou a întregii comenzi. Tot în cadrul liniei de comandă, se mai pot folosi şi următoarele caractere speciale: 〉- redirectează ieşirea unui program de la ecran (CON) către un fişier sau alt dispozitiv de intrare/ieşire. Dacă fişierul exista anterior, se va pierde vechiul conţinut. 153
    • 〉〉 - redirectează ieşirea unui program de la ecran către un fişier sau un alt dispozitiv de intrare/ieşire. Dacă fişierul există, noile informaţii sunt adăugate la sfârşitul fişierului. 〈 - redirectează intrarea unui program la un fişier sau alt dispozitiv de intrare/ieşire, în locul tastaturii (CON), programul preluând datele de intrare dintr-un fişier (care poate fi un nume rezervat pentru un echipament de intrare/ieşire) şi nu de la tastatură. | - cuplează ieşirea unui program cu intrarea altui program. Exemple: DIR A: 〉 FILE - listează conţinutul directorului rădăcină al discului A, dar nu pe ecran, ci în fişierul text FILE, care poate fi vizualizat ulterior, de exemplu cu comanda TYPE. Vechiul conţinut al fişierului FILE se pierde, dacă fişierul FILE exista anterior pe disc. DIR 〉〉 FILE - listează conţinutul directorului curent de pe discul implicit, adăugând informaţiile la sfârşitul fişierului FILE, dacă acesta exista anterior pe disc. TYPE FILE.DAT | PROG - programul PROG va prelucra informaţiile de ieşire ale comenzii TYPE FILE.DAT, respectiv conţinutul fişierului text FILE.DAT va reprezenta intrarea programului PROG. PROG 〈 FILE - programul PROG va prelua datele de intrare din fişierul FILE, şi nu de la tastatură. În prezent, majoritatea utilizatorilor sistemului de operare MS-DOS preferă ca în loculintroducerii comenzilor MS-DOS printr-o linie de comandă, să folosească interfaşa graficăDOS Shell sau o altă interfaţă grafică utilizator: NORTON COMMANDER, PCSHELL,XTGOLD, cu ajutorul cărora, printr-un sistem de meniuri adecvat, se poate "naviga" prinstructura de directoare a discului şi, în general, se pot executa majoritatea comenzilor MS-DOS într-o manieră mult mai facilă. 7.2.6. Comenzi interne 7.2.6.1 Comanda BREAK Sintaxa: BREAK ON|OFF Parametrul ON determină verificarea introducerii caracterului CTRL-BREAK la fiecareapel de funcţie sistem, ceea ce permite şi întreruperea unui program care efectuează puţineoperaţii cu echipamentele standard de intrare/ieşire. Parametrul OFF determină verificareacaracterului CTRL-BREAK numai la operaţiile de intrare/ieşire cu echipamentele standard.Comanda BREAK fără nici un parametru determină afişarea stării curente: ON sau OFF. 7.2.6.2 Comanda CHCP Sintaxa: CHCP [nnn] , unde nnn este un cod numeric zecimal pe 3 cifre. 154
    • Dacă se introduce comanda CHCP fără parametrul nnn, se afişează pagina de cod activăşi paginile de cod pregătite pentru sistem. Dacă se introduce parametrul nnn, acesta trebuie sădesemneze una din paginile de cod pregătite prin comanda COUNTRY în CONFIG.SYS. 7.2.6.3 Comanda CHDIR (CD) Sintaxa: CD [d:][path] CHDIR [d: ][path] Comanda determină schimbarea directorului curent de pe discul specificat sau de pediscul implicit. Directorul poate fi specificat absolut, indicându-se întreaga cale începând dindirectorul rădăcină, sau relativ, când se specifică numai subcalea ce începe din directorulcurent. Dacă în comandă nu se specifică calea prin path, se va afişa directorul curent de pediscul d, sau discul implicit dacă nu este specificat nici discul. Exemple: D: 〉 CD D:USERS - D:USERS va deveni directorul curent D:USERS 〉 CD VLADPROG D:USERSVLADPROG 〉 CD .. D:USERSVLAD 〉 CD D: D: 〉 În cea de-a doua comandă, directorul care va deveni director curent a fost specificatrelativ, acelaşi efect obţinându-se prin comanda CD D:USERSVLADPROG. Prin comandaCD .., directorul părinte al directorului curent va deveni noul director curent. 7.2.6.4 Comanda CLS Sintaxa: CLS Comanda CLS determină ştergerea ecranului. 7.2.6.5 Comanda COPY Sintaxa: COPY [/a][/b] [d:][path]filename[.ext] [/a][/b] [d:][path][filename[.ext]] [/a][/b][/v] sau COPY [/a][/b] [d:][path]filename[.ext] [/a][/b] [ + [/a][/b] [d:][path]filename[.ext][/a][/b]...] [d:][path][filename[.ext]] [/a][/b][/v] Comanda COPY copie unul sau mai multe fişiere. Cu cea de-a doua formă se faceconcatenarea a două sau mai multe fişiere sursă, despărţite de caracterul "+". /a - ASCII - copierea are loc până la detectarea caracterului CTRL-Z (orice fişier text se termină cu caracterul CTRL-Z). /b - binary - determină o copiere binară, lungimea fişierului fiind specificată în intrarea din director corespunzătoare fişierului respectiv. Orice opţiune /a sau /b rămâne activă pentru toate fişierele ce urmează în linia de comandă, până la întâlnirea unei alte opţiuni /a sau /b. 155
    • /v - verify - determină verificarea corectitudinii copierii, comparând fişierul (sau fişierele) sursă cu fişierul destinaţie. Exemple: COPY C:USERSPROG1.PAS A: - copie fişierul PROG1.PAS din directorul USERS de pe discul C, într-un fişier cu acelaşi nume şi aceeaşi extensie, în directorul rădăcină al discului A. COPY *.PAS A:USERS*.TXT - copie toate fişierele cu extensia PAS din directorul curent de pe discul implicit, în directorul USERS al discului A, numele fişierelor rămânând neschimbate, în schimb extensia fişierelor schimbându-se din PAS în TXT. COPY FILE.TXT CON - determină copierea fişierului FILE.TXT la consolă (afişarea fişierului FILE.TXT pe ecran, obţinându-se acelaşi efect ca în urma execuţiei comenzii TYPE FILE.TXT). Obs: Dacă se omite numele fişierului destinaţie, se păstrează numele fişierului sursă. La concatenare opţiunea implicită este /a, la o copiere obişnuită fiind /b. 7.2.6.6 Comanda DATE Sintaxa: DATE [mm-dd-yy] Permite modificarea sau vizualizarea datei curente. Data se introduce în formatul lună /zi / an. Ca delimitatori se pot folosi numai caracterele "/", ".", "-". Formatul precizat anteriorpoate fi modificat, utilizând comanda COUNTRY sau alte pagini de cod. 7.2.6.7 Comanda DEL Sintaxa: DEL [d:][path]filename.ext[/p] ERASE Comanda şterge fişierul specificat, sau fişierele specificate dacă se foloseşte un numegeneric de fişier. /p - determină cererea confirmării din partea operatorului pentru ştergerea fiecărui fişier, atunci când se foloseşte un nume generic de fişier. Fişierele cu atributele read-only, hidden, system nu pot fi şterse. 7.2.6.8 Comanda DIR Sintaxa: DIR [d:][path][filename][.ext][/p][/w] Afişează tot conţinutul unui director, sau numai acele fişiere specificate prinfilename.ext. /p - determină suspendarea listării conţinutului unui director atunci când s-a umplut ecranul. Pentru reluarea listării trebuie apăsată o tastă. /w - determină afişarea numai a numelui şi extensiei fişierelor dintr-un director, fără alte informaţii despre fişiere, cum ar fi: data şi ora creării sau ultimei modificări, dimensiune etc. 7.2.6.9 Comanda EXIT 156
    • Sintaxa: EXIT Determină încheierea execuţiei procesorului de comenzi COMMAND.COM şirevenirea în programul din care a fost apelat COMMAND.COM, dacă acesta există. Dacă nu,se rămâne în COMMAND.COM. 7.2.6.10 Comanda MKDIR (MD) Sintaxa: MKDIR [d:]path MD Crează un nou director. Dacă nu se specifică unitatea de disc, se consideră unitatea dedisc implicită. Directorul poate fi specificat absolut sau relativ. 7.2.6.11 Comanda PATH Sintaxa: PATH [d:][path][; [d:][path]...] Prin această comandă se specifică una sau mai multe căi de căutare ale fişierelorexecutabile. Dacă o comandă nu este găsită în directorul curent, atunci aceasta este căutată înordine în toate căile introduse prin comanda PATH. Comanda PATH, fără parametri,determină afişarea căilor de căutare introduse printr-o comandă PATH anterioară. Comanda"PATH ;" determină ştergerea tuturor căilor de căutare. 7.2.6.12 Comanda PROMPT Sintaxa: PROMPT [text] Se defineşte un nou prompter al procesorului de comenzi COMMAND.COM.Prompter-ul este mesajul care apare afişat, atunci când procesorul de comenzi aşteaptăintroducerea unei comenzi. text poate fi orice şir de caractere alfanumerice, care poate conţine şi specificatori detipul $C, unde C poate fi: p - ce se înlocuieşte cu directorul curent de pe discul implicit, n - ce se înlocuieşte cu numele discului implicit, g - se înlocuieşte cu caracterul " 〉 ", l - se înlocuieşte cu caracterul " 〈 ", etc. Dacă nu se specifică nici un text după comanda PROMPT, MS-DOS va refaceprompter-ul normal (numele discului implicit, urmat de calea curentă şi caracterul "〉" ). Exemple: D:〉 PROMPT NICU$G NICU 〉 PROMPT $N$G - reface mesajul sistem obişnuit D:〉 _ 7.2.6.13 Comanda RENAME (REN) Sintaxa: REN[AME] [d:][path]filename[.ext] filename[.ext] Schimbă numele fişierului specificat de primul parametru cu numele specificat de celde-al doilea parametru. Se pot utiliza nume generice de fişier. 157
    • Exemple: REN *.PAS *.TXT - schimbă extensia tuturor fişirelor cu extensia PAS, din directorul curent de pe discul implicit, la noua extensieTXT. 7.2.6.14 Comanda RMDIR Sintaxa: RMDIR [d:]path RD Şterge subdirectorul specificat prin path de pe discul d, sau discul implicit când nu sespecifică nici o unitate de disc. Directorul se poate specifica absolut sau relativ. Pentru a fişters, un director trebuie să fie gol, deci nu trebuie să conţină fişiere. Directorul curent şidirectorul rădăcină nu pot fi şterse. Exemplu: RD A:USERSVLAD 7.2.6.15 Comanda SET Sintaxa: SET [nume = [parametru]] Prin această comandă se echivalează şirul de caractere desemnat prin nume, cu şirul decaractere desemnat prin parametru. Interpretorul de comenzi conţine o zonă de memorienumită zonă context (environment), în care se găsesc toate echivalările de şiruri de caractereintroduse prin comanda SET. Aceste echivalări sunt folosite de programele din sistem.Dimensiunea zonei context se poate specifica în CONFIG.SYS prin comanda: SHELL = COMMAND.COM /E:xxx , unde xxx reprezintă dimensiunea în octeţi a zonei context. Dacă se introduce comanda SET fără nume, se vor afişa echivalările curente din zonacontext; dacă se introduce SET cu nume dar fără parametru, se şterge din zona contextechivalarea şirului de caractere desemnat prin nume. Exemple: SET TEMP = C:USERSTMP - Programele de aplicaţie pot folosi variabila TEMP, pentru a salva fişierele temporare în subdirectorul C:USERSTMP. SET TEMP = - şterge din zona context echivalarea anterioară pentru variabila TEMP. 7.2.6.16 Comanda TIME Sintaxa: TIME [hh:mm[:ss[.xx]]] Permite introducerea sau modificarea orei curente. Dacă se introduce TIME fărăparametru, se afişează ora curentă, după care se aşteaptă modificarea orei curente. hh - specifică ora (un număr între 0 şi 23) mm - specifică minutele ( un număr între 0 şi 59) ss - specifică secundele ( un număr între 0 şi 59) xx - specifică sutimile de secundă (un număr între 0 şi 99) 7.2.6.17 Comanda TYPE 158
    • Sintaxa: TYPE [d:][path]filename[.ext] Afişează conţinutul fişierului specificat la consolă. Nu se pot folosi nume generice defişier. Fişierul specificat trebuie să fie un fişier text. 7.2.6.18 Comanda VERIFY Sintaxa: VERIFY [ON|OFF] VERIFY ON determină sistemul să verifice corectitudinea operaţiilor de scriere pe disc.Implicit VERIFY este OFF. Dacă se introduce VERIFY fără parametru, se va afişa stareacurentă (ON sau OFF) a opţiunii de verificare. 7.2.6.19 Comanda VOL Sintaxa: VOL [d:] Afişează eticheta volumului de disc din unitatea specificată, sau din unitatea implicitădacă nu se specifică nici un parametru. 7.2.7 Comenzi externe Comenzile externe sunt fişiere executabile, deci cu extensia EXE sau COM, aflate deregulă în subdirectorul DOS al discului sistem (de obicei C:DOS). Prin extensie, oriceprogram utilizator poate fi considerat o comandă externă. 7.2.7.1 Comanda APPEND - permite căutarea fişierelor care nu sunt găsite îndirectorul curent, dar nu neapărat cele cu extensia EXE, COM sau BAT, ca în cazul comenziiPATH. Sintaxa: APPEND [d:][path][ ;[d:][path]...][/x:ON|OFF] [/path:ON|OFF] APPEND [/x][/e] Căile de căutare sunt separate prin caracterul ";". Dacă se introduce "APPEND ;" seşterg toate căile de căutare. Comanda APPEND fără nici un parametru determină afişareacăilor de căutare introduse printr-o comandă APPEND anterioară. /e - determină păstrarea căilor de căutare în zona context a interpretorului de comenzi, ceea ce face posibilă modificarea şi vizualizarea căilor de căutare şi cu comanda SET. /x sau /x:ON - determină adăugarea căii specificate în lista căilor de căutare pentru programele executabile şi permite folosirea numelor generice de fişiere. /x : OFF - anulează opţiunea /x:ON /path:OFF - anulează temporar calea (specificată în comandă) de căutare a altor fişiere decât cele executabile. /path:ON - anulează opţiunea /path:OFF (opţiunea implicită este /path:ON) Exemple: APPEND C:USERS321A / x:ON/path:ON 159
    • APPEND /x:ON/path:OFF APPEND /x:OFF 7.2.7.2 Comanda ASSIGN Sintaxa: ASSIGN [ X [ = ] Y [...] ] Reorientează toate cererile pentru unitatea de disc X către unitatea Y. ComandaASSIGN fără parametru determină anularea tuturor reorientărilor anterioare. Exemple: ASSIGN A=B - în urma acestei comenzi, o comandă DIR A: va avea ca efect afişarea directorului rădăcină al discului B. ASSIGN A=B D=C 7.2.7.3 Comanda BACKUP Sintaxa: BACKUP d:[path][filename[.ext]] d: [/s][/m][/a][/d:date][/t:time][/f:size] [/l[:[d:][path]filename[.ext]]] Salvează fişiere de pe un disc pe altul. Se pot folosi nume generice de fişier. /s - determină salvarea tuturor subdirectoarelor inferioare directorului specificat, pe lângă fişierele din directorul respectiv. /m - determină salvarea numai a fişierelor modificate după ultima utilizare a comenzii BACKUP. /a - determină adăugarea (şi nu înlocuirea) fişierelor salvate la fişierele de pe discul destinaţie. /d:date - determină salvarea fişierelor care au fost modificate după o anumită dată. /t:time - determină salvarea numai a fişierelor care au fost modificate după o anumită oră. /f:size - determină formatarea discului destinaţie înainte de a face salvarea propriu-zisă (size poate fi 160, 180, 320, 360, 720, 1200, 1440, 1.2, 1.44). /l - determină crearea unui fişier catalog, cu extensia LOG. Dacă nu se specifică numele fişierului catalog, se consideră fişierul BACKUP.LOG de pe discul sursă, din directorul rădăcină. În fişierul catalog sunt trecute numele şi calea tuturor fişierelor salvate, împreună cu numărul în secvenţă al discului pe care a fost salvat fişierul. Prima înregistrare a fişierului catalog conţine data şi ora salvării. Exemplu: BACKUP C:USERS*.PAS A: /s/d:10-09-93/f:1200 - determină salvarea pediscul A a tuturor fişierelor cu extensia PAS din subdirectorul C:USERS de pe discul C,precum şi din subdirectoarele inferioare subdirectorului C:USERS, dar numai acele fişierecare au fost modificate după data 10-09-93, formatându-se în prealabil discul la o capacitatede 1,2Mb. 7.2.7.4 Comanda CHKDSK Sintaxa: CHKDSK [d:][path][filename[.ext]][/f][/v] 160
    • Verifică structura de directoare şi tabela de alocare a discului implicit sau cel specificatîn comandă, şi afişează un raport al stării discului. Dacă se specifică un nume de fişier, se vaafişa şi numărul zonelor necontigue ocupate de fişier (sau fişiere, dacă s-a utilizat un numegeneric de fişier). /f - determină executarea corecţiilor în director sau tabela de alocare. Fără opţiunea /f se pot analiza rezultatele corecţiilor fără scrierea lor efectivă pe disc (corecţiile sunt simulate). /v - determină afişarea detaliată a informaţiilor şi erorilor întâlnite. 7.2.7.5 Comanda EXE2BIN Sintaxa: EXE2BIN [d:][path]filename[.ext] [d:][path][filename[.ext]] Converteşte un fişier din format EXE în format imagine memorie (COM). Dacă nu sespecifică extensia celui de-al doilea fişier, se consideră implicit extensia BIN. Extensiaimplicită a primului parametru este EXE. Fişierele în format EXE sunt fişiere relocabile,fiind posibilă rularea lor de la diferite adrese de încărcare. Fişierele EXE conţin informaţii derelocare, care ajută sistemul de operare să execute relocarea programului respectiv atuncicând acesta este încărcat în memorie. Fişierele COM sunt fişiere imagine memorie, fiindîncărcate şi rulate numai în zona de memorie pentru care sunt generate adresele din fişier. Înschimb, fişierele COM sunt de dimensiune mai mică, deoarece nu conţin informaţii derelocare, şi sunt încărcate mai rapid în memorie de către procesorul de comenzi, care nu maiexecută relocarea adreselor programului respectiv. 7.2.7.6 Comanda FDISK Sintaxa: FDISK Partiţionează un disc hard. Comanda pune la dispozitie un sistem de menu-ri adecvat,care ajută utilizatorul în operaţiile de gestiune a partiţiilor. Dimensiunea maximă a uneipartiţii este de 2Gocteţi. Partiţia activă este acea partiţie din care se încarcă sistemul deoperare. După partiţionare, fiecare partiţie trebuie formatată cu ajutorul comenzii FORMAT. 7.2.7.7 Comanda FORMAT Sintaxa: FORMAT d: [/1][/4][/8][/n:sectors][/t:tracks][/v:[label]][/s] FORMAT d: [/1][/b][/n:sectors][/t:tracks] FORMAT d: [/v][/f:size][/s] Comanda crează directorul rădăcină, tabela de alocare a fişierelor, scrie pe discprogramul încărcător al sistemului de operare, şi verifică discul marcând cluster-ele defecte înFAT, prevenind în acest fel utilizarea lor ulterioară. În cazul discurilor flexibile, crează şistructura fizică a discului (structura de sectoare, piste, cilindri ), prin scrierea informaţiilorutilizate de către controlerul de floppy disk. La discurile fixe, structura fizică este creată cuajutorul unor programe ca HDINIT sau FDISK, comanda FORMAT iniţializând numaistructura logică a discului. Parametrii comenzii sunt următorii: /1 - formatare simplă faţă 161
    • /4 - formatare simplă sau dublă faţă în unităti de 1,2Mocteti (numai pentru discuri de 5,25") /8 - formatare cu 8 sectoare pe pistă /b - bootable - creează spaţiu pe disc pentru fişierele sistem IO.SYS şi MSDOS.SYS, fără a le plasa pe disc /s - system - copie fişierele sistem ale căror nume sunt găsite în fişierul FORMATS.TBL de pe discul implicit. Discul formatat trebuie să aibă o capacitate mai mare de 1,2Mocteţi /t:tracks - specifică numărul de piste al discului ce se formatează /n:sectors - specifică numărul de sectoare pe pistă al discului ce se formatează /v:label - specifică eticheta (numele discului) de volum a discului /f:size - specifică dimensiunea discului ce se formatează. Nu se utilizează în acelaşi timp cu opţiunile /n şi /t. Valorile posibile ale parametrului size sunt : 160, 180, 320, 360, 1200, 1.2, 720, 1440, 1.44. Practic, în prezent, marea majoritate a utilizatorilor de calculatoare utilizează numai discuri flexibile de 3,25", cu capacitatea de 1,44Mocteţi. Exemple: FORMAT A: /T:80/N:18/S - formatează discul din unitatea A, cu 18 piste şi 80 de sectoare pe pistă, copiind fişierele sistem pe noul disc. FORMAT B: /f:1.44/v:VOL1 - formatează discul din unitatea B la capacitatea de 1,44Mocteţi, specificând o etichetă pentru discul respectiv. 7.2.7.8 Comanda GRAPHICS Sintaxa: GRAPHICS [type][profile][/r][/b][/lcd] Permite tipărirea ecranului grafic la imprimantă, atunci când se apasă simultan tasteleSHIFT şi PRTSC. type - specifică tipul imprimantei: COLOR1 pentru imprimantă IBM cu bandă tuşată neagră şi 4 nuanţe de gri, COLOR4 pentru imprimante IBM cu bandă RGB (Red-Green-Blue-black) etc. profile - specifică numele fişierului ce conţine informaţii despre imprimantele suportate de sistem. Implicit se folosesc informaţiile din fişierul GRAPHICS.PRO. /r - reverse - dacă nu se foloseşte această optiune, se tipăreşte alb în loc de negru şi negru în loc de alb. /b - background - determină tipărirea culorii de fond (numai pentru COLOR4 şi COLOR8) /lcd - determină tipărirea imaginii de pe ecran la imprimantă, în cazul unui display IBM cu cristale lichide. 7.2.7.9 Comanda KEYB Sintaxa: KEYB [ xx, [yyy], [[d:][path]filename][/ID:zzz] 162
    • MS-DOS permite schimbarea modului de afişare a datei şi orei curente, a monedelornaţionale precum şi schimbarea seturilor de caractere, prin comanda COUNTRY dinCONFIG.SYS. De asemenea, se pot schimba seturile de caractere şi amplasarea tastelor petastatură, utilizând comanda KEYB. MS-DOS poate afişa pe ecran sau tipări la imprimantă la un moment dat maximum 256de caractere, care formează pagina de cod activă. Calculatoarele IBM, ca şi imprimantele, vincu o pagină de cod implicită, sau pagină de cod hardware. Dacă caracterele dorite nu se află înpagina de cod hardware, utilizatorul va trebui să utilizeze paginile de cod preparate, care suntstocate pe disc în fişiere cu extensia .CPI. Pentru fiecare ţară suportată de MS-DOS, existăcâte două pagini de cod pregătite, astfel încât utilizatorul va trebui să selecteze codul uneiadin paginile de cod pregătite pentru ţara respectivă. În totalitate MS-DOS are 6 pagini de codpreparate, care au următoarele coduri: 863 - Canadian-French (conţine caractere ale limbilor engleză şi franceză din Canada) 850 - Latin (conţine caractere pentru majoritatea limbilor latine) 865 - Nordic (conţine caractere englezeşti, daneze şi norvegiene) 860 - Portugese (conţine caractere englezeşti şi portugheze) 437 - United States (conţine caractere englezeşti şi ale majorităţii limbilor europene) 852 - Slavic (conţine caractere pentru limbile slave cu alfabet latin) În fiecare pagină de cod preparată, primele 128 de caractere sunt caracterele standardASCII, numai ultimele 128 de caractere fiind caracterele specifice limbilor naţionale. Pentru a utiliza o pagină de cod preparată, mai întâi trebuie încărcate driver-eleDISPLAY şi PRINTER prin CONFIG.SYS, care pregătesc ecranul şi imprimanta să acceptealte pagini de cod, apoi trebuie încărcată în memorie pagina de cod ce se doreşte a fi utilizată,prin comanda MODE (care poate fi plasată în AUTOEXEC.BAT), după care se schimbăpagina de cod activă cu ajutorul comenzii CHCP. Parametrii care intervin în sintaxa comenzii KEYB sunt: xx - un cod pe două litere ce specifică ţara yyy- codul uneia din paginile de cod pregătite pentru ţara xx [[d:][path]filename] - specifică fişierul ce defineşte tastatura (implicit KEYBOARD.SYS) /ID:zzz - specifică tipul tastaturii utilizate. Comanda KEYB încarcă un program pentru tastatură, ce rămâne rezident în memorie.Dacă nu se introduce nici un parametru, se afişează tastatura curentă. CTRL-ALT-F1determină revenirea la tastatura implicită (SUA), CTRL-ALT-F2 determină revenirea latastatura specificată printr-o comandă KEYB anterioară. În tabelul următor sunt date codurilecâtorva ţări, împreună cu paginile de cod pregătite pentru ţările respective. Cod tastatură Ţara ID Pagini de cod gr GERMANIA 129 437,850 163
    • us SUA 103 437,850 fr FRANŢA 120/189 437,850 df DANEMARCA 159 865,850 Exemplu: KEYB fr/120 7.2.7.9 Comanda MEM Sintaxa: MEM [/prog] - afişează programele încărcate în memorie. MEM [/debug] - afişează programele, driver-ele, împreună cu alte informaţii, precum şi zonele rămase libere. 7.2.7.10 Comanda MODE Cel mai adesea comanda MODE este utilizată pentru redirectarea imprimantei paralelecătre un port serial. În acest mod se poate efectua o tipărire pe o imprimantă serială, la fel cape o imprimantă paralelă, fără nici o altă modificare în software. Sintaxa: MODE LPTn := COMm Redirectează imprimanta paralelă LPTn către portul serial COMm (n,m = 1, 2, 3, 4 şireprezintă numărul portului paralel sau serial). Comanda MODE mai poate fi folosită şi pentru: - stabilirea modului de lucru pentru un port serial: viteză de transmisie, număr biţi de stop, dacă se foloseşte sau nu un bit de paritate etc.; - configurarea unei imprimante paralele: număr caractere pe linie, număr linii pe inch etc.; - stabilirea modului de lucru pentru ecran: număr linii pe ecran, dacă ecranul este color sau alb/negru etc. 7.2.7.11 Comanda RECOVER Sintaxa: RECOVER [d:][path]filename[.ext] RECOVER d: Prima formă recuperează toate cluster-ele nedistruse ale fişierului specificat şimarchează cluster-ele defecte în FAT, pentru a preveni alocarea ulterioară a acestora. Exemplu: RECOVER FIŞIER.PAS Cea de-a doua formă este folosită când a fost distrusă informaţia din directorul rădăcină,şi se doreşte recuperarea tuturor fişierelor de pe disc. Se investighează toate lanţurile decluster-e din FAT, şi se crează câte un fişier cu numele FILEnnnn.REC pentru fiecare lanţ dealocare găsit (nnnn este un număr în secvenţă începând cu 0001). 7.2.7.12 Comanda RESTORE Sintaxa: RESTORE d: [d:][path][filename[.ext]] [/s][/p][/b:date][/a:date][/m] [/n][/l:time][/e:time] Este comanda inversă comenzii BACKUP, şi restaurează unul sau mai multe fişierepornind de la o arhivă realizată cu comanda BACKUP, pe unul sau mai multe discuriflexibile. 164
    • Primul parametru (d:) specifică unitatea de pe care se face restaurarea. Al doilea parametrureprezintă unitatea pe care se face restaurarea şi eventual fişierele care se restaurează. /s - se vor restaura şi fişierele din subdirectoarele inferioare directorului specificat. /p - determină cererea confirmării din partea utilizatorului, atunci când se restaurează un fişier care a fost modificat de la ultima salvare sau care este read-only. /b:date - determină restaurarea tuturor fişierelor modificate înaintea datei specificate. /a:date - determină restaurarea tuturor fişierelor modificate după data specificată /m - determină restaurarea numai a fişierelor şterse sau modificate după ultima salvare. /n - determină restaurarea numai a fişierelor care nu mai există pe discul destinaţie. /l:time - determină restaurarea fişierelor modificate după ora specificată. /e:time - determină restaurarea fişierelor modificate înainte de ora specificată. Exemplu: RESTORE A: C: /m/p - determină restaurarea numai a fişierelor modificate din unitatea de disc A, pe unitatea C, cerându-se confirmarea la fiecare fişier modificat ce se restaurează. RESTORE A: C:USERS*.TXT - se restaurează din unitatea A numai fişierele provenite din subdirectorul C:USERS şi care au extensia TXT. 7.2.7.13 Comanda SYS Sintaxa: SYS d: Determină copierea fişierelor sistem IO.SYS şi MSDOS.SYS de pe unitatea implicită,pe cea specificată în comandă. Aceste fişiere nu pot fi copiate cu ajutorul comenzilor COPYşi XCOPY, la fel ca orice fişier obisnuit. 7.2.7.14 Comanda TREE Sintaxa: TREE [d:][path] [/f][/a] Se listează căile arborelui de directoare de pe discul specificat şi, opţional, numelefişierelor din fiecare subdirector. /f - listează şi numele fişierelor din subdirectoare /a - se vor utiliza în afişare caracterele semigrafice disponibile în paginile de cod. 7.2.7.15 Alte comenzi externe: - ATTRIB - modifică sau afişează atributele fişierelor (numai read-only şi archive). - COMP - compară conţinutul a două fişiere. - COMMAND - pune în funcţiune un nou procesor de comenzi. - DISKCOMP - compară conţinutul a două discuri flexibile. - DISKCOPY - copiază întreg conţinutul unui disc flexibil pe un alt disc flexibil. - FASTOPEN - permite localizarea mai rapidă a fişierelor, crescând viteza aplicaţiilorce lucrează cu multe fişiere. 165
    • - JOIN - conectează o unitate de disc la o cale specificată de pe o altă unitate, creându- se o singură structură de directoare pentru cele două unităţi. Unităţile nu vor mai fi denumite astfel prin litere distincte.- LABEL - crează, modifică sau şterge eticheta de volum.- PRINT - tipăreşte fişiere text la imprimantă, în timp ce se execută alte comenzi.- SHARE - permite partajarea fişierelor între mai mulţi utilizatori, atunci când se lucrează în reţea. 166
    • 7.3. MICROSOFT Windows 95 Windows95 poate fi instalat de pe dischete, CD-ROM, sau prin intermediul suportuluide reţea. Pentru instalare, sistemul foloseşte un asistent inteligent sau “wizard” (“vrăjitor” înlimba engleză), ce este un program cu interfaţă grafică, proiectat pentru a conduce instalareasistemului pe calculator. Acest “wizard” realizează majoritatea operaţiunilor de detecţie adiverselor dispozitive periferice (plăci video, plăci de sunet, unităţi CD-ROM, modemurietc.) prezente în calculator sau conectate, respectiv construieşte şi aranjează directoarelenecesare sistemului. Prin intermediul unui dialog permanent cu utilizatorul, programul deinstalare îl ghidează pe acesta prin diversele opţiuni, pe care Windows-ul 95 le propune înmomentul instalării. La final “wizard”-ul propune repornirea calculatorului, sistemul deoperare care va demara fiind Windows 95. Durata instalării este dependentă de opţiunile aleseîn cadrul “wizard”-ului. Trebuie ţinut cont de faptul că asistentul de instalare al Windows-ului 95 nu estecapabil să creeze partiţii, şi să formateze eventualele partiţii existente. Această operaţiune,dacă se dovedeşte a fi necesară, trebuie efectuată înainte de a începe instalarea efectivă asistemului. 7.3.1. Elemente Windows 95 Windows 95 oferă o interfaţă grafică prietenoasă ale cărei elemente principale vor fidescrise în continuare. Pe lângă faptul că ecranul oferit de Windows 95 este în mod grafic,ceea ce face sistemul mai uşor de utilizat şi înţeles, întreaga interfaţă poate fi controlată cuajutorul mouse-ului. Indicatorul (sau cursorul) este o pictogramă prezentă pe ecran, în general de forma uneisăgeţi, şi indică prezenţa unui dispozitiv de poziţionare (mouse, trackball, etc.). Este folositpentru a selecta elemente şi pentru a alege comenzi. Se folosesc câteva metode de lucru cu mouse-ul, după cum urmează: - clic simplu – reprezintă o apăsare simplă a butonului din stânga al mouse-ului, folosit pentru selectarea unui element grafic pe ecran, alegerea unei opţiuni dintr-un meniu, apăsarea unui buton într-o fereastră sau altele. - dublu clic – reprezintă apăsarea de două ori, rapid, a butonului din stânga al mouse-ului, şi are de cele mai multe ori ca rol executarea unei comenzi. - drag & drop – reprezintă apăsarea butonului stânga al mouse-ului deasupra unui element grafic, deplasarea mouse-ului fără a elibera butonul apăsat, poziţionarea cursorului într-o zonă aleasă ca destinaţie şi eliberarea butonului; această tehnică este folosită la 167
    • deplasarea unor entităţi grafice pe ecran, desenarea unor forme în editoarele grafice, efectuarea unor selecţii prin încadrare şi altele. Se mai foloseşte şi efectuarea unui “clic dreapta”, apăsarea butonului din dreapta almouse-ului efectuând accesarea unor meniuri de comenzi rapide, sau deschiderea unormeniuri de comenzi locale, în funcţie de aplicaţia folosită. 7.3.1.1. Ferestre Marea majoritatea a aplicaţiilor Windows95 sunt rulate într-o fereastră. În continuare,va fi detaliată structura grafică a acestor ferestre. Butonul meniului Control Butonul de închidere Bara de titlu Butonul de maximizare Bara de meniuri Butonul de minimizare Bara de instrumente Dosar Fişier Colţul ferestrei Bare de derulare Bara de stare Chenarul ferestrei 168
    • O fereastră este o zonă dreptunghiulară în care se pot vizualiza fişiere, dosare, sau poateavea un conţinut specific aplicaţiei căreia îi corespunde (de exemplu, pentru un program deprelucrare a textelor, textul ce poate fi editat). O fereastră poate fi închisă, redusă sauredimensionată. Se pot deschide mai multe ferestre în acelaşi timp, şi unele aplicaţii permitdeschiderea mai multor ferestre în interiorul uneia principale. Elementele (active) comune ale ferestrelor sunt:- Bara de titlu: conţine numele ferestrei, butoanele de control al meniului, de minimizare, de maximizare sau refacere, şi de închidere;- Bara cu meniuri: conţine meniuri având comenzi şi opţiuni specifice aplicaţiei pornite în fereastra respectivă;- Butonul de control al meniului: conţine comenzi referitoare la fereastră;- Butonul de minimizare: reduce fereastra la un buton în bara de task-uri;- Butonul de maximizare: măreşte fereastra pentru a ocupa tot ecranul;- Butonul de închidere: închide fereastra şi aplicaţia care rulează în fereastra respectivă;- Chenarul ferestrei: permite redimensionarea ferestrei;- Colţurile ferestrei: permit şi ele redimensionarea ferestrei. O fereastră Windows mai poate conţine şi următoarele elemente:- Bara de instrumente (toolbar): conţine butoane având desenate instrumente care reprezintă comenzi rapide. Afişarea ei este opţională.- Bara de stare (status bar): este o bară aşezată orizontal, care descrie câteva proprietăţi ale conţinutului ferestrei. Afişarea ei este opţională de cele mai multe ori.- Bara de derulare (scroll bar): poate fi orizontală sau verticală şi permite vizualizarea părţilor ascunse de limitele ferestrei. Ele apar automat atunci când fereastra conţine informaţie ce nu poate fi afişată în chenarul curent. 7.3.1.2. Meniuri Meniul reprezintă o listă de comenzi înrudite, folosite pentru a executa anumite acţiuni în cadrul aplicaţiilor Windows. Comenzile din meniuri sunt organizate pe grupuri logice. Pentru a executa o comandă dintr-un meniu derulant, se execută un clic stânga pe titlul meniului, pentru a-l deschide, şi apoi se execută un clic stânga pe opţiunea aleasă. Pentru a face meniul să dispară se poate executa un clic în afara meniului. Meniurile pot fi accesate şi cu ajutorul tastaturii. Pentru a activa bara de meniuri se 169
    • apasă tasta “Alt”, primul meniu fiind selectat automat. Se pot folosi în continuare tastele cusăgeţi pentru a selecta comanda dorită, după care se apasă “Enter” pentru activarea comenzii.Opţiunea ce se doreşte a fi selectată se poate activa şi apăsând tasta corespunzătoare litereisubliniate din titlul comenzii, dacă există. În meniuri, lângă titlul comenzii este afişată uneori şi comanda rapidă care permite accesul direct la comandă. Comenzile rapide permit selecţia unei comenzi fără ajutorul meniurilor, şi acestea se execută, de cele mai multe ori, prin combinaţii ale tastelor speciale “Alt”, “Shift” sau “Ctrl”. Atât Windows 95, cât şi multe aplicaţii pentru Windows 95, oferă o varietate de “meniuri scurtătură” (shortcuts), ce conţin comenzile uzuale. Aceste meniuri scurtătură se afişează la executarea unui clic dreapta, deasupra unui obiect sau a suprafeţei de lucru. 7.3.1.3.Casete de dialog Sistemul Windows 95 şi aplicaţiile Windows folosesc casete de dialog, pentru aschimba informaţii cu utilizatorul. Casetele de dialog cer, de cele mai multe ori, informaţiilenecesare, pentru ca programul folosit sau sistemul să poată executa operaţia respectivă.Windows 95 afişează, de asemenea, casete de dialog şi pentru a oferi informaţii desprerezultatul executării unei comenzi. Casetele de dialog variază în complexitate, depinzând de programul care le genereazăsau de procedura folosită. Unele cer o simplă confirmare a unei acţiuni care trebuieexecutată, altele oferă posibilitatea alegerii între numeroase opţiuni. Componentele întâlnite într-o casetă de dialog sunt următoarele:- Casetă text: oferă posibilitatea introducerii unor caractere de la tastatură (de exemplu, nume de fişier, calea spre un fişier, etc.) 170
    • Casetă text Casetă cu listă derulantă Casetă de validare Buton de comandă- Casetă cu listă: prezintă opţiunile ce pot fi alese; de cele mai multe ori se întâlnesc pe ele şi bare de derulare; selecţia poate fi simplă sau multiplă, adică se poate selecta fie numai un element din listă, fie mai multe.- Caseta cu listă derulantă: este o casetă cu o listă de o singură linie, având un buton de derulare la dreapta; la executarea unui clic stânga pe buton, o casetă cu o listă derulantă se deschide pentru afişarea listei de opţiuni; nu permite decât o singură selecţie.- Butoanele cu opţiuni: prezintă un grup de elemente înrudite din care poate fi ales numai unul; un clic pe una din opţiuni le deselectează pe celelalte.- Caseta de validare: permite selectarea sau deselectarea unei opţiuni; în cazul validării, un semn apare în dreptul căsuţei; într-un grup de astfel de casete se pot selecta oricâte opţiuni, sau nici una.- Butonul de comandă: îndeplineşte funcţia care este afişată pe el. (Open, Help, Quit, Cancel, etc.); dacă lângă numele afişat pe buton se găseşte o elipsă (…), apăsarea lui duce la deschiderea unei noi casete de dialog.- Etichete: reprezintă secţiuni sau pagini multiple ale unei casete de dialog; la un moment dat numai o singură etichetă este afişată, fiecare etichetă conţinând opţiuni înrudite; alegerea unei etichete schimbă opţiunile ce apar în caseta de dialog. Sunt deseori numite şi Tab-uri. 171
    • Etichete Casetă cu listă Butoane cu opţiuni Casetă de validare 7.3.1.4. Desktop Desktop-ul (suprafaţa de lucru) este o porţiune dreptunghiulară din suprafaţa ecranului,care este cel mai îndepărtat strat din ceea ce este afişat pe ecran. Desktop-ul poate conţine pictograme (denumite şi iconiţe) şi are ca principaleproprietăţi:- culoarea fundalului, care poate fi o singură culoare uniformă sau o imagine;- setarea unui tipar, care poate fi suprapus peste culoarea fundalului; 172
    • - spaţierea pictogramelor. Proprietăţile desktop-ului pot fi setate executând un clic din dreapta pe suprafaţa sa.Pictogramele aşezate pe suprafaţa de lucru reprezintă directoare sau dosare (numite folder-e),fişiere şi aplicaţii. Principalele pictograme standard sunt: My Computer reprezintă conţinutul calculatorului, incluzând discurile fixe, unităţile de dischetă şi de CD-ROM. Sunt incluse de asemenea şi imprimantele care pot fi accesate de calculator (locale sau de reţea), dosarul cu aplicaţiile de configurare a sistemului Windows 95 şi dosarul ce permite configurarea modemului, dacă suportul pentru modem a fost instalat. Network Neighborhood afişează celelate calculatoare aflate în reţeaua locală, din reţele de tip Microsoft (Windows NT sau Windows for Workgroups) sau de alte alte tipuri (Novell). Această iconiţă nu apare decât dacă a fost instalat în Windows 95 şi suportul pentru reţea. Recycle Bin, sau coşul de gunoi, reprezintă un dosar (folder) special ce conţine toate obiectele (fişierele şi directoarele) care sunt şterse din sistem, permiţând recuperarea lor până la o golire explicită a acestuia. Unele variante de Windows 95 sunt livrate împreună cu pachete de programe pentrucomunicaţie în reţea şi pentru Internet. În acest caz apar noi pictograme pe fundal: Inbox este o componentă a programului Microsoft Exchange, care permite trimiterea şi primirea de fax-uri sau mesaje e-mail. Internet Explorer este navigatorul Internet furnizat de firma Microsoft, pentru accesarea de pagini html în Internet. Peste fundal se află, de obicei în partea de jos a ecranului, bara de aplicaţii (sau bara detask-uri, din eng. taskbar). Aceasta conţine butonul Start, care afişează un meniu din care sepoate alege o aplicaţie ce poate fi lansată, un document pentru a fi prelucrat, se poate obţineasistenţă software, şi se pot căuta fişiere pe disc sau se poate închide sistemul Windows 95. 173
    • Bara de aplicaţii mai conţine în partea din dreapta o zonă specială denumită “systemtray”, în care este afişată ora sistemului împreună cu iconiţe pentru anumite tipuri deprograme, numite rezidente. Acestea se încarcă de obicei la pornirea sistemului Windows 95,şi rulează permanent pe durata unei sesiuni. Spaţiul dintre “tray” şi butonul Start este ocupatde butoane care apar în momentul în care o aplicaţie este pornită. Aceste butoane seautodimensionează şi se pot aranja şi pe mai multe rânduri, în momentul în care sunt preamulte butoane ce trebuie afişate. Prin efectuarea unui clic din dreapta asupra unui buton din bara de aplicaţii, se deschideun meniu local corespunzător aplicaţiei, similar de cele mai multe ori cu meniul butonului decontrol din bara de titlu a aplicaţiei. Meniul Start este afişat în momentul efectuării unui clic stânga peste butonul cuacelaşi nume din bara de aplicaţii. Deplasând cursorul de-a lungul meniului se pot apelacomenzi directe pentru sistem sau se pot lansa aplicaţii, fiind folosit pentru a avea acces laprograme şi documente, la sistemul de asistenţă software (help) şi la alte componente alesistemului Windows 95. În structura sa se găsesc următoarele: - Programs – afişează lista de programe instalate în sistem şi aplicaţiile ce vin cu Windows 95, unele grupate în meniul Accessories, altele accesibile direct (de exemplu Command Prompt). - Documents – afişează cele mai recente documente deschise (15); pentru a le accesa repede şi uşor, lansând aplicaţia cu care au fost editate, se execută un clic pe numele documentului. - Settings – afişează dosarele Control Panel, Printers şi Bara de taskuri pentru personalizarea configurării Windows 95. - Find – permite căutarea de fişiere, directoare şi/sau calculatoare în reţeaua locală. - Help – afişează informaţii despre executarea taskurilor şi a procedurilor, şi despre folosirea sistemului Windows 95. - Run – permite introducerea unei linii de comandă pentru a rula un program de pe hard disc sau dischetă. 174
    • - Shut Down – afişează caseta de dialog Shut Down prin care se pregăteşte oprirea calculatorului, sau se realizează deconectarea utilizatorului curent, în vederea unei alte sesiuni de lucru, fără a opri calculatorul. 7.3.2. Windows Explorer Programul Windows Explorer este folosit pentru a organiza informaţia conţinută pediscurile disponibile în sistem, permiţând lucrul cu fişiere: este posibilă schimbare numelui,copierea, mutarea, ştergerea fişierelor şi directoarelor etc. De obicei, Windows Explorerpoate fi găsit în meniul Programs al butonului Start. Windows Explorer este compus în principal din două panouri. Implicit, panoul dinstânga afişează structura arborescentă de pe discurile locale, împreună cu câteva directoarespeciale. Panoul din dreapta afişează lista cu fişierele şi directoarele, din directorul selectat înpanoul din stânga, sau conţinutul unui director special, dacă acesta este selectat. Elementele ferestrei Windows Explorer: - Bara de titlu: conţine numele ferestrei (Exploring), numele unităţii de disc şi eventual calea până la directorul selectat în panoul din stânga, butonul meniului de control şi butoanele de minimizare, maximizare/refacere şi de închidere a ferestrei. - Bara de meniuri: afişează meniuri legate de operaţiile cu unităţi de disc, dosare, fişiere sau reţea. - Fereastra cu calea unităţii de disc: afişează calea selectată în momentul respectiv în panoul din stânga. 175
    • - Bara de instrumente: oferă diferite instrumente pentru a naviga prin Explorer precum şi accesul la principalele funcţii de lucru cu fişiere. - Panoul de dosare şi programe: afişează directorul rădăcină sau unitatea de disc sau orice alt director selectat. - Panoul de fişiere şi subdosare: afişează conţinutul dosarului selectat în panoul din stânga. - Bara de stare: afişează date statistice, cum ar fi: spaţiul liber pe unitatea de disc selectată, numărul de fişiere din director sau numărul elementelor selectate etc. Fereastra unităţii de disc Bara de titlu Bara de meniuri Bara de instrumente Panoul stânga al dosarelor Bara de stare Panoul dreapta al subdosarelor şi programelor Pentru a vizualiza conţinutul unui director, se poate executa un clic simplu pe semnulplus care precede numele dosarului, sau un dublu clic pe numele acestuia sau pe icoanacorespunzătoare. Pentru a îi ascunde conţinutul se execută un clic pe semnul minus din faţanumelui sau un dublu clic pe zona de ecran ocupată de nume. În afara numelor fişierelor, se pot vizualiza în panoul din dreapta şi diferite detaliidespre fişiere sau directoare. Pentru aceasta se pot folosi butoanele de pe bara de instrumentesau meniul View (Details, de exemplu). Pentru aranjarea conţinutului panoului din dreapta în 176
    • funcţie de nume, tip (extensie), dimensiune sau dată, se poate apela la butoanele careconstituie capul tabelului afişat. O altă modalitate este selectarea meniului View -> ArrangeIcons şi alegerea tipului de sortare dorită. Pentru crearea unui nou director (dosar) se poate proceda în mai multe feluri. Mai întâise poziţionează cursorul de selecţie pe directorul care va fi părinte. Se poate alege apoi dinmeniul File -> New -> Folder, sau se efectuează un clic dreapta într-o zonă liberă din panouldin dreapta, selectând din meniul de comenzi rapide apărut opţiunea New -> Folder. Selectarea mai multor fişiere, contigue sau nu în lista afişată, se face cu ajutorul mouse-ului. Pentru a selecta o listă de fişiere sau directoare contigue, se selectează primul elementdin listă şi ţinând apăsată tasta Shift se execută un clic pe ultimul element din listă. Pentru aselecta mai multe elemente, se ţine apăsată tasta Ctrl şi apoi se execută un clic stânga cumouse-ul asupra fiecărui element ce se doreşte a fi selectat. Pentru a selecta secvenţecontigue de fişiere şi directoare, şi elemente necontigue, se combină cele două tehnicidescrise. Observaţie: Nu se pot selecta elemente din mai multe directoare simultan. Pentru alucra cu fişiere (directoare) din mai multe directoare acestea trebuiesc tratate pe rând. Ştergerea fişierelor şi a directoarelor în Windows 95 presupune mutarea fişierelor într-un dosar special, numit Recycle Bin, (coşul de gunoi). După efectuarea selecţiei asupraelementelor ce trebuie să fie şterse, se poate apăsa butonul de ştergere din bara deinstrumente , se poate alege opţiunea “Delete” din meniul “File”, sau se poate activameniul de comenzi rapide prin efectuarea unui clic dreapta asupra zonei selectate, alegând dinacest meniu “Delete” sau, o a treia variantă pentru ştergere, se poate apăsa tasta Delete.Fişierele şi directoarele şterse pot fi recuperate din Recycle Bin poziţionând selecţia înWindows Explorer asupra icoanei specifice, efectuând apoi un clic dreapta asupraelementelor selectate, şi alegând opţiunea Restore din meniul de comenzi rapide apărut, sauaccesând aceeaşi comandă din meniul “File”. Elemente stocate în Recycle Bin există până lagolirea explicită a acestuia din meniurile normale sau din cele de comenzi rapide; în cazul încare se depăşeşte dimensiunea alocată Recycle Bin-ului, sunt şterse automat cele mai vechiintrări, cele mai vechi elemente şterse. Pentru a copia sau deplasa fişiere sau directoare între două zone de hard disc sau întrepartiţii diferite se foloseşte Clipboard-ul. Acesta reprezintă o zonă temporară de stocare ainformaţiilor, în vederea deplasării lor. Pentru copiere se efectuează selecţia elementelor cetrebuiesc deplasate, se alege comanda “Copy” din meniul “Edit”, sau se apasă butonulcorespunzător din bara de instrumente , ceea ce are ca efect plasarea informaţiilornecesare copierii în Clipboard. Se selectează apoi directorul destinaţie şi se alege opţiunea“Paste” din meniul Edit, sau se apasă butonul Paste din bara de instrumente . Dacă se doreşte redenumirea unui director sau a unui fişier, se selectează numelecorespunzător din listă, şi se alege, din meniul “File” sau din meniul de comenzi rapide, 177
    • opţiunea “Rename”. Se introduce apoi direct în listă numele nou al fişierului, sau aldirectorului, în caseta text editabilă apărută. Copierea şi mutarea fişierelor se mai poate realiza folosind tehnica Drag & Drop cuajutorul mouse-ului. Se selectează elemente ce trebuiesc deplasate, şi apoi se trage toatăselecţia făcută deasupra directorului destinaţie, indiferent de panoul în care se află acesta.Dacă în timpul deplasării se menţine apăsată tasta Ctrl, se realizează copierea elementelorselectate. Dacă elementele selectate sunt deplasate deasupra directorului special Recycle Bin,acestea vor fi şterse - mutate de fapt în Recycle Bin. Windows-ul 95 permite crearea de “scurtături” (“shortcuts” - numite şi comenzi rapide)spre fişiere (de orice natură) sau directoare. Acestea reprezintă doar o legătură spre fişieruloriginal şi permite accesul rapid la directorul sau fişierul respectiv. O legătură spre un fişiersau director se recunoaşte imediat prin săgeata mică din colţul din stânga jos alăturatăpictogramei originale. Putem considera că aceste comenzi rapide sunt echivalente cu unbuton care permite accesul direct la fişierul, directorul sau la aplicaţia respectivă, care poate fisituat oriunde pe discul fix sau chiar pe Desktop. La efectuarea unui dublu clic asuprapictogramei comenzii rapide, i se spune de fapt Windows-ului să identifice fişierul ţintă şi săîl deschidă. 7.3.3. Control Panel Control Panel reprezintă centrul de control al Windows-ului. De aici se pot configuracea mai mare parte a aspectului şi funcţionalităţii interfeţei grafice, mergând până laposibilitatea configurării unor dispozitive periferice. Apare sub forma unei ferestre în care segăsesc mai multe pictograme, fiecare lansând o aplicaţie asociată cu tipul ajustărilor dorite.Acestea vor fi descrise în linii mari în continuare. Control Panel-ul poate fi accesat în mai multe feluri: - efectuând un clic în opţiunea Settings a meniului Start; - efectuând un dublu clic în Windows Explorer sau în My Computer; - executând, printr-un dublu clic asupra icoanei corespunzătoare în Windows Explorer, programul control.exe. Icoanele (şi implicit aplicaţiile) pot fi diferite de la calculator la calculator, existândunele aplicaţii care îşi adaugă icoane proprii în Control Panel. Acestea sunt: Accessibility – oferă accesul la configurarea interfeţei Windows, pentru persoanele cu handicap fizic. Nu face parte din instalarea standard a Windows-ului şi aşadarpoate lipsi din anumite calculatoare; se pot configura sunete pentru anumite acţiuni alesistemului, se poate stabili folosirea tastelor direcţionale, şi a unor taste din segmentul detaste numerice, pentru direcţionarea cursorului pe ecran, etc. 178
    • Add New Hardware – foloseşte la configurarea sistemului, atunci când se doreşte adăugarea unor noi dispozitive periferice. Majoritatea calculatoarelor noi posedăfuncţii de Plug & Play (de obicei inserate în BIOS), care permit Windows-ului să detecteze şisă configureze automat noile dispozitive introduse în sistem. În acest caz, asistentul oferitprin această pictogramă în Control Panel nu este folosit, sistemul cerând utilizatorului săintroducă discurile cu driver-ele necesare. Asistentul este folosit în două cazuri de excepţie:primul, în cazul în care calculatorul nu are opţiuni de Plug & Play sau acestea nu suntactivate, şi al doilea în cazul în care dispozitivul introdus nu respectă standardele deautodetecţie. În aceste situaţii, asistentul Add New Hardware va căuta dispozitivul adăugat,încercând o configurare a acestuia, dacă există un driver în kit-ul standard de Windows 95,dacă nu sugerând dispozitive similare. Add/Remove Programs – ce permite instalarea/ dezinstalarea unor aplicaţii sau pachete de aplicaţii în sistem, şi adăugarea/scoaterea aplicaţiilor standard Windows 95; oferă 3 taburi separate. Primul tab, prin butonul Install, lansează un program care supraveghează instalarea unor aplicaţii noi în sistem, în vederea creării unei liste cu fişierele adăugate (pentru dezinstalarea ulterioară). Este prezentată şi o listă cu toate aplicaţiile instalate în sistem de unde se permite dezinstalarea fiecărei aplicaţii. Al doilea tab oferă o listă aaplicaţiilor care vin standard în Windows 95, permiţând adăugarea sau dezinstalarea lorfolosind kit-ul de instalare al sistemului. Al treilea tab pune la dipoziţie utilizatorului posibilitatea de a crea o dischetă sistem. Discheta astfel creată permite pornirea (boot-area) calculatorului, în cazul în care sistemul nu mai porneşte în mod normal de pe discul fix, şi include majoritatea aplicaţiilor din linia de comandă 179
    • necesare pentru aranjarea partiţiilor şi formatarea discurilor. Date/Time – permite setarea ceasului calculatorului şi a datei acestuia. Asistentul poate fi accesat şi executând un dublu clic asupra zonei din bara de aplicaţii în careeste afişată ora. Se poate ajusta şi zona geografică în care este plasat calculatorul. Display – conţine mai multe tab-uri care permit ajustareaaspectului interfeţei Windows 95pe ecran. Toate aceste tab-uriconţin o mică zonă grafică în careeste afişată o vizualizare a nouluiaspect, care ar rezulta în urmamodificărilor efectuate. Back-ground permite schimbareaimaginii de pe fundalul desktop-ului, iar din tab-ul Screen-Saver sepoate schimba economizorul deecran folosit (un program care intrăîn funcţiune după o anumităperioadă de inactivitate a tastaturiişi mouse-ului, în scopul de aproduce o animaţie pe ecran,pentru a nu solicita inutilluminoforii tubului catodic al monitorului). Tab-ul Settings conţine principalele elementenecesare pentru controlul ecranului; se poate schimba rezoluţia plăcii grafice şi profunzimeade culoare (numărul maxim de culori afişabile) de pe ecran. Trebuie găsit un compromis întreaceste două caracteristici, în funcţie de performanţele plăcii grafice din calculator şi amonitorului. Este de asemenea posibilă schimbarea driver-ului plăcii grafice, în cazulschimbării acesteia din urmă. Tab-ul Appearance permite schimbarea culorilor interfeţeiWindows, modificarea mărimii şi tipului caracterelor folosite pentru afişarea ferestrelor şialtele. Întreg aspectul interfeţei poate fi personalizat de către fiecare utilizator, sau se potalege scheme standard de culori şi stiluri din lista predefintă din Windows. Fonts – deschide o fereastră ce afişează conţinutul dosarului în care sistemul îşi ţine tipurile de caractere (font-uri) care pot fi folosite. Efectuând un dublu clic asupra unuifont se poate obţine o fereastră care să afişeze tipul respectiv de caracter în mai multe mărimi.Meniurile ferestrei permit gestiunea fonturilor instalate în sistem, cum ar fi de exempluadăugarea unui nou tip de caracter. 180
    • Internet – în cazul în care Microsoft Internet Explorer este instalat pe calculator, din acest asistent se pot ajusta configurările referitoare la aplicaţie în sine, precum şi tipul de conexiune existentă în reţeaua respectivă. Joystick – dacă există un joystick legat la calculator, din această icoană se obţine asistentul care permite configurarea dispozitivului. Keyboard – foloseşte la configurarea tastaturii, referitor la viteza de repetiţie a unei taste menţinută apăsată. Tab-ul Language permite adăugarea (sau schimbarea) uneinoi limbi pentru tastatură, în cazul în care este nevoie. Tab-ul General este folosit laschimbarea tipului de tastatură legată la calculator şi implicit a driver-ului aferent. Modems – permite adăugarea unui modem în sistem şi configurarea acestuia. Din acest asistent se setează, de exemplu, toate datele necesare conectării prin Dial-Up la Internet. Mouse – oferă diverse opţiuni referitoare la ajustarea parametrilor de funcţionare ai mouse-ului. Se poate modifica sensibilitatea acestuia, viteza de reacţie, şi modul depoziţionare în jurul tastaturii (în partea dreaptă sau în partea stângă). Tab-ul Pointers permitemodificarea tipului de cursoare grafice afişate. Tab-ul General este folositor atunci când sedoreşte schimbarea driver-ul pentru mouse. Multimedia – accesează asistentul folosit pentru ajustarea parametrilor audio şi video ai sistemului Windows 95. Tab-ul Audio permite setarea volumului de ieşire al plăciiaudio (dacă aceasta există) şi se poate opta pentru afişarea unei icoane de forma unui difuzorîn System Tray, pe bara de aplicaţii de unde se poate controla volumul; se poate ajusta şinivelul de intrare al microfonului. Tab-ul Video oferă câteva opţiuni referitoare la secvenţelede animaţie care pot fi vizionate pe ecran. Tab-ul Midi particularizează instrumentele folositede sistem pentru înregistrări audio numerice de tip MIDI (Musical Instrument DigitalInterface). Tab-ul CD Music se referă la volumul redării CD-urilor audio, via placa de sunetinserată în calculator. Tab-ul Advanced permite ajustarea unor opţiuni particulare plăcii desunet şi a parametrilor funcţionali ai acesteia. Network – configurează parametrii plăcii de reţea, dacă acesta există în calculator, precum şi protocolul de reţea folosit. Passwords – conţine două Tab- uri, care facilitează configurareasistemului pentru a permite mai multorutilizatori să folosească acelaşicalculator cu interfaţa personalizatăpentru fiecare. Primul Tab, ChangePasswords oferă o casetă de dialog cepermite fiecărui utilizator să îşi modifice parola de autentificare pe lângă sistem, sau pe lângăsistemele din reţea ce oferă acest serviciu (de autentificare), dacă este cazul. Tab-ul UserProfiles este cel de unde se poate seta configurarea sistemului, pentru a permite folosirea lui 181
    • de către mai mulţi utilizatori. În cazul în care se alege opţiunea “un singur desktop pentru toţiutilizatorii”, fereastra de autentificare de început de sesiune nu va mai fi afişată. Power – oferă un asistent pentru configurarea modului de economie al energiei, opţiune utilă în cazul în care calculatorul este portabil sau dacă hardware-ulcalculatorului are module pentru această opţiune. Se poate vizualiza nivelul de încărcare alacumulatorilor în cazul unui calculator portabil, de exemplu. Dacă este prezentă în sistemfacilitatea de gestiune a energiei (Power Management), se poate afişa din acest asistent ointrare suplimentară în meniul Start, numită Suspend, care are ca scop trecerea calculatoruluiîn regim de economie de energie. Printers – deschide dosarul ce permite configurarea imprimantelor instalate în sistem, acelaşi cu dosarul obţinut din meniul Start ->Settings. Regional Settings – oferă posibilitatea configurării sistemului în funcţie de zona geografică unde este plasat calculatorul, referitor la afişarea datelor, numerelor şi a monedei. Sounds – Windows 95 are posibilitatea asignării unor sunete anumitor operaţiuni din cadrul interfeţei (minimizarea, maximizarea sau închiderea unei ferestre, golirea Recycle Bin-ului, etc.). Din aceasta casetă de dialog se pot personaliza aceste sunete. System – este probabil cea mai importantă aplicaţie de asistenţă din cadrul Control Panel-ului. Prin intermediul casetelor de dialog prezentate, se pot soluţiona conflictehardware apărute (din punct de vedere al partajării resurselor, de exemplu), poziţionareaparametrilor în mod neadecvat în această zonă putând conduce la blocarea sistemului. Tab-ulGeneral oferă informaţii generale despre sistemul Windows 95 instalat şi despre memoria şiprocesorul din calculator. Tab-ul Device Manager este folositor pentru a identificadispozitivele periferice ce au anumite probleme în funcţionare. Principalul element este listaarborescentă prezentată şi în figură în care apar toate dispozitivele din calculator, fiind uşorde observat care sunt cele care au eventuale probleme. Se poate selecta un anumit element dinlistă şi apoi pot fi afişate proprietăţile caracteristice acelui dispozitiv la nivel hardware(adrese de memorie, numerele întreruperilor folosite). Printr-o ştergere a unui dispozitiv dinaceastă listă se poate înlătura din sistem drive-ele aferente dispozitivului respectiv. Dacă seselectează icoana din rădăcina listei (Computer) şi se apasă butonul Properties se afişează ofereastră ce conţine informaţii despre toate resursele hardware ale calculatorului şi cui suntele alocate. Aceste informaţii pot fi foarte utile în momentul în care se doreşte adăugarea unuidispozitiv în sistem, care are nevoie de specificaţiile anumitor resurse libere în calculator.Selectând un element din listă şi apăsând butonul Properties (sau un dublu clic asupraelementului direct în listă) se afişează o casetă de dialog ce oferă informaţii despreconfiguraţia dispozitivului ales. 182
    • Tab-ul General afişează informaţii generale despre dispozitiv. Tab-ul Driversfurnizează lista cu fişierele existente în sistem care sunt folosite de acel dispozitiv (drivereledispozitivului), iar butonul Change Driver permite schimbarea driver-elor, de exemplu încazul actualizării fişierelor la ultimele versiuni existente, sau atunci când, datorită unorprobleme, în baza de date a Windows-ului (Registry) nu se mai află informaţiile corectereferitoare la dispozitivul ales. Tab-ul Resources permite afişarea resurselor folosite dedispozitivul respectiv şi poate fi util atunci când apare o problemă în sistem, semnalândeventualele conflicte între dispozitivul selectat şi celelalte. Dacă asistentul Device Managernu este capabil să ofere o soluţie viabilă spre rezolvarea conflictului, în ceea ce priveştealocare de resurse, se poate alege opţiunea “Use automatic settings”, la o repornire asistemului, Windows 95 încercând să aloce automat resursele între dispozitive. Tab-ulHardware Profiles este util în momentul în care se folosesc mai multe configuraţii hardwarepentru calculator. Dacă există mai multe configuraţii hardware setate pe sistemul respectiv(de exemplu cu suport de reţea instalat sau nu), atunci la pornire sistemul va afişa un meniu,din care se va cere alegerea configuraţiei hardware în care se doreşte funcţionareacalculatorului. Tab-ul Performance oferă posibilitatea modificării unor parametri legaţi deviteza de funcţionare a sistemului. În general, Windows 95 setează aceşti parametri în modautomat şi ei nu ar trebui modificaţi fără o nevoie explicită. 183
    • 7.4. Linux Sistemul Linux este un sistem de operare din categoria Unix-urilor, proiectat iniţialpentru platformele x86. Linux-ul este “freeware”, adică nu este un sistem de operarecomercial. A fost dezvoltat iniţial de Linus Torvalds la Universitatea din Helsinki, înFinlanda, şi a fost anunţat public pentru prima dată în noiembrie 1991. Datorită răspândirii pecare a căpătat-o în ultimul deceniu, au apărut firme comerciale care vând totuşi variante aleacestui produs, Linux-ul devenind el însuşi o familie, la ora actuală existând mai multevariante de Linux. Cele mai des întâlnite (şi cele mai importante) variante de Linux sunturmătoarele: - Red Hat Linux - Slackware Linux - OpenLinux al firmei Caldera - SuSE Linux (Germania) - Debian Linux Datorită compatibilităţii sale cu sistemele Unix majore, pe această platformă de operarese pot găsi majoritatea aplicaţiilor care rulează şi pe Unix-urile de firmă, portarea aplicaţiilorde la un sistem la altul nefiind foarte dificilă. Cele mai importante caracteristici ale Linux-ului sunt următoarele: - Multitasking veritabil şi funcţionare pe 32 de biţi, folosind modul protejat al procesoarelor 386 şi superioare; - Posibilitatea conectării mai multor utilizatori simultan pe acelaşi calculator; - Sistemul grafic X Windows – interfaţa grafică standard pentru sistemele Unix; - Suport pentru protocolul de reţea TCP/IP încorporat în sistem; - Existenţa memoriei virtuale şi a bibliotecilor de funcţii partajate; - Prezenţa celor mai multe facilităţi ale sistemelor Unix. 7.4.1. Structura sistemului Linux Pentru a înţelege funcţionarea unui sistem Linux, este nevoie mai întâi de ofamiliarizare cu structurile de fişiere şi organizarea acestora. Se poate face o clasificare a fişierelor Linux, în funcţie de nişte considerente generale,astfel: - fişiere obişnuite: conţin informaţiile pe care le crează şi le prelucrează sistemul sau utilizatorii. Pot fi în mod text sau binar, sau pot fi fişiere speciale create de anumite aplicaţii, fişiere ce conţin cod executabil. - fişiere speciale: acestea sunt nişte fişiere ale sistemului de operare prin intermediul cărora acesta execută operaţiile cu dispozitivele periferice din calculator; se împart în două categorii: fişiere ce comunică la nivel caracter, respectiv la nivel de blocuri. Mai 184
    • există un tip special de fişiere, numit “pipe”, ce reprezintă canale de comunicaţie constituite în memorie între două procese. - fişiere de legătură (links): reprezintă o legătură în directorul în care sunt create, spre un alt fişier sau director aflat în altă zonă a sistemului de fişiere. Aceasta poate fi o metodă de a da un nume nou unui fişier, fără a-l schimba pe cel original. Există două tipuri de astfel de fişiere: - hard links: numele original şi cel al legăturii indică acelaşi bloc de date de pe discul fix. Există două limitări pentru acest tip de legături: un director nu poate fi legat astfel, şi o legătură de acest tip nu se poate extinde între două partiţii. - symbolic (soft) links: sunt de fapt două fişiere: cel original şi legătura care conţine numele originalului. Dezavantajul acestui tip de legătură este că, în cazul în care este şters fişierul original, nu mai există datele efective pe discul fix, legătura devenind inutilă. Toate fişierele şi directoarele din sistemul Linux au un proprietar şi drepturi. Acestea sereferă la cine a creat fişierul sau directorul respectiv, şi cine are permisiunea de a-l citi saumodifica. Pentru a înţelege structurarea acestor drepturi asupra fişierelor, trebuie, în prealabil,parcurse structurile folosite de sistem în gestiunea utilizatorilor. Accesul în sistemul Linux este permis pe baza unui cont (account). Fiecare cont estecreat de administrator, cu excepţia contului de administrator (root), care este creat lainstalarea sistemului. Un cont presupune un identificator (un şir de caractere) asignat unuiutilizator, prin care acesta este recunoscut de către sistem, şi o parolă cunoscută numai decătre utilizator. Fiecare cont capătă, în momentul creării, un număr numit UID (User ID),care este folosit pentru identificarea posesiunii asupra fişierelor, directoarelor şi proceselor, înacelaşi timp fiind asignat şi directorul care va reprezenta directorul de bază pentru utilizator. Mai mulţi utilizatori sunt adunaţi, din punct de vedere al administrării conturilor, îngrupuri. Astfel, un grup sub Linux reprezintă o apartenenţă la o anumită categorie deutilizatori, categoriile fiind create în prealabil de administrator. La fel ca şi în cazul unui cont,un grup capătă la creare un GID (Group ID), care este folosit pentru diversificarea drepturilorde acces asupra directoarelor şi fişierelor sistemului. Un utilizator poate aparţine mai multorgrupuri, însă aparţine unui grup primar (primary group), în ceea ce priveşte drepturile deacces la datele din sistemul de fişiere. Datele despre conturile existente într-un sistem suntstocate într-un fişier text, /etc/passwd, iar cele despre grupuri în /etc/group. În funcţie detehnica de securizare a sistemului aleasă de către administrator, parolele utilizatorilor suntcriptate şi stocate în acelaşi fişier passwd, sau în altele. Tot în fişierul passwd, vital pentrusistem, mai sunt cuprinse şi informaţii referitoare la numele real al utilizatorului, şi la shell-ul(sau un alt program) pe care îl va oferi sistemul de operare utilizatorului în momentulconectării. 185
    • Orice fişier sau director aparţine unui singur utilizator şi unui grup, utilizatorulnumindu-se posesorul (proprietarul) fişierului sau al directorului. Drepturile de citire şiscriere (ştergere) asupra unui fişier sau director sunt în funcţie de posesorul său şi de grupulcăruia aparţine. Permisiunile (drepturile asupra unui fişier) sunt structurate în trei categorii: - permisiuni pentru posesor (owner): acestea identifică operaţiile permise asupra fişierului în funcţie de utilizator; - permisiuni pentru grup (group): identifică operaţiile permise asupra fişierului, în funcţie de apartenenţa la grup a utilizatorului; - permisiuni pentru ceilalţi utilizatori (world): identifică operaţiile permise asupra fişierului de ceilalţi utilizatori din sistem. Există trei drepturi de acces la fişiere: - read (r) – citire; - write (w) – scriere; - execute (x) – execuţie. Rezultă astfel 9 poziţii pentru precizarea completă a drepturilor de acces la un directorsau fişier, fiecare poziţie fiind precizată de un bit. Se pot constitui astfel secvenţe binare princare se identifică drepturile asupra unui fişier. În Linux, numele de fişiere şi de directoare pot avea până la 256 caractere, şi nu potconţine caracterele *, ?, , /, spaţiu, “, ‘ şi alte caractere folosite de shell-ul sistemului.Sistemul Linux este case-sensitive, adică face diferenţa între literele mari şi literele mici,aceasta referindu-se la numele de fişiere şi directoare, şi la comenzile sistemului. Separatorulfolosit între numele de directoare şi numele de fişiere este /. Structura folosită este, ca şi încazul MS-DOS-ului, una arborescentă ierarhică, iar rădăcina ei este notată cu /. Datorităfaptului că sistemul este multi-user, permiţând conectarea mai multor utilizatori simultan,care să aibă acces la resursele calculatorului, este introdus conceptul de director de bază(home directory) al fiecărui utilizator. Acesta reprezintă un director unic pentru fiecareutilizator, în care posesorul acestuia are drepturi depline privind crearea şi modificareafişierelor (şi evident a directoarelor) incluse. Poziţia acestor directoare în structura de fişierede pe discurile fixe din sistem este specificată de administrator, şi nu poate fi schimbată deutilizatorul normal. Adresarea fişierelor sau a directoarelor în Linux se face în două moduri, absolut şirelativ, similar cu sistemul MS-DOS, păstrând însă convenţia de nume şi caractere specialefolosită de Linux. Pentru a adresa absolut un fişier, se scrie toată calea până la acesta, plecândde la rădăcina sistemului de fişiere, de exemplu: /usr/doc/HOWTO/other-formats/html/mini/README. Pentru a specifica o cale relativă, aceasta se face pornind de ladirectorul luat în considerare, până la locaţia precisă a fişierului sau directorului specificat.De exemplu, dacă se ia ca director de pornire în adresare directorul /usr/doc/HOWTO,fişierul desemnat mai înainte are calea other-formats/html/mini/README. 186
    • În fiecare director există două fişiere speciale, care sunt create odată cu directorul: “.” şi“..”. Primul semnifică întotdeauna directorul însuşi, în care se lucrează la un moment dat, iaral doilea reprezintă părintele directorului luat în considerare. Caracterul “~” are osemnificaţie specială, el desemnând directorul de bază al fiecărui utilizator. Aceste simboluripot fi folosite în adresarea relativă a fişierelor şi directoarelor, de exemplu: ../fis1.txtreprezentând fişierul fis1.txt din directorul părinte al directorului curent. Dacă se doreşteadresarea unui fişier din directorul de bază, se poate astfel folosi: ~/dir1/fisier1.txt (caleaindică fişierul fisier1.txt din directorul dir1 creat în directorul de bază al utilizatorului curent). Directoare speciale din structura de fişiere: - / - rădăcina sistemului de fişiere. - /bin – conţine majoritatea fişierelor executabile de bază din sistemul de operare (comenzile de exemplu). - /boot – conţine de obicei informaţii referitoare la pornirea sistemului. - /dev – datorită faptului că Linux-ul (în urma asemănării cu sistemele Unix) tratează mai toate fluxurile de date din sistem prin intermediul fişierelor, acest director este creat pentru a conţine aceste fişiere speciale, care îi permit sistemului să funcţioneze. - /etc – conţine fişierele de configuraţie ale sistemului. - /home – de obicei acest director conţine directoarele de bază ale utilizatorilor din sistem. - /lib – director ce conţine bibliotecile partajate din sistem. - /sbin – conţine executabile destinate administrării sistemului şi funcţionării serviciilor instalate. - /tmp – un director în care toţi utilizatori îşi pot depune fişiere temporare. - /usr – în acest director sunt organizate marea majoritate a aplicaţiilor şi fişierelor de interes general din sistem. Tot în acest director este stocat sistemul X-Windows şi bibliotecile aferente (X11R6), documentaţia sistemului Linux (doc), paginile de manual (man). - /var – director destinat stocării datelor tranzitorii prin sistem, în urma serviciilor sau a aplicaţiilor ce rulează pe calculatorul respectiv. În acest director, sistemul colectează date despre activitatea sistemului de operare în general (monitorizare). Structura unui sistem de fişiere Linux: Sistemul comunică cu partiţiile create pe discurile fixe existente în sistem, folosindanumite fişiere speciale de tip bloc. Ele sunt stocate în directorul /dev şi, în cazul unui sistemLinux, sunt de forma următoare: Pentru discuri IDE: 187
    • - /dev/hda1, /dev/hda2, /dev/hda3, etc., acestea fiind partiţiile de pe primul disc (master pe primary IDE). Pentru celelalte discuri (sau unităţi de CD) se schimbă litera “a”, în ordine, cu “b”, “c”, “d”. Pentru discurile SCSI: - /dev/sda1, /dev/sda2, etc., reprezentând partiţiile de pe primul disc (ID=0) de pe magistrala SCSI (discul fiind numit /dev/sda). La fel ca şi la discurile IDE, celelalte discuri au nume similare, înlocuindu-se litera “a” cu “b”, “c”, etc. Partiţiile, numite şi volume, se ataşează sistemului de fişiere sub formă de directoare.Aşadar rădăcina sistemului de fişiere este situată pe o partiţie, iar anumite directoare dinarbore sunt, de fapt, legate pe alte partiţii de pe discurile din calculator. /dev/hda / boot etc var /dev/hda1 usr /dev/hda2 /dev/hdb home /dev/hdb1 swap /dev/hdb2 În figura precedentă, este prezentată o structură cu două discuri fixe: /dev/hda care aredouă partiţii (/dev/hda1 şi /dev/hda2) şi /dev/hdb care are şi el două partiţii (/dev/hdb1 şi/dev/hdb2). Pe primul volum, /dev/hda1, este aşezată rădăcina şi cu toate directoarelesistemului de operare, mai puţin două directoare: /usr de care este ataşată partiţia /dev/hda2, 188
    • şi /home de care este ataşată partiţia /dev/hdb1. A patra partiţie /dev/hdb2 constituie spaţiul“swap”, memoria virtuală a sistemului. Aceasta reprezintă o zonă specială din discul fix, încare sistemul de operare descarcă din memorie spaţiul folosit de anumite procese, înmomentul în care memoria fizică nu mai este suficientă, urmând ca, la terminarea unorprocese active în memorie, să reîncarce imaginea proceselor depusă în zona de memorievirtuală respectivă. 7.4.2. Instalarea sistemului Linux Instalarea sistemului Linux se realizează, ca şi în majoritatea celorlalte sisteme deoperare, pe baza unui asistent de instalare. Acesta diferă de la o variantă de Linux la alta, însăpaşii principali sunt respectaţi de majoritatea programelor de instalare existente. În cele ceurmează, vor fi descrişi paşii principali din instalarea variantei Red Hat Linux 6.0:1. Pornirea asistentului de instalare. Aceasta se poate face plecând de la una sau două dischete (în funcţie de varianta de Linux), care sunt create folosind utilitarul rawrite.exe cuprins în distribuţia de Linux. Acesta reconstituie dischetele de pornire a calculatorului, plecând de la imaginile existente pe CD şi presupunând că distribuţia de Linux este disponibilă pe acest tip de suport. Instalarea poate fi făcută şi extrăgând fişierele necesare dintr-un alt calculator, folosind un suport de reţea pentru transmiterea datelor, caz în care trebuie aleasă imaginea de dischetă potrivită pentru această operaţie. Indicaţii referitoare la conţinutul imaginilor se găsesc întotdeauna în directorul care conţine imaginile, într-un fişier text. După crearea dischetelor se porneşte calculatorul folosind dischetele obţinute. Programul de instalare mai poate fi pornit, în funcţie de calculator, prin intermediul CD- ului, dacă acesta este boot-abil (adică permite startarea sistemului de operare de pe CD), şi dacă BIOS-ul calculatorului recunoaşte CD-ul ca fiind o posibilă unitate de stocare de pe care să demareze un sistem de operare. Majoritatea calculatoarelor la ora actuală au această opţiune prevăzută în BIOS.2. Specificarea sursei de instalare. După ce programul de instalare a fost pornit, se cere specificarea sursei de unde acesta va copia fişierele ce vor fi instalate pe discul fix local. În cazul instalării de pe CD-ROM, se specifică unitatea de CD, şi programul va căuta singur fişierele necesare. În cazul în care se instalează plecând de la un calculator din reţea, va trebui configurată placa de reţea existentă în calculator (prin introducerea datelor de configurare a adresei locale a calculatorului şi prin specificarea tipului de protocol folosit pentru transferul datelor în reţea: NFS sau FTP), şi vor trebui furnizate date despre adresa sau numele calculatorului sursă din reţea, cât şi directorul de pe calculatorul respectiv, unde se găsesc fişierele necesare. Se mai poate alege ca sursă de instalare un director de pe o partiţie existentă pe un disc fix local.3. Partiţionarea discului fix. Programul de instalare lansează un utilitar sistem pentru crearea şi aranjarea partiţiilor. Vor fi create în această fază partiţiile, care vor conţine sistemul de 189
    • operare şi directoarele în care se montează aceste partiţii. Trebuie avut în vedere că, tot în această etapă, se creează şi partiţia (partiţiile) pentru memoria virtuală (swap) a sistemului.4. Specificarea spaţiului pentru memoria virtuală. Asistentul de instalare cere specificare partiţiilor ce vor fi folosite ca memorie virtuală a sistemului.5. Formatarea partiţiilor din sistem. Se realizează formatarea (sau nu, dacă se alege o altă opţiune) a partiţiilor pe care le va folosi sistemul. Se creează în continuare structura necesară funcţionării sistemului, care să primească sistemul de fişiere.6. Copierea fişierelor indicate în noul sistem de fişiere. Prin intermediul unor casete de dialog, afişate în mod text, se permite selectarea pachetelor de aplicaţii ce vor fi instalate în sistem. Se copiază apoi, din sursa indicată la paşii precedenţi, toate fişierele sistemului de operare şi a aplicaţiilor selectate.7. Detecţia şi configurarea mouse-ului disponibil în sistem. Se permite selectarea tipului de mouse folosit, şi asignarea lui pe portul (de cele mai multe ori serial) ocupat de acesta.8. Configurarea reţelei. Dacă în calculator este prevăzută o placă de reţea, se cere configurarea acesteia (sau păstrarea configuraţiei făcute în cazul instalărilor din reţea). În caz contrar, poate fi aleasă configurarea unei conexiuni prin modem (Dial-Up).9. Selectarea serviciilor de sistem. Printr-o casetă de dialog, asistentul de instalare cere specificarea serviciilor ce vor fi pornite la demararea sistemului.10. Instalarea imprimantei. Asistentul de instalare cere instalarea unei imprimante în sistem.11. Parola de administrator. În această etapă se introduce parola pentru administrator (utilizatorul root).12. Configurarea programului de încărcare al sistemului. Sistemul de operare poate fi pornit în două moduri principale. Primul este folosirea programului de încărcare special numit LILO (LInux LOader), care se instalează în sectorul de boot al discului fix boot-abil din calculator, sau pe primele sectoare ale primei partiţii. Acesta poate fi configurat ulterior din sistemul Linux. O a doua variantă este folosirea unui program special pentru DOS, numit loadlin.exe şi disponibil în distribuţia de LINUX, care are însă nevoie de un nucleu al sistemului instalat, prezent în afara partiţiei rădăcină din LINUX, pe partiţia de tip DOS unde se află executabilul. Este posibilă şi crearea unei dischete pe baza căreia să fie pornit sistemul, în cazul în care nu se alege nici una din variantele anterioare. În această etapă se alege tipul de pornire pentru sistemul instalat.13. Sistemul X Windows. Programul de asistenţă al instalării încearcă detecţia tipului de placă grafică folosită în calculator, şi cere specificarea tipului de monitor folosit, după care testează configuraţia aleasă, oferind posibilitatea alegerii rezoluţiei şi profunzimii de culoare ce vor fi utilizate în funcţionare.14. Repornirea sistemului. În această fază sistemul este instalat, şi va fi repornit pentru ca toate setările efectuate să intre în vigoare. 190
    • BIBLIOGRAFIE1. C.S. French, "Computer Science", 4th Edition, D.P. Publications Ltd. - UK 1992.2. Al. Valachi, M. Bârsan, "Tehnici numerice şi automate", Editura Junimea 1988.3. Stephen P. Morse, Douglas J. Albert, "The 80286 Architecture", John Wiley and Sons Inc. 1986.4. Chris H.Pappas, William H. Murray, "80386 Microprocessor Handbook", Osborne McGraw-Hill 1986.5. Edmund Strauss, "80386 Tehnical Reference", Brady Books - UK 1987.6. Hans Peter Messmer, "The Indispensable PC Hardware Book", Addisson Wesley Publishers 1994.7. T. J. Buyers, "IBM PS/2 - A Reference Guide" , Multiscience Press-USA 1989.8. Richard Dalton, Scott Mueller, "IBM PS/2 - Hanbook" , Que Corporation-USA 1988.9. Kai Hwang, Faye A. Briggs, "Computer Architecture and Parallel Processing", McGraw - Hill Book Company 1986.10. Barry Wilkinson, "Computer Architecture , Design and Performance", Prentice Hall International (UK) Ltd. 1991.11. R.W. Hockney, C.R. Jesshope, "Parallel Computers", IOP Publishing (UK) Ltd. 1988.12. Vlad Ţepelea, "MS-DOS 4.01", Editura Teora 1991.13. Jack Nimersheim, "The first Book of MS-DOS 5", SAMS 1991.14. "Disk Operating System - Users Guide and Reference Version 5.02", IBM 1991.15. "Manual de referinţă 80486 şi Pentium", Intel 1997.16. Scott Mueller, "PC Depanare şi Modernizare", Editura Teora 1995.17. Brookshear J.G., "Introducere în informatică", Editura Teora 1999.18. Steve Oualline, "Descoperiţi sistemul Linux", Editura Teora 1997.19. Radu Mârşanu, "Sistemele de operare MS DOS şi UNIX", Editura Tehnică 1995.20. Jennifer Fulton, "Windows 98", Editura Teora 1999.21. Gini Courter, Annette Marquis, "Ghidul dvs. în lumea calculatoarelor", Editura ALL EDUCATIONAL, 1998.22. Sharon Crawford, N. Salkind, "Windows 98", Editura Teora 1999.23. Irina Athanasiu, Al. Pănoiu, "Microprocesoarele 8086, 286, 386", Editura Teora 1991.24. Gh. Muscă, "Programarea în limbaj de asamblare", Editura Teora 1995.25. Vasile Palade, "Elemente de arhitectura calculatoarelor şi sisteme de operare", curs universitar, Universitatea "Dunărea de Jos" din Galaţi, 1994. 191