Modi di gestire le periferiche

Modi di gestire le
periferiche
I/O scheduler
• Il modulo software del SO che gestisce le periferiche del
sistema informatico è detto Scheduler di input-output.
• Anche in questo caso ci sono procedure di:
• Richiesta,
• assegnazione,
• rilascio della periferica.
• Anche in questo caso ci sono modi di gestire le code di
richiesta usando meccanismi come la
• priorità,
• il metodo FIFO,
• il metodo SJF.
• Ogni sistema adotta politiche specifiche.
Dispositivi
• Le periferiche possono essere gestite in 3 modalità:
alcune periferiche sono gestibili solo in un’unica
maniera, altre in modalità diverse, dipende anche
dallo specifico hardware.
• Le modalità sono tre:
• Periferiche condivise
• Periferiche dedicate
• Periferiche virtuali.
Dispositivi dedicati.
• La periferica è assegnata al processo per tutta la
durata della sua esecuzione.
• Nastri e stampanti utilizzano spesso questa
modalità in quanto non è possibile interrompere la
loro attività, assegnarla ad altri processi e poi
riprenderla dal punto in cui si era interrotta.
• Ogni processo aspetta il suo turno per l’uso della risorsa.
• Ogni processo che accede alla risorsa la rilascia solo al
termine del lavoro.
• Uso della risorsa inefficiente: un processo può richiedere
la risorsa ma usarla pochissimo tenendola comunque
bloccata.
Risorse condivise
• La periferica è condivisibile se è possibile assegnarla a
più processi contemporaneamente.
• È il caso delle memorie (ram e hdd).
• Sulle memorie è possibile che più processi leggano o
scrivano contemporaneamente senza inconvenienti
• La politica usuale è quella di suddividere «logicamente»
la risorsa in diverse parti ed assegnarne ciascuna ad
un processo distinto.
• Ogni processo «pensa» di avere la risorsa ad uso
esclusivo.
Risorse virtuali
• Questa tecnica è l’unica che risolve il problema
della sincronizzazione tra periferiche ed unità
centrali.
• Le periferiche sono più lente della cpu per cui i
processi restano sempre in attesa del i/o.
• Le periferiche sono un «collo di bottiglia» del
sistema.
• Se la stampante è assegnata ad un processo, tutti
gli altri in attesa devono spettare.
Risorse virtuali
• Per ovviare a questo problema si creano dei file su
aree libere del disco in cui vengono memorizzati le
richieste dirette alle periferiche.
• Solitamente viene usato un dispositivo ad alta
velocità, come il disco fisso.
• Il disco può essere diviso in partizioni ognuna
contenente le richieste verso una periferica.
• Ogni partizione simula la periferica.
• Il processo selezionato dallo scheduler invia i dati
al disco e non alla lenta periferica
Risorse virtuali
• Il processo si comporta come se comunicasse
direttamente con la periferica ed invia ad essa i dati
• Questi sono tuttavia «stivati» in un’area del disco.
scrittura stampante
<-->
scrittura su disco
• Poiché il disco è condivisibile, sembra che anche la
stampante sia condivisibile.
Risorse virtuali
• Spooling: la tecnica d’suso del hdd per
virtualizzare la stampante
• Spooler: il modulo del SO che gestisce questa
tecnica
• Spool = Simultaneous Peripheral Operation On
Line
Virtualizzazione delle risorse
• Quando p1 comincia a stampare, invia di fatto la
stampa su hhd per cui se anche p2 vuole stampare
contemporaneamente, può farlo dato che hdd può
ricevere più richieste, anche se p1 non ha terminato.
p1
hdd
p2
hdd
hdd
p3