[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RiminiLUG-General] Conversione musicassetta->digitale



Il 15/12/2010 11:13, Ivan Tarozzi ha scritto:
[cut]
> Se però ti riferisci a qualcosa di più tecnico sarei molto curioso di
> approfondire un po' la cosa, premesso che temo di non avere le
> competenze per andarmi ad analizzare i sorgenti del kernel :(

premettendo che esistono diversi "kernel realtime" utilizzabili e che
ubuntu da quel che so utilizza preempt_rt, ti posso dire quanto segue:

- la preemption, per funzionare, spezzetta il tempo in quanti. Quando
eseguite una data operazione parte una sorta di conto alla rovescia,
quando arrivate a zero la tale operazione viene sospesa anche se non e'
terminata per lasciare spazio alle altre operazioni da eseguire (...per
poi ritornare in stato attivo quando lo scheduler lo considera appropriato).

- in un kernel normale alcune operazioni "escono" dalla cpu solamente
quando l'elaborazione e' stata completata


ergo:
- se hai un sistema multimediale, spezzare il tempo in blocchetti
piccoli ti garantisce di non perdere l'attimo fuggente  ...ed una
digitalizzazione, una riproduzione, ecc ecc

- se hai un'applicazione server tanti context switch ti portano via
potenza di calcolo e rendono il sistema poco performante ...una
conseguenza subdola e' che alcuni demoni, che si aspettano che
l'operazione X venga eseguita fino al termine, prima di essere
"scaricata" dalla cpu, smettono di funzionare correttamente ...in altre
parole emergono bachi normalmente non espliciti su kernel normale.


...altro problema subdolo riguarda alcune parti del kernel non
propriamente pensate per la preemption ...anche se in realta' molte
parti sono state riscritte per supportare gli spinlock e pertanto la
preemption.


Christian

P.S. se pensate di usare tale kernel per usi industriali ...cercate
altro ...ci sono estensioni decisamente piu' interessanti openrtlinux,
RTAI, xenomai ecc