[Tech] Domanda

Valerio Montagnani tech@vmontagnani.it
Mar 2 Dic 2003 10:16:50 CET


On Mon, 01 Dec 2003 19:29:34 +0100
Simone Piccardi <piccardi@truelite.it> wrote:

> On Mon, 2003-12-01 at 15:16, Valerio Montagnani wrote:
> > litio ad alimentare bios e clock. La continua variazione di livelli di
> > tensione dovuta ai due tipi di alimentazione, possono creare problemi
> > al clock; infatti, l'orologio che compare sul desktop di qualsiasi
> > distro, se non viene continuamente aggiornato via internet, rimane
> > indietro.
> No, guarda che l'orologio di sistema lo mantiene il kernel, e 
> l'aggiornamento dipende dal carico della macchina, e` solo un calcolo
> approssimato, a me ad esempio spesso va avanti.  

E' vero, quando il computer è acceso. Quando è spento tutto è trasferito al bios, che viene alimentato da una pila. Ora per quanto ben progettato un circuito elettrico alimentato da due fonti di energia diverse, presenta sempre livelli di tensione differenti. Per uno strumento di misura temporale, questa cosa è dannosa. L'effetto di questo continuo cambiamento di alimentazione, lo vedi dal fatto che l'orologio di sistema è anticipato rispetto a uno esterno alla tua macchina (che si suppone preciso).

> > diversi, per hardware, locazione, ecc.
> E devono essere sincronizzate fra di loro? Non hai ancora specificato
> che precisione ti serve, se ti serve la sincronia esatta delle macchine,
> se gli intervalli devono essere assoluti o relativi ... francamente e`
> un po' difficile risponderti. 

Mi basta che ci sia un'incertezza del 10-15%. L'importante è che la macchina sita a Roma non acquisisca i dati, per esempio alcuni minuti dopo quella sita a Milano. Ho bisogno che tutto il sistema delle n-macchine sia sincronizzato. Non mi interessa invece il momento esatto del mondo reale, in cui vengono acquisiti i dati.

> 
> > credo che l'unico sistema sia quello proposto da claudio: usare
> > time().
> Scusa ma cosa credi che usi time? Lo stesso orologio di sistema di cui
> affermi di non fidarti. 

Esatto! ma l'uso di un loop che faccia stare la macchina senza far niente è meno vantaggiosa.

> Se hai esigenze di real-time ti occorre un sistema real-time (e Linux
> non lo e`, senza i patch di RT-linux o RTAI). Se invece ti basta una
> precisione limitata puoi tranquillamente usare sleep e alarm e dare
> priorita` real-time al processo (che nonostante il nome sono solo una
> approssimazione di un real-time effettivo). 

sleep e alarm sono funzioni sh.

> 
> La maniera piu` precisa che hai a disposizione (come ti aveva
> consigliato carlo) e` interrogare il real-time-clock della macchina,
> guardati rtc.txt sotto Documentation nei sorgenti del kernel, c'e` pure
> un esempio di come fare (devi usare read e select).

Ok, leggo rtc.txt

Ciao e di nuovo grazie, Vale
-- 
Valerio Montagnani        (Lug-Account)        <tech@vmontagnani.it>
              pub 1024/C7E4BC57    sub 2048g/0E170155
Key fingerprint = D5A4 EDFC 060C 5BD6 E2DD  8252 3B67 C1EB C7E4 BC57



Maggiori informazioni sulla lista flug-tech