Sistemi Operativi: avvio All avvio del computer, terminate le verifiche del BIOS, il controllo passa al sistema operativo. Il Sistema Operativo opera come intermediario tra l hardware del sistema e uno o più utenti. Informatica - G. Caminiti 1
Sistema Operativo: funzioni Due sono le funzioni principali svolte da un sistema operativo: gestione delle risorse hardware interfaccia verso l utente Come tali funzioni vengano svolte, e se sia interamente il sistema operativo ad occuparsene, dipende dal dispositivo in questione. Informatica - G. Caminiti 2
Dispositivi Esistono diversi dispositivi elettronici la cui complessità ha reso necessario dotarli di un sistema operativo. Informatica - G. Caminiti 3
Dispositivi La gestione dell hardware è un aspetto di secondaria importanza per gli utenti di questi dispositivi. L interfaccia ha un importanza maggiore, ed è sia fisica che virtuale (software). Informatica - G. Caminiti 4
Il SO come intermediario tra HW e SW HW HW SW Software = SO + applicazioni SW SO SW (appl) Informatica - G. Caminiti 5
Composizione di un SO Utente Interprete comandi Gestione periferiche SW applicativo HW Gestione processore Gestione memoria File system Sistema Operativo Informatica - G. Caminiti 6
Sistemi operativi: struttura interna Informatica - G. Caminiti 7
Livelli La struttura di un sistema operativo, tipicamente, è quella a cipolla: Informatica - G. Caminiti 8
Livelli L hardware è avvolto, ricoperto da una serie di strati di software. Ciascun livello: usale funzionalità di quello sottostante fornisceserviziservizi al livello che segue nella gerarchia gestisce delle risorse mediante politiche invisibili ai livelli superiori Informatica - G. Caminiti 9
Macchine virtuali Si crea, in questo modo, una gerarchia di macchine virtuali. l esperto che scrive un sistema operativo vede il sistema come un insieme di risorse fisiche da comandare direttamente; coluicheprogetta un ambiente di programmazione vede la macchina come l insieme delle funzioni messe a disposizione dal sistema operativo; Informatica - G. Caminiti 10
Macchine virtuali l utente che usa un linguaggio di alto livello per progettare un programma applicativo vede l elaboratore come l insieme delle funzionalità messe a disposizione dall ambiente di programmazione; per l utilizzatore di un programma applicativo, infine, il sistema appare virtualmente come l insieme dei comandi chepuòfornireallamacchina per soddisfare le sue esigenze. Informatica - G. Caminiti 11
Macchine virtuali Riassumendo: l utente finale del sistema interagisce solo con il livello più esterno della gerarchia. Idealmente, l utente finale è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori. Potrebbe (sempre idealmente) essere a conoscenza solo delle operazioni che è interessato ad effettuare. Informatica - G. Caminiti 12
Gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di gestire l esecuzione dei programmi. Un programma in esecuzione è detto processo. Il kernel distribuisce le risorse di calcolo tra i vari processi attivi. Informatica - G. Caminiti 13
Gestione CPU Una prima distinzione è dunque tra quei sistemi che eseguono un processo per volta e quelli in grado di gestirne diversi contemporaneamente. I primi sono detti monotask (es. MS-DOS) Questi ultimi sono detti multitask (es.. Windows) Informatica - G. Caminiti 14
Processi e programmi Un programma è una entità statica composta dal codice eseguibile del processore. Un processo è una entità dinamica relativa al programma in esecuzione, ed è composto da: codice del programma dati necessari all esecuzione del programma stato dell esecuzione Informatica - G. Caminiti 15
Esecuzione di un processo Operazione I/O completata Processo attivo Processo in attesa Richiesta di operazione I/O Ogni operazione di I/O consiste in una chiamata al SO e successiva sospensione del processo utente per attendere l esecuzione dell operazione di I/O Informatica - G. Caminiti 16
La Multiprogrammazione Progr. 1 Progr. 2 Progr. 3 tempo Attesa per operazioni di I/O Elaborazione Informatica - G. Caminiti 17
Time Sharing È possibile condividere la CPU tra più processi interattivi, suddividendo il tempo di esecuzione del processore tra più utenti Ogni processo utilizza periodicamente un intervallo di tempo prestabilito (quanto) Durante il quanto di esecuzione di un processo, tutti gli altri processi sono sospesi Al termine di ogni quanto (context switch), il processo in esecuzione viene sospeso e si assegna la CPU ad un altro processo. Informatica - G. Caminiti 18
Processi pronti ed in attesa Quando un processo non è in esecuzione può assumere due diversi stati: attesa: il processo è sospeso finché un determinato evento esterno non si verifica (i.e., I/O) pronto: il processo è sospeso finché non gli viene concesso l uso della CPU in ogni instante di tempo vi è un solo processo attivo, e tutti gli altri sono o in attesa o pronti, e memorizzati in apposite code che ne indicano l ordine di esecuzione. Informatica - G. Caminiti 19
Diagramma di esecuzione Selezione primo processo pronto e sua esecuzione Inizio esecuzione (accodamento) Coda processi pronti Processo attivo Termine elaborazione Termine quanto di tempo Completamento operazione I/O Coda processi in attesa Richiesta operazione I/O Informatica - G. Caminiti 20
Round Robin Richiesta I/O Fine utilizzo I/O Proc. 1 E P P E A A A P P E Proc. 2 P E P P E P E E P P Proc. 3 P P E P P E P P E P quanto Context switch tempo Informatica - G. Caminiti 21
La memoria è una risorsa essenziale e limitata. Essenziale, perché ogni programma in esecuzione (processo) deve essere caricato in memoria, e così i dati su cui opera. Limitata, perché nei sistemi moderni possono essere attivi più processi nello stesso tempo. Gestione memoria Informatica - G. Caminiti 22
Gestione memoria Dal momento che la memoria di sistema (RAM) è una risorsa finita, nell allocarla ai vari processi il sistema operativo deve risolvere vari problemi: trovare spazio per i vari processi; ridurre la frammentazione. Informatica - G. Caminiti 23
Gestione memoria (Frammentazione) A B C A B C In memoria sono caricati i processi A e B. Anche C viene caricato in memoria. Il processo B termina, e libera la memoria. A C D Il processo D non trova spazio in cui inserirsi, anche se la memoria libera complessiva sarebbe sufficiente. Informatica - G. Caminiti 24
Gestione memoria (Frammentazione - 2) A C A C D Il processo D non trova spazio in cui inserirsi, anche se la memoria libera complessiva sarebbe sufficiente. A C D Il processo D troverà spazio nella memoria libera. Il processo C viene spostato in una zona di memoria contigua a quella occupata dal processo A Informatica - G. Caminiti 25
Gestione memoria: paginazione E anche possibile suddividere la memoria in blocchi (pagine fisiche). I programmi da caricare dovranno essere divisi in pagine logiche. Memoria (RAM) Processi 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 E F G Informatica - G. Caminiti 26
Gestione memoria: : swapping Il sistema operativo può riservare un area di un disco per lo swapping. A A C D B C C B D D viene caricato in memoria. In memoria sono presenti A, B, e C. D non trova spazio. C viene copiato su un disco dal gestore della memoria. Informatica - G. Caminiti 27
Memoria virtuale Le tecniche appena esposte possono coesistere tranquillamente. Il risultato della loro interazione è che il sistema può disporre, in apparenza, di una quantità di memoria maggiore di quella fisica installata. La memoria virtuale è un meccanismo che sfrutta l utilizzo di una memoria di massa per estendere la memoria centrale. Informatica - G. Caminiti 28
Gestione Input/Output L accesso alle periferiche di I/O viene gestito dal sistema operativo insieme ai driver di periferica. I driver sono programmi specifici per ciascun dispositivo che si colleghi all elaboratore (stampanti, scanner pendrive, modem ). Informatica - G. Caminiti 29
Gestione Input/Output L interazione tra un programma e una periferica è standardizzata. Un programma di elaborazione testi, ad esempio, può inviare un comando di stampa senza curarsi del tipo di stampante collegata al computer. Spetta al sistema operativo smistare la richiesta al driver della stampante. Informatica - G. Caminiti 30
Gestione Input/Output A questo livello è implementato anche un sistema di gestione degli errori di I/O (ad es. dischetto mancante o danneggiato, carta esaurita, ecc.). Anche il controllo dell ordine di accesso ai dispositivi è cruciale. Il sistema operativo deve prevenire, o risolvere, eventuali conflitti. Informatica - G. Caminiti 31
Il file system è il modo in cui il sistema operativo organizza i file (documenti) sulle unità di memorizzazione. Un file è un astrazione che rappresenta un insieme di byte logicamente collegati. Gestione file Informatica - G. Caminiti 32
Gestione file Informatica - G. Caminiti 33
Gestione file Informatica - G. Caminiti 34
Gestione file Informatica - G. Caminiti 35
Gestione file Rappresentazione grafica delle cartelle: Struttura ad albero Informatica - G. Caminiti 36
Gestione file: funzioni Il file system deve mettere a disposizione diverse funzioni per la manipolazione dei file: creazione/eliminazione lettura/scrittura/esecuzione coordinamento accessi contemporanei controllo degli accessi (nei sistemi multiutente) Informatica - G. Caminiti 37
Inteprete dei comandi (shell) L interprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente. E possibile utilizzare lo stesso sistema operativo con shell differenti. Questo può rendere molto diverso il modo di impartire comandi. Informatica - G. Caminiti 38
Inteprete dei comandi (shell) La shell è dunque lo strato più esterno di un sistema operativo. Di fatto, rappresenta l interfaccia tra utente e sistema. Informatica - G. Caminiti 39
Inteprete dei comandi (shell) e interfaccia Che differenza c è tra interprete dei comandi, shell, e interfaccia utente? I primi due termini sono sinonimi. Shell vuol dire guscio, in riferimento al fatto che si tratta dello strato più esterno di un sistema operativo. l interprete dei comandi è un programma. Informatica - G. Caminiti 40
Interfaccia L interfaccia èilmezzo attraverso il quale l utente invia comandi alla shell. Esistono diverse interfacce possibili per l interazione uomo-macchina. Il loro successo dipende, oltre che da un accurata progettazione, dal tipo di utente cui sono rivolte. Informatica - G. Caminiti 41
Interfacce Due sono i tipi di interfaccia più diffusi per interagire con un computer: Interfacce a caratteri, anche dette a riga di comando (CLI, command line interfaces) Interfacce grafiche (GUI, graphical user interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device) Informatica - G. Caminiti 42
Interfacce a caratteri Storicamente, per motivi legati all hardware, le interfacce a caratteri vengono prima delle altre. Il CP/M, il DOS, alcuni sistemi operativi in uso sui mainframe negli anni 60, UNIX.. Hanno tutti un interfaccia a caratteri. Informatica - G. Caminiti 43
Interfacce a caratteri DOS shell Informatica - G. Caminiti 44
Interfacce a caratteri Unix shell (linux console) Informatica - G. Caminiti 45
Interfacce a caratteri Esistono molti tipi di shell con interfaccia a caratteri, così come con interfaccia grafica. La differenza tra le interfacce a caratteri è nella sintassi e nella maggiore o minore flessibilità. Informatica - G. Caminiti 46
Interfacce grafiche Cosa rende diverse le interfacce grafiche le une dalle altre? Evidenziamo due aspetti: iltipodimetafora usata; glielementi costitutivi che l utente può manipolare. Informatica - G. Caminiti 47
Metafore La metafora più utilizzata nei personal computer, oggi, è quella della scrivania (in inglese, desktop). Dalla sua introduzione ad oggi sono state introdotte interfacce alternative, allo scopo di superarne le limitazioni, ma ancora senza successo. Informatica - G. Caminiti 48
Interfacce grafiche: : BOB Microsoft BOB (1995). Informatica - G. Caminiti 49
Interfacce grafiche: : Windows Informatica - G. Caminiti 50
Interfacce grafiche: metafore L uso e l implementazione -diunametafora pone di fronte, tipicamente, a tre problemi: nel dominio virtuale sono possibili azioni impraticabili in quello reale; neldominioreale sono possibili azioni impraticabili in quello virtuale; alcune azioni sono presenti in entrambi i domini, ma funzionano in maniera diversa. Informatica - G. Caminiti 51
Interfacce grafiche: il desktop Si tratta di un interfaccia a manipolazione diretta: esistono degli oggetti discreti sui quali l utente può compiere delle azioni (spostarli, trascinarli, gettarli nel cestino..). La metafora associa questi oggetti ai loro corrispettivi nel mondo reale; l utente ha già un idea di quali azioni è possibile compiere. Informatica - G. Caminiti 52
Interfacce grafiche: manipolazione Il problema delle interfacce a manipolazione diretta è che l utente deve manipolare direttamente ogni oggetto per compitiripetitivi, è frustrante; per compiticomplessi, a volte non tutti i passaggi sono noti. Soluzione: usare le macro Informatica - G. Caminiti 53
Elementi grafici Le interfacce attuali, basate sulla metafora della scrivania, sono di tipo WIMP. Gli elementi che le compongono vengono detti widget. Una widget è un elemento che fornisce informazioni all utente o gli permette di interagire con il sistema operativo o con un applicazione. Informatica - G. Caminiti 54
Interfacce grafiche Esempi di widget sono le icone, i menu, i pulsanti, le finestre, le barre di scorrimento, le caselle di testo Solitamente è il sistema operativo a mettere a disposizione un insieme di widget. In ambiente Unix è possibile usare insiemi di widget diversi. Informatica - G. Caminiti 55
Interfacce grafiche Macintosh Windows Linux (KDE) Informatica - G. Caminiti 56
Software Applicativo Programmi che svolgono funzioni specifiche, e che vengono eseguiti all interno dei sistemi operativi: 1. fogli di calcolo 2. elaborazione testi 3. fotoritocco, disegno, grafica 3D 4. editing o riproduzione audio/video 5. utilities (compressione, antivirus, ecc.) Informatica - G. Caminiti 57
Elaboratore testi Informatica - G. Caminiti 58
Foglio elettronico Informatica - G. Caminiti 59
Database Informatica - G. Caminiti 60
Presentazioni Informatica - G. Caminiti 61
Desktop Publishing Informatica - G. Caminiti 62
Personal Information Management Informatica - G. Caminiti 63