СПОСОБ И СИСТЕМА ДЛЯ ПЛАНИРОВАНИЯ ОБРАБОТКИ ОПЕРАЦИЙ ВВОДА/ВЫВОДА

1. Способ планирования множества операций ввода/вывода (I/O), которые должны обрабатываться накопителем, входящим в состав распределенной компьютерной системы, содержащей:
- множество источников I/O, включающее в себя первый источник I/O и второй источник I/O и формирующее множество операций I/O, причем первый источник I/O и второй источник I/O связаны с соответствующими заранее заданными долями производительности накопителя для обработки операций I/O от первого источника I/O и от второго источника I/O;
- планировщик операций, реализующий алгоритм планирования для планирования множества операций I/O с целью их передачи в накопитель, выполняемый планировщиком операций и включающий в себя:
- прием (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- определение на основе характеристик накопителя прогнозного времени обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- определение прогнозного периода обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, с использованием (а) соответствующего прогнозного времени обработки и (б) соответствующей заранее заданной доли производительности накопителя, причем соответствующий прогнозный период обработки указывает прогнозный предельный срок обработки, а прогнозные предельные сроки обработки выражены в виртуальном времени планировщика операций;
- выполнение алгоритма планирования для определения запланированного порядка операций I/O на основе соответствующих прогнозных предельных сроков обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- контроль планировщиком операций фактического времени обработки при обработке (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, причем фактическое время обработки представляет собой фактическое время, затраченное накопителем на обработку (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- корректировку виртуального времени планировщика операций, если фактическое время обработки превысило прогнозное время обработки для любой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
2. Способ по п. 1, отличающийся тем, что корректировка виртуального времени включает в себя
при определении прогнозного периода обработки для другой операции I/O добавление некоторого количества времени к прогнозному периоду обработки для другой операции I/O с целью определения скорректированного прогнозного периода обработки для другой операции I/O, причем это количество времени представляет собой разность между фактическим временем обработки и прогнозным временем обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
3. Способ по п. 2, отличающийся тем, что скорректированный прогнозный период обработки для другой операции I/O указывает скорректированный прогнозный предельный срок обработки для другой операции I/O.
4. Способ по п. 1, отличающийся тем, что контроль планировщиком операций фактического времени обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, включает в себя прием от накопителя подтверждений обработки, указывающих фактическое время обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
5. Способ по п. 1, отличающийся тем, что алгоритм планирования представляет собой алгоритм планирования в реальном времени.
6. Способ по п. 5, отличающийся тем, что алгоритм планирования в реальном времени представляет собой алгоритм планирования на основе диспетчеризации по ближайшему предельному сроку (EDF).
7. Способ по п. 1, отличающийся тем, что определение прогнозного периода обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, включает в себя определение соотношения соответствующего прогнозного времени обработки и соответствующей заранее заданной доли производительности накопителя.
8. Способ по п. 7, отличающийся тем, что прогнозный период обработки для операции из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, определяется так, чтобы эта операция из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, могла быть обработана без приостановки в течение прогнозного периода обработки с соблюдением соответствующей заранее заданной доли производительности накопителя.
9. Способ по п. 8, отличающийся тем, что операция I/O представляет собой операцию I/O, не подлежащую приостановке.
10. Способ по п. 1, отличающийся тем, что определение прогнозного времени обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, выполняется с использованием прогнозирующей модели, которая эмулирует работу накопителя на основе характеристик накопителя.
11. Планировщик операций для планирования множества операций ввода/вывода (I/O), которые должны обрабатываться накопителем, входящим в состав распределенной компьютерной системы, содержащей множество источников I/O, включающее в себя первый источник I/O и второй источник I/O и формирующее множество операций I/O, причем первый источник I/O и второй источник I/O связаны с соответствующими заранее заданными долями производительности накопителя для обработки операций I/O от первого источника I/O и от второго источника I/O,
планировщик операций реализующий алгоритм планирования для планирования множества операций I/O с целью их передачи в накопитель и выполненный с возможностью:
- приема (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- определения на основе характеристик накопителя прогнозного времени обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- определения прогнозного периода обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, с использованием (а) соответствующего прогнозного времени обработки и (б) соответствующей заранее заданной доли производительности накопителя, причем соответствующий прогнозный период обработки указывает прогнозный предельный срок обработки, а прогнозные предельные сроки обработки выражены в виртуальном времени планировщика операций;
- выполнения алгоритма планирования для определения запланированного порядка операций I/O на основе соответствующих прогнозных предельных сроков обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- контроля планировщиком операций фактического времени обработки при обработке (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, причем фактическое время обработки представляет собой фактическое время, затраченное накопителем на обработку (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O;
- корректировки виртуального времени планировщика операций, если фактическое время обработки превысило прогнозное время обработки для любой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
12. Планировщик операций по п. 11, отличающийся тем, что возможность корректировки виртуального времени включает в себя возможность при определении прогнозного периода обработки для другой операции I/O добавления некоторого количества времени к прогнозному периоду обработки для другой операции I/O с целью определения скорректированного прогнозного периода обработки для другой операции I/O, причем это количество времени представляет собой разность между фактическим временем обработки и прогнозным временем обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
13. Планировщик операций по п. 12, отличающийся тем, что скорректированный прогнозный период обработки для другой операции I/O указывает скорректированный прогнозный предельный срок обработки для другой операции I/O.
14. Планировщик операций по п. 11, отличающийся тем, что он выполнен с возможностью контроля фактического времени обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, путем приема от накопителя подтверждений обработки, указывающих фактическое время обработки для (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O.
15. Планировщик операций по п. 11, отличающийся тем, что алгоритм планирования представляет собой алгоритм планирования в реальном времени.
16. Планировщик операций по п. 15, отличающийся тем, что алгоритм планирования в реальном времени представляет собой алгоритм планирования на основе диспетчеризации по ближайшему предельному сроку (EDF).
17. Планировщик операций по п. 11, отличающийся тем, что возможность определения прогнозного периода обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, включает в себя возможность определения соотношения соответствующего прогнозного времени обработки и соответствующей заранее заданной доли производительности накопителя.
18. Планировщик операций по п. 17, отличающийся тем, что прогнозный период обработки для операции из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, определяется так, чтобы эта операция из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, могла быть обработана без приостановки в течение прогнозного периода обработки с соблюдением соответствующей заранее заданной доли производительности накопителя.
19. Планировщик операций по п. 18, отличающийся тем, что операция I/O представляет собой операцию I/O, не подлежащую приостановке.
20. Планировщик операций по п. 17, отличающийся тем, что он выполнен с возможностью определения прогнозного времени обработки для каждой из (а) по меньшей мере одной операции I/O, сформированной первым источником I/O, и (б) по меньшей мере одной операции I/O, сформированной вторым источником I/O, с использованием прогнозирующей модели, которая эмулирует работу накопителя на основе характеристик накопителя.