Articolo pubblicato sul n. 96 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel maggio 1990

MCmicrocomputer


Amighevole:
Il problema dei Filosofi

di Andrea de Prisco

Molti si saranno chiesti, Ciuchini e Suatoni compresi a quanto pare, perche' durante tutta la fase sperimentale di ADPnetwork indentificavo ogni macchina in rete con il nome di un filosofo.Copertina del numero di MCmicrocomputer contenente l'articolo

Tutto comincio' nel 1984, a lezione di Sistemi di Elaborazione dell'Informazione II dell corso di laurea in Scienze dell'Informazione presso l'universita' di Pisa. In questo corso si insegnano le tecniche di programmazione multitak, la gestione di risorse condivise, monitor, semafori, time sharing, ottimizzazione dei dispositivi di I/O, tecniche anti deadlock e anti starvation, fairness e tante altre cosette davvero interessanti. E se in quel periodo sognavo un computer vero (non certo un Apple II o un MS-DOS) e mi consolavo col VIC-20, poi divenuto 64, a lezione mi diverti' molto il cosiddetto problema dei filosofi che racchiude in se' interessanti problematiche proprie di quel corso.

Immaginate una bella tavola imbandita. Un certo numero di piatti (e quindi posti) e un pari numero di posate: meta' forchette e meta' coltelli. La disposizione e' quella mostrata nella figura contenuta in questo stesso riquadro.

I commensali sono tutti filosofi con l'ovvia caratteristica di stare seduti a tavola in uno solo di questi due stati: un filosofo mangia se dispone di un coltello e di una forchetta altrimenti pensa (filosofeggia). E, ovviamente, se pensa solo e non mangia mai muore di fame. In pratica i filosofi sono processi utilizzatori e le posate risorse condivise. Ogni posata e' una risorsa condivisa da due utilizzatori. Il problema sta nello scrivere gli 'n' processi "filosofi", gli 'n/2' processi forchetta e gli 'n/2' processi coltelli e lanciare il tutto senza provocare (neanche a lungo andare) deadlock o eccessivi "pensamenti" da parte di piu' del 50% dei filosofi. Simpatico poi verificare la percentuale media di utilizzo delle risorse o del filosofeggiamento dei filosofi al variare delle possibile tecniche di condivisione delle risorse adoperate. E' chiaro, infine, che cercare di accaparrare al sopraggiundere della fame una delle due posate e aspettare la liberazione dell'altra e' il modo piu' banale... per ottenere il blocco totale del sistema dopo pochissimi cicli alimentazione-pensiero. Non aggiungo altro: il mese prossimo una possibile soluzione utilizzando, guardacaso, l'ADPmttb. Della serie: ogni scarrafone...


Impaginato originale...



Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui