17/10/19 1
Fondamenti di Informatica
Prof. Fenza Giuseppe
Fondamenti di
Informatica
Prof. Fenza Giuseppe
Riepilogo
Argomenti Principali
• Architettura di un Computer
– CPU
– Bus
– Memorie
– Periferiche
Riepilogo
• CPU (ALU, CU)
• REGISTRI
• Gerarchia delle Memorie
– Memoria Centrale
– Memoria Virtuale
– Memoria Cache
• BUS
• Memoria secondaria
• Periferiche di Input/Output
I tipi di bus
• Bus,
di sistema
oppurelocale
= connessione fisica tra CPU e le altre componenti del computer; trasporta i dati da un dispositivo all'altro.• Si possono distinguere:
– bus dei dati (data bus): è di tipo bidirezionale (comunicazione cpu > dispositivi, dispositivi > cpu) e su di esso viaggiano dati ed istruzioni;
– bus degli indirizzi ( address bus ): è di tipo unidirezionale (comunicazione cpu > memoria centrale) e serve alla cpu per indicare alla memoria centrale le locazioni interessate dalle operazioni;
La macchina a registri a programma
memorizzato
– unità centrale di elaborazione (CPU – Central Processing Unit)
• esegue istruzioni per l’elaborazione dei dati
• svolge anche funzioni di controllo memoria centrale
– Memoria
• memorizza e fornisce l’accesso a dati e programmi in esecuzione
– interfacce di ingresso e uscita
• componenti di collegamento con le periferiche del calcolatore
– bus
• svolge funzioni di trasferimento di dati e di informazioni di controllo tra le varie componenti funzionali
La macchina di Von Neumann è composta da 4 tipi di componenti funzionali:
Il processore
• C.P.U. o unità centrale di elaborazione o
Processore, è un circuito integrato (Chip), che
effettua l’elaborazione vera e propria dei dati,
delle operazioni di calcolo e di controllo.
• Sulla superficie della CPU sono presenti:
– Miliardi di piccoli interruttori elettronici
miniaturizzati, di tipo acceso/spento, i transistor, – Altre componenti elettriche.
Coprocessori
• La CPU principale “delega” ai processori specializzati (Coprocessori) il trattamento di particolari tipologie di dati (es. filmati o suoni).
– Un coprocessore è un processore “dedicato” che, sotto il controllo della CPU e del Sistema Operativo svolge elaborazioni specialistiche che richiederebbero alla CPU un notevole dispendio di tempo
• Processore scheda video • Processore scheda audio
Processori Paralleli
• Più processori che collaborano, paritariamente, all’esecuzione di un programma.
– I processori possono cooperare
• Come in una catena di montaggio
• Processando contemporaneamente parti
diverse di una stesso dato (nelle previsioni del
tempo, ad esempio, ogni processore elabora una specifica zona geografica)
La CPU: Miglioramenti
Migliorare la velocità
• Una CPU con un clock alto è sicuramente veloce
• Attenzione:
– La velocità dipende anche, anzi soprattutto, dalla
velocità delle singole istruzioni che
compongono il suo insieme di istruzioni…
– ... che dipende dal numero di passi elementari
che le singole istruzioni devono effettuare per
Unità Centrale di Elaborazione (Central Processing Unit, CPU) e collegamento
con le altre unità funzionali.
La CPU è fisicamente realizzata sotto forma di microprocessore. clock
• PC (Program Counter): registro contatore delle istruzioni, contiene l’indirizzo della prossima istruzione da eseguire
• IR (Instruction Register): registro delle istruzioni, contiene l’istruzione che deve essere eseguita (codificata)
• MAR (Memory Address Register): registro di indirizzamento della memoria, contiene l’indirizzo della cella di memoria che deve essere acceduta o memorizzata
• MDR (Memory Data Register): registro dati di memoria, dato che è stato prelevato dalla memoria o che deve essere memorizzato
• PSW (Processor Status Word): parola di stato del processore; contiene informazioni, opportunamente codificate, circa l’esito dell’ultima istruzione che è stata eseguita
IL CICLO fetch/ decode / execute
14
1) FASE DI FETCH: si accede alla prossima istruzione (puntata da PC) e la si
2) FASE DI DECODE: si decodifica il tipo dell’istruzione in base al suo OpCode,
si individuano i dati usati dall’istruzione, e li si trasferisce nei registri opportuni
3) FASE DI EXECUTE: si esegue l’istruzione
L’esecuzione di un programma avviene eseguendo ordinatamente le istruzioni del programma, svolgendo ripetutamente il ciclo fetch-decode-execute
Principio di Località
• Località spaziale: quando si accede all’indirizzo A,
è molto probabile che gli accessi successivi
richiedano celle vicine ad A.
– le istruzioni vengono in genere lette da locazioni consecutive della memoria;
– gli accessi a vettori o a strutture dati sono “vicini”.
• Località temporale: quando si accede all’indirizzo
A, è molto probabile che negli accessi successivi si
richieda di nuovo la cella A.
– cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoria;
– istruzioni vicine tendono ad utilizzare le stesse variabili.
Memoria Cache
• Procedimento:
– Si cerca se il dato /istruzione è presente nella cache e se c’è lo si usa (Cache Hit)
– Se invece non c’è (Cache Miss) lo si prende dalla RAM e lo si copia nella cache: la prossima volta verrà ritrovato nella cache
Memoria Virtuale e Swapping
• La RAM può saturarsi, soprattutto se sono – in esecuzione molti programmi
– aperti documenti molto grandi
• Quando la RAM è satura e l’utente vuole aprire un nuovo programma o un nuovo documento
– Il SO può:
• Impedire l’apertura del documento o del programma • Fare spazio in memoria
– I SO
• Di vecchia generazione adottavano la prima soluzione
Funzionamento
della Memoria Virtuale
• Il SO per fare spazio all’interno della RAM sposta dati e/o programmi
– dalla RAM – al Disco Fisso
• Questa zona del disco è detta “area di SWAP”, o file di swapping
• La memoria virtuale rallenta l'esecuzione dei programmi, ma
I diversi supporti
• tipologie di Memorie di massa: • MAGNETICHE
• OTTICHE
Modalità di Accesso ai Dati
• Accesso sequenziale
: prima di poter leggere una cella, ènecessario leggere quelle che la precedono (es. i nastri magnetici).
• Accesso casuale
: di accedere direttamente a qualunqueindirizzo di memoria ma con lo stesso tempo d'accesso (es. la memoria centrale).
• Accesso diretto o misto
: La memoria ad accesso diretto,anche chiamata memoria ad accesso misto, è una tipologia di memoria informatica caratterizzata dal permettere l'accesso diretto a qualunque indirizzo di memoria con tempo di accesso variante e dipendente dall'indirizzo di memoria a cui è
avvenuto l'accesso precedente. (es. i dischi magnetici).
• Accesso associativo
: l’accesso a una cella non è guidatodal suo indirizzo ma dal suo contenuto, che viene ricercato in parallelo su più celle (es. le memorie cache)
Argomenti Principali
• Sistema Operativo
– Gestione della Memoria
– Gestione dei Processi
– Gestione del File System
– Gestione I/O
Le funzioni principali del S.O.
• Gestisce l’interazione tra utente e computer. Ogni operazione
dell’utente viene intercettata dal S.O.
– direttamente quando l’utente con dei comandi esegue operazioni
predefinite (es: cancellare un documento, …)
– indirettamente quando tramite programmi applicativi (es:
stampa documento tramite word, …)
• Gestisce le risorse hardware
– Controlla, ottimizza l’uso e coordina la comunicazione tra le
risorse hardware del computer.
• Gestisce le risorse software
– Pilota e controlla l’esecuzione degli altri programmi
– Assegna le risorse ai programmi applicativi e ne controlla
Le interfacce Grafiche Utente (GUI)
• Primi anni ’80 comparvero le prime interfacce Grafiche
(sviluppate da Xerox e Apple)
• GUI (Graphic User Interface, Interfaccia Grafica Utente)
basate sulla Metafora della Scrivania
– Il video è una specie di scrivania (virtuale), il Desktop – L'utente comunica con il PC tramite mouse, e
• icone • Finestre
• menu a discesa che semplificano la scelta dei comandi. • Le GUI utilizzano la tecnologia WYSIWYG (What you see
is what you get). I documenti cioè vengono visualizzati così
KERNEL
Struttura del Sistema Operativo
(cont.)
Gestore dei Processi Gestore della Memoria Centrale Gestore degli I/O Gestore del File System
La Gestione dei Processi
• Un programma in esecuzione è anche detto processo – Programma = lista di istruzioni = nozione statica
Stato di un processo (1)
• In esecuzione: assegnato al
processore ed eseguito da esso
• Pronto: può andare in esecuzione, se il
gestore dei processi lo decide
• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto
- Fine quanto di tempo - Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione - Abort per errore
Allocazione Contigua
• Partizioni fisse
– Frammentazione Interna
– Frammentazione Esterna
• Partizioni variabili/dinamiche
– Frammentazione Esterna
MEMORIA Processo P
Allocazione Contigua
Sistema Operativo Processo Q Processo R Processo S MEMORIA Sistema Operativo Processo P Processo Q Processo R Processo S (1) Processo S (2)Frammentazione Esterna
Cartelle o Directory
• Per rendere più agevole il ritrovamento dei files, il disco è diviso
in cartelle (chiamate directory)
– Una directory è un contenitore logico che, a sua volta, può
contenere altre cartelle o semplici files
– Una directory ha un nome che la contraddistingue dalle altre directory
• La maggior parte dei sistemi operativi adotta un file system
gerarchico: le cartelle sono strutturate ad albero, la cui radice è detta directory principale o ROOT
Master File Table (MFT)
• C'è un record nella MFT per ogni file sul disco, in cui troviamo le
seguenti informazioni:
– Nome lungo del file. – Nome in formato 8.3. – numero del file.
– Dimensioni dei file.
– Data e ora di creazione / modifica / accesso. – Attributi del file.
– I diritti di accesso
La Gestione delle Periferiche di I/O
(Cont.)
• Una caratteristica comune a tutti i dispositivi è quella di operare in
modo asincrono rispetto al processore
– Es.: Tastiera
• Sono pertanto necessarie delle forme di sincronizzazione tra i
dispositivi e il processore
– Un dispositivo di input deve avvertire il processore quando un
dato di input è disponibile
– Un dispositivo di output deve avvertire il processore quando ha
terminato di produrre dati in uscita
– I dispositivi di Input/Output inviano al processore un segnale,
detto interrupt, per richiedere l'attenzione del processore stesso