prof. Nunzio Brugaletta |
atapSO |
EnneBi –
Computer Science
Avanti – Indietro – Inizio
In un sistema multiutente anche le periferiche possono generare problemi di gestione:
Periferiche condivise. Si tratta di periferiche che permettono l'uso contemporaneo da parte di più utenti senza, per questo, produrre interferenze fra un processo ed un altro. Per esempio i dischi sono periferiche di questo tipo: le testine di lettura/scrittura si possono spostare da una parte ad un altra in ragione della zona di disco assegnata al processo che in quel momento ne fa richiesta. In questi casi l'uso della periferica ben si adatta ad un ambiente multiprogrammato. L'unico problema che si pone è quello di accodare le richieste in modo da ottimizzare i tempi di accesso.
Periferiche dedicate. In questa categoria rientrano tutte le periferiche che debbono essere assegnate ad un processo in maniera esclusiva. Si tratta di quelle periferiche che permettono soltanto accesso sequenziale. Esempio tipico è la stampante: se un processo la sta utilizzando, la risorsa non può essere assegnata ad un altro processo, che ne fa richiesta, finché il processo che attualmente la utilizza, non la rilascia.
Le periferiche dedicate, chiaramente ferme restandone le
caratteristiche, permetterebbero bassi livelli di multiutenza,
limitando quest'ultima, per esempio, al numero di stampanti
fisicamente collegate al calcolatore. Si consideri, inoltre, che
anche se difficilmente esistono programmi che non necessitano di
stampante, l'utilizzo che un programma fa di una stampante è
generalmente limitato (un programma utilizza anche altre risorse) e
quindi una stampante dedicata sarebbe sotto-utilizzata. L'unica
soluzione possibile è quella di convertire la periferica dedicata in
condivisa utilizzando le tecniche di SPOOL (Simultaneous
Peripheral Operations On Line).
Quando si utilizzano queste tecniche, il sistema operativo, associa ad ogni processo un file su disco. Il programma di SPOOL, che gira in multiprogrammazione con gli altri, viene richiamato dalle istruzioni di scrittura di un programma in esecuzione. La scrittura sulla stampante da parte di un programma, diventa quindi la scrittura di un file su disco. Diversi processi possono scrivere su disco essendo questo una periferica condivisa.
Quando il processo termina le operazioni di stampa, il file scritto su disco può essere materialmente stampato. La stampa avviene in modo differito e contemporaneamente ad altre esecuzioni girando, il programma di SPOOL, in multiprogrammazione con altri.
In definitiva con le tecniche di SPOOL si simula una periferica dedicata con l'utilizzo di una risorsa condivisa.
http://ennebi.solira.org |
ennebi@solira.org |