Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Informatica di base del corso di giurisprudenza nell'università telematica Pegaso, Study notes of Information Technology

Appunti della lezione e dispense dalla codifica dell'informazione all'hardware: memoria centrale

Typology: Study notes

2022/2023

Uploaded on 10/25/2023

malaragaia
malaragaia 🇮🇹

1 document

1 / 11

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
informatica di base (6 CFU)
1. CODIFICA E RAPPRESENTAZIONE DELL'INFORMAZIONE
1.1. codifica dell'informazione
Innanzitutto "informatica" è un termine introdotto nel 1957 da Karl Steinbuch, "informatik", che
deriva dal francese "informatique". Unione tra "informazione" e "automatica" che dà il risultato di
"informatica". L'informazione è un concetto che deriva da "informare", ossia "dare forma". Fa
riferimento ad un concetto astratto che può coincidere con qualsiasi informazione, che una
persona può trasmettere, e prendere forma in qualcosa di più tecnologico comprensibile alla
macchina. Esistono due tipi di informazione: ANALOGICO e DIGITALE. Affinché un calcolatore
riesca ad elaborare le informazioni è necessario che quest'ultima da analogica venga
trasformata in digitale (binaria). Questo processo è definito CODIFICA. La stessa informazione
può essere codificata in modi diverse a seconda del contesto:
CODIFICA in numeri romani (XII);
CODIFICA ESADECIMALE (C=12);
CODIFICA in base OTTALE (14=12).
Per interpretare le diverse codifiche dell'informazione è necessario conoscere il CODICE,
ovvero la regola, che a ogni configurazione ammessa associa un'entità di informazione.
1.2. I sistemi di numerazione
Un sistema di numerazione è l'insieme di simboli (cifre) e di regola utilizzati per rappresentare
qualunque numero. Essi si dividono in:
SISTEMI NON POSIZIONALI, ad ogni simbolo è associato un valore numerico
prefissato;
SISTEMI POSIZIONALI, ad ogni simbolo è associato un valore diverso che varia in base
al simbolo stesso e alla posizione che esso occupa.
I sistemi non posizionali sono i primi ad essere stati adottati, tali sistemi sono così detti
perché il valore del numero si ottiene sommando (o sottraendo) i valori numerici dei singoli
simboli che costituiscono la scrittura del numero (ad esempio il sistema di numerazione romano
è non posizionale). Questi sistemi presentano però degli svantaggi, quali:
numeri grandi = elevato numero dei simboli;
difficoltà eseguire operazioni di calcolo anche banali.
I sistemi posizionali assegnano ai simboli utilizzati per comporre un numero un "peso" diverso
in base alla loro posizione (cifre uguali in posizioni diverse hanno peso diverso). Essi si
differenziano tra loro per il numero di cifre utilizzate, ossia per il valore della base.
a. sistema di numerazione decimale
È stato introdotto nel VI secolo in India, si chiama così perché utilizza una notazione posizionale
basata su 10 cifre (da 0 a 9) e sulle potenze di 10.
Ad esempio: il numero 5028 si può scrivere in forma polinomiale così:
5028= 5x10^3+0x10^2 + 2x10^1+8=5000+0+20+8
b. Il sistema di numerazione binario (unico sistema che il calcolatore comprende)
Si chiama così perché utilizza solo 2 cifre, 0 e 1. Con il quale avviene l'operazione di CODIFICA
(informazione analogica trasformata in digitale binaria). Nel linguaggio informatico le cifre
binarie vengono indicate con il termine bit, dalla contrazione delle due parole inglesi Binary
digiT (cifra binaria). Così come nel sistema decimale, le cifre del sistema binario 0 e 1
assumono un valore posizionale. Ad esempio: 00111 può essere rappresentato
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Informatica di base del corso di giurisprudenza nell'università telematica Pegaso and more Study notes Information Technology in PDF only on Docsity!

informatica di base (6 CFU)

  1. CODIFICA E RAPPRESENTAZIONE DELL'INFORMAZIONE 1.1. codifica dell'informazione Innanzitutto "informatica" è un termine introdotto nel 1957 da Karl Steinbuch, "informatik", che deriva dal francese "informatique". Unione tra "informazione" e "automatica" che dà il risultato di "informatica". L'informazione è un concetto che deriva da "informare", ossia "dare forma". Fa riferimento ad un concetto astratto che può coincidere con qualsiasi informazione, che una persona può trasmettere, e prendere forma in qualcosa di più tecnologico comprensibile alla macchina. Esistono due tipi di informazione: ANALOGICO e DIGITALE. Affinché un calcolatore riesca ad elaborare le informazioni è necessario che quest'ultima da analogica venga trasformata in digitale (binaria). Questo processo è definito CODIFICA. La stessa informazione può essere codificata in modi diverse a seconda del contesto: ● CODIFICA in numeri romani (XII); ● CODIFICA ESADECIMALE (C=12); ● CODIFICA in base OTTALE (14=12). Per interpretare le diverse codifiche dell'informazione è necessario conoscere il CODICE, ovvero la regola, che a ogni configurazione ammessa associa un'entità di informazione. 1.2. I sistemi di numerazione Un sistema di numerazione è l'insieme di simboli (cifre) e di regola utilizzati per rappresentare qualunque numero. Essi si dividono in: ● SISTEMI NON POSIZIONALI, ad ogni simbolo è associato un valore numerico prefissato; ● SISTEMI POSIZIONALI, ad ogni simbolo è associato un valore diverso che varia in base al simbolo stesso e alla posizione che esso occupa. I sistemi non posizionali sono i primi ad essere stati adottati, tali sistemi sono così detti perché il valore del numero si ottiene sommando (o sottraendo) i valori numerici dei singoli simboli che costituiscono la scrittura del numero (ad esempio il sistema di numerazione romano è non posizionale). Questi sistemi presentano però degli svantaggi, quali: ● numeri grandi = elevato numero dei simboli; ● difficoltà eseguire operazioni di calcolo anche banali. I sistemi posizionali assegnano ai simboli utilizzati per comporre un numero un "peso" diverso in base alla loro posizione (cifre uguali in posizioni diverse hanno peso diverso). Essi si differenziano tra loro per il numero di cifre utilizzate, ossia per il valore della base. a. sistema di numerazione decimale È stato introdotto nel VI secolo in India, si chiama così perché utilizza una notazione posizionale basata su 10 cifre (da 0 a 9) e sulle potenze di 10. Ad esempio: il numero 5028 si può scrivere in forma polinomiale così: ● 5028= 5x10^3+0x10^2 + 2x10^1+8=5000+0+20+ b. Il sistema di numerazione binario (unico sistema che il calcolatore comprende) Si chiama così perché utilizza solo 2 cifre, 0 e 1. Con il quale avviene l'operazione di CODIFICA (informazione analogica trasformata in digitale binaria). Nel linguaggio informatico le cifre binarie vengono indicate con il termine bit, dalla contrazione delle due parole inglesi Binary digiT (cifra binaria). Così come nel sistema decimale, le cifre del sistema binario 0 e 1 assumono un valore posizionale. Ad esempio: 00111 può essere rappresentato

● 00111 = 0x2^4+0x2^3+ 1 x 2^2+1 x 2^1+1 x 2^0= c. Il sistema di numerazione esadecimale Si distingue dal sistema decimale per la presenza di sei cifre aggiuntive indicate dalle lettere maiuscole A, B, C, D, E, F. Ad esempio: Il numero esadecimale 4F può essere rappresentato ● (4F)16 = 4X16^1+ FX16^0 → sapendo che F=15 → 4 x 16^1+15x16^0=64+15 = (79) Dunque il sistema esadecimale utilizza le cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 1.3. Cambiamenti di base Per cambiamento di base o conversione di base si intende la trasformazione della rappresentazione di un numero da una base ad un'altra. L'idea del sistema posizionale è che ogni cifra ha un peso. Ad esempio: ● 132 = 100+30+2= 1 x 10^2 +3x10^1+2 x 10^ a. Cambiamento di base da binario a decimale Per convertire in base 10 il numero rappresentato in base 2 è sufficiente eseguire: ● N= d [k]xr^k+ d [k-1] x r^(k-1) + … + d [1] x r^ 1+ d [0]x r^ Esempio: ● 1101 [2] = 1 x 2^3+ 1 x 2^2+ 0x2^1+ 1 x 2^0 = 8+4+0+1 = 13 [10] b.. Cambiamento di base da decimale a binario La regola di conversione prende il nome di regola delle divisioni successive, ovvero:

  1. dividere il numero da convertire per 2, calcolando il quoziente e il resto della divisione;
  2. se il quoziente della divisione è diverso da 0, continuare a dividere per 2 fin quando non lo si ottiene;
  3. scrivere i resti delle divisioni in ordine inverso rispetto a come sono calcolati, l'uno de seguito all'altro;
  4. Il numero così ottenuto è la conversione in base 2. Esempio: convertire il numero 12 da base 10 a base 2
  5. 12:2=6 con R=0 cifra meno significativa
  6. 6:2=3 con R=
  7. 3:2=1 con R=
  8. 1:2=0 con R=1 cifra più significativa
  9. quindi 12 [10] = (1100)^ c. Cambiamento di base tra due sistemi di numerazioni qualunque Per convertire un numero da una base qualsiasi b1 ad un'altra base qualsiasi b2 è quasi sempre opportuno operare in 2 passi
  10. conversione da b1 alla base 10;
  11. conversione dalla base 10 alla b2. Esempio: convertire il numero 43112 in base 5 a base 7
  12. convertiamo 43112 [5] in base 10 ● 43112 [5] = (4 x 5^4) + (3x5^3) + (1x5^2) +(1x5) + (2x5^0) = 2500+ 375 +25+5+2= [10]
  13. convertiamo 2907 [10] in base 7 ● 2907 [10] = 2907:7 = 415 con R= ● 4115: 7=59 con R= ● 59:7=8 con R= ● 8:7=1 con R=

2.2. Rappresentazione degli algoritmi Per rappresentare (descrivere) un algoritmo non è possibile utilizzare il linguaggio naturale in quanto questo potrebbe presentare ambiguità e causare false interpretazioni. È necessario, quindi, utilizzare linguaggi sintetici e standardizzati in modo da consentire all'esecutore un'interpretazione univoca dei passi da svolgere. Esistono due mode ser rappresentare un algoritmo:

  1. DIAGRAMMA A BLOCCHI (FLOW CHART), è un formalismo che consente di rappresentare graficamente gli algoritmi, il quale descrive le azioni da eseguire ed il loro ordine di esecuzione. Ogni azione elementare corrisponde ad un simbolo grafico (blocco) diverso. I blocchi vengono collegati tra di loro da rami o archi orientati (frecce), i quali determinano la sequenza dei blocchi. Un diagramma di flusso appare, quindi, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza in cui i blocchi devono essere eseguiti. SIMBOLI DEL FLOWCHART: ● INIZIO E FINE, indicati con rettangoli ad angoli smussati; ● AZIONE, rettangolo che indica ogni azione che deve essere svolta all'interno del flusso; ● DECISIONE, (ogni decisione o evento che presuppone un bivio nel flusso) indicata con un rombo da cui usciranno due frecce corrispondenti ai due esiti della domanda; ● INSERIMENTO ED EMISSIONE DEI DATI, parallelepipedo; Esempio:
  2. PSEUDO-CODICE , presenta delle fasi: ● INTESTAZIONE, riga iniziale che assegna il nome all'algoritmo. Si usa la parola ALGORITMO seguita da un nome a piacere che lo identifica; ● FASE DICHIARATIVA, è necessario dichiarare i dati che entrano in gioco specificando il nome e il tipo di dato (VARIABILE o COSTANTE). Si usa la parola DICHIARA seguita dal nome del dato e dal loro tipo. ● FASE ESECUTIVA, si eseguono in ordine le istruzioni che, partendo dai dati di input, ci permettono di ottenere i risultati di output. Questa fase inizia con la parola chiave INIZIO e termina con FINE. Esempio, somma di due numeri:
  3. ALGORITMO SOMMA
  1. VARIABILI → DICHIARA X, Y somma come numeri interi
  2. INIZIO ● LEGGI X ● LEGGI Y ● CALCOLO SOMMA = X+Y ● SCRIVI SOMMA
  3. FINE 2.3. Linguaggi di programmazione Sono strumenti per la comunicazione uomo-macchina, essi consentono di esprimere e rappresentare programmi comprensibili ed eseguibili da una macchina. Infatti sono simili ai linguaggi naturali ma senza ambiguità. Sono caratterizzati da: ● insieme di simboli (alfabeto) e di parole (dizionario) che possono essere usati per formare le frasi; ● insieme di regole grammaticali, ovvero formali per la composizione di programmi nel linguaggio scelto (sintassi); ● Significato delle frasi da attribuire alle frasi costruite nel linguaggio scelto (semantica). Si dividono in: ● Linguaggio macchina, è il linguaggio compreso dalla CPU. Essendo composto da istruzioni formate da sequenze di bit è difficile da usare. Il suo vantaggio è la sua velocità di esecuzione (codice macchina → legge→ CPU→ esegue →); ● Linguaggi di basso livello (assembly), è un linguaggio elementare per rappresentare istruzioni in linguaggio macchina. Ciò avviene tramite un ASSEMBLATORE (compilatore); ● Linguaggi di alto livello, linguaggio più vicino a quello naturale, i quali richiedono un compilatore o interprete in grado di tradurre le istruzioni in linguaggio macchina (es.: Fortran, C, Java, PHP, etc…).
  4. IL COMPUTER: UN SISTEMA IN CONTINUA EVOLUZIONE 3.1.i precursori→ DISPENSE 3.2. Le 5 generazioni Esistono 5 generazioni che possono essere utilizzate per descrivere l'evoluzione di un personal computer, quali:
  5. VALVOLE TERMOIONICHE (1936-1952), 3 avvenimenti principali: ● Nel 1944 , viene realizzato da Howard H. Aiken dell'Università di Harvard, in collaborazione con la IBM, il primo calcolatore aritmetico universale; ● Nel 1946 , presso la Pennsylvania University, viene concepito e realizzato da John Erckert e John Mauchly, l'ENIAC (Electronic Numerical Integrator And Computer), che può essere considerato il primo calcolatore elettronico della prima generazione; ● Nel 1952 nasce l'EDVAC (Electronic Discrete Variable Automatic Computer) in grado di registrare nella memoria non solo dati da elaborare, ma anche le istruzioni da eseguire.
  6. IL TRANSISTOR , che fu inventato nel 1948 dai Bell Labs e fruttò ai suoi inventori il premio Nobel per la fisica. Nel 1957 nasce "Modello 2002", prodotto dalla Siemens. Nel 1960 fu immesso sul mercato PDP-1: primo computer sul quale era possibile giocare.
  1. computer general purpose , risolvono problemi generali;
  2. computer special purpose , sistemi embedded dedicati ad una sola applicazione specifica. ● al software ; ● al sistema operativo.
  3. ARCHITETTURA DI UN ELABORATORE 4.1. JOHN VON NEUMANN John von Neumann nasce a Budapest il 28 dicembre 1903 da una famiglia di banchieri ebrei. A sei anni intratteneva gli ospiti di famiglia con la sua prodigiosa memoria, ripetendo all'istante intere pagine di elenco telefonico che gli erano state mostrate solo per pochi istanti o eseguendo rapidamente a mente divisioni con due numeri da otto cifre. Si divertiva conversando in greco antico, arrivando a padroneggiare, intorno ai dieci anni, sei lingue. Morì a Washington l'8 febbraio 1957. Con l'articolo, scritto insieme all'economista Oskar Morgenstern, diede il via alla teoria dei giochi. Ideò modelli matematici per descrivere la meteorologia, che ancora oggi vengono utilizzati. Collaborò molto strettamente con il Pentagono USA per la costruzione di bombe atomiche. Partecipò infatti al progetto Manhattan per la costruzione della bomba atomica. Ideò un modello dei moderni calcolatori. È considerato come uno dei più grandi matematici della storia moderna. 4.2 modello di Von Neumann Il primo modello di calcolatore elettronico (vedere dispensa) L'idea alla base del modello nasce nel corso di un progetto di ricerca gestito dal DARPA (Defense Advanced Research Projects Agency). Un calcolatore è composto da:
  4. Memoria, che contiene sia programmi che dati;
  5. Processore. Ciascuna componente del modello: ● Ha una propria funzionalità ● Interagisce con gli altri componenti e con l'esterno ● É dotato di struttura interna Le funzionalità principali sono: ● Scambio di dati con l'esterno ● Memorizzazione ● Elaborazione ● Controllo Componenti fondamentali: ● CPU ● memoria centrale ● Unità I/O ● BUS 4.3 le parti del modello La CPU (central processing unit) svolge le elaborazioni e il trasferimento dei dati, cioè esegue i programmi. È divisa in tre parti:
  6. UNITÀ DI CONTROLLO (CU) che governa e controlla la CPU. Coordina, quindi, tutte le azioni necessarie ad eseguire delle istruzioni. Essa prende le istruzioni (fetch), le interpreta (decode) e le esegue (execute) → ciclo (fetch-decode-execute):

● FETCH → la CU preleva un'istruzione dalla memoria centrale e la sposta all'interno della CPU ● DECODE → la CU interpreta l'istruzione ● EXECUTE → la CU esegue l'istruzione coinvolgendo ALU e i REGISTRI se necessario

  1. UNITÀ ARITMETICO LOGICA (ALU) che esegue i calcoli aritmetici e logici elementari. Per poter sviluppare le sue funzioni, l'ALU si avvale di: ● Una rete logica costituita da un insieme di circuiti elettronici elementari che consentono di eseguire le operazioni aritmetiche o logiche. ● Uno o più registri accumulatori che vengono utilizzati per immagazzinare gli operandi dalle operazioni da eseguire ● Un registro di stato che serve per memorizzare particolari informazioni relative alle condizioni verificatesi nel corso dell'ultima operazione eseguita. ● A e B rappresentano i 2 operandi in ingresso ● R rappresenta il risultato dell'operazione in uscita ● F rappresenta i segnali provenienti dalla CU ● D rappresenta i segnali di stato delle operazioni eseguite
  2. REGISTRI , ovvero celle di memoria veloce, utili per memorizzare dati e istruzioni. La MEMORIA CENTRALE con apposite operazioni di lettura o scrittura consente al processore di elaborare i dati. È composta da: 1. RAM (Random Access Memory) è volatile ed è usata per memorizzare dati e programmi 2. ROM (Read Only Memory) non è volatile ed è usata per memorizzare programmi di sistema 3. CACHE (si pronuncia "Kesh") è la memoria di appoggio del processore ed è più veloce La MEMORIA SECONDARIA memorizza grandi quantità di informazioni, è più lenta nell'accedere rispetto alla memoria centrale, però ci permette di memorizzare i dati e di conservarli nel tempo (es. Dischi, nastri, CD riscrivibili). I DISPOSITIVI DI INGRESSO-USCITA (periferiche) sono usati per far comunicare il calcolatore con l'esterno. Dispositivi di input : tastiera, mouse, microfono, touchpad, scanner, joypad; Dispositivi di output : stampante, casse acustiche, monitor. Il BUS è il canale fisico che mette in comunicazione le varie componenti del calcolatore. Suddiviso in: 1. Data BUS (bus dei dati), trasferimento dei dati da un'unità che trasmette a una che riceve. Esso trasferisce i dati dalla memoria centrale al registro dati della CPU e dalle

Alle funzioni di base corrispondono altrettante componenti hardware del computer: ● Acquisire → dispositivi di input ● Elaborare → unità aritmetico-logica (ALU) ● Memorizzare → memoria ● Fornire → dispositivi di output ● Controllare → Unità di controllo (CU) (ALU + CU = CPU, Unità centrale di elaborazione) → modello di Von Neumann Nella scheda madre viene montata la CPU.

  1. L'HARDWARE: LA MEMORIA CENTRALE 6.1. La memoria La memoria è un dispositivo in grado di immagazzinare dati. Si compone di una serie di contenitori detti celle o locazioni di memoria. Ogni cella: ● contiene dei dati rappresentati in forma binaria; ● è univocamente individuata tramite un indirizzo rappresentato anch'esso come un numero binario. Su ogni cella di memoria è possibile effettuare operazioni di scrittura (write) e lettura (read). La capacità di una memoria indica la quantità di informazioni che può contenere (unità di misura = Byte. 1 Byte = 8 bit). Il TEMPO DI ACCESSO (o velocità = secondi e sottomultipli) di una memoria, è il tempo che intercorre fra il momento in cui la memoria riceve la richiesta e il momento in cui la memoria rende effettivamente disponibile il dato richiesto. 6.2. La gerarchia di memoria Le diverse forme di memorizzazione presenti in un computer costituiscono una gerarchia di memoria (vedere piramide pag. 5). Obiettivi della gerarchia di memorie: ● fornire una quantità di memoria pari a quella disponibile nella tecnologia più economica; ● fornire una velocità di accesso pari a quella garantita dalla tecnologia più veloce. Alla base della gerarchia di memoria vi è il principio di località, del quale esistono due tipi differenti:
    1. località temporale. Se la CPU ha avuto accesso ad un dato in un certo momento è molto probabile che lo stesso dato venga richiesto entro breve tempo;
    2. località spaziale. Se la cpu ha avuto accesso ad un dato, gli elementi, cui indirizzi sono vicini tenderanno ad essere richiesti entro breve tempo. 6.3. La memoria centrale La memoria centrale, anche detta memoria veloce per la rapidità con cui passa i dati alla CPU, è collocata all'interno del computer e si attiva quando questo viene acceso. Esistono vari tipi di memorie a seconda della funziona svolta e delle loro caratteristiche peculiari: ● RAM ( R andom A ccess M emory), consente l'accesso random ai dati, la lettura e la scrittura di questi. È volatile: perde tutte le informazioni quando si spegne il computer. Si distinguono due grandi categorie di memorie RAM:
      1. DRAM ( D ynamic R andom A ccess M emory) che necessita di refresh e perde le informazioni a ogni spegnimento;
      2. SRAM ( S tatic R andom A ccess M emory) che non necessita di refresh e l'informazione memorizzata è conservata finché non viene modificata attraverso un'operazione di scrittura.

La ROM ( R ead O nly M emory) è statica, inalterabile, non volatile e meno costosa della RAM. Il suo contenuto è definito in sede di fabbricazione e non è modificabile dall'utente. Lo spegnimento non altera i dati in essa contenuti. Questo tipo di memoria viene utilizzata per memorizzare i firmware come il BIOS. Altri tipi di memoria non volatile:

1. PROM , memorie ROM programmabili una sola volta; 2. EPROM , memorie ROM programmabili e cancellabili; 3. EEPROM, memorie ROM programmabili e cancellabili elettricamente; 4. memorie flash, tecnologia di EEPROM, usata in dispositivi mobili per supporto di memorizzazione non volatile. ● CACHE , memoria temporanea utilizzata per migliorare il trasferimento dei dati tra la memoria centrale e i registri della CPU. Quando il processore richiede un dato, questo viene prima ricercato nella memoria cache, se non c'è l'informazione viene recuperata dalla memoria centrale e, in parallelo, vengono aggiornati i dati della memoria cache (sram). Generalmente un elaboratore ha due livelli di cache:

  1. La cache di 1° livello, con dimensioni da 8 Kb fino a 128 kB, che funziona con la stessa capacità del processore;
  2. La cache di 2° livello, posizionata di solito in un chip diverso dal processore, con dimensione che varia tra 128 kB e 2 Mb.