03 – Sistemi Operativi e Reti

63
03 – Sistemi Operativi e Reti Sperimentazioni di Fisica I – mod A Introduzione alla Scienza dei calcolatori per astronomi

Transcript of 03 – Sistemi Operativi e Reti

Page 1: 03 – Sistemi Operativi e Reti

03 – Sistemi Operativi e RetiSperimentazioni di Fisica I – mod A

Introduzione alla Scienza dei calcolatori per astronomi

Page 2: 03 – Sistemi Operativi e Reti

● Come creare un account sui computer del Paolotti:●

Laboratorio: Accesso ai computerLaboratorio: Accesso ai computer

– Riceverete sulle mail indicateusername e password per l’accesso.

– Se necessario, potete chiedere support scrivendo a [email protected]

Page 3: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

Apriamo un terminale

Page 4: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

Apriamo un terminale

Page 5: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

● – Nei sistemi Windows è necessario installare un server X11. Usiamo il programma mobaXterm

Da Windows

Page 6: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

● – Scarichiamo mobaXterm

Da Windows

Page 7: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

– Scarichiamo mobaXterm

Da Windows

Page 8: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

– Scarichiamo mobaXtermDa Windows

Page 9: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

– Clicchiamo sul file .exe (eseguibile)

Da Windows

Page 10: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

– Start local terminalDa Windows

Page 11: 03 – Sistemi Operativi e Reti

Accesso remoto ai computer dell’aula P104Accesso remoto ai computer dell’aula P104

– Connettiamoci ai computer della P104Da Windows

Page 12: 03 – Sistemi Operativi e Reti

La CPU esegue le istruzioni tramite tre operazioni di base: Fetch: lettura. Decode: decodifica. Execute: esecuzione.

Un programma viene eseguito applicando ad ogni istruzione la sequenza fetch-decode-execute.

Nella mente del computer...Nella mente del computer...

Page 13: 03 – Sistemi Operativi e Reti

Nella mente del computer...Nella mente del computer...

PC=Program Counter IR=Instruction Register MAR=Memory Address RegisterMDR=Memory Data Register Registri generali

3+7=?

Page 14: 03 – Sistemi Operativi e Reti

19501950Auto di lusso nel 1950...

Page 15: 03 – Sistemi Operativi e Reti

19501950Il costo di un caffe’ al bar era 0.15 $

Page 16: 03 – Sistemi Operativi e Reti

19501950La produzione cinamatrografica piu’ costosa e’ stata …………. dal costo di $10,000,000

Page 17: 03 – Sistemi Operativi e Reti

19501950La produzione cinamatrografica piu’ costosa e’ stata Cenerentola dal costo di $10,000,000

Page 18: 03 – Sistemi Operativi e Reti

Anni ‘50Anni ‘50

DYSEAC

Page 19: 03 – Sistemi Operativi e Reti

I computer degli anni ‘50 erano poco efficenti e flessibili.

– Per eseguire un programma bisognava allestire il computer: Inserire le schede perforate nel lettore, spostare i selettori, etc. – L’esecuzione di un programma – detta `job’– era considerata un vero e proprio mestiere. – Il computer veniva usato esclusavimente da un utente per un periodo di tempo limitato

Cenni storici: il computer negli anni ‘50Cenni storici: il computer negli anni ‘50

Page 20: 03 – Sistemi Operativi e Reti

I sistemi operativi nascono per rendere piu’ efficente l’uso dei computer.– migliorano la preparazione dei programmi ed ottimizzano la transizione ad utenti successivi. – Questa funzione veniva svolta da un operatore.

Batch processing.– L’utente passava il proprio programma ad un operatore – L’operatore caricava il programma nella macchina e lo metteva in coda di esecuzione.– Una volta terminato il programma, l’operatore caricava il programma successivo.

Cenni storiciCenni storici

Page 21: 03 – Sistemi Operativi e Reti

– Il batch processing era adeguato per eseguire alcuni tipi di programmi, ma non per quelli che richiedevano l’interzione con l’utente. Ad esempio andava bene per calcolare le paghe, ma non per i sistemi di prenotazioni.

– Furono cosi’ sviluppati i primi sistemi operativi interattivi. Questa innovazione fu possibile grazie alla velocita’ crescente dei computer che adesso permetteva un utilizzo in ‘tempo reale’ da parte di molti utenti.

– I sistemi multi-tasking (un singolo utente esegue diversi programmi) e multi-utente (diversi utenti utilizzano lo stesso computer) sono proprieta’ importanti dei sistemi operativi moderni.

Cenni storiciCenni storici

Page 22: 03 – Sistemi Operativi e Reti

Curiosita’: la gestione del tempo al telescopioCuriosita’: la gestione del tempo al telescopio

Page 23: 03 – Sistemi Operativi e Reti

Curiosita’: la gestione del tempo al telescopioCuriosita’: la gestione del tempo al telescopio

Page 24: 03 – Sistemi Operativi e Reti

Curiosita’: la gestione del tempo al telescopioCuriosita’: la gestione del tempo al telescopio

Page 25: 03 – Sistemi Operativi e Reti

Cos’e’ un sistema operativoCos’e’ un sistema operativo

Il sistema operativo fa da tramite tra l’utente e gli elementi del calcolatore. E’ costituito da un insieme di programmi e dati (software).

Il sistema operativo:

– Esegue i programmi ottimizzando i tempi;

– Gestisce l’uso della memoria del sistema;

– Gestisce l’accesso ai dispositivi di input e output;

– Controlla l’accesso ai file;

– Controlla l’accesso al sistema;

– Fornisce strumenti per il monitoraggio dell’uso del sistema.

Page 26: 03 – Sistemi Operativi e Reti

Sistemi Operativi: WindowsSistemi Operativi: Windows

Windows 1.0 fu distribuito per la prima volta il 30 Luglio 1985.La realise piu’ recente risale al 2015 (Windows 10).Ultima versione: 20H1, Maggio 2020

– Multi- task– Multi- utente– Interfaccia grafica

– Proprietario e apagamento.

Esercizio.Per monitorare l’attivita’ del SO Microsoft Windows esegui il programma ‘task manager’.

Selezionando la ‘process tab’ nella ‘task manager window’ e’ possibile visualizzare i processi attivi.

Page 27: 03 – Sistemi Operativi e Reti

Sistemi Operativi: UnixSistemi Operativi: UnixSviluppato nel 1969 nei ‘Bells Laboratories’Si e’ differenziato nei vari flavours (Solaris, HP-UX, AIX, ...).– Multi- task– Multi- utente– Interfaccia grafica (X Windows)

E’ alla base di altri S.O.famosi come MacSO,il sistema operativo deicomputer della Apple.

Page 28: 03 – Sistemi Operativi e Reti

Sistemi Operativi: MacOSSistemi Operativi: MacOSSerie di S.O. basati su unix e sviluppati dalla Apple a partire dal 2001Successore del Mac OS9 sviluppato a partire dal 1984 (ultima release 10.14 Mojave, risale al 2018).– Multi- task– Multi- utente– Interfaccia grafica

Page 29: 03 – Sistemi Operativi e Reti

Sistemi Operativi: LinuxSistemi Operativi: LinuxFamiglia di S.O. ispirati a Unix che usano il kernel** Linux.Fu inizialmente sviluppato da Linus Torvald nel 1981 mentre era studente alla University of Helsinki.

Linux fu sviluppato senza fini di lucro. E’ un prodotto non-proprietario e il codice sorgente e la documentazione relativa sono disponibili gratuitamente.

** Il kernel di un SO e’ il software avente il compito di fornire ai processi in esecuzione sul computer un accesso sicuro e controllato all'hardware.

Esercizio.Per monitorare l’attivita’ del SO digita top da terminale

Page 30: 03 – Sistemi Operativi e Reti

LinuxLinux– E’ multi-tasking e multi-utente ed usa un interfaccia grafica basata su X11

– Esistono diverse distribuzioni che possono essere scaricate liberamente(Ubuntu, Fedora, SUSE, Debian, ecc.).

Linux fu ideato da Linus Torvald nel 1991.

Richard Stallman diede avvio al progetto GNU nel 1983.

Page 31: 03 – Sistemi Operativi e Reti

La shellLa shell La shell (‘l’interprete dei comandi’) e’ la parte di sistema operativo che permette agli utenti di interagire con il sistema stesso, impartendo comandi e richiedendo l'avvio di altri programmi. Definisce l’interfaccia tra gli utenti ed il sistema operativo.

Page 32: 03 – Sistemi Operativi e Reti

Una shell testuale è un programma dotato di un’ interfaccia a riga di comando, che viene eseguito all'interno di un terminale di testo. L'utente digita un comando, ovvero richiede l'esecuzione di un programma, e il programma eseguito può interagire con l'utente e/o mostrare dati sul terminale.

La shell grafica e’ piu’ ‘user friendly’. Il computer e il suo contenuto non sono più rappresentati da linee di testo, ma da icone e finestre che permettono di fare operazioni complesse con un clic del mouse.

La shellLa shell

Page 33: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: processiL’esecuzione dei programmi: processi La distinzione tra programma e processo e’ uno dei concetti fondamentali deisistemi operativi moderni. - il programma e’ l’insieme statico delle istruzioni eseguibili da un computer.- il processo e’ l’attivita’ di esecuzione di un programma.

Nota la distizione tra l’oggetto (il programma) e l’attivita’ eseguita dall’oggetto (processo)

Page 34: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: il bootL’esecuzione dei programmi: il boot

Un computer non puo’ funzionare senza avere prima caricato dei programmi, Ma un computer deve essere in funzione per caricare dei programmi.

Un paradosso !?

Page 35: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: il bootL’esecuzione dei programmi: il bootAll’accensione di un computer, un programma di base viene caricato da una memoria non volatile (read only memory – ROM).

Questo programma e’ detto firmware o BIOS – Basic Input/Output System– (nel caso dei PC) e provvede a:– Effettuare una diagnostica dell’hardware (POST: Power On Self Test);

– Caricare delle istruzioni che risiedono in una zona riservata dell’hard-disk le quali a loro volta provvedono ad avviare e ad eseguire il sistema operativo a cui poi passano il controllo.

Questo processo e’ detto bootstrapping (in gergo si usa l’espressione ‘fare il boot’)

Page 36: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: il bootL’esecuzione dei programmi: il boot

Fase I. Il computer esegue il programma ‘boot loader’ che si trova nella memoria.Il sistema operativo (S.O.) e’ nel disco.

Fase II. Il programma boot loader trasferisce il S.O. nella memoria principale e passa al S.O. il controllo.

Page 37: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: processiL’esecuzione dei programmi: processi

il processo e’ l’attivita’ di esecuzione di un programma.Lo stato attuale dell’attivita’ e’ detto stato del processo. Lo stato del processo comprende la posizione corrente dell’istruzione in esecuzione e i valori di tutti i registri e delle celle di memoria associate.

Ad uno stesso programma possono essere associati molti processi.

Esempio: due utenti di un sistema multi-taskingpossono modificare contemporaneamentedocumenti distinti.

– il programma e’ lo stesso (ad esempio un word processor).

– I processi sono distinti (uno per ciascunaistanza del programma/documento).

Page 38: 03 – Sistemi Operativi e Reti

L’esecuzione dei programmi: multi-taskingL’esecuzione dei programmi: multi-taskingUn sistema operativo multitasking permette di eseguire piu’ programmi contemporaneamente.

Questo avviene tramite il time-sharing:– Il S.O. assegna un tempo definito (time slot) per l’utilizzo della CPU da parte di un processo;– La CPU viene utilizzata, a turno, ai vari processi in esecuzione.– Uno scheduler effettua il controllo dei processi, secondo l’uso di criteri che comprendono priorita’ ed interruzioni. Questi processi dipendono dal S.O. utilizzato.

Processi simultanei. Siccome il time slot e’ tipicamente molto breve (~10ms), l’utente ha l’illusione che i programmi eseguano simultaneamente.

Lo scheduler mantiene un blocco di dati nella RAM detto tabella dei processi.

Affinche’ il time-sharing possa funzionare deve essere possibile sospendere un processo e poi farlo ripartire.

Serve quindi preservare lo stato di un processo. Questo meccanismo e’ presente nel S.O. e nelle istruzioni della CPU.

Page 39: 03 – Sistemi Operativi e Reti

Multi-tasking: esempio 1Multi-tasking: esempio 1

A ciascun processo viene dedicato un time slot e poi l’esecuzione passa ad un altro processo (secondo criteri che variano a seconda del S.O.).

Alcuni fattori esterni possono modificare l’esecuzione dei programmi...

Page 40: 03 – Sistemi Operativi e Reti

Multi-tasking: esempio 2Multi-tasking: esempio 2

Ad esempio, l’andamento dell’esecuzione dei processi puo’ essere modificato da un ‘interrupt’, ovvero un evento che richiede l’esecuzione di un particolare processo.

Nel quarto time slot dovrebbe eseguire un Processo A, ma un ‘interrupt’ fa eseguire un processo B.

Page 41: 03 – Sistemi Operativi e Reti

Gli stati di un processoGli stati di un processo

Gli stati in cui un processo si può trovare sono:

Esecuzione (running): il processo ha il controllo di una CPU;Pronto (ready): il processo è pronto ad essere eseguito, ed è in attesa che lo scheduler lo metta in esecuzione;Sospeso o bloccato (suspended o blocked): il processo ha eseguito una chiamata di sistema ed è fermo in attesa del risultato;

I diversi processi che sono attivi in un S.O. multitasking possono utilizzare il processore per un periodo limitato di tempo.

I processi vengono interrotti, messi in pausa e richiamati. 

Page 42: 03 – Sistemi Operativi e Reti

Nuclei Galattici Attivi (AGN)

Page 43: 03 – Sistemi Operativi e Reti

La gestione della memoriaLa gestione della memoria

La RAM e’ una delle risorse piu’ importanti del computer. I vari processi di un S.O. multitasking competono per l’utilizzo della memoria.

Il sistema operativo svolge tre ruoli principali:– assegna memoria ai processi attivi; – libera la memoria che non e’ piu’ utilizzata (ad esempio al termine di un processo);– gestisce la memoria virtuale.

Nei principali sistemi operativi memoria viene gestita in unita’ chiamate ‘pagine’.

Page 44: 03 – Sistemi Operativi e Reti

La memoria virtualeLa memoria virtuale

In alcuni casi la memoria necessaria e’ maggiore dello spazio disponibile nella RAM installata nel sistema.

Allora il S.O. crea l’illusione che la memoria disponibile abbia dimensioni superiori a quelle della RAM.

Questa memoria ‘virtuale’ e’ contigua alla RAM.

Per far questo il S.O. trasferisce continuamente programmi e dati tra la RAM ed il disco.

Page 45: 03 – Sistemi Operativi e Reti

Esempio: in un sistema con 4GB di RAM il S.O. puo’ creare l’illusione che siano disponibili 8 GB di memoria.

La parte di memoria che non trova spazio nella RAM viene mappata sulla memoria secondaria.

Se necessario il S.O. scrive parti di memoria sull’hard disk (swap). Se pero’ la richiesta di memoria e’ frequente lo swapping rallenta significativamente il processo.

Nella CPU il programma lavora come se avesse a disposizione uno spazio di memoria

pari a 8GB.

Se la memoria è insufficiente, le zone di memoria attualmente in uso (suddivise

in pagine di dimensione prefissata) sono allocate nella RAM mentre le pagine inattive

sono salvate in un file gestito dal sistema operativo sull’ hard disk

La memoria virtualeLa memoria virtuale

Page 46: 03 – Sistemi Operativi e Reti

Gestione dei dispositivi di input ed output (I/O).Gestione dei dispositivi di input ed output (I/O).

Una delle funzioni principali del S.O. consiste nella gestione dei dispositivi di I/O.

La gestione avviene tramite dei software chiamati driver;Il driver permette di utilizzare diversi dispositivi omogenei senza conoscere i dettagli implementativi. Ad esempio:

– accedere a dati sul disco senza specificare il cilindro, il settore, la traccia, ecc. – ottenere le coordinate di un dispositivo di puntamento senza sapere se si tratti di mouse, tavoletta grafica, trackball, ecc.– permettere di effettuare operazioni in rete indipendentemente dall’interfaccia relativa (ad esempio, wireless, fast-Ethernet, Gigabit-Eterneth, ecc.)

Page 47: 03 – Sistemi Operativi e Reti

• Siccome il contenuto della RAM è volatile, i dati vengono conservati a lungo termine mediante la memoria secondaria.

• Il tipo di memoria secondaria più diffuso è costituito dagli hard disk, su questi supporti i dati sono memorizzati su file.

• Nel S.O. la gestione dei file è affidata al File System.

• Il File System permette l’organizzazione e la gestione dei dati su disco senza preoccuparsi delle caratteristiche fisiche dei dispositivi di memorizzazione.

• Tipicamente i dati sono organizzati in file e directory (o cartelle, ovvero dei contenitori di file).

Gestione dei file.Gestione dei file.

Page 48: 03 – Sistemi Operativi e Reti

• Per mantenere l’organizzazione dei file, il sistema operativo, oltre ai dati utente, scrive sul disco delle informazioni aggiuntive dette metadati.

• Alcuni tipi di informazioni che formano i metadati sono:– identificativo dell’utente proprietario del file– data/ora di creazione del file– data/ora di ultima modifica– spazio su disco occupato dal file

Gestione dei file.Gestione dei file.

Page 49: 03 – Sistemi Operativi e Reti

• Le principali operazioni che un S.O. consente di effettuare su un file sono:

– creare un file: il S.O. alloca spazio su disco per il file, aggiunge una “voce” nella directory appropriata;

– cancellare un file: il S.O. rimuove la “voce” dalla directory;

– aprire un file: il S.O. alloca dei dati che creano un “collegamento” in memoria tra un programma e il file;

– chiudere un file: il S.O. rimuove il collegamento dalla propria memoria;

– leggere dati da un file: il S.O. legge i dati da disco e ne fornisce una copia al programma;

– scrivere dati in un file: il S.O. scrive su disco i dati forniti da un programma;

Operazioni sui file.Operazioni sui file.

Page 50: 03 – Sistemi Operativi e Reti

Operazioni sui file.Operazioni sui file.

– riposizionare il puntatore al file: il S.O. tiene traccia della posizione corrente nel file per operazioni di lettura e scrittura. Riposizionare il puntatore significa cambiare tale posizione;

– aggiungere dati alla fine di un file: il S.O. sposta il puntatore dopo i dati già presenti;

– troncare un file: i dati dopo la posizione corrente del puntatore vengono cancellati;

– rinominare un file;

– copiare un file: il S.O. crea una copia del file con un altro nome oppure in un’altra directory.

Facciamo alcuni esempi pratici (su linux)...

Page 51: 03 – Sistemi Operativi e Reti

Organizzazione gerarchica.Organizzazione gerarchica.L’albero delle directory in Windows

Page 52: 03 – Sistemi Operativi e Reti

Organizzazione gerarchica.Organizzazione gerarchica.L’albero delle directory in Linux

Facciamo alcuni esempi pratici…

/home/user/sperimentazioni

/home/user/sperimentazioni/gioconda.jpg

Page 53: 03 – Sistemi Operativi e Reti

EsempiEsempi

– Apriamo una finestra di terminale. Nel terminale si interagisce con la shell tramite i comandi.

– I comandi hanno solitamente la forma: comando [opzioni] [argomenti]

– ls signica ‘list’ e mostra il contenuto della directory (cartella) corrente

– ls -a signica ‘list all’ e mostra anche I file nascosti (quelli il cui nome inizia per punto ‘.’)

– ‘man’ fornisce informazioni sulle varie opzioni di un dato comandoAd esempio: man ls

Il comando ‘ls’Il comando ‘ls’

Page 54: 03 – Sistemi Operativi e Reti

Creare una directoryCreare una directory– Il comando ‘mkdir’ crea una directory (in cui possiamo poi memorizzare un gruppo di file). – Es. mkdir 06ott2020

/home/user/sperimentazioni/06ott2020

/home/user/sperimentazioni

Page 55: 03 – Sistemi Operativi e Reti

Copiare i fileCopiare i file

– ‘cp’ significa ‘copy’ – Esempio:Sei nella directory ‘sperimentazioni’ e vuoi copiare il file ‘gioconda.jpg’ nella directory 06ott2020

Soluzione:

Page 56: 03 – Sistemi Operativi e Reti

Copiare i fileCopiare i file

– ‘cp’ significa ‘copy’ – Esempio:Sei nella directory ‘sperimentazioni’ e vuoi copiare il file ‘gioconda.jpg’ nella directory 06ott2020

Soluzione:cp gioconda.jpg 06ott2020/ Oppure:cp /home/user/sperimentazioni/gioconda.jpg /home/user/sperimentazioni/06ott2020/cp gioconda.jpg /home/user/sperimentazioni/06ott2020/cp /home/user/sperimentazioni/gioconda.jpg 06ott2020/

Page 57: 03 – Sistemi Operativi e Reti

– ‘cd’ significa ‘change directory’ e cambia la directory corrente. (La directory corrente e’ quella dove si opera di default.)

– Esempio: sei nella directory ‘sperimentazioni’ e Vuoi ‘spostarti’ nella directory 06ott2020

Spostarsi tra le directorySpostarsi tra le directory

Page 58: 03 – Sistemi Operativi e Reti

– ‘cd’ significa ‘change directory’ e cambia la directory corrente. (La directory corrente e’ quella dove si opera di default.)

– Esempio: sei nella directory ‘sperimentazioni’ e vuoi ‘spostarti’ nella directory 06ott2020

Spostarsi tra le directorySpostarsi tra le directory

Soluzione: cd 06ott2020 Oppure: cd /home/user/sperimentazioni/06ott2020/

Page 59: 03 – Sistemi Operativi e Reti

– ‘pwd’ significa ‘print working directory’ e stampa sullo schermo il percorso della directory corrente.– Esempio: pwd

Dove mi trovo?Dove mi trovo?

– Nota: se ci si perde nell’albero delle directory, digitando ‘cd’ senza argomenti si torna alla home directory: ovvero la directory in cui ci si trova quando si fa il login al sistema

Page 60: 03 – Sistemi Operativi e Reti

M87

Page 61: 03 – Sistemi Operativi e Reti

M87

Page 62: 03 – Sistemi Operativi e Reti

M87

Page 63: 03 – Sistemi Operativi e Reti

– Stai conducendo uno studio su dei nuclei galattici attivi (AGN) da un computer immaginario con sistema operativo Linux. Hai appena scaricato i files:M87.dat, Centaurus-A.dat e 3C-273.txtche includono informazioni relative alle galassie ellittiche M87 ed Centaurus A, e al quasar 3C 273.

I files scaricati si trovano nella directory:/home/utente/Downloads

Digitando il comando pwd appare stampato sul terminale:/home/utente/AGN

scrivi i comandi che servono ad eseguire le seguenti operazioni:

i) Fare la lista di tutti i file che si trovano nella directory Downloads

ii) Creare due directory dai nomi ELLITTICHE e QUASAR

iii) restando nella directory corrente copiare i file M87.dat e Centaurus-A.dat nella directory ELLITTICHE

iv) spostarsi nella directory QUASAR

v) restando nella directory corrente spostare il file 3C-273.txt nella directory QUASAR.

vi) e’ possibile eseguire l’operazione indicata al punto iii) usando un unico comando? E se si come?

vii) rimuovere, se possibile, i tre files scaricati dalla directory Downloads.