• Nie Znaleziono Wyników

Laboratorium 08 - fork

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium 08 - fork"

Copied!
2
0
0

Pełen tekst

(1)

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 Linki

Laboratorium_8

Ostatnia aktualizacja: 2005-04-05 22:54:09

Zadania 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.

(2)

Cytaty

Powiązane dokumenty

W przypadku, gdy wektory mają różną liczbę elementów funkcja ma tylko zwrócić komunikat

Wykorzystując listę utworzoną na zajęciach (do której użytkownik podaje elementy dopóki chce) proszę usunąć z listy węzły poprzedzane przez

Napisać program generujący 20 węzłów listy jednokierunkowej z polami danych generowanymi losowo z zakresu od 1 do 20 oraz wypisujący po kolei wszystkie pola danych.. Pomiędzy

Tuż przed wyjściem program zapisuje „strukturę katalogów” na dysk, do pliku w tym samym katalogu, z którego został uruchomiony. Plik ten otrzymuje nazwę taką jak program, tyle

Tuż przed wyjściem program zapisuje „Dane” na dysk, do pliku w tym samym katalogu, z którego został uruchomiony. Po starcie program odczytuje „Dane”

W odróżnieniu od funkcji wait() która odblokuje proces bieżący przy zakończeniu dowolnego procesu potomnego funkcja waitpid() odblokuje się gdy zakończy się

W odróżnieniu od funkcji wait() która odblokuje proces bieżący przy zakończeniu dowolnego procesu potomnego funkcja waitpid() odblokuje się gdy zakończy się

W odróżnieniu od funkcji wait() która odblokuje proces bieżący przy zakończeniu dowolnego procesu potomnego funkcja waitpid() odblokuje się gdy zakończy się