Gestione della memoria centrale



Похожие документы
Sistemi Operativi. 5 Gestione della memoria

Sistema operativo: Gestione della memoria

La Gestione delle risorse Renato Agati

Il memory manager. Gestione della memoria centrale

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Gestione del processore e dei processi

Strutturazione logica dei dati: i file

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Laboratorio di Informatica

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

Il Sistema Operativo (1)

Dispensa di Informatica I.1

Sistemi Operativi Kernel

Gestione della Memoria

Il software. la parte contro cui si può solo imprecare. Il software

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Corso di Sistemi di Elaborazione delle informazioni

Il Software. Il software del PC. Il BIOS

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

FoLUG Forlì Linux User Group. Partizionamento

Capitolo Silberschatz

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Sistemi operativi. Esempi di sistemi operativi

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Architettura dei calcolatori II parte Memorie

Capitolo 2. Operazione di limite

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Introduzione al sistema operativo Il file system: file, directory,...

J. Assfalg Appunti di Sistemi Operativi

La gestione della memoria

Mac Application Manager 1.3 (SOLO PER TIGER)

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Approccio stratificato

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Gestione della memoria

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Fasi di creazione di un programma

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

CPU. Maurizio Palesi

Il File System. Il file system

Determinare la grandezza della sottorete

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Esercitazione E6 Esercizi d esame

Amministrazione gruppi (Comunità)

Le Infrastrutture Software ed il Sistema Operativo

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Architettura hardware

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Protezione. Protezione. Protezione. Obiettivi della protezione

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Olga Scotti. Basi di Informatica. File e cartelle

Introduzione ai Sistemi Operativi

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Architettura di un calcolatore

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

CIRCOLARE RILEVA WEB del 19/05/2009

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Creazione e configurazione della macchina virtuale

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Funzioni del Sistema Operativo

Informatica e Bioinformatica: Sistemi Operativi

Materiali per il modulo 1 ECDL. Autore: M. Lanino

FPf per Windows 3.1. Guida all uso

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Modello per la compilazione della scheda progetto SK_3.1.xls (da utilizzarsi per la presentazione di progetti di attività formative)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Pronto Esecuzione Attesa Terminazione

Amministrazione gruppi (all interno della Scuola)

Транскрипт:

Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti contemporaneamente: si dovrà trovare un meccanismo per permettere a questi processi di condividere l'uso della memoria principale

Gestione della memoria centrale Esistono due tecniche fondamentali per la gestione della memoria principale: tecniche non virtuali (memoria reale): tutta l immagine* di un processo attivo deve essere caricata in memoria principale tecniche virtuali (memoria virtuale): un processo attivo può avere solo una parte della sua immagine caricata in memoria principale *immagine di un processo: copia del programma che e in RAM

Tecniche non virtuali Problema: come dobbiamo allocare la RAM ai processi che devono essere eseguiti? Anche nel caso di un sistema mono- programmato, in cui in ogni istante esiste un solo processo di utente, la memoria non e tutta a disposizione del processo in quanto una sua parte deve essere destinata ai processi di sistema, cioe alla parte residente del sistema operativo.

Sistema mono programmato La memoria è divisa in due partizioni: una destinata al SO; l altra al processo utente Di solito si sceglie di destinare al sistema operativo le prime o le ultime celle della memoria 0 X X+1 N Sistema Operativo S.O. processo utente

Tecniche non virtuali In un sistema multi-programmato in cui più programmi utente P 1, P 2 P n sono eseguiti contemporaneamente, ognuno di questi processi deve avere in memoria principale il programma ed i dati da elaborare la memoria non occupata dal SO deve essere suddivisa in n partizioni: una per ciascuno degli n processi

Tecniche non virtuali Nel caso di un sistema con partizioni di memoria multiple sorgono nuovi problemi di gestione per il sistema operativo Quante partizioni creare e di quali dimensioni? Le partizioni sono create una volta per tutte al momento della configurazione del sistema o possono essere modificate a seconda delle necessità correnti? Come si sceglie la partizione in cui caricare l'immagine di un processo? Come si tiene traccia di dove sono stati caricati i processi? Come si proteggono i programmi tra di loro?

Tecniche non virtuali Per tener traccia delle zone di memoria in cui sono stati caricati i programmi è sufficiente mantenere nel descrittore di ciascun processo l'indirizzo iniziale della partizione in cui esso è caricato Quando si hanno più processi in memoria si deve fare in modo che nessuno di essi possa operare in una zona di memoria destinata ad un altro Ad ogni processo deve essere consentito di leggere e scrivere solo all'interno della sua partizione in modo da non danneggiare l'esecuzione degli altri

Tecniche non virtuali Si possono utilizzare due registri per delimitare la partizione di memoria del processo in esecuzione e, ogni volta che il processo deve fare un accesso in memoria, si dovrà controllare che l indirizzo prodotto sia valido, cioè all interno della partizione in cui è caricata l immagine del processo Indirizzo iniziale partizione Sistema Operativo S.O. Indirizzo finale partizione processo utente

Tecniche non virtuali Suddivisione della memoria in partizioni fisse partizioni variabili S.O. 200KB 100KB 100KB S.O. area libera 400 KB S.O. 50 KB area libera 350 KB

Tecniche non virtuali Le tecniche di partizioni (sia fisse che variabili) provocano uno spreco di spazio di memoria, noto con il nome di frammentazione: Con le partizioni fisse, all interno di ogni partizione ci sara uno spazio non utilizzato (difficilmente un programma ha le stesse dimensioni di una partizione): frammentazione interna Con le partizioni variabili, dopo un certo numero di allocazione e deallocazione di processi, si formeranno un certo numero di porzioni di memoria libere ( buchi ), di dimensioni insufficienti a contenere un processo: frammentazione esterna

Tecniche virtuali Uno degli obiettivi di un sistema operativo multiprogrammato, in particolare in ambiente multiutente, è quello di nascondere il più possibile a ciascun processo (a ciascun utente) la presenza degli altri processi (utenti) che stanno condividendo le risorse di calcolo Compito del sistema operativo è quello di fornire ad ogni singolo processo una visione astratta in cui esso ha una macchina virtuale interamente a sua disposizione

Tecniche virtuali Nel caso della gestione del processore la tecnica di alternare l'esecuzione fa sì che ogni utente abbia l'impressione che il suo programma sia sempre in esecuzione Per quanto riguarda la gestione della memoria, il problema è più complesso. Si vuole che ogni utente possa, almeno in linea di principio, scrivere programmi grandi almeno quanto la memoria reale e che questi programmi possano essere eseguiti contemporaneamente ad altri

Tecniche virtuali In alcuni casi si vogliono addirittura nascondere agli utenti le dimensioni della memoria fisica e fare in modo che essi possano scrivere dei programmi di dimensione qualunque, anche molto più grandi dello spazio di memoria effettivamente esistente sulla macchina hardware In questo modo, tra l'altro, è possibile che un utente esegua i suoi programmi su macchine differenti, senza doversi preoccupare delle dimensioni delle loro memorie centrali

Tecniche virtuali Questa visione astratta della memoria prende il nome di memoria virtuale e i programmi di sistema che la realizzano prendono il nome di gestori della memoria virtuale La tecnica fondamentale per la gestione della memoria virtuale consiste nel caricare le immagini dei processi nella memoria centrale a pezzi

Tecniche virtuali Supponiamo di avere a disposizione una memoria principale (spazio utente) di 1 MByte e di voler eseguire simultaneamente due programmi che richiedono entrambi 1 Mbyte Le tecniche di gestione della memoria a partizioni fisse o variabili non ci permettono di eseguire contemporaneamente questi due programmi perché le loro immagini non possono essere caricate entrambe nella memoria principale

Tecniche virtuali Per eseguire un processo non è necessario caricare completamente in memoria la sua immagine È sufficiente caricare in memoria principale solo quelle parti del programma e dei dati che servono durante una certa fase dell'elaborazione; le altre parti possono essere tenute su un supporto di memoria secondaria In questo modo la memoria potrà essere condivisa da più processi in quanto, in ogni istante, solo una parte di ognuno di essi risiederà in memoria

Tecniche virtuali Per gestire la memoria in modo virtuale, è necessario avere: La memoria principale in cui tenere solo i programmi, o i pezzi di programmi, che servono in un certo istante. Un supporto di memoria secondaria in cui mantenere tutte le immagini dei processi che verranno caricate di volta in volta nella memoria principale (solitamente si utilizzano come supporti di memoria secondaria i dischi rigidi perché sono necessari dei supporti veloci e con accesso diretto, per fare in modo che il tempo richiesto per caricare programmi dalla memoria secondaria a quella principale non sia troppo alto)

Tecniche virtuali Si possono tenere in memoria solo alcune parti delle immagini dei processi, purché si sia sempre in grado di caricare le altre parti quando servono. Questa è proprio l'idea che sta alla base delle tecniche di gestione a pezzi e, in particolare, della tecnica di paginazione a richiesta (demand paging) Nella paginazione l'immagine di un processo viene suddivisa in blocchi (pagine), tutte della stessa dimensione, che vengono caricate in memoria principale in modo indipendente, anche in posizioni non contigue. La contiguita del processo viene realizzata da una Tabella delle Pagine che memorizza per ogni pagina del processo la sua posizione in RAM (se e caricata).

Tecniche virtuali Se durante l esecuzione del processo, la CPU fa riferimento ad un indirizzo che appartiene ad una pagina non caricata in RAM, il SO provvede a mettere il processo in stato d attesa e a far partire il caricamento della pagina richiesta, dopo di che il processo puo riprendere la sua esecuzione. Nella paginazione a domanda, esiste ancora il problema della frammentazione, che e pero limitato al fatto che l ultima pagina di ogni processo e solo parzialmente occupata (mediamente si puo considerare uno spreco pari a circa ½ pagina per ogni processo).

Tecniche virtuali Per avere un sistema di gestione della memoria basato sul demand paging anche la memoria principale dell'elaboratore deve essere suddivisa in un certo numero di blocchi, tutti delle stesse dimensioni (uguali alla dimensione della pagina) RAM P1/2 P2/1 P2/2 P1/3 P3/1 P1/1 P1/2 P1/3 P3/1 P3/2 P2/1 P2/2 P2/3