RU2638635C2 - Способ определения приоритета задач, находящихся в очереди серверной системы - Google Patents

Способ определения приоритета задач, находящихся в очереди серверной системы Download PDF

Info

Publication number
RU2638635C2
RU2638635C2 RU2014125149A RU2014125149A RU2638635C2 RU 2638635 C2 RU2638635 C2 RU 2638635C2 RU 2014125149 A RU2014125149 A RU 2014125149A RU 2014125149 A RU2014125149 A RU 2014125149A RU 2638635 C2 RU2638635 C2 RU 2638635C2
Authority
RU
Russia
Prior art keywords
tasks
user
task
processor
priority
Prior art date
Application number
RU2014125149A
Other languages
English (en)
Other versions
RU2014125149A (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 RU2014125149A priority Critical patent/RU2638635C2/ru
Publication of RU2014125149A publication Critical patent/RU2014125149A/ru
Application granted granted Critical
Publication of RU2638635C2 publication Critical patent/RU2638635C2/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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

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

Description

ОБЛАСТЬ ПРИМЕНЕНИЯ ИЗОБРЕТЕНИЯ
[0001] Настоящее изобретение относится к определению приоритета задач в очереди, обрабатываемой локальной или облачной серверной системой.
УРОВЕНЬ ТЕХНИКИ НАСТОЯЩЕГО ИЗОБРЕТЕНИЯ
[0002] В различных ситуациях, предполагающих выполнение нескольких поставленных в очередь задач от нескольких пользователей на одном или нескольких компьютерах или процессорах, необходимо, чтобы заданный доступный процессор определял, какую из находящихся в очереди задач следует выполнять первой. В системах, обрабатывающих большое количество задач, поставленных в очередь пользователями, могут возникать проблемы, связанные с нагрузкой буферизации. Если обработка задачи занимает много времени, пользователи могут ставить элементы работы в очередь быстрее, чем они обрабатываются.
[0003] Один подход состоит в том, чтобы помещать новые задачи в очередь по мере их поступления и обрабатывать процессором по принципу «первым пришел - первым ушел» (FIFO). Данный принцип является эффективным при наличии одного пользователя. Однако когда множество пользователей помещают задачи в очередь в случайные моменты времени и все пользователи ожидают достаточно быструю обработку, данный подход может быть неудовлетворительным.
[0004] Например, можно предположить, что обработка каждой задачи занимает 10 секунд. Пользователь А появляется первым и быстро ставит в очередь сто задач, и для обработки всех задач требуется 17 минут. Через одну минуту после того как пользователь А поставил свои задачи в очередь, пользователь В ставит в очередь одну задачу. Если система работает по принципу FIFO, то единственная задача от пользователя В не будет обрабатываться до тех пор, пока не будут обработаны все задачи от пользователя А, т.е. приблизительно 16 минут. Пользователю В придется ждать приблизительно 16 минут, чтобы просто обработать одну задачу, требующую 10 секунд процессорного времени.
[0005] Другой распространенный подход заключается в назначении каждой задаче некоторого номера, чтобы процессор мог выбирать задачу с наивысшим приоритетом.
[0006] Когда несколько пользователей размещают задачи для процессоров, необходимо следить за тем, чтобы устанавливать приоритет задач в соответствии с ожиданиями пользователей, например, равномерно распределяя процессорное время и другие ресурсы между пользователями. В данном контексте под равномерностью может подразумеваться равномерное распределение процессорного времени с учетом частоты размещения задач пользователями и объема задач пользователей. Новые задачи пользователя, который недавно использовал больше процессорного времени, размещал большее число задач и задачи с большим совокупным объемом, должны иметь относительно меньший приоритет, чем новая задача от менее требовательного пользователя.
[0007] Один пример таких задач представляет собой обработку содержащих текст изображений (в любом графическом формате, таком как pdf, tiff, jpeg и т.д.) с использованием оптического распознавания символов (OCR). В этом случае размер или объем каждой задачи измеряется в страницах. Время обработки задачи не обязательно напрямую связано с числом страниц в задаче, так как количество текста на разных страницах в разных задачах может различаться.
[0008] РАСКРЫТИЕ ИЗОБРЕТЕНИЯ Задачи могут размещаться в облачной серверной системе, на удаленном или локальном сетевом сервере, либо на том же компьютере, который отвечает за обработку задачи (в этом случае данный компьютер выступает в качестве сервера), если у пользователей есть возможность загружать задачи в систему. По завершении задачи каждый компьютер или процессор запрашивает у сервера задачу с наивысшим приоритетом. Затем процессор обрабатывает задачу и в это время не обрабатывает любую другую задачу и не прерывается на выполнение любой другой задачи.
[0009] В соответствии с настоящим изобретением каждой задаче, находящейся в очереди в системе, назначается приоритет, выбранный из диапазона приоритетов, например, от 0 до 255, где 0 - наивысший приоритет, который можно назначить задаче. Разным задачам одного пользователя могут назначаться разные приоритеты в зависимости от характера использования. Как правило, приоритет задачи не меняется в течение всего периода существования задачи.
[0010] При поступлении новой задачи система определяет, насколько интенсивно пользователь отправлял новые элементы в недавнем прошлом, и назначает новой задаче приоритет таким образом, чтобы задачи от пользователей, нечасто размещающих небольшие задачи, получали более высокий приоритет, а задачи от пользователей, интенсивно размещающих большое количество задач, получали более низкий приоритет. Система дополнительно отличается от подхода FIFO тем, что задачи сначала выбираются по приоритету (задачи с наибольшим приоритетом обрабатываются первыми), а задачи с одинаковым приоритетом распределяются в порядке их поступления.
[0011] В контексте OCR задачи, как правило, представляют собой файлы изображений или PDF-файлы, содержащие более одной страницы. Для анализа характера использования помимо количества задач система использует количество страниц, поскольку время обработки задачи часто приблизительно пропорционально количеству страниц в задаче, таким образом, на приоритет будущих задач одного пользователя должно влиять не только количество задач, поставленных в очередь пользователем, но и количество страниц.
[0012] Чтобы охарактеризовать использованное процессорное время, количество задач и объем задач (например, количество распознаваемых страниц), можно использовать различные монотонные метрики. Монотонные метрики представляют собой функции (например, с такими аргументами, как время или количество страниц или задач), которые имеют монотонную зависимость от своих аргументов, т.е. являются строго невозрастающими или строго неубывающими по всей соответствующей области знаний. Монотонная зависимость представляет собой зависимость, выражаемую монотонной функцией.
[0013] Варианты реализации настоящего изобретения включают в себя способы определения приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащие, применительно к необработанной задаче одного пользователя из множества пользователей, назначение числового приоритета пользователю; вычисление монотонной метрики Ml по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1; вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2; вычисление монотонной метрики М3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3; уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, M2 и М3; и назначение числового приоритета пользователя необработанной задаче; причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени.
[0014| Варианты реализации настоящего изобретения также включают в себя систему, содержащую компьютерный сервер или облачный сервер, на котором хранятся задачи и программное обеспечение, способное выполнять команды по определению приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащие, применительно к необработанной задаче одного пользователя из множества пользователей: назначение числового приоритета пользователю; вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1; вычисление монотонной метрики M2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2; вычисление монотонной метрики М3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3; уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, M2 и М3; и назначение числового приоритета пользователя необработанной задаче; причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени.
[0015] Варианты реализации настоящего изобретения также включают в себя физический носитель данных, на котором хранится программа, при исполнении которой процессор выполняет команды по определению приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащие, применительно к необработанной задаче одного пользователя из множества пользователей: назначение числового приоритета пользователю; вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1; вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2; вычисление монотонной метрики М3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3; уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, М2 и М3; и назначение числового приоритета пользователя необработанной задаче; причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и причем по меньшей мере один процессор выполняет последовательно только одну задачу в один момент времени.
[0016] Варианты реализации настоящего изобретения также могут включать в себя вычисление монотонной метрики М4 по совокупному объему задач, размещенных пользователем, по меньшей мере для одного процессора за более ранний период времени Т4; а также уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, М2, М3 и М4.
[0017] В вариантах реализации настоящего изобретения по меньшей мере один процессор может выполнять любую из множества задач, полностью не прерываясь на любую другую задачу из множества задач или не выполняя одновременную обработку любой другой задачи из множества задач.
[0018| В вариантах реализации настоящего изобретения числовой приоритет пользователя может представлять собой целое число, выбранное из некоторого интервала.
[0019] В вариантах реализации настоящего изобретения задача из необработанных задач с равным приоритетом, поступившая на обработку раньше, может быть выбрана для обработки по меньшей мере на одном процессоре раньше других необработанных задач с равным приоритетом.
[0020] Указанные выше и другие особенности настоящего изобретения, включая различные новые детали конструкции и комбинации деталей, а также другие преимущества, более конкретно описаны со ссылкой на прилагаемые чертежи и отмечены в формуле изобретения. Будет очевидно, что конкретный способ и устройство, воплощающие настоящее изобретение, показаны в качестве иллюстрации и не ограничивают настоящее изобретение. Принципы и особенности настоящего изобретения можно использовать в различных и многочисленных вариантах реализации без отклонения от объема настоящего изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] На прилагаемых чертежах одинаковые номера позиций относятся к одинаковым частям на разных чертежах. Чертежи не обязательно приведены в масштабе; вместо этого акцент делается на представлении принципов настоящего изобретения. Содержание чертежей представлено ниже.
[0022] На Фиг. 1 представлена блок-схема нескольких первых этапов одного конкретного варианта реализации настоящего изобретения. Элемент А показывает, как блок-схема, представленная на Фиг. 1, связана с блок-схемой, представленной на Фиг. 2.
[0023] На Фиг. 2 представлена блок-схема нескольких этапов одного конкретного варианта реализации настоящего изобретения, следующих за этапами, показанными на Фиг. 1. Элемент В показывает, как блок-схема, представленная на Фиг. 2, связана с блок-схемой, представленной на Фиг. 3.
[0024| На Фиг. 3 представлена блок-схема нескольких заключительных этапов одного конкретного варианта реализации настоящего изобретения, следующих за этапами, показанными на Фиг. 2.
[0025] На Фиг. 4 представлено схематическое изображение системы, реализующей настоящее изобретение для нескольких пользователей и нескольких процессоров, с применением облачного сервера.
[0026] На Фиг. 5 представлено схематическое изображение системы, реализующей настоящее изобретение для нескольких пользователей и нескольких процессоров, с применением компьютерного сервера.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0027] Для каждого пользователя в системе хранятся пять переменных: «приоритет пользователя» (его не следует путать с приоритетом задачи), «число страниц за последний час», «число страниц за последнюю минуту», «конец последнего часа» и «конец последней минуты». Последние две переменные хранятся таким образом, чтобы системе не приходилось постоянно обновлять все данные при каждом размещении задачи пользователем.
[0028] Каждая новая задача характеризуется количеством страниц в задаче (или, в общем случае, размером или объемом задачи), пользователем, поместившим задачу в очередь, готовностью задачи к обработке и приоритетом задачи (который изначально не определен). Данные характеристики хранятся вместе с задачей в локальной памяти задачи в виде переменных вместе с другими переменными, необходимыми для реализации метода.
[0029] Цель описанного ниже метода состоит в назначении задаче приоритета. В данном варианте реализации приоритет представляет собой целое число в диапазоне от 0 до 255.
[0030] Как показано на Фиг. 1, при размещении задачи на сервере переменной «готовность задачи к обработке» присваивается значение «ложь» (элемент 1 на блок-схеме). Затем читаются переменные, связанные с пользователем (элемент 2 на блок-схеме).
[0031] При загрузке в локальную память приоритету задачи присваивается нулевое значение. Значение переменной пользователя «конец последнего часа» копируется в локальную память в виде локальной переменной «конец последнего часа», и значение переменной пользователя «число страниц за последний час» копируется в локальную память в виде локальной переменной «число страниц за последний час» (элемент 3 на блок-схеме).
[0032] Если (элемент 4 на блок-схеме) локальная переменная «конец последнего часа» не определена (т.е. не имеет значения) или ее значение на 30 минут меньше текущего времени (в противном случае следующие этапы показаны на Фиг. 2), то
[0033] Система просматривает задачи, поставленные в очередь пользователем в течение часа до текущего времени, и присваивает локальной переменной «число страниц за последний час» значение, равное общему количеству страниц во всех данных задачах (суммарное число страниц в задачах, поставленных пользователем в очередь в течение последнего часа). Локальной переменной «конец последнего часа» присваивается значение, равное текущему времени (элемент 5 на блок-схеме).
[0034] Система просматривает задачи, поставленные в очередь пользователем, и присваивает локальной переменной «число секунд последнего часа» значение, равное общему числу миллисекунд, затраченных на выполнение каждой задачи за последний час, разделенному на тысячу (элемент 6 на блок-схеме).
[0035] Локальная переменная «число секунд последнего часа», полученная на предыдущем этапе, используется для вычисления приоритета задачи по нагрузке в соответствии со следующей закономерностью, аппроксимирующей логарифмическую функцию (элемент 7 на блок-схеме):
если локальная переменная «число секунд последнего часа» меньше 100, то «приоритет задачи по нагрузке» равен 0, в противном случае,
если локальная переменная «число секунд последнего часа» меньше 300, то «приоритет задачи по нагрузке» равен 3, в противном случае,
если локальная переменная «число секунд последнего часа» меньше 700, то «приоритет задачи по нагрузке» равен 5, в противном случае,
если локальная переменная «число секунд последнего часа» меньше 1500, то «приоритет задачи по нагрузке» равен 8, в противном случае,
если локальная переменная «число секунд последнего часа» меньше 4000, то «приоритет задачи по нагрузке» равен 11,
в противном случае «приоритет задачи по нагрузке» равен 15.
(0036| Этапы после получения значений переменной «приоритет задач по нагрузке» и локальной переменной «число страниц за последний час» показаны на Фиг. 2.
[0037] Значение «приоритет пользователя» копируется в переменную «старый приоритет задачи». Переменной «новый приоритет задачи» присваивается значение переменной «старый приоритет задачи». Переменная пользователя «конец последней минуты» копируется в локальную переменную «конец последней минуты», а переменная пользователя «число страниц за последнюю минуту» копируется в локальную переменную «число страниц за последнюю минуту» (элемент 8 на блок-схеме).
[0038] Если (элемент 9 на блок-схеме) локальная переменная «конец последней минуты» не определена (т.е. не имеет значения) или ее значение меньше текущего времени менее чем на минуту (в противном случае необходимо пропустить следующие три пункта), то:
[0039] если (элемент 10 на блок-схеме) локальная переменная «конец последней минуты» не является неопределенной (имеет значение), то переменной «целые минуты» присваивается значение текущего времени, округленное до целого числа минут, а переменной «сохраненные целые минуты» присваивается значение локальной переменной «конец последней минуты», округленное до целого числа минут (элемент 11 на блок-схеме). В противном случае необходимо пропустить следующий пункт.
[0040] Если (элемент 12 на блок-схеме) результат целочисленного деления переменной «сохраненные целые минуты» на 20 меньше результата целочисленного деления переменной «целые минуты» на 20 (т.е. данный этап выполняется не более одного раза за 20 минут), то переменной «новый приоритет задачи» присваивается значение переменной «старый приоритет задачи» минус единица, минус результат вычитания («целые минуты» минус «сохраненные целые минуты»), разделенный на 20 (элемент 13 на блок-схеме).
[0041] Локальной переменной «конец последней минуты» присваивается значение текущего времени. Локальной переменной «число страниц за последнюю минуту» присваивается нулевое значение (элемент 14 на блок-схеме).
[0042| Локальная переменная «число страниц за последнюю минуту» увеличивается на число страниц в новой задаче (элемент 15 на блок-схеме).
[0043] Этапы после получения значения локальной переменной «число страниц за последнюю минуту» показаны на Фиг. 3.
[0044] Если значение переменной «число страниц за последний час» меньше 5, то переменной «часовой приоритет задачи» присваивается значение 0, а переменной «лимит страниц за минуту» присваивается значение 3, в противном случае,
если значение переменной «число страниц за последний час» меньше 10, то переменной «часовой приоритет задачи» присваивается значение 1, а переменной «лимит страниц за минуту» присваивается значение 3, в противном случае,
если значение переменной «число страниц за последний час» меньше 50, то переменной «часовой приоритет задачи» присваивается значение 2, а переменной «лимит страниц за минуту» присваивается значение 5, в противном случае,
если значение переменной «число страниц за последний час» меньше 100, то переменной «часовой приоритет задачи» присваивается значение 3, а переменной «лимит страниц за минуту» присваивается значение 10, в противном случае,
если значение переменной «число страниц за последний час» меньше 250, то переменной «часовой приоритет задачи» присваивается значение 4, а переменной «лимит страниц за минуту» присваивается значение 15, в противном случае,
если значение переменной «число страниц за последний час» меньше 512, то переменной «часовой приоритет задачи» присваивается значение 5, а переменной «лимит страниц за минуту» присваивается значение 22, в противном случае,
если значение переменной «число страниц за последний час» меньше 1024, то переменной «часовой приоритет задачи» присваивается значение 6, а переменной «лимит страниц за минуту» присваивается значение 32,
в противном случае переменной «часовой приоритет задачи» присваивается значение, равное целой части натурального логарифма от значения локальной переменной «число страниц за последний час» минус 2, а переменной «лимит страниц за минуту» присваивается значение, равное целой части квадратного корня от значения локальной переменной «число страниц за последний час» (элемент 16 на блок-схеме).
[0045] Переменной «минутный приоритет задачи» присваивается нулевое значение (элемент 17 на блок-схеме).
[0046] Если (элемент 18 на блок-схеме) локальная переменная «число страниц за последнюю минуту» больше значения переменной «лимит страниц за минуту», то:
если локальная переменная «число страниц за последнюю минуту» меньше 4, то переменной «минутный приоритет задачи» присваивается значение 0, в противном случае,
если локальная переменная «число страниц за последнюю минуту» меньше 16, то переменной «минутный приоритет задачи» присваивается значение 5, в противном случае,
если локальная переменная «число страниц за последнюю минуту» меньше 23, то переменной «минутный приоритет задачи» присваивается значение 7, в противном случае,
если локальная переменная «число страниц за последнюю минуту» меньше 91, то переменной «минутный приоритет задачи» присваивается значение 10, в противном случае,
если локальная переменная «число страниц за последнюю минуту» меньше 180, то переменной «минутный приоритет задачи» присваивается значение 12,
в противном случае переменной «минутный приоритет задачи» присваивается значение, равное целой части натурального логарифма от значения (локальная переменная «число страниц за последнюю минуту», умноженная на 60) минус 2 (элемент 19 на блок-схеме).
[0047] Переменной «новый приоритет задачи по числу страниц» присваивается большее из значений «часовой приоритет задачи» и «минутный приоритет задачи» (элемент 20 на блок-схеме).
[0048] Переменной «новый приоритет задачи» присваивается меньшее из значений «новый приоритет задачи по числу страниц» и «новый приоритет задачи». Если значение переменной «новый приоритет задачи» больше 255, переменной «новый приоритет задачи» присваивается значение 255; если значение переменной «новый приоритет задачи» меньше нуля, переменной «новый приоритет задачи» присваивается нулевое значение (элемент 21 на блок-схеме).
[0049] Переменной «новый приоритет задачи» присваивается меньшее из значений «новый приоритет задачи по нагрузке» и «новый приоритет задачи» (элемент 21 на блок-схеме).
[0050] Переменной пользователя «конец последнего часа» присваивается значение локальной переменной «конец последнего часа». Переменной пользователя «конец последней минуты» присваивается значение локальной переменной «конец последней минуты». Переменной пользователя «число страниц за последний час» присваивается значение локальной переменной «число страниц за последний час». Переменной пользователя «число страниц за последнюю минуту» присваивается значение локальной переменной «число страниц за последнюю минуту». Переменной «приоритет пользователя» присваивается значение переменной «новый приоритет задачи» (элемент 22 на блок-схеме).
[0051] Переменной «приоритет новой задачи» присваивается значение переменной «новый приоритет задачи»; переменной «готовность задачи к обработке» присваивается значение «истина» (элемент 23 на блок-схеме).
[0052] Теперь новая задача на сервере готова к обработке процессором в соответствии с новым приоритетом задачи, рассчитанным по описанной выше методике.
[0053] На Фиг. 4 представлена система, реализующая способ определения приоритета задач для нескольких пользователей и нескольких процессоров с применением облачного сервера, содержащий, применительно к необработанной задаче, размещенной пользователем, назначение числового приоритета пользователю; вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1; вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2; вычисление монотонной метрики М3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3; уменьшение числового приоритета пользователя, монотонного зависящего от значений M1, M2 и М3; и назначение числового приоритета пользователя необработанной задаче; причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени. Пользователи 1001, 1002 и 1003 размещают задачи (например, задачи по оптическому распознаванию символов) на облачном сервере 1011, где каждой задаче назначается приоритет в соответствии со способом, воплощающим настоящее изобретение. Задачи читаются облачным сервером и обрабатываются (например, путем оптического распознавания символов) процессорами 1021, 1022 и 1023. Пользователи и процессоры соединяются с облачным сервером через Интернет, другую сеть, через беспроводное соединение или напрямую.
[0054] На Фиг. 5 представлена система, реализующая способ определения приоритета задач для нескольких пользователей и нескольких процессоров с применением компьютерного сервера, содержащий, применительно к необработанной задаче, размещенной пользователем, назначение числового приоритета пользователю; вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1; вычисление монотонной метрики M2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2; вычисление монотонной метрики М3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3; уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, M2 и М3; и назначение числового приоритета пользователя необработанной задаче; причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени. Пользователи 2001 и 2002 размещают задачи (например, задачи по оптическому распознаванию символов) на компьютерном сервере 2011, где каждой задаче назначается приоритет в соответствии со способом, воплощающим настоящее изобретение. Задачи читаются компьютерным сервером и обрабатываются (например, путем оптического распознавания символов) процессорами 2021 и 2022. Пользователи и процессоры соединяются с компьютерным сервером через Интернет, другую сеть, через беспроводное соединение или напрямую.
[0055] Хотя настоящее изобретение конкретно показано и описано со ссылкой на предпочтительные варианты его реализации, специалистам в данной области будет понятно, что возможно внесение различных изменений в форму и детали без отклонения от объема настоящего изобретения, обозначенного в прилагаемой формуле изобретения.

Claims (46)

1. Способ определения приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащий, применительно к необработанной задаче одного пользователя из множества пользователей:
назначение числового приоритета пользователю;
вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1;
вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2;
вычисление монотонной метрики M3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3;
уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, М2 и M3; и
назначение числового приоритета пользователя необработанной задаче;
причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и
причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени.
2. Способ по п. 1, дополнительно содержащий:
вычисление монотонной метрики М4 по совокупному объему задач пользователя по меньшей мере на одном процессоре за более ранний период времени Т4; и
уменьшение числового приоритета пользователя монотонно зависящего от значений M1, М2, M3 и М4.
3. Способ по п. 1, в котором по меньшей мере один процессор выполняет любую из множества задач, полностью, не прерываясь на любую другую задачу из множества задач или не выполняя одновременную обработку любой другой задачи из множества задач.
4. Способ по п. 1, в котором числовой приоритет пользователя представляет собой целое число, выбранное из некоторого интервала.
5. Способ по п. 1, в котором задача из необработанных задач с равным приоритетом, поступившая на обработку раньше, может быть выбрана для обработки по меньшей мере на одном процессоре раньше других необработанных задач с равным приоритетом.
6. Система для определения приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащая:
компьютерный сервер или облачный сервер, на котором хранятся задачи и программное обеспечение, способное выполнять команды по определению приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащие, применительно к необработанной задаче одного пользователя из множества пользователей:
назначение числового приоритета пользователю;
вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1;
вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2;
вычисление монотонной метрики M3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3;
уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, M2 и M3; и
назначение числового приоритета пользователя необработанной задаче;
причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и
причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени.
7. Система по п. 6, в которой команды дополнительно содержат:
вычисление монотонной метрики М4 по совокупному объему задач пользователя по меньшей мере на одном процессоре за более ранний период времени Т4; и
уменьшение числового приоритета пользователя монотонно зависящего от значений M1, M2, M3 и М4.
8. Система по п. 6, в которой по меньшей мере один процессор выполняет любую из множества задач, полностью, не прерываясь на любую другую задачу из множества задач и не выполняя одновременную обработку любой другой задачи из множества задач.
9. Система по п. 6, в которой числовой приоритет пользователя представляет собой целое число, выбранное из некоторого интервала.
10. Система по п. 6, в которой задача из необработанных задач с равным приоритетом, поступившая на обработку раньше, может быть выбрана для обработки раньше других необработанных задач с равным приоритетом.
11. Физический носитель данных, на котором хранится программа, при исполнении которой процессор выполняет команды по определению приоритета множества задач от множества пользователей по меньшей мере для одного процессора, содержащие, применительно к необработанной задаче одного пользователя из множества пользователей:
назначение числового приоритета пользователю;
вычисление монотонной метрики M1 по совокупному процессорному времени, использованному предыдущими задачами пользователя по меньшей мере на одном процессоре за предшествующий период времени Т1;
вычисление монотонной метрики М2 по временному интервалу между необработанной задачей и предшествующей задачей пользователя по меньшей мере на одном процессоре за предшествующий период времени Т2;
вычисление монотонной метрики M3 по совокупному объему задач пользователя по меньшей мере на одном процессоре за предшествующий период времени Т3;
уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, М2 и M3; и
назначение числового приоритета пользователя необработанной задаче;
причем необработанные задачи с более высокими приоритетами выбираются для обработки по меньшей мере на одном процессоре раньше необработанных задач с более низкими приоритетами; и
причем по меньшей мере один процессор последовательно выполняет только одну задачу в один момент времени.
12. Носитель по п. 11, в котором команды дополнительно содержат:
вычисление монотонной метрики М4 по совокупному объему задач пользователя по меньшей мере на одном процессоре за более ранний период времени Т4; и
уменьшение числового приоритета пользователя, монотонно зависящего от значений M1, М2, M3 и М4.
13. Носитель по п. 11, в котором по меньшей мере один процессор выполняет любую из множества задач, полностью, не прерываясь на любую другую задачу из множества задач или не выполняя одновременную обработку любой другой задачи из множества задач.
14. Носитель по п. 11, в котором числовой приоритет пользователя представляет собой целое число, выбранное из некоторого интервала.
15. Носитель по п. 11, в котором задача из необработанных задач с равным приоритетом, поступившая на обработку раньше, может быть выбрана для обработки раньше других необработанных задач с равным приоритетом.
RU2014125149A 2014-06-20 2014-06-20 Способ определения приоритета задач, находящихся в очереди серверной системы RU2638635C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014125149A RU2638635C2 (ru) 2014-06-20 2014-06-20 Способ определения приоритета задач, находящихся в очереди серверной системы

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014125149A RU2638635C2 (ru) 2014-06-20 2014-06-20 Способ определения приоритета задач, находящихся в очереди серверной системы

Publications (2)

Publication Number Publication Date
RU2014125149A RU2014125149A (ru) 2015-12-27
RU2638635C2 true RU2638635C2 (ru) 2017-12-14

Family

ID=55023288

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014125149A RU2638635C2 (ru) 2014-06-20 2014-06-20 Способ определения приоритета задач, находящихся в очереди серверной системы

Country Status (1)

Country Link
RU (1) RU2638635C2 (ru)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465354A (en) * 1992-03-19 1995-11-07 Hitachi, Ltd. Method and apparatus for job execution prediction and control and method for job execution situation display
RU2121709C1 (ru) * 1996-02-13 1998-11-10 Военная академия связи Способ управления обслуживанием запросов пользователей в вычислительной системе
US20080127193A1 (en) * 2006-09-29 2008-05-29 Fujitsu Limited Scheduling method for executing jobs, scheduling apparatus for executing jobs, rewritable recording medium on which scheduling program for executing jobs is recorded
US7743378B1 (en) * 2005-05-13 2010-06-22 Oracle America, Inc. Method and apparatus for multi-dimensional priority determination for job scheduling
US20130227557A1 (en) * 2012-02-29 2013-08-29 Jiri Pechanec Systems and methods for providing priority build execution in a continuous integration system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465354A (en) * 1992-03-19 1995-11-07 Hitachi, Ltd. Method and apparatus for job execution prediction and control and method for job execution situation display
RU2121709C1 (ru) * 1996-02-13 1998-11-10 Военная академия связи Способ управления обслуживанием запросов пользователей в вычислительной системе
US7743378B1 (en) * 2005-05-13 2010-06-22 Oracle America, Inc. Method and apparatus for multi-dimensional priority determination for job scheduling
US20080127193A1 (en) * 2006-09-29 2008-05-29 Fujitsu Limited Scheduling method for executing jobs, scheduling apparatus for executing jobs, rewritable recording medium on which scheduling program for executing jobs is recorded
US20130227557A1 (en) * 2012-02-29 2013-08-29 Jiri Pechanec Systems and methods for providing priority build execution in a continuous integration system

Also Published As

Publication number Publication date
RU2014125149A (ru) 2015-12-27

Similar Documents

Publication Publication Date Title
US10789544B2 (en) Batching inputs to a machine learning model
KR102076257B1 (ko) 계산 그래프들 프로세싱
US9990229B2 (en) Scheduling method and apparatus for applying laxity correction based on task completion proportion and preset time
US8756209B2 (en) Computing resource allocation based on query response analysis in a networked computing environment
CN113535367B (zh) 任务调度方法及相关装置
CN110781145B (zh) 一种文件***任务调度方法、装置、设备及可读存储介质
US20150363229A1 (en) Resolving task dependencies in task queues for improved resource management
JP2018533795A (ja) 計算グラフのストリームベースのアクセラレータ処理
US9886320B2 (en) Method for prioritizing tasks queued at a server system
WO2019056695A1 (zh) 任务调度的方法、装置、终端设备及计算机可读存储介质
Fang et al. Qos-aware scheduling of heterogeneous servers for inference in deep neural networks
EP3832462A1 (en) Dynamic orchestration in a multi-container architecture
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
CN106775948B (zh) 一种基于优先级的云任务调度方法及装置
US11210127B2 (en) Method and apparatus for processing request
CN112506581A (zh) 渲染小程序的方法、装置、电子设备和可读存储介质
CN111124644B (zh) 任务调度资源的确定方法、装置及***
CN112148468A (zh) 一种资源调度方法、装置、电子设备及存储介质
CN111680085A (zh) 数据处理任务分析方法、装置、电子设备和可读存储介质
CN115033393A (zh) 批量请求下发的优先排队处理方法、装置、服务器及介质
CN114968567A (zh) 用于分配计算节点的计算资源的方法、装置和介质
CN115525400A (zh) 基于批次来管理多个计算任务的方法、设备和程序产品
RU2638635C2 (ru) Способ определения приоритета задач, находящихся в очереди серверной системы
CN111124708A (zh) 面向微服务的批推理方法、服务器和计算机可读存储介质
CN111124634A (zh) 一种训练方法、装置及电子设备和存储介质

Legal Events

Date Code Title Description
HE9A Changing address for correspondence with an applicant
PC43 Official registration of the transfer of the exclusive right without contract for inventions

Effective date: 20181121

QB4A Licence on use of patent

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20201211

QC41 Official registration of the termination of the licence agreement or other agreements on the disposal of an exclusive right

Free format text: LICENCE FORMERLY AGREED ON 20201211

Effective date: 20220311