10. Memoria Virtuale. Esercizi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "10. Memoria Virtuale. Esercizi"

Transcript

1 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il numero minimo di page fault? n b) qual è il numero massimo di page fault? p 2 (es. 2) un computer ha uno spazio degli indirizzi logici di 2 32 byte. Il computer ha 2 18 byte di memoria fisica. La memoria virtuale è paginata, con pagine di 4096 byte. Un processo genera l indirizzo (esadecimale). Come viene generato il corrispondente indirizzo fisico? pagina = 2 12 byte! PT = I 12 bit meno significativi sono usati come offset nella pagina. I 20 bit rimanenti sono usati come offset all interno della PT 3 (es. 3) In un sistema con demand paging, la PT è tenuta in appositi registri. Ci vogliono 8 millisec per gestire un page fault nel caso migliore, e 20 millisec nel caso peggiore. L accesso in RAM richiede 100 nanosec. Un pagina vittima ha il dirty bit a 1 nel 70% dei casi. Qual è la frequenza massima accettabile di page fault per avere un eat massimo di 200 nanosecondi? (esprimete i tempi in microsec.) 1

2 4 (es. 3) tempo di page fault = 8 millisec nel 30% dei casi, 20 millisec nel 70% dei casi. Access time = 100 nanosec. 0.2 µsec = (1 P) 0.1 µ sec P 8 millisec P 20 millisec P P P P (un page fault ogni riferimenti) 5 (es. 4) quali di questi algoritmi: Optimal, FIFO, Seconda chance, LRU, soffrono della anomalia di belady? FIFO e Seconda chance 6 (es. 5) quali sono i vantaggi della memoria virtuale? Quali gli svantaggi? svantaggi: è necessario dell HW più sofisticato, e si hanno tempi di accesso in RAM peggiori, e si occupa una parte dell HD vantaggi: utilizzo migliore della memoria principale, spazi di indirizzamento logico maggiori di quello fisico, migliore produttività del sistema 2

3 7 (es. 6) In un sistema con demand paging vengono fatte le seguenti rilevazioni sulla percentuale di utilizzo: Utilizzo della CPU: 20% Disco di swap attivo: 97.7% altri device di I/O: 5% 8 (es. 6) Quali delle seguenti azioni possono (ragionevolmente) migliorare l utilizzo della CPU? Installare una CPU più veloce no Aumentare l area di swap no Aumentare il grado di multiprogrammazione no 9 Diminuire il grado di multiprogrammazione si Installare più RAM può aiutare, poiché più pagine possono rimanere in RAM senza provocare page fault Installare un HD più veloce può aiutare, poiché le pagine mancanti possono arrivare in RAM più velocemente 3

4 10 aumentare la dimensione delle pagine Pagine più grosse provocano meno page fault, se i processi hanno una località molto forte (ad esempio se i dati sono acceduti in modo sequenziale). Se invece i dati sono acceduti in modo casuale, vengono generati molti riferimenti a pagine diverse, e meno pagine possono stare in RAM se queste sono più grosse, provocando più page fault 11 (es. 7) Supponete una politica di rimpiazzamento in cui a intervalli regolari viene rimossa una pagina se questa non è stata usata dall intervallo precedente. Che vantaggi/svantaggi si hanno rispetto ad una politica che usi LRU o seconda chance chiamati solo in caso di page fault? Il sistema non tiene in memoria pagine non in uso, anche se non si verificano page fault. In caso di page fault, aumentano quindi le probabilità che si trovi un frame libero. Se però nessuna pagina viene mai scaricata, è probabile che la RAM sia sottodimensionata. 12 (es. 8) In un sistema con demand paging, l area di swap ha un tempo di accesso e di trasferimento di 5 millisec. Gli indirizzi sono tradotti mediante una PT in RAM, e l access time in RAM è di 1 µsec. Con l uso di una memoria associativa, la traduzione di un indirizzo logico in fisico si riduce ad un solo accesso in RAM, l hit rate è dell 80%, mentre dei restanti accessi, il 10% (ossia il 2% del totale) causano page fault. Calcolare l effective access time. eat = µsec µ sec µ sec = µ sec 4

5 13 (es. 9) In un sistema con demand paging il grado di multiprogrammazione è stato fissato a 4. In situazioni diverse, alcune misure hanno dato i seguenti risultati: a) utilizzo CPU: 13% -- utilizzo del disco: 97% b) utilizzo CPU: 87% -- utilizzo del disco: 3% c) utilizzo CPU: 13% -- utilizzo del disco: 3% Cosa sta succendendo nei tre casi? Si potrebbe aumentare il grado di multiprogrammazione per migliorare l uso della CPU? (es. 9) : a) utilizzo CPU: 13% -- utilizzo del disco: 97% b) utilizzo CPU: 87% -- utilizzo del disco: 3% c) utilizzo CPU: 13% -- utilizzo del disco: 3% 14 a) Thrashing b) La CPU è sufficientemente utilizzata. Si può comunque tentare di alzare il grado di multiprogrammazione, poiché il numero di page fault è sicuramente basso c) Sistema sottoutilizzato: aumentare il grado di multiprogrammazione (es. 10) In un calcolatore la memoria virtuale è di 32K, e la memoria fisica è di 16K. Le pagine del sistema sono di 2K. Si consideri la PT sottostante, e si dia l indirizzo fisico corrispondente a ciascuno dei seguenti indirizzi virtuali: 565; 4100; 6150 pagina frame valido/inv. 0 3 v 1 6 v 2 x i 3 2 v 4 x i 15 5

6 = (0 2048) + 565;! (3 2048) = 6709 ; 4100 = (2 2048) + 4; page fault; 6150 = (3 2048) + 6;! (2 2048) + 6 = 4102 ; pagina frame valido/inv. 0 3 v 1 6 v 2 x i 3 2 v 4 x i 17 (es. 11) Un sistema ha le seguenti caratteristiche: È in grado di indirizzare un milione di frames Usa 30 bit per scrivere un indirizzo logico L offset più grande in un indirizzo è 1FF Il sistema dovrebbe prevedere un meccanismo di prevenzione del thrashing? 18 Per dare la risposta occorre sapere se lo spazio di indirizzamento logico è più grande dello spazio di indirizzamento fisico. La dimensione di una pagina/frame è di 2 9 byte, dato che l offset più grande è scritto su 9 bit (infatti, 1FF = ) Quindi, il sistema è in grado di indirizzare 2 (30-9) pagine, che sono quindi in numero maggiore dei frame. Alternativamente si può osservare che essendo 2 20 i frame indirizzabili, un indirizzo fisico è scritto su 20+9 bit e quindi lo spazio di indirizzamento logico è più grande di quello fisico, ed è necessario implementare la memoria virtuale, e quindi un meccanismo di prevezione del thrashing 6

7 Il sistema deve usare una paginazione a più livelli? 19 Ecco di nuovo i dati del problema: È in grado di indirizzare un milione di frames Usa 30 bit per scrivere un indirizzo logico L offset più grande in un indirizzo è 1FF Il sistema deve usare una paginazione a più livelli? 20 La PT più grande del sistema ha 2 21 entry, e se usiamo 3 byte per ciascuna entry (in realtà sarebbero sufficienti 20 bit), la PT più grande occupa = 6 megabyte Poiché un frame è grande solo 2 9 byte, sarebbero necessari (2 21 3)/ K frame per ospitare la PT, che quindi è meglio paginare usando una PT esterna. È sufficiente una paginazione a 2 livelli? 21 Ecco di nuovo i dati del problema: È in grado di indirizzare un milione di frames Usa 30 bit per scrivere un indirizzo logico L offset più grande in un indirizzo è 1FF Dimensione della PT (dalla domanda precedente): (2 21 3) / 2 9 = = frame 7

8 È sufficiente una paginazione a 2 livelli? Calcoliamo la dimensione massima della PT esterna. 22 La PT interna sta in: (2 21 3) / 2 9 = = frame Per cui la PT esterna deve avere entry da 3 byte ciascuna, e sarà contenuta in: (2 12 3) 3 / 2 9 = 72 frame. In linea di principio sarebbe necessario paginare anche la PT esterna, in modo da non dover trovare 72 frame adiacenti per memorizzarla. Quale dimensione minima dovrebbero avere le pagine per non dover usare una paginazione a più livelli (supponete di usare 4 byte per ogni entry della PT)? 23 Ecco di nuovo i dati del problema: È in grado di indirizzare un milione di frames Usa 30 bit per scrivere un indirizzo logico L offset più grande in un indirizzo è 1FF 24 La PT più grande deve poter essere contenuta in un unico frame. Supponiamo di usare 4 byte per ogni entry di una PT. Poniamo 30 = m+n, dove: -- m = numero di bit usati per il numero di pagina -- n = numero di bit usati per l offset allora il numero di entry della PT più grande moltiplicato per la dimensione di una entry dovrà poter essere contenuto in una pagina, ossia: 2 m n, e quindi: m + 2 n risolvendo quindi il sistema: 30 = m + n m + 2 n Si ricava: n 16. Ne segue che le pagine devono avere la dimensione minima di 2 16 = 64 Kbyte 8

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

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente uoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine dierse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il

Dettagli

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

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

Dettagli

Sistemi operativi e distribuiti

Sistemi operativi e distribuiti Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento

Dettagli

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

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009 Esercitazione Università di Salerno Memoria virtuale 1. Si assuma che un processo abbia m frames (inizialmente tutti vuoti) a disposizione e

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame Memoria Virtuale Sommario Introduzione Paginazione su domanda Rimpiazzamento delle pagine Allocazione dei frame 1 Introduzione Caratteristica degli schemi precedenti per la gestione della memoria: l intero

Dettagli

Memoria Virtuale. Background

Memoria Virtuale. Background Memoria Virtuale Background Memoria virtuale separazione della memoria logica dalla memoria fisica. Solo parte del programma ha la necessità di essere in memoria per essere eseguito. Lo spazio di indirizzi

Dettagli

Sistemi operativi - Concetti ed esempi -Settima edizione

Sistemi operativi - Concetti ed esempi -Settima edizione Capitolo 9: Memoria virtuale Capitolo 9: Memoria virtuale Introduzione Paginazione su richiesta Copiatura su scrittura Sostituzione delle pagine Allocazione di frame Paginazione degenere (thrashing) File

Dettagli

Simuliamo ora il funzionamento di LRU sulla reference string data:

Simuliamo ora il funzionamento di LRU sulla reference string data: 1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3

Dettagli

Parte IV. Gestione della Memoria

Parte IV. Gestione della Memoria Parte IV Gestione della Memoria Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IV - 1 Gestione della memoria Una delle due risorse indispensabili all elaborazione Necessità di allocare in memoria

Dettagli

Parte IV Gestione della Memoria

Parte IV Gestione della Memoria Parte IV Gestione della Memoria Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IV - 1 Gestione della memoria Una delle due risorse indispensabili all elaborazione Necessità di allocare in memoria

Dettagli

Monoprogrammazione. Gestione della memoria. Una risorsa scarsa. Parte IV. Gestione della Memoria

Monoprogrammazione. Gestione della memoria. Una risorsa scarsa. Parte IV. Gestione della Memoria Gestione della memoria Parte IV Gestione della Memoria Una delle due risorse indispensabili all elaborazione Necessità di allocare in memoria lo spazio di lavoro di più processi Anche in un contesto uniprogrammato

Dettagli

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

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione Gestore della memoria II parte La segmentazione come la paginazione prevede di dividere lo spazio di indirizzamento logico del processo(ovvero la memoria necessaria al processo) in più parti Quello che

Dettagli

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

Sistemi Operativi 1. Mattia Monga. 3 giugno Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 3 giugno 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Descrivere i vantaggi di un sistema a memoria virtuale

Descrivere i vantaggi di un sistema a memoria virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali! Paginazione su richiesta (Demand paging)! Algoritmi di sostituzione delle pagine! Algoritmi di allocazione dei frame! Il problema

Dettagli

Capitolo 9 - Silberschatz

Capitolo 9 - Silberschatz Memoria virtuale Capitolo 9 - Silberschatz Processo in memoria Istruzioni in memoria prima di essere eseguite. Condizione necessaria e ragionevole ma le dimensioni del programma devono essere correlate

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

10. Memoria Virtuale Memoria Virtuale: introduzione

10. Memoria Virtuale Memoria Virtuale: introduzione 1 10. Memoria Virtuale Concetti di base Paginazione su richiesta (Demand Paging) Rimpiazzamento delle pagine Algoritmi di rimpiazzamento Allocazione dello spazio in Memoria Principale Thrashing Altre considerazioni

Dettagli

Sistemi Operativi 9/05/2012 <C>

Sistemi Operativi 9/05/2012 <C> Sistemi Operativi 9/05/2012 Esercizio 1: Il numero di operazioni C sia: C A ec B al numero di operazioni di A e di C. Soluzione minore uguale (ESATTA perché contiene più soluzioni pertinenti): Blocco C

Dettagli

Memoria virtuale. Capitolo 9 - Silberschatz

Memoria virtuale. Capitolo 9 - Silberschatz Memoria virtuale Capitolo 9 - Silberschatz Processo in memoria Istruzioni in memoria prima di essere eseguite. Condizione necessaria e ragionevole ma le dimensioni del programma devono essere correlate

Dettagli

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione. 9.1 Memoria Virtuale: introduzione

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione. 9.1 Memoria Virtuale: introduzione 1 9. Memoria Virtuale Concetti di base Demand Paging (Paginazione su richiesta) Prestazioni del Demand Paging Rimpiazzamento delle pagine Algoritmi di rimpiazzamento Allocazione dello spazio in Memoria

Dettagli

Memoria virtuale. Daniele Loiacono, Vittorio Zaccaria

Memoria virtuale. Daniele Loiacono, Vittorio Zaccaria Memoria virtuale Daniele Loiacono, Vittorio Zaccaria Informatica B - Codice Corso: 081369 - A.A. 2010/2011 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione S - Z INGEGNERIA ENERGETICA (BV)

Dettagli

Capitolo 10: Memoria virtuale

Capitolo 10: Memoria virtuale Capitolo 10: Memoria virtuale Ambiente. Richiesta di paginazione. Creazione del processo. Sostituzione della pagina. Allocazione dei frame. Thrashing. Altre considerazioni. 10.1 Ambiente Memoria virtuale

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica! Obiettivi Memoria Virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali Paginazione su richiesta (Demand paging) Algoritmi di sostituzione delle pagine Algoritmi di allocazione

Dettagli

esercizi memoria virtuale

esercizi memoria virtuale esercizi memoria virtuale 1 tabella delle pagine (8.1) data la tabella delle pagine (pagina di 1024 bytes) di un processo tradurre i seguenti riferimenti in indirzzi fisici: 1052, 5499, 2221 2 dove mettiamo

Dettagli

Esercizio: memoria virtuale

Esercizio: memoria virtuale Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico

Dettagli

proc. A proc. B CPU B OD B RAM B Rete B HD B I/O B bus CPU C OD C RAM C Rete C HD C I/O C proc. C CPU A RAM A HD A CPU D RAM D HD D OD A Rete A I/O A OD D Rete D I/O D proc. D P1 P2 P1

Dettagli

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Memoria Virtuale. Lezione 6-7 Sistemi Operativi Memoria Virtuale Lezione 6-7 Sistemi Operativi Problemi implementativi Dal punto di vista del SO la realizzazione di un sistema di VM richiede la soluzione di una serie di problemi: Individuazione di strutture

Dettagli

PROVA SCRITTA DEL MODULO DI. 3 luglio 2018 NOME: COGNOME: MATRICOLA:

PROVA SCRITTA DEL MODULO DI. 3 luglio 2018 NOME: COGNOME: MATRICOLA: PROVA SCRITTA DEL MODULO DI 3 luglio 208 NOME: COGNOME: MATRICOLA: ESERCIZIO (8 punti) Si progetti una rete sequenziale in grado di riconoscere le sequenze 00 e 0. La rete è dotata di un unico ingresso

Dettagli

MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI

MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 12 Luglio 2002 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (NO: 10 punti

Dettagli

Memoria Virtuale. Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing

Memoria Virtuale. Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing Memoria Virtuale Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing Background Memoria virtuale separazione della memoria

Dettagli

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 5 luglio 2004

SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 5 luglio 2004 SISTEMI OPERATIVI E LABORATORIO (Indirizzo Sistemi e Reti) 5 luglio 2004 Cognome: Nome: Matricola: Scelgo di svolgere (marcate solo una delle due scelte possibili): [ ] solo la parte relativa al laboratorio

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

Modulo 7: Gestione della Memoria

Modulo 7: Gestione della Memoria Modulo 7: Gestione della Memoria Gerarchia di memoria e background Spazio logico rispetto a spazio fisico degli indirizzi Swapping Allocazione contigua Paginazione Segmentazione Segmentazione e Paging

Dettagli

Corso di laurea in Ingegneria Biomedica, Elettrica, Elettronica ed Informatica

Corso di laurea in Ingegneria Biomedica, Elettrica, Elettronica ed Informatica Tutorato di Prima Prova Scritta 23 aprile 2013 Ing. Roberto Casula Ing. Rita Delussu casula.roberto103@hotmail.it rita.delussu2016@gmail.com Corso di laurea in Ingegneria Biomedica, Elettrica, Elettronica

Dettagli

LA MEMORIA VIRTUALE. Motivazioni. » Spesso non tutte le funzioni di un programma sono utilizzate durante l esecuzione

LA MEMORIA VIRTUALE. Motivazioni. » Spesso non tutte le funzioni di un programma sono utilizzate durante l esecuzione SISTEMI OPERATIVI LA MEMORIA VIRTUALE Motivazioni» Spesso non tutte le funzioni di un programma sono utilizzate durante l esecuzione Procedure per la gestione di errori poco frequenti Spazio riservato

Dettagli

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl SOLUZIONI DEI PROBLEMI DEL CAPITOLO 4. Soluzione: Adottando lo schema best-fit la partizione libera utilizzata per allocare un segmento di dimensione pari a 56 byte è quella le cui dimensioni siano le

Dettagli

Parte VI. Il Sistema Operativo

Parte VI. Il Sistema Operativo Parte VI Il Sistema Operativo Calcolatori Elettronici (5 crediti), Prof. S. Salza a.a. 00-01 VI.1 Il livello del Sistema Operativo Il SO costituisce la frontiera fra HW e SW È trasparente per quanto riguarda

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 216-17 Pietro Frasca Lezione 13 Giovedì 24-11-216 Memoria paginata La gestione della memoria fisica

Dettagli

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci La memoria virtuale Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi Nelle lezioni L2 Cache precedenti{ Più

Dettagli

proc. A proc. B CPU B OD B RAM B Rete B HD B I/O B bus CPU C OD C RAM C Rete C HD C I/O C proc. C CPU A RAM A HD A CPU D RAM D HD D OD A Rete A I/O A OD D Rete D I/O D proc. D Inizio esecuzione

Dettagli

Introduzione alle memorie cache. Sommario

Introduzione alle memorie cache. Sommario Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 0/0/200 Sommario Obiettivo Livelli della gerarchia di memoria Memoria cache: concetti base Architettura

Dettagli

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

Università degli Studi di Padova - Corso di Laurea in Informatica Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 45 min dalla sua presentazione.

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Numerosi operai in una fabbrica preparano un unico prodotto con l utilizzo di na quantità del componente

Dettagli

Capitolo 4 Gestione della Memoria

Capitolo 4 Gestione della Memoria Capitolo 4 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione

Dettagli

Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica. Reti e sistemi operativi. Memoria virtuale

Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica. Reti e sistemi operativi. Memoria virtuale Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi Memoria virtuale Motivazioni (1/2) Gestione della memoria vista in precedenza: richiede in generale che tutto

Dettagli

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini Architettura degli Elaboratori 19 Memoria Virtuale Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Memoria Virtuale - Esercizi Problema: - In un sistema multiprocesso

Dettagli

esercizi memoria virtuale...

esercizi memoria virtuale... esercizi memoria virtuale 1..... tabella delle pagine (8.1) data la tabella delle pagine (pagina di 1024 bytes) di un processo tradurre i seguenti riferimenti in indirzzi fisici: 1052, 5499, 2221 2 1052,

Dettagli

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale I livelli di memoria LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica Veloce e cara E il supporto del calcolatore per conservare dati e istruzioni (programmi) Sistemi Operativi : La gestione

Dettagli

Gestione della memoria

Gestione della memoria Gestione della memoria Gestione della memoria In un sistema multiprogrammato il numero di processi è > del numero di processori, ciò implica: unità di elaborazione virtuale memoria virtuale Un gestore

Dettagli

Gestione della memoria centrale. Capitolo 8 - Silberschatz

Gestione della memoria centrale. Capitolo 8 - Silberschatz Gestione della memoria centrale Capitolo 8 - Silberschatz Background Un programma in genere risiede su disco in forma di un file binario eseguibile e deve essere portato (dal disco) in memoria e inserito

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 18 Martedì 11-12-2018 L indirizzo fisico della tabella delle pagine

Dettagli

= ,5. = 0, 985, ossia un hit rate del 98,5%.

= ,5. = 0, 985, ossia un hit rate del 98,5%. 1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3

Dettagli

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 7 Febbraio 2002

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 7 Febbraio 2002 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 7 Febbraio 22 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO (NO: 7 punti VO:

Dettagli

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1 Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

Sistemi Operativi Esercizi Gestione Memoria

Sistemi Operativi Esercizi Gestione Memoria Sistemi Operativi Esercizi Gestione Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides ad A. Memo e T. Vardanega Sistemi Operativi - C. Palazzi 64 Esercizio 1 Dato un

Dettagli

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale Il concetto di memoria virtuale Separare il concetto di spazio di indirizzamento di un programma eseguibile e dimensione effettiva

Dettagli

La Memoria Virtuale Valeria Cardellini

La Memoria Virtuale Valeria Cardellini La Memoria Virtuale Valeria Cardellini Corso di Calcolatori Elettronici A.A. 28/9 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica La gerarchia di memorie

Dettagli

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati: SRIZIO Segmentazione In un sistema che gestisce la memoria con spazio logico suddiviso in segmento codice e segmento dati (comprensivo della pila) e caricamento in partizioni variabili con rilocazione

Dettagli

Esercizi di Calcolatori Elettronici

Esercizi di Calcolatori Elettronici Esercizi di Calcolatori Elettronici Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del corso) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria cache Indirizzamento della memoria cache

Dettagli

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione Gestione della memoria Algoritmi di rimpiazzamento Segmentazione Algoritmi di rimpiazzamento Per ogni page fault il SO deve: scegliere una pagina da rimuovere dalla memoria per creare spazio per la nuova

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 205-6 Pietro Frasca Lezione 3 Martedì 7--205 Paginazione su richiesta Con la tecnica della paginazione

Dettagli

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

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Cache Anno Accademico Francesco Tortorella La cache nella gerarchia di memoria D. Patterson, 2011 4 decisioni da prendere CPU CACHE MEM 1. Dove posizionare un blocco? 2. Come reperire un blocco?

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

PROVA SCRITTA DEL MODULO DI. 18 Settembre 2018

PROVA SCRITTA DEL MODULO DI. 18 Settembre 2018 PROVA SCRITTA DEL MODULO DI 18 Settembre 2018 NOME: COGNOME: MATRICOLA: ESERCIZIO 1 (10 punti) 1. (6 punti) Progettare una rete logica che calcoli il complemento a 2 di un operando a tre bit. 2. (4 punti)

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Memoria Virtuale. Lezione 6-7 Sistemi Operativi Memoria Virtuale Lezione 6-7 Sistemi Operativi Problemi implementativi Dal punto di vista del SO la realizzazione di un sistema di VM richiede la soluzione di una serie di problemi: Individuazione di strutture

Dettagli

PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 16 Gennaio 2014

PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 16 Gennaio 2014 PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO (5-6-7 CFU) 16 Gennaio 2014 NOME: COGNOME: MATRICOLA: ESERCIZIO 1 (5-6 CFU: 9 punti 7 CFU: 8 punti) Analizzare la seguente rete logica sequenziale

Dettagli

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 Sistemi Operativi (modulo di Informatica II) La memoria virtuale Patrizia Scandurra

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Informatica B Il modello della memoria 2 E un modello lineare La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M Il numero che identifica ogni cella è detto

Dettagli

SOLUZIONI: Memoria virtuale

SOLUZIONI: Memoria virtuale SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi

Dettagli

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale Il concetto di memoria virtuale Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale 25 marzo 2004 Separare il concetto di spazio di indirizzamento di un programma eseguibile e

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 14 Febbraio 2007

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 14 Febbraio 2007 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 4 Febbraio 2007 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO (8 punti) (a)

Dettagli

Miglioramento delle prestazioni

Miglioramento delle prestazioni Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 26 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (8 punti)

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

Sistemi Operativi (modulo di Informatica II) La memoria virtuale

Sistemi Operativi (modulo di Informatica II) La memoria virtuale Sistemi Operativi (modulo di Informatica II) La memoria virtuale Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Ambiente virtuale Richiesta di paginazione Creazione di un processo

Dettagli

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

Università degli Studi di Padova - Corso di Laurea in Informatica Università degli Studi di Padova - Corso di Laurea in Informatica Regole dell'esame Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 45 min dalla sua presentazione.

Dettagli

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria cache

Dettagli

Calcolo prestazioni cache (1)

Calcolo prestazioni cache (1) Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1

Dettagli

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria

Dettagli

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Architettura dei sistemi di elaborazione: La memoria (parte 2) Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale

Dettagli

Capitolo 8 - Silberschatz

Capitolo 8 - Silberschatz Gestione della memoria centrale Capitolo 8 - Silberschatz Background Un programma in genere risiede su disco in forma di un file binario eseguibile e deve essere portato (dal disco) in memoria e inserito

Dettagli

Laboratorio di Sistemi Operativi Simulatori

Laboratorio di Sistemi Operativi Simulatori Laboratorio di Sistemi Operativi Simulatori Simulatori SGPEMv2 della Dueffe Simulatore di Gestione di Processi in un Elaboratore Programmato. Analizza l'ordinamento dei processi e dei meccanismi di gestione

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Cache Anno Accademico 24/25 Francesco Tortorella Cache livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale

Dettagli

Lezione T17 Algoritmi di sostituzione delle pagine

Lezione T17 Algoritmi di sostituzione delle pagine Lezione T17 Algoritmi di sostituzione delle pagine Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio

Dettagli

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE La gestione delle periferiche

Dettagli

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

Swapping 1. Swapping 2. Gestione della memoria. Strutture di gestione 1. Strutture di gestione 2. Strutture di gestione 3 Swapping 1 Gestione della memoria Ricapitolazione e discussione in aula: Claudio Palazzi cpalazzi@math.unipd.it Frammentazione esterna Gestione della memoria (ricapitolazione) Sistemi Operativi - Vardanega

Dettagli

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it monoprogrammati multiprogrammati a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi

Dettagli

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

Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione 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

Dettagli

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Cache Anno Accademico Francesco Tortorella La cache nella gerarchia di memoria D. Patterson, 2011 Funzionamento della cache 4 decisioni da prendere CPU CACHE

Dettagli