UNIVERSITA’ DEGLI STUDI ROMA TRE
DIPARTIMENTO DI FISICA “E. AMALDI”
Laboratorio di
Programmazione e Calcolo
6 crediti
a cura di
Severino Bussino
Anno Accademico 2016-17
Docenti del Corso
Severino Bussino
Dipartimento di Matematica e Fisica
Stanza 36 - tel. (06 5733) 7285
[email protected]
Alessandro Di Cicco
Dipartimento di Matematica e Fisica
[email protected]
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
2
Pagina Web del Corso
http://webusers.fis.uniroma3.it/~bussino/Lab_Prog_Calc.html
Alcuni aspetti della Pagina Web devono
ancora essere completati
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
3
Programma del Corso (1)
Elementi di programmazione ad oggetti (linguaggio C++)
in ambiente Linux
circa 20 ore di lezione frontale e 30 ore di laboratorio
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
4
Materiale Didattico per il Corso (1)
Voi stessi durante le esercitazioni in Laboratorio
“... Sofia ricordava bene quelle volte in cui sua madre o i
professori avevano cercato di insegnarle qualcosa per cui
lei non nutriva il benché minimo interesse. Invece, quando
si era impegnata in prima persona, allora sì che aveva
veramente «imparato»! A volte succedeva che di colpo
capisse qualcosa, ed era proprio questo che veniva
chiamato «sapere».”
(Jostein Gaarder, “Il mondo di Sofia”)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
5
Materiale Didattico per il Corso (2)
Trasparenze delle Lezioni
(disponibili sul sito web)
Lippman, Lajoie, Moo
C++ primer
Addison Wesley 2012 (5a ed.)
Anche in italiano (3a ed. - senza Moo tra gli autori)
Barone, Marinari, Organtini, Ricci-Tersenghi
Programmazione Scientifica
Pearson Education 2006
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
6
Valutazione del Corso
• Il voto del Corso si puo’ ottenere con una valutazione “in
itinere” (come descritto in seguito) oppure superando un
esame a febbraio o a giugno (per chi non ha raggiunto la
sufficienza, per chi non e’ soddisfatto del voto ottenuto, per
chi e’ stato costretto a numerose assenze, ecc.)
• Chi vuole puo’ superare l’intero corso (6 crediti) con un unico
esame a partire da febbraio (una prova pratica ed una prova
orale)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
7
0) Struttura del Corso
8
Introduzione alla programmazione ad oggetti
Elementi di programmazione in linguaggio C++
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
9
Alcuni esempi
1. ATLAS
(LHC al Cern)
1.000.000 canali di lettura
bunch-crossing ogni 25 ns
40 Tbyte/sec
100 Mb/sec
Cluster di circa 1000 CPU (PC)
Software specifico per il trigger di III livello
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
10
Alcuni esempi (segue)
2. ARGO-YBJ
(Raggi Cosmici –Tibet)
circa 1 Tbyte/mese di dati da memorizzare
dati disponibili per l’analisi
Cluster di PC per la gestione dello spazio disco
Software dedicato per l’accesso ai dati e l’analisi
3. GRID
(Calcolo su rete geografica)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
11
Alcuni esempi (segue)
4. Progetto genoma e studi di Biologia molecolare (www.embnet.org)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
12
Alcuni esempi (segue)
Altre applicazioni:
1. Telefonini cellulari
2. Bancomat
3. Reti di Trasporto
(ferrovie, metropolitane, …)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
13
Scopo del corso (I)
•Familiarizzazione con l'uso del personal computer in ambiente
Unix (useremo il sistema Linux)
•Acquisizione dei principi di base per la programmazione in
linguaggio C ++
•Acquisizione dei principali elementi
programmazione in linguaggio C (C++)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
sintattici
per
la
14
Scopo del corso (II)
“Idee” e non aspetti tecnici
=
“Architetti” e non
“Esperti del Linguaggio C/C++”
Insegnare a progettare un approccio al Calcolo
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
15
Programma delle Esercitazioni di Laboratorio
Le Esercitazioni inizieranno il 10 ottobre (gr. A e B)
• Introduzione
(1 esercitazione in gruppi di due)
• Programmazione: linguaggio C e C++
(8 esercitazioni in gruppi di due studenti)
• (Simulazione della) Esercitazione individuale
(a gennaio)
• 1 Esercitazione individuale (a gennaio)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
16
Organizzazione delle Esercitazioni di Laboratorio (1)
• Gruppi di 2 persone (la stessa coppia per tutto il corso)
• Due sessioni di laboratorio
- Lunedi’
- Mercoledi’
14.30 – 17.30
14.30 – 17.30
Gruppo A
Gruppo B
• Scegliere il giorno del laboratorio e mantenere la scelta
per tutto il corso (eccezioni sono possibili per la coppia,
compatibilmente con lo spazio disponibile in laboratorio,
avvisando con anticipo)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
17
Organizzazione delle Esercitazioni di Laboratorio (2)
• Variazioni al Calendario usuale
10 ottobre (gr. A: ore 14-15:45; gr. B ore 16-17:45)
31 ottobre e 2 novembre non ci saranno esercitazioni
[19 dicembre e 21 dicembre non ci saranno esercitazioni]
• 1 esercitazione individuale (senza valutazione - simulazione)
9 gennaio - 10 gennaio - 11 gennaio
(date da confermare)
• 1 esercitazione individuale (con valutazione)
16 gennaio - 17 gennaio - 18 gennaio
(date da confermare)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
18
Orario e Programma dettagliato
delle lezioni e delle esercitazioni
sulla pagina web del corso
http://webusers.fis.uniroma3.it/~bussino/Lab_Prog_Calc.html
Ultima lezione in Aula nel I semestre:
(presumibilmente) giovedi’ 1 dicembre
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
19
Valutazione del Corso
Il voto in trentesimi viene attribuito principalmente in base al lavoro svolto
durante le esercitazioni:
•
Le prime 3 (?) esercitazioni non vengono valutate.
•
Le altre 5 esercitazioni (?) valgono 4 punti e si considerano solo le 4 migliori (totale
16 punti). Il voto è individuale anche se il programma viene scritto in gruppi di due.
•
L’esercitazione individuale vale 10 punti
16 gennaio
-
17 gennaio -
(date da confermare)
•
18 gennaio
I rimanenti 4 punti vengono assegnati in base ad un test sugli argomenti trattati nelle
lezioni.
Il test si svolgerà a fine corso, ad esempio il 25 gennaio in Aula IV (?) ore 14:30
(data, ora e aula da confermare)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
20
• La partecipazione alle esercitazioni è obbligatoria.
• Gli studenti lavoratori che avessero problemi di orario sono pregati
di farlo presente il prima possibile, per concordare una soluzione.
• Gli esercitatori valutano i programmi nelle condizioni in cui si
trovano dopo le 3 ore di esercitazione.
• Gli studenti che non avranno ottenuto la sufficienza con questo tipo
di valutazione potranno sostenere l'esame in modo tradizionale,
con una prova pratica (realizzazione di un programma) ed una prova
orale.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
21
0)
Struttura del Corso
1)
Trattamento dell'informazione
Elementi di Architettura di un Computer
2)
Sistemi operativi
Come opera il calcolatore?
•
Supponiamo di volere calcolare X, per uno o più possibili valori di
Y, in base all'espressione algebrica
X = 5 + 0.2 x Y
•
Riscriviamo questa espressione come
X = 5 + 0.2 * Y
(in tutti i linguaggi di programmazione l'operatore di
moltiplicazione si indica col simbolo * per non confonderlo con la
lettera x)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
23
Esempio: X = 5 + 0.2 * Y
Questa espressione è composta di due parti:
1.
A destra troviamo tutte le informazioni necessarie per
elaborare i dati noti, siano essi costanti (5, 0.2) o variabili
(Y), ovvero una sequenza di operandi (i dati noti) e operatori
(+,*) che costituisce la sequenza di ingresso (input);
2.
A sinistra troviamo il risultato cercato (X) che dovrà essere
conservato e inviato in uscita (output).
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
24
Esempio: X = 5 + 0.2*Y
Per calcolare X sono necessari i seguenti passaggi:
1.
Lettura dei possibili valori della variabile Y
2.
Moltiplicazione di 0.2 per il valore assunto da Y
3.
Memorizzazione del risultato di 0.2*Y
4.
Somma della costante 5 al risultato precedente
5.
Memorizzazione nella variabile X del risultato
6.
Eventuale invio in uscita del valore assunto da X
7.
Eventuale ripetizione della procedura per un altro valore di Y
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
25
Funzioni essenziali
• Lettura (acquisizione dei dati, ovvero dei valori
numerici e della successione di operatori da applicare)
• Calcolo (applicazione degli operatori ai dati nella
successione predeterminata)
• Scrittura
risultato)
(memorizzazione
e
comunicazione
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
del
26
Gestione dell'informazione
• La lettura dei dati e delle istruzioni da opportune
periferiche (tastiera, disco, nastro, linea di trasmissione...)
avviene tramite i canali di input, che li trasferiscono in
memoria, dove vengono conservati
• L'interpretazione dei dati e delle istruzioni e l'esecuzione
del calcolo sono gestite dai circuiti logici e di calcolo
dell'unità centrale (CPU)
• La comunicazione del risultato trasferito dalla CPU alla
memoria, è affidata ai canali di output, che lo trascrivono su
opportune periferiche (terminale video, disco etc...)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
27
Hardware e Software
• L'insieme
delle
parti
fisiche
(meccanismi,
elettromeccanismi, circuiti elettrici ed elettronici) che
gestiscono l'informazione (periferiche, memorie, CPU),
costituisce l'hardware del calcolatore;
• I dati, i programmi di gestione della macchina ed i
programmi applicativi, non sono parte del calcolatore ma
vi sono immessi di volta in volta, a seconda delle necessità
e finalità. Questi costituiscono il software.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
28
Componenti principali
dell’Hardware
• Processore
• Memoria
• Dispositivi di I/O (input/output)
• Canali di comunicazione
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
29
Il processore
• In un sistema tipico c'è un unico processore, la CPU
(Central Processing Unit).
• La CPU è la parte del sistema che esegue i programmi
effettuando operazioni aritmetiche e logiche sui dati.
• Si tratta dell'unica componente del sistema in grado di
produrre nuove informazioni combinando e modificando le
informazioni esistenti.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
30
La memoria
• La memoria è un componente passivo che si limita ad
accumulare le informazioni fin tanto che non vengono richieste
da altre parti del sistema (processore, dispositivi di I/O).
• Ad una informazione in memoria si accede mediante il suo
indirizzo. Possiamo visualizzare la memoria come un vettore M:
– una richiesta del processore alla memoria può essere ad esempio
"mandami l'informazione dalla locazione M[1000]"
– la richiesta del controller di un disco invece potrebbe essere
"copia questo blocco di dati dalla locazione M[0] alla locazione
M[256]"
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
31
I dispositivi di I/O
• I dispositivi di I/O trasferiscono l'informazione, senza
alterarla, tra il mondo esterno ed una o più componenti
interne.
• Possono essere memorie secondarie (dischi, nastri...) o
dispositivi per comunicare direttamente con l'utente
(schermo, tastiera, mouse...).
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
32
I canali di comunicazione
• I canali di comunicazione tra le diverse parti del sistema
possono essere semplici collegamenti tra due dispositivi o
che
interconnettono
varie
interruttori
(switch)
componenti, permettendo però solo la comunicazione di due
di loro per volta.
• Nei Personal Computer di solito c'è un unico canale di
comunicazione (bus) che collega tra di loro tutte le
componenti principali del sistema. Si tratta di uno switch e
quindi, per esempio, quando questo è configurato per un
trasferimento di I/O non permette al processore di
accedere la memoria, rallentandone l'operazione.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
33
Operazioni del processore (1)
• Un processore opera mediante un ciclo di caricamentodecodifica-esecuzione delle istruzioni.
• Nella prima fase del ciclo il processore legge dal registro di
memoria PC (Program Counter) l'indirizzo dell'istruzione da
caricare e incrementa il contenuto di PC.
• Nella fase di decodifica il processore salva l'informazione
recuperata dalla memoria, un'istruzione in linguaggio
macchina codificata in un numero binario, in un altro
registro: IR (Instruction Register).
• Infine il processore esegue l'istruzione contenuta in IR.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
34
Operazioni del processore (2)
• La fase di esecuzione può richiedere ulteriori accessi alla
memoria, per caricare e/o salvare dati. Alla fine di questa fase
il processore ripete il ciclo caricando l'istruzione successiva.
• Le
–
–
–
istruzioni possono essere di tre tipi:
Operazioni logico-aritmetiche
Trasferimenti di dati
Controllo
• Le istruzioni di controllo modificano l'ordine di esecuzione delle
altre istruzioni agendo sugli indirizzi contenuti nel registro PC.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
35
Tempo di esecuzione (1)
• Il tempo necessario per caricare-decodificare-eseguire
un'istruzione dipende dal processore e dalla complessità
dell'istruzione.
• L'unità di misura elementare del tempo è il ciclo di clock: la
logica che dirige le operazioni del processore è controllata da
un circuito esterno che genera un'onda quadra con un periodo
fissato.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
36
Tempo di esecuzione (2)
• Il tempo di esecuzione di un'istruzione dipenderà quindi
dal numero di cicli di clock necessari per essa (e dalla
frequenza del clock).
• Il tempo di processamento dipende però anche dalla
velocità di accesso alla memoria ovvero da come questa è
organizzata e dalla velocità di comunicazione.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
37
Le memorie
• Una memoria è caratterizzata dalla sua funzione, dalle sue
dimensioni e dal suo tempo di risposta.
• Le operazioni effettuabili su una memoria sono operazioni di
lettura o di scrittura:
– Memorie che consentano entrambe le operazioni sono dette
RAM (Random Access Memory).
– Memorie accessibili solo in lettura sono dette ROM (Read Only
Memory) o PROM (Programmable Read Only Memory) a seconda
che siano scritte dal costruttore o in una programmazione
successiva.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
38
Dimensioni delle memorie
• L'unità elementare di informazione è il bit (b), che può
assumere due soli valori. La capacità di un chip di memoria
viene generalmente indicata in bit, quella di tutta la memoria
del sistema in byte (B) o parole, corrispondenti a 8 bit.
• Le memorie dei sistemi attuali vanno da varie decine di
milioni di byte (MB) a svariati miliardi di byte (GB).
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
39
Prestazioni delle memorie
• Le prestazioni di un sistema di memorie sono
definite mediante due misure:
– Il tempo di accesso vero e proprio, determinato
principalmente dall'organizzazione dei chip usati, ma
anche dalla ricerca dell'informazioni sui vari chip e
dalle prestazioni del bus.
– Il tempo minimo che deve intercorrere tra due
richieste successive, generalmente superiore al
tempo di accesso.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
40
Organizzazione di un sistema di
memorie
• Anche se e' possibile accedere alla RAM in un ordine
qualsiasi, si osserva che tanto le istruzioni di un programma
quanto i dati a cui si accede sono generalmente raggruppati
un una stessa area di memoria.
• Ciò permette di organizzare la memoria ad albero, ponendo
poche memorie molto veloci vicino al processore (cache) ed
effettuando traferimenti di blocchi di dati dalle memorie più
lente alla cache ogni qualvolta il dato richiesto non sia
disponibile nella cache.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
41
Comunicazioni sul bus
• La comunicazione su un bus avviene mediante transazioni
discrete. Ogni transazione ha un trasmettitore ed un
ricettore.
• Per iniziare una transazione un modulo del sistema (CPU,
controller di un disco...) deve acquisire almeno
temporaneamente il controllo del bus.
• Sono quindi necessari dei protocolli di arbitraggio che
consentano ai vari dispositivi di accordarsi su chi debba avere
il controllo per primo.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
42
Prestazioni di un bus
• Le prestazioni du un bus sono caratterizzate da due
quantità:
– Il tempo di trasmissione, ovvero il ritardo tra l'invio e la
ricezione dell'informazione.
– La larghezza di banda, ovvero la quantità di informazioni
che possono essere trasmesse nell'unità di tempo (unità di
misura: bits per second, bps). Questa dipende dal numero
di bit trasmissibili in parallelo in una transazione e dal
numero di transazioni effettuabili nell'unità di tempo.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
43
0)
Struttura del Corso
1)
Trattamento dell'informazione
Elementi di Architettura di un Computer
2)
Sistemi operativi
Introduzione
• Il sistema operativo è un programma dedicato alla gestione
del calcolatore.
• All'accensione di un calcolatore viene eseguito un programma
di base memorizzato su una memoria ROM, il BIOS.
• Al termine dell'esecuzione del BIOS viene caricato in
memoria ed eseguito automaticamente il programma che
inizia alla traccia 0 del disco di avvio, che è il sistema
operativo.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
45
Compiti del sistema operativo
• Gestione dell'interfaccia utente
• Controllo dell'esecuzione dei programmi (processi)
• Gestione della memoria
• Gestione delle periferiche
• Gestione del file-system
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
46
Gestione dell'interfaccia utente
• Il sistema operativo esegue un ciclo infinito nel
quale attende che gli vengano inviati comandi
dall'utente, attraverso la tastiera o il mouse.
• Il sistema decodifica ogni comando e se lo
riconosce come valido manda in esecuzione un
programma che esegua l'azione richiesta.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
47
Controllo dell'esecuzione dei programmi
• Un processo è un programma in esecuzione: include il
programma eseguibile, i dati che questo sta usando etc…
• Un processo può trovarsi in due stati: in esecuzione o
sospeso. Nel secondo caso tutti i suoi dati, il program
counter etc... sono salvati e verranno ricaricati in memoria
quando viene ripristinato lo stato di esecuzione.
• Il controllo dei processi è responsabile di creare processi,
inviarli in esecuzione, sincronizzarli tra di loro, gestirne le
priorità.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
48
Gestione della memoria
• Ogni programma in esecuzione richiede al sistema di
riservargli una certa quantità di memoria.
• Il sistema alloca quando possibile un'area di memoria al
programma che la richieda, ma la memoria non è illimitata
e quindi il sistema deve conoscere il grado di occupazione
della memoria ed eventualmente negarne l'uso a
programmi che ne richiedano troppa sospendendoli in
attesa che si liberi la memoria richiesta.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
49
Gestione delle periferiche
• Il sistema operativo nasconde all'utente le complessità dei
dispositivi periferici e le loro caratteristiche hardware,
consentendovi l'accesso tramite chiamate semplici.
• Inoltre il sistema identifica nei vari processi in esecuzione
le richieste di accesso a periferiche e le gestisce in modo
mutualmente esclusivo, per evitare che due processi
tentino di scrivere contemporaneamente sullo stesso disco
o altro dispositivo.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
50
Gestione del file-system
• Il sistema operativo organizza la memorizzazione
su disco in raccolte organizzate di dati (file).
• Il file-system è responsabile
– di stabilire la relazione tra i file logici e
l'hardware (tracce del disco)
– di fornire uno schema di nomi che consenta di far
riferimento ai file
– di fornire un sistema di protezione dei file,
specialmente in ambienti multi-utente.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
51
Sistemi operativi
• Storicamente ogni costruttore di calcolatori ha scritto un
proprio sistema operativo (firmware) che veniva distribuito
insieme alla macchina.
• Con l'uniformarsi delle architetture e con l'avvento dei
Personal Computer, la varietà di sistemi operativi è andata
riducendosi.
• Attualmente Windows è il sistema largamente più diffuso,
mentre Unix è quello più utilizzato negli ambienti scientifici.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
52
Windows
• È stato introdotto a fini commerciali ed è caratterizzato
da una particolare semplificazione dell'interfaccia utente.
• Per la qualità e quantità di software sviluppato in questo
ambiente è senza dubbio il sistema più idoneo per l'utilizzo
di applicazioni quali word processing, uso di database,
indirizzamento di periferiche standard, scrittura di lucidi
per presentazioni e lezioni …
• Non è ottimizzato per l'uso in rete e non supporta più di un
utente: WindowsNT e Windows2000 sono nati per queste
nuove funzioni (e sono poi evoluti in Windows XP, Windows
7 e 8)
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
53
Unix
• Sviluppato in ambienti scientifici è ottimizzato per usi non
comuni e per l'utilizzo in rete dei calcolatori oltre che per
l'uso di uno stesso calcolatore da parte di più utenti.
• Esistono dei sistemi Unix freeware quali Linux (che a sua
volta esiste in varie distribuzioni: RedHat, Slackware, Suse...)
o FreeBSD dei quali sono disponibili anche i codici sorgente
(open source).
• Le varie distribuzioni forniscono delle interfacce utente
semplificate, ma non sono standardizzate, anche se GNOME e
KDE si stanno affermando come interfacce standard
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
54
Il file-system di Windows
• Il file-system è il sistema che gestisce non solo la collocazione dei
files sul disco rigido ma più in generale tutti i dischi e periferiche di
un computer.
• Sotto Windows ogni dispositivo hardware è associato ad una diversa
unità logica ed è rappresentato nel pannello di controllo con
un'icona: in particolare due dischi appaiono come due icone distinte.
• La maggior parte di voi ha familiarita’ con questo sistema operativo,
che non verra’ usato nell’ambito di questo corso.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
55
Il file-system di Unix
• Il file-system viene visto come un albero di directory.
• Tutti i dispositivi sono visti nello stesso modo dal sistema
operativo, ovvero come file.
• Ogni file può essere montato ( comando mount ) sul filesystem e quindi associato ad un particolare punto
dell'albero logico.
• La gestione dei file sotto Unix sara’ oggetto della prima
esercitazione.
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
56
Linux
Esistono varie distribuzioni (anche in versione Live)
(RedHat, Scientific [6.3], SuSe, Ubuntu, Fedora, etc.)
Pagina Web della distribuzione Fedora:
http://fedoraproject.org
Pagina Web della distribuzione Scientific Linux :
http://www.scientificlinux.org
Pagina Web della distribuzione Ubuntu :
http://www.ubuntu.com
Per l’accesso ai repository ftp (se viene richiesta una passsword):
username:
password:
anonymous
il proprio indirizzo E-Mail
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
57
Laboratorio di Programmazione e
Calcolo - AA 2016-17 - lezione 1
58