Allocazione seriale e condivisa
L’assegnazione delle periferiche ai processi è stabilita in base ad un opportuno algoritmo di schedulazione. L’allocazione delle periferiche può avvenire in modo seriale (o dedicato) o in modo condiviso. Con l’allocazione seriale una periferica viene assegnata in modo dedicato a un processo per tutta la sua durata; la periferica rimane quindi occupata per tutta la durata del processo, anche se viene utilizzata solo per piccoli intervalli di tempo; questo metodo risulta necessario per periferiche che possono essere usate solo serialmente (come stampanti o nastri). Con l’allocazione condivisa una periferica viene assegnata a più processi in modo dinamico per il tempo necessario ad effettuare una operazione di I/O (secondo la politica di schedulazione definita); una periferica normalmente allocata in questo modo è l’hard disk.
Schedulazione degli accessi al disco
L’hard disk viene usato in modo condiviso da parte di più processi; l’accesso al disco però è lento rispetto alle operazioni del processore; la politica di schedulazione delle richieste di accesso al disco incide molto sulle prestazioni. Le politiche di schedulazione cercano di minimizzare soprattutto i tempi di seek (spostamento della testina); le principali politiche di schedulazione sono:
- FCFS (First Come First Served): in base alle richieste; le testine si muovono casualmente sulla superficie del disco;
- SSTF (Shortest Seek Time First): serve per prima la richiesta che si riferisce alla traccia più vicina a quella su cui è posizionata la testina; privilegia le richieste localizzate;
- SCAN o politica dell’ascensore: evoluzione di SSTF; sceglie la richiesta con tempo di seek minore ma sempre nello stesso verso del movimento della testina; la testina si muove sempre nella stessa direzione fino all’estremità e poi nell’altra direzione;
- C-SCAN (Circular SCAN): una volta raggiunta l’estremità torna all’inizio in modo circolare.