Torna alla pagina di Sistemi Operativi
:: Appunti caotici ::
Lezione 1 Macchina di von Neumann: architettura e funzionamento
...
Un sistema di elaborazione delle informazioni è un insieme di dispositivi in grado di eseguire operazioni, il cui numero, scopo e funzionalità dipende dal tipo di processore che stiamo utilizzando.
Il processore è un esecutore (automa) di tipo generale. Ciò significa che posso risolvere diversi tipi di problemi, anche se per risolverli, una volta individuato l'algoritmo risolutore, dovrò tradurre le istruzioni in una sequenza di comandi che lui possa comprendere.
La CPU scandisce ed esegue in modo sequenziale ed una alla volta le istruzioni contenute nella memoria centrale. E' dunque col caricamento del programma in memoria che il sistema di elaborazione smetterà di essere general purpose e potrà dedicarsi alla risoluzione del problema specifico.
Nella memoria sono contenute sia le istruzioni che i dati necessari al corretto funzionamento del programma.
Nella CPU abbiamo una serie di registri tra cui:
La Control Unit ha il compito di analizzare e decodificare l'istruzione caricata nel CIR, verificando tra le altre cose la sua leicità.
Il ciclo di un processore è composto da tre fasi, eseguite in ciclo infinito:
Queste tre fasi rappresentano il modo classico di operare di un qualsiasi processore, e in generale del sistema in cui vengono acquisite le istruzioni (sia a livello hardware che software).
...
Il problema della macchina di Von Neumann è che effetta istruzioni in sequenze. Se devo caricare costrutti non sequenziali devo effettuare una mappatura particolare della memoria centrale.
...
L'interruzione arresta la ciclicità infinita delle tre fasi di acquisizione, ed il processore passa ad eseguire una serie di operazioni di risposta che gestiscano quel tipo di interruzione (ad ognuno dei quali è infatti associato un certo indirizzo da caricare nel PC e che indica dove si trovano in memoria le istruzioni di gestione).
La verifica che ci sia stato un eventuale segnale di interrupt avviene tra la fase di execute e di fetch.
Nella fase di gestione dell'interruzione, il processore diventa "sordo" all'esecuzione (o richiesta di esecuzione) degli altri processi, il che comporta un rallentamento dei programmi. Pur essendo spesso minimo e trascurabile, è da tenere in grande considerazione per tutte quelle applicazioni per cui il tempo è un fattore critico.
L'interruzione è asincrona con la computazione del processo, in parole povere non so quando arriva.