[Tech] Dormi bambino, dormi tesor... (C help)

Simone Piccardi piccardi@fi.infn.it
Mer 25 Ott 2000 20:41:43 CEST


Gianni Bianchini wrote:
> 
> Spiegandomi molto male, mi volevo riferire alla possibilita'
> di fare in modo che il kernel scheduli in modo periodico (allo stesso
> modo in cui real time linux fa con i task kernel, con approccio quindi
> completamente diverso rispetto allo scheduler "normale")
> dei processi in user space.
In effetti non avevo capito. Comunque per fare quello che dici si usa
alarm come system call (che genera dopo un periodo di tempo da te
specificato un SIGALARM al processo che l'ha chiamata). E quello o
gestisce il segnale (riemergendo dalla eventuale pause in cui lo puoi
aver mandato) o crepa. Solo che non e' realtime, e se vai troppo veloce
non ce la fai di certo. Se hai settato la priorita' realtime al processo
(che non e' un vero realtime, ma tant'e') puoi anche evitare che altri
processi a priorita' inferiore vengano rischedulati al suo posto. Il
tutto comunque resta non realtime.
> Eliminare cioe' l'esigenza che i task risiedano in kernel
> space. Ovvero il kernel real time invece di chiamare semplicemente una sua
> procedura in risposta ad un'interruzione (del timer) passa invece in user
> mode.
> Questo presuppone comunque una politica diversa di sincronizzazione
> all'interno del kernel stesso: disabilitare le interruzioni, come
> dicevi, non va bene di certo.
Non ti seguo, ma mi sa tanto che anche io mi sono spiegato molto male;
io continuavo a pensare nei termini di bloccare la CPU su un processo
(bloccando a quel punto tutto il resto) per un tempo il piu' ben
definito possibile, e' chiaro che se al contempo vogliamo far fare altre
cose al kernel cosi' di certo non va.

Il mio dubbio sulla fattibilita' della cosa (in realtime duro) era nel
senso che non credo sia possibile conciliare le esigenze del realtime
(cioe di reazioni deterministiche in tempi definiti) mescolandole la
gestione dei processi come quelli che stanno in user space, che non sono
deterministici, a quel punto non saresti (anche se al processo il
segnale glielo mandi in real-time) piu' deterministico non appena esci
dallo kernel space. 

Ciao
-- 
Simone Piccardi
Microsoft is NOT the answer. Microsoft is the Question.
The answer is: "NO!"




Maggiori informazioni sulla lista flug-tech