|
|
Programmazione concorrente e distribuita
|
| Editore | Mc Graw Hill |
| Autore | Ancilotti Paolo ; Boari Maurelio |
| Collana | Istruzione scientifica |
| Pagine | 295 |
| Volumi | 1 |
| Livello | Avanzato |
| Lingua | Italiano |
| Data pubblicazione | 01 - 2007 |
| ISBN | 8838663580 |
|
|
| Prezzo di copertina |
| Euro 30,00 |
|
Prefazione IX
Parte prima
1 Concetti fondamentali 3
1.1 Il concetto di processo 3
1.2 Test e verifica di un programma 5
1.3 Linguaggi di programmazione e macchine astratte 12
1.4 Meccanismi di astrazione 14
1.4.1 Operazioni astratte 16
1.4.2 Tipi di dati astratti 17
1.5 Proprieta` di un programma 26
1.6 Sommario 27
1.7 Note bibliografiche 28
2 Programmazione concorrente e distribuita 29
2.1 Elaborazioni concorrenti 30
2.2 Interazioni tra processi 35
2.2.1 Cooperazione 35
2.2.2 Competizione 37
2.2.3 Interferenze 40
2.3 Macchina concorrente 42
2.4 Linguaggi concorrenti 46
2.5 Sommario 47
2.6 Note bibliografiche 48
3 Costrutti linguistici per la specifica della concorrenza 49
3.1 Fork/Join 49
3.2 Cobegin/Coend 52
3.3 Processi 53
3.4 La libreria Pthread 54
3.5 I thread in Java 56
3.5.1 Creazione di thread mediante estensione della classe Thread 56
3.5.2 Creazione di thread mediante implementazione dell’interfaccia Runnable 57
3.6 Realizzazione delle primitive di creazione e terminazione dei processi 58
3.6.1 Ambiente monoprocessore 62
3.6.2 Ambiente multiprocessore 67
3.7 Sommario 68
3.8 Note bibliografiche 68
Parte seconda
4 Modello a memoria comune 71
4.1 Aspetti caratterizzanti il modello 71
4.2 Gestore di una risorsa 73
4.3 Specifica della sincronizzazione 79
4.4 Tecniche di allocazione delle risorse 83
4.5 Sommario 88
4.6 Note bibliografiche 88
5 Semafori 89
5.1 Definizione del meccanismo semaforico 89
5.2 Semafori di mutua esclusione 93
5.2.1 Mutua esclusione fra gruppi di processi 96
5.3 Semafori evento: scambio di segnali temporali 99
5.4 Semafori binari composti: scambio di dati 101
5.5 Semafori condizione 105
5.5.1 Gestione di un pool di risorse equivalenti (prima soluzione) 109
5.6 Semafori risorsa 112
5.6.1 Gestione di un pool di risorse equivalenti (seconda soluzione) 113
5.6.2 Problema dei produttori/consumatori 115
5.7 Semafori privati: specifica di strategie di allocazione 118
5.7.1 Uso dei semafori privati 122
5.8 Realizzazione dei semafori 127
5.8.1 Ambiente monoprocessore 130
5.8.2 Ambiente multiprocessore 131
5.8.3 Una diversa realizzazione delle primitive semaforiche 133
5.9 Sommario 136
5.10 Note bibliografiche 136
6 Monitor 139
6.1 Definizione del monitor 140
6.1.1 Introduzione al concetto di monitor 140
6.1.2 Semantiche dell’operazione signal 143
6.1.3 Ulteriori operazioni sulle variabili condizione 145
6.2 Esempi d’uso 146
6.3 Realizzazione del costrutto monitor 149
6.4 Realizzazione di politiche di gestione delle risorse 152
6.5 Chiamate innestate a procedure del monitor 155
6.6 Realizzazione del monitor con Pthread e Java 157
6.6.1 Pthread 157
6.6.2 Java 160
6.7 Sommario 168
6.8 Note bibliografiche 169
Parte terza
7 Modello a scambio di messaggi 173
7.1 Aspetti caratterizzanti il modello 173
7.2 Canali di comunicazione 175
7.3 Primitive di comunicazione 180
7.4 Sommario 188
7.5 Note bibliografiche 188
8 Primitive di comunicazione asincrone 189
8.1 Processi servitori 189
8.2 Esempi di processi servitori 196
8.2.1 Gestione di un pool di risorse equivalenti 197
8.2.2 Problema dei produttori/consumatori e realizzazione di una mailbox 200
8.3 Specifica di strategie di priorita` 203
8.4 Realizzazione delle primitive asincrone 206
8.4.1 Architetture monoelaboratore e multielaboratore 206
8.4.2 Architetture distribuite 214
8.5 Sommario 219
8.6 Note bibliografiche 219
9 Primitive di comunicazione sincrone 221
9.1 Confronto fra le primitive sincrone e le primitive asincrone 222
9.2 Processi servitori 227
9.2.1 Gestione di un pool di risorse equivalenti 228
9.2.2 Problema dei produttori/consumatori e realizzazione di una mailbox 230
9.3 Specifica di strategie di priorita` 234
9.4 Realizzazione del meccanismo di comunicazione sincrono 236
9.4.1 Simulazione di un meccanismo di comunicazione sincrono mediante semafori 236
9.4.2 Realizzazione di un meccanismo di comunicazione sincrono mediante primitive asincrone 239
9.4.3 Realizzazione delle primitive sincrone nel nucleo del sistema operativo 240
9.5 Sommario 243
9.6 Note bibliografiche 244
10 Chiamate di procedura remota e rendez-vous 245
10.1 Chiamata di procedura remota 246
10.2 Rendez-vous 248
10.3 Linguaggio ADA 253
10.3.1 Rendez-vous 254
10.3.2 Protected type 257
10.4 Java: Remote Method Invocation (RMI) 259
10.4.1 Componenti di un’applicazione 259
10.4.2 Compilare ed eseguire il server e il client 263
10.5 Sommario 264
10.6 Note bibliografiche 265
Esercizi di riepilogo 267
E1 Semafori 267
E2 Monitor 273
E3 Primitive di comunicazione asincrone e/o sincrone 278
E4 Rendez-vous 281
E5 Libreria Pthread 282
E6 Java 283
Bibliografia 287
Indice analitico 293
|
|
|
|