Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Documenti analoghi
Gestione della Memoria

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

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

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Il Sistema Operativo. Informatica Sistema Operativo 1

GESTIONE DELLA MEMORIA CENTRALE

Gestione della memoria

Gestione dinamica della memoria

Università degli Studi di Padova - Corso di Laurea in Informatica

Matlab/Octave - Esercitazione 13

Architettura degli elaboratori Docente:

Gestione della memoria

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

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Sistemi Operativi Esercizi Gestione Memoria

Organizzazione di un SO monolitico

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

Informatica giuridica

Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash

SOLUZIONI: Memoria virtuale

Modi di indirizzamento

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Corso di Informatica

Il Sistema Operativo

Informatica per la Storia dell Arte

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

Somma di numeri binari

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Università degli Studi di Padova - Facoltà di Scienze MM.FF.NN. - Corso di Laurea in Informatica

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

RELAZIONI E BASI DI DATI

Funzioni, Stack e Visibilità delle Variabili in C

Modelli di interazione tra processi

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

Sistema Operativo (Software di base)

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

Introduzione al Linguaggio C

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Programmazione: variabili e operatori. Variabili

U"lizzo della memoria (Indirizzamento, le2ura, scri2ura) Dire8ve Assembler in SPIM

Informatica di Base - 6 c.f.u.

CODIFICA DEL TESTO 0???????

File System. Capitolo 13

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

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

Sviluppo di programmi

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996

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

Esercitazione su Gerarchie di Memoria

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

Informatica di Base 1 Linea 1

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

Le fasi classiche. Informatica di Base -- R.Gaeta 1

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Puntatori. Fondamenti di Programmazione

Famiglia dei processori INTEL

FILE E INDICI Architettura DBMS

Giuseppe Pelagatti. Programmazione e Struttura del sistema operativo Linux

CORSO DI INFORMATICA GENERALE. Università degli Studi di Bergamo

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Domande di Reti Logiche compito del 29/1/2016

Codifica dei Numeri. Informatica ICA (LC) 12 Novembre 2015 Giacomo Boracchi

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Sistema operativo. Interazione con il SO

Corso di Architettura (Prof. Scarano) 09/04/2002

! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente

Esercitazioni di Informatica 3

Allocazione dinamica della memoria

Esercizi per il recupero del debito formativo:

Elaborazione dell informazione

Esercizio: memoria virtuale

Primi passi col linguaggio C

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

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

La codifica. dell informazione

Introduzione ai puntatori in C Definizione

La gestione della memoria dinamica Heap

La codifica binaria. Informatica B. Daniele Loiacono

Università degli Studi di Roma La Sapienza

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc Esercitazione. Memoria virtuale

Componenti e connessioni. Capitolo 3

Introduzione alle gerarchie di memoria

ACSO Programmazione di Sistema e Concorrente

Il linguaggio Assembly

Architettura hardware

APPUNTI DI INFORMATICA

Fondamenti di Informatica Esercizi settimanali n. 3 01/10/2009 SOLUZIONI PROPOSTE

Esercizi svolti sulle cache - Soluzioni

Capitolo 5 Elementi architetturali di base

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Sviluppare un programma in FORTRAN

Transcript:

Sistemi di alcolo (.. 2014-2015) orso di Laurea in Ingegneria Informatica e utomatica Sapienza Università di Roma Esercizi riepilogativi sulla seconda parte del Modulo I Memoria virtuale omanda 1 La memoria virtuale è una tecnica di gestione della memoria basata sulla separazione tra: lo spazio di indirizzi logico accessibile al sistema operativo e all hardware e quello fisico gestito dai processi lo spazio di indirizzi logico accessibile ai processi e quello fisico gestito dal sistema operativo e dall hardware. Lo spazio di indirizzi logico accessibile ai processi e quello fisico gestito dal sistema operativo e dall hardware. omanda 2 In un sistema di memoria virtuale lo spazio logico dei processi non può essere più grande di quello fisico: Vero Falso. Falso. Uno dei vantaggi della memoria virtuale è proprio di consentire spazi di indirizzamento virtuale molto grandi anche ordini di grandezza più della memoria fisica, fornendo maggiore flessibilità nell allocazione dei blocchi in uso al nel suo spazio logico. omanda 3 In un sistema di memoria virtuale: gli indirizzi fisici vengono mappati su quelli logici. Gli indirizzi logici vengono mappati su quelli fisici. omanda 4 In un sistema di memoria virtuale, la tabella delle pagine fornisce: un meccanismo per realizzare in modo efficiente il mapping tra indirizzi dello spazio virtuale e quelli dello spazio fisico gli indirizzi logici vengono mappati su quelli fisici un meccanismo efficiente per ricercare dati in memoria. Un meccanismo per realizzare in modo efficiente il mapping tra indirizzi dello spazio virtuale e quelli dello spazio fisico. omanda 5 Una sola delle seguenti affermazioni sulla memoria virtuale è falsa. Quale?

Tenendo distinti gli spazi virtuali (logici) di processi diversi, si impedisce che un possa interferire con le attività dell altro in modo errato o malizioso, realizzando un meccanismo di protezione Essendo basato su pagine tutte della stessa dimensione, consente di portare a zero il livello di frammentazione interna della memoria Separando lo spazio virtuale da quello fisico, si può fare in modo che un usi più memoria di quella disponibile mappando pagine su disco invece che in RM onsentendo di mappare pagine di indirizzi virtuali di processi distinti sullo stesso frame fisico, la memoria virtuale consente la comunicazione e la cooperazione tra processi diversi. Essendo basato su pagine tutte della stessa dimensione, consente di portare a zero il livello di frammentazione interna della memoria. E vero l esatto contrario: poiché le pagine hanno tutte la stessa dimensione, viene portata a zero la frammentazione esterna nell allocazione della memoria fisica alle pagine, ma potrebbe aumentare quella interna dovuta allo spazio non in uso in una pagina. omanda 6 Qual è la dimensione tipica di una pagina in un sistema di memoria virtuale? 4 M 1 4 K 64 byte 64 K. 4 K. omanda 7 Quanto grande è lo spazio di memoria virtuale che è possibile indirizzare usando un puntatore a 16 bit? 64 G 64 T 64 M 64 K. 64 K. Infatti, un puntatore a 16 bit può puntare a 2 16 = 65536 possibili indirizzi coprendo uno spazio di 65536 byte = 64 K. omanda 8 Quanti bit deve avere un puntatore per indirizzare uno spazio di memoria virtuale di 1 G? 32 64 24 30. 30. Infatti, 1 G = 2 30 byte.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1!Si!noti!che!usiamo!i!prefissi!K,!M,!G,!T!per!denotare!potenze!di!2!piuttosto!che!potenze!di!10.! Questa!pratica!è!di!uso!comune,!ma!va!tenuto!conto!che!è!deprecata.!! ndrebbero!usati!i!prefissi!ki,!mi,!gi,!ti!(es.!ki=2 10!byte)!definiti!dallo!standard!IE!60027L2.!Si! veda:!http://physics.nist.gov/cuu/units/binary.html.!!

omanda 9 Quanto dovrebbe essere grande una tabella delle pagine per mappare uno spazio di memoria virtuale di 1 T su uno spazio di memoria fisico di 4 G con pagine di 1 K? 128 M 1 G 4 G 512 M. 4 G. Infatti, 1 T = 2 40 byte è diviso in 2 30 pagine da 1 K = 2 10 byte. La tabella delle pagine deve contenere quindi 2 30 celle. La memoria fisica di 4 G = 2 32 byte è divisa in 2 22 frame di 1 K = 2 10 byte. Servono pertanto 22 bit per rappresentare un numero di frame. Quindi ogni cella della tabella delle pagine deve essere di almeno 3 byte = 24 bit > 22 bit per contenere un numero di frame (2 byte per cella non basterebbero). on 2 30 celle di 3 byte ciascuna si occuperebbero 3 G. Tuttavia, per motivi di allineamento si preferisce arrotondare a 32 bit per cella della tabella delle pagine, il che ci porta a 4 G. omanda 10 Una sola delle seguenti affermazioni è corretta: 1 K = 2 16 byte, 1 M = 2 24 byte, 1 G = 2 32 byte,! 1 K = 2 12 byte, 1 M = 2 22 byte, 1 G = 2 32 byte. 1 K = 2 10 byte, 1 M = 2 20 byte, 1 G = 2 30 byte. omanda 11 1 K = 210 byte, 1 M = 2 20 byte, 1 G = 2 30 byte 1 K = 2 20 byte, 1 M = 2 30 byte, 1 G = 2 40 byte Una tecnica implementativa comune nei sistemi di memoria virtuale consiste nel partizionare ogni indirizzo virtuale in una parte! che specifica il numero di pagina in cui ricade l indirizzo e una parte! che specifica l offset dell indirizzo all interno della pagina. Qual è la dimensione in bit di! e! per uno spazio virtuale di 1 G suddiviso in pagine di 8 K?!"#$! = 16!!"#,!"#$! = 8!!"#!"#$! = 20!!"#,!"#$! = 10!!"#!"#$! = 18!!"#,!"#$! = 13!!"#!"#$! = 17!!"#,!"#$! = 13!!"#.!"#$! = 17!!"#,!"#$! = 13!!"#. Infatti una pagina da 8 K contiene 2 13 byte, lo spazio virtuale di 1 G contiene 2 30 byte e richiede indirizzi a 30 bit. Si ha quindi: d=13 e p=30-13=17 bit. omanda 12 Si consideri uno spazio di memoria virtuale di 4 G suddiviso in pagine di 4 K. Qual è il numero di pagina p e l offset d dell indirizzo 0xE? p=0x, d=0xe p=0x, d=0xe p=0x, d=0xe p=0x, d=0xe. p=0x, d=0xe. Infatti una pagina da 4 K contiene 2 12 byte, lo spazio virtuale di 4 G contiene 2 32 byte e richiede indirizzi a 32 bit. Si ha quindi: size(d)=12 bit e size(p)=32-12=20 bit. Si ricordi che ogni cifra esadecimale corrisponde a 4 bit, per cui size(d)=3 cifre esadecimali=12 bit e size(p)=5 cifre esadecimali=20 bit. Si ricordi che d prende i bit meno significativi della pagina.

omanda 13 In un sistema operativo Linux a 32 bit ogni ha associato uno spazio virtuale di 4 G che ospita i vari segmenti OE, T, HEP, STK. prendo una shell e digitando il comando ps aux si noterà che vi sono centinaia di processi nel sistema anche ove la memoria fisica sia di pochi G. Ne consegue che non tutta la memoria virtuale associata a ogni può essere effettivamente mappata su frame della memoria centrale. ome fa il sistema operativo a distinguere efficientemente quali pagine sono mappate su frame della memoria centrale e quali no? Il bit più significativo di un indirizzo vale 1 se la pagina in cui ricade e valida, e zero altrimenti Il sistema operativo mantiene una lista collegata che contiene i numeri delle pagine che sono mappate su frame fisici Il sistema operativo mantiene un array contenente i numeri delle pagine che sono mappate su frame fisici ogni entry della tabella delle pagine è associato un bit di validità della pagina che stabilisce se la pagina è in memoria centrale o meno. ogni entry della tabella delle pagine è associato un bit di validità della pagina che stabilisce se la pagina è in memoria centrale o meno. omanda 14 Il segmento HEP di un mantiene:.. omanda 15 Il segmento T di un mantiene: Le stringhe contenute nel testo del variabili globali) di un I record di attivazione delle funzioni variabili globali) di un. variabili globali) di un. omanda 16 Il segmento TEXT di un mantiene:.. Le stringhe contenute nel testo del variabili globali) di un

omanda 17 Il segmento STK di un mantiene:. I record di attivazione delle funzioni. omanda 18 Le variabili locali alle funzioni sono memorizzate nel segmento: OE T HEP STK. STK. omanda 19 Le variabili statiche sono memorizzate nel segmento: OE T HEP STK. T. omanda 20 I parametri delle funzioni sono memorizzati nel segmento: OE T HEP STK. STK. omanda 21 I record di attivazione delle funzioni variabili globali) di un Un blocco allocato dinamicamente con malloc/calloc è memorizzato nel segmento: OE T HEP STK. HEP. omanda 22 Parte del codice eseguibile delle funzioni è memorizzato nel segmento: OE T HEP STK

. OE. Il segmento OE è anche chiamato TEXT. omanda 23 Le stringhe che appaiono in un (es. hello world ) sono memorizzate nel segmento: OE T HEP STK. T.