2. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Si ricorda che:
• l'uso degli appunti qui presenti è consentito per solo uso personale e di studio;
• la consultazione è gratuita ed ogni forma atta a ricavarne lucro è vietata!
• gli appunti sono fatti da studenti che non possono assumersi nessuna responsabilità
in merito;
• il materiale qui presente non è sostitutivo ma complementare ai libri di testo:
• - devi (e ti consiglio) di consultare e comprare i libri di testo;
• il materiale qui presente è distribuito con licenza Creative Commons
Ti ricordo che se vuoi contribuire mandando degli appunti o quant'altro possa essere utile
ad altri puoi farlo inviando il materiale tramite:
http://profland.altervista.org/mail.htm
Spero che ciò che hai scaricato ti possa essere utile.
Profman
Il file è stato scaricato/visualizzato in forma gratuita da Profland:
http://profland.altervista.org
sezione Profstudio
http://profland.altervista.org/profstudio/profstudio.htm
oppure da qualche mirror, come:
www.profland.cjb.net www.profland.135.it
o dalla pagina dedicata su slideshare.net:
www.slideshare.net/profman
2/35
3. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Organizzazione del File System
limitatezza della memoria
incapacità di memorizzare grosse quantità di informazioni
i programmi più voluminosi (ad es. i compilatori) venivano conservati su
schede a caricati in memoria solo quando necessario
••• •
••• • • •
•• • •
•••
• • • •••
• ••• •
••• • •
•• • • MEMORIA DI MASSA
••• Stabilità
Minor costo per bit
• • • •••
••• •
••• • • • Maggiore capacità
•• • • Più lento tempo di
•••
accesso
• • • •••
MEMORIA
CENTRALE
La CPU non può manipolare informazioni direttamente nella memoria di
massa. Queste devono essere prima trasferite in memoria centrale → necessità
di un programma per automatizzare il trasferimento dei programmi dalla
memoria di massa alla memoria centrale.
L’utente deve dividere il programma in pezzi (pagine) per tenere in memoria
centrale solo l’istruzione in esecuzione ed un certo numero di quelle che
seguono.
3/35
4. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
MEMORIA CENTRALE MEMORIA AUSILIARIA
parte residente
del sistema operativo
Programma
Utente PAGING
SISTEMA OPERATIVO
page 2
PROGRAMMA UTENTE DIVISO IN PAGINE
L’efficienza del computer può essere migliorata in maniera
significativa da:
programmi finalizzati a migliorare la gestione della memoria.
Windows non è il migliore sistema operativo sotto questo punto di
vista!
le capacità della memoria centrale
Se queste sono molto elevate, il paging tra i programmi si riduce in
maniera sensibile
Ogni sistema operativo organizzativo organizza logicamente il proprio
archivio in un certo modo, creando il file system.
FILE → raggruppamento logico di bit organizzati in un certo
modo e delimitati da un carattere di “END OF FILE”
Il file system è una struttura ad albero.
4/35
5. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
ROOT (RADICE) = PUNTO DI RIFERIMENTO
file e cartelle
file e cartelle
…….………….(continua)
Ciascuno di questi oggetti (file e cartelle) ha un suo nome, in modo
che possa essere identificato in base alla catena dei nomi degli
oggetti che lo precedono.
Il concetto di nomenclatura non è assoluto, ma è relativo alla
posizione, per cui posso avere:
ROOT (RADICE)
a b c d
a b abcdef
…….………….(continua)
Il nome del file è corredato dall’estensione che ne qualifica il
contenuto. L’estensione è molto importante perché identifica il
programma in grado di interpretare le informazioni contenute nel
file
5/35
6. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
SISTEMA OPERATIVO
Programmi per la
gestione delle memorie
SCHEDULER
Programmi per la
gestione dell’I/O
Programmi per la
sincronizzazione tra CPU e canale
Programma caricatore
Programma traduttore
HARDWARE
AVVIO DEL COMPUTER
la memoria centrale è vuota
la memoria di massa è intoccabile fino a quando in memoria centrale non ci
sono dei programmi in grado di leggerla
Sorge l’esigenza di una terza memoria, di tipo operativo e quindi classificabile
come memoria centrale, che abbia la caratteristica tecnologica di non
cancellarsi, contenente le istruzioni che ordinano al computer di leggere il
loader
Questa memoria non volatile è detta ROM
(Read Only Memory → Memoria di Sola Lettura)
La memoria volatile è invece detta RAM (Random Access Memory, Memoria
ad Accesso Diretto): ogni locazione di memoria può essere raggiunta
indifferentemente dalle altre.
I registri sono strutture di memoria presenti nella CPU; essi memorizzano i
dati che l’ALU deve utilizzare.
6/35
7. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Recentemente sono state introdotte alcune aree di memoria a rapidissimo
accesso (cache memory) per memorizzare i dati più frequentemente utilizzati.
Memoria centrale
Unità logico-aritmetica
Cache memory somme
registri moltiplicazioni
VELOCITA’ CAPACITA’
Registri 10-9sec Da 16 a 512 Kb
Cache memory 10-8sec Da 256 kb a 1Mb
Memoria Centrale 10-7sec Da 16 a 512 Mb
Memoria di massa 10-7sec Gigabytes
Perché non utilizziamo soltanto i registri, che sono i più veloci?
Per motivi di costo. La tecnologia alla base di una memoria più veloce è più
costosa!
Il sistema operativo è un insieme di file organizzati in questo
modo, posizionati su una memoria di massa.
Quando viene avviato il computer, alcuni file del sistema operativo vengono
caricati in memoria centrale (tutti i programmi senza i quali il sistema non
cammina proprio: il kerner del sistema operativo: programmi per la gestione
della memoria(paging), caricatori, gestori dell’I/O, …), altri file rimangono in
memoria di massa, pronti ad essere presi qualora se ne presenti la necessità.
7/35
8. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Nozioni di Hardware
La parte fisica del computer è basata sulla scheda madre che è il cuore di
tutto il sistema e caratterizza in maniera significativa le prestazioni.
Essa è dotata di vari connettori per le varie componenti della macchina:
- i bus
- la cpu integrata (ALU e UC)
- la RAM
- la ROM
- la cache
- i chipset
- gli slot di espansione
I bus
Permettono il trasferimento delle informazione tra la memoria centrale e le
unità di I/O.
Le prestazioni del bus dipendono essenzialmente dal numero di linee
del bus (che rappresentano quanti bit vengono trasferiti ad ogni clock) e la
velocità con cui questo trasferimento avviene.
Dal punto di vista tecnologico distinguiamo:
- bus per i dati
È LA VERA E PROPRIA AUTOSTRADA DEL COMPUTER, POICHÉ GESTISCE IL MAGGIORE
FLUSSO INFORMATIVO
- bus per gli indirizzi
LA SUAAMPIEZZA DETERMINA LA CAPACITÀ DI INDIRIZZAMENTO DEL COMPUTER. SE
16
QUESTO BUS FOSSE A 16 BIT, È POSSIBILE INDIRIZZARE FINO A 2 ALLOC AZIONI DI
MEMORIA; UNA MEMORIA PIÙ GRANDE NON SAREBBE RAGGIUNGIBILE SE NON CON
PARTICOLARI ACCORGIMENTI (ES. INDIRIZZI DIFFERENZIATI) CHE RIDUCONO LE
32
PRESTAZIONI. CON UN BUS A 32 BIT, DIVENTA POSSIBILE ALLOCARE 2 ALLOC AZIONI
DI MEMORIA, PARI A CA. 4 GBYTE.
È POSSIBILE DISPORRE DI HD DI DIMENSIONI SUPERIORI A 4 GBYTE, PERCHÉ
L’INDIRIZZAMENTO NON SI RIFERISCE A CIASCUN SINGOLO OGGETTO, MA AD UN
GRUPPO DI OGGETTI.
- bus per i comandi di controllo
La CPU integrata
La filosofia di INTEL è la filosofia del vero microprocessore (sono loro che lo
hanno inventato e che dispongono del maggior potere di mercato). La
filosofia di ATHLON è la traduzione, a livello di PC, dei calcolatori delle
workstation
La velocità dei è aumentata per effetto:
8/35
9. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
- dell’aumento della frequenza (Mhz)
- dell’aumento del set di istruzioni contenute nel singolo processore1
→ Nel 1971 un chip conteneva ca. 2200 transistor; oggi ne contiene ca. 40
milioni, raddoppiandosi praticamente ogni anno. Il problema principale
connesso a tale tipo di evoluzione è connesso allo smaltimento del calore.
La RAM è composta da moduli presenti sulla scheda madre.
Attualmente, tali moduli si distinguono in:
- SIMM (Single Indline Memory Module)
- DIMM (Double Indline Memory Module)
- RIMM
I moduli SIMM furono prodotti per bus di dati a 32 bit.
1 modulo DIMM
BUS a 64 bit
2 moduli SIMM
Aumenta la velocità del BUS → RIMM
Dal punto di vista tecnologico, la RAM si può classificare in:
- Dynamic RAM (DRAM) → i bit della memoria mantengono i dati solo
per breve periodo e devono essere quindi aggiornate continuamente
(refresh*); ha una velocità di accesso da 5 a 1 milionesimi di secondo,
equivalenti a frequenze da 133 a 800 Mhz
Ci sono vari tipi di DRAM. In particolare, la SDRAM (Syncronus DRAM)
sincronizzata al clock della CPU è attualmente la più utilizzata.
- Static RAM (SRAM) → Conserva i dati senza bisogno di referesh ed ha
una velocità di accesso più elevata.
Essendo più costosa, viene utilizzata essenzialmente per la cache.
* Il refresh, la frequenza con la quale viene aggiornata la RAM, è un
parametro molto importante per le prestazioni del computer. Se il tempo di
refresh è molto basso, la velocità ↓ perché si perde molto tempo per fare i
continui refresh; se è troppo alto, alcuni allocazioni di memoria potrebbero
perdere il loro contenuto.
Il valore di questo parametro, contenuto nel BIOS, è generalmente
impostato su valori molto bassi dalle case costruttrici su valori molto bassi per
motivi di sicurezza.
1
Implicazioni sull’efficienza dei software
9/35
10. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Sarebbe ottimale individuare il massimo refresh possibile per una certa
macchina, oltre il quale si avrebbe una perdita di dati
I sistemi operativi, diventando sempre più complessi, richiedono una RAM
sempre maggiore perché aumenta il Kerner.
Sistema operativo RAM consigliata
MS/DOS 64 Mbyte
Windows 128 Mbyte
Il BIOS (Basic Input Output System) è un insieme di istruzioni residenti in
modo permanente su ROM, che vengono eseguite all’accensione del
computer.
Il BIOS viene costruito sul chip ROM durante il processo di fabbricazione
del computer. Attualmente la ROM non è più incisa in modo permanente, ma
può essere cancellata e riprogrammata (non si parla più di ROM, ma di
EPROM) → possibilità di personalizzare le istruzioni del BIOS.
È un’operazione opportuna? Può esserlo.
È un’operazione potenzialmente pericolosa? SI. In caso di errore, non partono
le istruzioni che permettono l’avvio del computer.
La Cache
Cache di primo livello
- posta nella CPU stessa
- molto veloce e più costosa
Cache di secondo livello
- posta tra la CPU e la scheda madre
- meno veloce e meno costosa
Il Chipset s’incarica di gestire e coordinare il funzionamento di tutti i
componenti presenti nella motherboard:
- controllo I/O
- gestione dell’elettronica di dischi e CD-ROM
- richieste di interrupt
- accessi diretti alla memoria
il tipo di chipset da utilizzare dipende dalla CPU2 e dalla scheda madre.
Le slot di espansione permettono di ampliare le capacità della macchina.
Sono alloggiamenti posti sulla scheda madre che permettono l’installazione di
interfacce hardware o schede per il collegamento con le periferiche (scheda
2
Il chipset deve obbedire al processore
10/35
11. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
audio, scheda grafica, etc…) Perché utilizziamo questa filosofia? Per avere una
maggiore flessibilità nella gestione delle periferiche.
Le porte servono per il trasferimento di informazioni tra la CPU e le unità di
I/O. In base all’ampiezza di banda della trasmissione, distinguiamo:
Porte seriali, che inviano 1 bit alla volta
Porte parallele, che inviano 8 bit (1 byte) alla volta
Queste porte si rivolgono a una sola apparecchiatura. Con l’esigenza di
collegare il computer a un numero elevato di apparecchiature, sono nate porte
che gestiscono più apparecchiature; esse, in ordine decrescente di efficienza e
di costo, sono:
Porte SCSI
Porte USB
Porte Fireware
La memoria di massa sono supporti di vario tipo (magnetico, ottico, …)
utilizzati per archiviare informazioni.
La tecnologia magnetica (tipicamente usata su HD, Floppy Disk e nastri
magnetici) consiste nella capacità di indurre, con una certa sostanza, un campo
magnetico; ciò genera la capacità di scriverlo e di leggerlo.
La tecnologia ottica (tipicamente usata su CD-R e CD-ROM) consiste nella
capacità di vedere la presenza o l’assenza di scanalature su una certa superficie,
utilizzando un raggio laser.
Mentre la tecnologia magnetica è reversibile (salvo la degradazione dei
materiali) la tecnologia ottica si caratterizza per una diversità tecnica tra lettura
e scrittura.
ORDINAMENTO PER STABILITA’ (CRESCENTE)
floppy disk
hard disk
CD-R
CD-ROM
Gli archivi non sono infinitamente nel tempo → qualora fosse necessario
archiviare dati molto preziosi, è opportuno salvarli ogni tanto.
Le memorie allo stato solido sono costruite su chip in grado di registrare i dati
in modo permanente. Ad esempio le PC card, grandi come carte di credito,
sono memorie di questo tipo.
VANTAGGI:
velocità di accesso (il disco gira)
11/35
12. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
facilità di rimozione
piccolo ingombro
SCHERMO
Tecnologia del tubo catodico → proiezione di raggi
Tecnologia dei cristalli liquidi → trasformazione della luminosità in base ai
campi elettrici (Vantaggi: spazio ridotto; assenza di campi elettromagnetici)
Caratteristiche dello schermo:
DIMENSIONE: IN POLLICI, MISURATI LUNGO LA CURVATURA DELLA DIAGONALE
RISOLUZIONE: NUMERO DI PIXEL
Il pixel (picture element) è l’elemento in cui viene suddivisa la superficie dello
schermo. Ad ogni pixel viene assegnato un indirizzo (bit mapping) che lo
individua univocamente per modificarne il colore o l’intensità.
NUMERO DI COLORI (DA 2 A 16,7MILIONI)
Lo schermo si interfaccia con la motherboard mediante una scheda video le cui
capacità elaborative e di memoria condizionano sia la risoluzione sia il numero
di colori.
Quantità minima di RAM video per numero di colori
512 kb 2 Mb 4 Mb 8 Mb
16 256 65.000 16.700.000
Altre periferiche di I/O
tastiera
mouse
microfono
sintetizzatore vocale
Permette la trasformazione di un’informazione digitale in un segnale sonoro.
(NAPOLI) È qualcosa di più raffinato di un registratore.
12/35
13. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
I SISTEMI OPERATIVI
La macchina da sola non funziona. Ha bisogno dei sistemi operativi !
Il sistema operativo più utilizzato è Windows, quello diffuso dalla
Microsoft.
L’architettura dei calcolatori attuali è la stessa dei primi calcolatori
(fine anni 40)
Macchina di VON NEUMANN
Unità di
controllo Unità
logico-aritmetica
Unità di Memoria Unità di
input output
Flusso dei dati
flusso delle informazioni
Agli albori, il computer era una macchina piuttosto grande, basata
sulla tecnologia delle valvole termoioniche che facevano passare la
corrente in un verso pilotato. Poi si è passati al transistor, di dimensioni
ben più ridotte ed infine al circuito integrato, con la presenza di più
transistor su un singolo chip.
La memoria di un computer spento non contiene niente.
13/35
14. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Le capacità mnemoniche della memoria di un computer sono vincolate
alla presenza di un campo elettrico. Se il campo elettrico è assente, la
memoria non contiene niente.
Passi logici per il calcolo della soluzione di un problema
1. preparare il programma in linguaggio macchina
2. memorizzare istruzioni e dati
3. far eseguire il programma
4. estrarre il risultato dalla memoria
Passo 1
Il computer in quanto tale, acceso, non può funzionare perché gli
mancano i comandi (non la capacità di eseguirli). È ovvio, quindi, che il
primo passo per il calcolo della soluzione di un problema consiste nel
preparare il programma in linguaggio macchina.
Il linguaggio macchina viene scritto su un supporto esterno al
computer, che poi il computer potesse leggere.
Storicamente, uno dei primi strumenti per l’immissione di dati al
computer erano le schede perforate: cartoncini perforati in maniera
opportuna da macchine perforatrici, codificati secondo il linguaggio
macchina.
Ogni colonna era una stringhetta di 0 e 1, secondo un certo codice
(Hollerit, BCD, etc….)
Quest’idea non era molto originale. Già nell’Ottocento c’erano
macchine elettromeccaniche che funzionavano pilotate da schede
meccaniche. Le schede passavano su un foro, attivando o meno un
contatto, implicando di fare o non fare certe cose.
Passo 2
Fatto questo, il programma deve essere trasferito dal lettore di schede
alla memoria del calcolatore. Sorge quindi la necessità di un
Programma caricatore (LOADER)
MEMORIA
Programma caricatore
14/35
15. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Programma utente
C’è una sorta di paradosso. Per poter dare istruzioni al computer devo
dare istruzioni al computer di caricarle!
A prescindere dal programma utilizzato per la risoluzione di un
problema, è necessario disporre di un programma che insegni al
computer come caricare le istruzioni. Questo programma deve stare
precedentemente in memoria, altrimenti il processore non è in grado
di caricare le istruzioni.
Passo 3
Una volta eseguito il programma, i risultati rimangono in memoria.
MEMORIA
DATI
Passo 4
Bisogna dire al computer, attraverso un altro programma, come
estrarre il risultato.
All’epoca il risultato veniva trascritto su altre schede (o nastri)
perforati mediante un perforatore.
Le schede dovevano essere successivamente interpretate da un’unità
esterna al computer.
15/35
16. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Esigenza di start-up (il computer dev’essere inizializzato)
All’epoca, l’utente caricava “a mano” il loader, ovvero interveniva
materialmente su alcune celle di memoria facendo uso di interruttori
posti sull’esterno.
Ogni singolo utente, per poter caricare il proprio programma in
memoria, deve prima memorizzare il programma caricatore
dati
programma caricatore
programma utente
Già all’epoca si era sviluppata la necessità che il programma caricatore
fosse una utility comune a tutti i programmi utente.
La presenza di un programma caricatore disponibile a tutti gli utenti
costituì il primo embrione di
SISTEMA OPERATIVO (o software di base3)
Programma caricatore:
programmi di tipo generale,
senza dei quali il computer non HARDWARE
parte
FINE ANNI 50
introduzione di linguaggi ad alto livello
necessità di programmi traduttori
FASE 1: caricamento del traduttore
3
Questo termine ha poi assunto una valenza più ampia
16/35
17. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Programma traduttore
Prima di caricare il programma
MEMORIA utente, è necessario caricare il
programma traduttore
FASE 2: traduzione del programma
Programma utente
MEMORIA
Programma in linguaggio macchina
caricamento programma utente
traduzione programma utente
il risultato (il programma in linguaggio macchina) non poteva
essere lasciato in memoria, ma doveva essere scaricato su schede e
quindi rimesso in memoria
All’epoca, il traduttore era di filosofia interprete o i filosofia
compilativa ?
Compilativa, poiché si ha la traduzione dell’intero pacchetto !
Ciò era molto noioso! In caso di errore, era necessario correggere la
scheda ad alto livello, rilanciare il processo ed ottenere un nuovo
pacchetto di schede perforate; un’ulteriore traduzione implicava un
costo aggiuntivo.
SISTEMA OPERATIVO
Programma traduttore
SISTEMA OPERATIVO
17/35
18. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Programma caricatore
HARDWARE
Negli anni 50 il sistema operativo si arricchisce di una serie di
programmi dedicati alla traduzione (Algor, Cobol, rispettivamente di
natura matematica e commerciale, altri…)
I passi 2. (input) e 4. (output), eseguiti manualmente e
meccanicamente, sono molto più lenti rispetto al passo 3. (esecuzione)
Non viene sfruttata in pieno la velocità operativa della CPU e viene
rallentato l’intero processo
ISTRUZIONE
cpu attivazion
DI e
STAMPA
stampante
PROGRAMMA UTENTE
MEMORIA
CPU
I/O
t
Mentre viene eseguita l’istruzione di stampa, la CPU resta inattiva
Per rendere questo processo più efficiente si è corollata la CPU di
un”unità pensante” indipendente (il canale di I/O) che gestisca l’I/O, in
modo che la CPU esegua un’istruzione successiva.
18/35
19. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
ISTRUZIONE
DI
STAMPA
Canale
I/
O
PROGRAMMA UTENTE I/
O
CPU
Il canale può essere visto come un calcolatore indipendente dalla CPU che
provvede a gestire l’I/O mentre la CPU esegue il programma utente
Il canale è a corredo del computer e non della stampante, perché sono
i produttori del computer ad avere maggior potere di mercato.
GESTIONE MEDIANTE BUS
BUS
memoria canale
I/O I/O I/O
Vantaggio:
Flessibilità: posso avere un numero molto elevato di unità I/O che non
necessariamente connetto
GESTIONE A STELLA
I/O
memoria canale
I/O
Vantaggio:
19/35
20. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Le unità di I/O comunicano direttamente con il canale.
Su una macchina specializzata il cui unico output è la guida missilistica
si utilizza una gestione a stella. Su un PC le cui unità di I/O non sono
stabilite nel tempo, si utilizza una gestione mediante bus.
Il sistema operativo si arricchisce ancora!
SISTEMA OPERATIVO
Programmi per la
SISTEMA OPERATIVO
gestione dell’I/O
Programmi per la
sincronizzazione tra CPU e canale
Programma caricatore
Programma traduttore
HARDWARE
Anni 60
L’introduzione dei canali di I/O consente l’uso della CPU da parte di
più programmi in modo che, quando per determinati motivi
(es. I/O) un certo programma non fa lavorare la CPU, questa farà
lavorare un altro programma
Quando un programma
effettua un’operazione di I/O
l’uso della CPU passa ad un
CPU altro programma
I/O
20/35
21. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
t
progr. 1
progr. 2
MULTIPROGRAMMAZIONE
Capacità del sistema operativo di far condividere a più programmi l’uso della CPU
USO EFFICIENTE DELLA CPU
Permettere una commutazione solo sulla base delle istruzioni di I/O
potrebbe essere non efficiente. I programmi in coda attendono lunghi
periodi di tempo nell’attesa dell’istruzione di I/O del programma che
sta utilizzando la CPU → il processo mediante il quale si passa da un
programma all’altro non segue banalmente una filosofia a interruttore,
ma richiede una strategia. Occorre pertanto un programma che gestisce
la multiprogrammazione secondo un certo criterio.
SOLUZIONE FILOSOFIA DEL TIME SHARING
Ad ogni programma viene assegnato un tempo massimo di utilizzo
della CPU (time slice). Naturalmente, questo tempo non è costante per
ogni programma, ma varia da programma a programma. Ai programmi
più importanti vengono assegnati time slice più elevati.
Esempio: multiprogrammazione senza time sharing
Tempo CPU Tempo I/O
Progr. 1 15 1
Progr. 2 2 2
CPU
I/O
21/35
22. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
15 17
Il programma 2 attende 15 unità di tempo
Esempio: multiprogrammazione con time sharing (time slice = 3 unità)
CPU
I/O
3 5 17
Il programma 2 attende solo 3 unità di tempo
Ogni programma può utilizzare la CPU finchè non si verifica una
delle seguenti condizioni:
1. il programma finisce
2. il programma va in errore
3. è richiesta un’operazione di I/O
4. è terminato il tempo assegnato
Il programma per la gestione della multiprogrammazione non decide
solo se affidare o meno la CPU ad un certo programma, ma decide
anche cosa si deve fare di questo programma nel momento in cui si
verifica una delle sopraindicate condizioni.
Casi 1 e 2: il programma è eliminato dalla memoria
Casi 3 e 4: il programma è sospeso, cioè mantenuto in memoria
Il mantenimento in memoria è un mantenimento costoso; se la
memoria è esageratamente occupata da un programma sospeso, può
divenire opportuno scaricarlo per riprenderlo in seguito.
22/35
23. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Per decidere quale programma passare in memoria quando diversi
programmi sono in attesa bisogna stabilire un ordine di accesso alla CPU.
Il programma incaricato di stabilire tale ordine è lo SCHEDULER
I fattori di cui esso tiene conto sono:
memoria richiesta dai programmi
tempo di CPU richiesto dai programmi
tipo del programma (di utente o di sistema)
tipo di utente (utente qualunque o gestore del sistema)
uso recente della CPU
Lo scheduler assegna ad ogni programma un numero che determina il
criterio di precedenza nell’utilizzo della CPU. In particolare:
poca memoria e poco tempo di CPU hanno priorità più alta
programmi di sistema hanno priorità più alta rispetto ai
programmi di utente
SISTEMA OPERATIVO
SCHEDULER
SISTEMA OPERATIVO
Programmi per la
gestione dell’I/O
Programmi per la
sincronizzazione tra CPU e canale
Programma caricatore
Programma traduttore
HARDWARE
Ogni sistema operativo ha un proprio linguaggio di comando, che
consente la comunicazione con l’esterno.
23/35
24. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Ogni frase del linguaggio di comando è una richiesta al sistema
operativo di esecuzione di una particolare operazione
ESEMPI DI COMANDI AL SISTEMA OPERATIVO
UNIX MS/DOS
ls dir Lista dei file (dell’archivio),
secondo un qualche criterio
cp copy Copia dei file
rm dolete Cancellazione di un file
cat type Lista il contenuto di un file
f77 fl Compilazione Fortran
Poiché il file system presenta una struttura ad albero, le richieste
afferiscono alla posizione nella quale si è ideologicamente collocati.
Ogni richiesta al sistema operativo comporta le seguenti azioni:
• interpretare le frasi del linguaggio di comando
• individuare il programma di sistema che soddisfa la richiesta
• caricare tale programma in memoria centrale
• far eseguire il programma
• restituire il controllo per rispondere ad altre richieste
Tali azioni sono eseguite da un programma del sistema operativo:
l’interprete del linguaggio di comando.
Recentemente sono state introdotte delle interfacce grafiche ai comandi
del sistema operativo, per facilitarne l’uso.
In assenza di queste, l’utente dovrebbe apprendere la sintassi di tutti i
comandi; viceversa, egli interagisce con l’interfaccia, ed è quest’ultima
che parla con l’interprete, i quali attivano i vari programmi di utilità,
….
UTENTE
SISTEMA OPERATIVO
interfaccia grafica
24/35
25. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
INTERPRETE
PROGRAMMI DI UILITA’
NUCLEO
HARDWARE
(L’utente è molto lontano dall’hardware)
Le prime interfacce si appoggiano direttamente a un sistema operativo.
Le nuove interfacce sono parte integrata del sistema operativo stesso.
L’utente è parzialmente dispensato dalla conoscenza della sintassi dei
comandi.
Il problema dell’interfaccia è la riduzione della flessibilità connessa alla
standardizzazione delle operazioni; per eseguire un’operazione
particolare, occorre comunque conoscere la sintassi dei comandi.
Esistono 2 tipi di sistemi operativi:
MONOUTENTE (es. MS/DOS)
Il sistema operativo permette ad un solo utente l’accesso alle
risorse della macchina
L’utente ha immediato accesso al sistema, salvo eventuali controlli
Personal
computer
MULTIUTENTE (es. UNIX)
Il sistema operativo permette a più utenti l’accesso alle risorse
della macchina
L’utente è obbligato a dichiarare la propria identità prima di
qualunque richiesta al sistema operativo.
FASE DI LOGIN: username, password
25/35
26. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
terminali
Evoluzione dei sistemi operativi
1945: primo calcolatore elettronico (ENIAC)
1949: primo calcolatore capace di memorizzare programmi
anni 50: primi sistemi operativi
1957: primo linguaggio ad alto livello (FORTRAN)
1960-65: introduzione della multiprogrammazione e del time sharing
fine anni 60: introduzione della memoria virtuale
anni 80: interfacce grafiche
Agli inizi il computer poteva essere utilizzato solo da personale
specializzato.
L’aspirazione (non raggiunta) dei sistemi operativi è di rendere la
macchina qualcosa di estremamente flessibile, disponibile a
fronteggiare le esigenze di vari tipi di utente (ricercatori, segreterie,
…).
Per raggiungere questi obiettivi, sono stati aggiunti molti ortelli
circostanti che hanno appesantito il sistema operativo e che
contengono degli errori.
26/35
27. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Strumenti per lo sviluppo di software
COMPILATORI PER LA SCRITTURA DEI PROGRAMMI
PROGRAMMI PER LA RICERCA DEGLI ERRORI (DEBUGGER)
PROGRAMMI PER LA VALUTAZIONE DELLE PRESTAZIONI (TIMER)
PROGRAMMI PER LA SCRITTURA DEI PROGRAMMI UTENTE (EDITOR4)
Strumenti per l’office automation
PROGRAMMI PER L’ELABOZIONE DI TESTO E GRAFICA
POSTA ELETTRONICA PER INVIARE E RICEVERE MESSAGGI
AGENDE ELETTRONICHE E CALENDARI ELETTRONICI (DATABASE)
Il computer non è un oggetto a sé, ma è collegato in rete con
altri computer.
Nei collegamenti a forte livello di integrazione, una macchina
vede perfettamente quello che succede su altre macchine.
Nei casi di integrazione a livello ridotto, le macchine tra di
loro fondamentalmente “si parlano” mantenendosi due
identità separate.
Nelle strutture di calcolo vi sarà una perfetta integrazione tra le
macchine in una rete locale (LAN) per cui ben può aversi che l’utente
collegato con la 1a macchina utilizza un programma residente su una 2a
macchina con dei dati residenti su una 3a macchina.
Collegamento con il mondo esterno:
INTERNET = connessione di più livelli di rete
Altre reti nazionali
Rete nazionale
Reti
cittadine
4
WORD E’ UN EDITOR? No! È un programma per l’elaborazione di testo e grafica
27/35
28. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Reti locali
SISTEMA OPERATIVO
Programmi per il
trasferimento delle
informazioni*
Programmi per la
gestione delle memorie
SCHEDULER
Programmi per la
gestione dell’I/O
Programmi per la
sincronizzazione tra CPU e canale
Programma caricatore
Programma traduttore
HARDWARE
*Trasferimento dei file (FTP) → informazioni
*Collegamento remoto (telnet)→ collegamento ad altre macchine
*Browsers (Explorer, Netscape, Mosaic…) → possibilità di accedere ad alcuni
file di un’altra machina
Accensione del computer (29 gennaio)
Password
Il sistema operativo windows è multiutente, nel senso che più possono operare
sulla stessa macchina, in tempi diversi.
Vi è un utente privilegiato che ha a disposizione tutte le risorse del sistema, e
vari “sottoutenti”, che hanno a disposizione risorse limitate. Una filosofia di
questo tipo è legata all’esigenza di tutelare i file del sistema operativo in una
struttura dove operano molte persone.
Un pezzo del sistema operativo è caricata in RAM
28/35
29. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Visualizzazione della cartella DESKTOP
noi osserviamo un pezzo del disco, ovvero i file
(contenenti programmi e dati) che usiamo più di frequente
Come si possono visualizzazione le altre cartelle?
Lanciando il programma “esplora risorse”, che visualizza la struttura ad
albero del file system
START
Lanciamo i programmi e i file che ci interessano
FASI DEL PROCESSO DI RISOLUZIONE
DEL PROBLEMA
Formulazione
del problema P
Descrizione di P mediante
un modello matematico M(P)
Approssimazione di M(P)
mediante
Metodi numerici Mh(P)
29/35
30. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Sviluppo dell’ Implementazione
algoritmo risolutivo dell’algoritmo
per Mh(P) in uno specifico ambiente
di calcolo
Noi utilizziamo il computer per risolvere un problema che siamo in
grado di formulare e di esprimere in termini matematici.
Possibili fonti di errore
Non è possibile rappresentare il problema in maniera reale, né tantomeno è
possibile approssimarlo correttamente mediante un metodo numerico. I
risultati delle nostre operazioni contengono intrinsecamente errori che
dobbiamo tenere sotto controllo
↓
Quando otteniamo la stima di un certo risultato, diviene fondamentale essere
in grado di misurare l’errore.
È inoltre possibile che il modo in cui vengono fatti i calcoli possa produrre un
errore che aumenti nel corso del processo di calcolo, inficiando tutta
l’elaborazione e conducendo a risposte false. La colpa di tutto questo è dovuto
al fatto che il computer elabora non numeri, ma numeri macchina, che sono
approssimati.
Dobbiamo essere capaci di riconoscere le cause di errore, distinguendo
gli errori dovuti all’instabilità dell’algoritmo da quelli dovuti al
malcondizionamento del problema.
Il passaggio da problema reale P a modello matematico M(P) produce gli
errori causati da semplificazioni nella formulazione di M(P).[errore intrinseco]
Il modello matematico può riprodurre esattamente l’immagine della realtà?
NO. Il modello matematico, essendo un’immagine distorta della realtà, non
può che rappresentarla con un certo livello di approssimazione.
L’approssimazione dei modelli matematici mediante metodi numerici produce
gli errori di troncamento analitico.
Gli oggetti matematici sono sempre calcolabili? NO. Si pensi a un evento
calcolabile attraverso un certo logaritmo, il quale non potrà essere calcolato in
modo esatto.
30/35
31. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Gli errori di round-off (i più subdoli) sono quelli che si producono nella fase di
calcolo.
Dal problema al modello
Si consideri una sbarra di lunghezza L con una sola estremità libera, sottoposta
ad un carico F applicato alla sola estremità libera, e si voglia calcolarne la
deflessione elastica.
L
x F
y
x misura la distanza lungo l’asse della sbarra rispetto all’origine del riferimento
coincidente con l’estremità fissa.
y misura la deflessione della sbarra.
La descrizione del problema P mediante un modello matematico M(P) implica
l’individuazione di una formula mediante la quale, a partire da un certo input
si ottiene un cero output.
La deflessione elastica soddisfa l’equazione differenziale:
y’’={F(L-x)*[1+(y’)2]3/2}/(E*I)
dove:
E → costante dipendente dal materiale
I → momento di inerzia
Si tratta di una formula esatta? NO, ma si tratta di una buona
approssimazione della realtà.
Questa formula, poiché rende troppo difficile il calcolo viene sostituita da
un modello semplificato, che rappresenta la realtà in maniera minore e che
risulta valido solo per “piccoli” valori della forza F → vedi pagg. 12-15 MURLI
y’’=F(L-x)/ (E*I)
Le polizze vita vengono costruite valutando, in termini probabilistici, il rischio
di vita o di morte degli assicurati; tale valutazione fa uso delle tavole di
31/35
32. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
mortalità che indicano la probabilità che una persona con determinate
caratteristiche (parametri) viva o non viva di qui a una certa data.
La formula che calcola la probabilità è molto simile a quella precedentemente
utilizzata per il calcolo della deflessione della sbarra.
Come spesso accade, due problemi matematici completamente diversi,
esaminati da soggetti che hanno culture totalmente diverse, sono risolti con
formule simili!
Dal modello matematico al modello numerico
In entrambi i casi, nella fase di calcolo possono prodursi errori di round-off
dovuti al fatto che l’esponenziale è una funzione trascendente, cioè non
esprimibile in termini di somme e prodotti, mentre l’uomo (e quindi il
calcolatore) sanno fare solo somme e prodotti.
Nasce, pertanto, il problema di trasformare il modello matematico (che risolve
il problema reale in modo ± corretto) in un modello numerico.
In questo caso, il problema consiste nel trovare un modo per approssimare la
funzione esponenziale attraverso somme e prodotti.
Uno strumento di approssimazione è il polinomio di Newton, che traduce in
una funzione (ad esempio l’esponenziale) in un polinomio, esprimibile in
termini di somme e prodotti.
Introduzione a
Matlab
Matlab è un linguaggio di programmazione finalizzato al calcolo
scientifico.
L’utente scrive istruzioni
Queste istruzioni vengono convertite in linguaggio macchina,
secondo una filosofia interpretativa5 (un comando alla volta)
5
Essendo Matlab un linguaggio interattivo.
32/35
33. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Per eseguire un processo complesso è opportuno scrivere un
programma, ossia un insieme di istruzioni date in un certo ordine
a=3 → a = 3
Ho scritto un numero intero (3) o un numero floating point (3.)?
floating point
I numeri interi sono usati per contare; sono tutti i numeri interi che
vanno da 0 fino a un massimo intero
I numeri floating point, invece, sono utilizzati per fare i calcoli; sono
costruiti secondo una logica scientifica (mantissa, esponente).
Che differenza c’è tra fare calcoli con i numeri interi
E fare calcoli con i numeri reali?
Per la somma non vi è alcuna differenza
Per la differenza non vi è alcuna differenza
Per il prodotto non vi è alcuna differenza
Per la divisione la differenza c’è
3/2 = 1,5 secondo la logica dei numeri reali
3/2 = 1 secondo la logica dei numeri interi
Matlab lavora sempre con i numeri floating point; per poter lavorare
con i numeri interi, glielo devo chiedere esplicitamente.
Esistono altri linguaggi di programmazione nei quali se scrivo 3
viene considerato numero intero, se scrivo 3. viene considerato
numero reale.
Matlab interpreta i numeri, traducendoli in una logica binaria e
spacchettandoli in una parte esponente e una parte mantissa.
È molto importante sapere con quante cifre si lavora. Matlab lavora
bloccando ogni numero su due voci di memoria di 32 bit; quindi usa
complessivamente 64 bit per rappresentare un numero. In altre parole
usa la doppia precisione, quindi fa i calcoli con 14 cifre decimali.
Ciò significa che i problemi di non rappresentatività non
avverranno praticamente mai. Non c’è nessun problema umano, tra
quelli che affronteremo, che conduce a risultati superiori a 2 1024 o
inferiori a 2-1024. Ovviamente, overflow e underflow potranno essere
indotti da errori di calcolo. Se cerchiamo di calcolare una funzione il
cui limite è + ∞ , al crescere di x si genera un overflow; ma non si ha
alcun reale problema.
33/35
34. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
In generale, i computer quando vanno in overflow si fermano. Matlab,
invece, presenta un controllo e comunica per iscritto il segnale di non
errore (NaN) e va avanti. Ovviamente da quel punto in poi i risultati
non potranno essere esatti.
Matlab puòi elaborare tutte i tipi di dati che si possono usare nel computer, ovvero:
- numerici interi
- numerici reali
- logici
- letterali
Essenzialmente, opera su dati di tipo numerico reale. Quando, per determinate
ragioni, ho l’esigenza di operare con un altro tipo di dati, dobbiamo comunicarlo
esplicitamente. Come si fa?
Sintassi con la quale si scrivono i comandi (le istruzioni)
Risultato = Comando
(nome) (con cui si assegnano i valori)
Logica progettuale
Scrivere le istruzioni su supporto cartaceo, prima ancora di
lanciare le istruzioni
Scrivere il file di istruzioni in linguaggio MatLab nell’editore
ASCII. Questo file, ovviamente, non conterrà solo istruzioni, ma
anche costrutti di controllo (cicli e scelte).
Il vantaggio dell’utilizzo dell’editor di Matlab, rispetto ad un editor qualunque,
consiste nel fatto che i comandi di Matlab sono evidenziati in colore diverso.
Salvare il file con estensione .m
Lanciare il file, che viene interpretato come un file
34/35
35. Appunti d’esame
Il Calcolatore e Matlab Visto su: www.profland.altervista.org
Il file è stato scaricato/visualizzato in forma gratuita da Profland:
http://profland.altervista.org
sezione Profstudio
http://profland.altervista.org/profstudio/profstudio.htm
oppure da qualche mirror, come:
www.profland.cjb.net www.profland.135.it
o dalla pagina dedicata su slideshare.net:
www.slideshare.net/profman
35/35