Anteprima
Vedrai una selezione di 9 pagine su 38
Teoria python Pag. 1 Teoria python Pag. 2
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 6
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 11
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 16
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 21
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 26
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 31
Anteprima di 9 pagg. su 38.
Scarica il documento per vederlo tutto.
Teoria python Pag. 36
1 su 38
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

MEMORIA PRINCIPALE

È una composizione di elementi, ciascuno capace di memorizzare un singolo bit, raggruppati in

word di dimensione fissata, la memoria è RAM(Random Access Memory), cioè è possibile accedere

ad ogni indirizzo in tempo costante. La memoria contiene sia i dati che le istruzioni che

compongono i programmi; il significato di una data sequenza di bit dipende da come viene

interpretato dalla CPU.

Il trasferimento di dati tra CPU e memoria avviene tramite un apposito bus, spesso diviso in: bus

dati e bus di indirizzi.

CPU

è il cervello dell’architettura di Von NEUMANN, si occupa di decodificare ed eseguire le istruzioni e

di coordinare tutte le componenti. La CPU interagisce con la memoria e con i dispositivi input/

output

ALU

Fa da calcolatrice. Ha 2 set di ingressi che rappresentano 2 operandi in codifica binaria, e un set di

uscita. Sa fare tutte le operazioni, i confronti fra numeri e sa utilizzare i postulati logici

UNITÀ DI CONTROLLO

La CU decodifica le istruzioni e coordina le componenti per determinarne l’esecuzione. In ingresso

riceve i bit dell’istruzione da eseguire, codifica in linguaggio macchina. Invia in uscita un insieme di

segnali di controllo verso le altre componenti e anche dati estratti dall’istruzione

REGISTRI

Memorizzano temporaneamente dati e istruzioni, agevolandone il passaggio da un componente

all’altro. Un bit di controllo determina la modalità di:

• lettura, in cui l’output è il dato memorizzato

• Scrittura, in cui il dato memorizzato viene sostituto dai dati in ingresso

Instruction Register (IR): memorizza i bit che codificano l’istruzione in corso di esecuzione

Program Counter (PC): contiene l’indirizzo in memoria della prossima istruzione da eseguire

Memory Buffer Register (MBR): mantiene temporaneamente i dati scambiati con la memoria

Memory Address Register (MAR): memorizza l’indirizzo in memoria cui fare accesso per leggere e

scrivere i dati

INPUT/OUTPUT

interfacciano il sistema al mondo esterno condendo il caricamento di dati e programmi e il controllo

di dispositivi di output. La comunicazione tra CPU e I/O avviene in modo analogo all’accesso in

memoria; la CPU legge e scrive dati tramite apposite porte; in alcuni sistemi alle porte viene

assegnato un indirizzo

ISTRUZIONI

L’instruction set è l’insieme delle istruzioni eseguibili da parte di un determinato processore,

comprende: spostamento dati; trasformazione dati; controllo di programma.

Il codice di ciascuna istruzione deve specificare: l’operazione da eseguire; gli operandi; la

destinazione; come determinare l’indirizzo dell’istruzione successiva

INDIRIZZAMENTO

Per specificare gli operandi e destinazione, le istruzioni possono fare uso di indirizzamento:

implicito; immediato; diretto; indiretto; indicizzato.

La codifica del contenuto delle locazioni di memoria non dipende dagli indirizzi e neppure dalla

specifica sequenza di bit memorizzata.

ESECUZIONE DELLE ISTRUZIONI

L’esecuzione di un’istruzione richiede due passi principali:

FETCH:

• il contenuto dell’indirizzo memorizzato nel registro PC viene copiato nel registro IR

EXECUTE:

• l’istruzione memorizzata nel registro IR viene decodificata dalla CU che coordina tutte

le unità per ottenere il risultato desiderato.

IL CLOCK

Il ritmo con cui si susseguono le micro operazioni è determinato da un segnale periodico

chiamato clock di sistema. Per migliorare l’efficienza alcuni processori fanno uso della tecnica del

PIPELINING: istruzioni multiple sono eseguite in parallelo; in casi ideali consente di eseguire

un’istruzione per ciascun ciclo di clock

LATENZA E BANDA

Le prestazioni dei dispositivi di memorizzazione si misurano in termini di:

• latenza: il tempo che passa tra la richiesta da parte della CPU e l’arrivo dei dati

• Larghezza di banda: la quantità di dati trasferibili per unità di tempo

PRINCIPI DI LOCALITÀ

L’efficienza di un sistema di memoria gerarchico dipende dalla prevedibilità con cui si accede ai dati:

• località temporale: quando si accede ad un dato è probabile che in breve vi si acceda

nuovamente

• località spaziale: quando si accede ad un dato è probabile si debba accedere anche ai dati che

sono memorizzati nelle vicinanze

MEMORIA CACHE

Memorizza una parte della memoria centrale, la dimensione della cache è limitata; le operazioni di

scrittura sono più complicate:

write-through:

• strategia si scrivono sempre i dati sia nella memoria che nella cache

write-back:

• Strategia le linee sono effettivamente scritte in memoria principale solo quando

vengono rimpiazzate nella cache

LA SHELL

I sistemi Unix moderni consentono modalità di interazioni eterogenee: interfacce grafiche, shell

testuale. La SHELL è un programma che riceve, interpreta ed esegue i comandi impartiti dall’utente

sotto forma di istruzioni testuali. La maggior parte dei comandi consiste nella manipolazione delle

informazioni memorizzate nel calcolatore ed organizzate in file.

COMANDI PRINCIPALI DELLA SHELL

cd

• comando consente di modificare la directory corrente

pwd

• Comando mostra il percorso assoluto della directory corrente

touch prova.txt

• Comando crea un nuovo file vuoto dal nome ‘prova.txt’

cp sorgente destinazione

• Comando crea una copia del file ‘sorgente’ dandogli il nome

‘destinazione’

mv vecchionome nuovonome

• Comando modifica il nome del file ‘vecchionome’ e lo cambia in

‘nuovonome’

mkdir nomedir

• Comando crea una nuova directory dal nome ‘nomedir’

rm nomefile

• Comando elimina il file ‘nomefile’

rmdir nomedir

• Comando elimina la directory vuota ‘nomedir’

cat nomefile

• Comando stampa a video il contenuto di ‘nomefile’

less nomefile

• Comando consente di esaminare il contenuto di ‘nomefile’ in modo interattivo

LINGUAGGIO

Un programma è una sequenza di istruzioni che effettuano un calcolo. I linguaggi formali sono

definiti in termini di regole sintattiche:

• simboli

• Struttura

Il processo di analisi della struttura sintattica di un’espressione in un linguaggio formale si chiama

parsing, il mancato rispetto delle regole determina errori di sintassi.

LINGUAGGI DI PROGRAMMAZIONE

Sono linguaggi formali progettati per esprimere dei calcoli. Tutti i linguaggi di programmazione

consentono di implementare gli stessi algoritmi

LINGUAGGI MACCHINA

Le istruzioni sono codificate in un linguaggio macchina che dipende dall’architettura del processore.

Processori di architetture diverse non possono eseguire gli stessi programmi

LINGUAGGIO ASSSEMBLY

Per risolvere le difficoltà nella programmazione in linguaggio macchina. Le istruzioni in binario

vengono sostituite da istruzioni mnemoniche. Ad ogni istruzione in linguaggio macchina, corrisponde

una specifica istruzione assembly.

LINGUAGGI DI ALTO LIVELLO

I linguaggi assembly mantengono molti dei limiti del linguaggio macchina:

• dipendenza dalla specifica architettura della CPU

• Programmi composti da lunghe sequenze di istruzioni elementari

per superare i tali limiti si usano i linguaggi di alto livello, i quali fanno uso di astrazioni che

nascondono i dettagli relativi al funzionamento della CPU. I linguaggi di alto livello includono

istruzioni:

• complesse

• Indipendenti dall’architettura della CPU

L’uso dei linguaggi di alto livello aumenta: produttività; complessità; portabilità

COMPILATORI

È un programma che traduce il codice sorgente scritto in un linguaggio di programmazione in un

linguaggio differente

INTERPRETE

È un programma che consente di eseguirne un altro. Gli interpreti traducono ed eseguono

un’istruzione alla volta

• l’uso di un interprete è più semplice per il programmatore in quanto elimina il passaggio

intermedio della compilazione

• La compilazione può richiedere molto tempo

• I programmi compilati tendono ad essere più efficienti di quelli interpretati

BIT

I computer elaborano l’informazione sotto forma di bit. Essi sono una cifra binaria che può assumere

solo 2 valori (0/1; vero/falso; ecc). Si preferisce un sistema digitale, cioè basato su valori, perché

quelli analogici sono soggetti ad errori.

ALGEBRA BOOLEANA

AND e-Not-a-Xor

-or Er

XY XX

Y XY

XY

X

Y +

X Y X . &

Ol i

&

i

&

&

&

& & &

P I

I 1 &

&

O

10 1 &

i 1

1

Il &

(y (x

& y)(x

z) z)

+

X x

1 y

0 +

=

xx yx

X e x +

+

+ + +

= = =

. =

= .

xx

1 1x

+

x 0

1 k

= =

. = XTY XY7x 5 T

+

x y

xx X

x x +

X

= = =

. = .

.

X X

0 y X

X X + xy X

= =

=

. X(x y)

XA) = 7 x

= +

+ =

= 0

XX =

* 1

X =

A 11

B F

12 15

D

10 11

E

13

= =

= =

= = =

PORTE LOGICHE

In un computer la CPU memorizza ed elabora bit di informazione tramite un elaborato complesso di

porte logiche.

• i bit sono rappresentati dallo stato di un circuito

• Ciascuna porta logica è un dispositivo che realizza un operatore booleano

• Realizzate tramite interruttori attivabili elettronicamente

• Le tecnologie usate per costruire le porte logiche hanno scandito l’evoluzione dei computer

LEGGE DI MOORE

È una legge empirica secondo cui il numero di transistor raddoppia ogni anno

RETI LOGICHE

Sono composizioni di porte logiche che rappresentano in astratto i circuiti digitali; possono

elaborare informazioni di vario genere, purché codificata in binario

CODIFICHE BINARIE

Una codifica è una funzione che assegna sequenze di bit ad un insieme di alternative;

l’assegnamento deve essere univoco.

Possiamo distinguere 2 tipi di codifica:

• quelle che usano sequenze di lunghezza uniforme sono dette codifiche a lunghezza fissa

• Le altre sono codifiche a lunghezza variabile

LO STANDARD IEEE 754

Lo standard definisce:

• codifiche dei numeri in virgola mobile

• le regole per l’arrotondamento

• Le operazioni aritmetiche e le funzioni matematiche

• La gestione delle eccezioni

CODIFICA DI IMMAGINI

Le immagini possono essere codific

Dettagli
A.A. 2023-2024
38 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher mattiaaffer2001 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Cusano Claudio.