Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd

Pagina creata da Nicolò Cavalli
 
CONTINUA A LEGGERE
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
03 – Sistemi Operativi e Reti
          Sperimentazioni di Fisica I – mod A
Introduzione alla Scienza dei calcolatori per astronomi
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Nella mente del computer...
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.
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Nella mente del computer...
  3+7=?

                              PC=Program Counter
                              IR=Instruction Register
                              MAR=Memory Address Register
                              MDR=Memory Data Register
                              Registri generali
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
ce
ns
or
ed
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
1950
Auto di lusso nel 1950...
Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
1950
Il costo di un caffe’ al bar era 0.15 $
1950
La produzione cinamatrografica piu’ costosa e’ stata
…………. dal costo di $10,000,000
1950
La produzione cinamatrografica piu’ costosa e’ stata
Cenerentola dal costo di $10,000,000
Anni ‘50

 DYSEAC
Cenni storici: il computer negli anni ‘50
              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
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 storici
– 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.
Curiosita’: la gestione del tempo al telescopio
Curiosita’: la gestione del tempo al telescopio
Curiosita’: la gestione del tempo al telescopio
Cos’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.
Sistemi 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 a
pagamento.

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.
Sistemi Operativi: Unix
Sviluppato 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 dei
computer della Apple.
Sistemi Operativi: MacOS
Serie di S.O. basati su unix e sviluppati dalla Apple a partire dal 2001
Successore del Mac OS9 sviluppato a partire dal 1984 (ultima release
10.14 Mojave, risale al 2018).
– Multi- task
– Multi- utente
– Interfaccia grafica
Sistemi Operativi: Linux
Famiglia 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
Linux
– 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.
La 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.
La shell

    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.
L’esecuzione dei programmi: processi
 La distinzione tra programma e processo e’ uno dei concetti fondamentali dei
sistemi 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)
L’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 !?
L’esecuzione dei programmi: il boot
All’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’)
L’esecuzione dei programmi: il boot

Fase I.                                     Fase II.
Il computer esegue il programma ‘boot       Il programma boot loader trasferisce il
loader’ che si trova nella memoria.         S.O. nella memoria principale e passa
Il sistema operativo (S.O.) e’ nel disco.   al S.O. il controllo.
L’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-tasking
possono modificare contemporaneamente
documenti distinti.

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

– I processi sono distinti (uno per ciascuna
istanza del programma/documento).
L’esecuzione dei programmi: multi-tasking

Un 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.
L’esecuzione dei programmi: multi-tasking
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.
Multi-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...
Multi-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.
Gli stati di un processo
   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.

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;
Nuclei Galattici Attivi
       (AGN)
La 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’.
La 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.
La memoria virtuale
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).       Nella CPU il programma lavora come se
                                      avesse a disposizione uno spazio di memoria
Se pero’ la richiesta di memoria e’                    pari a 8GB.
frequente lo swapping rallenta
                                         Se la memoria è insufficiente, le zone di
significativamente il processo.          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
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.)
Gestione dei file.
• 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.

• 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
Operazioni sui file.
• 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.

– 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)...
Organizzazione gerarchica.
  L’albero delle directory in Windows
Organizzazione gerarchica.
                      L’albero delle directory in Linux

/home/user/sperimentazioni

/home/user/sperimentazioni/gioconda.jpg

  Facciamo alcuni esempi pratici…
Esempi

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

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

                            Il comando ‘ls’
– 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 comando
Ad esempio: man ls
Puoi anche leggere