Documente online.
Username / Parola inexistente
  Zona de administrare documente. Fisierele tale  
Am uitat parola x Creaza cont nou
  Home Exploreaza






NOTIUNI DE BAZA DESPRE CALCULATOR

Informatica











ALTE DOCUMENTE

Crearea de situri Web cu FrontPage
WinGlobe
Arhitectura microcalculatoarelor de 16 biti
Functiile variabilelor de cotare din eticheta Tolerances. - Modificarea (editarea) sau actualizarea cotelor
E-mail sau posta electronica
AntiVir Personal Edition Premium
Rezolvari variante bacalaureat
Microsoft Word si Microsoft Excel
Afisajul multiplexat
Implementarea operatorilor relationali in SGBD-ul Visual Fox Pro


NOŢIUNI DE BAZĂ DESPRE CALCULATOR

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.

computer

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.

  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 un microprocesor 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.

operating system

            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 cu securitatea, 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 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.

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. 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 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.

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

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:

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 operare multitasking. Î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

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 Play complet 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).

Î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 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.

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.

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ă în kernel-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.

Ř      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 numit Windows 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 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.

§      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 numite declaratii 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.

Î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 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.

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 un editor 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 simbolice existente în codul obiect. În urma acestei prelucrări se obtine codul 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 numele nume.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.

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 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 ,exe stochează 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 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 cu procedură, 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ă.

            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.

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 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.

            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 acestui driver 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 driverul de 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.


Document Info


Accesari: 10213
Apreciat:

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site

Copiaza codul
in pagina web a site-ului tau.

 


Copyright © Contact (SCRIGROUP Int. 2014 )