cicli su mathcad

Embed Size (px)

Citation preview

Universit` di Torino a

QUADERNI DIDATTICIdel

Dipartimento di Matematica

A. M. Ferrari, E. Venturino

Appunti di Laboratorio di Programmazione e Calcolo per Applicazioni Chimiche

Quaderno # 17 - Aprile 2003

. ........ . ...... ......... ......... .. . ... .. . .. ... .. ..... . . .... . . .. .. .. . .... .. . . . .. . ... .. . .. . .. . . . .. . . ...... .. ...... . .. ... . .. . .... . .. . .. . . . . ... . .. . .. .... . ... . . .... ..... .... ..... . ......................... . ... . ... ............. . .... ... . ... . . . ... .. . . . . . . . . .. .. . . . . .. . . . . . . . . .... .. . ........ . . . . .. . .. . . . . . ...... .. . . . .. . . . . ..... .. . . . . . . .............. ... . ........... .. . .. . .. . . .

rgPk&gPb9rPheP~R&PPh~

pp v o { xmW j s zstpvzv{ z s (v p qweurnxo#sqprgt v rsrup qpqp vevj w n qpw v zxsu rsnj tzts}jm e} v n 84{nq{ n q{rs6vqpv rntqpo tqwvm n qju kHq bp rs1 w u us j n os} sj v z s tm t { { { w n m l j j n j v o u } j j xuen eyn szeswvx{n s{ e{tn z s tm t t s q | rorsttq}v{e{n { m l rsu n } { i es w n | m j s t w v u { } n o &t t o n } { p m s j j s s n4qpv xoe|tn n zAtt$kjt xu4tv p} j v n | | qp4e|nz} rstnu m v s n rmqps%{{ euy 4j vqpj vx xtzrso z zj j swv qp rnqu gvzhrsy tu xurAo} qnt n } xjp 4x|nx{n Gs tv s tvo rxunnp vo {e{H j n p { { v v | u y s~xj4vtj t zs tttzw n j qoo v x{vw~ejgr|n e|p nz4|{y}s{u v Fteuj emwn } zqtqpn zrmspj ruqp 44rsq|xuvrzzqstquu } (v~tejp ge|{n vn~e{p ejn g{x|{ nv 4s|Fqntm4x|pqpn rmruqpFn~tj{ vm np pn| u n z u o j { v } p | wj v 4| n | } p w n wrsut| vw qpho qpvqpo t q{ (v~ejgn v j sj s rpPpentesw { j emw q{} rveox j 4ws v t v xjrntwu gspeon~zvj xs4rsqpxotl n m qkjrs$rpi xp qnvo v w j px{enrwroioxoen ewqww mrrvo zyzrotejus s w4| j eps wxj4zqs ryuve{qnv runz~xspu ejwge|n rnroz86vjj estw rm vqpqpo v txn{o tew} q}n Fvj v qp 4ze|jv xsnewtpqnvF{| e{vHe{n{ n u u u s n| n u o s t s o H u { { u o zrsu qpvzxswevw tt jPprns Rns j{ n qpv w vm t { n p j j s j n v $nvvoj {j e{n vrst|o mQeu} u{ v~ejngp | v u zs{ n qpxpenu wzesw o tvnp xjrnxornut} j qs rnj v kbpqso o tvn z | zu t3n wq{l ewwq#v{e{np j vtrmrpPpn w rwv3vtrmrpw pqmuqp#v3}{ 4q|veonv z zs xjrntu } { 4 t4v{e{ H } n t {v vqrn qptvu ev} qnw uqp q|zsu sqpv zj { estzpj qqus v rv grsvnu e}roqntesuu k{etjiv em xu nxjpp tnm grmzqp| s o zy{{ t%rsrnqoeuu v n tx{ n rsqstroo mzu xsWze{j esn w zss{ z v x u | ov v n } vj n 1 } j w jwxs t ~ v p qo zeu n e Hw j {e{n v w | j t rmp t rsqozs x{n F ~ejn mw po | zeyn tss tvw 4 | tv ttz~zz$qsu u p { j j s u } { s n e|n vewqwv tv zxytj smv zqyv sejrnp1n jj { n u p { pm jz v t8euseswq{v {}} n} { n nj v | uy u us u w pjm } {y | { xtz s 44q|vzzqsu 8t s zrsqpvzv Qt rsqozesHe{n 8 ~t}tv Gs g v zyzxsewwrvurnthrnqpeohkji psj nml f hgedQ6%

3333333333St j qpzs s~ejgj t u y u p n |v 3333333333 qpzqs( w v u o ml n vj n 3333333333 qpeoqnu n qneot j g| p zzy8 n w s us { 3333333333 stm 4ev w xpg| p 8 | { s| n u 3333333333n x{t t g| p zzy8 wm s us { 33333ejnpzstpv t s{e{n xu& | t} eugtj t tz s rveutxjn n o u w u n |m nj n g 40xx3xex%0x4g36%6g#6x#Fx u oj p w { s z 333333333 zrs p vru& xwst#v {e{n ~ 333333333333 w | w t { h u ml 3333333 v qyeutxjn t s~ejg | eunqqovup {e{n s n pn uvj o o w { s 3333333 s tz s (vp4rsqp(vp xwst#v {e{n z33 ev w | ev w Ppt j &q n quj t zs v tejqneun t z s el#v qpxpqnu {e{n w n w v u { j vm n s 333333333rnzsvw t s evrwo t 4e|ntzrsu u { | v { q3333333333 s rsqpqeurnWtm t zqytt} v o j s um 3333333333vp h p tejqno t1 o q{8 o vj 333333333en w tge|qnes w txzys{x{n 4WQ {} o u n {v s | j RReReV%A# u { { n U33333333333 zstpvzxswevw t PpH U333333333333 qpv t v o 33333333333Srnkbpqsk{i uv o 33333333333 qn v uv u u { { w { n ny u 3333333 rnsqpvzeswvx{n nrveutxjz#vtrmrpxprn p qw8 u 33333333333333 {e{n { v v v | n | w u us v v | vj nj 4 j ewqwRgzesRqnzstpvzvx{n j ewqw#tm t t s xurweon v{x{tj {x{n i n { i 333333333 zsp o vru%Rnzhs 't ev w zs u oj p n {s y 3333333333330rstAj 1 w t xsi om w 333333333333 s t j Rxnw t esk{i uv w 333333333Sqnzsqprvzvx{n3v w qp4r|zsj u us { n v u ##g#Fx6Rxxx63WgV

rgPk&gPb9rPheP~R&PPh~

i u n j s s t1 t 333 3 33 3 wv Rzesw ev t j {jzj j z eln 1 w vHv 33 qpv j u nt { W s j v m hz 333x03g##33x #evzgj i zj s Agnelmv txt3w Hxxx z 3333333 evw tpzestz s roxornzxyrn%t s qvzr}xun~kji v j w nj u u n nj {s p p z { | { s } n j 3333333333n v ztss j z%t ts qvz{ us r}xuw n~kji 3 n j u z3333333333j 3z ro eoqnzeyqnu n tuem} n 3 # g A F t R n tg v0 t} Q x633 33Wg3 3 6sj m xvqp W j s q e| ro$rso t3 | { 33333333 vw n qphjvm j zxsj esw w n 4q| n urvzu zy qst} su w 4o} x|n 33333333333~zv 3txn { j rm use{p w nw k{i 333333333 p 333333333333zu sse{ w k{i w z33333333333 rn o qxun n i ps s ~33333333333 } n j j ~3333333333g| | vu { zvy rshtsuw {Rzz s vv zxju rrnnxy zro} sQ v o ~ x 6 3 W g 3 t t ~ 333330 g 3# U33i 03xx3Axzsj 3m Ru qs kji ReR n p 33333333333j sPprneuqwo t s{ #trjs p k{i t vsu u } 333333333x3~psrp nxjzesn tvq{ #xzry rsp 3enPpqyvotqjzRxs k{k{ii ReR 333333333 33x tm j w wro v t 3 s w t %i i

B b9trCA@ bP98P76 5

3 42# 3 1 0

) ' & " h~ bPhP ( #%$9r9P # !

h

Capitolo 1 LA STRUTTURA DEL CALCOLATORE

2

A. M. Ferrari , E. Venturino - Appunti di LPCAC

1.1

L'informatica e l'elaboratore

Cosa linformatica La parola informatica deriva da due termini: informazione automatica. Con questo termine si indica linsieme dei processi e delle tecnologie che rendono possibile la creazione, la raccolta, lelaborazione, limmagazzinamento e la diffusione dellinformazione. Si occupa dello sviluppo e della ricerca nellautomatizzazione dellinformazione: ci racchiude tutte le attivit che in qualsiasi modo riguardano lo studio, la progettazione, la fabbricazione e limpiego degli elaboratori. Queste tecnologie hanno tre funzioni principali 1. Elaborare dati per ottenere informazioni significative 2. Conservare le informazioni elaborate per utilizzarle in combinazioni con altre come dati di un nuovo processo di elaborazione 3. Organizzare le informazioni in una nuova forma in modo da renderle pi comprensibili, pi accattivanti o pi utili Dati ed informazioni Il concetto di informazione viene qui usato nel senso di ci che viene comunicato. Le forme pi importanti in cui si possono comunicare gli eventi nella vita delluomo solo la lingua e la scrittura; le informazioni sono quindi legate a simboli. Le informazioni possono essere vere o false, importanti o banali, utili od inutili I dati invece hanno un significato molto pi preciso se sono informazioni codificate, in forma adatta ad essere immesse e trattate da un sistema di elaborazione: i dati sono cio una rappresentazione di informazioni I dati in se stessi non hanno significato e solo quando vengono interpretati acquistano significato: dati + interpretazione = informazione significativa Gli elaboratori non sono in grado di interpretare i dati: soltanto le persone sono capaci di ci Che cosa un Elaboratore Macchina elettronica automatica digitale per il trattamento di informazioni Macchina indica che gli elaboratori appartengono alla stessa categoria delle macchine per stampa, delle locomotive, degli elettrodomestici Elettronica indica che il computer utilizza componenti elettronici per elaborare le informazioni Automatica significa che un elaboratore effettua in modo automatico tutte le fasi per lo svolgimento di un compito. Per far questo deve aver ricevuto una serie di istruzioni che determinano passo passo il funzionamento

Digitale significa che le informazioni vengono elaborate e memorizzate in quantit discrete. Al livello pi semplice le informazioni sono rappresentate dalla presenza o assenza di un impulso di elettricit simbolizzate da uno 0 (zero) o da un 1 (uno). Il computer elabora e memorizza segnali digitali basati sulle cifre binarie 0 e 1; con queste due cifre usate in combinazioni diverse si possono rappresentare tutti i dati siano essi parole, numeri, suoni o immagini Trattamento delle informazioni termine generale per indicare il lavoro che gli elaboratori sono in grado di svolgere Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

3

Lelaborazione dei dati soltanto una fase di un procedimento pi complesso chiamato ciclo di elaborazione dellinformazione. Questo ciclo comprende cinque fasi 1. Ingresso dei dati (Input) 2. Uscita dei dati (Output) 3. Memorizzazione (e recupero) 4. Elaborazione 5. Distribuzione e comunicazione Anche se lelaborazione dei informazioni comprende compiti che richiedono una certa dose di intelligenza quando vengono svolti da una persona umana, i calcolatori odierni possono essere definiti intelligenti solo in modo molto limitato. Ad esempio un calcolatore non pu prendere iniziative, fronteggiare imprevisti o dare giudizi morali. Tuttavia lintelligenza artificiale unarea in rapido sviluppo Elaboratore e Programma Un elaboratore una macchina che sotto il controllo di un programma memorizzato accetta ed elabora automaticamente dei dati e fornisce i risultati di tale elaborazione. Un programma una serie di istruzioni e le istruzioni che un elaboratore sta usando sono immagazzinate all'interno dell'elaboratore stesso. L'elaboratore esegue le istruzioni in modo automatico. Le istruzioni e i dati sono memorizzati insieme senza alcuna distinzione. Gli elaboratori trattano i dati che sono una rappresentazione di informazioni priva di qualsiasi valore intrinseco. L'elaborazione il trattamento di questi dati e non ha significato intrinseco e un elaboratore non capisce cosa sta facendo. Talvolta gli elaboratori sono chiamati macchine intelligenti, ma la parola intelligente in questo contesto deve essere oggetto di particolare attenzione e significa soltanto che gli elaborati possono essere programmati in modo da manipolare i dati in un modo che le persone considerano intelligente. Sistema Insieme di parti correlate tra loro che operano in maniera congiunta per svolgere una specifica funzione. Un computer o meglio un sistema elettronica di elaborazione dati composto da pi apparecchi distinti collegati tra loro Si pu quindi definire un sistema come un insieme di parti interagenti. Ci mette in luce due aspetti La presenza di parti allinterno del sistema (gli elementi del sistema) Le loro interazioni La somma delle caratteristiche delle singole parti non permette di dare una descrizione corretta del comportamento dellintero sistema: linterazione tra le parti una caratteristica altrettanto importante

1.2

Il codice binario

Digitale o analogico? I segnali analogici sono paragonabili ad unonda e trasmettono un ampio spettro di informazioni. Il nostro un mondo analogico. Il corpo umano programmato per percepire ed interpretare onde luminose analogiche: noi non percepiamo solo i massimo e minimi di queste onde ma anche quelli

Quaderni didattici del Dipartimento di Matematica

4

A. M. Ferrari , E. Venturino - Appunti di LPCAC

intermedi. Quando parliamo il messaggio viene trasmesso da onde analogiche e lo stesso accade quando ascoltiamo della musica. Ogni parte dellonda trasporta dellinformazione. Le onde analogiche sono molto sensibili alle interferenze.

Figura 1 A differenza dei segnali analogici i segnali digitali possono assumere solo due stati acceso e spento. Per un dispositivo qualsiasi semplice distinguere questi due stati. Il digitale presenta due vantaggi rispetto allanalogico: meno interferenze e una maggiore risoluzione. In particolare si noti che la capacit di risoluzione pressoch infinita.

1

0

0

1 1

1

Si stima che locchio umano riesca a distinguere sedici milioni di colori. Consideriamo il grigio. Una buona foto presenta circa 200 sfumature di grigio. Nellipotesi di voler trasmettere la foto utilizzando la luce sarebbe ben difficile ottenere 200 gradi diversi di luminosit utilizzando una lampadina e senza tener conto delle possibili interferenze. Se invece si utilizzano otto lampadine che possono essere accese o spente a ciascuna delle sfumature di grigio si associa una diversa

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

5

sequenza (tutte le lampadine accese per il bianco, tutte spente per il nero, ecc). In questo modo rappresentare le 200 sfumature di grigio risulta pi semplice anche in presenza di interferenze. Perch digitale? Dato che il sistema binario utilizza soltanto le cifre 0 e 1le informazioni rappresentate in questo sistema possono essere elaborate secondo vari criteri e con vari strumenti. Ad esempio le combinazioni di 0 e 1 possono essere rappresentate dalle condizioni acceso/spento, alto/basso, luce/buio, nord/sud, ecc.. di diversi dispositivi 1. 2. 3. 4. 5. Le particelle magnetiche presenti sulla superficie di un disco o di un nastro possono essere distribuite in modo da puntare in direzioni opposte, una rappresenta lo zero, laltra luno Su uno schermo i punti possono essere accesi quando corrispondono a uno spenti a zero I misuratori di tensione possono emettere alta o bassa tensione Le scanalature sulla superficie di un dispositivo ottico riflettono la luce in modo diverso rispetto le zone non scanalate 6. I dispositivi a due posizioni (acceso, spento) come i transistor 7. Ecc. Tutte queste tecniche vengono impiegate nei computer per memorizzare elaborare e visualizzare dati. Un esempio di codice digitale: il telegrafo. La trasmissione di informazione quando viaggia tramite un dispositivo fisico richiede un codice per essere interpretata. Lesempio pi antico il telegrafo. Per mezzo del telegrafo battendo su di un tasto vengono inviati lungo un cavo impulsi elettrici che una volta arrivati a destinazione mettono in azione un dispositivo detto ricevitore acustico il quale scatta ogni volta che riceve un impulso. Anche questo un processo digitale perch il ricevitore pu essere azionato o meno. Per trasmettere un messaggio occorre un codice (Morse ne svilupp uno basato su scatti intervallati da pause lunghe o brevi) che una volta stampati apparivano come linee o punti. Ad esempio il ben noto SOS formato da tre punti tre linee tre punti. Anche i computer necessitano di un dispositivo che invii e riceva segnali e di un codice che dia loro significato. Nei primi elaboratori questa funzione era svolta dalle valvole termoioniche sostituite poi dai transistor che possono avere solo due stati: acceso o spento. I primi transistor erano piuttosto ingombranti, oggi invece da una fetta di silicio (wafer) se ne ottengono milioni che vengono poi tagliati e inseriti in piccoli contenitori di protezione a cui si possono collegare i fili. E' grazie a questi piccoli frammenti che i computer moderni sono cos piccoli. Le cifre binarie I diversi materiali con cui sono fatti i diversi elementi dei calcolatori sono in grado si assumere due diversi stati: le sostanze magnetiche possono presentare due polarizzazioni diverse, le sostanze conduttrici possono far passare o meno la corrente, ecc. Attribuendo valore 0 ad uno stato fisico e valore 1 all'altro diventa possibile utilizzare i diversi dispositivi fisici per immagazzinare ed elaborare tutti i dati (numeri e caratteri) in forma numerica. Digitale deriva dall'inglese digit e significa cifra. I calcolatori digitali pertanto trattano esclusivamente informazioni codificate in forma binaria. Quando compiliamo un assegno, contiamo il resto, componiamo un numero telefonico, utilizziamo il sistema di numerazione decimale, chiamato cos perch impiega dieci cifre diverse dallo zero al nove che possono essere combinate tra loro per dare numeri diversi. I computer e tutti gli altri strumenti digitali rappresentano tutti i numeri con il sistema binario costituito da due sole cifre 0 e 1

Quaderni didattici del Dipartimento di Matematica

6

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Numeri decimali 0 1 2 3 4 5 6 7 8 9 10

Numeri Binari 0 1 10 11 100 101 110 111 1000 1001 1010

Bit e Byte Lunit minima del codice digitale e che pu essere manipolata dai computer il bit termine che deriva dalla contrazione inglese di binary digit, cifra binaria. Il bit proprio come una lampadina pu assumere solo due stati acceso (corrispondente a uno) spento (corrispondente a zero).

Per trasmettere una maggiore quantit di dati si ricorre al byte formato da otto bit e rappresenta lunit fondamentale del linguaggio dei computer. (1B=8b) Poich ciascuno degli otto bit pu assumere due stati possibili, il byte pu rappresentare fino a 28 =256 combinazioni possibili I bytes vengono a loro volta raggruppati in unit via via pi grandi: KB Kilobytes MB Megabytes GB Gigabytes TB Terabytes = 210 bytes = 1024 bytes, = 220 bytes = 1 048 576 bytes, = 230 bytes = 1 073 741 824 bytes, = 240 bytes = 1 099 511 627 776 bytes, circa mille; circa un milione; circa un miliardo; circa mille miliardi;

Mentre gli elaboratori usano il linguaggio binario, luomo comunica mediante le lingue e si serve del sistema decimale. Di conseguenza affinch ci possa esser comunicazione il computer deve convertire le informazioni che gli forniamo nel linguaggio binario che in grado di interpretare e poi deve riconvertire i risultati dellelaborazione in un linguaggio a noi comprensibile. Quando si digita un numero o un carattere il computer ricerca in una tabella il numero binario che lo rappresenta e durante lelaborazione si serve di quel numero. Al termine dellelaborazione avviene il processo inverso. Le tabelle a cui fa ricorso lelaboratore si chiamano codici . Il codice pi semplice formato esattamente d a 256 caratteri (di cui alcuni sono comandi) perch gli otto bit contenuti in un byte possono dare solo valori compresi tra 0 e 255. Il valore di ognuno degli otto bit determinato dalla posizione che occupa nel byte. Il sistema binario come del resto il sistema decimale, un sistema posizionale. Nel sistema decimale se prendiamo in considerazione il numero 12 , 2 rappresenta due unit e uno una decina. In pratica ogni cifra deve essere moltiplicata per una potenza di 10 il cui esponente pari al numero delle cifre che seguono la cifra considerata (1. 101 + 2. 100 ). Analogamente nel sistema binario le cifre devono essere

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

7

moltiplicate per potenze di due : in un byte il bit pi a destra uguale a 1 (20 ), quello immediatamente a sinistra uguale a 2 (21 ), il successivo uguale a 4 (22 ) e cos via fini a 128. Le varie combinazioni tra questi otto bit possono dare un numero binario compreso tra 0000 0000 e 1111 1111 che corrispondono ai numeri decimali 0 e 255. Ognuno di questi 256 numeri pu rappresentare un numero un carattere o un comando. In questo caso sono accesi tutti i bit e danno il valore binario 1111 1111 cio il numero decimale 255 = 126+64+32+16+8+4+2+1

In questo altro caso sono accesi solo il secondo ed il terzo bit che danno un valore binario 0000 0110 che corrisponde al valore decimale 6=4+2

1.3

I codici in uso

La codifica dei caratteri. Le unit di input e output i supporti e i dispositivi di memorizzazione generalmente immagazzinano e manipolano i dati in un codice di carattere. I caratteri includono lettere, cifre e caratteri speciali come i segni di punteggiatura.; questi caratteri sono chiamati rispettivamente alfabetici, numerici (che assieme sono noti come alfanumerici) e speciali. Per i caratteri le codifiche non possono che essere convenzionali, basate su tabelle che fanno corrispondere ad un dato carattere un insieme di cifre binarie. In genere sono usati 6-8 bit per carattere. Al codice carattere CHR corrisponde un numero binario con il corrispondente valore decimale.Utilizzando tali tabelle un calcolatore pu codificare in binario le informazioni ricevute in forma di caratteri, manipolarle e renderle nuovamente nel formato pi consono all'uomo. Il numero binario assegnato ad un determinato carattere varia a seconda del codice utilizzato. In informatica si usano si suano vari sistemi di codifica tra cui ASCII, EBCDIC, UNICODE Il codice ASCII (American Standard Code for Informatic Interchange) stato sviluppato dallANSI (American National Standard Institute) ed il codice pi diffuso tra i personal computer. Codifica 128 simboli utilizzando 7 bit (27 =128), numerati in decimale da 0 a 127. Un certo numero di caratteri (i primi 32) non sono stampabili a visualizzabili servono per il controllo della visualizzazione a video, della stampa. Ecc; i rimanenti sono visualizzabili e comprendono: le cifre del sistema decimale, i caratteri dellalfabeto latino maiuscolo e minuscolo, i segni i punteggiatura e altri simboli particolari usati nei paesi anglosassoni. Poich lunit di memorizzazione dei dati nel calcolatore il byte, utilizzando la codifica ASCII avanza un bit. Sfruttando anche questo possibile codificare altri 128 simboli. Quaderni didattici del Dipartimento di Matematica

8

A. M. Ferrari , E. Venturino - Appunti di LPCAC

IL CODICE ASCII

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

9

I caratteri del codice ASCII dal 128 al 255 vengono sfruttati per supportare gli alfabeti di alcune lingue europee che richiedono simboli aggiuntivi: per tali caratteri aggiuntivi non oggetto di standardizzazione si possono avere problemi di conversione (es. la Microsoft diventa la Apple). Si parla comunemente di ASCII standard riferendosi al codice che pur scritto su 8 bit ne utilizza solo 7 per rappresentare 128 simboli. ASCII esteso riferendosi al codice comprendente tutti i 256 caratteri Il codice EBCDIC (Extended Binary Coded Decimal Interchange Code) un codice obsoleto usato solo da IBM per calcolatori di classe superiore al PC (mini e mainframe) Il codice UNICODE la risposta al fatto che ASCII e EBCDIC funzionano perfettamente bene per linglese ma non per scrivere i caratteri di altre lingue come il francese, il cinese, lantico ebraico, ecc. UNICODE con i suoi 34168 caratteri in grado di coprire le principali lingue scritte del mondo. (Usato da Windows NT)

La codifica dei numeri. Cifre decimali in codice binario. Un codice semplice e sempre pi diffuso per rappresentare numeri all'interno di un elaboratore il decimale codificato binario sovente abbreviato BCD (Binary Coded Decimal). Con questo sistema ciascuna decimale viene separatamente. Per esempio 379 = 0011 0111 1001 il minimo indispensabile per codificare una cifra decimale sono quattro bit essendo 9 = 1001 Codice con segno e grandezza. Si avvale della rappresentazione separata del segno e della grandezza o modulo di un numero. Per il segno viene usato un bit, la convenzione di usare 0 per il positivo, 1 per il negativo +13 = 0 1101 -13 = 1 11 01 Numeri in complemento a due. E' il modo pi comune per rappresentare numeri interidurante un'elaborazione. In questo codice sono usati i normali valori binari posizionali. Il primo bit rappresenta una quantit negativa. Ad esempio per una rappresentazione a 6 bit: -32 16 8 4 2 1 ----------------------------------------------0 1 1 1 1 1 =16+8+4+2+1= 31 0 0 0 0 0 0 =0+0+0+0+1=1 1 1 1 1 1 1 =-32+16+8+4+2+1=-1 1 0 0 0 0 0 =-32 Si possono rappresentare numeri da 31 a -32. Frazioni. Possono essere codificate cos come i numeri interi. Usando la codifica con segno e grandezza Segno 1/2 1/4 1/8 1/16 1/32 -------------------------------------------------1 0 1 1 0 1 =-1/4+1/8+1/32=-13/32

O usando una rappresentazione in complemento a due Quaderni didattici del Dipartimento di Matematica

10 -1 1

A. M. Ferrari , E. Venturino - Appunti di LPCAC 1/2 1/4 1/8 1/16 1/32 -------------------------------------------------1 0 0 1 1 =-1+1/2+1/16+1/32=-1+19/32=-13/32

Con questi codici detti anche a virgola fissa c' il problema che il campo di valori rappresentabili limitato. Molti elaboratori assegnano sedici bit per la registrazione dei numeri interi; usando una notazione a complemento a due questo fornisce una variazione da -32768 a 32767 che per molte applicazioni non sufficiente. Dovendo utilizzare un calcolatore digitale per i calcoli scientifici di massima precisione con valori molto grandi o molto piccoli interi razionali o reali il principale problema da affrontare la limitatezza dello spazio cio il numero di bit a disposizione per rappresentare i numeri. Ad esempio quando il risultato di un calcolo intero un numero che occupa pi bit di quelli a disposizione ne viene troncata la parte pi significativa (overflow) generando cos un risultato errato 999 999 999 999 + 2 = 1 000 000 000 001 overflow Il problema non si risolve aumentando arbitrariamente il numero di bit impiegati per rappresentare ciascun numero. Si ricorre invece a un particolare tipo di notazione denominata esponenziale o rappresentazione dei numeri in virgola mobile (floating point). Con tale notazione i numeri sono espressi come prodotto di una parte frazionaria (mantissa) per una base (o radice) elevata ad un esponente. 349 000 000 000 3.49 1011 0.000 000 002 2.0 10-9 I modi di implementazione dei numeri a virgola mobile differiscono notevolmente fra i diversi tipi di elaboratori. La mantissa generalmente codificata in segno e grandezza o complemento a due ed un numero frazionario minore di uno; l'esponente pure talvolta codificato in queste forme ed riferito alla base 2. La notazione esponenziale consente di scrivere in poco spazio numeri molto grandi o molto piccoli evitando di sprecare un numero elevato di bit con valori nulli atti solo ad indicare lordine di grandezza del numero. Aumentando il numero di bit significativi del numero aumenta la precisione. In pratica nei calcolatori digitali i bit destinati a descrivere un singolo numero sono cos suddivisi: Un bit per il segno della mantissa e quindi dellintero numero Alcuni bit per la mantissa Altri bit per lesponente Singola precisione Doppia precisione Ampiezza totale in bit 32 64 Segno 1 1 Esponente 8 11 Mantissa 23 52 Massimo esponente 255 2047 Ad esempio un numero a cui vengono assegnati sedici bit (undici alla mantissa e cinque all'esponente) e utilizza una codifica segno e grandezza

Universit di Torino

1. LA STRUTTURA DEL CALCOLATOREMantissa esponente Segno 1/2 1/4 1/8 1/16 1/32 1/64 1/128 1/256 1/512 1/1024 segno 8 4 2 1 ----------------------------------------------------------------------------------------------------------------------------------------0 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1/2+1/8+1/16=11/16 1/16*212 =28161 8+4=12

11

La codifica delle immagini. Quando si devono memorizzare immagini come quelle fotografiche o pittoriche necessario scomporre artificiosamente limmagine in un insieme di elementi di informazione che verranno poi codificati con sequenze di bit. La scomposizione pi ovvia consiste nel suddividere limmagine in un reticolo di punti detti pixel (picture element). Ogni punto pu essere codificato tramite uno o pi bit. Il numero di pixel in cui viene suddivisa limmagine e il numero di bit per pixel determinano la qualit dellimmagine.

00010111011000100010 00100010001000011110 01001111001111001111 00110000110011000111 10010101010100001001 01010101000111001010

Ad esempio usando 8bit/pixel si possono codificare 256 sfumature di grigio. Per le immagini a colori occorre ricordare che qualsiasi colore pu essere ottenuto mediante la combinazione di almeno tre colori base detti primari. Tale combinazione pu avvenire in due modi. Nella sintesi sottrattiva si sottraggono alla luce bianca tutte le lunghezze donda relative ai colori primari ciascuno con la propria intensit. Le lunghezze donda rimaste formano il colore desiderato. Tale tecnica usata nelle stampanti in cui la luce bianca quella del foglio di carta e il filtraggio dei colori avviene tramite deposizione di inchiostro colorato su di essa. Una triade di colori molto usata ciano, magenta e giallo a cui si aggiunge il nero. In alternativa possibile costruire un colore sommando le lunghezze donda di tre colori primari, rosso verde blu tecnica usata nei monitor e nei televisori in cuile sorgenti luminose sono fosfori colorati (rosso verde e blu). Per rappresentare un pixel di colore necessario un valore per ciascuno dei tre colori fondamentali corrispondente all'intensit della sorgente luminosa. Una codifica comune utilizza 8bit per colore quindi 24bit/pixel. Il numero di bit impiegati rappresenta la profondit del colore. In questo modo si possono rappresentare 224 =16 milioni di colori. Quanta memoria occupa la codifica di una immagine? Dipende dalla definizione (pixel per unit di lunghezza) e dalla profondit Tipo immagine Televisiva Monitor PC Fotografica Definizione 720x625 1024x768 15000x10000 Colori 256 (8bit) 65536 (16bit) 16000 000 000 (24 bit) Dimensioni 440 KB 1.5 MB 430 bit

Le immagini vengono memorizzate nei file in diversi formati bitmap alternativi BMP (Bitmap) TIFF (Tagged Image Format File) GIF (Graphics Interchange Format) formato limitato a 256 colori adatto per immagini semplici non foto

Quaderni didattici del Dipartimento di Matematica

12

A. M. Ferrari , E. Venturino - Appunti di LPCAC JFIF, JPEG formato standard ISO prevede due tipi di compressione, difuddissimo nei sistemi grafici su internet. Usato per immagini complesse (foto)

Immagini vettoriali. Le immagini vettoriali sono tipiche della progettazione meccanica, architettonica e della grafica professionale tramite elaboratore, cio di attivit in cui limmagine costruita al computer con elementi garfici di alto livello quali linee, archi, poligoni , ecc.. Ogni figura geometrica codificata tramite un identificatore e alcuni parametri quali le coordinate del centro e la lunghezza del raggio per la circonferenza o le coordinate dei vertici per i poligoni

Circle 98 66 50 Polyline 0 48 88 152 88 48 0 48

Postscript. Formato brevettato da Adobe usato in molti programmi di grafica e incorporato nelle stampanti. Derivazioni del formato PostScript sono EPS (Encapsuled PostScript) usato per trasferire disegni tra diverse applicazioni e il formato PDF che pu inglobare immagine PostScript ma prevede anche funzioni aggiuntive (es. navigazione ipertestuale)

1.4

La logica di Boole e i transistor

La logica booleana Il funzionamento dei moderni calcolatori digitali si fonda su applicazioni di regole e principi della matematica e della logica. La formalizzazione delle regole e dei teoremi fondamentali per la moderna informatica si deve a grandi matematici vissuti nel secolo precedente il nostro. Le regole algebriche della logia binaria sono state formalizzate da un matematico britannico George Boole del secolo scorso: a lui va il merito di aver permesso un calcolo logico pi generale dei calcoli matematici e su questo tipo di calcolo si basa la logica degli elaboratori digitali moderni. Lalgebra di Boole. E' costituita da un insieme di operazioni per manipolare variabili logiche e booleana. Una variabile booleana una quantit che pu assumere solo due valori, o stati. In funzione del contesto questi stati possono essere chiamati vero o falso, alto e basso, oppure 0 e 1. Le operazioni booleane trasformano una o pi variabili booleane producendo altre variabili il cui valore dipende dai valori delle variabili originali. Ciascuna operazione logica caratterizzata da una tabella chiamata tabella di verit che indica i valori delle variabili risultanti da tutti i possibili valori delle variabili di input. A ciascuna operazione logica sono associati due simboli. Il primo il simbolo di circuito logico per l'operazione (un circuito logico simile ad un circuito elettrico) e il secondo il simbolo di algebra booleana per l'operazione. Ci sono quattro operazioni fondamentali e altre due ottenute combinando le quattro fondamentali per un totale di sei funzioni di base. Nell'ambito dei circuiti logici tali operazioni vengono identificate come porte o gate. Le funzioni fondamentali: NOT. L'operazione NOT ha una variabile di input e una di output; il valore della variabile di output l'opposto di quella di input. Input P 0 1 Output R 1 0

R = P

P

R

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

13

AND. Ha due o pi variabili di input e una sola variabile di output. La variabile di output 1 solo se tutte le variabili di input sono 1 altrimenti 0. Input P 0 0 1 1 Output R 0 0 0 1

Q 0 1 0 1

R =PQ

P Q

R

OR. Ha due o pi variabili di input e una sola variabile di output. La variabile di output 1 se almeno una delle variabili di input sono 1 altrimenti 0. Input P 0 0 1 1 Output R 0 1 1 1

Q 0 1 0 1

R =PQ

P Q

R

XOR. (OR esclusivo o di non equivalenza). Ha due o pi variabili di input e una sola variabile di output. La variabile di output 1 se uno e uno solo delle variabili di input 1 altrimenti 0. Input Output P Q R P 0 0 0 R R = P Q 0 1 1 Q 1 0 1 1 1 1 Combinando le tre operazioni AND, OR e NOT possibile costruirne altre NAND (NOT AND) la negazione dellAND: A NAND B falsa se sia A e B sono falsi, vera altrimenti NOR (NOT OR): A NOR B vera se solo se sia A sia B sono falsi Input P 0 0 1 0 Q 0 1 0 0 Output NAND R 1 1 1 0

NOR R 1 0 0 0

Le operazioni logiche qui introdotte sono raramente usate da sole. Si possono immaginare combinazioni di operazioni logiche collegando l'output di una porta con l'input di un'altra. Anche negli elaboratori pi semplici alcuni dei circuiti logici sono estremamente complessi; tale complessit qui deliberatamente evitata. Scopo di queste note mostrare come si possono combinare gli elementi logici e come si pu determinare la tabella verit per una combinazione di circuiti logici in base alle tabelle di verit delle singole porte. Consideriamo ad esempio di

Quaderni didattici del Dipartimento di Matematica

14

A. M. Ferrari , E. Venturino - Appunti di LPCAC

combinare una porta AND una OR e una NOT. Il circuito logico e il corrispondente simbolo nell'algebra booleana risultano: A

D = (A (B)) C

B C

D

Vi sono due modi per ottenere la tabella verit per un circuito di questo tipo. Il primo consiste nel fare tutte le possibili combinazioni di input nel circuito e ottenere il valore di output corrispondente al valore di ogni input. L'altro consiste nel pervenire alla tabella attraverso una serie di colonne intermedie, una colonna per ogni parte dell'espressione booleana dove le colonne sono combinate in conformit alle regole delle operazioni booleane fino a quando si ottiene una colonna per l'intera espressione. Questo processo mostrato nella seguente tabella. Input A 0 0 0 0 1 1 1 1 Output (A(B))C 1 1 0 1 1 1 0 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

B 1 1 0 0 1 1 0 0

A(B) 0 0 0 0 1 1 0 0

Operazioni diverse si combinano per dare funzioni diverse. Ad esempio la combinazione delle operazioni XOR and AND genera la funzione somma: le regole per sommare due numeri binari sono espresse dalla seguente tabella: Input 0 0 1 1 Somma 0 1 1 0 Riporto 0 0 0 1

0 1 1 0

Si rileva che la colonna della somma pu essere ottenuta mediante una porta OR esclusivo (XOR) e la colonna del riporto mediante una porta AND. Applicazione ai circuiti. Lelemento fondamentale il transistor. Il transistor un componente elettronico con tre terminali che possono essere usati per l'input e l'output di segnali. Esso ha la propriet di lasciar passare o meno la corrente tra due punti a seconda della tensione applicata ad un terzo. Il transistor permette limplementazione dei circuiti logici elementari delle porte logiche. Essi realizzano elettronicamente il comportamento degli operatori logici dellalgebra booleana. Facciamo un esempio. La funzione NOT applicata ad una variabile P fornisce la negazione di P. Per cui se il valore logico di P zero NOT P da come risultato 1 e se P vale 1 NOT P fornisce come risultato 0. E' possibile disporre i transistor in modo da costruire un circuito elettrico che lavori come la funzione NOT. Al valore logico zero corrisponde una tensione tra 0-0.4 Volt, mentre al valore logico 1 corrisponde una tensione tra 2.8-5 Volt. Il circuito tale che se Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

15

all'ingresso c' una tensione di 0 Volt (valore logico 0) all'uscita del circuito ci sar una tensione di 5 Volt (valore logico 1) o viceversa. Pi gate collegati opportunamente tra di loro permettono limplementazione di funzioni. I gate non sono fabbricati singolarmente o venduti individualmente ma sono allinterno di componenti chiamati circuiti integrati. I transistor vengono realizzati su un supporto di pochi mm2 detto chip che appoggiato su di un supporto pi grande che serve per estrarre i contatti e dar loro una dimensione pi maneggevole; il tutto viene racchiuso in un sandwich di materiale plastico o ceramico da quale fuoriescono dei piedini detti pin che permettono il fissaggio del circuito ad una piastra (circuito stampato). Il circuito stampato realizza le connessioni opportune tra pin di diversi integrati. I chip possono contenere memorie complete o tutti i circuiti di elaborazione di un elaboratore. Un chip di questo tipo detto microprocessore. La realizzazione dei circuiti si basa su tecniche di fotoincisione la cui risoluzione oggi inferiore al micron (micron milionesimo di metro). Su uno strato si silicio trattato chimicamente (drogato) viene sovrapposta una maschera bucata in corrispondenza dei circuiti da incidere: il tutto viene esposto alla luce che incide le parti esposte. Il procedimento viene ripetuto su vari strati di silicio fino a costituire una superficie che implementa l'equivalente dei transistor e con esso i gate.

Transistor

Chip e circuito stampato

La chiave del successo del computer la loro velocit nel compiere i calcoli usando i numeri binari e la logica booleana. Il calcolatore rappresenta qualunque informazione tramite sequenze e combinazioni di valori binari: se ai dati corrispondono effettivamente dei numeri esso vi compie le operazioni matematiche; se rappresentano entit non numeriche il calcolatore compie confronti, copie, modifiche, ecc.. I circuiti dei calcolatori sono in grado di eseguire soltanto operazioni estremamente semplici, quali appunti calcoli aritmetici o logici. Tuttavia lunghe sequenze di tali operazioni possono essere eseguite in tempi brevissimi. Come le quattro operazioni fondamentali dellaritmetica possono essere combinate per eseguire qualsiasi operazione complessa, cos la versatilit di un computer si basa proprio sulla semplicit delle operazioni fondamentali che possono essere combinate in uninfinit di modi.

Quaderni didattici del Dipartimento di Matematica

16

A. M. Ferrari , E. Venturino - Appunti di LPCAC

1.5. I livelli nella descrizione di una macchina. macchina a livelli

L'elaboratore come

1. Livello dellUtente (o delle Applicazioni): Word (videoscrittura), Excel (calcolo numerico), Netscape (navigazione Internet), ... 2. Livello dei Linguaggi di Programmazione: C, C++, Java, Fortran, Basic... 3. Livello del Sistema Operativo (il direttore di orchestra del calcolatore): Windows oppure Unix/Linux oppure OS oppure ... 4. Livello del linguaggio Assembler: Linguaggio (molto elementare) per creare programmi eseguibili nel sistema operativo corrispondente (Windows, Unix, ... hanno ognuno il proprio). 5. Livello del Linguaggio Macchina: Linguaggio compreso da quella particolare macchina (ogni modello di computer ha il proprio) 6. Il livello della logica digitale 7. Il livello dell'hardware

Il livello dell'Hardware. Il livello pi concreto (o meno astratto) nella descrizione di un calcolatore una rappresentazione della sua struttura fisica, detta "Hardware". Un calcolatore consiste in (molti milioni di) linee di corrente ed interruttori per tali linee. Ogni linea pu trovarsi in due stati: lo stato 0, o "spento" che indica l'assenza di corrente, e lo stato 1, o "acceso", che indica il passaggio di corrente. Il passaggio o l'assenza di corrente in certe linee pu far scattare interruttori che accendono o spengono altre linee. La coppia di stati in cui pu trovarsi una singola linea associata alla minima quantit di informazione, o "bit". Un gruppo di otto linee associato all'unit di misura immediatamente pi grande, il "byte" (1 "byte" = 8 "bits"). Questo livello di descrizione essenziale al momento della realizzazione concreta di un calcolatore. Tuttavia, assolutamente inadatto a darci una visione di insieme della macchina, o anche solo del funzionamento di un "circuito" (un gruppo di linee e interruttori entro la macchina). Il livello della logica digitale. Per descrivere un calcolatore almeno a livello di "circuiti", e non pi di singoli interruttori, si introdotta un livello di descrizione leggermente pi astratto, quello della logica digitale. Il funzionamento di un gruppo di circuiti viene descritto dalle tabelle verit descritte precedentemente. Tale descrizione non spiega come (con quale meccanismo di interruttori) un dato circuito ottenga questo effetto, ma indica solo l'effetto ottenuto. E' pi astratta di una descrizione a livello di hardware. Abbiamo ad esempio visto le tabelle verit relative ai circuiti "AND" e "OR". Notiamo che le righe delle tabelle " and", "or" sono quattro. Infatti, se un circuito ha due porte, (due input) la prima di esse pu trovarsi in due stati, e per ognuno di tali stati, la seconda porta pu trovarsi ancora in due diversi stati. Gli stati delle due porte sono quindi 2x2 = 4. Proseguendo con questo ragionamento, otteniamo che se un circuito ha n porte di ingresso, la tabella che lo descrive dovr avere 2n righe. Questo semplice fatto rende difficoltoso utilizzare la descrizione a tabelle per circuiti anche non molto grandi. Le porte di ingresso si trovano in genere riunite in gruppi di 8 (associate ad un Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

17

"byte"). In genere un circuito elementare ha un gruppo di porte di ingresso corrispondenti ad uno o due bytes (dunque pari a 8 o 16), ed altrettante porte di uscita. Ma un circuito con 16 porte di ingresso descritto da una tabella di 216 = 65 536 righe, e quindi illeggibile (a meno di introdurre abbreviazioni). Questo vale a maggior ragione per gruppi di circuiti, o schede, e per l'intera RAM. Una RAM di 64 Megabytes contiene oltre 512 milioni di bits, ed una tabella che la descriva dovrebbe avere un numero di righe pari a circa 2512 000 000 = circa 10150 000 000 , e quindi essere infinitamente pi vasta dell'universo conosciuto ... Per descrivere il funzionamento dell'intera macchina, e non solo di qualche circuito elementare, avremo bisogno di un livello di descrizione pi astratto, anzi, di molti livelli di descrizione via via pi astratti, ciascuno definito in termini del precedente. Oltre ai due livelli di descrizione gi visti, se ne aggiungono quindi altri. Ciascuno di essi una tappa di un lunghissimo lavoro, che inizia con la progettazione dell'hardware di un calcolatore, e termina con la stesura dei programmi che noi utilizziamo. Livello del linguaggio macchina. In questo livello, gli 8 bits di ogni byte sono immaginati come le cifre binarie di un certo intero. Dunque un byte nello stato 00000000 rappresenter lo 0, uno nello stato 00000001 rappresenter l'uno, uno nello stato 00000010 il 2, e cos via. Un byte pu trovarsi in 28 stati diversi, e pu quindi contenere un numero tra 0 e 28 - 1 = 255. A volte si utilizzano gruppi di 2, 4, 8 bytes per rappresentare un intero. I bytes della memoria vengono numerati, e ad ogni byte si assegna un numero detto il suo "indirizzo". Il linguaggio macchina un linguaggio di programmazione, concettualmente semplicissimo. Consiste di forse 20/30 istruzioni, tutte operazioni semplicissime, quali: - dato l'indirizzo di un byte della RAM, ricopiare il numero in esso contenuto in un byte della CPU; - addizionare, moltiplicare due interi gi posti nella CPU; - ricopiare il risultato cos ottenuto e posto nella CPU in un certo byte della RAM; Ogni operazione di questo rudimentale linguaggio di programmazione corrisponde direttamente all'indirizzo (scritto in cifre binarie) di un circuito fisicamente esistente nella macchina. Questo linguaggio manca quindi di operazioni complesse, e non contiene nomi: anche le operazioni sono indicate con i numeri, sempre in forma binaria. In esso troviamo magari un gruppo di istruzioni della forma: 00101011 01001111 01001011

il cui significato : somma (se il primo numero l'indirizzo del circuito di somma) i numeri contenuti nei bytes di indirizzo 01001111 e 01001011. Come l'esempio suggerisce, questo linguaggio laboriosissimo da usare anche per gli scopi pi semplici. Tuttavia il solo linguaggio di programmazione che la macchina possa capire senza aiuto, dato che spiegabile in termini dei sui circuiti. Ogni tipo di macchina ha il suo linguaggio macchina, diverso da quelli delle altre macchine, dato che ogni macchina ha i suoi circuiti, diversi da quelli delle altre macchine. Nel linguaggio macchina viene scritto il sistema operativo (come Unix, di cui parleremo in seguito). Il livello del linguaggio assembler. Tra i suoi compiti il sistema operativo ha quello di eseguire programmi scritti in linguaggio assembler. Questo linguaggio appena meno rozzo del linguaggio macchina di cui si parlato poco fa. Anzich di numeri binari, le sue istruzioni consistono di numeri decimali (un po' pi familiari), e di nomi abbreviati. Per esempio un gruppo di istruzioni

Quaderni didattici del Dipartimento di Matematica

18 assembler potrebbe avere la forma: RCL 331 RCL 45 + STO 77

A. M. Ferrari , E. Venturino - Appunti di LPCAC

RCL sta per "Recall", cio copia dalla RAM alla CPU; STO sta per "store", cio copia dalla CPU nella RAM. Quindi le instruzioni si leggeranno (ma a fatica) cos: "1. copia il numero il numero contenuto nel byte n. 331 nella CPU; 2. copia il numero contenuto nel byte n.45 nella CPU; 3. somma (nella CPU) i due numeri appena copiati; 4. ricopia il risultato dalla CPU nel byte n.77". Come si vede, si tratta di un linguaggio di programmazione ancora ben lontano dall'essere pratico, anche se le sue singole istruzioni cominciano ad essere leggibili (con un po' di esercizio). Per la stessa ragione, la macchina non in grado di capire l'assembler direttamente: il sistema operativo deve fare da intermediario. Ogni sistema operativo ha il suo assembler: quello di Windows diverso da quello di Unix. Tuttavia, gli assembler sono molti meno dei linguaggi macchina: due macchine molto diverse, ma entrambe fornite del sistema operativo Unix, avranno linguaggi macchina molto diversi tra loro, ma potranno entrambe capire l'assembler di Unix. Livello del sistema operativo. Il sistema operativo, come abbiamo anticipato, il programma che gestisce i pi semplici compiti di un calcolatore ("finestre", sfondo, menu principale, ed esecuzione di ogni programma, vuoi scritto dall'utente, vuoi acquistato). La progettazione di un sistema operativo un compito gigantesco e dispendiosissimo: un sistema come Windows pu prendere decine di Megabytes di spazio (decine di milioni di gruppi di 8 cifre, ciascuna 0 oppure 1). Una difficolt supplementare che un sistema operativo deve venire scritto in linguaggio macchina. Ci si pu chiedere perch il sistema operativo non venga scritto in uno dei linguaggi di programmazione di cui il lettore avr sentito parlare: C, Java, Basic, Fortran, ... . La ragione che il sistema operativo ha, tra i suoi compiti, anche quello di eseguire i programmi scritti in tali linguaggi, e quindi, logicamente, deve essere definito prima di essi. Il livello dei linguaggi di programmazione: C, Java, Basic, Fortran. Abbiamo visto come, grazie ai sistemi operativi ed ai linguaggi assembler, sia necessario scrivere solo una versione di Word per ogni sistema operativo diverso. Sia per evitare questa moltiplicazione di sforzo, sia per ovviare alla scarsa comodit d'uso dei linguaggi assembler, stato introdotto un ulteriore livello di astrazione nella macchina: il livello dei linguaggi di programmazione. Facciamo un confronto tra un'istruzione in C ed un gruppo di istruzioni assembler: al posto della riga RCL 331 RCL 45 + STO 77

di assembler, se i bytes n.331, n.45 e n.77 hanno nomi x, y, z, possiamo scrivere in C: z := x+y; Il significato di z := x+y; : "prendi i bytes di nome x, y sommali, e scrivi il risultato nel byte di nome z". Un rapido controllo consente di vedere che questa singola istruzione ha effettivamente lo stesso significato delle sei istruzioni assembler della riga precedente. Gi in questo semplice

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE esempio, la maggiore facilit d'uso del C rispetto all'assembler evidente.

19

Il livello dell'utente. Siamo arrivati alla fine dal nostro breve giro nell'architettura di un calcolatore. I linguaggi di programmazione rendono un po' pi facile (o un po' meno difficile) progettare, per esempio, un programma di interesse per l'utente quale Excel. Una volta scritto Excel, diciamo, nel linguaggio Basic, altri programmi, chiamati compilatori, traducono questo programma negli assembler dei diversi sistemi operativi, anche se al prezzo di allungarli parecchio. Questo processo di traduzione - l'ultima tappa nella progettazione di un calcolatore a misura di utente - chiamato compilazione, il programma da tradurre (scritto, diciamo, in C o in Basic) il sorgente. La sua traduzione, realizzata con un compilatore, detta il compilato o codice. Copiando un programma attraverso Internet, pu capitare che venga chiesto se si desidera il sorgente o il codice (cio il compilato o assembler). Nel primo caso, si ottiene un programma molto pi breve da trasferire attraverso Internet: ma per poterlo eseguire occorrer compilarlo. Occorrer quindi disporre di un compilatore per quel particolare linguaggio. Nel secondo, invece, si ottiene un programma molto pi lungo da trasferire attraverso la rete, ma che pu essere utilizzato subito (purch, naturalmente, la versione scelta del programma sia compatibile col proprio sistema operativo).

Quaderni didattici del Dipartimento di Matematica

20

A. M. Ferrari , E. Venturino - Appunti di LPCAC

1.6

Architettura generale del calcolatorelhardware , insieme delle componenti fisiche principalmente circuiti elettronici il software, insieme di programmi fisicamente intangibile ma indispensabile per compiere qualsiasi operazione utilizzando i circuiti dellhardware

In un qualsiasi calcolatore elettronico si possono individuare due componenti fondamentali

Entrambe le componenti permettono lelaborazione dei dati in ingresso (input) in modo tale che possano essere generati dei dati in uscita (output) I calcolatori odierni non sono in grado di trattare direttamente i segnali non numerici (esempio: segnale elettrico o luminoso): non sono cio in grado di manipolare informazioni analogiche. Essi richiedono che tali segnali vengano trasformati in segnali numerici o come sono pi spesso chiamati, digitali Tutti i componenti di un calcolatore elettronico digitale anche se in apparenza trattano informazioni non numeriche, in relt lavorano utilizzando numeri Uno dei processi importanti svolti dal calcolatore consiste nella codifica delle informazioni cio nella traduzione in dati digitali

Nei calcolatori viene fatto uso di firmware cio componenti hardware preprogrammate per svolgere una particolare attivit Linsieme delle soluzioni, metodologie e tecniche che regola linterralazione tra le varie componenti ai vari livelli (hardware, firmware, software e la loro interfaccia verso luomo) costituisce larchitettura di un sistema di elaborazione

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

21

1.6.1 Hardware Larchitettura tipica di un elaboratore moderno risale ai primordi dellera elettronica dei calcolatori (prima erano meccanici o elettromeccanici), quando Von Neumann (anni 40) per primo concep la possibilit di sfruttare un unico codice ed un unico sistema di memoria sia per i dati che per le istruzioni. Questo rappresent un notevole passo avanti e permise di semplificare lhardware rispetto ai tentativi precedenti nonch di aumentare la versatilit e la potenza di calcolo. Ogni calcolatore elettronico moderno costituito da un insieme di numerose componenti elettroniche ed elettromeccaniche. In tutti i calcolatori sono individuabili: unit centrale: lelemento fondamentale del calcolatore, la parte pi complessa dove avvengono le elaborazioni. E costituita a sua volta da: - un processore o CPU, la componente che svolge tutti i calcoli e decide la sequenza delle operazioni da eseguire - una memoria centrale (non permanente) in cui risiedono le sequenze di istruzioni da eseguire e i dati da elaborare o ricavati dal processore - i controller ai quali demandato il controllo dei dispositivi esterni - i bus di comunicazione che interconnettono le componenti del sistema memoria di massa (permanente): la memoria ausiliaria dellelaboratore. Sono dispositivi si natura elettromeccanica o ottici (unit disco, nastro, CD, ecc..) dispositivi I/O (input/output) detti anche periferiche del sistema , sono tutte quelle apparecchiature che permettono allunit centrale di comunicare con il mondo esterno (terminali video, stampanti, plotter, ecc.. dispositivi di comunicazione

RAM, memoria non permanente del calcolatore, ad accesso rapido. Oggi di 64/128 Megabytes.

CPU, unit di calcolo, cervello del calcolatore: - utilizza la memoria non permanente per eseguire i programmi;

Memoria permanente interna (fissa), ad accesso lento: Hard Disk 20 Gb Memorie permanenti inseribili: dischetti (1,4 Mb) Compact Disk o CD (0,7 Gb) Dischi Dvd(20 Gb)

Video

Tastiera Mouse Input/OutputQuaderni didattici del Dipartimento di Matematica

22

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Dentro il computer: Figura 2

Figura3. La piastra base detta scheda madre contiene tutti i circuiti a cui sono collegati il microprocessore, la memoria centrale, l'alimentatore e altri dispositivi. Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

23

CPU. Il vero cervello di un calcolatore il processore che controlla di fatto la totalit degli eventi che avvengono allinterno di un computer; frequente luso del termine CPU ( entral C Processor Unity) come sinonimo di processore. Se la CPU realizzata in un unico circuito integrato si parla di microprecessore; tutti i PC le workstation e i minicomputer sono realizzati con microprocessori. Gli elementi che troviamo in un processore sono: Registri: sono un insieme di memorie ad altissima velocit della capacit di pochi byte interne al processore Unit aritmetico-logica (ALU): la parte della CPU che compie effettivamente i calcoli aritmetici o logici, utilizzando i valori depositi nei registri durante la fase di caricamento di una istruzione Unit di controllo (CU): la parte della CPU che gestisce la successione delle operazioni da svolgere, sincronizzando le attivit di tutti gli latri elementi Clock: tutte le operazioni svolte dal microprocessore si realizzano tramite impulsi elettrici emessi ad intervalli regolari e scanditi da un clock. Ad ogni ciclo del clock il processore esegue unazione elementare come leggere in una memoria o addizionare due numeri. Il numero di cicli al secondo misurato in MHz (milioni di cicli al secondo) Misura delle prestazioni di un processore: Dimensione dei registri : si misura in bit e va da 16 a 64. Tanto maggiore questo valore tanto maggiore sono i singoli blocchi di informazione che il processore pu eleborare per ciascuna operazione eseguita, con conseguente incremento della velocit complessiva del calcolo Frequenza del clock: indicativa della velocit di elaborazione. MIPS (Millions of Instructions per Second): indica il numero di operazioni logiche o tra numeri eseguibili in media per unit di tempo MFLOPS (Millions of Floating Point Operations per Second): Per aumentare la velocit di elaborazione al processore generale di un elaboratore vengono aggiunti altri processori deputati a svolgere solo attivit particolari ma con prestazioni molto elevate in quanto specializzati. Questi processori ausiliari sono detti coprocessori Coprocessore matematico. Identifica le operazioni in virgola mobile e le esegue con velocit molto maggiore rispetto al processore principale Coprocessore grafico. Collocato nella scheda video gestisce specifiche per la grafica e gestisce la rappresentazione sullo schermo degli oggetti la cui descrizione contenuta nella memoria centrale I processori si dividono in Processori CISC (Complex Instruction Set Computer): la caratteristica da cui deriva il nome consiste nel fatto che questi processori utilizzano delle istruzioni interne complesse e ciascuna istruzione pu richiedere molti cicli di clock per essere completata. Questo tipo di processore viene utilizzato in tutti i personal computer IBM e compatibili e MacIntosh Processori RISC (Reduced Instruction Set Computer): questi processori lavorano con un set di istruzioni ridotto ed eseguono almeno unistruzione per ogni ciclo del clock. Essendoci un minor numero di istruzioni pi semplici il processo di elaborazione viene svolto pi velocemente. La quasi totalit dei processori non Pentium oggi prodotti di tipo RISC. In particolare tutti i processori destinati ad equipaggiare workstation o server UNIX usano questa architettura

Quaderni didattici del Dipartimento di Matematica

24

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Il ciclo della macchinaL'unit di controllo e l'unit logico-aritmetica della CPU collaborano con la memoria centrale in un processo distinto in quattro fasi che porta al completamento di un ciclo della macchina. Il ciclo si divide in quattro fasi 1. Caricamento 2. Decodifica 3. Esecuzione 4. Memorizzaz ione

La memoria centrale. E quella parte del calcolatore in cui sono immagazzinati i programmi e i dati in corso di elaborazione. Lunit fondamentale della memoria il bit. La memoria suddivisa in celle o locazioni ognuna delle quali pu immagazzinare un elemento di informazione Ciascuna cella di memoria caratterizzata da un indirizzo (la sua posizione allinterno della memoria) e da un contenuto (cio il numero binario fisicamente memorizzato nella cella) Deve consentire un accesso diretto e rapido alle informazioni Memoria temporanea: la RAM. Una seconda componente di ogni calcolatore la RAM (Random Acces Memory), o memoria ausiliaria della CPU. Accesso casuale non vuol dire che le informazioni sono sparpagliate a caso ma che al processore occorre lo stesso tempo per accedere ad una qualsiasi parte della memoria. Una CPU ha un numero limitato di celle di memoria, dette "registri", usate per i calcoli, ed utilizza la RAM per memorizzare temporaneamente i risultati di tali calcoli. A causa dell'attuale tecnologia impiegata per la la memoria centrale essa ha la caratteristica di essere volatile. La RAM una memoria provvisoria (svanisce quando si spegne il calcolatore), relativamente piccola, di accesso rapido. La RAM costituita da milioni di microinterruttori. Non va confusa con le memorie permanenti a supporto magnetico, pi grandi, di accesso pi lento, come l Hard Disk, di cui parleremo adesso. Memoria ROM (Read only Memory) Si pu solo leggere e non possibile modificare il contenuto. I dati in una ROM sono inseriti durante la costruzione. Sono ad esempio i programmi che servono allavvio del sistema al momento dellaccensione. La memoria ROM non volatile

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

25

Memoria di massa Sia per il suo costo elevato che ne limita di fatto lampiezza, sia per la sua natura volatile alla memoria centrale viene affiancata una pi economica memoria di massa, detta anche secondaria (dischi, nastri, ecc..) non volatile e quindi in grado di mantenere nel tempo una grande quantit di informazioni a costi molto minori. Come vengono memorizzati i dati. Le memorie secondarie comprendono due elementi distinti: il dispositivo e il supporto di memorizzazione. I dispositivi di memorizzazione hanno la funzione di leggere e scrivere i dati sul supporto. Il supporto di memorizzazione invece il componente fisico su cui vengono immagazzinati i dati. Ad esempio lunit floppy disk il dispositivo, il dischetto il supporto. Le memorie si distinguono in tre categorie: magnetiche, ottiche e allo stato solido.

La memoria magnetica. Mentre il disco gira o il nastro scorre la testina di lettura/scrittura emette degli impulsi elettrici che invertono la polarit delle piccole particelle magnetiche presenti sulla superficie del supporto; gli allineamenti delle particelle rappresentano i dati in forma binaria. Quando un file viene aperto avviene il processo inverso: le particelle magnetizzate inducono nella testina una corrente elettrica che viene trasmessa al computer come sequenza di zeri e uno. La memoria ottica. La registrazione ottica avviene per mezzo di un raggio laser che crea sottili scanalature sulla superficie di un disco. Mentre il disco gira un sottile raggio laser colpisce la superficie che riflette una maggiore o minore quantit di luce a seconda che la zona colpita sia una scanalatura o un intersolco. Un rivelatore misura i diversi gradi di luce riflessa che vengono poi convertiti dai circuiti in forma binaria. La memoria magneto-ottica. Si stanno rapidamente diffondendo perch facilmente cancellabili e riutilizzabili. Per registrare i dati un laser riscalda la superficie del disco ottico fino al punto in cui la polarit delle particelle pu essere modificata dalla testina di lettura

Quaderni didattici del Dipartimento di Matematica

26

A. M. Ferrari , E. Venturino - Appunti di LPCAC scrittura. Una volta che superficie di sia raffreddata pressoch impossibile che altre fonti magnetiche possano provocare la cancellazione dei dati.

Memoria allo stato solido. Tra i dispositivi pi recenti troviamo le memorie flash costituite da chip simili a quelli della memoria RAM ma in grado di registrare i dati in modo permanente. Per le loro piccole dimensioni vengono utilizzati negli organizer, nei PDA (personal digit assistant), nellemacchine fotografiche digitali.

Velocit di accesso ai dati. Il reperimento dei dati archiviati in una memoria di massa richiede un certo periodo di tempo la cui durata dipende dalle caratteristiche meccaniche dellunit di lettura: la velocit di rotazione (il numero di giri compiuti dal disco in un minuto), il tempo di posizionamento (il tempo impiegato dallunit di lettura per individuare la traccia su cui sono memorizzati i dati) e il tempo di latenza (una volta individuata la traccia lunit deve attendere che i dati scorrano sotto la testina di lettura). Il tempo di latenza sommato al tempo di posizionamento costituiscono il tempo di accesso. Il tempo di accesso varia notevolmente da un tipo di memoria allaltro: il pi veloce quello della memoria flash, seguita dagli hard disk, mentre il pi lento quello dei dischetti e dei nastri. Una volta localizzati i dati nella memoria secondaria devono essere trasferiti nellamemoria centrale (RAM). La velocit necessaria a compiere questa operazione detta velocit di trasferimento dei dati. Le unit hard disk offrono in genere le velocit pi elevate e quelle a nastro le pi basse, mentre dischetti e dischi ottici hanno una velocit intermedia. La velocit di trasferimento dati pu essere aumentata aumentando la velocit di rotazione. Capacit di memorizzazione. E la quantit di dati che un supporto di memorizzazione pu contenere. Accesso diretto (dischi) o sequenziale (nastri). Formattazione. Un disco o un nastro magnetico possono essere utilizzati solo dopo essere stati formattati. La formattazione consiste nel suddividere la superficie del disco in tracce circolari e settori a spicchio tramite contrassegni elettronici in modo che i dati possano essere archiviati e recuperati sistematicamente.

Memoria permanente interna: lHard Disk. I dischifissi chiamati anche hard disk sono di gran lunga le memorie di massa pi usate. Le caratteristiche che li contraddistinguono (affidabilit, velocit di accesso ai dati e costi contenuti) li rendono particolarmente difficili da essere sostituiti. Un disco fisso costituito da una scatola sigillata contenenti uno o pi piatti di vetroceramica o di alluminio rivestiti da un sottile strato di materiale magnetico. I dati digitali sono registrati sulla superficie del piatto in cerchi concentrici detti tracce. La registrazione avviene mediante una testina di lettura-scrittura fissata ad un braccio mobile. Poich i dati sono registrati su entrambi i lati del disco le testine sono in realt due sempre solidali tra loro. Ogni traccia della superficie superiore pu essere letta contemporaneamente alla corrispondente traccia della superficie

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

27

inferiore senza spostare le testine in modo quindi molto efficiente. Se il disco ha pi di un piatto lacceso a tutte le tracce che si trovano una sullaltra pu avviene contemporaneamente. Si chiama cilindro questo insieme di tracce. I documenti e i programmi che vogliamo conservare si trovano di necessit sullHard Disk. Quando, ad esempio, si legge un testo, si sta in realt leggendo una copia di questo testo situata nella RAM; loriginale sullHard Disk. Quandi si modifica un testo, le modifiche avvengono in realt sulla copia situata nella RAM, e dunque volatile. Diventano permanenti solo quando le salviamo: in questo caso la versione modificata viene ricopiata sullHard Disk e la precedente va persa. E opportuno salvare spesso, dato che incidenti (caduta di corrente, errori nei programmi) possono cancellare la copia nella RAM, e con essa tutto il lavoro svolto. Oggi i calcolatori tendono ad avere 20 Gb di Hard Disk. Memoria virtuale. I programmi e i file molto estesi possono eccedere la memoria disponibile anche se molto grande. Per ovviare a questo problema parte dei dati non utiizzati al momento vengono immgazzinati fuori della RAM ad esempio sullhard-disk. Virtuale indica che non esiste fisicamente ma soltanto logicamente. Confronto tra la memoria permanente e quella non permanente. Se rileggiamo i dati inclusi sopra, notiamo come memoria permanente sia, di solito, un centinaio di volte pi grande di quella non permanente, o RAM. Nonostante questo, la memoria RAM svolge un ruolo cruciale. E importante avere unampia memoria RAM; pi importante che non avere una grande memoria su Hard Disk. Ricordiamo che la RAM utilizzata dalla CPU durante i suoi calcoli. Per calcoli molto grandi (ad esempio: manipolazione di immagini e/o suoni), quando la RAM non basta, la CPU costretta ad utilizzare anche la memoria su Hard Disk. Leffetto, per, un drammatico calo di velocit, dato che lHard Disk una memoria ad accesso lento. Questo effetto chiamato swapping o paginazione (si accendo le spie del disco rigido, si sentono i segnali sonori, crepitanti e fastidiosi, che indicano laccesso a questa memoria). Per evitarlo non si pu fare molto, eccetto chiudere ogni altro programma in quel momento in uso, per avere pi RAM disponibile. Programmi che richiedono molta memoria non sono effettivamente eseguibili su calcolatori con una piccola memoria RAM. Memoria permanente mobile: dischetti, CD, DVD. Non tutta la memoria permanente ad accesso lento si trova allinterno del calcolatore: una parte di essa si trova allesterno, sotto forma di dischetti, CD, DVD, e pu essere inserita o tolta a piacere. I dischetti o floppy disks costituiscono la memoria permanente e mobile di formato pi piccolo: essi contengono al pi 1400 Kilobytes, ovvero 1,4 Megabytes. Floppy disk si chiama dischetto perch una volta tolta la copertura appare come un disco di plastica ricoperto di ossido metallico simile al materiale magnetico delle cassete audio-video. Dal 1984 (hanno della loro introduzione sul mercato) ad oggi sono stati venduti oltre cinque miliardi di dischetti da 3,5 pollici e 1.44 Mb. Nello stesso arco di tempo la capacit dei dischi rigidi passata da 20 Mb a 20 Gb e oltre. Con un dispositivo di memoria cos grande la capacit offerta dai dischetti diventa superflua. Sono gi sufficienti, per, per contenere un libro, oppure parecchie centinaiadi pagine di testi. Nei dischetti, la memoria contenuta sotto forma di magnetizzazione di un supporto metallico.

a)

Quaderni didattici del Dipartimento di Matematica

28

A. M. Ferrari , E. Venturino - Appunti di LPCAC

b) I CD o compact disk sono dischi pi grandi: arrivano fino a 700 Megabytes, ovvero 0,7 Gigabytes. Dunque ognuno di essi vale quanto 500 dischetti. Sono sufficienti a contenere documenti e programmi con immagini e suoni, e anche un intero concerto, non ancora per un vero e proprio film. Nei CD, la memoria contenuta sotto forma di microincisioni su un supporto plastico, microincisioni che vengono poi lette da un laser. CD-R Cd registrabili possono essere scritti una volta sola. CD-RW possono essere registrati cancellati e riutilizzati proprio come un disco fisso c) I DVD dischi ottici dellultima generazione. Si chiamavano Digital Video Disk e poi hanno preso il nome Digital Versatile Disk. Sono capaci di contenere fino a 15-20 Gigabytes, adatti a contenere interi film (immagazzinati sotto forma di miliardi di bytes).

Memoria di transito usate in genere per aumentare la velocit di trasferimento tra mezzi con propriet diverse. Sono: Buffer sono chiamate cos (tampone, cuscinetto) particolari aree della memoria temporanea utilizzat enellambito di trasferimenti tra dispositivi con velocit di trattamento delle informazioni diverse tra loro. I buffer si trovano in vari componenti anche periferiche (stampanti, tastiere). Essi consentono la prosecuzione dellattivit sul dispositivo pi veloce mentre quello pi lento interessato dal trasferimento. Un esempio si ha nelle stampanti: la stampa comporta un movimento di parti meccaniche che sono di ordini di grandezza superiori a quello dei trasferimento dei dati. I dati vengono pertanto trasferiti in un buffer locale alla stampante sino a riempirlo; mentre la stampa in corso avvengono alternativamente le fasi di svuotamento lento del buffer e riempimento veloce. Tra un riempimento del buffer e quello successivo il computer pu svolgere altre operazioni Memoria Cache unarea di transito realizzata con la tecnologia in grado di ottenere un tempo di ciclo brevissimo ed impiegata per contenere le istruzioni e i dati di immediato o prossimo utilizzo da parte del processore. Si basa sulla considerazione che le istruzioni immediatamente successive a quella in esecuzione e i dati correnti sono quelli che pi probabilmente verranno utilizzati nellimmediato futuro. E in sostanza un buffer tra la memoria centrale e il processore.Quando durante lesecuzione di un programma risulta necessario un accesso in lettura alla memoria centrale (relativamente lenta in funzione alla velocit di calcolo del processore) il processore verifica prima se quanto richiesto presente nella cache: in caso positivo il trasferimento avviene dalla cache anzich dalla RAM e sar notevolmente pi veloce

BUS Il bus del computer una sorta di autostrada dei dati. E costituito da un insieme di collegamenti in rame localizzati sulla scheda madre dellelaboratore Esistono due modi per connettere tutti i componenti: collegare ogni dispositivo a tutti gli altri oppure collegare ogni dispositivo ad un unico sistema di linee, il bus

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE Bus di sistema. Collega la CPU agli altri dispositivi del computer

29

Bus locali. Grazie ad essi una periferica tolta dal bus di sistema e collegata alla CPU e alla memoria centrale tramite una linea di trasmissione piu ampia Usato ad esempio per gestire le interfacce grafiche Periferiche di Input/Output Tastiera Video (schermo o monitor). Stampanti Plotter Scanner

IL VIDEO Per creare un'immagine lo schermo viene suddiviso in una griglia di quadratini detti pixel (contrazione di picture element, ovvero elemento di immagine), regolarmente disposti e singolarmente controllati da un scheda grafica di controllo. Il numero di pixel, loro posizione e distanza reciproca determino la risoluzione del video. La risoluzione si misura in punti per pollice (dpi, dots per inch): maggiore questo numero, pi sono dettagliate le immagini e definiti i contorni. La risoluzione di uno schermo si misura di norma in base al numero di pixel della base per il numero di pixel dell'altezza. Se diciamo che uno schermo ha una risoluzione 640x480 pixel intendiamo che la base di 640 pixel e l'altezza di 480. Il numero di pixel totale contenuti in uno schermi dipende dalla risoluzione adottata. La gamma dei colori disponibili chiamata profondit di colore determinata dal numero di bit utilizzati per memorizzare i dati di ogni pixel. Ad esempio se ciascun pixel viene assegnato un unico bit, pu essere solo spento o acceso bianco o nero. Se invece ha otto bit pu assumere 256 colori diversi o gradazioni di grigio, mentre con 24 bit pu avere sedici milioni di colori.

Quaderni didattici del Dipartimento di Matematica

30

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Il numero di colori di uno schermo o gradazioni di grigio che possono essere visualizzati sono limitati dalla quantit di memoria della scheda video. Ad esempio un'immagine in bianco e nero su uno schermo 640x480 contiene poco pi di 300.000 pixel: poich per ogni pixel necessario un solo bit la memorizzazione dell'immagine richiede circa 300 mila bit (37.5 kilobyte) di memoria. Al contrario considerando schermi di fascia pi alta uno schermo a colori che utilizza 24 bit con una risoluzione di 1024x768 contiene quasi 800 mila bit e richiede 2.5 megabyte di memoria.

N.B Una risoluzione dello schermo pi alta non implica necessariamente un'immagine pi nitida. I caratteri e le figure sono costituiti da un numero fisso di punti detti matrice. Se aumenta la risoluzione i punti della matrice non aumentano ma diventano pi piccoli e di conseguenza diminuisce anche la grandezza dell'immagine. Ad esempio un carattere di matrice 7x9 perfettamente leggibile su uno schermo a 14 pollici con risoluzione 640x480, aumentando la risoluzione pu essere ridotto ad un 40% e diventare illeggibile. Per questo sconsigliato usare risoluzioni molto alte per schermi di piccole dimensioni. Di norma una risoluzione 800x600 va bene per uno schermi di 15 pollici ed ideale per uno di 17, mentre una risoluzione di 1024x768 buona per un monitor di 17 pollici e perfetta per uno di venti o ventuno.

Risoluzione 640x480 800x600 1024x768 1280x1024 1600x1200

Grandezza dello schermo 14 15 17

20

21

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE 1.6.2 Il software

31

Si divide in due gruppi: Software di base: costituito da programmi necessari per il funzionamento del computer. Esso comprende: Sistema operativo. E la parte pi vicina allhardware e con esso interagisce direttamente conferendogli gran parte delle sue caratteristiche operative quali: modalit di gestione della memoria, tipi di periferiche riconosciuti. E un complesso insieme di programmi con il quale lutente non interagisce direttamente Interfaccia utente. E un insieme di programmi che permette allutente di comunicare con il sistema operativo, non altrimenti accessibile. Le modalit di interazione tra uomo e macchina cambiano a seconda della raffinatezza del programma che realizza linterfaccia (comandi da digitare a tastiera oppure operazioni da selezionare da un men che appare sul video). Lutente deve imparare il linguaggio dei comandi (in genere con un vocabolario ricco e complicato) oppure scegliere i comandi dal men (molto pi semplice ed intuitivo) per poter operare con una specifica machina Software applicativo: comprende tutti i programmi che hanno il compito di risolvere specifici problemi dellutente. Esso comprende programmi che rispondono ad esigenze diverse: elaboratori testi (Es. WORD), fogli di calcolo (Es. EXCEL), gestori di database, ecc Software di comunicazione. Per gestire la comunicazione tra elaboratori

applicazioni Sistema hardware

operativo

Quaderni didattici del Dipartimento di Matematica

32

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Il sistema operativo Il sistema operativo un insieme di numerosissimi programmi, che interagiscono fra loro dando origine ad una struttura estremamente complessa. La sua dimensione complessiva pu essere anche ragguardevole fino a 100 MB, in relazione alla complessit degli eventi che in grado di gestire. Tutti i sistemi operativi sono costituiti da un insieme di moduli, ciascuno dei quali destinato a svolgere una ben precisa funzione, che interagiscono tra loro secondo ben precise regole al fine di realizzare la funzionalit del sistema e di utilizzare al meglio le risorse. Il sistema operativo effettua la gestione delle risorse del sistema informatico, risorse che sono date dai componenti principali (processore, memoria RAM, ecc.) e periferici (tastiera, video, memorie di massa, stampante, ecc) disponibili nel sistema. Il sistema operativo ha il compito di governare e controllare altri programmi applicativi. Esso attribuisce a tali programmi le risorse richieste e ne controlla luso. Ha quindi una funzione di supervisore dellintero sistema. Le funzioni del sistema operativo sono quindi: Gestore dei processi: controllo dei programmi in esecuzione e delle loro risorse Gestore del processore : effettua lassegnazione dei programmi ai processori in attesa delle'esecuzione Gestore della memori centrale: realizza la collocazione dei programmi e dei dati nella memoria RAM Gestore della memoria secondaria (file system) : gestisce la memorizzazione e il reperimento delle informazioni sulle memorie di massa, realizzando la corrispondenza tra organizzazione logica e fisica dei supporti Gestore dellinput/output : sovraintende allaccesso e al controllo dei dispositivi periferici Per comunicare con il sistema operativo lutente dispone di comandi che vengono accettati, interpretati ed eseguiti da un modulo del sistema operativo detto Interprete dei Comandi.

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

33

Gestione dei processi Tra le funzioni dei sistemi operativi vi quella di offrire differenti modalit operative, dipendenti dal sistema operativo stesso e dalla macchina usata per la gestione dei programmi in esecuzione. Queste modalit operative si riferiscono prevalentemente alla possibilit di consentire laccesso al calcolatore a uno o pi utenti (modalit single-user o multi-user) oppure alla possibilit di far funzionare uno o pi programmi contemporaneamente (modalit single-task o multi-task). Modalit single-user e single task Questa modalit operativa permette di accedere alle risorse del calcolatore ad un solo utente che pu eseguire un solo programma per volta. In tali sistemi non possibile sospendere lesecuzione di un programma (job) per assegnare la CPU ad un altro ma occorre terminare lesecuzione di un programma prima di far partire il successivi; durante le operazioni di I/O la CPU rimane inutilizzata.

Microprocessore Memoria RAM

Applicazione

Unit Periferiche

Utente

Nella modalit single-user single-task tutte le risorse vengono messe a disposizione di un singolo utente e di una singola applicazione Modalit single-user e multi-task Nella modalit single-user multi-task il sistema operativo consente lattivazione di pi programmiapplicativi, compatibilmente con la quantit di memoria RAM del sisteam, e il passaggio da uno all'atro senza dover memorizzare i dati, terminare l'esecuzione di un programma e far ripartire laltro. Le risorse del sistema informatico devono essere ripartite equamente tra le singole applicazioni, sacrificando potenza di elaborazione altrimenti concentrata su di una sola applicazione. Pi sono numerose le applicazioni attive, pi risulta lenta lelaborazione dei singoli programmi.

Unit Periferiche Microprocessore Memoria RAM

Applicazione 1 Applicazione 2 Applicazione 3 Utente

Quaderni didattici del Dipartimento di Matematica

34

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Modalit multi-user e multi-task Nella modalit multi-user multi-task il sistema operativo permette anche ad un numero elevato di utenti di lavorare sullo stesso elaboratore usando lo stesso programma o programmi differenti.

Unit Periferiche Microprocessore Memoria RAM

Applicazione 1 Applicazione 2 Applicazione 3

Utente 1 Utente 2 Utente 3

Gestione della memoria Lorganizzazione e la gestione della memoria centrale uno degli aspetti pi critici ne progetto di un sistema operativo: il gestore della memoria stabilisce il complesso delle regole che governano la ripartizione dello spazio disponibile tra pi entit che in modo concorrente ne richiedono luso. I criteri di allocazione della memoria centrale hanno un notevole impatto sulle prestazioni globali del sistema in particolare in quelli multiutente e multitasking. La principale suddivisione tra sistemi operativi basati sulla memori reale e sistemi operativi basati sulla memoria virtuale (ad esempio UNIX). La gestione della memoria virtuale. I sistemi operativi che gestiscono la memoria virtuale permettono di prescindere dai limiti fisici dello spazio di memorizzazione: se il calcolatore ha poca memoria centrale un certo programma viene comunque eseguito, anche se con maggior lentezza, se invece ne ha molta aumentano le prestazioni. In un qualsiasi istante durante lesecuzione di un programma, una sua porzione si trova in memoria centrale il resto si trova su memoria di massa. Durante lesecuzione di ciascuna istruzione si fa riferimento a istruzioni o dati che si trovano in altre parti del programma. Se linformazione referenziata si trova in memoria centrale, lesecuzione del programma procede normalmente; se invece viene referenziato qualcosa che non si trova in RAM, il sistema operativo prende il controllo, porta in memoria centrale le informazioni necessarie e se non ce spazio sufficiente, libera uno spazio sufficiente di memoria spostando sul disco parti di codice o dati al momento non utilizzati (swapping). Al termine di tali operazioni il controllo ritorna allistruzione che aveva provocato la richiesta e lesecuzione procede. In altre parole la memoria virtuale permette di utilizzare la memoria di massa come se fosse memoria RAM. E il sistema operativo a gestire la suddivisione del codice e dei dati in blocchi da suddividere tra le memorie. La gestione della memoria secondaria Lenorme quantit di informazioni che un elaboratore pu trattare e memorizzare necessita di una organizzazione sia a livello logico che a livello fisico; ci necessario per consentire il reperimento dei dati in tempi accettabili e il suo trattamento in modi opportuni. La gestione della collocazione

Universit di Torino

1. LA STRUTTURA DEL CALCOLATORE

35

dellinformazione nella memoria di massa uno dei servizi del sistema operativo ed svolta da un modulo denominato file system. Organizzazione fisica dal bit al file. Sino a questo momento sono state considerate solo due unit di informazione: 1. Bit il singolo segnale binario rappresentato con le cifre 0 e 1, ed la minima unit di informazione 2. Byte: unaggregazione di 8bit Laggregazione dellinformazione non si ferma la byte, cio al carattere: parole, frasi, testi, gruppi di dati omogenei costituisco possibili aggregazioni in strutture logiche. Se da un lato lelaboratore in grado di manipolare linformazione sino al singolo bit, dallaltro luomo ha la necessit di manipolare informazione maggiormente aggregata e correlata, pi complessa rispetto al bit o al byte. A tal fine sono state definite ulteriori unit logiche 3. Campo: un gruppo di byte o di caratteri correlati, ad esempio un nome, una data, un codice, si definisce - campo numerico: contiene numeri memorizzati come tali - campo alfabetico: contiene lettere o spazi - campo alfanumerico: se contiene cifre, lettere o spazi - campo carattere: se un campo alfanumerico e contiene lettere e caratteri speciali 4. Record: un gruppo di campi correlati; ad esempio nome, cognome, et di una persona formano un record anagrafico 5. File: un gruppo di record correlati; pu contenere programmi, testi, dati organizzati in record Il termine file molto generico: indica un contenitore di informazioni immagazzinate in un dispositivo di memorizzazione; anche solo un carattere deve essere inserito in un file qualora si voglia memorizzarlo in modo permanente I file sono residenti su memoria di massa e su di essi possono essere compiute le seguenti operazioni - creazione - apertura (per consentire operazioni sul loro conetnuto) - chiusura (per impedire altre operazioni sul loro contenuto) - cancellazione - copiature - rinomina - visualizzazione (listing) sullo schermo o in stampa I contenuti dei file possono essere manipolati da operazioni come - lettura (comporta il passaggio del contenuto del file ad un processo) - scrittura (comporta il passaggio dei dati da un processo al file) - modifica - inserimento Descrittori di file. A ciascun file sono associate alcune informazioni che lo denotano e che possono differire in ragione al sistema operativo ma che in genere sono 1. identificativo univoco (lindirizzo della struttura dati che descrive il file, gestito internamente dal sistema operativo e non visibile allutente) 2. nome del file (dato dallutente) 3. possessore (nome dellutente nei sistemi multi-user) 4. data e ora di creazione 5. data e ora dellultima modifica 6. tipo di file (caratterizzato dal tipo di estensione. Es. .EXE; .TXT, .DOC)

Quaderni didattici del Dipartimento di Matematica

36 7. posizione fisica sul supporto di memoria 8. informazioni sulla protezione

A. M. Ferrari , E. Venturino - Appunti di LPCAC

Il file system compie un insieme di funzioni da sistema di archiviazione in modo da - fornire un meccanismo per identificare i file, associando ad un nome lo spazio fisico sulle memorie di massa - rendere trasparente la struttura fisica del supporto di memorizzazione gestendo la corrispondenza tra blocchi logici e blocchi fisici - fornire metodi opportuni per accedere ai dati - ottimizzare i tempi di reperimento e trasferimento delle informazioni - occupare lo spazio libero quello appartenuto al file cancellati Quasi tutti i file system oggi esistenti organizzano i file in modo gerarchico. Tale organizzazione puramente logica non ha alcun legame con la posizione fisica effettiva dei file sul disco e serve allutente per organizzare in modo logico i propri dati I file sono raggruppati in directory (cartelle). La posizione del file allinterno delle varie directory individuata dal percorso (path) che necessario effettuare per arrivare dalla directory principale (root) al file Caricamento del sistema operativo. Il sistema operativo deve essere presente (almeno in parte) in memoria centrale prima che venga inviato qualsiasi comando; daltra parte ogni volta che il computer viene spento il contenuto della sua memoria centrale viene irrimediabilmente perso. Ad ogni accensione del sistema il sistema operativo deve essere ricaricato. Sfortunatamente non si pu semplicemente inviare un comando e lasciare che il sistema operativo si preoccupi di ricaricarsi; infatti quando il computer viene acceso, la memoria centrale vuota e se il modulo interprete dei comandi e il modulo che gestisce linput/ouput non presente in memoria non possibile leggere, interpretare ed eseguire nessun comando. La soluzione una particolare fase dellavviamento dellelaboratore che prende il nome di Bootstrap o semplicemente Boot. Quando viene applicata lalimentazione elettrica , nel computer si attivano i programmi di diagnostica scritti nella ROM (quindi mantenuti anche in assenza di alimentazione elettrica) che verificano la presenza di tutti i moduli hardware e lassenza di guasti. In particolare viene caricato il BIOS (Basic Input Output System) un piccolo programma che risiede nella ROM e gestisce le comunicazioni tra le varie porte di Input e Output e verifica l'integrit di tutte le parti fisiche del computer. Terminata questa fase diagnostica viene attivato il programma di bootstrap che contiene le istruzio