Torna alla pagina di Sistemi Operativi
:: Appunti caotici ::
Lezione 1
Macchina di von Neumann: architettura e funzionamento
Pag 1
Sommario
...
Pag 2
Architettura del calcolatore
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.
Macchina di Von Neumann
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.
Pag 3
Processore: architettura e funzionamento
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:
- il Program Counter, registro di programma corrente, che contiene sempre l'indirizzo della prossima istruzione da eseguire. Viene generalmente incrementato di 1, caricando in sequenza le istruzioni presenti nelle posizioni successive nella memoria centrale, salvo eccezioni (quando gli viene data un'istruzione di jump)
- il Current Instruction Register, registro di istruzione corrente, dove viene caricata l'istruzione corrente da eseguire
- una serie di registri generici utilizzati dalle Unità Aritmetico Logiche (ALU) come appoggio per i valori temporanei coinvolti nelle varie operazioni
La Control Unit ha il compito di analizzare e decodificare l'istruzione caricata nel CIR, verificando tra le altre cose la sua leicità.
Processore: funzionamento
Il ciclo di un processore è composto da tre fasi, eseguite in ciclo infinito:
- FETCH, prende dalla memoria centrale l'istruzione puntata dal Program Counter e la carica nel registro di istruzione corrente (CIR)
- DECODE, avviene la decodifica, nella Control Unit. Se l'istruzione è valida viene eseguita, altrimenti viene killata
- EXECUTE, prende l'istruzione decodificata ed attiva le ALU opportune in modo - manco a dirlo - opportuno. Terminata questa fase il processore passa a fetchare la prossima istruzione indicata dal Program Counter.
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).
Pag 4
Espressività dei linguaggi di programmazione
...
Costrutti non sequenziali
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.
Pag 5
Attività asincrone
...
Interruzione
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.
Torna alla pagina di Sistemi Operativi