Architettura degli elaboratori: livelli di macchine virtuali e interazioni

Documento sull'architettura degli elaboratori, che esplora i livelli di macchine virtuali e le loro interazioni. Il Pdf, di Informatica per l'Università, analizza le differenze tra compilazione e interpretazione, il processo di elaborazione dei dati e il ciclo di esecuzione delle istruzioni, con un esempio dettagliato.

Mostra di più

59 pagine

COTANI RICCARDO
ARCHITETTURA DEGLI
ELABORATORI
Architeura degli elaboratori 1
Riccardo Cotani Architeura degli Elaboratori
Architettura Verticale a livelli di macchine
virtuali
Ogni livello MV
i
è omologo e può essere identificato e caratterizzato
dalla coppia, dove:
Ri: l'insieme di risorse o oggetti visibili da chi programma
quel livello.
Li: Ogni istruzione di un linguaggio Li è considerata primitiva
a quel livello, ma in realtà è implementata con un programma
scritto in un linguaggio Lj di un livello inferiore.
La relazione tra i livelli segue questa regola: 0<j<i, tipicamente, j
= i - 1 (cioè, ogni livello è costruito direttamente sopra il livello
immediatamente inferiore), tuttavia, per motivi di efficienza, il
livello inferiore usato potrebbe essere anche più distante.
Ogni risorsa è primitiva al livello ed è composta dalle primitive dei
livelli inferiori.
Per ora, ci interessa il livello 0, 1, 2:
Livello 0: porte logiche.
Livello 1: microistruzioni.
Livello 2: istruzioni Assembler.
Compilazione vs Interpretazione
Compilazione: processo di traduzione di un intero programma in
codice macchina prima dell'esecuzione.
Interpretazione: modalità più flessibile per passare tra i vari
livelli dell'architettura, traducendo ed eseguendo il codice
istruzione per istruzione.

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Architettura Verticale a livelli di macchine virtuali

Ogni livello MVi è omologo e può essere identificato e caratterizzato dalla coppia, dove:

  • Ri: l'insieme di risorse o oggetti visibili da chi programma quel livello.
  • Li: Ogni istruzione di un linguaggio Li è considerata primitiva a quel livello, ma in realtà e implementata con un programma scritto in un linguaggio Lj di un livello inferiore.

La relazione tra i livelli segue questa regola: 0<j<i, tipicamente, j = i - 1 (cioè, ogni livello è costruito direttamente sopra il livello immediatamente inferiore), tuttavia, per motivi di efficienza, il livello inferiore usato potrebbe essere anche più distante. Ogni risorsa è primitiva al livello ed è composta dalle primitive dei livelli inferiori.

Per ora, ci interessa il livello 0, 1, 2:

  • Livello 0: porte logiche.
  • Livello 1: microistruzioni.
  • Livello 2: istruzioni Assembler.

Compilazione vs Interpretazione

  • Compilazione: processo di traduzione di un intero programma in codice macchina prima dell'esecuzione.
  • Interpretazione: modalità più flessibile per passare tra i vari livelli dell'architettura, traducendo ed eseguendo il codice istruzione per istruzione.

Vantaggi della Compilazione

Vantaggi a) Velocità di esecuzione più alta che nell'interpretazione (alta efficienza)

Vantaggi dell'Interpretazione

a) Possibilità di effettuare modiche al programma immediatamente b) Eliminazione errori sintattici in fase di compilazione b) Facilità nel trovare e correggere eventuali errori semantici c) Poter utilizzare linguaggi di alto livello diversificati e "specializzati" per comporre un'unica procedura (procedura = insieme di programmi. c) Ridotto ingombro complessivo dei programmi in quanto tutti utilizzano le stesse primitive dell'interprete.

Svantaggi della Compilazione

Svantaggi a) Per effettuare modifiche al programma è necessario disporre del programma sorgente, compilarlo e rilanciarlo.

Svantaggi dell'Interpretazione

b) Velocità di esecuzione più bassa che nella compilazione b) Difficoltà nel trovare e correggere eventuali errori c) Presenza di possibili errori sintattici che si manifestano durante l'esecuzione.

Riccardo Cotani Architettura degli Elaboratori2

Livelli nello specifico

I 4 Livelli Gerarchici

L'architettura degli elaboratori segue una struttura gerarchica ben definita, suddivisa in quattro livelli principali: MV1, MV2, MV3 e MV4. Ogni livello ha funzionalità specifiche e comprende ulteriori sottolivelli, il che permette di organizzare il sistema in modo più strutturato. Questa suddivisione serve a semplificare la gestione della complessità del sistema, grazie a un'astrazione progressiva: ogni livello fornisce servizi a quello superiore, nascondendo i dettagli più tecnici dell'implementazione.

Vediamolo più nel dettaglio:

Livello MV4: Applicazioni e Linguaggi

Questo è il livello più alto dell'architettura, dedicato sia agli utenti finali sia agli sviluppatori di applicazioni.

MV 4.3: Applicazioni Transazionali

Qui rientrano tutti quei sistemi che gestiscono transazioni complesse, come :

  • o Sistemi di prenotazione, e-commerce e applicazioni bancarie.
  • Software gestionali aziendali, come ERP e CRM.
  • Applicazioni web e mobile con gestione transazionale.

MV 4.2: Gestione delle Transazioni

Questo livello si occupa di garantire che le operazioni transazionali avvengano in maniera corretta e affidabile. Include:

  • I protocolli ACID (Atomicita, Coerenza, Isolamento, Durabilità).
  • I meccanismi di commit e rollback, fondamentali per annullare operazioni in caso di errori.
  • Sistemi di processing transazionale, come quelli che gestiscono bonifici bancari e ordini di acquisto.

MV 4.1: Gestione di Database

Un livello essenziale per la memorizzazione e gestione dei dati, che comprende:

DBMS relazionali e NoSQL. o

Riccardo Cotani Architettura degli Elaboratori3

o Elaborazione e ottimizzazione delle query. o Controllo dell'integrità dei dati e delle loro relazioni.

MV 4.0: Linguaggi

In questo sottolivello troviamo gli strumenti che permettono di scrivere e strutturare il software:

  • Linguaggi di programmazione, come Java, C++ e Python.
  • Linguaggi di markup, come HTML e XML.
  • Linguaggi di interrogazione, come SQL.

Livello MV3: Sistema Operativo

Questo livello ha il compito di gestire le risorse hardware e fornire servizi standardizzati alle applicazioni.

MV 3.2: Funzioni di Supervisione

Si occupa della gestione e dell'ottimizzazione del sistema:

  • Pianificazione dei processi (scheduling) e gestione delle priorità.
  • Allocazione delle risorse hardware. Monitoraggio delle prestazioni del sistema. o

MV 3.1: Gestione Altre Risorse

Qui rientrano funzioni fondamentali come:

  • o Gestione del file system e dello storage.
  • Controllo della rete e gestione dei protocolli di comunicazione.
  • o Interfacce grafiche e servizi di input/output.

MV 3.0: Gestione Processi/Processori

Un livello essenziale per il multitasking e il coordinamento delle operazioni:

  • Creazione, sospensione e terminazione dei processi.
  • o Gestione dei thread e del multitasking.
  • o Sincronizzazione e comunicazione tra processi tramite semafori e messaggi.

Livello MV2: Gestione Hardware

Questo livello funge da interfaccia tra il software e l'hardware fisico, consentendo il corretto utilizzo delle risorse disponibili.

Riccardo Cotani Architettura degli Elaboratori4

MV 2.2: Gestione della Memoria

Si occupa di ottimizzare l'uso della memoria attraverso:

  • o Sistemi di paginazione e segmentazione.
  • o Memoria virtuale e swapping.
  • Gestione della cache per migliorare l'accesso ai dati.

MV 2.1: Gestione delle Periferiche

Questo sottolivello è dedicato alla comunicazione tra il sistema e le periferiche, grazie a:

  • o Driver specifici per ogni hardware.
  • o Controller di input/output e gestione dei buffer.
  • o Sistemi per il controllo delle code di richieste I/O.

MV 2.0: Gestione delle Interruzioni e del Bus

Qui vengono regolati gli eventi che interrompono il normale flusso di elaborazione, attraverso:

  • o Interrupt Handler e tabelle vettoriali.
  • Arbitraggio del bus per evitare conflitti tra dispositivi.
  • o Tecniche di DMA (Direct Memory Access) per trasferimenti ad alta velocità.

Livello MV1: Microarchitettura e Hardware

Il livello più basso dell'architettura, dove vengono implementate le funzioni fisiche del computer.

MV 1.2: Unità di Controllo

Questo sottolivello gestisce l'esecuzione delle istruzioni macchina:

  • Decodifica delle istruzioni. o
  • Sequenziamento delle microistruzioni. o
  • Gestione del flusso di esecuzione tramite pipeline. o

MV 1.1: ALU e Registri

La parte centrale per le operazioni matematiche e logiche:

  • Calcoli eseguiti dall'ALU. o
  • Utilizzo dei registri per memorizzare temporaneamente i dati. o
  • Gestione dei flag per determinare lo stato dell'elaborazione. o

Riccardo Cotani Architettura degli Elaboratori5

MV 1.0: Circuiti Logici di Base

L'insieme di componenti elettronici fondamentali:

  • Porte logiche (AND, OR, NOT, XOR). o
  • Flip-flop per la memorizzazione di bit. o
  • Bus interni, segnali di clock e sincronizzazione. o

Dualità ed Equivalenza Hardware-Software

L'hardware e il software sono strettamente interconnessi:

  • Senza software, il PC sarebbe solo un insieme di circuiti inerti.
  • Senza hardware, il software sarebbe solo un concetto astratto.

Il livello di microarchitettura consente di mascherare la complessità dei circuiti fisici attraverso microprogrammi, rendendo il sistema funzionalmente equivalente ai livelli superiori.

Architettura Orizzontale - Moduli di Elaborazione

Le funzionalità di ogni livello MV possono essere espresse attraverso moduli indipendenti:

  • Fij sono funzioni autonome e sequenziali.
  • Fi rappresenta l'insieme delle funzionalità, senza sovrapposizioni.

Un sistema di elaborazione può essere rappresentato come un insieme di:

  • MUi (moduli di elaborazione).
  • SIi (struttura di interazione e comunicazione tra i moduli).

Le proprietà di questa struttura includono:

  • Autonomia, in quanto i moduli possono essere progettati indipendentemente.
  • Sequenzialità, dato che ogni modulo esegue una lista di istruzioni.
  • Indipendenza, simile al comportamento degli stormi di uccelli, dove ogni modulo segue regole proprie.

Riccardo Cotani Architettura degli Elaboratori6

Rappresentazione dell'Informazione

L'informazione è un'entità astratta che deve essere trasformata in un formato misurabile e omogeneo. Il computer utilizza il sistema binario perché:

  • È più efficiente e semplice da elaborare.
  • È più affidabile, riducendo gli errori dovuti ai disturbi.

Per garantire la qualità del segnale digitale, si utilizza un trigger, un componente elettronico che rigenera l'onda quadra corretta quando il segnale ricevuto si degrada.

Architettura IAS: Il Progetto del Calcolatore

L'architettura IAS (Institute for Advanced Study) rappresenta un progetto fondamentale nella storia dell'informatica, in quanto ha gettato le basi per la maggior parte degli elaboratori sviluppati successivamente, inclusi quelli moderni. Questo modello di calcolatore, ideato sotto la guida di John von Neumann, ha introdotto concetti rivoluzionari che sono ancora oggi alla base dell'architettura dei computer.

La principale innovazione dell'architettura IAS fu la collocazione del programma in memoria. Prima di questa svolta, i primi calcolatori utilizzavano un approccio in cui le istruzioni venivano inserite manualmente tramite schede perforate o altri dispositivi fisici di input, rendendo la programmazione un processo rigido e poco flessibile. Con il modello IAS, invece, il programma e i dati venivano memorizzati nella stessa unità di memoria, consentendo alla macchina di eseguire istruzioni in modo sequenziale e automatizzato.

Questa innovazione ebbe un impatto enorme, perché permise di sviluppare sistemi più flessibili e potenti, capaci di modificare il proprio comportamento in base ai dati elaborati. Inoltre, la memorizzazione del programma in memoria rese possibili la nascita di concetti come la programmazione general-purpose, in cui un'unica macchina poteva eseguire programmi diversi senza dover essere riprogrammata fisicamente ogni volta.

L'architettura IAS introdusse anche altri elementi fondamentali, come la separazione tra unità di calcolo e memoria, il concetto di ciclo di fetch-decode-execute per l'elaborazione delle istruzioni, e l'uso di registri interni per velocizzare i calcoli. Tutti questi principi furono alla base dell'architettura di von Neumann, su cui si basano ancora oggi la maggior parte dei computer moderni.

Grazie a queste innovazioni, l'architettura IAS ha segnato un punto di svolta nella storia dell'informatica, fornendo il modello concettuale che ha reso possibile lo sviluppo degli elaboratori come li conosciamo oggi.

Riccardo Cotani Architettura degli Elaboratori

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.