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

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

Info

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
Application number
RU2012140253/08A
Other languages
English (en)
Other versions
RU2012140253A (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 RU2012140253/08A priority Critical patent/RU2526282C2/ru
Priority to US13/938,660 priority patent/US9507817B2/en
Publication of RU2012140253A publication Critical patent/RU2012140253A/ru
Application granted granted Critical
Publication of RU2526282C2 publication Critical patent/RU2526282C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

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)

  1. Способ синхронизации доступа к разделяемому ресурсу вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов, заключающийся в том, что
    ассоциируют разделяемый ресурс с блокировочным файлом;
    вызывают системный вызов атомарного эксклюзивного создания и открытия временного файла с уникальным именем и в той же файловой системе, в которой предполагается создание блокировочного файла, со стороны текущего процесса, пытающегося получить доступ к разделяемому ресурсу;
    помещают во временный файл информацию о текущем процессе, который пытается обратиться к разделяемому ресурсу;
    осуществляют системный вызов создания жесткой ссылки с именем блокировочного файла на временный файл;
    если системный вызов создания жесткой ссылки выполнен успешно, то:
    удаляют жесткую ссылку на временный файл;
    обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
    удаляют блокировочный файл;
    если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка не связана с тем, что файл с именем блокировочного файла уже существует, то удаляют временный файл;
    если системный вызов создания жесткой ссылки выполнен с ошибкой и ошибка связана с тем, что файл с именем блокировочного файла уже существует, то:
    удаляют временный файл;
    осуществляют поиск процесса, указанного в существующем блокировочном файле, выполняя следующие действия:
    устанавливают файловую блокировку записи на существующий блокировочный файл;
    проверяют наличие в системе процесса, данные которого указаны в существующем блокировочном файле;
    если текущий процесс в системе существует, то снимают файловую блокировку записи на существующий блокировочный файл;
    если текущий процесс в системе не существует, то выполняют устранение повисшей блокировки, осуществляя следующие действия:
    удаляют из существующего блокировочного файла предыдущие данные несуществующего процесса;
    заносят в существующий блокировочный файл данные текущего процесса;
    снимают файловую блокировку записи с существующего блокировочного файла;
    обеспечивают выполнение текущим процессом операций с разделяемым ресурсом;
    удаляют существующий блокировочный файл.
RU2012140253/08A 2012-09-21 2012-09-21 Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов RU2526282C2 (ru)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577200C1 (ru) * 2014-10-31 2016-03-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2577200C1 (ru) * 2014-10-31 2016-03-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов

Also Published As

Publication number Publication date
US9507817B2 (en) 2016-11-29
US20140089256A1 (en) 2014-03-27
RU2012140253A (ru) 2014-04-10

Similar Documents

Publication Publication Date Title
US10585874B2 (en) Locking concurrent commands in a database management system
CN107004010B (zh) 控制多数据库系统
EP2876556B1 (en) Fast restart of applications using shared memory
US7653791B2 (en) Realtime-safe read copy update with per-processor read/write locks
US8495638B2 (en) Component-specific disclaimable locks
US9658900B2 (en) Reentrant read-write lock algorithm
US9003420B2 (en) Resolving RCU-scheduler deadlocks
US10162644B2 (en) Shielding real-time workloads from OS jitter due to expedited grace periods
US20140281295A1 (en) Expediting RCU Grace Periods Under User Mode Control
US10417179B2 (en) Method for managing files and apparatus using the same
US20180060345A1 (en) Preventing Excessive Hydration In A Storage Virtualization System
CN106155839B (zh) 一种用于备份数据的方法与设备
RU2746155C2 (ru) Уничтожение объекта на основе последовательности выполняемых действий
CN111414256A (zh) 基于麒麟移动操作系统的应用程序进程派生方法、系统及介质
RU2526282C2 (ru) Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
CN114282074B (zh) 数据库操作方法、装置、设备及存储介质
US20120059997A1 (en) Apparatus and method for detecting data race
CN112988777B (zh) 对象处理方法、装置、计算机设备和存储介质
Yi et al. A Universal Construction to implement Concurrent Data Structure for NUMA-muticore
RU2577200C1 (ru) Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
US20150178297A1 (en) Method to Preserve Shared Blocks when Moved
CN114461409A (zh) 一种互斥信号量异常阻塞辅助分析方法、系统及存储介质
CN104079526A (zh) 支持实时策略加载的流量过滤防攻击方法与系统
EP1569121B1 (en) Method and system for detecting potential deadlocks in computer programs
CN114138728A (zh) 一种修改共享文件内容的方法、装置、设备、存储介质