C i przygotowanie programu na podstawie algorytmu
: 04 września 2009, 10:40
Witam serdecznie,
Muszę przygotować program, ale nie mam pojęcia jak go ugryźć.
Będę wdzięczny za wszelką pomoc, która zbliży mnie do zakończenia tej sprawy.
Treść zadania
Opracować program (patrz rysunek powyżej - proces główny), który utworzy dwa procesy potomne, w których uruchomione zostaną kolejne programy (patrz rysunek powyżej - proces podrzędny l oraz proces podrzędny 2) poprzez wywołanie funkcji exec. Procesy podrzędne powołają po jednym wątku, które będą realizować obliczenia. Użytkownik ma mieć możliwość z poziomu procesu głównego wykonania następujących funkcji:
1. wprowadzenie wartości całkowitych (w przedziale od dwóch do czterech wartości):
2. zlecenie wykonania operacji wyliczenia sumy kwadratów, wprowadzonych w punkcie pierwszym:
3. zakończenia działania obu programów.
Dane wprowadzone przez użytkownika (po wybraniu przez niego funkcji 1) przekazywane są z procesu głównego do procesu podrzędnego l (po wybraniu przez użytkownika funkcji 2), za pomocą łącza nazwanego. Proces podrzędny l po otrzymaniu danych powinien je przesłać, za pomocą łącza nienazwanego, do wątku A, który wyliczy potęgi dwójkowe poszczególnych wartości. Wątek A wyniki obliczeń przekazuje za pomocą łącza nazwanego do wątku B. który wyliczy ich sumę. Po wyliczeniu sumy. wątek B przekazuje wynik przez łącze nazwane do procesu podrzędnego 2. który przekazuje go poprzez łącze nienazwane do procesu głównego w celu wyświetlenia na ekranie terminala.
Proces główny kończy swoje działanie po wybraniu przez użytkownika funkcji 3 przesyłając jednocześnie do procesu podrzędnego l sygnał SIGINT. Po otrzymaniu sygnału SIGINT proces podrzędny l powinien: przesiać do procesu podrzędnego 2 sygnał SIGUSR1, wymusić zakończenie wątku A i następnie zakończyć swoje działanie. Po otrzymaniu sygnału SIGUSR1 proces podrzędny 2 powinien wymusić zakończenie wątku B i następnie zakończyć swoje działanie.
Użytkownik powinien mieć możliwość wykonywania operacji w pętli dopóki nie wybierze funkcji 3.
Poszczególne operacje ciastkowe powinny być zobrazowane w postaci odpowiednich komunikatów na ekranie monitora.
Muszę przygotować program, ale nie mam pojęcia jak go ugryźć.
Będę wdzięczny za wszelką pomoc, która zbliży mnie do zakończenia tej sprawy.
Treść zadania
Opracować program (patrz rysunek powyżej - proces główny), który utworzy dwa procesy potomne, w których uruchomione zostaną kolejne programy (patrz rysunek powyżej - proces podrzędny l oraz proces podrzędny 2) poprzez wywołanie funkcji exec. Procesy podrzędne powołają po jednym wątku, które będą realizować obliczenia. Użytkownik ma mieć możliwość z poziomu procesu głównego wykonania następujących funkcji:
1. wprowadzenie wartości całkowitych (w przedziale od dwóch do czterech wartości):
2. zlecenie wykonania operacji wyliczenia sumy kwadratów, wprowadzonych w punkcie pierwszym:
3. zakończenia działania obu programów.
Dane wprowadzone przez użytkownika (po wybraniu przez niego funkcji 1) przekazywane są z procesu głównego do procesu podrzędnego l (po wybraniu przez użytkownika funkcji 2), za pomocą łącza nazwanego. Proces podrzędny l po otrzymaniu danych powinien je przesłać, za pomocą łącza nienazwanego, do wątku A, który wyliczy potęgi dwójkowe poszczególnych wartości. Wątek A wyniki obliczeń przekazuje za pomocą łącza nazwanego do wątku B. który wyliczy ich sumę. Po wyliczeniu sumy. wątek B przekazuje wynik przez łącze nazwane do procesu podrzędnego 2. który przekazuje go poprzez łącze nienazwane do procesu głównego w celu wyświetlenia na ekranie terminala.
Proces główny kończy swoje działanie po wybraniu przez użytkownika funkcji 3 przesyłając jednocześnie do procesu podrzędnego l sygnał SIGINT. Po otrzymaniu sygnału SIGINT proces podrzędny l powinien: przesiać do procesu podrzędnego 2 sygnał SIGUSR1, wymusić zakończenie wątku A i następnie zakończyć swoje działanie. Po otrzymaniu sygnału SIGUSR1 proces podrzędny 2 powinien wymusić zakończenie wątku B i następnie zakończyć swoje działanie.
Użytkownik powinien mieć możliwość wykonywania operacji w pętli dopóki nie wybierze funkcji 3.
Poszczególne operacje ciastkowe powinny być zobrazowane w postaci odpowiednich komunikatów na ekranie monitora.