|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
esercizio sistemi operativi
salve devo fare questo esercizio di sistemi operaitivi :
Progettate e implementate un sistema formato da tre processi master, slave1 e slave2 che viene lanciato con: > master n - Il processo master deve eseguire un loop di n iterazioni prima di terminare - Ad ogni iterazione, master deve: ◦ attendere un numero casuale r di secondi compreso tra 1 e 10 (vedete man -s 3c rand) ◦ inviare un segnale custom a slave1 (slave2) se r ` dispari (pari) e - Al termine delle n iterazioni, master deve inviare un segnale di terminazione sia a slave1 che a slave2 solo che non capisco che significa lanciato con master n scusate ma come faccio a creare i 3 processi ??? forse instende che master e il padre e slave1 e 2 siano i figli e li devo creare con una fork ?? |
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2789
|
Intende che da linea di comando tu digiterai ad esempio:
master 31 oppure master 17 Nel primo caso master farà 31 iterazioni, nel secondo 17. E sugli slave, sì, li devi creare con fork. |
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
quindi dofro fare una scanf dove devo decidere le iterazioni.
e master sara il padre e slave saranno i figli ? scusa poi una cosa come faccio a fare il numero casuale di volte? li dice di usare man ma da me non lo trova. mi potersti scrivere un esempio che genera un numero casuale di volte ? grazie Ultima modifica di processore : 18-11-2009 alle 19:32. |
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2789
|
Lo scanf non serve perché n lo ricevi da linea di comando, ad esempio se hai definito il main in questo modo:
Codice:
int main(char** args, int argc){
...
}
Per generare un numero casuale includi stdlib.h e poi usi: Codice:
int num=rand()%(MAX+1); E' consigliabile inizializzare il seed della funzione random all'inizio del programma. Per far questo includi time.h e poi richiami Codice:
srand(time(NULL)); |
|
|
|
|
#5 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 88
|
scusa ma non capisco come fare per dare n da linea di comando
poi io faccio int main (int argc, char *argv) |
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2789
|
Sì, ho sbagliato l'ordine dei parametri. Allora avrai:
Codice:
#include <stdlib.h>
int main(int argc, char** argv){
int n=atoi(argv[1]);
...
}
prova 17 |
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:42.


















