IT007.P19
Bài 8
/* test.c */
int main(int argc, char** argv)
{
int a;
for (int i = 1; i < 5; i++)
{
if (i % 2 == 0)
printf(“Hello world\\n");
else a = 5*9;
}
exit(0);
}
- new - ready - running - waiting - ready - running - waiting - ready - running - terminate
Bài 9
int main(int argc, char **argv)
{
int i = 2;
while (i < = 5)
{
i++;
if (i % 2 == 0)
{
printf(“Hello”);
printf(“Hi”);
}
else
{
printf(“Bye”);
}
}
exit(0);
}
- new - ready - running - waiting - ready - running - waiting - ready - running - waiting - ready - running - waiting - ready - running - waiting - ready - running - waiting - ready - running - terminate
Bài 10
int main(int argc, char **argv)
{
int a, b, i;
for (i = 16, i >= 6; i--)
{
if (i % 3 == 0)
{
printf(“Số % d chia hết cho 3”, i);
}
else
{
a = b + i;
}
}
exit(0);
}
- new - ready - running - waiting - ready - running - waiting - ready - running - waiting - ready-running - waiting - ready - running - terminate
Bài 12
int main()
{
fork();
fork();
fork();
fork();
return 0;
}

Bài 13
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
for (i = 0; i < 4; i++)
{
fork();
printf("hello\\n");
}
return 0;
}
flowchart TD
R1-P1((P1)) --> M1{{hello}} --> R2-P1((P1)) & R2-P2((P2))
R2-P1((P1)) --> M2{{hello}} --> R3-P1((P1)) & R3-P3((P3))
R2-P2((P2)) --> M3{{hello}} --> R3-P2((P2)) & R3-P4((P4))
R3-P1((P1)) --> M4{{hello}} --> R4-P1((P1)) & R4-P5((P5))
R3-P3((P3)) --> M5{{hello}} --> R4-P3((P3)) & R4-P6((P6))
R3-P2((P2)) --> M6{{hello}} --> R4-P2((P2)) & R4-P7((P7))
R3-P4((P4)) --> M7{{hello}} --> R4-P4((P4)) & R4-P8((P8))
R4-P1((P1)) --> M8{{hello}} --> R5-P1((P1)) & R5-P9((P9))
R4-P5((P5)) --> M9{{hello}} --> R5-P5((P5)) & R5-P10((P10))
R4-P3((P3)) --> M10{{hello}} --> R5-P3((P3)) & R5-P11((P11))
R4-P6((P6)) --> M11{{hello}} --> R5-P6((P6)) & R5-P12((P12))
R4-P2((P2)) --> M12{{hello}} --> R5-P2((P2)) & R5-P13((P13))
R4-P7((P7)) --> M13{{hello}} --> R5-P7((P7)) & R5-P14((P14))
R4-P4((P4)) --> M14{{hello}} --> R5-P4((P4)) & R5-P15((P15))
R4-P8((P8)) --> M15{{hello}} --> R5-P8((P8)) & R5-P16((P16))
Bài 14
int main (int argc, char **argv)
{
int pid;
printf(“Tiến trình cha \\n”);
pid = fork();
if (pid > 0)
{
fork();
printf(“Tiến trình cha \\n”);
}
else
{
printf(“Tiến trình con \\n”);
if(fork() > 0 )
printf("Tiến trình cha \\n");
else
printf("Tiến trình con \\n");
}
}
flowchart TD
R1-P1((P1)) --> M1{{Tiến trình cha}} --> R2-P1((P1)) & R2-P2((P2))
R2-P1((P1)) --> R3-P1((P1)) & R3-P3((P3))
R3-P1((P1)) --> M2{{Tiến trình cha}}
R3-P3((P3)) --> M3{{Tiến trình cha}}
R2-P2((P2)) --> M4{{Tiến trình con}}
M4 --> R3-P2((P2))
R3-P2 --> M5{{Tiến trình cha}}
M4 --> R3-P4((P4))
R3-P4 --> M6{{Tiến trình con}}
Bài 15