noŢiuni de bazà despre calculator partea 1

39
NOŢIUNI DE BAZÃ DESPRE CALCULATOR partea 1 1.1 Arhitectura de bazã a unui calculator Calculatorul este o masinã programabilã. Douã dintre principalele caracteristici ale unui calculator sunt: 1. Rãspunde la un set specific de instructiuni într-o manierã bine definitã. 2. Calculatorul poate executa o listã preînregistratã de instructiuni, numitã program. Calculatoarele moderne sunt electronice si numerice. Partea de circuite electrice si electronice precum si conexiunile fizice dintre ele se numeste hardware. Totalitatea programelor precum si datele aferente acestor programe poartã denumirea de software. Toate calculatoarele de uz general necesitã urmãtoarele componente hardware: memorie: Permite calculatorului sã stocheze, cel putin temporar, date si programe. dispozitive de stocare externe: Permit calculatoarelor sã stocheze permanent programe si mari cantitãti de date. Cele mai uzuale 1

Upload: vasile-bercea

Post on 23-Oct-2015

103 views

Category:

Documents


2 download

DESCRIPTION

notiuni elementare despre arhitectura de baza a unui calculator,sisteme de operare ,sistemul de opeare MS-DOS

TRANSCRIPT

NOŢIUNI DE BAZÃ DESPRE CALCULATOR partea 1

1.1                   Arhitectura de bazã a unui calculator

Calculatorul este o masinã programabilã. Douã dintre principalele caracteristici ale unui calculator sunt:

1.   Rãspunde la un set specific de instructiuni într-o manierã bine definitã.

2.   Calculatorul poate executa o listã preînregistratã de instructiuni, numitã program.

Calculatoarele moderne sunt electronice si numerice.

      Partea de circuite electrice si electronice precum si conexiunile fizice dintre ele se numeste hardware.

      Totalitatea programelor precum si datele aferente acestor programe poartã denumirea de software.

Toate calculatoarele de uz general necesitã urmãtoarele componente hardware:

  memorie: Permite calculatorului sã stocheze, cel putin temporar, date si programe.

  dispozitive de stocare externe: Permit calculatoarelor sã stocheze permanent programe si mari cantitãti de date. Cele mai uzuale dispozitive de stocare externã sunt HDD (hard disk drives), FDD (floppy disk drive) si CD-ROM (Compact Disk-Read Only Memory) sau CD-R/W (Compact Disk-Read/Write).

  dispozitive de intrare : În mod uzual sunt reprezentate de tastaturã (keyboard) si de mouse. Aceste dispozitive reprezintã calea uzualã de introducere a datelor si instructiunilor care gestioneazã functionarea unui calculator.

1

  dispozitive de iesire: Reprezintã modalitatea prin care calculatorul transmite utilizatorului uman rezultatele executiei programelor. Ecranul monitorului sau imprimanta sunt astfel de dispozitive uzuale.

  Unitatea de procesare si control (UPC) : Este partea principalã a unui calculator deoarece este componenta care executã instructiunile. În mod uzual aceastã unitate de procesare si control este reprezentatã de unmicroprocesor care se plaseazã pe placa de bazã (mainboard) a calculatorului împreunã cu memoria internã RAM. În plus fatã de aceste componente orice calculator este prevãzut cu o magistralã (bus) prin care se gestioneazã modalitatea de transmitere a datelor între componentele de bazã ale calculatorului. Magistrala reprezintã o colectie de trasee electrice care leagã microprocesorul de dispozitivele de intrer/iesire si de dispozitivele interne/externe de stocare a datelor. Putem distinge magistrala de date, magistrala de adrese si magistrala de comandã si control.

            Calculatoarele pot fi în general clasificate dupã dimensiuni sau putere de calcul. Nu se poate face însã la ora actualã o distinctie netã între urmãtoarele categorii de calculatoare:

  PC (Personal Computer): Un calculator de dimensiuni mici, monoutilizator (single-user), bazat pe un microprocesor. În plus acesta este dotat standard cu tastaturã, mouse, monitor si dispozitive periferice de stocare a datelor.

  statii de lucru (workstation): Un calculator monoutilizator de mare putere. Aceasta este asemãnãtor unui PC dar are un microprocesor mai puternic si un  monitor de înaltã calitate (rezolutie mai mare).

  minicalculator (minicomputer): Un calculator multiutilizator (multi-user) capabil sã lucreze simultan cu zeci sau chiar sute de utilizatori.

  mainframe: Aun calculator multiutilizator capabil sã lucreze simultan cu sute sau chiar mii de utilizatori.

  supercomputer: Un computer extrem de rapid care poate executa sute de milioane de operatii într-o secundã.

1.2                    Sisteme de operare

Sistemul de operare este cel mai important program care ruleazã pe un calculator. Orice calculator de uz general este dotat cu un sistem de operare care permite executia altor programe. Sistemele de operare executã operatiuni de bazã precum: recunoasterea unei intrãri de la tastaturã (preluare caracter), trimiterea unui caracter pentru afisare pe ecranul monitorului, gestionarea fisierelor si a directoarelor pe disc (floppy-disk sau hard-disk), controlul fluxului de date cu echipamentele periferice ca drivere de disc sau imprimante.

2

            Sistemul de operare al unui calculator este partea de software necesarã si suficientã pentru executia oricãror alte aplicatii dorite de utilizator. Un calculator nu poate functiona decât sub gestiunea unui sistem de operare. Orice aplicatie lansatã în executie de cãtre un utilizator apeleazã la resursele puse la dispozitie de cãtre sistemul de operare. Sistemul de operare interfateazã calculatorul cu operatorul uman de o manierã cât mai transparentã cu putintã astfel încât utilizatorul nu trebuie sã facã eforturi mari de adaptare dacã lucreazã cu arhitecturi hardware diferite.

Pentru sisteme mai mari, sistemele de operare au responsabilitãti si capabilitãti si mai mari. Ele actioneazã ca un gestionar al traficului de date si al executiei programelor. În principal sistemul de operare asigurã ca diferite programe si diferiti utilizatori sã nu interfereze unele cu altele. Sistemul de operare este de asemenea responsabil cusecuritatea, asigurând inaccesibilitatea persoanelor neautorizate  la resursele sistemului.

Sistemele de operare se pot clasifica dupã cum urmeazã:

  multi-user: Permit ca doi sau mai multi utilizatori sã ruleze în acelasi timp programe (utilizatori concurenti). Anumite sisteme de operare permit sute sau chiar mii de utilizatori concurenti.

  multiprocesor: Permit executia unui program pe mai mult de un  microprocesor.

  multitasking: Permit mai multor programe sã ruleze în acelasi timp (executie concurentã).

  multithreading: Permit diferitelor pãrti ale unui program sã fie executate concurent.

  timp real (real time): Rãspund instantaneu la diferite intrãri. Sistemele de operare de uz general, ca DOS sau UNIX nu sunt sisteme de operare de timp real.

Sistemele de operare furnizeazã o platformã software pe baza cãreia alte programe, numite programe de aplicatie,pot rula (pot fi executate). Programele de aplicatie trebuie sã fie scrise pentru a rula pe baza unui anumit sistem de operare. Alegerea unui anumit sistem de

3

operare determinã în consecintã multimea aplicatiilor care pot fi rulate pe calculatorul respectiv. Pentru PC-uri, cele mai populare sisteme de operare sunt DOS, OS/2 sau Windows, dar mai sunt disponibile si altele precum Linux.

Ca utilizator se interactioneazã cu sistemul de operare prin intermediul unor comenzi. Spre exemplu, sistemul de operare DOS acceptã comenzi precum COPY sau RENAME pentru a copia fisiere sau pentru a le redenumi. Aceste comenzi sunt acceptate si executate de o parte a sistemului de operare numitã procesor de comenzi sau interpretor de linie de comandã.

Interfatele grafice cu utilizatorul (GUI, Graphical user interfaces) permit introducerea unor comenzi prin selectarea si actionarea cu mouse-ul a unor obiecte grafice care apar pe ecran. Spre exempl 23223m1215x u, sistemul de operare Windows are un desktop ca intefatã garficã cu utilizatorul. Pe acest desktop (birou) se aflã diferite simboluri grafice (icoane, icons) atasate diferitelor aplicatii disponibile pe calculatorul respectiv. Utilizatorul are multiple posibilitãti de configurare a acestei intefete grafice.

1.2.1 Sisteme de operare pentru PC-uri

            Din punct de vedere istoric, primul sistem de operare comercializat pe scarã largã a fost MS-DOS. Odatã cu cresterea capabilitãtilor hardware ale calculatoarelor, acesta s-a transformat, prin dezvoltãri succesive, în Windows.

1.2.1.1 DOS

Prezentarea sistemului de operare MS-DOS

Sistemul de operare MS-DOS (MicroSoft Disk Operating System) este destinat gestionarii resurselor software si hardware ale microcalculatoarelor cu o arhitectura de tip IBM - PC sau compatibila cu aceasta si echipate cu procesoare 8086 sau 80x86, Pentium.

MS-DOS este un sistem de operare monouser, mono-tasking, ceea ce înseamna ca el permite folosirea calculatorului la un moment dat de catre un singur utilizator, executând un singur program de aplicatie, cu exceptia comenzii PRINT, care poate fi lansata cu orice comanda MS - DOS.

Principalele functiuni îndeplinite de MS - DOS se pot grupa astfel:

      Interpretarea si executia comenzilor;

      Încarcarea, lansarea si controlul executiei programelor;

      Comanda si controlul dispozitivelor periferice;

      Gestiunea fisierelor de pe disc;

      Semnalizarea, diagnosticarea si tratarea erorilor;

      Functii apelabile la diverse nivele oferind diverse facilitati utilizatorului.

4

Sistemul de operare MS - DOS asigura o interfata simpla între utilizator si resursele software si hardware ale sistemului de calcul, fiind usor de exploatat si având urmatoarele avantaje:

      Diversitate mare a resurselor software;

      Mecanism evoluat de detectare si tratare a erorilor;

      Interfata utilizator simpla, usor accesibila, comenzile sunt usor de învatat si utilizat;

      Modularitatea; este conceput într-o maniera care încurajeaza descompunerea programelor complexe în module mai mici cu functii bine definite;

      Gestioneaza o structura de fisiere eficienta având o organizare ierarhica arborescenta;

      Gestioneaza data si ora curenta si le insereaza în informatiile legate de fisiere la crearea si modificarea acestora;

      Ofera posibilitatea conectarii unei mari varietati de dispozitive periferice.

Conform specificatiilor firmelor IBM si Microsoft sistemul de operare           MS - DOS este rezultatul compunerii urmatoarelor elemente:

   BIOS (Basic Input/Output System), rezident în memoria ROM, care contine:

      un sistem de proceduri pentru comanda si controlul executiei operatiunilor de intrare/iesire la nivel fizic pentru toate echipamentele periferice din configuratia standard

      programe de testare sumara a memoriei RAM, a adaptoarelor pentru tastatura, monitor si discuri

      programe pentru determinarea si actualizarea configuratiei hardware a sistemului prin citirea/scrierea datelor din/în memoria CMOS

      un program preâncarcator (loader) al înregistrarii BOOT pentru pre-încarcarea sistemului de operare de pe discul sistem etc.

BIOS (Basic Input/Output System) a fost împartit în doua parti:

            1) Partea de sistem de operare BIOS-OS a BIOS este partea standardizata, neparticularizata în functie de varianta constructiva a calculatorului. Fiecare operatie de I/O care se poate executa are varianta standard de apelare prin parametri. În acest fel producatorii de aplicatii (programe) nu trebuie sa stie detalii despre varianta constructiva, fizica a calculatorului, ci numai maniera standardizata de apelare a rutinelor de I/O (parametrii si adresa).

2) Partea de ROM-BIOS este particularizata la varianta constructiva, cunoscuta în detaliu numai de producatorul calculatorului si care  "arde" în PROM  aceasta parte a BIOS-ului. Fiecare rutina de I/O are prevazut un punct de intrare (o adresa) cunoscutãâ de BIOS.

5

Transparenta variantei constructive a calculatorului fata de utilizator se datoreaza faptului ca BIOS-OS este comun tuturor compatibilelor IBM-PC, iar ROM-BIOS difera de la calculator la calculator.

   Programul pentru încarcarea sistemului de operare de pe disc se afla pe pista 0 si sectorul 1 (zona de boot) a oricarui disc-sistem. La harddisk-uri, datele din aceasta zona descriu structura de partitii din care se determina partitia activa.

   Programul IO.SYS care contine extensii ale BIOS-ului, permite actualizari ale programului BIOS, corespunzatoare noilor versiuni de sisteme de operare, precum si extinderea configuratiei standard prin adaugarea de noi echipamente periferice fara a fi nevoie sa se modifice ROM-ul care contine BIOS-ul.

   Programul MSDOS.SYS care contine procedurile (întreruperi si functii) de tratare a operatiilor de intrare/iesire la nivel logic.

   COMMAND.COM care reprezinta interpretorul de comenzi, prin intermediul caruia se realizeaza primul nivel de dialog al sistemului cu utilizatorul.

Lansarea în executie a sistemului de operare

Pentru încarcarea sistemului de operare se procedeaza astfel:

-       când calculatorul nu e alimentat memoria RAM nu contine nimic, singurele informatii sunt în CMOS si în ROM, în afara discurilor.

-       În ROM-BIOS se afla un program numit "loader", preîncarcator, care lanseaza operatia de "bootstrap", adica operatia de încarcare a sistemului de operare.

-       IP este încarcat automat, hard, cu adresa primei instructiuni din programul loader (încãrcãtor) care se aflã în EPROM-uri.

Adresa de început a programului loader se încarcã în registrul de instructiuni IP al microprocesorului si se lanseazã în executie programul loader localizat în ROM

-       Loader-ul se lanseaza în executie:

1)   Testeaza configuratia hard daca functioneaza corect (POST-Power On Self Test): se testeazã unitatea centralã, memoria RAM, tastatura, CMOS, monitorul, unitãtile de

6

discuri magnetice. De fapt se testeazã configuratia minimalã de functionare a calculatorului.

2)   Încarca în RAM la o adresa prestabilita primul sector al primei piste al primului disc întâlnit în configuratie.

3)   Lanseaza programul respectiv, continut în acest sector numit sector de "boot". Aceste program se mai numeste si BOOTSTRAP. Programul, în functie de starea sistemului de calcul, încarcã ulterior în memoria RAM toate componentele sistemului de operare.

Configurarile se fac verificând daca exista fisierul CONFIG.SYS în directorul radacina pe discul de "boot"; daca este gasit se executa comenzile din el, iar daca mai nu se trece departe.

Lansarea în executie a unor comenzi utilizator se face verificând existenta fisierului AUTOEXEC.BAT în directorul radacina pe discul de "boot"; daca exista se executa, iar doar daca nu se executa anumite comenzi (DATE, TIME); ulterior se da controlul CCP.

Se afiseaza apoi prompterul, asteptându-se o comanda din partea utilizatorului. Interpretorul de comenzi prelucreaza comenzile DOS, actionând ca o interfata între utilizator si sistemul de operare.

7

Organizarea fisierelor sub MS-DOS

            Una din functiile importante ale sistemului de operare este aceea care asigura gestionarea datelor pe suporturi de memorie externa. Pentru a realiza aceasta functiune datele si programele se memoreaza pe suportul magnetic într-o forma care permite manevrarea lor ca entitati. Acestea se numesc fisiere.

            În sistemul de operare MS - DOS, spatiul de memorare al unui disc este împartit în patru zone distincte, primele trei zone, numite zone sistem, sunt rezervate si initializate la formatarea discului.

-       Prima zona este destinata programului de încarcare a sistemului (boot)

-       A doua zona se numeste FAT (File Allocation Table) si contine date referitoare la alocarea fisierelor pe disc.

-       A treia zona contine directorul radacina (root) si informatia despre fisierele care îi apartin.

-       A patra zona (cea mai mare) contine fisierele grupate în directoare.

Comenzile sistemul de operare MS - DOS

Comenzile sistemului de operare MSDOS sunt de doua tipuri: interne si externe.

            Comenzile interne se executa imediat deoarece fac parte din sistemul de operare DOS si sunt încarcate odata cu acesta. Ele sunt incluse în fisierul COMMAND.COM si sunt executate imediat dupa tastarea lor.

            Comenzile externe sunt rezidente pe disc ca programe executabile. Ele sunt reprezentate de orice fisier care are extensia .COM, .BAT sau .EXE.

            Programele create de utilizatori, scrie în limbaje de nivel înalt, vor deveni fisiere EXE si vor fi comenzi externe pentru MS-DOS.

            Pentru o comanda externa nu este necesara tastarea extensiei. În cazul existentei mai multor fisiere cu acelasi nume dar extensii diferite, sistemul va lansa în executie numai unul dintre ele respectându-se ordinea de prioritate: .COM, .EXE, .BAT.

Cele mai utilizate comenzi DOS sunt:

   Comanda DIR permite afisarea continutului unui DIRECTOR.

dir                       -afiseaza continutul directorului curent

dir/p                    -afiseaza continutul directorului curent din pagina în pagina

dir/w                   -afiseaza continutul directorului curent, compactat pe ecran

dir/o:n     -afiseaza fisierele în ordine alfabetica, dupa nume

8

dir/o:e     -afiseaza fisierele în ordine alfabetica, dupa extensie

   Comanda TYPE permite afisarea continutului unui fisier.

Sintaxa:

C:\TYPE nume.ext  - afiseaza pe ecran continutul fisierului specificat.

   Comanda COPY permite copierea unuia sau mai multor fisiere sau directoare.

   Comanda MD creeaza un nou director.

Sintaxa:

md numedirector - creeaza un director nou în directorul curent.

Alta forma pentru comanda: mkdir.

                  Comanda RD permite distrugerea (stergerea) unui director care nu mai contine nici un fisier. Înainte de a se distruge un director, fisierele din el trebuie sa fie sterse.

Sintaxa:

rd numedirector  - distruge directorul specificat, care nu mai contine nici un fisier.

   Comanda TREE afiseaza structura de directoare a unui disc pornind din punctul specificat

Sintaxa:

tree [d:]_[director]

   Comanda DEL permite stergerea unui fisier sau a mai multor fisiere în grup.

Sintaxe:

del nume.ext - sterge directorul specificat

del  *.ext                   - sterge toate fisierele cu extensia specificata

del _nume.* - sterge toate fisierele cu numele specificat

del  *.*                      - sterge toate fisierele din directorul curent

Alta forma- ERASE

   Comanda CD produce schimbarea directorului curent din prompter.

Sintaxa:

9

cd numedirector - face trecerea de la directorul curent existent în prompter, catre un alt director, aflat pe un nivel superior din structura de directoare.

cd . .  - face trecerea de la directorul curent, existent în prompter, catre directorul anterior din prompter, acesta devenind noul director curent.

   Comanda REN permite redenumirea unui fisier, putându-se modifica numele si extensia.

Sintaxa:

ren numeV.extV numeN.extN  - schimba fisierul cu numele si extensia veche cu un alt nume sau extensie, specificate de utilizator.

Alta forma: RENAME.

1.2.2 Sistemul de operare Windows

Acest sistem de operare, folosit la ora actualã pe majoritatea PC-urilor, este conceput ca un sistem de operaremultitasking. În acest fel se pot lansa în executie simultan mai multe aplicatii care pot chiar coopera.

Initial sistemul de operare (SO) standard a fost MS-DOS; PC-ul era similar cu un calculator cu microprocesor Intel si SO MS-DOS. Vom descrie în continuare un scurt istoric al evolutiei acestui sistem de operare.

Windows 3.x

În 1990 a început sa se foloseasca modul protejat la 80386 prin Windows 3.0, oferind memorie extinsa utilizatorilor.

La pornirea calculatorului se încarca MS-DOS, peste acesta se încarca Windows care ofera un mediu de operare grafic si facilitati multitasking.

O aplicatie (task) care da eroare poate determina blocarea sistemului pentru ca toate aplicatiile folosesc si un program (cod) comun al sistemului.

Windows 3.x este un SO pe 16 biti, deci segmentele de memorie au maxim 64 KB.

Pentru trecerea la aplicatii pe 32 de biti Microsoft ofera programe speciale (WINMEM32, si ulterior Win32s).

Nu exista facilitati de integrate în SO pentru lucru în retea. Se utilizeaza facilitati de retea oferite de programele Novell rulate sub Windows.

Windows 3.1 cere un calculator cu un procesor cel putin 80286 si cel putin 1MB RAM; recomandat este 80386 cu 4MB.

Windows for Workgroups 3.11

10

S-au introdus facilitati pentru lucrul în retea. S-a introdus accesul pe 32 de biti la fisierele de pe discul dur ceea ce a crescut foarte mult viteza de lucru. Configuratia minima este un 80386 cu 4 MB RAM, dar recomandabil este cel putin 8 MB RAM.

Windows NT 3.5

Exista doua variante: una pentru statia de lucru (un calculator dintr-o retea) si alta pentru serverul retelei (calculatorul central care coordoneaza reteaua).

Este primul sistem de operare propriu-zis pentru ca nu are nevoie de instalarea initiala a sistemului de operare MS DOS. Este un sistem de operare pe 32 de biti. Cerintele principale au fost siguranta în functionare si protectia datelor, nu viteza de lucru.

Nu suporta modul "Plug and Play", dar componentele hard se adauga relativ usor. Contine servicii integrate pentru lucrul în retea.

Necesita cel putin 16 MB RAM, dar recomandabili sunt 32 MB RAM.

Windows 95

Nu are nevoie de instalarea anterioara a MS-DOS.

Windows 95 este un sistem de operare pe 32 de biti.

Aplicatiile MS-DOS sau Windows pe 16 biti pot fi rulate pe Windows 95, dar în acest mod nu se beneficiaza de viteza oferita de Windows 95 care gestioneaza mai bine cantitati mari de date. si aici eroarea unei aplicatii conduce la blocarea întregului sistem.

Interfata grafica cu utilizatorul este schimbata fata de versiunile anterioare, mult mai intuitiva si usor de accesat folosind un mouse.

Windows 95 ofera facilitati net superioare de lucru în retea si multimedia (sunet si grafica) precum si Plug and Playcomplet automatizat.

Se cere teoretic cel putin un 80386Dx cu 4MB RAM, practic cel putin 80486 cu 8 MB RAM, se recomanda însã 16 MB RAM.

Windows NT Workstation 4.0

Windows NT Workstation 4.0 are aceeasi interfata point-and-click ca si Windows 95. Este un sistem de operare desktop PC foarte fiabil. Conform SOFRES Intersearch, Windows NT Workstation 4.0 are o probabilitate de trei ori mai mica decât Windows 95 de a înregistra blocari si caderi ale sistemului.

Nivelul înalt de securitate al Windows NT Workstation 4.0 este furnizat atât mediilor de sine statatoare cât si celor conectate, indiferent de sistemul de operare pentru retele. Cuprinde, de asemenea, capacitati mergând de la resurse de retea bazate pe certificare, pâna la protejarea la nivel de fisier, pentru a preveni atacurile din afara (sau din interior).

11

În Windows NT Workstation, toate aplicatiile ruleaza în spatii distincte de memorie, ceea ce permite închiderea unei aplicatii deteriorate fara sa fie necesara repornirea calculatorului.

Windows NT Workstation 4.0 Peer Web Services permite, chiar la simpla instalare, configurarea unei retele intranet cu pâna la 10 conexiuni simultane.

Windows NT Server 4.0

Este dotat cu Microsoft Internet Information Server 4.0, conexiuni TCP/IP simultane nelimitate, securitate pentru prevenirea accesului neautorizat la sistem si Microsoft Message Queuing Server - toate sunt integrate si dedicate Internet.

Cerintele sistemului sunt:

- sisteme Intel si compatibile: procesoare la 486/33 MHz, Pentium, Pentium Pro, sau mai rapide;

- memorie - 16 MB

- hard disk minim 125 MB disponibili.

Windows 98

Windows 98 aduce îmbunatatiri remarcabile ale sistemului. Pornirea aplicatiei este cu 36% mai rapida decât în Windows 95, iar Windows Maintenance Wizard executa automat functiile de ajustare a sistemului, marind eficienta utilizatorilor.

Suportul pentru MMX, AGP si DirectX API asigura grafica 3-D rapida. Suportul pentru DVD si standardele USB permit utilizatorilor sa foloseasca de ultimele periferice compatibile Plug and Play.

Cerinte minime de sistem:

- calculator - 486DX/66-MHz sau mai rapid

- memorie - 24 MB (mai multa memorie îmbunatateste performanta)

- hard disk - 140 MB - 315 MB.

Windows 2000 Professional

Windows 2000 Professional combina usurinta utilizarii sistemului de operare Windows 98 cu simplitatea administrarii, fiabilitatea si securitatea sistemului de operare Windows NT.

Sistemul de criptare a fisierelor pastreaza fisierele utilizatorilor în siguranta prin criptarea lor pe hard-disk.

Permisiunile de accesare a hard-disk-ului sunt mai stricte datorita NT File System (NTFS 5.0). Cu Encrypting File System (EFS), Windows 2000 protejeaza datele de pe

12

discul hard al unui calculator. EFS, care face parte din sistemul de fisiere Windows NT, cripteaza fiecare fisier cu o cheie generata aleator. Procesele de criptare si decriptare sunt transparente pentru utilizator.

Windows 2000 Professional este prima versiune de Windows NT care ofera suport Plug and Play, precum si suport multiplu pentru sisteme de fisiere FAT, FAT32 si NTFS.

Performantele sunt mai mari decât Windows 98. Cu 64 MB de memorie, Windows 2000 este în medie cu 25% mai rapid decât Windows 98. Deoarece se bazeaza în întregime pe o arhitectura pe 32 de biti, utilizatorii pot rula mai multe programe si realiza mai multe sarcini simultan. Adaugarea de memorie suplimentara si a unui procesor îi îmbunatateste si mai mult performanta. Windows 2000 suporta pâna la 4 GB de RAM si multi-procesare simetrica cu 2 cai.

Windows 2000 permite unui numar de maxim 10 calculatoare sa partajeze simultan o singura conexiune la Internet - fie prin dial-up fie în banda larga.

Windows 2000 Server

            Oferã în plus fatã de Windows 2000 urmãtoarele facilitãti:

Protectia fisierelor Windows: Împiedica ca noile instalari de soft sa înlocuiasca fisiere sistem esentiale.

Echilibrarea sarcinii în retea: Pe Web sau pe servere Terminal Services, în eventualitatea caderii hard sau soft a unui server sarcinile de lucru se redistribuie între serverele ramase în mai putin de 10 secunde.

Partajarea conexiunii Internet: Permite mai multor utilizatori sa partajeze o singura conexiune Internet externa facilitând conectarea la Internet.

Windows Telephony Applications Programming Interface (TAPI) 3.0

            TAPI este un nivel de abstractizare software care permite aplicatiilor software sa lucreze cu o varietate larga de sisteme de telefonie pentru a oferi  mai multe optiuni si o mai mare flexibilitate. TAPI 3.0 adauga suport pentru media-difuziune si suport mai bun pentru telefonie IP prin înglobarea de facilitati H.323 IP Multicast, bazându-se pe suportul deja existent pentru aplicatii de telefonie client-server traditionale, cum ar fi centre de apel telefonic, raspuns vocal interactiv. Iar cu noua arhitectura Component Object Model a lui TAPI puteti sa va faceti aplicatia accesibila telefonic folosind o varietate de limbaje de programare.

Repornire automata:      Puteti configura serviciile din sistemul de operare, sa reporneasca automat daca se blocheaza.

Arborele de oprire a proceselor: Posibilitatea de oprire a tuturor proceselor legate de un proces sau de o aplicatie eronata fara a reboot-a sistemul.

13

Interoperabilitate ridicata cu calculatoarele client: Suporta sistemele de operare Windows NT Workstation, Windows 9x, Windows 3.x, Macintosh si Unix. Suportul TCP/IP Appleshare îmbunatateste partajarea resurselor pentru sistemul de operare Macintosh.

Backup si recuperare: Facilitatile de backup si recuperare usureaza backup-ul datelor si apoi recuperarea acestora în eventualitatea unei caderi a discului hard. Windows 2000 permite backup-ul într-un singur fisier pe un disc hard si pe medii cu banda.

Windows Millenium Edition (Me)

Oferã în plus fatã de Windows 2000 Server urmãtoarele facilitãti:

Multimedia Center. Windows Movie Maker poate sa înregistreze un video-clip de la o camera de luat vederi sau sa importe un film dintr-un fisier care poate fi ulterior împartit în clipuri mai mici ce pot fi salvate. Windows Image Acquisition este folosit pentru a prelua si edita imagini de pe dispozitive externe de achizitie imagine (scannere, aparate de fotografiat, etc.) Noul Windows Media Player 7 suporta o gama foarte larga de formate audio si video, include un tuner pentru posturi radio de pe Internet si un utilitar de transfer al fisierelor audio catre dispozitive audio portabile sau catre dispozitive ce ruleaza Windows CE.

Hibernare. Este o alta facilitate preluata de la Windows 2000 si care scurteaza foarte mult procesul de închidere si pornire al calculatorului. În momentul în care alegem optiunea de hibernare, sistemul de operare salveaza întreaga memorie pe hard-disk si opreste sistemul. La repornire sistemul porneste mult mai rapid si aplicatiile cu care lucram au ramas deschise.

Reteaua. În cadrul procesului de instalare a retelei se pot partaja fisierele, imprimantele si conexiunea la Internet. Tot în cadrul aceluiasi proces se poate crea o discheta ce poate fi folosita pe calculatoare cu sisteme de operare mai vechi (Windows 9x) pentru a beneficia de noile facilitati ale retelei oferite de Windows Me.

Microsoft Windows XP

Windows XP îmbina perfect cele mai bune caracteristici: fiabilitatea codului de baza al sistemului Windows 2000 combinata cu cele mai bune caracteristici ale sistemelor de operare Windows 95/98/Millennium Edition.

Windows XP este creat pe tehnologia Windows 2000, care îl face sa fie un sistem de operare foarte stabil. Cu facilitati ca Internet Connection Firewall, care protejeaza utilizatorii de accesul neautorizat la calculatorul lor când navigheaza pe Internet, pâna la facilitatea System Restore care mentine stabilitatea sistemului, Windows XP va fi mult mai sigur decât oricare alta versiune Windows de pâna acum.

Mediul Multi-User se adreseaza nevoilor specifice mai multor utilizatori care partajeaza acelasi calculator sau resursele acestuia. Noi caracteristici, cum ar fi Fast User Switching, permit schimbarea rapida a utilizatorilor fara a fi necesara deconectarea acestora si partajarea usoara a unui singur calculator fara a închide aplicatiile unul altuia sau a schimba propriile setari desktop.

Remote Assistance asigura posibilitatea de a cere asistenta securizata sau suport profesional. Ofera suport pentru inscriptionarea CD-urilor.

14

Cerinte sistem:

Calculator: se recomanda procesor la 300MHz sau mai rapid; 233 MHz minim cerut; procesor din familia Intel Pentium/Celeron, familia AMD K6/Athlon/Duron, sau procesor compatibil.

Memorie: Se recomanda 128MB de RAM sau mai mult (64MB minim necesari; poate limita performanta sau anumite caracteristici)

Hard Disk 1.5 GB spatiu liber pe hard disk. Daca se instaleaza în retea, este necesar spatiu liber aditional pe hard disk. Sunt recomandate si o unitate CD-ROM sau DVD-ROM, precum si un monitor cu afisaj Super VGA (800 x 600) sau monitor sau adaptor video cu rezolutie mai mare

Cu numele de cod anterior "Whistler Server", familia de produse Windows .NET Server este generatia urmatoare a seriei de sisteme de operare Windows Server.

1.2.3 Nucleul (kernel) unui sistem de operare

Kernel-ul (miez, nucleu, parte esentialã) reprezintã modulul central al unui sistem de operare. Este partea sistemului de operare care se încarcã prima si rãmâne în memoria principalã (RAM) a calculatorului pe tot parcursul functionãrii acestuia. Deoarece este rezident în memorie este important ca acest nucleu al sistemului de operare sã fie de dimensiuni cât mai mici cu putintã pentru ca restul de memorie RAM sã fie la dispozitia aplicatiilor utilizatorului în proporie cât mai mare. Kernel furnizeazã serviciile esentiale cerute de alte componente ale sistemului de operare precum si de aplicatiile ce ruleazã la un moment dat. În mod uzual kernel este responsabil de gestiunea memoriei (memory management), de gestionarea proceselor si task-urilor, precum si de gestiunea fisierelor pe disc.

Kernel32.dll este biblioteca cu legare dinamicã (DLL, Dynamic Link Library) pe 32 de biti aflatã inclusã înkernel-ul sistemului de operare Windows. Aceastã bibliotecã cuprinde functiile de nivel inferior ale sistemului de operare, este responsabilã de gestiunea memoriei, de operatiile de intrare/iesire si de gestiunea întreruperilor.

La încãrcarea sistemului de operare Windows, kernel32.dll se încarcã într-un spatiu de memorie protejat astfel încât nici o altã aplicatie nu poate avea acces în aceastã zonã de memorie. În mod cu totul accidental utilizatorul poate întâlni mesajul "invalid page fault" generat tocmai de o încercare nepermisã a unui program sau aplicatii de a accede în zona de memorie protejatã alocatã kernel32.dll. Câteodatã aceastã eroare este cauzatã de un program sau o aplicatie particularã iar altãdatã este provocatã de aplicatii sau programe concurente.

Dacã problema apare la rularea unei singure aplicatii, atunci este nevoie sã înlocuim acea aplicatie. Dacã eroarea apare la executia concurentã a mai multor aplicatii sau la accesul unor fisiere multiple, atunci eroarea este cauzatã de o proastã functionare a hardware-ului.

În afarã acestui nucleu de bazã, sistemul de operare Windows mai cuprinde:

      User32.dll, care manipuleazã functii de gestiune a sistemului, ca, spre exemplu, manipularea mesajelor, a temporizãrilor, a meniurilor sau a resurselor sistemului de calcul.

15

      GDI32.dll, care manipuleazã biblioteca de interfatã graficã (GDI, Graphics Device Interface) a sistemului de operare. Aceastã bibliotecã contine functii pentru dispozitivele de iesire ca cele pentru desenare, contextul de afisare sau gestiunea fonturilor.

      Comctl32.dll, care manipuleazã portiuni ale interfetei grafice cu utilizatorul (GDI, Graphical User Interface)precum toolbars, text boxes, scroll bars, etc.

1.2.4 Aplicatii, procese si task-uri

            O aplicatie reprezintã un program sau un grup de programe proiectat pentru utilizatorul final al calculatorului.

            Programul reprezintã un set de instructiuni pentru calculator. Acest set este complet si de sine-stãtãtor si este folosit pentru a îndeplini anumite task-uri. Un sinonim pentru program este termenul de aplicatie.

Un proces (task) este asociat unui program lansat în executie. Termenul se mai foloseste câteodatã ca un sinonim pentru task. De asemenea se mai întâlnste în informaticã si termenul de procesare a datelor care se referã la efectuarea unor operatii utile asupra datelor.

Task este un concept al sistemului de operare care se referã la o combinatie dintre un program în executie si un catalog de informatii construit de sistemul de operare pentru a gestiona eficient functionarea programului respectiv. Spre exemplu, în sistemul de operare Windows existã la baza desktop-ului asa-numita taskbar. De fiecare datã când se lanseazã în executie un program apare în zona taskbar o legãturã cu programul lansat în executie, deci la lansarea în executie a unui program sistemul de operare creazã un nou task pentru el. De câte ori ne uitãm la taskbar putem vedea câte si care programe sunt lansate în executie.

Task-ul este pentru program ca un plic pentru o scrisoare: el identificã programul cu un numãr de task (task number) si îi ataseazã si alte informatii necesare unei bune functionãri într-un mediu multitasking.

            Diferite sisteme de operare, inclusiv UNIX, OS/2 sau Windows, sunt capabile sã ruleze mai multe task-uri în acelasi timp, fiind numite sisteme de operare multitasking.

            În majoritatea sistemelor de operare existã o corespondentã unul-la-unul (biunivocã) între task si program (aplicatie). Existã însã sisteme de operare care permit ca un program sã fie divizat în mai multe task-uri, aceste sisteme de operare numindu-se multithreading.

            Dacã ne referim la exemplul specific al sistemului de operare Windows, aici dispunem de un utilitar numitWindows Task Manager cu ajutorul cãruia putem vizualiza aplicatiile, procesele si utilizatorii care sunt activi la un moment dat. În acest caz specific vom vedea cã nu vom avea o corespondentã biunivocã între aplicatii si procese.

            Prin aplicatie se întelege în cazul Windows multimea de task-uri la care utilizatorul poate avea acces independent prin pointare cu mouse-ul de pe bara de task-uri.

            Prin proces vom întelege multimea de programe executabile care sunt active la un moment dat si care sunt gestionate de cãtre sistemul de operare. Chiar dacã utilizatorul nu

16

lanseazã explicit în executie nici o aplicatie vom putea sesiza prezenta mai multor procese active care ruleazã în background, fãrã a fi sesizate de cãtre utilizator, lansate în executie la încãrcarea sistemului de operare si rezidente permanent în memorie.

            Dacã, spre exemplu, se lanseazã în executie procesorul de text Microsoft Word si se deschid pentru editare douã documente, atunci fiecare document este considerat o aplicatie iar procesorul de documente Winword.exe este considerat un proces. În acest caz avem de-aface cu un proces (un executabil) si douã aplicatii (douã documente de editat).

O aplicatie care apartine unui proces se poate închide fãrã a afecta procesul, care rãmâne în executie. Existã însã posibilitatea ca odatã cu terminarea unei aplicatii care tine de un anumit proces sã se închidã si procesul aferent. Dacã se închide un proces, se închid toate aplicatiile care apartin de proces.

Software-ul poate fi împãrtit în douã clase generale: software de sistem si software de aplicatie.

17

      Software de sistem (system software) care constã din totalitatea programelor de nivel scãzut care interactioneazã cu calculatorul la nivel de bazã. Aici putem include sistemul de operare, compilatoare, instrumente de gestionare a fisierelor pe disk (precum My computer, Explore, Norton Commander) sau utilitare de sistem (multe dintre ele grupate în Control Panel) prin care se gestioneazã sau configureazã resursele calculatorului.

      Software de aplicatie (application software) cuprinde asa-numitele programe pentru utilizatorul final (end-user application) si include majoritatea aplicatiilor cu care lucreazã în mod curent utilizatorul unui calculator. Astfel de aplicati pot fi:

-   Programe de baze de date precum dBase, FoxPro, VisualFox, Oracle, etc.

-   Procesoare de documente precum Microsoft Word, WordPro (mai vechiul AmiPro al firmei Lotus) sau WordPad inclus în mediul Windows.

-   Programe de calcul tabelar precum Microsoft Excel sau Lotus 1-2-3

-   Programe de modelare si simulare a sistemelor dinamice, cel mai cunoscut dintre ele fiind MATLAB/Simulink al firmei MathWorks, SciLab al I.N.R.I.A. Franta sau Matrixx.

-   Programe pentru achizitie si prelucrare semnal în timp real precum LabVIEW al firmei National Instruments.

Asa cum se prezintã si în figura de mai sus, software-ul de aplicatie se bazeazã pe software-ul de sistem deoarece el este incapabil sã ruleze fãrã sistemul de operare sau utilitãtile de sistem incluse în software-ul de sistem.

1.3  Realizarea de programe executabile

1.3.1 Ce reprezintã un program executabil

Un program este o listã organizatã de instructiuni care, atunci când sunt executate, impun calculatorului un comportament premeditat si anume cel dorit de programator. Fãrã programe calculatoarele sunt inutilizabile.

Un program este ca un recipient care contine o listã de ingrediente numite variabile si o listã de directive numitedeclaratii sau instructiuni care dicteazã calculatorului ce anume sã execute cu variabilele. Variabilele pot reprezenta date numerice, text sau imagini grafice.

Calculatoarele pe care le folosim în mod obisnuit, asa numitele PC-uri, sunt bazate în functionare pe o unitate integratã logicã, aritmeticã si de control numitã unitate de procesare si control (CPU-Control Process Unit) sau mai pe scurt microprocesor. Prin proiectare acest microprocesor, adevãrat creier pentru un sistem de calcul, este capabil sã execute un numãr predefinit de instructiuni asupra unui anumit set (predefinit) de tipuri de date.

Microprocesorul extrage secvential (pe rând, una câte una) instructiunile grupate într-un program, numit si program executabil sau executabil. Acest program executabil este conceput de un programator în functie de necesitãtile utilizatorului.

18

În cele ce urmeazã vom sintetiza procesul de programare a calculatorului, adicã vom prezenta pe scurt care sunt pasii pe care îi putem face pentru a crea un program executabil.

Orice informatie stocatã în memoria internã (RAM sau ROM) a unui calculator sau pe suporturile de stocare externe (hard sau floppy disk-uri, CD-ROM-uri, etc.) este în format binar, adicã o însiruire de biti 0 sau 1.

Instructiunile si datele care compun programele executate de microprocesor sunt în acelasi format binar. Fiecare producãtor de microprocesoare proiecteazã un anumit set de instructiuni pe care microprocesorul le poate executa. Aceste instructiuni sunt codificate binar. Spre

exemplu, cu 8 biti se pot codifica  instructiuni. La fel se întâmplã si cu datele: ele au un format de reprezentare binar care la ora actualã este standardizat si adoptat de toti producãtorii de microprocesoare si de software. Modul de reprezentare al datelor va face obiectul capitolului urmãtor.

Un program executabil va fi reprezentat în final de un set de instructiuni si date care sunt prelucrate de instructiunile respective.

1.3.2 Ce reprezintã un limbaj de programare

Problema dificilã în programarea unui calculator rezidã din faptul cã sistemul uman de reprezentare a informatiilor (imagini vizuale, comenzi verbale sau scrise) este incompatibil cu sistemul de reprezentare binar intern folosit de microprocesor.

Pentru a realiza o compatibilizare între aceste moduri de reprezentare, proiectantii de software au conceput asa-numitele limbaje de programare. Limabajul de programare este apropiat de limbajul uman si contine instructiuni cu semnificatii precise, în special în limba englezã. De asemenea, datele într-un limbaj de programare sunt reprezentate într-un format (numit format exetern) foarte apropiat sau chiar identic cu formatul de reprezentare a datelor folosit în matematicã.

Cu ajutorul unui limbaj de programare programatorul poate implemeta un program sursã folosind comenzi cu o sintaxã si o semanticã apropiatã de limbajul uman. Scrierea unui program nu mai este o problemã de limbaj, efortul concentrându-se asupra implementãrii celui mai potrivit algoritm.

Din puctul de vedere al apropierii de limbajul uman dispunem de limbaje de programare de nivel înalt (HLPL-high-level programming languages) precum C++, Pascal, BASIC, FORTRAN, COBOL sau LISP, de limbaje de programare de nivel mediu cum ar fi C sau de limbaje de programare de nivel scãzut numite si limbaje de asamblare care sunt apropiate de limbajul microprocesorului. De fapt limbajul de asamblare reprezintã un set de mnemonice corespunzãtor setului de instructiuni al microprocesorului precum si un set de instructiuni mai complexe prin care se exploateazã optim resursele microprocesorului.

Programarea este cu atât mai simplã  cu cât limbajul este de nivel mai înalt, dar existã întotdeauna un compromis între usurinta programãrii si gestionarea resurselor sistemului de calcul. Cu alte cuvinte un program scris într-un limbaj de nival înalt are dimensiuni mai mari (ocupã spatiu mai mare pe disc sau în memorie) si viteza sa de executie este mai micã. Resursele calculatorului sunt cel mai bine gestionate folosind limbajul de asamblare propriu fiecãrui microprocesor, dar efortul de programare este deosebit de intens. Un foarte bun

19

compromis se obtine folosindu-ne de limbajul C, de altfel cel mai rãspândit limbaj de programare procedural.

La ora actualã viteza de procesare a microprocesoarelor a crescut foarte mult, la fel cu capacitatea cipurilor de memorie RAM, cu scãderea timpului de acces la memorie si cu scãderea preturilor la componentele electronice. Gestionarea resurselor calculatorului nu mai reprezintã o problemã foarte stringentã, calculatoarele având capacitãti de memorie si viteze de procesare deosebit de mari. În acest context au apãrut limbaje de programare deosebit de puternice care permit dezvoltarea de aplicatii si depanarea lor într-un timp foarte mic.

Spre exemplu s-au conceput limbaje de programare vizuale, derivate din cele clasice, dar care sunt prevãzute cu facilitãti deosebite pentru implementarea intefetelor grafice cu utilizatorul. În mediul de dezvoltare Microsoft Development Kit dispunem de visual-C, visual-Basic si visual-FoxPro.

C este un limbaj de programare procedural structurat care a fost folosit în primul rând pentru dezvoltarea sistemului de operare UNIX (multe dintre versiunile UNIX au fost scrise în C) si apoi pentru dezvoltarea de aplicatii în mediul academic si industrial. C a fost standardizat ca parte a Interfetei Sistemului de Operare Portabil POSIX (Portable Operating System Interface).

Odatã cu cresterea popularitãtii programãrii orientate pe obiect C este înlocuit treptat ca limbaj de programare de cãtre limbajul C++, un superset al limbajului C care foloseste un set complet diferit de concepte de programare.

Java reprezintã un limbaj sismilar cu C++ dar mai simplu si a fost proiectat pentru folosirea în retele distribuite.

Indiferent de ce limbaj de programare folosim, în mediul de programare folosit de programator pentru dezvoltarea unei aplicatii existã obilgatoriu un editor de texte cu ajutorul cãruia se scriu instructiuni specifice limbajului de programare folosit. La finalul procesului de programare se obtine un fisier text, numit fisier sursã care se salveazã pe disc cu un nume ales de programator si cu o extensie specificã limbajului de programare folosit.

1.3.3 Cum se obtine un program executabil

Programul sursã (source file) contine setul de instructiuni pe care trebuie sã le îndeplineascã microprocesorul. Acest set de instructiuni este scris într-un limbaj de programare specific.

Pentru a obtine un program executabil, orice program sursã trebuie eventual translatat (tradus) în limbaj cod masinã sau cod obiect pe care îl poate întelege microprocesorul. În urma acestui proces, alãturi de fisierul sursã apare si fisierul cod obiect (object file.) Aceastã translatare sau traducere este efectuatã de cãtre compilatoare,interpretoare sau asambloare.

Compilatorul este folosit pentru transformarea codului sursã, adicã a programului scris într-un limbaj de programare de nivel înalt, în cod obiect (object code). Acest cod obiect va fi transformat în faza de editare de legãturi în cod masinã executabil de microprocesorul sistemului de calcul.

20

Programatorii scriu programe într-o formã numitã cod sursã. Acest cod sursã parcurge apoi câtiva pasi înainte de a deveni program executabil.

Pe scurt, un compilator este un program special care proceseazã instructiuni scrise într-un limbaj de programare particular si le transformã în limbaj masinã sau cod masinã pe care îl poate executa microprocesorul.

La ora actualã un limbaj de programare este inclus într-un mediu de programare mai complex care include uneditor de texte pentru introducerea instructiunilor în limbajul de programare de nivel înalt, un compilator si un editor de legãturi folosite pentru translatarea codului sursã în cod masinã.

În mod tipic, un programator scrie declaratii într-un limbaj precum Pascal, C sau MATLAB folosind un editor. Se creazã astfel un fisier numit fisier cod sursã ce contine o colectie de instructiuni si declaratii scrise în limbajul respectiv.

Primul pas este prelucrarea codului sursã de cãtre compilator, care translateazã instructiunile de nivel înalt într-o serie de instructiuni cod obiect. Când este lansat în executie compilatorul acesta, într-o primã etapã, lanseazã un analizor sintactic, gramatical, numit parser. Acesta parcurge si analizeazã sintactic, secvential, în ordinea în care au fost introduse, toate instructiunile scrise în limbajul de nivel înalt. O instructiune de nivel înalt se translateazã într-una sau mai multe instructiuni specifice microprocesorului pentru care a fost conceput compilatorul. Aceste instructiuni ale microprocesorului sunt înlocuite cu codurile lor binare, fiecare instructiune a microprocesorului fiind codificatã de cãtre constructor. Codurile binare ale instructiunilor microprocesorului împreunã cu reprezentãrile interne ale datelor manipulate formeazã codul obiect.

Deci în unul sau mai multe faze (parserul este una dintre faze) din codul sursã de intrare se produce un cod de iesire, numit în mod traditional cod obiect. Este foarte important ca referiri la alte module de cod sã fie corect reprezentate în acest cod obiect.

Pasul final în producerea programului executabil, dupã ce compilatorul a produs codul obiect, este prelucrarea codului obiect de cãtre un editor de legãturi (link-editor sau linker). Acest linker combinã diferitele module (le leagã) si dã valori reale, efective, tuturor adreselor

21

simbolice existente în codul obiect. În urma acestei prelucrãri se obtinecodul masinã, salvat într-un fisier cu extensia .exe. Acest cod masinã poate fi executat secvential, instructiune cu instructiune, de cãtre microprocesor.

Cu alte cuvinte, un program executabil (executable program - aflat pe disc cu extensia .exe) se obtine prin salvarea pe disc a codului masinã obtinut prin prelucrarea succesivã a fisierului cod sursã de cãtre compilator (compiler) si apoi de cãtre link-editor (linker).

Procesul de obtinere a unui executabil este prezentat în figura de mai jos. Blocurile tridimensionale reprezintã entitãtile principale ale mediului de programare: editorul de texte, compilatorul (compiler) si editorul de legãturi (linker). Blocurile dreptunghiulare reprezintã fisierele rezultate în urma aplicãrii celor trei utilitare de sistem:

-                      în urma utilizãrii editorului de texte obtinem fisierul text sursã cod cu numele generic "nume". Dacã folosim limbajul de programare C spre exemplu, se obtine fisierul nume.c care se va salva pe disc.

-                      în urma lansãrii în executie a compilatorului, acesta preia fisierul sursã si îl prelucreazã corespunzãtor, semnalizându-se toate erorile fatale pentru program sau avertismente utile programatorului în procesul de depanare. În cazul în care compilarea se efectueazã cu succes, se obtine un fisier cod obiect, salvat pe disc sub numelenume.obj

-                      în urma lansãrii în executie a editorului de legãturi, se preia fisierul cod obiect nume.obj si se leagã cu toate modulele necesare (inclusiv functii de bibliotecã sau alte module externe), obtinându-se un program executabil (cod masinã) cu numele nume.exe la care adresele nu mai sunt simbolice ci absolute relativ la adresa de început a programului. La lansarea în executie a programului fluxul de informatie este complet controlat de cãtre microprocesor, toate salturile de adresã fiind fãcute corespunzãtor.

22

Interpretorul (interpreter) este un program care executã instructiuni scrise într-un limbaj de nivel înalt. Numai anumite limbaje de nivel înalt, spre exemplu BASIC, LISP sau MATLAB, sunt prevãzute cu un interpretor.

Existã douã modalitãti de a executa un program scris în limbaj de nivel înalt. Cel mai comun mod este acela de a compila programul. Cealaltã modalitate este "pasarea" programului unui interpretor.

Un interpretor translateazã instructiunile de nivel înalt într-o formã intermediarã care este apoi executatã. Prin contrast, un compilator translateazã instructiunile de nivel înalt direct în limbaj masinã (cod masinã). Programele compilate ruleazã în general mai rapid decât cele interpretate. Un alt avantaj al programelor compilate este acela al desprinderii din context în sensul cã programele executabile generate în urma procesului de compilare pot fi executate

23

direct sub sistemul de operare al calculatorului. Un program interpretat se executã sub mediul în care a fost creat.

Spre exemplu, pentru a rula un program scris în limbajul BASIC se lanseazã în executie mediul BASIC, apoi se deschide fisierul sursã-BASIC corespunzãtor si se lanseazã interpretorul de BASIC pentru executia sa.

Avantajul unui interpretor este acela al evitãrii procesului de compilare consumator de timp în cazul în care avem programe de mari dimensiuni. Interpretorul poate executa imediat programele sursã. Pentru acest motiv interpretoarele se folosesc mai ales în procesul de dezvoltare al programelor, când programatorul doreste adãugarea unor mici portiuni de program pe care sã le testeze rapid. De asemenea, interpretoarele permit o programare interactivã fiind des folosite în procesul de instructie.

În mediul de programare MATLAB, mediu interpretor, orice comandã utilizator se executã imediat. Se pot edita si fisiere script, care contin secvente de comenzi care se executã secvential.

Programele de descriere a paginii (Page description Languages) ca PostScript spre exemplu folosesc un interpretor. Fiecare imprimantã PostScript are incorporat un interpretor care executã instructiuni PostScript.

            Asamblorul (assembler) este un program care face translatia unui program scris în limbaj de asamblare (limbaj de nivel scãzut, corespunzãtor microprocesorului sistemului de calcul) în limbaj cod masinã. Putem spune cã asamblorul reprezintã pentru limbajul de asamblare ceea ce reprezintã compilatorul pentru limbajele de nivel înalt. Cum limbajul de asamblare contine instructiuni mai putin complexe decât cele de nivel înalt, asamblorul face practic o convertire biunivocã între mnemonicele limbajului de asamblare si codurile binare corespunzãtoare acestor mnemonice (instructiuni).

1.4  Biblioteci

O bibliotecã este o colectie de fisiere.

Un fisier este o colectie de date sau de informatii care au un nume (filename). Aproape toate informatiile stocate pe suporturi externe (dischete, harddisk-uri, CD-ROM-uri, etc.) sunt sub formã de fisiere. Existã diferite tipuri de fisiere: fisiere de date (data files), fisiere text (text files), fisiere executabile (programe, program files), fisiere directoare (directory files), etc.

Diferitele tipuri de fisiere stocheazã diferite tipuri de informatii. Spre exemplu, fisierele program cu extensia ,exestocheazã date în format cod masinã executabil de cãtre microprocesor iar fisierele text stocheazã text, adicã o însiruire de coduri ASCII corespunzãtoare caracterelor ce compun cuvintele, semnelor de punctuatie, etc.

Din acest punct de vedere, în tehnica programãrii, prin bibliotecã se întelege o colectie de rutine precompilate(fisiere cod obiect, cu extensia .obj) pe care le poate utiliza un program.

În software, un modul este o parte a unui program. Programele pot fi compuse din unul sau mai multe module dezvoltate independent care se pot combina pentru a forma un program

24

mai complex în faza de editare de legãturi. Un singur modul poate contine unul sau mai multe rutine.

O rutinã (routine) este o sectiune a unui modul de program care realizeazã o anumitã sarcinã. Deci programele constau din module, fiecare modul continând unul sau mai multe rutine. În general termenul de rutinã este sinonim cuprocedurã, functie sau subrutinã.

Concluzionãm cã o bibliotecã este o colectie de functii precompilate, stocate în format .obj, care pot fi folosite de orice modul de program care apeleazã aceste functii si care se leagã, în faza de editare de legãturi, cu biblioteca respectivã.

            Bibliotecile sunt foarte utile pentru stocarea functiilor folosite frecvent deoarece nu este nevoie sã le legãm explicit la orice program care le foloseste. Linker-ul cautã automat în anumite biblioteci pentru functiile pe care nu le gãseste în altã parte.

1.4.1 Biblioteci cu legare staticã

            Orice modul de program care apeleazã functii are douã componente:

-       partea din modul care apeleazã functia, numitã modul apelant

-       functia apelatã propriu-zisã

În faza de compilare, orice functie apelatã este tratatã din punct de vedere sintactic si din punctul de vedere al modului de apelare. Compilatorul este interesat de compatibilitatea între tipul parametrilor actuali de apelare si tipul parametrilor formali de intrare si de iesire cu ajutorul cãrora au fost definite functiile apelate.

Bibliotecile cu legare staticã sunt de fapt o colectie de functii precompilate. În faza de editare de legãturi, link-editorul extrage o copie a fiecãrei functii precompilate apelate si o înregistreazã în programul executabil final la o anumitã adresã alocatã precis de cãtre el.

Astfel, în programul executabil obtinut în final se regãseste o copie a codului obiect al fiecãrei functii apelate de cãtre modulele care compun programul. Dupã faza de compilare si editare de legãturi, pãrti din bibliotecile cu care s-a fãcut legarea se regãsesc în codul masinã rezultat. Aceste pãrti reprezintã codurile obiect ale functiilor apelate de cãtre toate modulele componente ale programului sursã.

25

            Salvat pe disc, programul executabil va contine incluse codurile obiect ale tuturor functiilor la care face apel, cu adresele la care se vor dispune în memoria RAM când se vor lansa în executie. Aceste adrese constituie un deplasament relativ la adresa de bazã a segmentului de memorie în care se încarcã programul executabil de cãtre sistemul de operare.

            Dacã mai multe programe fac apel la aceleasi functii, imaginile cod obiect ale acestor functii se vor gãsi în fiecare cod program.

            Sistemele de operare moderne sunt nevoite sã optimizeze resursele calculatorului. Dacã se lanseazã în executie mai multe programe executabile în cadrul unui sistem de operare multitasking cum este Windows, atunci este posibil ca anumite functii sã fie încarcate repetitiv în memorie de cãtre fiecare program executabil în parte. Resursele de memorie nu mai sunt folosite judicios.

26

1.4.2 Biblioteci cu legare dinamicã

            DLL (Dynamic Link Library) este o bibliotecã de functii executabile care pot fi folosite de aplicatiile Windows. In mod normal, o DLL furnizeazã una sau mai multe functii particulare si un program acceseazã aceste functii prin crearea unor legãturi fie statice, fie dinamice.

            O legãturã staticã  rãmâne constantã în timpul executiei programului în timp ce o legãturã dinamicã este creatã de program în timpul executiei numai atunci atunci când este necesarã.

            Mai mult, o bibliotecã cu legare dinamicã (DLL) poate fi folositã în comun de mai multe aplicatii care se executã simultan. DLL-urile pot contine uneori numai date, nu si cod masinã.

            Anumite DLL-uri sunt furnizate împreunã cu sistemul de operare Windows si sunt disponibile pentru orice aplicatie Windows. Alte DLL-uri sunt scrise pentru o aplicatie particularã si sunt încãrcate numai cu aplicatia respectivã.

Fisierele DLL se terminã în mod uzual cu extensiile .dll (mai ales pentru biblioteci),.exe. (pentru executabile), drv(pentru driverele diferitelor dispozitive), sau .fon (pentru gestionarea diferitelor fonturi).

            Sub sistemele de operare Windows, o bibliotecã cu legare dinamicã (DLL, Dynamic Link Library) reprezintã o colectie de programe de mici dimensiuni, fiecare program putând fi apelat de un program mai mare care ruleazã pe acel sistem de calcul la un moment dat. Aceste programe de dimensiuni mai mici care permit

27

programelor mai mari comunicatia cu diferite dispozitive de intrare/iesire precum imprimanta sau scanner-ul sunt adesea împachetate în fisiere cu extensia .DLL, numite si programe DLL.

Avantajul folosirii unui fisier DLL este acela cã el nu trebuie încãrcat în memoria RAM odatã cu programul executabil care îl apeleazã, salvându-se astfel spatiu de memorie pretios. Când este nevoie de un fisier DLL, el se încarcã în memorie într-o zonã liberã si se lanseazã în executie. Legãtura cu fisierul DLL se numeste dinamicã deoarece, spre deosebire de biblioteca staticã, adresa de încãrcare a fisierului DLL în memorie nu este fixã, ci variabilã, în functie de adresa primului segment de memorie RAM liber.

Spre exemplu, dacã editãm un document folosind Microsoft Word, fisierul DLL asociat imprimantei nu este încãrcat în memoria RAM. Dacã utilizatorul decide sã tipãreascã documentul, atunci fisierul DLL al imprimantei se încarcã în memorie si se executã.

Un fisier DLL sau o bibliotecã cu legare dinamicã este recunoscutã dupã extensia .dll atasatã numelui fisierului. Fisierele DLL se leagã dinamic cu programul care le foloseste în faza de executie a programelor, nu în faza de compilare si link-editare ca în cazul bibliotecilor cu legare staticã.

Ca si un program executabil de sine-stãtãtor, o bibliotecã cu legare dinamicã este compusã dintr-o serie de module de cod masinã ce reprezintã functiile din bibliotecã apelabile dintr-un program executabil lansat în executie sau dintr-un alt DLL.

Spre deosebire de fisierele program executabile (cu extensia .exe), fisierele DLL nu contin codul necesar pentru a se executa (functiona, rula) de sine-stãtãtor. Ele trebuie apelate pentru executie fie dintr-un cod executabil fie accesate dintr-un alt DLL care este executat.

            Fisierele DLL care asigurã operatii cu dispozitive specifice sunt cunoscute sub numele de drivere de dispozitiv (device driver sau mai simplu drivere).

            În contextul tehnologic al calculatoarelor, un dispozitiv (device) este o unitate de hardware, situatã în afara sau în interiorul carcasei calculatorului, care este capabilã de suport pentru intrãri, iesiri (sau ambele) de la unitatea centralã a sistemului de calcul. Când se foloseste termenul de computer device atunci notiunea include tastaturi, mouse-uri, monitoare pentru afisare, drivere de hard disk, cititoare de CD-ROM, imprimante, difuzoare audio sau microfoane sau orice alt dispozitiv  hardware. Anumite dispozitive precum driverul de hard disk sau cel de CD-ROM, care sunt situate în interiorul carcasei calculatorului, sunt considerate dispozitive separate deoarece se pot instala sau înlocui separat.

            Pãrtile componente ale unui sistem de calcul care nu se considerã dispozitive sunt placa de bazã (motherboard), procesorul sau coprocesorul, precum si memoria cu acces aleator RAM.

            Termenul de periferic se referã la dispozitivele de intrare/iesire.

28

            Un device driver este un program care controleazã un tip particular de dispozitiv atasat sau inclus la sistemul de calcul. Existã device drivere  pentru imprimante, monitoare, cititoare de CD, dischete, etc. Atunci când se achizitioneazã un sistem de operare, acesta include o serie de drivere pentru diversele dispozitive posibil de atasat la acest sistem. Dacã se achizitioneazã un dispozitiv mai recent decât sistemul de operare, atunci este necesar ca acesta sã fie însotit de un device driver care sã fie instalat dupã montarea fizicã a dispozitivului. Instalarea acestuidriver informeazã sistemul de operare ce fisiere DLL se utilizeazã în lucrul cu dispozitivul corespunzãtor.

Un device driver converteste, în principal, instructiunile generale de intrare/iesire ale sistemului de opeare în mesaje specifice dispozitivului fizic adresat. Cu alte cuvinte, sistemul de operare foloseste, spre exemplu, instructiuni de tipãrire de tip general, care nu sunt specifice numai unei anumite imprimante. Este sarcina printer driverului sã converteascã aceste instructiuni generale ale sistemului de operare în instructiuni specifice imprimantei folosite. Aceasta creste flexibilitatea unui sistem de operare, care este astfel adaptabil la o gamã mai largã de dispozitive produse de diversi producãtori. Ceea ce se schimbã la înlocuirea unei imprimante cu una de alt tip este numai driverulde imprimantã.

Anumite programe Windows sunt considerate drivere virtuale de dispozitiv  (virtual device drivers). Aceste programe interfateazã sistemul de calcul cu Windows Virtual Machine Manager. Existã un astfel de driver virtual pentru orice dispozitiv principal din componenta sistemului de calcul, inclusiv pentru tastaturã, hard disk sau porturile seriale sau paralele. Acestea sunt folosite pentru a mentine înregistrãri cu starea (status) tuturor dispozitivelor hardware. Starea unui dispozitiv se referã la setãrile curente ale parametrilor dispozitivelor (cu alte cuvinte setãrile curente ale imprimantei, ale monitorului (numãr de culori si rezolutie), ale interfetei seriale (rata de transmisie), etc.).

Driverele de dispozitiv virtuale manevreazã în special întreruperi software provenite din sistem, nu întreruperi hardware.

În sistemul de operare Windows, un driver de dispozitiv este reprezentat de un fisier cu extensiile .exe, .drv sau.dll. Un driver virtual de dispozitiv are extensia .vxd.

29