1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)

Slides:



Advertisements
Presentazioni simili
Gestione della Memoria
Advertisements

Strutture dati per insiemi disgiunti
Meccanismi di IPC Problemi classici di IPC
1 Introduzione ai calcolatori Parte II Software di base.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Java: programmazione concorrente con condivisione di memoria
Gestione della Memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Training On Line – CONA. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Annuali > Nuova Richiesta Si accede alla pagina di Richiesta.
1 System Call per Comunicazione tra Processi Pipe.
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.
Operating System Concepts
Interfaccia del file system
RB-alberi (Red-Black trees)
Realizzazione del file system
Scheduling della CPU Concetti di base Criteri di scheduling
Programmazione Procedurale in Linguaggio C++
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
File.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
eliana minicozzi linguaggi1a.a lezione2
Risorse e Stallo.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Approfondimento delle classi
memoria gestita staticamente:
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
1 Strutture Dinamiche Corso di Informatica A Vito Perrone.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
I File.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Laface Bach 12.1 Sistemi Operativi Modulo 12: File System Livelli logici per laccesso ai file Organizzazione dei file su disco Organizzazione di.
Modulo 13: System call relative al File System
EXCEL FORMATTAZIONE DATI.
Distributed File System Service Dario Agostinone.
Algoritmi di String Matching
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Unità Didattica 3 Linguaggio C
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
File system distribuito transazionale con replicazione
Threads.
Pippo.
Distribuzione per causa delle irregolarità al servizio Azienda ATL (Valori assoluti) 1.
Architettura Centralizzata di un DBMS Relazionale
Sistema Operativo (Software di base)
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Sistemi e Tecnologie Informatiche
Programmazione ad oggetti
Architettura di una CPU
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
1 Esercitazione finale per il corso di Sistemi Operativi (A.A. 2001/2002)
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Gestione della Memoria
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)

2 Il Buffer Cache Unix Obiettivo: minimizzare il numero degli accessi al disco É un’area della memoria primaria che contiene una copia dei blocchi del disco usati piu’di recente Il kernel alloca una porzione della RAM per il buffer cache in fase di inizializzazione

3 Funzionamento del Buffer Bache Quando si devono leggere dei dati da disco, il kernel li cerca prima nel Buffer Cache (B.C.) se non li trova li legge da disco e li copia nel B.C. per eventuali accessi successivi i blocchi scritti su disco sono tenuti anche nel B.C. a disposizione per letture successive il kernel minimizza le scritture su disco cercando di capire se i dati da scrivere sono definitivi o saranno presto sostituiti da altri

4 Il Buffer Header Ogni buffer del B.C. contiene spazio sufficiente per contenere un blocco del disco e il buffer header, il quale contiene: numero del blocco /file system 2 puntatori alla free list, 2 puntatori per la coda di hash flag per “buffer locked” il buffer contiene dati validi? il buffer deve essere scritto su disco prima di essere riassegnato ad un altro blocco (delayed write)? N.B.: non ci possono essere due buffer che contengono lo stesso blocco.

5 Organizzazione dei buffers: i buffer liberi stanno in una free list circolare il kernel preleva un buffer di cui ha bisogno dalla testa e inserisce i buffer appena liberati in coda: gestione LRU dei buffer liberi testa della free list BUF. 2BUF. 1 BUF. n

6 Organizzazione dei buffer: i buffer contenenti un blocco sono anche organizzati in code di hash i buffer sono distribuiti secondo una funzione del numero di blocco e del file system il kernel cerca un buffer specifico della hash queue, e un buffer qualsiasi nella free list un buffer contenente un blocco é sempre in una hash queue e se é unlocked anche nella free list

7 Buffers nelle hash queues mod mod mod mod 4

8 Allocazione dei Buffer Tutte le richieste di lettura e scrittura di blocchi passano attraverso il buffer cache Se il blocco su cui si deve compiere una operazione si trova nel buffer cache si puó evitare l’accesso al disco Il kernel deve gestire 5 situazioni diverse per riuscire ad allocare un buffer per un blocco dei disco su cui sia stata richiesta una operazione

9 Algoritmo “GETBLK” input: numero blocco / file system output: buffer contenente il blocco “locked” 5 casi: –blocco nella hash queue –allocazione di un buffer in free list –allocazione di un buffer in free list con scrittura su disco dei buffer marcati come delayed write –free list vuota –blocco nella hash queue locked

10 1: buffer in hash queue unlocked (a) mod mod mod mod 4 free list header delle code di hash ricerca del blocco 4 nella coda di hash corrispondente

11 1: buffer in hash queue unlocked (a) mod mod mod mod 4 free list locked header delle code di hash rimozione del blocco 4 dalla free list

12 Gestione di un buffer allocato Quando un buffer é stato allocato puó essere usato da un processo. I suoi dati possono essere letti o modificati. Il buffer é “locked” Quando il buffer non é piú in uso viene rilasciato e messo in coda alla free list Il kernel sveglia i processi in attesa perché “free list empty” o perché “buffer locked”

13 2: il blocco non é nella hash queue Il kernel preleva il primo buffer nella free list marca il buffer “locked” inserisce il buffer nella hash queue corretta (eventualmente togliendolo da quella vecchia)

14 2: Il blocco non é nella hash queue (a) mod mod mod mod 4 free list header delle code di hash Ricerca del blocco 18: non é nella hash queue

15 2: Il blocco non é nella hash queue (b) mod mod mod mod 4 free list header delle code di hash rimuove il primo blocco dalla free list e lo assegna al blocco 18 locked

16 3: il buffer selezionato nella free list é marcato delayed write il kernel incomincia la scrittura asincrona su disco del buffer prosegue la ricerca di un buffer nella free list a scrittura completata reinserisce il buffer appena scritto in testa alla free list (per evitare un giro a vuoto del buffer e rispettare la gestione LRU)

17 3: Il buffer é delayed write (a) mod mod mod mod 4 free list header delle code di hash Ricerca del blocco 18 con blocchi a scrittura ritardata in free list buffer a scrittura ritardata

18 3: Il buffer é delayed write (a) mod mod mod mod 4 free list header delle code di hash Scrittura dei blocchi 3 e 5; riassegnazione del buffer selezionato al blocco 18 in fase di scrittura

19 4: blocco non in hash queue e free list vuota il processo si sospende in attesa di un buffer libero quando il processo é risvegliato ricomincia a cercare nella hash queue se qualcuno ha allocato un buffer con quel blocco il processo puó sospendersi su quel buffer altrimenti ricomincia a cercare un blocco libero nella free list.

20 4: blocco non in hash queue, e free list vuota processo A: non trova il blocco 5 nella coda di hash e non ci sono buffer in free list. ATTENDE processo B: Non trova il blocco 5 e ATTENDE Un buffer viene liberato: B viene svegliato prima di A, preleva il buffer e lo assegna al blocco 5 A viene svegliato: il blocco 5 é presente ma locked. A si mette in attesa del ritorno del buffer del blocco 5 in free list

21 5 piú processi concorrono per lo stesso buffer Nella stessa situazione del caso 4: il buffer contenente il blocco 5 viene rilasciato dal processo B e messo in free list. prima che il processo A riesca ad intervenire, un processo C preleva il buffer del blocco 5 e lo usa per caricare un altro blocco. Il blocco 5 non é piú in memoria!!! Il processo A deve ricominciare tutto da capo!

22 I blocchi Delayed Write I blocchi modificati e “unlocked” sono marcati come delayed write La scrittura effettiva su disco avviene solo nel caso 3 dell’algoritmo GETBLK Tuttavia, si spera che il blocco delayed write sia modificato prima di essere selezionato da GETBLK, in modo da non dover effettuare la scrittura su disco

23 Vantaggi del buffer cache il traffico su disco diminuisce la delayed write elimina le scritture inutili l’integritá dei file aumenta perché l’accesso ad un blocco da due processi é serializzato su un unica copia

24 Svantaggi del buffer cache Il sistema richiede piú memoria primaria Il sistema é piú complesso e lavora di piú Il sistema é piú vulnerabile (si possono creare delle inconsistenze, ad esempio se manca corrente prima che vengano scritti effettivamente i buffer delayed write)