1 Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona Corso di Informatica per Giurisprudenza Lezione 6
2 Agenda ä Struttura di un sistema operativo ä Processi, gestione memoria, file system; ä Dispositivi di input-output; ä Backup ä Sistemi operativi esistenti ä DOS, Windows, MAC OS, Linux
3 Schema generale di un sistema operativo
4 Concetto di processo ä Un processo è un programma in esecuzione ä Sistemi operativi diversi modellano diversamente le relazioni temporali tra processi ä ATTENZIONE: Unapplicazione non è necessariamente un programma ä Molte applicazioni sono implementate da un insieme di programmi e quindi quando sono in esecuzione vi sono molti processi
5 Stato di un processo ä Un processo, in un sistema operativo, può trovarsi in una delle seguenti situazioni ä Attivo: il processo è in esecuzione, e controlla le risorse; ä In attesa:il processo è in esecuzione, ma non controlla le risorse; ä Sopito:il processo non è in esecuzione, ma attende di essere richiamato
6 Gestione delle risorse ä Le risorse a disposizione di un processo sono fondamentalmente tre: ä Il tempo di CPU, ovvero il controllo dellesecuzione su macchine sequenziali, il possesso di una delle risorse di calcolo parallele su macchine non sequenziali ä La memoria centrale ä Le periferiche
7 Condivisibilità ä Una risorsa si dice condivisibile se il fatto che un processo vi acceda non significa che la controlli ä Un processo accede ad una risorsa quando può farne uso, ovvero quando i comandi che invia a quella risorsa sono eseguiti ä Un processo controlla una risorsa quando ogni richiesta di accesso da parte di altri processi effettuata mentre il processo stesso vi accede viene respinta
8 Monitor ä Un pezzo essenziale del kernel di un sistema operativo è il monitor ä Presiede al coordinamento ed al controllo delle funzioni del Resource Manager che gestisce ä Job Scheduling (CPU Time) ä Memory assignement ä Periferiche
9 Funzioni del monitor ä Il monitor ä Stabilisce laccesso alla CPU ä Gestisce laccesso a memoria e periferiche ä Coordina le funzioni di accesso
10 Problema generale ä I tempi daccesso a ä Operazioni di CPU ä Memoria centrale ä Periferiche sono enormemente differenti ä un accesso a periferica si compie in tempi dellordine dei millisecondi ä un accesso a memoria centrale in tempi dellordine dei microsecondi ä una operazione di CPU si compie in tempi dellordine dei picosecondi
11 Conseguenze ä Nel tempo che un processo impiega a fare accesso a memoria centrale o addirittura ad una periferica la CPU è posseduta ma ferma ä Meccanismo risolutore ä Si sottrae la CPU ä Si INTRAPPOLA il processo, cosicchè il monitor, quando riceve notizie dalla memoria o dalla periferica interessata che segnalano la terminazione dellaccesso toglie il processo dalla sua trappola e lo riammette in coda
12 Resource manager
13 Trap e DMA (1) ä Se la CPU viene sottratta ad un processo e questo processo deve accedere ad una risorsa, chi eseguirà i comandi di accesso? ä La tecnica implementata negli attuali H/W è la DMA (Direct Memory Access) ä Ogni banco di memoria centrale (RAM, ROM) ed ogni periferica posseggono un chip collaterale che esegue i comandi di accesso relativi alla memoria od alla specifica periferica: la DMA
14 Trap e DMA (2) ä Se intrappoliamo un processo e lo consegnamo alla DMA che eseguirà la sua richiesta di accesso alla risorsa controllata otteremo lo scopo prefissato ä La CPU sarà libera ä La coda non verrà interrotta
15 Fatti storici ä Anche se la tecnica sulle DMA è posteriore alla concezione di algoritmi atti ad implementare una politica di scheduling ROUND-ROBIN esse sono molto motivanti per tale scelta ä Inoltre, senza ROUND-ROBIN le DMA sono poco utili
16 Funzioni generali di un sistema operativo ä Il sistema operativo deve svolgere le seguenti funzioni 1. Processare le richieste di risorse non condivisibili stabilendo le modalità con cui i processi richiedenti accedono alle risorse stesse e lordine di accesso; 2. Processare le richieste di risorse condivisibili stabilendo lordine di accesso
17 Accesso alla CPU ä Storicamente ä Accesso secondo richiesta FIFO ä Accesso secondo priority PQ ä Accesso secondo dimensioni SJF ä Accesso a rotazione ROUND-ROBIN
18 Modello FIFO ä I processi che chiedono la CPU ne entrano in possesso quando tutti i processi che ne avevano fatto richiesta prima lhanno impiegata ä Un processo in coda è sempre in attesa ä Non esistono processi sopiti
19 Esempio ä Al tempo 0 chiede la CPU il processo p 1, che la terrà occupata per 10 secondi ä Al tempo 3 chiede la CPU il processo p 2 che la terrà occupata per 12 secondi ä Al tempo 8 chiede la CPU il processo p 3 che la occuperà 3 secondi ä Al tempo 11 chiede la CPU il processo p 4 che la occupa 7 secondi ä Al tempo 17 chiede la CPU il processo p 5 che la occuperà per 4 secondi
20 Esempio ä Pertanto: ä Al tempo 0 il processo attivo è p 1, nessun processo in coda ä Al tempo 3 si accoda p 2 ä Al tempo 8 si accoda p 3 ä Al tempo 10 termina p 1 e diviene attivo p 2 ä Al tempo 11 si accoda p 4 ä Al tempo 17 si accoda p 5 ä Al tempo 22 termina p 2 e diviene attivo p 3 ä Al tempo 25 termina p 3 e diviene attivo p 4 ä Al tempo 32 termina p 4 e diviene attivo p 5 ä Al tempo 36 termina p 5
21 Schema p5p5 p2p2 p2p2 p3p3 p3p3 p3p3 p4p4 p3p3 p4p4 p4p4 p5p5 p1p1 p1p1 p1p1 p2p2 p2p2 p2p2 p3p3 p4p4 p5p5 } processo attivo
22 Caratteristiche di FIFO ä Vantaggi ä Ordine di precedenza rispettato ä Certezza dellesecuzione ä Completamento di un singolo processo in tempo pari al tempo di esecuzione dopo laccesso alla risorsa ä ä Svantaggi ä Tempo di attesa in coda variabile ä Impossibilità di gestire le urgenza ä Processi molto lunghi possono tenere in coda processi molto corti
23 Priority queueing ä I processi che chiedono la CPU ne entrano in possesso quando tutti i processi che ne avevano fatto richiesta prima avendo priorità maggiore o uguale al processo richiedente lhanno impiegata ä Un processo in coda è sempre in attesa ä Non esistono processi sopiti
24 Implementazioni di PQ (1) ä A coda singola ä I processi vengono monitorati solo allingresso in coda e la risalgono fino a quando il processo che le precede ha la stessa priorità, o priorità maggiore o hanno raggiunto la cima della coda
25 Implementazioni di PQ (2) ä A coda multipla ä Ogni priorità ha la sua coda ä I processi di una coda vengono eseguiti in ordine FIFO ä Le code vengono monitorate in ordine diretto dalla priorità più alta a quella più bassa
26 Caratteristiche di PQ (1) ä Vantaggi ä Garanzia di priorità per processi urgenti ä Tempo di attesa in coda dipende dalla priorità ä ä Svantaggi ä Processi a bassa priorità possono restare in coda potenzialmente allinfinito ä Difficile attribuire le priorità in modo automatico
27 Caratteristiche di PQ (2) ä Vantaggi ä Garanzia di priorità per processi urgenti ä Tempo di attesa in coda dipende dalla priorità e in parte dallordine di richiesta ä I processi, anche a bassa priorità vengono sempre eseguiti ä ä Svantaggi ä Difficile attribuire le priorità in modo automatico ä Processi ad alta priorità possono attendere a lungo in ogni caso, essendo in coda alle richieste
28 Shortest Job First ä Viene eseguito per primo il processo più breve tra quelli in coda ä Un processo in coda è sempre in attesa ä Non esistono processi sopiti
29 Caratteristiche di SJF ä Vantaggi ä Tempo medio di attesa in coda è minimizzato ä ä Svantaggi ä Processi lunghi possono restare in coda potenzialmente allinfinito ä Nessuna priorità
30 Round-Robin ä Ogni processo è ripartito in fette di tempo (time-slice) di durata massima predefinita ä Quando una time-slice è terminata la CPU viene attribuita al processo successivo in coda ä I processi in coda sono sia in attesa che sopiti
31 Round-Robin e DMA ä Se un processo fa solo operazioni CPU durante il suo Time-Slice, allora, dato che non verrà intrappolato continuerà a possedere la CPU ä Se un processo accede a memoria o periferiche finirà intrappolato e il monitor gli sottrarrà la CPU ä Perciò, in presenza di un trap, la durata di una time-slice sarà inferiore
32 Caratteristiche del Round-Robin ä Vantaggi ä Certezza dellesecuzione ä Minimizzazione del tempo di attesa in coda ä Sfruttamento completo delle risorse ä ä Svantaggi ä La maggior complicazione dellalgoritmo di scheduling richiede grande attenzione alla sua implementazione
33 Schemi del Job Scheduling
34 Concorrenza ä Processi eseguiti in coda su macchine sequenziali monitorate da un sistema operativo con Job Scheduler a politica Round-Robin si dicono concorrenti ä La concorrenza non è parallelismo
35 Tipi di sistema operativo (1) ä Rispetto allesecuzione di applicazioni un sistema operativo può concepire applicazioni in tre stati ä Con il Focus ä Attive ä Accessibili
36 Tipi di sistema operativo (2) ä Se un sistema operativo ammette più applicazioni con il focus e il Job Scheduling è Round-Robin, allora due utenti potrebbero eseguire applicazioni diverse in concorrenza ä Se ciò avviene diremo che il sistema operativo con time-sharing competitivo
37 Tipi di sistema operativo (3) ä Nel caso opposto, cioè quando una applicazione cede il focus solo spontaneamente, diremo che il time-sharing è cooperativo ä Windows95 e Mac OS fino alla versione 4 sono sistemi definiti cooperativi ä Da Windows98 in poi e da Mac OS 5 si parla di sistemi competitivi
38 File system ä Si chiama File System lorganizzazione strutturale dei dati di memoria di massa gestita da un sistema operativo ä Questa funzione è fondamentale
39 Organizzazione del file system ä Aspetto ä È un albero ä Navigabile bidirezionalmente ä I nodi si chiamano Directory, e i legami parenthood links
40 Organizzazione dei dati ä I file vengono collocati nel disco dove possibile ä Per sfruttare al meglio lo spazio i file possono essere spezzati in blocchi ä La cancellazione di un file o la sua modifica comporta la modifica (e potenzialemte) leliminazione dei blocchi che lo compongono
41 Metodo ä Occorre quindi progettare tecniche di Allocazione dei Blocchi che consentano di evitare sprechi e garantire la conservazione dellintegrità dei dati stessi ä Le politiche di allocazione sono uno delle più significative scelte strategiche nella definizione di un sistema operativo
42 Tecniche di allocazione (1) ä Le tecniche di allocazione dei blocchi sono costruite sui seguenti assunti ä I blocchi hanno tutti le stesse dimensioni ä Il numero di blocchi di un file è variabile
43 Best-Fit ä Trova le zone libere del disco ä Ripartisci il file in segmenti di blocchi adiacenti in modo da garantire che ogni segmento occupi una zona libera del disco con il minimo spreco di memoria
44 Caratteristiche di Best-Fit ä Potenzialmente difficile il problema di trovare le aree per lallocazione ä Se residuano piccole porzioni del disco esse saranno certamente sprecate ä Esempio ä Windows95, Windows98 ä Implementava una FAT (File Allocation Table) dove registrava le informazioni di allocazione e disallocazione ä Dopo un periodo di uso intenso occorreva operare una deframmentazione per compattare e quindi riutilizzare le aree del disco inutilizzate
45 Worst-Fit ä Trova le zone libere del disco ä Ripartisci il file in blocchi in modo da garantire che ogni segmento occupi una zona libera del disco con il massimo spreco di memoria
46 Caratteristiche di Worst-Fit ä Minor spreco ä È più probabile che se un file è piccolo si allochi subito
47 Backup (1) ä A causa dei crash elettrici, degli errori umani e dei problemi con software con bachi è possibile che dati recentemente scaricati sul computer siano illeggibili ä Per prudenza, quindi, si fa copia del contenuto del disco (o talvolta di una sua parte) ä Tale copia si chiama backup
48 Backup (2) ä Il backup, per sistemi di grandi dimensioni, può risultare voluminoso e lungo da fare a mano ä Si ricorre quindi a tecniche di Backup periodico (ogni giorno)
49 Sistemi operativi esistenti ä La grande famiglia UNIX ä Unix ä Linux ä NetBSD, FreeBSD ä Windows ä Windows 95 ä Windows 98 ä Windows 2000 ä Windows XP
50 DOS e Windows ä DOS (Disk Operating System) fu una idea di interesse sviluppata con lo scopo di rendere semplice laccesso a risorse di un computer da parte di utenti inesperti ä Attualmente esso è una componente di Windows (il Prompt dei Comandi)
51 Mac OS ä La Apple ha sempre prodotto il software di gestione delle proprie macchine in modo totalmente autonomo rispetto alle pressioni del mercato ä Il sistema operativo, molto simile come ambiente operativo a Windows, gestisce la memoria e le altre risorse in modo prioritario