The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Sistemi Operativi > HP-UX
.
google unix.com



HP-UX HP-UX (Hewlett Packard Unix) è di Hewlett-Packard proprietario di attuazione del sistema operativo Unix, basati su System V.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
aggiungere l'output di una query a una variabile per essere utilizzata in un altro query hazno Shell scripting e di programmazione 0 03-24-2009 08:52 PM
Mac OS X: Perché il vostro Mac potrebbe non dormire o di soggiorno in modalità sleep iBot OS X, supporto RSS 0 03-19-2009 10:50 PM
localtime per convertire unixtime AshishK UNIX e avanzata per utenti esperti 2 10-30-2007 10:22 AM
Perl + localtime () Optimus_P Shell scripting e di programmazione 3 07-09-2003 06:32 PM
sonno Anna UNIX for Dummies Domande & Risposte 5 07-11-2001 12:52 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rating: Thread Rating: 1 votes, 4.00 average. Modalità di visualizzazione
  #1 (permalink)  
Old 06-29-2009
nsvora nsvora is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2009
Interventi: 2
Stop & query localtime

Salve,
I lavori in applicazione HPUX e ho avuto una query per quanto riguarda il sonno e la chiamata di sistema localtime in HPUX.
Qui è il codice che abbiamo:

const uint32_t WAKE_INTERVAL_SEC (30 * 60);
while (true) (

/ / Per saperne di ciò che ora è
tempo (e corrente);

/ / Thread di allineare con orologio sveglia 30 minuti cioè se è attualmente 9:20 sveglia dopo 10 minuti,
/ / Se è attualmente 9:05, svegliati dopo 25 minuti.
/ / Calcolare il numero di secondi in questa mezz'ora.
sleepTime \u003d WAKE_INTERVAL_SEC - (corrente WAKE_INTERVAL_SEC%);
while (1) (

sleep (sleepTime);

/ / Do lavoro regolare
tptr \u003d localtime (& corrente);

se (12 \u003d\u003d tptr-> tm_hour & & tptr-> tm_min <WAKE_INTERVAL_MIN)
(
/ / Mezzogiorno il lavoro da fare
)
)

Comportamento:
Come indicato nel codice di cui sopra, ci aspettiamo che ogni mezz'ora, un po 'di lavoro da fare, e se succede che il tempo di essere tra le 12 e le 12:30 am poi facciamo anche mezzogiorno lavoro.

Comportamento:
La maggior parte delle volte funziona come previsto. Ma alcune volte, il sonno sembra uscire da un qualche secondo prima di 12:30 e così non la logica e il mezzogiorno di lavoro. Idealmente mi aspetterei che il lavoro mezzogiorno condizione a fallire, poiché thread ha svegliato alle 12.30 e quindi non può lavorare a mezzogiorno satisify condizione. (Trace in syslog indica che il lavoro è iniziato alle 12.30, ma la registrazione stessa avrebbe preso un po 'di tempo e ho il sospetto di sonno potrebbe avere svegliato presto)

Domanda:
- Posso dormire svegliarsi prima che il calendario tempo (diversi da quelli SIGALRM)? Ci sono altre condizioni in cui il sonno potrebbe svegliarsi prima dell'orario previsto per tempo?
- Posso localtime utilizzati per il confronto di ritorno ora sbagliata?
- E 'possibile che ci siano un po' di tempo gli adeguamenti fatto internamente (può essere per il clock interno deriva etc) che si traduce in sonno svegliarsi un secondo prima del previsto orario locale o facendo una sorta di adeguamento, per qualche motivo?

Eventuali ingressi a tale riguardo sono apprezzati.

Grazie e saluti,
NSV
  #2 (permalink)  
Old 06-29-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.763
Perché non usare cron o at per programmare il tuo codice? Questi sono costruiti per eseguire comandi o script al momento giusto.

Inoltre, il sonno (1) non è garantita a dormire esattamente un secondo.
  #3 (permalink)  
Old 06-30-2009
nsvora nsvora is offline
Utente Registrato
  
 

Iscriviti Data: giugno 2009
Interventi: 2
Ciao Jim,
Grazie per la risposta.
In realtà fili può svegliare in qualsiasi momento sulla base del programmatore, in modo che la logica è stato il tempo per verificare il thread ha bisogno di dormire in modo che la sua linea con intervalli di 30 minuti.

Per quanto riguarda,
nsvora
  #4 (permalink)  
Old 07-01-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.763
Ho cercato di trasmettere chiaramente:

Non è possibile garantire ESATTAMENTE come è lungo sonno. È necessario aggiungere alcune slop (fudge fattore) nel suo secondo calcolo in un modo o nell'altro, non è andare a lavorare perfettamente in ogni tempo - si presume che si sono POSIX compatibile tempo - vale a dire., nessun salto secondi.:
Codice:
calculate duration of sleep:
time_t how_long_to_sleep=1800;
how_long_to_sleep-= time(NULL) % 1800;
sleep(!how_long_to_sleep ? 1800 : how_long_to_sleep);
dopo il test del tempo di attivazione:
Codice:
time_t now=time(NULL);
now=now % 1800;
if( now < 2 && now > 1797)
   // sleep period ended close enough
else
  // sleep period is off by too much
fi
Si potrebbe anche provare usleep (valore), che ha più fine granularità in ms, ma anche in questo caso è il valore minimo. Si può essere più lungo. Ad esempio, una più elevata priorità di questo lavoro è in esecuzione.
Reply

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Chiuso
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:26 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0