uomo Software (sistema operativo) hardware Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci Sistema operativo Funzioni Il s.o. fornisce all’utente una serie di funzionalità 4 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci Sistema operativo C. si presenta all’esterno con modularità, attraverso interfacce ben definite le cui funzioni non dipendono da come viene realizzato. 12 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci Sistema operativo modello a buccia di cipolla “onion skin” uomo Programmi utenti Programmi di utilità File system Periferiche virtuali software Memoria virtuale nucleo Macchina fisica 13 hardware Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci Gli elementi del Sistema operativo • • • • • • Gestore dei processi Gestore della memoria Gestione delle periferiche Gestione dei file Gestione degli utenti Gestione della rete 14 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 20 correnti Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 29 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 30 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 31 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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 32 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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… 33 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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. 34 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci 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). 35 Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci