cerca
Sistemi Operativi
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sistemi Operativi

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:

  1. FETCH, prende dalla memoria centrale l'istruzione puntata dal Program Counter e la carica nel registro di istruzione corrente (CIR)
  2. DECODE, avviene la decodifica, nella Control Unit. Se l'istruzione è valida viene eseguita, altrimenti viene killata
  3. 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