Esercizi di Informatica Grafica Giovanni...

30
Esercizi di Informatica Grafica Giovanni Stea

Transcript of Esercizi di Informatica Grafica Giovanni...

Esercizi di Informatica Grafica

Giovanni Stea

Esercizi di Informatica Grafica – Giovanni Stea

2

Gli esercizi contenuti in questa dispensa fanno riferimento al corso di Informatica Grafica, tenuto

presso il Corso di Laurea Specialistica a Ciclo Unico in Ingegneria Edile-Architettura dall’autore

della presente dispensa.

Disclaimer

Gli esercizi inclusi in questa dispensa hanno valore esclusivamente didattico. Essi sono stati verifi-

cati con cura, ma non sono garantiti per nessuno scopo specifico. L’autore non si assume nessuna

responsabilità riguardo ad essi. Chiunque abbia suggerimenti da darmi o trovi errori da correggere è

pregato di contattarmi.

Pisa, Settembre 2005

Giovanni Stea

Esercizi di Informatica Grafica – Giovanni Stea

3

1. - Rappresentazione dei numeri naturali

Esercizio 1.1

Rappresentare in base 2 i seguenti numeri:

1) ( ) 53241

b

2) ( ) 93241

b

3) ( ) 83241

b

Soluzione

Per i primi due casi, e’ necessario passare dalla base 10. Tenendo presente il significato della rap-

presentazione posizionale dei numeri, otteniamo:

( ) 3 2 1 05

3241 3 5 2 5 4 5 1 5 3 125 2 25 4 5 1 446b= ⋅ + ⋅ + ⋅ + ⋅ = ⋅ + ⋅ + ⋅ + =

( ) 3 2 1 09

3241 3 9 2 9 4 9 1 9 3 729 2 81 4 9 1 2386b= ⋅ + ⋅ + ⋅ + ⋅ = ⋅ + ⋅ + ⋅ + =

Dai numeri espressi in base 10, possiamo ricavare la rappresentazione in base 2 applicando

l’algoritmo mod&div, come descritto in Figura 1.

Div Mod

446 0

223 1

111 1

55 1

27 1

13 1

6 0

3 1

1 1

0

Div Mod

2386 0

1193 1

596 0

298 0

149 1

74 0

37 1

18 0

9 1

4 0

2 0

1 1

0

Figura 1 – algoritmo mod&div

Pertanto, abbiamo:

( ) ( )5 23241 110111110

b b≡

Esercizi di Informatica Grafica – Giovanni Stea

4

( ) ( )9 23241 100101010010

b b≡

3) Per quanto riguarda il terzo numero, si puo’ applicare sempre lo stesso procedimento usato per i

due precedenti. In questo caso, pero’, la base di partenza e la base di arrivo sono correlate da una

proprieta’ particolare: la prima e’ potenza della seconda, 38 2= . Ogni volta che si presenta questo

caso, conviene fare la conversione direttamente, senza passare dalla base 10. La conversione puo’

essere fatta osservando che ogni cifra in base 8 (cioe’ 30..7 0..2 1= − ) puo’ essere rappresentata con

tre cifre in base 2. La conversione tra una cifra della base 8 ed un gruppo di tre cifre della base 2

puo’ essere fatta semplicemente in maniera empirica, considerando che ciascuna cifra puo’ essere

scritta come somma delle prime tre potenze di due. Il risultato e’ quello riportato in Figura 2.

3 2 4 1

1 0 1 00 1 1 0 0 0 0 1

Cifra In base 2

0 000

1 001

2 010

3 011

4 100

5 101

6 110

7 111

Figura 2 – conversione dalla base 8 alla base 2

Esercizio 1.2

Siano dati i due numeri naturali 13541 e 21256.

1) Calcolare il numero di bit necessari per rappresentare in base 2 i due numeri.

2) Calcolare la rappresentazione in base 2 dei due numeri.

3) Calcolare la rappresentazione in base 2 della loro somma.

Soluzione

1) Il numero di bit necessario alla rappresentazione di un numero naturale N e’ il piu’ piccolo

: 2 1hh N− ≥ . Pertanto, 2 1h N≥ + , cioe’ ( )2log 1h N≥ + . Visto che h e’ il piu’ piccolo intero

che verifica questa proprieta’, posso scrivere ( )2log 1h N= +⎡ ⎤⎢ ⎥ . Nei due casi si ottiene 14h = ,

15h = .

2) Per rappresentare i numeri in base 2 utilizzo l’algoritmo mod&div. Il risultato e’, nei due casi,

11010011100101 e 101001100001000.

Esercizi di Informatica Grafica – Giovanni Stea

5

3) Per rappresentare in base 2 la somma dei due numeri sopra scritti, posso procedere come segue:

calcolo la loro somma in base 10, e converto il numero in base 2 applicando l’algoritmo

mod&div. Alternativamente, posso osservare che l’algoritmo con il quale siamo abituati a cal-

colare le somme consiste nel sommare le cifre di uguale posto (cioe’ le potenze di uguale ordi-

ne), utilizzando le cifre di posto successivo qualora la somma non sia rappresentabile con una

singola cifra (riporto). Quindi, tale algoritmo e’ una proprieta’ della notazione posizionale, in-

dipendente dalla base che si usa per rappresentare i numeri. Posso pertanto eseguire le somme in

base 2, applicando lo stesso algoritmo. La somma dei due numeri e’ descritta in Figura 3. Si os-

servi che la rappresentazione della somma richiede un bit in piu’ del piu’ grande degli operandi

(cioe’ 16 in totale), in quanto c’e’ un riporto.

+1 1 1 00 1 0 0 0 1 0 11 1

0 0 0 00 0 1 1 1 0 0 01 0 1

1 1 1 00 1 1 1 1 1 0 10 0 0

11

1

1 riporti

Figura 3 – Somma di numeri in base 2

Esercizi di Informatica Grafica – Giovanni Stea

6

2. - Architettura dei calcolatori

Esercizio 2.1

Si consideri una memoria con 1024 celle di 8 bit ciascuna.

1) Calcolare il numero di fili di indirizzo e di dati necessari sul bus.

2) Supponiamo che il processore voglia scrivere in memoria il numero 112, alla cella di indirizzo

516. Descrivere il contenuto dei fili di indirizzo e di dati.

3) Supponiamo che sia necessario portare nella cella di memoria di indirizzo 1010 il contenuto del

registro di interfaccia (supposto anch’esso largo 8 bit) presente nello spazio di I/O all’indirizzo

37. Descrivere le operazioni che il processore deve fare per eseguire il trasferimento.

Soluzione

1) Il numero di fili di dati e’ ovviamente 8, tanti quanti sono i bit da trasportare. Il numero di fili di

indirizzo e’ : 2 1024hh = . Quindi, 2log 1024 10h = = .

2) Per rispondere alla domanda e’ necessario convertire i numeri 112 e 516 in base 2. Si applica

quindi l’algoritmo mod&div, come riportato in Figura 4. Il risultato e’ ( ) 2112 1110000

b≡ ,

( ) 2516 1000000100

b≡ . Quindi, la configurazione dei fili del bus dati ed indirizzi sara’ quella ri-

portata in Figura 5. Si osservi che, visto che il numero 112 e’ rappresentabile su 7 bit, mentre il

bus dati e’ costituito da 8 fili, il bit piu’ significativo deve essere impostato a zero.

Div Mod

112 0

56 0

28 0

14 0

7 1

3 1

1 1

0

Div Mod

516 0

258 0

129 1

64 0

32 0

16 0

8 0

4 0

2 0

1 1

0

Figura 4 – algoritmo mod&div

Esercizi di Informatica Grafica – Giovanni Stea

7

7 6 5 4 3 2 1 0

1 0 0 0 0 0 0 1 0 00 1 1 1 0 0 0 0

7 6 5 4 3 2 1 09 8

bus dati bus indirizzi

Figura 5 – bus dati ed indirizzi

3) Ogni trasferimento di informazione deve necessariamente passare attraverso il processore, e ve-

dere coinvolto uno dei suoi registri generali. Pertanto, e’ necessario prima portare il contenuto

del registro di interfaccia in un registro generale del processore, e poi scrivere in memoria il

contenuto di quel registro generale. In termini di istruzioni (scritte, per brevita’, in linguaggio

mnemonico), si ha:

IN R1 37

STORE R1 1010

Esercizio 2.2

Si consideri il frammento di programma riportato in Figura 6, e lo si immagini contenuto in una

memoria RAM a partire nelle celle di indirizzo 100-106. Si consideri inoltre che le celle di indirizzo

50 e 51 contengono i dati riportati nei due casi a e b.

100 LOAD R1 50

101 LOAD R2 51

102 SUB R2 R1

103 JZ 106

104 STORE R1 52

105 JMP 107

106 STORE R2 52

107 ……………

Caso A

50 120

51 120

52

Caso B

50 8

51 150

52

……………

……………

Figura 6 – Contenuto della memoria

1) Stabilire cosa viene inserito nella cella di indirizzo 52 al termine dell’esecuzione del frammento

di programma sopra scritto nei due casi a) e b).

Esercizi di Informatica Grafica – Giovanni Stea

8

2) Supponendo che in tempo di accesso alla memoria sia di 50t ns= , stabilire il tempo di esecu-

zione del suddetto programma nei due casi a) e b). A tal scopo, si supponga trascurabile il tem-

po di esecuzione delle istruzioni di elaborazione e controllo.

Soluzione

1) Per risolvere l’esercizio conviene tener traccia di quello che viene scritto nei registri del proces-

sore.

100 LOAD R1 50

101 LOAD R2 51

102 SUB R2 R1

103 JZ 106

104 STORE R1 52

105 JMP 107

106 STORE R2 52

107 ……………

50 120

51 120

52

R1=120

R1=120, R2=120

R1=120, R2=0

R1=120, R2=0

0

Figura 7 – esecuzione nel caso a)

Nel caso a), le due celle di memoria di indirizzo 50 e 51 contengono lo stesso numero. Tale

numero viene caricato nei registri generali del processore R1 ed R2. La successiva sottrazio-

ne, pertanto, darà risultato nullo. Ciò rende vera la condizione testata dal salto condizionato

JZ, e quindi l’esecuzione del programma passa alla cella di indirizzo 106. A tale cella,

l’istruzione richiede di portare nella cella di indirizzo 52 il contenuto del registro R2, che è

zero.

100 LOAD R1 50

101 LOAD R2 51

102 SUB R2 R1

103 JZ 106

104 STORE R1 52

105 JMP 107

106 STORE R2 52

107 ……………

50 8

51 150

52

R1=8

R1=8, R2=150

R1=8, R2=142

8R1=8, R2=142

Figura 8 – esecuzione nel caso b)

Esercizi di Informatica Grafica – Giovanni Stea

9

Nel caso b), le due celle di memoria di indirizzo 50 e 51 contengono numeri diversi.. La sottra-

zione, pertanto, non darà risultato nullo. Ciò rende falsa la condizione testata dal salto condizio-

nato JZ, e quindi l’esecuzione del programma continua dall’istruzione ad essa successiva. Tale

istruzione richiede di portare nella cella di indirizzo 52 il contenuto del registro R1, che contie-

ne il valore letto nella memoria all’indirizzo 50, cioè 8.

2) L’esecuzione del programma nei due casi a) e b) differisce semplicemente per la veridicità o

meno della condizione testata all’istruzione 103. Nel caso in a), la condizione testata è vera, e

quindi eseguo le istruzioni 100-103, 106 (5 istruzioni in totale). Ciascuna istruzione deve essere

prelevata con una lettura in memoria. Inoltre, le istruzioni 100, 101, 106, richiedono la lettu-

ra/scrittura di dati in memoria nella loro fase di esecuzione. Pertanto, dovrò eseguire in tutto 8

accessi in memoria, per un tempo totale di 8 400T t ns= = . Nel caso b), invece, eseguo le istru-

zioni 100-105 (6 in totale), delle quali la 100, 101, 105 richiedono lettura o scrittura di dati in

memoria. In questo caso, quindi, avremo 9 450T t ns= = .

Esercizio 2.3

Si consideri il frammento di programma riportato di seguito, e lo si immagini contenuto in una me-

moria RAM nelle celle di indirizzo 100-106. Si consideri inoltre che le celle di indirizzo 50 e 51

contengono i dati riportati nei due casi a e b.

1) Stabilire cosa viene inserito nella cella di indirizzo 52 al termine dell’esecuzione del frammento

di programma sopra scritto nei due casi a) e b).

2) Esprimere quale disuguaglianza debba valere tra il contenuto delle celle 50 e 51 affinché, al

termine dell’esecuzione, il contenuto della cella 52 sia identico a quello della cella 51.

3) Supponendo che in tempo di accesso alla memoria sia di 50t ns= , stabilire il tempo di esecu-

zione del suddetto programma nei due casi a) e b). A tal scopo, si supponga trascurabile il tem-

po di esecuzione delle istruzioni di elaborazione e controllo.

100 LOAD R1 50

101 LOAD R2 51

102 SUB R1 R2

103 JC 106

104 STORE R1 52

105 JMP 107

106 STORE R2 52

107 …

Caso A:

50 100

51 120

52

Caso B:

50 25

51 10

52

Soluzione

Il programma in questione scrive nella cella 52 la differenza dei due numeri contenuti nelle celle 50

e 51, se questa è un numero naturale. Altrimenti scrive il valore contenuto nella cella 51.

1) Nel caso a), la differenza è negativa, e quindi la cella 52 conterrà il numero 120. Nel caso b), la

differenza è non negativa, e quindi la cella 52 conterrà 25-10=15.

2) La condizione perché il contenuto della cella 52 sia identico al contenuto della cella 51 è che la

differenza del contenuto delle celle 50 e 51 sia negativa. Pertanto, detto ( )C x il contenuto della

cella di indirizzo x, ( ) ( )50 51C C< .

3) Il programma esegue 5 istruzioni nel caso a), tre delle quali sono di trasferimento. Pertanto, il

tempo di esecuzione in tal caso è ( )5 3 400t ns+ ⋅ = . Nel caso b), il programma ha un’istruzione

in più, e quindi il tempo di esecuzione è ( )6 3 450t ns+ ⋅ =

Esercizio 2.4

Si faccia riferimento al processore d’esempio studiato a lezione, inserito in un sistema in cui è pre-

sente una memoria a 256 celle di 16 bit, e si consideri il seguente frammento di programma, suppo-

nendolo memorizzato nelle celle il cui indirizzo è scritto nella colonna sinistra. Si supponga che

questo programma venga eseguito due volte (caso 1 e caso 2), e che in ciascuno dei due casi il con-

tenuto delle celle di memoria di indirizzo 46-48 sia quello descritto in Figura 9.

100 LOAD R0 46101 ADD R0 R0102 JC 105103 LOAD R1 47104 JMP 106105 LOAD R1 48106 STORE R1 49107 ……………

46 14547 14849

0

46 3500047 14849

0

caso 1 caso 2

Figura 9

1) Si calcoli cosa viene scritto nella cella di indirizzo 49 in entrambi i casi

2) Si scriva la disuguaglianza che deve essere verificata affinché la cella 49 contenga il valore 0

3) Nell’ipotesi in cui il tempo di accesso alla memoria sia 40at ns= , ed il tempo di esecuzione del-

le istruzioni di elaborazione e di controllo sia trascurabile rispetto a at , calcolare la durata totale

dell’elaborazione compiuta dal frammento di programma sopra scritto in entrambi i casi.

Esercizi di Informatica Grafica – Giovanni Stea

11

Soluzione

Le celle di memoria sono larghe 16 bit. Pertanto si possono rappresentare tutti i numeri naturali non

superiori a 162 1 65535− = .

1) Nella cella 49 viene scritto “0” o “1” a seconda che l’operazione di somma di cui all’indirizzo

101 produca o meno un riporto. Un riporto viene prodotto (in questo caso) se una somma pro-

duce un risultato non rappresentabile su 16 bit. Visto che la somma è la somma del contenuto

della cella 46 con se stesso, abbiamo i seguenti due casi:

Caso 1: 145 + 145 = 290. Il numero naturale 290 è rappresentabile su 16 bit. Quindi non c’è ri-

porto, ed il contenuto della cella 49 è pari ad 1.

Caso 2: 35000+35000=70000. Il numero naturale 70000 non è rappresentabile su 16 bit. Quindi

la somma ha generato un riporto. In questo caso, il contenuto della cella 49 sarà pari a 0.

2) Da quanto detto, emerge chiaramente che il contenuto della cella 49 sarà 0 ogni volta che la

somma genera riporto, cioè ogni volta che – detto x il contenuto della cella 46 – sarà:

162 1x x+ > − ,

cioè 152x ≥

3) Nel caso 1 vengono eseguite le 6 istruzioni 100-104, 106, ognuna delle quali deve essere carica-

ta in memoria. Inoltre, le istruzioni 100, 103, 106 sono di trasferimento, e quindi richiedono un

ulteriore accesso alla memoria. In totale, abbiamo 9 accessi alla memoria, per un totale di

360ns.

Nel caso 2, vengono eseguite le 5 istruzioni 100-102, 105-106. Le istruzioni 100, 105, 106 ri-

chiedono un ulteriore accesso in memoria. In totale, abbiamo 8 accessi alla memoria, per un to-

tale di 320ns.

Esercizio 2.5

Si supponga di disporre di un floppy disk caratterizzato dai seguenti dati tecnici: 80T = tracce,

18S = settori per traccia, 512B = byte per settore, velocità di rotazione 360V = rpm, tempo di

spostamento della testina da una traccia alla successiva 1st ms tr= . Sia F un file memorizzato sul

settore j -simo di 18 tracce consecutive, come indicato nella Figura 10.

Esercizi di Informatica Grafica – Giovanni Stea

12

Settore j

Traccia x

Tracciax+17

File F

Figura 10 – File memorizzato su floppy disk

1) Si calcoli il tempo medio di lettura del file F.

2) Si supponga adesso che il file venga deframmentato, in modo tale da occupare i 18 settori di

un’intera traccia. Si calcoli nuovamente il tempo medio di lettura del file F.

Soluzione

Il disco fa 360 giri al minuto, cioè un giro ogni 6o di secondo. Quindi, un giro occupa un tempo

167rt ms≅ .

1) Per leggere l’intero file sarà necessario:

a. Spostare la testina sulla traccia x (tempo di ricerca).

b. Attendere il passaggio del settore j sotto la testina (latenza).

c. Leggere un settore (tempo di trasferimento).

d. Spostare la testina sulla traccia successiva ed attendere nuovamente il passaggio del set-

tore j. Si osservi che il tempo che il lettore di floppy disk ci mette a spostare la testina su

una traccia adiacente, 1st ms tr= , è tale per cui lo spostamento può avvenire senza per-

dere un giro. Infatti, per riportare il settore j sotto la testina, il disco impiegherà

17 18 r st t t= . Ciò garantisce che al successivo giro la testina sarà effettivamente in

grado di leggere il settore j dalla traccia adiacente.

e. Ripetere l’operazione d. fino ad aver letto tutte le 18 tracce.

Nel caso medio, il tempo di cui al punto a. sarà 2 40r sT t T ms= ⋅ = . Il tempo di cui al punto b.

sarà 2 83l rT t ms= ≅ , il tempo di cui al punto c. sarà 18 9.3t rT t ms= ≅ .

Esercizi di Informatica Grafica – Giovanni Stea

13

A partire dall’istante in cui la testina ha letto il settore j sulla traccia x, sarà quindi necessario at-

tendere altre 17 rotazioni complete del disco per leggere tutto il file F. Il tempo totale di lettura

sarà quindi: 17 3tot r l t rT T T T t s= + + + ≅

2) In questo caso, il file si trova tutto sulla stessa traccia. Il tempo medio di lettura del file è quindi

calcolato come somma del tempo di ricerca, della latenza, e del tempo di trasferimento di tutta

una traccia, quest’ultimo pari al tempo di rotazione del disco. Quindi: 0.29tot r l rT T T t s= + + ≅ .

Si osservi che la deframmentazione ha ridotto di un fattore 10 il tempo di lettura del file.

Esercizio 2.6

Si consideri un floppy disk con i seguenti dati tecnici: 80T = tracce, 18S = settori per traccia, ve-

locità di rotazione 360V = rpm, tempo di spostamento della testina da una traccia alla successiva

1st ms tr= . Si consideri un file memorizzato su due settori, il primo sulla traccia 1 ed il secondo

sulla traccia 80, nella medesima posizione su entrambe le tracce.

1) Si calcoli il tempo minimo di lettura del file

2) Si supponga adesso che il tempo di spostamento della testina sia 3st ms tr= . Si risponda nuo-

vamente alla domanda precedente

Soluzione

1) Sia 60 1 6sec 167gt V ms= = ≈ il tempo in cui il disco compie un giro completo. Il tempo mini-

mo di lettura del file si ha quando la testina è posizionata sulla traccia 1, esattamente sul primo

bit del settore da leggere. In questo caso, il primo settore viene letto in un tempo pari al tempo

di trasferimento, 18gt . A partire dall’istante 18gt t= , la testina si deve spostare lungo tutto il

raggio del disco per leggere il settore nella traccia 80. Nel frattempo, il disco sta girando. Il

tempo che ci mette la testina a spostarsi è ( )80 1 79 79s st t ms⋅ − = = . Tale tempo è inferiore al

tempo che ci mette il disco a riportare sotto il braccio della testina il settore da leggere, essendo

quest’ultimo 17 18 158gt ms⋅ ≈ . Pertanto, una volta che la testina è arrivata in posizione sulla

traccia 80, bisogna comunque attendere del tempo prima che passi il settore da leggere. In tota-

le, quindi, il settore da leggere comincia a passare sotto la testina al tempo 18 17 18g g gt t t+ ⋅ = .

Quindi, il tempo minimo di lettura del file è quindi pari a 18 176g gt t ms+ ≈ . Il tutto è riassunto

visivamente in Figura 11.

Esercizi di Informatica Grafica – Giovanni Stea

14

Figura 11

2) La differenza rispetto al caso precedente è che il tempo di spostamento della testina è maggiore

del tempo che il disco ci mette per compiere un giro. Infatti, ( )80 1 79 237s st t ms⋅ − = = . Quin-

di, quando la testina arriva sulla traccia 80, il settore da leggere è già passato perché sono tra-

scorsi più di 17 18gt ⋅ dall’istante in cui la testina si è mossa. In questo caso, una volta che la te-

stina è arrivata in posizione, sarà necessario attendere il successivo giro per leggere il settore. In

tutto, il tempo che deve trascorrere è 18 2 343g gt t ms+ ⋅ ≈ . Il tutto è riassunto visivamente in

Figura 12.

Figura 12

Esercizi di Informatica Grafica – Giovanni Stea

15

Esercizio 2.7

Si consideri un hard disk caratterizzato dai seguenti parametri: tempo medio di ricerca sT =5ms; ve-

locità di rotazione ω =10800 rpm, velocità di trasferimento dati 400B = Mbyte/s.

1) Determinare il tempo medio di lettura LT di un file che occupa un quarto di traccia

2) Determinare il numero tM di Mbyte memorizzati su una traccia

3) Si consideri un file disposto su due tracce consecutive t e 1t + , come mostrato in Figura 13.

Determinare la distanza d che minimizza il tempo di lettura sapendo che il tempo necessario al-

la testina per muoversi da una traccia all’altra è circa 0.5tT = ms. Si esprima la distanza d come

frazione di traccia.

t

t+1

d

Figura 13 – File memorizzato sull’hard disk

Soluzione

1) Il tempo necessario a compiere una rotazione del disco è 60 5.56rT msϖ

= = . Pertanto, il tempo

medio di lettura di un file che occupi un quarto di traccia è dato da (si veda anche l’Esercizio

2.5): 2 4 9.17L s r rT T T T ms= + + = .

2) Durante una rotazione del disco vengono trasferiti rT B⋅ Mbyte di informazione. Pertanto, su

una singola traccia sono memorizzati 35.56 10 400 2.2rT B −⋅ = ⋅ ⋅ = Mbyte,

3) Nel tempo 0.5tT = ms durante il quale la testina si sposta dalla traccia t alla traccia 1t + , il di-

sco compie una frazione di giro pari a 0.09t rT T ≅ . Pertanto, se la distanza d è maggiore di

0.09 parti di giro, si dovrà attendere del tempo per iniziare a leggere dalla traccia 1t + dopo aver

Esercizi di Informatica Grafica – Giovanni Stea

16

spostato la testina. Per contro, se 0.09d < , si dovrà attendere il giro successivo per cominciare

a leggere dalla traccia 1t + . Pertanto, la distanza che minimizza il tempo di lettura è 0.09d = .

Esercizio 2.8

Si consideri un hard disk caratterizzato dai seguenti parametri: 1024T = tracce, 512S = settori per

traccia, 512B = byte per settore, velocità di rotazione 5400V = rpm, tempo di spostamento della

testina da una traccia alla successiva 0.01st ms tr= .

2) Si calcoli il tempo massimo di accesso al disco maxt

3) Di quanto si dovrebbe aumentare la velocita’ di rotazione del disco affinche’ il tempo massimo

di risposta diventi max 2t ? Di quanto affinche’ diventi max 4t ?

4) Si calcoli il massimo tasso al quale e’ possibile leggere dei dati sul disco.

Soluzione

1) Il tempo massimo di accesso al disco e’ dato da:

a. Tempo di ricerca massimo: ( )1 10.23sT t ms− =

b. Latenza massima pari ad un giro: 60 5400 11.1lt ms= =

c. Tempo di trasferimento, pari a lt S , trascurabile rispetto ai precedenti.

Il tempo massimo di trasferimento e’ quindi pari a 21.33 ms.

2) Supponendo di aumentare di k volte la velocita’ di rotazione, la latenza diminuisce di k volte.

L’equazione da impostare nel primo caso e’ la seguente:

( ) ( )11 12s l s lT t t k T t t− + = − +⎡ ⎤⎣ ⎦

che risolta da’:

( )2 25.5

1l

l s

tkt T t

= ≅− −

Per dimezzare il tempo massimo di trasferimento e’ necessario aumentare di oltre 25 volte la ve-

locita’ di rotazione del disco.

Si osservi che non e’ possibile diminuire oltre un certo limite il tempo massimo di accesso a-

gendo semplicemente sulla velocita’ di rotazione del disco, in quanto quest’ultima interviene

soltanto sulla latenza (e sul tempo di trasferimento, che comunque in questo caso e’ trascurabile)

e non sul tempo di ricerca. Come si evince dal risultato del punto 1), il tempo di ricerca costitui-

sce circa meta’ del tempo massimo di accesso. Pertanto, sara’ impossibile ridurre quest’ultimo

Esercizi di Informatica Grafica – Giovanni Stea

17

ad un quarto del suo valore semplicemente aumentando la velocita’ di rotazione del disco. Infat-

ti, l’equazione da impostare nel secondo caso sarebbe:

( ) ( )11 14s l s lT t t k T t t− + = − +⎡ ⎤⎣ ⎦

che porta alla seguente espressione:

( )4 0

3 1l

l s

tkt T t

= <− −

3) Il tasso massimo al quale e’ possibile leggere informazioni dal disco si calcola imponendo che i

tempi variabili di accesso al disco (tempo di ricerca e latenza) abbiano il valore minimo, che e’

zero. In questo caso, si riesce a trasferire una quantita’ di informazione pari a quella contenuta

in 512 settori ( 18512 512 2⋅ = byte) nel tempo di rotazione del disco 60 5400 11.1lt ms= = . La

velocita’ e’ quindi: 18 3

203

2 10 2 22.511.1 10 11.1 4

V −= = ≅⋅ ⋅

Mbyte/s1

Esercizio 2.9

Una scheda video supporta una modalità grafica 1024x768 pixel, con C=65536 colori. Determinare:

1) il numero N di bit di indirizzo della memoria video

2) la dimensione W di una cella della memoria video

3) la dimensione Z (espressa in Mbyte) della memoria video.

4) Di quanto è necessario aumentare dimensione della memoria video affinché si possa raddoppia-

re il numero di colori visualizzabili. Si esprima tale numero come frazione della dimensione del-

la memoria.

Soluzione

1) Il numero totale di celle di memoria video deve essere sufficiente a contenere tutti i pixel rap-

presentati nella modalità grafica descritta. Pertanto:

- N. di pixel totali: 10 10 181024 768 2 2 3 4 3 2R = ⋅ = ⋅ ⋅ = ⋅

- Il numero di celle video deve essere una potenza di 2 che dà un numero maggiore o uguale a

R . Quindi, servono 202V = celle video.

- Per indirizzare 202V = celle video servono 20N = fili di indirizzo.

1 Si osservi che un Mbyte sono 220 byte.

Esercizi di Informatica Grafica – Giovanni Stea

18

2) La dimensione in bit di una cella video deve essere tale per cui l’insieme delle possibili diverse

combinazioni di bit sia maggiore o uguale del numero di colori richiesto. Quindi devo trovare

un numero di bit : 2 65536WW ≥ . Passando ai logaritmi, 2log 65536W ≥ . Visto che W è un in-

tero, posso scrivere: 2log 65536 16W = =⎡ ⎤⎢ ⎥ . Ogni cella deve essere di 2 byte.

3) La dimensione della memoria video è data dal numero di celle per la dimensione di ciascuna

cella. Quindi ho: 202 byte 2 celle 2 MbyteZ = ⋅ =

4) Riprendendo quanto scritto al punto 2, è immediato osservare che la relazione da impostare è: 12 2 65536 2 65536W W −≥ ⋅ ⇒ ≥ . Quindi, per ogni cella di memoria video servono

16 1 17W = + = bit. L’aumento della dimensione della memoria video richiesto, pertanto, è di

1 16 .

Esercizio 2.10

Sia dato uno schermo CRT a 19” capace di una modalità grafica XGA (1024x768), con aspect ratio

4:3.

1) Calcolare il dot-pitch e la risoluzione dello schermo.

2) Calcolare il numero di celle di memoria video sufficienti a memorizzare un’intera schermata

3) Sapendo che l’occhio umano deve poter visualizzare almeno 10 milioni di colori, stabilire la

grandezza di una cella di memoria video necessaria a rappresentare tutti i colori visibili.

4) Calcolare la dimensione della memoria video.

5) Supponendo che il refresh rate dello schermo sia di 100Hz, determinare il massimo tempo di

accesso che la memoria video deve avere per supportare la modalità grafica sopra descritta.

Soluzione

Come mostrato in Figura 14, la dimensione netta dello schermo è inferiore di un pollice alla dimen-

sione riportata nei dati di produzione. Pertanto, la diagonale dello schermo è lunga 18"D = .

Esercizi di Informatica Grafica – Giovanni Stea

19

18" 19"

Figura 14 – dimensioni dello schermo

Dato il rapporto di forma 4:3, si calcolano le dimensioni dei due lati tenendo presente che la diago-

nale ed i due lati formano una terna pitagorica. Pertanto:

4 5 14.4"3 5 10.8"

x Dy D= ⋅ =⎧

⎨ = ⋅ =⎩

1) Il dot-pitch dello schermo è dato dal rapporto tra la dimensione di uno qualunque dei due lati,

quest’ultima espressa in millimetri, ed il numero di pixel sul lato. A tal proposito, giova ricorda-

re che un pollice è pari a 25.4 mm.

Pertanto, il dot-pitch è 14.4 25.4 14.4 0.361024 40

d ⋅= ≅ ≅ mm.

La risoluzione si calcola come il rapporto tra il numero di pixel e la lunghezza del lato, conve-

nendo di esprimere il lato in pollici (dpi, dots per inch). Pertanto:

1024 7114.4

r = ≅ dpi.

2) Il numero totale di celle di memoria video deve essere sufficiente a contenere tutti i pixel rap-

presentati nella modalità grafica descritta. Pertanto:

- N. di pixel totali: 10 10 181024 768 2 2 3 4 3 2R = ⋅ = ⋅ ⋅ = ⋅

- Il numero di celle video deve essere una potenza di 2 che dà un numero maggiore o uguale a

R . Quindi, servono 202V = celle di memoria video.

3) Seguendo lo stesso procedimento dell’Esercizio 2.9, punto 2, si ottiene:

2log 10000000 24W = =⎡ ⎤⎢ ⎥

4) Seguendo lo stesso procedimento dell’Esercizio 2.9, punto 3, si ottiene: 203 byte 2 celle 3 MbyteZ = ⋅ =

Esercizi di Informatica Grafica – Giovanni Stea

20

5) Per poter sostenere un refresh rate di 100 Hz, è necessario leggere tutte le celle di memoria vi-

deo che contengono una schermata per 100 volte al secondo. Il numero di celle coinvolte è, co-

me abbiamo visto, pari ad R . Quindi, una cella di memoria video deve poter essere acceduta in

un tempo ( )1 100 13.3t R ns= ≅ .

Esercizio 2.11

Dato uno schermo CRT 17” di tipo multisync, con aspect ratio 4:3, determinarne il dot pitch e la ri-

soluzione quando la modalità grafica attivata è:

1) 640x480

2) 1024x768

3) Si supponga di impostare sul monitor una modalità di visualizzazione 1280x1024. Quale sarà la

forma dei pixel?

Soluzione

La diagonale “netta” dello schermo (cfr. la soluzione dell’Esercizio 2.10) è di 16”. Pertanto le di-

mensioni lineari dello schermo sono:

4 5 16" 12.8"3 5 16" 9.6"

xy= ⋅ =⎧

⎨ = ⋅ =⎩

1) In questo caso, il dot-pitch è 12.8 25.4 25.42 0.51640 100

d ⋅= = ⋅ ≅ mm. La risoluzione è

640 5012.8

R = = dpi.

2) In questo caso, il dot-pitch è 12.8 25.4 12.8 0.321024 40

d ⋅= ≅ ≅ mm. La risoluzione è 1024 80

12.8R = =

dpi.

3) Nei casi di cui ai punti 1) e 2) il rapporto tra il numero di pixel sui due assi è 4:3, pari a quello

dello schermo, e quindi i pixel risulteranno quadrati. In questi casi, dot-pitch e risoluzione sono

identici su entrambi gli assi, e quindi possono essere calcolati considerandone uno o l’altro in-

differentemente. Se invece la modalità grafica utilizzata è 1280x1024, il rapporto tra il numero

di pixel sui due assi è 5:4, come si può facilmente osservare riducendo ai minimi termini il rap-

porto dei due numeri sopra scritti. Tale rapporto è differente dal rapporto delle dimensioni linea-

ri (aspect ratio) del monitor (4:3). Cio’ significa che i pixel non potranno che essere rettangola-

ri, con il lato orizzontale più lungo. In questo caso il dot-pitch (distanza tra i centri di due pixel)

Esercizi di Informatica Grafica – Giovanni Stea

21

o, analogamente, la risoluzione, sono differenti sui due assi; in particolare il dot-pitch e’ mag-

giore (la risoluzione e’ minore) sull’asse orizzontale che sull’asse verticale.

Esercizio 2.12

Si consideri una scheda video dotata di una memoria video di 2Mbyte, con un tempo di accesso

ta=20ns. Si assuma che la medesima sia connessa ad un monitor 4:3 sul quale è impostata una mo-

dalità grafica di 1024x768 pixel.

1) Si calcoli qual è il massimo numero di pixel che si possono visualizzare con la memoria video

disponibile, nell’ipotesi che si debbano visualizzare contemporaneamente almeno 10 milioni di

colori.

2) Si dica se tale numero è sufficiente a visualizzare il numero di pixel richiesto dalla modalità gra-

fica impostata sullo schermo. Nel caso che non lo sia, si dica quale deve essere la dimensione

della memoria affinché ciò sia possibile.

3) Si calcoli qual è il massimo refresh rate che può essere impostato con la suddetta modalità gra-

fica, dato il tempo di accesso alla memoria video.

Soluzione

1) dovendo essere visualizzati contemporaneamente 10 milioni di colori, è necessario che ciascuna

cella sia grande almeno ( )2log 10 24k M bit= =⎡ ⎤⎢ ⎥ . Visto che ogni cella di memoria video deve esse-

re di 3 byte, il numero massimo di pixel visualizzabili in totale è pari ad un terzo della dimen-

sione della memoria stessa, cioè circa 670mila di pixel.

2) La modalità grafica impostata sullo schermo richiede la visualizzazione di 768Kpixel, che sono

in numero maggiore di quelli visualizzabili con 2Mbyte di memoria (670mila). Servono quindi

almeno 4Mbyte.

3) Il numero di celle che possono essere lette in un secondo è pari a 1 ta . Il massimo refresh rate

che è possibile impostare sullo schermo è quel numero f per cui la lettura di 768K f⋅ celle è i-

dentico a 1 ta . Pertanto:

1 65768

f HzK ta

=⋅

Esercizi di Informatica Grafica – Giovanni Stea

22

3. - Sistemi operativi

Esercizio 3.1

Si consideri un sistema operativo multitasking, nel quale il tempo di cambiamento di contesto è fis-

so e pari a 1cct = ms. Si definisca “time slice” il tempo massimo per il quale un programma può e-

seguire senza bloccarsi prima che il sistema operativo passi il controllo ad un altro programma.

1) Si stabilisca la durata della time slice in modo tale che l’efficienza del sistema, cioè la percen-

tuale di tempo che quest’ultimo passa ad eseguire compiti significativi impartiti dall’utente, sia

del 95%.

2) Si supponga che il processore sia in grado di eseguire 1000 istruzioni durante una time slice. Si

calcoli il tempo al quale termina (in assenza di blocchi) un programma P che deve eseguire

10000 istruzioni, supponendo che all’istante 0t = il programma P cominci la sua esecuzione,

nell’ipotesi che altri 5 programmi siano “contemporaneamente” in esecuzione. Si consideri che

il sistema operativo consente ai vari programmi di andare in esecuzione “a turno”, in modo e-

quo, per una time slice ciascuno.

3) Si confronti il caso 2) con quello in cui sono contemporaneamente in esecuzione 2 altri pro-

grammi.

Soluzione

1) Se il sistema ha una time slice di durata st , la sua efficienza è ( )s s ccE t t t= + . Dovrà pertanto

essere 191

ccs

E ttE⋅

= =−

ms.

2) In questo caso, il programma P dovrà andare in esecuzione per 10 time slice. Per 9 volte, però,

sarà interrotto da altri programmi, per una durata totale di 5 time slice più 5 tempi di cambio di

contesto. Il programma P completerà quindi la sua esecuzione all’istante

( )9 6 1.1s cc sT t t t= ⋅ ⋅ + + = s.

3) In questo caso, avremo ( )9 3 559s cc sT t t t= ⋅ ⋅ + + = ms

Esercizio 3.2

Si consideri un interprete comandi a riga di comando. Sia “dir”, seguito dal percorso della directory

il cui contenuto si vuole visualizzare, il comando necessario alla visualizzazione del contenuto di

una directory (ad esempio: “dir pippo” mostra il contenuto della directory “pippo”). Supponiamo

Esercizi di Informatica Grafica – Giovanni Stea

23

che il disco identificato dalla lettera “c” abbia un file system descrivibile tramite il diagramma ad

albero riportato in Figura 15, e supponiamo che l’interprete di comandi stia visualizzando il prompt

riportato in Figura 16.

somma.exesomma.exe

etc Netsim studenti

mydir

radice

fact.C

fact.exefact.exe

somma.exe

somma.C

tetris.exe

letter.doc

friend.doc

games

docs

bin

fondinfmyexe

passwords

startup.exe

Figura 15 – Rappresentazione ad albero del file system

Figura 16 – prompt dell’interprete

Scrivere il comando che consente di visualizzare il contenuto della directory “docs”, riferendo

quest’ultima

a. In modo assoluto.

b. In modo relativo, rispetto alla directory corrente.

Soluzione

Se voglio riferire una directory in modo assoluto, devo indicare il percorso a partire dal nodo radice

dell’albero. Il percorso assoluto è quindi “\studenti\mydir\docs” (si noti che il percorso è assoluto, e

quindi inizia con una barra invertita). Quindi, per il caso a), il comando è: “dir

\studenti\mydir\docs”.

Nel caso b), è necessario calcolare il percorso relativamente alla directory corrente, che è quella

specificata nel messaggio di prompt (“Netsim”). Per arrivare alla directory richiesta, è quindi neces-

sario risalire di un livello l’albero del file system, per poi ridiscenderlo di nuovo. Il percorso relativo

è quindi “..\studenti\mydir\docs” (si noti che il percorso è relativo, e quindi non inizia con una barra

invertita). Quindi, per il caso b), il comando è: “dir ..\studenti\mydir\docs”.

Esercizi di Informatica Grafica – Giovanni Stea

24

4. - Rappresentazione delle immagini

Esercizio 4.1

Sia data una stampante laser B/N in grado di stampare 10 pagine A4 (21x29.7cm) al minuto.

1) Supponendo che il tamburo della stampante abbia un diametro 10D = cm, si calcoli la velocità

di rotazione del medesimo (in radianti al secondo) necessaria a garantire tali prestazioni. Si sup-

ponga, per semplicità, che la stampante possa essere alimentata di carta con continuità.

2) Si supponga che la stampante debba stampare su un’area di 8”x11” un’immagine in bianco e ne-

ro con una risoluzione di 100 dpi. Si supponga che la trasmissione dei dati dal calcolatore alla

stampante avvenga ad una velocità C = 500 Kbit/s. Si calcoli il tempo di invio dell’immagine

alla stampante.

3) Supponendo che il processo di stampa della pagina j e di ricezione della pagina j+1 possano av-

venire in parallelo, si calcoli quale deve essere la velocità minima di trasmissione dei dati dal

calcolatore alla stampante perché quest’ultima possa stampare pagine del tipo descritto al punto

2 alla massima velocità di cui è capace.

4) Supponiamo adesso che la stampante sia a colori. Si calcolino:

a. La velocità di rotazione del tamburo necessaria a garantire la stampa 10 pagine al minu-

to.

b. La velocità di trasmissione dati necessaria a garantire la stampa di 10 pagine al minuto,

sotto le ipotesi di cui al punto 2).

Soluzione

1) Il tamburo della stampante deve poter ruotare per una lunghezza di 10 29.7 297L = ⋅ = cm in un

minuto. Deve poter quindi descrivere LDπ

circonferenze, cioè 2 59.4LD

ππ

⋅ ≅ radianti in un

minuto. La velocità di rotazione sarà quindi pari a circa un radiante al secondo.

2) L’immagine è composta da un numero di punti pari a 8 100 11 100 880000P = ⋅ ⋅ ⋅ = . Visto che

l’immagine è in bianco e nero, ciascun pixel richiede soltanto un bit. In tal caso, il tempo di tra-

smissione sarà: 880000 1.76500000st = = s.

3) Se la stampante è in grado di stampare 10 pagine al minuto, può stampare una pagina in 6 se-

condi. Quindi, per poter stampare a ciclo continuo deve poter ricevere 880000 bit in un tempo

Esercizi di Informatica Grafica – Giovanni Stea

25

pari a 6 secondi. La velocità minima del collegamento deve quindi essere:

880000 1476

V = ≅ Kbit/s.

4) In questo caso, un foglio deve essere stampato 4 volte (una per ciascuno dei 4 colori fondamen-

tali per la stampa in quadricromia: Cyan, Magenta, Yellow, blacK). Pertanto, la velocità di rota-

zione del tamburo deve essere 4 volte superiore a quella calcolata al punto 1, cioè circa 4 radian-

ti al secondo. Per poter stampare un’immagine in quadricromia, è necessario mandare alla stam-

pante 4 immagini successive, una per ciascuno dei 4 colori fondamentali. In ciascuna di queste

immagini, un pixel è associato ad un singolo bit (ad esempio: 1=inchiostro presente,

0=inchiostro non presente). Pertanto, per quanto riguarda la trasmissione dati, la velocità deve

essere 4 volte superiore, cioè 8800004 5876

V = ⋅ ≅ Kbit/s

Esercizio 4.2

Sia data un’immagine raster 200x400 pixel, formata da bande verticali di colori diversi, ciascuna

larga 5 pixel.

1) Si calcoli la dimensione del file che memorizza l’immagine sotto le seguenti ipotesi:

a. Il file è memorizzato in formato bitmap non compresso, con un numero di colori suffi-

ciente alla sua corretta rappresentazione (si trascurino eventuali header del formato bit-

map non considerati durante le lezioni).

b. Il file è memorizzato in un formato compresso che usa la tecnica run length encoding:

dati j pixel consecutivi del medesimo colore, viene memorizzata la coppia ,j c , con c

numero del colore. Il numero j è memorizzato su 2 byte, mentre c è memorizzato su 1

byte.

2) Si supponga adesso che l’immagine venga ruotata di 90°. Si risponda nuovamente alla domanda

1) nei 2 casi proposti.

Soluzione

1) Se ogni banda verticale è larga 5 pixel, nel file sono presenti contemporaneamente

200 5 40C = = colori. Pertanto, il file può essere salvato come bitmap a 256 colori senza che ci

sia perdita di informazione. In tal caso, il numero di punti associato all’immagine sarà:

200 400 80000P = ⋅ = . Va tenuta in conto anche la palette, che avrà dimensione pari a

3 256 768⋅ = byte. La dimensione totale del file associato all’immagine sarà quindi non meno di

80768 byte. Nel caso del formato compresso, invece, ogni gruppo di 5 pixel consecutivi può es-

Esercizi di Informatica Grafica – Giovanni Stea

26

sere rappresentato con 3 soli byte. Pertanto la dimensione del file sul disco sarà

80000 3 5 768 48768D = ⋅ + = byte.

2) Nel caso in cui l’immagine venga ruotata, le bande da verticali diventano orizzontali. Il numero

totale di pixel non cambia: pertanto, la dimensione del file nel caso di cui al punto a) rimane la

stessa. Nel caso di cui al punto b), invece, il numero di pixel consecutivi dello stesso colore pas-

sa da 5 a 400x5=2000. Quindi, la dimensione del file diventa 80000 3 2000 768 888D = ⋅ + =

byte.

Esercizi di Informatica Grafica – Giovanni Stea

27

5. - Computer Graphics

Esercizio 5.1

Ln

Vθφ

Si consideri una scena illuminata da una sorgente di luce puntiforme, di intensità I . Si consideri un

punto x posto su una superficie, e si consideri una direzione di vista V contenuta nello stesso piano

che contiene la normale n alla superficie in x e la direzione incidente della luce in x , L . Sia θ

l’angolo tra la n e L . Si supponga di utilizzare il modello di illuminazione di Phong, con 1α = , e

siano , ,a s dk k k i coefficienti di riflessione ambientale, speculare e diffusiva in x .

1) Si calcoli il valore 0φ dell’angolo φ tra la normale e la direzione di vista che rende massima la

luminosità percepita nel punto x , in funzione degli altri parametri

2) Si disegni l’andamento della luminosità percepita dall’osservatore, per 0 90φ≤ ≤ .

3) Supponendo 1 3s d ak k k= = = , si calcoli l’intensità di luce riflessa in direzione 0φ in funzione di

θ .

Soluzione

1) L’equazione di illuminazione di Phong è la seguente:

( ) ( )p tot a d sI I k I k L n k V Rα

λ λ λλ

⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑

Che, nel caso specifico, si semplifica a:

( )cos cosp a d sI I k I k kθ φ θ= ⋅ + ⋅ ⋅ + ⋅ −⎡ ⎤⎣ ⎦ (1)

L’unico termine che dipende da φ è ( )cos φ θ− , che è massimo per 0φ θ= .

Esercizi di Informatica Grafica – Giovanni Stea

28

2) L’andamento del grafico è quello di una cosinusoide, rappresentato nel grafico sottostante. Il di-

segno è accurato se 0 45θ≤ < , altrimenti la quota per 90φ = è maggiore di quella per 0φ = .

( )cos sina d sI k k kθ θ⋅ + ⋅ + ⋅

[ ]cosa d sI k k kθ⋅ + ⋅ +

0φ θ=

( ) cosa d sI k k k θ⋅ + + ⋅⎡ ⎤⎣ ⎦

90

3) sostituendo i valori dati nella (1) si ottiene la seguente equazione:

( )1 1 1cos 2 cos3 3 3 3p

II I I θ θ⎡ ⎤= ⋅ + ⋅ ⋅ + = ⋅ +⎢ ⎥⎣ ⎦

Nel caso 0θ = (che implica anche 0 0φ = ), la luce incidente è identica a quella riflessa.

Esercizio 5.2

1Ln

V1θφ

2L

Si consideri una scena illuminata da due sorgenti luci puntiformi, di intensità 1 2,I I . Si consideri un

punto x posto su una superficie, e si consideri una direzione di vista V contenuta nello stesso piano

che contiene la normale n alla superficie in x e le direzioni incidenti delle due luci in x , 1 2,L L .

Esercizi di Informatica Grafica – Giovanni Stea

29

Siano 1 2,θ θ gli angoli tra la n e 1 2,L L . Siano , ,a s dk k k i coefficienti di riflessione ambientale, spe-

culare e diffusiva in x . Si supponga di utilizzare il modello di illuminazione di Phong, con 1α = .

1) Si calcoli l’angolo φ tra la normale e la direzione di vista che rende massima la luminosità per-

cepita in x , in funzione degli altri parametri

2) si istanzi la formula trovata nei casi seguenti:

a) 1 2θ θ=

b) 1 26, 3θ π θ π= = , 1 2I I=

c) 1 0θ = , 2 0θ >

e si commentino opportunamente i risultati trovati.

Soluzione

1) L’equazione di illuminazione di Phong è la seguente:

( ) ( )1,2

tot a d sI I k I k L n k V Rα

λ λ λλ=

⎡ ⎤= ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅⎢ ⎥⎣ ⎦∑

Che, con i valori indicati, risulta essere:

( ) ( ) ( )1 2 1 1 1 2 2 2cos cos cos cosa d s d sI I I k I k k I k kθ φ θ θ φ θ= + ⋅ + ⋅ ⋅ + ⋅ − + ⋅ ⋅ + ⋅ −⎡ ⎤ ⎡ ⎤⎣ ⎦ ⎣ ⎦

Usando alcune note formule trigonometriche, si ottiene:

( ) ( )( )

1 2 1 1 1 1

2 2 2 2

cos cos cos sin sin

cos cos cos sin sina d s

d s

I I I k I k k

I k k

θ φ θ φ θ

θ φ θ φ θ

= + ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦+ ⋅ ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦

E, dopo alcune semplici manipolazioni:

( ) ( )( ) ( )

1 2 1 1 2 2

1 1 2 2 1 1 2 2

cos cos

cos cos cos sin sin sina d

s

I I I k I I k

k I I I I

θ θ

φ θ θ φ θ θ

= + ⋅ + ⋅ + ⋅ ⋅

+ ⋅ ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦

Per calcolare il massimo, è necessario derivare l’espressione sopra scritta rispetto all’angolo φ .

( ) ( )1 1 2 2 1 1 2 2sin cos cos cos sin sinsI k I I I Iφ θ θ φ θ θφ∂

= ⋅ − ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅⎡ ⎤⎣ ⎦∂

Dal che si nota che il massimo non dipende dai coefficienti di riflessione, come è intuitivamente

ovvio, ma soltanto dalle intensità e dalla direzione delle due luci.

Per trovare il massimo, è necessario risolvere la seguente equazione:

( ) ( )1 1 2 2 1 1 2 2sin cos cos cos sin sin 0I I I Iφ θ θ φ θ θ− ⋅ ⋅ + ⋅ + ⋅ ⋅ + ⋅ =

Che dà immediatamente:

1 1 2 2

1 1 2 2

sin sintancos cos

I II I

θ θφθ θ

⋅ + ⋅=

⋅ + ⋅ (2)

Esercizi di Informatica Grafica – Giovanni Stea

30

2) Distinguiamo i casi:

a) 1 2θ θ θ= =

In questo caso la formula Errore. L'origine riferimento non è stata trovata. diventa:

( )( )

1 2

1 2 2

sintan tan

cosI II I

θφ θ

θ+ ⋅

= =+ ⋅

Da cui φ θ= . Il risultato è ovvio: se due luci puntiformi provengono dalla stessa direzione, possono

essere assimilate ad un’unica sorgente luminosa di intensità pari alla somma delle singole intensità.

In tal caso, la direzione di massima luminosità è quella in cui si concentra la riflessione speculare,

che è identica alla direzione di incidenza.

b) 1 26, 3θ π θ π= =

In questo caso si ottiene per sostituzione quanto segue:

1 2

1 2

3tan 13

I II I

φ ⋅ += =

+ ⋅

Cioè 4φ π= . La direzione di massima luminosità è infatti quella intermedia tra le due direzioni di

riflessione speculare delle due luci.

c) 1 20, 0θ θ= >

2

1 2 2

sintancosI Iθφ

θ=

+

La sorgente luminosa 1 viene riflessa nella stessa direzione da cui proviene. Tanto più 1I ha intensi-

tà trascurabile rispetto a 2I , tanto più l’angolo ottimo si avvicina all’angolo 2θ (infatti il primo ter-

mine al denominatore tende ad essere trascurabile rispetto al secondo. Per contro, se 1 2I I , il pri-

mo termine tende ad infinito, e quindi l’angolo ottimo si avvicina a 0 .