Struttura del SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware
Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondaria In generale, la memoria secondaria è data da hard disk e dischi ottici Il SO garantisce una visione logica uniforme del processo di memorizzazione: La gestione della memoria secondaria 1 Astrae dalle caratteristiche fisiche dei dispositivi per definire un unità di memorizzazione logica il file Ciascuna periferica viene controllata dal relativo device driver, che nasconde all utente le caratteristiche fisiche variabili dell hardware: modalità e velocità di accesso, capacità, velocità di trasferimento 2
La gestione della memoria secondaria 2 Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria: Allocazione dello spazio Gestione dello spazio libero Ordinamento efficiente delle richieste di accesso al disco (disk scheduling) 3
Il file è l astrazione informatica di un archivio di dati La gestione del file system 1 Il concetto di file è indipendente dal mezzo sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Un file system è composto da un insieme di file Il SO è responsabile delle seguenti attività riguardanti la gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria 4
La gestione del file system 2 Il gestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa Nei sistemi multi utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall accesso di altri utenti non autorizzati Le funzioni tipiche del gestore del file system sono: Fornire un meccanismo per l identificazione dei file Fornire metodi opportuni di accesso ai dati Rendere trasparente la struttura fisica del supporto di memorizzazione Implementare meccanismi di protezione dei dati 5
Organizzazione del file system -1 Quasi tutti i SO utilizzano un organizzazione gerarchica del file system L elemento utilizzato per raggruppare più file insieme è la directory L insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory Directory File Grafo delle directory 6
Organizzazione del file system -2 I dischi fissi possono essere divisi in partizioni Una partizione e' organizzata gerarchicamente come un albero rovesciato (come quello genealogico) Nodi e collegamenti padre-figlio tra nodi Nodo dell'albero: file o directory Nodi divisi per livelli Collegamenti tra nodi di livelli vicini: nodo sopra = padre, nodo sotto = figlio Ogni nodo ha un solo padre Padre più in alto = radice I nodi che sono file non hanno figli Cammino assoluto o relativo (per file) directory file
Indirizzo (o percorso) dei file in Windows partizione Z Z: A a Z:\a b B c C Z:\A\c d e D E Z:\A\C\D\f F f g h Z:\A\C\E\h
Indirizzo (o percorso) dei file in Unix/Linux / A a /a b B c C /A/c d e D E /A/C/D/f F f g h /A/C/E/h
Gestore della memoria secondaria I byte che compongono I file possono essere organizzati in vari modi: Byte stream (sequenza di byte) Sequenziale (sequenza di record a lunghezza fissa o variabile) Diretto (sequenza di record a lunghezza fissa) A indice (sequenza di record ordinati logicamente secondo un indice)
Struttura del SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware
La gestione dei dispositivi di I/O La gestione dell I/O richiede: Un interfaccia comune per la gestione dei device driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle informazioni Il gestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema Il gestore delle periferiche offre all utente una versione astratta delle periferiche hardware; l utente ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che percepisce come dedicata 12
Device driver Il controllo dei dispositivi di I/O avviene attraverso speciali moduli software, detti device driver I device driver sono spesso realizzati dai produttori dei dispositivi stessi, che ne conoscono le caratteristiche fisiche in maniera approfondita I device driver implementano le seguenti funzioni: Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivo Gestiscono la comunicazione dei segnali verso i dispositivi Gestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo 13
L interfaccia utente 1 Tutti i SO implementano meccanismi per facilitare l utilizzo del sistema di calcolo da parte degli utenti L insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utente Serve per attivare un programma, terminare un programma, etc. interagire con le componenti del sistema operativo (gestore dei processi, file system, etc.) 14
L interfaccia utente 2 Interfaccia testuale: Interprete dei comandi (shell) Esempio: MS DOS/UNIX Interfaccia grafica (a finestre): L output dei vari programmi viene visualizzato in maniera grafica all interno di finestre L utilizzo di grafica rende più intuitivo l uso del calcolatore Esempio: WINDOWS/Linux Differenze: Cambia il linguaggio utilizzato, ma il concetto è lo stesso Vi sono però differenze a livello di espressività 15
L interfaccia grafica Realizza la metafora della scrivania desktop Interazione semplice via mouse Le icone rappresentano file, directory, programmi, azioni, etc. I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull oggetto in questione, eseguono funzioni tipiche dell oggetto, aprono directory folder, o cartelle, nel gergo GUI (Graphical User Interface) 16
Protezione è il meccanismo usato per controllare l accesso da parte di processi e/o utenti a risorse del sistema di calcolo Sicurezza è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni Denial of service, worm, virus, hacker In prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa Protezione e sicurezza 1 L identità utente (user ID) include nome dell utente e numero associato uno per ciascun utente L user ID garantisce l associazione corretta di file e processi all utente e ne regola la manipolazione L identificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi) 17
Protezione e sicurezza 2 In Linux $ ls l 18
Sistemi operativi commerciali In commercio sono presenti una grande quantità di sistemi operativi diversi In passato, la tendenza delle case costruttrici di sistemi di elaborazione era di sviluppare sistemi operativi proprietari per le loro architetture La tendenza attuale è quella dello sviluppo di sistemi operativi portabili su piattaforme hardware diverse 19
Conclusioni: i SO oggi Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (100 1000 programmatori per anno) Interazioni complesse Universali (eseguiti su piattaforme diverse) Differenti classi di utenti hanno necessità diverse La performance è cruciale! Poco compresi: Il SO tipicamente dura più di chi lo ha programmato ed è troppo grande per essere compreso da una singola persona Mai completamente privi di errori (OS/360 rilasciato con 1000 bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi 20
Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO
Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO
Comandi piu usati in MS - DOS DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile)
File in MS - DOS Per individuare un file: cammino assoluto Un file system per ogni disco anche nome del disco Esempio: C:\Dir1\Dir2\Dir3\file.txt Estensioni per file:.exe per programma eseguibile.txt per file di testo.sys per file di sistema.c per programma in C.doc per documento Word
Unix SO multi-utente, multi-tasking, con timesharing Concepito per poter funzionare su diverse piattaforme hardware Interprete dei comandi: shell Piu di 300 comandi, con opzioni Comando man per aiuto Forma di un comando: nome-comando [[-opzioni] argomenti]
Comandi Unix ls per vedere il contenuto di una directory cp per copiare file rm per cancellare file mv per spostare file cd per spostarsi in un altra directory mkdir per creare una nuova directory ps per vedere tutti i processi attivi lp per stampare file who per vedere tutti gli utenti collegati
File in Unix Unico albero anche se ci sono piu dischi non serve indicare il disco per denotare un file Nei cammini non appare il nome del disco Radice: simbolo / Esempio: /dir1/dir2/dir3/file.txt
Windows Nato nel 1987, ispirato al Macintosh All inizio era un interfaccia grafica per DOS Windows 95: SO mono-utente, multi-tasking, time-sharing DOS emulato in speciali finestre (per seguire vecchi applicativi per DOS)
Filosofia Windows -- 1 Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, Directory come cartelle Pulsanti Finestre: cornici con strumenti Menu di comandi
Filosofia Windows -- 2 L utente non deve ricordarsi i nomi dei comandi, basta che selezioni col mouse: un oggetto e il comando da applicare all oggetto File system (cioe l albero): visualizzato come cartelle che contengono icone di file o di altre cartelle Cliccando su una cartella, si apre quella directory Icona del file: diversa a seconda del tipo di file
Ritorniamo ai nostri programmini...
Terzo esercizio Scrivere un programma che riceve in input interi (-1) per uscire e stampa il valore massimo inserito
Terzo esercizio Scrivere un programma che riceve in input interi (-1) per uscire e stampa il valore massimo inserito #include <stdio.h> main(){ int n,max; printf("inserisci un numero (-1 per finire) \n"); scanf("%d",&n); max=n; while(n!=-1) {if(n>max) max=n; scanf("%d",&n); } printf( Il massimo risulta %d \n,max); }
Quarto esercizio Scrivere un programma che riceve in input due interi (base e esponente) e calcola b e
Quarto esercizio Scrivere un programma che riceve in input due interi (base e esponente) e calcola b e #include <stdio.h> main(){ int b,e; float potenza=1; int positivo=1; printf("inserisci la base intera : \n"); scanf("%d",&b); printf("inserisci l'esponente intero: \n"); scanf("%d",&e); if(e==0 && b==0) printf("forma indeterminata \n"); else { if(e<0) {positivo=0; e=-1*e;} while(e>0) {potenza=potenza*b; e=e-1;} if(!positivo) potenza=1/potenza; printf("la potenza risulta: %f \n",potenza); } }