|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 24 Feb 2003 11:24:46 To : Alexandr Goncharov Subject : Re: Swap -------------------------------------------------------------------------------- >>> Alexandr Goncharov wrote: AG> Подозреваю, что логика несколько иная. AG> Представим систему, одновременно (попеременно, на самом деле) исполняющую AG> два процесса. AG> Каждый из них вместе со своими данными хочет (и, допустим, система ему AG> позволяет) забрать все оперативную память. И свопом при работе не AG> пользуется. AG> Hо вот наступает момент, когда система переключается между процессами. AG> Активный на данный момент процесс надо свалить в своп (т.к. свободной AG> памяти-то нет для загрузки нового), а неактивный - поднять из свопа и AG> активизировать. Так уже давно никто не делает. Сваливают отдельные страницы. Точнее, в BSD (по крайней мере) есть случаи, когда уходит приказ выпихнуть целый процесс, но он всё равно выпихивается отдельными страницами и потом страницами же возвращается. Hормальная рабочая ситуация - когда у толстого процесса часть страниц в оперативке, часть в свопе. Ещё очень давно IBM'овцы анализировали работу процессов с VM и нашли, что обычно есть достаточно чёткая граница между страницами, которые постоянно требуются (их совокупность AFAIR была названа working set) и страницами, которые требуются очень редко. Так вот - своп есть место для размещения спящих процессов и того, что не вошло в working set ;) А далее работают соотношения между размером working set и остального комплекта страниц процесса. AG> Видно, что может существовать момент, когда оба процесса лежат в свопе. AG> А каждый из них, по условию, равен размеру доступной оперативной памяти. Условие уж больно специфическое ;) -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/736844fd686c.html, оценка из 5, голосов 10
|