52,214 matches
-
modelul Actor este un model matematic de calcul concurent care tratează "actorii" ca primitivele universale de calcul digital concurent: un actor poate lua decizii locale, crea mai mulți actori, trimite mai multe mesaje, și determina cum să răspundă la următorul mesaj primit. a fost creat în 1973. A fost folosit și ca framework pentru o înțelegere teoretică a calculului, și ca bază teoretică pentru mai multe aplicații practice a sistemelor concurente. Spre deosebire de modelele de calcul anterioare, modelul Actor a fost inspirat
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
Dan Theriault, în Message Passing Semantics Group la Massachusetts Institute of Technology (MIT). Grupurile de cercetare conduse de Chuck Seitz la California Institute of Technology (Caltech) și Bill Dally la MIT au construit arhitecturi ce au dezvoltat mai departe transferul mesajelor în model. Vedeți Implementarea modelului Actor. Cercetări asupra modelului Actor au fost întreprinse la Caltech Computer Science, Kyoto University Tokoro Laboratory, MCC, MIT Artificial Intelligence Laboratory, SRI, Stanford University, University of Illinois at Urbana-Champaign Open Systems Laboratory, Pierre and Marie
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
folosită de unele dintre limbajele de programare, dar diferă prin faptul că software-ul orientat pe obiect este de obicei executat secvențial, în timp ce modelul Actor este prin esență concurent. Un actor este o entitate computațională care, în răspuns la un mesaj recepționat, poate în mod concurent să: Nu există o ordine precisă pentru acțiunile de mai sus și pot fi efectuate în paralel. Decuplarea emițătorul de la comunicațiile trimise a fost o evoluție fundamentală către modelul Actor asigurând comunicația asincronă și structurile
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
să: Nu există o ordine precisă pentru acțiunile de mai sus și pot fi efectuate în paralel. Decuplarea emițătorul de la comunicațiile trimise a fost o evoluție fundamentală către modelul Actor asigurând comunicația asincronă și structurile de control ca modele de mesaje transferate. Receptorii acestor mesaje sunt identificați după adresă, câteodată numită "mailing address". Deci un actor poate doar comunica cu actori ale căror adrese le cunoaște. Poate obține acestea dintr-un mesaj recepționat sau dacă adresa este pentru un actor care
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
ordine precisă pentru acțiunile de mai sus și pot fi efectuate în paralel. Decuplarea emițătorul de la comunicațiile trimise a fost o evoluție fundamentală către modelul Actor asigurând comunicația asincronă și structurile de control ca modele de mesaje transferate. Receptorii acestor mesaje sunt identificați după adresă, câteodată numită "mailing address". Deci un actor poate doar comunica cu actori ale căror adrese le cunoaște. Poate obține acestea dintr-un mesaj recepționat sau dacă adresa este pentru un actor care s-a creat singur
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
comunicația asincronă și structurile de control ca modele de mesaje transferate. Receptorii acestor mesaje sunt identificați după adresă, câteodată numită "mailing address". Deci un actor poate doar comunica cu actori ale căror adrese le cunoaște. Poate obține acestea dintr-un mesaj recepționat sau dacă adresa este pentru un actor care s-a creat singur. Modelul Actor este caracterizat de "concurența calculelor prin esența între și printre actori", crearea dinamică de actori, includerea adreselor de actori în mesaje și interacțiunea numai prin
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
obține acestea dintr-un mesaj recepționat sau dacă adresa este pentru un actor care s-a creat singur. Modelul Actor este caracterizat de "concurența calculelor prin esența între și printre actori", crearea dinamică de actori, includerea adreselor de actori în mesaje și interacțiunea numai prin direct asynchronous message passing (comunicare asincronă) fără restricție asupra ordinii sosirii mesajelor. De-a lungul anilor, mai multe sisteme formale diferite s-au dezvoltat și au început să permită gândiri despre sistemele în modelul Actor. Acestea
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
creat singur. Modelul Actor este caracterizat de "concurența calculelor prin esența între și printre actori", crearea dinamică de actori, includerea adreselor de actori în mesaje și interacțiunea numai prin direct asynchronous message passing (comunicare asincronă) fără restricție asupra ordinii sosirii mesajelor. De-a lungul anilor, mai multe sisteme formale diferite s-au dezvoltat și au început să permită gândiri despre sistemele în modelul Actor. Acestea includ: Există de asemenea și formalisme care nu sunt compatibile total cu modelul Actor prin faptul
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
sisteme formale diferite s-au dezvoltat și au început să permită gândiri despre sistemele în modelul Actor. Acestea includ: Există de asemenea și formalisme care nu sunt compatibile total cu modelul Actor prin faptul că nu formalizează expedierea garantată a mesajelor incluzând următoarele ( Vedeți Attempts to relate Actor semantics to algebra and linear logic) (Încercări de a relaționa semantica modelului Actor cu algebra și logica liniară): Modelul actor poate fi folosit ca un framework pentru modelare, înțelegerea și gândire despre o
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
modelare, înțelegerea și gândire despre o mare arie de sisteme concurente. De exemplu: Modelul actor se bazează pe modele anterioare de calcul. Calculul Lambda al lui Alonzo Church poate fi văzut ca cel dintâi limbaj de programare bazat pe transmiterea mesajelor ( message passing ). (vezi Hewitt, Bishop, and Steiger 1973; Abelson and Sussman 1985). De exemplu, expresia lambda de mai jos implementează o structură de arbore de date când îi sunt furnizați parametrii pentru un leftSubTree și un rightSubTree. Când acestui arbore
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
Bishop, and Steiger 1973; Abelson and Sussman 1985). De exemplu, expresia lambda de mai jos implementează o structură de arbore de date când îi sunt furnizați parametrii pentru un leftSubTree și un rightSubTree. Când acestui arbore îi este dat un mesaj parametru "getLeft", el returnează leftSubTree și invers, dacă primește "getRight", returnează rightSubTree. Oricum, semantică calcului lambda este exprimată folosind substitutia de variabile în care valorile parametrilor sunt substituite în cod prin invocarea expresiilor lambda. Modelul de substituție este nepotrivit pentru
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
nu trebuie să fie substituită în corpul expresiilor lambda invocate. Această a dat voie la partajarea efectelor secundare cum ar fi updatarea structurilor de date partajate dar nu a îngăduit și concurența. Simula 67 a fost un pioner în transmiterea mesajelor pentru calcule, motivat de aplicațiile de simulare a evenimentelor discrete. Aceste aplicații erau mari și nemodulare în limbile de simulare de dinainte. La fiecare pas, un larg și central program trebuia să fie rulat și să actualizeze fiecare obiect de
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
schimbau în funcție de stare obiectele care interacționau la fiecare pas. Kristen Nygaard și Ole-Johan Dahl au dezvoltat idea (prima dată descrisă în IFIP workshop în 1967) ca având metode pe fiecare obiect care își updateaza propria stare locală bazându-se pe mesaje de la alte obiecte. În adiție, au introdus o structură de clare pentru obiecte cu mostenire. Inovația lor a îmbunătățit în mod considerabil modularitatea programelor. Totuși, Simula folosea o structură de control coroutine (corutină) în loc de concurență adevărată. Alan Kay a fost
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
În adiție, au introdus o structură de clare pentru obiecte cu mostenire. Inovația lor a îmbunătățit în mod considerabil modularitatea programelor. Totuși, Simula folosea o structură de control coroutine (corutină) în loc de concurență adevărată. Alan Kay a fost influențat de transmiterea mesajelor în invocarea direcției modelelor prin Planificator în dezvoltarea Smalltalk-71. Hewitt a fost interesat de Smalltalk-71 dar a renunțat datorită complexității comunicării care includerea invocări cu mai multe câmpuri incluzând "global", "sender", "receiver", "reply-style", "status", "reply", "operator selector", "etc." În 1972
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
selector", "etc." În 1972 Kay a visitat MIT și discutat ideile sale despre Smalltalk-72 construind limbajul de programare Logo ajutat de Seymour Papert și modelul "little person" (persoană mică), model de calcul utilizat în predarea programării copiilor mici. Totuși, transmiterea mesajelor în Smalltalk-72 era destul de complex. Codul în acest limbaj era vizionat de interpretor ca simple stream-uri de tokene. După cum Dan Ingalls a descris mai târziu: De aici și modelul de transmitere a mesajelor din Smalltalk-72 este legat la un model
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
în predarea programării copiilor mici. Totuși, transmiterea mesajelor în Smalltalk-72 era destul de complex. Codul în acest limbaj era vizionat de interpretor ca simple stream-uri de tokene. După cum Dan Ingalls a descris mai târziu: De aici și modelul de transmitere a mesajelor din Smalltalk-72 este legat la un model mașina particulară și o sintaxă de limbaj de programare care nu se dedică concurenței. Versiuni anterioare de Smalltalk au urmat calea folosirii metodelor virtuale din Simula în structura message-passing programelor. Totusi, Smalltalk-72 a
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
de Actori, threaduri, lockuri, relație care ar putea fi implicată în calcul. Implementările modelului Actor sunt libere să folosească threaduri și lockuri în orice fel este dorit și este compatibil cu legile pentru Actori. Modelul Actor este despre semantica transmiterii mesajelor. Primele programe concurente au fost interrupt handlers. În timpul operării normale, un calculator trebuie să primească informație din exterior (caractere de la tastatură, pachete din rețea, "etc".). Și când informația ajunge, execuția calculatorului este "întreruptă" și codul special chemat handler de întrerupere
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
al arbitrării pentru partajarea resurselor "încă garantând că cererea va fi îndeplinită cândva". Modelul Actor conferă nondeterminism nelegat care a fost capturat în modelul matematic de Will Clinger folosit teoria domeniilor. Deci nu este o stare globală în modelul Actor. Mesajele în modelul Actor nu sunt trecute prin buffer în mod obligatoriu. Deasemenea, mesajele sunt transmise direct și simplu (de exemplu prin pachete prin protoculul IP. Nu există nici o cerință pentru un handshake obligatoriu cu receptorul. O dezvoltare naturală a modelului
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
Modelul Actor conferă nondeterminism nelegat care a fost capturat în modelul matematic de Will Clinger folosit teoria domeniilor. Deci nu este o stare globală în modelul Actor. Mesajele în modelul Actor nu sunt trecute prin buffer în mod obligatoriu. Deasemenea, mesajele sunt transmise direct și simplu (de exemplu prin pachete prin protoculul IP. Nu există nici o cerință pentru un handshake obligatoriu cu receptorul. O dezvoltare naturală a modelului Actor este să permită adrese în mesaje. Totuși Hewitt a dorit să poate
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
prin buffer în mod obligatoriu. Deasemenea, mesajele sunt transmise direct și simplu (de exemplu prin pachete prin protoculul IP. Nu există nici o cerință pentru un handshake obligatoriu cu receptorul. O dezvoltare naturală a modelului Actor este să permită adrese în mesaje. Totuși Hewitt a dorit să poate fi trimise și mesaje goale (fără adresă). Modelul Actor a fost construit ca un model cu concurență înnascută. În acest model, secvențialitatea e un caz special derivat din calculul concurent. Hewitt a fost de
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
și simplu (de exemplu prin pachete prin protoculul IP. Nu există nici o cerință pentru un handshake obligatoriu cu receptorul. O dezvoltare naturală a modelului Actor este să permită adrese în mesaje. Totuși Hewitt a dorit să poate fi trimise și mesaje goale (fără adresă). Modelul Actor a fost construit ca un model cu concurență înnascută. În acest model, secvențialitatea e un caz special derivat din calculul concurent. Hewitt a fost de părere că mesajele nu trebuie să ajungă în ordinea trimiterii
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
a dorit să poate fi trimise și mesaje goale (fără adresă). Modelul Actor a fost construit ca un model cu concurență înnascută. În acest model, secvențialitatea e un caz special derivat din calculul concurent. Hewitt a fost de părere că mesajele nu trebuie să ajungă în ordinea trimiterii lor. Dacă se dorește o restricționare de tip FIFO de exemplu, se poate modela un Actor Coada (Queue) care aranjează mesajele în ordinea sosirii lor. Dacă un actor X trimite un mesaj M1
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
caz special derivat din calculul concurent. Hewitt a fost de părere că mesajele nu trebuie să ajungă în ordinea trimiterii lor. Dacă se dorește o restricționare de tip FIFO de exemplu, se poate modela un Actor Coada (Queue) care aranjează mesajele în ordinea sosirii lor. Dacă un actor X trimite un mesaj M1 la un actor Y, și mai târziu trimite alt mesaj M2, nu este nici o cerință ca M1 să ajungă la Y înaintea lui M2 Localitatea înseamnă că în
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
că mesajele nu trebuie să ajungă în ordinea trimiterii lor. Dacă se dorește o restricționare de tip FIFO de exemplu, se poate modela un Actor Coada (Queue) care aranjează mesajele în ordinea sosirii lor. Dacă un actor X trimite un mesaj M1 la un actor Y, și mai târziu trimite alt mesaj M2, nu este nici o cerință ca M1 să ajungă la Y înaintea lui M2 Localitatea înseamnă că în procesarea unui mesaj, Actorul receptor poate trimite mesaje numai adreselor conținute
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
se dorește o restricționare de tip FIFO de exemplu, se poate modela un Actor Coada (Queue) care aranjează mesajele în ordinea sosirii lor. Dacă un actor X trimite un mesaj M1 la un actor Y, și mai târziu trimite alt mesaj M2, nu este nici o cerință ca M1 să ajungă la Y înaintea lui M2 Localitatea înseamnă că în procesarea unui mesaj, Actorul receptor poate trimite mesaje numai adreselor conținute în mesaj, adreselor pe care le avea înainte de a sosi mesajul
Modelul Actor () [Corola-website/Science/322835_a_324164]