RU2526282C2 - Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов - Google Patents
Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов Download PDFInfo
- Publication number
- RU2526282C2 RU2526282C2 RU2012140253/08A RU2012140253A RU2526282C2 RU 2526282 C2 RU2526282 C2 RU 2526282C2 RU 2012140253/08 A RU2012140253/08 A RU 2012140253/08A RU 2012140253 A RU2012140253 A RU 2012140253A RU 2526282 C2 RU2526282 C2 RU 2526282C2
- Authority
- RU
- Russia
- Prior art keywords
- file
- lock
- shared resource
- current process
- lock file
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 239000000725 suspension Substances 0.000 claims description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000001514 detection method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 244000144992 flock Species 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Изобретение относится к способу обнаружения и устранения повисших блокировок с использованием блокировочных файлов. Технический результат заключается в повышении надежности обнаружения и устранения повисших блокировок. Ассоциируют разделяемый ресурс с блокировочным файлом. Вызывают системный вызов атомарного эксклюзивного создания и открытия временного файла с уникальным именем и в той же файловой системе. Помещают во временный файл информацию о текущем процессе, который пытается обратиться к разделяемому ресурсу. Осуществляют системный вызов создания жесткой ссылки с именем блокировочного файла на временный файл. Если системный вызов создания жесткой ссылки выполнен успешно, то удаляют жесткую ссылку на временный файл и обеспечивают выполнение текущим процессом операций с разделяемым ресурсом. Если текущий процесс в системе не существует, то выполняют устранение повисшей блокировки, осуществляя следующие действия: удаляют из существующего блокировочного файла предыдущие данные несуществующего процесса; заносят в существующий блокировочный файл данные текущего процесса. Снимают файловую блокировку записи с существующего блокировочного файла. Обеспечивают выполнение текущим процессом операций с разделяемым ресурсом. Удаляют существующий блокировочный файл.
Description
Область техники, к которой относится изобретение
Предлагаемое изобретение относится к вычислительной технике и, в частности, к обеспечению синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов.
Уровень техники
В настоящее время известны способы синхронизации доступа параллельно выполняемых процессов (приложений) к разделяемым ресурсам вычислительной системы (в том числе файлам, участкам оперативной памяти и др.). При обеспечении синхронизации исключительный доступ предоставляется только одному процессу, а сам ресурс блокируется для записи и/или чтения для других процессов. Блокировка может осуществляться разными методами, однако возможны ситуации, когда ресурс оказывается заблокирован одновременно несколькими процессами и ни один из них не может ни снять блокировку, ни выполнить необходимые операции с разделяемым ресурсом.
Такое состояние обычно называют повисшей блокировкой (deadlock), а определяют его наличие и затем устраняют с использованием разных механизмов.
Так, известен способ предотвращения повисших блокировок [1] при выполнении обновлений хранилища данных в многопроцессорном устройстве, имеющем локальную кэш-память для каждого процессора, причем каждый процессор имеет возможность работы в быстром, медленном или расширенном медленном режиме, способ, заключающийся в том, что
- получают инструкцию, которая включает обращение к хранилищу данных;
- устанавливают процессор в быстрый режим, при котором множество инструкций выполняются параллельно, а целевая запись кэш-памяти, связанная с хранилищем данных, берется из локальной кэш-памяти с состоянием исключительного владения перед выполнением инструкции;
- инициализируют выполнение инструкции в быстром режиме;
- в ответ на обнаружение возможной повисшей блокировки во время выполнения инструкции в быстром режиме:
- прерывают выполнения инструкции в быстром режиме;
- устанавливают процессор в медленный режим, при котором выполняется единственная инструкция в текущий момент времени, а целевая запись кэш-памяти берется из локальной кэш-памяти с состоянием исключительного владения перед выполнением инструкции;
- инициализируют выполнение инструкции в медленном режиме;
- в ответ на обнаружение возможной повисшей блокировки во время выполнения инструкции в медленном режиме:
- прерывают выполнение инструкции в медленном режиме;
- устанавливают процессор в расширенный медленный режим, при котором выполняется единственная инструкция в текущий момент времени, а целевая запись кэш-памяти берется из локальной кэш-памяти с состоянием только чтения перед выполнением инструкции и с состоянием исключительного владения после завершения выполнения инструкции; и
- инициализируют выполнение инструкции в расширенном медленном режиме.
После того как выполнение инструкции завершено в расширенном медленном режиме, процессор может быть переведен обратно в быстрый режим.
Возможная повисшая блокировка считается обнаруженной, когда превышается предварительно задаваемое пороговое число исключительных отклонений без признаков окончания выполнения инструкции.
Этот способ имеет недостатки, среди которых можно отметить, в частности, необходимость перевода процессора в медленный и в расширенный медленный режим работы, что снижает производительность вычислительной системы. Кроме того, обнаружение повисшей блокировки носит вероятностный характер и зависит от предварительно задаваемого порогового числа исключительных отклонений.
Известен также способ синхронизации доступа к разделяемым ресурсам между параллельно выполняемыми процессами [2] с использованием механизма блокировочных файлов, заключающийся в том, что
- ассоциируют разделяемый ресурс с блокировочным файлом;
- создают в ходе попытки доступа процесса (приложения) к разделяемому ресурсу блокировочный файл;
- если такой блокировочный файл уже существует, эта операция будет завершена с ошибкой;
- если такой блокировочный файл не существует, то создается блокировочный файл;
- записывают в только что созданный и открытый блокировочный файл данные процесса, который его создал (идентификатор процесса (process ID, РID) и др.);
- обеспечивают выполнение процессом операций с разделяемым ресурсом;
- снимают блокировку с разделяемого ресурса (файла) путем удаления блокировочного файла.
Описанный способ принят за прототип.
Однако этот известный способ также имеет недостаток. Так, если процесс, владеющий блокировкой, завершился некорректно и не удалил блокировочный файл, то больше ни один процесс не сможет получить доступ к разделяемому ресурсу и возникает повисшая блокировка. Соответственно, надежность известного способа является невысокой.
Раскрытие изобретения
С целью исключения возможности появления повисших блокировок следует проверять наличие в системе процесса, данные которого указаны в существующем блокировочном файле.
Для этого предлагается способ, заключающийся в том, что
- ассоциируют разделяемый ресурс с блокировочным файлом;
- вызывают системный вызов атомарного эксклюзивного создания и открытия временного файла с уникальным именем и в той же файловой системе, в которой предполагается создание блокировочного файла, со стороны текущего процесса, пытающегося получить доступ к разделяемому ресурсу;
- помещают во временный файл информацию о текущем процессе (PID и/или др. сведения, по которым можно определить наличие данного процесса в системе), который пытается обратиться к разделяемому ресурсу;
- осуществляют системный вызов создания жесткой ссылки с именем блокировочного файла на временный файл;
- если системный вызов создания жесткой ссылки выполнен успешно, то:
- удаляют жесткую ссылку на временный файл;
- обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
- удаляют блокировочный файл;
- если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка не связана с тем, что файл с именем блокировочного файла уже существует, то удаляют временный файл;
- если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка связана с тем, что файл с именем блокировочного файла уже существует, то
- удаляют временный файл;
- осуществляют поиск процесса, указанного в существующем блокировочном файле, выполняя следующие действия:
- устанавливают файловую блокировку записи на существующий блокировочный файл;
- проверяют наличие в системе процесса, данные которого указаны в существующем блокировочном файле;
- если текущий процесс в системе существует, то снимают файловую блокировку записи на существующий блокировочный файл;
- если текущий процесс в системе не существует, то выполняют устранение повисшей блокировки, осуществляя следующие действия:
- удаляют из существующего блокировочного файла предыдущие данные несуществующего процесса;
- заносят в существующий блокировочный файл данные текущего процесса;
- снимают файловую блокировку записи с существующего блокировочного файла;
- обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
- удаляют существующий блокировочный файл.
Таким образом, если после проверки выясняется, что процесс, данные которого указаны в блокировочном файле, в данный момент в вычислительной системе не существует (например, произошел внутренний программный сбой и приложение операционной системой (ОС) было принудительно выгружено из оперативной памяти), то это не помешает обеспечить доступ к разделяемому ресурсу другим процессам и гарантировать отсутствие повисшей блокировки.
Техническим результатом является повышение надежности обнаружения и устранения повисших блокировок.
Осуществление изобретения
Реализация предложенного способа может быть осуществлена в вычислительной системе, работающей под управлением POSIX-совместимой ОС, в частности ОС GNU/Linux, где механизм блокировочных файлов для синхронизации доступа к разделяемому ресурсу получил широкое распространение.
Необходимым условием реализации предложенного способа является наличие в составе ОС вычислительной системы следующих средств, описанных в стандарте ISO/IEC/IEEE 9945-1:2008 [3]:
- системных вызовов для работы с файлами;
- операций атомарного эксклюзивного создания и открытия временного файла с уникальным именем (например, выполняемых с помощью системного вызова mkstemp);
- поддержка жестких ссылок ОС и файловой системой, в которой предполагается создание блокировочного файла;
- поддержка файловых блокировок и наличие системных вызовов для работы с ними.
Все указанные средства присутствуют в ОС GNU/Linux, в частности в доступном для любого пользователя дистрибутиве ОС Debian 6.
Жесткие ссылки поддерживаются большинством файловых систем, такой, в частности, как Ext3 (Extended File System версии 3), поддерживаемая в ОС Debian.
Для реализации способа в создаваемой или модернизируемой программе или программном модуле, предназначенном для работы с разделяемыми ресурсами, предусматривают осуществление следующих действий.
Ассоциируют разделяемый ресурс (например, последовательный порт) с блокировочным файлом. Это можно сделать, к примеру, сформировав константу, содержащую путь к блокировочному файлу.
В каждом процессе перед обращением к разделяемому ресурсу вызывают системный вызов mkstemp путем вызова одноименной системной функции, указав в качестве шаблона пути для создания временного файла путь в той же файловой системе, в которой предполагается создание блокировочного файла.
С помощью системного вызова write, помещают во временный файл информацию о текущем процессе, по которой можно определить наличие данного процесса в системе (в самом простом случае это может быть PID процесса), который пытается обратиться к разделяемому ресурсу.
Вызывают системный вызов link с помощью одноименной функции, передавая в качестве первого параметра путь к временному файлу, а в качестве второго параметра - путь к блокировочному файлу, с которым ассоциирован разделяемый ресурс.
Если функция link возвращает 0, то
- удаляют жесткую ссылку на временный файл, вызывая системный вызов unlink;
- обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
- удаляют блокировочный файл, используя системный вызов unlink. Если функция link возвращает - 1 и в errno (error return value) содержится код ошибки, отличный от EEXISTS, то удаляют временный файл.
Если функция link возвращает - 1 и в errno содержится код ошибки EEXISTS, то
- удаляют временный файл, для чего вызывают системный вызов unlink, передавая в качестве параметра путь к временному файлу;
- осуществляют поиск процесса, указанного в существующем блокировочном файле, выполняя следующие действия:
- открывают существующий блокировочный файл для записи, для чего выполняют системный вызов open, передавая в качестве первого параметра путь к блокировочному файлу, с которым ассоциирован разделяемый ресурс, а в качестве второго параметра - режим чтения/записи, и запоминают возвращаемый номер файлового дескриптора открытого блокировочного файла;
- устанавливают файловую блокировку записи, для чего вызывают системный вызов fcntl, передавая в качестве первого параметра номер файлового дескриптора открытого блокировочного файла, в качестве второго значения - F_SETLKW, в качестве третьего значения - заполненную структуру flock, для установки блокировки всего содержимого файла;
- читают содержимое файла с помощью системного вызова файла read;
- проверяют наличие в системе процесса, данные которого указаны в существующем блокировочном файле (для случая, когда в качестве данных о процессе выбран PID процесса, проверка может быть осуществлена путем выполнения системного вызова kill, передав в качестве первого параметра PID прочитанный из существующего блокировочного файла, а в качестве второго параметра - 0);
- если текущий процесс в системе существует (для случая, когда в качестве данных о процессе выбран PID процесса, системный вызов kill вернул 0), то снимают файловую блокировку записи на существующий блокировочный файл;
- если текущий процесс в системе не существует (для случая, когда в качестве данных о процессе выбран PID процесса,, системный вызов kill вернул -1 и errno содержит код ошибки ENOEXIST), то выполняют устранение повисшей блокировки, осуществляя следующие действия:
- удаляют из существующего блокировочного файла предыдущие данные несуществующего процесса, выполняя системный вызов trunc, передав в качестве параметра значения номер файлового дескриптора открытого блокировочного файла;
- определяют информацию о текущем процессе (для случая, когда используется PID - выполняют системный вызов getpid и сохраняют возвращаемое значение);
- заносят в существующий блокировочный файл данные текущего процесса, выполняя системный вызов write;
- снимают файловую блокировку записи с существующего блокировочного файла, для чего вызывают системный вызов fcntl, передавая в качестве первого параметра номер файлового дескриптора открытого блокировочного файла, в качестве второго значения - F_SETLKW, в качестве третьего значения - заполненную структуру flock, для снятия блокировки всего содержимого файла;
- обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
- удаляют существующий блокировочный файл, для чего вызывают системный вызов unlink, передавая в качестве параметра путь к блокировочному файлу.
Реализовать действия предложенного способа в составе программы или функции может специалист в области программирования (программист).
Источники информации
1. Патент США №7953932, приоритет от 13.02.2008 г.
2. Джонсон М.К., Троан Э.В. Разработка приложений в среде Linux, 2-е изд., Москва, 2007, стр.231-232.
3. Стандарт ISO/IEC/IEEE 9945-1:2008 Information technology - Portable Operating System Interface (POSIX®) Base Specifications.
Claims (1)
- Способ синхронизации доступа к разделяемому ресурсу вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов, заключающийся в том, что
ассоциируют разделяемый ресурс с блокировочным файлом;
вызывают системный вызов атомарного эксклюзивного создания и открытия временного файла с уникальным именем и в той же файловой системе, в которой предполагается создание блокировочного файла, со стороны текущего процесса, пытающегося получить доступ к разделяемому ресурсу;
помещают во временный файл информацию о текущем процессе, который пытается обратиться к разделяемому ресурсу;
осуществляют системный вызов создания жесткой ссылки с именем блокировочного файла на временный файл;
если системный вызов создания жесткой ссылки выполнен успешно, то:
удаляют жесткую ссылку на временный файл;
обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
удаляют блокировочный файл;
если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка не связана с тем, что файл с именем блокировочного файла уже существует, то удаляют временный файл;
если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка связана с тем, что файл с именем блокировочного файла уже существует, то:
удаляют временный файл;
осуществляют поиск процесса, указанного в существующем блокировочном файле, выполняя следующие действия:
устанавливают файловую блокировку записи на существующий блокировочный файл;
проверяют наличие в системе процесса, данные которого указаны в существующем блокировочном файле;
если текущий процесс в системе существует, то снимают файловую блокировку записи на существующий блокировочный файл;
если текущий процесс в системе не существует, то выполняют устранение повисшей блокировки, осуществляя следующие действия:
удаляют из существующего блокировочного файла предыдущие данные несуществующего процесса;
заносят в существующий блокировочный файл данные текущего процесса;
снимают файловую блокировку записи с существующего блокировочного файла;
обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
удаляют существующий блокировочный файл.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2012140253/08A RU2526282C2 (ru) | 2012-09-21 | 2012-09-21 | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов |
US13/938,660 US9507817B2 (en) | 2012-09-21 | 2013-07-10 | Method for synchronizing access to shared resources of a computing system and detecting and eliminating deadlocks using lock files |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2012140253/08A RU2526282C2 (ru) | 2012-09-21 | 2012-09-21 | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2012140253A RU2012140253A (ru) | 2014-04-10 |
RU2526282C2 true RU2526282C2 (ru) | 2014-08-20 |
Family
ID=50339900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2012140253/08A RU2526282C2 (ru) | 2012-09-21 | 2012-09-21 | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов |
Country Status (2)
Country | Link |
---|---|
US (1) | US9507817B2 (ru) |
RU (1) | RU2526282C2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2577200C1 (ru) * | 2014-10-31 | 2016-03-10 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9584617B2 (en) * | 2013-12-31 | 2017-02-28 | Successfactors, Inc. | Allocating cache request in distributed cache system based upon cache object and marker identifying mission critical data |
KR101806499B1 (ko) * | 2016-06-10 | 2017-12-07 | 주식회사 지어소프트 | 파일 관리 방법 및 이를 이용한 파일 관리 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219348B2 (en) * | 1999-07-28 | 2007-05-15 | International Business Machines Corporation | Detecting and causing latent deadlocks in multi-threaded programs |
US7293033B1 (en) * | 2002-03-27 | 2007-11-06 | Swsoft Holdings, Ltd. | System and method for providing effective file-sharing in a computer system to allow concurrent multi-user access |
RU2344476C2 (ru) * | 2003-02-28 | 2009-01-20 | Майкрософт Корпорейшн | Способ задержки блокировки файлов сервера при редактировании |
US7509322B2 (en) * | 2001-01-11 | 2009-03-24 | F5 Networks, Inc. | Aggregated lock management for locking aggregated files in a switched file system |
US7617365B2 (en) * | 2004-04-28 | 2009-11-10 | Emc Corporation | Systems and methods to avoid deadlock and guarantee mirror consistency during online mirror synchronization and verification |
US7953932B2 (en) * | 2008-02-13 | 2011-05-31 | International Business Machines Corporation | System and method for avoiding deadlocks when performing storage updates in a multi-processor environment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292792B1 (en) * | 1999-03-26 | 2001-09-18 | Intelligent Learning Systems, Inc. | System and method for dynamic knowledge generation and distribution |
US7246119B2 (en) * | 2002-03-08 | 2007-07-17 | Kabushiki Kaisha Toshiba | Method and implementation of session-based file locking for network applications |
-
2012
- 2012-09-21 RU RU2012140253/08A patent/RU2526282C2/ru active
-
2013
- 2013-07-10 US US13/938,660 patent/US9507817B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219348B2 (en) * | 1999-07-28 | 2007-05-15 | International Business Machines Corporation | Detecting and causing latent deadlocks in multi-threaded programs |
US7509322B2 (en) * | 2001-01-11 | 2009-03-24 | F5 Networks, Inc. | Aggregated lock management for locking aggregated files in a switched file system |
US7293033B1 (en) * | 2002-03-27 | 2007-11-06 | Swsoft Holdings, Ltd. | System and method for providing effective file-sharing in a computer system to allow concurrent multi-user access |
RU2344476C2 (ru) * | 2003-02-28 | 2009-01-20 | Майкрософт Корпорейшн | Способ задержки блокировки файлов сервера при редактировании |
US7617365B2 (en) * | 2004-04-28 | 2009-11-10 | Emc Corporation | Systems and methods to avoid deadlock and guarantee mirror consistency during online mirror synchronization and verification |
US7953932B2 (en) * | 2008-02-13 | 2011-05-31 | International Business Machines Corporation | System and method for avoiding deadlocks when performing storage updates in a multi-processor environment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2577200C1 (ru) * | 2014-10-31 | 2016-03-10 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов |
Also Published As
Publication number | Publication date |
---|---|
RU2012140253A (ru) | 2014-04-10 |
US20140089256A1 (en) | 2014-03-27 |
US9507817B2 (en) | 2016-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10585874B2 (en) | Locking concurrent commands in a database management system | |
CN107004010B (zh) | 控制多数据库系统 | |
US7653791B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US9348765B2 (en) | Expediting RCU grace periods under user mode control | |
US8495638B2 (en) | Component-specific disclaimable locks | |
US9672077B2 (en) | Reentrant read-write lock algorithm | |
US10162644B2 (en) | Shielding real-time workloads from OS jitter due to expedited grace periods | |
EP3504638B1 (en) | Storage virtualization for files | |
US10417179B2 (en) | Method for managing files and apparatus using the same | |
CN106155839B (zh) | 一种用于备份数据的方法与设备 | |
RU2746155C2 (ru) | Уничтожение объекта на основе последовательности выполняемых действий | |
CN111414256A (zh) | 基于麒麟移动操作系统的应用程序进程派生方法、系统及介质 | |
RU2526282C2 (ru) | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов | |
WO2019006997A1 (zh) | 程序死锁检测方法、存储介质、设备及系统 | |
CN114282074B (zh) | 数据库操作方法、装置、设备及存储介质 | |
US20120059997A1 (en) | Apparatus and method for detecting data race | |
Yi et al. | A Universal Construction to implement Concurrent Data Structure for NUMA-muticore | |
RU2577200C1 (ru) | Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов | |
CN104079526A (zh) | 支持实时策略加载的流量过滤防攻击方法与系统 | |
CN111949362A (zh) | 一种基于虚拟化技术的主机信息采集方法 | |
EP1569121B1 (en) | Method and system for detecting potential deadlocks in computer programs | |
CN114138728A (zh) | 一种修改共享文件内容的方法、装置、设备、存储介质 | |
푸카이 | A shared memory-based lock manager for SQLite on multicore platform | |
RU2480819C2 (ru) | Способ оптимизации работы со связными списками |