S is te m i d i E la b o ra z io n e
CdL Economia InformaticaAA 2006/07 -Facoltàdi EconomiaUniversitàdi Chieti -Pescara
D o tt. F a b io F io ra v a n ti N o te in tr o d u tt iv e
L e z io n i
L ib ri d i t e s to
P ro g ra m m a
M a te ria le d id a tti c o
P a g in a w e b d e l c o rs o
P ro g ra m m a d e l c o rs o
Architetture degli elaboratori
Logica digitale e rappresentazione dei datiArchitettura di von Neumann: CPU, memoria, I/O. Fasi di esecuzione delle istruzioni.
Classificazione delle memorie e loro caratteristiche.
Sistemi operativi
Struttura dei sistemi di calcolo e dei sistemi operativiGestione dei processi: processi, threads, scheduling, sincronizzazione e deadlock.
Gestione della memoriaFile system
Sistemi di input/outputSistemi distribuitiSicurezza
Cenni su architetture, sistemi e tecnologie avanzate.
T e s ti c o n s ig lia ti
L ib ro d i t e s to
A. Silberschatz, P. Galvin, G. GagneSistemi operativi: Concetti ed esempi7a Edizione -2006 Pearson
T e s ti d i c o n s u lta z io n e
A. Tanenbaum, Architettura dei calcolatori: Unapproccio strutturale -5a Edizione -2006Pearson
I. Englander, The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach, 3rd Edition, Wiley
A rc h it e tt u re d e g li e la b o ra to ri
Principi di base
Hardware / Software
Programmi
Codifica dell’informazione
Architettura di Von Neumann
CPU
Registri, ALU, FPU, CU, CISC/RISC
RAM
BUS
Periferiche input/output
Clock
Ciclo della CPU
Assembly, linguaggio macchina e assembler
Il p ro c e s s o d i e la b o ra z io n e
input/dati
programma/istruzioni Elaboratoreoutput/risultati
•Elaboratoresvolgeunafunzionebenprecisa in manieraautomatica.
•L’automatismoavvieneattraversoilpassaggiodienergiaelettricaattraversoicomponentidel computer, circuiti, transistor, etc..
L a m a c c h in a c o m p u te r
In generale, uncomputer:
esegue operazionilogiche e aritmetiche,
ha una memoriaper conservare i dati.
Un programmacontienele informazioni relativealle operazioni daeseguire. Input MemoriaCentrale
CPU Output
Elaboratore
H a rd w a re v s . S o ft w a re
L’hardwaredenota la struttura fisica del computer, costituita di norma da componenti elettronici chesvolgono specifiche funzioni nel trattamentodell’informazione.
Il softwaredenota l’insieme delle istruzioni checonsentono all’hardware di svolgere i propri compiti.
S c h e m a d i u n s is te m a d i E la b o ra z io n e
Dati Software
Hardware Risultati •OperareconInformation Technologysignificaavereachefare con un sistemadielaborazionedelleinformazioni
L a r a p p re s e n ta z io n e d e lle in fo rm a z io n i
Tutte le informazioni sono rappresentate in formabinariaodigitaleutilizzando due soli simboli: 0ed 1.
BIT (Binary digIT): Unitàfisica di informazione chevale 0 oppure 1.
Si utilizzano i multipli del bit:
KiloKb210~ un migliaio(1024)
MegaMb220~ un milione(1024x1024)
GigaGb230~ un miliardo(1Mbx1024)
TeraTb240~ mille miliardi (1Gbx1024)
L a r a p p re s e n ta z io n e d e lle in fo rm a z io n i ( c o n t.)
L e r a g io n i d i q u e s ta s c e lta s o n o p re v a le n te m e n te d i t ip o te c n o lo g ic o :
Due possibili stati di polarizzazione di unasostanza magnetizzabile;
Passaggio/non passaggio di corrente attraversoun conduttore;
Passaggio/non passaggio della luce attraversouna fibra ottica.
C o d if ic a b in a ri a
Per poter rappresentare un numero maggiore di informazioni ènecessario utilizzare sequenzedi bit.
Utilizzando due bit si possono rappresentare quattroinformazioni diverse:
00011011
Il processo che fa corrispondere ad unainformazione una configurazione di bit prende ilnome di codifica dell’informazione.
Con k bit rappresento 2kinformazioni
S e q u e n z e d i b it
2568 1287 646 325 164 83 42 Informazionirappresentabili Numero di bit nellasequenza
Il b y te
U n g ru p p o d i 8 b it v ie n e d e n o m in a to B y te .
Corrisponde ad un carattere.
Unitàdi misura della capacitàdi memoria.
S i u til iz z a n o i m u lti p li d e l B y te :
KiloKB210~ un migliaio(1024)
MegaMB220~ un milione(1024x1024)
GigaGB230~ un miliardo(1MBx1024)
TeraTB240~ mille miliardi (1GBx1024)
R a ppr e s e nt a z ione di da ti a lf a be tic i
U n c o d ic e n u m e ric o p e r o g n i c a ra tte re
C o d ifi c h e s ta n d a rd :
ASCII, 8 bit per carattere, rappresenta 256 cararatteri.
UNICODE, 16 bit per carattere
ASCII e caratteri etnici.
C o d ifi c h e p ro p rie ta rie :
MSWindows, 16 bit per carattere
simile ad UNICODE.
S is te m a d i n u m e ra z io n e d e c im a le
L a n u m e ra z io n e d e c im a le u til iz z a u n a
notazione posizionaleb a s a ta s u 1 0 c ifr e (d a 0 a 9 ) e s u lle p o te n z e d i
10Il numero234può essere rappresentatoesplicitamente come: 2x102+3x101+4x100
S is te m a d i n u m e ra z io n e b in a ri o
Il sistema di numerazione binario utilizza unanotazione posizionalebasata su 2 cifre (0 e 1) esulle potenze di 2
Il numero1001può essere rappresentato esplicitamentecome:
10012=1x23+0x22+0x21 +1x20
=910
A rc h it e tt u ra d e i c o m p u te r
In un computer possiamo distinguere tre unitàfunzionali:
Processore
fornisce la capacitàdi elaborazione delle informazioni,
Memoria (centrale e di massa),
Dispositivi di input/output,
checomunicano attraverso un canale detto BUScostituitoda un insieme di linee elettriche digitali.
Macchina di vonNeumann
Programma memorizzato
Non c’e’differenza in memoria tra dati e istruzioni
S c he m a a bl o c c hi di un e la bor a tor e
Processore Unitàdiinput Unitàdioutput Memoria DATI
STATO
COMANDI
P ro g ra m m a e d i s tr u z io n i
Programma:
s p e c ifi c a u n iv o c a d i u n a s e rie d i o p e ra z io n i c h e l’ e la b o ra to re d e v e s v o lg e re .
E ' c o s tit u ito d a u n a s e q u e n z a o rd in a ta d i
istruzioni macchinas c rit te in
codicemacchina.Is tr u z io n i e c o d ic e m a c c h in a
Istruzione macchina:
Specifica un’istruzione elementare che il processore èin grado di svolgere.
Generalmente compostada:
Codice operazione(indica cosa fare),
Uno o due operandi(su cosa operare),
Destinazionedel risultato (dove memorizzarlo).
Codice macchina:
Codice binario usato per specificare le istruzioni macchina al processore.
Diverso per ogni processore (non esiste codiceuniversale standard).
P ro c e s s o re
Composto da blocchi con funzionalitàdiverse:
CPU (CentralProcessing Unit),unita’centrale di elaborazione
FPU (FloatingPointUnit),
Cache,
Interfacce varie.
Se integrato su un unico chip prende il nomedi microprocessore.
Cache
Cache InterfCPUFPU
T ip i d i p ro c e s s o re
O g n i p ro c e s s o re p o s s ie d e u n “ s e t” d i is tr u z io n i m a c c h in a c h e c o s tit u is c o n o i p ro g ra m m i.
U n a d is tin z io n e fo n d a m e n ta le fr a i p ro c e s s o ri è q u e lla c h e li d iff e re n z ia in :
CISC: ComplexInstructionsSet Computer.
RISC: ReducedInstructionsSet Computer.
T ip i d i p ro c e s s o re ( c o n t.)
L a d iff e re n z a è n e l s e t d i i s tr u z io n i.
I CISC hanno un linguaggio macchinaformato da un numero elevato di istruzioni, anche complesse.
Es.: Intelx86, Motorola68000.
I RISC sono dotati di istruzioni piùsemplici e in numero minore. Quelle complessevengono emulate via software (interprete)
Es.: PowerPC, Sparc.
C e n tr a l P ro c e s s in g U n it (C P U )
Svolge tutte le operazioni di:
elaborazione numerica,
controllo e coordinamento di tutte le attività.
Si suddivide in:
Unitàlogico-aritmetica (ALU): esegueistruzioniaritmetiche e logiche.
Unitàdi controllo (CU):sovrintende all’elaborazionedei datie alle operazioni di input e output.
Registri, memoria locale per memorizzare dati e lostato di avanzamento delle istruzioni
Generali o Speciali
S c h e m a d e lla C P U
ALU
RE GIS TR I
BusinternoIR
PCCU CPU
BUS Memoria
…
C o m p o n e n ti d e lla C P U
Unitàdi controllo
Unitàaritmeticologica REGISTRI
Program Counter(PC)
Program Status Word (PSW)
Registro Istruzioni (IR)
Registro Indirizzi Memoria (MAR) Registri Generali (8 o 16)
Registro Dati Memoria (MDR)
Registro di Controllo (CR) Businterno
A ri th m e tic L o g ic U n it (A L U )
Svolge tutti i calcoli logicied aritmetici(complementazione, somma intera, confronto, etc).
Opera direttamente sui registri generali.
E’costituita da circuiti elettronici in grado di eseguire la sommadi due numeri binari contenuti in due registri oppure di eseguire ilconfrontotra due numeri.
R e g is tr i
Memoria locale usata per memorizzare:
dati acquisiti dalla memoria centrale o dalla unitàdi input,
risultati delle operazioni eseguite dall’ALU.
Numero limitato: tipicamente da 8 a 256.
Unitàdi memoria estremamente veloci.
Le dimensioni di un registro sono una caratteristicafondamentale del processore: 16, 32, 64 bit.
R e g is tr i ( c o n t.)
I r e g is tr i c o n te n g o n o d a ti e d in fo rm a z io n i c h e v e n g o n o im m e d ia ta m e n te e la b o ra te .
E s is to n o d u e ti p i d i r e g is tr i:
i registri specialiutilizzati dalla CU per scopi particolari,
i registri di uso generale(registri aritmetici).
R e g is tr i s p e c ia li
Il Program Counter(PC) contiene l’indirizzo di memoria che contiene la prossima istruzioneda eseguire.
L’InstructionRegister(IR) contiene l’istruzioneattualmente in esecuzione.
Il registro di stato(PSW) contiene delleinformazioni sullo stato di esecuzione del processore.
In particolare esso può segnalare eventuali errori che possono avvenire durante l’esecuzione di unprogramma.
C o n tr o l U n it (C U )
E ' la p a rte p iù im p o rta n te d e l p ro c e s s o re :
In base:
al programmain esecuzione ed
allo stato di tutte le unità,
decide l’operazione da eseguire ed emettegli ordini relativi.
In p ra tic a , e s e g u e le is tr u z io n i m a c c h in a .
F lo a tin g P o in t U n it (F P U )
In molti elaboratori si può avere una FPU specializzata in operazioni matematichecomplesse (numeri reali).
Svolge tutte le operazioni che la ALU della CPUnon èin grado di svolgere:
Somma/sottrazione reale,
Moltiplicazione intera/reale,
Divisione,
Funzioni matematiche complesse.
Nei calcolatori di generazioni precedenti eraesterna alla CPU (coprocessorematematico).
Il c lo c k
Ogni elaboratore contiene un circuito di temporizzazione(clock) che genera un riferimentotemporale comune per tutti gli elementi del sistema.
T = periododi clock
f = frequenzadi clock ( = 1/T )
Frequenzetipiche delle ultime generazioni:
f> 1000 MHz, T< 10-9secondi.
4 Megahertz= 4 milionidiciclial secondo tT
T e m p is tic a d e lle is tr u z io n i
Un ciclo-macchinaèil tempo richiesto per svolgere un’operazione elementare.
Èun multiplo del periodo del clock.
Un’istruzione macchinaèottenuta da unasequenza di operazioni elementari.
Dunque, l’esecuzione di un’istruzione macchinarichiede un numero intero di cicli macchina, variabilea seconda del tipo di istruzione.
V e lo c it à d e l m ic ro p ro c e s s o re
L a v e lo c ità d i e la b o ra z io n e d i u n p ro c e s s o re d ip e n d e d a lla fr e q u e n z a d e l c lo c k .
I processori attuali hanno valori di frequenza di clock che varia tra gli 8 MHzed i 3000MHz.
M e m o ri a
V ie n e u til iz z a ta p e r c o n s e rv a re d a ti e p ro g ra m m i.
S i s u d d iv id e in :
Memoria di lavoro(memoria principale).
Memoria in grado di conservare dinamicamentedati e programmi che il processore stautilizzando.
RAM(RandomAccess Memory)
ROM(ReadOnlyMemory)
Memoria magazzino(memoria di massa). Organizzazione della memoria principale
La memoria èorganizzatafunzionalmente incelleindipendenti.
Ad ogni cellaèassociatounindirizzo
cioè, un numero progressivo apartire da 0. 00101101
10011001
10010110 01
2
3
4
5
6
7
8
Organizzazione della memoria principale(cont.)
O g n i l o c a z io n e h a la s te s s a d im e n s io n e
8, 16, 32, o 64 bit.
O g n i l o c a z io n e v ie n e a n c h e d e tta p
arola(
word) e c o s tit u is c e u n b lo c c o u n ic o .
L e u n ic h e o p e ra z io n i c h e s i e ffe ttu a n o s u lla m e m o ria s o n o
letturae
scrittura.U n a lo c a z io n e d i m e m o ria p u ò c o n te n e re d a ti o is tr u z io n i. In d ir iz z i d i m e m o ri a
L ’in d iri z z o d i u n a lo c a z io n e d i m e m o ria è u n n u m e ro in te ro c o d ifi c a to in b in a rio .
Ogni computer utilizza un numero di bit costante per rappresentare gli indirizzi.
M a g g io re è il n u m e ro d i b it u til iz z a ti, m a g g io re s a rà il n u m e ro d i l o c a z io n i in d iri z z a b ili:
Spazio di indirizzamento.In d ir iz z i d i m e m o ri a ( c o n t.)
S e l'e la b o ra to re u til iz z a :
16 bit per l'indirizzo, la memoria conterràfino a65.536 locazioni (cioè64 KB di memoria).
32 bit per l'indirizzo, la memoria potràcontenerefino a 4.294.967.296 locazioni (cioè4 GB di memoria).
C ic lo d e lla C P U
P ro g ra m m a e d a ti s o n o c a ric a ti in m e m o ria .
C ic lo d e lla C P U
1)
L a C U p
relevau n ’is tr u z io n e d a lla m e m o ria .
2)
L ’is tr u z io n e v ie n e d
ecodificata.
3)
L ’is tr u z io n e v ie n e e
seguita.
4)
L a C U p a s s a a ll'i s tr u z io n e s u c c e s s iv a e c io è a l p u n to 1 ).
C ic lo d e lla C P U
Il p ro c e s s o re e s e g u e in c o n tin u a z io n e il s e g u e n te c ic lo
fetch (preleva)
decode (interpreta)
execute (esegui).
preleva
interpretaesegui
C ic lo d e lla C P U
1.La CU preleval’istruzione che si trovaall’indirizzo di memoria contenuto nel PC e latrasferisce nell’IR (fase di fetch).
2.L’istruzione in IR viene decodificataed eseguita.
L’esecuzioneconsiste nell’invio da parte della CU di opportuni comandi all’unitàinteressata:
Calcoli ALU,
Acquisizione/Stampa Unitàdi I/O,
Trasferimento dati Memoria.
3.La CU incrementaopportunamente il PC ed ilprocesso si ripete passando all’istruzionesuccessiva in memoria (si torna alpasso 1).
C ic lo d e lla C P U
C a s i p a rti c o la ri
Avvio
Quale istruzione eseguire per prima?
Assumiamo PC=1
Arresto
Istruzione HALT (o HLT) per arrestare il ciclo
B u s d i s is te m a
C o n n e tte le v a rie u n ità e p e rm e tte lo ro d i c o m u n ic a re
D is tin z io n e tr a
master(controllore)
slave (controllato)
M o lte p lic i (s o tto )b u s :
bus di dati (trasferisce dati)
bus di indirizzi (trasferisce indirizzi)
bus di controlli (trasferisce comandi della CPU elo stato delle unità)
D is p o s it iv i d i I n p u t/Ou tp u t
I dispositivi di I/O, detti anche periferiche, permettono di realizzare l’interazioneuomo/macchina.
La loro funzione principale èquella di consentirel’ingresso e l’uscita delle informazioni elaborate.
Il controllo èeseguito da un software di gestione, detto “driver”,che ne gestisce le funzionalità.
D is p o s it iv i d i I /O
Terminali.
Tastiera.
Video.
Dispositivi di puntamento.
Mouse.
Trackball.
Schermosensibile (Touch Screen).
Stampanti.
Ad aghi.
Ink jet.
Laser.
Scanner, modem, plotter, scheda audio…
In te rf a c c e d is p o s it iv i I /O
P e r c o m u n ic a re c o n le p e rif e ric h e s i u s a n o p ro c e s s o ri d e d ic a ti:
interfacceL e in te rfa c c e s o n o d o ta te d i u n ita ’ d i c o n tr o llo p ro p rie e d i r e g is tr i
Registro dati della periferica (PDR)
Registro comando della periferica (PCR)
Registro di stato della periferica (PSR)
A c c e s s o d ir e tt o a lla m e m o ri a
D ire c t m e m o ry a c c e s s ( D M A ) p e rm e tte a d a lc u n i d is p o s iti v i d i a c c e d e re in le ttu ra /s c rit tu ra a lla m e m o ria d i s is te m a s e n z a u s a re la C P U .
Molto piùefficiente
R a n d o m A c c e s s M e m o ry (R A M )
È u n a m e m o ria v
olatilesenza alimentazione i dati vengono persi
Il
tempo di accessoè il te m p o n e c e s s a rio p e r l e g g e re o s c riv e re l’in fo rm a z io n e in u n a
parola.Accesso casuale
: o g n i c e lla h a lo s te s s o te m p o d i a c c e s s o d e lle a ltr e (in d ip e n d e n te m e n te d a ll’i n d iri z z o ). C a ra tt e ri s tic h e d e lla R A M
La dimensionedi una RAM varia a secondadel tipo di computer e viene espressa in MB.
Le dimensioni tipiche della RAM di un Personalcomputervanno da 256MB ad alcuni GB.
La RAM di un Serverègeneralmente maggiore
Veloce.
Il tempo di accesso èdell'ordine di poche decine di nano-secondi (10-9sec).
Costosa (~10EUROcent /MB).
R e a d On ly M e m o ry ( R O M )
Èuna memoria di sola letturache viene scrittadirettamente dal produttore del computer su circuitiappositi.
Vieneutilizzata per contenere le informazioni di inizializzazione usate ogni volta che si accendel'elaboratore.
Le istruzionicontenutenellaROM deiPC formanoilBIOS (BasicInput/Output System)
Diagnostica iniziale
Caricamento sistema operativo
Interfaccia software verso l’hardware e le periferiche I/O
EEPROM (Electrically Erasable and ProgrammableROM)
EPROM (Erasable Programmable Read Only Memory) ultravioletti
In iz ia liz z a z io n e
C o s a s u c c e d e a ll’a c c e n s io n e d i u n c a lc o la to re ?
N e l P C v ie n e fo rz a to l’ in d iri z z o d e lla c e lla d i m e m o ria o v e in iz ia il p rim o p ro g ra m m a d a e s e g u ire ( p ro g ra m m a d i
bootstrap).
Questo programma iniziale risiede in ROM.
Non èmodificabile!!!!