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
© Copyright 2024 Paperzz