int main() { PutInt(ForkExec("step4_ForkExec_helloworld")); PutChar('\n'); PutInt(ForkExec("step4_ForkExec_helloworld")); PutChar('\n'); return 0; }
void main() { int i; PutChar('A'); ForkExec("../test/userpages0"); PutChar('B'); ForkExec("../test/userpages1"); PutChar('C'); for (i =0; i<100000; i++) ; }
int main() { SynchPutString("\nTest de ForkExec, ici le Process 0 !\n"); ForkExec("./thread1"); ForkExec("./thread2"); SynchPutString("\nProgramme Process 0 terminé !\n"); return 0; }
int main() { int i; PutString("start of test \n"); for (i = 1; i < 16; i++) { ForkExec("putstring"); } PutString("end of test\n"); return 0; }
int main() { ForkExec("run2"); int i; for (i = 0; i < 100000; i++); PutString("ok\n"); return 0; }
int main() { int pid = 0, pid1 = 0; PutString("\n"); PutString("Lancement de userpages0\n"); pid = ForkExec("etape4/userpages0"); if(pid == -1){ PutString("Erreur du lancement de userpages0\n"); return -1; } PutString("\n"); PutString("Lancement de userpages1\n"); pid1 = ForkExec("etape4/userpages1"); if(pid1 == -1){ PutString("Erreur du lancement de userpages1\n"); return -1; } PutString("\n"); return 0; }
bool Start(const char *const*argv) { /* double fork to detach from this process */ const pid_t pid = fork(); if (gcc_unlikely(pid < 0)) return false; if (pid == 0) _exit(ForkExec(argv) ? 0 : 1); return Wait(pid); }
int main() { PutString("\n-----------------------------------------\n"); PutString("Lancement du test userProcPutString : \n"); PutString("Cree un processus qui affiche une chaine de caractere.\n"); PutString("-----------------------------------------\n"); int pid = 0; PutString("\n"); PutString("Lancement de putstring\n"); pid = ForkExec("./etape4/putstring"); if(pid == -1){ PutString("Erreur lors du ForkExec\n"); return -1; } PutString("\n"); return 0; }
int main() { PutString("\n-----------------------------------------\n"); PutString("Lancement du test testPid : \n"); PutString("Cree 5 processus et affiche leur PID.\n"); PutString("La creation d'un processus peut echouer si memoire insuffisante.\n"); PutString("-----------------------------------------\n"); int i; int pid; for(i = 0 ; i < NB_PROC ; i++) { pid = ForkExec("etape4/prog/progPid"); if(pid == -1) { PutString("Erreur de creation de processus\n"); } } return 0; }
int main() { pthread tid; UserThreadCreate(f, (void *) THIS, &tid); UserThreadCreate(f, (void *) THIS, &tid); // UserThreadCreate(f, (void *) THIS, &tid); // UserThreadCreate(f, (void *) THIS, &tid); // UserThreadCreate(f, (void *) THIS, &tid); ForkExec("multiplethreads"); b((void*) THAT); b((void*) THAT); b((void*) THAT); PutString("\nUserPages0 has terminated...\n"); return 0; }
int main() { unsigned int pid; int val; pid = ForkExec("run2"); if (pid < 0) { PutString("Error while Fork\n"); return -1; } Waitpid(pid, &val); PutString("Child exit code was "); PutInt(val); PutChar('\n'); return 0; }
int main() { int pid, error; PutString("\n-----------------------------------------\n"); PutString("Lancement du test forkExecSimple : \n"); PutString("affiche \"Hello World !\" dans un autre processus\n"); PutString("-----------------------------------------\n"); pid = ForkExec("./etape4/prog/progSimple"); if(pid == -1){ PutString("Erreur de création du processus"); PutString("\n"); return -1; } error = WaitPid(pid); if(error == -1){ PutString("Erreur d'attente du processus"); PutString("\n"); return -1; } return 0; }
int main () { char prompt[2], buffer[60]; int i; prompt[0] = '-'; prompt[1] = '-'; while (1) { PutChar (prompt[0]); PutChar (prompt[1]); i = 0; buffer[i]=GetChar(); while (buffer[i] != '\n') { i++; buffer[i]=GetChar(); } buffer[i] = '\0'; if (i > 0) { if(buffer[0] == 'q') { //quit le shell Exit(0); } else { if(buffer[0] == 'l') { //affiche un lapin PutString(" (\\/) \n"); PutString(" (. .) \n"); PutString("c(\")(\") \n"); } else { ForkExec(buffer); //execute le programme donné en paramètre } } } } }
bool Run(const char *const*argv) { const pid_t pid = ForkExec(argv); return pid > 0 && Wait(pid); }
int main(){ PutString("\n-----------------------------------------\n"); PutString("Lancement du test waitPidAll : \n"); PutString("Teste les cas d'executions/erreurs de waitpid.\n"); PutString("-----------------------------------------\n"); int error; int pid; // On lance le processus a attendre pid = ForkExec("./etape4/prog/progWait"); if(pid == -1){ PutString("[Test1] Erreur de création du processus\n"); } // On lance le processus qui va attendre le precedent pid = ForkExec("./etape4/prog/progDoubleAttente"); if(pid == -1){ PutString("[Test1] Erreur de création du processus\n"); return -1; } // On attend le processus, en concurrence avec le precedent PutString("********************************************\n"); PutString("[Test1] WaitPid conccurentiel : Mise en attente 1\n"); error = WaitPid(1); if(error == -1){ PutString("[Test1] Erreur - Ce processus est deja attendu par un autre processus\n"); return -1; } else { PutString("[Test1] Succes\n"); } // On attend le processus deja termine PutString("********************************************\n"); PutString("[Test1] WaitPid sur un processus deja termine\n"); error = WaitPid(1); if(error == -1){ PutString("[Test1] Erreur - Ce processus est deja attendu par un autre processus\n"); PutString("********************************************\n"); return -1; } PutString("[Test1] Succes\n"); PutString("********************************************\n"); // On attend le processus, en concurrence avec le precedent PutString("[Test1] WaitPid sur un processus termine par une erreur\n"); error = WaitPid(2); if(error == -1){ PutString("[Test1] Erreur - Ce processus est deja attendu par un autre processus\n"); PutString("********************************************\n"); return -1; } PutString("[Test1] Succes\n"); PutString("********************************************\n"); // On dit au process de s'attendre lui meme PutString("[Test1] WaitPid sur soi meme\n"); error = WaitPid(GetPid()); if(error == -1){ PutString("[Test1] Erreur - Impossible de s'attendre soi-meme !\n"); PutString("********************************************\n"); } else { PutString("[Test1] Echec\n"); PutString("********************************************\n"); } PutString("[Test1] Les processus fils sont arretes, arret.\n"); return 0; }
int main() { PutString("Files opened...\n"); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); ForkExec("userpages1"); PutChar('\n'); ForkExec("userpages2"); PutChar('\n'); PutString("\nExiting...\n"); Halt(); }