erlug
[Top] [All Lists]

Re: [Erlug] Preemptive kernel e SDL

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] Preemptive kernel e SDL
From: Andrea Scrimieri <scrimieri@xxxxxxxxx>
Date: Sat, 21 Sep 2002 23:18:03 +0200 (CEST)
On Sat, 21 Sep 2002, Davide Bolcioni wrote:

> Andrea Scrimieri scrimieri@xxxxxxxxx [mlerlug/Lista ERLUG] wrote:
>
> Qui finisce che tutti pensano che io sia un pò str***o, ma dissento ...

No figurati, hai fatto bene a precisare. :)

> Il kernel preemptive fa sì che a, differenza di quanto accade senza,
> mentre il kernel sta eseguendo *in kernel mode* un'operazione per conto
> di un processo utente la CPU possa essere riassegnata a lavorarare per
> un altro processo.

Concordo.

> > Dovrebbe limitare ulteriormente la starvation (il fenomeno che penalizza
> > fortemente i processi a bassa priorita' che di fatto posso essere
> > accantonati per "troppo" tempo) e aumentare soprattutto la responsiveness.
>
> Non direi: una delle garanzie fondamentali del multiprocessing e degli
> sforzi di SMP è che se ho N CPU e N thread di priorità uguale pronti,
> ogni CPU si becca un thread e se la tiene fino a che non si sospende in
> attesa di qualcosa o arriva un thread di priorità superiore.

Quello che volevo dire e' che se vengono eseguiti piu' rapidamente
i processi a piu' alta priorita', tutto il sistema ne beneficia, e
di conseguenza finiscono prima anche a quelli con priorita' piu' bassa.
Al fenomeno della starvation e' legato soprattutti il tipo di scheduler
che si usa (o mix di tipologie di scheduler) e come lo si implementa.

> I thread di priorità inferiore *sono* figli di un dio minore by design;
> questo è il motivo per cui non bisogna giocare con le priorità senza
> sapere ciò che si sta facendo (a suo tempo a Ingegneria il Prof. Corradi
> faceva illuminanti esempi con auto, moto e camion che dovevano passare
> un ponte stretto; non so se lo faccia ancora).
>
> L'aumento della responsiveness è legato a questo: se il kernel per
> fornire il risultato di una system call per conto di un processo a
> priorità 1 deve camminare per tutta la memoria e ci mette 0.1s, per
> quei 100 millisecondi un processo di priorità superiore che dovrebbe
> andare in esecuzione, perchè da ben 80 ms ciò di cui si era messo in
> attesa è successo, non ha modo di farlo.

OK. Ma in questo caso il processo da 80 ms si leva subito dalle scatole e
anche il processo con priorita' 1 ne trae vantaggio perche' deve dare la
precedenza a un processo di meno. O sbaglio in qualcosa?

Hai fatto bene a precisare, sono cose che ho studiato non come avrei
voluto e che sto approfondendo ora.


Ciao,
Andrea



__________________________
Andrea Scrimieri
Aspirante fancazzista

Momma always said: "There is only so much fortune a man
really needs - and the rest is for showin' off"

        Forrest Gump


<Prev in Thread] Current Thread [Next in Thread>