1194 УДК 519.68 ОПТИМАЛЬНЫЙ ЧИСЛЕННЫЙ МЕТОД РАНЖИРОВАНИЯ ФАЙЛОВ, САЙТОВ, СООБЩЕНИЙ Е.А. Дубовик Велес-дата. Компьютерный центр Россия, 125502, Москва, ул. Лавочкина, 19 E-mail: [email protected] А.Е. Волкова Московский государственный технический университет им. Н.Э. Баумана Россия, 105005, Москва, 2-я Бауманская ул., 5, стр. 1 E-mail: [email protected] Ключевые слова: ранжирование, оптимизация, приоритеты, вычислители, сети, системы. В работе на основе аналитически строго формализованного оптимального численного метода диспетчеризации вычислений, рассматриваются задачи оптимального численного ранжирования файлов, сайтов и сообщений с динамически изменяющимися приоритетами, в реальном масштабе времени. Дана оценка эффективности и предельных возможностей численного метода для индивидуального и системного ранжирования любых вычислительных процессов. OPTIMAL NUMERICAL METHOD OF RANKING FILES, SITES, MESSAGES E.A. Dubovik Veles-data. Computer centre Russia, 125502, Moscow, Lavochkina Street, 19 E-mail: [email protected] A.E. Volkova Moscow State Technical University named after N.E. Bauman Russia, 105005, Moscow, 2nd Baumanskaya Street, 5, building. 1 E-mail: [email protected] Key words: ranking, optimization, priorities, calculators, networks, systems. In the paper, on the basis of analytically strictly formalized optimal numerical method of scheduling calculations, problems of optimal numerical ranking of files, sites, and messages with dynamically changed priority in real time are considered. An estimate of the efficiency and limit capabilities of the numerical method for individual and system ranking of any calculation processes is presented. 1. Введение Одной из основных задач операционных систем и др. управляющих программ, решающих задачи управления вычислительными процессами, а также задачами ранжироТруды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1195 вания файлов и сайтов, является рациональное распределение (планирование) ресурсов вычислителей между пользователями и выполняемыми вычислительными процессами (задачами). При построении управляющих программ (планировщиков, диспетчеров) используется целый ряд различных методов и алгоритмов диспетчеризации вычислений. Управляющие программы при любом из методов диспетчеризации вычислений и решения различных задач ранжирования выдвигают требования минимизации времени ожидания и возможных потерь информации. При этом учитывается и оценивается время ожидания вычислительных процессов (заявок, задач, сообщений, файлов, сайтов), и то обстоятельство, что обработка информации, особенно в диалоговых, больших коммуникационных и других вычислительных системах производится путем многократного выполнения классических циклов. Эти циклы состоят из запроса задачи и/или абонента-пользователя и реакции системы, т.е. ответа ЭВМ (узла сети, сервера и т.д.). Анализ существующих методов диспетчеризации вычислений в различных операционных системах показал, что методы и алгоритмы, лежащие в основе управляющих программ, для решения разнообразных задач диспетчеризации вычислений реализуют, в основном, традиционные вычислительные дисциплины обслуживания «первым пришел - первым обслужен» или «последним пришел – первым обслужен», а также дисциплины обслуживания на основе очередей приоритетов. Первые из вышеуказанных методов основываются на учете только одного параметра – времени поступления заявки на обслуживание вычислительного процесса (сообщения). Второй метод, учитывая особенности каждого конкретного процесса: размер процесса, приоритет процесса, содержащуюся в нем информацию и т.д., как правило, не учитывает время его поступления на обслуживание. В результате могут происходить значительные задержки в обслуживании. Кроме того, при любом ранжировании файлов, данных, сообщений следует учитывать, что в любых приоритетных вычислительных системах и при любом способе ранжировании файлов, сайтов и др., всегда имеется конечная вероятность того, что именно низкоприоритетные процессы вовсе не получат вычислительных ресурсов. В данной работе, для оптимального управления вычислительными процессами ранжирования файлами, сайтами, сообщениями, предлагается строго формализованный оптимальный численный метод и практические численные алгоритмы ранжирования файлов, сайтов, сообщений и др. Оптимальный численный метод ранжирования может быть использован для предельной оценки временных характеристик вычислителей. Именно, численный метод диспетчеризации позволяет оптимально управлять вычислительным процессом ранжирования, при заданной (известной) пропускной способности (и/или быстродействия) любой вычислительной системы. Сформулируем и формализуем класс динамических экстремальных задач, специально ориентированных для диспетчеризации вычислений и ранжирования вычислительных процессов. 2. Формализация динамически экстремальной задачи Формализация динамической экстремальной задачи, изложена в работе [1], где приведены основные принципы динамического критерия оптимальности, ориентированного исключительно для задач диспетчеризации вычислительных процессов. В данной работе динамический критерий оптимальности ориентирован на получения предельных характеристик времени ожидания для широкого класса задач ранжирования файлов, сайтов, сообщений, разнообразных вычислительных систем, с учетом их быстродействия и пропускной способностью. Таким образом, именно минимальное значе- Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1196 ние суммарной длительности времени ожидания вычислительных процессов (заявок), при минимизации времени ожидания каждой заявки, или ограничении типа: Wj(ti) < Wp, где Wp – допустимое время ожидания заявки в очереди) и, заданной пропускной способности системы, является универсальным и строго формализованным критерием оптимальности. Пропускная способность вычислительной системы может определяться либо быстродействием вычислителя, либо количеством обслуженных процессов в единицу времени и/или временем выполнения тех или иных процедур при заданном быстродействии вычислителя и пр. ∑ (1) C min , 0,1,2. . , при min ,∆ ∗ ,∆ ∆ ∗, C где Wj (ti) – длительность времени ожидания в очереди j-ой заявки или процесса, τji – момент поступления j-й заявки на обслуживание, ∆t* – интервал времени, соответствующий пропускной способности системы, ∆τj – интервал времени поступления j-й заявки, т.е. минимально возможное (или средне допустимое, или любое другое) значение интервала поступления заявки, которое определит уровень ее приоритета, ti – момент выбора системой заявки на обслуживание (0< ti < T), m – количество запросов и/или потока заявок. Следует особо подчеркнуть, что сформулированная таким образом динамическая экстремальная задача и критерий оптимальности (1), для оценки предельных характеристик диспетчеризации любых вычислительных систем, ранжирования файлов, сайтов и др. относится к новому, перспективному классу динамических экстремальных задач реального времени. 3. Решение динамических экстремальных задач Для решения сформулированного нового класса динамических экстремальных задач, минимизации критерия (1), исходим из следующих классических представлений. Учитывая, что на вход системы поступает (и/или в системе имеется) конечное множество вычислительных процессов и/или заявок на обслуживание, в общем случае систему можно представить в виде традиционной системы массового обслуживания. В этом случае для облегчения формализации задачи можно считать, что заявки могут поступать по различным каналам и с различными временными интервалами (которые, например, могут определять уровни приоритета и/или связаны с временем поступления или выполнения процессов при мультипрограммной работе вычислительной системы). Причем границы этих интервалов между заявками, определены и/или так или иначе заданы. Численные управляющие воздействия системы осуществляют выбор заявок на обслуживание по оптимальным правилам, определим следующим образом. Предварительно упрощая задачу, представим вычислительную систему в общем случае в виде вычислителя с одним потоком последовательно поступающих процессов и/или задач на выполнение (Ошибка! Источник ссылки не найден.). Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1197 Wi W* Вычислитель 1 где Wi – входящий поток заявок, W* – поток заявок на выходе, ∆τi – интервалы поступления задач на выполнение. Рис. 1. Однопотоковая очередь. Если пропускная способность ∆t* подобной вычислительной системы выше интенсивности поступления задач на обслуживание (и/или времени их выполнения), ∆t* < ∆τmin ожидания не происходит. При превышении интенсивности поступления заявок, минимум разности интервалов, соответствующих времени поступления и пропускной способности, обеспечит минимум времени ожидания (т.е., следуя простому классическому примеру: чем быстрее работает продавец, тем меньше очередь и меньше время ожидания). (2) min ∆ ∆ ∆ ∗ . Это достаточно простое и очевидное условие, минимизирующее время ожидания (2), эффективно использовано в качестве основы для формирования оптимального численного правила и алгоритма приоритетной диспетчеризации вычислений и/или ранжирования файлов и сайтов, удовлетворяющее критерию (1), практически в любой сложной вычислительной системе (рис. 2). W 1 1 В ы числитель W * W j j W m n Рис. 2. Сложная система. В этом случае, к каждому моменту времени выбора той или иной задачи (и/или процесса, файла и пр.) на выполнение следует определять минимальное значение разности интервалов ∆t*, ∆τji, ∆ ∆ ∗ , (3) min ∆ где ∆τji – интервал, соответствующий значению интервала времени поступления того или иного вычислительного процесса на обслуживание. Именно, каждое полученное текущее значение минимума разности интервалов (3) определяет приоритет выполнения, в каждый конкретный момент времени ti j-й задачи, обеспечивая тем самым минимум времени ожидания, в соответствии с критерием (1). Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1198 min ∆ ∆ ∆ ∗ min ∆ ∆ . Докажем, что следуя этому условию минимизации разности (4), при выборе текущих приоритетов, минимизируем текущее время ожидания вычислительных процессов на обслуживание (1). Для этого суммируя минимальные значения разностей интервалов (4), по всем имеющимся процессам (задачам), заданных своими приоритетами и на всем интервале приоритетного обслуживания задач (0,…, ti,…, T). Получим, с учетом динамики изменения порядка приоритетов при обслуживании вычислительных процессов, оптимальное правило (5), определяющее технологию оптимального ранжирования вычислительных процессов, файлов, сайтов и др. [1]. ∑ ∑ (5) min ∆ ∗ , 0,1, … . . , при CN=0 = 0, где aji=∆τji+ρib∆t*, b = 0,1,.....n, а ρib – это b-й номер ρi = ti зафиксированного значения обслуживаемого процесса. Таким образом, следуя полученной экстремальной задаче минимизации соотношения (5), обеспечивается оптимальный выбор и ранжирование файлов и сайтов в любой сложной вычислительной системе. ∑ min . (6) (4) Переходя к выбору вычислительных процедур оптимального ранжирования, отметим, что именно от выбора вычислительных процедур зависит принципиальная возможность ее решения. Очевидно, чем проще процедура вычислений, тем лучше метод, но, даже используя для решения задачи (5) метод динамического программирования Р. Беллмана, который в общем случае отличается радикальным упрощением вычислений, не получим нужного результата (так как при решении (5) требуется получать необходимые результаты в реальном масштабе времени). Поэтому для поэтапного решения полученной экстремальной задачи минимизации времени ожидания, путем выбора заявок на обслуживание, удовлетворяющего соотношению (5), предлагается модификация вычислительных процедур метода динамического программирования. Эта модификация специально ориентирована на решение экстремальных задач ранжирования (5) в реальном масштабе времени. Сформулируем модифицированный принцип оптимальности, ориентированной на решение экстремальной задачи ранжирования в реальном масштабе времени. Каково бы ни было каждое данное решение (выбор той или иной задачи и/или процесса на обслуживание), в каждый данный момент времени t, на заданном интервале обслуживания, соответствующем пропускной способности системы, не зависит от «предыстории». Каждое последующее решение (т.е. каждый последующий выбор задачи, файла, сайта) для моментов времени ti+1 ,......., tn = T и интервалов ∆tj,....., ∆tm, также не зависит от «предыстории». При этом, все последующие решения по выбору процесса на обслуживание является оптимальным, обеспечивая минимум времени ожидания. Таким образом, следуя предложенной формулировке принципа оптимальности отметим, что каждый последующий выбор (или ранжирования любой задачи) на обслуживание осуществляется по приведенным правилам (3), (4) и на заданном интервале ∆t*, соответствующем пропускной способности данной вычислительной системы. В терминах динамического программирования это означает, что поиск оптимальной стратегии выбора каждого приоритета происходит на заданных временных интервалах, соответствующих, требованием реального времени, любой вычислительной системы. Именно, эта формулировка принципа оптимальности, позволяет получить конкретные решения по выбору последовательностей управляющих воздействий, с помощью рекуррентных вычислительных, процедур, минимизирующих соотношение (5). Для этого, записав зависимость (7) ∆ ∗ , , 0,1,2, … . , Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1199 где Up – управляющее воздействие, p = 0,1,…..z, сведем задачу к выбору значений управляющих воздействий Up, определяющих последовательный порядок распределения вычислительных ресурсов между процессами ранжирования. К каждому моменту времени ti выбора задачи на обслуживание, рассматриваются фиксированные значения разностей (3), которые определяют, оптимальный приоритет (ранг) заявки (вычислительного процесса). В начальный момент, учитывая нулевые начальные условия функционирования системы, элементы последовательности (5) имеют вид (8) , 0, откуда для первого момента времени (i=1) следует (9) С ∆ ∆ ∗ , min ∆ ∆ ∆ ∗ , ∗ ∆ , min ∆ ∆ ∆ ∗ , . Далее, определяя последовательности рекуррентных соотношений, связывающих текущие последовательности значений CN-1 и CN, исходим из сформулированного модифицированного принципа оптимальности. Если ti – время выбора управляющего воздействия по приведенному правилу (5), на заданном интервале ∆t*, предоставляющее приоритет j-й задачи. Далее, независимо, от задачи и времени ее выполнения, оставшееся время, распределения, будет использовано для последующего оптимального выбора следующего управляющего воздействия, определяющего приоритет выполнения задачи с помощью последовательности рекуррентных функциональных уравнений. (10) ∆ ∗ , min ∆ ∗ ∆ ∗ , , ∆ ∗ , min ∆ ∗ ∆ ∗ , Приведем простой элементарный пример, экстремальных решений, по выбору оптимального порядка ранжирования с динамически изменяющимися приоритетами. Для наглядности, в качестве исходных данных рассмотрим, например, либо узел сети с тремя потоками заявок (и/или сообщений), либо вычислительную систему с тремя приоритетными задачами ранжирования K1, K2, K3, которые ранжированы своими интервалами поступления, и/или уровнями приоритета ∆τ1 = 1.5, ∆τ2 = 2.6 и ∆τ3 = 4.0. Для простоты вычислений определим величину интервала, соответствующего пропускной способности системы, ∆t* = 1. Следуя оптимальному решающему правилу (5), к каждому моменту времени обслуживания t1 необходимо определить минимальное значение разности, т.е. вычесть из значений 1.5, 2.6, 4.0 по единице. Очевидно, минимум этой разности соответствует интервалу ∆τ и управляющее воздействие U1 определит приоритет выполнения (или прохождения) заявки K1. Суммируя значение ∆τ и ∆t* (т.е. 1.5+1), осуществляем динамическое смещение начала отсчета заявки K1 в последнее зафиксированное значение. Вычисления продолжаются аналогично для последующих моментов времени t2,...,ti ,..., tn = T. Вычислительную процедуру диспетчеризации в соответствии с определяемыми ранжированными приоритетами выполнения заявок K1, K2, K3 можно представить следующим образом (пример – таблица 1). Таблица 1. Пример. 1.5 – 1 2.6 – 1 4–1 1 2.5 – 2 2.6 – 2 4–2 2 3.5 – 3 2.6 – 3 4–3 3 3.5 – 4 4 5.6 – 4 4–4 5.5 – 5 5.6 – 5 4–5 5 5.5 – 6 6 5.6 – 6 9–6 7.5 – 7 5.6 – 7 9–7 Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 7 1200 7.5 – 8 9.6 – 8 9–8 8 9.5 – 9 9.6 – 9 9–9 11.5 – 10 10 11.5 – 11 9.6 – 10 13.6 – 11 13 – 10 13 – 11 9 11.5 – 12 11 13.6 – 12 13 – 12 12 13.5–13 13.6–13 13 – 13 13 Упрощая вычисления, можно представить вычислительную процедуру выбора приоритетов в таблице 2. Таблица 2. 1.5 – 1 2.6 – 1 4–1 0.5 – 1 2.6 – 1 2–1 1 8 1.5 – 1 2 1.6 – 1 3–1 1.5 – 1 1.6 – 1 1–1 1.5 – 1 0.6 – 1 3 2–1 9 0.5 – 1 0.6 – 1 4–1 0.5 – 1 2.6 – 1 1–1 10 4 1.5 – 1 0.6 – 1 3 -1 1.5 – 1 1.6 – 1 0–1 5 11 0.5 – 1 0.6 – 1 4–1 1.5 – 1 2.6 – 1 2–1 6 12 1.5 – 7 0.6 – 7 3–7 1.5 – 1 1.6 – 1 1–1 7 13 Порядок выбора приоритетов отмечен в отдельных столбцах, соответствующей цифрой. Заявка K1 обслуживается в следующем порядке – 1, 2, 4, 6, 8, 10, 12, 14 ... , K2 – 3, 7, 11, 15, ... , а K3 – 5, 9, 13, ..., т.е. заявки с более высоким приоритетом K1 обслуживаются чаще в моменты t1, t2, t4, заявки K2 – в t3, t7, t11, а низкоприоритетные заявки K3 – в t5, t9 и т.д. Приведенная технология ранжирования позволяет с помощью элементарных численных соотношений в реальном масштабе времени динамически численно изменять приоритеты, учитывая как время поступления процессов (и/или сообщений), так и особенности самих процессов, путем выбора функции ∆j = f(R1,R2,....,Rn), где R1,R2,....,Rn параметры сообщения (длина, время обработки и др.). Рассмотрим некоторые примеры численного выбора приоритетов ранжирования, при практической реализации численного метода: если эффективность различных систем разделения времени, таких как диалоговых, коммутационных и др. оценивать временем реакции вычислителя, т.е. интервалом времени между поступлением запроса и его ответом, то проведенные исследования показали. Наиболее эффективным является постоянное время реакции системы ранжирования и отклонения от этого времени нежелательны, как в большую, так и в меньшую сторону. Известно, что основное влияние на время реакции оказывают характеристики распределения потоков заявок или сообщений, и время их обработки. Время обработки зависит в основном от типа сообщения и может быть достаточно точно определено априори. Поэтому уровень приоритета ранжирования сообщения может, например, выражаться соотношением ∆j =K–Mj,, где Mj – среднее время обработки сообщения типа k=max(Mj). Используя подобный выбор уровня приоритета при диспетчеризации, как показали исследования, можно получить характеристику времени реакции системы, приближающуюся к идеальной; при передаче сообщений в распределенных системах и сетях ЭВМ, каждый из узлов имеет, как правило, пропускную способность, значительно, большую, чем линии связи. Это приводит к отсутствию входных очередей. Так как длина сообщения зависит от времени обработки слабее, чем от времени передачи в сети, короткие сообщения более полно загружают сетевые и др. вычислительные ресурсы. Следовательно, уровень приоритета и/или ранжирования сообщений, целесообразно установить пропорционально их длине, что при практической перегрузке любой сетевой Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015 1201 системы, связанной с обработкой длинных сообщений в меньшей степени увеличивает время ожидания; в коммуникационных технологиях, коммуникаторах и др. коммуникационных системах для ранжирования приоритетного переключения каналов; в самых различных поисковых и др. системах для эффективного и алгоритмически обоснованного ранжирования, как файлов, сайтов, сообщений и др. 4. Выводы В отличие от существующих методов, алгоритмов новые формализованные оптимальные численные технологии позволяют эффективно и оптимально организовать приоритетное ранжирование файлов, сайтов, сообщений и любого вычислительного процесса в реальном масштабе времени. Оптимальные численные технологии диспетчеризации и ранжирования позволяют оценить предельные возможности (пропускную способность и др.) любых вычислительных систем и сетей, при организации оптимальных вычислительных процессов. Аналитически строго формализованные оптимальные численные технологии, дают системный инструмент для систематического моделирования самых сложных вычислительных систем и процессов с большим количеством файлов, сайтов и др. процессов. И именно моделирование позволит получить предельные оценки их временных и рабочих характеристик, таких как реальные значения быстродействия, пропускной способности, производительности и др. Использование строго формализованных численных алгоритмов ранжирования в различных поисковых и др. сложных вычислительных системах, обеспечит их эффективное быстродействие. И наконец, учитывая, что основы теории оптимального численного метода диспетчеризации вычислений приведена в [1], задачей данной работы было показать практически неограниченные возможности использования этой теории для решения широкого класса любых задач оптимального ранжирования, путем написания, в каждом конкретном случае, специальных программ ранжирования, с достаточно универсальными свойствами. Эти свойства и написанные специальные оптимальные программы ранжирования, позволят самим пользователям, в каждом конкретном случае, использовать динамические приоритеты обслуживания, файлов, сайтов, сообщений, для конкретных задач ранжирования и просто и эффективно менять исходные данные и, соответственно порядок обслуживания при любых изменениях в любой самой сложной системе обслуживания. Список литературы 1. Дубовик Е.А., Дубовик А.Е. Численные методы и алгоритмы диспетчеризации вычислений с динамически изменяющимися приоритетами. М.: Синтег, 2006. 120 c. Труды X Международной конференции «Идентификация систем и задачи управления» SICPRO ‘15 Москва 26-29 января 2015 г. Proceedings of the X International Conference “System Identification and Control Problems” SICPRO ‘15 Moscow January 26-29, 2015