Middle
41
0
questionbank

Что происходит с памятью процесса, когда в Linux происходит его форк?

Answer from sobes.tech neural network

При fork() в Linux создается новый процесс (потомок), который является почти точной копией родительского процесса. С памятью происходит следующее:

  1. Копирование (пока нет): Изначально, вместо полного копирования всего адресного пространства родителя, используется механизм "копирования при записи" (copy-on-write, CoW).
  2. CoW: Страницы памяти родительского процесса помечаются как доступные только для чтения как для родителя, так и для потомка. Оба процесса совместно используют одни и те же физические страницы.
  3. Изменение: Только при попытке одного из процессов (родителя или потомка) записать данные на такую общую страницу, ядро Linux выделяет новую физическую страницу, копирует туда содержимое оригинальной страницы и перенаправляет виртуальный адрес этого процесса на новую физическую страницу. Страница родителя остается неизменн

При fork() в Linux создается новый процесс (потомок), который является почти точной копией родительского процесса. С памятью происходит следующее:

  1. Копирование (пока нет): Изначально, вместо полного копирования всего адресного пространства родителя, используется механизм "копирования при записи" (copy-on-write, CoW).
  2. CoW: Страницы памяти родительского процесса помечаются как доступные только для чтения как для родителя, так и для потомка. Оба процесса совместно используют одни и те же физические страницы.
  3. Изменение: Только при попытке одного из процессов (родителя или потомка) записать данные на такую общую страницу, ядро Linux выделяет новую физическую страницу, копирует туда содержимое оригинальной страницы и перенаправляет виртуальный адрес этого процесса на новую физическую страницу. Страница родителя остается неизменн

Register or sign in to get access to full answers for all questions from the question bank.

linuxmemory-managementprocess-forkingcopy-on-writevirtual-memoryoperating-system