sabato 25 luglio 2009

Il cassiere monotask


Mi sono espresso più volte sulla lentezza delle code francesi (per es. qui), e leggendo altri blog di italiani a Parigi ho scoperto di non essere l'unico a meravigliarmi di questa esasperante caratteristica.

Mi riallaccio al post precedente sul viaggio Parigi Lamezia per fare luce su questo interessante argomento sociologico e antropologico.

Sabato 11 luglio, una volta sbarcato a Linate, sono andato a prendere un caffè in un bar e ho avuto l'illuminazione: ho infatti scoperto una delle cause della lentezza spaventosa delle file francesi.

Facendo la fila a Linate, infatti, mi sono accorto che la cassiera di Linate è multitask: quando un cliente (cliente N) ordina qualcosa, lei gli comunica l'importo da pagare e dà lo scontrino.
Il cliente prepara i soldi. Se anziano magari si mette a cercare gli spiccioletti per dare l'importo esatto alla cassiera, se giovane e di sesso maschile capita che sia distratto dal cellulare o da una bionda che passa. Il tutto prende del tempo.
La cassiera, però, mentre attende i soldi dal cliente N , inizia a servire il cliente N+1. Quando il cliente N ha trovato i soldi e paga, la cassiera con forti probabilità ha già servito il cliente N+1 o addirittuta N+2, ma ritorna molto velocemente al cliente N per terminare la sua pratica.

Nella maggior parte delle code francesi ciò non è possibile perché la cassiera (il cassiere) finché non ha servito completamente il cliente N, non avanza. Rimane immobile, con lo sguardo da bovino che guarda il treno passare. Trattasi infatti di esemplare di cassiera/cassiere monotask.

Da Wikipedia la definizione di multitask applicata ai sistemi operativi. Cambiando qualche parola si può adattare ai cassieri della Gallia.

I programmi non hanno sempre realmente bisogno della CPU: a volte, invece di eseguire istruzioni stanno aspettando che arrivino dei dati da un file, o che l'utente prema un tasto alla tastiera. Quindi si può, in linea di principio, usare questi tempi "morti" per far eseguire un altro programma. Questa idea, sorta fin dai primi anni cinquanta, si concretizzò nei sistemi operativi multitasking, cioè dotati di uno scheduler che manda in esecuzione più processi (esecuzioni di programmi), assegnando a turno la CPU a ognuno e sospendendo l'esecuzione dei programmi in attesa di un evento esterno (lettura/scrittura sulle memorie di massa, stampa, input utente ecc.) finché questo non si verifica.

3 commenti:

Francesco Santoro ha detto...

Accidenti! Cultura, sociologia, informatica e una buona dose d'ironia in un solo post: mitico.

Anonimo ha detto...

due palle si

UcCaBaRuCcA ha detto...

E' VERO!!!