Co się stanie, jeśli proces B zapisuje (z typową syscall zapisu) pewne dane do obrazu procesu A, podczas gdy ten drugi jest wykonywany? Czy nie spowoduje to korupcji tego, co proces A wykonuje?Zapisywanie do wykonania obrazu procesu na Linuksie
Jestem nowy w Linuksie. O ile rozumiem, firma Unix historycznie nie narzuca obowiązkowych blokad plików (tak jak robi to Windows). Więc pisanie jest całkiem możliwe.
Przeszukałem Internet bez rezultatu. Kiedy zadaję to pytanie moim doświadczonym współpracownikom Linuksa, wszyscy oni odpowiadają, że proces A ma swój obraz całkowicie w pamięci.
Niemniej jednak z tego co przeczytałem, jądro może z łatwością zamienić niektóre strony z powrotem na plik obrazu z pamięci, na przykład, gdy warunki niskiej pamięci są zestresowane. Tak więc, podczas gdy na dysku, niektóre strony mogą zostać uszkodzone przez inny proces zapisu; następnie mogą zostać ponownie zamienione na RAM i wykonane.
Odjazd tam: http://stackoverflow.com/questions/4453781/what-happens-when-you-overwrite-a-memory-mapped-executable – Antoine