In termini formali la macchina a stati
finiti è una
entità matematica che consiste di:
Nel settore elettronico
tale formalismo viene sviluppato con i modelli di Mealy e di Moore. Altrove
troviamo altri supporti teorici come ad esempio la rete di Petri. Passando dalla teoria alla pratica, diciamo che la macchina a stati finiti è un dispositivo di cui sono determinabili e determinati da parte degli ingegneri tutti i particolari di comportamento compresi errori e guasti. Esempi classici sono i sistemi digitali: elaboratore, telefono cellulare, fax ecc. Altre macchine dotate di buoni apparati di controllo rientrano nella definizione sopra tracciata. Ad esempio l'ascensore, dovendo per legge dare la massima sicurezza agli utenti, con buona approssimazione è un sistema a stati finiti perché tutti i suoi possibili comportamenti (anche difettosi) sono predefiniti. Nel diagramma degli stati in figura, immaginiamo che l'ascensore si muova tra i piani zero, uno e due. Quando si guasta tra l'uno e l'altro, entra nello stato G. Infine rimane fermo in ciascun piano. Situazioni indeterminate o confuse non ce ne sono.
La macchina computazionale per antonomasia è quella di Turing (vedi anche risposta >> ) la quale è composta dell'apparato di calcolo C e del programma L. Ogni casella di L contiene un comando che viene eseguito ed inoltre fa andare avanti di un passo L, oppure indietro o infine fa fermare L nella stessa casella.
E' chiaro che tale macchina è un sistema a stati finiti. Infatti sono del tutto definiti gli stati, gli input ecc. elencati in A, B,...F.
|
106. C) La differenza tra la macchina a stati finiti e la macchina computazionale. |
|
107. Vorrei conoscere le potenzialità dei supercomputers. |
Ci sono elaborati che richiedono ore o addirittura giornate intere di CPU. Per affrontare tale mole di lavoro è stato ideato il grid computing (vedi 92). Tale metodo elaborativo risulta molto potente ed economico ma è incapace di garantire risultati in tempo reale. Si dimostra inutile di fronte a situazioni critiche come quelle tipiche del server di rete, che deve rispondere immediatamente ai picchi di carico di Internet. Per questo tipo di lavori e per altri ancora più impegnativi diventa indispensabile il supercomputer. Questa architettura viene realizzata mediante centinaia ed anche migliaia microprocessori che lavorano in parallelo. Questa soluzione tecnica, praticata da anni, risulta la più economica anche se comporta notevoli problemi di interconnessione tra i microprocessori. La complessità rischia di generare rallentamenti e di abbassare le prestazioni, per cui è oggetto di notevoli ricerche. Va da sé che il supercomputer, composto di molti microprocessori, sia migliaia di volte più potente dell'usuale personal che ce ne ha uno solo. Dopo una diatriba durata anni, oggi si è trovata una convergenza. Per misurare le capacità di un supercomputer sono stati scritti dei programmi 'campione' che vengono eseguiti sotto diverse condizioni. Meno tempo la macchina ci mette e più è potente. I programmi campione non contengono istruzioni normali ma quelle a 'virgola mobile' (= floating point) perché i calcoli impegnativi ricorrono abitualmente a tali operazioni. I più vecchi sistemi macinavano mega-flops cioè milioni di operazioni a virgola mobile al secondo (flop = floatingpoint-operations ). Oggi si naviga sull'ordine dei giga e tera ovvero 109 e 1012 flops al secondo. Aziende private ed
enti di ricerca producono sistemi avanzati per cui esiste una classifica
aggiornata che elenca i 500 migliori supercomputer in questo sito Nella
pagina principale il lettore cercherà il link alla classifica che in
genere viene aggiornata una volta l'anno. Da tempo l'Italia partecipa a tale
sfida tecnologica. Anni fa l'Istituto Nazionale di Fisica Nucleare (INFN)
costruì a Roma un supercomputer che poi venne commercializzato da Alenia
Spazio con il nome di 'Quadrics'. Complessivamente i nostri prodotti non
sono però tra i più brillanti. Ad esempio, alla fine del 2004 il primo sistema
italiano si trova al sessantesimo posto della classifica.
|