Domande dai temi d'esame di fondamenti di informatica
Codici ASCII e Unicode
Si presentino i codici ASCII e UNICODE evidenziando la loro utilità. Si dica se il codice ASCII è un codice ridondante, motivando la risposta. Si presenti la distanza di Hamming anche in relazione ai codici non ridondanti e a quelli ridondanti.
Sulla base della necessità di avere calcolatori che non trattano solo numeri ma anche altri tipi di caratteri, sono stati inventati i codici. I Codici utilizzano una codifica, ovvero una corrispondenza biunivoca tra elementi di alfabeti diversi; in particolare un gruppo di elementi di un alfabeto più povero (meno elementi) identifica un solo simbolo di un alfabeto più ricco.
Definita C la cardinalità (#elementi) dell'alfabeto ricco e n il numero di cifre disponibili all'alfabeto povero per codificare l'altro, la codifica è possibile se e solo se: C <= 2n; quindi, se n >= log2C = M. Se n = M l'alfabeto povero utilizza tutte le combinazioni possibili. Se n > M il codice si dice ridondante e usa più cifre del necessario per codificare l'alfabeto ricco.
La distanza di Hamming è il numero minimo di elementi che differiscono da una parola qualsiasi all'altra di un alfabeto. Se non c'è ridondanza H = 1, altrimenti H >= 1. I codici ridondanti si usano per rilevare e correggere errori di trasmissione nei dati.
La codifica ASCII è la più utilizzata per la rappresentazione di caratteri alfanumerici e ne esistono due versioni:
- 7 bit (+1 di parità per la correzione di errori; H = 2) che può quindi rappresentare 128 simboli (27)
- 8 bit con 256 simboli, che aggiunge 128 simboli che però possono variare da macchina a macchina, creando dei problemi di portabilità.
Il codice Unicode utilizza invece diverse codifiche a 16 bit (65,536 simboli) e fu introdotto per rappresentare ogni simbolo di tutti i linguaggi del pianeta. ASCII non è ridondante poiché a ogni simbolo corrisponde una e una sola combinazione di bit, e per giunta non vi sono configurazioni inutilizzate.
Architettura di una generica CPU
Si descriva l’architettura di una generica CPU evidenziando in particolare le funzioni che vengono svolte dall’IR e dal decodificatore e commentando il coinvolgimento delle risorse della CPU durante la fase di fetch dell’istruzione.
La CPU (Central Processing Unit) è l'unità fondamentale di ogni calcolatore, quella che di fatto compie le varie operazioni tra i dati.
Ha più componenti:
- Bus: sono i collegamenti fisici attraverso i quali passano i segnali elettrici e collegano le varie componenti della CPU o la CPU con l'esterno. Si dividono in base al tipo di informazione trasportata: dati (bus dati), indirizzi di memoria (bus indirizzi), istruzioni di controllo del processo o gestione delle priorità (bus di controllo).
- Registri: piccoli blocchi di memoria in cui sono salvati i dati di interesse in un certo momento. Alcuni registri sono specializzati per racchiudere un certo tipo di informazioni:
- Flag: registri che contengono un controllo sull'output di un'elaborazione per verificare se è andata a buon fine e non vi sono errori.
- Program Counter: un registro che contiene sempre l'indirizzo dell'istruzione successiva da eseguire (è un puntatore → punta all'istruzione successiva).
- Stack Pointer: contiene l'indirizzo della cima di uno stack pila, particolare struttura di dati che torna utile nella gestione di chiamate a sottoprogrammi.
- IR (Instruction Register): utilizzato per conservare il codice operativo dell'istruzione da eseguire, da qui poi la sequenza di bit del opcode verrà decodificata per mezzo di un decodificatore che, ricevute le n linee di ingresso, attiva i (2n) circuiti appropriati per l'esecuzione dell'istruzione.
- ALU: è l'unità che svolge le operazioni aritmetiche e logiche tra sequenze di bit, interagendo col registro dei flag per la rilevazione di errori. Spesso utilizza un registro detto accumulatore nel quale mantiene temporaneamente gli operandi o il risultato.
La fetch è la prima fase di esecuzione di un programma e consiste nel prelevare dalla memoria tutto ciò che serve per far partire la decodifica e l'esecuzione dell'istruzione. In un primo momento il PC (Program Counter) punta all'istruzione da eseguire che avrà un ce
-
Risposte domande Aperte paniere Fondamenti di informatica
-
Risposte domande Chiuse paniere Fondamenti di informatica
-
Domande esame orale Fondamenti di informatica
-
Domande di teoria informatica