Sistemi Operativi e Reti - Introduzione alla Scienza dei calcolatori per astronomi - Unipd
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
03 – Sistemi Operativi e Reti Sperimentazioni di Fisica I – mod A Introduzione alla Scienza dei calcolatori per astronomi
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.
Nella mente del computer... 3+7=? PC=Program Counter IR=Instruction Register MAR=Memory Address Register MDR=Memory Data Register Registri generali
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