Привет! Допустим я создаю 100 дочерних процессов из родительского процесса с помощью fork. Как написано в man 2 fork: Under Linux, fork() is implemented using copy-on-write pages, so the only penalty that it incurs is the time and memory required to duplicate the parent's page tables, and to create a unique task structure for the child. Т.о. после создания все процессы (100 дочерних и 1 родительский) разделяют страницы памяти. Теперь допустим, что одну из страниц требуется сбросить на диск (swap out to backing storage). Что при этом происходит? 1) Страница всё ещё разделяется всеми процессами, сбрасывается на диск и помечается как "swapped out"? 2) Страница сбрасывается на диск, помечается как "swapped out", но при возникновении page fault'а в каком-то процессе происходит копирование этой страницы при загрузке из swap'а? 3) Что-то ещё? Плохо знаю эту область. Читал разные доки, но прямого ответа не нашёл. Может более опытные товарищи что подскажут? Спасибо!
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от programmer
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [с++] контейнеры, итераторы и copy-on-write (2010)
- Форум copy-and-swap (2023)
- Форум swap on video ram (2015)
- Форум mount --bind + сopy-on-write (2008)
- Статьи Как кушать вилкой. ... или о fork() в двух словах (2023)
- Форум k3b & Copy CD on the fly (2004)
- Форум Как работает Copy-On-Write система слоев для реализации файловой системы в Docker? (2018)
- Форум swap vs !swap (2008)
- Форум xslt copy (2011)
- Форум copy, flash (2018)