Sei sulla pagina 1di 146

IOAN DZIAC

GRIGOR MOLDOVAN

SISTEME DISTRIBUITE
MODELE INFORMATICE

Editura Universitii Agora, Oradea 2006

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Referent: Prof. univ. dr. Rzvan Andonie, Central Washington University, SUA Editor: Prof. univ. dr. ing. Miu-Jan Manolescu, Universitatea Agora Coperta i asistent editorial: Emma M. Vleanu, Universitatea Agora, student doctorand la Academia Romn

Descrierea CIP a Bibliotecii Naionale a Romniei DZIAC, IOAN Sisteme distribuite - Modele informatice / Ioan Dziac, Grigor Moldovan. - Oradea : Editura Universitii Agora, 2006 Bibliogr. ISBN (10) 973-87960-9-1 ; ISBN (13) 978-973-87960-9-6 I. Moldovan, Grigor 004
Copyright 2006 by CCC Publications, Agora University Publishing House.

Title: DISTRIBUTED SYSTEMS: INFORMATION SYSTEM MODELS Abstract: This work presents various definitions and models for the distributed informatics systems starting from the parallel and distributed computation general models, usual models from Internet and Intranet (client/server, cluster, grid etc.), and also the communication models in these kind of systems. The book is addressed especially by the students and by the professorate that wants to study/teach the applied informatics (economical informatics, medical informatics) but can also be used by all the other that are interested in using the distributed informatics systems.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

CONTENTS
CHAPTER 1 DISTRIBUTED INFORMATICS SYSTEMS 1.1. A short description of the distributed informatics systems 1.1.1. Distributed informatics system. Homogeneous/heterogeneous systems. Tightly /loosely coupled systems 1.1.2. Specific characteristics and advantages of the distributed systems 1.1.3. Middleware 1.2. The requirements of a distributed informatics system 1.2.1. Heterogeneously 1.2.2. Scalability 1.2.3. Security 1.2.4. Errors treatment 1.2.5. Openess 1.2.6. Concurrency 1.2.7. Transparency 1.3. Remarkable examples of distributed informatics systems 1.3.1. Internet networks: SIPRNET, FidoNet, Internet 1.3.2. Intranet and extranet 1.3.3. Nomadic computing and ubiquitous computing 1.3.4. Internet2 1.3.5. PlanetLab 1.3.6. Cluster 1.3.7. Grid CHAPTER 2 PARALLEL AND DISTRIBUTED COMPUTATION SYSTEMS: TAXONOMY AND MODELS 2.1. Binary classification of the parallel and distributed computing systems (SCPD) architectures 2.1.1. SCPD classification after the number of the central units connected to the memory 2.1.2. SCPD classification after the control mechanism type 2.1.3. SCPD classification after the number of the processing instruction sets 2.1.4. SCPD classification after the processing management strategy type 2.1.5. SCPD classification after the number of the processing data stream 2.1.6. SC class partition after the number of the processing data stream

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.1.7. SIMD class partition after the processing data type 2.1.8. SF class partition after the processing data type 2.1.9. MIMD class partition after the organization way of the addressspace of memory (Bell) 2.1.10. Multiprocessors partition after the used memory type (Bell) 2.1.11. Multicomputer partition after the used memory type (Bell) 2.2.The parallelism in various computing systems 2.2.1. The parallelism in the SISD modern scalar computers 2.2.2. The parallelism in the MISD multiscalar computers 2.2.3 The parallelism in the MIMD systems 2.3. Flynns classification 2.3.1. SISD class (Single Instruction stream - Single Data stream) 2.3.2. SIMD class (Single Instruction stream - Multiple Data stream) 2.3.3. MISD class(Multiple Instruction stream - Single Data stream) 2.3.4. MIMD class(Multiple Instruction stream - Multiple Data stream) 2.4. A synthesis of various taxonomy of SCPD 2.4.1. The inclusion of Flynns classes 2.4.2. The inclusion of Bells classes (SASA multiprocessors, MPA multicomputer) 2.4.3. The inclusion of Hwangs classes (UMA, NUMA, ccNUMA, COMA models) 2.4.4. The models Cluster and Grid 2.4.5. A synthesis taxonomical schema 2.5. The software needed for the configuration and the management of the distributed informatics systems 2.5.1. Multiuser operating systems 2.5.2. Parallel Virtual Machine (PVM) 2.5.3. Message Passing Interface (MPI) 2.5.4. Globus Toolkit CHAPTER 3 THE INTERCONNECTION IN THE PARALLEL AND DISTRIBUTED COMPUTATION SYSTEMS 3.1. PRAM, an idealist parallel computer 3.2. Interconnection methods in the parallel and distributed computation systems architecture. Computer networks 3.2.1. Crossbar networks 3.2.2. Switchboard interconnection 3.2.3. Network interconnection with limited direct links 3.2.3.1. Bus network 3.2.3.2. Linear and cyclic network 3.2.3.3. Perfect mixing network

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

3.2.3.4. Tree network 3.2.3.5. Lattice network 3.2.3.6. Hypercube network CHAPTER 4 THE INTERNET: A SCALABLE OPEN DISTRIBUTED SYSTEM 4.1. The architectural schema of the Internet 4.2. The functional schema of the Internet (router, gateway, host) 4.3. The client/server model. The TCP/IP protocol 4.3.1. IP (Internet Protocol). 4.3.2. TCP (Transmission Control Protocol) 4.3.3. UDP (User Datagram Protocol) 4.3.4. DNS (Domain Name System) 4.3.5. POP3 or the Post Office protocol Version 3 4.3.6. IMAP (Internet Message Access Protocol) 4.3.7. SMTP (Simple Mail Transfer Protocol) 4.3.8. HTTP (HyperText Transfer Protocol) 4.3.9. HTTPS 4.3.10. SSL (Secure Sockets Layer) 4.3.11. FTP (File Transfer Protocol) 4.3.12. LDAP 4.4. World Wide Web: a distributed application over the Internet 4.4.1. Generalities about the Web. Hypertext and hypermedia 4.4.2. The hypertext marking (SGML, XML, HTML, WML, XHTML) 4.4.3. URI (Uniform Resource Identifier): URL and URN 4.4.4. HTTP (HyperText Transfer Protocol) APPENDIX A minidictionary for parallel and distributed computing REFERENCES WEB REFERENCES

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Conf. univ. dr. Ioan Dziac


Domenii de interes: Calcul paralel i distribuit, Matematic i informatic economic

Ioan DZIAC (n. 14.02.1953, Poieni de sub Munte - Repedea, Maramure), este doctor n informatic, confereniar universitar i eful catedrei de informatic economic la Universitatea AGORA din Oradea. A obinut doctoratul n informatic n 2002 sub conducerea tiinific a prof. Grigor MOLDOVAN. A fost directorul Departamentului de Matematic i Informatic al Universitii din Oradea, iar n prezent este directorul centrului de cercetare Tehnologii informatice avansate n management i inginerie la Universitatea AGORA. A publicat 11 cri i a editat 4 volume ale unor conferine internaionale i peste 40 de articole. Este fondator i editor executiv la International Journal of Computers, Communications and Control. Grigor MOLDOVAN (n. 29.12.1939, Vadu Izei, Maramure), este doctor n matematic, profesor universitar i conductor de doctorate n informatic la Universitatea Babe-Bolyai din Cluj - Napoca, Facultatea de Matematic i Informatic. A obinut doctoratul n matematic n 1972 sub conducerea tiinific a acad. Tiberiu POPOVICIU i prof. Dimitrie STANCU. Este unul din pionieri n informatica romneasc, prednd cursuri de informatic ncepnd nc din anul 1971, scriind articole i cri de informatic i fiind directorul Centrului de Calcul al Universitii, de la nfiinarea sa n 1975, pn n anul 1990. A fost muli ani i directorul Departamentului de Informatic. A publicat 18 cri i peste 65 de articole tiinifice.

Prof. univ. dr. Grigor Moldovan


Domenii de interes: Sisteme distribuite, Limbaje formale

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

CUPRINS
CAPITOLUL 1 SISTEME INFORMATICE DISTRIBUITE 1.1. Scurt descriere a sistemelor informatice distribuite 1.1.1. Sistem informatic distribuit. Sisteme omogene/eterogene. Sisteme puternic/slab cuplate 1.1.2. Caracteristici i avantaje specifice ale sistemelor distribuite 1.1.3. Midlleware 1.2. Cerinele unui sistem informatic distribuit 1.2.1. Eterogenitatea 1.2.2. Scalabilitatea 1.2.3. Securitatea 1.2.4. Tratarea erorilor 1.2.5. Deschiderea 1.2.6. Concurena 1.2.7. Transparena 1.3. Exemple remarcabile de sisteme informatice distribuite 1.3.1. Reele de tip internet: SIPRNET, FidoNet, Internet 1.3.2. Intranet i extranet 1.3.3. Nomadic computing i ubiquitous computing 1.3.4. Internet2 1.3.5. PlanetLab 1.3.6. Cluster 1.3.7. Grid

11 12 12 14 16 17 17 18 20 23 24 24 24 26 26 27 28 28 29 38 43

CAPITOLUL 2 SISTEME DE CALCUL PARALEL I DISTRIBUIT: TAXONOMIE I MODELE 2.1. Clasificri binare ale arhitecturilor sistemelor de calcul paralel i distribuit (SCPD) 2.1.1. Clasificarea SCPD dup numrul de uniti centrale conectate la memorie 2.1.2. Clasificarea SCPD dup tipul mecanismului de control 2.1.3. Clasificarea SCPD dup numrul de seturi de instruciuni prelucrabile

47 48 49 50 50

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.1.4.

2.2.

2.3.

2.4.

2.5.

Clasificarea SCPD dup tipul strategiei de management al procesrii 2.1.5. Clasificarea SCPD dup numrul de seturi de date prelucrabile 2.1.6. Divizarea clasei SC dup numrul de seturi de date prelucrabile 2.1.7. Divizarea clasei SIMD dup tipul de date prelucrabile 2.1.8. Divizarea clasei SF dup tipul de date prelucrabile 2.1.9. Divizarea clasei MIMD dup modul de organizare a adresrii spaiului de memorie (Bell) 2.1.10. Divizarea multiprocesoarelor dup tipul de memorie utilizat (Bell) 2.1.11. Divizarea multicalculatoarelor dup tipul de memorie utilizat (Bell) Paralelismul n diverse sisteme de calcul 2.2.1. Paralelismul n calculatoarele scalare moderne de tip SISD 2.2.2. Paralelismul n calculatoarele multiscalare de tip MISD 2.2.3. Paralelismul n sistemele MIMD Clasificarea lui Flynn 2.3.1. Clasa SISD (Single Instruction stream - Single Data stream) 2.3.2. Clasa SIMD (Single Instruction stream - Multiple Data stream) 2.3.3. Clasa MISD (Multiple Instruction stream - Single Data stream) 2.3.4. Clasa MIMD (Multiple Instruction stream - Multiple Data stream) O sintez a diverselor taxonomii ale SCPD 2.4.1. Includerea claselor lui Flynn 2.4.2. Includerea claselor lui Bell (multiprocesor de tip SASA, multicalculator de tip MPA) 2.4.3. Includerea claselor lui Hwang (modelele UMA, NUMA, ccNUMA, COMA) 2.4.4. Modelele Cluster i Grid 2.4.5. O schem taxonomic de sintez Software pentru configurarea i managementul sistemele informatice distribuite 2.5.1. Sisteme de operare multiuser 2.5.2. Parallel Virtual Machine (PVM) 2.5.3. Message Passing Interface (MPI) 2.5.4. Globus Toolkit

50 51 51 51 52 52 52 52 53 53 55 60 62 62 62 62 62 64 64 65 65 67 69 70 70 71 84 89

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

CAPITOLUL 3 INTERCONECTAREA N SISTEMELE DE CALCUL PARALEL I DISTRIBUIT 3.1. PRAM, un calculator paralel idealizat 3.2. Procedee de interconectare n arhitecturile sistemelor de calcul paralel i distribuit. Reele de calculatoare 3.2.1. Reea de tip crossbar 3.2.2. Interconectarea de tip switchboard 3.2.3. Reea de interconectare cu legturi directe limitate 3.2.3.1. Magistrala comun (bus) 3.2.3.2. Reeaua liniar i ciclic 3.2.3.3. Reeaua de tip amestecare perfect 3.2.3.4. Reeaua arborescent 3.2.3.5. Reeaua de tip latice 3.2.3.6. Reeaua de tip hipercub

95 95 97 98 98 99 99 99 100 101 102 103

CAPITOLUL 4 INTERNETUL: UN SISTEM DISTRIBUIT DESCHIS I SCALABIL 4.1. Schema arhitectural a Internetului 4.2. Schema funcional a Internetului (router, gateway, host) 4.3. Modelul client/server. Protocolul TCP/IP 4.3.1. IP (Internet Protocol) 4.3.2. TCP (Transmission Control Protocol) 4.3.3. UDP (User Datagram Protocol) 4.3.4. DNS (Domain Name System) 4.3.5. POP3 sau Protocolul Post Office Versiunea 3 4.3.6. IMAP (Internet Message Access Protocol) 4.3.7. SMTP (Simple Mail Transfer Protocol) 4.3.8. HTTP (HyperText Transfer Protocol) 4.3.9. HTTPS 4.3.10. SSL (Secure Sockets Layer) 4.3.11. FTP (File Transfer Protocol) 4.3.12. LDAP 4.4. World Wide Web: o aplicaie distribuit n Internet 4.4.1. Generaliti despre Web. Hipertext i hipermedia 4.4.2. Marcarea hipertextului (SGML, XML, HTML, WML, XHTML) 4.4.3. URI (Uniform Resource Identifier): URL i URN 4.4.4. HTTP (HyperText Transfer Protocol)

105 106 108 109 110 110 110 111 122 122 122 122 123 123 123 123 124 124 126 126 127

10

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

ANEX Minidicionar de calcul paralel i distribuit

128

BIBLIOGRAFIE

143

WEBGRAFIE

146

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

11

CAPITOLUL 1 SISTEME INFORMATICE DISTRIBUITE


1.1. Scurt descriere a sistemelor informatice distribuite 1.1.1. Sistem informatic distribuit. Sisteme omogene/eterogene. Sisteme puternic/slab cuplate 1.1.2. Caracteristici i avantaje specifice ale sistemelor distribuite 1.1.3. Midlleware 1.2. Cerinele unui sistem informatic distribuit 1.2.1. Eterogenitatea 1.2.2. Scalabilitatea 1.2.3. Securitatea 1.2.4. Tratarea erorilor 1.2.5. Deschiderea 1.2.6. Concurena 1.2.7. Transparena 1.3. Exemple remarcabile de sisteme informatice distribuite 1.3.1. Reele de tip internet: SIPRNET, FidoNet, Internet 1.3.2. Intranet i extranet 1.3.3. Nomadic computing i ubiquitous computing 1.3.4. Internet2 1.3.5. PlanetLab 1.3.6. Cluster 1.3.7. Grid

12

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

1.1. Scurt descriere a sistemelor informatice distribuite


1.1.1. Sistem informatic distribuit. Sisteme omogene/eterogene. Sisteme puternic/slab cuplate 1.1.2. Caracteristici i avantaje specifice ale sistemelor distribuite 1.1.3. Midlleware

1.1.1. Sistem informatic distribuit. Sisteme omogene/eterogene. Sisteme puternic/slab cuplate Vom admite c prin sistem distribuit de calcul sau sistem informatic distribuit se nelege o mulime de programe peste o reea de noduri (calculatoare, multiprocesoare, procesoare paralele masive, staii de lucru, clustere, grid ..) care au acces fiecare la o memorie proprie (dar pot avea acces i la anumite memorii comune partajate), fiind conectate ntre ele prin nite linii de comunicaie (fir, fibr optic, unde radio, satelii), avnd diverse topologii de conexiune (magistral comun, stea, ...), sistemul fiind conceput cu scopul partajrii unor resurse sau/i pentru rezolvarea concurent a unor aplicaii paralele sau paralelizabile. Motivaia pentru construirea i utilizarea sistemelor capabile de calcul paralel vine din nevoia de a reduce timpul de calcul prin diviziunea unei probleme mari n sub-probleme ce se pot rezolva simultan pe structuri de calcul adecvate, iar sistemele informatice distribuite rspund cerinelor de simultaneitate a calcului paralel i au n plus faciliti de a putea partaja unele resurse scumpe: hardware (imprimante, discuri, scanere, faxuri) i software (pagini web, baze de date, fiiere). Din punct de vedere al investiiei n echipamente, costurile se pot reduce considerabil, dac se utilizeaz un sistem distribuit care partajeaz unele resurse hardware scumpe (imprimante, servere cu baze de date, plci pentru achiziie de date, discuri, scanere, faxuri etc.), dar i a unor produse software cu licene scumpe (medii de programare, limbaje de programare, programe utilitare, programe pentru achiziii de date etc.). Acest lucru se face de obicei n organizaii (instituii, ntreprinderi) prin organizarea sistemului de calcul ntr-o reea Intranet n care este reglementat accesul distribuit la resurse. Utilizatorii propriu-zii a sistemelor distribuite de tip Internet sau intranet sunt n multe cazuri mai puin preocupai de costurile resurselor

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

13

folosite, fiind interesai mai mult de funcionalitatea modalitii de partajare a resurselor de care trebuie s se foloseasc n aplicaiile lor. Partajarea resurselor se face ncepnd de la indivizi foarte apropiai (de exemplu, membri unei familii sau colegi de serviciu care folosesc aceeai imprimant sau coopereaz n mod direct prin partajarea unor fiiere comune dintr-un intranet local) i pn la indivizi care nu se cunosc ntre ei i nici nu intr vreodat n contact (de exemplu, utilizatorii unor motoare de cutare pe Internet). n cadrul partajrii resurselor ntr-un sistem distribuit denumirea de serviciu este considerat ca o parte distinct a unui sistem care face managementul unei colecii de resurse asemntoare i face public funcionalitatea lor utilizatorilor i aplicaiilor care apeleaz la ele. Dac, de exemplu invocm un fiier partajat cu ajutorul unui serviciu pentru fiiere, accesul se face de fapt printr-o serie de operaii: read, write, delete. Termenul de server se refer la un program care ruleaz (proces) pe un computer dintr-o reea i care accept cereri de la computere din reea, iar cei care trimit cereri poart numele de clieni, funcionalitatea fiind asigurat prin protocolul client/ server. ntr-un sistem distribuit care este modelat prin folosirea programrii orientate obiect, resursele pot fi ncapsulate ca obiecte i pot fi accesate de aa numiii client object prin cererea unei metode de la server object. Din punct de vedere al structurii hardware i a tipului de conexiune, sistemele care cuprind mai multe procesoare pot fi: puternic cuplate (conectate la nivel de memorie, de exemplu multiprocesoare, clustere); slab cuplate (conectate la nivel de reea de calculatoare, de exemplu, multicalculatoare, griduri). Sistemele puternic cuplate sunt sisteme n care mai multe procesoare partajeaz aceeai memorie intern i folosesc acelai ceas intern. De exemplu, sistemele din clasa MIMD sunt sisteme puternic cuplate (multiprocesoarele i calculatoarele paralele masive). Sistemele slab cuplate sunt sisteme n care fiecare procesor are propria memorie i propriul ceas intern (grid).

14

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Sistemele informatice distribuite se mpart n dou clase: sisteme informatice distribuite omogene (bazate pe multiplicarea unor resurse identice, de exemplu unele multiprocesoare, MPP sau unele clustere); sisteme informatice distribuite eterogene (neomogene), de exemplu reeaua Internet, unele clustere, un sistem grid etc.

n practic se ntlnesc cel mai frecvent sistemele distribuite eterogene (neomogene) formate n general din componente eterogene: hardware local neomogen: echipamentele electrice i electronice fizice diferite, software local neomogen: programele de reea i procese care formeaz sistemul distribuit sunt fcute n diverse limbaje de programare, sistemele de operare din nodurile reelei pot fi diferite etc.; componente conceptuale neomogene: topologia reelelor care intr n alctuirea sistemului distribuit, modul de comunicare, sincronizare i coordonare ntre procese etc. 1.1.2. Caracteristici i avantaje specifice ale sistemelor distribuite Din modul de definire a sistemelor distribuite rezult cteva caracteristici de baz ale lor: concurena: se poate lucra simultan pe diferite computere din reea, eventual partajndu-se aceleai resurse (pagini web, fiiere, etc.); lipsa unui ceas global: exist limite n ceea ce privete capacitatea computerelor din reea de a-i sincroniza ceasurile interne; rezistena la erori: un defect n reea poate duce la izolarea unor computere, ns reeaua va funciona n continuare i de obicei programele care vor rula pe nodul deconectat nu vor detecta c a fost ntrerupt conexiunea sau c aceasta a devenit neobinuit de nceat, ba mai mult, nici celelalte noduri din sistem nu vor sesiza imediat c unul din noduri a czut. Proiectarea i utilizarea sistemelor informatice distribuite este argumentat de cteva avantaje specifice sistemelor distribuite: Facilitatea schimbului de informaii: creterea exponenial a cantitii de informaie i necesitatea de a schimba rapid informaii ntre diferitele puncte aflate n locuri geografice deprtate fac necesar conectarea ntre calculatoare autonome. Sistemele distribuite ofer faciliti de comunicare la distan: un sistem distribuit reprezint un mijloc eficient i comod de comunicare a unor informaii la distan, de

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

15

exemplu aplicaia Internet, prin intermediul creia se poate realiza comunicarea i corespondena electronic ntre indivizi aflai n locuri diferite (email, chat, forum), cu condiia ca expeditorul i destinatarul s se gseasc ntr-o reea conectat la Internet. Partajarea resurselor scumpe: o organizaie prefer s cumpere mai multe calculatoare mai ieftine i de puteri rezonabile n loc s cumpere unul performant i scump. Prin interconectarea acestor calculatoare mai mici ntre ele, eventual cu un numr redus de calculatoare mai puternice ale cror resurse (memorie, putere a procesorului, periferice de capaciti mari) s fie partajate ntre acestea; costul mririi capacitii unei astfel de reele este mult mai mic dect n cazul resurselor conectate la un singur calculator, fie el ct de performant; Fiabilitate mrit n funcionare: dac un sistem de calcul este format dintr-un singur calculator, defectarea acestuia face imposibil utilizarea ntregului sistem. La proiectarea unui sistem distribuit trebuie s inem seama de sigurana n funcionare a acestuia, astfel nct cderea unui nod s nu perturbe funcionarea sistemului n ansamblu, ci alte noduri vor prelua sarcinile nodului czut. ntr-un sistem distribuit avem aceast posibilitate datorit faptului c aplicaiile care se ruleaz ntr-un sistem distribuit sunt astfel concepute nct ele s nu sufere din cauza nefuncionrii corecte sau deloc a unor componente, respectiv procese. Creterea performanei prin paralelizarea calculului: existena mai multor procesoare ntr-un sistem distribuit face posibil reducerea timpului de realizare a unui calcul laborios prin mprirea sarcinilor ntre diferite procesoare, colectarea ulterioar a rezultatelor pariale i determinarea rezultatului final (acest procedeu este cunoscut sub numele de paralelizare a calculului). Deci, se obine timp de execuie redus pentru aplicaii paralele sau susceptibile de paralelizare; Specializarea nodurilor: proiectarea unui sistem de calcul autonom cu funcionaliti multiple este destul de dificil. Din motive practice; la proiectare sistemul se mparte n module, fiecare modul implementnd o parte din funcionaliti i comunicnd cu alte module; Scalabilitatea sau extensibilitatea: un sistem distribuit poate fi modificat relativ uor prin adugarea sau ndeprtarea unor noduri; Dintre principale dezavantaje putem aminti: exploatarea permanent a unor vulnerabiliti privind securitatea de ctre persoane ruvoitoare care lanseaz atacuri, programe maliioase, troieni, virui etc.; dependena utilizatorilor de furnizorii de servicii.

16

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Dificultatea construirii unor astfel de sisteme apare n momentul elaborrii algoritmilor de prelucrare ce sunt folosii n sistemele distribuite. Algoritmii utilizai n sistemele distribuite, pe lng faptul trebuie s fie coreci, flexibili i eficieni, trebuie s in cont de resursele care pot fi puse s lucreze n paralel i de modul de comunicare ntre acestea. Dezvoltarea unui algoritm distribuit difer esenial fa de dezvoltarea unui algoritm centralizat, mai ales datorit particularitii sistemelor distribuite, cum ar fi lipsa informaiilor despre starea global, lipsa unui timp global, nedeterminismul etc.

1.1.3. Midlleware Majoritatea sistemelor informatice actuale sunt sisteme deschise neomogene (eterogene), ale cror date si aplicaii coexist pe platforme hardware i software neomogene. Cu toate precauiile productorilor de hardware i software de a respecta anumite cerine generale pentru a facilita comunicarea ntre aceste platforme, este evident c sunt necesare o serie de programe de translatare de la o platform hardware sau software la alta. Acest lucru se face cu ajutorul unor programe intermediare sau midlleware (middle - de mijloc, intermediar, n limba englez). Conceptul midlleware joac un rol esenial n sistemele informatice distribuite eterogene. Aceste programe de traducere/ translatare trebuie s ndeplineasc o condiie esenial: transparena pentru utilizator. Se poate utiliza middlware orientat pe obiecte, care permite programatorului s creeze un model orientat pe obiecte al unei ntreprinderi i apoi s scrie aplicaiile care cer informaii din obiecte i nu din anumite surse de date. Cererea este coordonat de un Object Request Broker (ORB), adic un intermediar de cereri orientat pe obiecte, care reprezint un middleware. Middleware-ul de aplicaie execut operaiile de detaliu privind conexiunea dintre diferitele platforme hardware i software care trebuie s comunice ntre ele pentru a satisface cererile utilizatorului.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

17

1.2. Cerine n proiectarea unui sistem informatic distribuit


1.2.1. Eterogenitatea 1.2.2. Scalabilitatea 1.2.3. Securitatea 1.2.4. Tratarea erorilor 1.2.5. Deschiderea 1.2.6. Concurena 1.2.7. Transparena 1.2.1. Eterogenitatea Aceast caracteristic a sistemelor informatice distribuite se manifest la diverse nivele. Un sistem distribuit de tip intranet poate fi format din calculatoare eterogene. La rndul su, Internetul este compus din conectarea unor intraneturi i calculatoare eterogene, dar diferenele dintre ele sunt ascunse de faptul c se utilizeaz pentru comunicare aceleai protocoale. La nivel de hardware, tipurile de date, cum ar fi ntregii, de exemplu, au o reprezentare diferit n funcie de tipul de procesor folosit. De asemenea, la sistemele de operare, modul cum se face de pild schimbul de mesaje n UNIX este diferit de modul cum se face schimbul de mesaje n Windows. Eterogenitatea apare i la utilizarea limbajelor de programare i aplicaiilor diferite utilizate de diveri utilizatori. Pentru mascarea eterogenitii la nivelurile amintite mai sus se utilizeaz conceptul de arhitectur distribuit middleware, cele mai reprezentative fiind: CORBA (Common Object Request Broker Architecture); DCE (Distributed Computing Environment); DCOM (Distributed Component Object); Java RMI (Remote Method Invocation).

18

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

CORBA este un cadru standard de dezvoltare a aplicaiilor distribuite n medii eterogene, la elaborarea cruia au participat toate marile companii de soft, cu excepia Microsoft care i-a fcut produsul propriu DCOM, n care un sistem distribuit este alctuit din "clieni" ce utilizeaz diferite obiecte distribuite. Datorit diverselor modaliti de comportare a obiectelor n sisteme de operare diferite, CORBA lucreaz cu noiunea de "server" (fiecare obiect este asociat unui server). Rolul acestuia este de a include implementarea obiectelor asociate, modelul impunnd doar invocarea de ctre clieni a obiectelor de pe server i nu a serverului nsui. DCOM (Distributed Component Object) este soluia oferit de Microsoft, similar cu CORBA, pentru platforme Windows. Acesta permite un sistem de transmitere a mesajelor. Un model de comunicare ntre obiecte COM (Component Object Model), un model de document compus OLE (Object Linking and Embedding), cu servicii de comunicare ntre documente i gestiunea lor, ActiveX- pentru aplicaii Web. DCE (Distributed Computing Environment) este promovat de ctre OSF (Open Software Foundation). Facilitai oferite: thread-uri, apeluri de procedur la distan, servicii de directoare. Exist un standard gateway ntre DCE i CORBA prin care CORBA poate lucra peste DCE (protocolul DCE CIOP). Diferena dintre DCE si CORBA const n stilurile de programare adoptate: CORBA folosete un model obiectual, DCE are la baz un model procedural n care se folosesc apeluri la distan (RPC - Remote Procedure Call). Java RMI (Remote Method Invocation) a fost dezvoltat de Sun Microsystem. Interfaa de programare Java RMI se caleaz perfect pe modelul orientat obiect oferit de Java, unde se pot crea obiecte ale cror metode pot fi invocate din alte maini virtuale. Aici intervine conceptul de cod mobil, ce desemneaz codul care poate fi trimis de pe o maina pe alta i ruleaz la destinaie (de exemplu apleturile Java). Pentru a putea rula este nevoie de existena unei maini virtuale. Relaia ntre Java RMI i CORBA este mai mult una de complementaritate dect de concuren, ns se poate vorbi de o adevrat rivalitate ntre Java/CORBA pe de o parte i DCOM, pe de alt parte. 1.2.2. Scalabilitatea Scalabilitatea a fost introdus la nceput pentru compararea sistemelor paralele. n aceast accepiune scalabilitatea nseamn modificarea liniar a performanelor unui sistem, adic nu se produce o modificare semnificativ a

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

19

performanelor odat cu modificarea numrului sau calitii resurselor instalate (numr de procesoare sau procesoare mai rapide, capacitatea memoriei etc.). Un calculator paralel de tip multiprocesor cu memorie comun asigur scalabilitatea numai pn la aproximativ 30 de procesoare. n plus, costurile sistemelor paralele sunt prea mari raportate la ciclul de via, motiv pentru interesul s-a deplasat spre sisteme distribuite eterogene, formate din colecii de PC-uri, staii de lucru, supercalculatoare, multiprocesoare, MPP (Masssively Parallel Processors) i reele de calculatoare. Vom considera c un sistem distribuit eterogen este scalabil, dac funcionarea sa nu este afectat atunci cnd se modific semnificativ numrul i tipul de resurse, precum i numrul de utilizatori. Dei numrul de utilizatori de Internet crete drastic n fiecare an, totui sistemul distribuit i eterogen Internet rmne scalabil. Din punctul de vedere al programrii, marele avantaj al scalabilitii este urmtorul: creterea n timp a complexitii unei aplicaii sau mrirea dimensiunii sale nu prezint nici o problem pentru programator, dac sistemul pe care se execut este scalabil. Pentru ca un sistem distribuit s fie scalabil, la proiectarea sa trebuie gsite soluii la probleme ca: controlul costului resurselor fizice: pentru ca un sistem cu n utilizatori s fie scalabil, cantitatea de resurse fizice trebuie s fie n jur de O(n); controlul pierderii performanelor: creterea dimensiunii duce n general la scderea performanelor, deci trebuie gsite soluii pentru ca aceast scdere s fie semnificativ ; prevenirea cderii resurselor software; evitarea strangulrilor: un exemplu de strangulare se ntlnea la predecesorul DNS-ului actual cnd tabelul era inut ntr-un singur fiier master care putea fi downloadat de oricine avea nevoie, dar situaia s-a complicat cnd numrul de computere din reea a nceput s creasc. Rezolvarea problemei scalabilitii este una foarte important i dificil n domeniul sistemelor distribuite. n mod ideal un sistem nu ar trebui modificat atunci cnd numrul de utilizatori sau de resurse cresc, dar acest lucru este greu de realizat. Ca soluii de ameliorare a scalabilitii s-au propus: replicarea datelor, tehnici de cashing, crearea de taskuri similare care sa funcioneze

20

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

concurent, crearea de servere care s conlucreze pentru rezolvarea anumitor taskuri etc. 1.2.3. Securitatea Exist trei concepte fundamentale de securitate a informaiei: 1. Atac de securitate: orice aciune care poate compromite securitatea informaiilor dintr-un sistem; 2. Mecanism de securitate: mijloc pentru detectarea i prevenirea atacurilor de securitate; 3. Serviciu de securitate: monitorizeaz atacurile i declaneaz mecanismele de securitate adecvate. Principalele atacuri de securitate, pasive sau active, asupra unui sistem informatic distribuit (n special n reelele de calculatoare) sunt: 1. ntreruperea: un element al sistemului este scos din uz (distrugerea unei piese hardware sau compromiterea unei linii de comunicaie); 2. Intercepia: o entitate neautorizat (o persoan sau un program) are acces n sistem, putnd captura date sau copia fiiere i programe; 3. Modificarea: o entitate neautorizat poate modifica coninutul mesajelor transmise sau poate schimba date n fiiere; 4. Falsificarea: o entitate neautorizat poate s nsereze mesaje false n reea sau s adauge nregistrri false n fiierele de date. Atacurile pasive dintr-o reea de calculatoare doar spioneaz (studiaz i monitorizeaz) activitatea din sistem, fr a face modificri asupra fiierelor sau a mesajelor transmise i din acest motiv sunt foarte greu de depistat. Se cunosc dou tipuri de atacuri pasive: atacuri care intercepteaz coninutul mesajelor transmise n reea, atacuri care analizeaz traficul n reea, putnd determina locaiile sursei i destinatarului, frecvena i lungimea mesajelor etc. Atacurile active pot fi de grupate n patru categorii: Mascarada: o entitate se prezint ca fiind o alt entitate, de exemplu o entitate cu drepturi mai puine n sistem poate s pretind c este o alta cu mai multe privilegii; Retransmiterea: dup capturarea pasiv a datelor, acestea sunt retransmise pentru a produce un efect neautorizat; Modificarea mesajelor: poriunea unui mesaj poate fi modificat astfel nct s produc efecte de modificare a autorizrii iniiale, de exemplu, mesajul se permite lui Dorin Ifrim s citeasc fiierul

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

21

confidenial accounts, se poate modifica n se permite lui Dan Ivan s citeasc fiierul confidenial accounts; Refuzul de servicii (denial of service): o entitate neautorizat poate suspenda drepturile de acces a unei alte entiti autorizate sau poate suprancrca reeaua cu mesaje de bruiaj, sczndu-i astfel performanele.

Serviciile de securitate a unei resurse (computer, baz de date, fiier, imprimant etc.) aflate ntr-un sistem distribuit vizeaz urmtoarele aspecte: Confidenialitatea: protecia datelor mpotriva atacurilor pasive (de la protecia fizic la algoritmi matematici); Controlul accesului: dreptul de acces la resurs doar pentru utilizatorii autorizai pe baz de username i parol i protecie mpotriva accesului neautorizat; Integritatea: protecie mpotriva manipulrii de date (alterrii sau coruperii) resursei prin programe maliioase lansate de o entitate neautorizat; Disponibilitatea: protecie mpotriva interferenelor atunci cnd se dorete accesarea unei resurse la care avem drept de utilizare i asigurarea c datele, aplicaiile sau programele sunt ntotdeauna disponibile pentru entitile autorizate; Autenticitatea: dou entiti se pot identifica una pe alta prin asigurarea la iniierea comunicaiei c cele dou entiti sunt autentice i protecia mpotriva interferrii unei a treia entiti neautorizate pe parcursul comunicaiei, care ar putea pretinde c este una din cele dou entiti autorizate; Nerepudierea: previne ca nici o entitate s nu refuze recunoaterea faptului c a beneficiat de un serviciu executat, de exemplu, cnd un mesaj este trimis, se poate demonstra de ctre destinatar c mesajul primit este cel trimis de emitor, respectiv emitorul poate demonstra c destinatarul a primit mesajul trimis de emitor. Informaii suplimentare despre securitatea datelor i sigurana comunicaiilor. tiina care se ocup de studiul siguranei comunicaiilor se numete criptologie. Criptologia are dou ramuri: Criptografia: studiaz algoritmii de criptare i decriptare pentru asigurarea secretizrii i autenticitii mesajelor (poate fi simetric - cu cheie secret sau asimetric cu chei publice); Criptanaliza: studiaz spargerea cifrurilor pentru refacerea informaiilor.

22

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Mecanismele de securitate stabilite de OSI (Open System Interchange) sunt: Criptarea: se utilizeaz pentru asigurarea confidenialitii i are rolul de a transforma datele, astfel nct s devin inteligibile numai de ctre entitatea autorizat; Mecanismul de semntur digital: are scopul de a confirma c datele au fost produse chiar de semnatar (cuprinde mecanismul pentru producerea semnturii i mecanismul pentru verificarea semnturii); Mecanismul de integritate a datelor: este menit s asigure integritatea datelor n timpul transmisiei, adic asigurarea faptului c n timpul transmisiei datele nu pot fi terse sau amestecate (la expediere, expeditorul adaug o informaie adiional ce depinde numai de datele transmise, iar la recepie, receptorul genereaz aceeai informaie adiional i o compar cu cea primit); Mecanismul de control al accesului: controlul accesului la resurse a entitilor prin mecanisme bazate pe una sau multe din urmtoarele instrumente: lista drepturilor de acces, parole, etichete de securitate, durata accesului, timpul de ncercare a accesului, calea de ncercare a accesului; Mecanismul de autentificare a schimbului: const n parole sau tehnici criptografice menite s dovedeasc identitatea entitilor (la expediere, expeditorul adaug o informaie adiional ce depinde numai de datele transmise, iar la recepie, receptorul genereaz aceeai informaie adiional i o compar cu cea primit); Mecanismul de control al rutrii: informaiile sunt dirijate pe baza unui protocol prestabilit sau pe baza unuia dinamic pe rutele considerate mai sigure; Mecanismul de umplere artificial a traficului: ajut la protecia mpotriva analizei traficului i const n una din urmtoarele procedee: generarea unui trafic fals, umplerea pachetelor de date transmise cu date redundante; transmiterea de pachete i spre alte destinaii n afara celei vizate; Mecanismul de notariat: implic existena unui mecanism de arbitraj, numit notar, n care au ncredere toate entitile, cu scopul obinerii de garanii n privina autenticitii i integritii. Principalele soluii de securitate relativ la informaiile din Internet sunt: la nivel de reea: s-a dezvoltat o arhitectur de securitate la nivel de IP i la nivel de protocolul TCP/IP (Transmision Control Protocol/ Internet Protocol);

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

23

la nivel de sesiune: se folosete deseori protocolul SSL (Secure Sockets Layer), care ofer servicii de securitate chiar deasupra nivelului TCP, folosind criptosisteme cu chei publice i secrete, astfel nct s asigure confidenialitatea, integritatea i autenticitatea clientului sau serverului din sistem.

1.2.4. Tratarea erorilor Un procesor/computer din reea poate eua n mod independent de celelalte. De aceea fiecare component din sistem trebuie s in cont de faptul c o alt component de care depinde poate eua i s fie capabil s gseasc o soluie n caz de avarie. Iat cteva tehnici folosite pentru tratarea erorilor: 1. Detectarea erorilor (care pot fi detectate). De exemplu, utilizarea sumei de control poate fi folosit pentru a verifica dac nite date au fost corupte. Sunt i erori care sunt greu de detectat, de exemplu cderea la distan a unui server, marea provocare fiind de a gsi soluii n cazul de erori care nu pot fi detectate cu precizie, ci doar suspectate. 2. Mascarea erorilor (unele erori care pot fi detectate pot fi ascunse sau gsite soluii de ameliorare a lor). Exemplu de situaii de ascundere a erorilor : un mesaj poate fi retransmis atunci cnd transmisia sa a euat; unui fiier i se poate pstra o copie pe un alt suport i dac o variant a fost corupt se poate folosi varianta buna pus la pstrare. 3. Tolerana la erori. De exemplu, un browser Web performant care nu poate intra n contact cu un server, informeaz utilizatorul asupra problemei i nu l face s atepte indefinit. 4. Recuperarea datelor. Sistemul trebuie astfel proiectat nct datele s poat fi recuperate dup ce serverul a czut. 5. Redundana. Serviciile dintr-un sistem distribuit trebuie s fie tolerante la erori prin folosirea unor tehnici de redundan (multiplicare a datelor i cilor de comunicare). De exemplu, ntre dou rutere din Internet ntotdeauna trebuie s existe minim dou ci de acces diferite. n Domain Name Service (DNS), fiecare tabel se gsete pe cel puin dou servere diferite, o baz de date poate fi replicat pe mai multe servere (atunci cnd un server cade utilizatorul este redirectat ctre serverul care funcioneaz).

24

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

1.2.5. Deschiderea Termenul de deschidere (openness) este caracteristica unui sistem care indic, dac el poate fi extins i implementat n moduri diferite. Deschiderea pentru un sistem distribuit se refer n primul rnd la disponibilitatea de adugare i publicarea de noi servicii de partajare a resurselor (interfeele crora devin publice). Sistemele distribuite deschise sunt bazate pe asigurarea unui mecanism uniform de comunicare i publicare a interfeelor pentru accesul la resursele partajate n mod transparent. Sistemele distribuite pot fi constituite din entiti eterogene, dar trebuie s se asigure buna funcionare a acestora n cadrul SD. Marea provocare a deschiderii const n integrarea componentelor scrise de utilizatori diferii. 1.2.6 Concurena ntr-un sistem distribuit exist posibilitatea ca o aceeai resurs partajat s poat fi accesat de mai muli utilizatori simultan. O soluie limitativ i greu acceptabil ar fi ca mecanismul care face managementul resursei s serveasc numai cte un client odat. n general ns aplicaiile n sistemele distribuite sunt construite pentru a putea deservi mai muli clieni simultan (multiprocessing, multitasking etc.). Pentru ca un obiect s fie sigur ntr-un mediu concurent, operaiile asupra lui trebuie s poat fi sincronizate astfel nct s avem date consistente pentru fiecare utilizator. Acest lucru se poate obine prin tehnici standard de sincronizare, cum ar fi semafoarele. 1.2.7. Transparena Un sistem este transparent atunci cnd este perceput ca un ntreg i nu ca o simpl colecie de componente independente i eterogene. Exist mai multe tipuri de transparen: 1. Acces transparent: permite ca resursele remote i cele locale s poat fi accesate prin aceleai operaii; 2. Transparena localizrii: face posibil accesarea resurselor fr s se tie unde sunt localizate; 3. Transparena concurenei: permite ca mai multe procese s opereze concurent folosind resursele partajate fr s interfereze ntre ele;

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

25

4. Transparena replicrii: ofer posibilitatea ca mai multe instane a unei resurse s poat fi folosite, mrindu-se astfel performana i robusteea; 5. Transparena erorilor: faciliteaz ascunderea erorilor, permind utilizatorilor s-i rezolve task-ul chiar dac apar erori software sau hardware; 6. Mobilitate transparent: face posibil mobilitatea resurselor i a clienilor n SD fr s fie afectat operaionalitatea; 7. Performana transparent: permite SD s poat fi reconfigurat pentru a-i se mbunti performanele; 8. Scalabilitate transparent: permite extinderea SD fr s fie nevoie de schimbarea structurii sistemului sau a algoritmilor folosii.

26

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

1.3. Exemple remarcabile de sisteme informatice distribuite


1.3.1. Reele de tip internet: SIPRNET, FidoNet, Internet 1.3.2. Intranet i extranet 1.3.3. Nomadic computing i ubiquitous computing 1.3.4. Internet2 1.3.5. PlanetLab

1.3.1. Reele de tip internet: SIPRNET, FidoNet, Internet Cuvntul internet provine din concatenarea prescurtrilor a dou cuvinte englezeti, interconnected (interconectat) i network (reea) i desemneaz o reea de mari dimensiuni format prin interconectarea mai multor reele autonome eterogene. Astfel, substantivul comun internet (cu minuscul) desemneaz n general o reuniune de reele, vzut ca o reea unitar, mpreun cu informaia i serviciile care sunt oferite utilizatorilor prin intermediul acestei reele (Web, E-Mail, FTP etc.). Exemple de reele mari de tip internet sunt Secret Internet Protocol Router Network (SIPRNET), vezi http://www.fas.org/irp/program/disseminate/siprnet.htm; FidoNet, vezi http://www.fidonet.org/ ; Internet, vezi http://www.internet.com/ . Cea mai mare, mai notorie i uzual dintre reele de tip internet la ora actual (n 2006, dar lucrurile evolueaz incredibil de rapid) este numit Internet (nume propriu, scris cu majuscul), adic super-reeaua mondial unic de computere, interconectate prin protocolul IP/TCP. Precursorul Internetului dateaz din 1965, cnd Defence Advanced Research Projects Agency (DARPA) din SUA a creat prima reea de computere interconectate sub numele Arpanet. Super-reeaua Internet de azi a rezultat din extinderea reelei Arpanet. Att Internetul sau The NET (Reeaua), cum i se mai spune n lume, ct i alte reele mai mici de tip internet sunt exemple de sisteme informatice distribuite. Astfel, prin Internet multe resursele dint-o anumit locaie geografic pot fi partajate (exploatate n comun) de ctre utilizatori din cele mai diverse locuri geografice. De exemplu, varianta online a publicaiei International

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

27

Journal of Computers, Communications and Control (IJCCC), a crui baz de date se afl pe serverul Universitii AGORA, la adresa www.journal.univagora.ro, este citit simultan de ctre cititori din Romnia, SUA, India, China, Canada etc. De asemenea, oricine dispune de un nume de user i o parol pentru administrarea bazei de date a IJCCC, poate face modificri n aceasta baz de date de la orice computer din lume care este conectat la Internet. Utiliznd n Internet aplicaia distribuit WWW, putem deschide diverse pagini web, de exemplu pagina web a Universitii Babe-Bolyai din Cluj Napoca se afl la adresa http://www.ubbcluj.ro/, iar a Universitii Agora Oradea la adresa http://www.univagora.ro.

1.3.2. Intranet i extranet Un alt exemplu de sistem distribuit (SD) este intranetul, care este o reea particular cu aceleai principii de funcionare ca i Internetul, dar cu acces restrns, de exemplu intranetul sau intraneturile unei firme particulare. Un intranet este o reea nchis sau o sub-reea dintr-un internet sau chiar din Internet care este administrat autonom i pentru care exista un sistem de securitate local. Un intranet poate fi format din mai multe reele de tip Local Area Network (LAN), legate ntre ele prin anumite sisteme de comutare. Un intranet poate fi conectat la Internet printr-un router , care permite utilizatorilor din intranet s utilizeze servicii ca Web, FTP sau EMAIL. De asemenea permite utilizatorilor din exterior (din Internet) s acceseze servicii pe care le pune eventual la dispoziie intranetul. Pentru a se proteja de diferite atacuri maliioase, sunt utilizate soft-uri de tip firewall, care previn utilizatorul c anumite mesaje neautorizate ncearc s intre sau s plece. Un firewall este implementat s filtreze anumite mesaje conform unor criterii, de exemplu el permite trecerea doar a mesajelor legate de pota electronic. Tot mai multe organizaii investesc n intranet i n diverse sisteme informatice/informaionale integrate, de tip ERP (Enterprise Planning Resource) sau sisteme expert pentru asistarea deciziei. ntr-o baz de date comun i unic se gsesc toate informaiile necesare angajailor i managerilor, unele fiind disponibile i partenerilor sau chiar publice. Exist organizaii care din motive de securitate, pentru a preveni spionajul prin mijloace informatice, nu doresc conectarea intraneturilor lor la Internet (anumite organizaii militare, unele centre de cercetare, etc).

28

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Extranetul este un intranet particular al unei firme, la care ns au acces limitat i anumite persoane sau grupuri din exterior, din alte firme, ca de exemplu de la firme-furnizor sau firme-client.

1.3.3. Nomadic computing i ubiquitous computing n lumea sistemelor informatice distribuite un rol deosebit l au n prezent dispozitivele miniaturizate i reelele wireless. De exemplu, cu ajutorul unui laptop sau chiar a telefonului mobil, printr-o conexiune de tip wireless ne putem conecta aproape de pretutindeni la intranetul home i putem utiliza resursele de acolo (de pe calculatorul de acas sau de la serviciu). Putem vorbi astfel de un calcul mobil (nomadic computing). Ubiquitous computing promoveaz ideea aparent opus, computere omniprezente, adic s existe computere conectate la internet n locuri n care exist indivizi obligai s stea un timp mai lung sau mai scurt (imobilizai acas sau n spitale, n staiuni turistice, n gri i aeroporturi etc.), pe care indivizii le pot accesa pentru a comunica sau pentru a accesa anumite informaii din exterior. De exemplu, de la calculatorul de acas conectat la Internet, putem accesa diverse informaii de la serviciu sau putem citi presa din Bucureti sau Londra, sau putem coresponda prin email sau online cu orice persoan din lume care dispune de aceleai faciliti. n afar de laptopuri i de telefoanele mobile performante, amintim imprimantele inteligente, ceasurile inteligente, PDA (Personal Digital Assistant), camere video digitale, iPOD-uri, care contribuie la dezvoltarea tot mai expansiv a calculului nomadic.

1.3.4. Internet2 Sursa: http://www.internet2.edu/ Internet2 este cel mai avansat consoriu de networking din SUA organizat pe principiul non-profit. nfiinat de comunitatea de cercetare i educaie ncepnd cu anul 1996, Internet2 are n vedere dezvoltarea de aplicaii i tehnologii de reea avansate, cu scopul de a accelera modernizarea Internetului i utilizarea tehnologiilor sale revoluionare. n afar de implicarea a peste 200 de universiti din SUA, Internet2 promoveaz colaborarea cu peste 70 mari corporaii (Microsoft, IBM, CISCO, SUN, ...) i organizaii, precum i 45 organizaii guvernamentale americane (laboratoare de cercetare, departamente guvernamentale etc.). De asemenea, la acest proiect colaboreaz peste 50 de parteneri din afara granielor SUA.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

29

Din punct de vedere practic, Internet2 nu este o reea fizic separat i aceast reea nu-i propune s nlocuiasc omniprezentul Internet. Ideea pe care se merge este c pe platforma Internet existent deja, prin colaborarea universitilor, institutelor de cercetare i companiilor s se accelereze procesul de dezvoltare de noi tehnologii i aplicaii. Pare incredibil, dar prin Internet2 se ating viteze de transfer de 20.000 de ori mai mari dect printr-o conexiune tradiional dial-up! Experimentele efectuate au demonstrat c, de exemplu, o copie a DVD-ului cu filmul The Matrix poate fi downloadat n aproximativ 30 de secunde utiliznd Internet2, proces care pe Internet la o conexiune de vitez medie ar putea dura circa 15-20 de ore. n ce msura vor fi avantajai utilizatorii casnici de facilitile pe care le ofer sau le va oferi Internet2? La nceputurile sale, Internetul avea doar cteva mii de utilizatori, fiind axat pe interconectare ntre supercalculatoare, acces de la distan i transfer de fiiere. Azi exist sute de milioane de utilizatori, iar serviciile principale utilizate sunt e-mailul, chatul, transmisii video i tehnologii P2P sau VoIP. n viitor se ateapt creterea drastic a numrului de utilizatori i a dispozitivelor dedicate, convergena aplicaiilor multimedia: chat, telefonie, video-conferine sau HDTV (HighDefinition TeleVision). Cine se conecteaz la Internet2? Evident c deocamdat universitile, organizaiile i cei care au acces la aceasta reea ca parteneri n consoriu. Dac dorim s aflm, dac computerul nostru este conectat la Internet2, se poate afla acest lucru fr dificultate folosind un applet Java de la adresa http://detective.internet2.edu/applet/index.html.

1.3.5. PlanetLab Sursa: http://www.planet-lab.org/ PlanetLab era la sfritul anului 2006 format dintr-o reea de 723 maini distribuite pe tot globul, fiind gzduit de 353 situri, de pe cuprinsul a peste 25 de ri. Majoritatea mainilor este gzduit de institute de cercetare, dei unele din ele sunt gzduite n co-locaie i cu diverse centre de rutare (cum ar fi Internet2 Abilene backbone). Toate mainile sunt conectate la Internet, inta PlanetLab fiind de a crete la peste 1000 numrul nodurilor n majoritatea dintre importantele zone regionale ale backbonurilor de Internet. PlanetLab are mai multe aspecte, despre care se pot afla mai multe informaii citind urmtoarele dou articole, care se pot descrca de pe pagina oficial a PlanetLab: http://www.planet-lab.org/:

30

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

[PAC+02] : Larry Peterson, Tom Anderson, David Culler, and Timothy Roscoe, A Blueprint for Introducing Disruptive Technology into the Internet, Proceedings of the First ACM Workshop on Hot Topics in Networking (HotNets), October 2002. [BBC+04]: Andy Bavier, Mic Bowman, Brent Chun, David Culler, Scott Karlin, Steve Muir, Larry Peterson, Timothy Roscoe, Tammo Spalink, and Mike Wawrzoniak, Operating System Support for Planetary-Scale Services, Proceedings of the First Symposium on Network Systems Design and Implementation (NSDI), March 2004.

Primul din aceste articole prezint viziunea iniial despre PlanetLab, iar al doilea descrie principiile de organizare i arhitectura sa. Mai multe informaii se pot afla citind PlanetLab Design Notes (PDNs), care se pot descrca de la pagina http://www.planet-lab.org/PDN/. PlanetLab este o reea de servicii de calcul i o baz de testare deschis i global pentru dezvoltarea noilor tehnologii Internet. Dup cum vom prezenta mai jos, cele mai importante centre de cercetare i universiti din lume sunt deja membre ale PlanetLab, inclusiv: AT&T Labs, Cambridge University, France Telecom, HP, NEC Labs, Princeton University, UC Berkeley, alturi de centre educaionale din Brazilia, Canada, China i organizaia Internet2. n 2004, Intel Corporation a descris schimbrile semnificative care ar trebui implementate pentru ca infrastructura Internetului s devin mai sigur, mai fiabil, mai eficient i mai accesibil. Vicepreedintele senior al Intel, Pat Gelsinger, a afirmat c prin adugarea la Internet a unei reele de servicii care conine resurse de calcul i stocare, industria poate aduga un plus de inteligen n i de-a lungul reelei nucleu. Acest lucru ar transforma Internetul ntr-o vast platforma care gzduiete servicii disponibile celor peste ase miliarde de locuitori ai Terrei. Gelsinger s-a referit la posibilitatea de a oferi servicii pe scar mondiala a Internetului, care s detecteze i s alarmeze n legtur cu atacurile viruilor, s redirecioneze traficul reelei pentru a se evita nodurile lente, pentru a uura accesul utilizatorilor din regiunile n care furnizarea electricitii lipsete sau nu este de calitate. Gelsinger a apelat la industria si potenialii utilizatori ai serviciului pe scar planetar s ajute la crearea unui Internet mai detept prin alturarea la PlanetLab Consortium. n sublinierea provocrilor de a mbunti serviciile Internetului, lui Pat Gelsinger i s-a alturat i printele Internetului Vint Cerf, vicepreedinte senior al strategiei tehnologice MCI. Pentru a oferi serviciile Internetului miliardelor de noi utilizatori, cercettorii industriali propun o nou generaie de dispozitive operate de baterii la preuri reduse care pot fi folosite n regiuni

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

31

defavorizate, unde nu se pot folosi calculatoarele tradiionale datorit lipsei de electricitate. S-a descris modul n care serviciile la scar global ar putea ajuta aceti utilizatori prin suportul a noi tipuri de conexiuni i stocare in-network, care pot opri ntreruperile i ntrzierile n tranzacii. Un alt serviciu inteligent propus ar fi trans-codarea, adic capacitatea reelei de a converti de a lungul reelei coninutul ntr-o forma potrivit diverselor dispozitive. Urmtoarele instituii gzduiau la sfritul anului 2006 sau i propuneau s gzduiasc n viitor noduri aparinnd PlanetLab, cf. http://www.planet-lab.org/php/institutions.php :

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.

Academia Sinica Taiwan ADETTI/ISCTE American University of Beirut Architecture Technology AT&T LabsResearch Bar-Ilan University BeiHang University Beijing Institute of Technology, Intelligent Information Network Lab Ben-Gurion University of the Negev Birkbeck University of London Boston University Brigham Young University California Institute of Technology CANARIE Canarie Calgary Canarie Halifax Canarie Montreal Canarie Ottawa Canarie Toronto Canarie Winnipeg Carnegie Mellon University Case Western Reserve University Centre for Development of Advanced Computing CERNET - Fudan University Centro Nacional de Calculo Cientifico Universidad de Los Andes CERNET - Harbin Institude of Technology

27. CERNET - Huazhong University of Science & Technology 28. CERNET - Jilin University 29. CERNET 30. CERNET - Beihang University 31. CERNET - Beijing Jiao Tong University 32. CERNET - Beijing University of Posts and Telecommunications 33. CERNET - Central South University 34. CERNET - Chongqing University 35. CERNET - Dalian University of Technology 36. CERNET - Lanzhou University 37. CERNET-MSR Joint Lab, Tsinghua University 38. CERNET - Northeast University 39. CERNET - Peiking University 40. CERNET - Shandong University 41. CERNET - Shanghai Jiao Tong University 42. CERNET - South China University of Technology 43. CERNET - Southeast University 44. CERNET - Tianjin University 45. CERNET - Tongji University 46. CERNET - Tsinghua University 47. CERNET - University of Electronic Science & Technology of China

32

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

48. CERNET - University of Science & Technology of China 49. CERNET - Xiamen University 50. CERNET - XiAn Jiao Tong University 51. CERNET - Zhejiang University 52. CERNET - Zhengzhou Univeristy 53. CESNET - Czech Education and Research Network 54. Chinese Academy of Sciences, Computer Network Information Center 55. Chinese University of Hong Kong 56. Chungnam National University 57. City College of the City University of New York 58. Collegium Budapest 59. Colorado State University 60. Columbia University 61. Cornell University 62. CSLab - Institute of Communication and Computer Systems of National Technical University of Athens 63. Darmstadt University of Technology 64. Dartmouth College, Computer Science 65. Datalogisk Institut Copenhagen 66. Delft University of Technology 67. Department of Electrical Engineering, National Taiwan University 68. DePaul University 69. Dept. of Computer Science, National Chengchi University 70. Dipartimento di Informatica di Torino 71. Duke University 72. Ecole Nationale Superieure des Telecommunications 73. ERNET India 74. ETH Zuerich

75. Eurecom Institute 76. Forschungsgemeinschaft elektronische Medien e.V. (FeM) 77. France Telecom R&D 78. France Telecom R&D Lannion 79. Fraunhofer-Institute for Telecommunications Heinrich-Hertz-Institut 80. Fraunhofer Institut fur Technound Wirtschaftsmathematik 81. Friedrich-Alexander University Erlangen-Nuremberg 82. Fu Jen Catholic University 83. George Mason University 84. Georgetown University 85. Georgia Institute of Technology 86. GIST 87. Google 88. Haifa University 89. Harvard University 90. Helsinki Institute for Information Technology 91. Helsinki Institute of Physics 92. Howard University 93. HP Brazil - RandD 94. HP Labs 95. HP Labs, Bristol 96. HP Labs, Cambridge 97. HP Labs, Internet 2 98. IBBT - Ghent University 99. IIS, UniBw Munich 100. Illinois Institute of Technology 101. Imperial College London ISN 102. Indiana University (Bloomington) 103. Indian Institute of Information Technology, Bangalore 104. Indian Institute Of Technology Bombay

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

33

105. Indian Institute of Technology Delhi 106. Indian Institute of Technology Roorkee 107. Information and Communications University 108. INRIA Sophia Antipolis 109. Institute for Applied Supercomputing, California State University San Bernardino 110. Instituto de Pesquisa Tecnologicas de So Paulo 111. Instituto Superior Tecnico 112. Inst. of Computer Science, Foundation for Research and Technology - Hellas 113. Intel IT - Folsom 114. Intel Labs - Oregon 115. Intel Leixlip 116. Intel - Nizhny Novgorod 117. Intel Research at Seattle 118. Intel Research Berkeley 119. Intel Research Pittsburgh 120. International University Bremen 121. Internet2 122. Internet2 - Atlanta 123. Internet2 - Chicago 124. Internet2 - Denver 125. Internet2 Houston 126. Internet2 - Indianapolis 127. Internet2 - Kansas City 128. Internet2 - Los Angeles 129. Internet2 - New York 130. Internet2 - Seattle 131. Internet2 - Sunnyvale 132. Internet2 - Washington 133. Interxion Frankfurt 134. Iowa State University Electrical and Computer Engineering

135. ITEC, Klagenfurt University 136. Japan Advanced Institute of Science and Technology (JAIST) 137. Japan Gigabit Network II 138. Johns Hopkins CNDS 139. Johns Hopkins Information Security Institute 140. KAIST 141. Kansas State University 142. Keio University 143. KREONET at KISTIDAEJON 144. Laboratoire d'Informatique de Paris 6 145. Lancaster University 146. LARC - University of Sao Paulo 147. Lawrence Berkeley National Laboratory 148. Learning Lab Lower Saxony (L3S) University of Hannover 149. Massachusetts Institute of Technology 150. Max Planck Institute for Software Systems 151. McGill University 152. MCI GRID Lab 153. Michigan State University 154. Monash University - DSSE 155. Moscow Institute of Physics and Technology 156. Moscow State University 157. Moscow State University, Chemistry

34

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

158. Munich University of Technology 159. Nara Institute of Science and Technology, Graduate School of Information Science 160. National Institute of Information and Communications Technology 161. National Taiwan University, Department of Information Management 162. National Tsing Hua University 163. National University of Singapore 164. NEC Laboratories 165. New York University 166. Nizhny Novgorod State University 167. North Carolina AT State University 168. North Carolina State University 169. Northeastern University CCIS 170. Northwestern University at Illinois 171. Ohio State University 172. Oklahoma State University (Tulsa) 173. Orbit 174. Oregon State University School of Electrical Engineering and Computer Science 175. Packet Clearing House - San Francisco 176. Penn State University 177. PlanetLab Central 178. PlanetLab Colo - AMST 179. PlanetLab Colo - McLean, VA 180. PlanetLab Colo - NICT JGN2 Fukuoka

181. PlanetLab Colo - NICT JGN2 Hiroshima 182. PlanetLab Colo - NICT JGN2 Kochi 183. PlanetLab Colo - NICT JGN2 Nagoya 184. PlanetLab Colo - NICT JGN2 Okayama 185. PlanetLab Colo - NICT JGN2 Osaka 186. PlanetLab Colo - NICT JGN2 Sendai 187. PlanetLab Colo - Santa Clara 188. PlanetLab Colo - SJCE 189. PlanetLab Colo - Sterling, VA 190. PlanetLab Colo - TP Gdansk 191. PlanetLab Colo - TP Piotrkow Trybunalski 192. PlanetLab Colo - TP Poznan 193. PlanetLab Colo - TP Warsaw 194. Politecnico di Milano - Dip. di Elettronica e Informazione 195. Politecnico di Torino 196. Polytechnic University 197. Princeton 198. Princeton - DSL 199. Public Broadcasting Service 200. Purdue 201. Queen Mary, University of London 202. Rensselaer Polytechnic Institute 203. Reykjavik University Network Laboratory 204. Rice University

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

35

205. RNP 206. RNP Ceara 207. RNP - Rio de Janeiro 208. RNP - Rio Grande do Sul 209. Royal Institute of Technology (KTH), Sweden 210. Rutgers University 211. RWTH Aachen 212. San Jose State University 213. Seoul National University 214. Simon Fraser University 215. Simula Research Laboratory 216. Singapore Advanced Research and Education Network 217. Stanford University 218. Stevens Institute of Technology 219. Stony Brook University 220. Swedish Institute of Computer Science 221. Swiss Federal Institute of Technology Lausanne (EPFL) 222. SwRI/UT San Antonio 223. Technical University Ilmenau 224. Technical University of Madrid 225. Technion - Israel Institute of Technology 226. Technische Universitaet Dresden 227. Technische Universitat Berlin 228. Tel-Aviv University 229. Telecom Italia Learning Services 230. Telecommunications Research Laboratory 231. Telekomunikacja Polska R&D at Krakow

232. Telekomunikacja Polska R&D at Olsztyn 233. Telekomunikacja Polska R&D at Piotrkow Trybunalski 234. Telekomunikacja Polska R&D at Swidnik 235. Telekomunikacja Polska R&D at Warsaw 236. Texas AM University 237. The Hebrew University of Jerusalem 238. The Hong Kong University of Science and Technology 239. The University of Hong Kong 240. Trinity College Dublin 241. UC Berkeley - DSL 242. UCLA - EE 243. UC Santa Cruz 244. Universidad Complutense de Madrid 245. Universidade Federal de Campina Grande - Laboratrio de Sistemas Distribudos 246. Universidade Federal de Minas Gerais 247. Universit degli Studi di Napoli 248. Universita' di Roma 249. Universitat Politenica de Catalunya 250. Universitat Rovira i Virgili 251. Universite catholique de Louvain 252. Universite de Montreal 253. University College Dublin 254. University College London

36

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

255. University of Arizona 256. University of Basel, Switzerland 257. University of Bern, IAM 258. University of Bologna 259. University of British Columbia 260. University of Calgary 261. University of California at Berkeley 262. University of California at Los Angeles 263. University of California at San Diego 264. University of California at Santa Barbara 265. University of California, Davis 266. University of California, Irvine 267. University of California, Riverside 268. University of Cambridge 269. University of Canterbury, New Zealand 270. University of Central Florida EECS 271. University of Chicago 272. University of Cincinnati 273. University of Colorado at Boulder 274. University of Connecticut 275. University of Cyprus 276. University of Delaware 277. University of Duisburg-Essen 278. University of Florida - ACIS Lab 279. University of Georgia 280. University of Goettingen

281. University of Illinois at UrbanaChampaign 282. University of Ioannina 283. University of Kaiserslautern, Germany 284. University of Kansas 285. University of Karlsruhe 286. University of Kent Computer Science Dept, UK 287. University of Kentucky 288. University of Lisbon 289. University of Manchester, UK 290. University of Maryland 291. University of Massachusetts at Amherst 292. University of Melbourne CSSE 293. University of Michigan 294. University of Minnesota 295. University of Missouri Kansas City 296. University of Nebraska at Kearney 297. University of Nebraska Lincoln 298. University of Neuchatel 299. University of New Brunswick 300. University of Newcastle 301. University of New Mexico 302. University of North Carolina at Chapel Hill 303. University of North Carolina at Charlotte 304. University of Notre Dame 305. University of Oregon 306. University of Osaka

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

37

307. University of Oslo 308. University of Passau 309. University of Pennsylvania 310. University of Pittsburgh 311. University of Puerto Rico at Mayaguez 312. University of Puerto Rico, Rio Piedras Campus 313. University of Rochester 314. University of Saskatchewan 315. University of Sevilla 316. University of Southern California, ISI 317. University of South Florida (CSE) 318. University of St. Andrews 319. University of Stirling 320. University of Sussex 321. University of Technology at Sydney 322. University of Tennessee at Knoxville 323. University of Texas at Arlington 324. University of Texas at El Paso 325. University of Texas at San Antonio 326. University of Texas, Austin 327. University of Tokyo 328. University of Toronto 329. University of Toronto at Mississauga 330. University of Tromso 331. University of Tuebingen 332. University of Utah

333. University of Utah - Emulab 334. University of Victoria 335. University of Virginia 336. University of Washington 337. University of Washington Accretive DSL 338. University of Waterloo 339. University of Wisconsin 340. University of Wuerzburg 341. University of Zurich, Institut fur Informatik 342. Uppsala University at Sweden 343. Vanderbilt University 344. Vrije Universiteit 345. Warsaw University of Technology 346. Washington State University 347. Washington University in St Louis 348. Waterford Institute of Technology 349. Wayne State University 350. WIDE Project 351. Wroclaw University of Technology 352. Yonsei University

38

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

1.3.6. Cluster Clusterul este un tip de sistem distribuit ce permite calculul paralel, format fizic dintr-o reea de cel puin dou procesoare, numite staii de lucru (care pot fi calculatoare complete, PC-uri, supercalculatoare, calculatoarele vectoriale, multiprocesoare, MPP), care pot fi folosite i de sine stttor, interconectate ntr-o reea, fiind utilizat ca o resurs de calcul integrat i singular. n practic se utilizeaz dou tipuri de clustere: clustere dedicate (formate din procesoare omogene) i clustere de ntreprindere (formate din procesoare neomogene). Un cluster are, n mod iluzoriu, pentru utilizator o imagine de sistem unic -SSI (Single System Image). Aceasta este impresia utilizatorului, c are acces la un sistem unic cu resurse multiplicate, cu control unic asigurat prin intermediul unei singure interfee. Sistemul este simetric, n sensul c un serviciu poate fi solicitat de pe orice nod, iar accesul la resurse este transparent. Astfel, clusterul pare la fel de uor de folosit ca un PC. Elementele clusterului sunt vzute din afar ca fiind anonime i interschimbabile. Rolul principal ntr-un cluster l joac staiile de lucru, iar sistemele paralele din reea pot fi folosite ca nuclee de calcul foarte puternice n aplicaii de mare complexitate (fizica atomului, studiul genomului uman, meteorologie etc.). Conceptul software corespunztor conceptului de cluster este domeniul de execuie, care reprezint o main virtual foarte puternic, are o evoluie dinamic n funcie de necesiti: se pot scoate sau introduce n orice moment staii de lucru, servere de baze de date, procesoare specializate etc. Domeniul de execuie al unei aplicaii distribuite poate cuprinde unul sau mai multe clustere, iar pentru definirea sa se folosesc mai multe criterii: disponibilitatea resurselor i estimarea ncrcrii; caracteristicile aplicaiei (timp de execuie, raport calcule/comunicaii, necesarul de resurse), maparea grafului posibilitilor de execuie al aplicaiei pe graful de comunicaii al domeniului de execuie; condiii de performan impuse (execuie n timp real - dac este cazul, toleran la defecte, gradul de precizie etc.). Elementele specifice ce difereniaz clusterul n cadrul soluiilor multi-calculator sunt: fiecare nod este un calculator de sine stttor, cu un sistem de operare propriu n general de tip Unix i elemente software necesare managementului clusterului: comunicare, alocare de resurse,

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

39

echilibrarea ncrcrii, dar nu i sunt neaprat necesare unele dispozitive periferice cum ar fi monitor, mouse, tastatur; nodurile pot comunica printr-o reea obinuit, de exemplu ethernet, dar exist i clustere comerciale care folosesc reele de mare vitez; interfaa de reea este ataat magistralei I/O i nu celei de memorie; clusterul este administrat ca o resurs de calcul unic printr-un ansamblu de tehnici denumite single-system image (SSI); are disponibilitate ridicat, adic sistemul poate utilizat un procent mai mare de timp; datorit multiplicrii resurselor clusterul ofer o performan foarte bun, fie ca timp de execuie mai scurt fie ca servire simultan a mai multor utilizatori.

Clusterele pot fi clasificate n baza urmtoarelor atribute: asamblare (compact sau distribuit); control (local sau centralizat); omogenitate (eterogen sau omogen); securitate (nchis sau deschis). n practic se folosesc ndeosebi dou tipuri de clustere: Cluster dedicat: este instalat cu toate nodurile ntr-un rack compact, este omogen (toate nodurile folosesc acelai tip de procesor i acelai sistem de operare), este controlat centralizat i este accesat via un sistem front-end (nchis pentru exterior); Cluster de ntreprindere: este distribuit geografic cu noduri n rackuri diferite din aceeai camer sau n camere diferite, este eterogen (nodurile pot avea procesoare i sisteme de operare diferite), cu un control limitat, iar joburile locale au prioritate fa de cele ale ntreprinderii. Pentru ca un sistem s fie robust i eficient este necesar s fie: fiabil (timpul mediu pn la defectare s fie ct mai mare); disponibil (procentul de timp ct este disponibil utilizatorului s fie ct mai mare); uor de ntreinut (service facil i rapid). Pentru asigurarea disponibilitii unui cluster se folosesc urmtoarele tehnici: Redundana izolat: se folosesc componente redundante pentru ca, n cazul c una cade, funcia sa s fie preluat de alt component,

40

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

componentele trebuie s fie izolate, n sensul s nu poat fi afectate de aceeai surs de cdere (dou componente se pot testa reciproc i n timp ce una funcioneaz, cealalt poate fi reparat sau nlocuit, dup caz). O strategie judicioas de realizare a unui cluster fiabil este cea care elimin punctele unice susceptibile de cdere, de exemplu la arhitectura client/server vor fi dublate liniile de comunicaie, serverul i adaptorul su, discul, magistrala SCSI (Small Computer System Interface); Preluarea (failover): cnd o component cade, restul sistemului preia serviciile oferite de componenta respectiv. Un mecanism de diagnoz, numit heartbeat (btaia/pulsul inimii, v. http://www.linux-ha.org/HeartbeatProgram), asigur diagnoza notificarea i refacerea. Nodurile i trimit mesaje heartbeat, iar dac sistemul nu primete mesaje de la un nod, nsemn c nodul sau/ i conexiunea la reea a czut. De regul se folosesc dou ci de conexiune ntre noduri i fiecare nod are un demon heartbeat care trimite la un anumit interval de timp prestabilit un mesaj pe ambele conexiuni ctre master (unul din noduri este desemnat master). Dac masterul primete dou mesaje, totul este n regul. Dac primete un singur mesaj, nsemn c una din conexiuni a czut, iar dac nu primete nici-un mesaj nsemn c ori au czut ambele conexiuni, ori a czut nodul n cauz. Odat diagnosticat o cdere, sistemul notific acest eveniment i se iau msuri pentru refacere i remedierea defeciunii; Scheme de refacere (recovery schemes). Se utilizeaz dou scheme de refacere: prima const n salvarea periodic a strii proceselor ce se execut (backward recovery checkpoint), iar a doua este forward recovery. n primul caz, dup o cdere, sistemul este reconfigurat astfel nct s izoleze componenta czut i se continu funcionarea normal din punctul de salvare (tehnica rollback). Aceast tehnic se poate implementa i portabil, independent de aplicaie. A doua soluie se bazeaz pe reluarea execuiei pe baza diagnosticului dintr-o stare valid anterioar i se folosete de obicei cnd timpul de execuie este critic. Schema este dependent de aplicaie i poate necesita un hardware suplimentar. Imaginea unic de sistem -SSI (Single System Image) se refer la faptul c utilizatorul are iluzia c acceseaz un sistem unic, care are resurse multiplicate, are control unic asigurat printr-o singur interfa, este simetric (un serviciu poate fi solicitat de pe orice nod), iar accesul la resurse este transparent.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

41

Fig. 1.3.1. Arhitectura principial a unui cluster

Fig. 1.3.2. Relaii ntre componente software/hardware ntr-un nod de cluster

42

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Iluzia imaginii unice a sistemului - SSI (Single System Image) poate fi obinut: la nivelul aplicaiei: utilizatorul are impresia c folosete o simpl staie de lucru i nu un cluster; la nivelul hardware sau kernel: ntr-un cluster omogen se poate realiza iluzia de sistem unic chiar la nivel de sistem de operare sau hardware (ntr-un cluster eterogen acest lucru este mai greu de realizat); la nivelul situat deasupra kernelului: este cel mai potrivit nivel pentru construcia iluziei SSI, deoarece este independent de platform i nu modific aplicaia. SSI realizeaz urmtoarele: Punct de intrare unic: un utilizator se poate conecta la un cluster ca la un singur calculator (gazd). Trebuiesc rezolvate probleme precum crearea directorului home (unde s fie plasat: se poate pstra o copie pe fiecare calculator gazd sau se pot memora toate directoarele home ntrun spaiu de stocare sigur al clusterului), autentificare, gestiunea conexiunilor multiple, cderea gazdei etc. Ierarhie unic de fiiere: producerea unei imagini care include discurile locale, globalwe sau late dispozitive (NFS sau AFS); Spaiu de memorie unic (iluzoriu): produce iluzia unei memorii principale mari, care n realitate este o sum de memorii locale; Spaiu I/O unic; Un punct de control; Reea unic; Un singur sistem de gestiune a joburilor; Spaiu unic pentru procesare. Sistemul de gestiune a unui cluster trebuie s conin: un server pentru utilizator: acesta permite utilizatorilor lansarea n execuie a joburilor i cererea de resurse; un planificator de aplicaii/ joburi: face planificarea n funcie de tipul jobului, de resursele necesare, de politicile de planificare; un gestionar de resurse: aloc i monitorizeaz resursele i verific politicile de planificare. NOW. n 1998 a fost terminat proiectul NOW (Network of Workstations) al Universitii Berkely, care i-a propus s realizeze un software pentru gestiunea unui cluster. S-a proiectat un strat software de tip cluster middleware, numit GLUnix, care se aeaz deasupra sistemelor de operare existente i permite executarea joburilor interactive cu viteza unei staii de lucru, dar i a unor joburi care ar fi prea mari pentru o singur staie de lucru.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

43

1.3.7. Grid Diverse definiii descriptive. 1. Grid-ul este o colecie de resurse informatice eterogene (PC-uri, supercomputere, MPP, clustere, ....), fr o localizare determinat, fr control centralizat, fr o imagine de sistem unic, accesibil unor organizaii virtuale prin intermediul unui software suport pentru configurare (uzual, Globus Toolkit, http://www.globus.org/ ). 2. Grid-ul este un tip de sistem paralel i distribuit care permite partajarea, selectarea i agregarea serviciilor unor resurse distribuite eterogene peste domenii cu administrare multipl, bazate pe disponibilitate, capabilitate, performan, cost i cerine calitative ale utilizatorilor. (Rajkumar BUYYA, http://www.gridcomputing.com/ ) 3. Grid-ul reprezint modalitatea flexibil i securizat de a coordona punerea n comun a resurselor diverselor colective dinamice de indivizi, instituii sau organizaii (organizaii virtuale). [FKT01]; 4. Grid-ul reprezint un efort ambiios i incitant de a dezvolta un mediu n care fiecare utilizator s poat accesa calculatoare, baze de date i faciliti experimentale ntr-un mod simplu i transparent, fr s in seama unde sunt localizate aceste faciliti [RealityGrid, Engineering & Physical Sciences Research Council, UK 2001] http://www.realitygrid.org/information.html ; 5. Grid computing este un model care permite unor companii s foloseasc un numr larg de resurse de calcul la cerere, indiferent unde s-ar afla acestea. www.informatica.com/solutions/resource_center/glossary/default.htm ; 6. Un grid este o infrastructur informatic de tip reea, constituit virtual dintr-o mulime de resurse informatice distribuite, eterogene, cu potenial de partajare, fr o administrare centralizat, fr imagine de sistem unic, care permite unor utilizatori de tip organizaional s-i rezolve unele probleme de dimensiuni mari utiliznd resurse de pretutindeni (din afara organizaiei). Deci, resursele unui Grid sunt caracterizate prin 1. Partajare: sunt puse la dispoziia utilizatorilor care au nevoie de ele pentru rezolvarea unor aplicaii; 2. Distribuire: sunt amplasate n locaii geografice oriunde pe glob;

44

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

3. Eterogenitate: nu sunt toate de aceeai natur, pot diferi prin sisteme de gestiune a fiierelor, prin sisteme de operare, prin tipul de procesoare utilizate etc.; 4. Coordonare: resursele sunt organizate virtual , conectate i exploatate n funcie de nevoi (obiective) i mijloace disponibile pe baza unui software de configurare i gestiune a gridului; 5. Externalizare: resursele sunt accesibile la cerere de ctre furnizori externi; 6. Autonomie (descentralizare): n contrast cu clusterul, lipsete imaginea de sistem unic i controlul centralizat.

Domeniile de aplicabilitate pentru Grid Computing: 1. Modelare predictiv i simulare: prognoze meteo prin simulri numerice; oceanografie, simulri de semiconductoare; astrofizic; prognozarea albiilor rurilor i fluviilor; studiul genomului uman; proiecte socio-economice i guvernamentale. Proiecte inginereti i automatizri: modelri prin metoda elementului finit, aerodinamic, inteligen artificial (procesarea imaginilor, recunoaterea formelor, vizualizare computerizat). Explorarea resurselor energetice: sigurana reactoarelor nucleare, explorri seismice, puterea de fuziune a plasmei; modelarea rezervelor energetice. Cercetri fundamentale n medicin i probleme militare: imagini i vizualizri n explorri medicale, probleme de mecanic cuantic, chimia polimerilor, proiecte de atac nuclear. Vizualizare: vizualizri grafice, video, animaie, film cu ajutorul calculatorului.

2.

3.

4.

5.

Sistemele GRID pot fi clasificate n trei mari categorii: 1. Grid computaional: supercalcul distribuit i transfer de mare vitez, vezi http://www.nwicgrid.org/ 2. Data Grid: exploatarea unor baze de date de mari dimensiuni, v. http://eu-datagrid.web.cern.ch/eu-datagrid/ http://www.eu-egee.org/ 3. Service Grid: servicii grid la cerere, colaborativ, multimedia, v. http://www.globus.org/ogsa/

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

45

Not. Uneori se mai fac confuzii ntre cele dou concepte: cluster computing i grid computing. Este necesar de la bun nceput s facem o distincie categoric ntre cele dou concepte, comparnd urmtoarele definiii ale celor dou concepte: Cluster computing: este o colecie de staii de lucru (PC-uri, supercomputere, MPP,...) omogene sau neomogene, puternic cuplate ntr-o reea bine localizat (ntr-o ncpere sau n cteva locaii ale unei ntreprinderi), cu control centralizat, accesibil utilizatorilor de la terminalele staiilor de lucru prin intermediul unui software de administrare (uzual, GLUnix realizat n cadrul proiectului NOW sau CODINE, vezi i http://www.linux-ha.org/ClusterResourceManager ), prin intermediul cruia vd clusterul ca o unic resurs de calcul la fel de uor de utilizat ca un PC. Pentru programare n clustere se utilizeaz de obicei MPI (Message Pasing Interface) http://www-unix.mcs.anl.gov/mpi/ sau PVM (Parallel Virtual Machine) http://www.csm.ornl.gov/pvm/ ; Grid computing: este o colecie de resurse informatice eterogene (PC-uri, supercomputere, MPP, clustere, ....), fr o localizare determinat, fr control centralizat, fr o imagine de sistem unic, accesibil unor organizaii virtuale prin intermediul unui software suport (uzual, Globus Toolkit, http://www.globus.org/ ).

46

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

47

CAPITOLUL 2 SISTEME DE CALCUL PARALEL I DISTRIBUIT. TAXONOMIE I MODELE


2.1. Clasificri binare ale arhitecturilor sistemelor de calcul paralel i distribuit (SCPD) 2.1.1. Clasificarea SCPD dup numrul de uniti centrale conectate la memorie 2.1.2. Clasificarea SCPD dup tipul mecanismului de control 2.1.3. Clasificarea SCPD dup numrul de seturi de instruciuni prelucrabile 2.1.4. Clasificarea SCPD dup tipul strategiei de management al procesrii 2.1.5. Clasificarea SCPD dup numrul de seturi de date prelucrabile 2.1.6. Divizarea clasei SC dup numrul de seturi de date prelucrabile 2.1.7. Divizarea clasei SIMD dup tipul de date prelucrabile 2.1.8. Divizarea clasei SF dup tipul de date prelucrabile 2.1.9. Divizarea clasei MIMD dup modul de organizare a adresrii spaiului de memorie (Bell) 2.1.10. Divizarea multiprocesoarelor dup tipul de memorie utilizat (Bell) 2.1.11. Divizarea multicalculatoarelor dup tipul de memorie utilizat (Bell) 2.2.Paralelismul n diverse sisteme de calcul 2.2.1. Paralelismul n calculatoarele scalare moderne de tip SISD 2.2.2.Paralelismul n calculatoarele multiscalare de tip MISD 2.2.3 Paralelismul n sistemele MIMD 2.3. Clasificarea lui Flynn 2.3.1. Clasa SISD (Single Instruction stream - Single Data stream) 2.3.2. Clasa SIMD (Single Instruction stream - Multiple Data stream) 2.3.3. Clasa MISD (Multiple Instruction stream - Single Data stream) 2.3.4. Clasa MIMD (Multiple Instruction stream - Multiple Data stream) 2.4. O sintez a diverselor taxonomii ale SCPD 2.4.1. Includerea claselor lui Flynn 2.4.2. Includerea claselor lui Bell (multiprocesor de tip SASA, multicalculator de tip MPA) 2.4.3. Includerea claselor lui Hwang (modelele UMA, NUMA, ccNUMA, COMA) 2.4.4. Modelele Cluster i Grid 2.4.5. O schem taxonomic de sintez 2.5. Software pentru configurarea i managementul sistemele informatice distribuite 2.5.1. Sisteme de operare multiuser 2.5.2. Parallel Virtual Machine (PVM) 2.5.3. Message Passing Interface (MPI) 2.5.4. Globus Toolkit

48

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.1. Clasificri binare ale arhitecturilor sistemelor de calcul paralel i distribuit (SCPD)
2.1.1. Clasificarea SCPD dup numrul de uniti centrale conectate la memorie 2.1.2. Clasificarea SCPD dup tipul mecanismului de control 2.1.3. Clasificarea SCPD dup numrul de seturi de instruciuni prelucrabile 2.1.4. Clasificarea SCPD dup tipul strategiei de management al procesrii 2.1.5. Clasificarea SCPD dup numrul de seturi de date prelucrabile 2.1.6. Divizarea clasei SC dup numrul de seturi de date prelucrabile 2.1.7. Divizarea clasei SIMD dup tipul de date prelucrabile 2.1.8. Divizarea clasei SF dup tipul de date prelucrabile 2.1.9. Divizarea clasei MIMD dup modul de organizare a adresrii spaiului de memorie (Bell) 2.1.10. Divizarea multiprocesoarelor dup tipul de memorie utilizat (Bell) 2.1.11. Divizarea multicalculatoarelor dup tipul de memorie utilizat (Bell) Dintre cei care s-au ocupat de taxonomia arhitecturilor paralele i putem aminti pe: Flynn (1966), Shore (1973), Hndler (1977), Kuck (1978), Schwartz (1980), Gajski (1985), Trealeven (1985), Hockney (1988), Williams (1990), Bell (1992), Lewis (1993). n [Dzi01c], [Dzi02] i [Dzi06] se face o sintez a acestor clasificri, din care vom reproduce parial cteva informaii n acest capitol. Prin acronimul SCPD vom desemna sistemele de calcul paralel i distribuit. Vom numi clasificare binar, clasificarea care mparte o anumit clas exact n dou subclase, pe baza unui criteriu unic sau a unei mulimi de criterii. Elementele hardware de baz ale unui calculator sunt: Unitatea central (CPU) este creierul unui calculator. Ea este format din circuite necesare pentru stocare, prelucrare i control. n unitile centrale cu microprocesor, ALU i CU sunt incluse n microprocesor, iar memoriile ROM i RAM sunt plasate separat pe placa de baz sau pe o plac conectat la magistrala de extensie. Memoria este format din circuite necesare pentru stocarea datelor i instruciunilor, precum i a datelor intermediare i dispune de mecanisme de acces la acestea. Exist mai multe tipuri de memorie.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

49

Microprocesorul este un circuit integrat care conine: unitatea aritmetico-logic (ALU), unitatea de comand (CU) i uneori unitatea de calcul n virgul mobil. Microprocesorul este conectat la diverse uniti de memorie i este nglobat n unitatea central (CPU).

Notaii utilizate n acest capitol: AU = [Arithmetic Unit] := Unitate aritmetic; LU = [Logic Unit] := Unitate logic ALU = [Arithmetic- Logic Unit] := Unitate logico-aritmetic PL = [Pipe-Line] := Conveier CU = [Control Unit] = Unitate de control CPU =[Central Processing Unit] : = unitate de control stpn MCU =[Master Control Unit] : = unitate de control stpn P = Microprocessor := Microprocesor; ROM [Read Only Memory] := Memorie nevolatil; RAM [Random-Access Memory] := Memorie volatil; IM [Interleaved Memory] := Memorie ntreesut DiM =[Distributed Memory] := Memorie distribuit; ShM =[Shared Memory] := Memorie partajat; SASA =[Shared Address Space Arhitecture] := Arhitectur bazat pe adresarea partajat, la sistemele cu memorie comun; MPA =[Message Passing Arhitecture] := Arhitectur bazat pe transmitere de mesaje (n memoriile distribuite); CaM [Cache Memory] :=Memorie cache; CMD [CaM for Data] := CaM pentru date; CMI [CaM for Instruction] := CaM pentru instruciuni.

2.1.1. Clasificarea SCPD dup numrul de uniti centrale conectate la memorie 1. Clasa SCPU [Single CPU]: SCPD are o arhitectur cu o singur unitate central (CPU, Central Processor Unit) legat la memorie. Astfel de arhitecturi mai sunt numite i arhitecturi de tip von Neumann (v. [Kum+94], [PW95]); 2. Clasa MCPU [Multiple CPU]: Mai multe uniti centrale sunt legate la memorie. Mai sunt numite i arhitecturi de tip non von Neumann.

50

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.1.2. Clasificarea SCPD dup tipul mecanismului de control 1. Clasa GCU [Global Control Unit]: O arhitectur cu mecanism de control global, n sensul unui centralism fizic (exercitat de un singur CPU), sau centralism conceptual (un MCU = Master Control Unit, adic un CPU stpn exercit controlul asupra ntregului sistem); 2. Clasa LCU [Local Control Unit]: Arhitectur cu mecanism de control local, n sensul c mai multe procesoare locale, care pot avea fiecare cte un CPU sau posed numai uniti de control CU, controleaz execuia proceselor locale.

2.1.3. Clasificarea SCPD dup numrul de seturi de instruciuni prelucrabile 1. Clasa SI [Single Instruction stream]: Sistemul este capabil s execute doar un singur set de instruciuni; 2. Clasa MI [Multiple Instruction stream]: Sistemul este capabil s execute mai multe seturi de instruciuni simultan. 2.1.4. Clasificarea SCPD dup tipul strategiei de management al procesrii 1. Clasa SC [Sistem Centralizat]: Am ales aceast denumire pentru a desemna un sistem de calcul care este n acelai timp din clasele SCPU, GCU i SI; 2. Clasa SF [Sistem Federalizat]: Am ales aceast denumire pentru a desemna un sistem de calcul care este n acelai timp MCPU, LCU i MI. Prin strategie de management al procesrii vom nelege modul de gestionare a mecanismului de comand i control n timpul procesrii (execuiei instruciunilor). Acesta va fi de dou tipuri: centralizat (sistem cu o singur unitate central i mecanism de control global, ce permite execuia numai a unui singur set de instruciuni) sau federalizat (sistem cu mai multe uniti centrale i mecanism de control local, ce permite execuia numai a mai multor seturi de instruciuni simultan).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

51

Termenul federalizat a fost introdus n [Dzi02]: prin analogie cu tipologia sistemelor de guvernare statal. Un stat federal modern (SCPD), cuprinde mai multe state (MCPU), fiecare stat avnd o anumit autonomie local, cu o conducere local proprie (LCU). Astfel, un proiect federal cu mai multe module (program paralel cu mai multe seturi de instruciuni - MI), poate fi distribuit spre execuie la mai multe state simultan, fiecare stat rspunznd de execuia modulului su i, eventual, colabornd (comunicnd) n timpul execuiei cu alte state (procesoare/calculatoare). 2.1.5. Clasificarea SCPD dup numrul de seturi de date prelucrabile 1. Clasa SD [Single Data stream]: Sistemul este capabil s execute unul sau mai multe seturi de instruciuni asupra doar a unui singur set de date deodat; Clasa MD [Multiple Data stream]: Sistemul este capabil s execute unul sau mai multe seturi de instruciuni asupra a mai multor seturi de date simultan.

2.

2.1.6. Divizarea clasei SC dup numrul de seturi de date prelucrabile 1. Clasa SISD = Single Instruction stream - Single Data stream (clas Flynn): Un sistem centralizat, capabil s execute doar un singur set de instruciuni numai pe un singur set de date (SI, SD). Calculatoarele din aceast clas se mai numesc i calculatoare scalare. Este o clas din clasificarea lui Flynn. 2. Clasa SIMD = Single Instruction stream - Multiple Data stream (clas Flynn): Un sistem centralizat, capabil s prelucreze mai multe seturi de date simultan, pe acelai set de instruciuni (SI, DM). 2.1.7. Divizarea clasei SIMD dup tipul de date prelucrabile 1. 2. Clasa SIVD = Single Instruction stream - Vector Data (procesoare vectoriale): Clasa SIAD = Single Instruction stream - Array Data (procesoare matriceale).

52

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.1.8. Divizarea clasei SF dup tipul de date prelucrabile 1. Clasa MISD = Multiple Instruction stream - Single Data stream (clas Flynn): Sistemul este capabil s execute mai multe seturi de instruciuni asupra doar a unui singur set de date; Clasa MIMD = Multiple Instruction stream - Multiple Data stream (clas Flynn): Sistemul este capabil s execute mai multe seturi de instruciuni asupra a mai multor seturi de date simultan.

2.

2.1.9. Divizarea clasei MIMD dup modul de organizare a adresrii spaiului de memorie (Bell) 1. Clasa SASA = Shared-Address-Space Architecture: Sunt arhitecturi de tip MIMD care utilizeaz un spaiu unic de adrese, localizat n memoria comun. Ele se mai numesc i multiprocesoare; Clasa MPA = Message-Passing Architecture: Sunt arhitecturi de tip MIMD care utilizeaz mai multe spaii de adrese, comunicarea ntre procesoare realizndu-se prin transmitere de mesaje. Ele se mai numesc i multicalculatoare.

2.

2.1.10. Divizarea multiprocesoarelor dup tipul de memorie utilizat (Bell) 1. Multiprocesor scalabil: Un multiprocesor cu memorie distribuit local. Scalabilitatea se refer la posibilitatea creterii accelerrii odat cu creterea numrului de procesoare. Multiprocesor nescalabil: Un multiprocesor cu memorie comun partajat de toate procesoarele.

2.

2.1.11. Divizarea multicalculatoarelor dup tipul de memorie utilizat (Bell) 1. 2. Multicalculator scalabil: Multicalculator cu memorie distribuit local. Multicalculator cu memorie comun: Multicalculator cu memorie comun partajat de toate procesoarele.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

53

2.2. Paralelismul n diverse arhitecturi de calcul


2.2.1. Paralelismul n calculatoarele scalare moderne de tip SISD 2.2.2.Paralelismul n calculatoarele multiscalare de tip MISD 2.2.3. Paralelismul n sistemele MIMD

2.2.1. Paralelismul n calculatoarele scalare moderne Despre calculatoarele seriale moderne (calculatoarele scalare, Fig. 2.2.1, Fig. 2.2.2), putem spune c au o arhitectur pseudoparalel, deoarece, dei ele execut numai programe seriale, totui nglobeaz foarte multe concepte de paralelism real sau aparent, mai ales n procesare. Ele sunt sisteme centralizate de tip SISD. Viteza de calcul ntr-o astfel de main este influenat att de viteza de execuie a instruciunilor ct i de viteza de schimb a informaiilor ntre unitatea central i memorie. John von Neumann a constatat c un program pierde mai mult timp cu regsirea datelor n memorie dect cu prelucrarea propriu-zis. Acest aspect este cunoscut sub numele de limitare de tip von Neumann [von Neumann bottleneck].

Fig. 2.2.1. Structura principial a unui calculator secvenial (SISD)

54

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Fig. 2.2.2. Tipuri de SISD: a) tradiional; b) cu IM (memorie ntreesut); c) cu CaM (memorie cache); d) cu CaM i microprocesor; e) cu PL (conveier pipeline); f) PENTIUM

Soluiile la limitarea de tip von Neumann sunt multiple: Utilizarea memoriei ntreesute (v. Fig. 2.2.2. b). Prin acest procedeu mai multe date pot fi accesate simultan din memorie de ctre CPU. Utilizarea memoriei cache (v. Fig. 2.2.2. c).Prin acest procedeu se stocheaz n CaM datele care au probabilitatea mai mare de a fi utilizate n procesul de calcul. CaM fiind mai apropiat de CPU i avnd un canal de acces separat, permite creterea vitezei de accesare a datelor; Utilizarea a dou memorii cache, separate, una pentru datele i una pentru instruciuni (v. Fig. 2.2.2. f): Pentru creterea vitezei de execuie a instruciunilor, prin care se realizeaz o procesare paralel n timp a instruciunilor (v. Fig. 2.2.2. e), se utilizeaz tehnica pipelining. Pentru eludarea procesrii strict secveniale s-a implementat conceptul de program stocat [stored program concept], conform cruia un program se stocheaz n memorie mpreun cu datele, astfel n timpul

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

55

execuiei programului se poate sri de la o instruciune la alta, n loc de a se executa secvenial. n cazul programului stocat se execut instruciunea pentru care se dispune la momentul respectiv de toate datele necesare execuiei ei. Acest procedeu poate fi extins prin stocarea n memorie a mai multor programe, prin tehnica multiprelucrrii [multiprocessing] cu partajarea timpului [time sharing]. Astfel, se execut aparent simultan, mai multe programe n acelai interval de timp. Acesta este un concept de natur hardware. Multiprogramarea [multiprogramming] este un concept de natur software care const tot n execuia aparent simultan a mai multor programe n acelai interval de timp, dar printr-o planificare [sheduling] adecvat a joburilor sau prin ntreptrunderea lor. Dac, de exemplu la un moment dat un program necesit o comunicare de mai lung durat cu periferia, execuia sa poate fi trecut sub controlul unui procesor de intrare/ieire i n acest timp unitatea central se poate ocupa cu execuia altui program. Se mai utilizeaz conceptul de natur software: paralelism simulat prin randomizare sau de natur hardware: multiprelucrare distribuit.

2.2.2. Paralelismul n calculatoarele multiscalare Spre deosebire de o arhitectur de tip SISD (Fig. 2.2.1 i 2.2.2), care prelucreaz un singur set de instruciuni pe un singur set de date, realiznd procesri paralele cu programe seriale, n arhitecturile multiscalare de tip SIMD (Fig. 2.2.3, Fig. 2.2.4, Fig. 2.2.5, Fig. 2.2.6, Fig. 2.2.7, Fig. 2.2.8), nivelul de paralelism crete, permind execuia unui set de instruciuni pe mai multe seturi de date, paralelismul datorndu-se att structurii fizice ct i programrii. n modelul SIMD, mai multe procesoare identice, P1, P2, , Pn sunt puse s execute simultan, pe baza unui program paralelsincron, o aceeai instruciune, fiecare pe date distincte ale multidatei (dat cu o structur de tip vector sau matrice). Procesoarele comunic ntre ele prin intermediul memoriei comune, care este o memorie partajat, dar n unele cazuri pot avea i memorie local. n acest model o resurs scump (memoria) este exploatat n comun de mai multe resurse ieftine (procesoare simple). Aceste procesoare lucreaz sub comanda i controlul unitii centrale CPU, care procedeaz astfel: dac data este simpl o execut, iar dac este multipl o distribuie (cte una sau mai multe componente) spre prelucrare procesoarelor-sclavi, astfel ca efortul de calcul s fie similar pentru fiecare procesor. Deci mecanismul de control este de tip global.

56

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Fig. 2.2.3. SIMD cu memorie partajat (ShM- Shared Memory)

Limitrile n astfel de arhitecturi paralele sunt nc serioase : raportul cost / eficien este justificat doar n rezolvarea unor probleme specifice (care admit o descompunere regulat n sub-probleme ce presupun un efort de calcul similar, n care se schimb doar datele); dac dimensiunea datei multiple este cu mult mai mare dect numrul de procesoare pot aprea limitri datorate distribuiei inegale i a necesitii de sincronizare; dac dimensiunea datei multiple este cu mult mai mic dect numrul de procesoare sistemul nu-i justific oportunitatea (nu este exploatat la ntreaga capacitate); eficiena este afectat negativ dac problema conine multe operaii condiionale, care nu pot fi efectuate dect de unitatea central, aprnd astfel timpi mori n funcionarea procesoarelor sclavi. Exemple tipice de arhitecturi multiscalare sunt: procesoarele vectoriale (Fig. 2.2.4, Fig. 2.2.5, Fig. 2.2.6); procesoarele matriciale (arii de procesoare, Fig. 1.3.7, 1.3.8). Exemple de procesoare vectoriale sunt: STAR-100, TI-ASC, CRAY-1, CYBER-200, FUJITSU VP-200 i CRAY X-MP, etc.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

57

Fig. 2.2.4. Structura tipic a unui procesor vectorial

Fig.2.2.5. Procesor vectorial tip coloan

Procesoarele matriceale sunt structuri regulate alctuite din mai multe elemente de procesare, cu sau fr memorie local, cu posibiliti de transfer a

58

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

informaiei ntre ele, toate lucrnd n paralel, sub comanda unei uniti centrale unice. Un procesor matricial poate executa operaii scalare i vectoriale pe seturi masive de date. Toate elementele de procesare execut aceleai operai, sub comanda CPU, dar asupra unor operanzi diferii obinui din memoriile locale (n cazul memoriei distribuite local, Fig. 2.2.7) sau din memoria comun organizat pe module (Fig. 2.2.6). Un exemplu tipic de procesor matricial de primul tip este Illiac IV, iar din cel de-al doilea este BSP [Buroughs Scientific Processor]. Un rol deosebit de important n eficiena unor astfel de sisteme l joac modul de interconectare a procesoarelor (reele statice, reele dinamice, etc.).

Fig. 2.2.6. Procesor vectorial cu memorie modular partajat

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

59

Fig. 2.2.7. Procesor vectorial cu memorie distribuit local

60

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.2.3. Paralelismul n sistemele MIMD n Fig. 2.2.8 este schematizat o structur de tip MIMD, cu memorie partajat, iar n Fig. 2.2.9 avem o structur MIMD cu memorie distribuit.

Fig. 2.2.8. MIMD cu memorie partajat

Diferena principial dintre MIMD cu memorie distribuit i MIMD cu memorie partajat const n modul de comunicare ntre procesoare. n primul model comunicarea se realizeaz prin transmitere de mesaje, iar n al doilea prin intermediul memoriei comune, care este partajat de cele n procesoare simple. Un sistem de tip MIMD cu memorie distribuit folosete de regul drept procesoare, transputere (v.[Gri00]). Un transputer este un cip microprocesor cu memorie adiional, ALU i faciliti de comunicare.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

61

Fig. 2.2.9. MIMD cu memorie distribuit

Fig. 2.2.10. Arhitectur sistolic de tip MISD

62

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.3. Clasificarea lui Flynn


2.3.1. Clasa SISD (Single Instruction stream - Single Data stream) 2.3.2. Clasa SIMD (Single Instruction stream - Multiple Data stream) 2.3.3. Clasa MISD (Multiple Instruction stream - Single Data stream) 2.3.4. Clasa MIMD (Multiple Instruction stream - Multiple Data stream) Clasificarea lui Flynn are cel mai mare impact n literatura de specialitate. Ea const ntr-o combinaie a claselor SI, MI cu clasele SD, MD (v. Fig. 2.3.1. i Fig. 2.3.2). Seturi de INSTRUCIUNI/ DATE Singulare Multiple Singulare SISD MISD Multiple SIMD MIMD
Fig. 2.3.1. Categoriile (clasele) lui Flynn

2.3.1. Clasa SISD (Single Instruction stream - Single Data stream) n aceast clas intr calculatoarele obinuite, calculatoarele seriale scalare. 2.3.2. Clasa SIMD (Single Instruction stream - Multiple Data stream) n aceast clas se ncadreaz supercalculatoarele: calculatoarele vectoriale i matriciale. 2.3.3. Clasa MISD (Multiple Instruction stream - Single Data stream) Flynn nu a dat exemple din aceast clasa, dar aici s-ar ncadra arhitecturile de tip sistolic. 2.3.4. Clasa MIMD (Multiple Instruction stream - Multiple Data stream) n aceast clas intr calculatoarele paralele masive (compacte), care pot fi multiprocesoare sau multicalculatoare. Calculatoarele din clasa MIMD sunt blocuri unitare de procesoare nzestrate cu uniti de control, ce comunic ntre ele prin schimb de mesaje sau prin intermediul memoriei comune i colaboreaz la rezolvarea unei unice probleme complexe.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

63

a) SISD
(SI) Global CU[CPU] (SI) I I Global CU[MCU] l P1 P2 (SD) Data stream (MD )

P+ CU Procesor

(SISD)

b)SIMD

(SIMD)
I Pn

(MI)

c)MISD

I1 I2 Local CU[MCU] In

P1 P2

(SD)

Date Pn

(MISD)

d) MIMD

(MI)

I1 I2 Local CU[MCU } In

P 1+ CU P 2+ CU P n+ CU

(M D)

(MIM
Reea de interconectare

Fig. 2.3.2 Schemele funcionale ale categoriilor Flynn

64

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.4. O sintez a diverselor taxonomii ale SCPD


2.4.1. Includerea claselor lui Flynn 2.4.2. Includerea claselor lui Bell (multiprocesor de tip SASA, multicalculator de tip MPA) 2.4.3. Includerea claselor lui Hwang (modelele UMA, NUMA, ccNUMA, COMA) 2.4.4. Modelele Cluster i Grid 2.4.5. O schem taxonomic de sintez

2.4.1 Includerea claselor lui Flynn n figura 2.4.1 prezentm o sintez a celor mai importante clasificri [Dzi02]. nainte de a face o clasificare de sintez, vom aminti i de clasa MSISD [Multiple SISD]. Aceasta este de fapt o reea de calculatoare SISD, care poate lucra ca i un sistem MIMD. ntre ele exist totui diferene, n primul rnd de ordin constructiv, dar i de ordin principial. Calculatoarele din clasa MIMD sunt blocuri unitare de procesoare nzestrate cu uniti de control, ce comunic ntre ele prin schimb de mesaje sau prin intermediul memoriei comune i colaboreaz la rezolvarea unei unice probleme complexe. n schimb, calculatoarele din clasa MSISD sunt nite calculatoare paralele virtuale care pot produce aceleai efecte ca i cele din clasa MIMD, dar n timpul execuiei unui program paralel unitile de control i cele de execuie, din SISD-uri diferite, nu comunic ntre ele. Clasificarea arborescent se va baza pe clasele binare prezentate anterior, la care vom aduga clasa MSISD i modelele lui Hwang. La primul nivel al arborelui din figura 2.4.1 avem o discriminare tripl, dup: numrul de CPU care sunt conectate la memorie (1/n); mecanism de control (centralizat / local); tipul de seturi de instruciuni pe care le poate prelucra (simple / multiple). Se obin urmtoarele noduri: sistem centralizat, cu urmtoarele caracteristici: arhitectur de tip von Neumann (cu o singur CPU); mecanism de control centralizat (nu neaprat fizic); capabil s prelucreze seturi singulare de instruciuni ;

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

65

sistem federalizat, cu urmtoarele caracteristici: arhitectur de tip non von Neumann (are mai multe CPU); mecanism de control local; seturi multiple de instruciuni prelucrabile. Din aceste noduri ncepe discriminarea dup capacitatea de prelucrare a seturilor de date (SD- singulare / MD- multiple). La urmtorul nivel obinem clasele: calculator scalar, care este un calculator centralizat ce poate prelucra numai un set simplu de date (de tip SISD); calculator multiscalar, care este un calculator centralizat ce poate prelucra seturi multiple de date (de tip SIMD, calculatoarele vectoriale i matriciale); calculator paralel virtual, care este un calculator federalizat ce poate prelucra seturi multiple de date (MSIMD, reele de calculatoare); calculator paralel compact (masiv), care este un calculator federalizat ce poate prelucra seturi multiple de date (MIMD: multiprocesoare i multicalculatoare).

2.4.2. Includerea claselor lui Bell (multiprocesor SASA, multicalculator MPA) Din ultimul nod ncepe clasificarea lui Bell a sistemelor MIMD, dup modul de adresare a spaiului de memorie, prezentat n [Gri00], pag. 28. Obinem astfel clasele: multiprocesor: calculator paralel de tip SASA: [Shared Address Space Arhitecture] := arhitectur bazat pe adresarea partajat ntr-un spaiu unic de memorie (memoria comun); multicalculator: calculator paralel cu MPA: [Message Passing Arhitecture] := arhitectur bazat pe transmitere de mesaje (memorie distribuit). La nivelul urmtor avem mai nti mprirea multiprocesoarelor n funcie de tipul memoriei utilizate (distribuit- DiM / partajat- ShM), iar apoi nodurile cu discriminarea multicalculatoarelor. 2.4.3. Includerea claselor lui Hwang (UMA, NUMA, ccNUMA, COMA) Clasificarea lui Hwang (v. [Kum+94], [Gri00]): UMA = Uniform-Memory-Access; NUMA = Non- Uniform-Memory-Access; ccNUMA = cache coherent NUMA; COMA = Cache Only-Memory-Access.

66

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Uniform Memory Access (UMA) este un tip arhitectural de memorie utilizat la calculatoarele paralele, care utilizeaz procesoare multiple i posibil i cipuri de memorie. Toate procesoarele partajeaz memoria fizic uniform i de asemenea i perifericele. Memoria cache poate fi privat pentru fiecare procesor, iar timpul de acces la memoria comun este independent pentru fiecare procesor. Acest tip de memorie este utilizat n multiprocesoarele simetrice, bazate pe Symmetric Multiprocessing, (SMP). Mai multe procesoare identice sunt conectate la o singur memorie principal (v. fig. 2.4.1.). Unele modele folosesc o combinaie snoopy bus (n care memoriile cache ascult magistrala) cu un switch (comutator) de tip reea cu acces ncruciat, ca de exemplu SUN Ultra Enterprise 10000, care are un switch pentru 4 magistrale.

Fig. 2.4.1. Schema arhitectural a unui multiprocesor simetric (SMP cu UMA)

Non-Uniform Memory Access sau Non-Uniform Memory Architecture (NUMA) este utilizat n multiprocesoare n care timpul de acces la memorie este neuniform, adic depinde de locaia topologic a procesorului fa de memorie. Procesoarele unui sistem cu memorie de tip NUMA au acces la ntreg spaiul de memorie i asigur posibilitatea scalabilitii sistemului, motiv pentru care pstrarea coerenei informaiei este o cerin fundamental, ceea ce a dus la apariia tipului de arhitectur numit ccNUMA (cache coherent NUMA). Un sistem ccNUMA este o colecie de mai multe multiprocesoare simetrice un toate memoriile centrale formeaz un spaiu comun de adresare alocat n ordine cresctoare. Magistralele sunt interconectate ntre ele prin intermediul unor directoare care pstreaz evidena alocrii domeniilor de adrese pe

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

67

multiprocesoare. Un protocol ingenios pentru pstrarea coerenei este interconectarea coerent scalabil (Scalable Coherent Interconnect), n care magistrala snoopy este nlocuit de un inel. Cache only Memory Architecture (COMA) este un caz special de memorie NUMA, n care memoria comun este convertit n cache.

2.4.4. Modelele Cluster i Grid Pentru creterea eficienei calculatorului serial (mrirea puterii de calcul i a timpului de rspuns) se pot avea n vedere trei soluii: creterea vitezei de operare a componentelor (care se lovete de nite limite fizice), paralelizarea procesului de calcul (prin algoritmi paraleli sau/i prin utilizarea unor structuri de calcul paralel), specializarea calculatoarelor pentru rezolvarea unei anumite clase de probleme. Calculatoarele paralele au o vitez i o capacitate de stocare superioare calculatorului serial. Dar un sistem paralel de tip MPP sau SMP performant are o durat de via relativ scurt (aproximativ o jumtate din durata de via i-o consum cu o singur aplicaie paralel complex) i un cost prea ridicat (doar instituiile militare de tip Pentagon sau instituii de cercetare de tip NASA i permit s achiziioneze astfel de sisteme). n acelai timp performanele PCurilor i a staiilor de lucru cresc, iar gradul lor de utilizare rmne sub 10%, dac nu sunt utilizate i n reea. Se caut soluii pentru rularea mai rapid a programelor paralele prin distribuirea sarcinilor de lucru pe mai multe calculatoare dintr-o reea. Se ajunge astfel la conceptele de cluster (ciorchine, n traducere liber) i grid (gril). Deseori se fac confuzii ntre cele dou concepte: cluster computing i grid computing. Este necesar s facem o distincie categoric ntre cele dou concepte: Cluster computing: este o colecie de staii de lucru (PC-uri, supercomputere, MPP,...) omogene sau neomogene, puternic cuplate ntr-o reea bine localizat (ntr-o ncpere sau n cteva locaii ale unei ntreprinderi), cu control centralizat, accesibil utilizatorilor de la terminalele staiilor de lucru prin intermediul unui software de administrare (uzual, GLUnix realizat n cadrul proiectului NOW sau CODINE, vezi i http://www.linux-ha.org/ClusterResourceManager ), prin intermediul cruia vd clusterul ca o unic resurs de calcul la fel de uor de utilizat ca un PC.

68

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Pentru programare n clustere se utilizeaz de obicei MPI (Message Pasing Interface) http://www-unix.mcs.anl.gov/mpi/ sau PVM (Parallel Virtual Machine) http://www.csm.ornl.gov/pvm/ ; Grid computing: este o colecie de resurse informatice eterogene (PC-uri, supercomputere, MPP, clustere, ....), fr o localizare determinat, fr control centralizat, fr o imagine de sistem unic, accesibil unor organizaii virtuale prin intermediul unui software suport (uzual, Globus Toolkit, http://www.globus.org/ ).

Deosebirile eseniale dintre cele dou concepte sunt date n tabelul 2.4.1. i vor fi explicate mai pe larg n acest paragraf. Caracteristicile unui cluster/ Cluster computing characteristics Sistem puternic cuplat/ Tightly coupled computers Management centralizat al joburilor i planificrii/ Centralized job management and scheduling system Imagine iluzorie de sistem unic/ Single system image (SSI) Carcteristicile unui grid/ Grid computing characteristics Sistem slab cuplat/ Loosely coupled system Management distribuit al joburilor i planificrii/ Distributed job management & scheduling Nu are imagine de sistem unic / No SSI

Tabel 2.4.1. Cluster Computing vs. Grid Computing

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

69

2.4.5. O schem de sintez

Fig. 2.4.2. O sintez a clasificrilor sistemelor de calcul [Dzi02]

70

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

2.5. Software pentru sistemele de calcul paralel i distribuit


2.5.1. Sisteme de operare multiuser din familia UNIX 2.5.2. Sistemul de operare Linux 2.5.3. Sistemul de operare PARIX 2.5.4. Parallel Virtual Machine (PVM) 2.5.5. Message Passing Interface (MPI) 2.5.6. Globus Toolkit

n gestiunea i managementul sistemelor distribuite se utilizeaz software specializat, n funcie de arhitectura sistemului: DOS (Distributed Operating Systems): sisteme de operare pentru sistemele distribuite puternic cuplate: multiprocesoare i multicalculatoare omogene (este ascuns i gestioneaz resursele hardware); NOS (Network Operating Systems): sisteme de operare pentru sistemele distribuite slab cuplate: multicalculatoare eterogene (ofer service pentru clieni de pretutindeni din reea); Middleware: nivel adiional al NOS, care intermediaz/traduce ntre entitile eterogene i asigur transparena.

2.5.1. Sisteme de operare multiuser din familia UNIX Surse: [DL03], [Dzi01] http://www.linux.org http://info.tech.pub.ro/~fionescu/CP/CP.html Sistemele de operare multiutilizator [multiuser operating system] sunt nzestrate cu mecanisme adecvate procesrii paralele. Cnd se implementeaz o problem pe un calculator paralel, prima sarcin este aceea de a o descompune, astfel nct procesoarele s lucreze simultan la obinerea soluiei. Comunicarea ntre procesoare poate ns s genereze anumite conflicte, care se pot evita, dac se are n vedere sincronizarea proceselor i minimizarea numrului de comunicaii. UNIX este cel mai uzual sistem multiuser. Acesta se bazeaz pe tehnica pipelining, pentru conectarea programelor sau ntreptrunderea execuiei

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

71

coproceselor concurente prin mecanismele fork i join. Mecanismul fork mparte procesul printe n dou coprocese distribuite, iar join recombin dou coprocese ntr-unul singur, cu posibilitatea ateptrii (delay), dac unul din ele nu este terminat. UNIX este o marc nregistrat a AT&T Bell Laboratories. Orice sistem care cuprinde cuvntul UNIX n numele su este considerat ca autentic. Restul sistemelor sunt clasificate n: Sisteme derivate din UNIX (UNIX based); Sisteme similare cu UNIX (UNIX like). UNIX based sunt sisteme personalizate de ctre un constructor pe propria main, a unui UNIX obinut prin licen de la AT&T. Numele cu sufixul NIX, IX, sau X se aplic versiunilor comerciale ale unor astfel de sisteme, de exemplu: XENIX care ruleaz pe toat gama de calculatoare personale, HP-UX (familia Hewlett-Packard 9000), A/UX (Apple MacIntosh), AIX/ESA (IBM), SINIX (Siemens), PARIX, pentru sistemele bazate pe transputere, DYNIX, pentru sistemul Sequent Symmetry .a. Un rol deosebit l ocup sistemele de operare SunOS i Solaris ale firmei Sun Microsystems, care fac parte tot din familia UNIX. UNIX este un sistem de operare multitasking i multiuser, utilizabil att pe un singur PC ct i pentru reele de PC-uri, care suport concepte ca: multiproces (poate planifica concurent spre execuie mai multe procese), multiutilizator (poate suporta simultan sesiuni de lucru pentru mai muli utilizatori), multiecran (pe ecranul calculatorului pot fi afiate rnd pe rnd mai multe ecrane virtuale), multi-interactiv (mai multe procese se pot executa simultan- grad nalt de multiprogramare). 2.5.2. Sistemul de operare Linux Linux este o versiune de UNIX, distribuit gratuit, dezvoltat n principal de Linus Torvalds la Universitatea din Helsinki, Finlanda. Mai muli programatori dedicai (hack-eri de sistem) i-au unit forele prin intermediul Internetului, dnd astfel oricrui amator posibilitatea s participe la dezvoltarea i modificarea sistemului. Nucleul Linux-ului nu utilizeaz deloc cod care s fie

72

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

n vreun fel proprietatea cuiva, mare parte din programele disponibile pentru Linux fiind dezvoltate n cadrul proiectului GNU al Fundaiei pentru Software Liber (Free Software Foundation) din Cambridge, Massachusetts. n plus, programatorii din ntreaga lume au contribuit la software-ul pentru Linux. Astzi, Linux este o variant de UNIX complet, capabil s execute Xwindows, TCP/IP, Emacs, pot electronic i tiri. Aproape toate pachetele de programe distribuite liber au fost transportate i pe Linux, tot mai multe aplicaii comerciale devenind disponibile i pentru acest sistem de operare. Linux este compatibil n mare msur cu un numr de standarde UNIX, incluznd caracteristicile IEEE POSIX. 1, System V i BSD, la nivel de surs. Scopul principal n timpul dezvoltrii acestui sistem de operare a fost acela de a asigura un nivel de compatibilitate ct mai mare cu restul sistemelor i aplicaiilor UNIX. Un numr mare de programe UNIX, accesibile liber, disponibile prin Internet sau altfel, pot fi compilate imediat pe Linux. n plus, tot codul surs al Linux-ului, incluznd nucleul, driverele pentru periferice, bibliotecile, programele utilizator i utilitarele de dezvoltare sunt distribuite liber. Caracteristicile Linux-ului sunt: controlul execuiei job-urilor tip POSIX, pseudoterminalele, suportul pentru versiuni naionale sau particularizate de tastatur folosind driverele de tastatur ncrcate dinamic i console virtuale. nucleul poate emula instruciuni n virgul mobil astfel nct toate programele pot fi executate i pe procesoare fr coprocesor integrat, pot fi memorate date n varii sisteme de gestiune a fiierelor: cel nativ, ext2fs, dar i Minix-1, Xenix, DOS i ISO9660 pentru discuri, posed o implementare complet a suitei de protocoale de comunicaie TCP/IP. Sunt incluse drivere pentru cele mai rspndite plci de reea Ethernet, implementri pentru SLIP, PLIP i PPP, sistem de fiiere n reea (NFS). De asemenea este inclus gama complet de servicii client i server TCP/IP, cum sunt ftp, telnet, smtp, nntp, poate lansa execuia programelor cu ajutorul tehnicii de paginare la cerere. adic numai acele poriuni de program necesare pentru execuie ntr-un anumit moment sunt citite de pe disc n memoria principal, utilizeaz partajarea de memorie ntre programe cu copiere la scriere, adic are loc o reducere a necesarului de memorie i deci o mai bun utilizare global a acesteia, pentru creterea memoriei disponibile pentru execuia programelor, Linux implementeaz paginarea pe disc, permind alocarea a pn la 256 MB a spaiului de swap; nucleul gestioneaz ntreaga memorie intern att pentru execuia programelor ct i pentru accesul mai rapid

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

73

la fiiere, de tip cache. n acest fel, toat memoria disponibil este utilizat pentru cache de fiiere; dac se ruleaz programe mai mari, zona de cache este diminuat corespunztor, programele executabile pot folosi legarea dinamic la bibliotecile partajate: codul bibliotecii, utilizat n comun, se gsete ntr-un unic fiier pe disc, adic programele executabile pot ocupa mai puin spaiu, exist i posibilitatea legrii statice, cnd codul este introdus n ntregime n fiierul executabil, pentru cei care doresc depanarea sau ntreinerea unor executabile complete, pentru a uura depanarea programelor, nucleul face posibil vidajul de memorie i analiza lui n cazul terminrii anormale, pentru a putea determina cauzele execuiei defectuoase. n UNIX/ Linux mai muli utilizatori pot folosi calculatorul n acelai timp executnd independent aplicaii diferite. Un utilizator este oricine care poate interaciona cu sistemul prin deschiderea unei sesiuni de lucru, fie de la un terminal, fie din alt sistem n cadrul reelei. Sistemele permit deschiderea simultan a mai multor sesiuni de lucru de ctre acelai utilizator. Consolele virtuale pot fi comutate apsnd simultan <Alt> mpreun cu una din tastele funcionale F1,F2,F3,F4. Contul unui utilizator este caracterizat de cteva atribute simple, scrise n fiierul /etc/passwd, unde sunt separate prin caracterul ':': :numele - desemneaz utilizatorul ntr-un mod unic i este format din litere, cifre, '.' sau '_'; :UID - ID-ul utilizatorului, un numr asociat numelui; :GID - ID-ul grupului de utilizatori implicit; parola - parola este un ir de caractere pe care l cunoate numai utilizatorul; numele real - alte informaii despre utilizator, n mod obinuit numele ntreg; directorul de baz - este directorul implicit iniial; fiecare utilizator trebuie s aib un director de baz, de obicei n /home, al crui proprietar trebuie s fie; shell pentru login - programul pornit de sistem pentru utilizator dup ce acesta este admis n sistem; de cele mai multe ori este un interpretor de comenzi (shell); Crearea unui nou utilizator poate fi fcut numai de ctre superuser folosind comenzi care pot diferi de la un sistem UNIX la altul. Aceste comenzi pot fi date fie direct prin intermediul interpretorului de comenzi, fie prin

74

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

intermediul programului sysadmsh care ofer faciliti de administrare a sistemului. Comenzi pentru gestiunea utilizatorilor: #adduser stabilete n dialogul cu administratorul sistemului toate elementele care caracterizeaz noul utilizator: nume, numr, apartenena la un grup, parola, shell-ul utilizat, etc. #rmuser folosit de superuser este pentru a terge un utilizator din sistem, $ cat/etc/passwd - afieaz coninutul fiierului care conine informaii despre utilizator; $ logname - afieaz numele utilizatorului curent, adic al utilizatorului care are o sesiune deschis pe terminalul sau ecranul de la care este dat comanda; $ whoami - afieaz numrul i numele de utilizator i de grup al utilizatorului curent; $ who - afieaz numele tuturor utilizatorilor activi la un moment dat pe un sistem UNIX, informaii despre terminalul la care se afl i momentul deschiderii sesiunii curente. Structura sistemului de fiiere UNIX/Linux Una din contribuiile importante ale UNIX-ului este ncercarea de standardizare a sistemelor de operare. Pe lng standardizarea serviciilor sistem i a comenzilor utilizator, un efort particular a fost depus i n domeniul sistemului de fiiere. n cazul Linux-ului, acest efort s-a concretizat ntr-un document numit Linux Filesystem Standard (Standardul sistemului de Fiiere Linux), prescurtat FSSTND, ajuns la versiunea 1.2. Cea mai important caracteristic a sistemului de fiiere Linux este structura sa arborescent, cu o rdcin unic. Partiia rmne baza pentru gestiunea spaiului pe discul magnetic, aa cum o cunoatem din DOS sau alte sisteme de operare. Prin formatare o partiie poate fi organizat ca sistem de fiiere, adic poate memora directoare i fiiere. Structura fiierelor ntr-o partiie este de asemenea arborescent, posednd. Sub Linux, o partiie devine disponibil utilizatorilor numai prin integrarea n arborele ierarhic de fiiere al unui calculator. Acest lucru se realizeaz prin montare. Montarea asociaz rdcina unei partiii cu o cale din sistemul de fiiere existent, cale care se numete punct de montare. De exemplu, montarea unitii de disc se poate realiza cu comanda: # mount [-t iso9660] /dev/cdrom /mnt/cdrom

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

75

La pornire, sistemul de operare monteaz o partiie n punctul de montare /, rdcina absolut a ierarhiei de fiiere a calculatorului. Aceast partiie gzduiete sistemul de fiiere rdcin. Sistemul de fiiere rdcin trebuie s conin anumite directoare, programe i fiiere de configurare necesare pornirii corecte a sistemului. Astfel, Linux permite o configurare extrem de flexibil: nucleul Linux i sistemul de fiiere rdcin se pot gsi oriunde: pe o dischet, pe o partiie DOS sau n reea, fr condiionri reciproce; singura problem este ca nucleul s tie unde este aceast partiie.
Structura subdirectoarelor din directorul rdcin este urmtoarea:

/ - directorul rdcin -bin - programele pentru comenzile eseniale -boot - fiierele statice ale ncrctorului -dev - fiierele speciale pentru acces la periferice -etc - fiierele de configurare locale -home - directoarele de baz ale utilizatorilor -lib - bibliotecile partajate -mnt - punct de montare temporar a altor partiii diverse -proc - pseudo-sistem de fiiere cu informaii ale sistemului de operare -root - directorul de baz pentru utilizatorul root -sbin - comenzile eseniale de sistem -tmp - director pentru fiiere temporare -usr - alte utilitare i biblioteci -var - date variabile.

76

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Interpretorul de comenzi/ interfaa SHELL. Accesul primar la calculator se face printr-un program care citete comenzile de la tastatur, le interpreteaz i le execut. Dincolo de aceast aparen simpl se ascund posibiliti sofisticate de combinare a programelor, fiiere de comenzi, monitorizarea i controlul execuiei. Shell-ul este interfaa primar a utilizatorului cu sistemul de operare. Un shell UNIX este n primul rnd un interpretor de comenzi, permind execuia bogatului set de utilitare UNIX. n al doilea rnd, shell-ul este un limbaj de programare care d posibilitatea combinrii acestor comenzi n activiti complexe. El ofer utilizatorului un control complet asupra programelor: execuia lor poate fi sincron sau asincron, intrrile i ieirile pot fi redirecionate, mediul de execuie poate fi ajustat dup dorin. n mod neinteractiv shell-ul citete comenzi dintr-un fiier. Astfel, utilizatorul poate folosi facilitile de programare ale shell-ului: variabile, structuri de control (if, while, for), subprograme. Unul din shell-urile tradiionale UNIX este BASH (acronim pentru Bourne-Again Shell), scris de Stephen Bourne. Toate comenzile interne ale shell-ului sunt disponibile i n bash. Facilitile de macroprelucrare sunt n conformitate cu POSIX 1003.2. Exemplu. S se sorteze n ordine invers lista fiierelor din directorul: $ ls cuprins bibliografie capitolul 2 capitolul 1 introducere

Soluie: $ ls > lista_fiiere $ sort -r lista_fiiere Rezultat afiat: introducere capitolul 1 capitolul 2 bibliografie cuprins

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

77

Metoda de mai sus necesit folosirea explicit a unui fiier intermediar temporar precum i execuia succesiv a unor comenzi. O soluie mai bun este oferit de shell i se numete prelucrare n conduct (pipelining). Prelucrarea n conduct permite s se conecteze un ir de comenzi n care ieirea standard a fiecreia dintre ele este conectat direct la intrarea standard a celei care urmeaz. Aceast conectare ntre o ieire i o intrare este simbolizat de caracterul "|". Astfel lista sortat este obinut prin conectarea n conduct a comenzii ls i a programului sort. $ ls | sort -r Pentru examinarea coninutului unui director mai mare, se folosete programul less (pentru vizualizare): $ ls /usr/bin | less Comenzi generale: $ date - afieaz data curent; $ exit - nchide sesiunea de lucru; $ man - aceast comand realizeaz o cutare a subiectului indicat n sistemul de fiiere cu documentaie de care dispune eventual sistemul; $ man man - pentru a afla informaii despre sistemul de manuale online; Observaie. Pe unele sisteme cu resurse reduse (memorie intern, spaiu pe disc) sistemul de manuale este nlocuit cu un help mai puin consumator de resurse, dar cu mai puine informaii: $ help who - se obin informaii despre opiunile comenzii who; Comenzi SHELL referitoare la fiiere: $ mkdir nume_catalog - creeaz un nou catalog (director) cu numele: nume_catalog, n directorul curent; $ rmdir nume_catalog - terge directorul nume_catalog; acesta trebuie s nu conin nici un fiier; $ pwd - afieaz catalogul curent de lucru al utilizatorului; $ cd [nume_catalog] - schimb catalogul curent, noul catalog de lucru fiind cel specificat n nume_catalog; $ ln nume_fiier nume_legatur - creeaz o noua legtur cu numele la fiierul nume_fiier; $ rm nume_fiier - terge fiierul nume_fiier; $ mv nume_vechi nume_nou - redenumete/ mut un fiier;

78

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

$ cp fiier_surs fiier_destinaie - copiaz fiiere $ find catalog_start -name fiier print - afieaz numele cataloagelor (din structura arborescent a crei rdcini este specificat ca prim parametru al comenzii), care conin fiierul cu numele fiier. Dezvoltarea de programe sub UNIX Pentru editarea fiierelor surs se poate folosi unul dintre urmtoarele editoare: vi, joe, jed. De exemplu, cel mai simplu i mai folosit mod de a apela vi este: $ vi nume_fisier unde nume_fiier este numele fiierului de editat. Dup introducerea acestei linii de comand, pe ecran vor fi afiate liniile de nceput ale fiierului. Pe ultima linie a ecranului apare un mesaj care const din numele fiierului i dimensiunea sa n cazul n care fiierul exist pe disc sau numele fiierului i mesajul No such file or directory sau New file n funcie de versiunea de vi. Dialogul utilizator/ vi se desfoar fie n modul comand, fie n modul introducere text. La terminarea introducerii textului se apas <ESC> pentru trecerea n modul comand. Exemple de comenzi vi: :wq salvarea pe disc i ieirea din vi; :w scriere n fiierul specificat n linia de apel a editorului fr nchiderea editorului; :w nume_fisier2 scrierea n fiierul nume_fisier2 (alt fiier dect cel specificat iniial n linia de apel); :q - ieirea din editor fr salvare dac nu s-au fcut modificri; :q! - ieirea din editor fr salvarea modificrilor.

O alt variant este lansarea shell-ului Midnight Commander prin comanda: $ mc i editarea fiierului surs ca i n Norton Commander sau Dos Navigator.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

79

Linux ofer un mediu complet UNIX pentru dezvoltarea de programe i aplicaii, incluznd bibliotecile standard, compilatoarele, depanatoarele i ntregul set de utilitare software necesar. n mod obinuit, dezvoltarea de programe pentru UNIX se face n limbajele C/C++. Compilatorul standard pentru aceste limbaje este compilatorul GNU, gcc pentru C i g++ pentru C++. n afar de C i C++, multe alte limbaje compilate sau interpretate sunt disponibile sub Linux, cum ar fi Smalltalk, FORTRAN, Pascal, Lisp, Scheme, JAVA i Ada. n plus, sunt disponibile asambloare pentru scrierea de cod n mod protejat pentru i80386. Interpretoare sofisticate, rspndite n lumea UNIX, cum este Perl sau Tcl/Tk pentru dezvoltarea de aplicaii sub Xwindow sunt disponibile i sub Linux. Depanatorul standard este gdb, care permite execuia controlat a unui program sau analiza unui vidaj de memorie. Cu ajutorul utilitarului Gprof se realizeaz culegerea de statistici referitoare la execuia unui program n scopul ameliorrii performanelor sale. Alte utilitare includ make pentru compilarea aplicaiilor mari i RCS, un sistem pentru ntreinerea versiunilor unui program. Legarea bibliotecilor se poate face dinamic, permind fiiere executabile mici sau nlocuirea de rutine din bibliotec cu rutine utilizator. Linux este astfel un mediu ideal pentru dezvoltarea de programe: modern, standard i bine echipat. Portabilitatea pe alte sisteme de tip UNIX este facil. Exemplu. Secvena de comenzi: $ gcc p1.c $ mv a.out p1 care este similar cu: $ gcc p1.c -o p1 $ p1 are ca efect compilarea programului p1.c n programul p1. Dac nu se specific parametrul [-o nume] compilatorul produce ca ieire executabilul a.out. Alte opiuni ale compilatorului gcc se pot gsi prin comanda: $ man gcc

Exemplu de opiuni: O realizeaz optimizarea codului executabil, este bine s se foloseasc n special, dac se urmrete viteza de execuie i nu lungimea codului;

80

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

c realizeaz numai compilarea, care n combinaie cu -o genereaz mai multe fiiere obiect care apoi vor fi link-edit-ate ntr-un singur executabil; l[biblioteca] introduce la link-edit-are biblioteca cerut, n desfurarea lucrrilor de laborator se va utiliza biblioteca matematic (lm) i pthread (lpthread); L/path d indicaii asupra localizrii bibliotecilor suplimentare, nu cele implicite ale compilatorului; I/path d indicaii asupra localizrii header-elor suplimentare.

Exemplu. Secvena: $gcc -c p1.c -o p1.o -I/home/user/include $gcc -c p2.c -o p2.o -I/usr/local/include $gcc p1.o p2.o main.c -L/usr/local/lib L/home/user/lib -lmylib -luser -o program

compileaz p1.c cu header-ele suplimentare n /home/user/include i genereaz p1.o; compileaz p2.c cu header-ele suplimentare n /usr/local/include i genereaz p2.o; compileaz main.c i genereaz executabilul program, el va fi link-edit-at cu obiectele p1.o i p2.o mpreun cu bibliotecile libmylib.a i libuser.a care se gsesc n /usr/local/lib i /home/user/lib.

Cutarea n biblioteci se face n ordinea specificrii opiunilor -l n linia de comand. Bibliotecile sunt fiiere cu extensia .a (archive file pentru biblioteci statice) sau .so (pentru biblioteci dinamice). Cele mai folosite biblioteci se afl n cataloagele /lib, /usr/lib i /usr/local/lib, dar pot exista i n /opt/lib n alte sisteme (dependent de distribuie). Pentru a verifica dac o rutin este inclus ntr-o anumit bibliotec se poate utiliza bibliotecarul UNIX ar i comanda: $ ar -t nume_biblioteca care va determina listarea la terminal a tuturor numelor rutinelor din biblioteca cu numele specificat. Numele bibliotecii trebuie s nceap cu lib i s aib extensia a

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

81

Dup ce o bibliotec a fost creat ea trebuie iniializat (se comunic sistemului existena unei noi biblioteci) cu comanda: $ ranlib libxxx.a Acum biblioteca poate fi semnalat compilatorului cu opiunea lxxx; se observ c nu se specific numele ntreg , ci numai secvena din nume cuprins ntre lib i extensie. Biblioteca folosit implicit n editarea de legturi este /usr/lib/libc.a. Utilitarul make a fost creat pentru ntreinerea programelor mari, compuse dntr-o mulime de fiiere surs, a cror compilare poate deveni problematic. Pe baza unui fiier de descriere, make determin care component trebuie recompilat i execut comenzile corespunztoare pentru recompilare. Fiierul de descriere al lui make se recomand a fi numit makefile sau Makefile dar poate avea orice nume dorit dac se lanseaz: $ make -f nume_makefile Un fiier makefile este n principal compus din reguli. O regul are schema urmtoare: INTA (sau SCOPUL): DEPENDENE COMANDA1 COMANDA2 INTA sau SCOPUL este de obicei numele unui fiier generat sau actualizat de program. O dependen este un fiier utilizat n crearea intei. O int poate avea mai multe dependene care apar pe aceeai linie. Exemplu. Se consider fiierul makefile: prog: principal.o sub1.o sub2.o cc -o prog principal.o sub1.o sub2.o principal.o: principal.c def.h sub1.o: sub1.c def.h sub2.o: sub2.c def.h clean: rm -rf prog *.o

82

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Acest fiier descrie dependenele programului executabil prog. Acesta este compus din modulele obiect principal.o, sub1.o, sub2.o. Este regula pe care make o aplic implicit. Dac unul din modulele obiect este mai recent dect executabilul, atunci se va da comanda de link-edit-are asociat. nainte de link-edit-are make va examina regulile urmtoare care determin generarea fiecrei dependene ale primei reguli. Aceste trei reguli descriu dependenele modulelor obiect de sursele corespunztoare i de fiierul antet def.h . Ele nu au comenzi: make tie c fiierele *.o se obin din fiierele *.c prin compilare. Din cauz c fiierul executabil depinde de aceste obiecte, ori de cte ori se modific o surs sau antetul, obiectul corespunztor va fi regenerat ceea ce va conduce la re-link-edit-area din prima regul. Ultima regul are inta clean i nu are dependene, deci nu va fi executat dect la comanda explicit a utilizatorului make clean. tergerea fiierului executabil i a celor obiect foreaz ulterior regenerarea complet a programului prog. n practic, fiierele makefile sunt sensibil mai complicate: includ alte fiiere makefile, conin definiri de variabile precum i prelucrri condiionate. Comenzi SHELL referitoare la gestiunea proceselor Pentru a obine o imagine a strii la un moment dat a proceselor sistem se poate utiliza comanda: $ ps [optiuni] Dac nu se specific alte opiuni se afieaz numai lista de procese asociate terminalului curent. Cteva din opiunile posibile: -a - afiarea de informaii despre toate procesele din sistem cu excepia proceselor de tip process group leaders i a proceselor neasociate cu un terminal; -e - afiarea de informaii despre absolut toate procesele din sistem; -f - listing complet; se caut att n memorie ct i n zona de evacuare (swapping) pentru a afla comanda complet cu care s-a creat procesul; dac nu se reuete, se afieaz numai numele prescurtat al comenzii ntre []. -l - format lung de afiare (informaie complet).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

83

Tot pentru vizualizarea proceselor din sistem se poate folosi programul top (Linux) prin comanda: $ top [opiuni] [fiier] Programul permite monitorizarea n timp real a proceselor din sistem i a altor parametrii cum ar fi ncrcarea sau utilizarea memoriei. Lista opiunilor: k - distruge un proces; i - afieaz doar procesele active; n sau # - modific numrul proceselor afiate; r modific prioritatea (vezi nice) a unui proces; S - schimb modul cumulativ; totalizeaz sau nu i timpul proceselor; s - schimba intervalul de actualizare a datelor pe ecran; f sau F - adaug sau scade cmpuri afiate; o sau O - modific ordinea de afiare a informaiilor;

Utilizatorul are posibilitatea s determine terminarea forat a unor procese care lucreaz, dureaz mult, nu evolueaz conform ateptrilor, sunt blocate n ateptarea unor condiii care nu se vor ndeplini niciodat. Pentru aceasta el are la dispoziie comanda: $ kill [numr_semnal] identificator_proces Comanda kill poate controla ntr-un mod mai complex execuia proceselor, mod dependent chiar de procesele controlate. Procesele pot primi din exterior semnale i pot reaciona la acestea n modul n care programatorul crede de cuviin. Semnalul SIGKILL (cu numrul 9) nu poate fi tratat de procese i efectul va fi ca procesul dispare. Opiunea -l tiprete o list a semnalelor disponibile n sistem pentru comunicarea cu procesele. Utilizarea cea mai frecvent este de forma: $ kill -SIGTERM 678

84

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

care transmite procesului cu identificatorul 678 semnalul SIGTERM n sperana c acesta se va termina. n administrarea sistemului se folosesc frecvent semnalele SIGHUP sau SIGINT pentru a comunica unor procese server faptul c s-au efectuat modificri n sistem i acestea vor trebui, de exemplu, s-i reciteasc fiierele de configuraie. Utilizarea semnalelor n acest scop depinde de fiecare caz n parte i este descris n documentaia fiecrui proces n parte. Modificarea prioritii de execuie a unui proces se realizeaz prin comanda: $ nice [-increment] comanda [argumente] Astfel comanda se va executa la o prioritate, de regul, mai mic. Prioritatea de planificare este un ntreg ntre -20 (cea mai mare prioritate) i 19 (cea mai mic). Valoarea increment se adaug prioritii motenite. Dac nu se specific, prioritatea este implicit egal cu 10. Crearea a noi procese de ctre utilizator va reprezenta subiectul lucrrii urmtoare. 2.5.3. Sistemul de operare PARIX PARIX este un sistem de operare destinat transputerelor. Limbajele de programare care permit, n momentul actual, utilizarea facilitilor acestui sistem sunt: C, ANSI C, PASCAL, MODULA, , C++, FORTRAN 77, FORTRAN 90. Fiecare procesor aparine partiiei de lucru destinat utilizatorului i deine o copie a programului. Comportarea diferit a procesoarelor se datoreaz: execuiei codului care depinde de poziia procesorului n reea; execuiei unor instruciuni identice asupra unor date diferite.

Topologia reelei fizice a unui sistem de transputere sub PARIX este bazat pe o gril tridimensional. Sistemul permite i emularea pe o gril bidimensional. Identificarea poziiei unui procesor este esenial pentru execuia unui program. Ea este realizat printr-un set de date globale pstrate n fiecare nod-element de procesoare. Principalele date sunt: dimensiunile spaiale ale reelei de procesoare;

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

85

numrul de procesoare din reea; poziia n spaiu a procesorului; identificatorul procesorului.

Identificatorul este utilizat pentru a atribui date sau cod unui anumit procesor. Mecanismul de accesare a datelor de identificare difer de la un limbaj la altul. Partea static a unui program sub sistem PARIX include un mecanism iniial de ncrcare care distribuie un program principal identic tuturor procesoarelor. Datele globale ale unui nod conin setul ce permite identificarea poziiei procesorului n reea (n structura rdcin). Depinznd de poziia proprie, fiecare procesor execut diferite seciuni ale programului. Facilitile de comunicare sub PARIX sunt reprezentate de legturile virtuale. O legtur virtual este o linie de comunicare ntre dou procesoare, bidirecional, sincronizat, ce nu utilizeaz buffere. Definirea corect a unui set de legturi virtuale permite construirea unei topologii virtuale, ca de exemplu arborele binar sau hipercubul. Exist patru tipuri de comunicare posibile n sistemul PARIX: comunicarea sincron printr-o legtur virtual. Procesele conectate printr-o legtur virtual sunt sincronizate n timpul comunicrii. Procesul care atinge primul un punct de comunicare ateapt intrarea n aceeai faz a celuilalt, astfel nct transferul de date are loc numai cnd ambele procese sunt pregtite pentru comunicare. Un proces poate atepta simultan comunicaiile prin mai multe legturi. Funciile C de bibliotec utilizate pentru comunicarea sincron printr-o legtur virtual sunt: Send( ), Recv( ), SendLink( ), RecvLink( ), Select( ); comunicarea sincron aleatoare nu necesit definirea unor legturi virtuale. Funciile C de bibliotec sunt: SendNode( ), ReceiveNode( ); comunicarea asincron printr-o legtur virtual. Se efectueaz simultan cu calculul. Emiterea i recepionarea informaiilor este realizat n timp ce procesul continu execuia. Mesajele sunt stocate n buffere intermediare att la emitor ct i la receptor. Funciile C corespunztoare sunt: AInit( ), ASend( ), ARecv( ), ASync( ); comunicarea asincron aleatoare este bazat pe principiul cutiilor potale. Nu este necesar o legtur virtual ntre cele dou procese care comunic. Transferul de date are loc pe baza utilizrii reelei fizice. Procesul receptor are posibilitatea de a gestiona cutia potal i poate

86

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

atepta sosirea unui anumit mesaj. Funciile PutMessage(), GetMessage( ), ExchangeMessage( ).

specifice

sunt:

Decizia de utilizare unui anumit tip de comunicare este la ndemna utilizatorului. Performanele cele mai ridicate se obin n cazul primelor trei tipuri. Pentru realizarea asincron a unor operaii distincte se utilizeaz tehnica thread (sarcin, obligaie), care permite rularea concurent n acelai context i partajarea tuturor variabilelor globale definite n program. Sincronizarea se realizeaz prin operarea asupra unor semafoare. Tehnica thread permite rularea concurent a mai multor procese pe un singur procesor. ntr-un sistem de calcul conceptul de proces este fundamental. Acesta este creat n memoria calculatorului de ctre sistemul de operare atunci cnd utilizatorul comand calculatorului execuia unui program i este format din instruciuni, date i o parte administrativ. n memoria calculatorului informaia unui proces se organizeaz n trei regiuni repartizate n dou zone: partea administrativ a procesului (tabelul paginilor de memorie alocate, fiiere deschise, valoarea registrului numrtor de program la pierderea controlului CPU etc.) este n zona alocat sistemului de operare, iar instruciunile i datele sunt repartizate n zona utilizator. Un proces poate fi activ (atta timp ct sistemul execut instruciuni ale sale) sau inactiv (cnd nu este n execuie i se afl ntr-una din strile: gata de execuie, n ateptare pe disc etc.). Sistemul de operare acioneaz ca un comutator, repartiznd diferitele procese diverselor procesoare (planificarea proceselor -scheduling) i protejnd zonele de memorie ale fiecrui proces fa de celelalte (gestiune a memoriei memory management). Procesele concurente pot fi create n mod static (dac sunt specificate naintea execuiei, n acest caz numrul de procese este fix) sau dinamic (dac se genereaz i se distrug n timpul execuiei, n acest caz numrul de procese este variabil). n ambele cazuri programele sunt compilate i transformate n coduri executabile naintea execuiei propriu-zise. Pentru execuia unui program paralel, procesele concurente pot fi grupate i asignate unor procesoare virtuale (uniti de planificare). Paralelismul este introdus att de ansamblul proceselor definite n cadrul programului ct i de ansamblul procesoarelor. Se definesc patru tipuri de paralelism: paralelismul pur (cnd fiecare proces este ncapsulat de un procesor virtual constituit dintr-un singur procesor); paralelism la nivel de utilizator (cnd un procesor virtual format dintr-un singur procesor are atribuite mai multe procese); paralelism la nivel de sistem (cnd un procesor virtual ncapsuleaz un singur proces, iar pe un procesor sunt definite mai multe

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

87

procesoare virtuale); paralelism dublu imbricat (cnd un procesor virtual ncapsuleaz mai multe procese i pe un singur procesor se definesc mai multe procesoare virtuale). Sistemele de operare sunt i ele programe paralele, chiar dac sunt formate din supervizoare separate pentru fiecare procesor (o copie a sistemului de operare), o structur stpn-sclav (un procesor - master lucreaz n mod supervizor, iar celelalte -slave, lucreaz n mod utilizator), sau o structur simetric (sistemul de operare se execut de ctre toate procesoarele). n cazul n care limbajul de programare paralel nu permite exprimarea explicit a paralelismului, pentru crearea i distrugerea proceselor paralele se pot folosi construcii de tipul process_fork (care are ca efect copierea zonei de memorie ocupat de procesul printe de un numr de ori dat de numrul proceselor nou create, cu excepia regiunii partajate cu alte procese) i process_join (care are ca efect asocierea proceselor). Conceptul de thread sau proces uor (lightweight), permite realizarea unei operaii echivalente cu process_fork, dar mult mai rapid. Cnd se ncarc programul n memorie, se creeaz un numr de copii ale procesului printe, egal cu numrul de procesoare, iar dup ncrcare se trece controlul procesului printe, singurul care se execut. Cnd acesta apeleaz process_fork, threadurile vor ncepe execuia din punctual indicat n apel, iar la ntlnirea unui apel process_join, tread-ul este suspendat i nu distrus, ceea ce va permite reutilizarea sa, ntlnirea unui nou process_fork. Pentru aceast operaie se extinde modelul de proces prin crearea unei biblioteci pentru thread-uri sau prin modificri ale sistemului UNIX (utilizarea sistemului MACH, SYMUNIX, TROLLIUS sau IDRIS, vezi [Gri00]). O facilitate dinamic este posibilitatea de ncrcare a unui cod adiional la orice moment pentru unul sau mai multe procesoare. Funcia C de bibliotec care permite apelul unor coduri adiionale este Execute( ). Fiecrei legturi virtuale i se asociaz un bloc de control a legturii, LinkCB. Comunicaiile prin legturile virtuale se realizeaz pe baza accesrii blocului LinkCB corespunztor. ntr-o topologie virtual, comunicarea datelor se efectueaz pe baza aceluiai mecanism, dar blocul de control este nlocuit cu anumite adrese topologice, identificate prin ID i poziii relative. Topologiile virtuale au fost construite pentru a uura munca utilizatorului. Legturile care constituie structura unei grile tridimensionale pot fi gestionate separat de legturile care formeaz, de exemplu, un hipercub. O legtur dintr-un asemenea context poate fi specificat prin numrul de legtur relativ la topologia virtual. Astfel, se pot conferi nume simbolice legturilor unei grile bidimensionale, *sud*, de exemplu, sau legturii *printe* ntr-un arbore. Funciile Send( ),

88

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Recv( ), ASend( ), ARecv( ) opereaz asupra topologiilor virtuale prin specificarea orientrii relative n topologie, iar funciile SendLink( ), RecvLink( ) se refer direct la blocul de control LinkCB. Biblioteca topologiilor virtuale ajut programatorul n construirea reelelor de comunicare pentru anumite probleme standard. n plus, prin utilizarea topologiilor din bibliotec, la execuie se realizeaz implicit o optimizare a legturilor virtuale pe structura fizic de comunicare. Astfel, la nivelul: - legturilor virtuale, transpunerea pe reea se realizeaz implicit; - topologiilor definite de utilizator, transpunerea se face de asemenea implicit; - topologiilor din bibliotec, se realizeaz optimizarea proieciei pe reeaua fizic. Este permis adugarea unor legturi suplimentare ntr-o topologie virtual. n acest scop au fost construite o serie de funcii care extrag blocul de control al unei legturi dintr-o topologie dat. Multiplicarea mesajelor se explic prin faptul c la execuie programul este multiplicat la numrul de procesoare specificat n comanda run. Comportarea fiecrui procesor este determinat de poziia procesorului n reea. Structura definitorie pentru poziia procesorului n configuraie este: GET_ROOT()->ProcRoot (din fiierul root.h) care conine o serie de informaii: typedef struct { int MyProcID; /*identificatorul procesorului*/ int MyX; /*coordonata pe axa x*/ int MyY; /*coordonata pe axa y*/ int MyZ; /*coordonata pe axa z*/ int nProcs; /*numarul de procesoare*/ int DimX; /*dimens. max. a grilei pe axa x*/ int DimY; /*dimens. max. a grilei pe axa y*/ int DimZ; /*dimens. max. a grilei pe axa z*/ } RootProc_t;

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

89

2.5.4. Parallel Virtual Machine (PVM) Surse: [DL03], Pagina oficial a PVM: http://www.epm.ornl.gov/pvm/pvm_home.html

PVM (Parallel Virtual Machine) este un pachet de programe dezvoltat de Oak Ridge National Laboratory, Universitatea statului Tennessee i Universitatea Emory, care permite ca o mulime eterogen de maini UNIX (PC, staii de lucru, calculatoare paralele, calculatoare vectoriale), legate n reea, s funcioneze ca un singur calculator paralel. Astfel, prin utilizarea puterii de calcul a mai multor calculatoare, pot fi rezolvate probleme care necesitau utilizarea unor calculatoare paralele foarte puternice, prohibitive din punct de vedere al costului (circa 10 mil. $). Mai mult dect att, dac se vor conecta n aceast reea si cteva calculatoare masiv paralele sau supercalculatoare, se poate obine o putere de calcul foarte greu de realizat n alt mod. Proiectul PVM a fost demarat n vara anului 1989 la Oak Ridge National Laboratory. Sistemul prototip PVM 1.0 a fost conceput de Vaidy Sunderam si Al Geist, aceast versiune fiind utilizat numai n cadrul laboratorului. Versiunea 2 a PVM a fost scris la Universitatea Tennessee si distribuit n martie 1991. Deja n anul urmtor, PVM era utilizat pentru rezolvarea multor probleme tiinifice. Versiunile PVM 2.1 pn 2.4 au fost dezvoltate pe baza sugestiilor primite de la utilizatori, astfel corectndu-se unele greeli si operndu-se mici modificri. n februarie 1993, PVM a fost complet rescris si a fost distribuit ca PVM 3. Cu versiunea PVM 3.3.0 din iunie 1994 a fost adugat si o interfa grafic X-window, numit XPVM. Pagina oficial a PVM-ului este la http://www.epm.ornl.gov/pvm/pvm_home.html. Software-ul i documentaia pot fi obinute prin ftp anonim de la netlib.att.com i netlib2.cs.utk.edu/pvm3 sau http://www.netlib.org/pvm3. PVM asigur un mediu de lucru unitar n care programele paralele pot fi dezvoltate ntr-o manier eficient, utiliznd mediul hardware deja existent. Se asigur o transparen n rutarea mesajelor prin reea, n conversia datelor si n planificarea taskurilor pe calculatoarele din reea (care sunt diferite). Modelul de calcul utilizat de PVM este simplu: utilizatorul va scrie aplicaiile ca o colecie de taskuri care coopereaz. Aceste taskuri vor accesa resursele PVM cu ajutorul unor biblioteci de rutine de interfa. Rutinele din cadrul bibliotecilor asigur iniierea si terminarea taskurilor, comunicarea si sincronizarea ntre taskuri. n orice punct al execuiei unei aplicaii concurente, orice task n

90

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

execuie poate iniia sau termina alte taskuri, poate aduga sau elimina calculatoare din maina virtual. Sunt incluse facilitatea de asigurare a toleranei la defecte. Astfel, dac unul sau mai multe calculatoare "cad", se asigur funcionarea n continuare a mainii virtuale. Utilizatorii pot scrie aplicaii paralele n Fortran sau C utiliznd Rutinele din bibliotecile PVM. Modelul de programare utilizat este cel cu transfer de mesaje (message-passing), adic prin trimiterea si recepionarea mesajelor, taskurile aplicaiei pot coopera pentru a rezolva o problem n paralel . PVM este utilizat n peste o mie de locuri din lume ca o alternativ, eficient din punct de vedere al raportului cost/performane, pentru calculatoarele paralele puternice. n Statele Unite cei mai importani utilizatori sunt NASA i Departamentul Energiei, fr s mai lum n considerare numeroasele universiti unde este utilizat att pentru cercetare ct si pentru realizarea orelor de aplicaii. i la noi n ar PVM este utilizat n unele universiti, dintre acestea se pot aminti Universitatea Transilvania Braov (unde se desfoar un seminar PVM), Universitatea Tehnic "Gh. Asachi" Iai (n cadrul orelor de aplicaii la disciplinele de calcul paralel ;i distribuit), Universitatea "Politehnica" Bucureti, Universitatea Tehnic Timioara i Universitatea din Oradea. Mai exist cteva sisteme software cu o funcionalitate asemntoare, dintre acestea se pot aminti: P4 (Argonne National Laboratory), Express (ParaSoft Corporation), Linda (Scientific Computing), MPI-Message Passing Interface. Obiectivul general al sistemului PVM este s permit unei mulimi de calculatoare s fie utilizat pentru calculul paralel sau concurent. Prezentm pe scurt principiile pe care se bazeaz PVM: "Host-pool" configurat de utilizatori: taskurile aplicaiei sunt executate pe un set de maini (hosts) care sunt selectate de utilizatori pentru o rulare dat a PVM. Din acest host-pool pot face parte att maini uniprocesor, ct si maini multiprocesor (incluznd calculatoare cu memorie partajat si cu memorie distribuit). n timpul rulrii acest host-pool poate fi modificat prin adugarea sau eliminarea unor maini, aceasta fiind o trstur important pentru asigurarea toleranei la defecte. Acces transparent la hardware: programele de aplicaie pot vedea mediul hardware ca o colecie de procesoare virtuale asemenea sau pot alege ca pri ale problemei s fie rulate pe o anume gazd, adic pe cea mai potrivit pentru subproblema respectiv. Calcul bazat pe procese: unitatea de calcul n cadrul PVM este taskul (adeseori, dar nu totdeauna un proces UNIX). Nu este implicat o mapare proces - procesor, n particular mai multe taskuri pot fi executate ntr-un singur procesor.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

91

Model message-passing explicit: taskurile unei aplicaii coopereaz prin trimitere si recepionare de mesaje. Mrimea mesajelor este limitat doar de mrimea memoriei disponibile. Suport pentru eterogenitate: sistemul PVM suport eterogenitatea n termenii mainii, ai reelei i ai aplicaiilor. n ceea ce privete schimbul de mesaje, PVM permite ca mesajele s conin mai mult de un singur tip de date i s fie schimbate ntre maini cu reprezentri diferite ale datelor. Suport pentru multiprocesoare: PVM utilizeaz facilitile hardware native de transfer a mesajelor din cadrul sistemelor multiprocesor.

Sistemul PVM este alctuit din dou componente: Prima parte este reprezentat de un demon, numit pvmd3 sau pvmd, care trebuie lansat pe fiecare procesor fizic participant la maina virtual. Denumirea demon vine de la faptul c respectivul program este lansat n background (n fundal) i rmne n ateptarea unei solicitri la care s rspund. Acest demon a fost proiectat, astfel nct orice utilizator s-l poat instala pe orice main, dac dispune de un login valid. Cnd un utilizator dorete s ruleze o aplicaie PVM, va trebui s-i creeze maina virtual si apoi s porneasc maina. O aplicaie PVM poate fi pornit de la orice gazd. Mai muli utilizatori pot configura maini virtuale care se pot suprapune, iar fiecare utilizator poate executa cteva aplicaii PVM simultan. A doua component este reprezentat de o bibliotec de rutine PVM. Aceasta conine un set complet de primitive care sunt necesare pentru cooperarea ntre taskuri . Conine setul de funcii prin intermediul crora o aplicaie PVM poate folosi mecanismele de schimb de mesaje, sincronizare ntre procese, de creare de noi procese sau de modificare a mainii virtuale oferite de PVM. Deoarece PVM suport programe scrise n limbajele C si FORTRAN, vor exista de fapt dou biblioteci, una pentru C (libpvm3.a) si alta pentru FORTRAN (libfpvm3.a). Modelul de calcul utilizat se bazeaz pe faptul c o aplicaie este alctuit din mai multe taskuri. Fiecare task este responsabil pentru calculul unei pri a problemei. O aplicaie poate accesa resursele de calcul n trei moduri diferite: modul transparent - n care taskurile sunt plasate automat de sistem pe maina cea mai potrivit, fr intervenia utilizatorului.

92

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

modul dependent de arhitectur - n care utilizatorul poate indica o arhitectur specific pe care un task s fie executat. modul lowe-level, cu specificare a mainii - n care utilizatorul poate specifica o main anume pe care s se execute un anumit task.

Aceast flexibilitate permite diferitelor taskuri ale unei aplicaii s exploateze eficient puterea de calcul din cadrul mainii virtuale. Dac o aplicaie este paralelizat din punct de vedere al funciilor pe care le realizeaz, adic fiecare task execut o funcie diferit (de exemplu intrare, soluionare, ieire, afiare), acest proces se numete paralelism funcional. O alt metod de paralelizare este exploatarea paralelismului datelor. n cadrul acestei metode toate taskurile sunt identice, dar fiecare din ele deine i utilizeaz pentru rezolvare numai o parte din date. Acest model mai este denumit SPMD (Single Program Multiple Data). Ambele modele, sau o combinaie a lor, pot fi utilizate pentru a dezvolta o aplicaie PVM. Toate taskurile PVM sunt identificate cu un ntreg numit task identifier (TID). Aceste TID-uri trebuie s fie unice n cadrul mainii virtuale si sunt asigurate de demonul pvmd local (deci nu sunt alese de utilizator). PVM conine rutine care returneaz valoarea TID, astfel nct aplicaiile pot identifica taskurile din sistem. Pentru a programa o aplicaie, un utilizator va scrie unul sau mai multe programe secveniale n C, C++, Fortran 77, cu apeluri la rutinele din bibliotecile PVM. Fiecare program va fi de fapt un task, toate aceste taskuri formnd aplicaia, a crui execuie poate fi paralelizat prin intermediul unor primitive de comunicaie prin mesaje, tipice oricrei maini MIMD cu memorie distribuit. n acest fel, prin schimb de mesaje, mai multe task-uri pot coopera pentru rezolvarea paralel a unei probleme. Fiecare task va fi compilat pentru fiecare arhitectur existent n host-pool i fiierele se vor plasa la locaii accesibile mainilor din host-pool. Pentru a executa o aplicaie, un utilizator iniiaz o copie a unui task (numit task master) de la o main din host-pool, iar acesta va iniia taskuri PVM care pot fi rulate pe alte maini sau pe aceeai main cu taskul master. Acesta este scenariul tipic, dar pot exista situaii n care mai multe taskuri sunt iniiate de utilizator, iar ele pot iniia la rndul lor alte taskuri. Consola PVM Consola PVM este un task PVM de sine stttor care permite utilizatorului s porneasc, s interogheze i s modifice maina virtual. Consola poate fi pornit si oprit de mai multe ori pe orice gazde din PVM fr a afecta rularea PVM sau a altor aplicaii. La pornire consola PVM determin dac nu cumva aceasta ruleaz, dac nu, pvm execut pvmd pe acea gazd i apoi execut pvmd, dar de aceast dat cu opiunea slave, pe celelalte gazde din configuraie. La pornire se afieaz un prompter:

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

93

pvm> i se ateapt introducerea unei comenzi. Pentru mai multe detalii despre PVM se poate consulta [DL03] precum pagina oficial a PVM: http://www.epm.ornl.gov/pvm/pvm_home.html. 2.5.5. Message Passing Interface (MPI)

Sursa web: http://www-unix.mcs.anl.gov/mpi/ MPI este un mediu de programare bazat pe transmitere de mesaje, open source, pentru programarea sistemelor paralele masive i a staiilor de lucru din clustere. La pagina indicat mai sus se pot gsi detalii despre MPI i chiar i articole care fac comparaii ntre MPI i PVM. De asemenea se poate descrca gratuit i se poate instala o versiune a MPI. Tot aici se gsesc i diverse articole i manuale pentru nvarea MPI. S-a ajuns la MPI Standard 2.0 i este disponibil gratuit implementarea portabil MPICH, standardul pentru bibliotecile bazate transmitere de mesaje, disponibil la adresa de mai sus.

2.5.6. Globus Toolkit Sursa web: Pagina oficial a comunitii Globus: http://www.globus.org/ Globus Toolkit este standardul de facto al arhitecturii Grid, este un software open source utilizat n configurarea i proiectarea grid-urilor. Versiunea Globus 1.0 a aprut n 1998 A nceput s fie dezvoltat de Globus Alliance i de muli ali participani din ntreaga lume. Un numr tot mai mare de proiecte i companii folosesc Globus Toolkit pentru a exploata potenialul gridurilor. Comunitatea open source Globus Alliance produce o vast varietate de componente software pentru Grid. Problemele cheie n configurarea i utilizarea sistemelor Grid n aplicaii de mare complexitate sunt: punerea n comun a resurselor (calculatoare, spaiu de stocare, senzori, reele), condiionat de problema ncrederii, politici, negocieri, plat; rezolvare coordonat de probleme (integrarea resurselor distribuite, calcul colaborativ, organizaii virtuale dinamice i multi-instituionale); reorganizarea dinamic comunitii (numeroas sau restrns, static sau dinamic).

94

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Principalele cerine pentru buna funcionare a unui Grid sunt: autentificarea, autorizarea i politici, descoperirea de resurse, caracterizarea resurselor, proiectarea de algoritmi distribuii, accesul la date de la distan i transfer de mare vitez a datelor. n rezolvarea problemelor de programare, utiliznd Gridul, trebuie avute n vedere urmtoarele aspecte: facilitarea dezvoltrii de aplicaii complexe, facilitarea utilizrii codului n comun, existena mediilor de programare (API, SDK) n rezolvarea problemelor de sistem trebuie s lum n considerare: folosirea coordonat de resurse, accesul la infrastructur (autoriti de certificare, servicii informaionale), existena sistemelor (protocoale, servicii). Serverul GASS (Global Access to Secondary Storage) utilizat la sistemele Grid permite urmtoarele faciliti: simplific rularea aplicaiilor care folosesc fiierele de I/O ctre mediul Globus; librriile i utilitarele sale permit eliminarea nevoii de a efectua manual logarea la site-uri i fiiere ftp. Pe serverul GASS se instaleaz un sistem distribuit de fiiere utilitare, cum ar fi: globus-gass-server, care permite utilizatorului pornirea unui server GASS de sine stttor n care se pot ncrca/descrca fiierele din sistemul local de fiiere; globus-gass-server-shutdown, care permite oprirea serverului GASS anterior pornit aflat la distan; globus-gass-put, care permite ncrcarea unui fiier n serverului GASS de la distan; globus-gass-get, face posibil descrcarea unui fiier n serverului GASS de la distan; globus-gass-cache, care d permisiunea unui utilizator s manipuleze coninutul unui server local sau la distan i diverse funcii ca: add, cleanup_tag, cleanup_file, list, delete. Alte concepte importante utilizate de Globus Toolkit sunt: GRAM (Globus Resource Allocation Manager); MDS (Monitoring and Discovery Service); (GRIS) Grid Resource Information Service; (GIIS) Grid Index Information Service. Cei interesai de utilizarea soluiilor oferite Globus Toolkit n aplicaii Grid vor gsi documentaia i pachetele necesare instalrii softului la pagina web: http://www.globus.org/toolkit/.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

95

CAPITOLUL 3 INTERCONECTAREA N SISTEMELE DE CALCUL PARALEL I DISTRIBUIT


3.1. PRAM, un calculator paralel idealizat 3.2. Procedee de interconectare n arhitecturile sistemelor de calcul paralel i distribuit. Reele de calculatoare 3.2.1. Reea de tip crossbar 3.2.2. Interconectarea de tip switchboard 3.2.3. Reea de interconectare cu legturi directe limitate 3.2.3.1. Magistrala comun (bus) 3.2.3.2. Reeaua liniar i ciclic 3.2.3.3. Reeaua de tip amestecare perfect 3.2.3.4. Reeaua arborescent 3.2.3.5. Reeaua de tip latice 3.2.3.6. Reeaua de tip hipercub

3.1. PRAM: un calculator paralel idealizat


PRAM (Parallel Random Access Machine), este un model teoretic de calculator paralel cu memorie partajat. Formal, un PRAM const n p procesoare i o memorie global nelimitat, accesibil uniform tuturor procesoarelor. Astfel, toate procesoarele acceseaz acelai spaiu de adrese. Procesoarele partajeaz un ceas comun, astfel nct pot executa instruciuni diferite n acelai ciclu. Ca urmare, modelul PRAM are o memorie partajat sincron, n maniera calculatoarelor MIMD. Un model PRAM idealizeaz modelul secvenial de calcul, n sensul c este o extensie natural a acestuia i furnizeaz o metod nelimitat de interaciune ntre calculatoare. ntr-un astfel de model idealizat, orice procesor are posibilitatea de a scrie i a citi simultan n aceeai locaie de memorie.

96

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Modelul PRAM poate fi mprit n patru subclase, n funcie de modul de accesare simultan a memoriei: 1.) PRAM-EREW (Exclusive-Read, Exclusive-Write) n acest model este exclus scrierea sau citirea concurent ntr-o locaie de memorie. 2.) PRAM-CREW (Conccurent-Read, Exclusive-Write) n acest tip este permis scrierea concurent, iar citirea este serializat. 3.) PRAM-ERCW (Conccurent-Read, Conccurent Write) Este modelul opus lui PRAM-CREW. 4.) PRAM-CRCW (Conccurent-Read, Conccurent-Write) Este modelul cel mai puternic, n care sunt permise att scrierea ct i citirea concurent. Protocoalele de rezolvare a conflictelor n modelele descrise, pot fi: protocol comun: toate procesoarele care execut o operaie de scriere ntr-o locaie de memorie trebuie s scrie aceeai valoare comun; protocol prioritar: fiecrui procesor i se asociaz un index, prioritate de scriere va avea procesul cu indexul mai mic; protocol arbitrar: procesorul care scrie mai puin are prioritate de acces la o locaie de memorie fa de restul. n realitate, n calculatoarele paralele, procesoarele sunt legate ntre ele prin diverse reele de interconectare concrete i au posibiliti limitate de comunicare.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

97

3.2. Procedee de interconectare n arhitecturile sistemelor de calcul paralel i distribuit. Reele de calculatoare

3.2.1. Reea de tip crossbar 3.2.2. Interconectarea de tip switchboard 3.2.3. Reea de interconectare cu legturi directe limitate 3.2.3.1. Magistrala comun (bus) 3.2.3.2. Reeaua liniar i ciclic 3.2.3.3. Reeaua de tip amestecare perfect 3.2.3.4. Reeaua arborescent 3.2.3.5. Reeaua de tip latice 3.2.3.6. Reeaua de tip hipercub

ntr-un sistem de calcul paralel ideal de tip PRAM, fiecare procesor este conectat cu oricare altul. n practic, ns, acest tip de interconectare este posibil numai pentru un numr redus de procesoare. n construirea calculatoarelor paralele, un rol important l joac tipul de problem care se rezolv pe maina respectiv, ceea ce influeneaz numrul de conexiuni ntre procesoare. Reconfigurarea logic este posibil, dar are un efect negativ asupra timpului de execuie: dac cerinele de conectare pentru un algoritm dat nu corespund configuraiei reelei, atunci comunicarea ntre procesoare va reduce viteza de execuie. Performanele unei arhitecturi paralele depind mult de numrul de procesoare dar i de modul n care acestea sunt interconectate (v.[Pet94], [Gri00], . a.). Se utilizeaz o mare varietate de tipuri de interconectri, obinndu-se o multitudine de topologii arhitecturale, cum ar fi: structuri liniare, structuri ciclice, amestecare perfect, arbore binar, latice, hipercub .a. n descrierea unei reele de interconectare trebuie s avem n vedere: topologia reelei (dinamic sau static), modul de operare (sincron sau asincron), tehnica de comutare a circuitelor sau pachetelor i tipul mecanismului de control (global sau local).

98

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Vom descrie succint principalele tipuri de reele de interconectare. 3.2.1. Reea de tip crossbar Este o topologie a unei arhitecturi paralele sub form de reea ideal, n care fiecare procesor este conectat direct cu oricare altul. n fig. 3.2.1. avem o reea cu 4 procesoare. Cerinele constructive i preul mare nu permit ns realizri acceptabile pentru structuri cu mai mult de 16 procesoare.

Fig. 3.2.1. Reea de tip crossbar cu 4 procesoare

3.2.2. Interconectarea de tip switchboard Este o topologie n care interconectarea procesoarelor se face indirect, prin intermediul unei puni de legtur numit switchboard, astfel nct ntr-un numr mic de pai pot fi conectate oricare dou procesoare. Se pot face i conexiuni directe ntre procesoarele nvecinate.

Fig. 3.2.2. O reea de tip switchboard cu 6 procesoare

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

99

3.2.3. Reea de interconectare cu legturi directe limitate 3.2.3.1. Magistrala comun (bus) 3.2.3.2. Reeaua liniar i ciclic 3.2.3.3. Reeaua de tip amestecare perfect 3.2.3.4. Reeaua arborescent 3.2.3.5. Reeaua de tip latice 3.2.3.6. Reeaua de tip hipercub n acest tip de arhitectur paralel, fiecare procesor este conectat direct cu un anumit numr de alte procesoare, topologia reelei depinznd de problema de rezolvat. Vom descrie n continuare cele mai importante modele de acest tip. 3.2.3.1. Magistrala comun (bus) Este cea mai simpl soluie din punct de vedere logic i constructiv al modului de interconectare a procesoarelor ntr-un sistem de calcul paralel, n care procesoarele comunic ntre ele doar prin intermediul memoriei comune. Aceast soluie este puin performant, datorit limitrilor de comunicare. 3.2.3.2. Reeaua liniar i ciclic ntr-o reea liniar, un procesor Pi este conectat cu vecinii si Pi-1 i Pi+1. Reeaua ciclic aduce un plus de flexibilitate prin stabilirea unei comunicri i ntre primul i ultimul procesor (v. Fig. 3.2.3).

Fig.3.2.3 Conexiunea liniar i ciclic de ordinul n

100

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

3.2.3.3. Reeaua de tip amestecare perfect Att numele acestei reele, ct i modul de conexiune al procesoarelor care o caracterizeaz provin dintr-o problem de zi cu zi (din viaa unui amator de jocuri de noroc!): amestecarea perfect a crilor de joc dintr-un pachet. Astfel, s presupunem c un pachet cu n=2m cri de joc numerotate de sus n jos C0,,Cn1, este tiat n dou pri egale, formate din primele n/2 cri i din ultimele n/2 cri, pri care apoi se intercaleaz la fel ca n figura 3.2.4. (unde am luat n=8).

Fig.3.2.4. Amestecare perfect pentru n=8

Acest proces este cunoscut sub numele de amestecare perfect (iar realizarea lui depinde de experiena juctorului de cri!). Se poate observa, c amestecarea perfect se bazeaz de fapt pe o permutare, pe care o notm cu . Ceea ce ne intereseaz este rezultatul acestei permutri, (i), unde am notat cu (i) indicele crii care ocup poziia i n urma amestecrii (i = 0, , n1):

: 0 1 n 1 1 n + 1 2 ... 1 n 1 n 1
2 2 2
Prin urmare, 0 este conectat cu el nsui, 1 este conectat cu 4 care este conectat cu 2 care, la rndul su este conectat cu 1, .a.m.d. Se observ uor c 1(x)=2x (modulo n1) pentru x=0,,n2, i 1(n1) =n 1. n cazul execuiei paralele, procesoarele P0, , Pn1 sunt conectate dup cum urmeaz: PiP1(i) (i = 0,, n1) P0P1,, Pn2 Pn1.

4 ...

n2

n 1

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

101

Reeaua de tip amestecare perfect este utilizat n algoritmi de sortare. 3.2.3.4. Reeaua arborescent Numeroi algoritmi de rezolvare a problemelor de sortare, cutare, evaluare a expresiilor algebrice, clasificare i luarea de decizii n teoria jocurilor pot fi implementai convenabil pe calculatoare paralele ale cror procesoare sunt conectate n structur de arbore binar. din acest motiv, vom studia n continuare caracteristicile i aplicabilitatea unui asemenea tip de reea. Figura 3.2.5 prezint arborele binar Bn de ordinul n, cu 1+2+22++2n1=2n1 vrfuri i 2n2 muchii. ntr-un asemenea sistem, fiecare procesor de al nivelul k este conectat direct cu exact zero sau dou procesoare de la nivelul k+1; invers, fiecare procesor de la nivelul k+1 este conectat direct cu un singur procesor de la nivelul k, cu excepia procesorului de la nivelul 0, care corespunde nodului rdcin. n general, n cazul unui sistem SIMD cu aceast conectivitate, calculele de la nivelul k sunt executate simultan de ctre toate procesoarele, acestea acionnd sub controlul unitii centrale de procesoare. n exemplul urmtor se presupune ca fiind egal costul trecerii datelor dea lungul unei legturi, lucru care n practic poate s nu fie adevrat. S presupunem, deci, c dorim s determinm suma a s=2n-1 numere.

Fig.3.2.5 Arborele binar Bn de ordinul n

102

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Metoda de rezolvare: Presupunem s=8 i n=4 (cazul general se poate deduce imediat) i memorm numerele, fie ele x8,,x15, n P8, , P15. Pasul 1: adunm x8 i x9 n P4 i memorm rezultatul ca x4 (v. Fig.3.2..3.); adunm x10 i x11 n P5 i memorm rezultatul ca x5, etc.; Pasul 2: adunm x4 i x5 n P2 i memorm rezultatul ca x2, etc.; Pasul 3:adunm x2 i x3 n P1 i memorm rezultatul ca x1. La fiecare nivel calculele se execut simultan; evident n exact n-1=log2s pai paraleli, iar suma va apare n P1.

3.2.3.5. Reeaua de tip latice n cazul unei structuri de conectare de tip latice (sau gril ptrat), arhitectura const din n2 procesoare, fiecare conectat cu cei patru vecini ai si, dup cum se vede n figura 3.2.6, n cazul n=4.

Fig.3.2.6 Reeaua latice cu n = 4

Dac procesoarele sunt numerotate P(i,j), i,j{1,,n}, atunci P(i,j) este conectat cu P(i,j-1),P(i,j+1),P(i-1,j), P(i+1,j). n mod normal, procesoarele de la margini sunt conectate ciclic: P(1,1) cu P(1,n) i P(n,1); P(1,2) cu P(n,2) .a.m.d., ceea ce nseamn c valorile ce numeroteaz procesoarele sunt considerate modulo n. Prin urmare, este mai firesc s nelegem desfurarea laticei pe un thor i nu pe un plan. Un sistem de tip SIMD cu aceast reea poate avea, pe lng conectivitatea direct, un bus global de comunicaie.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

103

3.2.3.6. Reeaua de tip hipercub Pentru a introduce acest tip de reea, convenim s numim hipercub Hn un cub n-dimensional format cu 2n vrfuri i n 2n-1 muchii; dac vrfurile sunt reprezentate prin numerele binare 1,,n{0,1}, atunci se consider c dou vrfuri sunt unite prin muchie dac i numai dac reprezentarea lor binar difer exact ntr-o singur poziie. Cazul n=1, n=2 (ptratul) i n=3 (cubul) sunt prezentate n figura 3.2.5, iar cazul n=4 (hipercubul) n figura 3.2.7
011 01 11 001 010 101 110 111

000 0 H1 1 00 H2 H3

100

Fig. 3.2.7. Hipercuburile H1, H2( ptratul), H3 (cubul)

Fig. 3.2.8. Hipercubul H4

Din modul de definire a hipercubului Hn este evident modalitatea de definire a hipercubului de ordin superior Hn+1, prin unirea nodurilor corespunztoare a dou copii ale lui Hn. Ca exemplu, considerm cazul n=4 din figura 3.2.8.

104

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

n tabelul 3.2.1 sunt prezentate accelararea S (n, p) i eficiena E (n, p), n cazul sumarii a n numere (n = 64, 512), pe un hipercub format din p procesoare (pentru p = 4, 8, 19).

n Numrul term. sumei

p Numrul de proc. din hipercub

S=S(n,p) Speedup (acc.) (n/log n)

E(n,p)= S/p Eficiena (1/log n)

n 64 64 64 64 512 512 512 512

p 4 8 16 32 4 8 16 32

n*p/(n+2*p*log p) 3,72 6,48 9,92 12,48 3,96 7,76 14,88 26,88

n/(n+2*p*log p) 0,93 0,81 0,62 0,39 0,99 0,97 0,93 0,84

Tabelul 3.2.1: Accelerarea i eficiena sumrii a n numere pe un hipercub Hp

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

105

CAPITOLUL 4 INTERNETUL: UN SISTEM DISTRIBUIT DESCHIS I SCALABIL


4.1. Schema arhitectural a Internetului 4.2. Schema funcional a Internetului (router, gateway, host) 4.3. Modelul client/server. Protocolul TCP/IP 4.3.1. IP (Internet Protocol). 4.3.2. TCP (Transmission Control Protocol) 4.3.3. UDP (User Datagram Protocol) 4.3.4. DNS (Domain Name System) 4.3.5. POP3 sau Protocolul Post Office Versiunea 3 4.3.6. IMAP (Internet Message Access Protocol) 4.3.7. SMTP (Simple Mail Transfer Protocol) 4.3.8. HTTP (Hypertext Transfer Protocol) 4.3.9. HTTPS 4.3.10. SSL (Secure Sockets Layer) 4.3.11. FTP (File Transfer Protocol) 4.3.12. LDAP 4.4. World Wide Web: o aplicaie distribuit n Internet 4.4.1. Generaliti despre Web. Hipertext i hipermedia 4.4.2. Marcarea hipertextului (SGML, XML, HTML, WML, XHTML) 4.4.3. URL (Uniform Resource Locator) 4.4.4. HTTP (HyperText Transfer Protocol)

Sistemul Internet, din punct de vedere fizic, este un ansamblu de componente hardware (calculatoare, procesoare, dispozitive de memorare si procesare, echipamente intrare/ieire, echipamente de conectare, echipamente de transmisie) pentru memorarea, procesarea, conversia, reprezentarea i comunicarea informaiilor la nivel local, regional sau mondial, iar din punct de vedere logic, este un ansamblu de componente software (sisteme de operareUnix, Linux, programe de control i transmisie, programe de protecie, aplicaii pentru cutare, procesare i reprezentare) pentru a oferi utilizatorilor conectai la reea servicii diversificate n orice moment i la orice distan de resursele accesate, pe baza modelului client/server. Mediul Internet cuprinde un set de protocoale de reea care specific detaliile comunicaiilor ntre nodurile (calculatoarele) interconectate, mpreun cu conveniile de interconectare a reelelor i de dirijare a informaiilor n reea.

106

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

4.1. Schema arhitectural a Internetului


Din punct de vedere arhitectural, reeaua Internet este eterogen, adic este format dintr-o mare varietate de sisteme de calcul: PC-uri, mainframe-uri (ex. IBM), supercalculatoare (ex. RISC 6000), reele de calculatoare (ex. LAN: Local Area Network, MAN: Metropolitan Area Network, WAN:Wide area Network), interconectate ntre ele n cele mai variate topologii (v. fig. 1.5.2). Funcionarea reelei Internet se realizeaz cu ajutorul unor noduri (calculatoare de tip server respectiv terminal) ce funcioneaz pe baza protocoalelor de exploatare eficient a resurselor mediului Internet. Aceste noduri ce se numesc furnizori de servicii. Accesul unui utilizator (client) la serviciile Internet poate avea loc dac utilizatorul are acces la un terminal (calculator - staie de lucru) conectat la reeaua Internet, i anume la un nod din reea. Terminalul se poate afla acas la utilizator sau locul de munc, la coal, la universitate, la bibliotec, la un cafInternet, etc.

Fig. 4.1.1. Secven arhitectural a reelei Internet

Din punct de vedere arhitectural, n sistemul Internet exist urmtoarele clase de noduri: clasa A: noduri de nivel nalt - noduri la nivel mondial la care sunt conectate nodurile continentale de la nivelul rilor (ex. nodul EARN: European Academic and Research Network);

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

107

clasa B: noduri continentale - noduri la nivelul unei ri de care sunt conectate noduri locale ale unor reele (n Romnia exist, de ex. nodul de la Universitatea Politehnica Bucureti, nodul de la Institutul Naional de Cercetare - Dezvoltare n Informatic .a..); clasa C: noduri locale - noduri la nivel local(regional) ce trebuie s fie recunoscute de un nod continental (n Romnia exist noduri locale n Bucureti: Universitatea Bucureti, IMAR, ASE, Guvern, Parlament, i n marile orae: Cluj, Iai, Constana, Craiova, Piteti, etc.); clasa D: noduri terminale- noduri la nivel de utilizator PC care are un IP n Internet.

Un utilizator poate avea acces la serviciile Internet numai dac lucreaz la un terminal (calculator) conectat la un nod din reeaua Internet. Conectarea la un astfel de nod (server) se realizeaz fizic prin intermediul unei firme specializate prin diverse tipuri de conexiuni: conexiune de tip dial-up: prin modem ce utilizeaz comutarea pe linia telefonic. Dezavantaje: viteza lent de transmisie a datelor, scoaterea din uz a serviciului telefonic n timpul conectrii la Internet; conexiune prin cablu TV: conectare prin cablu TV cu urmtoarele servicii simultane: telefonie, televiziune, acces la Internet. Avantaje: o vitez mai mare de 50 de ori dect cea de pe dial-up, conexiune permanent, cost accesibil; conexiune prin fibr optic: este soluia pentru accesul de mare vitez la serviciile Internet. Acest tip de conexiune este recomandat firmelor cu un numr mare de calculatoare cuplate la reea i cu un transfer susinut pe tot timpul unei zile de lucru; VPN: Virtual Private Network, o reea privat de transmisiuni de date n comunicaiile metropolitane i regionale ale unei corporaii, n care transferul de informaii se face criptat. VPN-ul poate asigura de exemplu legtura dintre bazele de date prezente la sediul firmei i celelalte locaii ale firmei, schimbul de documente i informaii cu caracter confidenial. Locaiile unei firme din dou sau mai multe puncte geografice, din ora sau din regiune, pot fi interconectate ntre ele cu ajutorul tehnologiei VPN; conexiune prin modem radio (wireless): principalul avantaj al acestui tip de conexiune este aria de acoperire. Acest tip de conexiune suplinete cu succes lipsa fibrei optice sau a cablului TV dintr-o anumita zon.

108

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

4.2. Schema funcional a Internetului (router, gateway, host)

LAN Reea local Gateway

Mediul Internet Furnizori locali i regionali

Intranet: reeaua unei firme

Router

Router

Router

Host

Router

Router PC Host

Gateway

Router

Fig. 4.2.1. Secven din schema funcional a Internetului

Din punct de vedere funcional n Internet sunt operaionale trei tipuri de calculatoare (servere): 1. calculator router (de dirijare): calculator ce furnizeaz servicii de dirijare a informaiilor ntre dou noduri (calculatoare din reea), care se adreseaz prin emisie-recepie; 2. calculator gateway (de legtur): calculator de legtur ntre nivelele reelei Internet i care realizeaz conectarea ntre dou reele distincte; 3. calculator host (gazd): calculator conectat la reeaua Internet pe unul din cele patru nivele (utilizator, local, ara i mondial) de la care se pot cere servicii Internet.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

109

4.3. Modelul client/server. Protocolul TCP/IP


4.3.1. IP (Internet Protocol). 4.3.2. TCP (Transmission Control Protocol) 4.3.3. UDP (User Datagram Protocol) 4.3.4. DNS (Domain Name System) 4.3.5. POP3 sau Protocolul Post Office Versiunea 3 4.3.6. IMAP (Internet Message Access Protocol) 4.3.7. SMTP (Simple Mail Transfer Protocol) 4.3.8. HTTP (HyperText Transfer Protocol) 4.3.9. HTTPS 4.3.10. SSL (Secure Sockets Layer) 4.3.11. FTP (File Transfer Protocol) 4.3.12. LDAP Modelul client/server reglementeaz relaia ntre dou programe de computer, unde programul-client cere un serviciu programului-server, care rspunde acestei cereri. De altfel, conceptul client/server poate fi utilizat i ntr-un singur calculator, dar el devine foarte important, de fapt un concept de baz, n reelele de calculatoare. ntr-o reea, modelul client/server este un mijloc convenabil i eficient de interconectare a programelor aflate n locaii geografice diferite. De exemplu, un cetean care dorete s-i acceseze un cont dintr-o banc, utilizeaz un program-client, care trimite cererea ctre un program-server din banc, care la rndul su poate nainte cererea unui alt computer din banc s caute n baza de date situaia contului ceteanului respectiv.

Fig. 4.3.1. Un model client/server n mediul Internet

110

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

n modelul uzual client/server exist un server, numit daemon ce funcioneaz non-stop, care este activat s atepte cererile clienilor i s le nainteze altor programe/procese/servere, care sunt capabile s rspund la aceste cereri. De exemplu, n Internet, un browser Web este de fapt un program-client care cere un serviciu (trimiterea unei pagini Web sau a unui fiier) de la server Web (care tehnic se realizeaz prin http, adic Hypertext Transport Protocol) la un alt computer din reeaua Internet (de unde s-a iniiat cererea prin browser). Similar se petrec lucrurile, dac un client cu protocolul TCP/IP instalat cere/trimite fiiere prin FTP (File Transfer Protocol). Protocoalele din nivelul de baz asigur comunicarea i interoperabilitatea ntre orice dou calculatoare din Internet. Le vom prezenta n continuare. 4.3.1. IP (Internet Protocol) IP este protocolul prin care datele sunt trimise de la un calculator la altul prin intermediu Internetului. Fiecare calculator (cunoscut ca HOST), pe Internet are cel puin o adres IP unic, care l identific ntre toate computerele de pe Internet. Cnd se trimite sau se recepioneaz date (e-mail, pagini web), mesajul se divide n pri mai mici numite pachete. Fiecare pachet cuprinde adresa expeditorului, datele, precum i adresa destinatararului. Fiecare pachet este trimis, prima dat la un "Gateway Computer" care nelege o mic parte din Internet. Computerul "Gateway" citete destinaia pachetelor i trimite pachetele la un alt "Gateway" i tot aa pn ce pachetul ajunge la "Gateway"ul vecin cu computerul destinatar. Adic, fiecare computer cuplat la Internet este identificat printr-o adres unic, cunoscut prin aa-numita IP Address, aceasta fiind utilizat la nivelul programelor de prelucrare n reea. n schimb, la nivelul utilizatorilor cu acces la Internet, identificarea calculatoarelor se face printr-un nume de calculator HOST, gestionat de sistemul DNS (dup cum vom vedea mai jos). 4.3.2. TCP (Transmission Control Protocol) TCP este folosit de obicei de aplicaii care au nevoie de confirmare de primire a datelor. Efectueaz o conectare virtul full duplex ntre dou puncte terminale, fiecare punct fiind definit de ctre o adres IP i de ctre un port TCP. 4.3.3. UDP (User Datagram Protocol) UDP reprezint un protocol ce aparine layerului 4 al modelului OSI(despre care vom vorbi mai trziu), mpreun cu protocolul IP, acesta face

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

111

posibil livrarea mesajelor ntr-o reea. Spre deosebire de TCP, UDP este un protocol ce nu ofer sigurana sosirii datelor la destinaie.

4.3.4. DNS (Domain Name System) DNS este un sistem distribuit de pstrare i interogare a unor date arbitrare ntr-o structur ierarhic, folosit pentru gestionarea domeniilor n Internet. Citm din sursa: http://gac.icann.org/web/about/gac-outreach_Romanian.htm SISTEMUL DE NUME DE DOMENII INTERNET I COMITETUL GUVERNAMENTAL CONSULTATIV (GAC) AL CORPORAIEI INTERNET PENTRU ALOCAREA DE NUME I NUMERE (ICANN)

CE ESTE SISTEMUL DE NUME DE DOMENII INTERNET? Sistemul de Nume de Domenii (DNS) i ajut pe utilizatori s trimit cu uurin mesaje de pot electronic (e-mail) i s navigheze pe Internet. Asemntor cu numerele de telefon, fiecare calculator are o adres unic pe Internet, numit numr pentru Protocol Internet sau numr IP. Deoarece este dificil s se memoreze aceste numere, a fost creat DNS-ul care permite folosirea numelor de domenii n locul cifrelor, fiind astfel mai uor de memorat. De exemplu, cu ajutorul DNS-ului, utilizatorii Internet pot gsi o adres pe Internet doar tastnd un nume, cum ar fi "www.internic.net", n loc s tasteze numrul 207.151.159.3. DNS-ul permite nregistrarea numelor de domenii n cadrul unor registre, cunoscute ca "domenii de nivel superior", sau TLD-uri. La rndul su, fiecare TLD (Top Level Domain), poate s aib cteva sub-domenii. Astzi, TLD-urile se pot ncadra n dou categorii mari: 1) domenii generice de nivel superior (gTLDs) cum ar fi .com, .net, .org i .info, care sunt deschise pentru nregistrare pentru toi utilizatorii de Internet din lume i 2) domenii de nivel superior pe coduri de ar (ccTLDs), cum ar fi .uk pentru Marea Britanie, sau .ng pentru Nigeria, corespunztor unei ri, unui teritoriu, sau altei locaii geografice. n timp ce ambele categorii de domenii de nivel superior funcioneaz asemntor din punct de vedere tehnic, regulile i politicile de nregistrare a numelor de domeniu n gTLD i n ccTLD pot avea deosebiri semnificative. Pentru

112

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

informaii suplimentare n legtur cu structura http://www.internic.net/faqs/domain-names.html.

DNS

accesai

Cine administreaz sistemul de NUME DE DOMENII INTERNET? Timp de muli ani, operarea i administrarea DNS s-a fcut mai mult pe baz informal, ad-hoc. n general, aceste funcii au fost ndeplinite de o reea global de cercettori, organizaii tehnice, ingineri specialiti n Internet, voluntari i contractori independeni cu guvernul SUA. Dezvoltarea Internetului n anii '90, ca un instrument important pentru comer, comunicare, i educaie, a evideniat necesitatea dezvoltrii unui sistem mai robust, formal i reprezentativ, pentru a administra aceste funcii. Pe baza informaiilor adunate la scar global, Guvernul SUA a nceput procesul de privatizare i "internaionalizare" al administrrii DNS-ului i a funciilor de coordonare legate de activitatea pe Internet. n 1998, Guvernul SUA a nceput s transfere responsabilitatea pentru administrarea DNS ctre Corporaia Internet pentru Alocarea de Nume i Numere (ICANN). Aceasta este o organizaie format de comunitatea global a deintorilor de spaiu pe Internet. ICANN este o corporaie a sectorului privat, independent, non-profit, cu sediul n California. Sarcina sa este s administreze funciile tehnice de coordonare pentru Internet. Dac se poate vorbi despre o singur organizaie care rspunde n totalitate de funciile tehnice ale Internetului, aceasta este ICANN. ICANN are un comitet internaional de conducere format din 19 directori care este ajutat n lucru de personal specializat. Acest organism ncearc s dezvolte o abordare consensual a problemelor i a politicii DNS, prin dezbateri inute n cele trei organizaii de suport tehnic. Aceste "organizaii de suport tehnic" reprezint o gam larg de grupuri de interese, care includ, printre alii, oameni de afaceri, consumatori i furnizori de servicii Internet (ISP). De la nfiinarea sa, ICANN a desfurat mai multe activiti, i a avut mai multe iniiative, printre care:

Introducerea competiiei globale n nregistrarea numelor de domenii, acreditnd peste 100 de nregistratori independeni de nume de domenii, n toat lumea; Dezvoltarea i adoptarea unei Politici Uniforme de Rezolvare a Litigiilor survenite la nregistrarea numelor de domenii (UDRP) pentru a rezolva problemele legate de pirateria informatic -- nregistrarea cu rea-intenie a numelor de domeniu, cu nerespectarea drepturilor decurgnd din marca nregistrat ( trademarks) -conform

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

113

recomandrilor fcute Intelectuale (WIPO);

de

Organizaia

Mondial

Proprietii

Desfurarea unui proces de selectare a apte noi domenii de nivel superior (TLDs), .biz, .info, .pro, .name, .museum, .aero, i .coop constituind prima lrgire a gTLD-urilor de cnd a nceput dezvoltarea sistemului de nume de domenii; Stabilirea unor grupuri de lucru pentru a face studii privind diverse probleme, cum ar fi introducerea numelor multilingve de domenii, coordonarea nregistrrii numelor de domeniu, baza de date "WHOIS", ca i probleme legate de acordarea de numere pentru IP.

Mai multe informaii despre ICANN, organizaiile sale adiacente i comitetele consultative putei gsi la adresa: www.ICANN.org. Relaii cu guverne naionale, economii distincte, i alte organizaii ICANN este unic din anumite puncte de vedere. Multe dintre funciile tehnice de coordonare pe care le desfoar au implicaii n politici de interes public. n alte domenii, funciile tehnice de coordonare care au implicaii n politici de interes public sunt desfurate de organizaii create ca urmare a existenei unor tratate inter-guvernamentale, cum ar fi Uniunea Internaional a Telecomunicaiilor (ITU) pentru telecomunicaii, sau de Organizaia Internaional a Aviaiei Civile, n cazul cltoriilor aeriene. S-a considerat c o astfel de abordare pe baz de tratate nu era adecvat pentru administrarea Internetului. S-a considerat c e mai bine ca Internetul s se administreze printro abordare conform cu punctul de vedere al sectorului privat. Aceasta nu nseamn c guvernele nu joac nici un rol. ICANN primete date de la guverne prin intermediul Comitetului Consultativ Guvernamental (GAC). Rolul principal al acestui comitet consultativ este s ofere consultan pentru ICANN n probleme legate de politici de interes public. GAC ine cont n special de activitile i politicile desfurate de ICANN referitoare la preocuprile guvernelor privind problemele unde pot exista neconcordane ntre politicile ICANN i legile naionale sau acordurile internaionale. ntlnirile GAC au loc de obicei de trei sau de patru ori pe an, corelate cu ntlnirile ICANN. n prezent, mai mult de 30 de guverne naionale iau parte la ntlnirile GAC. Acestora li se altur reprezentani separai din economie i organizaii guvernamentale multinaionale cum ar fi ITU sau Organizaia Mondial a Proprietii Intelectuale (WIPO). Toate guvernele naionale, reprezentani ai lumii de afaceri organizai n forumuri internaionale, organizaii guvernamentale multinaionale i

114

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

organizaii ale unor tratate pot deveni membri GAC. Pentru informaii suplimentare despre GAC accesai: www.gac.icann.org De ce este important pentru guverne s fie reprezentate n GAC? Internetul este un fenomen global i ofer oportuniti uriae pentru toi locuitorii lumii i pentru economiile tuturor statelor. Totui lumea nu este uniform. Fiecare ar i economie, luate separat, au legi diferite, atitudini i politici diferite. GAC ncearc s includ diversitatea acestor opinii n consultana acordat ICANN. Participarea la GAC permite rilor i economiilor distincte s influeneze politicile referitoare la administrarea DNS i a funciilor corelate acestuia, care sunt importante pentru funcionarea global a Internetului. Deoarece GAC adun o gam larg de cunotine i experien, membrii GAC au avut mult de ctigat datorit participrii lor n acest Comitet. Ce a fcut GAC recent? GAC a luat n considerare i a asigurat consultana pentru o gam variat de domenii, printre care:

Ce probleme i politici de interes public trebuie s ia n considerare ICANN atunci cnd alege noi domenii generale de nivel superior; Orientare n probleme legate de dezvoltarea sistemului multilingv de nume de domenii (denumiri de domeniu n alte alfabete dect cel latin, cum ar fi cel chinez, cirilic, sau, de exemplu, cel arab) inclusiv protecia proprietii intelectuale, protecia consumatorului, i probleme culturale; Stabilirea de principii pentru coordonarea viitoarelor platforme de test pentru nume de domenii, n concordan cu necesitatea de a sprijini inovarea i experimentarea creativ; i Principii pentru managementul i administrarea corect a ccTLD-urilor, inclusiv crearea documentului GAC Principii pentru delegarea i managementul numelor de domeniu de nivel superior ce folosesc codul de ar, care ofer explicaii privind rolul jucat de ICANN, guverne, i registrele de operare a ccTLD-urilor.

GAC caut n mod activ s atrag noi membri pentru a crete gradul de contientizare global i participarea n problemele importante de management a Internetului. GAC caut s se asigure c activitatea de consultan oferit ICANN reflect diversitatea comunitii internaionale. n particular, GAC d foarte mare atenie creterii gradului de participare a rilor i economiilor distincte, acolo unde Internetul este nc n faza de dezvoltare.

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

115

CUM PUTEI PARTICIPA N GAC n prezent GAC are 100 de membri, dintre care aproximativ 40 sunt participani activi. Acest organism este deschis pentru orice reprezentant al guvernelor naionale. Fiecare guvern poate numi un reprezentant i un consultant n acest Comitet. De asemenea, asociaiile economice recunoscute de forumuri internaionale, ct i organizaiile guvernamentale multinaionale i organizaiile diverselor tratate pot deveni membri la invitaia preediniei GAC. Internetul joac un rol din ce n ce mai mare n economiile naiunilor. Este important pentru guverne s fie implicate n luarea de decizii privind administrarea i operarea Internetului. Sistemul de nume de domenii este infrastructura care st la baza modului de lucru al Internetului i are multe implicaii n politicile publice. Pentru a fi siguri c se iau n considerare toate opiniile relevante, este important s se mreasc numrul participanilor n Comitetul consultativ guvernamental ICANN astfel nct att ICANN ct i Internetul s devin cu adevrat internaionale. GAC ncurajeaz toi membrii poteniali s cear informaii despre participarea lor n comitet. Pentru informaii suplimentare privind rolul i activitile desfurate de GAC v rugm s luai legtura cu secretariatul GAC: Mr Richard Delmas GAC Secretariat C/o European Commission 1049 Brussels Belgium Tel: +32 2 295 88 73 Fax: +32 2 295 39 98 Email: richard.delmas@cec.eu.int Adrese Web pentru informaii suplimentare Informaii n legtur cu ICANN, mpreun cu materialele prezentate n edine, documente de elaborare a politicilor, detalii despre organizaiile de suport tehnic, informaii referitoare la edinele viitoare, mpreun cu informaii cu caracter general se pot afla de la http://www.ICANN.org

116

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Informaii n legtur cu comitetul consultativ guvernamental (GAC), alturi de comunicate anterioare i alte documente, se pot afla accesnd adresa: http://www.gac.icann.org/docs/index.htm Am ncheiat citatul de pe pagina: http://gac.icann.org/web/about/gac-outreach_Romanian.htm Citm acum de pe pagina: http://www.domreg.ro/domain.html

List de nume de domenii n Internet .EU - Uniunea European, se poate acum nregistra i pe numele persoanelor fizice i juridice din Romnia. .com - cel mai folosit domeniu in Internet. Din 75 milioane de domenii existente n Internet, peste 53 milioane sunt .com, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .com .net - folosit ca nlocuitor pentru .com, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .net .org - folosit n general pentru organizaii, dar poate fi folosit i ca nlocuitor pentru .com, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .org .info - folosit n general pentru site-uri informaionale, prezentarea de produse, servicii sau organizaii, dar poate fi folosit i ca nlocuitor pentru .com, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .info .biz - folosit ca un domeniu concurent cu .com, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .biz. Este o alternativ de succes la domeniile .com. .us (SUA), nu exist restricii la nregistrare, oricine poate nregistra un domeniu .us .name - folosit n general pentru persoane fizice, dar poate fi folosit i pentru activiti comerciale, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .name. Domeniile .name pot fi nregistrate pe nivelul doi

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

117

sub forma nume.name. Dac nume.name este ocupat, este bine s verificai disponibilitatea domeniului de nivel trei - prenume@nume.name. .tv - folosit n general pentru servicii de televiziune sau broadcasting, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .tv .eu.com (Europa) - Recomandat n special pentru firmele ce au afaceri n Europa, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .eu.com (A nu se confunda cu .eu - Uniunea Europeana) .ws - folosit n general pentru WebSite-uri, nu exist restricii la nregistrare, oricine poate nregistra un domeniu .ws .mobi - destinat realizrii de site-uri special proiectate pentru a fi afiate pe ecranul telefoanelor mobile. .eu (Uniunea Europeana), poate fi nregistrat doar de persoane fizice/juridice din rile membre UE .co.uk (Anglia), nu exista restricii la nregistrare, oricine poate nregistra un domeniu .co.uk .org.uk (Anglia), nu exist restricii la nregistrare, oricine poate nregistra un domeniu .co.uk .de (Germania), oricine poate nregistra un domeniu .de, dar cu condiia ca una din persoanele deintor sau contact administrativ al domeniului s aib o adres n Germania. Deintorul poate fi n orice ar, dar n acest caz trebuie ca persoana de contact administrativ s aib o adres n Germania. .fr (Frana), un domeniu .fr poate fi nregistrat de o persoan juridic sau fizic din Frana sau de oricine posed o marc nregistrat la National Intellectual Property Institute, n UE sau o marc internaional care include n mod expres teritoriile franceze. .it (Italia), un domeniu .it poate fi nregistrat de o persoan juridic sau fizic dintr-o tar membr UE. Persoanele fizice sau organizaiile care nu au numr VAT (TVA) sau cod fiscal nu pot avea mai mult de un singur nume de domeniu .it. .es (Spania), un domeniu .es poate fi nregistrat de orice persoan, neexistnd restricii la nregistrare. .at (Austria), un domeniu .at poate fi nregistrat de orice persoan, neexistnd restricii la nregistrare.

118

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

.be (Belgia), un domeniu .be poate fi nregistrat de orice persoana, neexistnd restricii la nregistrare. .nl (Olanda), un domeniu .nl poate fi nregistrat de orice persoan, neexistnd restricii la nregistrare. Dac solicitantul unui nume de domeniu nu este din Olanda va trebui s indice o adres din Olanda unde s poat primi documente scrise sau notificri juridice. .ro (Romnia), un domeniu .be poate fi nregistrat de orice persoan, neexistnd restricii la nregistrare.

Tabelul de coduri de ar folosite n numele de domenii Internet

.ae United Arab Emirates .af Afghanistan .al Albania .am Armenia .an Netherlands Antilles .ao Angola .aq Antarctica .ar Argentina .as American Samoa .at Austria .au Australia .aw Aruba .ax Aland Islands .az Azerbaijan .ba Bosnia and Herzegovina .bb Barbados .bd Bangladesh .be Belgium .bf Burkina Faso .bg Bulgaria .bh Bahrain .bi Burundi .bj Benin .bm Bermuda .bn Brunei Darussalam

.bo Bolivia .br Brazil .bs Bahamas .bt Bhutan .bv Bouvet Island .bw Botswana .by Belarus .bz Belize .ca Canada .cc Cocos (Keeling) Islands .cf Central African Republic .cg Congo, Republic of .ch Switzerland .ci Cote d'Ivoire .ck Cook Islands .cl Chile .cm Cameroon .cn China .co Colombia .cr Costa Rica .cu Cuba .cv Cape Verde .cx Christmas Island .cy Cyprus .cz Czech Republic

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

119

.de Germany .dj Djibouti .dk Denmark .dm Dominica .do Dominican Republic .dz Algeria .ec Ecuador .ee Estonia .eg Egypt .eh Western Sahara .er Eritrea .es Spain .et Ethiopia .eu European Union .fi Finland .fj Fiji .fk Falkland Islands (Malvinas) .fm Micronesia, Federated States of .fo Faroe Islands .fr France .ga Gabon .gb United Kingdom .gd Grenada .ge Georgia .gf French Guiana .gg Guernsey .gh Ghana .gi Gibraltar .gl Greenland .gm Gambia .gn Guinea .gp Guadeloupe .gq Equatorial Guinea .gr Greece .gs South Georgia and the South Sandwich Islands .gt Guatemala .gu Guam .gw Guinea-Bissau .gy Guyana .hk Hong Kong

.hm Heard and McDonald Islands .hn Honduras .hr Croatia/Hrvatska .ht Haiti .hu Hungary .id Indonesia .ie Ireland .il Israel .im Isle of Man .in India .io British Indian Ocean Territory .iq Iraq .ir Iran, Islamic Republic of .is Iceland .it Italy .je Jersey .jm Jamaica .jo Jordan .jp Japan .ke Kenya .kg Kyrgyzstan .kh Cambodia .ki Kiribati .km Comoros .kn Saint Kitts and Nevis .kp Korea, Democratic People's Republic .kr Korea, Republic of .kw Kuwait .ky Cayman Islands .kz Kazakhstan .la Lao People's Democratic Republic .lb Lebanon .lc Saint Lucia .li Liechtenstein .lk Sri Lanka .lr Liberia .ls Lesotho .lt Lithuania .lu Luxembourg

120

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

.lv Latvia (Lituania) .ly Libyan Arab Jamahiriya .ma Morocco .mc Monaco .md Moldova, Republic of .me Montenegro .mg Madagascar .mh Marshall Islands .mk Macedonia, The Former Yugoslav Republic of .ml Mali .mm Myanmar .mn Mongolia .mo Macao .mp Northern Mariana Islands .mq Martinique .mr Mauritania .ms Montserrat .mt Malta .mu Mauritius .mv Maldives .mw Malawi .mx Mexico .my Malaysia .mz Mozambique .na Namibia .nc New Caledonia .ne Niger .nf Norfolk Island .ng Nigeria .ni Nicaragua .nl Netherlands .no Norway .np Nepal .nr Nauru .nu Niue .nz New Zealand .om Oman

.pa Panama .pe Peru .pf French Polynesia .pg Papua New Guinea .ph Philippines .pk Pakistan .pl Poland .pm Saint Pierre and Miquelon .pn Pitcairn Island .pr Puerto Rico .ps Palestinian Territory, Occupied .pt Portugal .pw Palau .py Paraguay .qa Qatar .re Reunion Island .ro Romania .rs Serbia .ru Russian Federation .rw Rwanda .sa Saudi Arabia .sb Solomon Islands .sc Seychelles .sd Sudan .se Sweden .sg Singapore .sh Saint Helena .si Slovenia .sj Svalbard and Jan Mayen Islands .sk Slovak Republic .sl Sierra Leone .sm San Marino .sn Senegal .so Somalia .sr Suriname .st Sao Tome and Principe .su Soviet Union (being phased out) .sv El Salvador .sy Syrian Arab Republic .sz Swaziland

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

121

.tc Turks and Caicos Islands .td Chad .tf French Southern Territories .tg Togo .th Thailand .tj Tajikistan .tk Tokelau .tl Timor-Leste .tm Turkmenistan .tn Tunisia .to Tonga .tp East Timor .tr Turkey .tt Trinidad and Tobago .tv Tuvalu .tw Taiwan .tz Tanzania .ua Ukraine .ug Uganda .uk United Kingdom .um United States Minor Outlying Islands .us United States .uy Uruguay .uz Uzbekistan .va Holy See (Vatican City State) .vc Saint Vincent and the Grenadines .ve Venezuela .vg Virgin Islands, British .vi Virgin Islands, U.S. .vn Vietnam .vu Vanuatu .wf Wallis and Futuna Islands .ws Samoa .ye Yemen .yt Mayotte .yu Yugoslavia

.za South Africa .zm Zambia .zw Zimbabwe

122

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

4.3.5. POP3 sau Protocolul Post Office Versiunea 3, POP3 este serviciul informatic sau protocolul utilizat de un calculator gazd (host), pentru recepionarea potei electronice (e-mail).

4.3.6. IMAP (Internet Message Access Protocol) IMAP4rev1 permite accesul la mesaje din foldere de email de pe un server. Spre deosebire de POP3, care este proiectat pentru a transfera i terge e-mailurile de pe server, scopul IMAP este de a le stoca pe toate pe server i s poat fi accesate din orice loc. Mesajele pot fi stocate pe server, transferate sau mutate ntre foldere. 4.3.7. SMTP (Simple Mail Transfer Protocol) SMPT este un protocol server/client simplu, folosit pentru transmiterea mesajelor n format electronic pe Internet. SMTP folosete portul de aplicaie 25 TCP i determin adresa unui server SMTP pe baza nregistrrii MX (Mail eXchange) din configuraia serverului DNS. Protocolul SMTP specific modul n care mesajele de pot electronic sunt transferate ntre procese SMTP aflate pe sisteme diferite. Procesul SMTP care are de transmis un mesaj este numit client SMTP iar procesul SMTP care primete mesajul este serverul SMTP. Protocolul nu se refer la modul n care mesajul ce trebuie transmis este trecut de la utilizator ctre clientul SMTP, sau cum mesajul recepionat de serverul SMTP este livrat utilizatorului destinatar i nici cum este memorat mesajul sau de cte ori clientul SMTP ncearc s transmit mesajul; 4.3.8. HTTP (HyperText Transfer Protocol) HTTP este metoda cea mai des utilizat pentru accesarea informaiilor n Internet care sunt pstrate pe servere WWW. Protocolul HTTP este un protocol de tip text, fiind protocolul "implicit" al WWW. Adic, dac un URL nu conine partea de protocol, aceasta se consider ca fiind http. Acesta presupune rularea unui program corespunztor pe calculatorul destinaie care nelege protocolul respectiv. Fiierul destinaie poate fi un document html, un fiier grafic, de sunet, de animaie, un program executabil pe server-ul respectiv sau un editor de texte. Dup clasificarea n funcie de modelele de referin OSI, protocolul HTTP este un protocol de nivel aplicaie. Dezvoltarea sa este coordonat de W3C (World Wide Web Consortium).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

123

4.3.9. HTTPS HTTPS reprezint HTTP ncapsulat ntr-un flux SSL/TLS. 4.3.10. SSL (Secure Sockets Layer) SSL este un protocol de securitate care asigur comunicaii confideniale prin Internet. El permite aplicaiilor client/server s comunice, n aa fel nct s fie evitat interceptarea, modificarea sau falsificarea mesajelor. 4.3.11. FTP (File Transfer Protocol) FTP este metoda cea mai des utilizat pentru descrcarea fiierelor de pe Internet. care sunt pstrate pe servere speciale. 4.3.12. LDAP este un protocol standard, stabilit de Internet Engineering Task Force (IETF), care ofer utilizatorilor unei reele, posibilitatea de a cuta i modifica informaiile dintr-un Directory Service. n internet mai exist o serie de protocoale, cum ar fi: PPP (Point-toPoint Protocol); SLIP (Serial line IP); ICMP (Internet Control Message Protocol); TLS (Transport Layer Security) .a.

124

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

4.4. World Wide Web: o aplicaie distribuit n Internet


4.4.1. Generaliti despre Web. Hipertext i hipermedia 4.4.2. Marcarea hipertextului (SGML, XML, HTML, WML, XHTML) 4.4.3. URL (Uniform Resource Locator) 4.4.4. HTTP (HyperText Transfer Protocol) 4.4.1. Generaliti despre Web. Hipertext i hipermedia World Wide Web, prescurtat WWW sau simplu Web, este un sistem de distribuie local sau global a informaiilor hipermedia. Din punct de vedere tehnic, spaiul Web nu trebuie confundat cu Internetul sau cu o reea, cum se crede greit uneori. Spaul Web este doar o aplicaie distribuit n Internet care pune la dispoziia utilizatorilor un sistem global i standardizat de comunicare multimedia. Iniial WWW a fost conceput de cercettorii de la Laboratorul European pentru Particule Fizice de la CERN (Centrul de Cercetri Nucleare de la Geneva), sub conducerea lui Tim Berners-Lee, care au propus un sistem hipertext (text neliniar, care permite salturi, analog trimiterilor din Biblie), care permitea partajarea eficient a informaiilor ntre membri unui grup de cercetttori care studiau fizica energiilor nalte. Deci, sistemul Web poate fi folosit i pe calculatoare dintr-o reea care nu este conectat la Internet sau chiar pe un singur calculator izolat, dar astzi se folosete mai ales n Internet pentru distribuia informaiilor hipermedia. World Wide Web are faciliti multimedia i integrative, o interfa grafic pentru utilizator - GUI (Graphic User Interface) foarte atrgtoare din punct de vedere grafic, practic i simplu de folosit (prietenoas). Deci, Web-ul este un sistem distribuit deschis utilizat pentru distribuia local sau global a informaiilor, putnd fi extins i implementat n diferite moduri fr a-i afecta funcionalitatea. Se utilizeaz n prezent, n general, n Internet pe baza modelului client/server. Clienii, adic navigatoarele Web sau browserele Web (Internet Explorer, Netscape Navigator, NCSA Mosaic, Mozilla, Opera .a.), au acces la informaiile hipermedia i multiprotocol organizate asociativ, aflate pe un server Web (cele mai cunoscute servere Web sunt: Apache, Netscape Enterprise Server, Sun Web Server, Microsoft Internet Information Server, Stronghold, Jigsaw).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

125

Modelul client/server pentru calculatoarele conectate n reea angreneaz trei componente n cazul unei aplicaii Web: program client, este o aplicaie care de obicei ruleaz pe calculatorul utilizatorului final; program server, este o aplicaie care ruleaz de obicei pe calculatorul furnizorului de informaii; protocolul de reea, pe baza cruia se transport cererea de la client la server i rspunsul de la server la client. Programul client este adaptat sistemului hardware pe care ruleaz i funcioneaz ca o interfa ntre sistemul respectiv i informaiile furnizate de server. Programul server analizeaz cererea programului client (care poate fi o actualizare sau o cutare ntr-o baz de date etc.) i execut procesele corespunztoare. Toate tranzaciile ntre client i server se fac pe baza unor reguli i protocoale definite de sistemul client/server. Calculatorul pe care ruleaz un server Web i care gzduiete pagini WWW (pagini Web), se mai numete i sit (site). Pentru ca informaiile dintr-un text s poat fi accesate n manier global i distribuit, ele se organizeaz ntr-o form special numit hipertext. Hipertextul este un text neliniar (termenul a fost introdus de Ted Nelson n 1965, dar dup cum am spus deja, ideea trimiterilor de la un text de pe o pagin la un alt text de pe o alt pagin apare nc la versetele din Biblie. Definiiile actuale ale hipertextului menioneaz urmtoarele atribute i funcionaliti ale hipertextului: o form de document electronic; o metod de organizare a informaiilor n care datele sunt memorate ntr-o reea de noduri i legturi, putnd fi accesat prin intermediul navigatoarelor interactive i manipulat de un editor structural; o tehnic pentru organizarea informaiei textuale printr-o metod complex neliniar, n vederea facilitrii explorrii rapide a unei cantiti mari de date (cunotine). Ca model matematic, o baz de date hipertext poate fi asociat cu graf orientat, n care fiecare nod stocheaz un fragment de text , iar arcele grafului conecteaz fragmente de text cu altele nrudite, legturile putnd fi traversate utiliznd o interfa pentru salturi de la un text la altul (browser). Actualmente hipertextul se confund deja de multe ori cu hipermedia, care este o colecie de documente multimedia conectate prin hiperlegturi. Multimedia este o aplicaie ce conine att documente discrete (texte sau imagini statice), dar i documente continue (video sau audio). Un sistem hipertext sau hipermedia este constituit din: noduri (concepte); legturi (relaii ntre concepte).

126

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Un nod reprezint de obicei un concept unic (text, grafic, animaie, audio, video, imagine, program). Unui nod i se poate asocia un tip cu informaie semantic (detaliu, propoziie, colecie etc.). Nodurile sunt conectate cu alte noduri prin legturi, nodul surs numindu-se referin, iar cel destinaie referent. Nodurile conectate prin legturi se mai numesc i ancore. La activarea legturii se afieaz coninutul nodului. 4.4.2. Marcarea hipertextului (SGML, XML, HTML, WML, XHTML) Stocarea informaiei n noduri se face prin diverse tehnici ce utilizeaz limbaje de marcare a hipertextului (metalimbajele SGML, XML), care stau la baza variantelor actuale standard ca MHEG (Multimedia and Hypermedia Information Coding Expert Group) sau HTML (HyperText Markup Language) XHTML .a. HTML (HyperText Markup Language) este un limbaj folosit pentru marcarea hipertextului, specificarea coninutului i a cadrului paginilor afiate de browserele Web, fiind considerat lingua franca a spaiului Web. Limbajul HTML este bazat pe metalimbajul SGML (Standard Generalized Markup Language), a crui specificaii oficiale au fost publicate n 1986. Este de fapt o aplicaie restrns a SGML dedicat reprezentrii informaiilor hipermedia ntr-o manier facil i distribuit. Trecnd prin diverse variante tot mai perfecionate, tinde n prezent de a fi nlocuit cu XHTML, o variant de tranziie la XML (Extensible Markup Language). Familia de limbaje XML, conceput ca o tehnic complementar i universal de marcare a hipertextului ntr-o manier ct mai facil, mai cuprinde XLL (Extensible Linking Language), XSL (Extensible Stylsheet Language) i XUA (XML User Agent) i diverse variante ale acestora. Pentru a marca textul afiat pe dispozitivele de calcul mobile, n loc de HTML se poate utiliza WML (Wireless Markup Language) sau HDML (Handheld Device Markup Language). Pentru a mbogii mijloacele de afiare a informaiilor multimedia, documentelor HTML li se asociaz aa-zisele foi de stiluri n cascad, CSS (Cascading Style Sheet). 4.4.3. URI (Uniform Resource Identifier): URL i URN Modalitatea de adresare pe Web folosit pentru transferul documentelor hipertext sau ceea ce este deseori denumit adres WWW; este reprezentat de indicatori uniformi de resurse, URI (Uniform Resource Identifier), care are dou submulimi importante: URL (Uniform Resource Locator) i URN (Uniform Resource Name).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

127

URI este reprezentat ntr-o form unic i consistent, independent de sistemul de stocare i conveniile reelei. URL este un nume folosit pentru identificarea unei anumite resurse pe Internet prin protocolul HTTP (HyperText Transfer Protocol). Sintaxa URL pentru Web este: *http:*//* server [*:* port ] [absolut_way [*?*interogare]] Dac nu este dat explicit, portul este considerat a fi portul 80. Semantica unui URL este: resursa se afl pe un server, identificat prin server, care rspunde la cererea de conectare prin portul specificat sau implicit, resursa este identificat prin absolut_way, iar interogarea este trimis pentru a obine un rspuns dinamic de la server n acord cu parametrizarea cererii. Un exemplu de URL este http://www.ubbcluj.ro/structura/facultati.htm , care este format din 4 mari pri protocolul (http), numele domeniului (www.ubbcluj.ro), calea ctre fiierul cautat relativ la root-ul domeniului (/structura/) i numele fiierului (facultati.htm). Alte exemple de URL-uri: http://www.answers.com http://www.journal.univagora.ro Un URN reprezint o submulime a URI care rmne permanent i unic, chiar dac resursa a disprut sau a devenit inaccesibil, de exemplu: urn:schemas-microsoft-com:datatypes 4.4.4. HTTP (HyperText Transfer Protocol) HTTP un protocol folosit pentru obinerea anumitor documente sau resurse de pe Internet. De exemplu, tastnd ntr-un browser web: http://www.iccc.univagora.ro/icccc2006proc.pdf, se va obine ca rezultat Proceedings-ul n format pdf a conferinei ICCCC 2006.

128

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

ANEX Minidicionar de calcul paralel i distribuit


Surse: [Dzi01], [DL03] .a.
Pentru a satisface nevoia tot mai mare de reducere a timpului de rezolvare a unei probleme de mari dimensiuni, a fost gsit soluia de a pune mai multe s lucreze simultan la rezolvarea sa, adic prelucrarea paralel. Calculul paralel/ distribuit/ concurent, paralelismul n general, cuprinde trei domenii interdependente: arhitectura sistemelor, algoritmica, limbaje de programare paralel/ distribuit/ concurent. n lucrarea [Dzi01] sunt prezentate cele trei domenii i interdependena dintre ele, precum i un minidicionar de noiuni i concepte de paralelism. n acest minidicionar sunt explicai sumar principalii termeni i

sintagmele ce exprim concepte utilizate n limbajul i metalimbajul calcului paralel i distribuit, astfel ca i cititorul neiniiat s poat nelege manualul de fa fr a consulta alte materiale. Ordinea de prezentare a terminologiei nu este cea alfabetic, ci am ncercat o anumit ordonare logic, aa cum am crezut c ar trebui s parcurg un nceptor minidicionarul nostru pentru a se familiariza ct mai rapid cu problematica extrem de complex a calculului paralel i distribuit.
Pentru explicaii suplimentare necesare aprofundrii am utilizat urmtoarele notaii pentru trimiteri: paranteze drepte pentru indicarea sursei din bibliografie: ex. [Gri00] indic lucrarea prefixat astfel n bibliografie; paranteze rotunde pentru a indica numrul de ordine din tabelul minidicionarului: de exemplu, (1) se refer la expresia din tabel cu numrul curent 1, adic la paralelism.

Expresia n romn // englez 1. Paralelism //parallelism [PW95] [Mor98+] [Gri00]

Descriere: Paralelism (P): = termen generic pentru desemnarea unui ansamblu de tehnici i procedee de cretere a performanelor unui sistem informatic prin exploatarea simultan a mai multor resurse similare sau nu (n special elemente de procesare sau procesoare interconectate n diverse moduri n acelai sistem fizic sau computere cuplate ntr-o reea eterogen etc.);

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

129

Sinonime: concuren, simultaneitate, suprapunere; Paralelismul se manifest la nivel de: -arhitectur de procesoare elementare i uniti centrale ale cror redundane permit procesri simultane prin tehnica pipelining -programare care permite exprimarea concurenei (colaborrii ntre procese); -limbaje care ofer instrumente de exprimare a proceselor simultane; -compilatoare, care extrag paralelismul din programe pentru a-l adapta arhitecturilor; -algoritmii de calcul adaptai arhitecturilor paralele. Conceptele de paralelism sunt numeroase i diverse: (2)surs de paralelism; (7)extragerea paralelismului; (10)granularitatea paralelismului; (11)nivele de paralelism.; (12)arhitecturi paralele. 2. Sursele paralelismului Sursele p. sunt:(3)paralelism de control (concurent); (4)paralelismul datelor; (5)paralelismul de flux; (6)paralelism spaial. Paralelismul care autorizeaz simultaneitatea prelucrrii proceselor, innd cont de resursele acestora; Termenii paralel i concurent provoac nc multe discuii n literatura de specialitate (de cele mai multe ori se utilizeaz ca sinonime, dar depinde i de contextul de utilizare): calculul concurent Dup Ben-Ari [Ben90] nseamn definirea unui numr de activiti de calcul ce se pot executa simultan, pe un numr infinit de procesoare. Conform acestei definiii Dan Grigora [Gri00] consider c cei doi termeni sunt echivaleni, dar totui concurent ar avea un grad mai mare de generalitate n anumite contexte dect paralel; S.A.Wiliams [Wil90] spune c exist multe similitudini ntre programarea paralel i programarea concurent asociat cu sistemele de operare i sistemele n timp real, neexistnd o delimitare clar ntre paralel i concurent, prin urmare se folosesc dup preferin (adic sunt sinonime), considernd c paralel este totui mai general, punct de vedere se manifest i n utilizarea expresiei paralelism concurent, care ar fi un pleonasm,

3. Paralelism de control (concurent) // concurrency parallelism

130

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

dac concurena ar fi mai general dect paralelismul; De fapt cei doi termeni fac parte din metalimbajul asociat CP i au definiii imprecise, o definire matematic precis a celor dou noiuni ar clarifica lucrurile; evident, se poate accepta i un punct de vedere de compromis, adic cele dou sfere noionale au o mare parte comun, nefiind totui una inclus n cealalt. 4. Paralelismul datelor //data parallelism 5. Paralelismul de flux // data flow parallelism // flux parallelism 6. Paralelism spaial // spatial parallelism 7. Extragerea paralelismului 8. Paralelism implicit sau extras // implicit parallelism P. n care aceeai prelucrare este aplicat unor date diferite, fie printr-un pipeline de instruciuni vectoriale, fie printr-o arhitectur paralel de tip SIMD. care efectueaz o aceeai prelucrare asupra unui flux de date, de exemplu cutare multicriteriu ntr-o baz de date, printr-un operator pipeline din care fiecare seciune triaz dup unul din criterii cu viteza fluxului de date ce provine de pe disc P. care efectueaz o descompunere a datelor reprezentative n spaiu, n regiuni prelucrate de procesoare diferite (calcul numeric, prelucrare de imagini) Paralelism implicit (8); paralelism explicit (9) P. n care compilatorul extrage posibilitile de paralelism ale programului i le adapteaz arhitecturii, cum ar fi paralizarea executrii buclelor de programe cnd iteraiile succesive sunt independente, sau reordonarea instruciunilor pentru utilizarea optim a arhitecturilor RISC superscalare. P. definit de ctre programatorul-utilizator

9. P. explicit // explicit parallelism 10. Granularitatea paralelismului, aplicaiei, sistemului ; // granularity // grain size

n paralelismul de concuren [Mor98+] avem urmtoarele grade de granularitate: -inferior (la nivel de programe); -mediu (la nivel de procese); -ridicat (la nivel de threads, adic procese simple). Dup Schwatz [Qui88] granularitatea se mai refer i la numrul de procesoare dintr-un sistem paralel:

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

131

brut (zeci i sute de procesoare); fin (mii i zeci de mii de procesoare). n [Gri00] se definete granularitatea aplicaiei ca valoarea minim a granularitii pentru toate activitile paralele componente (proces, thread)= dimensiunea minim, exprimat n numrul de instruciuni, dintr-o unitate secvenial. Valoarea minim sub care performana sistemului paralel scade semnificativ este numit granularitatea sistemului. 11. Nivele de paralelism Nivel sczut // low level parallelism:= p. la nivelul procesorului elementar (arhitectur cu instruciuni pipeline, superscalar, sistolic); Nivel nalt // high level parallelism:= care pune n funciune mai multe procesoare elementare P. centralizat (puternic cuplat) // centralized (highly coupled) parallelism := permind o vedere i un control global prin partajarea unei resurse comune ntre procesoare, ca n multiprocesoarele cu memorie comun; P. distribuit // distributed parallelism:= unde procesoarele independente nu dialogheaz dect prin mesaje transmise prin reea, ca n cazul unui hipercub; p. masiv // massive parallelism:= mai multe procesoare universale sau specifice )arhitecturi celulare i reele neuronale). Adaptarea unui program / algoritm conceput pentru un calculator monoprocesor pentru a fi executat pe calculator multiprocesor, adic izolarea unor subcomponente care pot fi executate simultan. Flynn clasific arhitecturile n funcie de modul de prelucrare a seturilor de instruciuni i a seturilor de date n: SISD (Single Instruction stream-Single Data stream); SIMD (Single Instruction stream-Multiple Data stream); MISD (Multiple Instruction stream-Single Data stream); MIMD (Multiple Instruction stream-Multiple Data stream);

12. Arhitectura paralelismului

13. Paralelizarea unui program/ algoritm

14. Clasificarea Flynn

132

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

15. Arhitectur masiv paralel // large parallel architecture

Arhitectura sistemului central implicnd un mare numr de procesoare (de ordinul sutelor) elementare, interconectate n diverse structuri topologice (magistral, inel, matrice, arborescent, plas/gril, hipercub etc.) care lucreaz n colaborare la rezolvarea uneia sau mai multor probleme; Arhitectur a sistemului central / unitii centrale care include mai multe procesoare elementare de prelucrare;

16. Arhitectur multiprocesor // multiprocessor architecture 17. Arhitectur pipeline // pipeline architecture

Arhitectur a operatorului sau procesorului care permite un paralelism nlnuit, de tip conduct / band rulant; operatorul este mprit n sectoare traversate succesiv de date, dup frecvena ceasului, elibernd seciunea pentru operaia urmtoare, astfel nct o nou operaie poate fi iniializat la fiecare perioad de ceas; Un pipeline de instruciuni permite procesoarelor RISC prelucrarea unui debit de instruciuni ntr-o btaie de ceas, atunci cnd o instruciune necesit cinci operaii: cutarea instruciunii n cache, decodarea, cutarea operanzilor, execuia, pregtirea rezultatului; Pipeline (canal de prelucrare paralel):= o linie de asamblare care crete substanial viteza de citire, executare i scriere a instruciunilor. Utilizat de mult n UNIX, structura pipeline a fost inclus n Intel 80486 i permite prelucrarea unei instruciuni n fiecare perioad de ceas. Microprocesorul Intel Pentium conine dou astfel de structuri, una pentru date i alta pentru instruciuni; Pipelining := prelucrare paralel. Arhitectur de procesor n care a existat tendina de a mri setul de instruciuni cablate, evoluia lor orientndu-se spre execuia dinamic, care se bazeaz pe trei concepte: predicia salturilor, analiza dependenelor de date i execuia speculativ. Ex.: microprocesoarele Intel Pentium Pro.[Gri00] O alternativ la CISC; Cele mai populare arhitecturi de procesoare pentru CP n care obinerea performanelor este urmrit prin

18. Procesor CISC (procesor cu set complex de instruciuni) // Complex Instruction Set Computer (CISC) 19. Procesor RISC (procesor cu set redus de

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

133

instruciuni) // Reduced Instruction Set Computer (RISC) [Gri00]

utilizarea unui set redus de instruciuni cablate ce permite prelucrarea pipeline a instruciunilor de executat; Obiectivul arhitecturilor RISC ideale este realizarea unei instruciuni la fiecare btaie de ceas, cea ce implic strdania de alimentare cu instruciuni i date a memoriilor cache, evitarea ateptrilor n pipeline-rile de instruciuni n caz de racordri, evitarea timpilor de schimbare de context n cazul apelurilor de proceduri; Premergtoarele RISC-ului au fost IBM 801, SPARC, MIPS. extensie RISC n care mai multe instruciuni de tip diferit sunt decodificate simultan, apoi lansate n paralel, fiecare ctre operatorul corespunztor: de exemplu, o operaie n virgul fix, o operaie n virgul mobil i o operaie cu memoria; Compilatorul este cel care se ocup cu reorganizarea instruciunilor pentru obinerea celei mai bune utilizri pipeline i a unui maxim paralelism superscalar, garantnd coerena programului. Calculator paralel cu cuplare slab i memorie distribuit la un numr de procesoare ce uneori depete 65 000 (de ex, CM 1). Denumire dat unui calculator sau unui sistem de calcul care are mai multe procesoare de prelucrare Multiprocesor n care gestiunea sarcinilor sistem este partajat de ctre toate procesoarele, spre deosebire de multiprocesorul de tipul master/slave, unde master-ului (stpnului) i revine gestiunea sistemului de exploatare, sclavii fiind pui doar s execute , Ex. Sequent Symmetry Concept de natur hardware prin care mai multe programe stocate n memoria unui calculator sunt executate cu ntreruperi, cu partajarea timpului:

20. Arhitectur superscalar // superscalar architecture [Gri00]

21. Hipercub // hypercub

22. Multiprocesor // multiprocessor 22. Multiprocesor simetric // symetric multiprocessor

23. Multiprogramare //multiprogramming

134

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

24. Multitasking

Executarea a mai multor programe n acelai timp pe un sistem de calcul Execuia unui program presupune utilizarea mai multor resurse sistem: n afara efecturii calculelor pe procesorul sistemului, un program poate transfera date ntr-un fiier implicnd o "comunicaie" cu discurile fixe, poate trimite date la imprimant pentru a fi tiprite, sau poate atepta reacia uman furnizat prin intermediul mouse-ului sau tastaturii. Toate aceste operaii sunt realizate la viteza la care perifericul respectiv poate funciona fizic, viteza net inferioara celei la care funcioneaz procesorul. Execuia programelor prin ntreptrundere (multitasking) este o tehnica ce permite utilizarea la maximum a procesorului, prin planificarea spre execuie a altor programe pe perioadele de inactivitate ale acestuia. Pentru a evita situaiile n care un program acapareaz integral procesorul (prin evitarea dialogului cu periferia), tehnica "multitasking" prevede ca dup o cuant maxima de timp, un astfel de program sa fie suspendat permind astfel i execuia altor programe. Un alt avantaj al unui astfel de mecanism const n robusteea conferit sistemului. Astfel, indiferent dac programul utilizator ce se executa la un moment dat e corect sau nu, prin "prelevarea forat" a sa (suspendarea din execuie) controlul este redat sistemului de operare, permind astfel terminarea sau "uciderea" acelui program. Un sistem de operare care funcioneaz pe principiul "multitasking"-ului (de ex. UNIX) creeaz iluzia execuiei simultane a mai multor programe - o execuie n acest caz este vzut ca fiind un proces distinct. Bazndu-se pe aceast iluzie, un astfel de sistem de operare prevede mecanisme de "comunicaie" i "sincronizare" ntre procese, i deci dezvoltarea aplicaiilor "concurente". Atta timp nsa ct este utilizat un singur procesor, nu se pot atepta creteri spectaculoase de performan. O cretere exist, dar ea se datoreaz utilizrii mai eficiente a acestui unic procesor, i nu creterii puterii de calcul a sistemului n ansamblu. Pe sistemele real paralele (distribuite sau nu), procesele

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

135

ce compun un program sunt executate efectiv n acelai timp. n plus, particularitile constructive ale sistemului paralel pot reduce mulimea mecanismelor disponibile (de exemplu absena memoriei partajate n mediile distribuite), impunnd o modelare a mecanismelor absente. Existena mai multor procesoare ofer o cretere categorica a performanelor, dar induce i probleme complexe n controlul execuiilor programelor. O astfel de problem const n decizia plasrii proceselor pe procesoarele fizice disponibile. Aceasta decizie poate aparine programatorului, dac limbajul utilizat permite acest lucru, fiind vorba astfel de un paralelism explicit. 25. Aplicaie multifir // multithreaded application Un program care poate rula n acelai timp dou sau trei fire (//threads), poriuni independente de program; Avantajul divizrii n fire (threads) const n posibilitatea oferit sistemului de operare de a decide care fir are prioritate maxim de execuie. Concept de natur software, un mod de exploatare a unui calculator n care mai multe sarcini sunt executate simultan de ctre mai multe procesoare printr-o planificare, cnd unul atept nc date de intrare de care are nevoie pentru continuarea execuiei, unitatea central se ocup de un alt program; astfel c se creeaz impresia de paralelism n execuie, adic n acelai interval de timp sunt terminate mai multe programe. Mecanism utilizat n execuii paralele ce permite introducerea de ntrzieri n execuia unui program, necesare unor constrngeri impuse de algoritm sau de structura intim a procesorului; Sincronizarea se petrece n primul rnd la operaiile indivizibile la nivelul procesorului, execuia crora trebuie terminat naintea oricrei alte utilizri a procesorului (n acest caz nu se permit intercalri n execuie, deci e nevoie de sincronizare); Exist dou tehnici importante de sincronizare: mecanismul fork-join i utilizarea mecanismelor de control: cobegin-coend, parbegin parend;

26. Multiprelucrare // multiprocessing

27. Sincronizare // synchronization

136

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Primul este un mecanism mai puternic (permite crearea dinamic a proceselor, pe cnd al doilea introduce o structur de control cu o singur intrare i o singur ieire); Mecanism utilizat n limbajele de programare paralel (concurent) pentru specificarea execuiei concurente (paralele), adecvat pentru aplicaii n care nici o funcie major a aplicaiei nu necesit rezultate de la o alt funcie a acesteia, adic sunt independente i pot fi evaluate simultan; variante ale sale se utilizeaz n Unix pentru specificarea proceselor concurente; instruciunea fork Q, aprut ntr-un proces P, declaneaz execuie paralel a procesului Q n acelai timp ce se execut i procesul P n care apare fork-ul; instruciunea join Q aprut ntr-un proces P, recombin dou procese ntr-unul singur ca n urmtorul exemplu: program P begin....fork Q...join Q... program Q begin...end; end. pentru exemplul de mai sus execuia lui Q este nceput cnd se ajunge la fork Q din P, moment din care P i Q se execut simultan fie pn cnd P execut join Q, fie pn cnd Q se termin. Dac Q nu este terminat i P execut join Q, el va atepta pn cnd Q se va termina i numai apoi i va continua execuia. Dac ns Q se termin nainte ca p s execute join Q, atunci execuia acestei comenzi nu va avea nici un efect asupra lui P, acesta continundu-i execuia cu instruciunile ce urmeaz dup join Q. 29. mecanismele Sunt mecanisme pentru specificarea execuiei concurente/ paralele a instruciunilor din lista cuprins de control: ntre nceput i sfrit; cobegin-coend/ parbegin-parend de exemplu n programul program P begin...cobegin Q, R coend S...end. instruciunile Q i R vor ncepe s fie executate simultan cnd se ajunge la cobegin, iar R va fi pornit doar dup ce ambele instruciuni sunt terminate (dac R se termin mai repede, se atept i dup terminarea lui Q, 28. Mecanismul fork-join

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

137

adic dup terminarea tuturor instruciunilor din list); parbegin-parend are acelai efect. 30. Sistem multiuser //multiuser system 31. conceptul de program stocat // stored program concept Sistem cu mai muli utilizatori; sisteme de operare multiuser: UNIX, Linux etc.

Este un concept utilizat n programarea serial n care un program se stocheaz n memorie mpreun cu datele, urmnd ca execuia instruciunilor din program s nu se fac neaprat n ordinea secvenial de scriere a programului ci s fie executat acea instruciune care are disponibile datele necesare execuiei.

Numit i calculator ntr-un cip, este un microcircuit VLSI cu memorie adiional, microprocesor, posibiliti de comunicaie i interconectare; Construit pe baza unei arhitecturi RISC (INMOS, 1985), este strns legat de limbajul Occam i constituie elementul de baz al sistemelor multiprocesor masiv paralele 33. limitare de Limitarea vitezei de prelucrare constatat de nsui John tip von von Neumann n arhitecturile care-i poart numele, conform creia un calculator de acest tip pierde mai Neumann // von Neumann mult timp cu cutarea datelor n memorie dect cu bottleneck prelucrarea propriu zis. 32. transputer // TRANSistor and comPUTER 34. limbajul Occam Descendent direct din CSP, Occam (numele filozofului englez din secolul XIV de la care a rmas principiul simplitii n structura entitilor, briciul lui Occam); un limbaj simplu, cu mecanisme puternice de implementare a algoritmilor paraleli pe sisteme bazate pe transputere i sisteme distribuite. Limbaj concurent destinat calculatoarelor vectoriale, elaborat de un colectiv de la Universitatea Politehnica din Timioara Limbaj destinat calculatoarelor paralele virtuale configurate dintr-o mulime de calculatoare conectate ntr-o reea distribuit. Un pachet de programe destinat programrii calculatoarelor paralele virtuale.

35. Limbajul TIMP / TIMioara Parallel (TIMP) 36. Limbajul PVM / Parallel Virtual Machine

138

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

37. Sistem distribuit de prelucrare // distributed processing sistem

Un sistem de calcul proiectat pentru mai muli utilizatori, n maniera client / calculator, care ofer fiecrui utilizator un calculator complet funcional: n domeniul PC prelucrarea distribuit are forma reelelor locale (LAN), n care PC-urile unui departament sunt legate prin conexiuni de mare vitez, resursele scumpe putnd avea o utilizare n comun; se deosebete de sistemele cu mai muli utilizatori. Un sistem de calcul proiectat pentru mai muli utilizatori, n maniera mainframe (un calculator de mare capacitate necesar unei organizaii departamentale, cu mai multe terminale i cu o baz de date comun i partajarea unor resurse scumpe n comun); deosebirea esenial dintre sistemele centralizate i cele distribuite este c puterea de calcul se realizeaz n primele printr-un calculator de mare capacitate, iar n cele distribuie prin mai multe calculatoare de capaciti mai mici. Se refer la posibilitatea de a asigura creterea eficienei prin creterea numrului de procesoare , n ipoteza c programul prezint un potenial suficient de mare de paralelism i o granularitate suficient de mare; Dac se obine o cretere liniar a accelerrii, se spune c sistemul este scalabil liniar. Procese concurente care nu fac schimb de date direct, dup perioade prestabilite (ca la procesele sincrone), sau prin mesaje la cerere (ca la procesele sincronizabile), ci fac schimb de date prin intermediul memoriei comune n orice moment al desfurrii proceselor Este un sistem de calcul online (sistem n care datele de intrare sunt introduse direct de la locul de generare n sistemul de calcul, iar datele de ieire sunt transmise direct la locul de utilizare), ataat unui fenomen n desfurare real, astfel nct intervalul de timp scurs de la nceperea prelurii datelor de intrare i pn la obinerea rezultatelor, s fie suficient de scurt pentru ca desfurarea ulterioar a fenomenului s mai poat fi

38. Sistem centralizat de prelucrare // centralized processing sistem

39. Scalabilitatea (sistemului paralel) / scalability (of parallel system) [Gri00], p. 68 40. Procese asincrone // asynchronous processes

41. Sistem de calcul n timp real // real time computing system

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

139

influenat: Elementul esenial ce caracterizeaz un sistem de calcul n timp real este timpul de rspuns al aplicaiei, timp care de multe ori nu poate fi suficient de micorat dect prin mijloace sau procedee de calcul paralel 42. UNIX Sistem de operare multitasking i multiuser utilizabil att pe un PC ct i pentru reele de PC-uri; are multe variante specializate: Linux pentru configurarea unui calculator paralel virtual, care poate fi programat n limbaj PVM, Parix, pentru sistemele bazate pe transputere; Dynix, pentru sistemul Sequent Symmetry .a. Categorie de probleme de mari dimensiuni, cu caracter tiinific sau ingineresc, de o asemenea complexitate nct nici un cercettor sau institut de cercetri nu le poate rezolva prin eforturi individuale; astfel de probleme sunt inte ale calcului paralel i distribuit. Exist mai multe modaliti de obinere a algoritmilor paraleli: -prin multiplicare i izolare, adic fiecare procesor execut n mod independent acelai program, fiind izolat de restul procesoarelor (acelai program, date locale diferite, fr comunicare ntre procesoare); -prin paralelism spaial, fiecare procesor executnd acelai program dar asupra unor date locale rezultate n urma unei divizri a domeniului datelor (acelai program, date locale diferite, comunicare pentru datele de la frontiera domeniului); -prin paralelism algoritmic, fiecare procesor fiind responsabil de o anumit parte din program, toate datele trecnd prin fiecare procesor (secvene de program diferite, date globale, comunicare prin intermediul unei memorii comune); algoritmii paraleli pot fi numerici (se execut calcule cu numere), sau nenumerici (se execut operaii de cutare, sortare .a.). Cuvntul internet provine din concatenarea prescurtrilor a dou cuvinte englezeti, interconnected (interconectat) i network (reea) i desemneaz o reea

43. / Grand Challenge

44. Algoritmi paraleli // parallel algorithms

45. Internet / The Net

140

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

de mari dimensiuni format prin interconectarea mai multor reele autonome eterogene. Astfel, substantivul comun internet (cu minuscul) desemneaz n general o reuniune de reele, vzut ca o reea unitar, mpreun cu informaia i serviciile care sunt oferite utilizatorilor prin intermediul acestei reele (Web, EMail, FTP etc.). Cea mai mare dintre reele de tip internet este numit Internet (nume propriu, scris cu majuscul), adic super-reeaua mondial unic de computere, interconectate prin protocolul IP Att Internetul sau The NET (Reeaua), cum i se mai spune n lume, ct i alte reele mai mici de tip internet sunt exemple de sisteme informatice distribuite. 46. Intranet/ Un intranet este o reea nchis sau o sub-reea dintr-un internet sau chiar din Internet care este administrat autonom i pentru care exista un sistem de securitate local. Un intranet poate format din mai multe reele de tip Local Area Network (LAN), legate ntre ele prin anumite sisteme de comutare. Un intranet poate fi conectat la Internet printr-un router , care permite utilizatorilor din intranet s utilizeze servicii ca Web, FTP sau EMAIL. De asemenea permite utilizatorilor din exterior (din Internet) s acceseze servicii pe care le pune eventual la dispoziie intranetul. Pentru a se proteja de diferite atacuri maliioase, sunt utilizate soft-uri de tip firewall, care previn utilizatorul c anumite mesaje neautorizate ncearc s intre sau s plece. Un firewall este implementat s filtreze anumite mesaje conform unor criterii, de exemplu el permite trecerea doar a mesajelor legate de pota electronic. n lumea sistemelor informatice distribuite un rol deosebit l au n prezent dispozitivele miniaturizate i reelele wireless. De exemplu, cu ajutorul unui laptop sau chiar a telefonului mobil, printr-o conexiune de tip wireless ne putem conecta aproape de pretutindeni la intranetul home i putem utiliza resursele de acolo (de pe calculatorul de acas sau de la serviciu). Putem vorbi astfel de un calcul mobil (nomadic computing).

47. Calcul mobil/ Nomadic computing

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

141

48. Computereomniprezente/ Ubiquitous computing

Ubiquitous computing promoveaz ideea aparent opus, computere omniprezente, adic s existe computere conectate la internet n locuri n care exist indivizi obligai s stea un timp mai lung sau mai scurt (imobilizai acas sau n spitale, n staiuni turistice, n gri i aeroporturi etc.), pe care indivizii le pot accesa pentru comunica sau pentru a accesa anumite informaii din exterior. De exemplu, de la calculatorul de acas conectat la Internet, putem accesa diverse informaii de la serviciu sau putem citi presa din Bucureti sau Londra, sau putem coresponda prin email sau online cu orice persoan din lume care dispune de aceleai faciliti. In afar de laptopuri i de telefoanele mobile performante, amintim imprimantele inteligente, ceasurile inteligente, PDA (personal digital assistant), camere video digitale etc., care contribuie la dezvoltarea tot mai expansiv a calculului nomadic. Din punct de vedere al structurii hardware i a tipului de conexiune, sistemele care cuprind mai multe procesoare pot fi: puternic cuplate (conectate la nivel de memorie, ex. multiprocesoare); slab cuplate (conectate la nivel de reea de calculatoare, ex. multicalculatoare). Sistemele puternic cuplate sunt sisteme n care mai multe procesoare partajeaz aceeai memorie intern i folosesc acelai ceas intern. De exemplu sistemele din clasa MIMD sunt sisteme puternic cuplate (multiprocesoarele i calculatoarele paralele masive). Sistemele slab cuplate sunt sisteme n care fiecare procesor are propria memorie i propriul ceas intern.

49. Sistem puternic cuplat/ Tightly coupled system 50. Sistem slab cuplat/ Loosely coupled system

142

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

51. Cluster (ciorchine) Se mai utilizeaz uneori denumirea Farm (ferm) pentru desemnarea aceluiai concept

Clusterul este un tip de sistem distribuit ce permite calculul paralel, format fizic dintr-o reea de cel puin dou procesoare, numite staii de lucru (care pot fi calculatoare complete, PC-uri, supercalculatoare, calculatoarele vectoriale, multiprocesoare, MPP), care pot fi folosite i de sine stttor, interconectate ntr-o reea, fiind utilizat ca o resurs de calcul integrat i singular. n practic se utilizeaz dou tipuri de clustere: clustere dedicate (formate din procesoare omogene) i clustere de ntreprindere (formate din procesoare neomogene). Un cluster are, n mod iluzoriu, pentru utilizator o imagine de sistem unic -SSI (Single System Image). Aceasta este impresia utilizatorului, c are acces la un sistem unic cu resurse multiplicate, cu control unic asigurat prin intermediul unei singure interfee. Sistemul este simetric, n sensul c un serviciu poate fi solicitat de pe orice nod, iar accesul la resurse este transparent. Astfel, clusterul pare la fel de uor de folosit ca un PC. Elementele clusterului sunt vzute din afar ca fiind anonime i interschimbabile. Este o colecie de date distribuit n mai multe locaii fizice, controlat de un sistem de management al bazei de date n care dispozitivele de stocare nu sunt ataate n totalitate de o singur unitate central de prelucrare obinuit. Datele pot fi stocate n mai multe calculatoare plasate n aceeai locaie fizic sau ntr-o reea. O baz de date distribuit este distribuit n partiii/fragmente separate. Fiecare partiie/fragment a unei baze de date distribuit poate fi reprodus (adic eecuri redundante, cum ar fi o matrice de hard-disk-uri). n afar de replicarea i fragmentarea bazelor de date distribuite, exist multe alte modele de tehnologii ale bazelor de date distribuite. De exemplu, autonomia local, i tehnologii sincrone i asincrone ale bazelor de date distrbuite. Aceste implementri ale tehnologiilor poate, i n mod sigur, depinde de nevoile beneficiarului i sensibilitatea/confidenialitatea datelor care vor fi stocate n baza de date.

52. Baz de date distribuit //distributed database

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

143

BIBLIOGRAFIE
[AG94] G. S. ALMASI, A. GOTTLIEB : Highly Parallel Computing: Second Edition, Benjamin /Cummings, Redwood City, CA, 1994. [Ben90] M. BEN-ARI: Principles of concurrent and distributed programming, Prentice Hall, 1990. [BBC+04] A. BAVIER, M. BOWMAN, B. CHUN, D. CULLER, S. KARLIN, S. MUIR, L. PETERSON, T. ROSCOE, T. SPALINK, M. WAWRZONIAK: Operating System Support for Planetary-Scale Services, Proceedings of the First Symposium on Network Systems Design and Implementation (NSDI), March 2004. [BTT02] S. BURAGA, V. TARHON-ONU, . TANAS, Programare Web n Bash i Perl, Editura Polirom, Iai, 2002. [Chi95] I. CHIOREAN: Calcul paralel, Ed. Albastr, Cluj-Napoca,1995. [DL03] I. DZIAC, E. LASLO, Programarea paralela utiliznd PVM, Ed. Univ. din Oradea, 2003 [Dzi98] I. DZIAC: Parallel and concurrent in informatics vocabulary, An. Univ. din Oradea, Tom VI, 1997-1988, pp. 30-34 [Dzi01b] I. DZIAC: A binary graph for the parallel architecture, The PAMMs periodical Bulletins for Applied & Computer Mathematics, Budapest, BAM-1906/2001 (XCVI-C), pp.151-164. [Dzi01c] I. DZIAC: Calcul paralel, Ed. Univ. din Oradea, 2001 [Dzi02] I. DZIAC: Procedee de calcul paralel si distribuit in rezolvarea unor ecuaii operatoriale, PhD Thesis, Supervisor Grigor Moldovan, Univ. Babes-Bolyai, Cluj Napoca, 2002 [Dzi02a] I. DZIAC: Survey of Taxonomy of the Parallel Computers, In Proc. of The 27th Annual Congress, of the American Romanian Acad. of Arts (ARA) and Univ.of Oradea, 2002, pp. 672 673.

144

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

[Dzi06] I. DZIAC: Parallel and Distributed Methods for Algebraic Systems Resolution, Ed. Univ. Agora, Oradea, 2006. [FKT01] I. FOSTER, C. KESSELMAN, S. TUECKE. The anatomy of the Grid: Enabling scalable virtual organization. The Intl. Journal of High Performance Computing Applications, 15(3):200--222, Fall 2001. [Gri00] D. GRIGORA: Calculul paralel- De la sisteme la programarea aplicaiilor, Ed. Agora, 2000. [HJ91] R.W. HOCKNEY, C.R. JESSHOPE: Calculatoare paralele, arhitectur, programare i algoritmi, Ed. Tehnic, 1991 (traducere de Dan Grigora). [Hwa93] K. HWANG: Advanced Computer Architecture: Parallelism, Scalability, Programability, Mc Graw-Hill, NV, 1993. [Jod95a] E. JODAL: Dicionar de tehnic de calcul englez romn, Ed.Albastr, 1995. [Jod95b] E. JODAL: Dicionar de tehnic de calcul romn englez, Ed, Albastr. 1995. [KBM02] K. KRAUTER, R. BUYYA, M. MAHESWARAN: A taxonomy and survey of grid resource management systems for distributed computing, Softw. Pract. Exper. 2002; 32:135 164 (DOI: 10.1002/spe.432) [Kum+94] V. KUMAR, A. GRAMA , A. GUPTA, G. KARYPIS: Introduction to Parallel Computing, Design and Analysis of Algorithms, The Benjamin/ Cummings Publishing Company, Inc., 1994. [Lew93] T. LEWIS: Foundations of parallel programming. A machine independent approach, IEEE Computer Society Press, Los Alamitos, 1993. [Mar+99] V. MARINESCU, R. HRIN, M. TOMESCU, M. HRIN, L. ANANIA: Dicionar informatic trilingv, Ed. ALL, 1999. [MD87] G. MOLDOVAN; S. DAMIAN: On some generalizations of an optimization problem for distributed databases, Stud. Univ. Babes-Bolyai, Math. 32, No.3, pp. 67-76 (1987). [MD88] GR. MOLDOVAN; S. DAMIAN: On an optimization problem for distributed databases, An. Univ. Bucur., Mat. 37, No.2, pp. 82-87 (1988).

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

145

GR. MOLDOVAN; S. DAMIAN: A local optimization problem for data base redistribution in a computer net, Stud. Univ. Babes-Bolyai, Math. 34, No.3, pp. 316 (1989). [Mol93b] GR. MOLDOVAN: The problem of redistribution of a distributed service system following some given criteria,Babes-Bolyai Univ., Fac. Math. Comput. Sci., Res. Semin., Prepr. 1993, No.5, pp. 75-78 (1993). [MR92] G. MOLDOVAN, I. RP: Files d'attente dans des systmes distribues des services. (Queues in distributed service systems) Stud. Univ. BabesBolyai, Math.37, No.3, pp. 69-74 (1992). [PAC+02] L. PETERSON, T. ANDERSON, D. CULLER, T. ROSCOE: A Blueprint for Introducing Disruptive Technology into the Internet, Proceedings of the First ACM Workshop on Hot Topics in Networking (HotNets), October 2002. [Pet94] D. PETCU: Calcul paralel, Ed. de Vest, Timioara, 1994. [Pet98] D. PETCU: Parallelism in solving ordinary differential equations, Univ. de Vest din Timioara, 1998. [PO02] C. POPESCU, H. OROS: Securitatea reeleor de calculatoare, Editura Universitii din Oradea, 2002 [PW95] B. PFAFFENBERGER, D. WALL: Ques Computer & Internet Dictionary, 1995 (traducere n limba romn de N.D. Pora, Ed. Teora, 1999). [Sto93] H. S. STONE: High-Performance Computer Architectures Third Edition, Addison-Wesley, Reading, MA, 1993. [Tan97] A. TANENBAUM: Reele de calculatoare, Computer Press Agora, 1997. [Vin96] L. VINAN: Exploatarea paralelismului n microprocesoarele avansate, Ed. Univ. Sibiu, 1996. [Wil90] S. A. WILLIAMS: Programming Models for Parallel Systems, John Wiley & Sons, Chicester, 1990. [Wil93] N. B. WILDING: Notes to accompany Introductory Talks on Parallel Computing, Heilderberg, apr.1993. [MD89]

146

Ioan Dziac, Grigor Moldovan, Sisteme distribuite: Modele informatice

Webgrafie:
1. http://www.networkcomputing.com/ 2. http://boinc.berkeley.edu/ 3. http://www.networkcomputing.co.uk/ 4. http://www.distributed.net/ 5. http://dsonline.computer.org/portal/site/dsonline/index.jsp 6. http://distributedcomputing.info/ 7. www.informatica.com/solutions/resource_center/glossary/default.htm 8. http://www.gridcomputing.com/ 9. http://www-1.ibm.com/grid/ 10. http://www.oracle.com/technologies/grid/index.html 11. http://www.gridcomputingplanet.com/ 12. http://gridcafe.web.cern.ch/gridcafe/ 13. http://www.realitygrid.org/information.html 14. http://www.springerlink.com/content/1573-7543/ 15. http://www.ieeetfcc.org/ 16. http://www.trygve.com/furbeowulf.html 17. http://library.thinkquest.org/C007645/english/0-welcome.htm 18. http://www.internet.com/ 19. http://www.legi-internet.ro/ 20. http://www.intranetjournal.com/ 21. http://www.ici.ro/ici//revista/ria2003_4/art3.html 22. http://www-unix.mcs.anl.gov/mpi/ 23. http://www.csm.ornl.gov/pvm/ 24. http://www.linux.org 25. http://info.tech.pub.ro/~fionescu/CP/CP.html 26. http://www.linux-ha.org/ClusterResourceManager 27. http://www.csm.ornl.gov/pvm/ 28. http://www.globus.org/ 29. http://www.globus.org/toolkit/ 30. http://detective.internet2.edu/applet/index.html 31. http://www.epm.ornl.gov/pvm/pvm_home.html 32. http://www.netlib.org/pvm3 33. http://www.ICANN.org 34. http://www.gac.icann.org/docs/index.htm 35. http://gac.icann.org/web/about/gac-outreach_Romanian.htm 36. http://www.domreg.ro/domain.html

Potrebbero piacerti anche