Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/wait.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- //drzewko
- // 1
- // 3 / \2
- // 7/ \6 4 / \5
- // 10 / 8/ \9
- // DRZEWKO V2
- // / 8
- // /5
- // / \9
- // /2
- // \4
- //=1
- // /6
- // \3
- // \7
- // \10
- using namespace std;
- int main()
- {
- // zmienne do ktorych przypisuje ID procesow
- int p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;
- if((p2=fork())==0){ // utworzenie procesu p2
- if((p4=fork())==0){ // utworzenie procesu p4
- printf("p4: id proc: %d | id proc. nad.: %d\n",getpid(), getppid()); // wyswietlenie danych o procesie p4
- exit(0); // zakonczenie procesu p4
- }
- wait(NULL); // czekanie na zakonczenie p4
- if((p5=fork())==0){/// utworznenie procesu p5
- if((p8=fork())==0){ // utworzenie procesu p8
- printf("p8: id proc: %d | id proc. nad.: %d\n",getpid(), getppid()); // wyswietlenie danych o procesie p5
- exit(0); // zakonczenie procesu p8
- }
- // dalej opisy analogiczne
- wait(NULL);
- if((p9=fork())==0){
- printf("p9: id proc: %d | id proc. nad.: %d\n",getpid(), getppid());
- exit(0);
- }
- wait(NULL); // synchronizacja
- printf("p5: id proc: %d | id proc. nad.: %d | id proc. poch.: %d, %d\n",getpid(), getppid(), p8, p9);
- exit(0);
- }
- wait(NULL);
- printf("p2: id proc: %d | id proc. nad.: %d | id proc. poch: %d, %d\n",getpid(), getppid(), p4, p5);
- exit(0);
- }
- wait(NULL); // czekanie na zakonczenie tworzenia poddrzewa procesow p2
- if((p3=fork())==0){
- if((p6=fork())==0){
- printf("p6: id proc: %d | id proc. nad.: %d\n",getpid(), getppid());
- exit(0);
- }
- wait(NULL);
- if((p7=fork())==0){
- if((p10=fork())==0){
- printf("p10: id proc: %d | id proc. nad.: %d\n",getpid(), getppid());
- exit(0);
- }
- wait(NULL);
- printf("p7: id proc: %d | id proc. nad.: %d | id proc. poch: %d\n",getpid(), getppid(), p10);
- exit(0);
- }
- wait(NULL);
- printf("p3: id proc: %d | id proc. nad.: %d | id proc. poch: %d, %d\n",getpid(), getppid(), p6, p7);
- exit(0);
- }
- printf("p1: id proc: %d | id proc. nad.: %d | id proc. poch: %d, %d\n",getpid(), getppid(), p2, p3);
- wait(NULL); // czekanie na zakonczenie wszystkich procesow
- exit(0); // zakonczenie procesu glownego
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement