CORSO DI INFORMATICA GENERALE - PowerPoint PPT Presentation

About This Presentation
Title:

CORSO DI INFORMATICA GENERALE

Description:

INFORMATICA GENERALE Daniele Gunetti E-Mail: gunetti_at_di.unito.it Indirizzo: Dipartimento di Informatica, corso Svizzera 185, Torino Tel. Ufficio: 011 - 6706768 / 6706711 – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 181
Provided by: diUnitoIt3
Category:

less

Transcript and Presenter's Notes

Title: CORSO DI INFORMATICA GENERALE


1
CORSO DIINFORMATICA GENERALE
  • Daniele Gunetti
  • E-Mail gunetti_at_di.unito.it
  • Indirizzo Dipartimento di Informatica,
  • corso Svizzera 185, Torino
  • Tel. Ufficio 011 - 6706768 / 6706711

2
PROGRAMMA DEL CORSO
  • Rappresentazione delle Informazioni
  • Architettura del computer (hardware)
  • Il software (Sist. Operativi, I programmi)
  • Reti di Calcolatori (Reti Locali, Internet)

3
LABORATORIO DEL CORSO
  • Uso del computer (windows95/98)
  • Word
  • PowerPoint
  • Excel
  • Access
  • Internet

4
ESAME
  • Scritto con prova pratica

5
RAPPRESENTAZIONE DELLE INFORMAZIONI
  • Idea di fondo Usare
  • presenza/assenza di carica elettrica
  • passaggio/non passaggio di corrente/luce
  • BInary digiT (cifra binaria) il BIT
  • Usiamo cioe una rappresentazione binaria
  • (a due valori) dellinformazione

6
INFORMAZIONI COMPLESSE
  • Con 1 bit rappresentiamo solo 2 diverse
    informazioni
  • si/no - on/off - 0/1
  • Mettendo insieme piu bit possiamo rappresentare
    piu informazioni
  • 00 - 01 - 10 - 11

7
INFORMAZIONI COMPLESSE
  • In generale, con N bit, ognuno dei quali puo
    assumere 2 valori, possiamo rappresentare 2N
    informazioni diverse
  • viceversa
  • Per rappresentare M informazioni dobbiamo usare N
    bit, in modo che 2N gt M

8
ESEMPIO
  • Per rappresentare 57 informazioni diverse
  • dobbiamo usare gruppi di almeno 6 bit. Infatti
  • 26 64 gt 57
  • Cioe un gruppo di 6 bit puo assumere 64
    configurazioni diverse
  • 000000 / 000001 / 000010 / 111110 / 111111

9
IL BYTE
  • In informatica ha assunto particolare importanza
    il concetto di
  • byte 8 bit 28 256 inf. diverse
  • Il byte e usato come unita di misura per
    indicare le dimensioni della memoria, la
    velocita di trasmissione, la potenza di un
    elaboratore
  • Usando sequenze di byte (e quindi di bit) si
    possono rappresentare caratteri, numeri immagini,
    suoni.

10
LA CODIFICA DEI CARATTERI
  • E necessario convenire un codice per
    rappresentare i caratteri.
  • Il codice ASCII (American Standard Code for
    Interchange Code) usa i primi 7 bit di ogni byte
  • 27 128 caratteri diversi
  • Sufficienti per lalfabeto anglosassone

11
ALTRI CODICI DI CODIFICA
  • ASCII ESTESO
  • Usa anche il primo bit di ogni byte
  • 256 caratteri diversi
  • non e standard (cambia con la lingua usata)
  • UNICODE
  • standard proposto a 16 bit (65.536 caratteri)
  • EBCDIC
  • altro codice a 8 bit della IBM (quasi in disuso)

12
LA CODIFICA DEI NUMERI
  • Le cifre 0..9 rappresentate in Ascii sono simboli
    o caratteri NON quantita numeriche
  • Non possiamo usarle per indicare quantita e per
    le operazioni aritmetiche. (Anche nella vita di
    tutti giorni usiamo i numeri come simboli e non
    come quantita i n. telefonici)
  • E poi i carat. Ascii occupano troppo spazio

13
IL SISTEMA DECIMALE
  • 10 cifre di base 0, 1, 2, , 9
  • Notazione posizionale la posizione di una cifra
    in un numero indica il suo peso in potenze di 10.
    I pesi sono
  • unita 100 1 (posiz. 0-esima)
  • decine 101 10 (posiz. 1-esima)
  • centinaia 102 100 (posiz. 2-esima)
  • migliaia 103 1000 (posiz. 3-esima)
  • .. .. .. .. .. ...

14
ES. DI NUMERO RAPPR. IN NOTAZIONE DECIMALE
  • Il numerale 2304 in notazione decimale
  • (o in base 10) rappresenta la quantita
  • 2304 2103 3102 0101 4100
  • 2000 300 0 4 2304 (numero)
  • Nota numero e numerale qui coincidono, perche
    il sistema decimale e quello adottato come
    sistema di riferimento.

15
IL SISTEMA BINARIO
  • 2 Cifre di base 0 e 1.
  • Notazione posizionale la posizione di una cifra
    in un numero binario indica il suo peso in
    potenze di 2. I pesi sono
  • 20 1 (posiz. 0-esima)
  • 21 2 (posiz. 1-esima)
  • 22 4 (posiz. 2-esima)
  • 238 2416 2532 2664 27128 28256
    29512 210 1024 2112048, 2124096...

16
ES. DI NUMERO RAPPR. IN NOTAZIONE BINARIA
  • Il numerale 10100101 in notazione binaria (o in
    base 2) rappresenta la quantita
  • 10100101
  • 127026125024023122021120
  • 128 0 32 0 0 4 0 1
  • 165 (numero)

17
IL NUMERO PIU GRANDE RAPPRESENT. CON N CIFRE
  • Sist. Decimale 9999 10N - 1
  • Sist. Binario 11..11 2N - 1
  • Esempio 11111111 (8 bit binari) 28 -1 255.
    Per rappresentare il n. 256 ci vuole un bit in
    piu 100000000 128 256.

18
QUINDI
  • Fissate quante cifre (bit) sono usate per
    rappresentare i numeri, si fissa anche il numero
    piu grande che si puo rappresent.
  • con 16 bit 216 - 1 65.535
  • con 32 bit 232 - 1 4.294.967.295
  • con 64 bit 264 - 1 circa 1,84 1019
  • Pero si possono rappresentare numeri piu
    grandi se si tollera un certo grado di
    imprecisione.

19
CONVERSIONE DA BASE 2 A 10
  • Basta moltiplicare ogni bit per il suo peso e
    sommare il tutto
  • Esempio
  • 10100
  • 124 023 122 021 020
  • 16 4 20
  • la conversione e una somma di potenze
  • (N.B. se il numero binario termina per 1 e
    dispari altrimenti e pari).

20
CONVERSIONE DA BASE 10 A 2
  • Idea di fondo usare le potenze di 2 che,
    sommate, danno il numero N da convertire
  • Prendere le potenze di 2 lt di N nellordine
    dalla piu grande alla piu piccola (cioe 20)
  • Associare il bit 1 alle potenze che vengono usate
    nella somma per ricostruire N
  • Associare il bit 0 alle potenze non usate.

21
ESISTONO ANCHE ALTRE BASI DI NUMERAZIONE
  • CODICE OTTALE
  • cifre 0, 1, 2, 3, 4, 5, 6, 7
  • 10 (ottale) 8 (decimale)
  • CODICE ESADECIMALE
  • cifre 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  • 10 (esadecimale) 16 (decimale) B 11
    2B2161B160 3211 43

22
NUMERI A VIRGOLA MOBILE (NUMERI FLOATING POINT)
  • Idea 12,52 1252/100 1252 10-2
  • Un numero decimale e rappresentato come un
    intero moltiplicato per una opportuna potenza di
    10, cioe con una coppia
  • lt1252 -2gt
  • mantissa esponente

23
NUMERI FLOATING POINT
  • E necessario stabilire quanti bit assegnare alla
    mantissa e allesponente.
  • Ad esempio, con 16 bit a disposizione possiamo
    usarne 12 per la mantissa e 4 per lesponente
  • (in realta dovremmo anche tener conto dei segni)

24
NUMERI FLOATING POINT
  • Con lo stesso metodo possiamo rappresent. Numeri
    molto grandi. Ad esempio, con 8 bit
  • 5 bit di mantissa 11111 31
  • 3 bit di esponente 111 3
  • 11111111 31 107 310 milioni
  • Mentre, con la notazione classica, con 8 bit
  • rappresentiamo al massimo il n. 255

25
NUMERI FLOATING POINT
  • Ma allora, perche non usare sempre la notazione
    floating point?
  • Perche si perde in precisione
  • Esempio 5 cifre (decimali) 4 per la mantissa,
    1 per lesponente. Rappresentare
  • 312,45
  • lt3124 -1gt 312,4 .. 312,5???

26
NUMERI FLOATING POINT
  • Quindi possiamo rappresentare numeri molto
    grandi o con molti decimali al costo di una
    perdita di precisione
  • Perche? Perche i computer permettono solo
    rappresentazioni finite, e cosi dobbiamo
    approssimare alcuni numeri (ad esempio gli
    irrazionali), ma anche immagini e suoni

27
CODIFICA DELLE IMMAGINI B/N
  • Dividere limmagine in una griglia a righe
    orizzontali e verticali
  • Ogni quadratino della griglia e un pixel
  • Codificare ogni pixel con
  • 0 se il pixel e bianco
  • 1 se il pixel e nero
  • Convenire un ordinamento per i bit usati nella
    codifica

28
CODIFICA DELLE IMMAGINI B/N
29
CODIFICA DELLE IMMAGINI
  • Quindi le immagini sono rappresentate con un
    certo livello di approssimazione, o meglio, di
    risoluzione, ossia il numero di pixel usati per
    riprodurre limmagine
  • 640 x 480 pixel 800 x 600 pixel
  • 1024 x 768 pixel 1280 x 1024 pixel
  • N.B. Ha importanza anche il dot pitch, il grado
    di definizione del pixel 0,25 - 0,28)

30
CODIFICA DELLE IMMAGINI
  • - Anche il colore e approssimato. Per il bianco
    e nero, con 8 bit si codificano 256 livelli di
    grigio. (ottenuti regolando la luminosita del
    pixel)
  • - Per i video a colori, con 8 bit si rappresent.
    256 colori, con 16 bit 64.000 colori, con 24 bit
    16 milioni di colori diversi per pixel
  • - BITMAP la rappresentazione di una immagine
    con codifica dei pixel. Porta via molto spazio
  • (immagine a 640 x 480 x 256 c.307.200 Byte)

31
CODIFICA DELLE IMMAGINI
  • - E possibile risparmiare spazio nella rappr.
    delle immagini Aree dello stesso colore si
    rappresentano in modo abbreviato.
  • - Esistono vari formati di codifica
  • (bmp, gif, jpg, pict, tiff)
  • - E in genere possibile passare da un formato ad
    un altro.

32
CODIFICA DEI SUONI
  • Londa sonora viene misurata (campionata)
  • ad intervalli regolari
  • Minore e lintervallo di campionamento e
  • maggiore e la qualita del suono
  • CD musicali 44000 campionamenti al secondo, 16
    bit per campione.

33
CODIFICA DEI SUONI
  • Alcuni formati
  • ---.mov
  • ---.wav
  • ---.mpeg, ---.avi,
  • formato midi usato per lelaborazione della
    musica al computer

34
CODIFICA DEI FILMATI
  • Sono sequenze di immagini compresse (ad esempio
    si possono registrare solo le variazioni tra un
    fotogramma e laltro)
  • Esistono vari formati (compresi i suoni)
  • mpeg (il piu usato), e' il formato DVD
  • avi (microsoft)
  • quicktime (apple)
  • mov
  • E possibile ritoccare i singoli fotogrammi

35
IL CONCETTO DI FILE
  • FILE sequenza di byte conosciuta nel computer
    con un certo nome.
  • TIPI DI FILE
  • file di dati (es immagini o suoni)
  • programmi (es word o explorer)
  • file di testo (cioe caratteri ascii)
  • ESTENSIONI DI UN FILE (windows95/98)
  • nome.gif, nome.exe, nome.doc, ...

36
LA STRUTTURA DEI FILE (?)
  • E meglio vedere un file come una sequenza di
    byte. E il programa che usa
  • il file a gestirne il contenuto in modo corretto.
  • Ad esempio, nei file di testo quando viene
    incontrato il byte ltnew linegt si devono
  • visualizzare i caratteri successivi nella
  • riga sottostante.

37
ARCHITETTURA DEI COMPUTER(LHARDWARE!!!)
  • Processore (CPU)
  • Memoria Principale (o Primaria o RAM)
  • Memoria di Massa (o secondaria, il famoso hard
    disk, ma anche nastri, CD)
  • Dispositivi di Input/Output (video, tastiera,
    stampanti,)

38
FUNZIONAMENTO
  • Programmi e dati risiedono in file memorizzati in
    memoria secondaria.
  • Per essere eseguiti (i programmi) e usati (i
    dati) vengono copiati nella memoria primaria.
  • La cpu e in grado di eseguire le istruzioni di
    cui sono composti i programmi

39
FUNZIONAMENTO
copia il programma in RAM
programma
CPU
programma
RAM
hard disk
esegui le istruzioni del programma
40
LA MEMORIA PRINCIPALE
  • Sequenza di celle di memoria
  • Ogni cella memorizza un byte
  • Fisicamente e fatta di componenti elettronici
    (transistors) miniaturizzati
  • Ogni unita elementare puo trovarsi a due
    diversi livelli di tensione elettrica ecco il
    corrispettivo fisico del bit

41
LA MEMORIA PRINCIPALE
  • Le celle sono numerate in sequenza il numero di
    ogni cella costituisce il suo indirizzo
  • Specificando lindirizzo di una cella, la cpu e
    in grado di leggere e/o modificare il valore del
    byte memorizzato in quella cella
  • Random Access Memory (RAM), perche ogni cella e
    indirizzabile direttamente.

42
LA MEMORIA PRINCIPALE(LA RAM)
00101111
0
11001101
1
01010100
2
11111101
3
...
..
10000110
65.536
43
DIMENSIONI DELLA RAM
  • Spazio di indirizzamento insieme o numero delle
    celle indirizzabili direttam.
  • Il numero di celle indirizzabili e una potenza
    di due. Con
  • 16 bit si indirizzano 216 celle 65.536 celle
  • 32 bit si indirizzano 232 4.294.967.296 celle
  • ..

44
UNITA DI MISURA DELLA MEMORIA
  • Si usano delle unita di misura per indicare la
    dimensione della memoria
  • kilobyte (KB) 1024 byte (210 byte)
  • megabyte (MB) 1000 KB (220 B)
  • gigabyte (GB) 1 miliardo di byte
  • Quindi
  • con 16 bit si indirizzano 64KB di memoria
  • con 32 bit si indirizzano 4GB di memoria

45
DIMENSIONI TIPICHE DELLA RAM
  • Nei Personal computer
  • 8, 16, 32, 64, 128 Megabyte
  • una volta era un lusso avere 64 KB
  • Nei Mainframe/Workstations
  • 32, 64, 128, 256, ., Megabyte
  • Ricordatevi che la memoria e espandibile (fino
    ad un certo limite)

46
ALTRE INFO. SULLA RAM LA PAROLA O WORD
  • La parola (word) di un computer
  • quanti bit possono essere letti/scritti/usati
  • dalla cpu con un unico accesso alla memoria
  • (16, 32, 64, 128 bit)
  • Piu grande e la parola, maggiore e la potenza
    del computer (vedasi le playstations)

47
ALTRE PROPRIETA DELLA RAM
  • La ram e veloce per leggere/scrivere una cella
    ci vogliono, in media 5--30 nanosecondi
    (millesimi di milionesimi di secondo 30 10-9)
  • la ram e volatile e fatta di componenti
    elettronici, e se togliete lalimentazione
    perdete tutto
  • La ram e costosa (relativamente)

48
LA MEMORIA SECONDARIA(LHARD DISK)
  • Programmi e dati risiedono normalmente in memoria
    secondaria.
  • Quando si lancia un programma questo viene
    copiato dalla memoria secondaria (di solito un
    hard disk) in memoria primaria. Questa operazione
    si chiama caricamento (eseguita dal sistema
    operativo).

49
LHARD DISK
  • E fatto di supporti magnetici permamenti,
    gestiti mediante dispositivi meccanici.
  • Tempi di accesso dellordine dei 100 x
    micro/millisecondi.
  • Spazio disponibile
  • Hard disk 6, 8, 10, 20, 30 Gigabyte
  • (una volta era un lusso avere 20 Megabyte)
  • Floppy disk (3.5) 1.44 Megabyte
  • (obsoleto ma, incredibilmente, ancora in uso)

50
I BLOCCHI DELLHARD DISK
  • Nellhard disk la memoria e organizzata in
    blocchi di dimensione fissa (512B, 1KB,2KB,..)
    indirizzabili direttamente
  • La lettura/scrittura del disco avviene sempre in
    blocchi, per risparmiare tempo (pensate al tempo
    perso se si dovesse leggere un byte per volta!)
  • Il disco e quindi formattato in blocchi

51
MEMORIA PRIMARIA VS MEMORIA SECONDARIA
  • RAM HARD DISK
  • veloce (nanosec) lenta (microsec)
  • piccola (Megabyte) grande (Gigabyte)
  • volatile permanente

Notate che, in teoria, il computer potrebbe
funzionare con la sola ram o il solo harddisk
52
NASTRI MAGNETICI, CD, DVD
  • Nastri accesso sequenziale, cioe' molto lento.
    Usati per i backup, economici
  • CD 650 MB Lettore CD 24X? Legge 24 volte piu'
    veloce di un lettore musicale
  • DVD circa 6 GB stesso supporto fisico dei CD,
    ma i dati sono rappresentati in modo diverso.

53
IL PROCESSORE - CPU(CENTRAL PROCESSING UNIT)
  • Si occupa di eseguire i programmi che sono
    scritti in linguaggio macchina
  • I programmi sono fatti di istruzioni
  • le istruzioni sono operazioni elementari
  • somma due numeri, confronta due numeri,

54
LE ISTRUZIONI MACCHINA
Codice istruzione argom. 1 argom. 2
  • 16 o 32 o 64 bit di lunghezza
  • esempio "add 6523 6450"

55
IL SET DI ISTRUZIONI MACCHINA
  • Ogni tipo di processore e in grado di eseguire
    un numero limitato (40/100) di istruzioni
  • Istruzioni aritmetiche, logiche, di spostamento,
    di lettura/scrittura in memoria, di salto.
  • Combinando in modo diverso sequenze anche molto
    lunghe di istruzioni (i programmi) si possono far
    fare al computer tantissime cose completamente
    diverse

56
COSA FA LA CPU
  • Esegue in modo ciclico
  • preleva dalla memoria centrale la prossima
    istruzione da eseguire
  • esegui listruzione
  • ripeti tutto
  • Alla velocita del clock (700, 800,... MHz) (es.
    800 milioni di cicli al secondo)

57
LE COMPONENTI DELLA CPU I REGISTRI
  • piccole unita di memoria (2, 4, 8 byte) con
    tempi di accesso molto piu bassi delle celle
    della memoria primaria
  • Ospitano le informazioni necessarie per eseguire
    listruzione corrente
  • In numero molto limitato perche' molto costosi da
    realizzare

58
LE COMPONENTI DELLA CPU
  • Il Program Counter (PC)
  • contiene lindirizzo in memoria centrale della
    prossima istruzione da eseguire.
  • Allinizio dellesecuzione di un programma viene
    caricato con lindirizzo della prima istruzione
    di quel programma.
  • Ad ogni struzione eseguita viene il PC viene
    modificato per contenere lindirizzo della
    istruzione successiva

59
LE COMPONENTI DELLA CPU I REGISTRI GENERALI
  • I registri generali R1, R2, R3,...
  • in numero di 8, 16, 64
  • sono usati come memorie temporanee per contenere
    gli operandi delle istruzioni e i risultati
    parziali durante lesecuzione delle istruzioni.

60
UN PROGRAMMA IN LINGUAGGIO MACCHINA (ASSEMBLER)
61
PROBLEMA
  • La RAM e' molto piu' lenta della CPU
  • La RAM e' un collo di bottiglia
  • A che serve spendere soldi per una CPU molto
    veloce se poi non possiamo sfruttarla?

62
SOLUZIONE LA MEMORIA CACHE
  • livello di memoria intermedio tra i registri e
    la ram.
  • per memorizzare i dati usati piu spesso senza
    doverli recuperare RAM
  • 64KB, 128KB, 256KB, 512KB
  • interna o esterna alla CPU
  • Influisce moltissimo sulle prestazioni e il costo
    della CPU (e quindi del computer)

63
LA MEMORIA CACHE
copia il programma in RAM per l'esecuzione
copia un pezzettino di programma e dei dati in
cache
programma
CPU
gram
programma
RAM
cache
hard disk
esegui le istruzioni del programma
64
MEMORIE DI UN COMPUTER
  • Registri 16/64 Byte 100 picosec.
  • Cache 128/512 KB nanosecondi
  • RAM 16/256 MB 10 nanosec
  • Hard disk 2/10 GB 10 microsec.
  • Nastri gt 10 GB millisecondi

65
DISPOSITIVI DI INPUT/OUTPUT (I/O, PERIFERICHE)
  • Terminali. Tastiera Video
  • risoluzione, dimensione in pollici,
  • Stampanti
  • ad aghi, a getto, dinchiostro, laser,
  • Modem per collegarsi in rete
  • Scanner per digitalizzare le immagini
  • lettori CD, CDrw, DVD, ...

66
I PROGRAMMI (IL SOFTWARE!!!)
  • Qualcosa di assolutamente immateriale,
    memorizzato mediante supporti magnetici ed
    elettronici che dice al computer cosa fare
  • Il computer e programmabile. Usando programmi
    (sequenze di istruzioni) diversi, gli facciamo
    fare cose diverse

67
IL SOFTWARE DI BASE
  • Si ma dobbiamo impartire ordini al computer
    usando solo il codice binario???
  • Ovviamente no il computer e dotato di alcuni
    programmi (il software di base) che rendono il
    computer facile da usare
  • Questi programmi trasformano il computer in una
    macchina virtuale, piu vicina alle esigenze
    dellutente che puo cosi ignorare i dettagli
    implementativi.

68
IL SOFTWARE DI BASE
  • Il sistema operativo che permette di
  • sfruttare le risorse del computer in modo
    semplice e (si spera) intuitivo (si pensi ad
    esempio alle interfacce grafiche)
  • usare i programmi che ci interessano (di
    scrittura, di studio, i videogames) senza
    preoccuparci di come questo avvenga allinterno
    del computer

69
IL SOFTWARE DI BASE
  • I Linguaggi di programmazione ad alto livello,
    che permettono di
  • scrivere i propri programmi, cioe di usare il
    computer come vogliamo noi
  • di poter usare questi programmi su qualsiasi
    (beh, quasi) computer (questa si chiama
    portabilita)

70
IL SISTEMA OPERATIVO
  • E di gran lunga il programma piu importante che
    gira su un qualsiasi computer
  • Senza il Sistema Operativo (SO) il computer
    sarebbe scomodissimo e complicatissimo da usare.

71
COSA FA IL SIST. OPERATIVO?
  • Gestisce in modo efficiente le risorse del
    computer cpu, memoria, periferiche.
  • "Capisce" i comandi dellutente mouse e clicks,
    esecuzione di programmi,
  • Nasconde allutente tutti i problemi di gestione
    delle varie parti del computer

72
LA CIPOLLA DEL SISTEMA OPERATIVO
  • INTERFACCIA con L'utente

GESTIONE MEMORIA/RISORSE
dove si eseguono i programmi
73
LE FUNZIONI PRINCIPALI DEI SO
  • Gestione del processore
  • gestione della memoria principale
  • gestione della memoria virtuale
  • gestione della memoria secondaria (il file system)

74
LESECUZIONE DEI PROGRAMMI
  • Quando clicckate 2 volte sullicona di un
    programma, il S.O.
  • cerca il programma sullhard disk
  • copia il programma in memoria centrale
  • imposta il Progr. Counter con lindirizzo in
    memoria centrale della prima istruzione del
    programma

75
LA GESTIONE DEI PROCESSI
  • Il ruolo del processore e di eseguire i
    programmi
  • Un processo e un programma in esecuzione

76
SISTEMI MONO-USER/TASKING
  • Un solo utente puo eseguire un programma per
    volta.
  • Il programma viene lanciato, esegue le proprie
    funzioni e termina.
  • Ma la CPU viene sfruttata al meglio?

77
NEI SIST. MONO-USER/TASKING SI SPRECA UN SACCO DI
TEMPO!
  • La CPU e molto piu veloce dei dischi e delle
    periferiche, e passa la maggior parte del suo
    tempo in attesa del completamento delle
    operazioni di questi devices
  • durante lattesa si dice che la CPU e in uno
    stato inattivo detto idle

78
ESEMPIO (1)
  • Un processo richiede lesecuzione di 1000
    istruzioni. Ogni istruzione richiede 1 microsec.
    di CPU. (tempo tot. 1millisec.)
  • A meta esecuzione e richiesta la lettura di un
    dato su hard disk. Tempo di lettura 1 millisec.
  • Durata totale dellesecuzione 2 millisec.
  • Idle time 1millisec 50 del tempo di
    esecuzione TEMPO SPRECATO!

79
ESEMPIO (2)
  • Processo 1000 istruzioni. Ogni istr. 1
    microsec. (tempo tot. 1millisec.)
  • A meta esecuz. e richiesto un dato allutente.
    Tempo di reazione 1 sec.
  • Durata totale 1001 millisecondi
  • Idle time 1sec 99,9 del tempo di esecuzione
    TEMPO SPRECATO!!!!!!!!

80
SOLUZIONE
  • Quando la CPU e idle (insomma, quando non ha
    nulla da fare) la si puo sfruttare per eseguire
    (parte di) un altro processo.
  • Quando un processo si ferma (e.g., in attesa di
    un dato dallutente) la CPU puo eseguire le
    istruzioni di un altro processo
  • Chi si occupa di realizzare questa alternanza di
    processi? Il S.O. (ci risparmiamo il come).

81
IL MULTI-TASKING
  • Piu programmi possono essere eseguiti
    contemporaneamente
  • In realta in esecuzione ce sempre un solo
    processo, ma se lalternanza e molto frequente,
    si ha unidea di simultaneita
  • si dice che il sistema e multi-programmato.

82
GLI STATI DI UN PROCESSO in un S.O. MULTI-TASKING
83
SI, MA CHE SUCCEDE SE
  • Un processo non si ferma mai in attesa di I/O o
    di una risorsa?
  • Piu utenti vogliono usare il computer?
  • E necessario far si che la risorsa piu
    importante del computer - la CPU - sia
    distribuita equamente tra i processi (dello
    stesso utente e di utenti diversi)

84
IL TIME SHARING
  • Ad ogni processo viene assegnato un quanto di
    tempo (e.g., 10 millisec). Nel quale puo usare
    la CPU.
  • Terminato il quanto di un processo, il processo
    viene sospeso e la CPU viene assegnata ad un
    altro processo.
  • Un processo puo usare meno del quanto che gli
    spetta deve eseguire operazioni di I/O oppure ha
    terminato la sua computaz.

85
EFFETTI DEL TIME SHARING
  • Lesecuzione di piu processi appare avvenire
    realmente in parallelo (questo parallelismo,
    pero, e solo virtuale).
  • Piu utenti possono usare allo stesso tempo il
    computer, perche la CPU viene assegnata
    periodicamente ai processi dei vari utenti (e.g.,
    ogni 10 o 100 millisec.)
  • Ovviamente, piu processi e piu utenti ci sono e
    piu le prestazioni si degradano

86
GLI STATI DI UN PROCESSO in un S.O. TIME SHARING
E finito il quanto di tempo
87
  • I

88
GESTIONE DELLA MEMORIA PRINCIPALE
  • Il problema e data la memoria primaria del
    computer, come dobbiamo usarla per far girare i
    processi in esecuzione?

89
SISTEMI MONO-PROGRAMMATI
  • Una porzione di memoria per il S.O., una porzione
    per caricare il programma da eseguire.

Sistema operativo
Processo utente
90
SISTEMI MULTI-PROGRAMMATI
  • Pero', se si vogliono eseguire "contemporaneamente
    " piu' programmi, dobbiamo prevedere un'area per
    ognuno di essi.
  • Nel caso piu' semplice, il S.O. assegna un pezzo
    di memoria a ciascun programma.

91
PARTIZIONI MULTIPLE ALLOCAZIONE CONTIGUA FISSA
  • E fissato a priori il numero e le dimensioni
    delle partizioni

92
PARTIZIONI MULTIPLE ALLOCAZIONE CONTIGUA FISSA
  • La strategia e facile da implementare, ma
  • Si spreca spazio allinterno delle partizioni
    perche un processo non ha sempre le dimensioni
    esatte della partizione in cui e allocato.
    Questo problema si chiama FRAMMENTAZIONE INTERNA

93
PARTIZIONI MULTIPLE ALLOCAZIONE CONTIGUA FISSA
  • Una partizione libera puo rimanere inutilizzata
    se ha una dimensione inferiore a quella di un
    processo che deve essere eseguito. Questo
    problema si chiama FRAMMENTAZIONE ESTERNA

94
PARTIZIONI MULTIPLE ALLOCAZIONE CONTIGUA FISSA
  • I processi con dimensione maggiore della
    partizione piu grande non possono mai essere
    eseguiti
  • Del resto, se si prevedono partizioni troppo
    grandi si ha una eccessiva frammentazione
    interna. Se sono troppo piccole si ha troppa
    framment. esterna.

95
PARTIZIONI MULTIPLE ALLOC.CONT. VARIABILE
  • Principio allocare quando richiesto la quantita
    di memoria necessaria.
  • Scompare la frammentazione interna

96
MEMORIA VIRTUALE
  • Problema
  • Memoria principale 1MB
  • Dimensione del Processo 1 (P1) 800KB
  • Dimensione del Processo 2 (P2) 700KB
  • Possiamo eseguirli contemporaneamente?
  • Con le tecniche che abbiamo visto finora, no?

97
MEMORIA VIRTUALE SWAPPING
  • Quando il processo in esecuzione si ferma, la sua
    immagine e copiata in unarea riservata al S.O.
    in memoria secondaria (swap area)
  • Limmagine del nuovo proc. in esecuzione puo ora
    essere copiata in memoria primaria
  • Quando un proc. esce dallo stato di attesa, prima
    che possa diventare pronto, la sua immagine deve
    essere ricaricata in memoria primaria

98
MEMORIA VIRTUALE SWAPPING
  • Parliamo di memoria virtuale, perche di fatto,
    sono in esecuzione contemporaneamente due
    processi la cui dimensione totale e maggiore
    delle dimensioni della memoria reale.

99
MEMORIA VIRTUALE Segmentazione
  • Nello swapping, limmagine di un processo sta
    tutta in memoria primaria o in mem. Secondaria
  • Se un processo e troppo grande non si puo
    comunque eseguire.
  • Ma allora, perche non tenere in mem. Primaria
    solo la parte di un processo che serve in quel
    momento?

100
MEMORIA VIRTUALE segmentazione
  • Ad esempio, nel programma WORD
  • Un utente esperto non usera mai il manuale in
    linea. Serve caricarlo in memoria?
  • La scrittura di una lettera non richiede la
    produzione di disegni. Serve caricare in memoria
    il codice per disegnare, che non verra mai usato
    (cioe eseguito dalla cpu)?

101
MEMORIA VIRTUALE segmentazione
  • Nella gestione della memoria a segmenti, vengono
    effettivamente caricati in mem. Primaria solo i
    pezzi del programma in esecuzione che servono in
    quel momento.
  • Ma che succede se il processo deve usare un pezzo
    di programma che manca?

102
MEMORIA VIRTUALE segmentazione
  • Si verifica un segment fault il S.O. si accorge
    che il segmento manca. Sospende il processo
    relativo e fa partire le operazioni per
    recuperare dalla memoria secondaria il segmento
    mancante e copiarlo in memoria primaria
  • Intanto, un altro processo puo usare la cpu.
  • Quando la segmento mancante e disponibile, il
    processo sospeso puo ripartire (e pronto)

103
GESTIONE DELLA MEMORIA SECONDARIAIL FILE SYSTEM
  • I file di un computer sono memorizzati in maniera
    permanente sullhard disk.
  • Fisicamente, i file sono memorizzati in blocchi
    (o record fisici) di dimensione fissa variabile
    tra 512 a 4kB
  • Logicamente, i file sono organizzati in una
    struttura ad albero detta File System

104
IL FILE SYSTEM
  • Non ha senso tenere tutti i file insieme.
    Conviene raggrupparli a seconda delluso.
  • Il S.O. mette a disposizione dei file
    particolari le cartelle (o folder, o directory)
    che sono usati per contere file e altre altre
    cartelle.
  • Per mezzo delle cartelle e quindi possibile dare
    una struttura al file system. In particolare una
    struttura gerarchica ad albero

105
IL PATHNAME DI UN FILE
  • Allinterno del file system, il percorso che si
    deve compiere per raggiungere quel file.
  • Ossia la successione di cartelle che si deve
    attraversare per raggiungere il file, a partire
    dalla radice del file system
  • Nella stessa cartella non ci possono essere due
    file con lo stesso nome, quindi il pathname di un
    determinato file e sempre unico.

106
OPERAZIONI SUI FILE
  • Il S.O. fornisce vari supporti per
  • Operare sui file (leggere, modificare, rimuovere,
    rinominare, stampare,)
  • Usare il file system (creare, (ri)nominare,
    rimuovere, copiare, spostare, leggere il
    contenuto delle cartelle)
  • Proteggere i file (ad esempio si puo proibire la
    modifica, o la lettura, o la rimozione di (gruppi
    di) file.

107
RETI DI COMPUTER
  • Colleghiamo piu computer in rete per
  • scambiare informazioni (scambio di documenti,
    e-mail, mailing-list, newsgroups, web, )
  • condividere risorse (periferiche e hard disk in
    comune, computazioni distribuite, )
  • aumentare la tolleranza ai guasti (se un computer
    si rompe, un altro puo sostituirlo)

108
TIPI DI RETI ( dal punto di vista della loro
estensione)
  • Rete locale (LAN - Local Area Network) collega
    due o piu computer in un area non piu grande di
    un palazzo. Collega i computer di un laboratorio,
    gruppo di lavoro, ufficio, ditta.
  • Internet la rete delle reti. Collega fra loro
    reti locali e singoli computer di tutto il mondo
  • Rete metropolitana concettualmente simile ad una
    rete locale, collega computer di una singola
    organizzazione (es. Banca con filiali cittadine).

109
TIPI DI RETI LOCALI LINEARI(ETHERNET, APPLETALK)
  • Ethernet e il tipo di rete locale piu diffuso.
  • Qualsiasi computer di qualsiasi tipo prevede la
    possibilita di usare una scheda Ethernet per
    connettersi alla rete locale

110
TIPI DI RETI LOCALI AD ANELLO(IBM)
111
TIPI DI RETI LOCALI A STELLA
  • HUB dispositivo hardware specializzato che
    smista le comunicazioni dei computer

112
TIPI DI RETI LOCALI A TOPOLOGIA MISTA
113
SISTEMI OPERATIVI DI RETE (LOCALE)
  • In una LAN si vogliono condividere le risorse, di
    solito, come minimo, stampanti e hard disk.
  • Il S.O. deve permettere anche luso di quelle
    risorse che non sono fisicamente collegate al
    computer su cui si sta lavorando.
  • I S.O. dei compuer in rete devono quindi
    dialogare fra loro per permettere la condivisione
    delle risorse.

114
FILE SYSTEM DISTRIBUITO
  • Parliamo di file system distribuito quando
    lutente del file system vede ununica struttura
    ad albero, e non si accorge che alcune parti
    dellalbero (sub-tree) risiedono in realta
    sullhard disk di un altro computer della rete.
  • Il S.O. maschera completamente la situazione. (in
    Unix, nel S.O. Windows un po meno)
  • E possibile configurare in file system
    distribuito in molti modi diversi, prendendone
    pezzi dalle varie macchine in rete

115
SISTEMI OPERATIVI DISTRIBUITI
  • Versione piu sofisticata dei S.O. di rete
  • Quando lutente di un computer esegue un
    programma, non e detto che questo venga fatto
    girare sulla CPU locale il S.O. si occupa di
    selezionare il computer (e quindi la CPU) piu
    scarica su cui il processo deve girare.
  • I S.O. distribuiti sono ancora in fase di studio.
    Non esiste nulla a livello commerciale

116
TRASMISSIONE SERIALE O PARALLELA
  • Si supponga di dover trasmettere un byte
  • Se il canale di comunicazione e fatto di un solo
    filo, dobbiamo trasmetterlo serialmente, un bit
    dopo laltro.
  • Se il canale di comunicazione fatto di 8 fili,
    possiamo trasmettere il byte in un colpo solo.
    Gli otto bit sono trasmessi in parallelo.

117
TRASMISSIONE SERIALE O PARALLELA
  • La trasmissione parallela e piu veloce, ma piu
    costosa da implementare, e viene usata di solito
    solo per collegamenti punto a punto e molto corti
    (es. computer - stampante)
  • La trasmissione seriale e quella normalmente
    usata nelle reti, locali e non locali.
  • In una LAN Ethernet, la trasmissione avviene a 10
    o 100Mbit/sec (cioe almeno 1MByte/sec)

118
PROTOCOLLO DICOMUNICAZIONE
  • I computer di una rete, per comunicare si
    scambiano dei messaggi. Ogni messaggio deve
    contenere
  • lindirizzo del mittente e del destinatario
  • il tipo di servizio richiesto ed eventuali dati
  • Ad esempio, il PC A puo richiedere al PC B la
    stampa di un file sulla stampante connessa a B
  • Il protocollo deve essere anche in grado di
    gestire gli errori di comunicazione

119
PROTOCOLLO DICOMUNICAZIONE
  • TCP/IP (Transmission Control Protocol/Internet
    Protocol) e il protocollo di comunicazione usato
    in internet e anche nella maggior parte delle
    altre reti.
  • Praticamente tutti i servizi offerti da Internet,
    compreso il web, sono costruiti usando TCP/IP

120
TRASMISSIONE DIGITALE O ANALOGICA
  • Nelle reti locali, la comunicazione tra due
    computer passa di solito su cavi dedicati,
    installati esplicitamente per la rete, e adatti
    per la trasmissione digitale delle informazioni.
  • (Semplificando un po) su questi cavi si ha una
    variazione del livello di tensione fra due
    valori, che corrisponde alla trsmissione di bit
    di valore zero oppure 1.

121
TRASMISSIONE DIGITALE O ANALOGICA
  • Per le comunicazioni su lunga distanza, si cerca
    di sfruttare le reti di comunicazione esistenti,
    come ad esempio la rete telefonica.
  • La rete telefonica e pero fatta per comunicare
    la voce, cioe un segnale analogico che varia in
    maniera continua in una banda di frequenze.
  • Sono necessari dei dispositivi per poter usare la
    rete telefonica come mezzo di comunicazione tra
    computer

122
IL MODEM
123
IL MODEM
  • I modem attuali hanno velocita di trasmissione
    di 14.400, 28.800, 38.400, 56.600 bit/sec. Ossia
    una velocita massima di non piu di 6 kByte/sec
  • Se due computer comunicano con un modem, la
    velocita di comunicazione e sempre quella del
    modem piu lento.
  • Il modem e usato soprattutto per le
    comunicazioni private (ad esempio un utente che
    si collega ad internet tramite il suo provider)

124
COMUNICAZIONE SU LINEA DEDICATA O COMMUTATA
  • Quando due computer sono connessi direttamente da
    un cavo di comunicazione, si parla di linea
    dedicata di trasmiss./comunic.
  • Nel caso piu generale, e soprattutto su
    internet, la comunicazione tra due computer
    avviene attraverso computer intermedi, che fanno
    da tramite tra i due che devono comunicare,
    ritrasmettendo i loro messaggi. Si parla allora
    di comunicazione su linea commutata

125
LINEE COMMUTATE IL TELEFONO
  • I telefoni di un distretto telefonico fanno capo
    ad una centrale di smistamento, che comunica con
    le centrali degli altri distretti.
  • Quando telefoniamo, la chiamata viene fatta
    passare attraverso una o piu centrali, fino a
    raggiungere il numero chiamato.
  • Comunicando fra loro, le centrali costruiscono
    una connessione diretta fra i due telefoni, che
    dura tutto (e solo) il tempo della telefonata.

126
UNA SEMPLICE RETE A LINEA COMMUTATA
B
A
C
D
Con le linee commutate si risparmiano soldi
127
TRASMISSIONE A COMMUTAZIONE DI CIRCUITO
  • Quando due telefoni comunicano, la linea e
    occupata nessuno puo chiamare quei telefoni.
  • Che succede se usiamo una comunicazione a
    commutazione di circuito su internet?
  • DISASTRO qualsiasi servizio offerto sarebbe
    disponibile ad un solo utente per volta.
  • Ad esempio, chi riesce a connettersi ad un sito
    web lo puo usare in esclusiva per tutto il tempo
    che vuole. DISASTRO

128
TRASMISSIONE A COMMUTAZIONE DI PACCHETTO
  • Ogni messaggio e diviso in tanti pacchetti
    numerati di dimensione fissa.
  • Ogni pacchetto contiene lindirizzo del computer
    destinatario e del mittente.
  • Ogni pacchetto e trasmesso separatamente. Una
    volta inviato, il mittente se ne disinteressa
  • Ogni pacchetto fa (virtualmente) una strada
    diversa per arrivare al destinatario

129
TRASMISSIONE A COMMUTAZIONE DI PACCHETTO
  • I pacchetti non arrivano necessariamente nello
    stesso ordine con cui sono stati inviati
  • Il destinatario aspetta di aver ricevuto tutti i
    pacchetti per ricomporli e ricostruire il msg.
  • Ogni pacchetto occupa il mezzo di trasmissione e
    la scheda di rete per un tempo molto breve
  • Si ha un effetto di parallelismo ogni computer
    puo essere coinvolto contemporaneamente in piu
    comunicazioni

130
INSTRADAMENTO DEI PACCHETTI (ROUTING)
  • Come far arrivare i pacchetti a destinazione?
  • Ogni nodo della rete mantiene una tabella che
    indica a quale/quali vicini ritrasmettere un
    pacchetto non destinato a lui, in base
    allindirizzo di destinazione del pacchetto.
  • La scelta del nodo a cui inoltrare il pacchetto
    dipende anche da situazioni temporanee di carico
    della rete, guasti, ecc.

131
COMMUTAZIONE DI PACCHETTO(PACKET SWITCHING)
132
QUINDI, QUANDO VI COLLEGATE AD INTERNET
CHIAMANDO IL VOSTRO PROVIDER COL TELEFONO
  • Dal telefono di casa vostra al provider e in
    corso una comunicazione a commutazione di
    circuito (la vostra linea e occupata, perche
    state effettuando una chiamata telefonica)
  • dal provider verso qualsiasi punto di internet al
    quale decidete di collegarvi, la comunicazione e
    a commutazione di pacchetto.

133
NAMING
  • Ogni computer di una rete deve avere un nome
    logico unico. Il nome logico e usato dagli
    utenti della rete per comunicare con quel
    computer
  • Il computer ha anche un indirizzo fisico
    lindirizzo con il quale il software che gestisce
    le comunicazioni in rete localizza e gestisce la
    comunicazione con quel computer.
  • Deve essere gestita una corrispondenza tra il
    nome logico e lindirizzo fisico del computer

134
INTERNET
  • Collega fra loro reti locali e metropolitane di
    tutto il mondo.
  • La comunicazione tra le sottoreti avviene
    sfruttando canali di comunicazione dedicati ad
    alta tecnologia (ISDN, ATM, fibre ottiche) che
    consentono velocita di trasmissione dellordine
    di decine o centinaia di Megabit/sec
  • Ovviamente non avrebbe senso usare la rete
    telefonica, che e troppo lenta

135
INTERNET
  • Ogni rete locale si affaccia su Internet
    attraverso un dispositivo (un vero e proprio
    computer ) detto router. Il router si occupa di
    smistare il traffico dei pacchetti in uscita ed
    in entrata nella rete locale rispetto a internet
  • Al router e spesso associato anche un
    dispositivo detto firewall. Il firewall protegge
    la rete locale da accessi indesiderati
    dallesterno (e in alcuni casi, viceversa)

136
INTERNET
  • I vari servizi offerti da internet sono costruiti
    col protocollo di comunicazione TCP/IP. Oltre al
    Web, i piu importanti sono
  • E-MAIL (Electronic Mail)
  • FTP (File Transfer Protocol) Permette di
    trasferire file tra computer
  • TELNET Permette di collegarsi a qualsiasi
    computer, e usarne le risorse (cpu e hard disk)
    come se fosse sulla nostra scrivania
  • Win95 non ha tutte le funzionalita di UNIX

137
INDIRIZZAMENTO IN INTERNET
  • Gli indirizzi logici Internet hanno la forma
  • aaa.bbb.ccc
  • e sono organizzati in domini e sotto domini
  • I domini possono essere geografici
  • xxx.yyy.it aaa.bbb.uk jjj.kkk.ca
  • o di altro tipo
  • aaa.com bbb.ccc.ddd.net xxx.gov

138
INDIRIZZAMENTO IN INTERNET
  • Allinterno dei domini vi sono i sotto-domini,
    sotto-sotto-domini, e cosi via, fino
    eventualmente a raggiungere lo specifico computer
    della rete locale relativa
  • xxx.unito.it (sotto-dominio delluniv. di Torino)
  • di.unito.it (sotto-sotto-dominio del Dip. Di
    Informat., a cui corrisponde fisicamente la rete
    locale del Dip.
  • Pianeta.di.unito.it (uno dei computer della rete
    locale del Dipartimento di Informatica dellUniv.
    Di Torino, Italia)

139
INDIRIZZAMENTO IN INTERNET
  • Gli indirizzi logici sono usati solo per
    comodita degli utenti. I veri indirizzi
    Internet, (detti indirizzi fisici), sono
    numerici. Ad esempio
  • pianeta.di.unito.it 130.192.239.1
  • 130 dominio .it
  • 192 sotto-dominio .unito
  • 239 rete locale del Dip. di Informatica
  • 1 il computer pianeta

140
IL DOMAIN NAME SERVICE (DNS)
  • Il meccanismo di gestione degli indirizzi
    internet e chiamato Domain Name Service (DNS)
  • Ogni dominio e gestito da un computer che
    contiene lassociazione tra i nomi logici e gli
    indirizzi fisici di ogni suo sotto-dominio
  • Ogni sottodominio e gestito da un computer che
    contiene lassociazione tra i nomi logici e gli
    indirizzi fisici di ogni suo sotto-sotto-dominio
  • In questo modo e facile localizzare qualsiasi
    punto della rete usando solo nomi logici.

141
IL DOMAIN NAME SERVICE (DNS)
  • Ad esempio, se da un pc negli USA si vuole
    comunicare con la macchina pianeta.di.unito.it.
  • Viene contattato il gestore del dominio .it (130)
  • che contatta il gestore del dominio .unito (192)
  • che contatta il gestore del dominio .di (239)
  • che sa che la macchina pianeta, allinterno della
    rete locale .di (239) ha numero 1.
  • Viene quindi restituito lindirizzo fisico che
    sara usato nella comunicazione 130.192.239.1

142
CENNI DI PROGRAMMAZIONE
  • Il computer esegue programmi
  • Un programma eseguibile dal computer e una
    sequenza di istruzioni macchina comprensibili da
    quel computer.
  • Usando sequenze diverse di istruzioni, e dati
    diversi, possiamo far fare al computer le cose
    piu disparate

143
CENNI DI PROGRAMMAZIONE
  • Pero scrivere programmi in linguaggio macchina
    (in assembler) e scomodo, perche il linguaggio
    e molto distante da quello umano.
  • Inoltre, un programma in assembler gira solo su
    un tipo di cpu, e sarebbe comodo poter usare lo
    stesso programma su cpu e con S.O. diversi senza
    doverlo riscrivere ogni volta (portabilita)

144
LING.DI PROGRAMMAZIONE AD ALTO LIVELLO
  • I linguaggi di programmazione ad alto livello
    permettono di scrivere programmi con una
    notazione adatta agli esseri umani, e in alcuni
    casi molto intuitiva.
  • Usando degli opportuni traduttori (compilatori ed
    interpreti) lo stesso programma puo essere usato
    su macchine diverse
  • Fortran, Cobol, Pascal, Ada, C, C, Java, Lisp,
    ML, Prolog,...

145
IL COMPILATORE
  • Un programma scritto in un linguaggio ad alto
    livello e detto programma sorgente.
  • Per essere eseguito su un computer , va tradotto
    nel linguaggio macchina del computer.
  • Il compilatore e un programma che esegue la
    traduzione, producendo il programma oggetto,
    ossia una sequenza di istruzioni macchina
  • Il compilatore segnala anche eventuali errori di
    sintassi nella scrittura del programma sorgente

146
IL COMPILATORE
Programma P scritto nel linguaggio L
Compilatore per P sul computer M
Programma P nel linguag. macchina di M
Esecuzione di P su M
147
LINTERPRETE
  • In alternativa alla compilazione, un programma
    sorgente puo essere interpretato.
  • Un interprete e un programma che non produce
    alcun programma oggetto, ma legge il ogni
    istruzione del programma sorgente e genera le
    istruzioni macchina corrispondenti, che vengono
    passate allhardware per lesecuzione.

148
COMPILATORI VS INTERPRETI
  • In un programma compilato, la traduzione avviene
    una sola volta, e poi il programma oggetto puo
    essere eseguito quanto si vuole
  • In un programma interpretato, la traduzione
    avviene tutte le volte che si esegue il progr.
  • Molti linguaggi permettono entrambe le scelte
  • Attualmente, i computer sono cosi potenti che
    anche la compilazione di lunghi programmi non
    richiede molto tempo.

149
IL CONCETTO DI ALGORITMO
  • Un algoritmo e una sequenza di passi necessari
    per risolvere un problema o eseguire una
    computazione
  • In alcuni casi, lo stesso problema/computazione
    puo essere risolto in modi diversi, ai cui
    corrispondono diversi algoritmi
  • Un programma non e altro che la descrizione di
    un algoritmo scritta nel linguaggio di
    programmazione scelto.

150
IL CONCETTO DI VARIABILE
  • Per eseguire una qualsiasi computazione, abbiamo
    bisogno di poter immagazzinare i risultati
    temporanei e finali della computazione stessa.
  • Ogni linguaggio ad alto livello mette a
    disposizione le variabili contenitori in cui
    immagazzinare i dati della computazione
  • Concettualmente, le variabili sono come pezzi di
    carta su cui si possono annotare/modificare i
    valori di un calcolo che si sta facendo

151
IL CONCETTO DI VARIABILE
  • Ogni variabile ha un nome mnemonico, che si usa
    nel programma per riferirsi alla var. stessa.
  • Una variabile contiene un valore che puo essere
    modificato a piacimento
  • Durante lesecuzione di un programma, il sistema
    operativo mantiene una associazione tra il nome
    di ogni var. e lindirizzo della cella di memoria
    in cui e memorizzato il suo valore
  • Quindi una variabile e semplicemente una
    astrazione della cella di memoria fisica.

152
IL CONCETTO DI VARIABILE
  • Quando si scrive un programma e necessario
    dichiarare quali variabili vogliamo usare.
  • Le variabili possono essere di tipo diverso, per
    indicare che le usiamo per memorizzare dati di
    tipo diverso
  • Variabile LETTERA, tipo carattere
  • Variabile SOMMA, tipo intero

153
LIMPORTANZA DELLE VARIABILI
  • Le variabili sono lo strumento fondamentale per
    assicurare la flessibilita dei programmi.
  • Lo stesso programma, eseguito con variabili di
    valore diverso da risultati diversi. Lo stesso
    programma si adatta cioe alle esigenze del
    momento, senza dover essere riscritto

154
ESEMPIO DUSO DI VARIABILI
  • Program SILLY
  • begin
  • Variables YEARS,DAYS, type integer
  • read YEARS from input
  • DAYS YEARS 365
  • print DAYS
  • end

155
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR.
  • Definizione delle variabili che verranno usate
    nel programma, e del loro tipo
  • int PIPPO, PLUTO
  • char NOME
  • float RISULTATO

156
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR.
  • Istruzioni elementari assegnamento di un valore
    ad una variabile
  • PIPPO 5
  • PLUTO 7
  • RISULTATO PIPPO/PLUTO

157
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR.
  • Azioni condizionali
  • if (NOME daniele)
  • then RISULTATO 0
  • else
  • PIPPO 5
  • PLUTO 7

158
COSTRUTTI DI BASE DI UN LINGUAGGIO DI PROGR.
  • Azioni ripetute
  • while (PIPPO PLUTO lt 100)
  • repeat
  • PIPPO PIPPO1
  • PLUTO PLUTO1

159
DIAGRAMMI DI FLUSSO
  • Notazione grafica usata per descrivere in modo
    intuitivo le azioni di cui e fatto un algoritmo.
  • Viene usata per descrivere i passi salienti di un
    algoritmo, senza doversi preoccupare dei dettagli
    sintattici del programma corrispondente
  • Una volta che lalgoritmo e stato descritto con
    un diagramma di flusso, deve pero essere
    trasformato nel programma corrispondente.
  • Ogni azione e rappresentata da un blocco

160
BLOCCHI DI FLUSSOINIZIO E FINE ALGORITMO
161
BLOCCHI DI FLUSSOUNA O PIU AZIONI ELEMENTARI
162
BLOCCHI DI FLUSSOBLOCCO CONDIZIONALE
163
BLOCCHI DI FLUSSOBLOCCO DI RIPETIZIONE
164
BLOCCHI DI FLUSSOINPUT/OUTPUT
165
THE SILLY PROGRAM
166
ESEMPIO DI TRADUZIONE
  • variables A, B, X, type integer
  • .
  • If (A B) then X 1 else X 2
  • .

167
  • A locazione 1000 B 1002 X 1004
  • 4726 .
  • 4730 LOAD 1000,R1
  • 4734 LOAD 1002,R2
  • 4738 LOAD 1004,R3
  • 4342 JNE R1,R2,4354
  • 4346 SET R3,1
  • 4350 JUMP 4358
  • 4354 SET R3,2
  • 4358 ..

168
IL CONCETTO DI RECORD
  • Vogliamo mantenere in un file informazioni di
    tipo anagrafico su un insieme di persone. Per
    ogni persona vogliamo memorizzare i seguenti
    attributi
  • Nome, Cognome, Data di nascita, Residenza
  • Ogni attributo prende il nome di campo
  • Linsieme dei campi prende il nome di record

169
IL CONCETTO DI RECORD
  • Possiamo assegnare una dimensione fissa ad ogni
    campo del record. Ad esempio
  • Nome 20 byte
  • Cognome 30 byte
  • Residenza 40 byte
  • Data di nascita 8 byte
  • E memorizzare un gruppo di record in un file. Il
    file e visto come diviso in tanti record di
    dimensione fissa

170
IL CONCETTO DI RECORD
171
CAMPI A DIMEN. VARIABILE
  • Usando campi a dimensione fissa e piu facile
    gestire le informazioni nel file, cioe inserire,
    cancellare e cercare un record specifico.
  • Pero i campi a dimensione fissa sprecano spazio,
    oppure possono essere di dimensione
    insufficiente.
  • Si usano allora anche record i cui campi hanno
    dimensione variabile, in modo da adattarsi
    esattamente alla lunghezza della informazione da
    memorizzare

172
IL CAMPO CHIAVE
  • Ogni record contiene di solito un campo in piu
    che contiene un valore progressivo assegnato ai
    record man mano che sono aggiunti nel file.
  • Questo campo, detto chiave del record puo essere
    usato per compiere ricerche in modo veloce
    allinterno del file stesso.
  • La chiave puo avere un significato specifico
    numero di CC, codice fiscale, partita IVA.
  • Il valore della chiave e unico in un file non
    ci sono due record con lo stesso valore di chiave.

173
IL CAMPO CHIAVE
174
SITUAZIONE PIU REALISTICA
  • Notate che i record sono ordinati per la chiave

175
RICERCA SEQUENZIALE DI UN RECORD NEL FILE
  • Input valore della chiave da cercare.
  • While ce un record la leggere
  • leggi record corrente
  • if chiave-corrente chiave da cercare
  • then STOP

176
RICERCA SEQUENZIALE DI UN RECORD NEL FILE
  • Quante letture/confronti dobbiamo fare in media
    per trovare il record voluto se ce ne sono N nel
    file?
  • Se il record cercato e il primo, 1
    lettura/confr.
  • Se il record cercato e il secondo, 2
    letture/conf.
  • ..
  • Se il record cercato e lultimo, N
    letture/confr.
  • In media (12N)/N (N1)/2 N/2

177
RICERCA DICOTOMICA DI UN RECORD NEL FILE
  • Input valore della chiave da cercare.
  • While ce ancora un record da selezionare
  • Seleziona il record a meta del file
  • if chiave selezionata chiave da cercare
  • then STOP
  • else if chiave selezionata gt chiave da cercare
  • then ripeti tutto usando la prima meta
    del file
  • else ripeti tutto usando la 2a meta
    del file

178
RICERCA DICOTOMICA DI UN RECORD NEL FILE
  • Quante letture/confronti dobbiamo fare al massimo
    con una ricerca dicotomica?
  • Ad ogni record selezionato, se questo non e
    quello voluto, la porzione di file in cui cercare
    si dimezza.
  • Dato un elenco di N elementi, quante volte
    possiamo dividerlo per 2? Log2N

179
RICERCA DICOTOMICA DI UN RECORD NEL FILE
  • Quindi la ricerca dicotomica e piu efficiente
    di quella sequenziale, perche dobbiamo fare meno
    letture/confronti per trovare il record
    desiderato.
  • Pero la ricerca dicotomica funziona solo se i
    record del file sono ordinati secondo la chiave

180
  • 4 7 9 18 24 32 57 58 88 97 101 103 125
Write a Comment
User Comments (0)
About PowerShow.com