ИЗМЕНЕННОЕ СЖАТИЕ ПАМЯТИ

1. Реализуемый компьютером способ для увеличения объема памяти, доступной для выделения программам в вычислительном устройстве, содержащий этапы, на которых:
идентифицируют первый набор страниц памяти, которые изменены, где первый набор страниц памяти выделяется процессу программы;
сжимают первый набор страниц памяти в сжатое хранилище страничной памяти, где сжатое хранилище состоит из второго набора страниц памяти, и сжатое хранилище ассоциируется только с процессом программы;
разрешают диспетчеру памяти переориентировать первый набор страниц памяти после того, как первый набор страниц памяти сжат в сжатое хранилище; и
записывают второй набор страниц памяти из сжатого хранилища в файл подкачки, расположенный во вспомогательном запоминающем устройстве, которое имеет большее время чтения/записи, но больший объем памяти, нежели страничная память, вместо записи первого набора страниц памяти в файл подкачки.
2. Способ по п. 1, дополнительно содержащий этап, на котором разрешают диспетчеру памяти переориентировать второй набор страниц памяти после того, как второй набор страниц памяти записан в файл подкачки.
3. Способ по п. 1, дополнительно содержащий этапы, на которых, в ответ на определение выгрузить страницы памяти процесса:
идентифицируют список страниц памяти в рабочем наборе процесса;
сжимают идентифицированные страницы памяти;
записывают сжатые идентифицированные страницы памяти в сжатое хранилище последовательно по виртуальному адресу в памяти у идентифицированных страниц памяти;
резервируют пространство для сжатого хранилища в файле подкачки; и
записывают сжатое хранилище в зарезервированное пространство в файле подкачки.
4. Способ по п. 3, дополнительно содержащий этапы, на которых, в ответ на определение загрузить страницы памяти процесса после выгрузки страниц памяти процесса:
извлекают сжатое хранилище из файла подкачки;
сохраняют извлеченное сжатое хранилище в третий набор страниц памяти;
распаковывают сжатые страницы памяти в третий набор страниц памяти; и
возвращают распакованные страницы памяти для включения в рабочий набор процесса.
5. Способ по п. 1, дополнительно содержащий этап, на котором обеспечивают продвижение при возврате первого набора страниц памяти после того, как первый набор страниц памяти сжат, и независимо от того, записан ли второй набор страниц памяти в файл подкачки или переориентирован после записи в файл подкачки.
6. Способ по п. 1, в котором каждая из первого набора страниц памяти имеет по меньшей мере аналогичные уровни приоритета, и каждая из второго набора страниц памяти имеет по меньшей мере аналогичные уровни приоритета.
7. Вычислительное устройство, сконфигурированное для увеличения объема памяти, доступной для выделения программам в вычислительном устройстве, содержащее:
память;
диспетчер памяти, сконфигурированный для управления страницами памяти; и
диспетчер сжатого хранилища, сконфигурированный для увеличения объема памяти, которая доступна диспетчеру памяти для выделения программам вычислительного устройства, путем:
сжатия первого набора страниц памяти, которые изменены процессом, в сжатое хранилище страничной памяти, где сжатое хранилище состоит из второго набора страниц памяти, первый набор страниц памяти выделяется процессу программы, и сжатое хранилище ассоциируется только с тем процессом программы;
разрешения диспетчеру памяти переориентировать страницу памяти для каждой страницы памяти в первом наборе страниц памяти после того, как страница памяти сжата в сжатое хранилище; и
записи второго набора страниц памяти из сжатого хранилища в файл подкачки, расположенный во вспомогательном запоминающем устройстве, которое имеет большее время чтения/записи, но больший объем памяти, нежели страничная память, при отсутствии записи первого набора страниц памяти в файл подкачки.
8. Вычислительное устройство по п. 7, в котором диспетчер сжатого хранилища дополнительно конфигурируется для:
в ответ на определение выгрузить страницы памяти процесса:
идентификации списка страниц памяти в рабочем наборе процесса,
сжатия идентифицированных страниц памяти,
записи сжатых идентифицированных страниц памяти в сжатое хранилище последовательно по виртуальному адресу в памяти у идентифицированных страниц памяти,
резервирования пространства для сжатого хранилища в файле подкачки, и
записи сжатого хранилища непрерывно в зарезервированное пространство в файле подкачки; и
в ответ на определение загрузить страницы памяти процесса после выгрузки страниц памяти процесса:
извлечения сжатого хранилища из файла подкачки,
сохранения извлеченного сжатого хранилища в третий набор страниц памяти,
распаковки сжатых страниц памяти в третий набор страниц памяти, и
возврата распакованных страниц памяти для включения в рабочий набор процесса.