Domanda

Usiamo i desktop dei dipendenti per la simulazione ad alta intensità di CPU durante la notte. Desktops eseguire Windows - di solito Windows XP. I dipendenti non si disconnettono, hanno solo bloccano i desktop, spengono loro monitor e andare.

Ogni dipendente ha un file di configurazione che si possono modificare per specificare quando è più probabile che fuori ufficio. Quando arriverà quel momento un dato afferra programma di sfondo per la simulazione dal server, depone le uova processi di lavoro, li guarda, ottiene i risultati e li invia al server. Quando il tempo specificato dal dipendente simulazione intercorre si ferma in modo che il normale uso desktop non è interferito.

Il problema è che simuation consuma molta memoria, in modo che quando il lavoratore processi vengono eseguiti hanno la forza gli altri programmi nel file di swap. Così, quando il dipendente viene tutti i programmi che ha lasciato sono luggish e lento fino a quando non si apre uno per uno in modo che siano unswapped.

C'è un modo in cui il programma può costringere altri programmi su file di swap quando si ferma la simulazione in modo che ancora una volta senza intoppi?

È stato utile?

Soluzione

Loop attraverso processi di sistema e utente, a partire da uno che usa la maggior parte della memoria (a parte l'applicazione di fondo) o uno che viene utilizzato più dal dipendente, e inviare il processo di un messaggio WM_ACTIVATEAPP. Questo dovrebbe avere lo stesso effetto di "clic" un'icona finestra di applicazione di tale processo nella barra delle applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top