You are on page 1of 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

Prof. univ. dr. Grigor Moldovan


Domenii de interes:
Sisteme distribuite, Limbaje formale

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.

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

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

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

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

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)

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

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

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

33

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

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

35

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

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

37

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

Fig. 1.3.1. Arhitectura principial a unui cluster

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

41

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.

2.

3.

4.

5.

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.

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.

2.

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

2.

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.1.9. Divizarea clasei MIMD dup modul de organizare a adresrii


spaiului de memorie (Bell)
1.

2.

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.1.10. Divizarea multiprocesoarelor dup tipul de memorie utilizat (Bell)


1.

2.

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

Fig. 2.2.7. Procesor vectorial cu memorie distribuit local

59

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

Fig. 2.2.9. MIMD cu memorie distribuit

Fig. 2.2.10. Arhitectur sistolic de tip MISD

61

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

a) SISD
(SI)

b)SIMD

Global
CU[CPU]

P+
CU
Procesor

(SI)
P1

I
I
Global
CU[MCU]
l

(SD)
Data
stream

(SISD)

(MD
)

P2

(SIMD)
I

Pn

(MI)

c)MISD

P1

I1
I2
Local
CU[MCU]

d) MIMD

P2
Date

In

P 1+
CU

I1
I2
In

(MISD)

Pn

(MI)

Local
CU[MCU
}

(SD)

(M
D)

P 2+
CU

(MIM

P n+
CU
Reea de
interconectare

Fig. 2.3.2 Schemele funcionale ale categoriilor Flynn

63

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

2.4.5. O schem de sintez

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

69

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):

4 ...

n2

n 1

: 0 1 n 1 1 n + 1 2 ... 1 n 1 n 1

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.

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

111

11
001

101
010

000
0

1
H1

110

100

00
H2

H3

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

S=S(n,p)

E(n,p)= S/p

Numrul

Numrul

Speedup

Eficiena

term.

de proc.

(acc.)

(1/log n)

sumei

din

(n/log n)

hipercub
n

n*p/(n+2*p*log p)

n/(n+2*p*log p)

64

3,72

0,93

64

6,48

0,81

64

16

9,92

0,62

64

32

12,48

0,39

512

3,96

0,99

512

7,76

0,97

512

16

14,88

0,93

512

32

26,88

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

Mediul Internet
Furnizori locali
i regionali

Gateway

Router

Router

Router

Router

Gateway

Intranet:
reeaua
unei firme

Host

Router

Router

PC
Host

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

recomandrilor fcute
Intelectuale (WIPO);

de

Organizaia

Mondial

113

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

.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

119

.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

.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

121

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.

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

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,

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

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.

5. Paralelismul
de flux
// data flow
parallelism
// flux parallelism

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

6. Paralelism
spaial
// spatial
parallelism

P. care efectueaz o descompunere a datelor


reprezentative n spaiu, n regiuni prelucrate de
procesoare diferite (calcul numeric, prelucrare de
imagini)

7. Extragerea
paralelismului
8. Paralelism
implicit sau
extras
// implicit
parallelism

Paralelism implicit (8); paralelism explicit (9)

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

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

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

12. Arhitectura
paralelismului

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

13. Paralelizarea
unui program/
algoritm

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.

14. Clasificarea
Flynn

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);

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;

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

Arhitectur a sistemului central / unitii centrale care


include mai multe procesoare elementare de prelucrare;

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

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

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.

20. Arhitectur
superscalar
// superscalar
architecture

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.

[Gri00]

21. Hipercub
// hypercub

Calculator paralel cu cuplare slab i memorie


distribuit la un numr de procesoare ce uneori
depete 65 000 (de ex, CM 1).

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

Denumire dat unui calculator sau unui sistem de calcul


care are mai multe procesoare de prelucrare

23.
Multiprogramare
//multiprogramming

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:

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.

26.
Multiprelucrare
// multiprocessing

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.

27. Sincronizare
// synchronization

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;

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

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

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.

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.

38. Sistem
centralizat de
prelucrare
// centralized
processing sistem

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.

39. Scalabilitatea
(sistemului
paralel)
/ scalability (of
parallel system)
[Gri00], p. 68

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.

40. Procese
asincrone
// asynchronous
processes

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

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

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

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.

43. / Grand
Challenge

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.

44. Algoritmi
paraleli
// parallel
algorithms

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

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.

47. Calcul mobil/


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

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.

49. Sistem
puternic cuplat/
Tightly coupled
system

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.

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.

52. Baz de date


distribuit
//distributed
database

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.

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

You might also like