ВУЗ:
Составители:
Рубрика:
Во-первых, каждый процесс получает отдельное виртуальное адресное
пространство (virtual address space). Это значит, что процессу доступен
определенный диапазон ячеек памяти. Максимальный размер этого диапазона
памяти определяется длиной слова адреса в компьютере. Процесс, запущенный
в 32-разрядной системе, будет иметь виртуальное адресное пространство
размером 4 гигабайта (длина адреса - 32 бита). Подсистема виртуальной памяти
соотносит (отображает) пользовательский кусочек виртуального адресного
пространства и реальные страницы физической памяти.
Во-вторых, адресные пространства нескольких процессов могут
перекрываться незаметно для процессов, если они используют общий код.
Например, одновременно могут быть запущены три экземпляра одного и того
же командного процессора (пусть это будет bash). Они имеют отдельные
виртуальные адресные пространства. В каждом виртуальном пространстве
находится экземпляр процесса командного интерпретатора, копия библиотеки
libc и (возможно) копии других разделяемых процессами ресурсов. Подсистема
виртуальной памяти незаметно для процессов отображает эти разделяемые
куски памяти в одну и ту же область физической памяти так, что в физической
памяти содержится всего один экземпляр разделяемого ресурса. Похоже на
создание жестких ссылок на файл, верно?
В-третьих, подсистема виртуальной памяти выгружает наименее
используемые страницы памяти на диск, когда физической памяти не хватает
для всех процессов.
В-четвертых, подсистема виртуальной памяти запрещает процессу
обращаться к ячейкам памяти из чужого адресного пространства, причем это
делается на аппаратном уровне - посредством механизма диспетчеризации.
Для оценки памяти, занимаемой каждым из процессов, можно
использовать как уже известные команды top и ps, так и команду pmap
(последняя дает более подробное распределение памяти процесса по типам -
разделяемая память и т.п.): pmap -х
Во-первых, каждый процесс получает отдельное виртуальное адресное пространство (virtual address space). Это значит, что процессу доступен определенный диапазон ячеек памяти. Максимальный размер этого диапазона памяти определяется длиной слова адреса в компьютере. Процесс, запущенный в 32-разрядной системе, будет иметь виртуальное адресное пространство размером 4 гигабайта (длина адреса - 32 бита). Подсистема виртуальной памяти соотносит (отображает) пользовательский кусочек виртуального адресного пространства и реальные страницы физической памяти. Во-вторых, адресные пространства нескольких процессов могут перекрываться незаметно для процессов, если они используют общий код. Например, одновременно могут быть запущены три экземпляра одного и того же командного процессора (пусть это будет bash). Они имеют отдельные виртуальные адресные пространства. В каждом виртуальном пространстве находится экземпляр процесса командного интерпретатора, копия библиотеки libc и (возможно) копии других разделяемых процессами ресурсов. Подсистема виртуальной памяти незаметно для процессов отображает эти разделяемые куски памяти в одну и ту же область физической памяти так, что в физической памяти содержится всего один экземпляр разделяемого ресурса. Похоже на создание жестких ссылок на файл, верно? В-третьих, подсистема виртуальной памяти выгружает наименее используемые страницы памяти на диск, когда физической памяти не хватает для всех процессов. В-четвертых, подсистема виртуальной памяти запрещает процессу обращаться к ячейкам памяти из чужого адресного пространства, причем это делается на аппаратном уровне - посредством механизма диспетчеризации. Для оценки памяти, занимаемой каждым из процессов, можно использовать как уже известные команды top и ps, так и команду pmap (последняя дает более подробное распределение памяти процесса по типам - разделяемая память и т.п.): pmap -х
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »