|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Nov 2007
Messaggi: 25
|
Fork e schedulazione.... su quale processo?
Ciao a tutti, avrei una domanda un pò particolare, mettete il caso che io faccio un programma che ha tre diversi processi: magari uno fà una stampa sullo standard output, un altro legge dalla seriale e un'altro scrive su un file con fprintf, e io voglio tipo modificare la posizione di uno dei tre nello schedulatore o modificare la priorita ad esempio di quello che legge dalla seriale in una priorità più alta, come faccio a distinguere una volta che mi trovo dentro il mio eseguibile dove fare la fork o la SetPriority per aumentare la priorità del lettore della seriale?
Spero di essermi spiegato, in pratica come discrimino i processi dall'interno del sorgente? Ah aspetta mi pareva di averlo letto; secondo voi potrebbe essere una cosa del genere: Uso GetPid e GetPPID per ottenere PID e PPID del padre del processo che legge la seriale e poi agganciandomi al suo PID gli aumento la priorità o lo forko, potrebbe essere? Al momento non ho esempi, ma anche qualora fosse così sorge un altro dubbio, come riesco a scoprire il PID del processo che legge la seriale? In pratica io Con GetPid ottengo il PID di uno dei processo ma come discrimino se è il processo che legge? Quando apro la porta seriale con Codice: fd = open("/dev/ttyS0"...... percaso il nome del processo che genero coincide con il descrittore del file, cioè fd? In questo modo potrei fare una cosa del tipo: GetPid(fd,...."qualcosa".....) ed ottenere il PID del processo adibito a leggere la seriale? A quel punto, forkarlo o schedularlo non dovrebbe essere un problema, potrei fare: Codice: pid_t pid2,pid3; pid2=GetPid(fd,...."qualcosa".....); pid2=fork(); Potrebbe funzionare tipo in questo modo? E soprattutto posso usare un descrittore di file per identificare un processo? Grazie mille Leonardo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:08.



















