Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo



Documenti analoghi
Cosa è un Sistema Operativo (S.O.)

Sistemi Operativi. 5 Gestione della memoria

Il Sistema Operativo (1)

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Gestione della memoria centrale

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Capitolo Silberschatz

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Il Software. Il software del PC. Il BIOS

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Il memory manager. Gestione della memoria centrale

Gestione della Memoria

Sistema operativo: Gestione della memoria

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Il File System. Il file system

La Gestione delle risorse Renato Agati

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Introduzione ai Sistemi Operativi

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Gestione della memoria centrale

Modulo 4: Gestore del File System (Memoria secondaria) Componenti

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Software di base. Corso di Fondamenti di Informatica

Architettura hardware

File system II. Sistemi Operativi Lez. 20

Sistemi Operativi (modulo di Informatica II) I processi

Le Infrastrutture Software ed il Sistema Operativo

Sistemi Operativi Kernel

Varie tipologie di memoria

Infrastrutture Software

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

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

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

GESTIONE DELLA MEMORIA CENTRALE

Dispensa di Informatica I.1

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Informatica e Bioinformatica: Sistemi Operativi

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Sistema Operativo Compilatore

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

PARTE 4 La Macchina Software

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Architettura di un sistema operativo

La Memoria Virtuale Ottimizzazione della memoria centrale

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

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

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

STRUTTURE DEI SISTEMI DI CALCOLO

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Indice. settembre 2008 Il File System 2

Corso di Sistemi di Elaborazione delle informazioni

C. P. U. MEMORIA CENTRALE

Corso di Informatica

Il computer: primi elementi

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Struttura del Micro Filesystem (µfs)

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Sistemi operativi. Esempi di sistemi operativi

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

Informatica di Base - 6 c.f.u.

Architettura del calcolatore

Approccio stratificato

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Funzioni del Sistema Operativo

Pronto Esecuzione Attesa Terminazione

TITLE Sistemi Operativi 1

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Laboratorio di Informatica

GESTIONE DEI PROCESSI

11 Realizzazione del File System Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

Transcript:

Corso di Laurea Triennale in Informatica Università degli Studi di Bari Aldo Moro Anno Accademico 2012-2013 Lez. 8 : Il Livello di Sistema Operativo Sebastiano Pizzutilo Strutturazione del Sistema Operativo Livello dei Linguaggi Applicativi Livello del Linguaggio Assemblatore Livello del Sistema Operativo Livello del liguaggio macchina Livello della microprogrammazione Livello hardware Il livello S.O. aggiunge nuove istruzioni e funzionalità al livello ISA Instruction Set del livello SO : le istruzioni del livello ISA e nuove istruzioni, dette chiamate di sistema ( system call ) Ø Le istruzioni del livello ISA vengono eseguite direttamente dal livello sottostante Ø Le istruzioni di chiamata (istruzioni che servono a richiedere un servizio al SO) sono interpretate dal sistema operativo 1

Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi S.O. supporto all utente permette l uso dell elaboratore a utenti che non hanno necessariamente una conoscenza approfondita dell hardware Sia il programmatore che l utente preferiscono trattare con una ASTRAZIONE (preferibilmente grafica) della macchina reale. Il S.O. nasconde al programmatore la verità sui livelli hardware sottostanti e presenta all utente un interfaccia gradevole e amichevole. S.O. come gestore delle risorse realizza l integrazione, l ottimizzazione e la sincronizzazione della comunicazioni tra le componenti hardware Insieme di moduli software per gestire : il processore centrale, la memoria centrale, l uso delle periferiche, il BUS, i file sulle memorie esterne (File system), i comandi che gli utenti possono usare (interprete comandi),. Parametri prestazioni del Sistema Operativo Turnaround Time (Tta) Tta =T OUT -T IN è il tempo che passa tra l ingresso dei dati e la produzione dell output Throughput E proporzionale al numero di lavori (task) eseguiti dal sistema nell unità di tempo ΔT. E detto anche CARICO del SISTEMA Overhead di Gestione Sovraccarico Gestionale. E proporzionale al tempo di CPU consumato dal S.O. per eseguire il suo compito di gestione dei moduli software che lo compongono Un sistema efficiente... Throughput Elevato Turnaround Time Basso Overhead Gestionale Basso 2

La storia dei S.O. Per comprendere le funzionalità di un S.O. è comodo seguirne l evoluzione storica anni 40 (assenza di S.O.) anni 50 (gestione dei lavori a lotti) anni 60 ( multiprogrammazione) metà anni 60 (Sistemi General Purpose) metà anni 70 ( DB, Reti, S.Distribuiti ) oggi (Sistemi Operativi stratificati multitasking con molte componenti middleware ) Evoluzione dei SO Sistemi operativi monoprogrammati monoprogrammazione tempo Attesa per I/O Elaborazione Utilizzo della CPU durante l esecuzione di un programma 3

Evoluzione dei SO Anni 60: sistemi multiprogrammati e sistemi time-sharing Multiprogrammazione : più di un programma in memoria centrale Time-sharing : suddivisione del tempo di CPU tra diversi programmi in esecuzione P1" P2" tempo P1 P2 Attesa per I/O Attesa per I/O Elaborazione P3 Elaborazione tempo La multiprogrammazione consente una efficiente elaborazione batch La partizione di tempo consente l elaborazione interattiva Multiprogrammazione Possibilita di caricare piu programmi in memoria in grado di condividere l uso della CPU e delle risorse dell elaboratore E possibile che il S.O., per realizzare la multiprogrammazione, non mantenga tutti i programmi in memoria ma carichi di volta in volta quello piu idoneo da un supporto di memoria di massa. Tale tecnica, detta di swapping, e poco efficiente, ma risulta necessaria quando si hanno problemi di dimensione della memoria. I programmi in memoria centrale possono essere eseguiti, è quindi necessario un opportuno sistema per gestire l esecuzione dei diversi programmi presenti in Memoria Centrale. Processo = Programma in esecuzione Nucleo (o Kernel) del S.O. = gestore dei processi Nella multiprogrammazione più programmi sono in memoria, quindi più processi sono attivati ma una sola è la risorsa CPU (processore). 4

Sistema Operativo come gestore delle risorse Il S.O. è un insieme di moduli software interagenti fra loro per coordinare l accesso alle risorse da parte degli utenti e del software applicativo: Gestore del processore centrale Gestore della memoria centrale Gestore delle periferiche Gestore dei file (File system) su memorie esterne Gestore degli utenti e dei relativi comandi (interprete comandi=shell) Modelli organizzativi dei S.O. Il SO è caratterizzato funzionalmente come la combinazione di un insieme di processi di servizio e di un gestore, detto nucleo ( Kernel ), che opera come sistema di controllo dei processi. Modelli organizzativi di riferimento per i sistemi operativi stand-alone: Ø Modello monolitico: S.O. costituito da un unico modulo che serve le richieste dei programmi-utente uno alla volta Ø Modello a strati: S.O. costituito da più moduli, ciascuno dei quali svolge specifiche funzioni, ed ogni modulo può servire le richieste di più programmi-utente 5

Sistemi Operativi multistrato utente gui Xwindow Programmi di utilità (shell, editor, compilatori, ) Librerie standard SISTEMA OPERATIVO HARDWARE Modello di S.O. a Strati Ä Multiuser Ä Multitask : multiprocessing - multithreading Ä Time-sharing processi e thread GUI e/o applicativi e/o middleware shell tools Gestore dei file Gestore della memoria Gestore dei processi e delle interruzioni HW kernel 6

Cos è un processo Processo = programma in esecuzione. Un processo necessita quindi di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O. Un processo (un programma in esecuzione) ha bisogno di utilizzare come proprie risorse : il program counter lo stack una sezione di dati Un Sistema Operativo esegue vari programmi presenti contemporaneamente in memoria centrale. Il SO è quindi responsabile delle seguenti attività di gestione dei processi: Creazione e cancellazione di processi. Sospensione e riattivazione di processi. Fornisce meccanismi per:» sincronizzazione di processi» comunicazione fra processi Stati di un processo Mentre viene eseguito, un processo cambia stato Nuovo (new): Il processo viene creato, quando si manda in RUN un programma. In esecuzione (running): Le istruzioni del programma vengono eseguite perchè il processore centrale è stato assegnato al processo. In attesa (waiting): Il processo è in attesa per qualche evento che deve avvenire (ad es. sincronizzazione operazioni I/O). Pronto (ready): Il processo è in attesa di essere assegnato al (ad un) processore. Terminato (terminated): Il processo ha finito l esecuzione. 7

Process Control Block (PCB) Il PCB contiene le informazioni associate ad un processo: Stato del processo Program counter Registri della CPU Informazioni sullo scheduling della CPU Informazioni sulla gestione della memoria Informazioni di contabilizzazione delle risorse Informazioni sullo stato di I/O Sistemi Time Sharing Un processo rimane in running solo per un intervallo fissato di tempo (Time Slice) Per evitare che resti padrone della CPU a tempo indeterminato il Supervisore riacquista il controllo... quando è terminato il time slice assegnato, quando il programma termina la sua esecuzione, quando il programma richiede una operazione di I/O. È ovvio che un programma per terminare la sua esecuzione avrà bisogno di più time slice. Così... aumenta il turnaround time dei singoli processi, migliora il throughput complessivo. 8

Switch della CPU tra due processi Quando la CPU passa da un processo all altro, il sistema deve salvare lo stato del vecchio processo e caricare lo stato precedentemente salvato per il nuovo processo. Il tempo di context-switch è un overhead; il sistema non lavora utilmente (idle) mentre cambia processo. Il Gestore della Memoria Il compito del SO è anche di gestire la Memoria Centrale: Ø ricordare quali parti della memoria sono attualmente in uso e quali non lo sono, Ø assegnare la memoria ai processi, Ø deallocare la memoria assegnata, Ø amministrare gli scambi tra memoria centrale e disco quando la prima non è più in grado di contenere i processi (swapping). Spazio degli indirizzi simbolici mov ax.bx cmp ax cx je punto1 add ax,cx punto1:add cx,bx traduzione rilocazione 011010100 010001000 010111110 110001110 000001111 111000000 000000000 000000000 Spazio degli indirizzi logici relativi ad un indirizzo base (binario rilocabile) Spazio degli indirizzi fisici (memoria centrale) 9

Spazi di indirizzi logici e fisici Il concetto di uno spazio degli indirizzi logico che viene limitato ad uno spazio degli indirizzi fisico è centrale per una corretta gestione della memoria. Indirizzo logico (indirizzo virtuale) viene generato dalla CPU nella fase di traduzione di un programma, prima del suo caricamento in memoria centrale. Indirizzo fisico indirizzo di memoria centrale dove è caricato il programma per la sua esecuzione. La MMU ( Memory Management Unit ) è un dispositivo che trasforma l indirizzo virtuale nell indirizzo fisico. Nello schema di MMU il valore nel registro di rilocazione viene sommato a qualunque indirizzo generato da un processo utente nel momento in cui viene inviato alla memoria. Il programma utente ha a che fare con indirizzi logici, non vede mai gli indirizzi fisici reali. Gestione della memoria : la rilocazione Per poter essere eseguiti, i programmi devono essere portati in memoria e posti all interno di un processo di esecuzione. I programmi utente passano attraverso vari stati prima di essere eseguiti. L associazione (binding) di istruzioni e dati a indirizzi di memoria centrale può essere effettuata in diversi momenti: a) Durante la Compilazione: Se la posizione in memoria è nota a priori, si può generare un codice assoluto; se la locazione di inizio cambia, è necessario ricompilare il codice. b) Durante il Caricamento: Se la posizione in memoria non è nota a priori, è necessario generare codice rilocabile. c) Durante l Esecuzione: Se il processo può essere spostato durante la sua esecuzione da un segmento di memoria in un altro, il binding viene rimandato fino al momento dell esecuzione. E necessario un opportuno supporto hardware per mappare gli indirizzi. 10

Gestione della memoria : la rilocazione CPU Reg. indir. Spazio logico mov ax.bx cmp ax cx je punto1 add ax,cx punto1:add cx,bx... Map o bind dei due diversi tipi di spazi Memoria centrale 01001001 01001001 01001001 01001001 01001001 01001001 01001001 01001001 01001001 Spazio fisico allocare (riservare) ai programmi la quantità di memoria necessaria. rilocare i programmi (tradurre gli indirizzi e le istruzioni dello spazio indirizzabile in locazioni di memoria centrale). rilocazione assoluta = prima che il programma sia caricato in memoria centrale rilocazione statica = quando il programma viene caricato in memoria rilocazione dinamica = durante l esecuzione del programma Gestione della memoria : la rilocazione Spazio logico indirizzabile Prog. A compilazione Prog. A modulo assoluto Rilocazione assoluta (in compile time) Spazio fisico Prog.A rilocato Spazio inutilizzato Indirizzo di impianto Prog. A compilazione Prog. A modulo assoluto segm.1 Rilocazione statica (in load time) supervisore Prog.A rilocato S.O. Indirizzo di impianto Prog. A compilazione segm.2 segm.3 Prog. B rilocato Rilocazione dinamica (in run time) Prog. C 11

Gestione della memoria : la allocazione La memoria principale viene generalmente suddivisa in due partizioni: 1.La parte residente del Sistema Operativo è generalmente memorizzata nella parte bassa della memoria, insieme al vettore degli interrupt. 2.I processi degli utenti sono quindi memorizzati nella memoria alta. Allocazione con partizione singola Si impiega uno schema di rilocazione basato su registri per proteggere i programmi e i dati del SO e per proteggere i programmi utente da reciproche interferenze. Il registro di rilocazione contiene il valore del più piccolo indirizzo fisico; il registro limite contiene l intervallo degli indirizzi logici: ciascun indirizzo logico deve essere inferiore al valore del registro limite. Allocazione con partizioni multiple Inizialmente si avevano partizioni di dimensioni fisse. Un buco (hole) è un blocco di memoria disponibile, buchi di varie dimensioni sono sparsi nella memoria. Quando viene caricato un processo, gli viene allocata la memoria di un buco grande abbastanza da contenere il processo. Il SO conserva informazioni su: a) Partizioni allocate b) Partizioni libere (buchi) Gestione della memoria : la allocazione contigua OS" OS" OS" OS" process 5" process 5" process 5" process 5" process 8" process 2" hole process 2" process 9" hole process 2" process 9" process 10" hole process 2" Come soddisfare una richiesta di dimensione N a partire da un insieme di hole? In ogni momento è presente un insieme di hole di diverse dimensioni sparsi per la memoria. First fit: Si alloca il primo hole grande abbastanza da contenere il programma. Best fit: Si alloca il più piccolo hole che possa contenere il processo. E necessario scandire tutta la lista di hole e si utilizza il più piccolo hole residuo. Worst fit: Si alloca il più grande hole. E ancora necessario ricercare su tutta la lista. Si utilizza il più grande hole residuo. 12

Frammentazione Frammentazione esterna E disponibile lo spazio per soddisfare la richiesta di spazio di allocazione della memoria, ma non è contiguo. Frammentazione interna la memoria allocata è leggermente maggiore della memoria richiesta (qualche byte di differenza) dalla esatta dimensione del programma. Questa differenza di dimensioni è memoria interna (inutilizzata) alla partizione dove viene memorizzato il programma. Si può ridurre la frammentazione esterna con la compattazione Sposta i contenuti della memoria per avere tutta la memoria libera insieme in un grande blocco. La compattazione è possibile solo con la rilocazione dinamica, e viene effettuata nel momento dell esecuzione (execution time). Si possono spostare tutti i processi verso un estremità della memoria. Questo schema è però costoso in termini temporali. Tecniche di mapping tra spazio logico e spazio fisico In sistemi uniprogrammati Ø - sequenziale : consiste nel suddividere l area di lavoro in due parti : una riservata al Sistema Operativo e l altra assegnata al programma utente Ø - overlay: il programma viene suddiviso in blocchi, ciascuno dei quali contiene una entità logica a sé stante (subroutine), che può venire caricata al momento del suo utilizzo e rilasciata subito dopo. S.O. S.O. S.O. S.O. Prog. A Prog. A Prog. A Prog. A Subroutine 1 Subroutine 2 Subroutine 3 Subroutine 4 Si mantengono in memoria solo quelle istruzioni e quei dati che vengono richiesti ad un dato istante. Quando sono necessarie altre istruzioni, queste vengono caricate nello spazio che era precedentemente occupato dalle istruzioni che non vengono più utilizzate. L esecuzione è rallentata a causa dell operazione di I/O necessaria per caricare l overlay. 13

Tecniche di mapping tra spazio logico e spazio fisico In sistemi multiprogrammati Ø Partizionamento: La memoria fisica viene suddivisa in un certo numero di aree (PARTIZIONI) di dimensioni prefissate, ciascuna delle quali può essere assegnata separatamente ad un programma ( o a dati). Le partizioni possono essere create PRIMA che i vari programmi vengano caricati in memoria (P. STATICO) o all atto del caricamento dei programmi (P. DINAMICO). Questa tecnica è efficiente se si dispone di un meccanismo di rilocazione dinamica In ogni caso : occorre effettuare un mapping da indirizzo a singola componente ad indirizzo a doppia componente area di indirizzi (partizione) e offset (indirizzo nell area) Tecniche di mapping tra spazio logico e spazio fisico N. partizione Diritto di accesso trap offset Traduzione indirizzo Indirizzo fisico MMU Memory Management Unit componenti: tavola dei descrittori unità di verifica del tipo di accesso unità di traduzione degli indirizzi 14

PAGINAZIONE Partizioni fisse con contenuto disomogeneo La memoria (spazio fisico e spazio logico) è divisa in N partizioni di uguale dimensione dette pagine (in genere da 1 a 4 KB). Tavola dei descrittori delle pagine: N. pag. Page frame Start address su disco Modalità di accesso 0 1 3000 100 1 5 20000 110 2 3 200 001..... Nel programma Opcode num.pag. ind.relat. Indirizzo logico Page frame Indirizzo fisico In memoria centrale offset Modalità di accesso Ad ogni pagina si associa (almeno) un bit di protezione pagina read-only pagina read/write R W E Significato Esempio R = read W = write E = execute 0 0 0 nessun accesso al processo pagine di sistema 0 0 1 sola esecuzione codice condiviso tra processi 1 0 0 sola lettura data base protetto 1 0 1 lettura o esecuzione consente copia non modifica Un tentativo di accesso per operazione non consentita provoca un interrupt di tipo TRAP 1 1 0 lettura o scrittura area dati - no codice 1 1 1 ogni accesso è consentito 15

Paginazione L indirizzo generato dalla CPU viene suddiviso in: Numero di pagina (p) impiegato come indice in una tabella di pagine che contiene l indirizzo di base di ciascuna pagina nella memoria fisica. Offset nella pagina (d) viene combinato con l indirizzo di base per definire l indirizzo fisico di memoria che viene inviato all unità di memoria. Esempio di paginazione 16

SEGMENTAZIONE Segmento = raggruppamento logico di informazioni omogenee. I segmenti sono dunque partizioni di lunghezza diversa che contengono ciascuno un solo oggetto di elaborazione A differenza della paginazione, necessità di : ü - controllare che l offset non superi la lunghezza del segmento, ü - controllare le modalità di accesso Num. segm. = indice di riga della tavola dei Nel programma Tavola dei descrittori dei segmenti: Start address in memoria centrale Opcode num.seg. ind.relat. Indirizzo logico Lunghezza segm. Modalità di accesso al segmento descrittori 1500 3KB 100 4600 8KB 110 14000 200KB 001.. Segmento Nella memoria centrale offset Indirizzo fisico Paginazione e Segmentazione Paginazione non visibile al programmatore elimina frammentazione esterna e consente un uso efficiente della memoria Segmentazione visibile al programmatore elimina la frammentazione interna e consente la modularità (segmento codice e segmento dati) Lo spazio di indirizzi logici è monodimensionale, ossia gli indirizzi sono consecutivi" Lo spazio di indirizzi logici è bidimensionale, ossia formato da più spazi lineari non necessariamente contigui" 17

Memoria Virtuale 10 pagine logiche di 4KB l una programma 00001011111010 00011100000011 000011111100000 011110001111000 01110000000011 00000000001111 11100001010010 01001001001000 1110001110000. 01001100000000 101000001 Per la gestione dinamica della paginazione (demand paging memory management) spazio logico > spazio fisico Memoria centrale 4 Pagine fisiche di 4KB l una Page fault: eccezione che provoca un page demand con diverse strategie possibili N.pagina logica = indice tavola descrittori in mem. Centrale non in mem. centrale Tavola dei descrittori delle pagine: flag Page frame Start address su disco Modalità di accesso. 1 1 3C4T8S 100 0-1C2T8S 110 1 3 2C2T3S 001..... memoria virtuale con paginazione Page fault Quando c è un riferimento ad una pagina che non si trova in memoria (P=0), viene generata un eccezione (page fault) che provoca un page demand con diverse possibili strategie. Il SO, con l intervento della MMU: 1. libera lo spazio in memoria 2. trasferisce la pagina richiesta dal disco alla memoria 3. aggiorna la page table con l indirizzo fisico della pagina appena trasferita 18

Algoritmi di rimpiazzamento delle pagine Ø Least Recently Used (LRU) rimozione della pagina usata meno recentemente, perché la probabilità che non sia utilizzata al momento è alta (località temporale) Ø First In First Out (FIFO) rimozione della pagina caricata in memoria meno recentemente, indipendentemente dall ultimo utilizzo della pagina. Ø Not Used Recently (NUR) viene rimpiazzata la pagina in memoria centrale che non è stata usata recentemente (località temporale). Ø Last Frequently Used (LFU) viene rimpiazzata la pagina in memoria centrale meno frequentemente usata (località spaziale e temporale) Approccio misto : segmentazione e paginazione Tavola dei descrittori dei segmenti: Start address in memoria centrale Lunghezza segm. Indirizzi page tables di ciascun segmento 1500 3 KB 2000 4600 8 KB 2500 14000 200 KB 10000. Segmento 1 Segmento 2 Segmento 3 Tavola dei descrittori delle pagine del primo segmento: N. pag. Page frame Indirizzo su disco Modalità di accesso 0 1 3000 100 Tavola dei descrittori delle 1 5 20000 110 pagine del secondo segmento: N. pag. 2 Page frame 3 200 Modalità di accesso 001 0. 6... 6000 100. 1 2 1300 110 2 8 500 001..... Pag1 Pag 2.. Pag1 Pag 2.... 19

Segmentazione e Paginazione combinate Ogni segmento è diviso in pagine di dimensione fissa ed è dotato di una page table Il numero del segmento permette l accesso alla tabella del segmento Dalla tabella dei segmenti si ricava l indirizzo base della page table del segmento stesso Indirizzo virtuale Numero del Segmento Numero di Offset pagina Numero di Frame Offset Puntatore alla Tabella dei segmenti Tabella delle pagine Numero del segmento Tabella dei segmenti Numero di pagina Offset Frame Programma Segmentazione Paginazione Memoria principale Il File System E quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate nelle memorie esterne. Realizza i concetti: di file: unità logica di memorizzazione di directory: insieme di file (e directory) di partizione: insieme di file associato ad un particolare dispositivo fisico (o porzione di esso) N.B. Le caratteristiche di file, directory e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. 20

Il File System Dal punto di vista dell utente il File System è caratterizzato dalle operazioni che ha a disposizione, cioè come si definisce un file come il file vengono denominati e protetti che operazioni sono permesse sui file,.. Per tenere traccia dei file, il File system mette a disposizione dell utente delle strutture logiche gerarchiche ( directory ) contenenti un certo numero di elementi, uno per file E molto comune che un utente voglia raggruppare i suoi file in modo logico, attraverso una struttura gerarchica (ad albero) Struttura della directory e informazioni Il disco è suddiviso in partizioni, ciascuna partizione ha una directory di dispositivo che contiene informazioni su tutti i file lì contenuti. Directory" File" F 1" F 2" F 3" F 4" F n" Sia la struttura della directory che i file stanno su disco. Informazioni in una directory di dispositivo: Nome Indirizzo Massima lunghezza Tipo Lunghezza reale Data ultimo accesso Data ultima modifica (per copia di backup) ID del proprietario Informazioni di protezione 21

Associazione di un file system logico ai dispositivi fisici Memorizzazione dei File Un file è di solito composto da una sequenza di blocchi. Il File System deve tenere traccia dei blocchi occupati da ciascun file. Negli ambienti Microsoft ad ogni disco è associata una Tabella di Allocazione dei File o FAT, contenente un elemento per ogni blocco del disco. In LINUX ad ogni disco è associata un layout che descrive il contenuto in termini di blocchi, superblocchi ed i-node 22

File System Ogni S.O. ha il proprio filesystem e non sempre questi sono tra loro compatibili: Microsoft Windows : FAT16, FAT32, NTFS Linux : FAT16, FAT32, NTFS, EXT2, EXT3, EXT4 Durante la fase di avvio della macchina (boot) per prima cosa vengono consultate le informazioni che risiedono nel BIOS (Basic Input/Output System) del PC. Qui viene indicata la posizione del Master Boot Record (MBR) che prende il controllo della macchina e cerca nella tabella delle partizioni la prima partizione contrassegnata come attiva. Da essa carica il Boot Record (BR) specifico del SO che vi risiede e lo esegue. Il BR contiene il codice necessario per caricare tutto il resto del SO. Il journaling (presente in alcune versioni di File System) è una tecnica che consente di tenere traccia di modifiche effettuate sui file o sulle directory in un area riservata del file system (journal), prima di effettuare la modifica sul File System. Tale tecnica consente di ripristinare velocemente il File System in caso di crash del sistema o improvvise mancanze di corrente che potrebbero corrompere le informazioni contenute nel file system. File Allocation Table La FAT mantiene la traccia delle aree del disco disponibili e di quelle usate dai file e dalle directory: la differenza fra FAT12, FAT16 e FAT32 consiste appunto in quanti bit sono allocati per numerare i cluster del disco. Con 12 bit, il file system può indirizzare al massimo 2 12 = 4096 cluster, mentre con 32 si possono gestire 2 32 = 4.294.967.296 cluster. Il file system FAT è un file system con allocazione concatenata. Una partizione FAT è strutturata in quattro sezioni diverse: 1. I settori riservati, che si trovano proprio all'inizio. Il primo settore riservato (settore zero) è il settore di avvio, seguito dal BIOS Parameter Block (con alcune informazioni di base del FS, in particolare il suo tipo, e puntatori alla posizione delle altre sezioni). 2. La Regione FAT: Contiene almeno due copie della FAT (per motivi di sicurezza). Rappresentano la mappa della regione dati. Una partizione è divisa in cluster (insieme di settori fisici contigui) dalle dimensioni variabili tra 2 e 32 KB. Ogni file è strutturato sul disco come una lista concatenata di cluster non necessariamente contigui: questa è la ragione principale per cui si parla di frammentazione del disco nei filesystem FAT. 3. La Regione della ROOT directory: è una tabella che memorizza le cartelle e i files presenti nella directory di root. 4. L'area dati: è dove files e cartelle sono realmente memorizzati e occupa la maggior parte della partizione FAT utilizza il formato little endian per le voci nell'intestazione e la/le FAT. 23

New Technology File System NTFS è un file system dei sistemi operativi basati su kernel NT. NTFS sfrutta un'indicizzazione a 64 bit. La struttura principale di un filesystem NTFS è la Master File Table (MFT), una tabella strutturata in blocchi (solitamente in record di 1KB) che contiene gli attributi di tutti i file del volume. Le directory sono memorizzate come file: in ogni file-directory sono presenti degli attributi speciali, che si riferiscono ai file contenuti in tale directory. I dati veri e propri dei file sono memorizzati in stream (flussi sequenziali) puntati da appositi attributi Data ü NTFS è un sistema transazionale (o "Journaled" come si dice nei sistemi operativi Apple come Mac OS X); questo vuol dire che se un'operazione è interrotta a metà (ad esempio per un blackout) viene persa solo quell'operazione ma non è compromessa l'integrità del file system il quale resta comunque leggibile dal computer. ü A ciascun file o cartella è possibile assegnare dei diritti di accesso (lettura, scrittura, modifica, cancellazione e altri). ü I nomi dei file e delle cartelle possono essere lunghi fino a 255 caratteri e possono contenere caratteri di tutte le lingue del mondo grazie alla codifica Unicode. ü La dimensione dei volumi e il massimo numero di file sono praticamente illimitati; la dimensione del volume può raggiungere al massimo i 256 Terabytes (2 48 clusters - 1), il numero limite di file è invece di circa 4,3 miliardi (2 32-1). La dimensione massima di un singolo file è di 16 Terabytes. EXTented filesystem Il file system di tipo ext è uno dei filesystem più diffusi nei vari sistemi operativi open source, in quanto è stato per lungo tempo quello usato dai sistemi GNU/ Linux. Attualmente è supportato da tutti i sistemi operativi open source e esistono programmi per utilizzare i volumi ext anche da Microsoft Windows (senza supporto Microsoft) e Mac OS X. Il suo uso è diffuso per via delle sue buone prestazioni e alla grande stabilità che ha dimostrato negli anni. ext2 non è dotato di nessun tipo di journaling. Inoltre, sebbene nel momento della sua prima scrittura la dimensione massima di un volume fosse di 2GB, ora ext2 supporta volumi di 4TB. Ext2 è stato sostituito da versioni più recenti Ext3 ed Ext4 che introducono delle importanti caratteristiche (il journaling) mantenendo la compatibilità completa. Lo spazio è suddiviso in blocchi e organizzato in gruppi di blocchi, per ridurre la frammentazione interna e minimizzare i movimenti della testina del disco durante la lettura di molti dati consecutivi. All'interno di ogni gruppo di blocchi ci sono i superblock, group descriptor, block bitmap, i-node bitmap, infine seguiti dai blocchi dei dati. Il superblock contiene informazioni importanti per l'avvio del sistema operativo, per cui vengono fatte copie di backup in ogni gruppo dei blocchi. Il descrittore del gruppo memorizza il valore del block bitmap, inode bitmap e l'inizio della tabella degli i-node per ogni gruppo dei blocchi. 24

Descrive lo stato del file system complessivo: n. di blocchi complessivo, n. di inode, n. di blocchi liberi, Blocco logico multiplo di blocchi fisici Esempio : Layout del disco in EXT3 Label Boot area Primary superblock Cylinder Group 1 summary Block I-node Table Ogni disco contiene: Una label con la tabella delle partizioni Una boot area Un superblock (con copia di backup) N gruppi di cilindro Copia di backup del primary superblock Data Block area Backup Superblock Cylinder Group 2 summary Block I-node Table Data Block area Un insieme di gruppi di cilindro può essere associato ad un filesystem Unix I-node Ad ogni file è associata una piccola tabella, detta i-node ("index-node"), contenente ü gli attributi del file (tipo, dimensione, permessi,.) ü gli indirizzi dei primi blocchi del disco su cui è memorizzato il file ü l indirizzo di un blocco a singola indirezione contenente gli indirizzi di blocchi a singola indirezione ü l indirizzo di un blocco a doppia indirezione contenente gli indirizzi di ulteriori blocchi di dati su disco Ogni i-node è identificato da un i-number Tutte le operazioni su un file o una directory vengono effettuate tramite il suo i-node, che contiene tutte le informazioni sul file stesso, esclusi i dati veri e propri 25