-
-
-
CENAPAD-MGCO
A seguir: SJFQueue
Acima: Imposição de Políticas de
Anterior: SJF: Shortest Job First
A seguinte estrutura de dados é conveniente para o registro de uma requisição de impressão:
class Request {
int fileSize;
Bed bed;
ProcessId client;
}
SJFQueue waiting;
Com isto, temos:
void requestPrinter(ProcessId client, int fileSize) {
lock(mutex);
Request rq = waiting.getRequest(client, fileSize);
while (busy) wait(rq.bed, mutex);
q.ok(rq);
busy = true;
unlock(mutex);
}
void releasePrinter() {
lock(mutex);
busy = false;
wakeup((waiting.top().bed, mutex);
unlock(mutex);
}