Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Leggi X
Leggi Y
Calcola Somma X+Y
Scrivi Somma
Fine
Linguaggi di programmazione
o Strumenti per la comunicazione uomomacchina. Consentono di esprimere e
rappresentare programmi comprensibili ed eseguibili da una macchina. Sono
simili ai linguaggi naturali ma senza ambiguità. Come i linguaggi naturali i
linguaggi di programmazione 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).
I linguaggi di programmazione si dividono in:
Linguaggio macchina
Linguaggi di basso livello
Linguaggi di alto livello
Il linguaggio macchina è il linguaggio compreso dalla CPU. Essendo composto
da istruzioni formate da sequenze di Bit è difficile da usare. Un programma
scritto in un linguaggio macchina per un’architettura non funziona in un’altra.
Utilizzare questo tipo di linguaggio ha un vantaggio quello della velocità di
esecuzione: Codice macchinaletto dalla CPUimmediatamente eseguito; però
possiede anche uno svantaggio quello di essere poco comprensibile dall’uomo
poiché composto da sequenze di bit.
Il linguaggio di basso livello (assembly): Per evitare di scrivere programmi
direttamente in linguaggio macchina sono stati introdotti i linguaggi di basso
livello (assembly) che usano un linguaggio elementare per rappresentare
istruzioni in linguaggio macchina. Un compilatore noto come assemblatore
viene utilizzato per convertire le istruzioni in linguaggio assembly in codice
macchina o codice oggetto.
Il linguaggio ad alto livello: linguaggi più vicini ai linguaggi naturali.
Richiedono un compilatore o un interprete in grado di tradurre le istruzioni in
linguaggio macchina. Esempi: Fortran, C, Java; PHP etc...
Architettura di un elaboratore
CPU (Central Processing Unit)
o Questa svolge le elaborazioni e il trasferimento dati, cioè esegue i
programmi
Unita di controllo (CU): governa e controlla la stessa CPU
Unità Aritmetico-Logica (ALU): esegue i calcoli aritmetici e logici
Registri: sono celle di memoria veloce, utili per memorizzare dati e
istruzioni.
CU (Control Unit): Coordina tutte le azioni necessarie ad eseguire delle
o istruzioni. Cosa fa la CU:
1.Prende in carico le istruzioni Fase di Fetch
2.Le Interpreta Fase di Decode
3. Le esegue Fase di execute
Questo ciclo viene proprio chiamato ciclo di FetchDecodeExecute:
Fetch: La CU preleva un’istruzione dalla memoria centrale e la
sposta all’interno della CPU.
Decode: La CU interpreta l’istruzione così da capirla e poter
restituire un risultato.
Execute: La CU esegue l’istruzione all’interno della CPU
coinvolgendo sia l’ALU che i registri
Memoria Centrale:
o Con apposite operazioni di lettura o scrittura consente al processore di
elaborare i dati.
RAM (Random Access Memory) ossia memoria ad accesso casuale
questo vuol dire che le informazioni all’interno della RAM possono essere
utilizzate senza seguirne un ordine. È una memoria volatile ed è usata
per memorizzare dati e programmi in modo non permanente una volta
spento il computer questi vengono cancellati.
ROM (Read Only Memory) ossia memoria di sola lettura; è una
memoria non volatile e viene utilizzata per memorizzare programmi di
sistema.
Cache: memoria di appoggio del processore che serve per evitare che
ogni volta il nostro processore interroghi la RAM; perciò, in questa
memoria vengono salvati dei dati che aiutano a velocizzare i processi.
Memoria Secondaria (o di Massa): Memorizzano grandi quantità di informazioni,
o accesso meno rapido rispetto al Memoria Centrale. Di seguito alcuni esempi:
Disco rigido, nastri, CD riscrivibili, USB, Memory Card, Cloud (Da Remoto)
Dispositivi di ingresso-uscita (periferiche): Sono usate per far comunicare il
o calcolatore con l’esterno. Periferiche di input da utentea computer/ Periferiche
di output da computer a utente. Esempi di periferiche input: tastiera, mouse,
microfono, touchpad, scanner, joypad. Esempi periferiche di output: stampante,
monitor, casse acustiche
I monitor odierni touchscreen possono essere considerati sia periferiche di input
che di output poiché nel momento in cui io schiaccio sullo schermo do un input
quando il monitor poi mi restituisce qualcosa ricevo un output
Il Bus: è un canale fisico che mette in comunicazione le varie componenti del
o computer/calcolatore
Control bus (Bus di controllo): è il bus sul quale sono inviati i
comandi che la CPU impartisce agli altri componenti di sistema.
Address bus (Bus Indirizzi): è il bus sul quale viene indicato
l’indirizzo dell’unità interessata all’operazione, esempio la cella di
memoria.
Data bus (Bus Dati): destinato al trasferimento dei dati tra
un’unità che trasmette e un’unità che riceve.
L’Hardware: CPU e Bus
I primi computer erano dei macchinari molto ingombranti, con migliaia di valvole da
questa tipologia nasce il termine Hardware (Ferraglia) ossia la parte tangibile del
nostro computer. Per questo motivo l’Hardware comprende tutte le componenti
elettroniche, elettriche, meccaniche e ottiche ecc.
All’ interno di un qualsiasi PC l’hardware va a svolgere le stesse funzioni di base
ovvero: Acquisire informazioni dall’esterno (Input) Dispositivi di Input
Elaborare informazioni Unità Aritmetico-Logica (ALU)
Memorizzare informazioniMemoria
Fornire informazioni all’esterno (output)Dispositivi di output
Controlla l’esecuzione nel tempo di tutte le funzioniUnità di controllo CU
L’ALU e CU costituiscono insieme l’Unità Centrale di Elaborazione (CPU)
CPU (Central Processing Unit): È l’unità più importante del sistema di
o elaborazione, è detta processore. Essa svolge le principali operazioni di calcolo
e di controllo del sistema. La velocità di elaborazione di questo componente è
misurata in Hertz.
Scheda Madre (Motherboard): è una componente fondamentale perché sopra di
o essa vengono montate le componenti elettroniche come anche la CPU. La
scheda madre è una scheda elettronica a circuito stampato dove viene inserita
la CPU e alla quale vengono collegati tutti i componenti del computer.
La CPU è composta da:
• una unità di controllo (CU) Controlla e gestisce tutte le altre unità del calcolatore
• una unità aritmetico-logica (ALU) Esegue le operazioni aritmetiche, logiche e di
confronto
• alcuni registri: (IR, PC, SR, Accumulatore)permettono lo scambio tra le varie unità e
la memorizzazione delle informazioni.
Registri:
o Sono delle particolari locazioni di memoria interne alla CPU a cui è possibile
accedere molto più rapidamente rispetto alla memoria (poiché è una
componente esterna). Il valore complessivo di tutti i registri della CPU
costituisce lo stato in cui essa si trova in quel determinato momento
Registro delle Istruzioni (IR-Instruction Register): contiene
l’istruzione da eseguire quindi va a memorizzare per la CPU quale
sarà l’istruzione che deve andare ad eseguire.
Contatore di Programma (PC-Programm Counter): contiene la
prossima istruzione da eseguire.
Registro di Stato (SR-Status Register): contiene le
informazioni relative agli stati che la CPU può attraversare
Unità di Controllo (CU): è un dispositivo che controlla e gestisce tutte le altre
o unità del calcolatore e lo fa durante l’esecuzione di un programma. Essa è
formata da: Un decodificatore in grado di interpretare il codice
dell’istruzione che deve essere eseguita
Una rete di controllo, che genera una successione di
comandi relativi all’istruzione considerata in base a quello
che ha prodotto in uscita il decodificatore
Ciclo di esecuzione:
o Per eseguire un’istruzione, scritta in linguaggio macchina, la CPU esegue un
insieme di operazioni specifiche. L’elaborazione delle istruzioni di un
programma consiste nell’esecuzione, da parte dell’unità di controllo, di una
precisa successione di passi elementari detto Ciclo di esecuzione delle
istruzioni.
I passi che la CU esegue sono:
1. Prelevamento dalla memoria centrale dell’istruzione da eseguire
(Fase di Fetch)
2. Interpretazione dell’istruzione che coinvolge il decodificatore
(Fase di Decode)
3. Esecuzione dell’istruzione (Fase di Execute)
Fetch
Decode
Execute
Un ciclo di esecuzione delle istruzioni, ovvero una sequenza di fase fetch, decode ed
execute, è eseguito in un Ciclo di CLOCK ossia in un’unità di tempo che va a scandire
tutte quante le azioni.
Un clock è un segnale periodico che viene utilizzato per sincronizzare il
funzionamento dei dispositivi elettronici digitali. Un ciclo di clock invece è il tempo
che trascorre tra l’esecuzione di due colpi di clock successivi. La frequenza di clock
è invece il numero di colpi di clock che vengono eseguiti in una determinata unità di
tempo. L’unità di misura del clock è l’hertz, ovvero il numero di cicli di clock eseguiti
in un secondo. I clock in genere sono unità molto veloci e per questo necessitano di
multipli: Kilohertz (Khz): mille cicli al secondo;
Megahertz (Mhz): un milione di cicli al secondo
Gigahertz (Ghz): un miliardo di cicli al secondo
ALU (Arithmetic Logic Unit):
o è la componente del microprocessore incaricata all’ esecuzione di calcoli
matematici
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
Per poter sviluppare le sue funzioni l’ALU si avvale di:
Una rete logica costituita da un insieme di circuiti elettroni
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.
In particolare, l’ALU esegue:
Operazioni Aritmetiche: Addizione, sottrazione, moltiplicazione e
div