Устройство обработки информации, способ управления областью памяти и компьютерная программа

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

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

Уровень техники

В случае когда множество программ обработки данных выполняют в одной операционной системе (ОС, OS) или во множестве операционных систем, общие для системы аппаратные средства, а именно ЦПУ или запоминающее устройство, последовательно переключают во времени.

Распределение (планирование) процессов (задач) множества операционных систем выполняют с помощью, например, программных средств управления разделением. Если ОС(α) и ОС(β) одновременно существуют в одной системе, причем процесс ОС(α) представляет собой процесс разделения А и процесс ОС(β) представляет собой процесс разделения В, программное средство управления разделением определяет распределение процесса А и процесса В и выполняет процессы операционных систем с выделением ресурсов аппаратных средств на основе определенного планирования.

В патентном документе 1 раскрыта методика управления задачами систем с множеством ОС. В соответствии с этим раскрытием задачи, предназначенные для выполнения множеством ОС, распределяют в соответствии с приоритетом, установленным для процесса, имеющего срочность.

Когда множество программ выполняют, по меньшей мере, в одной операционной системе (ОС), присутствует множество потоков, каждый из которых определен в модуле выполнения программы, и каждый поток использует память как общий ресурс. Если делается попытка высвобождения для другого потока определенной области памяти, на которую в данное время ссылается данный поток, может возникнуть ошибка доступа. В известном уровне техники возникновение ошибки предотвращают путем установки длительности блокировки прерываний. Установка длительности блокировки прерываний приводит к другой проблеме, такой как задержка процесса.

[Патентный документ 1] Публикация №2003-345612 находящейся на экспертизе японской заявки на патент.

Сущность изобретения

Проблемы, решаемые изобретением

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

Средство решения проблем

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компьютерная программа в соответствии с настоящим изобретением предусмотрена для компьютерной системы общего назначения, выполняющей множество программных кодов, на носителе данных, считываемом компьютером, таком как CD, FD или МО, или через среду передачи данных, такую как сеть. Благодаря предоставлению компьютерной программы в виде, который может быть считан компьютером, компьютерная система выполняет процесс в соответствии с компьютерной программой.

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

Преимущества

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

Краткое описание чертежей

На фиг.1 показана блок-схема устройства обработки информации в соответствии с настоящим изобретением.

На фиг.2 представлен модуль процессора.

На фиг.3 представлена иллюстрация структуры программных средств устройства обработки информации в соответствии с настоящим изобретением.

На фиг.4 представлена иллюстрация процесса доступа к типичной области памяти.

На фиг.5 представлена иллюстрация процесса доступа к типичной области памяти.

На фиг.6 представлена иллюстрация информации, управляемой менеджером потока в устройстве обработки информации в соответствии с настоящим изобретением.

На фиг.7 подробно представлена информация, управляемая менеджером потока в устройстве обработки информации в соответствии с настоящим изобретением.

На фиг.8 представлена иллюстрация информации, управляемой менеджером области памяти в устройстве обработки информации в соответствии с настоящим изобретением.

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

На фиг.10 подробно представлен процесс входа информации потока, выполняемого менеджером потока в устройстве обработки информации в соответствии с настоящим изобретением.

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

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

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

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

На фиг.15 представлена иллюстрация структуры слабого указателя и цепи слабого указателя.

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

На фиг.17 показана блок-схема последовательности выполнения операций, иллюстрирующая процесс последовательности очереди высвобождения (процесс очистки) в структуре, содержащей слабый указатель.

Подробное описание изобретения

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

Структура аппаратных средств устройства обработки информации в соответствии с настоящим изобретением описана ниже со ссылкой на фиг.1. Модуль 101 процессора включает в себя множество процессоров (модулей обработки) и обрабатывает данные в соответствии с различными программами, сохраненными в ПЗУ (постоянное запоминающее устройство) 104 и на НЖМД (HDD) 123, включая операционные системы (ОС) и прикладные программы, работающие под управлением ОС. Модуль 101 процессора будет описан ниже со ссылкой на фиг.2.

В ответ на команды, поступающие через модуль 101 процессора, графический процессор 102 генерирует данные, предназначенные для отображения на экране дисплея, которые формирует выходной модуль 122, например выполняет процесс изображения трехмерной графики. В главном запоминающем устройстве (динамическом ОЗУ, DRAM) 103 содержится программа, выполняемая модулем 101 процессора, и параметры, которые изменяются в ходе выполнения программы. Эти элементы взаимно соединены через главную шину 111, включающую в себя шину ЦПУ.

Главная шина 111 соединена с внешней шиной 112, такой как шина PCI (ВПК, взаимное соединение периферийных компонентов), через мост 105. Мост 105 управляет вводом и выводом данных между главной шиной 111, внешней шиной 112, контроллером 106, картой 107 памяти и другими устройствами.

Входной блок 121 вводит информацию во входное устройство, такое как клавиатура и устройство-указатель, оперируемые пользователем. Выходной блок 122 включает в себя блок вывода изображения, такой как один из жидкокристаллического дисплея и ЭЛТ (CRT, электронно-лучевая трубка), и устройство вывода звука, такое как громкоговоритель.

НЖМД (привод жесткого диска) 123 управляет жестким диском, загруженным в него, записывая, таким образом, или воспроизводя программу для выполнения модулем 101 процессора и информацию.

Привод 124 считывает данные программы, сохраненные на загружаемом съемном носителе 127 записи, таком как магнитный диск, оптический диск, магнитооптический диск, полупроводниковое запоминающее устройство или тому подобное, и передает данные и программы в главное запоминающее устройство (динамическое ОЗУ) 103 через интерфейс 113, внешнюю шину 112, мост 105 и главный мост 111.

Соединительный порт 125 соединяется с внешним устройством 128 и может включать в себя шину УПШ (USB, универсальная последовательная шина), шину IEEE 1394 или тому подобное. Соединительный порт 125 соединен с модулем 101 процессора через интерфейс 113, внешнюю шину 112, мост 105 и главную шину 111. Блок 126 передачи данных, соединенный с сетью, передает данные, подаваемые из НЖМД 123 или тому подобного, и принимает данные, поступающие извне.

Структура модуля процессора описана ниже со ссылкой на фиг.2. Как показано на чертеже, модуль 200 процессора включает в себя группу 201 основного процессора, включающую в себя множество модулей основных процессоров, и множество групп 202-20n подпроцессоров, каждый из которых включает в себя множество модулей подпроцессоров. Каждая группа дополнительно включает в себя контроллер запоминающего устройства и вторичный кэш. Группы 201-20n процессоров, каждая из которых включает в себя восемь модулей процессоров, например, соединены с использованием одной из архитектуры поперечной линии и сети обмена пакетами. В ответ на команду основного процессора группы 201 основного процессора, по меньшей мере, один подпроцессор из множества групп 202-20n подпроцессоров выбирают для выполнения заданной программы.

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

Как было описано выше, когда множество программ работает в одной или множестве операционных систем (ОС), присутствует множество потоков, определенных модулем выполнения программ, и при этом память, например основное запоминающее устройство (динамическое ОЗУ) по фиг.1, используется как ресурс, общий для потоков. Если один поток пытается выполнить процесс высвобождения для области памяти, в то время как к этой области памяти осуществляет доступ другой поток, возникает ошибка доступа. В известном уровне техники возникновение ошибки доступа предотвращают путем установки периода блокировки прерываний, но установка периода блокировки прерываний приводит к другой проблеме, такой как задержка процесса.

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

На фиг.3 представлен программный стек в устройстве обработки информации в соответствии с настоящим изобретением. Программный стек состоит из операционной системы (ОС) 310 и прикладной программы 320, выполняемой в операционной системе (ОС) 310. Операционная система (ОС) 310 включает в себя ядро 311, предназначенное для выполнения многоцелевого управления, управления системой файлов, управления памятью и процессами ввода и вывода.

Ядро 311 включает в себя менеджер 312 потока (диспетчер системного вызова), менеджер 313 области памяти (модуль управления кучей), предназначенный для выполнения управлением области памяти, и другой модуль 314 ядра.

В процессе объектно-ориентированного управления памятью ресурс обрабатывают как объект и управление памятью выполняют на основе области памяти, имеющей конечный размер, называемой кучей. Менеджер 313 области памяти (модуль управления кучей) управляет выделением объекта для кучи. Менеджер 313 области памяти (модуль управления кучей) высвобождает конечную кучу, эффективно выделяя область памяти (кучу) для каждого потока, запрашивающего кучу.

Типичный процесс выделения памяти для выделения области памяти потоку описан ниже со ссылкой на фиг.4 и 5. Как показано на фиг.4, доступ к области х 351 памяти, области у 352 памяти и области z 353 памяти, установленным как объекты по фиг.4, осуществляется через таблицу 350 идентификации (ИД, ID), установленную как информация-указатель на объекты программой выполнения потока.

Ядро ОС блокирует таблицу 350 ИД для предотвращения доступа второго потока к области памяти, доступ к которой в настоящее время осуществляется первым потоком, для исключения доступа из второго потока. Таким образом, второй поток не может выполнять доступ к памяти до тех пор, пока таблица 350 ИД не будет разблокирована, и требуется ожидание обработки.

На фиг.5 представлена таблица ИД, имеющая двухслойную структуру. Таблица 371 ИД используется для доступа к области х 361 памяти и области z 362 памяти и т.д. как к объектам. Область z 362 памяти, в свою очередь, содержит вторую таблицу b 372 ИД и разрешает доступ к области а 363 памяти и к области b 364 памяти с использованием второй таблицы b 372 ИД. Таким образом, ядро ОС блокирует таблицу ИД для предотвращения доступа другого потока к области памяти. Другой поток, таким образом, не может выполнить доступ к памяти до тех пор, пока не будет высвобождено блокирование, и обработка, таким образом, выполняется с задержкой.

Даже если отдельная область, такая как одна из области а 363 памяти и области b 364 памяти по фиг.5, не используется, ядро блокирует таблицу а 371 ИД в процессе управления памятью во время использования области х 361 памяти. В результате нельзя эффективно использовать доступную область памяти.

Настоящее изобретение преодолевает такое неэффективное использование памяти, обеспечивая, таким образом, возможность эффективного выделения памяти для каждого потока. Такой процесс выполняют с помощью менеджера 312 потока (диспетчера системного вызова) и менеджера 313 области памяти (модуля управления кучей) в ядре 311, как показано на фиг.3. Этот процесс подробно описан ниже.

Процесс, выполняемый менеджером 312 потока (диспетчером системного вызова), описан ниже со ссылкой на фиг.6 и 7.

Менеджер 312 потока (диспетчер системного вызова) выполняет потоки для каждого из процессоров, предусмотренных в устройстве обработки информации, для выполнения потока. Менеджер 312 потока (диспетчер системного вызова) содержит информацию управления потоком для каждого процессора отдельно.

Информация менеджера потока описана ниже со ссылкой на фиг.6 и фиг.7. На фиг.6 представлен список потоков, формирующий информацию управления потоком для каждого процессора. На чертеже показаны только списки потоков, соответствующие процессору 1 и процессору 2. Менеджер 312 потоков (диспетчер системного вызова) генерирует и содержит список потоков как информацию управления, соответствующую процессору, выполняющему обработку потока.

На фиг.6 (а) представлен список потоков как информация управления потоком процессора 1. Список потоков состоит из данных конкатенации информации времени входа отдельных потоков, работающих в гипервизоре в процессоре 1, и информации самого старшего времени входа. На фиг.6 (b) представлен список потоков как информация управления потоками процессора 2. Список потоков состоит из данных конкатенации информации времени входа отдельных потоков, работающих в гипервизоре в процессоре 2, и информации самого старшего времени входа. Информация времени входа потока относится к времени вызова функции операционной системы из прикладной программы, которая представляет собой различные программы обработки данных. В любом из списков другой процессор может обратиться к информации о самом старшем времени входа. Как описано выше, поток представляет собой модуль выполнения обработки данных, соответствующий логическому разделу. Для выполнения потока резервируют различные ресурсы, такие как процессоры и области памяти.

Когда процессор, предназначенный для выполнения потока, определен, для потока процессора выделяют доступную область памяти. Менеджер 312 потока (диспетчер системного вызова) распределяет потоки между процессорами, генерирует список потоков как информацию потока, относящуюся к выделению области памяти, и управляет потоками.

Гипервизор представляет собой привилегированный уровень, расположенный между логическими разделами и аппаратными средствами, и управляет логическим разделом. Поток представляет собой процесс, выполняемый логическим разделом. Описываемый поток, который выполняется модулем процессора со ссылкой на фиг.1 и 2, выполняется логическим разделом. Аппаратные ресурсы (ресурсы: вычислительные ресурсы, главный процессор, подпроцессор, запоминающее устройство, устройства и т.д.) выделяют для каждого логического раздела, и логический раздел выполняет процессы с использованием выделенных для него ресурсов.

Менеджер 312 потока (диспетчер системного вызова) записывает и содержит информацию времени входа, относящуюся к потоку, идентифицируемому гипервизором, который скомпонован как привилегированный уровень между логическим разделом и аппаратными средствами.

Информация списка потоков, содержащаяся менеджером 312 потока (диспетчером системного вызова), подробно описана со ссылкой на фиг.7. Как описано со ссылкой на фиг.6, список потоков, как информация управления потоками для каждого процессора, включает в себя данные конкатенации информации времени входа каждого потока и информации самого старшего времени входа. Информация управления включает в себя переменную 400, установленную для каждого процессора, и переменную 410, установленную для каждого потока, как показано на фиг.7. Как описано выше, информация времени входа потока соответствует времени вызова функции операционной системы из прикладной программы, выполняющей функцию различных программ обработки данных.

Переменная 400, установленная для каждого процессора, включают в себя заголовок (head) 401 и время 402 самого старшего входа (oldest_time). Заголовок (head) 401 содержит информацию указателя на передний элемент списка. Время 402 самого старшего входа (oldest_time) содержит самую старшую из информации времени входа в элементах, установленных в списке. Список соответствующим образом обновляют в соответствии с входом потока и ликвидацией потока. Если самое старшее время входа среди элементов, формирующих список, будет обновлено в процессе обновления, время 402 самого старшего входа (oldest_time) также обновляется вместе с ним. С учетом эффективности процесса доступа заголовок (head) 401 и время 402 самого старшего входа (oldest_time) содержат в различных линиях кэш. Линия кэш, в которой содержится заголовок (head) 401, содержит только переменные, для которых не требуется ссылка из другого процессора. Другой процессор может обращаться к линии кэш, содержащей время 402 самого старшего входа (oldest_time).

Переменная 410, установленная для каждого потока, включают в себя информацию 411 идентификации потока предшественника (predecessor) и информацию 412 времени входа (time). Информация 411 идентификации потока предшественника (predecessor) представляет собой идентификатор (например, указатель) информации предыдущего потока. Как показано на чертеже, список содержит информацию потока в порядке от потока, имеющего самое последнее время входа, до потока, имеющего самое старшее время входа. Каждую из информации потока идентифицируют по информации 411 идентификации потока предшественника (predecessor) и затем получают. Информация потока в передней части списка идентифицирована по заголовку 401 (head) самой старшей информации входа. Поскольку информация конечного потока не имеет предыдущего потока, [установлена информация идентификации потока предшественника (predecessor)=NULL]. Время 412 входа (time) обозначает время входа каждого потока.

Ниже со ссылкой на фиг.8 описана информация, управляемая менеджером 313 области памяти (модуль управления кучей). Как описано выше, в объектно-ориентированном процессе управления памятью ресурс обрабатывают как объект и управление памятью выполняют на основе области памяти, имеющей конечный размер, называемой кучей. Элемент, управляющий выделением объекта для кучи, представляет собой менеджер 313 области памяти (модуль управления кучей). Менеджер 313 области памяти (модуль управления кучей) высвобождает конечную кучу, эффективно выделяя область памяти (кучу) для каждого потока, запрашивающего кучу.

Менеджер 313 области памяти (модуль управления кучей), содержит информацию управления кучей, установленную для каждого процессора. Другими словами, количество модулей информации управления кучей равно количеству процессоров. Информация управления кучей содержит очередь высвобождения, как показано на фиг.8. Очередь высвобождения представляет собой информацию об области памяти (куче), для которой поступил запрос на высвобождение, но которая еще не была высвобождена.

Структура очереди высвобождения, содержащаяся менеджером 313 области памяти (модуль управления кучей), будет описана со ссылкой на фиг.8. Очередь высвобождения, показанная на фиг.8, установлена как информация управления кучей, установленная для каждого процессора. Очереди высвобождения, показанные на фиг.8, размещены индивидуально для соответствующих процессоров.

Очередь высвобождения установлена как список конкатенации информации 451 заголовка (release_queue_head) и компонента 460 очереди. Компонент 460 очереди содержит идентификатор 461 кучи (heap_ID), время 462 запроса на высвобождение (release_time), информацию 463 очереди преемника (successor) и информацию 464 области памяти.

Идентификатор 461 кучи (heap_ID) представляет собой информацию идентификации кучи, установленную как область памяти для каждого процессора. Время 462 запроса на высвобождение обозначает время запроса кучи, а именно время, в которое поток вырабатывает запрос на использов