[ANSI C][LINUX] Semafory: wzajemne wykluczanie sie procesow
Przy pomocy semaforow systemu UNIX zaimplementowac zadanie wzajemnego
wykluczania dla procesow. Czas operacji na wspolnym zasobie symulowac uzywajac
np. funkcji sleep. Dla demonstracji poprawnosci dzialania programu uzyc odpowiednich
komunikatow wypisywanych przez poszczegolne procesy przed, w trakcie i po sekcji krytycznej
oraz funkcji podajacych stan semafora i liczbe procesow pod nim czekajacych.
Pamietac o zainicjowaniu semafora odpowiednia wartoscia zaraz po jego utworzeniu.
Stworzyc wlasna biblioteke prostych w uzyciu funkcji do: tworzenia, uzyskiwania
dostepu, inicjowania, sterowania, operowania i usuwania semaforow (korzystajacych z
odpowiednich funkcji systemowych, ale ukrywajacych ich szczegoly techniczne).
Napisac specjalny program do powielania procesow realizujacych wzajemne wykluczanie
– w oparciu o funkcje fork i exec (nazwe programu do inicjowania procesow oraz
liczbe procesow mozna przekazywa´c przez argumenty programu ,,powielacza”). Program
ten powinien na poczatku utworzyc i zainicjowac semafor, a na koncu go usunac (kiedy
wszystkie jego procesy potomne zakoncza swoje dzialanie).
____________________________________________________________________
Program nr 1: glowny: header.h funkcje.c glowny.c
Uruchamia program nr za pomocą exec oraz uruchamia go podana ilosc razy. Program tworzy semafor, inicjuje go i podnosi.
Program nr 2: powielacz: header.h funkcje.c powielacz.c
Program ktory jest uruchamiany przez exec() z poziomu pierwszego programu. Odpowiada za sekcje krytyczne.
Oba programy wyswietlaja stosowne komunikaty.
_____________________________________________________________________
_____________________________________________________________________
KOMPILACJA...
----------------------------------------------------------------------
W katalogu znajduje sie plik MAKEFILE z podstawową funkcjonalnością.
W celu skompilowania plików, należy wykonać komendę:
make
... I URUCHOMIENIE
----------------------------------------------------------------------
w celu uruchomienia programów, należy wykonać komendę: (podana wartosc jest przykladowa, mozna uzyc innej liczby !=0)
PROGRAM 1:
./glowny powielacz 5
PROGRAM 2:
./powielacz
W celu wyczyszczenia katalogu ze wszelkich plików wynikowych, należy użyć komendy:
make clean
klik:
____________________________________________________________________
Program nr 1: glowny: header.h funkcje.c glowny.c
Uruchamia program nr za pomocą exec oraz uruchamia go podana ilosc razy. Program tworzy semafor, inicjuje go i podnosi.
Program nr 2: powielacz: header.h funkcje.c powielacz.c
Program ktory jest uruchamiany przez exec() z poziomu pierwszego programu. Odpowiada za sekcje krytyczne.
Oba programy wyswietlaja stosowne komunikaty.
_____________________________________________________________________
_____________________________________________________________________
KOMPILACJA...
----------------------------------------------------------------------
W katalogu znajduje sie plik MAKEFILE z podstawową funkcjonalnością.
W celu skompilowania plików, należy wykonać komendę:
make
... I URUCHOMIENIE
----------------------------------------------------------------------
w celu uruchomienia programów, należy wykonać komendę: (podana wartosc jest przykladowa, mozna uzyc innej liczby !=0)
PROGRAM 1:
./glowny powielacz 5
PROGRAM 2:
./powielacz
W celu wyczyszczenia katalogu ze wszelkich plików wynikowych, należy użyć komendy:
make clean
klik:
tiosiYcon-za Shelley Jodon download
OdpowiedzUsuńvexeddibo
teoungu_pu1978 Gina Glover CPU-Z
OdpowiedzUsuńWinZip
1Password Pro
Squirrels Reflector 4.0.2.114
myiberwari