• Non ci sono risultati.

stato della memoria centrale

N/A
N/A
Protected

Academic year: 2021

Condividi "stato della memoria centrale "

Copied!
6
0
0

Testo completo

(1)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 1

Il programma oggetto per essere eseguito va caricato nella Memoria Centrale.

Il Caricatore è un Programma del software di base utilizzato per caricare in memoria centrale i programmi che devono essere eseguiti, prelevandoli dalla memoria di massa.

Per ciascuna istruzione e ciascun dato del programma deve essere definito l’indirizzo di Memoria Centrale in cui devono essere registrati.

Caricatore

L’input del Caricatore è:

• la sequenza di istruzioni del programma oggetto da caricare in memoria centrale per la sua esecuzione,

• altre informazioni ausiliarie

stato della memoria centrale

piano di allocazione della memoria centrale

(2)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 3

Caricatore

Il modo di operare del Caricatore differisce in base al tipo di programma oggetto da caricare:

• Programma ad indirizzi assoluti (o programma assoluto)

• Programma ad indirizzi relativi (o programma rilocabile)

Programma assoluto

In un programma assoluto gli indirizzi di memoria in cui caricare il programma sono stati già fissati nella fase di compilazione.

Il programma sarà caricato, per la sua esecuzione, sempre negli stessi indirizzi della memoria centrale.

Ciò implica che la pianificazione della memoria centrale (al tempo di esecuzione) deve essere già nota al tempo di compilazione del programma

cosa difficilmente predicibile specie per sistemi multiutente e multiprogrammati

(3)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 5

compilatore sono relativi:

gli indirizzi sono espressi a meno di una costante di rilocazione (o spiazzamento)

Il valore della costante di rilocazione è definito all’atto del caricamento del programma per la sua esecuzione sulla base dell’effettiva occupazione, stato e pianificazione della memoria in quel momento.

Agli indirizzi relativi è aggiunto il valore della costatnte di rilocazione per ottenere quello dell’effettivo indirizzo assoluto in cui caricare ciascuna istruzione

Caricatore per Programmi rilocabili

… un semplice modello di caricatore per programmi rilocabili …

… alcune ipotesi semplificative:

Il programma da caricare è costituito da una unica unità (un main)

Il modello di pianificazione della memoria centrale prevede che il programma sia allocato tutto (istruzioni e dati) in una medesima area di locazioni di memoria consecutive

Il compilatore assegna come primo indirizzo relativo l’indirizzo zero e definisce tutti gli altri con riferimento a questo

(4)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 7

Caricatore per Programmi rilocabili

Il caricatore, con l’ausilio del S. O., individua una area della memoria centrale che può contenere in locazioni consecutive la sequenza di istruzioni e dati del programma da caricare e fissa in K il primo indirizzo assoluto da cui può cominciare il caricamento della sequenza

Un’istruzione del programma rilocabile è del tipo:

I = (OP, A)

OP : codice operativo ed altre informazioni che non devono essere alterate nella fase di caricamento

A: operando (o più operandi), su cui agisce OP, espresso da un indirizzo

Caricatore per Programmi rilocabili

Tra le informazioni ausiliarie vi sono quelle che per ciascun operando ne stabiliscono la rilocabilità.

In particolare NON sono rilocabili:

Operandi immediati:

corrispondono a valori di costanti espressi direttamente nell’istruzione

Operandi assoluti

operandi espressi con l’effettivo indirizzo di memoria contenente il valore da usare

(5)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 9

memoria di indirizzo X, il caricatore esegue le seguenti operazioni:

MIR+K = (OP, A) se l’operando A è immediato o assoluto MIR+K = (OP, A+K) se l’operando A è allocato nella sequenza

Ovvero ciascuna istruzione C = (OP, A) è registrata nell’indirizzo I+K IR: Indirizzo Relativo assegnato in compilazione

K: costante di spiazzamento

Caricatore per Programmi rilocabili

Esempio: ALFA =AA + 50;

… in (pseudo)linguaggio macchina:

I=(add *10, *20, 50)

Con:

• 10 Indirizzo Relativo di ALFA

• 20 Indirizzo Relativo di AA

• IR= 5 indirizzo relativo della istruzione I

• K= 512000 costante di spiazzamento

M5+512000 = (add, *512010, *512020, 50)

(6)

Elementi di Informatica

Prof. G. A. Di Lucca - Univ. del Sannio 11

Caricatore per Programmi assoluti

Per i programmi assoluti per ciascuna istruzione ed operando è già stato definito l’indirizzo I dove caricarla, e quindi il caricatore legge tali indirizzi ed effettua l’operazione

MI = (OP, A)

E’ un programma, del software di base, che collega tra loro le varie unità che formano un programma per genereare il programma eseguibile che sarà caricato in memoria.

Caricatore e Collegatore operano insieme effettuando le seguenti principali operazioni:

• Calcolo delle costanti di spiazzamento

• Allocazione in memoria agli indirizzi fissati

• Definizione dei riferimenti esterni a ciascuna unità del programma

• Collegamento dei moduli di libreria

• Collegamento di tutte le unità costituenti il programma eseguibile

Collegatore – (Linker)

Riferimenti

Documenti correlati

Il sistema operativo tiene traccia sull’uso dei blocchi di memoria (libero, occupato e a chi assegnato) mediante una tabella dei blocchi Quando un nuovo processo richiede

Le memorie di massa servono per immagazzinare dati e programmi e si dividono in hard disk (dischi rigidi o fissi), floppy disk (dischi flessibili e rimovibili), CD ROM (compact

[r]

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

–  Allocazione della memoria ai singoli job –  Protezione dello spazio di indirizzamento –  Condivisione dello spazio di indirizzamento –  Gestione dello swap.. • 

Inoltre, quando l’unità centrale richiede l’accesso a una locazione di memoria virtuale non presente in una cella di memoria reale, si rende necessario effettuare

Leonardo Mineo, ricercatore di archivistica, bibliografia e biblioteconomia presso l'Università degli Studi di Torino, ha tenuto una lezione dal titolo “La creazione