Gestione della memoria centrale

Slides:



Advertisements
Presentazioni simili
Puntatori e gestione dinamica della RAM
Advertisements

Gestione della Memoria
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Gestione della memoria
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Gestione della Memoria
1 Come si avvia un computer... Dove è contenuto il SO ? Come si attiva?
12. Il Sistema Operativo Ing. Simona Colucci
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Realizzazione del file system
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Realizzazione del file system
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Struttura dei sistemi operativi (panoramica)
Il Linguaggio Macchina
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
memoria gestita staticamente:
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
Sistemi Operativi Insieme di programmi che permettono di gestire le risorse (HW e SW ) efficientemente. Funzioni principali: conservare lo stato delle.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
SISTEMA OPERATIVO..
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
PowerMax® Guida rapida alla versione Partitions II Introduzione Cosa sono le Partizioni? Cosa sono le Aree Comuni? Come abilitare la funzione partizioni.
Il Sistema Operativo: il File System
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Il Software Programmare direttamente la macchina hardware è molto difficile: l’utente dovrebbe conoscere l’organizzazione fisica del computer e il suo.
(processore, i dispositivi di input/output, ecc.)
Gestione della Memoria
STRUTTURA DI UN COMPUTER
Sistema Operativo (Software di base)
Memoria La memoria è un vettore di stringhe di bit (word/parole) In memoria è allocato il Sistema Operativo. In memoria sono allocati i programmi per poter.
Formattazione, Partizioni e dischi
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Gestione della Memoria
L’esecuzione dei programmi
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Il modello di Von Neumann
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Gestione della memoria centrale La memoria principale è una risorsa essenziale per un elaboratore Un programma per essere eseguito deve risiedere all'interno della memoria principale e lo stesso discorso vale per i dati su cui esso opera Se molti processi devono essere 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: programma che il processo sta eseguendo

Tecniche non virtuali Data la memoria principale fisicamente esistente all'interno di un elaboratore, come dobbiamo allocarla ai processi che devono essere eseguiti? Consideriamo dapprima il caso, molto semplice, di un sistema mono-programmato in cui in ogni istante esiste un solo processo di utente In realtà abbiamo anche dei processi di sistema, e quindi dovremo destinare una parte della memoria alla parte residente del sistema operativo e una parte al processo utente

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 Sistema Operativo processo utente X X+1 N S.O.

Tecniche non virtuali Veniamo ora al caso di un sistema multi-programmato in cui più programmi utente P1, P2…Pn sono eseguiti contemporaneamente. Per ciascuno di questi processi il programma ed i dati corrispondenti devono essere in memoria principale Dobbiamo suddividere la memoria non occupata dal SO 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

Indirizzo iniziale partizione Indirizzo finale partizione Tecniche non virtuali Si possono utilizzare due registri per delimitare la partizione di memoria del processo in esecuzione e, ogni volta che si vuole 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 processo utente S.O. Indirizzo finale partizione

Tecniche non virtuali Suddivisione della memoria in partizioni fisse partizioni variabili S.O. 200KB 100KB S.O. area libera 400 KB 350 KB 50 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 multi- programmato, in particolare in ambiente multi- utente, è 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 abbiamo visto che 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 i 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 all'interno della memoria principale in modo indipendentemente, 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 P3/2 P1/1 P2/3