GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA. Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O

Documenti analoghi
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.

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Input Output. Principi di gestione dell hardware di I/O Dispositivi di I/O Gestione dei dischi magnetici Altri dispositivi

Sommario. G. Piscitelli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Architettura di un sistema di calcolo

= 0, 098 ms. Da cui si ricava t 2 medio

PROGRAMMA DISCIPLINARE SVOLTO a. s / 2016

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Virtualizzazione delle Periferiche. Corso di Sistemi Operativi

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

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

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Nastro magnetico. Gestione della memoria di massa. Disco magnetico. Disco magnetico. Usato in passato come dispositivo di memorizzazione secondaria

1. I dispositivi periferici

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

Sommario. Gestione dell I/O e Scheduling dei Dischi. Categorie di Dispositivi di I/O. Human readable

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Memoria secondaria. Sistemi Operativi mod. B 14.1

La gestione dell I/O (Cap. 5, Tanenbaum)

Sistemi Operativi A Parte VI - La memoria secondaria. Dischi magnetici. Nastri magnetici

Struttura dei dischi

Sistemi Operativi A.A. 2011/2012

Gestione di files Motivazioni

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Cos e` un Sistema Operativo? Cos è un sistema operativo?

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

Solitamente la capacità è minore di un disco magnetico, ma la velocità è molto più alta.

L architettura del calcolatore (Terza parte)

Programmazione Orientata agli Oggetti in Linguaggio Java

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

STRUTTURE DEI SISTEMI DI CALCOLO

Capitolo 6 Le infrastrutture SoftWare

Organizzazione Monolitica

Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche di I/O 2. Gestione dei buffer 3. Schedulazione del disco 4. I/O in UNIX e Windows

Capitolo Silberschatz

SISTEMI OPERATIVI. Gestione dei dischi. Gestione dei dischi e sistemi RAID

Introduzione ai sistemi operativi

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

Architettura di un calcolatore

Memoria Secondaria e Terziaria

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Sistemi Operativi Giovanni Conforti. Sistemi di I/O

Parte V. Il File System

Nozioni di Informatica di base. dott. Andrea Mazzini

Cos è un Sistema Operativo?

SOMMARIO. La CPU I dispositivi iti i di memorizzazione Le periferiche di Input/Output. a Montagn Maria

Collegamento al sistema

Diagramma dei menu Strumenti

Corso di studi in Ingegneria Elettronica A.A. 2003/2004. Calcolatori Elettronici. Esercitazione n 2. Ing Giovanni Costa

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)

I/O su Socket TCP: read()

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

verso espandibili eterogenei tempo di accesso tempo di risposta throughput

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

FONDAMENTI di INFORMATICA L. Mezzalira

Sedi Sede formativa accreditata della proponente sita in Via Messina n. 3 a Palermo.

Sicurezza del File System

La memoria secondaria

Input e Output. Input / Output. Performance. Misure di banda e tempi di trasferimento

SISTEMI OPERATIVI DISTRIBUITI

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Capitolo 3: Strutture dei sistemi operativi

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. ( )

Memorie secondarie. Corso di Basi di Dati e Sistemi Informativi

Funzionalità di un calcolatore

Corso di Informatica

CAP. 4: Aspetti generali del Sistema Operativo Linux. l

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Sistema Operativo e Applicativi

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura di un sistema operativo

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

8. IL FILE SYSTEM. 1. I servizi per la gestione dei file

Dispositivi di ingresso/uscita (I/O)

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio Corso di laurea in Matematica

Gestione della memoria secondaria. Marco Cesati. Schema della lezione. File system annotati. Il disco magnetico. Prestazioni dei dischi

Implementazione di sistemi real time

Files in C++ Fondamenti di Informatica. R. Basili. a.a

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

Esercitazione E1 Scheduling, deadlock, monitor

Calcolatori Elettronici

9. Il repertamento di materiale informatico. a. Generalità; b. Repertamento.

Cognome e Nome Gennaio 2002 I prova in itinere

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Introduzione alle macchine a stati (non definitivo)

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

SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI

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

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

I/O. Interfacciamento di una periferica. Architettura di un elaboratore. L input/output Parte VI. Architettura degli Elaboratori e delle Reti

Il Sistema Operativo

Transcript:

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Sistemi Operativi T AA 2011-2012 1

COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere al programmatore i dettagli delle interfacce hardware dei dispositivi; 2. Omogeneizzare la gestione di dispositivi diversi; 3. Gestire i malfunzionamenti che si possono verificare durante un trasferimento di dati; 4. Definire lo spazio dei nomi (naming) con cui vengono identificati i dispositivi; 5. Garantire la corretta sincronizzazione tra un processo applicativo che ha attivato un trasferimento dati e l attività del dispositivo. Sistemi Operativi T AA 2011-2012 2

COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere al programmatore i dettagli delle interfacce hardware dei dispositivi bus CPU Memoria Controllore di A Controllore di B Periferica A Periferica B Sistemi Operativi T AA 2011-2012 3

COMPITI DEL SOTTOSISTEMA DI I/O 2) Omogeneizzare la gestione di dispositivi diversi dispositivo velocità di trasferimento tastiera 10 bytes/sec mouse 100 bytes/sec modem 10 Kbytes/sec linea ISDN 16 Kbytes/sec stampante laser 100 Kbytes/sec scanner 400 Kbytes/sec porta USB 1.5 Mbytes/sec disco IDE 5 Mbytes/sec CD-ROM 6 Mbytes/sec Fast Etherneet 12.5 Mbytes/sec FireWire (IEEE 1394) 50 Mbytes/sec monitor XGA 60 Mbytes/sec Ethernet gigabit 125 Mbytes/sec Sistemi Operativi T AA 2011-2012 4

COMPITI DEL SOTTOSISTEMA DI I/O 2) Omogeneizzare la gestione di dispositivi diversi TIPOLOGIE DI DISPOSITIVI Dispositivi a carattere (es. tastiera, stampante, mouse, ) Dispositivi a blocchi (es. dischi, nastri,..) Dispositivi speciali (es. timer) Sistemi Operativi T AA 2011-2012 5

COMPITI DEL SOTTOSISTEMA DI I/O 3. Gestire i malfunzionamenti che si possono verificare durante un trasferimento di dati TIPOLOGIE DI GUASTI Eventi eccezionali (es. mancanza di carta sulla stampante, end-of-file ); Guasti transitori (es. disturbi elettromagnetici durante un trasferimento dati); Guasti permanenti (es. rottura di una testina di lettura/scrittura di un disco). Sistemi Operativi T AA 2011-2012 6

COMPITI DEL SOTTOSISTEMA DI I/O 4. Definire lo spazio dei nomi (naming) con cui vengono identificati i dispositivi Uso di nomi unici (valori numerici) all interno del sistema per identificare in modo univoco i dispositivi; Uso di nomi simbolici da parte dell utente (I/O API Input/Output Application Programming Interface); Uniformità col meccanismo di naming del filesystem. Sistemi Operativi T AA 2011-2012 7

COMPITI DEL SOTTOSISTEMA DI I/O 5. Garantire la corretta sincronizzazione tra un processo applicativo che ha attivato un trasferimento dati e l attività del dispositivo. Gestione sincrona dei trasferimenti: un processo applicativo attiva un dispositivo e si blocca fino al termine del trasferimento; Gestione asincrona dei trasferimenti: un processo applicativo attiva un dispositivo e prosegue senza bloccarsi; Necessità di gestire la bufferizzazione dei dati. Sistemi Operativi T AA 2011-2012 8

ARCHITETTURA DEL SOTTOSISTEMA DI I/O Interfaccia applicativa: I/O API Parte del sottosistema di I/O indipendente dai dispositivi Interfaccia device-independent Parte del sottosistema di I/O dipendente dai dispositivi: device drivers Sistemi Operativi T AA 2011-2012 9

ARCHITETTURA DEL SOTTOSISTEMA DI I/O: parte dipendente dai dispositivi Disp. di rete disp. a blocchi disp. a carattere Parte dipendente dai dispositivi device drivers Interrupt handlers Livello sistema operativo interfaccia di accesso ai dispositivi controllori dei dispositivi Livello hardware Sistemi Operativi T AA 2011-2012 10

ARCHITETTURA DEL SOTTOSISTEMA DI I/O: parte indipendente dai dispositivi processi applicativi librerie Livello utente interfaccia applicativa I/O API Parte I/O independent Livello sistema operativo Sistemi Operativi T AA 2011-2012 11

LIVELLO INDIPENDENTE DAI DISPOSITIVI Naming FUNZIONI Buffering Gestione malfunzionamenti Allocazione dei dispositivi ai processi applicativi Sistemi Operativi T AA 2011-2012 12

BUFFERING Per ogni operazione di I/O il sistema operativo riserva un'area di memoria "tampone" (buffer), per contenere i dati oggetto del trasferimento. Motivazioni: differenza di velocita` tra processo e periferica: disaccoppiamento quantita` di dati da trasferire (es. dispositivi a blocchi): il processo puo` richiedere il trasferimento di una quantita` di informazioni inferiore a quella del blocco Sistemi Operativi T AA 2011-2012 13

BUFFERING ES. operazione di lettura con singolo buffer lettura buffer copia u-buf dispositivo sistema operativo processo applicativo Buffer: area tampone nella memoria del sistema operativo u-buf: area tampone nella memoria virtuale del processo applicativo Sistemi Operativi T AA 2011-2012 14

BUFFERING ES. operazione di lettura con doppio buffer buffer1 dispositivo lettura buffer2 sistema operativo copia u-buf processo applicativo Sistemi Operativi T AA 2011-2012 15

GESTIONE MALFUNZIONAMENTI Tipi di gestione degli eventi anomali: Risoluzione del problema (mascheramento dell evento anomalo); Gestione parziale e propagazione a livello applicativo; Tipi di eventi anomali: Eventi propagati dal livello inferiore (es. guasto HW permanente; Eventi generati a questo livello (es. tentativo di accesso a un dispositivo inesistente). Sistemi Operativi T AA 2011-2012 16

ALLOCAZIONE DEI DISPOSITIVI Dispositivi condivisi da utilizzare in mutua esclusione; Dispositivi dedicati ad un solo processo (server) a cui i processi client possono inviare messaggi di richiesta di servizio; Tecniche di spooling (dispositivi virtuali). Sistemi Operativi T AA 2011-2012 17

LIVELLO DIPENDENTE DAI DISPOSITIVI Funzioni: fornire i gestori dei dispositivi (device drivers) offrire al livello superiore l insieme delle funzioni di accesso ai dispositivi (interfaccia deviceindependent ), es: N=_read (disp, buffer, nbytes) nome unico del dispositivo Buffer di sistema Sistemi Operativi T AA 2011-2012 18

Interazione DISPOSITIVO-CPU Schema semplificato di un controllore comandi Reg. controllo segnali CPU stato Reg. stato dispositivo dati Reg. dati dati controllore bus Sistemi Operativi T AA 2011-2012 19

Controllore di UN DISPOSITIVO Registri di stato e controllo i s i: bit di abilitazione alle interruzioni Registri di controllo s: bit di start e Registri di stato f e: bit di condizioni di errore s: bit di flag Sistemi Operativi T AA 2011-2012 20

PROCESSO ESTERNO attende l invio di un comando tramite il registro di controllo esegue il comando segnala, tramite il registro di stato, la fine del comando Bit di start=0 bit di start 1 1 bit di flag Sistemi Operativi T AA 2011-2012 21

processo esterno { } PROCESSO ESTERNO while (true) { } do{;} while (start ==0)//stand-by <esegue il comando>; <registra l esito del comando ponendo flag = 1>; Sistemi Operativi T AA 2011-2012 22

PROCESSO APPLICATIVO: gestione a controllo di programma Prepara un comando invia il comando 1 bit di start no attende la fine del comando si fine Bit di flag=0 bit di flag 1 Sistemi Operativi T AA 2011-2012 23

PROCESSO APPLICATIVO processo applicativo {.. } for (int i=0; i++; i<n) { <prepara il comando>; <invia il comando>; do{;} while (flag ==0) //ciclo di attesa attiva <verifica l esito>; }.. Sistemi Operativi T AA 2011-2012 24

GESTIONE A INTERRUZIONE Lo schema precedente viene detto anche a controllo di programma. Non adatto per sistemi multiprogrammati a causa dei clicli di attesa attiva. Per evitare l attesa attiva: Riservare, per ogni dispositivo un semaforo: dato_disponibile (dato_disponibile = 0;) Attivare il dispositivo abilitandolo a interrompere (ponendo nel registro di controllo il bit di abilitazione a 1). Sistemi Operativi T AA 2011-2012 25

GESTIONE A INTERRUZIONE processo applicativo {.. } for (int i=0; i++; i<n) { <prepara il comando>; <invia il comando>; p(dato_disponibile) ; <verifica l esito>; }.. commutazione di contesto Sistemi Operativi T AA 2011-2012 26

FUNZIONE DI RISPOSTA ALLE INTERRUZIONI Interrupt_handler {.. } v (dato_disponibile ) ;.. riattiva il processo applicativo Sistemi Operativi T AA 2011-2012 27

DIAGRAMMA TEMPORALE Q PI inth PE PI: processo applicativo che attiva il dispositivo PE: processo esterno Inth: routine di gestione interruzioni Q: altro processo applicativo Sistemi Operativi T AA 2011-2012 28

DIAGRAMMA TEMPORALE E` preferibile uno schema in cui il processo applicativo che ha attivato un dispositivo per trasferire n dati venga risvegliato solo alla fine dell intero trasferimento: Q PI inth PE Sistemi Operativi T AA 2011-2012 29

ASTRAZIONE DI UN DISPOSITIVO device driver dispositivo processi applicativi descrittore del dispositivo n= _read ( ) inth n= _write ( ) Sistemi Operativi T AA 2011-2012 30

DESCRITTORE DI UN DISPOSITIVO indirizzo registro di controllo indirizzo registro di stato indirizzo registro dati semaforo Dato_disponibile contatore dati da trasferire puntatore al buffer in memoria esito del trasferimento Sistemi Operativi T AA 2011-2012 31

ESEMPIO: DRIVER DI UN DISPOSITIVO int _read(int disp,char *buf,int cont) CON: la funzione che restituisce -1 in caso di errore o il numero di caratteri letti se tutto va bene, disp è il nome unico del dispositivo, buf è l indirizzo del buffer in memoria, cont il numero di dati da leggere Sistemi Operativi T AA 2011-2012 32

DRIVER DI UN DISPOSITIVO int _read(int disp,char *buf,int cont) { descrittore[disp].contatore=cont; descrittore[disp].puntatore=buf; <attivazione dispositivo> ; p(descrittore[disp].dato_disponibile); if (descrittore[disp].esito== <cod.errore>) return (-1); return (cont-descrittore[disp].contatore); } Sistemi Operativi T AA 2011-2012 33

DRIVER DI UN DISPOSITIVO void inth() //interrupt handler { char b; <legge il valore del registro di stato>; if (<bit di errore> == 0) {<ramo normale della funzione> } else {<ramo eccezionale della funzione> } return //ritorno da interruzione } Sistemi Operativi T AA 2011-2012 34

RAMO NORMALE DELLA FUNZIONE { < b = registro dati >; *(descrittore[disp].puntatore)= b; descrittore[disp].puntatore ++; descrittore[disp].contatore --; if (descrittore[disp].contatore!=0) <riattivazione dispositivo>; else {descrittore[disp].esito = <codice di terminazione corretta>; <disattivazione dispositivo>; v (descrittore[disp].dato_disponibile); } } Sistemi Operativi T AA 2011-2012 35

RAMO ECCEZIONALE DELLA FUNZIONE { < routine di gestione errore >; if (<errore non recuperabile>) {descrittore[disp].esito = <codice di terminazione anomala>; v (descrittore[disp]. dato_disponibile); } } Sistemi Operativi T AA 2011-2012 36

Flusso di controllo durante un trasferimento Process PI { int n; int ubufsize = 64; char ubuf[ubufsize]; n=read(in, ubuf, ubufsize); } Interfaccia applicativa " system call " " Sistema Operativo int read (device dp, char *punt, int cont){ int n, D; char buffer[n]; < individuazione del dispositivo D coinvolto (naming)>; < controllo degli accessi>; n = _read(d, buffer, N); <trasferimento dei dati da buffer di sistema a ubuf>; return n; // ritorno da int. } interfaccia device independent " " int _read (int disp, char *pbuf, int cont){ <attivazione del dispositivo>; <sospensione del processo>; return (numero dati letti); } void inth() { <trasferimento dati in buffer>; <riattivazione processo> } " hardware Sistemi Operativi T AA 2011-2012 37

Gestione di un dispositivo in DMA buffer puntatore buffer cont contatore registro dati CPU Memoria cont DMA controllore dispositivo Sistemi Operativi T AA 2011-2012 38

Gestione del temporizzatore Per consentire la modalità di servizio a divisione di tempo è necessario che il nucleo gestisca un dispositivo temporizzatore (timer o clock). Gestione del clock: i dispositivi clock generano interruzioni periodiche (clock ticks) a frequenze stabilite; la gestione software delle interruzioni consente di ottenere alcuni servizi quali: aggiornamento della data gestione del quanto di tempo (sistemi time-sharing) valutazione dell impegno della CPU di un processo gestione della system call ALARM gestione del time-out (watchdog timers) Esempio di operazione sul clock: impostazione di un timeout delay(time); Sistemi Operativi T AA 2011-2012 39

Il controllore del timer contiene, oltre ai registri di controllo e di stato, un registro contatore nel quale la CPU trasferisce un valore intero che viene decrementato dal timer. Quando il registro contatore raggiunge il valore zero il controllore lancia un segnale di interruzione. Nel descrittore della periferica timer sono presenti: - un array di N semafori (fine_attesa[n]) inizializzati a zero. Ciascun semaforo viene utilizzato per bloccare il corrispondente processo che chiama la delay. - un array di interi utilizzato per mantenere aggiornato il numero di quanti di tempo che devono ancora passare prima che un processo possa essere riattivato Sistemi Operativi T AA 2011-2012 40

Descrittore del timer Indirizzo registro di controllo Indirizzo registro di stato Indirizzo registro contatore Array di semafori privati fine_attesa[n] Array di interi: ritardo[n] Sistemi Operativi T AA 2011-2012 41

void delay (int n) { int proc; proc=<indice del processo in esecuzione>; descrittore.ritardo[proc]= n; //sospensione del processo descrittore.fine_attesa[proc].p(); } void inth(){ for(int=0; int<n, i++) if (descrittore.ritardo[i]!=0){ descrittore.ritardo [i]--; if (descrittore.ritardo[i]==0) descrittore.fine_attesa[i].v(); } } Sistemi Operativi T AA 2011-2012 42

Gestione e organizzazione dei dischi Organizzazione fisica gap tra tracce settore gap tra settori traccia cilindro a) disco singolo b) disk pack Sistemi Operativi T AA 2011-2012 43

Indirizzo di un settore (blocco fisico): dove: (f,t,s) f numero della faccia, t numero della traccia nell ambito della faccia, s numero del settore entro la faccia. Tutti i settori che compongono un disco ( o un pacco di dischi), vengono trattati come un array. settore 0 settore 1 settore N-1 settore N settore 2N-1 settore 2N traccia: 0 settore: 0 traccia: 0 settore: 1 traccia: 0 settore: N-1 traccia: 1 settore: 0 traccia: 1 settore: N-1 traccia: 2 settore: 0 Sistemi Operativi T AA 2011-2012 44

Indicando con M il numero di tracce per faccia N numero di settori per traccia un settore di coordinate (f,t,s) viene rappresentato nell ambito dell array con l indice i i=f*m*n + t*n + s Sistemi Operativi T AA 2011-2012 45

Scheduling delle richieste di trasferimento TF= TA+TT TF tempo medio di trasferimento di un settore (per leggere o scrivere un settore) TA tempo medio di accesso (per posizionare la testina di lettura/ scrittura all inizio del settore considerato) TT tempo di trasferimento dei dati del settore TA= ST + RL ST tempo di seek (per posizionare la testina sopra la traccia contenente il settore considerato) RL rotational latency (tempo necessario perché il settore ruoti sotto la testina) Sistemi Operativi T AA 2011-2012 46

µs µs Sistemi Operativi T AA 2011-2012 47

TT tempo necessario per far transitare sotto la testina l intero settore. Indicando con t il tempo necessario per compiere un giro, s il numero di settori per traccia, si ha TT= t/s (valore approssimato, µs). Quindi: TF= ST+RL+TT Il tempo medio di trasferimento dipende sostanzialmente dal tempo medio di accesso (ST e RL). Due modi di intervento: - Criteri con cui i dati sono memorizzati su disco (metodo di allocazione dei file) - Criteri con cui servire le richieste di accesso (politiche di scheduling delle richieste) Sistemi Operativi T AA 2011-2012 48

Politiche di Scheduling delle Richieste Nella valutazione del tempo medio di attesa di un processo, e` necessario tenere in conto anche il tempo durante il quale il processo attende che la sua richiesta di accesso venga servita. Le richieste in coda ad un dispositivo possono essere servite secondo diverse politiche: - First-Come-First-Served (FCFS) - Shortest-Seek-Time-First (SSTF) - SCAN algorithm - C-SCAN (Circular-SCAN) FCFS. Le richieste sono servite rispettando il tempo di arrivo. Si evita il problema della starvation, ma non risponde ad alcun criterio di ottimalità. SSTF. Seleziona la richiesta con tempo di seek minimo a partire dalla posizione attuale della testina; può provocare situazioni di starvation Sistemi Operativi T AA 2011-2012 49

SCAN. La testina si porta ad una estremità del disco e si sposta verso l altra estremità, servendo le richieste man mano che viene raggiunta una traccia, fino all altra estremità del disco. Quindi viene invertita la direzione. CSCAN. Fornisce un tempo di attesa più uniforme. Arrivata alla fine del disco la testina, essa torna immediatamente all inizio del disco. Testina posizionata sul cilindro 20. Richieste presenti in coda: 14, 40, 23, 47, 7 Sistemi Operativi T AA 2011-2012 50

Algoritmo di scheduling FIFO Testina posizionata sul cilindro 20. Richieste presenti in coda: [14, 40, 23, 47, 7] cilindri Posizione Iniziale 1 7 10 14 20 23 30 40 47 50 Spostamento totale = 113cilindri Sistemi Operativi T AA 2011-2012 51

Algoritmo di Scheduling SSTF Testina posizionata sul cilindro 20. Richieste presenti in coda: [14, 40, 23, 47, 7] cilindri Posizione Iniziale 1 7 10 14 20 23 30 40 47 50 Spostamento totale = 59 cilindri Sistemi Operativi T AA 2011-2012 52

Algoritmo di Scheduling SCAN cilindri Posizione Iniziale 1 7 10 14 20 23 30 40 47 50 Spostamento totale = 53 cilindri Sistemi Operativi T AA 2011-2012 53

C-SCAN (circular scan). Ipotizzando una distribuzione uniforme per le richieste relative alle varie tracce, quando la testina inverte la direzione (SCAN) sono presenti poche richieste in quanto servite di recente. La maggior densità di richieste è presente all altra estremità del disco. Queste richieste sono quelle con maggior tempo di attesa. CSCAN-> la direzione non viene mai invertita: alla fine di una scansione si ricomincia dall estremità opposta. Sistemi Operativi T AA 2011-2012 54