Просмотр отдельных изменений

Фильтры правок (обсуждение) — это автоматизированный механизм проверок правок участников.
(Список | Последние изменения фильтров | Изучение правок | Журнал срабатываний)
Перейти к навигации Перейти к поиску

Эта страница позволяет вам проверить переменные, сгенерированные фильтром злоупотреблений, на предмет отдельного изменения.

Переменные, созданные для этого изменения

ПеременнаяЗначение
Имя учётной записи (user_name)
'178.212.65.56'
ID страницы (page_id)
133231
Пространство имён страницы (page_namespace)
0
Название страницы (без пространства имён) (page_title)
'Виртуальная память'
Полное название страницы (page_prefixedtitle)
'Виртуальная память'
Действие (action)
'edit'
Описание правки/причина (summary)
'/* История */ '
Была ли правка отмечена как «малое изменение» (больше не используется) (minor_edit)
false
Вики-текст старой страницы до правки (old_wikitext)
'{{Amerge|2010-09-13|Линейная адресация памяти}} '''Виртуа́льная па́мять''' ({{lang-en|Virtual memory}}) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на [[физические адреса]] в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых {{не переведено|надо=адресное пространство (информатка)|текст=адресных пространств|есть=:en:Address space}}, и обеспечить [[защита памяти|защиту памяти]] между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых [[Страничная память|страниц]] на вторичное хранилище (см. [[Подкачка страниц]]). При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ. <!-- '''Виртуа́льная па́мять''' — технология, которая была разработана с целью увеличения <! — ? — -> общего объема [[память (компьютер)|памяти]], организации множества адресных пространств памяти, их [[защита памяти|защиты]] и автоматизации процесса перемещения машинного кода и данных между основной памятью [[компьютер]]а и вторичным хранилищем. --> Применение механизма виртуальной памяти позволяет: * упростить адресацию памяти клиентским программным обеспечением; * рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти); * изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью). В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. В то же время во встраиваемых системах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика ([[системы реального времени]]) виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные [[иерархия памяти|иерархии памяти]]. == История == В [[1940-е]] и 1950-е годы, до развития виртуальной памяти, все большие программы писались с учетом наличия двух уровней памяти — первичного и вторичного<!--; one such management technique is [[:en:overlaying]]-->. Основной причиной введения виртуальной памяти стало не стремление увеличить объем основной памяти, а метод такого увеличения, который бы был максимально прост для программистов. {{planned}} == Страничная организация виртуальной памяти == {{main|Страничная память}} В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера [[Translation lookaside buffer|ассоциативной трансляции]]. Если ему не удалось это сделать, то требуется обращение к [[таблица страниц|таблице страниц]] (так называемый ''Page Walk''), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры)<ref>Patterson&Hennessy «Computer organisation and Design. Hardware Software Interface.» 4th edition. Chap 5.4, page 503</ref>. Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. [[свопинг]]). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память [[ядро операционной системы|ядра]] системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки). == Сегментная организация виртуальной памяти == {{main|Сегментная адресация памяти}} Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.<ref>В семействе операционных систем [[Microsoft Windows]] сегментная адресация не используется и заменена делением памяти на секции, что в сущности ''почти'' одно и то же.</ref> <!-- Благодаря этому устраняется один из крупных недостатков страничного механизма — '''внутренняя фрагментация''' памяти (то есть наличие большого количества неиспользованных участков памяти ''внутри'' страниц). Однако, сегментный механизм приводит к '''внешней фрагментации''' памяти (то есть наличию большого количества мелких неиспользованных участков памяти ''между'' сегментами). --> Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту. Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s. Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса. == См. также == * [[Кеш-память]] * [[Менеджер виртуальной памяти]] * [[Блок управления памятью]] (Memory Management Unit) * [[Утечка памяти]] == Примечания == {{примечания}} == Литература == * ''Вахалия Ю.'' UNIX изнутри. — СПб.: Питер, 2003. С.844. ISBN 5-94723-013-5 * ''Иртегов Д.'' Введение в операционные системы. СПб.: Питер, 2002. * ''Bruce Jacob, Trevor Mudge.'' Virtual Memory: Issues of Implementation. — Los Alamitos, CA, USA: IEEE Computer Society Press, 1998. ISSN:0018-9162 {{compu-stub}} == Ссылки == * [http://portal.acm.org/citation.cfm?id=621004 Virtual Memory: Issues of Implementation] {{ref-en}} * [http://www.acc.umu.se/~bosse/ Драйвер виртуальной памяти, использующий Linux swap раздел] {{ref-en}} * [http://pcfresh.ru/uvelichenie-razmera-fajla-podkachki.html Увеличение файла подкачки в Microsoft Windows XP/Vista/7] * [http://www.winblog.ru/2007/09/04/04090701.html FAQ по файлу подкачки на WinBlog.ru] [[Категория:Виртуальная память| ]] [[Категория:Защита памяти]] [[ar:ذاكرة افتراضية]] [[be-x-old:Віртуальная памяць]] [[ca:Memòria virtual]] [[cs:Virtuální paměť]] [[da:Virtuel hukommelse]] [[de:Virtuelle Speicherverwaltung]] [[el:Εικονική μνήμη]] [[en:Virtual memory]] [[eo:Virtuala memoro]] [[es:Memoria virtual]] [[eu:Alegiazko memoria]] [[fa:حافظه مجازی]] [[fi:Näennäismuisti]] [[fr:Mémoire virtuelle]] [[gl:Memoria virtual]] [[he:זיכרון וירטואלי]] [[hi:वर्चुअल मेमोरी (आभासी स्मृति)]] [[hu:Virtuális memória]] [[hy:Վիրտուալ հիշողություն]] [[id:Memori virtual]] [[it:Memoria virtuale]] [[ja:仮想記憶]] [[ko:가상 메모리]] [[ky:Виртуалдык эс же виртуалдык эсти башкаруу]] [[lt:Virtualioji atmintis]] [[ms:Ingatan maya]] [[nl:Virtueel geheugen]] [[no:Virtuell hukommelse]] [[pl:Pamięć wirtualna]] [[pt:Memória virtual]] [[simple:Virtual memory]] [[sk:Virtuálna pamäť]] [[sl:Navidezni pomnilnik]] [[sv:Virtuellt minne]] [[tr:Sanal bellek]] [[uk:Віртуальна пам'ять]] [[vi:Bộ nhớ ảo]] [[zh:虚拟内存]]'
Вики-текст новой страницы после правки (new_wikitext)
'{{Amerge|2010-09-13|Линейная адресация памяти}} '''Виртуа́льная па́мять''' ({{lang-en|Virtual memory}}) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на [[физические адреса]] в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых {{не переведено|надо=адресное пространство (информатка)|текст=адресных пространств|есть=:en:Address space}}, и обеспечить [[защита памяти|защиту памяти]] между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых [[Страничная память|страниц]] на вторичное хранилище (см. [[Подкачка страниц]]). При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ. <!-- '''Виртуа́льная па́мять''' — технология, которая была разработана с целью увеличения <! — ? — -> общего объема [[память (компьютер)|памяти]], организации множества адресных пространств памяти, их [[защита памяти|защиты]] и автоматизации процесса перемещения машинного кода и данных между основной памятью [[компьютер]]а и вторичным хранилищем. --> Применение механизма виртуальной памяти позволяет: * упростить адресацию памяти клиентским программным обеспечением; * рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти); * изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью). В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. В то же время во встраиваемых системах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика ([[системы реального времени]]) виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные [[иерархия памяти|иерархии памяти]]. == История == В [[1940-е]] и 1950-е годы, до развития виртуальной памяти, все большие программы писались с учетом наличия двух уровней памяти — первичного и вторичного<!--; one such management technique is [[:en:overlaying]]-->. Основной причиной введения виртуальной памяти стало не стремление увеличить объем основной памяти, а метод такого увеличения, который бы был максимально прост для программистов. {{planned}} она == Страничная организация виртуальной памяти == {{main|Страничная память}} В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера [[Translation lookaside buffer|ассоциативной трансляции]]. Если ему не удалось это сделать, то требуется обращение к [[таблица страниц|таблице страниц]] (так называемый ''Page Walk''), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры)<ref>Patterson&Hennessy «Computer organisation and Design. Hardware Software Interface.» 4th edition. Chap 5.4, page 503</ref>. Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. [[свопинг]]). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память [[ядро операционной системы|ядра]] системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки). == Сегментная организация виртуальной памяти == {{main|Сегментная адресация памяти}} Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.<ref>В семействе операционных систем [[Microsoft Windows]] сегментная адресация не используется и заменена делением памяти на секции, что в сущности ''почти'' одно и то же.</ref> <!-- Благодаря этому устраняется один из крупных недостатков страничного механизма — '''внутренняя фрагментация''' памяти (то есть наличие большого количества неиспользованных участков памяти ''внутри'' страниц). Однако, сегментный механизм приводит к '''внешней фрагментации''' памяти (то есть наличию большого количества мелких неиспользованных участков памяти ''между'' сегментами). --> Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту. Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s. Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса. == См. также == * [[Кеш-память]] * [[Менеджер виртуальной памяти]] * [[Блок управления памятью]] (Memory Management Unit) * [[Утечка памяти]] == Примечания == {{примечания}} == Литература == * ''Вахалия Ю.'' UNIX изнутри. — СПб.: Питер, 2003. С.844. ISBN 5-94723-013-5 * ''Иртегов Д.'' Введение в операционные системы. СПб.: Питер, 2002. * ''Bruce Jacob, Trevor Mudge.'' Virtual Memory: Issues of Implementation. — Los Alamitos, CA, USA: IEEE Computer Society Press, 1998. ISSN:0018-9162 {{compu-stub}} == Ссылки == * [http://portal.acm.org/citation.cfm?id=621004 Virtual Memory: Issues of Implementation] {{ref-en}} * [http://www.acc.umu.se/~bosse/ Драйвер виртуальной памяти, использующий Linux swap раздел] {{ref-en}} * [http://pcfresh.ru/uvelichenie-razmera-fajla-podkachki.html Увеличение файла подкачки в Microsoft Windows XP/Vista/7] * [http://www.winblog.ru/2007/09/04/04090701.html FAQ по файлу подкачки на WinBlog.ru] [[Категория:Виртуальная память| ]] [[Категория:Защита памяти]] [[ar:ذاكرة افتراضية]] [[be-x-old:Віртуальная памяць]] [[ca:Memòria virtual]] [[cs:Virtuální paměť]] [[da:Virtuel hukommelse]] [[de:Virtuelle Speicherverwaltung]] [[el:Εικονική μνήμη]] [[en:Virtual memory]] [[eo:Virtuala memoro]] [[es:Memoria virtual]] [[eu:Alegiazko memoria]] [[fa:حافظه مجازی]] [[fi:Näennäismuisti]] [[fr:Mémoire virtuelle]] [[gl:Memoria virtual]] [[he:זיכרון וירטואלי]] [[hi:वर्चुअल मेमोरी (आभासी स्मृति)]] [[hu:Virtuális memória]] [[hy:Վիրտուալ հիշողություն]] [[id:Memori virtual]] [[it:Memoria virtuale]] [[ja:仮想記憶]] [[ko:가상 메모리]] [[ky:Виртуалдык эс же виртуалдык эсти башкаруу]] [[lt:Virtualioji atmintis]] [[ms:Ingatan maya]] [[nl:Virtueel geheugen]] [[no:Virtuell hukommelse]] [[pl:Pamięć wirtualna]] [[pt:Memória virtual]] [[simple:Virtual memory]] [[sk:Virtuálna pamäť]] [[sl:Navidezni pomnilnik]] [[sv:Virtuellt minne]] [[tr:Sanal bellek]] [[uk:Віртуальна пам'ять]] [[vi:Bộ nhớ ảo]] [[zh:虚拟内存]]'
Была ли правка сделана через выходной узел сети Tor (tor_exit_node)
0
Unix-время изменения (timestamp)
1331764479