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.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
CONTROL UNIT
È la aprte del processore che coordina le attività del processore, permette l’esecuzione dei programmi
La control unit ripete ciclicamente 3 fasi Ciclo di fetch-decode-execute (o ciclo della machcina)
Fetch: recupero della prossima istruzione da eseguire
Decode: decodifica, cerca di capire cosa deve fare
Execute: esecuzione dell’operazione
L’eseguzione comporta l’invio di dati e comandi opportuni all’unità interssata
Per i calcoli viene coinvolta l’arithmetic logic unit, per lettura/scrittura dei dati viene coinvolta la memoria
La frequenza con cui è eseguito il ciclo di fetch-decode-execute è scandita dal clock (orologio interno)
Ad ogni impulso di clock la CU esegue un ciclo
La velocità di elaborazione di una CPU dipende dalla frequenza del suo clock
Arithmetic logic unit (alu)
-Esegue operazioni aritmetiche e logiche
-preleva gli operandi dai registri e deposita il risultato delle operazioni in uno (o più) registri.
Registri
I registri sono un'altra componente della cpu e sono spazi di archiviazione.
-Sono piccole celle di memoria con tempi di accesso molto più bassi rispetto alla memoria primaria.
-Mantengono le informazioni necessarie per eseguire l’istruzione corrente
-Hanno dimensioni di 16,32 o 64 bit
- si dividono in registri:
● Generali: sono registri ad uno generale, servono a memorizzare temporaneamente informazioni
elaborate dalla cpu.
Contengono gli operandi e i risultati delle istruzioni in esecuzione.
In alcune architetture, alcuni registri hanno funzioni privilegiate ad es. l’accumulatore in genere
contiene il risultato delle operazioni
● Speciali (pc, ir):
● Program Counter: è un registro speciale che conserva l’indirizzo in memoria principale della
prossima istruzione da seguire. Va a prendere dalla memoria centrale (ram) la prossima istruzione
da eseguire e la manda in esecuzione
La ram è grande quindi PC porta info alla Control Unit
Ad ogni giro, quando c’è la fetch, la Control Unit va a vedere cosa c’è nella program counter.
PC elabora il flusso di informazioni da e verso la memoria centrale, va a prelevare la sequenza di bit
che ci sono in quella locazione di memoria, la porta al suo interno ed esegue l’operazione
Da qualche parte al suo interno Instruction register
● Instruction register (IR)
-Contiene l’istruzione attualmente in esecuzione
-è un registro speciale
Esempio di ciclo fetch-decode-execute
Programma viene caricato in RAM => viene trasferito dal disco alla ram
Codice macchina del programma viene copiato in memoria ram
Nella CPU, nel momento in cui il programma viene caricato in memoria, il PC assume il valore di indirizzo di
caricamento del programma. Viene tenuta traccia nel PC di qual è il punto della memoria in cui il
programma è stato messo.
CPU fa la fetch, va a vedere qual è la prossima istruzione da eseguire (quella riferita dal PC), prende
l’istruzione e la mette nel Instruction register
Il pc viene incrementato unitariamente (prende l’istruzione dopo)
Avviene la fase di decode control Unit cerca di capire l’istruzione, se è un operazione aritmetica usa
l’arithmetic logic unit che poi manda il risultato all’accumulatore
Memoria secondaria
È una memoria aggiuntiva rispetto alla ram che serve a superare i limiti della ram stessa. I limiti della ram
dipendono dal fatto che è volatile e poco capiente perché costosa.
Le applicazioni sono installate nella memoria secondaria, anche il sistema operativo.
- è molto più ampia
-costa meno di molti altri componenti
-non volatile
-lenta
La CPU può eseguire (ed elaborare) esclusivamente programmi ( e dati) che risiedono in memoria
principale.
I programmi e i dati risiedono in memoria secondaria perciò devono essere copiati in memoria principale
Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria in RAM.
L’operazione si chiama loading o caricamento
La memoria secondaria è composta da due elementi:
● Supporti di memorizzazione: componenti fisici in cui vengono immagazzinati i dati
● Dispositivi di memorizzazione: leggono/scrivono dati dal/sul supporto di memorizzazione.
La memoria secondaria ha tecnologie diverse:
- Magnetica
- Ottica
- Magnetico-ottica
- Flash (o allo stato solido)
Fanno riferimento a fenomeni fisici differenti, per ciascuna abbiamo un fenomeno fisico che viene
implementato per sfruttare l’idea dello 0 e dell’1
Gerarchia di memoria
Ordina le memorie in base ai parametri che sono legati tra loro: dimensioni, capacità, velocità e costo e
tempo di accesso
Memorie sono in ordine decrescente per quanto concerne velocità e costo( in alto i più veloci e
costosi),in ordine crescente per dimensioni e capacità
Il bus
Serve a collegare tra loro vari componenti. È una linea di comunicazione per la trasmissione di informazioni
tra i vari componenti del sistema
Fisicamente è un insieme di collegamenti in rame.
Tutti i componenti sono collegati al bus.
IL SOFTWARE
L’hardware da solo e soltanto un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento
dell’elaboratore. Occorre utilizzare un software: un insieme di programmi che permettono di trasformare
un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura
I computer sono programmabili: possono svolgere compiti diversi in base a istruzioni contenute nei
programmi
Il sistema operativo
Il sistema operativo è un insieme di programmi che interagiscono e cooperano tra di loro per:
-gestire efficacemente il computer e le sue periferiche
-creare un ambiente virtuale per facilitare l’interazione uomo-macchina.
Esempio: stampa di un file che si chiama ‘documento’. A livello fisico questa operazione è complessa e
richiede operazioni coordinate dalla cpu. Il sistema operativo fornisce all’utente un comando di stampa, per
l’utente quindi non c’è nulla di complesso.
Il sistema operativo esegue un comando seguendo i seguenti passi:
1. Verifica se si tratta di un programma valido
2. Lo traduce per la macchina fisica, lo trasforma in un comando effettivo, in una serie di operazioni
sulla macchina fisica
3. Esegue il comando e una volta concluso fornisce un riscontro all’utente e si pone in attesa di un
nuovo comando da parte dell’utente
Funzioni svolte dal sistema operativo
● Accensione e configurazione della macchina (bootstrap)
● Gestione del processore
● Gestione della memoria (principale e virtuale)
● Linguaggio ad alto livello per interazione con l’utente, è un linguaggio virtuale che fa da tramite tra
utente e macchina
● Gestione e accesso alle informazioni su memoria secondaria (file system)
● Gestione e uso ottimale delle risorse di input/output (dischi, stampanti...)
● Fornisce un supporto per la comunicazione tra elaboratori
IL BOOTSTRAP (accensione e configurazione macchina)
È l’avvio dell’elaboratore
Primo problema: -la CPU esegue esclusivamente programmi in memoria principale
- RAM volatile vuota quando si accende il computer
Come fare?
Dove sta il problema operativo?
Prima soluzione: -mettere i programmi e il sistema operativo in memoria secondaria in modo da averli a
disposizione appena si accende il computer
Secondo problema: dobbiamo caricarli dalla memoria secondaria alla ram
Pe ricaricare i programmi da memoria secondaria usiamo il file system (cioè il sistema operativo)
MA il sistema operativo per poter andare in esecuzione deve stare in ram, la ram è volatile quindi è vuota
quando si accende il computer
Come fare?
Seconda soluzione: sfruttiamo la ROM che si occupa proprio dell’avvio della macchina, è una memoria non
modificabile.
Sulla rom si trova un programma che si chiama BIOS con il compito di caricare una parte del sistema
operativo dalla memoria secondaria alla ram
Quando arriva il pprimo impulso elettrico alla CPU, la CPU va a prendere il BIOS che sta nella ROM e lo
esegue. Esegue il BIOS, quindi esegue operazioni che permettono di prendere dalla memoria secondari ail
sistema operativo. Il trasferimento del sistema operativo avviene per effetto del bios.
A questo punto CPU è in grado di eseguire istruzioni presenti nella ram, caricherà il resto del sistema
operativo e potrà eseguire programmi.
Perché non si memorizza direttamente il sistema operativo nella ROM? Il sistema operativo sta sul disco, va
portato dal disco alla ram, per farlo usiamo la rom. Il sistema operativo non può stare sulla rom perché la
rom è di sola lettura.
Dovremmo costruire una rom già con le istruzioni del sistema operativo. Non sarebbe aggiornabile.
Sulla ROM ha senso memorizzarvi esclusivamente programmi/dati che non è necessario cambiare.
GESTIONE DEL PROCESSORE
Multitasking: i moderni sistemi operativi sono multitasking, cioè è possibile eseguire più programmi allo
stesso tempo, contemporaneamente.
Problema: spesso gli elaboratori hanno una unica CPU. Come possono eseguire più programmi
contemporaneamente?
Soluzione: il sistema operativo alterna i programmi assegnando la CPU a turno. In ogni istante un solo
programma è eseguito dalla CPU. Se l’alternanza è frequente si ha l’impressione che i programmi vengano
eseguiti contemporaneamente.
PROCESSI
Sono programmi in esecuzione
Un programma può trovarsi in uno dei 3 stati:
-in esecuzione: in esecuzione nella CPU (Può esserci massimo in processo in esecuzione per ogni cpu)
-in attesa: attende che un’operazione di I/O termini (o qualche altro evento esterno si verifichi)
-pronto: può andare in esecuzione, ma la CPU è occupata ad eseguire un altro processo
I programmi vanno eseguiti in ordine, l’ordine può essere in base all’ordine con cui arrivano le richieste o in
base prioritaria (i programmi più importanti vengono eseguiti per primi).
Il sistema operativo ha il compito di scegliere quale tra i programmi pronti mandare in esecuzione in modo
da usare l’elaboratore in modo efficiente (no sprechi) ed efficace (tempi di attesa limitati)
Il criterio per la scelta dei programmi da eseguire deve essere equo e snello, veloce, efficiente. Non deve far
sprecare tempo e risorse.
GESTIONE DELLA MEMORIA
Un programma per essere eseguito deve stare nella ram, noi mandiamo in esecuzione più programmi
contemporaneamente. La ram è limitata => il sistema operativo gestisce una memoria virtuale, è una
memoria non fisica, è un modo per gestire la memoria predisposto dal sistema operativo per dare
l