Distribuert databehandling

Distribuert databehandling er en modell for å løse massive databehandlingsproblemer ved å bruke et stort antall datamaskiner organisert i klynger innebygd i en distribuert telekommunikasjonsinfrastruktur.

Distribuert databehandling er en datamodell som gjør det mulig å gjøre store beregninger ved hjelp av tusenvis av frivillige datamaskiner. Dette systemet er basert på å distribuere informasjonen gjennom Internett gjennom programvare, tidligere lastet ned av brukeren, til forskjellige datamaskiner, som løser beregningene og når de har resultatet, sender de det til serveren. Dette prosjektet, nesten alltid i solidaritet, distribuerer informasjonen som skal behandles blant de tusenvis av frivillige datamaskiner for å nå behandlingskvoter som ofte er høyere enn for superdatamaskiner .

Fordelen med distribuert databehandling er at behandlingsaktivitet kan tilordnes til stedet eller stedene der det er mulig å utføre den mest effektivt. Vi kan ta distribuert databehandling i en bedrift som et eksempel, hvert kontor kan organisere og manipulere data for å møte spesifikke behov, samt dele produktet med resten av organisasjonen. Det lar oss også optimere utstyret og forbedrer balanseringen av behandlingen i en applikasjon.Det siste er av stor betydning siden det i noen applikasjoner rett og slett ikke er én maskin som er i stand til å utføre all behandlingen.

For dette kan vi snakke om "prosesser". En prosess utfører to typer operasjoner:

•Innledende erklæring og eksterne forespørsler fra andre prosesser. disse operasjonene utføres en om gangen og interleaves med hverandre. Dette fortsetter til setningen avsluttes eller venter på at en betingelse blir sann.

•En annen operasjon startes deretter (som et resultat av en ekstern forespørsel). Når denne operasjonen på sin side avsluttes eller venter, vil prosessen starte en annen operasjon (utfordres på nytt av en annen prosess) eller gjenoppta en tidligere operasjon (som et resultat av at en tilstand blir sann).

•Denne sammenvevingen av den første erklæringen og eksterne forespørsler varer evig. Hvis den første erklæringen avsluttes, fortsetter prosessen å eksistere, selv om den første prosessen avsluttes, vil den fortsette å godta eksterne forespørsler

Introduksjon

Fra starten av den moderne dataalderen (1945), til rundt 1985, var bare sentralisert databehandling kjent . Fra midten av 1980-tallet dukket det opp to grunnleggende teknologiske fremskritt:

Distribuerte systemer dukker opp, i motsetning til sentraliserte systemer.

Et distribuert system er et system der maskinvare- eller programvarekomponentene er plassert i datamaskiner koblet sammen med et nettverk.


OS for distribuerte systemer har hatt en viktig utvikling, men det er fortsatt en lang vei å gå. Brukere kan få tilgang til et bredt utvalg av beregningsressurser:

Kjennetegn ved et distribuert system: [ 1 ]

Historisk utvikling

Konseptet med meldingsoverføring oppsto på slutten av 1960-tallet. Selv om multiprosessor- og datanettverk for generelle formål ikke eksisterte på den tiden, oppsto ideen om å organisere et operativsystem som en samling prosesser. kommunikasjon hvor hver prosess har en spesifikk funksjon, der andre ikke kan forstyrre (ikke-delte variabler). På 1970-tallet ble de første utbredte distribuerte systemene, lokale nettverk ( LAN ) som Ethernet , født . [ 2 ]

Denne hendelsen skapte umiddelbart en mengde språk, algoritmer og applikasjoner, men det var ikke før LAN-prisene falt at klient-server- databehandling ble utviklet . På slutten av 1960-tallet ble 'Advanced Research Projects Agency Network' (ARPANET) opprettet. Dette byrået var ryggraden i Internett frem til 1990, etter å ha fullført overgangen til TCP/IP-protokollen , som begynte i 1983. På begynnelsen av 1970-tallet ble ARPANET e-post født , som regnes som den første distribuerte applikasjonen i stor skala. [ 3 ]

I løpet av de siste to tiårene har det blitt forsket på distribuerte algoritmer, og det er gjort betydelige fremskritt i feltets modenhet, spesielt på 1980-tallet. Opprinnelig var forskningen veldig orientert mot anvendelser av algoritmene i wide area networks ( WAN ), men i dag er det utviklet matematiske modeller som tillater anvendelse av resultatene og metodene til bredere klasser av distribuerte miljøer.

Det er flere tidsskrifter og årlige konferanser som spesialiserer seg på funn knyttet til distribuerte algoritmer og distribuert databehandling. Den første konferansen om emnet var 'Principles of Distributed Computing' (PoDC)-symposium i 1982, hvis saksgang er publisert av 'Association for Computing Machinery, Inc'. 'International Workshops on Distributed Algorithms' (WDAG) ble først holdt i Ottawa i 1985 og senere i Amsterdam (1987) og Nice (1989). Forhandlingene hans har siden blitt publisert av Springer-Verlag i serien 'Lecture Notes on Computer Science'. I 1998 ble navnet på denne konferansen endret til Distributed Computing (DISC). Det årlige Symposia on Theory of Computing ('SToC') og Fundamentals of Computing (FoCS) dekker alle grunnleggende områder innen databehandling, og har ofte papirer om distribuert databehandling. 'SToC'-forhandlingene er publisert av 'Association for Computing Machinery, Inc.' og de til FoCS av IEEE. 'Journal of Parallel and Distributed Computing (JPDC), 'Distributed Computing' og 'Information Processing Letters' (IPL) publiserer distribuerte algoritmer regelmessig. [ 4 ]

Slik ble distribuerte systemer født. . [ 5 ]

Sammenligning Parallell-Distribuert Computing

[ 6 ] Som det skjer med distribuerte systemer,er det ingen klar definisjonparallelle systemerDen eneste åpenbare tingen er at ethvert system der hendelser kan bestilles delvis vil bli betraktet som etparallelt system,og derfor vil dette inkludere alle distribuerte systemer ogdelte minnesystemermed flere kontrolltråder. På denne måten kan distribuerte systemer sies å danne en underklasse avparallelle systemer, hvor tilstandsrommene til prosesser ikke overlapper hverandre.

Noen skiller parallelle systemer fra distribuerte systemer basert på deres mål: parallelle systemer fokuserer på økt ytelse, mens distribuerte systemer fokuserer på delvis feiltoleranse.

Fra et annet synspunkt, ved parallell databehandling , kan alle prosessorer ha tilgang til et delt minne for å utveksle informasjon mellom dem [ 7 ] og i distribuert databehandling har hver prosessor sitt eget private minne, hvor informasjon utveksles ved å sende meldinger mellom prosessorer.

Så kan det sies at parallellberegning er en spesiell form for sterkt koblet distribuert databehandling, [ 8 ] og distribuert databehandling en form for løst koblet parallellberegning . [ 9 ]

Figuren til høyre illustrerer forskjellen mellom distribuerte og parallelle systemer. Figuren til. er et skjema over et distribuert system, som er representert som en nettverkstopologi der hver node er en datamaskin og hver linje som forbinder nodene er en kommunikasjonsforbindelse. Figur b) viser det samme distribuerte systemet mer detaljert: hver datamaskin har sitt eget lokale minne, og informasjon kan bare utveksles ved å sende meldinger fra en node til en annen ved å bruke de tilgjengelige kommunikasjonskoblingene. Figur c) viser et parallelt system der hver prosessor har direkte tilgang til delt minne .

Applikasjoner og eksempler

[ 10 ] Det er mange eksempler på at distribuerte systemer brukes i hverdagen i en rekke applikasjoner. De fleste systemer er strukturert som klient-server-systemer, der servermaskinen er den som lagrer dataene eller ressursene, og gir service til flere geografisk distribuerte klienter. Noen applikasjoner er imidlertid ikke avhengige av en sentral server, det vil si at de er peer-to-peer-systemer, hvis popularitet øker. Her er noen eksempler på distribuerte systemer:


Modeller

[ 11 ] Systemer beregnet for bruk i virkelige miljøer må utformes for å fungere korrekt under et bredest mulig spekter av omstendigheter og i møte med potensielle utfordringer og trusler. Egenskapene og designproblemene til distribuerte systemer kan fanges opp og diskuteres gjennom bruk av beskrivende modeller. Hver modell er ment å gi en forenklet, men konsistent abstrakt beskrivelse av et relevant aspekt ved distribuert systemdesign.

Noen relevante aspekter kan være: type node og nettverk , antall noder og deres ansvar, og mulige feil både i kommunikasjon og mellom noder . Så mange modeller som egenskaper vi ønsker å vurdere i systemet kan defineres, men denne klassifiseringen følges vanligvis:

[ 12 ] Fysiske modeller

De representerer den mest eksplisitte måten å beskrive et system på, de identifiserer den fysiske sammensetningen av systemet i beregningsmessige termer, hovedsakelig med tanke på heterogenitet og skala. Vi kan identifisere tre generasjoner av distribuerte systemer:

Første distribuerte systemer: Årene 70-80 oppstår som svar på de første lokale nettverkene ( Ethernet ). Målet var å levere kvalitet på tjenesten (koordinering og synkronisering) fra begynnelsen, og utgjør det grunnleggende punktet for å starte i fremtiden. Skalerbare distribuerte systemer på Internett: De ble født basert på internetts store vekst på 90-tallet. Et miljø med sammenkoblede nettverk, bedre kjent som et nettverk av nettverk ( Internett ), begynte å bli implementert, noe som førte til en betydelig økning i antall noder og på nivået av heterogenitet. Åpne standarder som CORBA eller webtjenesten er definert . Moderne distribuerte systemer: Distribuerte systemer har fått nye egenskaper som også må inkluderes når man designer og implementerer et system (utvidbarhet, sikkerhet, samtidighet, transparens...osv). Utseendet til mobil databehandling, allestedsnærværende databehandling eller cloud computing og klyngearkitekturer gjør det nødvendig å implementere mer komplekse beregningselementer underlagt sentralisert kontroll, og tilbyr et bredt utvalg av applikasjoner og tjenester i henhold til deres etterspørsel (tusenvis av noder).

[ 13 ] Arkitektoniske modeller

Det generelle målet med denne typen modeller er å garantere ansvarsfordelingen mellom komponenter i det distribuerte systemet og plasseringen av nevnte komponenter. De viktigste bekymringene er å bestemme forholdet mellom prosesser og å gjøre systemet pålitelig, tilpasningsdyktig og lønnsomt.

[ 14 ] ​Client -Server: programvaredesignmodell der oppgaver deles mellom leverandører av ressurser eller tjenester, kalt servere, og etterspørre, kalt klienter. Klienter sender forespørsler til serveren, et annet program, som gir dem et svar. Men også en server kan være en klient til andre servere. Et godt eksempel kan være en webserver, som er enDNS. En god praksis er replikering for å øke ytelsen og tilgjengeligheten, bedre kjent som en speilserver . Et annet alternativ kan være proxy-servere , som bruker cacher med de siste dataene som ble forespurt. Derivater: mobilkode, mobilagent, nettverksdatamaskiner, tynnklienter eller Cloud Computing . Peer-to-peer : Peer-to-peer-systemer, det vil si at alle sammenkoblede elementer har samme rolle. Det er en fullstendig desentralisert og selvorganisert tjeneste, som tilrettelegger for en dynamisk balanse mellom belastninger (lagring og prosessering) mellom systemets datamaskiner.

Lagarkitektur : gjør det mulig å dra nytte av konseptet abstraksjon, i denne modellen er et komplekst system delt inn i et vilkårlig antall lag, der de øvre lagene benytter seg av tjenestene som tilbys av de nedre lagene. På denne måten tilbyr et lag en tjeneste uten at høyere eller lavere lag er klar over implementeringsdetaljene. En distribuert tjeneste kan leveres av en eller flere serverprosesser, som samhandler med hverandre og med klientprosesser for å opprettholde en oversikt over hele systemet. Organiseringen av tjenester i lag skjer på grunn av kompleksiteten til distribuerte systemer.

En felles struktur for den lagdelte arkitekturmodellen er delt inn i fire lag: applikasjons- og tjenestelaget, mellomvarelaget, operativsystemlaget og nettverks- og maskinvarelaget.

Plattformen for distribuerte systemer og applikasjoner består av de laveste maskin- og programvarelagene, dette inkluderer nettverksmaskinvaren, datamaskinene og operativsystemet til det distribuerte systemet. Dette laget gir tjenester til høyere lag, som implementeres uavhengig på hver datamaskin.

Mellomvare er all programvare som har som formål å maskere det distribuerte systemet, og gi systemet et homogent utseende.

Det øvre laget, beregnet for applikasjoner og tjenester, er funksjonaliteten som tilbys brukere, disse er kjent som distribuerte applikasjoner.

[ 15 ] Grunnleggende modeller

Alle de ovennevnte modellene deler et design og et sett med krav som er nødvendige for å gi pålitelighet og sikkerhet til systemressurser. En grunnleggende modell tar et abstrakt perspektiv, i henhold til analysen av individuelle aspekter ved det distribuerte systemet; den skal bare inneholde det vesentlige som skal tas i betraktning for å forstå og resonnere rundt enkelte aspekter av et systems oppførsel.

Interaksjonsmodeller

De analyserer strukturen og rekkefølgen av kommunikasjon mellom elementene i systemet. Fordelene med kommunikasjonskanalen ( Latency , AB , jitter) blir viktige, noe som gjør det umulig å forutsi forsinkelsen en melding kan komme frem med. Det er med andre ord ingen global tid for hele systemet, utførelsen er "ikke-deterministisk". Hver datamaskin har sin egen interne klokke, noe som innebærer at man må synkronisere de lokale klokkene til alle maskinene som utgjør det distribuerte systemet. Det er forskjellige mekanismer for dette ( NTP , GPS -mottakere , hendelsesbestillingsmekanismer). Det finnes to typer interaksjonsmodeller: [ 16 ] Synkron: Det er kjente grenser for utførelsestidene til prosesstrinnene, i tiden som trengs for å sende meldinger eller i avdriftsratene til klokkene. Det vil si at det kan etableres grenser for å tilnærme den virkelige oppførselen til systemet, men i praksis er dette ikke mulig og estimeringer (timeout) brukes generelt. [ 17 ] ​Asynkron: Det er ingen begrensninger når det gjelder synkrone modeller. De fleste distribuerte systemer er asynkrone.

[ 18 ] Feilmodeller

studie og identifisering av mulige årsaker til feil. De kan klassifiseres i henhold til enheten, som gir opphav til prosessfeil eller kommunikasjonsfeil, eller i henhold til problemet, som gir opphav til utelatelse eller vilkårlige feil: Feil som standard i prosesser: Behandlingsfeil, feilstopp (prosessen stopper og forblir stoppet) eller feildeteksjon på grunn av tidsavbrudd, prosessen reagerer ikke (bare i synkrone modeller) Feil som standard i kommunikasjon: feil ved sending (meldingen legges ikke i bufferen) eller i mottak (prosessen mottar ikke meldingen). Vilkårlige eller bysantinske feil: i prosessen (utelatelser, feil trinn tas i behandlingen eller svaret på meldinger er vilkårlig utelatt) eller i kommunikasjonskanaler (korrupsjon av meldinger, levering av ikke-eksisterende meldinger eller duplikatlevering av autentiske meldinger). Feilmaskering: Noen oppdagede feil kan skjules eller avhjelpes. For eksempel kontrollsum (fra vilkårlig feil til standardfeil).

[ 19 ] Sikkerhetsmodeller

Sikkerheten til et distribuert system kan oppnås ved å sikre prosessene og kanalene som brukes for deres interaksjoner og ved å beskytte objektene de innkapsler mot uautorisert tilgang. Disse modellene gir grunnlaget for å bygge et sikkert system som betjener ressurser av alle slag. For å gjøre dette er det nøkkelen til å postulere en fiende som er i stand til å sende en melding til enhver prosess og lese eller kopiere meldinger som sendes mellom et par prosesser.

Derfor, for å hevde at det er pålitelig kommunikasjon mellom to prosesser, må dens integritet og gyldighet sikres.

Når vi snakker om modeller i et distribuert system, refererer vi hovedsakelig til det faktum å automatisere oppgaver, bruke en datamaskin, av typen spørsmål-svar, det vil si at når vi stiller et spørsmål til datamaskinen, må den svare oss med en passende svar. I teoretisk informatikk er denne prosessen kjent som beregningsproblemer .

Formelt sett består et beregningsproblem av instanser sammen med en løsning på hver av dem. Forekomstene kan oversettes som spørsmål som vi stiller til datamaskinen og løsningene som datamaskinens svar på spørsmålene våre.

Teoretisk søker teoretisk informatikk å finne forholdet mellom problemer som kan løses av en datamaskin ( beregningsteori ) og effektiviteten ved å gjøre det ( beregningskompleksitetsteori ).

Vanligvis er det tre synspunkter:

En parallell algoritme definerer flere operasjoner som skal utføres ved hvert trinn. Dette inkluderer kommunikasjon/koordinering mellom behandlingsenheter.

Et tydelig eksempel på denne typen modeller vil være modellen med parallelle stikkordsmaskiner ( PRAM ). [ 20 ]

- Parallelt RAM-minne - Delt kjerneminne - Sett med prosesseringsenheter (PUer) - Antallet behandlingsenheter og minnestørrelse er ubegrenset.

PRAM modelldetaljer

-Lås-trinns utførelse Det er en syklus av 3 faser:
  1. Minneceller leses.
  2. Lokale beregninger og beregninger utføres.
  3. Skriv til delt minne.
Alle behandlingsenheter utfører disse trinnene synkront. Det er ikke behov for en eksplisitt synkronisering. Inngangen til et PRAM-program består av n elementer lagret i M[0],...,M[n-1]M[0],...,M[n−1] Utgangen fra PRAM-programmet består av de neste n' minnecellene fra den siste inngangen M[n] ... M[n]...M[n+n′−1] En instruksjon utføres i en syklus på 3 faser, som kan hoppes over om nødvendig: Les (les fra delt minne) beregne Skriv til delt minne -Om samtidige minnetilganger: PRAM-modeller: CREW: Samtidig lesing, eksklusiv skriving CRCW: Samtidig lesing, samtidig skriving EREW: Les eksklusivt, skriv eksklusivt

Det er mye mer informasjon om denne typen algoritmer på en mer oppsummert måte i de følgende bøkene. [ 21 ]​ [ 22 ]

--I denne algoritmen forestiller programmereren seg flere prosessorer, hver med sin egen minneplass, og skriver et program som skal kjøres på hver prosessor. Så langt så bra, men parallell programmering krever per definisjon samarbeid mellom prosessorer for å løse en oppgave, som krever noen kommunikasjonsmidler. Hovedpoenget med meldingsoverføringsparadigmet er at prosesser kommuniserer ved å sende meldinger til hverandre. Dermed har ikke meldingsoverføringsmodellen konseptet med delt minneplass eller prosessorer som har direkte tilgang til hverandres minne, noe annet enn meldingsoverføring er utenfor paradigmets rammer. -Når det gjelder programmene som kjører på de enkelte prosessorene, er meldingsoverføringsoperasjonene bare subrutineanrop. - Modeller som boolske kretser og klassifiseringsnettverk brukes . [ 23 ] En boolsk krets kan sees på som et nettverk av datamaskiner: hver gate er en datamaskin som kjører et ekstremt enkelt dataprogram. På samme måte kan et klassifiseringsnettverk sees på som et datanettverk: hver komparator er en datamaskin. Algoritmedesigneren velger kun dataprogrammet. Alle datamaskiner kjører det samme programmet. Systemet skal fungere korrekt uavhengig av nettverksstrukturen. En vanlig modell er en graf med en endelig tilstandsmaskin per node.


Fordeler og ulemper

Fordeler [ 25 ]

Geografisk distribuert miljø : For det første, i mange situasjoner, er selve datamiljøet geografisk distribuert. Som et eksempel, la oss vurdere et banknettverk. Hver bank er ment å føre kontoene til kundene sine. I tillegg kommuniserer banker med hverandre for å overvåke interbanktransaksjoner, eller registrere overføringer av midler fra geografisk spredte minibanker. Et annet vanlig eksempel på et geografisk distribuert datamiljø er Internett, som har dypt påvirket vår livsstil. Brukermobilitet har gitt en ny dimensjon til geografisk fordeling.

Speed ​​up : For det andre er det behov for å fremskynde beregningene. Beregningshastigheten på tradisjonelle enprosessorer nærmer seg raskt den fysiske grensen. Mens superskalar- og VLIW-prosessorer strekker grensen ved å introdusere parallellitet på arkitektonisk nivå (et spørsmål om instruksjon), skalerer ikke teknikkene mye utover et visst nivå. En alternativ teknikk for å få mer datakraft er å bruke flere prosessorer. Å dele opp et helt problem i mindre delproblemer og tilordne disse delproblemene til separate fysiske prosessorer som kan kjøres samtidig er en potensielt attraktiv metode for å øke beregningshastigheten. I tillegg fremmer denne tilnærmingen bedre skalerbarhet, der brukere gradvis kan øke datakraften ved å kjøpe ekstra behandlingsressurser eller elementer. Dette er ofte enklere og billigere enn å investere i en enkelt superrask uniprosessor.

Del ressurser : For det tredje er det behov for å dele ressurser. Brukeren av datamaskin A vil kanskje bruke en laserskriver koblet til datamaskin B, eller brukeren av datamaskin B kan trenge litt ekstra diskplass tilgjengelig på datamaskin C for å lagre en stor fil. I et nettverk av arbeidsstasjoner vil arbeidsstasjon A kanskje bruke den ledige datakraften til arbeidsstasjoner B og C for å øke hastigheten på en bestemt beregning. Distribuerte databaser er gode eksempler på programvareressursdeling, der en stor database kan lagres på flere vertsmaskiner og systematisk oppdateres eller hentes av en rekke agentprosesser .

Feiltoleranse : Til slutt er kraftige enprosessorer eller datasystemer bygget rundt en enkelt sentral node utsatt for fullstendig kollaps når prosessoren svikter. Mange brukere anser dette som risikabelt. Imidlertid er de villige til å gå på akkord med en delvis forringelse av systemytelsen, når en feil lammer en brøkdel av de mange prosesseringselementene eller koblingene i et distribuert system. Dette er essensen av gradvis nedbrytning. Baksiden av denne tilnærmingen er at inkorporering av redundante prosesseringselementer i et distribuert system potensielt kan øke påliteligheten eller tilgjengeligheten til systemet. For eksempel, i et system som har trippel modulær redundans (TMR), brukes tre identiske funksjonelle enheter for å utføre den samme beregningen, og det riktige resultatet bestemmes ved flertall. I andre distribuerte feiltolerante systemer sjekker prosessorer hverandre ved forhåndsdefinerte sjekkpunkter, noe som tillater automatisk feildeteksjon, diagnose og eventuell gjenoppretting. Dermed gir et distribuert system en utmerket mulighet til å innlemme feiltoleranse og grasiøs degradering.

Modularitet: Klient/server-arkitekturen er bygget på basis av pluggbare moduler. Både klient og server er systemmoduler uavhengig av hverandre og kan erstattes uten å påvirke hverandre. Funksjoner legges til systemet enten ved å lage nye moduler eller ved å forbedre eksisterende.

Portabilitet: For øyeblikket kan prosessorkraften finnes i forskjellige størrelser: superservere, servere, stasjonære datamaskiner, bærbare datamaskiner, bærbare maskiner. Distribuerte databehandlingsløsninger gjør at applikasjoner kan plasseres der det er mest fordelaktig eller optimalt.

Ulemper [ 26 ]

Skalerbarhet : Systemet må utformes på en slik måte at kapasiteten kan økes med økende krav til systemet.

Heterogenitet : Kommunikasjonsinfrastrukturen består av kanaler med ulik kapasitet.

Ressursstyring : I distribuerte systemer er ressurser plassert på forskjellige steder. Ruting er et nettverkslagsproblem og et applikasjonslagsproblem.

Sikkerhet og personvern : Siden distribuerte systemer håndterer sensitive data og informasjon, må det være på plass sterke sikkerhets- og personverntiltak. Beskyttelse av eiendelene til det distribuerte systemet så vel som toppnivåsammensetningene av disse ressursene er viktige spørsmål i det distribuerte systemet.

Åpenhet : Åpenhet betyr i hvilken grad det distribuerte systemet skal fremstå for brukeren som et enkelt system. Det distribuerte systemet må utformes for ytterligere å skjule kompleksiteten til systemet.

Åpenhet : Åpenhet betyr i hvilken grad et system er utformet ved å bruke standardprotokoller for å støtte interoperabilitet. For å oppnå dette må det distribuerte systemet ha veldefinerte grensesnitt.

Synkronisering : Et av hovedproblemene er synkronisering av beregninger som består av tusenvis av komponenter. Gjeldende synkroniseringsmetoder som semaforer, monitorer, barrierer, eksterne prosedyrekall, objektmetodeanrop og meldingsoverføring skaleres ikke godt.

Vålås og løpsforhold : Vålås og løpsforhold er andre store problemer i distribuerte system, spesielt i forbindelse med testing. Det blir et viktigere problem, spesielt i flerprosessormiljø med delt minne.

Notater

  1. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 2.ISBN 0-132-14301-1  . _ 
  2. ^ Andrews, Gregory R. (2000). Grunnlaget for flertråds-, parallell- og distribuert programmering . Addison-Wesley. s. 348-349. 
  3. ^ Banks, M. (2000). På vei til nettet: Internetts hemmelige historie og dets grunnleggere . Trykk. s. 44-5. 
  4. Tlf, G. (2000). Introduksjon til distribuerte algoritmer . Cambridge University Press. s. 35-36. ISBN  9780521794831 . 
  5. Maarten van steen, Andrew S Tanenbaum (2001). Distribuerte systemer 3. utgave . s. 1-2. 
  6. Ghosh, Sukumar (2007). Distribuerte systemer – en algoritmisk tilnærming . Chapman & Hall/CRC. s. 10 . 
  7. Papadimitriou, Christos H. (1994). "femten". Beregningskompleksitet . Addison-Wesley. 
  8. Peleg, David (2000). Distribuert databehandling: en lokalitetssensitiv tilnærming . SIAM. s. 1. 
  9. Ghosh, Sukumar (2007). Distribuerte systemer – en algoritmisk tilnærming . Chapman & Hall/CRC. s. 10. 
  10. Ghosh, Sukumar (2007). Distribuerte systemer – en algoritmisk tilnærming . Chapman & Hall/CRC. s. 4 -6. 
  11. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 38. ISBN  0-132-14301-1 . 
  12. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 39-40. ISBN  0-132-14301-1 . 
  13. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 40-42. ISBN  0-132-14301-1 . 
  14. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 46-51. ISBN  0-132-14301-1 . 
  15. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 61-64. ISBN  0-132-14301-1 . 
  16. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 64. ISBN  0-132-14301-1 . 
  17. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 65. ISBN  0-132-14301-1 . 
  18. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 67. ISBN  0-132-14301-1 . 
  19. ^ G. Coulouris, J. Dollimore, T. Kindberg og G. Blair. (2011). Distribuerte systemer: konsepter og design (5. utgave) . Addison-Wesley. s. 71-73. ISBN  0-132-14301-1 . 
  20. Thomas Ropars. "Parallelle algoritmer i delt minne" . s. 5. 
  21. Herlihy & Shavit. (2008). «2-6». Kunsten å programmere flere prosessorer (1. utgave) . Addison-Wesley. ISBN  978-0-12-170591-4 . 
  22. ^ Lynch, Nancy A. (1996). Distribuerte algoritmer . Morgan Kaufmann. ISBN  978-1-55860-348-6 . 
  23. ^ Cormen, Leiserson & Rivest (1990). Introduksjon til algoritmer . MIT Press. s. Avsnitt 28 og 29. ISBN  978-0-262-03141-7 . 
  24. Raynal, Michel (2013). Distribuerte algoritmer for meldingsoverføringssystemer . 
  25. Ghosh, Sukumar (2007). Distribuerte systemer – en algoritmisk tilnærming . Chapman & Hall/CRC. s. 17 . ISBN  978-1-58488-564-1 . 
  26. Kamal Sheel Mishra, Anil Kumar Tripathi. Noen problemer, utfordringer og problemer med distribuert programvaresystem . Institutt for informatikk og ingeniørvitenskap, Indian Institute of Technology (Banaras Hinhu University) Varanasi, India. s. 2-4. 

Referanser

Bøker

Supplerende lesning

Bøker