Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Informatica slides. Dispense di informatica, Dispense di Elementi di Informatica

Slides di informatica. Appunti dettagliati di informatica. Introduzione all’informatica nei suoi diversi campi

Tipologia: Dispense

2018/2019

Caricato il 11/12/2019

Utente sconosciuto
Utente sconosciuto 🇮🇹

1 / 79

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Dipartimento di Scienze Umanistiche e Sociali
Diapositive dei corsi di
Elementi di informatica di base (L12)
Informatica (L39)
Informatica di base (L15)
docente: Bilò Davide
Teoria di base:
introduzione all'informatica
Cos'è l'informatica? (1 di 2)
Computer science is no more about computer
than astronomy is about telescopes.
E. W. Dijkstra
L'informatica non riguarda i computer più di quanto
l'astronomia riguardi i telescopi.
Non è corretto identificare l'informatica con i computer!!!
Cos'è l'informatica? (2 di 2)
INFORmazione autoMATICA
scienza che si occupa del trattamento
automatico delle informazioni
insieme di processi e tecnologie (informatiche) che rendono
possibile la creazione, la raccolta, l'elaborazione,
l'immagazzinamento e la trasmissione dell'informazione con
metodi automatici
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f

Anteprima parziale del testo

Scarica Informatica slides. Dispense di informatica e più Dispense in PDF di Elementi di Informatica solo su Docsity!

Dipartimento di Scienze Umanistiche e Sociali

Diapositive dei corsi di

Elementi di informatica di base (L12)

Informatica (L39)

Informatica di base (L15)

docente: Bilò Davide

Teoria di base:

introduzione all'informatica

Cos'è l'informatica? (1 di 2)

Computer science is no more about computer

than astronomy is about telescopes.

E. W. Dijkstra

L'informatica non riguarda i computer più di quanto

l'astronomia riguardi i telescopi.

Non è corretto identificare l'informatica con i computer!!!

Cos'è l'informatica? (2 di 2)

INFOR mazione auto MATICA

scienza che si occupa del trattamento

automatico delle informazioni

insieme di processi e tecnologie (informatiche) che rendono

possibile la creazione, la raccolta, l'elaborazione,

l'immagazzinamento e la trasmissione dell'informazione con

metodi automatici

Qual è il ruolo del computer nell'informatica?

Un qualunque dispositivo per il calcolo automatico,

quindi anche (ma non solo) il computer, costituisce uno

strumento tecnologico che permette di elaborare

effettivamente le informazioni in maniera automatica.

Cos'è un computer?

Il computer è un elaboratore elettronico digitale

● elaboratore: macchina in grado di rappresentare ed

elaborare informazioni in base a una serie di

istruzioni formulate e memorizzate in modo

tale da poter essere eseguite automaticamente

● elettronico: utilizza componenti elettroniche per elaborare,

memorizzare e distribuire le informazioni

● digitale: le informazioni sono rappresentate mediante le due

cifre 0 e 1 (digit) della numerazione binaria

Cos'è un elaboratore elettronico digitale?

Insieme di dispositivi fisici (hardware) per:

● ricevere informazione dall'esterno (informazione di input)

● elaborare le informazioni

➢ tramite istruzioni di programmi (software)

● produrre informazione (informazione di output)

➢ da memorizzare

➢ da distribuire e comunicare le informazioni

Elaboratore

elaborazione

memorizzazione

informazioni di input informazioni di output

Cos'è l'hardware (di un elaboratore)?

hard + ware

solido + componente

insieme delle componenti fisiche

(meccaniche, elettriche, elettroniche, magnetiche e ottiche)

(che costituiscono l'elaboratore)

Cos'è l'informazione?

L'informazione è un “qualcosa” che si

possiede e che serve ad acquisire una conoscenza.

L'informazione è ciò che, per un osservatore o un recettore

posto in una situazione in cui si hanno almeno due occorrenze

possibili, supera un'incertezza e risolve un'alternativa, cioè

sostituisce il noto all'ignoto, il certo all'incerto.

L'informazione è sempre legata ad un mezzo che

la “sorregge” (supporto (dell'informazione)) ed

attraverso il quale può essere trasmessa.

Informazione e supporto

Supporto e informazione sono due cose distinte!!!

stessa informazione, supporti diversi

stesso supporto, informazione diversa

Supporto, informazione, dato e codice

● le informazioni sono rappresentate sui supporti con dei dati

● il codice associa a ciascun dato l'informazione corrispondente

● ciascun dato è rappresentato per mezzo diconfigurazioni globali

➢ (^) le configurazioni globali sono composte da configurazioni elementari ➢ (^) ogni configurazione elementare è un segno sul supporto ➢ (^) solo “alcuni” di tutti i possibili segni sono dei simboli

Un esempio

● supporto cartaceo e codice della lingua italiana

● le 21 lettere dell'alfabeto della lingua italiana sono simboli

● qualunque altro segno diverso dalle 21 lettere dell'alfabeto non è un simbolo

● alcune configurazioni globali sono

➢ estate

➢ athvslz

➢ n$©m~¤

Rappresentazione dell'informazione

nelle macchine

● segnale analogico

● segnale digitale

Segnale analogico e digitale

Un segnale è detto analogico

quando i valori utili che lo

rappresentano sono continui, e

quindi “infiniti”.

Un segnale digitale può assumere

soltanto valori appartenenti ad un

insieme finito di valori discreti.

Il termine digitale sta a indicare tutto

ciò che può essere rappresentato dai

numeri interi.

segnale digitale

segnale analogico

Segnale analogico vs segnale digitale

● segnale analogico

➢ teoricamente più preciso

● segnale digitale

➢ più robusto alle interferenze

➢ praticamente più preciso

Gli elaboratori elettronici digitali memorizzano i

dati in digitale, ossia per mezzo di numeri interi.

A ciascun numero intero (dato) è associata

un'informazione per mezzo di un codice.

Rappresentazione dei dati in un

elaboratore elettronico digitale (1 di 2)

L'unità minima del linguaggio digitale è il bit

Il termine bit deriva dall'espressione

inglese binary digit (cifra binaria)

Un bit può assumere solo due stati:

● 0 o 1

● spento o acceso

● testa o croce

Il codice EBCDIC

EBCDIC = Extended Binary Coded Decimal Interchange Code

Ciascun carattere della tabella è codificato con una stringa di 7 bit

Il codice UNICODE

ASCII e EBCDIC funzionano perfettamente per l'inglese

Problema : e per le lingue come il cinese, l'antico ebraico?

UNICODE

● quando è stato ideato, ciascun dei circa 60000 caratteri

veniva rappresentato con una stringa di 16 bit

● oggi ciascuno dei circa 96000 caratteri è rappresentato con

una stringa della lunghezza di al più 21 bit

● in grado di rappresentare le principali lingue scritte del

mondo

Quante configurazioni diverse posso

rappresentare con k bit? (1 di 3)

Un bit è come una lampadina digitale

con due configurazioni (acceso/spento)

● con 1 bit posso rappresentare 2 (2=2 1 ) configurazioni diverse

● con 2 bit posso rappresentare 4 (4=2 2 ) configurazioni diverse

● con k bit posso rappresentare 2 k^ configurazioni diverse

● ciascuno dei k bit può assumere due configurazioni diverse

indipendentemente dalla configurazione assunta da uno qualunque degli

altri k-1 bit, quindi, il numero totale di configurazioni possibili è 2

moltiplicato per se stesso k volte, ossia 2 k

Quante configurazioni diverse posso

rappresentare con k bit? (2 di 3)

● con 1 bit posso rappresentare 2 (2=2 1 ) configurazioni diverse

● con 2 bit posso rappresentare 4 (4=2 2 ) configurazioni diverse

● con k bit posso rappresentare 2 k^ configurazioni diverse

● a ciascuna delle possibili configurazioni diverse rappresentabili con k-

bit possiamo aggiungere il k-esimo bit che può assumere due

configurazioni diverse. Quindi, il numero di configurazioni diverse

rappresentabili con k bit è pari al doppio del numero di configurazioni

diverse rappresentabili con k-1 bit.

Quante configurazioni diverse posso

rappresentare con k bit? (3 di 3)

Numero di bit (k) Numero di configurazioni diverse rappresentabili 1 2 1 = 2 2 2 = 3 2 3 = 4 2 4 = 5 2 5 = 6 2 6 = 7 2 7 = 8 2 8 = 9 2 9 = 10 2 10 =

Qual è il numero minimo di bit sufficienti a rappresentare i 7 colori dell'arcobaleno?

Colori arcobaleno 1 bit 2 bit 3 bit rosso 0 00 000 arancio 1 01 001 giallo 10 010 verde 11 011 azzurro 100 indaco 101 violetto 110 (avanza) 111

Qual è il numero minimo di bit sufficienti

a rappresentare n configurazioni diverse?

Se con k bit posso rappresentare 2 k^ configurazioni diverse,

allora, per rappresentare n configurazioni diverse, devo

scegliere k tale che 2 k^ ≥ n. Quindi il più piccolo valore intero k

tale che 2 k^ ≥ n è la soluzione del problema.

Equivalentemente, il più piccolo valore intero k

tale che k ≥ log 2 n è la soluzione del problema.

Qual è il numero minimo di bit sufficienti a rappresentare 256 configurazioni diverse?

Numero di bit (k) Numero di configurazioni diverse rappresentabili 1 2 1 = 2 2 2 = 3 2 3 = 4 2 4 = 5 2 5 = 6 2 6 = 7 2 7 = 8 2 8 = 9 2 9 = 10 2 10 =

Soluzione: il più piccolo valore intero k tale che 2 k^ ≥ n, ossia 8.

Com'è fatto un computer?

(a livello di architettura hardware)

● componente per elaborare i dati

● componente per memorizzare i dati

● componente per inserire i dati

● componente per visualizzare/distribuire i dati (ottenuti quali

risultato del processo di elaborazione)

● canali di comunicazione che permettono la trasmissione di

dati tra una componente e l'altra

La macchina di Von Neumann

CPU (Central Processing Unit) Unità centrale di elaborazione Memoria

Memoria di massa Memoria centrale

Periferiche di input

Periferiche di output

bus

Periferiche di input/output

Interfaccia alle periferiche

Legenda

  1. Monitor
  2. Scheda madre (motherboard)
  3. CPU
  4. RAM
  5. Schede di espansione (expansion cards)
  6. Alimentatore (power supply)
  7. Disco ottico (optical disk drive)
  8. Disco rigido (hard disk drive)
  9. Tastiera (keyboard)
  10. Mouse

La scheda madre

Ma chi sincronizza la comunicazione tra le

componenti e le modalità operative di

ciascuna componente?

Ma chi sincronizza la comunicazione tra le

componenti e le modalità operative di

ciascuna componente?

I CLOCK (OROLOGI)

Il clock

Il clock è un orologio che scandisce il ritmo di lavoro di una o

più componenti suddividendo il tempo inquanti.

Il clock è un segnale elettrico digitale dall'andamento regolare

(un'onda quadra).

Un ciclo completo tra 0 e 1 viene detto quanto o ciclo di clock

1 ciclo di clock

Interfaccia alle periferiche:

l e porte di comunicazione

Periferiche di input/output

Le periferiche di input/output sono quei

dispositivi in grado di inviare dati al computer e

allo stesso modo di riceverne

Una periferica di input/output è il touchscreen

Un'altra periferica di input/output è la cuffia-microfono

La memoria di massa

Per memoria di massa (o secondaria o esterna) si

intende l'insieme dei componenti magnetici, ottici ed

elettronici che permettono di memorizzare dati e

programmi in modo persistente, per conservarli finché

l'utente non decide di eliminarli

Principali tipi di memorie di massa

● dispositivi magnetici

➢ nastri

➢ hard disk (o disco rigido): interni ed esterni

➢ dischi di rete

➢ floppy disk (capacità 1,44 MB)

● dispositivi ottici

➢ CD (Compact Disk)

➢ DVD (Digital Versatile Disk)

● dispositivi elettronici

➢ USB flash drive

➢ memory card

➢ hard disk SSD (Solid-State Drive)

La memoria centrale (o primaria o interna)

È la memoria utilizzata dall'elaboratore per gestire i programmi.

Costituita da una sequenza ordinata di celle ciascuna delle quali

può memorizzare una word (parola). Una word è una sequenza di

bit la cui lunghezza dipende dall'architettura del sistema.

Solitamente, uno word è pari a 8, 16, 32 oppure 64 bit.

Ciascuna cella di memoria ha un indirizzo predefinito e invariabile

e rappresenta l'unità minima di memoria cui la CPU riesce ad

accedere.

Tipi di memoria centrale

● RAM (Random Access Memory, memoria ad accesso diretto):

➢ (^) memoria di lettura/scrittura ➢ (^) volatile ➢ (^) ad accesso diretto ➢ (^) di lavoro e dinamica

● ROM (Read Only Memory, memoria di sola lettura):

➢ (^) memoria di sola lettura

➢ BIOS ROM (Basic Input/Output System)

➔ (^) autotest ➔ (^) riconoscimento e gestione delle periferiche di input/output ➔ (^) caricamento del sistema operativo

Composizione della CPU

La CPU è un circuito integrato (microprocessore)

in cui avvengono i processi di elaborazione

CPU = ALU + CU

● Registri

➢ dispositivi di grado di memorizzazione una word

● ALU (Arithmetic and Logic Unit, unità aritmetico-logica)

➢ unità di elaborazione che esegue materialmente le operazioni

➔ aritmetiche (somme, sottrazioni, moltiplicazioni e divisioni tra numeri

binari)

➔ logiche sui dati (confronto tra due numeri binari per capire se sono

uguale o quale dei due è il maggiore)

● CU (Control Unit, unità di controllo)

➢ responsabile del coordinamento della varie componenti della macchina e

dell'esecuzione delle istruzioni

La ALU e le operazioni elementari

Primo operando (^) Secondo operando

Risultato operazione

Esegui o un'operazione aritmetica

ALU o un'operazione logica

CU

Come funziona la CPU:

il ciclo fetch-decode-execute

● la CPU ha un clock interno che ne scandisce il ritmo di lavoro

● durante un ciclo di clock, la CPU esegue le seguenti operazioni

1.Fetch

➢ la CU preleva l'istruzione da eseguire dalla memoria interna

2.Decode

➢ la CU decodifica l'istruzione

3.Execute

➢ l'istruzione viene eseguita dalla ALU

Fetch Decode

Execute lettura del valore degli operandi

esecuzione dell'operazione aritmetico-logica

memorizzazione del risultato

Dati e programmi:

come i programmi impartiscono ordini al

computer utilizzando i soli numeri binari

Prima di iniziare, ricordate che...

Un elaboratore rappresenta i dati attraverso numeri interi scritti

utilizzando le cifre binarie

Un programma, per poter essere eseguito, deve risiedere nella RAM

Quindi, un programma altro non è che una sequenza (ordinata) di

numeri interi scritti in binario e memorizzati in celle della RAM

Ogni cella della RAM ha un indirizzo e memorizza una word

Il linguaggio macchina

codice istruzione

dato da utilizzare

(valore numerico o indirizzo di memoria)

word contenente una sequenza di bit

esempio di una word a 8 bit

codice istruzione dato da utilizzare

La macchina di Von Neumann

CPU (Central Processing Unit) Unità centrale di elaborazione Memoria

Memoria di massa Memoria centrale

Periferiche di input

Periferiche di output

bus

Periferiche di input/output

Interfaccia alle periferiche

Ricapitolando

Ogni cella di memoria contiene un dato che

rappresenta un valore numerico oppure un'istruzione

Se il dato contenuto nella cella di indirizzo x

rappresenta un'istruzione, allora il contatore di

programma (registro della CPU) viene aggiornato con il

valore x+1 (prossima istruzione da eseguire) e

l'istruzione viene eseguita dalla CPU

Istruzioni in linguaggio macchina

Le istruzioni in linguaggio macchina disponibili

in un elaboratore dipendono dalla CPU

Generalmente, tutti gli elaboratori forniscono

il seguente insieme di istruzioni

operazione descrizione load x memorizza il contenuto della cella della RAM con indirizzo x nel primo registro degli operandi store x memorizza il contenuto del registro risultato nella cella della RAM con indirizzo x add/subtract x aggiungi/sottrai il valore contenuto nel primo registro degli operandi al valore contenuto nella cella della RAM con indirizzo x dopo averlo copiato nel secondo registro degli operandi jump to x (if result </>/= 0)

memorizza il valore x nel contatore di programma (se il registro risultato contiene un valore minore/maggiore/uguale a 0) halt termina l'esecuzione del programma

Un esempio di programma scritto in

linguaggio macchina:

programma per il calcolo della formula |x-y|

Indirizzo cella RAM Interpretazione in termini di valori numerici/linguaggio macchina 1 load (valore contenuto nella cella di indirizzo) 10 2 subtract (valore contenuto nella cella di indirizzo) 11 3 jump to 6 if result > 0 4 load (valore contenuto nella cella di indirizzo) 11 5 subtract (valore contenuto nella cella di indirizzo) 10 6 store 12 7 halt 8 9 10 x 11 y 12 |x-y|

Un esempio di programma scritto in

linguaggio macchina:

programma per il calcolo della formula |x-y|

Indirizzo cella RAM Interpretazione in termini di valori numerici/linguaggio macchina 1 load (valore contenuto nella cella di indirizzo) 10 2 subtract (valore contenuto nella cella di indirizzo) 11 3 jump to 6 if result > 0 4 load (valore contenuto nella cella di indirizzo) 11 5 subtract (valore contenuto nella cella di indirizzo) 10 6 store 12 7 halt 8 9 10 5 11 3 12

Concetto di algoritmo

Un algoritmo è una sequenza di passi che

portano alla realizzazione di un compito

Caratteristiche di un algoritmo

● non ambiguità

➢ i passi devono essere univocamente interpretabili dall'esecutore

● eseguibilità

➢ l'esecutore deve essere in grado di eseguire ogni passo utilizzando le

risorse di cui dispone in un tempo finito

● finitezza

➢ l'esecuzione di un algoritmo deve terminare in un tempo finito

Un esempio di algoritmo:

programma per il calcolo della formula |x-y|

Indirizzo cella RAM Interpretazione in termini di valori numerici/linguaggio macchina 1 load (valore contenuto nella cella di indirizzo) 10 2 subtract (valore contenuto nella cella di indirizzo) 11 3 jump to 6 if result > 0 4 load (valore contenuto nella cella di indirizzo) 11 5 subtract (valore contenuto nella cella di indirizzo) 10 6 store 12 7 halt

Un programma che non è un algoritmo:

programma che esegue un'istruzione ad oltranza

Indirizzo cella RAM Interpretazione in termini di valori numerici/linguaggio macchina 1 jump to 1 2 3 4 5 6 7

Linguaggio di programmazione

è un linguaggio artificiale che permette di

scrivere programmi in una forma comprensibile

sia al programmatore, sia all'esecutore

Alcuni linguaggi di programmazione

● Assembler

● FORTRAN

● COBOL

● C

● Pascal

● Java

Come vengono eseguiti i programmi scritti

con i linguaggi di programmazione

Un elaboratore è in grado di eseguire istruzioni

formulate in linguaggio macchina

I programmi scritti con i linguaggi di programmazione

devono essere tradotti in linguaggio macchina

● interprete

➢ traduce un'istruzione (del programma) in linguaggio macchina quando

essa deve essere eseguita

● compilatore

➢ traduce l'intero programma in linguaggio macchina

Interazione dei dispositivi

con l'elaboratore:

memorie di massa,

porte di comunicazione,

periferiche di input

e

periferiche di output

Memorie di massa

floppy disk

hard disk