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. 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. 2. Co może zawierać pamięć współdzielona? Struktura danych przechowywanych w segmencie pamięci współdzielonej może być dowolna 3. Do czego służą funkcje shmat i shmdt? Funkcja shmat umożliwia uzyskanie adresu pamięci współdzielonej (dołączenie procesu do segmentu pamięci współdzielonej) Funkcja shmdt umożliwia odłączenie procesu od utworzonego wcześniej przez ten 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. W przypadku błędu funkcja zwraca wartość -1, a kod błędu wpisywany jest do zmiennej globalnej errno. 4. W jaki sposób sprawdzić, kiedy i jaki proces ostatnio dołączył się bądź odłączył od segmentu pamięci współdzielonej? poleceniem ipcs -ma LPID ? PID procesu, który ostatnio dołączył się lub odłączył od pamięci współdzielonej ATIME ? czas ostatniego dołączenia się jakiegoś procesu do pamięci współdzielonej 5. W jaki sposób sprawdzić, kto utworzył segment pamięci współdzielonej? poleceniem ipcs -ma CPID ? PID procesu, który utworzył pamięć współdzieloną 6. Jak sprawdzić ile jest aktualnie procesów dołączonych do pamięci współdzielonej? poleceniem ipcs -ma NATTCH ? liczba procesów dołączonych do segmentu pamięci współdzielonej 7. Czy pamięć współdzielona jest usuwana automatycznie, gdy skończy działanie proces, który ją stworzył? nie, ale głowy nie dam 8. Czy wymuszone usunięcie pamięci (funkcją shmctl lub poleceniem ipcrm) powoduje zawsze natychmiastowe usunięcie segmentu pamięci współdzielonej? Jeżeli istnieją procesy dołączone do pamięci współdzielonej, wówczas nie jest ona kasowana natychmiast, ale dopiero w momencie odłączenia się ostatniego procesu. W takiej sytuacji klucz, na podstawie którego została utworzona pamięć współdzielona jest zerowany. Do takiego segmentu pamięci nie może już dołączyć się żaden nowy proces.
... zobacz całą notatkę
Komentarze użytkowników (0)