Способ управления памятью вычислительной системы, блок управления памятью и вычислительная система
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в переводе памяти, блокируемой пользовательским процессом, в автономный режим. Способ управления памятью вычислительной системы, в котором принимают запрос на выделение, отправляемый пользовательским процессом, причем запрос на выделение используется для запроса выделения памяти вычислительной системы для пользовательского процесса; выделяют память для пользовательского процесса в соответствии с запросом на выделение; устанавливают маркер автономного режима для памяти, причем маркер автономного режима указывает автономный режим памяти; принимают запрос на блокировку, отправляемый пользовательским процессом, причем запрос на блокировку используется для запроса блокировки памяти; блокируют память в соответствии с запросом на блокировку и маркером автономного режима памяти; и переводят память в автономный режим в соответствии с автономным режимом, указанным в маркере автономного режима памяти, когда требуется перевести память в автономный режим. 4 н. и 21 з.п. ф-лы, 14 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к области вычислительной техники, и в частности к способу управления памятью вычислительной системы, блоку управления памятью и вычислительной системе в области вычислительной техники.
УРОВЕНЬ ТЕХНИКИ
Для достижения определенной эксплуатационной гибкости требуется сервер средней или высокой производительности, при этом важной частью эксплуатационной гибкости является функция «горячей» замены устройства. То есть сервер может осуществлять динамическое подключение или отключение устройства без прерывания работы вычислительной системы для достижения целей наращивания емкости и обнаружения неисправностей, благодаря чему достигается соответствие требованиям надежности, работоспособности или энергосбережения вычислительной системы.
Как правило, устройства с функцией «горячей» замены включают в себя, к примеру, процессор, память или периферийное устройство ввода-вывода (IO), причем память является одной из важнейших частей, входящих в состав устройств с функцией «горячей» замены, поскольку память является одним из важных ресурсов вычислительной системы. «Горячее» подключение памяти относится к запоминающему устройству, которое подключается без прерывания работы вычислительной системы, а «горячее» отключение памяти относится к запоминающему устройству, которое отключается без прерывания работы вычислительной системы. При «горячем» отключении памяти должен выполняться перенос и восстановление занятой памяти в целевой памяти. Однако в вычислительной системе присутствует не переносимая страница, включающая в себя физическую страницу, которая занята ядром, и физическую страницу, которая блокируется пользовательским процессом.
В прикладном процессе, в связи с тем, что физическая страница, которая занята ядром, отмечается вычислительной системой в качестве не переносимой страницы, в процессе обращения ядра к памяти вычислительная система может выделить физическую память из определенной области (области не переносимой памяти) для достижения цели перевода целевой памяти в автономный режим. Когда пользовательский процесс обращается к памяти, память принадлежит общей переносимой памяти, но после того, как пользовательский процесс указывает блокировку памяти, память помечается в качестве не переносимой страницы, что является препятствием при переводе целевой памяти в автономный режим. Возможность перевода памяти, которая блокируется пользовательским процессом, в автономный режим является одним из ключевых факторов в процессе реализации «горячей» замены памяти.
При наличии проблемы, заключающейся в затруднении перевода памяти, которая блокируется пользовательским процессом, в автономный режим, могут неоднократно предприниматься попытки переноса памяти в ожидании того, что память будет разблокирована пользовательским процессом в процессе выполнения повторных попыток. Однако способ переноса посредством выполнения повторных попыток не может гарантировать того, что память будет переведена в автономный режим в связи с тем, что разблокировка памяти, которая блокируется пользовательским процессом, вовсе не будет затронута попытками переноса памяти, при этом между ними не будет существовать необходимая взаимосвязь. Исходя из вышесказанного, в процессе выполнения попыток перевода памяти в автономный режим память, которая блокируется пользовательским процессом, может постоянно находиться в заблокированном состоянии.
Исходя из вышесказанного, существует потребность в надлежащем решении для управления памятью вычислительной системы для перевода памяти, которая блокируется пользовательским процессом, в автономный режим, благодаря чему реализуется «горячая» замена памяти.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения обеспечивают способ управления памятью вычислительной системы, блок управления памятью и вычислительную систему для перевода памяти, которая блокируется пользовательским процессом, в автономный режим, благодаря чему реализуется «горячая» замена памяти.
В одном аспекте вариант осуществления настоящего изобретения обеспечивает способ управления памятью вычислительной системы, включающий в себя этапы: приема запроса на выделение, отправляемого пользовательским процессом, причем запрос на выделение используется для запроса выделения памяти вычислительной системы для пользовательского процесса; выделения памяти для пользовательского процесса в соответствии с запросом на выделение и установки маркера автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти; приема запроса на блокировку, отправляемого пользовательским процессом, причем запрос на блокировку используется для запроса блокировки памяти; блокировки памяти в соответствии с запросом на блокировку и маркером автономного режима памяти; и перевода памяти в автономный режим в соответствии с маркером автономного режима памяти.
В другом аспекте вариант осуществления настоящего изобретения обеспечивает блок управления памятью, включающий в себя: первый приемный модуль, выполненный с возможностью приема запроса на выделение, отправляемого пользовательским процессом, причем запрос на выделение используется для запроса выделения памяти вычислительной системы для пользовательского процесса; модуль выделения, выполненный с возможностью выделения памяти для пользовательского процесса в соответствии с запросом на выделение, который принимается первым приемным модулем, и установки маркера автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти; второй приемный модуль, выполненный с возможностью приема запроса на блокировку, отправляемого пользовательским процессом, причем запрос на блокировку используется для запроса блокировки памяти вычислительной системы; модуль блокировки, выполненный с возможностью блокировки памяти в соответствии с запросом на блокировку, принимаемым вторым приемным модулем, и маркером автономного режима памяти; и модуль перевода в автономный режим, выполненный с возможностью перевода памяти, которая блокируется модулем блокировки, в автономный режим в соответствии с маркером автономного режима памяти.
Еще в одном аспекте вариант осуществления настоящего изобретения обеспечивает вычислительную систему, включающую в себя по меньшей мере одно запоминающее устройство и блок управления памятью в соответствии с вариантом осуществления настоящего изобретения, который выполнен с возможностью управления по меньшей мере одним запоминающим устройством. Блок управления памятью включает в себя: первый приемный модуль, выполненный с возможностью приема запроса на выделение, отправляемого пользовательским процессом, причем запрос на выделение используется для запроса выделения памяти вычислительной системы для пользовательского процесса; модуль выделения, выполненный с возможностью выделения памяти для пользовательского процесса в соответствии с запросом на выделение, принимаемым первым приемным модулем, и установки маркера автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти; второй приемный модуль, выполненный с возможностью приема запроса на блокировку, отправляемого пользовательским процессом, причем запрос на блокировку используется для запроса блокировки памяти вычислительной системы; модуль блокировки, выполненный с возможностью блокировки памяти в соответствии с запросом на блокировку, принимаемым вторым приемным модулем, и маркером автономного режима памяти; и модуль перевода в автономный режим, выполненный с возможностью перевода памяти, блокированной модулем блокировки, в автономный режим в соответствии с маркером автономного режима памяти.
На основании вышеупомянутых технических решений, в способе управления памятью вычислительной системы, блоке управления памятью и вычислительной системе в соответствии с вариантами осуществления настоящего изобретения, после приема запроса на выделение, который отправляется пользовательским процессом, и используется для запроса выделения памяти вычислительной системы, ядро, операционная система или блок управления памятью вычислительной системы выделяет память для пользовательского процесса, и устанавливает маркер автономного режима для памяти, для указания автономного режима памяти, и после приема запроса, который направляется пользовательским процессом и используется для запроса блокировки памяти, ядро или операционная система могут блокировать память в соответствии с запросом блокировки пользовательского процесса и маркером автономного режима памяти, и могут переводить память в автономный режим в соответствии маркером автономного режима памяти, когда требуется перевести блокированную память в автономный режим так, что память, блокированная пользовательским процессом, переводится в автономный режим, благодаря чему реализуется «горячая» замена памяти.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более ясной иллюстрации технических решений в соответствии с вариантами осуществления настоящего изобретения далее будут приведены сопровождающие чертежи для описания вариантов осуществления. Сопровождающие чертежи в нижеследующем описании иллюстрируют некоторые варианты осуществлениянастоящего изобретения, при этом специалисты в данной области техники могут без труда вывести из сопровождающих чертежей другие чертежи.
Фиг. 1А схематически изображает блок-схему последовательности операций способа управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения;
Фиг. 1В схематически изображает блок-схему последовательности операций способа управления памятьювычислительной системы в соответствии с другим вариантом осуществления настоящего изобретения;
Фиг.1C схематически изображает блок-схему последовательности операций способа управления памятью вычислительной системы в соответствии с еще одним вариантом осуществления настоящего изобретения;
Фиг.2 схематически изображает блок-схему последовательности операций способа изменения автономного режима памяти в соответствии с вариантом осуществления настоящего изобретения;
Фиг.3 схематически изображает блок-схему последовательности операций способа блокировки памяти в соответствии с вариантом осуществления настоящего изобретения;
Фиг.4 схематически изображает блок-схему последовательности операций способа перевода заблокированной памяти в автономный режим в соответствии с вариантом осуществления настоящего изобретения;
Фиг.5 схематически изображает блок-схему последовательности операций способа разблокировки памяти в соответствии с вариантом осуществления настоящего изобретения;
Фиг.6 схематически изображает блок-схему блока управления памятью в соответствии с вариантом осуществления настоящего изобретения;
Фиг.7 схематически изображает блок-схему блока управления памятью в соответствии с другим вариантом осуществления настоящего изобретения;
Фиг.8 схематически изображает блок-схему блока управления памятью в соответствии с еще одним вариантом осуществления настоящего изобретения;
Фиг.9 схематически изображает блок-схему модуля блокировки в соответствии с вариантом осуществления настоящего изобретения;
Фиг.10 схематически изображает блок-схему модуля перевода в автономный режим в соответствии с вариантом осуществления настоящего изобретения;
Фиг.11 схематически изображает блок-схему модуля определения в соответствии с вариантом осуществления настоящего изобретения; и
Фиг.12 схематически изображает блок-схему вычислительной системы в соответствии с вариантом осуществления настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Далее со ссылкой на сопровождающие чертежи в вариантах осуществления настоящего изобретения будут ясно описаны технические решения в соответствии с вариантами осуществления настоящего изобретения. Очевидно, что описываемые варианты осуществления являются лишь некоторыми вариантами осуществления настоящего изобретения среди множества возможных. Все остальные варианты осуществления, выводимые специалистами в данной области техники на основе вариантов осуществления настоящего изобретения, безусловно должны находиться в рамках объема защиты настоящего изобретения.
Следует отметить, что технические решения в соответствии с вариантами осуществления настоящего изобретения могут быть использованы применительно к различным вычислительным системам, включающим в себя персональный компьютер (PC), большую вычислительную систему или различные сверхмощные компьютеры. В вариантах осуществления настоящего изобретения в качестве примера для описания берется вычислительная система, включающая в себя по меньшей мере одно запоминающее устройство, при этом варианты осуществления настоящего изобретения не ограничиваются этим.
Фиг.1A схематически изображает блок-схему последовательности операций способа 100 управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения. Как изображено на Фиг.1А, способ 100 включает в себя следующие этапы:
S110: Прием запроса на выделение, который отправляется пользовательским процессом, причем запрос на выделение используется для запроса выделения памяти вычислительной системы для пользовательского процесса.
S120: Выделение памяти для пользовательского процесса в соответствии с запросом на выделение и установка маркера автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти.
S130: Прием запроса на блокировку, который отправляется пользовательским процессом, причем запрос на блокировку используется для запроса блокировки памяти.
S140: Блокировка памяти в соответствии с запросом на блокировку и маркером автономного режима памяти.
S150: Перевод памяти в автономный режим в соответствии с маркером автономного режима памяти.
После приема запроса на выделение, который отправляется пользовательским процессом и используется для запроса выделения памяти вычислительной системы, ядро, операционная система или блок управления памятью вычислительной системы выделяет память для пользовательского процесса и устанавливает маркер автономного режима для памяти для указания автономного режима памяти; а после приема запроса (на блокировку), который отправляется пользовательским процессом и используется для запроса блокировки памяти, ядро или операционная система может заблокировать память в соответствии с запросом на блокировку пользовательского процесса и маркером автономного режима памяти, а также может перевести память в автономный режим в соответствии с маркером автономного режима памяти, когда требуется перевести заблокированную память в автономный режим.
Исходя из вышесказанного, в способе управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения посредством взаимодействия между ядром и пользовательским процессом, а также посредством установки автономного режима для памяти, ядро может соответствующим образом перевести память в автономный режим в соответствии с автономным режимом памяти для перевода памяти, которая блокируется пользовательским процессом, в автономный режим, благодаря чему реализуется «горячая» замена памяти, а также устраняются потери системных ресурсов.
В варианте осуществления настоящего изобретения автономный режим или автономная политика может включать в себя по меньшей мере один из следующих режимов: режим по умолчанию, режим переноса, режим уведомления и режим принудительной разблокировки. При необходимости автономный режим включает в себя режим по умолчанию, режим переноса, режим уведомления и режим принудительной разблокировки.
В режиме по умолчанию пользовательский процесс может указывать на то, что память переводится в автономный режим посредством режима по умолчанию, и если пользовательский процесс не указывает автономную политику, то такой режим также может быть использован. В режиме переноса, перед блокировкой памяти, она должна быть перенесена в не переносимую область, а затем заблокирована. В режиме уведомления, перед тем как ядро затребует перевод памяти в автономный режим, оно побуждает пользовательский процесс к разблокировке памяти. В режиме принудительной разблокировки ядро может принудительно разблокировать память, когда ядро затребует перевод памяти в автономный режим, а затем переводит память в автономный режим. Следует отметить, что названия и краткое описание четырех автономных режимов, представленных в варианте осуществления настоящего изобретения, приведены попросту для упрощения понимания варианта осуществления настоящего изобретения, при этом вариант осуществления настоящего изобретения не ограничивается ими. Кроме того, конкретный смысл этих четырех автономных режимов должен быть воспринят с учетом конкретных операций, которые описаны в варианте осуществления настоящего изобретения.
В варианте осуществления настоящего изобретения пользовательский процесс может изменить автономный режим задействованной памяти в соответствии с требованием, то есть пользовательский процесс может установить автономный режим памяти. Исходя из вышесказанного, как изображено на Фиг.1B, способ 100 управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения, может дополнительно включать в себя следующие этапы:
S160: Прием запроса на изменение, который включает в себя информацию о режиме и отправляется пользовательским процессом, причем информация о режиме указывает автономный режим, который устанавливается пользовательским процессом для памяти.
S170: Изменение в соответствии с информацией о режиме маркера автономного режима памяти для указания автономного режима, установленного пользовательским процессом.
То есть после обращения пользовательского процесса к памяти, пользовательский процесс может установить автономный режим для задействованной памяти в соответствии с требованием и отправляет запрос на изменение, включающий в себя информацию о режиме, в ядро для того, чтобы ядро в соответствии с информацией о режиме изменило маркер автономного режима памяти для указания автономного режима, установленного пользовательским процессом.
В варианте осуществления настоящего изобретения, после того, как ядро приняло запрос на блокировку, который отправляется пользовательским процессом, ядро может определить автономный режим памяти в соответствии с маркером автономного режима памяти, и если автономный режим памяти является режимом по умолчанию, то ядро может повторно установить желаемый автономный режим памяти. То есть, как изображено на Фиг.1B, способ 100 в соответствии с вариантом осуществления настоящего изобретения может дополнительно включать в себя следующие этапы:
S180: Если автономный режим памяти является режимом по умолчанию, то автономный режим памяти определяется повторно в соответствии с требованием вычислительной системы, а также изменяется маркер автономного режима памяти для указания повторно определенного автономного режима.
При необходимости, если вычислительная система требует выполнения работы системы, то ядро определяет автономный режим памяти в качестве режима по умолчанию; а если вычислительная система требует выполнения «горячей» замены, то ядро определяет автономный режим памяти в качестве режима переноса.
Следует отметить, что способ в соответствии с вариантом осуществления настоящего изобретения может быть выполнен ядром, операционной системой или блоком управления памятью. Для упрощения дальнейшего описания ядро будет использовано в качестве исполнительного объекта, при этом вариант осуществления настоящего изобретения не ограничивается этим.
В частности, на этапе S110, пользовательский процесс в соответствии с требованием пользовательского процесса, может отправить запрос на выделение ядру для запроса выделения памяти.
На этапе S120 ядро в соответствии с запросом на выделение, выделяет память для пользовательского процесса, а также устанавливает маркер автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти. При необходимости ядро устанавливает маркер автономного режима, который указывает режим по умолчанию, для выделенной памяти. К примеру, ядро может добавить маркер PG_flag автономного режима для памяти, а также присвоить маркеру автономного режима значение «DEFAULT» («ПО УМОЛЧАНИЮ»), то есть PG_flag = DEFAULT. Разумеется, ядро также может установить и другие автономные режимы для памяти, при этом вариант осуществления настоящего изобретения не ограничивается вышеупомянутым.
При необходимости пользовательский процесс может установить или составить автономный режим или автономную политику для задействованной памяти при помощи интерфейса, который обеспечивается ядром. В частности, на этапе S160 пользовательский процесс в соответствии с требованием пользовательского процесса, может отправить запрос на изменение ядру для изменения автономного режима памяти, причем запрос на изменение включает в себя информацию о режиме для указания автономного режима, который устанавливается пользовательским процессом для памяти. К примеру, запрос на изменение может включать в себя параметр «BEHAVIOR» («РЕЖИМ»), причем параметру «BEHAVIOR» («РЕЖИМ») можно присвоить значение, такое как «DEFAULT» («ПО УМОЛЧАНИЮ»), «MIGRATE» («ПЕРЕНОС»), «NOTIFY» («УВЕДОМЛЕНИЕ») и «UNLOCK» («РАЗБЛОКИРОВКА»), которые соответствующим образом указывают на то, что пользовательский процесс устанавливает автономный режим памяти в качестве режима по умолчанию, режима переноса, режима уведомления и режима принудительной разблокировки.
На этапе S170 ядро в соответствии с информацией о режиме, изменяет автономный режим памяти. В частности, ядро в соответствии с параметром «BEHAVIOR» («РЕЖИМ»), который обеспечивается в запросе на изменение, может изменить маркер автономного режима памяти для указания автономного режима, который устанавливается пользовательским процессом.
В частности, к примеру, для памяти А, автономный режим которой должен быть изменен, ядро может проанализировать параметр «BEHAVIOR» («РЕЖИМ»), который включается в запрос на изменение. Если параметр «BEHAVIOR» («РЕЖИМ») имеет значение «DEFAULT» («ПО УМОЛЧАНИЮ»), то ядро может определить, что пользовательский процесс устанавливает автономный режим памяти А в качестве режима по умолчанию. При этом ядро может изменить маркер PG_flag автономного режима памяти A, то есть присвоить маркеру автономного режима значение «DEFAULT» («ПО УМОЛЧАНИЮ»), то есть PG_flag = «DEFAULT» («ПО УМОЛЧАНИЮ»). Если параметр «BEHAVIOR» («РЕЖИМ») имеет значение «MIGRATE» («ПЕРЕНОС»), то ядро может определить, что пользовательский процесс устанавливает автономный режим памяти А в качестве режима переноса, при этом ядро может присвоить маркеру автономного режима памяти A значение «MIGRATE» («ПЕРЕНОС»), то есть PGflag = «MIGRATE» («ПЕРЕНОС»). Аналогичным образом, если параметр «BEHAVIOR» («РЕЖИМ») имеет значение «NOTIFY» («УВЕДОМЛЕНИЕ»), то ядро может определить, что пользовательский процесс устанавливает автономный режим памяти А в качестве режима уведомления, при этом ядро может присвоить маркеру автономного режима памяти A значение «NOTIFY» («УВЕДОМЛЕНИЕ»), то есть PG_flag = «NOTIFY» («УВЕДОМЛЕНИЕ»). Если параметр «BEHAVIOR» («РЕЖИМ») имеет значение «UNLOCK» («РАЗБЛОКИРОВКА»), то ядро может определить, что пользовательский процесс устанавливает автономный режим памяти А в качестве режима принудительной разблокировки, при этом ядро могут присвоить маркеру автономного режима памяти A значение «UNLOCK» («РАЗБЛОКИРОВКА»), то есть PG_flag = «UNLOCK» («РАЗБЛОКИРОВКА»).
На этапе S130 в соответствии с требованием пользовательского процесса, пользовательский процесс может запросить ядро о блокировке памяти вычислительной системы.
На этапе S140, после того, как ядро приняло запрос на блокировку, который отправляется пользовательским процессом, ядро должно определить автономный режим памяти, в отношении которой запрашивается блокировка, и блокирует память в соответствии с конкретным автономным режимом и запросом на блокировку.
В частности, ядро может определить автономный режим памяти посредством анализа маркера автономного режима памяти. К примеру, если ядро определяет, что маркер автономного режима памяти является PG_flag = «DEFAULT» («ПО УМОЛЧАНИЮ»), то автономный режим памяти является режимом по умолчанию. Аналогичным образом, если ядро определяет, что маркер автономного режима памяти является PG_flag = «MIGRATE» («ПЕРЕНОС»), «NOTIFY» («УВЕДОМЛЕНИЕ») или «UNLOCK» («РАЗБЛОКИРОВКА»), то ядро может определить, что автономный режим памяти является режимом переноса, режимом уведомления или режимом принудительной разблокировки.
При необходимости, если маркер автономного режима памяти указывает режим по умолчанию, режим уведомления или режим принудительной разблокировки, то память блокируется. Если маркер автономного режима памяти указывает режим переноса, то память переносится, при этом если память переносится успешно, то перенесенная память блокируется и для перенесенной памяти устанавливается маркер автономного режима, указывающий режим переноса. Если память переносится неудачно, то память блокируется, а маркер автономного режима памяти изменяется для указания режима по умолчанию.
При необходимости, если ядро определяет, что автономный режим памяти является режимом по умолчанию, то ядро может повторно определить более подходящий автономный режим для памяти. То есть на этапе S180 ядро повторно определяет автономный режим памяти в соответствии с требованием вычислительной системы, и изменяет маркер автономного режима памяти для указания повторно определенного автономного режима.
На этапе S150, если ядро должно перевести память, которая блокируется пользовательским процессом, в автономный режим, то ядро может определить автономный режим памяти посредством анализа маркера автономного режима памяти, и переводит память в автономный режим в соответствии с автономным режимом.
При необходимости, если маркер автономного режима памяти указывает режим по умолчанию или режим переноса, то память ожидает разблокировки и переносится после разблокировки памяти. Если маркер автономного режима памяти указывает режим уведомления, то инициируется пользовательский процесс для разблокировки памяти, память переносится после разблокировки памяти, а пользовательский процесс инициируется для блокировки перенесенной памяти после переноса памяти. Если маркер автономного режима памяти указывает режим принудительной разблокировки, то осуществляется разблокировка памяти и память переноса после разблокировки памяти, перенесенная память блокируется, и для перенесенной памяти устанавливается маркер автономного режима, указывающий режим принудительной разблокировки.
Исходя из вышесказанного, в способе управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения, посредством взаимодействия между ядром и пользовательским процессом, а также посредством установки автономного режима для памяти, ядро может соответствующим образом перевести память в автономный режим в соответствии с автономным режимом памяти для перевода памяти, которая блокируется пользовательским процессом, в автономный режим, благодаря чему реализуется «горячая» замена памяти, а также устраняются потери системных ресурсов.
В варианте осуществления настоящего изобретения, при необходимости, если пользовательский процесс запрашивает разблокировку заблокированной памяти, как изображено на Фиг.1С, то способ 100 в соответствии с вариантом осуществления настоящего изобретения дополнительно включает в себя следующие этапы:
S190: Прием запроса на разблокировку, который отправляется пользовательским процессом, причем запрос на разблокировку используется для запроса разблокировки памяти.
S195: В соответствии с запросом на разблокировку, если маркер автономного режима памяти указывает режим переноса, то осуществляется повторный перенос памяти на узел, на котором выполняется пользовательский процесс.
То есть в процессе, в котором пользовательский процесс активно запрашивает разблокировку заблокированной памяти, если маркер автономного режима памяти указывает на то, что автономный режим памяти является режимом переноса, то перед разблокировкой заблокированной памяти ядро может запросить локальную память для повторного переноса заблокированной памяти на узел, на котором выполняется пользовательский процесс. В случае, когда заблокированная память имеет автономный режим, являющийся режимом по умолчанию, режимом уведомления или режимом принудительной разблокировки, ядро может напрямую разблокировать заблокированную память в соответствии с приложением пользовательского процесса. К примеру, в данном случае, когда заблокированная память имеет маркер автономного режима «MIGRATE» («ПЕРЕНОС»), перед разблокировкой память повторно переносится на узел, на котором выполняется пользовательский процесс, что может дополнительно повысить рабочие характеристики системы.
Следует отметить, что последовательные номера вышеупомянутых этапов не подразумевают последовательность выполнения, при этом последовательность выполнения этапов должна быть определена в соответствии с функциями и внутренней логикой, при этом она в любом случае не предназначается для ограничения процесса реализации варианта осуществления настоящего изобретения.
Исходя из вышесказанного, в способе управления памятью вычислительной системы в соответствии с вариантом осуществления настоящего изобретения, посредством взаимодействия между ядром и пользовательским процессом, а также посредством установки автономного режима для памяти, ядро может соответствующим образом перевести память в автономный режим в соответствии с автономным режимом памяти для перевода памяти, которая блокируется пользовательским процессом, в автономный режим, благодаря чему реализуется «горячая» замена памяти, улучшаются рабочие характеристики системы, а также устраняются потери системных ресурсов.
Далее со ссылкой на конкретные варианты осуществления, изображенные на Фиг.2-5, будет подробно описан способ изменения автономного режима памяти, способ блокировки памяти, способ перевода заблокированной памяти в автономный режим и способ разблокировки памяти в соответствии с вариантами осуществления настоящего изобретения.
Как изображено на Фиг.2, способ 200 установки автономного режима памяти в соответствии с вариантом осуществления настоящего изобретения включает в себя следующие этапы:
S201: Пользовательский процесс запрашивает память А в соответствии с требованием пользовательского процесса.
S202: Ядро выделяет память для пользовательского процесса в соответствии с запросом на выделение, который отправляется пользовательским процессом, и устанавливает маркер автономного режима для памяти, причем маркер автономного режима используется для указания автономного режима памяти. При необходимости ядро задает маркер PG_flag автономного режима памяти значение режима по умолчанию «DEFAULT» («ПО УМОЛЧАНИЮ»), то есть PG_flag = DEFAULT («ПО УМОЛЧАНИЮ»).
При необходимости после того, как пользовательский процесс запросил и получил память A, пользовательский процесс может установить автономный режим памяти А при помощи интерфейса, обеспеченного ядром, причем автономный режим включает в себя режим по умолчанию, режим переноса, режим уведомления и режим принудительной разблокировки.
S203: Пользовательский процесс отправляет запрос на изменение к ядру для запроса изменения автономного режима памяти, причем запрос на изменение включает в себя информацию о режиме для указания автономного режима, который устанавливается пользовательским процессом для памяти, при этом информации о режиме является, к примеру, параметром «BEHAVIOR» («РЕЖИМ»).
S204: Ядро определяет автономный режим, который устанавливается пользовательским процессом для памяти А посредством анализа информации о режиме, такой как параметр «BEHAVIOR» («РЕЖИМ»), которая передается пользовательским процессом.
Если автономный режим, который устанавливается пользовательским процессом для памяти A, является режимом по умолчанию, то процесс переходит на этап S205; а если автономный режим, который устанавливается пользовательским процессом для памяти A, не является режимом по умолчанию, то процесс переходит на этап S206, S207 или S208. В частности, если автономный режим, который устанавливается пользовательским процессом для памяти A, является режимом переноса, то процесс переходит на этап S206; если автономный режим, который устанавливается пользовательским процессом для памяти A, является режимом уведомления, то процесс переходит на этап S207; а если автономный режим, который устанавливается пользовательским процессом для памяти A, является режимом принудительной разблокировки, то процесс переходит на этап S208.
S205: Ядро присваивает маркеру автономного режима памяти значение «DEFAULT» («ПО УМОЛЧАНИЮ»), то есть PGflag = «DEFAULT» («ПО УМОЛЧАНИЮ»). При этом автономный режим памяти А, который устанавливается пользовательским процессом, является режимом по умолчанию, и процесс установки автономного режима памяти A завершается.
S206: Ядро присваивает маркеру автономного режима памяти A значение «MIGRATE» («ПЕРЕНОС»), то есть PG_flag = «MIGRATE» («ПЕРЕНОС»). При этом автономный режим памяти А, устанавливаемый пользовательским процессом, является режимом переноса, и процесс установки автономного режима для памяти A завершается.
S207: Ядро присваивает маркеру автономного режима памяти A значение «NOTIFY» («УВЕДОМЛЕНИЕ»), то есть PG_flag = «NOTIFY» («УВЕДОМЛЕНИЕ»). При этом автономный режим памяти А, устанавливаемый пользовательским процессом, является режимом уведомления, и процесс установки автономного режима для памяти A завершается.
S208: Ядро присваивает маркеру автономного режима памяти A значение «UNLOCK» («РАЗБЛОКИРОВКА»), то есть PG_flag = «UNLOCK» («РАЗБЛОКИРОВКА»). При этом автономный режим памяти А, который устанавливается пользовательским процессом, является режимом принудительной разблокировки, и процесс установки автономного режима для памяти A завершается.
Следует отметить, что последовательные номера вышеупомянутых этапов не подразумевают последовательность выполнения, при этом последовательность выполнения этапов должна быть определена в соответствии с функциями и внутренней логикой, при этом она в любом случае не предназначается для ограничения процесса реализации варианта осуществления настоящего изобретения.
Исходя из вышесказанного, посредством взаимодействия между ядром и пользовательским процессом, а также посредством установки автономного режима для памяти, ядро может соответствующим образом заблокировать память и перевести память в автономный режим в соответствии с автономным режимом памяти для перевода памяти, которая блокируется пользовательским процессом, в автономный режим.
Фиг.3 схематически изображает блок-схему последовательности операций способа 300 для блокировки памяти в соответствии с вариантом осуществления настоящего изобретения. Как изображено на Фиг.3, способ 300 включает в себя следующие этапы:
S301: Пользовательский процесс в соответствии с требованием может запросить ядро о блокировке памяти A.
S302: Ядро определяет автономный режим, который устанавливается для памяти А, посредством анализа маркера PG_flag автономного режима памяти A.
Если ядро определяет, автономный режим памяти A является режимом по умолчанию, то есть PG_flag = «DEFAULT» («ПО УМОЛЧАНИЮ»), то процесс переходит на этап S303; а если ядро определяет, автономный режим памяти A