Quando si guarda alla programmazione concorrente, vengono comunemente usati due termini, cioè simultaneo e parallelo. E alcuni linguaggi di programmazione rivendicano specificamente il supporto per la programmazione parallela, come Java . Ciò significa che la programmazione parallela e simultanea sono effettivamente diverse?
Sto cercando di capire gli algoritmi di Peterson e Dekker che sono molto simili e mostrano molte simmetrie. Ho provato a formulare gli algoritmi in un linguaggio informale come segue: Peterson's: "I want to enter." flag[0]=true; "You can enter next." turn=1; "If you want to enter and while(flag[1]==true&&turn==1){ it's your …
Dopo aver letto diverse fonti sono ancora confuso sui thread a livello di utente e kernel. In particolare: I thread possono esistere sia a livello di utente che a livello di kernel Qual è la differenza tra il livello utente e il livello kernel?
Sento spesso frasi come "vera semantica di concorrenza" e "equivalenze di vera concorrenza" senza riferimenti. Cosa significano quei termini e perché sono importanti? Quali sono alcuni esempi di vere equivalenze di concorrenza e quali sono le loro necessità? Ad esempio, in quali casi sono più applicabili di più equivalenze standard …
Per quanto ne so, ci sono tre principali algebre di processo che hanno ispirato una vasta gamma di ricerche su modelli formali di concorrenza. Questi sono: CCS e -calculus entrambi di Robin Milnerππ\pi CSP di Tony Hoare e ACP di Jan Bergstra e Jan Willem Klop Oggi tutti e tre …
Ultimamente ho letto un po 'di letteratura e ho trovato strutture di dati piuttosto interessanti. Ho studiato vari metodi per ottenere i tempi di aggiornamento fino a tempo di aggiornamento nel caso peggiore [1-7].O(1)O(1)\mathcal{O}(1) Di recente ho iniziato a cercare strutture di dati prive di blocchi, per supportare un accesso …
Ho un registro del database in cui alcune transazioni vincono (vengono impegnate prima dell'arresto anomalo) e altre perdono (non ancora impegnate). Abbiamo imparato in classe che le azioni dei perdenti devono essere annullate all'indietro. C'è qualche motivo per farlo all'indietro? Qualcuno può dare un semplice esempio di un registro in …
I blocchi sono generalmente implementati attraverso le istruzioni test-and-set e swap a livello di macchina. Ci sono altre implementazioni che non le usano? Inoltre, possiamo dire che tutte le soluzioni a livello di hardware al problema della sezione critica possono essere classificate in sole tre, vale a dire, disabilitare l'interruzione, …
Secondo Wikipedia , L'operazione test-and-set può risolvere il problema del consenso senza attesa per non più di due processi simultanei. Perché non può risolvere il problema per più di due processi?
Quando osserviamo il modello di attore e i processi sequenziali comunicanti , vediamo che entrambi stanno provando a fare concorrenza sulla base del passaggio dei messaggi , ma sono distinti . (Vediamo implementazioni del Modello CSP in go-lang 's goroutines (e di Clojure core.async ) e il modello attore di …
Ho letto dei linguaggi di programmazione basati su stack, come FORTH e Cat , e sembra che, data la loro natura, possano eseguire solo un'azione alla volta indipendentemente dal loro paradigma (FORTH è un imperativo mentre Cat è funzionale). Un linguaggio imperativo modifica lo stack e un linguaggio puramente funzionale, …
Ho letto delle differenze tra serializzabilità e linearizzabilità , che sono entrambi criteri di coerenza per sistemi replicati come database replicati. Tuttavia, non so in quali casi sarebbe necessaria la linearizzabilità, anche se è più forte della serializzabilità. Potresti creare scenari in cui una proprietà così forte sarebbe effettivamente necessaria?
Ci sono modifiche che potrebbero essere apportate alle CPU per renderle più performanti per i runtime simultanei come Rust? Ad esempio, ci sono modifiche alle implementazioni di previsione delle filiali o alle dimensioni della cache che potrebbero aiutare i runtime simultanei? Ho l'impressione che gli attuali progetti di CPU potrebbero …
Sto progettando un database di oggetti in memoria per un caso d'uso molto specifico. È un singolo autore, ma deve supportare letture simultanee efficienti. Le letture devono essere isolate. Non esiste un linguaggio di query, il database supporta solo: ottenere oggetto / i per attributo / set di attributi (potrebbe …
In altre parole, quali vantaggi ha il threading ibrido rispetto al threading 1: 1 (solo kernel) e N: 1 (solo utente)? Questo è il seguito di Qual è la differenza tra thread a livello di utente e thread a livello di kernel?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.