RU2568292C2 - Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия - Google Patents

Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия Download PDF

Info

Publication number
RU2568292C2
RU2568292C2 RU2013158133/08A RU2013158133A RU2568292C2 RU 2568292 C2 RU2568292 C2 RU 2568292C2 RU 2013158133/08 A RU2013158133/08 A RU 2013158133/08A RU 2013158133 A RU2013158133 A RU 2013158133A RU 2568292 C2 RU2568292 C2 RU 2568292C2
Authority
RU
Russia
Prior art keywords
interprocess
data
interaction
asynchronous
synchronous
Prior art date
Application number
RU2013158133/08A
Other languages
English (en)
Other versions
RU2013158133A (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 RU2013158133/08A priority Critical patent/RU2568292C2/ru
Priority to US14/220,590 priority patent/US9201712B2/en
Priority to DE202014104595.3U priority patent/DE202014104595U1/de
Priority to CN201410835121.8A priority patent/CN104679598B/zh
Publication of RU2013158133A publication Critical patent/RU2013158133A/ru
Application granted granted Critical
Publication of RU2568292C2 publication Critical patent/RU2568292C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

Область техники
Изобретение относится к системам и способам увеличения эффективности межпроцессного взаимодействия за счет выбора между синхронными и асинхронными операциями.
Уровень техники
Определим ряд основных терминов, используемых в описании.
Межпроцессное взаимодействие (IPC) - набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов.
Асинхронный процесс - процесс, в котором операция не требует отклика для продолжения выполнения.
Синхронный процесс - процесс, в котором операция требует отклика для продолжения выполнения.
Операция - элементарное действие, выполняемое в рамках рассматриваемого процесса (в качестве операции может выступать, например, API функция).
Современные операционные системы при обмене данными между двумя процессами методами межпроцессного взаимодействия используют как синхронные, так и асинхронные операции.
Каждый из указанных типов операций используется для своих целей и обладает как преимуществами, так и недостатками. Асинхронные операции позволяют процессу не останавливать свою работу для ожидания ответа и продолжать работу дальше, но при этом являются более медленными, требуют больше ресурсов операционной системы и сложнопредсказуемы. С другой стороны, синхронные операции более быстрые, требуют меньше ресурсов операционной системы и легко предсказуемы, но при этом до прихода ответа не позволяют процессу продолжать работу.
Тем не менее, при взаимодействии между процессами возникают ситуации, когда выполнять задачу через асинхронные вызовы становится нерационально: когда ресурсы, с которыми работает процесс в текущий момент, свободны, требуемые данные были ранее сохранены в кэше и т.п., становится выгоднее выполнить требуемую операцию через синхронный вызов, поскольку он будет выполнен быстро. Аналогично бывают ситуации, когда асинхронный вызов может оказаться предпочтительнее синхронного.
Выходом из сложившейся ситуации может стать выбор между синхронным и асинхронным типом межпроцессного взаимодействия в зависимости от текущего состояния системы. Такой подход позволит более рационально использовать ресурсы системы, уменьшая время их простоя, увеличить скорость работы операционной системы, повысить ее стабильность и предсказуемость.
Теоретическое обоснование для выражения синхронных вызовов через асинхронные было дано Чарльзом Энтони Ричардом Хоаром. Более подробно об этом можно прочитать в статье Стефана Готца "Asynchronous communication using synchronous IPC".
В заявке US 20130152096 A1 рассматривается схема выбора между синхронными и асинхронными системными вызовами в зависимости от выбранного режима и приоритетов исполнения задач. Тем не менее, в заявке, во-первых, не указано, с какими именно элементами работает система выбора между асинхронными и синхронными типами межпроцессного взаимодействия, во-вторых, не указаны критерии, по которым определяется, что с ресурсами можно работать синхронно.
В патенте US 6938251 B1 описана технология получения однопоточным приложением асинхронных сообщений. Тем не менее, данная технология никак не описывает работу многопоточных систем и не содержит функционала выбора между синхронными и асинхронными способами передачи и получения данных.
Из всего вышесказанного можно сделать выводы, что для ускорения работы, например, микроядра операционной системы важно исследование ресурсов, с которыми работают процессы, и осуществление выбора типов межпроцессных взаимодействий. Данную работу могут выполнять специализированные модули ядра операционной системы, отвечающие за логику работы межпроцессных взаимодействий.
Настоящее изобретение позволяет эффективно решить задачу повышения эффективности работы операционной системы за счет выбора между синхронным и асинхронным типом межпроцессного взаимодействия.
Раскрытие изобретения
Изобретение относится к системам и способам увеличения эффективности межпроцессного взаимодействия, заключающегося по меньшей мере в увеличении скорости передачи данных от процесса к процессу во время межпроцессного взаимодействия или увеличении использования требуемых для межпроцессного взаимодействия ресурсов, уменьшающем время их простоя. Технический результат настоящего изобретения заключается в увеличении эффективности межпроцессного взаимодействия за счет выбора между синхронными и асинхронными методами межпроцессного взаимодействия, где выбор обеспечивает по меньшей мере увеличение скорости передачи данных от процесса к процессу во время межпроцессного взаимодействия или увеличение использования требуемых для межпроцессного взаимодействия ресурсов, уменьшающее время их простоя.
Система выбора синхронного или асинхронного межпроцессного взаимодействия содержит: первый процесс, предназначенный для выполнения действий в операционной системе и передающий данные второму процессу с использованием методов межпроцессного взаимодействия, второй процесс, предназначенный для выполнения действий в операционной системе и принимающий данные от первого процесса с использованием методов межпроцессного взаимодействия, тип которого будет выбран динамически на основании решения, вынесенного средством анализа, средство обеспечения межпроцессного взаимодействия, предназначенное для обеспечения синхронного или асинхронного взаимодействия между процессами, а также для выбора асинхронного или синхронного метода межпроцессного взаимодействия, средство анализа, предназначенное для получения от средства обеспечения межпроцессного взаимодействия запроса на проведение исследования оптимального выбора между асинхронным и синхронным типом межпроцессного взаимодействия, запроса средству получения данных от используемого ресурса на получение от последнего свойств используемых процессами ресурсов и выбора оптимального для текущей задачи типа межпроцессного взаимодействия на основе полученных данных от средства получения данных от используемого ресурса, средство получения данных от используемого ресурса, предназначенное для выдачи средству анализа по его запросу по крайней мере одного из свойств ресурса.
В другом частном случае реализации системы в качестве метода межпроцессного взаимодействия выступает по крайней мере один из методов с использованием: файла, сигнала, сокета, канала, именованного канала, семафора, разделяемой памяти, обмена сообщениями, проецируемого в память файла, очереди сообщений.
Еще в одном частном случае реализации системы в качестве собираемых данных о состоянии ресурса выступает по меньшей мере одна из следующих характеристик: идентификаторы первого и второго процессов, тип и объем передаваемых данных, идентификаторы ресурсов, с которым будут работать процессы, наличие информации в кэше ресурса, состояние очереди доступа к ресурсу.
В другом частном случае реализации системы в качестве ресурса, используемого процессами, выступает по крайней мере один из следующих: оперативная память, процессорное время, сетевая пропускная способность, файлы, носители информации.
Еще в одном частном случае реализации системы в качестве свойства ресурса, используемого процессами, выступает по крайней мере один из следующих: наличие требуемой информации, сохраненной ранее в хэше, объем свободной оперативной памяти, объем свободного места на жестком диске.
Способ выбора синхронного или асинхронного межпроцессного взаимодействия, в котором: первый процесс пытается передать данные второму процессу одним из методов межпроцессного взаимодействия, собирают данные о состоянии ресурсов, используемых процессами в межпроцессном взаимодействии, проводят анализ собранных по процессам и ресурсам данных, заключающийся в определении, при каком типе передачи данных от первого процесса второму будет достигнут по меньшей мере один из следующих результатов: передача будет выполнена за минимальное время, передача будет выполнена с максимальным использованием требуемых ресурсов, сводящим к минимуму их простой, передача приведет к оказанию минимального влияния на остальные процессы операционной системы, на основании анализа принимают решение о синхронном или асинхронном типе межпроцессного взаимодействия, который будет использован для передачи данных от первого процесса второму.
В другом частном случае реализации способа в качестве метода межпроцессного взаимодействия выступает по крайней мере один из методов с использованием: файла, сигнала, сокета, канала, именованного канала, семафора, разделяемой памяти, обмена сообщениями, проецируемого в память файла, очереди сообщений.
Еще в одном частном случае реализации способа в качестве собираемых данных о состоянии ресурса выступает по меньшей мере одна из следующих характеристик: идентификаторы первого и второго процессов, тип и объем передаваемых данных, идентификаторы ресурсов, с которым будут работать процессы, наличие информации в кэше ресурса, состояние очереди доступа к ресурсу.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 - структурная схема алгоритма выбора синхронного или асинхронного межпроцессного взаимодействия.
Фиг. 2 - структурная схема алгоритма работы средства анализа.
Фиг. 3 - пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ни чем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Фиг. 1 показывает структурную схему системы выбора синхронного или асинхронного межпроцессного взаимодействия.
Система выбора синхронного или асинхронного типа метода межпроцессного взаимодействия (такого как файл, сигнал, сокет, канал, именованный канал, семафор, разделяемая память, обмен сообщениями, проецируемый в память файл, очередь сообщений и т.д.) состоит из первого процесса 110, средства обеспечения межпроцессного взаимодействия 120, средства анализа 130, средства получения данных от используемого ресурса 140 и второго процесса 150. Первый процесс 110 предназначен для выполнения действий в операционной системе по передаче данных второму процессу одним из методов межпроцессного взаимодействия. Второй процесс 150 предназначен для выполнения действий в операционной системе по получению данных от первого процесса одним из методов межпроцессного взаимодействия. Средство обеспечения межпроцессного взаимодействия 120 предназначено для осуществления взаимодействия между процессами с помощью набора способов обмена данными, таких как обмен сообщениями, синхронизация, разделяемая память или удаленные вызовы.
Необходимость передачи информации между процессами обусловлена тем, что реализация всей логики работы в рамках одного процесса, во-первых, зачастую невозможна (в случае, когда с общими данными работают несколько приложений на одном или даже разных компьютерах), во-вторых, такая монолитная организация работы сложна при реализации и отладке, что, в свою очередь, может привести к ошибкам в исполнении, а также стать причиной появления уязвимостей, которые могут быть использованы вредоносными программами.
Одним из примеров межпроцессного взаимодействия является передача изображения из программы по сканированию документов программе по обработке графики. Первый процесс, принадлежащий программе по сканированию, сохраняет отсканированное изображение во временном файле, а второй процесс, принадлежащий программе по обработке графики, обнаруживает факт появления файла в файловой системе, считывает его и отображает изображение в окне программы.
Другим примером обмена данными между процессами является отображение актуальной биржевой информации, загружаемой с сайта биржи в браузер пользователя. В данном случае первый процесс, запущенный на сервере биржи, отсылает данные подписчикам по мере ее обновления. Второй процесс, работающий на компьютере пользователя, постоянно ожидает передачи данных от процесса, работающего на сервера биржи, и как только от первого процесса такие данные приходят, например информация о котировках на ценные бумаги, тут же отображает ее в браузере пользователя. В качестве методов межпроцессного взаимодействия между описанными выше процессами используются сокеты и каналы.
Средство обеспечения межпроцессного взаимодействия 120 принимает запрос от первого процесса 110 на передачу данных второму процессу 150. После чего передает данные, характеризующие запрос (такие как идентификаторы первого и второго процесса, тип и объем передаваемых данных, идентификаторы ресурсов, с которым будут работать процессы, и т.д.) средству анализа 130 для принятия решения, какой из типов межпроцессного взаимодействия, синхронный или асинхронный, использовать для передачи данных от первого процесса 110 второму 150. Далее, после завершения работы средства анализа 130, получает от последнего информацию о типе межпроцессного взаимодействия, который необходимо использовать при передаче данных от первого процесса 110 второму 150. После чего в соответствии с полученным результатом осуществляет передачу данных второму процессу 150 средствами межпроцессного взаимодействия выбранного типа.
Средство анализа 130 предназначено для получения от средства обеспечения межпроцессного взаимодействия 120 запроса на определение для текущей задачи наиболее оптимального типа межпроцессного взаимодействия, проведения анализа по определению синхронного или асинхронного типа, при котором задача передачи данных от первого процесса 110 второму 150 была бы выполнена с наилучшей эффективностью, под которой подразумевается минимальное время исполнение запроса, минимальное время простоя ресурсов (например, таких как оперативная память, процессорное время, сетевая пропускная способность, файлы, носители информации и т.д.), а также минимальное увеличение этих характеристик для остальных процессов операционной системы, и предоставления результата анализа средству обеспечения межпроцессного взаимодействия 120.
Средство анализа 130 принимает от средства обеспечения межпроцессного взаимодействия 120 запрос на проведение анализа по определению типа межпроцессного взаимодействия, с помощью которого первый процесс 110 будет передавать данные второму процессу 150, и вынесения решения о том, какой из типов, синхронный или асинхронный, будет более эффективным для передачи данных, где под эффективностью понимается минимальное время исполнение запроса, минимальное время простоя ресурсов (например, таких как жесткий диск, оперативная память и т.д.), а также минимальное увеличение этих характеристик для остальных процессов операционной системы. После чего средство анализа 130, на основе полученных в запросе от средства обеспечения межпроцессного взаимодействия 120 данных (таких как идентификаторы первого 110 и второго 150 процесса, тип и объем передаваемых данных, идентификаторы ресурсов, с которым будут работать процессы, и т.д.), получает у средства получения данных от используемого ресурса 140 данные о состоянии ресурсов, используемые процессами 110 и 150, которые в зависимости от типа ресурсов включают такие параметры как наличие информации, сохраненной ранее в кэше (для разгрузки ресурсов и ускорения работы с ними результаты последних или часто вызываемых операций с ресурсами, например результаты выполненного SQL запроса или содержимое запрошенного файла, сохраняются в оперативной памяти или на жестком диске и при следующем обращении к ресурсу за такими же данными сразу выдаются клиенту), состояние очереди доступа к ресурсу, т.е. занят ли он или свободен и т.д. На основе анализа полученных данных средство анализа 130 выносит решение о том, какой тип межпроцессного взаимодействия, синхронный или асинхронный, предпочтительнее. После чего передает результат анализа средству обеспечения межпроцессного взаимодействия 120 для дальнейшей работы.
Средство получения данных от используемого ресурса 140 предназначено для выдачи по запросу и на основании переданных средством анализа 130 данных (таких как идентификаторы первого 110 и второго 150 процессов, тип и объем передаваемых данных, идентификаторы ресурсов, с которым будут работать процессы, и т.д.) состояния и свойств ресурса (таких как размер очереди процессов, использующих ресурс, наличие требуемой информации, ранее сохраненной в кэше, объем свободной оперативной памяти, объем свободного места на жестком диске и т.д.), полученных от ресурса или модулей операционной системы, обслуживающих ресурс (например, драйвер жесткого диска).
В качестве примера работы системы выбора межпроцессного взаимодействия можно привести ситуацию, когда один процесс хочет считать файл с жесткого диска. При этом заранее неизвестно, сколько на данную операцию будет затрачено времени, поскольку диск может быть загружен обращениями от других процессов, поиск файла на диске также может занять время и т.д. Поэтому разработчик при реализации своих алгоритмов воспользовался асинхронным вариантом функции считывания данных с диска. Когда средство анализа 130 получает от средства обеспечения межпроцессного взаимодействия 120 запрос на проведение исследования, какой из синхронного и асинхронного типов межпроцессного взаимодействия предпочтительнее использовать, оно запрашивает у средства получения данных от используемого ресурса 140 (в данном случае жесткого диска) информацию о его загруженности (размер очереди процессов, работающих с ним) и том, есть ли требуемые данные в кэше (т.е. были ли требуемые данные уже когда-то зачитаны и сохранены в память). Если требуемая информация уже есть в памяти или жесткий диск свободен, то средство анализа 130 сообщает средству обеспечения межпроцессного взаимодействия 120, что операцию считывания файла с жесткого диска можно выполнить синхронно (поскольку она пройдет быстрее, чем если бы использовалась асинхронная операция считывания), в противном случае операция должна быть выполнена асинхронно.
В качестве еще одного примера выбора между синхронным и асинхронным межпроцессным взаимодействием можно привести исполнение SQL запросов в базах данных. Процесс посылает в базу данных SQL запрос на предоставление данных по некоторым критериям. Поскольку время данной операции может быть довольно большим, то разработчик использует асинхронный тип запроса. Средство анализа 130 запрашивает у средства получения данных от используемого ресурса 140 (в данном случае базы данных) информацию о кэшировании (т.е. был ли ранее выполнен подобный SQL запрос и были ли сохранены по нему данные). Если кэширование было произведено, т.е. данные можно получить быстро, то SQL запрос можно выполнить синхронно.
Фиг. 2 показывает структурную схему алгоритма работы средства анализа.
На этапе 210 на вход средства анализа 230 от первого процесса приходит запрос на передачу данных одним из методов межпроцессного взаимодействия. Затем, на этапе 220 происходит определение способа передачи данных - синхронного или асинхронного. В случае если способ межпроцессного взаимодействия запроса синхронный, то второй процесс на этапе 250 получает данные от первого процесса методом синхронного межпроцессного взаимодействия. В случае если способ межпроцессного взаимодействия запроса асинхронный, то на этапе 230 происходит определение, есть ли реализация данного запроса через синхронный тип межпроцессного взаимодействия. В случае если у асинхронного запроса межпроцессного взаимодействия не существует синхронной версии, то второй процесс на этапе 260 получает данные от первого процесса методом асинхронного межпроцессного взаимодействия. В случае если у асинхронного запроса межпроцессного взаимодействия существует синхронная версия, то на этапе 240 на основе результатов опроса используемого ресурса происходит вычисление возможности использования синхронной версии межпроцессного взаимодействия. В случае если использование синхронной версии запроса межпроцессного взаимодействия признано целесообразным, то второй процесс на этапе 250 получает данные от первого процесса методом синхронного межпроцессного взаимодействия, в противном случае второй процесс на этапе 260 получает данные от первого процесса методом асинхронного межпроцессного взаимодействия.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована как любая известная из уровня техники шинная структура, содержащая, в свою очередь, память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20, в свою очередь, содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода, по своему обычаю, подключают к компьютерной системе 20 через последовательный порт 46, который, в свою очередь, подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является таким же персональным компьютером или сервером, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

Claims (7)

1. Система выбора синхронного или асинхронного межпроцессного взаимодействия, которая содержит:
а) средство обеспечения межпроцессного взаимодействия, предназначенное для обеспечения синхронного или асинхронного взаимодействия между первым процессом, предназначенным для выполнения действий в операционной системе и передающим данные второму процессу с использованием методов межпроцессного взаимодействия посредством средства обеспечения межпроцессного взаимодействия, и вторым процессом, предназначенным для выполнения действий в операционной системе и принимающим данные от первого процесса с использованием методов межпроцессного взаимодействия посредством средства обеспечения межпроцессного взаимодействия, тип которого будет выбран динамически на основании решения, вынесенного средством анализа, а также для выбора асинхронного или синхронного метода межпроцессного взаимодействия;
б) средство анализа, предназначенное для получения от средства обеспечения межпроцессного взаимодействия запроса на проведение исследования оптимального выбора между асинхронным и синхронным типом межпроцессного взаимодействия, запроса средству получения данных от используемого ресурса на получение от последнего свойств используемых процессами ресурсов и выбора оптимального типа межпроцессного взаимодействия на основе полученных данных от средства получения данных от используемого ресурса;
в) средство получения данных от используемого ресурса, предназначенное для выдачи средству анализа по его запросу по крайней мере одного из свойств ресурса, такого как:
- наличие требуемой информации, сохраненной ранее в кэше,
- объем свободной оперативной памяти,
- объем свободного места на жестком диске.
2. Система по п. 1, в которой в качестве метода межпроцессного взаимодействия выступает по крайней мере один из методов с использованием:
- файла,
- сигнала,
- сокета,
- канала,
- именованного канала,
- семафора,
- разделяемой памяти,
- обмена сообщениями,
- проецируемого в память файла,
- очереди сообщений.
3. Система по п. 1, в которой в качестве собираемых данных о состоянии ресурса выступает по меньшей мере одна из следующих характеристик:
- идентификаторы первого и второго процессов,
- тип и объем передаваемых данных,
- идентификаторы ресурсов, с которыми будут работать процессы,
- наличие информации в кэше ресурса,
- состояние очереди доступа к ресурсу.
4. Система по п. 1, в которой в качестве ресурса, используемого процессами, выступает по крайней мере один из следующих:
- оперативная память,
- процессорное время,
- сетевая пропускная способность,
- файлы,
- носители информации.
5. Способ выбора синхронного или асинхронного межпроцессного взаимодействия, в котором:
а) передают данные от первого процесса, предназначенного для выполнения действий в операционной системе и передающего данные второму процессу с использованием методов межпроцессного взаимодействия посредством средства обеспечения межпроцессного взаимодействия, второму процессу, предназначенному для выполнения действий в операционной системе и принимающему данные от первого процесса с использованием методов межпроцессного взаимодействия посредством средства обеспечения межпроцессного взаимодействия, одним из методов межпроцессного взаимодействия;
б) собирают данные о состоянии ресурсов, используемых процессами в межпроцессном взаимодействии, где в качестве данных выступает по меньшей мере:
- наличие требуемой информации, сохраненной ранее в кэше,
- объем свободной оперативной памяти,
- объем свободного места на жестком диске;
в) проводят анализ собранных по процессам и ресурсам данных, заключающийся в определении того, что использование синхронного типа передачи данных от первого процесса второму приведет к достижению по меньшей мере одного из следующих результатов:
- передача будет выполнена за минимальное время,
- передача будет выполнена с максимальным использованием требуемых ресурсов, сводящим к минимуму их простой;
г) на основании анализа принимают решение о синхронном или асинхронном типе межпроцессного взаимодействия, который будет использован для передачи данных от первого процесса второму.
6. Способ по п. 5, в котором в качестве метода межпроцессного взаимодействия выступает по крайней мере один из методов с использованием:
- файла,
- сигнала,
- сокета,
- канала,
- именованного канала,
- семафора,
- разделяемой памяти,
- обмена сообщениями,
- проецируемого в память файла,
- очереди сообщений.
7. Способ по п. 5, в котором в качестве собираемых данных о состоянии ресурса выступает по меньшей мере одна из следующих характеристик:
- идентификаторы первого и второго процессов,
- тип и объем передаваемых данных,
- идентификаторы ресурсов, с которым будут работать процессы,
- наличие информации в кэше ресурса,
- состояние очереди доступа к ресурсу.
RU2013158133/08A 2013-12-27 2013-12-27 Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия RU2568292C2 (ru)

Priority Applications (4)

Application Number Priority Date Filing Date Title
RU2013158133/08A RU2568292C2 (ru) 2013-12-27 2013-12-27 Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия
US14/220,590 US9201712B2 (en) 2013-12-27 2014-03-20 System and method for selecting a synchronous or asynchronous interprocess communication mechanism
DE202014104595.3U DE202014104595U1 (de) 2013-12-27 2014-09-25 System und Computerprogrammprodukt zum Auswählen eines synchronen oder asynchronen Interprozesskommunikationsmechanismus
CN201410835121.8A CN104679598B (zh) 2013-12-27 2014-12-26 用于选择同步或异步进程间通信机制的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013158133/08A RU2568292C2 (ru) 2013-12-27 2013-12-27 Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия

Publications (2)

Publication Number Publication Date
RU2013158133A RU2013158133A (ru) 2015-07-10
RU2568292C2 true RU2568292C2 (ru) 2015-11-20

Family

ID=53314689

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013158133/08A RU2568292C2 (ru) 2013-12-27 2013-12-27 Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия

Country Status (3)

Country Link
US (1) US9201712B2 (ru)
CN (1) CN104679598B (ru)
RU (1) RU2568292C2 (ru)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102254101B1 (ko) * 2014-10-20 2021-05-20 삼성전자주식회사 데이터 처리 시스템 및 이의 동작 방법
US10158709B1 (en) * 2015-06-19 2018-12-18 Amazon Technologies, Inc. Identifying data store requests for asynchronous processing
US9916092B2 (en) * 2015-12-09 2018-03-13 Vmware, Inc. Methods and systems to allocate physical data-storage costs to logical disks
CN106095593B (zh) 2016-05-31 2019-04-16 Oppo广东移动通信有限公司 一种前、后景应用程序行为同步方法及装置
US11755363B2 (en) * 2016-12-19 2023-09-12 Vmware, Inc. Framework for workflow extensibility in a cloud computing system
US10467151B2 (en) * 2017-09-05 2019-11-05 NGINX, Inc. Using shared memory to transport data between server processes
CN107656827A (zh) * 2017-09-27 2018-02-02 郑州云海信息技术有限公司 一种进程间通信方法及系统
CN109669784B (zh) 2017-10-13 2021-06-22 华为技术有限公司 一种进程间通信的方法及系统
CN108038011A (zh) * 2017-12-28 2018-05-15 深圳市富途网络科技有限公司 一种实现sns多进程通信的方法
US11042424B1 (en) 2018-04-24 2021-06-22 F5 Networks, Inc. Pipelined request processing using shared memory
US10761914B2 (en) * 2018-10-16 2020-09-01 International Business Machines Corporation Replacing generated procedure calls with generated inter-process communication
RU2739830C1 (ru) * 2019-09-30 2020-12-28 Акционерное общество "Лаборатория Касперского" Система и способ выбора средства обнаружения вредоносных файлов
EP3828748B1 (en) 2019-11-27 2024-06-26 AO Kaspersky Lab System and method for access control in electronic control units of vehicles
EP3926919B1 (en) 2020-06-19 2024-08-21 AO Kaspersky Lab System and method for enabling an interprocess communication in electronic control units of vehicles
CN116089049B (zh) * 2023-04-07 2023-09-12 北京卡普拉科技有限公司 基于异步并行i/o请求的进程同步调度方法、装置以及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
RU2358413C1 (ru) * 2005-03-16 2009-06-10 Самсунг Электроникс Ко., Лтд. Устройство и способ выбора сетевого интерфейса в мобильном терминале, поддерживающем схему множественного беспроводного доступа
US8336056B1 (en) * 2009-12-22 2012-12-18 Gadir Omar M A Multi-threaded system for data management

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2149445A1 (en) 1994-07-27 1996-01-28 Aziza Bushra Faruqi Separation and transmission control method and apparatus for a microkernal data processing system
US7013465B1 (en) * 1999-08-17 2006-03-14 Emc Corporation System, device and method for interprocessor communication in a computer system
US6938251B1 (en) 2000-09-29 2005-08-30 Sprint Communications Company L.P. Deferred-Synchronous messaging software in a non-threaded environment
GB2426161A (en) 2005-05-13 2006-11-15 Onshare Ltd Networking via a communication layer
US7430633B2 (en) 2005-12-09 2008-09-30 Microsoft Corporation Pre-storage of data to pre-cached system memory
US20080168130A1 (en) * 2007-01-09 2008-07-10 Wen-Tzer Thomas Chen Method and system for determining whether to send a synchronous or asynchronous resource request
CN101266561B (zh) * 2008-04-29 2010-06-09 中兴通讯股份有限公司 一种在多核多线程处理器中的核间消息通信方法
CN101674326B (zh) * 2009-09-21 2012-09-05 中兴通讯股份有限公司 进程间同步通信实现方法及代理单元
US8296411B2 (en) * 2010-03-01 2012-10-23 International Business Machines Corporation Programmatically determining an execution mode for a request dispatch utilizing historic metrics
US8726287B2 (en) * 2010-11-24 2014-05-13 Thomson Licensing Method for reducing inter-process communication latency
KR20130063825A (ko) 2011-12-07 2013-06-17 삼성전자주식회사 운영체제에서 동적으로 선점 구간을 조정하는 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
RU2358413C1 (ru) * 2005-03-16 2009-06-10 Самсунг Электроникс Ко., Лтд. Устройство и способ выбора сетевого интерфейса в мобильном терминале, поддерживающем схему множественного беспроводного доступа
US8336056B1 (en) * 2009-12-22 2012-12-18 Gadir Omar M A Multi-threaded system for data management

Also Published As

Publication number Publication date
US9201712B2 (en) 2015-12-01
CN104679598B (zh) 2017-10-31
US20150186192A1 (en) 2015-07-02
RU2013158133A (ru) 2015-07-10
CN104679598A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
RU2568292C2 (ru) Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия
CN109375872B (zh) 数据访问请求的处理方法、装置和设备及存储介质
Fernando et al. Computing with nearby mobile devices: a work sharing algorithm for mobile edge-clouds
US10642822B2 (en) Resource coordination method, apparatus, and system for database cluster
US20160253220A1 (en) Data center operation
CN108536526B (zh) 一种基于可编程硬件的资源管理方法以及装置
CN110383764B (zh) 无服务器系统中使用历史数据处理事件的系统和方法
US20190196875A1 (en) Method, system and computer program product for processing computing task
Jia et al. Improving the performance of distributed tensorflow with RDMA
US9535756B2 (en) Latency-hiding context management for concurrent distributed tasks in a distributed system
JP6308508B2 (ja) メムキャッシュドシステムのクライアント装置およびサーバ装置、データをキャッシュするメモリのための方法、コンピュータプログラム、並びにコンピュータ可読ストレージ媒体
WO2018076238A1 (zh) 异构系统、计算任务分配方法及装置
CA2807759C (en) Application monitoring
CN103500108A (zh) 系统内存访问方法、节点控制器和多处理器系统
CN110955461A (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
JP4414447B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
WO2016188293A1 (zh) 数据获取方法和装置
US20170161114A1 (en) Method and apparatus for time-based scheduling of tasks
US11941446B1 (en) Reducing extraneous messages in a distributed lock system
CN103488530A (zh) 一种锁迁移方法及装置
EP4310678A1 (en) Accelerator control system, accelerator control method, and accelerator control program
US11386039B2 (en) Userspace split data-centric heterogeneous computing architecture
JP2013206233A (ja) メッセージ通信方法,メッセージ通信プログラムおよびコンピュータノード
US8805899B2 (en) Data channel utilization management in multi-user system
Argyroulis Recent Advancements In Distributed System Communications