Восстановление управления ресурсом обработки, который исполняет внешний контекст исполнения

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

 

Предшествующий уровень техники

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На фиг.1A-1D показаны блок-схемы, иллюстрирующие варианты выполнения планировщика 22 в процессе 12 среды 10 исполнения. Планировщик 22 выполнен с возможностью запроса и приема уведомлений о событии завершения, ассоциированных с внешним контекстом 26 исполнения.

Как показано на фиг.1A, среда 10 исполнения представляет режим исполнения, соответствующей работе компьютерной системы, например, компьютерной системы 100, показанной на фиг.5 и дополнительно описанной ниже, где компьютерная система исполняет инструкции. Компьютерная система генерирует среду 10 исполнения на основе платформы исполнения, такой как платформа 122 исполнения, которая показана на фиг.5 и дополнительно подробно описана ниже.

Среда 10 исполнения включает в себя, по меньшей мере, один запущенный процесс 12, операционную систему (OS, ОС) 14, набор аппаратных потоков 16(1)-16(M), где М представляет собой целое число, которое больше или равно единице и обозначает M-тый аппаратный поток 16(M), и уровень 18 управления ресурсами. Среда 10 исполнения обеспечивает возможность выполнения задач процесса 12 вместе с задачами любых других процессов, которые совместно присутствуют с процессом 12 (не показан), используя OS 14, уровень 18 управления ресурсами и аппаратные потоки 16(1)-16(M). Среда 10 исполнения работает совместно с OS 14 и/или уровнем 18 управления ресурсами для обеспечения процессу 12 возможности получения процессора и других ресурсов компьютерной системы (например, аппаратных потоков 16(1)-16(M)).

Среда 10 исполнения включает в себя функцию планировщика, которая генерирует планировщик 22. В одном варианте выполнения функция планировщика воплощена как интерфейс прикладного программирования (API) планировщика. В других вариантах выполнения функция планировщика может быть воплощена с использованием других соответствующих конструктивных элементов программирования. Будучи запущенной, функция планировщика формирует планировщик 22 в процессе 12, где планировщик 22 во время работы планирует исполнение задач процесса 12, используя один или больше аппаратных потоков 16(1)-16(M). Среда 10 исполнения может эксплуатировать мелкоструктурную параллельную обработку, которая была выражена разработчиками приложения или библиотеки в своих программах (например, процесс 12), используя сопроводительные инструменты, которые имеют информацию о возможностях, которые предоставляются функцией планировщика.

Процесс 12 включает в себя выделение веществ обработки и других ресурсов, которые вмещают один или больше контекстов исполнения (то есть потоков). Процесс 12 получает доступ к ресурсам обработки и другим ресурсам в компьютерной системе (например, к аппаратным потокам 16(1)-16(M) из OS 14 и/или уровня 18 управления ресурсами. Процесс 12 обеспечивает возможность выполнения задач, используя ресурсы обработки и другие ресурсы.

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

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

OS 14 управляет ресурсами обработки и другими ресурсами компьютерной системы и предоставляет набор функций, которые обеспечивают процессу 12 и другим процессам в компьютерной системе возможность осуществлять доступ к компонентам и использовать их. Кроме того, OS 14 предлагает контексты исполнения для планировщика 22 и процесса 12 в компьютерной системе. Как показано на фиг.1A, OS 14 предлагает контексты 34(1)-34(N) исполнения и набор контекстов 38 исполнения для планировщика 22, где N представляет собой целое число, большее чем или равное единице, и обозначает N-тый контекст 34(N) исполнения. OS 14 также предлагает контексты 26(1)-26(P) исполнения для процесса 12, где P представляет собой целое число, большее или равное единице, и обозначает P-тый контекст 26(P) исполнения.

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

Уровень 18 управления ресурсами выделяет ресурсы обработки для процесса 12 путем назначения одного или больше аппаратных потоков 16 для процесса 12. Уровень 18 управления ресурсами существует отдельно от OS 14 в вариантах выполнения, показанных на фиг.1A-1D. В других вариантах выполнения уровень 18 управления ресурсами или некоторые или все из его функций могут быть включены в OS 14.

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

Планировщик 22 взаимодействует с уровнем 18 управления ресурсами для согласования ресурсов обработки и других ресурсов компьютерной системы таким путем, который является прозрачным для процесса 12. Уровень 18 управления ресурсами выделяет аппаратные потоки 16 для планировщика 22 на основе спроса и предложения и любых политик планировщика 22.

В варианте выполнения, показанном на фиг.1А-1D, планировщик 22 управляет ресурсами обработки путем создания виртуальных процессоров 32, которые формируют абстракцию лежащих в ее основе аппаратных потоков 16. Планировщик 22 включает в себя набор виртуальных процессоров 32(1)-32(N), где N представляет собой целое число, большее или равное единице, и обозначает N-тый виртуальный процессор 32(N). Планировщик 22 объединяет виртуальные процессоры 32 с аппаратными потоками 16 путем задания соответствия каждого виртуального процессора 32 аппаратному потоку 16. Планировщик 22 может задавать отображать соответствие больше чем одного виртуального процессора 32 конкретному аппаратному потоку 16, но ставит только один аппаратный поток 16 в соответствие каждому виртуальному процессору 32. В других вариантах выполнения планировщик 22 управляет ресурсами обработки другими подходящими способами для обеспечения исполнения инструкции процесса 12, используя аппаратные потоки 16.

Набор контекстов исполнения в планировщике 22 включает в себя набор контекстов 34(1)-34(N) исполнения с соответствующими, ассоциированными задачами 36(l)-36(N), которые выполняются соответствующими виртуальными процессорами 32(1)-32(N) и в любой момент времени, во время выполнения процесса 12, набор из нуля или большего количества контекстов 38 исполнения. Каждый контекст 34 и 38 исполнения включает в себя информацию состояния, которая обозначает, является ли контекст 34 или 38 исполняющим, пригодным для запуска (например, в ответ на разблокирование или добавление в планировщик 22) или заблокированным. Контексты 34 исполнения, которые исполняются, были прикреплены к виртуальному процессору 32 и являются исполняющимися в текущее время. Контексты 38 исполнения, которые пригодны для запуска, включают в себя ассоциированную задачу 40 и готовы к исполнению доступным виртуальным процессором 32. Контексты 38 исполнения, которые блокированы, также включают в себя ассоциированную задачу 40 и ожидают данные, сообщение или событие, генерируемые другим контекстом 34 исполнения или которые будут сгенерированы другим контекстом 38 исполнения.

Каждый контекст 34 исполнения, исполняемый в виртуальном процессоре 32, может генерировать, во время его исполнения, дополнительные задачи 42, которые организуются любым подходящим способом (например, добавляются к рабочим очередям (не показаны на фиг.1A-1D)). Работа может быть сформирована путем использования любых интерфейсов прикладного программирования (API), предусмотренных средой 10 исполнения или функциональными возможностями языка программирования и в соответствующих инструментах в одном варианте выполнения. Когда исполнительные ресурсы доступны для планировщика 22, задачи назначаются контекстом 34 или 38 исполнения, которые выполняют их до окончания в виртуальных процессорах 32, прежде чем будут взяты новые задачи. Контекст 34 исполнения, исполняющийся в виртуальном процессоре 32, также может разблокировать другие контексты 38 исполнения путем генерирования данных, сообщения или события, которые будут использоваться другими контекстами 38 исполнения.

Каждая задача в планировщике 22 может быть реализована (например, реализованные задачи 36 и 40), что обозначает, что контекст 34 или 38 исполнения был или будет прикреплен к задаче, и задача готова к выполнению. Реализованные задачи обычно включают в себя разблокированные контексты исполнения и запланированные агенты. Задача, которая не реализована, называется нереализованной задачей. Нереализованные задачи (например, задачи 42), могут быть сформированы как дочерние задачи, генерируемые в результате исполнения родительских задач, и могут быть сформированы с использованием параллельных конструкций (например, parallel, parallel for, begin и finish). Планировщик 22 может быть организован в синхронизированную компоновку (например, в виде стека и/или очереди) для логически независимых задач с контекстами исполнения (то есть реализованных задач) вместе со списком очередей типа workstealing для зависимых задач (то есть нереализованных задач), как представлено в варианте выполнения по фиг.2, описанном ниже.

После окончания блокирование или другое прерывание (например, после явного возврата или принудительного приоритетного прерывания) контекста 34 исполнения, работающего в виртуальном процессоре 32, виртуальный процессор 32 становится доступным для выполнения другой реализованной задачи 40 или нереализованной задачи 42. Планировщик 22 выполняет поиск пригодного для запуска контекста 38 исполнения или нереализованной задачи 42 для прикрепления к доступному виртуальному процессору 32 для исполнения любым соответствующим способом. Например, планировщик 22 может вначале осуществить поиск пригодного для запуска контекста 38 исполнения для исполнения перед поиском нереализованной задачи 42 для исполнения. Планировщик 22 продолжает прикрепление контекстов 38 исполнения к доступным виртуальным процессорам 32 для исполнения до тех пор, пока все задачи и контексты 38 исполнения планировщика 22 не будут выполнены.

В одном варианте выполнения процесс 12 организует задачи в одну или больше групп 50 планирования и представляет группы 50 планирования в планировщик 22. На фиг.2 показана блок-схема, представляющая вариант выполнения группы 50 планирования для использования в планировщике 22.

Группа 50 планирования включает в себя подборку 52 пригодных для запуска контекстов, подборку 53 реализованных задач, подборку 54 работы и набор из нуля или большего количества очередей 56 типа workstealing. Подборка 52 пригодных для запуска контекстов содержит список разблокированных контекстов 38 исполнения. Планировщик 22 добавляет контекст 38 исполнения к подборке 52 пригодных для запуска контекстов, когда контекст исполнения становится разблокированным. Подборка 53 реализованных задач содержит список реализованных задач 40 (например, незапущенных агентов), которые могут иметь или могут не иметь ассоциированные контексты 38 исполнения. Планировщик 22 добавляет реализованную задачу к подборке 53 реализованных задач или когда процессор 12 представляет для планировщика 22 новую, готовую к исполнению задачу. Подборка 54 работы содержит список очередей 56 типа workstealing, как обозначено стрелкой 58, и отслеживает контексты 34 исполнения, которые представляют собой выполняющиеся задачи из очередей 56 типа workstealing. Каждая очередь 56 типа workstealing, включает в себя одну или больше нереализованных задач 42.

Используя вариант выполнения, показанный на фиг.2, планировщик 22 может вначале выполнять поиск незаблокированных контекстов 38 исполнения в подборке 52 пригодных для запуска контекстов каждой группы 50 планирования в планировщике 22. Планировщик 22 затем может выполнять поиск реализованных задач в подборке 53 реализованных задач всех групп 50 планирования в планировщике 22 перед поиском нереализованных задач в очередях 56 типа workstealing групп 50 планирования.

В одном варианте выполнения виртуальный процессор 32, который становится доступным, может попытаться отыскать пригодный для запуска контекст 38 исполнения в подборке 52 пригодных для запуска контекстов в группе 50 планирования, из которой доступный виртуальный процессор 32 наиболее недавно получил пригодный для запуска контекст 38 исполнения (то есть текущей группе 50 планирования). Доступный виртуальный процессор 32 может затем попытаться отыскать пригодный для запуска контекст 38 исполнения в подборе 52 пригодных для запуска контекстов в остальных группах 50 планирования планировщика 22, используя циклический или другой подходящий порядок. Если ни один пригодный для запуска контекст 38 исполнения не будет найден, тогда доступный виртуальный процессор 32 может затем попытаться отыскать местоположение нереализованной задачи 42 в очередях 56 типа workstealing из текущей группы 50 планирования перед поиском по очередям 56 типа workstealing в оставшихся группах 50 планирования планировщика 22 в циклическом или другом подходящем порядке.

Обращаясь снова к фиг.1A, планировщик 22 создает и управляет контекстами 34 и 38 исполнения. Когда контекст 34 исполнения исполняется до окончания в виртуальном процессоре 32, контекст 34 исполнения возвращает управление виртуальным процессором 32 в планировщик 22. Планировщик 22 может затем обеспечить осуществление виртуальным процессором 32 поиска другого контекста 38 исполнения для исполнения, пока все контексты 38 исполнения и задачи 42 не будут полностью выполнены.

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

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

Для того чтобы истребовать обратно виртуальные процессоры 32, используемые внешними контекстами 26 исполнения, планировщик 22 регистрируется на получение уведомлений о событиях завершения, ассоциированных с внешними контекстами 26 исполнения, в среде 10 исполнения или OS 14. В ответ на прием уведомлений о том, что события завершения произошли, из среды 10 исполнения или OS 14, планировщик 22 восстанавливает управление над виртуальными процессорами 32 и обеспечивает выполнение задач 40 или 42, ассоциированных с контекстами 34 или 38 исполнения, управляемыми планировщиком 22, с помощью виртуальных процессоров 32.

На фиг.3 показана блок-схема последовательности операций, иллюстрирующая вариант выполнения способа для запроса и приема уведомлений о событии завершения, ассоциированных с внешним контекстом 26 исполнения. Способ, показанный на фиг.3, в том виде, как он выполняется планировщиком 22, будет описан со ссылкой на варианты выполнения, показанные на фиг.1A-1D. Кроме того, функции, выполняемые средой 10 исполнения или OS 14, будут описаны со ссылкой на фиг.4. На фиг.4 показана блок-схема последовательности операций, иллюстрирующая вариант выполнения способа обеспечения уведомлений о событии завершения.

На фиг.3 планировщик 22 определяет, включен ли внешний контекст исполнения в планировщик 22, как обозначено этапом 62. Используемый здесь термин «внешний контекст исполнения» относится к контексту исполнения, сформированному процессом 12, а не планировщиком 22. Процесс 12 поэтому управляет исполнением внешних контекстов исполнения. Внешний контекст исполнения может быть включен в планировщик 22 в ответ на генерирование задач для выполнения планировщиком 22 или в результате явного формирования планировщиком 22.

Со ссылкой на пример, показанный на фиг.1A, планировщик 22 определяет, включаются ли какие-либо внешние контексты 26 исполнения планировщиком 22. Процесс 12 формирует внешние контексты 26 исполнения, предоставляя запросы в OS 14. Поскольку эти внешние контексты 26 исполнения были созданы процессом 12, процесс 12, а не планировщик 22 управляет исполнением внешних контекстов 26 исполнения. В отличие от этого планировщик 22 формирует контексты 34 и 38 исполнения, предоставляя запрос в OS 14. В соответствии с этим планировщик 22 управляет исполнением контекстов 34 и 38 исполнения.

Если внешний контекст исполнения включен в планировщик 22, тогда планировщик 22 преобразует внешний контекст исполнения в автономный контекст исполнения, как обозначено этапом 64. Используемый здесь термин «автономный контекст исполнения» представляет контекст исполнения, который исполняется с помощью ресурса обработки планировщика 22, но не под управлением планировщика 22. В соответствии с этим планировщик 22 предоставляет ресурс обработки планировщика 22 для использования любым автономным контекстом исполнения, чтобы обеспечить автономному контексту исполнения возможность исполняться с помощью ресурса обработки. Таким образом, планировщик 22 оставляет управление ресурсом обработки таким образом, что ресурс обработки находится под управлением автономного контекста исполнения, а не под управлением планировщика 22.

Со ссылкой на пример фиг.1B, планировщик 22 определяет, что внешний контекст 26(1) исполнения включен в планировщик 22. Планировщик 22 преобразует внешний контекст 26(1) исполнения в автономный контекст 26(1) исполнения и предоставляет виртуальный процессор 32(1) для автономного контекста 26(1) исполнения. Виртуальный процессор 32(1) выполняет по меньшей мере одну задачу 28(1) автономного контекста 26(1) исполнения.

Планировщик 22 регистрируется на получения уведомления о событии завершения, ассоциированном с автономным контекстом исполнения, как обозначено этапом 66. Автономный контекст исполнения выполняет задачи процесса 12 в планировщике 22 и может не включать в себя механизм для возврата управления ресурсом обработки в планировщик 22. Автономный контекст исполнения продолжает исполняться с помощью ресурса обработки планировщика 22 до тех пор, пока автономный контекст исполнения не будет в явном виде отсоединен от планировщика 22 (например, через API, предусмотренный средой 10 исполнения). Автономный контекст исполнения может выходить из среды 10 исполнения и/или среды операционной системы, сформированной OS 14 в любой момент времени. В соответствии с этим, планировщик 22 предоставляет сигнал в среду 10 исполнения или в OS 14 для регистрации на получение уведомления о событии завершения, ассоциированном с автономным контекстом исполнения. Например, планировщик 22 подает сигнал 44 в OS 14, как показано на фиг.1B. В случае когда OS 14 представляет собой операционную систему Windows, планировщик 22 может обеспечить возможность добавления описателя автономного контекста исполнения в массив 46 ожидания и ожидать сигнал от OS 14. В других вариантах выполнения планировщик 22 может обеспечить предоставление или сохранение такого описателя в других подходящих структурах данных.

Как показано на фиг.4, средой 10 исполнения или OS 14 осуществляется определение относительно того, был ли принят запрос на получение уведомления о событии завершения, ассоциированном с автономным контекстом исполнения, как обозначено этапом 82. Среда 10 исполнения или OS 14 принимает запрос от планировщика 22 на получение уведомления о событии завершения, ассоциированном с автономным контекстом исполнения, исполняющимся в ресурсе обработки, выделенном для планировщика 22. Например, OS 14 принимает сигнал 44 из планировщика 22 в примере по фиг.1B. В ответ на прием запроса среда 10 исполнения или OS 14 добавляет описатель, идентифицирующий автономный контекст исполнения, в массив 46 ожидания, как обозначено этапом 84. В других вариантах выполнения среда 10 исполнения или OS 14 может сохранять запрос на получение уведомления в других подходящих структурах данных.

Возвращаясь обратно к фиг.3, автономный контекст исполнения выполняется с помощью ресурса обработки планировщика 22, как обозначено этапом 68. В примере по фиг.1B автономный контекст 26(1) исполнения исполняется в виртуальном процессоре 32(1) планировщика 22. Перед исполнением автономного контекста 26(1) исполнения виртуальный процессор 32(1) исполняет контекст 34(1) исполнения, как показано на фиг.1A. Виртуальный процессор 32(1) может стать доступным для исполнения автономного контекста 26(1) исполнения в ответ на окончание, блокирование или другое прерывание (например, явный возврат или принудительное приоритетное прерывание) контекста 34(1) исполнения. Другие виртуальные процессоры 32 в планировщике 22 могут продолжать исполнение контекстов 34 исполнения планировщика 22, в то время как виртуальный процессор 32(1) выполняет автономный контекст 26(1) исполнения. Автономный контекст исполнения может прекратить исполнение в виртуальном процессоре 32(1) и выйти из среды 10 исполнения и/или среды операционной системы, сформированной OS 14, в любой момент времени.

Возвращаясь снова к фиг.4, среда 10 исполнения или OS 14 осуществляет определение относительно того, произошло ли событие завершения, ассоциированное с автономным контекстом исполнения, как обозначено этапом 86. Среда 10 исполнения или OS 14 обнаруживает событие завершения, когда автономный контекст исполнения выходит или по-другому завершается или прекращает исполнение в ресурсе обработки планировщика 22. Как показано в примере по фиг.1C, виртуальный процессор 32(1) больше не исполняет автономный контекст 26(1) исполнения. В ответ на определение того, что произошло событие завершения, среда 10 исполнения или OS 14 предоставляет уведомление о событии завершения в планировщик 22, как обозначено этапом 88. Например, OS 14 передает сигнал 48 в планировщик 22 в примере по фиг.1C.

Возвращаясь снова к фиг.3, планировщик 22 определяет, было ли принято уведомление о событии завершения, соответствующем автономному контексту исполнения, как обозначено этапом 70. В ответ на прием уведомления о событии завершения (например, прием сигнала 48 из OS 14) планировщик 22 идентифицирует и восстанавливает управление ресурсом обработки, который исполнял автономный контекст исполнения. Планировщик 22 создает другую задачу в ресурсе обработки, используемом автономным контекстом, как обозначено этапом 72.

В примере по фиг.1D планировщик 22 восстанавливает управление виртуальным процессором 32(1) и обеспечивает исполнение задачи 40(1), ассоциированной с контекстом 38(1) исполнения, в виртуальном процессоре 32(1) после восстановления управления виртуальным процессором 32(1). Контекст 38(1) исполнения может быть разблокированным или новым контекстом исполнения.

Используя способы, показанные на фиг.3 и 4, планировщик 22 обеспечивает возможность исполнения для внешнего контекста исполнения, используя ресурсы обработки планировщика 22, при гарантировании того, что ресурсы обработки будут получены обратно планировщиком 22 после выхода внешних контекстов исполнения.

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

Компьютерная система 100 включает в себя один или больше процессорных комплектов 102, систему 104 памяти, ноль или больше устройств 106 ввода/вывода, ноль или больше дисплейных устройств 108, ноль или больше периферийных устройств 110 и ноль или больше сетевых устройств 112. Процессорные комплекты 102, система 104 памяти, устройства 106 ввода/вывода, дисплейные устройства 108, периферийные устройства 110 и сетевые устройства 112 выполняют обмен данными, используя набор взаимных соединений 114, который включает в себя любые подходящие типы, количества и конфигурации контроллеров, шин, интерфейсов и/или других проводных или беспроводных соединений.

Компьютерная система 100 представляет собой любое соответствующее устройство обработки, сконфигурированное для общего назначения или специального назначения. Примеры компьютерной системы 100 включают в себя сервер, персональный компьютер, переносной компьютер, планшетный компьютер, карманный персональный компьютер (PDA, КПК), мобильный телефон и аудио/видео устройство. Компоненты компьютерной системы 100 (то есть процессорные комплекты 102, система 104 памяти, устройства 106 ввода/вывода, дисплейные устройства 108, периферийные устройства 110, сетевые устройства 112 и взаимные соединения 114) могут содержаться в общем корпусе (не показан) или в любом подходящем количестве отдельных корпусов (не показаны).

Процессорные комплекты 102 включают в себя аппаратные потоки 16(1)-16(M). Каждый аппаратный поток 16 в процессорных комплектах 102 выполнен с возможностью доступа к исполнению инструкций, сохраненных в системе 104 памяти. Инструкции могут включать в себя основную систему ввода/вывода (BIOS) или встроенное программное обеспечение (firmware) (не показан), OS 14 (также показана на фиг.1A-1D), платформу 122 исполнения, приложения 124 и уровень 18 управления ресурсами (также показан на фиг.1A-1D). Каждый аппаратный поток 16 может исполнять инструкции совместно с или в ответ на информацию, принятую из устройств 106 ввода/вывода, дисплейных устройств 108, периферийных устройств 110 и/или сетевых устройств 112.

Компьютерная система 100 загружает и исполняет OS 14. OS 14 включает в себя инструкции, исполняемые аппаратными потоками 16 для управления компонентами компьютерной системы 100, и предоставляет набор функций, которые обеспечивают приложению 124 возможность доступа к и использования компонентов. В одном варианте выполнения OS 14 представляет собой операционную систему Windows. В других вариантах выполнения OS 14 представляет собой другую операционную систему, пригодную для использования с компьютерной системой 100.

Уровень 18 управления ресурсами включает в себя инструкции, которые могут исполняться совместно с OS 14 для выделения ресурсов компьютерной системы 100, включая аппаратные потоки 16, как описано выше со ссылкой на фиг.1A-1D. Уровень 18 управления ресурсами может быть включен в компьютерную систему 100 как библиотека функций, доступных для одного или больше приложений 124, или в качестве составляющей части OS 14.

Платформа 122 исполнения включает в себя инструкции, которые могут исполняться совместно с OS 14 и уровнем 18 управления ресурсами для генерирования среды 10 исполнения и предоставления функций исполнения в приложения 124. Такие функции исполнения включают в себя функцию планировщика, как более подробно описано выше со ссылкой на фиг.1A-1D. Функции исполнения могут быть включены в компьютерную систему 100 как часть приложения 124, как библиотека функций, доступных для одного или больше приложений 124, или как составляющая часть OS 14 и/или уровня 18 управления ресурсами.

Каждое приложение 124 включает в себя инструкции, которые могут исполняться совместно с OS 14, уровнем 18 управления ресурсами и/или платформой 122 исполнения для обеспечения возможности выполнения требуемых операций компьютерной системой 100. Каждое приложение 124 представляет один или больше процессов, например, процесс 12, как описано выше, которые могут быть выполнены с помощью планировщика 22, предусмотренного платформой 122 исполнения.

Система 104 памяти включает в себя любые подходящие типы, количества и конфигурации энергозависимых или энергонезависимых запоминающих устройств, приспособленных для хранения инструкции и данных. Запоминающие устройства системы 104 памяти представляют считываемые компьютером носители информации, в которых содержатся исполняемые компьютером инструкции, включая OS 14, уровень 18 управления ресурсами, платформу 122 исполнения и приложения 124. Инструкции могут исполняться компьютерной системой для выполнения функций и методов OS 14, уровня 18 управления ресурсами платформы 122 исполнения и приложений 124, описанных здесь. Примеры запоминающих устройств в системе 104 памяти включают в себя накопители на жестких дисках, оперативное запоминающее устройство (RAM, ОЗУ), постоянное запоминающее устройство (ROM, ПЗУ), устройства памяти и карты типа флэш, а также магнитные и оптические диски.

Система 104 памяти сохраняет инструкции и данные, принятые от процессорных комплектов 102, устройств 106 ввода/вывода, дисплейных устройств 108, периферийных устройств 110 и сетевых устройств 112. Система 104 памяти предоставляет сохраненные инструкции и данные в процессорные комплекты 102, устройства 106 ввода/вывода, дисплейные устройства 108, периферийные устройства 110 и сетевые устройства 112.

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

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

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

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

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

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

1. Способ, выполняемый планировщиком (22) процесса (12), исполняющегося в компьютерной системе (100), при этом способ содержит этапы, на которых
предоставляют первый ресурс (16/32) обработки планировщика для использования первым контекстом (26) исполнения таким образом, что первый ресурс обработки не находится под управлением планировщика;
регистрируются на получение уведомления о событии завершения, ассоциированном с первым внешним контекстом исполнения; и
восстанавливают управление первым ресурсом обработки в ответ на прием уведомления о событии завершения.

2. Способ по п.1, дополнительно содержащий этап, на котором
исполняют первый контекст исполнения с помощью первого ресурса обработки.

3. Способ по п.1, дополнительно содержащий этап, на котором
выполняют задачу (40) планировщика в первом ресурсе обработки после восстановления управления первым ресурсом обработки.

4. Способ по п.3, дополнительно содержащий этап, на котором ассоциируют задачу со вторым контекстом (38) исполнения перед выполнением задачи.

5. Способ по п.4, в котором первый контекст исполнения создан процессом, при этом второй контекст исполнения создан планировщиком.

6. Способ по п.1, дополнительно содержащий этап, на котором
выполняют задачу (36) планировщика в первом ресурсе обработки перед предоставлением первого ресурса обработки для использования первым контекстом исполнения.

7. Способ по п.1, дополнительно содержащий этап, на котором регистрируются на получение уведомления о событии завершения, ассоциированном с первым контекстом исполнения, в одной из операционной системы (14) и среды (10/122) исполнения.

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

9. Способ по п.1, в котором первый ресурс обработки включает в себя виртуальный процессор (32) и аппаратный поток (16).

10. Машиночитаемый носитель (104) информации, на котором сохранены машиноисполняемые инструкции, которыми при их исполнении компьютерной системой (100) осуществляется способ, содержащий этапы, на которых
регистрируются на получение уведомления о событии завершения, ассоциированном с первым контекстом (26) исполнения, предоставляемым планировщику (22) в процессе (12), выполняющемся в компьютерной системе;
исполняют первый контекст исполнения в ресурсе (16/32) обработки, предоставляемом из планировщика первому контексту исполнения; и
выполняют первую задачу (40) в ресурсе обработки после приема уведомления о событии завершения.

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

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

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

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

15. Машиночитаемый носитель информации по п.10, в котором способ дополнительно содержит этап, на котором
выполняют вторую задачу (36) планировщика во втором ресурсе (16/32) обработки планировщика при исполнении первого контекста исполнения в первом ресурсе обработки.



 

Похожие патенты:

Изобретение относится к средствам обработки изменений в приложениях. .

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

Изобретение относится к области защиты ресурсов операционной системы. .

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

Изобретение относится к области управления транзакциями в системе с программной транзакционной памятью. .

Изобретение относится к области приема распределяемого содержимого. .

Изобретение относится к способам защиты загрузки данных в устройство обработки данных. .

Изобретение относится к стыковочным станциям портативных вычислительных устройств. Техническим результатом является обеспечение доступа к мощности и сохранение функциональных возможностей при уменьшении размеров PCD. Раскрывается способ управления ядрами процессора в портативном вычислительном устройстве (PCD), имеющем, по меньшей мере, три ядра процессора, при этом способ содержит этапы, на которых: определяют, пристыковано ли PCD к стыковочной станции PCD, когда PCD включено; подают питание на первое ядро процессора, когда PCD не пристыковано к стыковочной станции PCD; и подают питание на первое ядро процессора, второе ядро процессора и третье ядро процессора, когда PCD пристыковано к стыковочной станции PCD. 4 н. и 16 з.п. ф-лы, 34 ил.

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

Группа изобретений относится к средствам увеличения функциональности измерительного устройства. Технический результат заключается в обеспечении конфигурирования измерительного устройства для конкретных измерительных операций. Для этого предложены средства для увеличения функциональности измерительного устройства. Измерительное устройство может содержать микроконтроллер (МК), содержащий отдельные блоки памяти для хранения различных типов данных. МК может хранить основной программный код в виде встроенной программы в одном блоке флэш-памяти, а также хранить виртуальную опциональную плату в виде встроенной программы в отдельном блоке флэш-памяти. Основной программный код может быть использован измерительным устройством для обеспечения базового уровня функциональности измерительного устройства. Виртуальная опциональная плата может быть использована измерительным устройством для реализации дополнительной функциональности. Добавленная посредством виртуальной опциональной платы функциональность может содержать измерительные операции для конкретного пользователя и/или измерительные операции для конкретного рынка. 2 н.п., 16 з.п.ф-лы, 10 ил.

Группа изобретений относится к расширяемой архитектуре и потоку данных, которые позволяют машине обновления диаграмм запускать модули пользовательского кода. Техническим результатом является снижение объема данных, хранимых на клиентском устройстве. Способ для выполнения, по меньшей мере, частично, в вычислительном устройстве для сервисов расширяемой визуализации диаграмм, основывающейся на web содержит этап, на котором, в ответ на прием запроса на диаграмму, включающего в себя ссылки на внешние источники данных, подают этот запрос в машину обновления для определения поддерживаемых источников данных и пользовательских модулей данных для извлечения данных из неподдерживаемых источников данных, реализующих заранее определенный абстрактный класс. Далее, согласно способу, принимают идентификатор пользовательского модуля данных от машины обновления. А также, активируют пользовательский модуль данных, указанный идентификатором, через этот заранее определенный абстрактный класс, и принимают либо данные, либо исключение от пользовательского модуля данных. В случае если приняты данные, перенаправляют эти данные в машину обновления. 3 н. и 17 з.п. ф-лы, 7 ил.

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

Изобретение относится к области устройств дистанционного управления, а именно к устройству дистанционного управления с сенсорным устройством ввода данных. Техническим результатом является обеспечение возможности непрерывного управления, что уменьшает вероятность неправильного ввода команд. Для этого устройство содержит панель дисплея, блок обнаружения управления, блок генерирования команды и блок передачи команды на электронное устройство. При этом блок генерирования команды нужен для нахождения первого направления на основе взаимного расположения начальной точки контакта и первой точки проведения, проведенной из начальной точки контакта, генерирования команды управления, обозначающей проведение в первом направлении, обнаружения второго направления на основе взаимного расположения начальной точки контакта и второй точки проведения, проведенной из первой точки проведения, и генерирования команды, обозначающей окончание проведения пальцем в первом направлении и начало проведения пальцем во втором направлении, если второе направление отличается от первого направления. Кроме того, блок генерирования команды находит первое расстояние между начальной точкой контакта и первой точкой проведения и второе расстояние между начальной точкой контакта и второй точкой проведения и генерирует команду управления, обозначающую остановку перемещения курсора в случае, если разница между первым и вторым расстоянием больше или равна заданному порогу. 4 н. и 5 з.п. ф-лы, 11 ил.

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

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

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

Изобретение относится к синхронизации приложений для одновременного обновления множественных приложений. Для этого способ синхронизации приложений включает в себя этапы, на которых получают тайминг синхронизации ранее зарегистрированного целевого приложения синхронизации или общий тайминг синхронизации ранее зарегистрированных целевых приложений синхронизации, при добавлении приложения, подлежащего синхронизации; и регулируют тайминг синхронизации добавленного приложения с учетом предыдущего тайминга синхронизации или общего тайминга синхронизации. 2 н. и 12 з.п. ф-лы, 15 ил.
Наверх