La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Inquadrare Il Problema Grande sviluppo tecnologico –Potenza di calcolo –Costi contenuti Utenti con scarse conoscenze informatiche Necessita di : User friendly.

Presentazioni simili


Presentazione sul tema: "Inquadrare Il Problema Grande sviluppo tecnologico –Potenza di calcolo –Costi contenuti Utenti con scarse conoscenze informatiche Necessita di : User friendly."— Transcript della presentazione:

1 Inquadrare Il Problema Grande sviluppo tecnologico –Potenza di calcolo –Costi contenuti Utenti con scarse conoscenze informatiche Necessita di : User friendly

2 Cose Un Sistema Operativo Il Sistema operativo è un programma, o meglio, un insieme di programmi, scritto allo scopo di rendere disponibili alluso del risorse di calcolo e i dispositivi collegati al computer User 1User 2User 3User n compiler assemblertext editor data base system PROGRAMMI APPLICATIVI SISTEMA OPERATIVO COMPUTER HARDWARE

3 Funzioni Svolte Dal S.O. Gestione delle risorse sia hardware (tempo di CPU, spazio di memoria, dispositivi di I/O,etc) che software (file, strutture dati, etc). Il S.O. assegna le risorse ai processi utenti in base a prefissate politiche di gestione. Definizione di una macchina virtuale di più semplice uso da parte degli utenti, in grado di nascondere tutta una serie di particolarità del funzionamento del sistema legate alla struttura hardware (es. gestione degli interrupt). La macchina virtuale mette a disposizione dellutente apposite operazioni che gli consentono di operare ad un livello di astrazione maggiore. Assegnazione delle Risorse in modo da rendere Efficiente il loro uso Risoluzione dei conflitti Scelta dei criteri Esempio : Controllore di floppy disk

4 Struttura S.O. GERARCHICA MODULO PRIMITIVA MACCHINA VIRTUALE PORTABILITA I PROGRAMMI CHE LO COMPONGONO SI COLLOCANO A LIVELLI DIVERSI, SI SERVONO DI PROGRAMMI CHE STANNO A LIVELLI SOTTOSTANTI E SERVONO I PROGRAMMI A LIVELLI SUPERIORI Un insieme di routine scritte per risolvere un problema (attivano i meccanismi fisici necessari ) Una procedura standard per mezzo della quale il modulo mette a disposizione i servizi La sua attitudine ad essere eseguito su macchine diverse

5 Evoluzione S.O. Prima generazione ( ) –Programmazione in LM –Controllo dellesecuzione da parte delloperatore –Introduzione di programmi e dati tramite lettura di schede Seconda generazione ( ) –Sistemi batchSistemi batch –Buffer I/OBuffer I/O –SpoolingSpooling Terza generazione ( ) –MultiprogrammazioneMultiprogrammazione –TimesharingTimesharing –Sistemi interattiviSistemi interattivi Quarta generazione( ) –Personal computer e Workstation –Sistemi distribuiti –Sistemi operativi di rete –Sistemi operativi distribuiti Criteri di base : Levoluzione dei S.O. è stata guidata dalla necessità di soddisfare, in modo sempre più efficace, le esigenze degli utenti. Ciò è stato possibile grazie allo sviluppo tecnologico e al continuo potenziamento del software di base e dei linguaggi di programmazione Criteri di base : Levoluzione dei S.O. è stata guidata dalla necessità di soddisfare, in modo sempre più efficace, le esigenze degli utenti. Ciò è stato possibile grazie allo sviluppo tecnologico e al continuo potenziamento del software di base e dei linguaggi di programmazione

6 Classificazione Dei S.O. Organizzazione interna Monoprogrammato Multiprogrammato A divisione di tempo Visibilità utente Batch Interattivo General Purpose Transazionale Elaborazione a distanza

7 Il Concetto Di Processo Il concetto di Processo è fondamentale in sistemi caratterizzati da più attività che possono essere svolte logicamente in parallelo. Esso descrive, in termine di operazione eseguite dalla CPU, il comportamento di un programma in esecuzione. Programma entità statica (passiva) che descrive le azioni da compiere Processo entità dinamica (attiva) che rappresenta lesecuzione di tali azioni. Più processi possono essere associati allo stesso programma : ciascuno rappresenta lesecuzione dello stesso codice con dati diversi Ogni processo ha un insieme di dati ad esso riferiti: è unarea dati contenente informazioni relative allidentità del processo ed alla sua eventuale priorità e altro. Viene chiamato Descrittore del Processo

8 Stati Di Un Processo Run : il processo è in esecuzione sul processore Wait : il processo non può avanzare in quanto non ha a disposizione tutte le risorse necessarie ma non è ancora stato ultimato (attesa I/O) Ready : il processo ha a disposizione tutto ciò che gli serve per essere eseguito ma non essendo disponibile il processore deve aspettare il proprio turno Terminate:il processo ha avuto termine Hold : il nome del programma è inserito nellelenco di quelli in attesa di esecuzione e gli vengono associate tutte le informazioni necessarie al S.O. Perché possa farlo diventare un processo attivo hold run terminate ready wait Ciclo di avanzamento di un processo

9 Il concetto di Risorsa Perché un processo posso evolvere nel tempo, occorre che possa disporre di tutti gli oggetti necessari per lesecuzione di quanto descritto nel programma. RISORSA = qualsiasi elemento hardware o software che viene usato da un processo e che ne condiziona lavanzamento. Le risorse possono essere classificate in vari modi : Hardware o Software Permanenti( può essere utilizzata ripetutamente) o Consumabili ( viene creata da un processo e utilizzata da un altro) Seriali ( un solo processo alla volta) o Parallele (più processi in parallelo) Interrompibili ( è seriale ma è possibile che passi ciclicamente da un processo ad un altro)

10 Il S.O. come gestore delle risorse (1) Dato che in generale in un sistema multiprogrammato più processi possono richiedere le medesime risorse e che questultime sono numericamente limitate, uno dei compiti fondamentali del S.O. è quello di gestirle cercando, di volta in volta, di redimere gli eventuali conflitti che sorgono tra i vari processi in competizione per ottenere la stessa risorsa. Per fare ciò il S.O. dovrà : Tener aggiornate le informazioni sullo stato di ciascuna risorsa, per poter verificare se questa è libera o è già assegnata ad un processo Interpretare le richieste dei singoli processi e, in base alla politica di gestione, redimere eventuali situazioni di conflitto Assegnare la singola risorsa ad un determinato processo Riprendere il controllo della risorsa

11 Il S.O. Come Gestore Delle Risorse (2) I moduli del S.O. dedicati alla gestione delle risorse possono essere suddivisi in 4 blocchi : Gestore delle periferiche S.O. Gestore della memoria Gestore dei file Gestore dei processori nucleo fine

12 Gestore Dei Processori (1) I moduli più significativi sono : Lo schedulatore di lavori (job scheduler o long term scheduling)schedulatore di lavori Lo schedulatore dei processi (process scheduler o short term scheduling)schedulatore dei processi Il controllore del traffico (traffic controller o dispatcher)controllore del traffico I 2 moduli di scheduling utilizzano particolari politiche di scelta che si possono fondare su vari criteri : Utilizzo della CPU : massimizzarla Produttività : massimizzare il numero dei programmi eseguiti nellunità di tempo Tempo di turnaround e di risposta : minimizzarlo Non privilegio : garantire a tutti gli utenti un servizio omogeneo in termini di tempi di attesa Nel caso di un sistema monoprogrammato il job scheduler e il process scheduler coincidono!!!

13 Job scheduler Il Job scheduler è il supervisore che assegna le risorse di un sistema a certi lavori. Sceglie, fra quelli proposti, i lavori da eseguire e li carica da memoria di massa in memoria centrale, creando i relativi processi. I descrittori di tutti i lavori sono organizzati in una lista che lo schedulatore scandisce al fine di determinare quale lavoro portare in MC per lesecuzione. Tale scelta si basa su una strategia direttamente implementata nellalgoritmo di schedulazione. Politiche di schedulazione FIFO : i lavori vengono eseguiti nellordine in cui giungono ( tempi di risposta imprevedibili) Priorità statica : si assegna ad ogni lavoro un parametro che condiziona le decisioni dello schedulatore (può essere definito dal responsabile del centro oppure calcolato dal S.O. in base ad alcuni valori forniti dallutente) un lavoro può rimanere in coda indefinitamente -starvation) Priorità dinamica : il S.O. incrementa la priorità di un lavoro al crescere del tempi di attesa

14 Process Scheduler Il Process scheduler opera sulla lista dei processi in stato ready per scegliere, in base ad una certa politica, quale processo portare in stato di run. Tipiche politiche usate sono : Round Robin : il processore viene assegnato, a turno, ad ogni processo per un certo periodo di tempo e, se alla fine del periodo lesecuzione non è terminata, il processo viene riportato nella coda dei pronti Tecnica a rientro per percentuale di tempo usato : il processore viene assegnata a turno ad ogni processo ma, se il quanto di tempo viene usato solo in parte, quando il processo rientra nella coda dei pronti la sua posizione verrà determinata in rapporto alla percentuale di tempo usata Round Robin a più livelli : inizialmente tutti i processi vengono posti nella coda 1 e a ciascuno di essi, a turno, viene assegnato un quanto di tempo dal processore; se alla fine del tempo concesso un processo non è terminato viene posto nella coda successiva che è a più basso livello di priorità. Le code vengono sempre scandite in ordine di priorità.

15 Traffic controller Il traffic controller ha il compito di controllare lavanzamento di un processo ed in particolare deve tener traccia di tutti i processi attivi e provvedere al cambio di stato dei diversi processi, oltre a coordinare la sincronizzazione e cooperazione tra i vari processi. Sincronizzazione Cooperazione

16 Gestore della Memoria (1) La gestione della Memoria Centrale occupa un ruolo estremamente importante nella definizione di un S.O. poiché una scadente organizzazione di questo modulo può provocare vere e proprie strozzature nellesecuzione dei programmi. Unefficiente gestione della memoria si prefigge alcuni obiettivi principali, individuabili nei seguenti termini : RILOCAZIONE : RILOCAZIONE : traduzione degli indirizzi relativi in indirizzi assoluti PROTEZIONE : controllo da parte del S.O. che non avvenga interazione negativa fra i processi CONDIVISIONE : sincronizzare laccesso a una stessa area in MC da parte di più processi Si conviene di chiamare Spazio Fisico (SF) linsieme degli indirizzi delle locazioni di MC accessibili a livello della macchina. Daltra parte è comodo pensare che ciascun processo operi su uno spazio di indirizzi più astratto che chiamiamo Spazio Logico (SL) del processo cui si può far corrispondere una memoria logica. In accordo a ciò ogni processore virtuale non genera indirizzi fisici ma logici. Da un punto di vista concreto occorrerà far corrispondere ad ogni indirizzo logico di un processo un preciso indirizzo fisico cioè implementare una funzione di mapping T : SL SF in modo da generare una mappa della memoria. Il Manager della Memoria affronta un duplice problema legato alla mappa della memoria : 1.Tradurre i nomi simbolici degli indirizzi in locazioni in MC ( rilocazione) 2.Allocare ai processi la quantità di memoria necessaria

17 Gestore della Memoria (2) Le funzioni principali del Memory Management sono : Tenere aggiornato lo stato di ogni locazione di memoria della MC Decidere in base alla politica di allocazione a quale processo debba essere assegnata la memoria, con che priorità e per quanto tempo Selezionare le specifiche locazioni da assegnare ad un processo e provvedere alla memorizzazione reale delle informazioni associate Gestire la politica del recupero del controllo della memoria, decidendo a quale processo togliere la risorsa

18 Gestore Della Memoria ( Tecniche Di Allocazione1 ) Allocazione a singola partizione : è la tecnica più semplice; viene utilizzata in ambiente di monoprogrammazione. La memoria centrale è occupata in parte dal S.O. e in parte dal processo utente. Una parte della memoria rimane spesso completamente inutilizzata e i lavori effettivamente eseguibili sono solo quelli che richiedono come spazio degli indirizzi unarea minore o uguale di quella a disposizione dellutente. Per gli altri lavori occorrerà ricorrere alle tecniche di overlay. Allocazione a partizioni statiche : è una delle più semplici tecniche adottabili in ambiente di multiprogrammazione. Si basa essenzialmente sulla suddivisione della MC in aree separate, chiamate partizioni, di dimensione fissata a priori in ciascuna delle quali è possibile allocare un processo. Lampiezza delle aree viene decisa in base alle caratteristiche e alla dimensione dei lavori che normalmente sono in esecuzione. Il descrittore della memoria sarà formato da una semplice tabella che conterrà, per ciascuna partizione, la lunghezza della partizione, lindirizzo di partenza e lindicatore di stato (libera o no) e il nome del processo che eventualmente la occupa. Allocazione a partizioni dinamiche : ogni volta che un processo deve essere caricato in MC è il SO che crea la partizione dimensionandola opportunamente. La suddivisione della memoria in partizioni varia, quindi, dinamicamente, in rapporto al numero e alla dimensione dei processi schedulati. Anche in questo caso è necessario disporre di opportune tabelle di descrizione, una per le partizioni definite e occupate, una per le aree libere. Problemi Algoritmi di miglioramento

19 Gestore Della Memoria (Tecniche Di Allocazione 2) Una soluzione al problema della frammentazione può essere rappresentato dal compattamento periodico di tutte le aree occupate verso la parte alta della memoria centrale così da permettere la creazione di unarea libera sul fondo della stessa. Questa operazione è molto complessa in quando lo spostamento di un programma da unarea allaltra implica luso della rilocazione dinamica. Tale tecnica viene chiamata allocazione a partizioni rilocabili. In tale modo si riduce la frammentazione ma si complica la gestione con il ricalcolo degli indirizzi e con la necessaria valutazione sulla opportunità di ricompattare lo spazio. In tutti i metodi visti finora permane il vincolo della contiguità

20 Gestore Della Memoria (Tecniche Di Allocazione 3) Eliminando il vincolo di contiguità si riduce certamente la frammentazione e si permette di allocare processi che diversamente non potrebbero essere caricati a meno di non ricorrere alla riconfigurazione della memoria. Tale tecnica viene chiamata Paginazione. Le parti fisiche della memoria, o pagine, nelle quali allocare le parti logiche del programma sono di dimensioni fisse (ad esempio 4k o multipli di 2). In questo modo mentre le pagine del programma sono logicamente contigue, i blocchi di memoria possono anche non esserlo. Poiché il processo deve mantenere una sua unità logica, lindirizzamento non è più lineare ma bidimensionale; il sistema deve infatti disporre dellindirizzo di pagina e dellindirizzo allinterno della pagina. Poiché pagina logica e pagina fisica hanno la stessa dimensione la traduzione degli indirizzi da parte del sistema avviene consultando unapposita tabella di traduzione (tabella di mappa di pagina) che contiene lindirizzo base di ogni pagina della memoria fisica. Il gestore della memoria deve inoltre tenere aggiornata una tabella di occupazione delle pagine fisiche per conoscere dove allocare le nuove richieste. La rilocazione è obbligatoriamente dinamica in quanto quando avviene il caricamento di una pagina il sistema non è in grado di sapere dove le altre pagine verranno allocate. Naturalmente la dimensione delle pagine e dei blocchi deve essere fatta tenendo conto dei lavori da effettuare e della struttura hardware del sistema : se la misura di una pagina è troppo grande ci si ritrova con gli stessi problemi delle partizioni, se la misura è troppo ridotta si dovrà gestire una grossa tabella di mappa che porterebbe ad un overhead di sistema

21 Rilocazione nel meccanismo di paginazione(1) Pag 0 di Pippo Pag 1 di Pippo Pag 2 di Pippo Pag 3 di Pippo Pippo : 13k Le pagine fisiche e logiche sono di 4k Allindirizzo 1100 (indirizzo relativo della pagina 0 del processo) si trova listruzione Jp 5200 Il processo viene caricato in Mc secondo le specifiche descritte nella seguente tabella di mappa di pagina : Pag.logicaPag.fisica Supponiamo che la pagina fisica 0 abbia indirizzo base IB = 0

22 Rilocazione nel meccanismo di paginazione(2) Quando deve essere rilocata listruzione jp 5200 occorre : 1.Determinare a quale pagina logica del processo fa riferimento tale indirizzo relativo N° pagina logica (NPL) = indirizzo relativo div dimensione pagina NPL = 5200 div 4096 = 1 2.Trovare in quale pagina fisica è stata caricata la pagina logica NPF Per fare ciò si scorre la tabella di mappa di pagina NPF =2 3.Determinare lindirizzo base della pagina fisica NPF (indirizzo assoluto) Indirizzo di NPF (INPF) = Indirizzo base (pag 0) + dimensione pagina *NPF INPF = *2 = Determinare loffset ovvero rapportare lindirizzo relativo che devo rilocare alla dimensione della pagina : Offset = Indirizzo relativo mod dimensione pagina Offset = 5200 mod 4096 = Calcolo indirizzo assoluto come INPF + offset = = 10296

23 Gestore Della Memoria (Tecniche Di Allocazione 4) Fino a questo momento un lavoro poteva essere caricato in MC solo se era possibile caricare lintero lavoro. Echiaro che il livello di multiprogrammazione ottenibile è condizionato dalla disponibilità della MC. E possibile avere contemporaneamente in memoria, in stato ready, un elevato numero di processi anche di dimensioni considerevoli ma non si può comunque andare oltre la capienza massima dello spazio fisico. Poiché lo spazio fisico è limitato, mentre lo spazio logico non lo è prima o poi capiterà che la memoria non sia sufficiente. E stata individuata una nuova tecnica di gestione della memoria centrale chiamata Memoria virtuale. La memoria virtuale non è uneffettiva memoria ma il risultato di unopportuna gestione della memoria reale con lausilio di una memoria periferica ad accesso veloce (disco). Sul fatto che un processo per essere eseguito debba risiedere in MC non ci sono dubbi; tuttavia un processo interrotto può rilasciare la MC ed essere conservato, con tutti i dati che lo caratterizzano, su una periferica ad accesso diretto veloce. Prima del successivo passaggio in running verrà riportato in memoria. Tale complesso di trasferimenti si chiama swapping. I processi non disponibili in memoria si dicono sospesi. E troppo vincolante imporre che la successiva allocazione coincida con la precedente. Inoltre con la tecnica di paginazione siamo in grado di effettuare una suddivisione sia logica che fisica di un programma

24 Gestore Della Memoria (Tecniche Di Allocazione 5) Se la contiguità fisica non è più un requisito essenziale, si può sfruttare il fatto che il processo, avendo una natura sequenziale, richiede azioni che vengono svolte dalla CPU in sequenza e mai in parallelo. E quindi inutile tenere in memoria le pagine non ancora coinvolte nellesecuzione. Si considera così eseguibile un processo di cui sia caricata almeno una pagina. Si distinguono così le pagine logiche corrispondenti a pagine fisiche (residenti) dalla pagine non ancora caricate in memoria (sospese). Si viene così a disporre di uno spazio logico decisamente superiore a quello reale fisico, introducendo il concetto di memoria virtuale. Problemi : Si carica solo la prima pagina di ogni processo o, se possibile, lintero processo?(problema del frame allocation)Si carica solo la prima pagina di ogni processo o, se possibile, lintero processo?(problema del frame allocation) Come si comporta il sistema se non cè più spazio per caricare una pagina non ancora caricata ma necessaria per la prosecuzione di un processo ? (problema del Page Fault e Page Replacement)Come si comporta il sistema se non cè più spazio per caricare una pagina non ancora caricata ma necessaria per la prosecuzione di un processo ? (problema del Page Fault e Page Replacement) Se dopo laggiornamento del pc accade che lindirizzo logico previsto non corrisponde un effettivo indirizzo fisico allora si genera uninterruzione : il processo viene interrotto con la segnalazione di Page Fault e non può riprendere fintanto chela pagina richiesta non venga caricata in memoria.

25 Gestore delle periferiche Le funzioni di base di questo modulo sono : Conservare su un opportuno supporto lo stato di tutte le periferiche Decidere in base ad unopportuna politica di gestione a quale processo assegnare una periferica, quando assegnargliela e per quanto tempo Assegnare la periferica e le relative interfacce al processo prescelto Gestire la politica e le tecniche di rilascio delle risorse, sia a livello di processo che di lavoro. Quando una periferica viene assegnata a livello di lavoro, essa viene associata al processo dal momento in cui questo viene generato fino a quando giunge al termine; quando invece viene fatta a livello di processo, la periferica viene associata solo per il tempo necessario al suo utilizzo. Le principali tecniche utilizzate per allocare e gestire le periferiche sono : A Periferiche dedicate A periferiche condivise A Periferiche virtuali

26 Tecnica di allocazione a periferiche dedicate Alcune periferiche, come le stampanti e i nastri magnetici, per loro stessa natura possono essere usate solo serialmente e devono quindi essere assegnate ad un lavoro per volta. In questo caso la migliore strategia di allocazione consiste nellassegnare la periferica in modo dedicato ad un preciso lavoro per lintera durata dello stesso. Questo però provoca notevoli problemi nello schedulatore dei lavori che non può far avanzare un lavoro finchè la risorsa seriale è occupata, anche se questa verrà usata solo nelle ultime fasi del lavoro stesso.Inoltre lassegnamento dedicato presenta lo svantaggio di mantenere occupata la periferica per lintero tempo desecuzione del lavoro anche nel caso in cui questo la utilizza solo per piccole porzioni di tempo

27 Tecnica di allocazione a periferiche condivise Alcuni tipi di periferiche, come i dischi, possono essere usati parallelamente da più processi, nel senso che linterferenza tra i processi concorrenti risulta molto limitata. Ciò è dovuto essenzialmente da 2 fattori : I meccanismi di accesso permettono ai vari processi di accedere a turno ad aree diverse senza che ciò provochi confusione nella trasmissione (lettura e scrittura) delleinformazioni Lelevata velocità del dispositivo di I/O permette di operare una sorta di time-sharing tra i vari processi, che possono così avanzare parallelamente, pur utilizzando la risorsa uno per volta. In questo caso la strategia di allocazione più idonea consiste nellassegnare dinamicamente la risorsa ai vari processi solo per il tempo necessario al suo uso e gestire le eventuali situazioni di conflitto.

28 Tecnica di allocazione a periferiche virtuali Il problema di utilizzare in modo ottimizzato le periferiche di tipo dedicato ha suggerito lidea di simulare le apparecchiature di I/O con opportune aree di memoria su disco, su cui depositare temporaneamente i dati in ingresso o in uscita, creando così delle periferiche virtuali. La gestione delle periferiche virtuali ed il loro collegamento con quelle reali viene effettuato tramite i programmi di SPOOL. Esempio : supponiamo di avere più lavori che richiedono luso della stessa stampante. In fase di generazione dei processi associate, a ciascuno di essi verrà assegnata, anziché la stampante, unarea di memoria su disco in cui verranno di volta in volta depositate le informazioni in uscita. Ogni volta che un processo chiede di effettuare una stampa, attraverso il programma di gestione dello Spool i dati da stampare vengono depositati nellarea del disco assegnatagli e il processo viene fatto avanzare come se la stampa fosse avvenuta. Solo quando il lavoro è giunto a conclusione, tutto il contenuto dellarea di spool ad esso assegnata, viene trasferito alla stampante, che rimane quindi assegnata al alvor solo per il tempo strettamente necessario alla stampa effettiva. Ovviamente se la stampante al momento del trasferimento è già occupata, il contenuto dellarea di spool verrà posto in una cosa in attesa che la stampante si renda disponibile

29 Gestore dei file Ha lo scopo di fornire ai programmatori uninterfaccia software per luso dei dati memorizzati sui supporti magnetici, esonerandolo quindi dalla maggior parte dei problemi di allocazione fisica e da quelli legati alle caratteristiche dei particolari supporti fisici a disposizione.Il programmatore cioè agisce solo in termini di strutture ed operazioni logiche, senza preoccuparsi della loro reale implementazione. Il file system ha quindi il compito di gestire in modo opportuno tutte le informazioni permanenti e temporanee registrate su memoria di massa e di rendere possibile lutilizzo, da parte di più utenti, della stessa risorsa informazione (file), proteggendola da accessi non autorizzati. Ha una struttura gerarchica e ogni modulo interagisce col modulo precedente e successivo. Moduli del file system

30 Moduli del file system Richieste File system simbolico File system di base Modulo di controllo sullaccesso File system logico File system fisico Modulo di letturaModulo di scrittura Esamina la richiesta dellutente e localizza dove sono memorizzate le informazioni relative al file a cui la richiesta fa riferimento ( usa delle tabelle : directory) Estrae dalla directory tutte le informazioni associate al file, rendendole disponibili Effettua un controllo sulla richiesta per verificare se esistono discrepanze o condizioni di errore (es: operazione coerente con il tipo di accesso) Trasforma il numero del record logico richiesto in un riferimento alla posizione (indirizzo logico) del primo byte del record allinterno del file Definisce, a partire dallindirizzo logico fornito dal modulo precedente, la posizione fisica effettiva dellelemento del file coinvolto Trasforma lindirizzo di blocco in indirizzo effettivo strutturato nella forma richiesta dalla particolare periferica

31 Problemi della tecnica di allocazione a partizione statiche Cè il rischio di lasciare inutilizzata una grande percentuale di memoria soprattutto se i lavori sono molti o con dimensioni molto diverse tra loro. Esempio : S.O. Pippo Qui Pluto 80k 115k 140k 170k Partizioni : Processi : P1 : 35kPippo : 10k P2 : 25kPluto : 15k P3 : 30kQui : 5k Qua : 40k 90k 130k 145k Memoria disponibile : 90 k Memoria usata : 30 k Memoria inutilizzata : 60 k Il processo Qua non può essere caricato !!! Problema Della frammenta zione

32 Problemi della tecnica di allocazione a partizione dinamiche S.O. Pippo Pluto Poldo Peppo 0 k 80k 190k 170k 230 k 115 k 140 k Arrivano Asso : 12k Milo : 15k Lupo : 30k S.O. Pippo Pluto Poldo Peppo 0 k 80k 115 k Asso 140 k 170k 190k 127 k Milo 205k 230 k Esce Poldo : 20 k Non entra LUPO!!! S.O. Pippo Asso Pluto Milo Peppo 0 k 80k 115 k 127 k 140 k 170k 190k 205k 230 k Pur essendoci complessivamente ben 58 k disponibili non è possibile caricare un processo di 30 k!!! Problema Della framment azione

33 Problema della frammentazione Il maggior problema della allocazione a partizioni della memoria è quello dovuto alla frammentazione della memoria, cioè alla creazione di aree inutilizzabili di memoria sparse tra le partizioni occupate. Si parla di 2 tipi di frammentazione : Frammentazione interna : quando allinterno di una partizione di m byte viene allocato un processo di n byte ( con n< m) e resta libera unarea di m-n byte troppo piccola per essere riutilizzata Frammentazione esterna : quando nella MC si vengono a creare aree libere non contigue talmente piccole da renderle inutilizzabili. Nella tecnica a partizioni statiche il problema è quello della frammentazione interna, mentre nella tecnica a partizioni dinamiche si presenta il problema della frammentazione sia interna che esterna. Algoritmi di miglioramento

34 Luso di algoritmi ben calibrati per scegliere quale area assegnare ai diversi processi che ne fanno richiesta può ridurre il problema della frammentazione. Algoritmo first fit : La tabella delle aree libere viene costantemente riordinata in base agli indirizzi di partenza delle singole aree e quando risulta necessario allocare un processo, la si scandisce assegnando al lavoro la prima area di dimensione maggiore o uguale a quella necessaria. Nellallocazione a partizioni fisse provoca una forte frammentazione interna, mentre nellallocazione a partizioni dinamiche permette la formazione di una grande area libera verso il fondo della memoria, pur non eliminando il problema della frammentazione esterna. Algoritmo best fit : la tabella delle aree libere viene costantemente riordinata in base alla dimensione delle stesse: allarrivo di un processo si scandisce la tabella per cercare la prima area libera che sia maggiore o uguale alla dimensione del programma cioè quella che si adatta meglio al processo. Nellallocazione a partizioni fisse migliora la frammentazione interna ; nellallocazione a partizioni dinamiche la frammentazione esterna rimane un problema. Algortimo worst fit : si sceglie in tutte le partizioni libere quella che lascia più spazio libero residuo. E assolutamente negativa nellallocazione a partizioni fisse,mentre può fornire ottimi risultati nellallocazione a partizioni dinamiche. Esempi

35 Esempi degli algoritmi di scelta partizione(1) First fit : allocazione statica P1:20k P2:50k P3:30k Arrivano : Pippo : 15 k in P1 Pluto : 25 k in P2 Qui : 40 k non può essere caricato pippo pluto Spreco memoria : 30 k di frammentazione interna + una partizione inutilizzata Best fit : allocazione statica pippo Qui P1:20k P2:50k P3:30k Arrivano : Pippo : 15 k in P1 Pluto : 25 k in P3 Qui : 40 k in P2 Pluto Spreco memoria : 5k + 10k + 5k = 20k ma tutti i processi caricati

36 Esempi degli algoritmi di scelta partizione (2) First fit : allocazione dinamica Pippo Pluto qui Arrivano : Qua : 10 k quo : 30 k Papero : 25 k non può essere caricato qua quo Spreco memoria : 10 k + 20 k di frammentazione esterna e un processo non caricato Best fit : allocazione dinamica Pippo Pluto Qua qui Arrivano : Qua : 10 k ; Quo : 30 k ; Papero : 25 k Quo Papero Spreco memoria : 5k e tutti i processi caricati

37 Esempi degli algoritmi di scelta partizione (3) First fit e Best fit : allocazione dinamica Pippo Pluto 20k 80k Arrivano : Qui : 15k Quo : 62k Qua : 20 k non può essere caricato qui Quo Spreco memoria : 5 k +18k k di frammentazione esterna e un processo non caricato Worst fit : allocazione dinamica Qua Pippo Pluto 20k 80k Arrivano : Qui : 15k ; Quo : 62k; Qua : 20 k Qui Quo Spreco memoria : 5 k di frammentazione esterna e tutti i processi caricati

38 Frame allocation, Page Fault e Page Replacement(1) I due aspetti (frame allocation e page fault) sono legati in quanto se si sceglie di caricare subito tutte le pagine possibili di ogni processo, allora più facilmente si verifica unoccupazione totale di memoria al momento del page fault di qualche altro processo sopravvenuto nel frattempo; se invece si caricano solo alcune pagine allora capiterà quasi subito un page fault anche per i primi processi accodati in ready. Esistono diverse soluzioni a tali questioni, ma tutte si basano sempre su considerazioni relative al comportamento medio dei programmi. Statisticamente si può rilevare in ogni programma unattitudine a conservare costante nello spazio e nel tempo linsieme degli indirizzi logici generati in esecuzione. Si parla di località nel tempo e nello spazio. Un programma esibisce una località relativa al fattore spazio, in quanto, indirizzata una certa locazione, è molto probabile che vengano indirizzate le locazioni adiacenti. Un programma esibisce una località relativa al fattore tempo in quanto, indirizzata una certa locazione, è molto probabile che la stessa venga nuovamente indirizzata in tempo breve. La strategia più semplice (demand page) prevede che allatto della creazione di un processo venga caricata in memoria solo la pagina contenente la prima istruzione da eseguire e che ogni altra pagina venga poi allocata su richiesta. ( vantaggio : il n° massimo di processi virtuali corrisponde al n° di pagine fisiche; svantaggio : alto numero di page fault)

39 Frame allocation, Page Fault e Page Replacement(2) Unaltra strategia è quella di cercare di sfruttare la località dei programmi per diminuire il numero di page fault. Si carica in memoria linsieme delle pagine che il processo indirizza più frequentemente in un certo intervallo di tempo. (working set).Il comportamento futuro può solo essere previsto e mai con certezza. Sulla base di previsioni statistiche circa landamento del working set viene stabilito il numero di pagine da caricare per ogni nuovo processo. Quando si verifica un page fault, se ci sono ancora pagine fisiche disponibili non ci sono problemi. In caso contrario occorre togliere una pagina di un processo non in esecuzione. Il cambio di pagina (page swapping) avviene seguendo un apposito algoritmo di sostituzione in base al quale una pagina viene tolta per permettere lallocazione di unaltra. La scelta dellalgoritmo di page replacemente deve mediare lesigenza di semplicità con lesigenza di contenere entro limiti accettabili il page swapping. Occorre evitare che il sistema sostituisca una pagina che servirà subito dopo e che è preferibile cercare la pagina che non verrà usata per il periodo di tempo più lungo.

40 Frame allocation, Page Fault e Page Replacement(3) Gli algoritmi più usati sono : FIFO : rimuove la pagina in memoria da più tempo LRU (least recently used) : si seleziona la pagina da sostituire considerando il fattore tempo, ossia viene eliminata la pagina non usata da più tempo. LFU (least frequently used) : si seleziona la pagina col minor numero di accessi

41 Rilocazione Esistono 3 tipi di Rilocazione : Assoluta : è la forma più semplice; avviene al momento della traduzione del programma da sorgente ad oggetto (fase di compilazione o link). Il risultato è un prg in linguaggio assoluto che può essere caricato per lesecuzione soltanto nelle locazioni di memoria a partire dallindirizzo base scelto. Questa tecnica è applicabile solo in caso di monoprogrammazione Vantaggi : semplicità; Svantaggi : memoria sprecata e impossibilità di gestire prg più grandi della capacità della MC Statica : viene effettuata al momento del caricamento del prg in MC per lesecuzione. Durante la compilazione gli indirizzi del prog vengono fatti iniziare da un valore relativo riferito alla prima istruzione. Lo stesso prg può essere caricato di volta in volta in aree differenti della MC. Ciò significa che è possibile operare in ambiente di multiprogrammazione. Svantaggio : una volta caricato un prg in una determinata area non è più possibile spostarlo Dinamica : avviene al momento dellesecuzione di ogni singola istruzione. Il codice oggetto viene caricato in MC senza effettuare la rilocazione.

42 Ciclo Di Avanzamento Di Un Programma Il ciclo di svolgimento del processo di esecuzione può essere rappresentato dalle transizioni tra i diversi stati di avanzamento che può attraversare. Quando un utente richiede che il proprio programma venga prelevato dalla M.d.M ed inviato al computer per lelaborazione, il lavoro viene inserito nellelenco di quelli in attesa di diventare processi in esecuzione (HOLD). A questo punto il job scheduler avrà il compito di scegliere quale lavoro dovrà essere portato nella M.C. per lesecuzione. Una volta che lo schedulatore ha scelto il lavoro viene generato il processo associato ed il programma viene caricato in M.C. Il processo passa così dallo stato Hold allo stato Ready. Sarà poi compito del process scheduler scegliere, tra tutti quelli che si trovano in stato Ready, quello a cui assegnare il processore. Il processo scelto passa così da stato Ready a stato Run. Quando il processo in Run richiede di accedere a una risorsa esterna, il processo non può avanzare finchè non viene ultimata loperazione di I/O; pertanto viene rilasciato il processore ed il processo passa da Run a Wait e viene attivato il processo di I/O. Il compito di definire lo stato dei vari processi è assolto da un particolare modulo del nucleo : il traffic controller. Al termine delloperazione di I/O verrà inviato al controllore del traffico un segnale di operazione conclusa, il quale provvederà a portare il processo sospeso nuovamente da Wait a stato Ready, in attesa della disponibilità del processore centrale per proseguire lesecuzione. Mentre il processo si trova in stato Run si può verificare il superamento del quanto di tempo concesso al processo. In tal caso lesecuzione viene interrotta, il processo passa da Run a Ready e viene scelto un nuovo processo da porre in esecuzione. Quando il processo giunge al termine, passa da Run in stato di Terminate, rilasciando le periferiche, la memoria ed il processore, in modo che possano essere usati da altri processi.

43 Sistemi monoprogrammati Gestione sequenziale nel tempo dei programmi Tutte le risorse hardware e software del sistema sono dedicate ad un solo programma per volta Utilizzo della CPU = Tp/Tt dove Tp è il tempo dedicato dalla CPU alla esecuzione del programma e Tt è il tempo totale di permanenza del programma nel sistema Throughput = numero di programma eseguiti per unità di tempo Bassa utilizzazione delle risorse

44 Sistemi General Purpose Centri di Calcolo di grandi dimensioni Utenze di tipo differenziato Modalità di uso batch e interattivo Sistemi Transazionali Sistemi di tipo interattivo che consentono solo accesso e modifica ad archivi di dati Transazione successione di operazioni elementari a ciascuna delle quali corrisponde lesecuzione di un programma Funzioni richieste allutente : interrogazione ed aggiornamento archivi Sistemi per lelaborazione a distanza Accesso remoto : di tipo batch (remote job entry); di tipo interattivo (TP ) Lutente accede al sistema tramite terminali collegati da un sottosistema di comunicazione Il S.O. deve gestire le comunicazioni sulle linee, accodare le richieste di servizio, etc

45 Multiprogrammazione Più programmi presenti contemporaneamente in memoria centrale Mentre un programma è in attesa del completamento delloperazione di I/O, la CPU può iniziare lesecuzione di un altro programma vantaggi svantaggi Migliore utilizzazione delle risorse (riduzione dei tempi morti) Maggiore complessità del S.O. : Algoritmi per la gestione delle risorse Protezione degli ambienti dei diversi programmi

46 Confronto Fra Monoprogrammazione E Multiprogrammazione (1) Programma P1 : legge 100 record da disco, li elabora e li scrive su stampante Programma P2 : legge 100 record da disco, li elabora e li scrive su stampante scrittura lettura elabora tempo Situazione in monoprogrammazione senza buffer di I/O lettura elabora scrittura Situazione in monoprogrammazione con buffer di I/O avanti

47 Confronto Tra monoprogrammazione E multiprogrammazione (2) lettura elabora scrittura

48 Sistemi Time sharing (Divisione Di Tempo) Estensione della multiprogrammazione Ad ogni programma il S.O. Assegna ciclicamente un intervallo (quantum) di tempo di CPU fino al suo completamento Al termine dellintervallo ( o durante, se il programma inizia unoperazione di I/O) la CPU viene assegnata ad un altro programma Un S.O. Time sharing consente a più utenti di condividere il sistema di calcolo contemporaneamente ed in modo interattivo Interattività : comunicazione diretta tra lutente ed il sistema di calcolo

49 SISTEMI BATCH( a Lotti) I programmi sono inseriti a lotti nella memoria di massa ( occorre un linguaggio di controllo particolare, JCL, che comanda il caricamento del programma, la sua compilazione, la sua esecuzione e altre operazioni; I lavori degli utenti devono essere autonomi cioè contenere tutti i comandi necessari per attivare i job step che consentono di eseguire e portare a compimento un programma senza intervento di un operatore umano ) Non cè alcuna interazione tra macchina e utente vantaggi svantaggi Sfruttamento intelligente delle risorse in quei casi in cui lintervento delloperatore non è strettamente necessario Assoluta mancanza di interattività Bassa utilizzazione della CPU

50 Problema Della Mancanza Di Interattività Nei Sistemi batch Il problema della mancanza di interattività non rappresenta una limitazione rilevante nel calcolo di tipo scientifico, matematico, etc, mentre è più problematico per alcune applicazioni di tipo gestionale, come pure per una serie di attività comuni nel lavoro di ufficio o, ad esempio, per uno sportello bancario. Tuttavia la modalità batch viene ancora utilizzata, anche nei sistemi moderni, ogni qualvolta si voglia eseguire lavori che devono essere eseguiti sempre con gli stessi comandi, nello stesso ordine e spesso in orari prefissati.

51 1° Soluzione Problemi BATCH Operazioni di I/O fuori linea (off-line) CPU LETTORE DI SCHEDE STAMPANTE NASTRO VANTAGGI Maggiore velocità del nastro in confronto al lettore di schede e alla stampante Più lettori di schede collegati ad una stessa unità a nastro Più stampanti collegate ad una stessa unità a nastro 2° SOLUZIONE

52 2° Soluzione Problema batch : Buffer Di I/O Il buffer è unarea di memoria per ciascun diapositivo di I/O Il dispositivo di ingresso introduce nel buffer nuovi dati mentre la CPU sta elaborando i dati precedenti (analogamente per luscita) I buffer sono gestiti dal S.O. (device drivers) : una richiesta di I/O del programma chiama la corrispondente device driver (meccanismo di interrupt) Quale utilità? LIMITATA se la velocità della CPU è molto più elevata di quella dei dispositivi di I/O Programmi con prevalente attività di I/O : i buffer sono di poca utilità e la CPU ha periodi di attesa Programmi con prevalente attività di CPU : i buffer di input sono quasi sempre pieni e quelli di output vuoti 3° SOLUZIONE

53 3° Soluzione Problema Batch : spooling Spooling è un acronimo per Simultaneous Peripheral Operation on line Sostituzione dei nastri magnetici con i dischi (maggiore velocità di lettura e scrittura) Il disco è usato come un buffer di grandi dimensioni Vantaggi : Possibilità di sovrapporre le operazioni di I/O e di esecuzione di più programmi Più programmi in memoria pronti per lesecuzione Possibilità di scelta da parte del S.O. di quale programma mettere in esecuzione

54 Il Problema Della Bassa Utilizzazione Della CPU in Un Sistema batch Lettore di schede20 schede/sec Compilazione300 schede/sec Programma di 1200 schede 4 sec di CPU, 60 sec. di lettura UTILIZZAZIONE CPU : 6,25% OPERAZIONI DI I/O IN LINEA CPU LETTORE DI SCHEDE STAMPANTE 1° SOLUZIONE


Scaricare ppt "Inquadrare Il Problema Grande sviluppo tecnologico –Potenza di calcolo –Costi contenuti Utenti con scarse conoscenze informatiche Necessita di : User friendly."

Presentazioni simili


Annunci Google