Procesare Distribuită

Previzualizare curs:

Extras din curs:

Aceste note de curs se bazeaza pe urmatoarele texte:

1. Distributed Computing , H. Attyia & J. Welch; McGraw-Hill 1998

2. Distributed Algorithms, N. Lynch; Morgan Kaufmann 1996

3. Introduction to Distributed Algorithms, G. Tel; Cambridge University Press 1994

1. Introducere

Un sistem (de calcul) distribuit este o colectie de dispozitive de calcul individuale care comunica între ele.

Spre deosebire de procesarea paralela, în care scopul principal este cooperarea dintre toate procesoarele în vederea realizarii unei lucrari, în procesarea distribuita fiecare procesor are în general propria sa agenda semi-independenta, dar din diferite motive (partajarea resurselor, toleranta la erori etc.) procesoarele trebuie sa-si coordoneze actiunile.

Principalele dificultati în proiectarea sistemelor distribuite sunt:

- Asincronia – timpul absolut (sau chiar relativ) la care au loc evenimentele nu poate fi cunoscut precis;

- Cunoasterea locala – fiecare entitate de calcul poate dispune doar de informatia pe care o primeste, are doar o imagine locala asupra situatiei globale;

- Caderea componentelor (failures) – entitatile de calcul se pot defecta independent lasând anumite componente operationale iar altele nu.

Procesarea distibuita îsi propune sa realizeze ceea ce Proiectarea si Analiza algoritmilor secventiali a facut pentru calculatoarele secventiale: evidentierea unui cadru general pentru specificarea algoritmilor si compararea performantelor pentru întelegerea limitarilor interne ale acestora.

Se doreste indentificarea de probleme fundamentale, abstractizari ale celor ce apar în sisteme distribuite reale, enuntarea acestor probleme în mod precis, proiectarea si analiza unor algoritmi eficienti pentru ele.

Dificultatea principala consta în faptul ca nu exista un model de calcul unanim acceptat si probabil nici nu va fi. Exista diferente majore între sistemele distribuite depinzând de:

prin mesaje;

- Modul de comunicare

prin memorie partajata;

- Tipul de informatie referitor la timp si comportarea sistemului în timp;

- Tipul de caderi (ale componentelor) care sunt tolerate.

În sistemele distribuite exista noi tipuri de masuri de complexitate. Pe lânga timpul de executie si spatiul de lucru (ce trebuie definite în mod corespunzator) vom fi interesati în complexitatea de comunicare si în numarul de componente defecte ce pot fi acceptate. Exista numeroase rezultate “negative”, margini inferioare si rezultate de imposibilitate. Se poate demonstra ca o problema particulara nu poate fi rezolvata într-un tip particular de sistem distribuit, sau nu se poate rezolva sub o anumita cantitate dintr-o anumita resursa. (Astfel de rezultate joaca rolul celor de NP-completitudine din algoritmica secventiala.)

2. Legatura cu practica

Daca nu cel mai simplu, cu siguranta cel mai vechi exemplu de sistem distribuit este un sistem de operare pentru calculatoare secventiale conventionale. Procesele de pe acelasi hard comunica utilizând acelasi soft sau prin schimburi de mesaje, sau printr-un spatiu comun de adresare. Partajarea unei singure CPU de catre procese multiple ridica probleme de concurenta (virtuala). Multe dintre problemele ridicate de un sistem de operare apar si în alte sisteme distribuite, ca de exemplu excluderea mutuala, detectarea si prevenirea dead-lockului.

Masinile MIMD cu memorie partajata sunt puternic interconectate (tightly coupled) si sunt numite uneori multiprocesoare. Acestea constau din componente hard separate executând un soft comun. Conectarea se face printr-un bus sau, mai putin frecvent, printr-o retea cu comutatori. Masinile MIMD pot fi si slab interconectate (loosley coupled) si nu au memorie comuna. Ele pot fi o colectie de statii de lucru dintr-o retea locala sau o colectie de procesoare într-o retea cu comutatori.

Sistemele distribuite si mai putin interconectate pot fi constituite din gazde autonome într-o retea locala (ca de exemplu Ethernet) sau chiar WAN (cum ar fi Internet). În acest caz, avem componente hard separate executând soft separat desi entitatile interactioneaza prin interfete bine definite ca de exemplu TCP/IP, CORBA sau ale groupware sau middleware.

Dupa modul de comunicare si gradul de sincronizare vom considera trei modele principale:

1. Modelul asincron cu memorie partajata; este reprezentat de masinile puternic cuplate în situatia comuna în care procesoarele nu-si iau semnalul de ceas de la o singura sursa;

2. Modelul asincron cu transmitere de mesaje; este reprezentat de masinile putin cuplate si WAN;

3. Modelul sincron cu transmitere de mesaje; este o idealizare a sistemelor bazate pe transmiterea mesajelor, în care se cunoaste o anumita informatie referitoare la timp (ca de exemplu o margine superioara pentru întirzierea mesajelor). Se poate simula un astfel de model cu sisteme mai realiste, de exemplu prin sincronizarea ceasurilor.

Modelele bizantine evidentiaza preocuparile legate de posibilitatea de defectiune a anumitor componente.

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Procesare Distribuita.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (2 voturi)
Nr fișiere:
1 fisier
Pagini (total):
14 pagini
Imagini extrase:
14 imagini
Nr cuvinte:
12 021 cuvinte
Nr caractere:
60 028 caractere
Marime:
84.24KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Profesorului:
Mazilescu Vasile, Dan Caprita
Sus!