Quote:
|
Originariamente inviato da parisisalvo
Salve
sto realizzando un'applicazione tempo critica.
So che ho diverse opzioni :
1) patch per il kernel
2) installare RTAI (kernel RealTime)
|
Puoi provare con le patch di Montavista per la low latency/RT. Sembrano promettenti e già si parla di una futura inclusione.
Quote:
3) lasciare tutto com'e' e provare a giocare con sched.h e pthread.h
faccio partire il processo, dal processo partono diversi thread (nessun figlio)
ai thread ho dato priorita' alta con pthread_attr_setschedparam
|
Sicuramente da provare, probabilmente uno scheduling FIFO o Round Robin è sufficiente per la maggior parte delle operazioni RT (v. pthread_attr_setschedpolicy)
Potrebbe anche essere consigliabile un mlockall() all'inizio del programma (thread principale).
Quote:
|
se tramite le funzioni della lib sched.h do altissima priorita' al processo ne guadagneranno anke i thread da lui creati?
|
Non so sinceramente se lo scheduler è ereditato (mi sembvra di sì), però quando ci sono di mezzo i thread userei le funzioni apposite.
Occhio che il RT richiede cooperazione da parte del programmatore: fai un thread RT ad alta priorità rispetto agli altri, che sfora la sua quota temporale, e tutto è inutile.
Sposto in programmzione.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
Ultima modifica di ilsensine : 06-06-2005 alle 14:10.
|