×
14.07.2019
219.017.b456

СИСТЕМА И СПОСОБ ПРЕДВАРИТЕЛЬНОГО РАЗМЕЩЕНИЯ ПАМЯТИ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002415467
Дата охранного документа
27.03.2011
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к области конструирования компьютерных систем и, в частности, описывает способ предварительного размещения памяти в компьютерной системе. Техническим результатом является обеспечение размещения памяти в зависимости от применения к родительскому или дочернему процессу. Способ заключается в том, что на стадии создания родительского процесса получают от пользователя данные о размере памяти для предварительного размещения, проверяют размер памяти для предварительного размещения, размещают память, если ее размер >0, на стадии завершения родительского процесса проверяют размер предварительно размещенной памяти, освобождают предварительно размещенную память, если ее размер >0, на стадии создания дочернего процесса получают данные о размере памяти дочернего процесса, проверяют, был ли предварительно размещен необходимый размер памяти, если да, то выделяют дочернему процессу указатель на принадлежащую ему часть предварительно размещенной памяти, если нет, то размещение памяти выполняют способом, обычным для данной операционной системы, на стадии завершения дочернего процесса проверяют, использует ли дочерний процесс предварительно размещенную память. 2 н.п. ф-лы, 5 ил.
Реферат Свернуть Развернуть

Изобретение относится к области конструирования компьютерных систем, а именно к системам и способам предварительного размещения памяти в компьютерной системе, и может применяться во всех многоядерных и многопроцессорных компьютерных системах с встроенными платформами и многозадачными операционными системами, которые поддерживают как основные, так называемые, «родительские» или «полновесные», системы, так и производные, так называемые «дочерние» или «легковесные», процессы (например, POSIX threads в Linux), созданные под родительскими процессами.

Для создания родительского процесса операционной системе (ОС) приходится заниматься размещением критически необходимых блоков памяти, таких как «текст», «данные», «bss», «куча» (английский термин - heap) и «стек». Пример такого размещения приведен на Фиг.1. Размещение памяти обычно занимает много времени.

На создание дочерних процессов система затрачивает значительно меньше времени по сравнению с затратами на создание родительских процессов. Для создания дочернего процесса необходимо разместить только такие блоки памяти как «стек» и «TLS» (thread local storage). Другие блоки памяти, которые использует дочерний процесс (текст, данные, bss, «куча»), уже размещены его родительским процессом (см. Фиг.1).

Таким образом, использование дочерних процессов имеет явные преимущества с точки зрения временных затрат системы на их создание.

Известен принцип построения диспетчера памяти для встроенной системы, описанный в патентной заявке США №2006/0069898 [1]. Такой диспетчер работает в памяти, организованной в виде предопределенного числа фиксированных блоков памяти, при этом каждый блок имеет предопределенный размер. Данные фиксированные блоки инициализированы для ускорения процесса резервирования памяти. Когда диспетчер памяти получает запрос на предварительное размещение памяти, запрашиваемый размер памяти сравнивают с предопределенным размером. Если диспетчер памяти определяет, что фиксированный блок памяти соответствует запрашиваемому размеру памяти, то диспетчер памяти резервирует один из фиксированных блоков для поданного запроса памяти. Если не существует доступных фиксированных блоков, удовлетворяющих параметрам запроса, то диспетчер памяти может зарезервировать память из общего пула памяти. Кроме того, данный диспетчер памяти может искать доступные свободные блоки памяти для идентификации и размещения оптимального свободного блока, который соответствует поданному запросу на размещение.

Недостатком данного диспетчера памяти является то, что он не обеспечивает предварительного размещения памяти в родительском процессе для ускорения создания дочерних процессов.

Наиболее близким к заявленному изобретению является способ резервирования памяти в многотрэдовой (параллельной) компьютерной среде, который описан в патенте СШ №6058460 [2], и в котором предусматривается, что в трэды (т.е. потоки), выполняемые параллельно в одном процессе, объединены в один или несколько пулов памяти в памяти системы. В ходе выполнения способа определяют пулы памяти в памяти системы, назначают каждому трэду один из пулов памяти; и для каждого трэда динамически резервируют блоки памяти из назначенного пула памяти. Способ позволяет преобразовать любой существующий пакет управления размещением памяти для многотрэдовой версии. Данный способ выбран в качестве прототипа заявляемого изобретения.

Недостатком прототипа является то, что в нем не выполняют предварительное размещение памяти в родительском процессе для ускорения создания дочерних процессов.

Задача, на решение которой направлено заявляемое изобретение, заключается в создании системы и способа предварительного размещения памяти с увеличенным быстродействием. При этом задача должна решаться за счет уменьшения временных затрат на размещение памяти при создании дочерних процессов путем объединения всех необходимых блоков памяти дочерних процессов (стеков, TLS и других требуемых структур памяти) в единый блок и размещение этого блока при создании родительского процесса, причем данный блок также может включать стек или другие блоки памяти родительского процесса (см. Фиг.2). Таким образом, в системе должна исчезнуть необходимость в осуществлении длительных системных вызовов для размещения памяти при создании каждого дочернего процесса. Вместо этого, предполагается, что вновь создаваемые дочерние процессы будут использовать части предварительно размещенного единого блока памяти.

Поставленная задача решена путем создания системы предварительного размещения памяти в компьютерной системе, содержащей модуль памяти и программную платформу с операционной системой, выполненную с возможностью поддержки родительских и дочерних процессов, которая содержит взаимодействующие с модулем памяти диспетчер родительских процессов, диспетчер дочерних процессов и диспетчер предварительного размещения памяти, который содержит блок создания родительских процессов, блок завершения родительских процессов, блок создания дочерних процессов и блок завершения дочерних процессов, при этом диспетчер родительских процессов выполнен с возможностью передачи в блок создания родительских процессов данных о размере памяти для предварительного размещения на стадии создания родительского процесса, и с возможностью оповещения блока завершения родительских процессов о завершении родительского процесса, диспетчер дочерних процессов выполнен с возможностью передачи в блок создания дочерних процессов данных о размере памяти для дочернего процесса, а также с возможностью оповещения блока завершения дочерних процессов о завершении дочернего процесса, блок создания родительских процессов выполнен с возможностью получения данных о размере памяти для предварительного размещения на стадии создания родительского процесса, с возможностью проверки размера памяти для предварительного размещения и с возможностью размещения памяти, если ее размер больше нуля, блок завершения родительских процессов выполнен с возможностью проверки размера предварительно размещенной памяти и с возможностью освобождения предварительно размещенной памяти, если ее размер больше нуля, блок создания дочерних процессов выполнен с возможностью получения данных о размере памяти для дочерних процессов, с возможностью выделения дочернему процессу указателя на принадлежащую ему часть предварительно размещенной памяти, в случае, если был предварительно размещен необходимый размер памяти для дочернего процесса, блок завершения дочерних процессов выполнен с возможностью не освобождать свою часть предварительно размещенной памяти для повторного использования дочерними процессами, в случае, если дочерний процесс использует предварительно размещенную память.

Поставленная задача также решена путем создания способа предварительного размещения памяти в компьютерной системе, заключающийся в том, что

на стадии создания родительского процесса:

- получают от пользователя данные о размере памяти для предварительного размещения;

- проверяют размер памяти для предварительного размещения;

- размещает память, если ее размер >0;

на стадии завершения родительского процесса:

- проверяют размер предварительно размещенной памяти;

- освобождают предварительно размещенную память, если ее размер >0;

на стадии создания дочернего процесса:

- получают данные о размере памяти дочернего процесса;

- проверяют, был ли предварительно размещен необходимый размер памяти;

- если да, то выделяют дочернему процессу указатель на принадлежащую ему часть предварительно размещенной памяти;

- если нет, то размещение памяти выполняют способом, обычным для данной операционной системы;

на стадии завершения дочернего процесса:

- проверяют, использует ли дочерний процесс предварительно размещенную память;

- если да, то не освобождают предварительно размещенную память для дочернего процесса для повторного использования дочерними процессами и последующего ее освобождения при завершении родительского процесса;

- если нет, то размещение памяти выполняют способом, обычным для данной операционной системы.

Таким образом, в заявляемой системе при создании дочернего процесса модуль ОС проверяет размер предварительно размещенного единого блока памяти, и если этот размер достаточен, выделяет дочернему процессу указатель на принадлежащую ему часть предварительно размещенной памяти (см. Фиг.3). В противном случае, т.е. если объем предварительно размещенной памяти недостаточен, блоки памяти для дочернего процесса размещают способом, обычным для данной ОС. При завершении дочернего процесса не освобождают используемый им предварительно размещенный блок памяти. Он может быть повторно использован другими дочерними процессами. Блок предварительно размещенной памяти освобождают при завершении родительского процесса.

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими иллюстративными материалами.

Фиг.1. Схема предварительного размещения памяти при создании родительского процесса и дочерних процессов, известная из уровня техники.

Фиг.2. Схема предварительного размещения памяти при создании родительского процесса согласно изобретению.

Фиг.3. Схема использования предварительно размещенной памяти при создании дочерних процессов согласно изобретению.

Фиг.4. Блок-схема системы предварительного размещения памяти согласно изобретению.

Фиг.5. Блок-схема способа предварительного размещения памяти согласно изобретению.

Заявленная система предварительного размещения памяти (см. Фиг.4.) содержит модуль памяти, далее упоминаемый как память 1, и программную платформу 2, которая содержит взаимодействующие с памятью 1 диспетчер 3 родительских процессов, диспетчер 4 дочерних процессов и диспетчер 5 предварительного размещения памяти, который содержит блок 6 создания родительских процессов, блок 7 завершения родительских процессов, блок 8 создания дочерних процессов и блок 9 завершения дочерних процессов.

Рассмотрим способ предварительного размещения памяти (см. Фиг.4, 5). В приложениях, работающих во встроенных системах, разработчик обычно может оценить количество дочерних процессов, которые будут запущены в родительском процессе и размер памяти, который должен быть зарезервирован для каждого дочернего процесса. Таким образом, на первом шаге способа разработчик вычисляет суммарный размер памяти, необходимый для предварительного размещения. При создании родительского процесса блок 6 создания родительских процессов получает от диспетчера 3 родительских процессов входные данные о размере памяти для предварительного размещения, проверяет размер памяти для предварительного размещения и размещает память, если ее размер >0. При завершении родительского процесса диспетчер 3 родительских процессов вызывает блок 7 завершения родительских процессов, который проверяет размер предварительно размещенной памяти и освобождает предварительно размещенную память, если ее размер >0. При создании дочерних процессов блок 8 создания дочерних процессов получает от диспетчера 4 дочерних процессов данные о размере памяти дочернего процесса, проверяет, был ли предварительно размещен размер памяти, достаточный для данного дочернего процесса, и если да - выделяет дочернему процессу указатель на принадлежащую ему часть предварительно размещенной памяти; если нет - то блок 8 заканчивает свою работу, а размещение памяти выполняется способом, обычным для данной операционной системы (см. Фиг.1 - дочерние процессы). При завершении дочерних процессов диспетчер 4 дочерних процессов вызывает блок 9 завершения дочерних процессов, который проверяет, использует ли процесс предварительно размещенную память, и если да, то не освобождает свою часть предварительно размещенной памяти. Она может быть повторно использована дочерними процессами и будет освобождена при завершении родительского процесса. Если же процесс не использует предварительно размещенную память, то блок 9 завершает свою работу, а освобождение памяти выполняется способом, обычным для данной операционной системы. Кроме того, диспетчер 9 предварительного размещения памяти содержит следующую информацию: для каждого родительского процесса - указатель на начало и размер предварительно размещенной памяти (см. Фиг.2); для каждого родительского процесса - указатель на начало и размер свободной предварительно размещенной памяти (см. Фиг.2 и 3);

для каждого дочернего процесса - переменную, определяющую, использует ли процесс предварительно размещенную память.

Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.

Источник поступления информации: Роспатент

Showing 1-10 of 125 items.
27.04.2013
№216.012.3bcf

Непрерывно электрически управляемая линзовая антенна

Изобретение относится к устройствам, обеспечивающим управление шириной главного лепестка диаграммы направленности антенны без механического манипулирования антенной или ее частями. В линзовой антенне линзовый элемент выполнен из ферроэлектрического материала, антенна включает в себя: круглую...
Тип: Изобретение
Номер охранного документа: 0002480872
Дата охранного документа: 27.04.2013
10.05.2013
№216.012.3e74

Оптическая измерительная система и способ измерения критического размера наноструктур на плоской поверхности

Изобретение может быть использовано при измерении геометрических параметров нанообъектов путем исследования рассеянного излучения при сканировании объектов. Оптическая измерительная система содержит: оптический модуль освещения и регистрации изображения, модуль управления параметрами оптической...
Тип: Изобретение
Номер охранного документа: 0002481555
Дата охранного документа: 10.05.2013
10.05.2013
№216.012.3ec4

Адаптивный способ создания и печати цветных анаглифных изображений

Изобретение относится к средствам подготовки печати анаглифных изображений. Техническим результатом является адаптация для печати анаглифного изображения с сохранением трехмерного восприятия напечатанного изображения для конкретных стереоочков. В способе печатают тестовый цветной образец на...
Тип: Изобретение
Номер охранного документа: 0002481635
Дата охранного документа: 10.05.2013
10.05.2013
№216.012.3efa

Беспроводной электромагнитный приемник и система беспроводной передачи энергии

Изобретение относится к области электрорадиотехники, а более конкретно - к системам и компонентам, предназначенным для беспроводной передачи энергии. Технический результат - повышение получаемой мощности путем увеличения добротности приемника. Предложена система беспроводной передачи энергии,...
Тип: Изобретение
Номер охранного документа: 0002481689
Дата охранного документа: 10.05.2013
10.05.2013
№216.012.3f04

Резонансная структура на основе объемного акустического резонатора

Изобретение относится к области электрорадиотехники, к системам беспроводной передачи энергии. Достигаемый технический результат - создание резонансной структуры для беспроводной передачи или приема энергии, обладающей малыми размерами и высокой добротностью при работе в частотном диапазоне...
Тип: Изобретение
Номер охранного документа: 0002481699
Дата охранного документа: 10.05.2013
10.05.2013
№216.012.3f09

Беспроводной электромагнитный приемник и система беспроводной передачи энергии

Изобретение относится к беспроводной передачи энергии, а именно к системам и устройствам, применяемым для беспроводной передачи энергии. Технический результат - увеличение получаемой энергии путем увеличения добротности приемника. Система беспроводной передачи энергии, содержащая источник...
Тип: Изобретение
Номер охранного документа: 0002481704
Дата охранного документа: 10.05.2013
10.05.2013
№216.012.3f0a

Беспроводной электромагнитный приемник и система беспроводной передачи энергии

Изобретение относится к беспроводной передачи энергии, а именно к системам и устройствам, применяемым для беспроводной передачи энергии. Технический результат - повышение принимаемой мощности путем увеличения добротности приемника. Система беспроводной передачи энергии, содержащая источник...
Тип: Изобретение
Номер охранного документа: 0002481705
Дата охранного документа: 10.05.2013
27.07.2013
№216.012.5b2e

Способ детектирования сигнала в системах связи с mimo каналом

Изобретение относится к области связи, в частности к радиотехническим беспроводным коммуникационным системам. Технический результат состоит в повышении точности приема информации. Для этого в системах связи с MIMO формируют оценку принятого вектора QAM символов и вычисляют матрицу ковариации;...
Тип: Изобретение
Номер охранного документа: 0002488963
Дата охранного документа: 27.07.2013
10.08.2013
№216.012.5c39

Способ осаждения наночастиц золота на микросферы кремнезема

Изобретение относится к области физической химии и может быть использовано в производстве фотонных кристаллов с заданными физическими свойствами. Сущность: подложку с предварительно нанесенными микросферами кремнезема помещают в реактор. Вакуумируют реакционную камеру до 10 торр. Затем подложку...
Тип: Изобретение
Номер охранного документа: 0002489230
Дата охранного документа: 10.08.2013
20.08.2013
№216.012.61ee

Способ ускорения обработки множественных запросов типа select к rdf базе данных с помощью графического процессора

Изобретение относится к технологиям обработки информации, а более конкретно - к способам обеспечения доступа к информации, хранящейся в базах данных. Техническим результатом является увеличение пропускной способности сервера обработки запросов. Заявлен способ параллельной обработки...
Тип: Изобретение
Номер охранного документа: 0002490702
Дата охранного документа: 20.08.2013
+ добавить свой РИД