Zadania do laboratorium 6 SOP
✅ Zadanie 1 – Trzy procesy potomne
Napisz program, który:
- Tworzy trzy procesy potomne (
fork()). - Każdy proces potomny powinien:
- wypisać swój
PIDiPPID, - zakończyć działanie kodem
exit(i)(gdzieito numer procesu).
- wypisać swój
- Proces rodzica powinien:
- poczekać na każdego potomka osobno (
waitpid()), - wypisać informacje o zakończeniu dzieci:
PID+ kod wyjścia (WEXITSTATUS()).
- poczekać na każdego potomka osobno (
✅ Zadanie 2 – fork() i identyfikacja procesu
Napisz program, który:
- Tworzy jeden proces potomny.
- Dziecko:
- wypisuje swój
PIDiPPID, - śpi 2 sekundy,
- sprawdza ponownie
PPID(czy zmienił się na 1), - kończy działanie.
- wypisuje swój
- Rodzic kończy się od razu, bez
wait(). ❓Czy rodzic się zmienia? Jeśli tak, to kto jest nowym rodzicem?
✅ Zadanie 3 – Dwa procesy potomne z kolejnością
Napisz program, który:
- Tworzy dwa procesy potomne.
- Proces 1:
- wypisuje “Jestem procesem 1”,
- kończy się po 1 sekundzie.
- Proces 2:
- czeka 2 sekundy,
- wypisuje “Jestem procesem 2”,
- kończy się.
Rodzic powinien użyć waitpid() i wypisać, który proces zakończył się jako pierwszy i drugi.
🎯 Możesz dodać timestamp (time() lub gettimeofday()), by precyzyjnie zmierzyć czas zakończenia.
✅ Zadanie 4 – Dziecko czeka na inny proces
Napisz program, który:
- Tworzy dziecko.
- Dziecko tworzy swoje dziecko (czyli wnuka).
- Proces wnuka:
- wypisuje “Wnuk działa”, śpi 2 sekundy, kończy się
exit(5).
- wypisuje “Wnuk działa”, śpi 2 sekundy, kończy się
- Proces dziecko:
- czeka na zakończenie wnuka (
wait()), - wypisuje
PIDzakończonego procesu iWEXITSTATUS.
- czeka na zakończenie wnuka (
- Proces rodzic:
- nie czeka na nikogo i kończy się od razu.
✅ Zadanie 5– Drzewo procesów
Stwórz program, który buduje strukturę:
Rodzic
├── Dziecko 1
│ └── Wnuk 1
└── Dziecko 2
└── Wnuk 2
Każdy proces powinien wypisać swoje:
PID,PPID, poziom w drzewie- nazwę roli (np. “Dziecko 1”)