Sei sulla pagina 1di 25

Universit degli Studi Mediterranea

di Reggio Calabria

Facolt di Ingegneria

------------------

Corso di Fondamenti I dInformatica

Elementi dinformatica di base

Ing. Giuseppe M.L. Sarn


Novembre 2003

Giuseppe M.L. Sarn Elementi dinformatica di base

Premessa
Ad esclusivo supporto delle lezioni svolte nel corso di Fondamenti dInformatica I sono state scritte
queste note di elementi di informatica di base con lobiettivo di fornire ai corsi di laurea che non
prevedono la possibilit di approfondire tematiche legate allhardware, alla telematica ed ai
sistemi operativi, un livello di conoscenza di base relativo a queste tematiche.
Per la complessit dellargomento e le necessarie semplificazioni introdotte, queste note intendono
essere unicamente un supporto alle lezioni svolte sullargomento, senza avere la pretesa di
surrogarle.
Per chi fosse interessato ad approfondire queste tematiche potr far riferimento ai testi consigliati
nel programma del corso.
Lautore

Giuseppe M.L. Sarn Elementi dinformatica di base

Indice
Premessa........................................................................................................................................2
Indice.............................................................................................................................................3
1. Introduzione ..............................................................................................................................4
2. Tassonomia degli Elaboratori Elettronici .................................................................................4
3. Rappresentazione Binaria .........................................................................................................5
4. Hardware e Software.................................................................................................................5
5. Schema di Von Neumann .........................................................................................................6
6. Lorganizzazione dei sistemi di elaborazione...........................................................................7
7. Bus ............................................................................................................................................8
8. La memoria ..............................................................................................................................9
9. Memorie secondarie..................................................................................................................10
10. I terminali................................................................................................................................11
11. Reti di computer......................................................................................................................12
12. Protocolli e livelli....................................................................................................................13
13. Trasmissione del segnale ........................................................................................................14
14. Mezzi trasmessivi....................................................................................................................15
15. Sistema telefonico ...................................................................................................................15
16. Collegamento a Internet ..........................................................................................................15
17. Il Sistema Operativo................................................................................................................15
18. Struttura dei S.O......................................................................................................................16
19. I processi .................................................................................................................................16
20. Lo scheduling dei processi......................................................................................................18
21. Gestione della memoria ..........................................................................................................19
22. Memoria virtuale.....................................................................................................................20
23. La segmentazione....................................................................................................................22
24. I File System ...........................................................................................................................22
Bibliografia ...................................................................................................................................25

Giuseppe M.L. Sarn Elementi dinformatica di base

1. Introduzione
Lidea di costruire una macchina che eseguisse automaticamente dei calcoli matematici, sollevando
luomo da questincombenza, non unidea recente.
La prima realizzazione degna di nota pu essere fatta risalire a Blaise Pascal (1642), con la
costruzione di una calcolatrice che eseguiva esclusivamente le operazioni di somma e sottrazione.
Successivamente, si ricordano la macchina per effettuare le quattro operazioni di Von Leibniz
(1646-1716), la macchina analitica di Babbage (1792-1871), seguite poi da molte altre. Tutte queste
macchine calcolatrici erano esclusivamente meccaniche e ovviamente limitate.
Linformatica moderna, come oggi la si conosce, resa possibile dallelettronica e dalla possibilit
che questa offre di implementare efficacemente ed efficientemente la logica binaria. Da sottolineare
che la struttura logica del calcolatore moderno stata ipotizzata prima della nascita del primo
componente elettronico.
2. Tassonomia degli Elaboratori Elettronici
Supercalcolatori

Elaboratori in grado di eseguire grandi quantit di calcoli scientifici in breve


tempo. Possiedono architetture specifiche, spesso ottimizzate in funzione dei
problemi da risolvere. Impegnano molte risorse economiche, sia per
lacquisto che per la gestione. Applicazioni: militari, meteorologiche, etc..

Mainframe

Sistemi specializzati nel trattare grosse quantit di dati ed offrire i propri


servizi ad una moltitudine di terminali stupidi, spazialmente anche molto
distanti. Questa categoria di elaboratori molto costosa (ma meno dei
Supercalcolatori), sia in termini di acquisto che di gestione. Applicazioni:
sistemi bancari, sistemi di prenotazione aerea, grandi aziende, etc..

Minicalcolatori

Strutturalmente simili ai precedenti, ma pi piccoli, svolgono funzioni


analoghe a livello di piccole strutture con carichi di lavoro inferiori. I costi
dacquisto e gestione sono proporzionalmente minori rispetto ai mainframe.
Applicazioni: dipartimenti universitari, piccole aziende, etc..

Workstation

Elaboratori specializzati in applicazioni tecniche. Mantengono ancora un


piccolo vantaggio, in termini di prestazioni, sui personal computer di fascia
alta e generalmente sono caratterizzati da una costruzione pi professionale.
Hanno costi superiori alla fascia alta dei personal computer. Applicazioni:
grafica, calcoli scientifici, etc..

Personal computer

Elaboratori, nati per realizzare il paradigma di un sistema di calcolo su ogni


scrivania, hanno raggiunto potenze di calcolo considerevoli, tanto che a
livello di prestazioni i migliori personal computer sono sovrapposti alla fascia
bassa delle workstation. I costi del sistema e quelli di gestione sono bassi.
Applicazioni: general purpose.

Network computer

Sistemi diskless poco potenti, si appoggiano alla rete per ottenere le risorse di
cui sono privi. Sono la versione moderna dei terminali stupidi, delegano ad
un mainframe remoto tutte le capacit di archiviazione e di elaborazione.

Giuseppe M.L. Sarn Elementi dinformatica di base

3. Rappresentazione Binaria
Ogni informazione allinterno del computer trattata come una sequenza di bit (BIT da BInary
digiT). Un bit consente di rappresentare in maniera non ambigua due sole informazioni,
convenzionalmente indicate dalle cifre 0 e 1.
Un alfabeto binario, composto solo da due simboli, un alfabeto completo in quanto per suo tramite
possibile rappresentare qualsiasi tipo dinformazione mediante sequenze finite dei due simboli 0
ed 1. Il passaggio da un alfabeto completo ad un altro modifica esclusivamente la rappresentazione
dellinformazione e non influisce sulla capacit di rappresentarla.
Quanto detto vale anche per laritmetica dove la nostra usuale base 10, data dallutilizzo di 10 cifre
(dallo 0 al 9), pu essere sostituita da altre basi e in particolare per quanto ci riguarda da quella in
base 2. Ad esempio, il numero 9 pu essere rappresentato in varie basi come: 910, 10012, 214, 118,
916, ma indica sempre 9 unit.
Esempio:
rappresentazione in base 10:

1966=1*103+9*102+6*101+6*100=1000+900+60+6=1966

conversione da base 2 a base 10:

10111=1*24+0*23+1*22+1*21+1*20=16+0+4+2+1=23

conversione da base 10 a base 2:

23/211/25/22/21/2
1

10111

La rappresentazione binaria dellinformazione adatta per essere efficacemente utilizzata dai


componenti elettronici (nelle centrali telefoniche dellera pre-elettronica, la logica binaria era
impiegata con i rel, che sono componenti elettromeccanici), poich si fanno corrispondere i due
valori convenzionali 0 e 1 ai due stati di presenza o assenza di corrente elettrica su una determinata
linea elettrica o componente elettrico.
I gruppi di 8 bit prendono il nome di byte e rappresentano lunit di misura di base dellinformatica,
con cui per esempio si misura la capacit di memorizzazione dei supporti, la capacit di
trasferimento dei bus (vedi par. 7) e la lunghezza della parola caratteristica dei microprocessori.
1 Tb
1 Gb
1 Mb
1 Kb
1 byte
1 bit

Tb
1
-----------

Gb
Mb
Kb
byte
bit
1024 1.048.576 1.073.741.824 1.099.511.627.776 8.796.093.022.208
1
1024
1.048.576
1.073.741.824
8.589.934.592
--1
1024
1.048.576
8.388.608
----1
1024
8192
------1
8
--------1

4. Hardware e Software
Lhardware costituito dai circuiti elettronici, la memoria, i dispositivi di input ed output, etc.,
mentre il software costituito dagli algoritmi e dalla loro rappresentazione in forma utilizzabile dal
computer. Esiste anche il firmware che una via di mezzo tra software ed hardware, poich
implementa del software in hardware (built-in) per motivi di efficienza. Hardware e software sono
logicamente equivalenti. Chi programma usa le istruzione software come se fossero realizzate in
hardware.
Lelaboratore a livello fisico differisce da quello che conosciamo e a cui chiediamo di effettuare
determinate operazioni tramite appositi comandi. Potremmo asserire che questultimo una
macchina virtuale che realmente non esiste. Infatti, ci che realmente esiste un insieme di
componenti elettronici che effettuano o non effettuano determinate operazioni in relazione alla
presenza o meno di corrente che li attraversi in un determinato istante.
5

Giuseppe M.L. Sarn Elementi dinformatica di base

Questa macchina detta macchina di livello 0 o della logica digitale ed capace di eseguire un
certo insieme di istruzioni dette microprogramma. Unistruzione a questo livello una sequenza di
bit, in cui ogni bit ha un determinato significato (ricordando che al valore 1 in genere corrisponde la
presenza di una tensione positiva di 35 V e al valore 0 una tensione di 0 V) che interpretato
elettricamente. Linsieme di istruzioni a questo livello di base il pi semplice possibile per
consentire di avere lhardware il pi semplice possibile.
A livello di microprogramma linsieme delle istruzioni, ossia il linguaggio disponibile, presenta tra
le varie macchine esistenti pi similitudini che differenze (vi sono circa 40100 istruzioni al
massimo).
La programmazione a questo livello molto complicata e difficile. Per semplificarla conveniente
pensare ad una o pi macchine dotate di un linguaggio meno difficile collegate in cascata dalla pi
semplice fino alla pi complessa. Le istruzioni espresse in questo linguaggio vengono poi
interpretate o tradotte per la macchina di livello inferiore.
Linterpretazione si ha quando la traduzione da un livello allaltro viene effettuata al momento
dellesecuzione, se invece viene effettuata in un istante precedente si ha la compilazione che
svolta da programmi chiamati compilatori.
Per agevolare gli utenti si costruita una gerarchia di macchine virtuali e di relativi linguaggi la cui
struttura assicura che un programma scritto per la macchina Mn sar eseguito dalla macchina M0.
Livello 5

livello del linguaggio orientato ai problemi.


Traduzione (compilatore).

Livello 4

livello del linguaggio assembler.


Traduzione (assemblatore).

Livello 3

livello del sistema operativo.


Interpretazione parziale (sistema operativo).

Livello 2

livello della macchina standard.


Interpretazione microprogramma.

Livello 1

livello della microprogrammazione.


Esecuzione diretta dei microprogrammi da parte dellhardware.

Livello 0

livello della logica digitale.

5. Schema di Von Neumann


Memoria

ALU

Unit di
controllo

ACCUM.

Input

Output

Giuseppe M.L. Sarn Elementi dinformatica di base

6. Lorganizzazione dei sistemi di elaborazione


Il microprocessore (o CPU) ha il compito di eseguire una alla volta le istruzioni, che preleva dalla
memoria principale. La sequenza delle operazioni che la CPU effettua governata dallunit di
controllo (UC) che ripete ciclicamente la sequenza di esecuzione sotto riportata ad una velocit
compresa tra quella della CPU e quella del bus, comunque dellordine di centinaia di milioni di
volte al secondo.
La sequenza di esecuzione di una CPU prende il nome di preleva-decodifica-esegui:
1. Legge la nuova istruzione ponendola nellIR
2. Cambia il PC affinch punti allistruzione seguente
3. Determina il tipo di istruzione prelevata
4. Se usa i dati in memoria determina dove sono situati
5. Prende i dati nei registri interni della CPU
6. Esegue listruzione
7. Memorizza il risultato al posto giusto
8. Ritorna al passo 1 e prende una nuova istruzione.
Lo schema classico di una CPU pu essere in prima approssimazione rappresentato come in figura.

Registri di memoria

Registri di input
dellALU

ALU

Esegue un set di
operazioni semplici

Registri di output
dellALU

F(A,B)

Allinterno della CPU contenuta lALU (Arithmetic Logic Unit) che esegue operazioni di tipo
aritmetico-logico quali somme, confronti, etc.. La CPU contiene anche una certa quantit di
memoria veloce (registri) per immagazzinare i risultati temporanei e le informazioni di controllo.
Tra i registri pi importanti vi sono: il contatore di programma Program Counter (PC), che indica la
prossima istruzione da eseguire; il registro delle istruzioni (IR), che contiene via via le istruzioni da
eseguire; il registro di stato (PS), che descrive lo stato corrente dellesecuzione e segnala eventuali
errori; il registro di indirizzo di memoria (RIM), che contiene lindirizzo della cella di memoria da
cui leggere o in cui scrivere uninformazione; il registro dati di memoria (RDM), che contiene
linformazione letta o quella da scrivere in una determinata cella di memoria.
7

Giuseppe M.L. Sarn Elementi dinformatica di base

Si dice che un elaboratore dotato di una pipeline di elaborazione, quando in grado di operare su
pi istruzioni contemporaneamente. In breve, se si ritorna alla sequenza di esecuzione di una CPU,
si pu notare che la CPU esegue effettivamente listruzione solo al passo 6, per tutto il resto del
tempo in attesa che vengano svolti gli altri necessari passi. Se si dota lelaboratore di una struttura
a pi livelli, la pipeline, in cui ogni livello opera su di unistruzione diversa si pu immaginare che
mentre la CPU stia eseguendo unistruzione, contemporaneamente il livello della pipeline pi
vicino alla CPU prelevi gi i dati nei registri interni della CPU relativi allistruzione successiva a
quella corrente, il livello precedente nello stesso istante prelever i dati in memoria relativamente
allistruzione ancora successiva e cos via. Il tutto opera come una catena di montaggio in maniera
che la CPU abbia sempre unistruzione gi pronta da eseguire, eliminando cos i tempi morti nel suo
utilizzo.
Gli elaboratori si possono dividere in tre categorie:
1. SISD Flusso di istruzioni unico. Flusso di dati unico
2. SIMD Flusso di istruzioni unico. Flusso di dati multiplo (array processor o comp. vettoriali)
3. MIMD Flusso di istruzioni multiplo. Flusso di dati multiplo (la memoria il collo di bottiglia)
La categoria MSMD - flusso di istruzioni unico, flusso di dati multiplo solo teorica.

7. Bus
Il bus in un elaboratore non altro che un canale di comunicazione tra i vari componenti/dispositivi
(CPU, memoria, dispositivi di Input/Output, etc.). Nei personal computer presente un solo bus e
tutti i componenti/dispositivi sono in concorrenza per usarlo, ovviamente luso esclusivo e finch
un componente/dispositivo usa il bus ne preclude luso a tutti gli altri componenti/dispositivi.
Si pu immaginare il bus come un fascio di fili elettrici che collega tutti i dispositivi.
Nei mainframe sono presenti pi bus specializzati, in genere sono tre: uno per laccesso diretto alla
memoria da parte della CPU; uno per laccesso diretto da parte dei dispositivi di Input/Output e uno
di collegamento tra tutti i dispositivi.
Ogni dispositivo costituito da due parti: una che contiene lelettronica di controllo (controllore) ed
una che il dispositivo vero e proprio. Il compito del controllore controllare il suo dispositivo e
consentire laccesso al canale di I/O. Un controllore che legge/scrive in memoria attraverso il bus
senza lintervento della CPU, si dice che esegue un accesso diretto alla memoria (DMA). In caso di
accessi contemporanei, vi sono arbitri del bus o meccanismi basati su una priorit assegnata ai vari
dispositivi.
Generalmente i dispositivi hanno la priorit sulla CPU, si dice in tal caso che si ha un furto di cicli
ai danni della CPU (p.es., i dati richiesti ad un disco rigido sono disponibili solo quando questi si
presentano sotto la testina di lettura; se esiste un solo bus e in quel momento usato dalla CPU, non
essendoci in genere la possibilit di attendere che la CPU finisca ci in cui impegnata, si obbliga
la CPU a sospendere temporaneamente la sua attivit, affinch si possa lasciare luso del bus al
dispositivo per trasferire i dati in memoria).
Il bus risiede sulla piastra madre; se la piastra madre non ha componenti attivi, come nei personal
computer basati su processori Intel compatibili, ma supporta solo il bus e della componentistica
minore, come nei personal computer basati su processori Motorola (Apple), la scheda madre prende
il nome di backplane.
Esistono pi tipi di bus ed ognuno ha un proprio standard di comunicazione e funzionamento.
Usualmente ogni standard legato ad una particolare famiglia di processori.

Giuseppe M.L. Sarn Elementi dinformatica di base

8. La memoria
Lelemento base della memoria il bit (che come detto pu rappresentare solo due diverse
informazioni, convenzionalmente contraddistinte dai valori 0 e 1), essendo tale scelta coerente con
la capacit dellelettronica di distinguere efficacemente, cio non ambiguamente, due stati (corrente
e assenza di corrente).
La memoria costituita da un insieme di celle, ognuna capace di immagazzinare un elemento di
informazione. La cella di memoria lunit indirizzabile pi piccola e si misura in byte. Un byte
formato da 8 bit. Ogni elaboratore ha la sua parola caratteristica (word) che rappresentata dal
numero di byte che possono essere letti/scritti/usati dalla CPU con un unico accesso alla memoria;
pi grande la parola e pi potente lelaboratore.
Il numero della cella di memoria costituisce il suo indirizzo. Le celle sono numerate in sequenza e
per accedere ad una cella di memoria necessario specificare il suo indirizzo. E possibile
indirizzare ogni cella direttamente (Random Access Memory RAM).
Ogni elaboratore ha un proprio spazio di indirizzamento caratteristico, ossia lintervallo in cui
possibile specificare un indirizzo.
Allinterno della parola i bit possono essere ordinati numerandoli da sinistra verso destra (p.es.
0123), detto anche a finale grande, o viceversa (p.es. 3210), detto anche a finale piccolo (i termini
finale grande e finale piccolo sono ispirati al libro I viaggi di Gulliver).
Una prima distinzione tra le memorie si ha tra memoria principale e memoria secondaria. La prima
volatile, ossia quando si spegne lelaboratore il contenuto si perde; la seconda permanente. La
memoria principale pi costosa e pi veloce, la seconda meno costosa, ma pi lenta.
In linea teorica maggiore la quantit di memoria principale (veloce), migliori saranno le
prestazioni dellelaboratore, poich acceder un numero minore di volte alla memoria secondaria,
che pi lenta, per richiedere informazioni.
Per migliorare ulteriormente le prestazioni si affianca unulteriore piccola e velocissima memoria,
detta cache, dove memorizzare i dati di pi recente accesso; la cache spesso organizzata in due
livelli detti L1 e L2, la prima inglobata sulla stessa basetta di silicio della CPU e perci alla sua
stessa velocit, la seconda posta sulla piastra base e funzionante alla velocit del bus. La prima non
si pu ampliare, la seconda spesso si pu ampliare, basta ricordare che la memoria pi veloce pi
costa.
La cache non rallenta lesecuzione solo a patto che linformazione da prelevare sia presente nella
cache; se cosi non fosse, per prelevare linformazione dalla cache la CPU dovrebbe aspettare che la
stessa vi venga trasferita dalla memoria principale, mentre nellipotesi di assenza della memoria
cache, la CPU potrebbe prelevare linformazione direttamente dalla memoria principale. Perci, per
mantenere lefficienza deve risultare che il pi delle volte linformazione sia gi presente nella
memoria cache, altrimenti questa rappresenterebbe uno strato intermedio sostanzialmente dannoso.
Per fortuna, se durante lesecuzione di un programma si osservasse la sequenza degli accessi in
memoria, si costaterebbe che la maggior parte delle volte ad ogni accesso in memoria richiesto un
indirizzo situato a poca distanza da quello precedentemente richiesto. Pertanto statisticamente
parlando risulta che se uninformazione stata trovata nella memoria cache, vi un alta probabilit
che linformazione richiesta successivamente sia vicina e quindi gi nella cache. Quando ci non
si verifica bisogna scaricare la cache e caricare una nuova porzione di memoria, in questo caso si ha
una penalizzazione in termini di tempo (vedi anche paginazione).
La memoria principale del tipo RAM (Random Access Memory), ossia possibile accedere
(indirizzare) ogni locazione di memoria; infatti, quando si richiede la lettura/scrittura di una
particolare locazione di memoria si asserisce (richiede) loperazione di lettura/scrittura, si pone sul
bus indirizzi la locazione della cella di memoria interessata e la memoria, dopo un tempo
9

Giuseppe M.L. Sarn Elementi dinformatica di base

sufficiente, risponde ponendo sul bus dati linformazione contenuta in quellindirizzo o prelevando
dal bus dati linformazione da scrivere in quellindirizzo.
Negli elaboratori presente anche un altro tipo di memoria quella ROM (Read Only Memoria) o
memoria a sola lettura ed usata allavvio per fornire le istruzioni di inizializzazione alla CPU, ci
poich allavvio la memoria principale vuota. In particolare, questa ROM detta BIOS (Basic
Input/Output System) ed ha il compito di identificare il processore installato, la quantit e il
funzionamento della memoria Ram, individuare le periferiche, leggere la traccia zero del disco fisso
dov lindirizzo, sempre sul disco fisso, dellinizio del Sistema Operativo, etc..

9. Memorie secondarie
Nastri magnetici

lunit di misura il frame (8 bit + 1 di ridondanza), la densit di 1600


frame per pollice, i frame sono raggruppati in record la cui lunghezza pu
variare con il sistema e dopo ogni record vi uno spazio vuoto chiamato GAP
(serve al sistema per ricalibrarsi). Laccesso sequenziale.

Dischi fissi

costituito da uno o pi piattelli metallici, sulle cui facce cui viene applicato
per sublimazione uno strato di ossidi magnetici. Per ogni faccia vi una o pi
testine magnetiche che leggono le informazioni. Tutte le testine magnetiche
sono solidali ad un unico braccio (arm). La velocit di rotazione va dai 5400
giri/minuto in su ed per tale motivo che le testine non toccano la superficie,
come nei nastri magnetici o nei floppy disk, ma galleggiano sfruttando un
effetto aerodinamico provocato dallalta velocit di rotazione dei piattelli. Le
tracce di un disco fisso sono concentriche e sono divise in settori, ogni disco
ha lo stesso numero di tracce, le tracce omologhe sui piattelli formano i
cosiddetti cilindri. Ogni settore formato da pi blocchi e le operazioni di
lettura e scrittura avvengono solo per blocchi. Quando si richiede
uninformazione, lelettronica (controller) individua la traccia e il settore in
cui depositata linformazione, dopodich il braccio con la testina si sposta
sulla traccia in questione (tempo di spostamento) e aspetta che il settore che
contiene linformazione cercata passi sotto la testina (tempo di latenza, che
dipende dalla velocit di rotazione e dal posizionamento della traccia). Alcuni
dischi rigidi per ottimizzare le prestazioni dispongono di una memoria
temporanea dove immagazzinare velocemente le informazioni. Tutte le
informazioni sulla dislocazione dei dati sono contenute nella FAT (File
Allocation Table) Laccesso ai dati casuale.

Floppy disk

sono sistemi di memorizzazione rimovibili, caratterizzati da basso costo,


bassa capacit e basse prestazioni. Differentemente dai dischi fissi non sono
sempre in movimento e perci ogni richiesta di lettura, prima di essere
soddisfatta, deve aspettare che il motore del floppy raggiunga la velocit di
regime, che molto pi bassa di quella dei dischi fissi e non consente
lautosostentamento della testina, che come nel caso dei nastri magnetici a
contatto diretto con la superficie magnetica. Lo strato di ossidi metallici
disposto su di un supporto flessibile. La suddivisione in settori, tracce e
cilindri analoga a quella dei dischi fissi, analoga anche la modalit di
posizionamento.

CD/DVD

sistemi di memorizzazione ottica, possono essere di tipo WORM (Write One


Read Many) ossia scrivibili un'unica volta, oppure riscrivibili un determinato
numero di volte. Le informazioni sono scritte attraverso pozzi (pit) e territori
(land), ossia attraverso delle incisioni che si fanno corrispondere a 0 o a 1, e
10

Giuseppe M.L. Sarn Elementi dinformatica di base

che la testina di lettura riconosce per la diversa modalit di riflessione della


luce che un diodo laser accoppiato alla testina di lettura emette. In realt non
si incidono singoli 1 o 0, ma si incidono tratti con informazioni omogenee,
ossia sequenze di bit 0 o 1. Un CD ROM standard ha 533 MB formati da oltre
270.000 blocchi da 2 KB costituiti ognuno da 98 frame. Viene usato un
codice a correzione di errore Reed-Solomon. La modalit di accesso
casuale. Il DVD si differenzia principalmente per la maggiore capacit
avendo i cilindri pi vicini e la lunghezza dincisione del bit pi piccola,
permette di avere una densit di informazione maggiore, che a seconda dei
vari standard, realizza capacit da 4.7 GB a 17 GB.

10. I terminali
Schermo

lo schermo pi diffuso di tipo CRT (Cathode Ray Tube) pu funzionare a


mappa di caratteri o a mappa di bit. Il funzionamento a mappa di caratteri
comporta che per ogni carattere memorizzata una maschera realizzata con
una matrice di 13 x 8 pixel (picture element) e quando arriva il comando di
stampa del carattere sul monitor, viene recuperata la maschera e
opportunamente inviata al tubo catodico. Nella seconda modalit,
lelettronica ha la possibilit di indirizzare ogni singolo pixel. Il colore
gestito da matrici multiple di bit (chiamate anche piani di bit). Con n piani di
bit si gestiscono 2n colori. I terminali a mappe di bit possono supportare
finestre multipli intercambiabili. I monitor LCD (Liquid Cristal Display) sono
a mappe di bit e si basano su un diverso principio fisico, hanno il vantaggio di
non emettere radiazioni apprezzabili.

Tastiera

la tastiera il terminale di input pi comune ed in genere formata da almeno


102 tasti. Premendo un tasto viene inviata alla scheda madre una particolare
sequenza di bit.

Mouse

esistono tre tipi di mouse (meccanico, ottico e opto-meccanico), circa ogni


100 millisecondi vengono inviati le informazioni relative allo spostamento
lungo gli assi X e Y e lo stato dei pulsanti.

Porte

per consentire la connessione di terminali e calcolatori differenti si usano


p.es. le porte RS 232 C (25/9 pin). A monte (o a valle) di una porta RC 232 C
vi un chip chiamato UART (Universal Asynchronous Receveir Trasmitter)
che riceve un carattere intero e lo trasmette bit a bit e viceversa.

Modem

il termine deriva dalla contrazione di Modulation-Demodulation. Per


comunicare su di una linea telefonica si trasmette un segnale modulato (in
ampiezza e/o in frequenza e/o in fase). Nella modulazione in ampiezza si usa
una frequenza costante, ma cambia il voltaggio. Nella modulazione in
frequenza si usa lampiezza costante, ma cambia la frequenza. Nella
modulazione di fase, frequenza ed ampiezza sono in genere costanti, ma varia
la fase del segnale. Lunit di misura il baud, che misura il numero di
intervalli nellunit di tempo; erroneamente si usa come se fosse una
frequenza, ma in un intervallo di tempo si possono trasmettere pi bit.
Modulazione di fase e di frequenza possono essere combinate. Se la
trasmissione asincrona, non c intervallo costante tra i caratteri ed
richiesto perci un segnale di inizio carattere ed uno di fine carattere. Se la
trasmissione sincrona, ricevitore e trasmettitore una volta sincronizzati non

11

Giuseppe M.L. Sarn Elementi dinformatica di base

necessitano di segnali di inizio e fine carattere. La trasmissione half-duplex


monodirezionale alternata, quella full-duplex bidirezionale contemporanea.
Scanner

serve a convertire immagini e tasti da supporti cartacei o similari in opportune


sequenze di bit. Nel caso dei testi, appositi software (OCR) si occuperanno di
estrarre le informazioni di tipo testuale dallimmagine.

Stampanti

possono essere ad impatto, a getto di inchiostro, laser o a sublimazione.

11. Reti di computer


Le modalit con cui gli elaboratori si connettono tra loro ha subito nel tempo unevoluzione dal
paradigma mainframe-terminali, cio un potente elaboratore che fornisce tutti i servizi di cui
necessitano dei terminali stupidi, a quello di elaboratori autonomi (non legati da rapporti tipo
server-client) e interconnessi. Un tale sistema di elaboratori detto rete di elaboratori. Bisogna
prestare attenzione a non confondere ci con un sistema distribuito, che dato da una rete di
elaboratori e da uno specifico software di gestione (Sistema Operativo) che d lillusione di avere di
fronte un unico elaboratore, non consentendo perci di individuare lorigine delle risorse cui si
accede, mentre nella rete di elaboratori si ha coscienza della presenza di molte macchine in rete e
che ogni risorsa cui si accede appartiene ad uno specifico elaboratore.
Le reti di elaboratori servono a condividere le risorse per: i) una maggiore affidabilit, poich
replicando le funzioni su pi macchine si garantisce il servizio anche se una particolare macchina
non in condizione di erogarlo; ii) diminuire i costi, in quanto la stessa potenza di calcolo si pu
ottenere con un'unica macchina o mediante pi macchine ed essendo il costo crescente in maniera
pi che proporzionale alla potenza di calcolo la seconda soluzione risulta pi economica; iii) per
rendere possibili le comunicazioni fra persone; iv) accedere a informazioni remote; v) divertimento.
Le reti si differenziano per tecnologia trasmissiva e per scala dimensionale. La tecnologia
trasmissiva pu essere broadcasting o punto a punto. Nel caso broadcasting, tutti i computer sono
connessi su di un unico condiviso canale di comunicazione, quindi ogni messaggio sulla rete
perviene a tutti gli elaboratori che vi sono connessi, ma viene accettato solo dal destinatario, mentre
tutti gli altri elaboratori dovrebbero scartarlo (se sono definiti dei sottoinsiemi di elaboratori cui e
possibile mandare un messaggio con un particolare indirizzo, si dice che si sta operando in
multicasting). Nel caso di reti punto a punto, ogni coppia di elaboratori ha uno specifico
collegamento fisico, pertanto un messaggio per arrivare alla sua destinazione pu dover passare uno
o pi elaboratori.
Per scala dimensionale si distinguono in:
LAN (Local Area Network)

Lestensione tipica di una LAN quella di un edificio o di un


campus. Comunque una limitazione formale indicativa che
una LAN non deve passare sul suolo pubblico. La trasmissione
pu essere consentita ad un solo elaboratore alla volta, per
realizzare ci necessario definire una tecnologia trasmissiva,
che pu essere: i) a bus, in cui gli elaboratori sono collegati a
pettine sulla LAN ed in tal caso il traffico sulla rete pu
essere regolato da un arbitro centralizzato, oppure senza
arbitro e tutti gli elaboratori controllano le trasmissioni sulla
LAN per individuare listante in cui sia possibile trasmettere
ed eventualmente in caso di errore ritrasmettere la
trasmissione; ii) ad anello ring, in cui gli elaboratori sono
connessi ad anello e su cui viene trasmesso da elaboratore ad
elaboratore un particolare messaggio detto token, solo
12

Giuseppe M.L. Sarn Elementi dinformatica di base

lelaboratore in possesso del token potr trasmettere sulla LAN


e nelleventualit che il token arrivi ad un elaboratore che non
abbia nulla da trasmettere, questi provveder a passare il token
al computer che lo segue sul ring.
MAN (Metropolitan Area Network) Lestensione tipica di una MAN lambito urbano.
Generalmente queste linee sono monodirezionali in fibra ottica
e pertanto punto a punto.
WAN (Word Area Network)

Questa e la rete mondiale ed composta di linee di


trasmissione, elementi di commutazione e router. In una WAN
le comunicazioni possono essere di tipo punto a punto o, se si
usa il satellite, in broadcasting.

12. Protocolli e livelli


Con il termine internet si possono intendere due cose distinte: internet (con la i minuscola) il
sinonimo di internetworking (cio reti di tipo diverso collegate tra loro), ossia di interconnessione di
reti generiche; Internet (con la I maiuscola) lo specifico internetworking basato su TCP/IP che
tutti conoscono.
Le comunicazioni tra computer avvengono usando diversi protocolli, che per ridurre la complessit
di progetto sono in generale organizzati a livelli, ciascuno costruito sopra il precedente. Linsieme
dei livelli e dei relativi protocolli detto architettura di rete.
Unarchitettura di rete pu essere:
proprietaria
sviluppata da una particolare ditta che ne detiene la propriet come per esempio
le reti Novell o Appletalk;
standard de facto il cui standard di pubblico dominio, per cui chiunque lo pu utilizzare senza
pagare diritti, come lInternet Protocol Suite (detta anche architettura TCP/IP);
standard de jure
basata su specifiche approvate da una organizzazione internazionale di
standardizzazione, come per il protocollo ISO/OSI.
La madre di tutte le reti fu Arpanet, originata da un progetto di ricerca finanziato dal Dipartimento
della Difesa degli Stati Uniti (DoD), allo scopo di creare una rete estremamente affidabile in caso di
catastrofi (leggasi eventi bellici) che ne rendessero inutilizzabile una parte. Arpanet attraverso varie
evoluzioni ha dato origine allattuale Internet.
Per integrare via via vari tipi di reti fu necessaria una nuova architettura nota con i seguenti nomi;
Internet Protocol Suite; Architettura TCP/IP; TCP/IP reference model (anche se in realt non un
modello, in quanto i protocolli effettivi sono specificati a parte)
Di seguito riportato un confronto tra la struttura delle due architetture ISO/OSI e TCP/IP. Da
ricordare che la prima frutto di un comitato di standardizzazione che ha definito i vari livelli e
successivamente ha realizzato i protocolli; tra le due fasi nata e si affermata larchitettura
TCP/IP con un successo tale da pregiudicare la diffusione dellarchitettura ISO/OSI
OSI
Application
Presentation
Session
Transport
Network
Data Link
Fisico

TCP/IP
Application
___________
Transport
Internet
Host to Network
___________
13

Giuseppe M.L. Sarn Elementi dinformatica di base

ISO/OSI
Livello Fisico

si occupa della trasmissione di bit su di un canale fisico;

Livello Data Link

ha lo scopo di presentare al livello superiore un canale di trasmissione privo


di errori non rilevati;

Livello Network

controlla il funzionamento della subnet di comunicazione gestendo il routing,


la congestione, laccounting, e la conversione di dati nel passaggio tra reti;

Livello Transport

spezza i dati provenienti dal livello superiore e li passa al livello Network e


deve garantire che arrivino al corrispondente livello Transport del
destinatario;

Livello Session

dovrebbe occuparsi di servizi pi evoluti rispetto al livello Transport, ma non


ha avuto un grosso successo;

Livello Presentation si occupa della sintassi e della semantica dei dati da trasferire, tipo convertire
i dati in un formato accettato dal destinatario;
Livello Application

dove risiedono tutti i protocolli necessari per fornire i vari servizi agli utenti.

Internet Protocol Suite


Host to network

non specificato, ma prevede luso di quanto disponibile nelle varie


piattaforme;

Internet

si occupa di inviare i pacchetti su qualunque rete e fare il possibile per farli


arrivare;

Transport

consente la conversazione tra sorgente e destinazione. Sono definiti in questo


livello il TCP (Trasmission Control Protocol) protocollo connesso e affidabile
e lUDP (User Datagram Protocol) protocollo non connesso e non affidabile.

Livello Application

dove risiedono tutti i protocolli necessari per fornire i vari servizi agli utenti,
non vengono impiegati i livelli Session e Presentation in quanto non ritenuti
necessari.

13. Trasmissione del segnale


Al Livello fisico la trasmissione pu avvenire su mezzi: elettrici, ottici, wireless. La trasmissione
pu essere analogica (varia gradualmente su un numero infinito di valori); digitale (varia
bruscamente su un insieme finito di valori).
I principi su cui si basa la trasmissione di un segnale sono diversi, ma quelli di base si possono
ritenere:
Analisi di Fourier

un segnale variabile nel tempo equivalente ad una somma di funzioni


sinusoidali (spettro di frequenze). Ogni mezzo fisico caratterizzato da una
banda passante. Ogni mezzo fisico attenua il segnale e introduce un ritardo
diverso per ogni frequenza.

Teorema di Nyquist

un segnale analogico di banda h pu essere ricostruito campionando a 2h al


secondo.

Teorema di Shannon

il massimo tasso di trasmissione legato alla frequenza ed al rapporto


segnale rumore Max data rate (bit/sec) = h lg(1+S/N)

14

Giuseppe M.L. Sarn Elementi dinformatica di base

14. Mezzi trasmissivi


Il segnale pu viaggiare utilizzando una notevole variet di mezzi trasmessivi, di seguito elencati:
Doppino intrecciato

Cat.3 due fili isolati attorcigliati.


Cat.5 migliore isolamento e attorcigliamento pi stretto

Cavo coassiale

Baseband coaxial cable (50 Ohm 1-2Gps fino a 1Km)


Broadband coaxial cable (75 Ohm 300 MHz fino a circa 100 Km)

Fibre ottiche

Multimodali 50 micron (pi trasmissioni contemporanee)


Monomodali: 9-10 micron (reggono distanze fino a 30 Km)

Trasmissioni senza fili

Onde radio
Microonde
Raggi infrarossi
Luce visibile
Raggi ultravioletti

15. Sistema telefonico


Il sistema telefonico riveste un ruolo centrale per le comunicazioni tra computer sia perch c la
possibilit di utilizzare una rete esistente e sia perch illegale stendere cavi sul suolo pubblico. Il
sistema telefonico composto da centrali di dimensioni e complessit crescente organizzate in
forma gerarchica.
Le trasmissioni multiple possono avvenire per Frequency division multiplexing o per Time division
multiplexing. In breve, la prima tecnica consiste nel suddividere la capacit trasmissiva (banda)
disponibile in tanti canali, ognuno dei quali opera su un limitato intervallo di frequenza, ed
assegnato in esclusiva ad una data comunicazione; la seconda, per contro, assegna ad ogni
comunicazione tutta la banda ma per intervalli di tempo piccolissimi.

16. Collegamento a Internet


Un collegamento domestico a Internet si realizza con un modem ed un provider. In tal caso
incidono: la velocit del modem dellutente; la velocit del modem del provider; lo stato di carico
della rete del provider; il tipo di linea utilizzata per la connessione.
Il protocollo TCP/IP prevede che ogni computer abbia un indirizzo del tipo 255.255.255.255 che
nel caso di un collegamento ad un provider assegnato dinamicamente, ossia due collegamenti
diversi potranno far s che al computer siano assegnati indirizzi diversi. Nelle LAN gli indirizzi
possono sia essere assegnati dinamicamente che staticamente, in altre parole permanentemente.
I campi dellindirizzo individuano la classe A, la B, la C e il numero del computer allinterno della
rete. Limportanza delle classi a decrescere partendo dalla classe A.

17. Il Sistema Operativo


Il software pu essere in due grosse categorie di programmi, il software di sistema e il software
applicativo. Il pi importante programma di sistema il Sistema Operativo (S.O.) che controlla tutte
le risorse e rende disponibile una base per tutti i programmi applicativi. Il S. O. presenta allutente
uninterfaccia o macchina astratta pi semplice da capire e da programmare rispetto al linguaggio
15

Giuseppe M.L. Sarn Elementi dinformatica di base

macchina e si occupa di gestire unallocazione ordinata delle risorse ai vari programmi che
competono per usarle tenendo traccia di chi le usa, di accettare e soddisfare le richieste, di evitare
e/o risolvere i conflitti.
Levoluzione dei S.O. ha seguito un percorso pressoch parallelo a quello degli elaboratori. I primi
elaboratori erano privi di un S.O. ed ogni programma aveva luso esclusivo dellelaboratore, il che
implicava lautosufficienza per gestire tutte le risorse di cui necessitava, comportando ulteriori
complicazioni a livello di programmazione; oggi un moderno S.O. in grado di coordinare
lesecuzione contemporanea di numerosi programmi e fornire loro tutti i servizi di cui necessitano,
come la gestione dei dispositivi di Input/Output. Di seguito riportata una sintetica cronistoria dei
S.O.
1.
2.

3.

4.
5.

1945-1955 Tecnologia: valvole. Gli elaboratori si programmavano con schede e cavi a


spinotti. Dai primi elaboratori privi di S.O. si pervenne a S.O. molto primitivi.
1955-1965 Tecnologia: transistors. Si impiegava la programmazione batch, che consisteva
nel raccogliere fuori linea i programmi in lotti (batch) su nastro magnetico,
mandare in esecuzione i lotti e registrare gli output su un nastro magnetico da
stampare fuori linea.
1965-1980 Tecnologia: circuiti integrati. Questo periodo si caratterizza per la multiprogrammazione, dividendo la memoria centrale in porzioni, ognuna atta a ricevere un
programma in esecuzione; questo sistema richiedeva la presenza di hardware
specializzato. Il timesharing una variante della multiprogrammazione in cui
ogni utente ha un terminale in linea. S.O. tipici: FMS e IBSYS.
1980-1994 Tecnologia: circuiti integrati su larga scala. S.O. tipici: MS-DOS e UNIX;
1998-2003 Tecnologia: circuiti integrati su larghissima scala. S.O. tipici: Windows, UNIX e
LINUX.

18. Struttura dei S.O.


I Sistemi Operativi sono strutturati nel Kernel (o nucleo) e nel Sistema Operativo cosiddetto esteso.
Quando lelaboratore funziona il Kernel sempre presente in memoria, mentre il S.O. esteso
formato da una serie di programmi che non sono continuativamente necessari e, per non impegnare
memoria, si caricano solo a richiesta e sono scaricati finito il loro compito; ad esempio quando si
vuole formattare un floppy disk, una volta dato il comando, il S.O. carica lapposito programma che
dopo la formattazione del floppy disk viene scaricato dalla memoria.
Linterfaccia tra S.O. e programma utenti definita dallinsieme di istruzioni estese del S.O., che
creano, usano e distruggono i vari oggetti software gestiti dal S.O., i pi importanti di tali oggetti
sono i processi ed i file.

19. I processi
La CPU ad ogni istante pu eseguire un solo programma, ma osservando il funzionamento di un
elaboratore si penserebbe che pi programmi siano in esecuzione contemporaneamente; per
esempio, un browser pu caricare una pagina http collegandosi tramite Internet con un sito e
nellattesa ci si diverte con un videogioco e sempre contemporaneamente, un documento viene
inviato alla stampante tramite un programma videoscrittura. Ma riferendosi ad elaboratori
monoprocessori, ossia dotati di una sola CPU, potr essere in esecuzione un solo programma alla
volta. Ci si domanda allora come pu succedere che pi programmi siano in esecuzione
contemporaneamente. Vedremo nel seguito del paragrafo come ci sia possibile.
Una definizione pi precisa di ci che per semplicit si chiamato programma, quella di
processo, dove per processo si intende un programma in esecuzione, ossia: il programma
16

Giuseppe M.L. Sarn Elementi dinformatica di base

eseguibile, il program counter, lo stack pointer (un indice della posizione corrente nella memoria
detta stack) ed altri registri e variabili di stato (vedi anche par. 6).
Per ovviare alla disponibilit di una sola CPU, che perci pu eseguire un solo programma alla
volta, si usa il trucco di dividere il tempo della CPU in tanti intervalli (detti quanti o slice) e
ad ogni processo si assegna ciclicamente luso della CPU per uno o pi quanti. Cos nellarco di un
secondo possono girare diversi processi in una sorta di pseudoparalellismo, ma realmente il tutto
funziona in maniera sequenziale con un processo in esecuzione alla volta. Il tempo di ogni quanto
pu essere di qualche decina di millisecondi fino a qualche centinaio. La dimensione dellintervallo
in cui un processo pu essere eseguito dipende anche dal tipo e dal numero di processi in memoria.
Quando un processo consuma lintervallo di tempo a sua disposizione, i suoi dati e lo stato corrente
vengono salvati, affinch possano essere ricaricati quando quel processo andr di nuovo in
esecuzione, e vengono caricati quelli del nuovo processo. Questa operazione prende il nome di
cambio di contesto e la modalit di esecuzione prende il nome di multiprogrammazione (per
comodit si ipotizza comunque che ogni processo abbia un microprocessore dedicato, anche se il
microprocessore ovviamente virtuale essendo unico quello reale. Differentemente, nei primi
calcolatori poteva essere eseguito un solo programma alla volta con un uso esclusivo e continuativo
dellelaboratore, si parla in tal caso di monoprogrammazione). Nei processi interattivi, che cio
interagiscono direttamente con lutente importante che la dimensione degli slice sia tale da dare
una sensazione di fluidit.
Il S.O. mantiene traccia dei processi in esecuzione attraverso una tabella dei processi dove ogni riga
corrisponde ad un processo e contiene informazioni sullo stato del processo, lo stack pointer,
lallocazione di memoria, lo stato dei file aperti, informazioni utili a quantificare i costi, lo
scheduling e qualsiasi cosa sia necessario salvare quando un processo non ha pi la disponibilit del
microprocessore, con la sola esclusione del contenuto della porzione di memoria utilizzata dal
processo. Pertanto il S.O. quando gestisce i cambi di contesto fa riferimento alla tabella dei processi
per salvare tutte le informazioni relative al processo che sta per essere scaricato e per prelevare, se il
processo era gi stato schedulato, tutte le informazioni relative al processo da caricare.
Un cambio di contesto pu anche avvenire perch in un determinato istante della sua esecuzione il
processo richiede un dato che deve essere reperito in memoria, in tal caso aspettare che il dato sia
recuperato comporta unoziosa attesa della CPU e risulta pertanto pi produttivo mandare in
esecuzione un altro processo. Si pu affermare che quando un processo si blocca lo fa perch da un
punto di vista logico non pu continuare lesecuzione (in genere perch manca un dato, oppure la
CPU stata allocata ad un altro processo). I processi si possono quindi distinguere nei seguenti
stati:
1. in esecuzione
2. pronto un processo eseguibile se solo avesse la disponibilit del microprocessore.
3. bloccato un processo nellattesa di dati o di qualche risorsa e ovviamente non ha luso
del microprocessore.
Esistono diversi tipi deventi che possono provocare la sospensione di un processo in esecuzione,
quali il completamento di unoperazione di I/O, una divisione per zero, un accesso in memoria non
valido, una richiesta al S.O.. Ognuno di questi eventi causa dellinvio di un segnale alla CPU,
segnale che prende il nome di interrupt. Linterrupt provoca la sospensione del processo in
esecuzione e il passaggio dalla modalit di funzionamento utente a quella Kernel. In modalit
Kernel il S.O. avvia idonei processi atti a gestire il problema che ha causato linterrupt. In altre
parole, viene realizzato il salvataggio dei registri e delle variabili di stato sullo stack, quindi
unapposita procedura salva i dati relativi al processo corrente e in ultimo avviata la routine di
servizio idonea per quel dato interrupt.
Un processo pu creare uno o pi processi figli o anche una gerarchia di processi che, in relazione
al tipo di S.O., possono essere sia attivi contemporaneamente che comportare la sospensione del
17

Giuseppe M.L. Sarn Elementi dinformatica di base

processo padre fino alla conclusione del/dei processi figli. I S.O. devono disporre di qualche
meccanismo per gestire i processi, le principali chiamate di sistema riguardano la loro creazione e
terminazione.
E utile anche far presente un problema che riguarda i processi obbligati a condividere la memoria
in lettura e scrittura, in cui si possono verificare le race-conditions o corse critiche. In breve, il
problema delle corse critiche collegato ai cambi di contesti e si verifica quando un processo legge
una locazione di memoria condivisa, immagazzina il dato, ma prima che lo possa utilizzare vi un
cambio di contesto. Il processo che segue utilizza la stessa locazione di memoria (in genere perch
usata per una qualche forma di comunicazione con laltro processo) legge il dato, che in questo caso
era lo stesso letto dallaltro processo, e modifica il valore della locazione di memoria. Al successivo
cambio di contesto il primo processo torna in esecuzione, ma non rilegger pi la locazione di
memoria, avendola gia letta precedentemente, e user quel valore che ora purtroppo sbagliato;
tutto ci pu anche causare il blocco di entrambi i processi. Esistono comunque diverse tecniche di
programmazione per evitare il verificarsi di questi problemi.

20. Lo scheduling dei processi


Per decidere quale processo mandare in esecuzione tra i processi che sono nello stato di pronto, si fa
uso dello scheduler dei processi che decide in base alla politica adottata e i cui criteri possono
essere: imparzialit, efficienza, tempo di risposta, tempo di round (minima attesa per i processi
batch), throughput (numero di lavori elaborati per ogni unit di tempo). Da notare che alcuni criteri
possono essere in conflitto tra loro.
Un concetto fondamentale che ogni processo non predicibile, non si pu cio predire in che stato
sar il processo ad un certo istante del quanto di tempo assegnatogli, perci periodicamente i
calcolatori generano uninterruzione (50-60 volte al secondo o pi) e ad ogni interruzione
esaminano lo stato del processo ai fini della continuazione dellesecuzione.
Un altro fattore da tenere in conto la politica adottata nei confronti dei processi che acquisiscono
delle risorse; la strategia che consente (o non consente) di interrompere i processi che hanno
acquisito delle risorse detta con prerilascio (o senza prerilascio) altrimenti detta preemptive
scheduling (o non preemptive scheduling). Gli algoritmi di gestione dei processi che
implementano politiche senza prerilascio sono ovviamente pi semplici di quelli che impiegano
politiche con prerilascio, ma sono utilizzabili in presenza di utenti in competizione per luso delle
risorse.
Gli algoritmi pi comuni di schedulazione dei processi sono:
Round robin - Ad ogni processo assegnato un quanto (slice) di tempo in cui girare, il
processo viene sostituito alla fine del quanto o quando si blocca. Lalgoritmo round robin
facile da implementare, ma la durata del quanto un fattore critico poich ogni cambio di
contesto ha dei tempi morti, quindi se aumentando la dimensione del quanto si massimizza
lefficienza tuttavia minore la dimensione del quanto maggiore il numero di processi che
gira e migliore linterattivit con gli utenti. Una dimensione di circa 100 millisecondi
mediamente ragionevole, ma dipende anche dalle caratteristiche dellhardware.
Con priorit - Ogni processo ha una priorit che ad ogni cambio di contesto viene
decrementata di ununit. Il processo in esecuzione sar sempre quello con priorit
maggiore. La priorit pu essere assegnata staticamente o dinamicamente. Una buona
tecnica assegnare al processo una priorit pari allinverso della durata dellultimo quanto
utilizzato espresso in secondi. Allinterno di classi di processi con la stessa priorit pu
essere usata la tecnica round robin.

18

Giuseppe M.L. Sarn Elementi dinformatica di base

Code multiple - I processi sono suddivisi in classi ed ogni classe ha durata doppia di quella
inferiore. I processi arrivano nella classe superiore ogni volta che consumano tutto il quanto
a disposizione, oppure ogni volta che viene battuto un tasto supponendo ci indicativo del
fatto che il processo stia per diventare interattivo.
Garantita - Utile nei sistemi real-time, dove si manda in esecuzione il processo che ha il
rapporto pi basso tra il tempo usato e quello che gli spettava.
A due livelli - Uno schedulatore manda in esecuzione i processi tra quelli in memoria ed un
altro decide quale caricare e scaricare dalla memoria. Tra i criteri si segnalano: il tempo
passato dal precedente scarico; il tempo pi recente di utilizzo della CPU; la grandezza del
processo; la priorit del processo.

21. Gestione della memoria


Tra le risorse pi importanti vi indubbiamente la memoria. Storicamente, la prima tecnica adottata
di gestione della memoria quella detta monoprogrammazione senza swapping o paginazione,
dove ad ogni istante vi un solo processo in esecuzione che ha assegnata tutta la memoria
disponibile. Questa tecnica implica che, non essendoci cambi di contesto, il programma deve essere
in tutto e per tutto autosufficiente ed ogni processo al suo interno deve avere un gestore per ogni
dispositivo usato, non potendo richiedere lintervento di altri processi. Una forma attualizzata di
monoprogrammazione pu essere quella presente in alcuni semplici microcalcolatori dedicati, dove
la memoria divisa tra S.O. (sempre presente) e lunico programma in esecuzione.
In alternativa si pu allocare la memoria a pi processi che girano in pseudoparallelismo, questa
tecnica detta multiprogrammazione e il numero di processi che possono contemporaneamente
stare in memoria dipende dalle dimensione dei processi e della memoria. Dal punto di vista della
programmazione possibile realizzare applicazioni di dimensioni minori, potendo demandare luso
dei dispositivi ad altre applicazioni, oltre naturalmente ad essere pi semplice servire pi utenti. Dal
punto di vista dellefficienza, ottimizza luso della CPU ovviando alla perdita di tempo di calcolo
che si verifica quando un processo necessita di dati esterni per la maggior parte del tempo in cui
resta in memoria, in tal caso con un solo processo la CPU resterebbe bloccata in attesa del dato
mancante.
Se si adotta la multiprogrammazione con partizioni fisse, in questo caso lorganizzazione migliore
quella di avere n partizioni, ma non necessariamente di dimensioni uguali. Lo svantaggio di questa
tecnica che ogni porzione della partizione non effettivamente occupata dal processo persa. Una
strategia che si pu adottare quella di mantenere una coda di processi ed allocare in una partizione
libera il primo processo presente nella coda che abbia dimensioni tali da essere contenuto nella
partizione, ma in tal modo si rischia per di avere processi piccoli in partizioni grandi; in
alternativa, si potrebbe scegliere il processo pi grande presente nella coda che in grado di entrare
nella partizione, ma cos si discriminerebbero i processi piccoli. Per ovviare a questo problema si
pu imporre che un processo non pu essere scartato pi di k volte.
Con la multiprogrammazione quando un processo ricaricato in memoria, quasi sempre la
partizione che gli viene assegnata differente da quella del precedente turno desecuzione, per tale
motivo andr in esecuzione a partire da indirizzi di memoria diversi, con lovvia conseguenza che
tutti gli indirizzi di memoria precedentemente utilizzati non sono pi validi. Gli effetti di ci
sarebbero probabili indirizzamenti di memoria al di fuori dalla propria partizione corrente e per
ovviare a ci il linker (che partendo dal codice oggetto e dalle librerie, risolve tutti i riferimenti
pendenti, dovuti in genere alle funzioni di libreria impiegate, ottenendo un codice eseguibile dotato
di uno spazio indirizzi unico) dovrebbe includere nel codice eseguibile una lista delle variabili da
rilocare ogni volta che la partizione assegnata cambia e dividere la memoria in blocchi protetti da
accessi non consentiti, abilitando ogni processo alluso del solo blocco assegnato. Una soluzione
19

Giuseppe M.L. Sarn Elementi dinformatica di base

migliore quella di esprimere gli indirizzi dei programmi come indirizzi relativi ed ogni volta che
un processo viene assegnato ad una partizione, lindirizzo reale sar ottenuto sommando lindirizzo
relativo del processo con quello corrispondente alla prima locazione di memoria della partizione. In
questo modo facile cambiare la partizione assegnata ai processi. Loperazione di carico e scarico
dei processi dalla memoria detta di swapping.
Un'altra tecnica di multiprogrammazione quella realizzata con partizioni variabili sia in numero
che in dimensione. Questa tecnica ha il pregio di sfruttare meglio la memoria rispetto alle partizioni
fisse, per contro ha il difetto di creare buchi nella memoria in corrispondenza dei processi
scaricati. Buchi adiacenti possono essere raggruppati in un'unica area di memoria, inoltre se il
processo cresce dopo lallocazione, per esempio perch genera una serie di dati intermedi che deve
provvisoriamente salvare, i processi anzich essere spostati o terminati (detti anche uccisi)
possono sfruttare eventuali buchi nella memoria adiacenti allarea in cui allocato il processo. La
gestione della memoria pu essere effettuata attraverso bitmap o attraverso liste. Ognuna di queste
tecniche ha vantaggi e svantaggi. Con le bitmap ogni bit rappresenta una piccola porzione di
memoria; se il bit posto pari ad 0 indica che quella porzione di memoria libera, ma per contenere
il processo si dovr trovare una sequenza di bit sufficientemente lunga; le liste sono gi organizzate
per dimensioni e quindi il gestore deve cercare solo quella di dimensioni sufficienti a contenere il
processo, ma avr lo svantaggio di frequenti riorganizzazioni dei dati. Con la tecnica delle liste
possono essere utilizzate le strategie:
1.
2.
3.
4.
5.

first fit (primo posto sufficiente)


next fit (si ricorda dove nella ricerca precedente era stato trovato un buco sufficiente)
best fit (scegli il miglior buco possibile) problema: lascia buchi troppo piccoli
wost fit (sceglie sempre il buco pi grande) - problema: non molto efficiente
quick fit (mantiene liste separate per le dimensioni pi comuni

Lallocazione dello spazio di swap quando si scaricano i processi sul disco fisso comporta luso
delle stesse strategie con lunica differenza che in questo caso i processi devono occupare un
multiplo dellunita base di memorizzazione del disco fisso (blocco).

22. Memoria virtuale


I programmi con il tempo divennero sempre pi complessi e di dimensioni maggiori fino ad essere
pi grandi della memoria disponibile, i programmatori iniziarono allora ad usare la tecnica di
dividerli in blocchi (overlay) caricati a turno in memoria secondo le necessit. Mentre il
caricamento dei blocchi in memoria rimaneva compito del S.O., la suddivisione del programma in
blocchi era un lavoro complesso e faticoso dei programmatori.
Nel 1961 in Scozia fu introdotta la memoria virtuale, un sistema trasparente allutente in cui si
impiega (indirizza) uno spazio di memoria maggiore (spazio di indirizzi virtuali) della memoria
realmente disponibile (memoria fisica). Infatti, lo spazio di indirizzi virtuali era determinato
dallindirizzo pi grande (numero binario pi grande) che poteva essere richiesto dallelaboratore,
mentre quello fisico rappresentava un sottoinsieme di quello virtuale. Lidea quella di dividere la
memoria fisica e la memoria virtuale in tanti blocchi (pagine) di dimensioni uguali e di assegnare un
identificativo ad ogni pagina. In memoria sono caricate le pagine necessarie, in genere non
consecutive.
Gli indirizzi virtuali sono gestiti dallUnit di Gestione della Memoria (MMU) che li trasforma in
indirizzi fisici, creando una corrispondenza tra una pagina appartenente allo spazio
dindirizzamento virtuale ed una appartenente a quello fisico. Solo le pagine virtuali che necessitano
ai processi in corso sono caricate nella memoria fisica. Una tabella delle pagine memorizza quali
sono le pagine virtuali caricate nelle pagine di memoria fisica.
20

Giuseppe M.L. Sarn Elementi dinformatica di base

Se si cerca un indirizzo appartenente ad una pagina virtuale non presente in memoria si ha un fault
di pagina, si scaricher allora dalla memoria al disco fisso una pagina poco usata e si caricher dal
disco fisso alla memoria la pagina che contiene lindirizzo cercato e quindi si aggiorner la tabella
delle pagine virtuali.
La dimensione delle pagine sempre un multiplo di 2, cos possibile suddividere un indirizzo in
due parti, il numero della pagina e un indirizzo di una locazione di memoria interna alla pagina,
detto anche offset o spiazzamento.
Indirizzo pi grande della memoria virtuale
Indirizzo pi grande della memoria fisica
Dimensione della pagina di 16 bit
Parola di 32 bit
Indirizzo interno alla pagina
Numero della pagina
Nella tabella delle pagine lelemento relativo alla pagina virtuale viene ricavato dal numero di
pagina fisica da collegare alloffset per avere lindirizzo da mandare in memoria. La tabella delle
pagine virtuali mappa le pagine virtuali alle pagine fisiche, le pagine virtuali sono ovviamente molte
di pi delle pagine fisiche e la tabella pu risultare molto grande, ma la traduzione deve essere fatta
velocemente se non si vogliono pregiudicare le prestazioni del sistema. A titolo desempio con
indirizzi da 32 bit e pagine da 4 Kb si hanno pi di un milione di pagine e in unistruzione
potrebbero esserci anche tre riferimenti in memoria. Le soluzioni per effettuare una traduzione
efficiente sono quelle di avere dellhardware specializzato costituito da registri veloci, uno per ogni
pagina virtuale; in alternativa la tabella pu essere a sua volta tenuta direttamente in memoria, ma
questa soluzione pi lenta della prima.
Per evitare la presenza in memoria di tabelle delle pagine molto grandi si pu usare la paginazione a
pi livelli, alcuni sistemi arrivano fino a quattro livelli. In memoria si terr perci solo ci che
necessario
La ricerca della presenza in memoria fisica di una data pagina virtuale rallenta il sistema, per
velocizzarlo si fa uso di una piccola memoria associativa che contiene informazioni relative alle
pagine presenti in memoria fisica oggetto dei pi recenti accessi. La memoria associativa rende
possibile effettuare una ricerca in parallelo su tutti i dati per verificare la presenza in memoria fisica
della pagina cercata e in caso di successo anche la corrispondenza tra pagina di memoria fisica e
virtuale. Questo sistema statisticamente ha una buona efficienza.
Si individuano tre casi:
1. Se presente in memoria la pagina e non si viola un bit di protezione (che indica il tipo di
accesso consentito) viene presa la pagina
2. Se presente in memoria la pagina e si viola un bit di protezione si ha un fault di pagina
3. Se non presente in memoria la pagina si cerca nella tabella delle pagine, si scarica un
elemento dalla memoria associativa e lo si rimpiazza con la nuova pagina.
Se la pagina scaricata era stata modificata la si salva in memoria. Questa informazione data da un
bit che viene modificato con la prima operazione di scrittura effettuata sulla pagina. Quando c un
21

Giuseppe M.L. Sarn Elementi dinformatica di base

cambio di contesto si devono invalidare le pagine gi caricate in memoria associativa, in genere


mettendo a 0 il bit di validit.
Un altro problema che si crea caricando e scaricando le pagine dalla memoria la scelta della
pagina da scaricare. Lalgoritmo ideale di rimpiazzo delle pagine purtroppo irrealizzabile, dato
che consiste nello scaricare tra le pagine presenti in memoria quella che verr richiamata il pi tardi
possibile e ci ovviamente non pu essere noto. Il problema della scelta della pagina da eliminare
stato oggetto di numerosi studi e altrettanto numerose sono le possibili soluzioni, a titolo
esemplificativo si fa cenno a due possibili strategie, quella che sceglie di scaricare la pagina usata
meno recentemente e quella che sceglie la pagina pi vecchia (caricata prima di tutte le altre
presenti in memoria).
La paginazione su domanda comporta che il processo richieda al sistema le pagine a cui fa
riferimento e queste pagine vengono richiamate in memoria. La maggior parte dei programmi
mostra una localit dei riferimenti, cio in ogni fase dellesecuzione il progetto si riferisce ad un
limitato numero di pagine detto working-set. Se tutto il working-set sta in memoria non ci sono
page-fault, per contro se dopo poco istruzioni il processo provoca sempre dei page-fault si dice che
il processo in una situazione di trashing. Per evitare che ad ogni cambio di contesto vi siano
sequenze di page-fault, il sistema cerca di tenere traccia dei vari working-set e di caricarli prima di
iniziare lesecuzione del nuovo processo.
La scelta della pagina da scaricare pu essere fatta tra tutte quelle in memoria indipendentemente
dal processo a cui appartiene o solamente tra quelle relative al processo che ha causato il page-fault.
Per limitare comunque i page-fault conveniente che lo spazio in memoria sia anche dimensionato
tra i vari processi in funzione della frequenza dei page-fault.
Infine un'altra problematica la dimensione delle pagine, poich se sono piccole vi meno spreco,
ma si richiedono tabelle pi grandi, un maggior numero di page fault e maggior tempo speso in
trasferimenti; viceversa se la dimensione delle pagine pi grande

23. La segmentazione
Dopo la paginazione si cercato di ottenere ancora pi spazio indirizzabile, ma i limiti sono
comunque individuati dalla dimensione dellindirizzo. Si trovata la soluzione nel dotare uno stesso
processo di pi spazi di indirizzamento lineari completamente indipendenti chiamati segmenti, che
possono avere la stessa dimensione oppure no.
Per potere indirizzare il segmento bisogna strutturare diversamente lindirizzo di memoria in
numero di segmento ed indirizzo interno al segmento, ma niente vieta che si usi
contemporaneamente anche la paginazione (strutturando un indirizzo virtuale in numero di
segmento, numero di pagina e indirizzo interno alla pagina).
I segmenti consentono anche il linking delle singole procedure separatamente, ognuna dotata del
proprio segmento, oppure consentono di caricare ogni libreria in un segmento separato. Inoltre,
mentre nella paginazione il contenuto della pagina sconosciuto al programmatore perch il
funzionamento nei suoi confronti trasparente, nella segmentazione il programmatore che decide
se ci deve essere e cosa deve contenere ogni segmento e pertanto volendo pu anche proteggere e
dare diritti differenti ad ogni segmento.

24. I File System


La capacit di memoria limitata dalle dimensioni dello spazio di indirizzi virtuali e nonostante ci
frequentemente insufficiente e comunque non permanente, ossia quando si spegne il computer il
22

Giuseppe M.L. Sarn Elementi dinformatica di base

contenuto va perso, inoltre non accessibile se non al proprietario dello spazio di indirizzamento e
ci rende difficile scambiarsi le informazioni.
Perci serve:
1. memorizzare le informazioni permanentemente alla fine del processo
2. memorizzare grosse quantit di informazioni
3. consentire a pi processi laccesso alle informazioni.
Un file su supporti esterni risolve questo problema, ma bisogna definire che cosa un file e pertanto
la struttura del File System, i nomi dei file, le modalit di accesso e protezione, sono le principali
tematiche che tratteremo in questo paragrafo.
I file sono un meccanismo di astrazione che consentono in maniera trasparente per lutente di
memorizzare e ritrovare una informazione prescindendo dalla reale implementazione. Quando un
processo crea un file gli da un nome e, quando il processo termina, attraverso quel nome altri
processi potranno usare il file. Il nome spesso diviso in due o pi parti il cosiddetto nome vero e
proprio e nessuna o una o pi estensioni.
Le tre pi comuni modalit di strutturazione dei file sono:
1. sequenza non strutturata di byte
2. sequenza di record
3. ad albero
In 1) un qualsiasi significato pu essere attribuito a livello di programma utente; il S.O. non aiuta,
ma non interferisce. In 2) si usa una struttura a sequenza di record a lunghezza fissa, ognuno con
una sua struttura interna. Ogni lettura restituisce un record ed ogni scrittura scrive un record. In 3) si
usa un albero di record, non necessariamente della stessa lunghezza, lalbero ordinato rispetto ad
un campo del record detto Key.
I tipi di file possono essere
1. File regolari contengono le informazioni degli utenti
2. File directory file di sistema che conservano la struttura del file system
3. File speciali a caratteri modellano lInput/Output di unit speciali (stampanti, terminali,
reti)
4. File speciali a blocchi modellano i dischi
I file regolari possono essere scritti in ASCII, ossia formati da linee di tipo testo (per ogni linea i
sistemi operativi in genere inseriscono un carattere di fine linea), oppure possono essere in binario e
se letti risultano non comprensibili, in genere i file binari hanno una struttura interna. I file regolari
ASCII si possono stampare ed facile collegare Output e Input di programmi diversi. I programmi
sono essi stessi file eseguibili ed un sistema operativo deve perlomeno riconoscere il proprio file
eseguibile.
Il tipo di accesso ai file pu essere di tipo sequenziale a tutti i byte (o record) del file, oppure ad
accesso casuale in cui i byte o record possono essere letti in un qualsivoglia ordine, a partire
dallinizio del file o dalla posizione corrente.
Ogni Sistema Operativo associa ad ogni file delle informazioni tra cui potrebbero esserci:
Protezione
Proprietario
Flag di sistema
Flag binario
Flag di lock
Tempo di creazione
Dimensione massima

Password
Flag di sola lettura
Flag darchivio
Flag daccesso casuale
Lunghezza dei record
Tempo dellultimo accesso

23

Creatore
Flag di file nascosto
Flag ASCII
Flag di file temporaneo
Posizione chiave
Dimensione attuale

Giuseppe M.L. Sarn Elementi dinformatica di base

N.B. Un flag un bit che da unindicazione di tipo on/off.


Le principali operazioni che possibile eseguire sui file sono: CREATE per creare un file;
DELETE per cancellare un file; OPEN per aprire un file in lettura o scrittura; CLOSE per chiudere
un file aperto in lettura o scrittura; READ per leggere sequenzialmente il contenuto di un file dopo
che stato aperto; WRITE per scrivere un file sequenzialmente partendo dallinizio; APPEND per
scrivere un file in coda al contenuto gi esistente; SEEK per accedere ad una specifica informazione
in maniera casuale e non sequenziale; GET ATTRIBUTES per restituire gli attributi del file;
RENAME per cambiare il nome del file.
I file sono poi raccolti in cartelle che prendono il nome di Directory e che hanno la funzione di
raggruppare i file per funzionalit. Se ci sono pi utenti, ogni utente ha la propria area riservata (e
protetta dagli altri utenti) per la memorizzazione dei suoi dati, e tale area identificata dalla
directory dellutente. E possibile organizzare il file system con una struttura gerarchica delle
directory. A titolo desempio la directory di un utente al proprio interno potr avere unaltra
directory per i file di testo, una per i videogiochi ed una per i fogli excel, la directory dei file di testo
a sua volta potr al suo interno contenere altre directory come quella dei file di ricerca, dei file delle
lettere allamministratore e cosi via. Dal punto di vista del S.O. una directory solo un tipo di file.
Ciascun file allinterno di una gerarchia di directory caratterizzato da un percorso (path) che
bisogna utilizzare per accedere al file, il path pu essere assoluto o relativo, nel primo caso si deve
esplicitare tutto il percorso dallorigine della struttura gerarchica delle directory (root) al file, nel
secondo basta solo il nome del file, ma si pu usare solo quando lutente posizionato nella stessa
directory che contiene il file. Le principali operazioni che possibile eseguire sulle directory sono:
MAKE (o MD) per creare una directory; REMOVE (o RD) per cancellare una directory; RENAME
per cambiare il nome della directory; CHANGE (o CD) per cambiare la directory corrente; DIR (o
LIST) per elencare il contenuto di una directory.

24

Giuseppe M.L. Sarn Elementi dinformatica di base

Bibliografia
Informatica di base D.P. Curtin et al. McGraw-Hill
I moderni sistemi operativi A. S. Tanenbaum Prentic Hall International
Architettura dei Computer A. S. Tanenbaum Prentic Hall International
Reti di Computer A. S. Tanenbaum Prentic Hall International

25