RU2730116C2 - Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы - Google Patents

Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы Download PDF

Info

Publication number
RU2730116C2
RU2730116C2 RU2015151065A RU2015151065A RU2730116C2 RU 2730116 C2 RU2730116 C2 RU 2730116C2 RU 2015151065 A RU2015151065 A RU 2015151065A RU 2015151065 A RU2015151065 A RU 2015151065A RU 2730116 C2 RU2730116 C2 RU 2730116C2
Authority
RU
Russia
Prior art keywords
memory
area
allocated
operating system
physical memory
Prior art date
Application number
RU2015151065A
Other languages
English (en)
Other versions
RU2015151065A3 (ru
RU2015151065A (ru
Inventor
Сергей Иванович Бобренок
Евгений Александрович Загурских
Павел Сергеевич Василевич
Сергей Михайлович Егоров
Original Assignee
Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз") filed Critical Общество с ограниченной ответственностью "Параллелз" (ООО "Параллелз")
Priority to RU2015151065A priority Critical patent/RU2730116C2/ru
Publication of RU2015151065A publication Critical patent/RU2015151065A/ru
Publication of RU2015151065A3 publication Critical patent/RU2015151065A3/ru
Application granted granted Critical
Publication of RU2730116C2 publication Critical patent/RU2730116C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

Изобретение относится к механизмам передачи данных между интерфейсами блоков обработки данных, работающих под управлением операционной системы Windows, и предназначено для повышения надежности передачи данных с одновременным снижением количества сбоев в работе вычислительной системы.
Использование разделяемой памяти или памяти совместно используемой несколькими процессами или блоками обработки данных, является самым быстрым и простым механизмом межпроцессного взаимодействия. Однако за кажущейся простотой скрываются большие проблемы, присущие системам этого типа, решение которых требует значительных затрат. Наиболее сложным звеном в таких системах является синхронизация обращений процессов (клиентов разделяемой памяти) к блокам памяти, используемым совместно несколькими процессами. В некоторых программных продуктах, в том числе, в Plesk Panel (Плеск Пэнел) компании Parallels (Параллелз) роль синхронизатора обращений клиентов к ресурсам памяти отведена модулю блокировок (Lock Manager), в работе которого используется логика библиотеки Boost (Буст) в части межпроцессного взаимодействия. Фактически Lock Manager представляет собой расширение интерпретатора РНР (ПХП или скриптового языка общего назначения), интенсивно применяемого для разработки веб-приложений, который применяется, в том числе, в Plesk Panel.
После выпуска Plesk Panel версии 12, где впервые был применен модуль Lock Manager, повысилось число сбоев в работе с Plesk Panel, возникающих из-за незавершенности (далее - зависания) какого-либо процесса. Проведенный анализ сбоев выявил фундаментальный недостаток в логике работы синхронизирующих объектов библиотеки Boost. Несмотря на то, что этот недостаток в наибольшей степени проявил себя в продукте Plesk Panel, подобного рода зависания могут иметь место всюду, где применяется логика синхронизации процессов Boost, основной недостаток которой заключается в том, что разделяемая память может быть заблокирована одним из процессов, и, после останова этого процесса, разделяемая память становится недоступна для других процессов. Указанное обстоятельство порождает сбои в работе всех процессов, использующих разделяемую память.
Предложенное техническое решение позволяет максимально устранить указанный недостаток. Техническим результатом, достигаемым при использовании предложенного технического решения, является повышение надежности работы вычислительной с максимально возможным сохранением функциональности и скорости работы системы организации разделяемой памяти.
Указанный технический результат достигается за счет того, что в способе передачи данных между интерфейсами модулей обработки данных вычислительной системы:
- каждому модулю обработки данных присваивают уникальный идентификатор;
- задают диапазон адресов выделенной области физической памяти;
- обеспечивают считывание и запись данных выделенной области физической памяти интерфейсами модулей обработки данных;
- задают диапазон адресов внутри выделенной области физической памяти, предназначенный для записи и считывания уникального идентификатора;
- задают диапазон адресов внутри выделенной области физической памяти для записи признака состояния выделенной области физической памяти, при этом признак состояния выделенной области физической памяти отражает свободное и заблокированное состояние выделенной области памяти таким образом, что
при наличии признака, отражающего свободное состояние выделенной области памяти, обеспечивают возможность записи процессом признака, отражающий заблокированное состояние выделенной области памяти в первую область с одновременной записью уникального идентификатора указанного процесса,
а при наличии признака, отражающего заблокированное состояние выделенной области памяти, обеспечивают возможность модификации содержимого выделенной области физической памяти только процессом, идентификатор которого записан в соответствующую область памяти,
причем регистрируют сбои в работе в работе вычислительной системы, обусловленные отказом процессам доступа к выделенной области памяти, и при превышении частоты сбоев, вызванных отказом доступа, первой заранее заданной величины, например, от 1 до 15 сбоев в секунду переадресуют запросы к первой и второй области памяти таким образом, что дополнительно обеспечивается возможность модификации операционной системой, а операционная система выполняет сброс признака до свободного, при превышении частоты сбоев второй заранее заданной величины, например, от 2 до 5 сбоев в секунду.
В частном случае реализации изобретения операционная система может быть выполнена обеспечивающей сброс флага при выгрузке процесса, занявшего память из списка исполняемых задач. Также операционная система может быть выполнена обеспечивающей сброс флага при превышении периодом неактивности процесса, занявшего память, заранее заданной величины.
Сущность изобретения поясняется приведенными ниже чертежами.
На фиг. 1 показана структурная схема варианта компьютерной системы, которая может использоваться для реализации настоящего изобретения;
На фиг. 2 отображено взаимодействие между элементами вычислительной системы при использовании разделяемой памяти.
Система, показанная на фиг. 1 является вычислительным устройством общего назначения в виде персональной электронно-вычислительной машины (ПЭВМ) или сервера 20 или подобного вычислителя, содержащего вычислительный блок 21, системное запоминающее устройство 22 или оперативную память, часть которой используется в качестве разделяемой памяти и системную шину 23, которая объединяет различные компоненты системы, в том числе, системное запоминающее устройство 22 и вычислительный блок 21.
Системная шина 23 может быть шиной любого типа, в том числе, шиной запоминающего устройства или контроллером запоминающего устройства, периферийной шиной, локальной шиной, и быть построена по любой архитектуре шин. В состав системного запоминающего устройства сходят постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. В ПЗУ 24 хранится базовая система ввода-вывода 26, которая содержит базовые процедуры, способствующие передаче информации между составными частями ПЭВМ 20, в частности, во время начальной загрузки. ПЭВМ 20 может также содержать: накопитель 27 на жестких дисках для чтения и записи информации на жесткие диски; привод 28 магнитных дисков для чтения и записи информации на сменные магнитные диски 29; привод 30 оптических дисков для чтения и записи информации на сменные оптические диски 31, такие, как CD-ROM (от английского Compact disk read-only memory - компакт-диск - постоянное запоминающее устройство), DVD-ROM (от английского Digital video disc read-only memory - цифровой видеодиск - постоянное запоминающее устройство) или оптические машиночитаемые среды другого типа. Накопитель 27 на жестких дисках, привод 28 магнитных дисков и привод 30 оптических дисков подключены к системной шине 23 с помощью интерфейса 32 накопителя на жестких дисках, интерфейса 33 привода магнитных дисков и интерфейса 34 привода оптических дисков соответственно.
Приводы и соответствующие машиночитаемые среды обеспечивают ПЭВМ 20 энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и подпрограмм, которые могут использоваться для реализации этапов описанного в настоящей заявке способа, а также хранения прочих данных.
Несмотря на то, что в описываемом варианте осуществления используется жесткий диск, магнитный диск 29 и сменный оптический диск 31, специалистам в данной области должно быть понятно, что для хранения данных, доступных ПЭВМ, могут использоваться машиночитаемые среды других типов, в частности, магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи для накопителей Бернулли, накопители на ОЗУ и ПЗУ и т.п.
Некоторое число программных модулей может храниться на жестком диске, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25, в том числе, операционная система 35 (например, "Windows (Виндоуз) 2000"). ПЭВМ 20 содержит: файловую систему 36, связанную или входящую в состав операционной системы 35, такую, как Windows NTFS (от английского New technology file system - файловая система новой технологии); одну или более прикладных программ 37; другие программные модули 38; данные 39 программ. Пользователь может вводить команды и информацию в ПЭВМ 20 через устройства ввода, такие, как клавиатура 40 и указывающее устройство 42.
В состав прочих устройств ввода могут входить: микрофон; джойстик; игровой пульт управления; спутниковая антенна; сканер; другие подобные устройства. Перечисленные и прочие устройства ввода обычно соединяются с процессорным устройством 21 через интерфейс 46 последовательного порта, который подключается к системной шине. Однако указанные устройства ввода могут подключаться и через другие интерфейсы, такие, как параллельный порт, игровой порт, порт USB (от английского Universal serial bus -универсальная последовательная шина). Также к системной шине 23 через интерфейс, такой, как видеоадаптер 48, подключается монитор 47 или устройство другого типа для отображения видеоинформации. Помимо монитора 47 персональные ЭВМ обычно содержат другие периферийные устройства вывода, такие, как громкоговорители и принтеры.
ПЭВМ 20 может действовать в сетевом окружении с использованием логических подключений к одному или более удаленных компьютеров 49. Удаленным компьютером (компьютерами) 49 могут быть: другая ПЭВМ; сервер; роутер; сетевая ПЭВМ; сетевое устройство, напрямую взаимодействующее с другими устройствами в сетевом окружении; другой узел той же сети. Кроме того, удаленный компьютер 49 обычно содержит многие или все функциональные узлы, описанные выше применительно к ПЭВМ 20, хотя для него показано только запоминающее устройство 50. В число логических подключений входят локальная вычислительная сеть (ЛВС) 51 и глобальная вычислительная сеть 52. Описанное сетевое окружение распространено в офисах, вычислительных сетях предприятий, сетях интранет и/или Интернет.
При использовании в сетевом окружении ЛВС ПЭВМ 20 подключена к ЛВС 51 через сетевой интерфейс (сетевой адаптер) 53. При использовании в сетевом окружении глобальной вычислительной сети ПЭВМ 20 обычно содержит модем 54 или иное средство установления соединения через глобальную вычислительную сеть 52, такую, как интернет. Модем 54, который может быть внутренним или внешним, подключается к системной шине 23 через интерфейс 46 последовательного порта.
В сетевом окружении программные модули, изображенные относительно ПЭВМ 20 или его частей, могут храниться во внешнем по отношению к ПЭВМ 20 (удаленном) запоминающем устройстве. Следует учитывать, что показанные сетевые подключения служат в качестве примера, и могут использоваться другие средства установления коммуникационного соединения между компьютерами.
Компьютеры, подобные описанным выше, могут применяться к обычных вычислительных сетях, например, интернет, ЛВС, региональных сетях, глобальных сетях и т.д. Перечисленные сети могут объединять различные ресурсы, в число которых входят компьютеры пользователей, серверы, поставщики интернет-услуг, телефонные аппараты, соединенные с сетью и т.д.
Как показано на фиг. 2, несколько модулей обработки данных или процессов, в частности, процесс 220 и процесс 230 совместно используют разделяемую область 100 памяти, предназначенную для хранения данных 105 и метаданных 110, к которым относится флаг 115, или признак, указывающий на то, что память 100 используется одним из процессов 230 и идентификатор 120 процесса, имеющего приоритетный доступ к разделяемым данным.
Организация разделяемой памяти предусматривает размещение механизма синхронизации непосредственно в самой памяти. То есть, по стандартному алгоритму выделения памяти в ней создается заголовок (структура) и внутрь этого заголовка неявно помещается объект синхронизации. При этом на платформе Windows используется стандартный механизм синхронизации spin-mutex (спин-мьютекс), принцип работы которого построен на атомарном доступе к специальной числовой переменной, находящейся внутри выделенной области 110 памяти. По сути, такая логика работы создает рекурсию управления доступом к метаинформации, что снижает надежность механизма синхронизации.
В примере, показанном на фиг. 2 показан при обращении к разделяемой памяти двух выполняемых процессов, первым из клиентов, установившим 170 значение флага 115 в 1 (на фиг. 2 - «X»), является клиент 230. Одновременно с установкой значения флага в 1, атомарно происходит запись 160 идентификатора 120 процесса 230 в выделенную область 110 разделяемой памяти. При этом клиент 230 получает возможность считывать и модифицировать 300 данные в области памяти 105. Клиенту 220 доступ 210 и 200 к разделяемым данным заблокирован и будет открыт только тогда, когда клиент 230 переустановит 170 значение флага в «0». Если по какой-то причине клиент 230 самостоятельно не сможет обнулить значение флага, доступ к разделяемым данным 105 будет находиться в закрытом состоянии. Управление разделяемой памятью при этом не сможет открыть доступ к разделяемым данным, пока функционирует хотя бы один из клиентов. В том случае, если лимит времени, выделенный на ожидание отклика клиентом 220 со своим уникальным идентификатором 121 исчерпывается, формируется сообщение 190 об ошибке, содержащее адрес блока памяти, при обращении к которому произошел сбой. Сообщение об ошибке анализируется операционной системой 130, которая определяет частоту сбоев при обращении к памяти и, в частности, частоту сбоев при обращении к блокам памяти, имеющим определенный адрес.
В том случае, если частота сбоев при обращении к одному и тому же блоку памяти превышает заранее заданное значение, например, от 1 до 15 сбоев в секунду, операционная система выводит блок памяти 110 из защищенной области памяти и создает копию 140 блока в области памяти, доступной для модификации другими процессами, помимо процесса, установившего флаг 115 в значение 1. Процессами, которым доступно управление указанной областью памяти, могут быть процессы операционной системы 130.
При этом, все обращения 160 и 200 пользователей к блоку данных 110 перенаправляются 250 и 240, соответственно, к дополнительно выделенному блоку 140 данных, который имеет специальную область 145 для установки флага, отображающего состояние памяти с общим доступом, а также блока памяти, отображающего идентификатор 120 процесса, получившего исключительный доступ к памяти 105 с общим доступом.
При этом, случаи ошибок, аналогичных указанным выше продолжают регистрироваться операционной системой, и, если частота ошибок превышает первый или второй заранее заданный уровень, например, составляет от 2 до 5 сбоев в секунду, операционная система разблокирует 135 доступ к разделяемой памяти. Доступ разблокируется для предотвращения, так называемого, зависания процессов и обеспечения работоспособности вычислительной системы, в целом.
В частном случае реализации изобретения, возможность блокировки вычислительной системы определяется не только при выгрузке процесса, занявшего разделяемую память, то есть получившего исключительный доступ к памяти, из списка исполняемых задач либо при превышении периодом неактивности процесса, занявшего память, заранее заданной величины.

Claims (12)

1. Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы, заключающийся в том, что:
- каждому модулю обработки данных присваивают уникальный идентификатор;
- задают диапазон адресов выделенной области физической памяти;
- обеспечивают считывание и запись данных выделенной области физической памяти интерфейсами модулей обработки данных;
- задают диапазон адресов внутри выделенной области физической памяти, предназначенный для записи и считывания уникального идентификатора;
- задают диапазон адресов внутри выделенной области физической памяти для записи признака состояния выделенной области физической памяти, при этом признак состояния выделенной области физической памяти отражает свободное и заблокированное состояние выделенной области памяти таким образом, что
при наличии признака, отражающего свободное состояние выделенной области памяти, обеспечивают возможность записи процессом признака, отражающего заблокированное состояние выделенной области памяти, в первую область с одновременной записью уникального идентификатора указанного процесса,
а при наличии признака, отражающего заблокированное состояние выделенной области памяти, обеспечивают возможность модификации содержимого выделенной области физической памяти только процессом, идентификатор которого записан в соответствующую область памяти,
причем регистрируют сбои в работе в работе вычислительной системы, обусловленные отказом процессам доступа к выделенной области памяти, и при превышении частоты сбоев, вызванных отказом доступа, первой заранее заданной величины, переадресуют запросы к первой и второй областям памяти таким образом, что дополнительно обеспечивается возможность модификации операционной системой, а операционная система выполняет сброс признака до свободного, при превышении частоты сбоев второй заранее заданной величины.
2. Способ по п. 1, отличающийся тем, что операционная система выполнена обеспечивающей сброс флага при выгрузке процесса, занявшего память из списка исполняемых задач.
3. Способ по п. 1 или 2, отличающийся тем, что операционная система выполнена обеспечивающей сброс флага при превышении периодом неактивности процесса, занявшего память, заранее заданной величины.
4. Способ по п. 1, отличающийся тем, что первая заранее заданная величина составляет от 1 до 15 сбоев в секунду, а вторая заранее заданная величина составляет 2 до 5 сбоев в секунду.
RU2015151065A 2015-11-30 2015-11-30 Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы RU2730116C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015151065A RU2730116C2 (ru) 2015-11-30 2015-11-30 Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015151065A RU2730116C2 (ru) 2015-11-30 2015-11-30 Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы

Publications (3)

Publication Number Publication Date
RU2015151065A RU2015151065A (ru) 2017-06-07
RU2015151065A3 RU2015151065A3 (ru) 2020-05-26
RU2730116C2 true RU2730116C2 (ru) 2020-08-17

Family

ID=59031521

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015151065A RU2730116C2 (ru) 2015-11-30 2015-11-30 Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы

Country Status (1)

Country Link
RU (1) RU2730116C2 (ru)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2225028C2 (ru) * 1998-08-05 2004-02-27 Инфинеон Текнолоджиз Аг Схема интерфейса и способ передачи данных между последовательным интерфейсом и процессором
US20040233733A1 (en) * 2003-05-19 2004-11-25 Emulex Corporation Memory data interface
US20070226798A1 (en) * 1999-07-29 2007-09-27 Intertrust Technologies Corporation Systems and methods for using cryptography to protect secure and insecure computing environments
US20080162793A1 (en) * 2006-12-28 2008-07-03 Genesys Logic, Inc. Management method for reducing utilization rate of random access memory (ram) used in flash memory
US20110225376A1 (en) * 2010-03-12 2011-09-15 Lsi Corporation Memory manager for a network communications processor architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2225028C2 (ru) * 1998-08-05 2004-02-27 Инфинеон Текнолоджиз Аг Схема интерфейса и способ передачи данных между последовательным интерфейсом и процессором
US20070226798A1 (en) * 1999-07-29 2007-09-27 Intertrust Technologies Corporation Systems and methods for using cryptography to protect secure and insecure computing environments
US20040233733A1 (en) * 2003-05-19 2004-11-25 Emulex Corporation Memory data interface
US20080162793A1 (en) * 2006-12-28 2008-07-03 Genesys Logic, Inc. Management method for reducing utilization rate of random access memory (ram) used in flash memory
US20110225376A1 (en) * 2010-03-12 2011-09-15 Lsi Corporation Memory manager for a network communications processor architecture

Also Published As

Publication number Publication date
RU2015151065A3 (ru) 2020-05-26
RU2015151065A (ru) 2017-06-07

Similar Documents

Publication Publication Date Title
Russinovich et al. Windows internals, part 2
US8495131B2 (en) Method, system, and program for managing locks enabling access to a shared resource
US10599535B2 (en) Restoring distributed shared memory data consistency within a recovery process from a cluster node failure
JP5127722B2 (ja) アプリケーションの遅延起動
US8161128B2 (en) Sharing of data across disjoint clusters
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
US11010355B2 (en) Layer-based file access method and apparatus of virtualization instance
US20060242381A1 (en) Systems, methods, and computer readable media for computer data protection
US10387399B1 (en) Efficient database journaling using non-volatile system memory
US20150248247A1 (en) Multi-mode hybrid storage drive
US20130117858A1 (en) Method and System for Ensuring a Sharing Violation Free Environment for a Trusted Software Agent
US10581668B2 (en) Identifying performance-degrading hardware components in computer storage systems
US20140082275A1 (en) Server, host and method for reading base image through storage area network
GB2496840A (en) Controlling access to a shared storage system
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US9612776B2 (en) Dynamically updated user data cache for persistent productivity
US10430266B2 (en) Full state session reviving, forking, and snapshoting based on an application data dump
CN113031857A (zh) 数据写入方法、装置、服务器及存储介质
RU2730116C2 (ru) Способ передачи данных между интерфейсами модулей обработки данных вычислительной системы
US11169708B1 (en) Zero memory buffer copying in a reliable distributed computing system
Liu et al. Practice guideline for heavy I/O workloads with lustre file systems on TACC supercomputers
US20050198005A1 (en) Systems and methods for controlling access to an object
JP4844319B2 (ja) 仮想テープライブラリ装置の共用方法、仮想テープライブラリ装置、およびプログラム
CN117573380B (zh) 虚拟地址分配方法及装置
CN117807039B (zh) 一种容器处理方法、装置、设备、介质及程序产品

Legal Events

Date Code Title Description
FA93 Acknowledgement of application withdrawn (no request for examination)

Effective date: 20181203

HE9A Changing address for correspondence with an applicant
FZ9A Application not withdrawn (correction of the notice of withdrawal)

Effective date: 20200410