1. Do czego służy pamięć współdzielona?
Dla komunikacji pomiędzy procesami można stworzy ć pewien obszar w pamięci operacyjnej wspólny dla współpracujących procesów. Umożliwia to efektywne przesyłanie danych pomiędzy procesami.
1 Co może zawierać pamięć współdzielona?
Jeden proces może utworzyć segment pamięci współdzielonej. a następnie inne procesy mogą się do niego dołączać i z niego korzystać. Operacje na tej pamięci odbywają się jak na zwykłej pamięci procesu. Struktura danych przechowywanych w segmencie pamięci współdzielonej może być dowolna
3. Do czego służą funkcje shmat i shmdt?
słunat dołączenie procesu do segmentu pamięci współdzielonej
Po wywołani funkcji shmget. proces zna identyfikator segmentu pamięci współdzielonej. Nie jest mu jednak znany adres (wskaźnik) tego segmentu. Funkcja 3limat umożliwia uzyskanie tego adresu (dołączenie procesu do segmentu pamięci współdzielonej). Dzięki tej funkcji proces otrzymuje wskaźnik na pierwszy' bajt pamięci wspólnej.
shmdt odłączę nie procesu od segmentu pamięci współdzielonej
Funkcja shmdt umożliwia odłączenie procesu od utworzonego wcześniej przez tai lub inny proces segmentu pamięci współdzielonej, do którego dany proces jest dołączony. Argument funkcji jest wskaźnikiem do segmentu pamięci współdzielonej. W przypadku pomyślnego wykonania operacji funkcja zwraca wartość zero.
4. W jaki sposób sprawdzić, kiedy i jaki proces ostaUiio dołączył się bądź odłączył od segmentu pamięci współdzielonej?
?????????????
ATIME - czas ostatniego dołączenia się jakiegoś procesu do pamięci współdzielonej DTZHE - czas ostatniego odłączenia się jakiegoś procesu od pamięci współdzielonej
5. W jaki sposób sprawdzić, kto utworzył segment pamięci współdzielonej?
CREATOR - nazwa użytkownika, który utworzył pamięć współdzieloną 77T77777?
6. Jak sprawdzić ile jest aktualnie procesów dołączonych do pamięci współdzielonej?
W celu wyświetlenia listy segmentów pamięci współdzielonej aktualnie istniejących w systemie należy wykonać polecane:
> ipes -m
7. Czy pamięć współdzielona jest usuwana automatycznie, gdy skończy działanie proces, który ją stworzył?
Pamięć współdzielona może być skasowana natychmiast, jeżeli żadai proces nic jest do niej dołączony. Jeżeli istnieją procesy dołączone do pamięci współdzielonej, wówczas nie jest ona kasowana natychmiast, ale dopiero wmomaicie odłączana się ostatniego procesu.
8. Czy wymuszone usunięcie pamięci (funkcją shmctl lub polecaiian iperm) powoduje zawsze natychmiastowe usunięcie segniaitu pamięci współdzielonej?
?????
9. Czy możliwa jest sytuacja, że proces nie może dołączyć się do segniaitu pamięci współdzielonej, mimo że używa tego samego klucza, według którego została utworzona i ma do tego odpowiednie prawa?
Pamięć współdzielona może być skasowana natychmiast, jeżeli żadai proces nie jest do niej dołączony. Jeżeli istnieją procesy dołączone do pamięci współdzielonej, wówczas nie jest ona kasowana natychmiast, ale dopiero wmomaicie odłączana się ostatniego procesu. W takiej sytuacji klucz, na podstawie którego została utworzona pamięć współdzielona jest zerowany. Do takiego segniaitu pamięci nie może już dołączyć się żadai nowy proces. W zależności od wersji systanu skasowana w tai sposób pamięć współdzielona albo staje się niewidoczna dla polecana ipes albo jest wyświetlana, ale w polu MODĘ pojawia się litera D