Fondamenti di Informatica: Sistemi Operativi 1 Introduzione Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all’elaboratore di interagire con l’utente. Caricato automaticamente al momento dell’accensione dell’elaboratore. LINGUAGGI DI PROGRAMMAZIONE: permettono di creare SOFTWARE SOFTWARE APPLICATIVO: programmi di videoscrittura, fogli elettronici, software di gestione delle basi dati, ecc. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 2 Sistema Operativo - Definizione SISTEMA OPERATIVO: Insieme di programmi che operano sulla macchina fisica per dare all’utente un livello di astrazione elevato; realizzazione della MACCHINA VIRTUALE. Diversi sistemi operativi a seconda di scelte di gestione Hardware: Interfaccia utente: Caratteri/Grafica Sicurezza: Alta/Bassa Gestione processi: Monotasking/Multitasking Gestione utenti: Monoutente/Multiutente Capacita’ elaborazione: 8, 16, 32 bit Portabilita’: Vincolato/Non vincolato al processore Esempi: DOS, Windows, Linux, Unix, OS2, ecc. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 3 Scopi Rendere disponibili le varie unita’ all’utente Gestione efficiente delle risorse (es: memoria, processore, ecc.) Sicurezza Simulare macchina dedicata (Multiutente) Gestire comunicazione utente-calcolatore Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 4 Struttura HW-SW APPLICATIVI SISTEMA OPERATIVO BIOS HW Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 5 Strati del Sistema Operativo PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE PERIFERICHE GESTIONE MEMORIA NUCLEO (KERNEL): Gestione processi MACCHINA FISICA (HW) Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 6 Nucleo dei Sistemi Operativi Dialogo con l’Hardware Esecuzione effettiva comandi Risposta a eventi generati da periferiche Condivisione risorse (CPU virtuale ad ogni utente) Universita’ degli Studi di Milano-Bicocca Compiti del Nucleo: Fondamenti di Informatica: Sistemi Operativi 7 Nucleo - Gestione dei Processi PROGRAMMA: entita’ statica - Insieme di istruzioni PROCESSO: entita’ dinamica - Programma in fase di esecuzione. E’ costituito dal programma e da tutte le informazioni necessarie all’esecuzione: Dati, istruzione corrente, stato, ecc. L’unita’ di elaborazione dei processi: PROCESSORE. Se il calcolatore ha un solo processore, ad ogni istante solo un processo puo’ essere in esecuzione. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 8 Gestione dei Processi Quando viene interrotta l’esecuzione di un processo? Interruzione interna - SINCRONA: richiesta di operazione di I/O da parte del processo; chiamata al supervisore; attivazione nucleo Interruzione esterna - ASINCRONA: evento non causato dal processo (es. quanto di tempo esaurito, periferica termina operazione di I/O) Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 9 Esecuzione contemporanea processi Parallelismo SIMULATO: Time-sharing: quanti di tempo Salvataggio e ripristino del contesto Vantaggio: sfruttamento risorse: CPU e periferiche Universita’ degli Studi di Milano-Bicocca Parallelismo REALE: necessita’ di avere piu’ processori Fondamenti di Informatica: Sistemi Operativi 10 Stato di un processo INIZIO ESECUZIONE FINE ESECUZIONE Acquisizione CPU PRONTO ESECUZIONE Fine quanto di tempo Interr. Interna Richiesta I/O Evento esterno Atteso ATTESA Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 11 Context-Switching Sospensione processo in ESECUZIONE: necessario memorizzare il contesto del processo. CONTESTO: contenuto dei registri del processore in un’apposita zona di memoria (descrittore del processo) CONTEXT - SWITCHING: Sospensione processo Salvataggio contesto Scelta tra i processi pronti del prossimo processo da eseguire Ripristino del contesto del processo prescelto Attivazione del processo prescelto Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 12 Scelta processo per esecuzione Obiettivi: Efficienza elevata: (throughput - numero processi elaborati) Garanzia agli utenti Parallelizzazione Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 13 Scelta processo per esecuzione Politica piu’ semplice: quanto di tempo assegnato ai vari processi in ordine. Politica ROUND-ROBIN (rotazione). Coda di processi pronti con modalita’ FIFO (First In First Out) Caratteristiche quanto di tempo: Maggiore del tempo di context switching Minore del tempo di esecuzione di un programma Minore del tempo medio di esecuzione tra due richieste di operazioni di input/output Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 14 Scelta processo per esecuzione Round-Robin con priorita’: Ad ogni processo e’ assegnata priorita’ (es: importanza processo, processi con molto I/O) Scelta del processo con priorita’ massima Processi con priorita’ uguale sono gestiti con Round-Robin Esempio: WIN 2000 Round-Robin con priorita’ Quanto di tempo: 15-30 mSec. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 15 Altre operazioni gestite dal kernel Sincronizzazione dei processi (problemi di concorrenza): STARVATION: un processo con bassa priorita’ non riesce mai ad accedere alle risorse DEADLOCK: due o piu’ processi si bloccano a vicenda, attendendo eventi che non si potranno verificare Accesso ad informazioni critiche: semafori Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 16 Gestione Memoria Centrale Memoria centrale: risorsa unica, in genere scarsa. I processi pronti devono risiedere, almeno in parte, in memoria centrale Gestore Memoria - Funzioni principali: Condivisione Memoria: piu’ utenti e piu’ processi – Parziale sovrapposizione di spazi – Comunicazione fra processi – Minore ridondanza dati Protezione memoria: ogni processo possiede un’area riservata Spazio virtuale: I processi ignorano l’effettiva collocazione fisica dei dati e delle istruzioni Memoria virtuale: la memoria disponibile e’ piu’ grande di quella effettiva Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 17 Tecniche di Gestione Memoria Centrale Rilocazione del programma: trasformazione degli indirizzi logici in indirizzi fisici Swapping: utilizzo di memorie di massa per simulare memoria centrale Suddivisione della memoria: Segmentazione: La memoria e’ suddivisa in segmenti, parti di dimensioni diverse le une dalle altre Paginazione: La memoria e’ suddivisa in pagine, parti di dimensione fissa Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 18 Rilocazione Catena di Programmazione: Programma sorgente Compilatore Programma oggetto Linker Programma eseguibile Nel programma eseguibile, tutti i nomi simbolici e i riferimenti sono stati RISOLTI (espressi come indirizzi di memoria). Gli indirizzi di un programma eseguibile possono presentarsi in: - formato rilocabile: gli indirizzi fanno riferimento ad un valore base logico (Indirizzo zero logico). - formato assoluto: indirizzo fisico Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 19 Rilocazione Caricatore (Loader): si occupa di caricare i programmi in memoria Se indirizzi assoluti Solo caricamento Se indirizzi relativi Aggiornamento degli indirizzi fisici in base alla RILOCAZIONE posizione di caricamento Due tipi di rilocazione: - Statica: all’atto del caricamento in memoria, gli indirizzi relativi divengono indirizzi assoluti - Dinamica: il codice non viene modificato; utilizzo di indirizzi rilocabili e REGISTRO BASE. Necessaria per Multiprogrammazione. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 20 Registro Base Gli indirizzi relativi fanno riferimento ad un indirizzo zero logico Registro base: contiene l’indirizzo della prima cella di memoria occupata dal programma Indirizzo finale: registro base + indirizzo rilocabile = indirizzo assoluto Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 21 Memoria virtuale - Swapping Viene simulata la presenza di RAM sfruttando le memorie di massa Swap: Il contenuto della memoria centrale viene trasferito su una memoria di massa (Area di SWAP), in modo da liberare spazio Solo i processi presenti in memoria centrale possono essere eseguiti Quando necessario, i dati memorizzati nell’area di Swap vengono caricati in memoria (scaricando da questa altri dati, per fare posto) Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 22 Segmentazione della memoria Divisione della memoria in parti di dimensioni diverse, dette SEGMENTI Avvio un programma Si crea un processo Devo trovare un segmento libero di dimensione sufficiente a contenere tutte le informazioni relative al processo (in genere, segmenti un po’ piu’ grandi per poter allocare dati dinamici) Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 23 Segmentazione della memoria Registro Base S1:P2 S2 S3:P1 + > Indirizzo Rilocabile Universita’ degli Studi di Milano-Bicocca S4:P3 S5 Registro Frontiera ERRORE Fondamenti di Informatica: Sistemi Operativi 24 Politiche di gestione segmenti Segmenti a dimensione fissa Vantaggio: semplici da gestire Svantaggio: parte del segmento non utilizzato, spreco memoria. Politica del best-fit. Segmenti a dimensione variabile Vantaggio: ottimizzazione uso memoria Svantaggio: spreco CPU per compattare la memoria Gestione multiprogrammazione: per fare spazio ad un processo, devo liberare un intero segmento Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 25 Paginazione della memoria La memoria e’ suddivisa in parti che hanno tutte la stessa dimensione Una pagina e’ costituita da un certo numero di celle di memorie Il numero di celle per pagina e’ una potenza di due, per semplificare l’indirizzamento I processi sono suddivisi in varie pagine, NON NECESSARIAMENTE CONTIGUE Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 26 Paginazione della memoria Vantaggi: Non e’ necessario avere uno spazio libero consecutivo per contenere un processo Non e’ necessario avere l’intero processo caricato in memoria. Si mantiene in memoria solo la parte effettivamente utilizzata Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 27 Paginazione della memoria Supponiamo registro indirizzi a I bit bit sono divisi (logicamente) in due parti: I bit piu’ significativi per indirizzare bit per indirizzare I restanti Universita’ degli Studi di Milano-Bicocca pagine celle all’interno di ogni pagina Fondamenti di Informatica: Sistemi Operativi 28 Paginazione della memoria Esempio: memoria di 16 pagine i-esima pagina Processo h-esimo, parte j-esima Tabella delle pagine: 00 01 10 11 00 M0:P2,0 M1:P1,2 M2:P4,0 M3:P1,1 01 M4:P3,0 M5:P4,2 M6:P3,3 M7:P2,1 10 M8:P2,2 M9:P1,4 M10:P3,2 M11:P2,3 11 M12:P1,0 M13:P4,3 M14:P3,1 M15:P3,4 Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 29 Paginazione della memoria Tabella del processo P1: Pagina logica Presenza Pagina fisica Ind. Memoria di Massa P1,0(0000) Y M12(1100) I1,0 P1,1(0001) Y M3(0011) I1,1 P1,2(0010) Y M1(0001) I1,2 P1,3(0011) N P1,4(0100) Y Universita’ degli Studi di Milano-Bicocca I1,3 M9(1001) I1,4 Fondamenti di Informatica: Sistemi Operativi 30 Paginazione della memoria Come avviene l’indirizzamento rilocabile? Viene fornito un indirizzo rispetto all’indirizzo logico zero. E’ necessario: 1 Ricavare la posizione effettiva della pagina in memoria 2 Indirizzare la cella all’interno di questa pagina Nota: la posizione della cella all’interno della pagina e’ la stessa per pagina logica e pagina fisica (bit meno significativi). Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 31 Da Indirizzo logico a Indirizzo fisico Dato l’indirizzo logico: 1. I bit piu’ significativi permettono di ricavare la pagina logica del processo 2. Mediante la tabella del processo, verifico se la pagina e’ presente in memoria 3. Se non e’ presente (Page Fault): si libera (se necessario) una pagina di memoria, si carica la pagina del processo richiesta, e si aggiorna la tabella processi (sia per la pagina caricata, che per la pagina cancellata). Passo al punto successivo 4. Se presente: ricavo l’indirizzo della pagina fisica; compongo tale indirizzo con i bit meno significativi; ottengo un indirizzo assoluto (fisico) per indirizzare la cella che interessa Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 32 MMU e tecniche di paginazione Memory Management Unit: Supporto HW che Converte indirizzi logici in indirizzi fisici Informa il Sistema Operativo di Page Fault In caso di Page Fault: Il processo passa in stato di attesa, finche’ la pagina richiesta e’ presente in memoria Il SO libera piu’ pagine di memoria: pagine utilizzate piu’ indietro nel tempo (principio di localita’ dei programmi) Il SO carica piu’ pagine del processo che ha provocato il page fault. Numero di pagine caricate: non troppo elevato (spreco memoria) e non troppo ridotto (nuovi page fault) Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 33 Gestione Periferiche Obiettivi: visione di alto livello Indipendenza dalla struttura Hardware delle periferiche Gestione errori Gestione accessi concorrenti alle periferiche Si utilizzano due tipi di driver: Driver Fisici (hardware): attivati dal gestore delle interruzioni per eseguire le operazioni di trasferimento e manipolazione dei dati Driver logici (software): fanno parte del sistema operativo, anche se in genere sono forniti dai costruttori dei dispositivi. Gerarchia di operazioni con organizzazione a strati. Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 34 Gestione Periferiche Lettura/scrittura su disco: gestione dischi e testine. Esempio: posizionamento testine. Shortest Seek First ed Elevator Algorithms. Spooling system: Accesso concorrente a risorse condivise (stampante). Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi Gestione dei File 35 File: contenitore logico delle informazioni presenti nelle memorie di massa File System: software per la gestione dei file. Scopo: trasparenza rispetto alle caratteristiche fisiche della memoria di massa Operazioni: Creazione/Modifica file con scrittura dati Lettura dati da file precedentemente memorizzati Cancellazione file Copia file tra dispositivi diversi Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 36 Gestione dei File Nome Estensione Informazioni ausiliarie Suddivisione file: Directory (Cartelle) Nome locale Nome completo Operazioni: MD, CD, RD Universita’ degli Studi di Milano-Bicocca Filename: Fondamenti di Informatica: Sistemi Operativi 37 Interprete dei Comandi Strato superiore del sistema operativo Riceve ed interpreta i comandi dell’utente I comandi richiamano funzioni del sistema operativo In un sistema multiutente si deve generare un interprete comandi per ogni utente collegato Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 38 Esecuzione di un programma applicativo L’utente seleziona il programma: interprete comandi Associazione file-dati da caricare: file systems Lettura effettiva dei dati da disco: gestore periferiche Allocazione memoria centrale e trasferimento dati: gestore memoria Creazione, attivazione e gestione processo: Kernel Universita’ degli Studi di Milano-Bicocca Fondamenti di Informatica: Sistemi Operativi 39 Utilities dei Sistemi Operativi Software aggiuntivo che svolge operazioni utili all’utente. Formattazione: prepara il disco in modo da rendere possibile la memorizzazione dei dati. Creazione FAT, tabella che registra la localizzazione di tutti i file sul disco De-Frammentazione: riunisce i frammenti dei file in posizioni contigue Scanning del Disco: individua e marca eventuali settori del disco rovinati Eliminazione dei File: Cestino Universita’ degli Studi di Milano-Bicocca