Sistem de operare distribuit - Distributed operating system

Un sistem de operare distribuit este software de sistem pe o colecție de noduri de calcul independente, conectate în rețea , comunicante și fizic separate. Se ocupă de lucrări care sunt deservite de mai multe procesoare. Fiecare nod individual deține un subset specific de software al sistemului de operare global agregat. Fiecare subset este un compus din doi furnizori de servicii distincti. Primul este un nucleu minim omniprezent , sau microkernel , care controlează direct hardware-ul acelui nod. Al doilea este o colecție la nivel superior de componente de gestionare a sistemului care coordonează activitățile individuale și de colaborare ale nodului. Aceste componente abstractizează funcțiile microkernel și acceptă aplicațiile utilizatorului.

Microcernelul și colecția de componente de management funcționează împreună. Acestea susțin obiectivul sistemului de a integra mai multe resurse și funcționalități de procesare într-un sistem eficient și stabil. Această integrare perfectă a nodurilor individuale într-un sistem global este denumită transparență sau imagine de sistem unică ; descrierea iluziei oferite utilizatorilor apariției sistemului global ca o singură entitate de calcul.

Descriere

Structura sistemelor de operare bazate pe nucleu monolitic, microkernel și hibrid

Un sistem de operare distribuit oferă serviciile și funcționalitatea esențiale necesare unui sistem de operare, dar adaugă atribute și configurații speciale pentru a-i permite să accepte cerințe suplimentare, cum ar fi scara și disponibilitatea crescute. Pentru un utilizator, un sistem de operare distribuit funcționează într-un mod similar cu un sistem de operare monolitic cu un singur nod . Adică, deși constă din mai multe noduri, acesta apare utilizatorilor și aplicațiilor ca un singur nod.

Separarea funcționalității minime la nivel de sistem de serviciile modulare suplimentare la nivel de utilizator oferă o „ separare a mecanismului și a politicii ”. Mecanismul și politica pot fi pur și simplu interpretate ca „ce se face ceva” versus „cum se face ceva”, respectiv. Această separare crește flexibilitatea și scalabilitatea.

Prezentare generală

Nucleul

La fiecare localizare (de obicei un nod), nucleul oferă un set minim complet de utilități la nivel de nod necesare pentru operarea hardware-ului și resurselor subiacente unui nod. Aceste mecanisme includ alocarea, gestionarea și dispunerea resurselor, proceselor, comunicării și funcțiilor de suport pentru gestionarea intrărilor / ieșirilor unui nod . În cadrul nucleului, subsistemul de comunicații are cea mai mare importanță pentru un sistem de operare distribuit.

Într-un sistem de operare distribuit, nucleul acceptă adesea un set minim de funcții, inclusiv gestionarea spațiului de adrese de nivel scăzut , gestionarea firelor și comunicarea inter-proces (IPC). Un nucleu al acestui design este denumit microcernel . Natura sa modulară sporește fiabilitatea și securitatea, caracteristici esențiale pentru un sistem de operare distribuit. Este obișnuit ca un nucleu să fie reprodus identic pe toate nodurile dintr-un sistem și, prin urmare, nodurile dintr-un sistem folosesc hardware similar. Combinația dintre designul minim și acoperirea omniprezentă a nodurilor îmbunătățește extensibilitatea sistemului global și capacitatea de a introduce în mod dinamic noi noduri sau servicii.

Prezentare generală a componentelor de gestionare a sistemului care se află deasupra microkernelului.
Prezentare generală a componentelor de gestionare a sistemului

Managementul sistemului

Componentele de gestionare a sistemului sunt procese software care definesc politicile nodului . Aceste componente fac parte din sistemul de operare din afara nucleului. Aceste componente asigură comunicarea la nivel superior, gestionarea proceselor și a resurselor, fiabilitate, performanță și securitate. Componentele se potrivesc cu funcțiile unui sistem cu o singură entitate, adăugând transparența necesară într-un mediu distribuit.

Natura distribuită a sistemului de operare necesită servicii suplimentare pentru a susține responsabilitățile unui nod față de sistemul global. În plus, componentele de gestionare a sistemului acceptă responsabilitățile „defensive” de fiabilitate, disponibilitate și persistență. Aceste responsabilități pot intra în conflict unul cu celălalt. O abordare consecventă, o perspectivă echilibrată și o înțelegere profundă a sistemului general pot ajuta la identificarea randamentelor diminuate . Separarea politicii și mecanismului atenuează astfel de conflicte.

Lucrul împreună ca sistem de operare

Arhitectura și proiectarea unui sistem de operare distribuit trebuie să realizeze atât obiectivele individuale ale nodului, cât și obiectivele sistemului global. Arhitectura și proiectarea trebuie abordate într-o manieră compatibilă cu separarea politicii și mecanismului. Procedând astfel, un sistem de operare distribuit încearcă să ofere un cadru de calcul distribuit eficient și fiabil, care să permită o conștientizare minimă absolută a utilizatorului de eforturile de comandă și control care stau la baza.

Colaborarea pe mai multe niveluri între un kernel și componentele de gestionare a sistemului și, la rândul său, între nodurile distincte dintr-un sistem de operare distribuit este provocarea funcțională a sistemului de operare distribuit. Acesta este punctul din sistem care trebuie să mențină o armonie perfectă a scopului și să mențină simultan o deconectare completă a intenției de la implementare. Această provocare reprezintă oportunitatea sistemului de operare distribuit de a produce fundamentul și cadrul pentru un sistem fiabil, eficient, disponibil, robust, extensibil și scalabil. Cu toate acestea, această oportunitate are un cost foarte ridicat în complexitate.

Prețul complexității

Într-un sistem de operare distribuit, gradul excepțional de complexitate inerentă ar putea face cu ușurință întregul sistem o anatemă pentru orice utilizator. Ca atare, prețul logic al realizării unui sistem de operare distribuit trebuie calculat în termeni de depășire a unor cantități mari de complexitate în multe domenii și pe multe niveluri. Acest calcul include profunzimea, lărgimea și gama investițiilor în proiectare și planificarea arhitecturală necesare pentru realizarea chiar și a celei mai modeste implementări.

Aceste considerații de proiectare și dezvoltare sunt esențiale și neiertătoare. De exemplu, este necesară o înțelegere profundă a detaliilor generale de arhitectură și proiectare ale unui sistem de operare distribuit, într-un moment excepțional. O serie istovitoare de considerații de proiectare sunt inerente dezvoltării unui sistem de operare distribuit. Fiecare dintre aceste considerații de proiectare poate afecta pe multe dintre celelalte într-un grad semnificativ. Acest lucru duce la un efort masiv într-o abordare echilibrată, în ceea ce privește considerațiile individuale de proiectare și multe dintre permutările lor. Ca un ajutor în acest efort, majoritatea se bazează pe experiența documentată și cercetarea în domeniul puterii de calcul distribuite.

Istorie

Eforturile de cercetare și experimentare au început cu seriozitate în anii 1970 și au continuat până în anii 1990, cu un interes concentrat care a atins punctul culminant la sfârșitul anilor 1980. Un număr de sisteme de operare distribuite au fost introduse în această perioadă; cu toate acestea, foarte puține dintre aceste implementări au obținut chiar și un succes comercial modest.

Implementările fundamentale și de pionierat ale conceptelor de componente de sisteme de operare distribuite primitive datează de la începutul anilor 1950. Unii dintre acești pași individuali nu s-au concentrat direct pe calculul distribuit și, în acel moment, mulți nu și-au dat seama de impactul lor important. Aceste eforturi de pionierat au pus bazele importante și au inspirat cercetări continue în domeniile legate de calculul distribuit.

La mijlocul anilor 1970, cercetarea a produs progrese importante în calculul distribuit. Aceste descoperiri au oferit o bază solidă și stabilă pentru eforturile care au continuat până în anii 1990.

Proliferarea accelerată a cercetării sistemelor cu procesoare multiple și multi-core a dus la reapariția conceptului de sistem de operare distribuit.

Anii 1950

DYSEAC

Unul dintre primele eforturi a fost DYSEAC , un computer sincron de uz general . Într-una dintre cele mai vechi publicații ale Asociației pentru Mașini de Calcul , în aprilie 1954, un cercetător la Biroul Național de Standarde  - acum Institutul Național de Standarde și Tehnologie ( NIST ) - a prezentat o specificație detaliată a DYSEAC. Introducerea sa concentrat asupra cerințelor aplicațiilor intenționate, inclusiv a comunicațiilor flexibile, dar a menționat și alte computere:

În cele din urmă, dispozitivele externe ar putea include chiar și alte computere la scară largă care folosesc același limbaj digital ca DYSEAC. De exemplu, SEAC sau alte computere similare cu acesta ar putea fi valorificate cu DYSEAC și prin utilizarea programelor coordonate ar putea fi făcute să funcționeze împreună în cooperare reciprocă pentru o sarcină comună ... În consecință [,] computerul poate fi utilizat pentru a coordona diversele activitățile tuturor dispozitivelor externe într-o operație efectivă de ansamblu.

-  ALAN L. LEINER, Specificații de sistem pentru DYSEAC

Specificația a discutat arhitectura sistemelor multi-computer, preferând peer-to-peer în loc de master-slave.

Fiecare membru al unui astfel de grup interconectat de computere separate este liber în orice moment să inițieze și să trimită ordine speciale de control către oricare dintre partenerii săi din sistem. În consecință, controlul de supraveghere asupra sarcinii comune poate fi distribuit inițial în întregul sistem și apoi concentrat temporar într-un computer sau chiar transmis rapid de la o mașină la alta, pe măsură ce apare nevoia. … Diferitele facilități de întrerupere care au fost descrise se bazează pe cooperarea reciprocă între computer și dispozitivele externe subsidiare acestuia și nu reflectă doar o simplă relație stăpân-sclav.

-  ALAN L. LEINER, Specificații de sistem pentru DYSEAC

Acesta este unul dintre primele exemple de computer cu control distribuit. Rapoartele Departamentului Armatei l- au certificat ca fiind de încredere și că a trecut toate testele de acceptare în aprilie 1954. A fost finalizat și livrat la timp, în mai 1954. Acesta era un „ computer portabil ”, găzduit într-o remorcă cu 2 vehicule însoțitoare și 6 tone capacitate frigorifică .

Lincoln TX-2

Descris ca un sistem experimental de intrare-ieșire, Lincoln TX-2 a subliniat dispozitivele flexibile, simultan operaționale de intrare-ieșire, adică multiprogramarea . Proiectarea TX-2 a fost modulară, susținând un grad ridicat de modificare și extindere.

Sistemul a folosit tehnica programului de secvență multiplă. Această tehnică a permis mai multe contoare de programe fiecărui asociat cu una dintre cele 32 de secvențe posibile de cod de program. Aceste secvențe prioritizate în mod explicit ar putea fi intercalate și executate concomitent, afectând nu numai calculul în proces, ci și fluxul de control al secvențelor și comutarea dispozitivelor. Multe discuții legate de secvențierea dispozitivelor.

Similar cu DYSEAC, dispozitivele programate separat TX-2 pot funcționa simultan, crescând debitul . Puterea maximă a unității centrale era disponibilă pentru orice dispozitiv. TX-2 a fost un alt exemplu de sistem care prezintă control distribuit, unitatea sa centrală neavând control dedicat.

Celule intercomunicante

Un efort timpuriu de abstractizare a accesului la memorie a fost celulele intercomunicante, unde o celulă era compusă dintr-o colecție de elemente de memorie . Un element de memorie a fost practic un flip-flop sau releu electronic binar . În cadrul unei celule existau două tipuri de elemente, simbol și celulă . Fiecare structură de celule stochează date într-un șir de simboluri, constând dintr-un nume și un set de parametri . Informațiile sunt legate prin asocieri de celule.

Teoria susținea că adresarea este un nivel de indirecție risipitor și nevaloros . Informațiile au fost accesate în două moduri, directă și recuperare încrucișată. Recuperarea directă acceptă un nume și returnează un set de parametri. Proiecte de recuperare încrucișată prin seturi de parametri și returnează un set de nume care conțin subsetul de parametri dat. Acest lucru a fost similar cu o structură de date modificată a tabelului hash care a permis mai multe valori (parametri) pentru fiecare cheie (nume).

Memoria celulară ar avea multe avantaje:
Scrierea bullet.svg O mare parte din logica unui sistem este distribuită în cadrul asociațiilor de informații stocate în celule,
Scrierea bullet.svg Acest flux de asociere de informații este oarecum ghidat de actul de stocare și recuperare,
Scrierea bullet.svg Timpul necesar pentru stocare și recuperare este în mare parte constant și complet lipsit de legătură cu dimensiunea și factorul de umplere al memoriei
Scrierea bullet.svg Celulele nu se disting în mod logic, făcându-le atât flexibile de utilizat, cât și relativ simple de extins ca dimensiune

Această configurație a fost ideală pentru sistemele distribuite. Proiecția în timp constant prin memorie pentru stocare și recuperare a fost inerent atomică și exclusivă . Caracteristicile intrinseci distribuite ale memoriei celulare ar fi de neprețuit. Impactul asupra utilizatorului , hardware-ului / dispozitivului sau interfețelor de programare a aplicației a fost indirect. Autorii aveau în vedere sisteme distribuite, afirmând:

Am vrut să prezentăm aici ideile de bază ale unui sistem logic distribuit cu ... conceptul macroscopic de proiectare logică, departe de scanare, de căutare, de adresare și de numărare, este la fel de important. Trebuie, cu orice preț, să ne eliberăm de poverile problemelor locale detaliate care se potrivesc doar unei mașini scăzute pe scara evolutivă a mașinilor.

-  Chung-Yeol (CY) Lee, celule intercomunicante, bază pentru un computer logic distribuit

Muncă de bază

Abstracție coerentă a memoriei

  Algoritmi pentru sincronizare scalabilă pe multiprocesoare cu memorie partajată

Abstracția sistemului de fișiere

  Măsurători ale unui sistem de fișiere distribuite
  Coerența memoriei în sistemele de memorie virtuală partajate

Abstracția tranzacției

  Tranzacții
  Saga

  Memorie tranzacțională Tranzacții de memorie
  compozabile Memorie tranzacțională
  : suport arhitectural pentru structuri de date fără blocare
  Memorie tranzacțională software pentru structuri de date de dimensiuni dinamice
  Memorie tranzacțională software

Abstracție de persistență

  OceanStore: o arhitectură pentru stocare persistentă la scară globală

Abstracție coordonator

  Vot ponderat pentru date replicate
  Consens în prezența sincronizării parțiale

Abstracție de fiabilitate

  Sanity checks
  The Generals Byzantine Problem
  Fail-stop processors: o abordare pentru proiectarea sistemelor de calcul tolerante la erori

  RECUPERARE distribuite instantanee: determinarea stări globale de sisteme distribuite de recuperare Optimist în sisteme distribuite
 
 

Modele de calcul distribuite

Trei distribuții de bază

Pentru a ilustra mai bine acest punct, examinați trei arhitecturi de sistem ; centralizat, descentralizat și distribuit. În această examinare, luați în considerare trei aspecte structurale: organizare, conexiune și control. Organizația descrie caracteristicile de aranjare fizică ale unui sistem. Conexiunea acoperă căile de comunicație între noduri. Controlul gestionează funcționarea celor două considerații anterioare.

Organizare

Un sistem centralizat are un nivel de structură, în care toate elementele constitutive depind în mod direct de un singur element de control. Un sistem descentralizat este ierarhic. Nivelul inferior unește subseturile entităților unui sistem. Aceste subseturi de entități, la rândul lor, se combină la niveluri superioare, culminând în cele din urmă cu un element master central. Un sistem distribuit este o colecție de elemente autonome fără concept de niveluri.

Conexiune

Sistemele centralizate conectează elementele constitutive direct la o entitate centrală centrală într-un mod hub și radiator. Un sistem descentralizat (alias sistem de rețea ) încorporează căi directe și indirecte între elementele constitutive și entitatea centrală. De obicei, aceasta este configurată ca o ierarhie cu o singură cale mai scurtă între oricare două elemente. În cele din urmă, sistemul de operare distribuit nu necesită niciun model; conexiunile directe și indirecte sunt posibile între oricare două elemente. Luați în considerare fenomenele din anii '70 ale „ artei cu șiruri ” sau un desen spirograf ca un sistem complet conectat , iar pânza de păianjen sau sistemul de autostrăzi interstatale dintre orașele SUA ca exemple de sistem parțial conectat .

Control

Sistemele centralizate și descentralizate au direcționat fluxurile de conexiune către și de la entitatea centrală, în timp ce sistemele distribuite comunică pe căi arbitrare. Aceasta este noțiunea esențială a celei de-a treia considerații. Controlul implică alocarea de sarcini și date elementelor sistemului, echilibrând eficiența, capacitatea de reacție și complexitatea.

Sistemele centralizate și descentralizate oferă mai mult control, facilitând potențial administrarea prin limitarea opțiunilor. Sistemele distribuite sunt mai dificil de controlat în mod explicit, dar se scalează mai bine pe orizontală și oferă mai puține puncte de eșec la nivelul întregului sistem. Asociațiile se conformează nevoilor impuse de proiectarea sa, dar nu de haosul organizațional

Considerații de proiectare

Transparenţă

Transparența sau imaginea unui singur sistem se referă la capacitatea unei aplicații de a trata sistemul pe care operează, indiferent dacă este distribuit sau fără a ține cont de hardware sau alte detalii de implementare. Multe zone ale unui sistem pot beneficia de transparență, inclusiv acces, locație, performanță, denumire și migrare. Considerarea transparenței afectează în mod direct luarea deciziilor în fiecare aspect al proiectării unui sistem de operare distribuit. Transparența poate impune anumite cerințe și / sau restricții asupra altor considerente de proiectare.

Sistemele pot încălca opțional transparența în diferite grade pentru a îndeplini cerințele specifice ale aplicației. De exemplu, un sistem de operare distribuit poate prezenta un hard disk pe un computer ca „C:” și o unitate pe alt computer ca „G:”. Utilizatorul nu necesită cunoștințe despre driverele de dispozitiv sau despre locația unității; ambele dispozitive funcționează la fel, din perspectiva aplicației. O interfață mai puțin transparentă ar putea necesita ca aplicația să știe ce computer găzduiește unitatea. Domenii de transparență:

  • Transparența locației - Transparența locației cuprinde două aspecte distincte ale transparenței, transparența numirii și mobilitatea utilizatorilor. Denumirea transparenței necesită ca nimic din referințele fizice sau logice la orice entitate de sistem să nu expună orice indicație a locației entității sau a relației sale locale sau la distanță cu utilizatorul sau aplicația. Mobilitatea utilizatorilor necesită o referință consecventă a entităților sistemului, indiferent de locația sistemului din care provine referința.
  • Transparența accesului - Entitățile de sistem locale și la distanță trebuie să rămână nedistinguibile atunci când sunt vizualizate prin interfața utilizatorului. Sistemul de operare distribuit menține această percepție prin expunerea unui singur mecanism de acces pentru o entitate de sistem, indiferent dacă acea entitate este locală sau la distanță pentru utilizator. Transparența dictează faptul că orice diferență în metodele de accesare a oricărei entități de sistem - fie locale, fie la distanță - trebuie să fie atât invizibilă, cât și nedetectabilă de către utilizator.
  • Transparența migrației - Resursele și activitățile migrează de la un element la altul controlat exclusiv de sistem și fără cunoștințe sau acțiuni ale utilizatorului / aplicației.
  • Transparența replicării - Procesul sau faptul că o resursă a fost duplicată pe un alt element are loc sub controlul sistemului și fără cunoștințe sau intervenții ale utilizatorului / aplicației.
  • Transparență simultană - Utilizatorii / aplicațiile nu sunt conștienți și neafectați de prezența / activitățile altor utilizatori.
  • Transparența defecțiunilor - Sistemul este responsabil pentru detectarea și remedierea defecțiunilor sistemului. Nu este implicată nicio cunoștință / acțiune a utilizatorului în afară de așteptarea ca sistemul să rezolve problema.
  • Transparența performanței - Sistemul este responsabil pentru detectarea și remedierea deficiențelor de performanță locale sau globale. Rețineți că politicile de sistem pot prefera unii utilizatori / clase de utilizatori / sarcini decât altele. Fără cunoștințe de utilizator sau interacțiune. este implicat.
  • Transparența dimensiunii / scalei - Sistemul este responsabil pentru gestionarea acoperirii sale geografice, a numărului de noduri, a nivelului de capacitate a nodului fără cunoștințe sau interacțiuni necesare ale utilizatorului.
  • Transparența revizuirii - Sistemul este responsabil pentru actualizări și revizuiri și modificări ale infrastructurii sistemului fără cunoștințe sau acțiuni ale utilizatorului.
  • Controlul transparenței - Sistemul este responsabil pentru furnizarea tuturor informațiilor despre sistem, constante, proprietăți, setări de configurare etc. într-un aspect, o conotație și o denotație coerente tuturor utilizatorilor și aplicațiilor.
  • Transparența datelor - Sistemul este responsabil pentru furnizarea de date aplicațiilor fără cunoștința utilizatorului sau acțiuni referitoare la locul în care sistemul le stochează.
  • Transparența paralelismului - Sistemul este responsabil pentru exploatarea oricărei abilități de paralelizare a executării sarcinilor fără cunoștințe sau interacțiuni ale utilizatorului. Probabil cel mai dificil aspect al transparenței și descris de Tanenbaum drept „Sfântul Graal” pentru proiectanții de sisteme distribuite.

Comunicarea intraprocesuala

Comunicarea inter-proces (IPC) este implementarea comunicării generale, a interacțiunii de proces și a fluxului de date între fire și / sau procese atât în ​​cadrul unui nod, cât și între nodurile dintr-un sistem de operare distribuit. Cerințele de comunicare intra-nod și inter-nod conduc la proiectarea IPC la nivel scăzut, care este abordarea tipică a implementării funcțiilor de comunicare care susțin transparența. În acest sens, comunicarea interproces este cel mai mare concept de bază în considerațiile de proiectare la nivel scăzut ale unui sistem de operare distribuit.

Administrarea procesului

Managementul proceselor oferă politici și mecanisme pentru partajarea eficientă și eficientă a resurselor între procesele distribuite. Aceste politici și mecanisme susțin operațiunile care implică alocarea și delocarea proceselor și porturilor către procesoare, precum și mecanisme pentru a rula, suspenda, migra, opri sau relua execuția procesului. În timp ce aceste resurse și operațiuni pot fi fie locale, fie la distanță unul față de celălalt, sistemul de operare distribuit menține starea și sincronizarea tuturor proceselor din sistem.

De exemplu, echilibrarea sarcinii este o funcție obișnuită de gestionare a proceselor. Echilibrarea încărcării monitorizează performanța nodului și este responsabilă pentru deplasarea activității între noduri atunci când sistemul este dezechilibrat. O funcție de echilibrare a sarcinii este alegerea unui proces pentru a muta. Nucleul poate utiliza mai multe mecanisme de selecție, inclusiv alegerea bazată pe priorități. Acest mecanism alege un proces bazat pe o politică precum „cea mai nouă cerere”. Sistemul pune în aplicare politica

Managementul resurselor

Resursele sistemelor, cum ar fi memoria, fișierele, dispozitivele etc. sunt distribuite în întregul sistem și, în orice moment, oricare dintre aceste noduri poate avea încărcături de lucru ușoare până la inactivitate. Partajarea încărcării și echilibrarea încărcării necesită multe decizii orientate spre politici, de la găsirea de procesoare inactive, când să vă mutați și care să le mutați. Există mulți algoritmi care ajută la aceste decizii; cu toate acestea, acest lucru necesită un al doilea nivel de politică de luare a deciziilor în alegerea algoritmului cel mai potrivit pentru scenariu și a condițiilor din jurul scenariului.

Fiabilitate

Sistemul de operare distribuit poate oferi resursele și serviciile necesare pentru a atinge niveluri ridicate de fiabilitate sau capacitatea de a preveni și / sau de a recupera erori. Defecțiunile sunt defecte fizice sau logice care pot provoca erori în sistem. Pentru ca un sistem să fie fiabil, trebuie să depășească cumva efectele negative ale defecțiunilor.

Metodele primare de abordare defecte includ evitarea vina , toleranța la erori și detectarea erorilor și de recuperare . Evitarea defecțiunilor acoperă măsurile proactive luate pentru a minimiza apariția defecțiunilor. Aceste măsuri proactive pot fi sub formă de tranzacții , replicare și copii de rezervă . Toleranța la erori este capacitatea unui sistem de a continua funcționarea în prezența unei erori. În acest caz, sistemul ar trebui să detecteze și să recupereze funcționalitatea completă. În orice caz, orice acțiune întreprinsă ar trebui să depună toate eforturile pentru a păstra imaginea unică a sistemului .

Disponibilitate

Disponibilitatea este fracțiunea de timp în care sistemul poate răspunde solicitărilor.

Performanţă

Multe valori de referință cuantifică performanța ; debit, timp de răspuns, finalizarea lucrărilor pe unitate de timp, utilizarea sistemului etc. În ceea ce privește un sistem de operare distribuit, performanța se distinge cel mai adesea la un echilibru între paralelismul procesului și IPC. Gestionarea granularității sarcinii paralelismului într-o relație sensibilă cu mesajele necesare pentru asistență este extrem de eficientă. De asemenea, identificarea când este mai benefic să migrezi un proces către datele sale, mai degrabă decât să le copiezi, este de asemenea eficientă.

Sincronizare

Procesele simultane care cooperează au o nevoie inerentă de sincronizare , care asigură că schimbările se produc într-un mod corect și previzibil. Trei situații de bază care definesc scopul acestei nevoi:

  • unul sau mai multe procese trebuie să se sincronizeze la un moment dat pentru ca unul sau mai multe alte procese să continue,
  • unul sau mai multe procese trebuie să aștepte o condiție asincronă pentru a continua,
  • sau un proces trebuie să stabilească accesul exclusiv la o resursă partajată.

Sincronizarea necorespunzătoare poate duce la mai multe moduri de eșec, inclusiv pierderea atomicității, consistenței, izolării și durabilității , blocaj , blocare și pierderea serializabilității .

Flexibilitate

Flexibilitatea într-un sistem de operare distribuit este îmbunătățită prin modularitatea și caracteristicile sistemului de operare distribuit și prin furnizarea unui set mai bogat de servicii de nivel superior. Integritatea și calitatea kernelului / microkernelului simplifică implementarea unor astfel de servicii și, potențial, le permite furnizorilor de servicii să aleagă mai mulți furnizori pentru astfel de servicii.

Cercetare

Model replicat extins la un model de obiect component

  Proiectarea arhitecturală a sistemului de operare distribuit E1 Sistemul de
  operare distribuit Cronus
  Proiectarea și dezvoltarea sistemului de operare distribuit MINIX

Expunerea la complexitate / încredere prin responsabilitate acceptată

Scara și performanța în nucleul de izolare Denali.

Sisteme axate pe mai multe nuclee

Multikernel: o nouă arhitectură de sistem de operare pentru sisteme scalabile multicore.
Corey: un sistem de operare pentru multe nuclee.
Almos: Sistem de operare avansat de gestionare a localității pentru cc-NUMA Many-Cores.

Procesare distribuită peste extremă în eterogenitate

Helios: multiprocesare eterogenă cu nuclee de satelit.

Eficient și stabil în mai multe niveluri de complexitate

Teselare: partiționare spațiu-timp într-un sistem de operare client Manycore.

Vezi si

Referințe

linkuri externe