uomo Software (sistema operativo) hardware 1
Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti quando un elaboratore viene avviato e alcuni di essi rimangono sempre in memoria (cioè in esecuzione) essi gestiscono direttamente i dispositivi che fanno parte del PC Quando l utente usa un programma per accedere a un componente lo fa attraverso il s.o. 2
Sistema operativo Un sistema operativo è un insieme di programmi che agiscono da intermediario fra utente e macchina hardware. Il sistema operativo fornisce all'utente vari strumenti, quale un ambiente per l'esecuzione di altri programmi e una visione astratta del hardware. vi sono diversi tipi di s.o. 3
Sistema operativo Funzioni Il s.o. fornisce all utente una serie di funzionalità 4
Funzioni del Sistema operativo Esecuzione di applicazioni, il S.O. gestisce per conto dell utente operazioni quali: caricamento del programma (istruzioni e dati) nella memoria centrale, inizializzazione dei dispositivi di ingresso/uscita, preparazione e gestione di altre risorse come la rete di comunicazione, 5
Funzioni del Sistema operativo Accesso ai dispositivi di ingresso/uscita, il S.O. maschera i dettagli di basso livello gestione dei segnali necessari per il trasferimento dei dati, consente all utente di ragionare in termini di operazioni astratte di lettura e scrittura; rende disponibile all utente meccanismi di I/O potenti ed indipendenti dal tipo di periferica (l utente dice leggi dal disco e basta poi il s.o. in funzione del disco e sa che cosa comandare al processore) gestisce le periferiche condivise se mando in stampa 2 documenti chi gestisce che i due non siano in conflitto se hanno meccanismi particolari di accesso (se sono in locale oppure in remoto) se ci sono malfunzionamenti (esempio carta inceppata..) 6
Funzioni del Sistema operativo Archiviazione di dati e programmi fornire un organizzazione logica dei dati sotto forma di cartelle (directory) e file, gestire le operazioni di basso livello per il relativo ingresso/uscita; 7
Funzioni del Sistema operativo Controllo di accesso condivisione di risorse da parte di più utenti o applicazioni, meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d uso; 8
Funzioni del Sistema operativo Contabilizzazione ottimizzare il tempo di risposta dei programmi interattivi, fatturare agli utenti i costi dell impiego del sistema; Gestione dei malfunzionamenti rilevare e, se possibile, di risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo. 9
Sistema operativo Il s.o. è un complesso insieme di programmi che interagiscono tra loro. Il modello per rappresentare le funzionalità e le interazioni e quello che lo vede come una serie di livelli di macchine virtuali 10
Sistema operativo A. ogni livello gestisce una specifica risorsa (o insieme di risorse). Il s.o. simula l esistenza di una macchina virtuale diversa dalla reale macchina fisica. B. ogni livello è costruito sopra a quelli sottostanti, cioè usa i meccanismi di quello che sta sotto. 11
Sistema operativo C. si presenta all esterno con modularità, attraverso interfacce ben definite le cui funzioni non dipendono da come viene realizzato. 12
modello a buccia di cipolla onion skin Programmi utenti Programmi di utilità File system Sistema operativo uomo Periferiche virtuali Memoria virtuale nucleo software Macchina fisica hardware 13
Gli elementi del Sistema operativo Gestore dei processi Gestore della memoria Gestione delle periferiche Gestione dei file Gestione degli utenti Gestione della rete 14
Evoluzione dei Sistemi operativi I primi sistemi erano uniprogrammati, cioè in memoria c e un solo programma utente per volta, ovviamente insieme ai programmi che costituiscono il S.O. (durante l attesa il processore non fa niente, oppure potrebbe caricare un altro programma, ma ci vuole tempo) 15
Evoluzione dei Sistemi operativi Successivamente si sono sviluppati i sistemi multiprogrammati (durante l attesa di I/O il processore si occupa di altri utenti e o programmi, che ha già in memoria) Con quale politica passa da un programma o ad un altro? Tecnica del Time sharing, assegnare un quanto di tempo ad ogni programma (round-robin), con la possibilità che un programma possa rinunciare alla CPU se non gli serve 16
Processi-Programmi Nei sistemi operativi moderni il parallelismo nell esecuzione ha portato a superamento del concetto statico di programma per parlare di processo Un processo é un programma in esecuzione sul calcolatore un programma é un oggetto statico un processo é un oggetto dinamico poiché è dotato di uno stato interno che cambia nel tempo lo stato di un processo é dato dai valori dei dati nella memoria e nei registri della CPU Ad ogni programma possono corrispondere diversi processi, esempio il programma word hai processo che si occupa della stampa ed il processo che mi permette di salvare 17
Multitask e interrupt Un processo può trovarsi in tre situazioni diverse: in esecuzione, pronto, in attesa Di solito in un computer sono attivi contemporaneamente più processi solo un processo per volta però si trova nello stato di esecuzione 18
Processi Un processo é pronto quando può andare subito in esecuzione un processo é in attesa quando attende il verificarsi di un evento esterno (in genere operazione di I/O) Quando un processo è in esecuzione la CPU esegue istruzioni che appartengono a quel processo La contemporaneità di esecuzione viene di fatto simulata 19
Stato di un processo Solo un processo per volta può trovarsi nello stato di esecuzione per simulare la simultaneità é necessario interrompere l esecuzione di un processo e passare all esecuzione di un altro un interrupt é un particolare segnale che arriva alla CPU e la avverte che deve interrompere la sequenza delle istruzioni correnti 20
Sistemi multitasking La CPU esegue sequenzialmente operazioni elementari Nella realtà molte si fanno in parallelo, scaricare un file da Internet e allo stesso tempo elaborare un documento, ma se ho un solo processore? Le attività vengono eseguite in sequenza: il sistema operativo cede il controllo della CPU a un programma o all altro a seconda delle esigenze 21
Sistemi multitasking Consiste nel suddividere il tempo di lavoro della CPU tra i vari programmi in esecuzione Nei sistemi più recenti si usa il preemptive. Il sistema operativo ha una lista di processi con diversi priorità, un processo in corso può essere interrotto temporaneamente, tolto quindi dalla CPU, che viene assegnata ad un processo con priorità maggiore 22
Sistemi multithreading I programmi elaborano dati in sequenza, quando un operazione finisce ne iniziano un altra Ma se un programma deve fare più cose insieme, esempio, in un editor si deve scrive e contemporaneamente I dati si devono leggere sullo schermo, come si fa? Si applica il concetto di multithreading che è il concetto di multitasking applicato ad un singolo programma, in pratica la CPU viene occupata ora per un operazione ora per un altra, a rotazione 23
Gli elementi del Sistema operativo Gestore dei processi controlla la CPU si occupa di definire quali programmi sono da eseguire alla CPU gestisce la traduzione dei programmi in un linguaggio eseguibili dal processore 24
Gli elementi del Sistema operativo Gestore della memoria Controlla l assegnazione della memoria di lavoro ai diversi programmi, che possono essere contemporaneamente in esecuzione, garantendo a ciascuno di essi l accesso a zone riservate di memoria in cui poter depositare in modo esclusivo i propri dati 25
Gli elementi del Sistema operativo Gestione delle periferiche Il sottosistema garantisce l accesso ai dispositivi di I/O mascherandone I dettagli di basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino in contemporanea ad uno stesso device da più programmi I driver sono programmi che gestiscono le periferiche I nuovi sistemi sono plug&play, cioè permettono alle periferiche di farsi riconoscere 26
Gli elementi del Sistema operativo Gestione dei file Chiamato spesso con il termine file system, serve per archiviare i dati e a reperire i dati sfruttando le periferiche di archiviazione di massa I dati vengono strutturati e gestiti in FILE, che sono dei contenitori logici identificati mediante un nome 27
file Identificati da un nome costituito da due parti: nome.estensione Vincoli di lunghezza del nome Vincoli di caratteri Informazioni associate ad ogni file (lunghezza in byte, data di creazione, di modifica, ed altre informazioni specifiche del tipo di file, protezione e posizione sul supporto dei dati 28
pathname i file residenti all'interno di un file system vengono individuati attraverso un percorso (o con termine inglese path o pathname), ovvero un nome che contiene in forma esplicita informazioni sulla posizione del file all'interno del sistema. 29
Pathname (percorso) Il concetto di percorso si basa sulla struttura gerarchica (ad albero) del file system; il pathname elenca al proprio interno i diversi nodi che occorre visitare per arrivare al file in questione partendo dalla radice del file system. Esempio in windows: C:\user\documenti\documento.doc 30
Percorsi relativi e assoluti Un percorso che specifica la posizione di un file a partire dalla radice del file system, come quelli descritti sopra, viene detto percorso assoluto. 31
Percorsi relativi e assoluti Un percorso relativo descrive invece la posizione di un file a partire da un'altra posizione dell'albero dei file, detta cartella o directory corrente (solitamente la directory di lavoro dell'utente o del programma che usa il percorso). 32
Estensione di un file L'estensione di un file è un metodo che permette al sistema operativo di distinguere il tipo di contenuto (testo, musica, immagine...) e di aprirlo con la corrispondente applicazione; si tratta di suffisso posto alla fine del nome di un file, separato da quest'ultimo con un punto. 33
Tipi di file File dati File eseguibili File di sistema 34
File collegamento un collegamento ad un file o directory è un oggetto del file system che consente di fare riferimento ad un altro file o ad un'altra directory usando un nome diverso dall'originale. L'originale si ritrova quindi ad essere accessibile tramite più di un nome. Un collegamento può risiedere nella stessa directory dell'originale, o può anche essere in una directory diversa. 35
driver In informatica, è detto driver l'insieme di procedure, spesso scritte in un linguaggio specifico per una CPU (assembly), che permette ad un sistema operativo di pilotare un dispositivo hardware. Il driver permette al sistema operativo di utilizzare l'hardware senza sapere come esso funzioni, ma dialogandoci attraverso un'interfaccia standard, i registri del controllore della periferica, che astrae dall'implementazione dell'hardware e che ne considera solo il funzionamento logico. In questo modo hardware diverso costruito da produttori diversi può essere utilizzato in modo intercambiabile. 36
driver Ne consegue che un driver è specifico sia dal punto di vista dell'hardware che pilota, sia dal punto di vista del sistema operativo per cui è scritto. Non è possibile utilizzare driver scritti per un sistema operativo su uno differente, perché l'interfaccia è generalmente diversa. Il driver è scritto solitamente dal produttore del dispositivo hardware, dato che è necessaria un'approfondita conoscenza dell'hardware per poter scrivere un driver funzionante. A volte, i driver vengono scritti da terze parti sulla base della documentazione tecnica rilasciata dal produttore, se questa è disponibile. Installare un dispositivo hardware vuole dire inserire i driver di questo nuovo componente tra gli elementi del S.O. 37
cartelle Se abbiamo l esigenza di usare lo stesso nome per file diversi dobbiamo introdurre il concetto di cartella Cartella: contenitore di file, o di altre cartelle Ogni file viene univocamente individuato specificando il suo nome e il nome della cartella (o cartelle) che lo contiene, questo si chiama path, esempio c:\windows\system.ini Ogni sistema ha il suo metodo per nascondere alcune caratteristiche dei file e delle cartelle agli utenti 38
Diversi file system FAT, 8 numero di caratteri per i nomi dei file, dimensioni delle partizioni dei dischi massimo 2 Gbyte, no alias FAT32 da 512MB a 32GB, nessuna sicurezza all accesso dei file, si alias NTFS > 32 GB finoa 2TByte, gestione privilegi, si alias HFS plus (Mac OS Extended ) 16TByte, privilegi come UNIX, si alias 39
Gli elementi del Sistema operativo Gestione degli utenti Sottosistema che si interfaccia direttamente con l utente e gli permette di accedere in maniera semplice ed intuitiva alle funzionalità disponibili 40
Gli elementi del Sistema operativo Gestione della rete Sottosistema che consente di interfacciarsi a risorse collegate in rete e di comunicare con processi in esecuzione su altri calcolatori 41
Controllo degli accessi Identificazione degli accessi al sistema. Associare a ogni utente un account (login) e una parola d ordine (password). All interno del sistema operativo, in un apposito file, è contenuta la lista di tutti gli account e delle relative password: solo se viene specificato un account fra quelli previsti (utente abilitato) e la password corrisponde a quella memorizzata (certificazione di identità) viene consentito l accesso al sistema. Si possono creare gruppi di utenti con diritti di accesso differenti, gli amministratori e gli utenti normali, gli ospiti, etc.. All interno dei gruppi si creano I singoli utenti, esempio mario.rossi, direttore, etc 42
Controllo degli accessi Identificazione degli accessi al sistema Questo consente di personalizzare il sistema, per esempio definendo: la distribuzione dei costi di gestione fra i vari utenti (spazio su disco); la visibilità del sistema in termini di porzione del file system complessivo, periferiche e programmi applicativi disponibili; la personalizzazione dell ambiente operativo. 43
Controllo degli accessi Identificazione degli accessi al sistema. Consente di controllare gli accessi ai file: livello di protezione a livello di file o di directory; es. UNIX: tre tipi di utenti: il proprietario, il gruppo e il resto del mondo. tre abilitazioni: lettura (R), scrittura (W) ed esecuzione (X). altro metodo: Access Control List nel SO esiste una tabella in cui ogni riga corrisponde a una diversa risorsa del sistema (programmi, stampanti, directory...), la riga contiene una lista che specifica tutti gli utenti abilitati all uso della corrispondente risorsa e le modalità per la sua fruizione (per esempio a un utente potrebbe essere consentito solo leggere ma non scrivere in una directory, oppure proibito l uso di alcune stampanti collegate in rete). 44