СПОСОБ ОБРАБОТКИ ЦИФРОВЫХ ДАННЫХ Российский патент 2007 года по МПК G06F9/00 

Описание патента на изобретение RU2294010C1

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

Известны способы обработки цифровых данных, включающие этапы, на которых выполняют программное обеспечение в режиме процессора, обеспечивающем возможность программному обеспечению работать на уровне привилегии, намеченном программным обеспечением, генерирование одного из множества прерываний и переход к выполнению виртуальной машиной программного обеспечения, выполняющегося в адресном пространстве оперативной памяти (см., например RU 2003123112, G 06 F 9/40, 2005.02.27).

Наиболее близким аналогом заявляемого технического решения является способ обработки цифровых данных, включающий этапы, на которых выполняют программное обеспечение в режиме процессора, обеспечивающем возможность программному обеспечению работать на уровне привилегии, намеченном программным обеспечением, выход процессора в защищенный режим и переход к выполнению виртуальной машиной программного обеспечения, выполняющегося вне упомянутого режима процессора в адресном пространстве оперативной памяти (RU 2003123118, G 06 F 9/00, 2005.01.10).

Указанный способ обеспечивает совершенствование технологии выполнения различных процедур (например, начальной загрузки операционной системы, принятой в системе технологии обработки заданий пользователей и др.); способы использования различных устройств и организация их работы (например, организация системы прерываний или организация прямого доступа к памяти). Однако применение его не в полной мере сопровождается устранением такого негативного явления как фрагментация памяти.

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

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

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

В данном определении сущности заявляемого технического решения подразумевается следующее толкование терминов:

цифровые данные - информация, представленная в форме, воспринимаемой для формальной обработки автоматическими устройствами,

прерывание - операция процессора, состоящая в регистрации состояния процессора, предшествующего прерыванию и установлении нового состояния,

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

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

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

область данных или сегментный регистр программного обеспечения - часть программы, которая может быть адресована как блок памяти,

пространство оперативной памяти - область оперативной памяти, которая является областью значений функций адресации,

стек - программная или аппаратурная или программно-аппаратурная реализация записи и чтения данных через один и тот же регистр,

блоки управления - таблица данных управляющей информации,

таблица - данные с матричной структурой,

запрет - подача сигнала, в результате которой сигналы, инициирующие определенные действия, игнорируются или откладываются,

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

вызов программного обеспечения - действие по активизации машинной программы,

адресация - значение поля команды, по которому вычисляются исполнительные адреса операндов команды или соответствие объекта в адресном пространстве физической памяти,

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

команда - управляющий сигнал, инициирующий исполнение определенной операции в исполнительном устройстве,

адресное пространство - упорядоченное множество адресов при определенной схеме адресации.

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

Для реализации заявляемого способа либо создается, либо используется существующая вычислительная система, содержащая аппаратный интерфейс - PC и другую технику, которая поддерживает Intel архитектуру, а также программный интерфейс - Unix, Linux, Windows и любую операционную систему, которая поддерживает защищенный режим. Архитектура системы должна предусматривать, как минимум, процессор i80386 фирмы Intel и 4 Мб оперативной памяти для управляющих таблиц и свободной памяти для прикладных задач. Для реализации заявляемого способа виртуальная машина (далее ВМ) должна, например, представлять собой систему объединенных выполняемой задачей команд, созданных на языке Assembler с поддержкой Intel - архитектуры и транслированных в машинные коды операций. В функции такой ВМ входит обработка всех возможных прерываний, как аппаратных, так и программных, и возможность эффективно использовать страничную переадресацию. ВМ должна уметь работать с расширенной памятью и иметь встроенную возможность распознавания машинного кода.

Реализацию способа осуществляют следующим образом:

Выполняют программное обеспечение (приложение) пуском процессора в режиме, обеспечивающем возможность программному обеспечению работать на уровне привилегии, намеченном программным обеспечением. Для перехода к выполнению виртуальной машиной (далее ВМ) программного обеспечения, выполняющегося вне упомянутого режима процессора в адресном пространстве оперативной памяти ВМ, инициализируют управляющий блок памяти, находящийся, например, в пределах 1 мегабайта (см. фиг.2), выводят процессор в защищенный режим, вычисляют требуемый для модуля программного обеспечения размер свободного пространства оперативной памяти, инициализируют стек, блоки для управления страницами (по 4 кб, см. фиг.1), таблицу распределения памяти с выделением блока оперативной памяти нужного размера для модуля программного обеспечения и добавлением строки в таблицу распределения оперативной памяти соответствующего формата и устанавливают запрет на обращения к страницам, находящимся в блоке для управления страницами.

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

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

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

AddrCsAddrCsAddrIpOfsFlagReservByte
Size Byte
0...4...6.........8......10...12......13......164222213

где Addr - линейный адрес блока в "Таблице распределения памяти",

Cs - адрес программы, инициализирующий блок памяти,

AddrCs - адрес машинного кода последнего вызова (адрес программы, которая последний раз вызывала этот блок памяти),

AddrIP - указатель на машинный код,

Ofs - последнее смещение в блоке памяти,

Flag - флаг состояния (popf) при вызове блока памяти,

Reserv - резервные байты (для возможности расширения),

а таблицы распределения памяти размером 17 байт - формат, например

NumberTaskAddrSizeConfNullSize0...............4......8...12......13.........17

где NumberTask - номер задачи или выделенного блока. Если он равен 0, то он чист или был удален,

Addr - линейный адрес на начало размещения блока данных в верхней памяти,

Size - размер блока данных,

Conf - это атрибут, показывающий, какой блок в памяти (0 - собсвенно виртуальной машины, 1 - драйвера, 2 - приложения, 3 - приложения DOS и т.д.),

NullSize - остаток после того, как блок удалили и снова заняли, т.е. после удаления блока устанавливается NumberTask = 0 и блок становиться пустым.

При новом запросе приложения (это может быть и другое приложение-программа) выделить блок данных, ВМ находит свободный блок (если такой имеется) нужных или больших размеров, выделяет его, устанавливая Size, равный запрашиваемому размеру, a NullSize, равный предыдущему размеру блока, - запрашиваемому размеру. То есть тем самым NullSize показывает, сколько осталось свободно памяти, и тем самым этот блок в размере NullSize можно использовать для других приложений.

Как видно каждый блок управления (16 байт) может открыть окно в 64 кб максимально. Соответственно одна страница в себе содержит 4 кб/16=4096/16=256 блоков управления. Значит одна страница при идеальных условиях может увеличить размер памяти до 256*65536=16777216 байт или 16384 кб. Но если учитывать, что страницы ложатся не ровно в управляющий блок, то потери оперативной памяти составят для одной страницы:

(256*64 кб)-По,

где Понк,

Пн - потери оперативной памяти в начале блока управления,

Пк - потери оперативной памяти в конце блока управления.

По - суммарные потери оперативной памяти в управляющем блоке.

Учитывая тот факт, что одна страница равна 4 кб и в ней можно разместить 256 блоков управления (по 16 байт), а также то, что размер запрашиваемый памяти может быть 64 кб или меньше, то общая формула по расширению примет вид:

количество блоков =N*4096/16, где N - кол. страниц в суммарном управляющем блоке (блок А на фиг.2),

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

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

Кэ=Э/Size, где Size - размер управляющего блока А;

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

При идеальных условиях: возьмем N=1, все Size = 64 кб = 65536 байт, По=0, SizeA = 4 кб = 4096 байт:

∑Size (все по 64 кб)=(к*4096/16)*65536=16777216;

Кэ=(16777216-0)/4096=4096;

То есть в 4096 раз выделяемый объем превосходит занимаемый. При идеальных условиях формула примет вид:

Кэ=Size/16.

Если все блоки будут выделены по 20 Кб (Size = 20 кб = 20480 байт), то Кэ=20480/16=1280.

Все это доказывает, что данный способ обработки цифровых данных эффективен.

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

название год авторы номер документа
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СИНТЕЗИРОВАННЫХ КОМАНД В ВИРТУАЛЬНОЙ МАШИНЕ 2004
  • Траут Эрик
RU2374675C2
НОВЫЙ РЕЖИМ ПРОЦЕССОРА ДЛЯ ОГРАНИЧЕНИЯ ФУНКЦИОНИРОВАНИЯ ГОСТЕВОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВЫПОЛНЯЮЩЕГОСЯ НА ВИРТУАЛЬНОЙ МАШИНЕ, ПОДДЕРЖИВАЕМОЙ МОНИТОРОМ ВИРТУАЛЬНОЙ МАШИНЫ 2001
  • Чоу Стефен
  • Нэйджер Гилберт
  • Кота-Роблес Эрик
  • Джеясингх Сталинселварадж
  • Улиг Рихард
  • Козуч Майкл
  • Каги Элэйн
RU2265880C2
СПОСОБ РАЗРЕШЕНИЯ КОНФЛИКТОВ ПО АДРЕСНОМУ ПРОСТРАНСТВУ МЕЖДУ МОНИТОРОМ ВИРТУАЛЬНЫХ МАШИН И ГОСТЕВОЙ ОПЕРАЦИОННОЙ СИСТЕМОЙ 2001
  • Чоу Стефен
  • Нэйджер Гилберт
  • Кота-Роблес Эрик
  • Джеясингх Сталинселварадж
  • Улиг Рихард
  • Каги Элэйн
  • Шенберг Себастьян
  • Козуч Майкл
RU2259582C2
ОПРЕДЕЛЕНИЕ ФОРМАТОВ ТРАНСЛЯЦИИ ДЛЯ ФУНКЦИЙ АДАПТЕРА ВО ВРЕМЯ ВЫПОЛНЕНИЯ 2010
  • Дейвид Краддок
  • Томас Грегг
  • Дан Грейнер
  • Эрик Норман Лейс
  • Доналд Уилльям Шмидт
RU2556418C2
УПРАВЛЕНИЕ СКОРОСТЬЮ, С КОТОРОЙ ОБРАБАТЫВАЮТСЯ ЗАПРОСЫ НА ПРЕРЫВАНИЕ, ФОРМИРУЕМЫЕ АДАПТЕРАМИ 2010
  • Густав Зитманн, Iii
  • Дейвид Краддок
  • Томас Грегг
  • Доналд Уилльям Шмидт
  • Брентон Франсуа Белмар
  • Марк Фаррел
  • Деймиан Лео Осисек
  • Ричард Тарша
  • Джанет Истон
RU2526287C2
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ОТ НЕДОВЕРЕННОГО КОДА РЕЖИМА УПРАВЛЕНИЯ С СИСТЕМОЙ С ПОМОЩЬЮ ПЕРЕАДРЕСАЦИИ ПРЕРЫВАНИЯ РЕЖИМА УПРАВЛЕНИЯ СИСТЕМОЙ И СОЗДАНИЯ КОНТЕЙНЕРА ВИРТУАЛЬНОЙ МАШИНЫ 2003
  • Саттон Ii Джеймс
  • Граурок Дэвид
  • Улиг Ричард
  • Пойснер Дэвид
  • Глу Эндрю
  • Холл Клиффорд
  • Смит Iii Лоренс
  • Нейгер Гилберт
  • Козух Майкл
  • Джордж Роберт
  • Берджесс Брэдли
RU2313126C2
ФИЛЬТРАЦИЯ СОБЫТИЙ ДЛЯ ПРИЛОЖЕНИЙ БЕЗОПАСНОСТИ ВИРТУАЛЬНЫХ МАШИН 2017
  • Лутас Андрей-Влад
RU2723668C1
ТРАНСЛЯЦИЯ АДРЕСОВ ВВОДА-ВЫВОДА В АДРЕСА ЯЧЕЕК ПАМЯТИ 2010
  • Дейвид Краддок
  • Томас Грегг
  • Дан Грейнер
  • Эрик Норман Лейс
RU2547705C2
Система и способы для дешифрования сетевого трафика в виртуализированной среде 2017
  • Караджа Раду
RU2738021C2
Связанное с выбранными архитектурными функциями администрирование обработки 2015
  • Гшвинд Михаэль Карл
  • Гейни Чарлз
RU2665243C2

Иллюстрации к изобретению RU 2 294 010 C1

Реферат патента 2007 года СПОСОБ ОБРАБОТКИ ЦИФРОВЫХ ДАННЫХ

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

Формула изобретения RU 2 294 010 C1

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

Документы, цитированные в отчете о поиске Патент 2007 года RU2294010C1

RU 2003123118 А, 10.01.2005
RU 2003123112 A, 27.02.2005
Прибор, замыкающий сигнальную цепь при повышении температуры 1918
  • Давыдов Р.И.
SU99A1
Способ и приспособление для нагревания хлебопекарных камер 1923
  • Иссерлис И.Л.
SU2003A1

RU 2 294 010 C1

Авторы

Шестаков Павел Михайлович

Даты

2007-02-20Публикация

2005-09-05Подача