RU2294010C1 - Способ обработки цифровых данных - Google Patents

Способ обработки цифровых данных Download PDF

Info

Publication number
RU2294010C1
RU2294010C1 RU2005127682/09A RU2005127682A RU2294010C1 RU 2294010 C1 RU2294010 C1 RU 2294010C1 RU 2005127682/09 A RU2005127682/09 A RU 2005127682/09A RU 2005127682 A RU2005127682 A RU 2005127682A RU 2294010 C1 RU2294010 C1 RU 2294010C1
Authority
RU
Russia
Prior art keywords
software
processor
memory
size
pages
Prior art date
Application number
RU2005127682/09A
Other languages
English (en)
Inventor
Павел Михайлович Шестаков (RU)
Павел Михайлович Шестаков
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 RU2005127682/09A priority Critical patent/RU2294010C1/ru
Application granted granted Critical
Publication of RU2294010C1 publication Critical patent/RU2294010C1/ru

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

Изобретение относится к области обработки цифровых данных с помощью электрических устройств, в частности к средствам для программного управления.
Известны способы обработки цифровых данных, включающие этапы, на которых выполняют программное обеспечение в режиме процессора, обеспечивающем возможность программному обеспечению работать на уровне привилегии, намеченном программным обеспечением, генерирование одного из множества прерываний и переход к выполнению виртуальной машиной программного обеспечения, выполняющегося в адресном пространстве оперативной памяти (см., например 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 байт должны иметь формат, например
Addr Cs AddrCs AddrIp Ofs Flag Reserv Byte
Size Byte
0...4 ...6 .........8 ......10 ...12 ......13 ......16
4 2 2 2 2 1 3
где Addr - линейный адрес блока в "Таблице распределения памяти",
Cs - адрес программы, инициализирующий блок памяти,
AddrCs - адрес машинного кода последнего вызова (адрес программы, которая последний раз вызывала этот блок памяти),
AddrIP - указатель на машинный код,
Ofs - последнее смещение в блоке памяти,
Flag - флаг состояния (popf) при вызове блока памяти,
Reserv - резервные байты (для возможности расширения),
а таблицы распределения памяти размером 17 байт - формат, например
NumberTask Addr Size Conf NullSize
0...............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),
а размер выделенной памяти для всех блоков, на которые есть указатели в памяти, составит
Figure 00000002
С учетом потерь эффективность (Э) использования памяти будет равна размеру выделенной памяти за вычетом суммарных потерь (По) оперативной памяти в суммарном управляющем блоке. В этом случае коэффициент (Кэ) эффективности для прикладных программ с учетом потерь составит:
Кэ=Э/Size, где Size - размер управляющего блока А;
Figure 00000003
Коэффициент (Кэ) эффективности показывает, во сколько раз больше выделяют памяти по сравнению с затраченной для служебных нужд.
При идеальных условиях: возьмем 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.
Все это доказывает, что данный способ обработки цифровых данных эффективен.

Claims (1)

  1. Способ обработки цифровых данных, включающий этапы, на которых выполняют программное обеспечение в режиме процессора, обеспечивающем возможность программному обеспечению работать на уровне привилегии, намеченном программным обеспечением, выход процессора в защищенный режим и переход к выполнению виртуальной машиной программного обеспечения, выполняющегося вне упомянутого режима процессора в адресном пространстве оперативной памяти, отличающийся тем, что виртуальной машиной вычисляют требуемый для модуля программного обеспечения размер свободного пространства оперативной памяти, инициализируют стек, блоки для управления страницами, таблицу распределения памяти с выделением блока оперативной памяти нужного размера для модуля программного обеспечения и добавлением строки в таблицу распределения оперативной памяти соответствующего формата и устанавливают запрет на обращения к страницам, находящимся в блоке для управления страницами, а при выполнении обращений программного обеспечения к запрещенным страницам перехватывают прерывание, генерируемое процессором, осуществляют переадресацию области данных или сегментных регистров программного обеспечения соответственно добавленной строке в таблице распределения памяти, вычисляют размер машинного кода в программном обеспечении, копируют машинный код в виртуальную машину, выполняют упомянутую команду на другом адресном пространстве и передают управление программному обеспечению.
RU2005127682/09A 2005-09-05 2005-09-05 Способ обработки цифровых данных RU2294010C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005127682/09A RU2294010C1 (ru) 2005-09-05 2005-09-05 Способ обработки цифровых данных

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005127682/09A RU2294010C1 (ru) 2005-09-05 2005-09-05 Способ обработки цифровых данных

Publications (1)

Publication Number Publication Date
RU2294010C1 true RU2294010C1 (ru) 2007-02-20

Family

ID=37863536

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005127682/09A RU2294010C1 (ru) 2005-09-05 2005-09-05 Способ обработки цифровых данных

Country Status (1)

Country Link
RU (1) RU2294010C1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665243C2 (ru) * 2014-03-18 2018-08-28 Интернэшнл Бизнес Машинз Корпорейшн Связанное с выбранными архитектурными функциями администрирование обработки
US10545772B2 (en) 2014-03-18 2020-01-28 International Business Machines Corporation Architectural mode configuration

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2665243C2 (ru) * 2014-03-18 2018-08-28 Интернэшнл Бизнес Машинз Корпорейшн Связанное с выбранными архитектурными функциями администрирование обработки
US10545772B2 (en) 2014-03-18 2020-01-28 International Business Machines Corporation Architectural mode configuration
US10552175B2 (en) 2014-03-18 2020-02-04 International Business Machines Corporation Architectural mode configuration
US10747583B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10747582B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities
US11023256B2 (en) 2014-03-18 2021-06-01 International Business Machines Corporation Architectural mode configuration
US11029974B2 (en) 2014-03-18 2021-06-08 International Business Machines Corporation Architectural mode configuration

Similar Documents

Publication Publication Date Title
US6219783B1 (en) Method and apparatus for executing a flush RS instruction to synchronize a register stack with instructions executed by a processor
US9910602B2 (en) Device and memory system for storing and recovering page table data upon power loss
US9164787B2 (en) Methods and systems for running multiple operating systems in a single mobile device
OFFSET Virtual memory management in the VAX/VMS operating system
US8219780B2 (en) Mitigating context switch cache miss penalty
US4812981A (en) Memory management system improving the efficiency of fork operations
KR102443600B1 (ko) 하이브리드 메모리 시스템
KR102434170B1 (ko) 하이브리드 메모리 시스템
TWI848131B (zh) 資料結構處理
JP2006526203A (ja) ストレージの無効化、バッファ・エントリの消去
US6115777A (en) LOADRS instruction and asynchronous context switch
CA1172375A (en) Program call method
KR20080017292A (ko) 내장 시스템들을 위한 저장 아키텍쳐
CN114327777B (zh) 确定全局页目录的方法、装置、电子设备及存储介质
US8930732B2 (en) Fast speed computer system power-on and power-off method
US11061829B2 (en) Prefetch support with address space randomization
US20150220452A1 (en) System, Method and Computer-Readable Medium for Dynamically Mapping a Non-Volatile Memory Store
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
CN115617542A (zh) 内存交换方法、装置、计算机设备及存储介质
US5175830A (en) Method for executing overlays in an expanded memory data processing system
KR102443593B1 (ko) 하이브리드 메모리 시스템
US6286089B1 (en) Coupling facility using dynamic address translation
US6065114A (en) Cover instruction and asynchronous backing store switch
RU2294010C1 (ru) Способ обработки цифровых данных
KR20190069134A (ko) 응용 프로그램간 파일 공유 장치 및 방법

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20070906