SYSTEMY OPERACYJNE
M E N U
Ogłoszenia Plan_laboratoriów Laboratorium_1 Laboratorium_2 Laboratorium_3 Laboratorium_4 Laboratorium_5 Laboratorium_6 Kol_1_fin_03_04 Kol_1_imn_03_04 Kol_konkurs1 Giełda_zadań Laboratorium_8 Laboratorium_9 Laboratorium_10 LinkiLaboratorium_8
Ostatnia aktualizacja: 2005-04-05 22:54:09Zadania wprowadzające: (krótkie wprowadzenie)
Napisać program, który w trakcie swojego działania uruchamia inny program, nie tworząc procesu potomnego.
(Wykorzystaj execl.) 1.
Napisać program, który w trakcie swojego działania tworzy proces potomny uruchamiający inny program.
(Wykorzystaj fork.) 2.
Napisać program, który w trakcie swojego działania tworzy proces potomny i kontynuje działanie dopiero po zakończeniu procesu potomnego.
(Wykorzystaj wait.) 3.
Napisać program, który w trakcie swojego działania tworzy proces potomny i wypisuje numer procesu potomnego i macierzystego.
(Wykorzystaj getpid, getppid.) 4.
Napisać program, który w trakcie swojego działania uruchamia jedno ze standardowych poleceń systemu linux.
(Wykorzystaj system.) 5.
Zadania:
Napisać prosty program ilustrujący działanie funkcji fork. Program ma pokazać, że w wyniku działania funkcji fork powstaje nowy proces potomny, będący kopią procesu macierzystego. Wydrukować PID i PPID dla procesów. Sprawdzić, czy procesy współdzielą dostęp do plików i zmiennych środowiskowych (np. PATH). W odpowiednim miejscu programu należy użyć instrukcji o następującej postaci:
fprintf(plik,"przed fork\n");
fprintf(plik,"po fork w procesie macierzystym\n"); fprintf(plik,"po fork w procesie potomnym\n");
gdzie plik jest deskryptorem otwartego pliku. Przeanalizować zawartość pliku. 1.
W pliku msh.c zamieszczono kod programu realizującego prosty interpreter poleceń (powłoki), który wykonuje polecenie wbudowane exit oraz uruchamia polecenia zewnętrzne jako procesy potomne (pierwszoplanowe lub drugoplanowe). Skompilować i uruchomić program oraz przetestować i przeanalizować jego działanie. Przemyśleć sposób uzupełnienia interpretera o inne typowe polecenia wbudowe.
2.
Napisz program tworzący równocześnie trzy procesy zombi. 3.
Literatura:
manual np: man fork 1.
internet np: link 2.
książka np: Neil Matthew, Richard Stones, Linux Programowanie, Wyd. RM, W-wa 1999 3.