Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione

Documenti analoghi
Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

La gestione della memoria. Lezione 16 Sistemi Operativi

La gestione della memoria. Lezione 30 Sistemi Operativi

La gestione della memoria. Lezione 5 Sistemi Operativi

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

La gestione della memoria. Lezione 9 Sistemi Operativi

Gestione della Memoria Principale

Sistemi operativi e distribuiti

Registri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete

Gestione della memoria

Capitolo 8 - Silberschatz

Sistemi Operativi 1. Mattia Monga. 3 giugno Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Astrazione. Gestore della memoria. La rilocabilità del codice. Gestore della memoria

Sistema Operativo - Gestione della Memoria lista argomenti di studio

Gestione della memoria

Gestione della memoria centrale. Capitolo 8 - Silberschatz

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

Modulo 7: Gestione della Memoria

Docente Prò Giuseppe - Corso PENTEST MIND PROJECT A cura di Prò Giuseppe

Sistemi Operativi. Lezione 8 La gestione della memoria

Gestione della Memoria

Obiettivo. Gestione della memoria. Inoltre. Sistemi monoprogrammati. Sistemi monoprogrammati. Sistemi monoprogrammati 07/06/2012

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Gestione della memoria

! Per essere eseguiti, i programmi devono essere trasferiti (dal disco) in memoria e tradotti in processi.!

3.3 Memoria virtuale Generalità. 3.3 Memoria virtuale Spazi di indirizzamento Memoria virtuale Spazi di indirizzamento - 2

Gestione Memoria. Gestione della memoria

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali

Memoria virtuale. Daniele Loiacono, Vittorio Zaccaria

Operating System Concepts 7 th Edition! 8.2! Silberschatz, Galvin and Gagne 2005!

Sistemi Operativi Gestione della Memoria (parte 1)

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo

Il software. la parte contro cui si può solo imprecare. (continua) Funzioni principali del sistema operativo. Gestione della memoria principale

Corso di Informatica

Cenni di sistemi operativi

Corso di Architettura (Prof. Scarano) 10/05/2002

La gerarchia delle memorie

Programmazione II. Lezione 9. Daniele Sgandurra 16/11/2010.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica

GESTIONE DELLA MEMORIA CENTRALE

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi. Principi di gestione della memoria Swapping Memoria virtuale

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Concetti Generali sulla Gestione della memoria

Swapping 1. Swapping 2. Gestione della memoria. Strutture di gestione 1. Strutture di gestione 2. Strutture di gestione 3

La gestione della memoria

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Parte VII. Traduzione e Collegamento

; programma MOV AX, DATO_1. ; somma al contenuto dell' accumulatore il contenuto del registro B

Calcolatori Elettronici

Sistemi Operativi Esercizi Gestione Memoria

Sistema Operativo - Gestione della Memoria per moderne CPU. Address Binding Dinamico in esecuzione mediante Segmentazione, Paginazione e Memoria

Laboratorio di Informatica (Chimica)

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Linguaggi di programmazione. Parte VII. Traduzione e collegamento. Interpretazione. Traduzione

Parte VII. Traduzione e collegamento

Sistemi Operativi (modulo di Informatica II)

GESTIONE( DELLA( MEMORIA(

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi. Bruschi Martignoni Monga

Il sistema operativo

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse

Dal sorgente all eseguibile I programmi Assembly. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica

SISTEMI OPERATIVI. Gestione della memoria centrale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Traduzione e interpretazione

Nei sistemi moderni si usano sistemi di avvicendamento sofisticati al fine di garantire ad ogni processo quanti di esecuzione considerevoli.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Lezione XX: Memoria di massa. Hard disk. Mattia Monga. a.a. 2008/09

Il supporto al sistema operativo

Linguaggi, compilatori e interpreti

Introduzione all Informatica. Alfredo Cuzzocrea. Sistema Operativo

Sistemi Operativi 1. Mattia Monga. a.a. 2016/17. Dip. di Informatica Università degli Studi di Milano, Italia

Sistemi Operativi. Bruschi Monga Re. Memorie di massa. Dischi virtuali Esercizio. Sistemi Operativi. Bruschi Monga Re.

Cenni di sistemi operativi

Reti e problematiche di Rete

Linguaggi, compilatori e interpreti

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Il linguaggio Assembly

Sistemi Operativi 1. Mattia Monga. 28 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 6 giugno Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

A c r h c i h te t t e t t u t r u a r d g e li el e abo b ra r t a o t ri Assemblatore

Sistemi Operativi. Bruschi Martignoni Monga. File system Astrazioni utente Metadati Tecniche implementative. Sistemi Operativi

Introduzione al linguaggio assembly MC68000

10. Memoria Virtuale. Esercizi

Transcript:

1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it monoprogrammati multiprogrammati Lezione XXXIII: monoprogrammati multiprogrammati a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License. http://creativecommons.org/licenses/by-sa/2.5/it/. Immagini tratte da [?] e da Wikipedia. 1 537 Memoria monoprogrammati La centrale è una risorsa fondamentale di un sistema di calcolo L accesso a centrale è una delle operazioni piú frequenti Accesso ai dati e al codice La tecnica usata per la gestione della ha un effetto determinante sulle prestazioni del sistema monoprogrammati multiprogrammati monoprogrammati multiprogrammati 538 539

Prestazioni dei sistemi multiprogrammati Efficienza dei sistemi multiprogrammati monoprogrammati multiprogrammati Se i programmi sono I/O bound, molti programmi devono essere in esecuzione per raggiungere un elevato utilizzo di CPU Aumentare la centrale di un sistema monoprogrammato non serve: per aumentare l utilizzo di CPU occorre incrementare il livello di multiprogrammazione L efficienza dipende dal livello corrente di I/O (Pendenza della curva di utilizzo) monoprogrammati multiprogrammati 540 541 Multiprogrammazione multiple fisse La gestione dell esecuzione di piú programmi può essere ottenuta in due modi 1 Mantenere la stessa politica di gestione della e ogni volta che un processo deve fare I/O effettuare uno swapping da centrale a disco 2 Modificare la politica di gestione della e consentire la presenza in di piú programmi sistemi multiprogrammati monoprogrammati multiprogrammati Questo schema di gestione della richiede alcuni accorgimenti nella fase di preparazione dei programmi e generazione del codice Traduttore Il compilatore traduce generalmente nel linguaggio assembly L assemblatore traduce poi in linguaggio macchina La traduzione produce anche: Symbol table Informazioni sulle dimensioni del modulo oggetto Informazioni per il debugging monoprogrammati multiprogrammati Linker Loader (statico o dinamico) 542 543

Linker Loader Collega i moduli oggetto compilati indipendentemente Statico Tutti i riferimenti sono risolti e tradotti in indirizzi logici dopo la compilazione, prima del caricamento Dinamico A tempo di caricamento Moduli esterni (target) sono aggiunti all applicazione dopo averla caricata in con il loader Dinamico A tempo di esecuzione I moduli target sono caricati e i riferimenti risolti solo durante l esecuzione al momento in cui vengono richiamati Il linking dinamico facilita l aggiornamento dei moduli target e la condivisione del codice monoprogrammati multiprogrammati Carica un programma in Usa le informazioni nella symbol table Caricamento assoluto Gli indirizzi usati dal programma sono fissati a tempo di compilazione Caricamento rilocabile Gli indirizzi generati dal compilatore sono tutti relativi ad un punto di inizio (indirizzi logici) e vengono tradotti in indirizzi fisici prima del caricamento del programma Caricamento dinamico a tempo di esecuzione I riferimenti alla sono mantenuti in formato relativo e tradotti in indirizzi assoluti solo nel momento in cui vengono utilizzati monoprogrammati multiprogrammati 544 545 Rilocazione nei sistemi multiprogrammati Rilocazione dinamica Il programmatore non sa a priori dove il programma verrà caricato in per essere eseguito Durante l esecuzione, il programma potrebbe essere scaricato sul disco e ricaricato successivamente in ad un indirizzo diverso Gli indirizzi di nel codice devono essere tradotti in indirizzi fisici di, questa funzione viene svolta da hw dedicato (Memory Management Unit) monoprogrammati multiprogrammati monoprogrammati multiprogrammati 546 547

Protezione nei sistemi multiprogrammati Protezione hw Example I processi non devono poter accedere ad aree di di altri processi senza permesso Poiché è impossibile controllare a priori quali indirizzi di un programma referenzierà i riferimenti alla devono essere verificati durante l esecuzione 1 mov eax,end 2 loop: mov [eax],0 3 add eax,4 4 jmp loop 5 end: ret monoprogrammati multiprogrammati monoprogrammati multiprogrammati 548 549 multiple fisse multiple Code separate per ogni partizione possibile sotto utilizzo del sistema Singola coda di incoming job 550 monoprogrammati multiprogrammati Numero, dimensione e posizione delle partizioni cambiano col variare dei processi in Lo stato della si modifica continuamente I processi accedono alla centrale Lasciano la per poi rientrarvi, non necessariamente nello stesso posto occupato in precedenza 551 monoprogrammati multiprogrammati

Espansione dinamica Gestione con bitmap monoprogrammati multiprogrammati Suddivisione della in unità minime allocabili Associazione a ciascuna unità di un bit (Libera/occupata) Dimensione della tabella 1 bit per ogni unità allocabile di k bit Ricerca di successioni di n bit a zero nella bitmap per trovare aree libere di dimensioni adeguate al programma da caricare Semplice ma inefficiente monoprogrammati multiprogrammati 552 553 Gestione con liste collegate Gestione con liste collegate monoprogrammati multiprogrammati monoprogrammati multiprogrammati Gli elementi della lista indicano le aree di contigue con base e dimensione. Generalmente le aree contigue vengono compattate. 554 555

Strategie di allocazione Il pericolo è il frazionamento della libera in piccoli pezzi inutilizzabili (frammentazione esterna). First Fit il primo buco sufficientemente grande per contenere il processo Next Fit si tiene traccia dell ultima allocazione e si ricerca il prossimo buco sufficientemente grande Best Fit il piú piccolo buco sufficientemente grande per contenere il processo Worst Fit il piú grande buco che possa contenere il processo Quick Fit mantenere delle liste separate per le richieste delle dimensioni piú frequenti Nessuna strategia è ottimale monoprogrammati multiprogrammati Con gli schemi a partizione è possibile caricare in un processo solo quando si trova una porzione di contigua, che possa contenere l intero processo è il processo di allocazione può richiedere parecchio tempo La fisica viene suddivisa in blocchi (page frame) di dimensioni costante (p.es. 4K). Porzioni di logica di uguale dimensione (pagine) vengono caricate nei frame: la di un processo è fisicamente contigua solo all interno di una stessa pagina. La paginazione soffre di frammentazione interna monoprogrammati multiprogrammati 556 557 monoprogrammati multiprogrammati In un sistema paginato gli indirizzi logici di sono espressi da una coppia (p,d), a cui va associato in fase di esecuzione un indirizzo fisico lineare, che esprime la locazione esatta del dato o istruzione in Example Pagine di 256 byte, indirizzo logico 26251 p = 26251/256 = 102 monoprogrammati multiprogrammati d = 26252%256 = 139 Per calcolare l indirizzo fisico i bisogna conoscere in quale frame f è stata caricata la pagina 102 558 i = f 256 + d 559

Tabella delle pagine Con pagine di dimensione 2 k, per il calcolo degli indirizzi fisici si sfrutta lindirizzo logico I k bit meno significativi dell indirizzo logico individuano lo spiazzamento all interno della pagina I restanti bit piú significativi individuano il numero della pagina Il numero di pagina si usa come indice nella tabella delle pagine Il valore trovato in corrispondenza è il numero di page frame associato alla pagina Se la pagina è presente in, il numero di page frame è copiato nei bit alti del registro di output e concatenato ai k bit bassi dell offset monoprogrammati multiprogrammati monoprogrammati multiprogrammati Example 26251: 000001100110 10001011 560 561