Sistema operativo Il S.O. (sistema operativo) è un insieme di programmi che: gestisce le risorse hardware (CPU, RAM, memoria di massa, periferiche) e software (programmi applicativi) in modo ottimizzato Fornisce l interfaccia utente che consente di utilizzare i dispositivi collegati al computer: - testuale (a riga di comando) - GUI (Graphic User Interface) Utente S.O. MACCHINA FISICA Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). 1
Struttura dell elaboratore Clock Misurato in Hz 2
Software di base e software applicativo Il software si divide in software di base (o di sistema) sistema operativo (Windows, Linux, ) software di rete software applicativo programmi (applicazioni) che svolgono un lavoro per l utente Nota: che cos è la versione (release) Utenti Applicazioni S.O. MACCHINA FISICA 3
Sistemi operativi per PC Microsoft WINDOWS: sistema operativo multiprogrammato (multitask) e utilizzabile pagando una licenza d uso al produttore Linux: sistema operativo multitask, open (liberamente scaricabile e utilizzabile, senza pagare licenza d uso) e disponibile in varie distribuzioni (p.e. Red Hat, Ubuntu, Debian, ). Mac OS: per PC Apple Nota: multitask significa che il S.O. è in grado di eseguire più programmi (task) contemporaneamente. 4
Avviamento del sistema operativo (Bootstrap) 1. Il Bootstrap program, scritto su memoria ROM, carica il S.O. da memoria di massa 2. Il S.O. esegue operazioni di inizializzazione (avvio dei driver delle periferiche, identificazione dei dispositivi di memoria di massa, diagnostica sullo stato dei dischi, ) 3. Il S.O. visualizza l interfaccia utente (desktop) 5
Moduli del sistema operativo Alcuni tra i principali moduli del S.O. manager della CPU: assegnazione della CPU ai processi che ne fanno richiesta (multi-task) manager della RAM: assegnazione della memoria centrale (RAM) ai processi in esecuzione file system: gestore della memoria di massa manager delle periferiche: driver (software che permettono al S.O. di utilizzare le unità perficeriche) 6
Manager della CPU richiesta Il ella manager della CPU ha il compito di assegnare la CPU ai PROCESSI che ne fanno richiesta. Un PROGRAMMA è una sequenza di istruzioni in linguaggio macchina. Start End Istruzione1 Istruzione2 Istruzione3 Halt Un PROCESSO è un PROGRAMMA IN ESECUZIONE che necessita di CPU e RAM e in ogni istante si trova in uno stato preciso (p.e. Ready, Run). Attività della CPU per eseguire un processo RIPETI FETCH (preleva un istruzione dalla RAM) DECODE (decodifica dell istruzione) EXECUTE (esecuzione dell istruzione) FINCHE Halt 7
TIME-SHARING Manager della CPU Il sistema operativo suddivide il tempo di CPU in quanti o intervalli temporali (time slice) da assegnare a vari processi di uno stesso utente o a processi di più utenti. Scheduler Dispatcher Scheduler Dispatcher: sceglie il processo da mandare in RUN (esecuzione) secondo una politica di gestione (FIFO: First In First Out, priorità, ) I/O Wait 8
Stati di un processo New: programma da eseguire (deve essere allocato in RAM) Ready: caricato in RAM, pronto all esecuzione (necessita della risorsa CPU) Running: assegnazione della CPU per il suo avanzamento Waiting: attesa di I/O Terminated: processo concluso e rilascio della RAM occupata 9
Manager della RAM La RAM è una sequenza di locazioni dette BYTE, distinte tramite un indirizzo (ADDRESS) ADDRESS BYTE FFFFFFFE FFFFFFFF Nell esempio, lo spazio di indirizzamento a 4 byte permette di indirizzare 2 32 locazioni di memoria (capacità di memoria) 10
Memoria reale Una porzione limitata della memoria centrale ospita il S.O. mentre la maggior parte viene riservata dal S.O. per allocare i processi in esecuzione. MEMORIA REALE: tecnica di gestione della RAM in cui i processi in esecuzione devono essere interamente caricati in RAM e non si può superare la capacità di RAM fisicamente disponibile. 11
Memoria virtuale MEMORIA VIRTUALE: tecnica di gestione della RAM in cui i processi in esecuzione NON vengono interamente caricati in RAM, ma le istruzioni non necessarie in un certo istante risiedono su disco fisso. Lo spazio occupato dai processi in RAM è complessivamente superiore alla capacità di RAM fisicamente disponibile 12
Memoria virtuale Processi divisi in SEGMENTI generati dal compilatore RAM P5 (400 MB su memoria di massa) 300 MB 100 MB In questo caso solo un segmento per ogni processo viene caricato in memoria centrale. P3 (300 MB su memoria di massa) 150 MB 150 MB Capacità di memoria: 1 GB Occupazione di RAM: Processo P3: 150 MB Processo P5: 300 MB TOTALE 450 MB Spazio occupato dai processi su memoria di massa: 400+300 = 700 MB 13
Memoria virtuale I moderni sistemi operativi utilizzano la gestione della memoria virtuale perché consente di aumentare il grado di multiprogrammazione (numero di processo contemporaneamente in esecuzione). Bisogna precisare però che la memoria virtuale comporta: -maggior complessità dei sistemi operativi - eventuale rallentamento dell esecuzione dei processi causata da frequenti swap tra RAM e disco (se la CPU richiede l esecuzione di un segmento di programma che non è caricato in RAM, il sistema operativo deve trovare spazio in RAM per allocare il segmento di programma richiesto, anche a spese di segmenti presenti in RAM ma non necessari nell immediato). 14
File system Il File System è il modulo del S.O. che si occupa della gestione di file sulla memoria di massa: HDD (hard disk drive: dischi fissi), SSD (Solid State Drive: dispositivi di memoria senza parti in movimento basati su semiconduttori), dispositivi ottici come DVD. Il File System consente all'utente di utilizzare tali file senza preoccuparsi dell'effettiva modalità di memorizzazione, facendo riferimento ad essi solo con nomi simbolici. Funzioni del file system gestire in modo ottimale lo spazio su memoria di massa per i file fornire meccanismi di protezione dei file da scrittura / lettura / cancellazione, ma anche da accessi non autorizzati e interventi dannosi rendere disponibili all utente le operazioni di uso comune sui file con un file manager organizzare i file in modo gerarchico attraverso cartelle (directory) e sotto-cartelle; una cartella contiene l'elenco dei nomi dei file in essa raggruppati. 15
Operazioni di lettura / scrittura operazione di lettura (input): trasferimento di dati da periferica a memoria centrale operazione di scrittuta (output): trasferimento dati da memoria centrale a periferica input output 16
Hard Disk Drive (HDD) Il DRIVE è l apparecchiature collegata all unità centrale che serve a leggere/scrivere le informazioni binarie registrate con tecnologia magnetica. Superficie del disco divisa in tracce concentriche. La più piccola unità di memoria è il settore (blocco fisico). La dimensione dei blocchi fisici dipende dal sistema operativo. Ogni file occupa uno più blocchi fisici e il sistema operativo gestisce una tabella con l elenco dei blocchi fisici assegnati ad ogni file. 17
Organizzazione gerarchica del file system Directory radice: Root La directory superiore si indica con.. PATHNAME (percorso) per individuare un file Pathname assoluto: elenco delle directory partendo da root Pathname relativo: elenco delle directory partendo dalla directory corrente Esempio file prova.txt: Pathname assoluto: /home/server/utente1/prova.txt Pathname relativo partendo da MieiProgrammi:../prova.txt 18
Utilità di gestione dell HDD Pulitura disco serve per liberare spazio su disco occupato da file che non vengono più utilizzati dal sistema operativo (file temporanei, programmi disinstallati, ). deframmetazione riorganizza file e cartelle frammentati, ovvero memorizzati in blocchi fisici non contigui del disco a causa di ripetute operazioni di lettura / scrittura su disco. scandisk corregge gli errori del disco logici (errori del file system di Windows) e fisici (malfunzionamenti hardware che comportano l esclusione di blocchi fisici danneggiati) 19
Sistema operativo e Macchina virtuale Una macchina virtuale è un software che emula il comportamento di una macchina fisica, permettendo l'esecuzione di programmi originariamente scritti per un ambiente diverso. Un programma scritto per il S.O. Windows non funziona (non gira) su un computer con Linux. Utente Applicazioni Windows Macchina virtuale Window Server 2013 Sistema operativo nativo Linux Applicazioni Linux MACCHINA FISICA 20