JP2017220196A - メモリロケーション間で制御を転送するシステム及び方法 - Google Patents
メモリロケーション間で制御を転送するシステム及び方法 Download PDFInfo
- Publication number
- JP2017220196A JP2017220196A JP2016180473A JP2016180473A JP2017220196A JP 2017220196 A JP2017220196 A JP 2017220196A JP 2016180473 A JP2016180473 A JP 2016180473A JP 2016180473 A JP2016180473 A JP 2016180473A JP 2017220196 A JP2017220196 A JP 2017220196A
- Authority
- JP
- Japan
- Prior art keywords
- page
- memory
- address space
- sector
- sectors
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012546 transfer Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 41
- 230000010076 replication Effects 0.000 claims description 6
- 230000003362 replicative effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 28
- 230000007246 mechanism Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 238000004330 variable angle spinning Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101710092886 Integrator complex subunit 3 Proteins 0.000 description 2
- 102100025254 Neurogenic locus notch homolog protein 4 Human genes 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 1
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本出願は、2016年6月2日に出願されたロシア出願第2016121876号に記載に対して35U.S.C.(a)から(d)に基づく優先権の利益を主張し、本願に引用する。
・ライブラリ管理の傍受(例えば、目的である関数のコードを変更してAPI機能を傍受する等)
・API関数がコールされている間に、メモリ領域(API関数及びロギングコールの処理を担うハンドラコードを含むメモリ領域)へ(コードを)転送
・ロギングシステムのハンドラのコードの実行
・ライブラリへの制御のリターン
コンピュータプログラムの実行命令の少なくとも一部を仮想メモリアドレス空間に格納するために、プロセッサによってメモリセクタを決定する工程と、
上記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを仮想メモリアドレス空間内で決定する工程と、
上記メモリセクタと上記1つ又は複数のページを含む仮想メモリアドレス空間の複製を作成する工程と、
仮想メモリアドレス空間と仮想メモリアドレス空間の複製の両方において、上記メモリセクタと上記1つ又は複数のページをタグ付けする工程と、
仮想メモリアドレス空間又は仮想メモリアドレス空間の複製に格納された命令を実行する間、それぞれのメモリセクタ間でコンピュータプログラムの実行を転送するための通知を受信する工程と、
コンピュータプログラムの実行を、上記通知を受信したメモリロケーションとは別のメモリロケーションに転送する工程を含む。
第1のタイプのページは、上記メモリセクタに関するものだけのコード命令及びデータ、或いは上記1つ又は複数のメモリセクタに関するものだけのコード命令及びデータを含み、
第2のタイプのページは、上記メモリセクタ及び上記1つ又は複数のメモリセクタの両方に関するコード命令及びデータを含む。
上記両タイプのページに関連付けられた2つのセクタ間での制御の転送、
或いは第2のタイプのページのセクタにおけるタグ付けされたコード命令又はデータへの制御の転送である。
2つのセクタ間とは、別々のタグを有するが、どちらも第1のタイプのページに関連しているセクタ間、或いは、第2のタイプのページに関連付けられたセクタから、別のタグを有し第1のタイプのページに関連付けられたセクタとの間のセクタ間である。
コンピュータプログラムの実行命令の少なくとも一部を仮想メモリアドレス空間に格納するために、上記プロセッサによってメモリセクタを決定し、
上記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを仮想メモリアドレス空間内で決定し、
上記メモリセクタと、上記1つ又は複数のページを含む仮想メモリアドレス空間の複製を作成し、
仮想メモリアドレス空間と仮想メモリアドレス空間の複製との両方において、上記メモリセクタと上記1つ又は複数のページをタグ付けし、
仮想メモリアドレス空間又は仮想メモリアドレス空間の複製に格納された命令を実行する間、それぞれのメモリセクタ間でコンピュータプログラムの実行を転送するための通知を受信し、
コンピュータプログラムの実行を、上記通知を受信したメモリロケーションとは別のメモリロケーションに転送することができるように構成される。
コンピュータプログラムの実行命令の少なくとも一部を仮想メモリアドレス空間に格納するために、プロセッサによってメモリセクタを決定する命令と、
上記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを仮想メモリアドレス空間内で決定する命令と、
上記メモリセクタと上記1つ又は複数のページを含む仮想メモリアドレス空間の複製を作成する命令と、
仮想メモリアドレス空間と仮想メモリアドレス空間の複製の両方において、上記メモリセクタと上記1つ又は複数のページをタグ付けする命令と、
仮想メモリアドレス空間又は仮想メモリアドレス空間の複製に格納された命令を実行する間、それぞれのメモリセクタ間でコンピュータプログラムの実行を転送するための通知を受信する命令と、
コンピュータプログラムの実行を、上記通知を受信したメモリロケーションとは別のメモリロケーションに転送する命令を含む。
・リニア・アドレス-このアドレスによってアドレス空間に配置される
・物理アドレス-このアドレスで物理的なメモリ25にマッピングされる(存在しない場合もある)
・あるタグでタグ付けされたセクタから、別のタグでタグ付けされたオリジナルVASのセクタへの制御が転送される時。
・第2のタイプのページ100a'におけるタグ付けされた対象セクタ303のコード命令又はデータへ制御が転送される時。
・第1のタイプのページ100a又は第2のタイプのページ100a'にある対象でないメモリセクタ304から、第1のタイプのページ100aにある対象セクタ303の命令へ制御が転送される時。
・第1のタイプのページ100a又は第2のタイプのページ100a'にある対象でないメモリセクタ304から、第2のタイプのページ100a'におけるタグ付けられた対象セクタ303の命令へ制御が転送される時。
・あるタグでタグ付けされた第1のタイプのページ100aにあるセクタから、複製VAS301aのセクタであって、別のタグでタグ付けされ且つ第1のタイプのページ100aにあるセクタへ制御が転送される時。
・あるタグでタグ付けされた第2のタイプのページ100a'にあるセクタから、複製VAS301aのセクタであって、別のタグでタグ付けされ且つ第1のタイプのページ100aであるセクタへ制御が転送される時。
・対象のメモリセクタ303から、第1のタイプのページ100aにある対象でないセクタ304の命令へ制御が転送される時。
・第2のタイプのページ100a'にある対象でないメモリセクタ304から、第1のタイプのページ100aにある対象でないセクタ304の命令へ制御が転送される時。
いくつかのアドレス空間が作成された後、アドレス空間のページはタグ付けされる。オリジナルのアドレス空間でメモリページはタグ付けされてもよい(工程1040)。
オリジナルのアドレス空間にある対象セクタ303に関するコード命令及びデータのみを含むページのタグ100aは、(対象のメモリセクタに関するコード命令及びデータの他に、対象でないセクタに関するコード命令及びデータを含む)ページ100а'、及び、対象セクタでないセクタ304に関するコード命令及びデータのみを含むページ100aのタグとは異なる。次に、対象セクタ303のコード命令又はデータは、(対象のメモリセクタに関するコード命令及びデータの他に、対象でないセクタに関するコード命令及びデータを含む)ページ100a'でタグ付けされてもよい(工程1050)。
この後、ページ100a及び100a'は、複製アドレス空間においてタグ付けされてもよく(工程1060)、ページ100a及び100a'(オリジナルのアドレス空間における対象セクタ303に関するコード命令及びデータを含む)のタグは、対象セクタでないセクタ304に関するコード命令及びデータのみを含むページ100aのタグとは異なる。
上述のすべての工程の後、通知が生じるまで、オリジナルのアドレス空間301又は複製されたアドレス空間301内の命令は実行される(工程1070)。その通知は以下のように作成される。
・あるタグでタグ付けされたセクタから、別のタグでタグ付けされたアドレス空間のセクタへコード命令の制御が転送される時。
・タグ付き命令へ制御が転送される時。
Claims (22)
- コンピュータプログラムの実行を制御するためにコンピュータに実装される方法であって、
前記方法は、メモリセクタ決定工程と、ページ決定工程と、複製工程と、タグ付け工程と、通知受信工程と、転送工程を含み、
前記メモリセクタ決定工程は、仮想メモリアドレス空間において、コンピュータプログラムの実行命令の少なくとも一部を格納するメモリセクタをプロセッサによって決定し、
前記ページ決定工程は、前記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを前記仮想メモリアドレス空間内で決定し、
前記複製工程は、前記メモリセクタと前記1つ又は複数のページを含む前記仮想メモリアドレス空間の複製を作成し、
前記タグ付け工程は、前記仮想メモリアドレス空間とその複製の両方において、前記メモリセクタと前記1つ又は複数のページをタグ付けし、
前記通知受信工程は、前記仮想メモリアドレス空間又はその複製に格納された命令を実行する間、それぞれのメモリセクタ間で前記コンピュータプログラムの実行を転送するための通知を受信し、
前記転送工程は、前記コンピュータプログラムの実行を、前記通知を受信したメモリロケーションとは別のメモリロケーションに転送する、方法。 - 前記コンピュータプログラムの実行命令を格納する前記仮想メモリアドレス空間を取得する工程をさらに含む、請求項1に記載の方法。
- 前記1つ又は複数のページで1つ又は複数のメモリセクタを特定する工程をさらに含み、前記1つ又は複数のページには、前記メモリセクタに関連付けられていないコード命令及びデータが含まれる、請求項1に記載の方法。
- 前記1つ又は複数の各ページを以下のように特定する工程をさらに含み、
第1のタイプのページは、前記メモリセクタに関するものだけのコード命令及びデータ、或いは前記1つ又は複数のメモリセクタに関するものだけのコード命令及びデータを含み、
第2のタイプのページは、前記メモリセクタ及び前記1つ又は複数のメモリセクタの両方に関するコード命令及びデータを含む、請求項3に記載の方法。 - 前記タグ付け工程は、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記第1のタイプのページと前記第2のタイプのページについて互いに同じタグでタグ付けする工程を含む、請求項4に記載の方法。
- 前記タグ付け工程は、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記第1のタイプのページと前記第2のタイプのページについて互いに異なるタグでタグ付けする工程を含む、請求項4に記載の方法。
- 以下の転送を検出すると、前記仮想メモリアドレス空間で前記通知を作成する工程をさらに含み、
前記両タイプのページに関連付けられた2つのセクタ間で制御の転送、
或いは前記第2のタイプのページにおけるページのセクタのタグ付けされたコード命令又はデータへの制御の転送である、請求項4に記載の方法。 - 以下の2つのセクタ間で制御の転送を検出すると、前記仮想メモリアドレス空間の複製で前記通知を作成する工程をさらに含み、
前記2つのセクタ間とは、別々のタグを有するがどちらも前記第1のタイプのページに関連しているセクタ間、或いは、
前記第2のタイプのページのページに関連付けられたセクタから、
別のタグを有し前記第1のタイプのページのページに関連付けられたセクタとの間である、
請求項4に記載の方法。 - コンピュータプログラムの実行を制御する例示的なシステムであって、前記システムは、メモリに接続されたハードウェアプロセッサを備え、前記プロセッサは、
コンピュータプログラムの実行命令の少なくとも一部を仮想メモリアドレス空間に格納するために、前記プロセッサによってメモリセクタを決定し、
前記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを仮想メモリアドレス空間内で決定し、
前記メモリセクタと、前記1つ又は複数のページを含む前記仮想メモリアドレス空間の複製を作成し、
前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製との両方において、前記メモリセクタと前記1つ又は複数のページをタグ付けし、
前記仮想メモリアドレス空間又は前記仮想メモリアドレス空間の複製に格納された命令を実行する間、それぞれのメモリセクタ間で前記コンピュータプログラムの実行を転送するための通知を受信し、
前記コンピュータプログラムの実行を、前記通知を受信したメモリロケーションとは別のメモリロケーションに転送するように構成される、システム。 - 前記プロセッサは、前記1つ又は複数のページで1つ又は複数のメモリセクタを特定するようにさらに構成され、前記1つ又は複数のページには、前記メモリセクタに関連付けられていないコード命令及びデータを有する、請求項9に記載のシステム。
- 前記プロセッサは、前記1つ又は複数の各ページを以下のように特定するようにさらに構成され、
第1のタイプのページは、前記メモリセクタに関するものだけのコード命令及びデータ、或いは前記1つ又は複数のメモリセクタに関するものだけのコード命令及びデータを含み、
第2のタイプのページは、前記メモリセクタ及び前記1つ又は複数のメモリセクタの両方に関するコード命令及びデータを含む、請求項9に記載のシステム。 - 前記プロセッサは、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記第1のタイプのページと前記第2のタイプのページについて互いに同じタグでタグ付けするように構成される、請求項11に記載のシステム。
- 前記プロセッサは、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記第1のタイプのページと前記第2のタイプのページについて互いに異なるタグでタグ付けするように構成される、請求項11に記載のシステム。
- 前記プロセッサは、以下の転送を検出すると、前記仮想メモリアドレス空間で前記通知を作成するようにさらに構成され、
前記両タイプのページに関連付けられた2つのセクタ間で制御の転送、
或いは前記第2のタイプのページにおけるページのセクタのタグ付けされたコード命令又はデータへの制御の転送である、請求項11に記載のシステム。 - 前記プロセッサは、以下の2つのセクタ間で制御の転送を検出すると、前記仮想メモリアドレス空間の複製で前記通知を作成するようにさらに構成され、
前記2つのセクタ間とは、別々のタグを有するがどちらも前記第1のタイプのページに関連しているセクタ間、或いは、前記第2のタイプのページのページに関連付けられたセクタから、
別のタグを有し前記第1のタイプのページのページに関連付けられたセクタとの間である、
請求項11に記載のシステム。 - コンピュータプログラムの実行を制御するためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、前記命令は、メモリセクタ決定命令と、ページ決定命令と、複製命令と、タグ付け命令と、通知受信命令と、転送命令を含み、
前記メモリセクタ決定命令は、コンピュータプログラムの実行命令の少なくとも一部を仮想メモリアドレス空間に格納するために、プロセッサによってメモリセクタを決定し、
前記ページ決定命令は、前記メモリセクタに関連するコード命令及びデータを含む1つ又は複数のページを前記仮想メモリアドレス空間内で決定し、
前記複製命令は、前記メモリセクタと前記1つ又は複数のページを含む前記仮想メモリアドレス空間の複製を作成し、
前記タグ付け命令は、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記メモリセクタと前記1つ又は複数のページをタグ付けし、
前記通知受信命令は、前記仮想メモリアドレス空間又は前記仮想メモリアドレス空間の複製に格納された命令を実行する間、それぞれのメモリセクタ間で前記コンピュータプログラムの実行を転送するための通知を受信し、
前記転送命令は、前記コンピュータプログラムの実行を、前記通知を受信したメモリロケーションとは別のメモリロケーションに転送する、非一時的なコンピュータ可読媒体。 - 前記命令は、取得命令と、メモリセクタ特定命令と、ページ特定命令をさらに含み、前記取得命令は、前記コンピュータプログラムの実行命令を格納する前記仮想メモリアドレス空間を取得し、
前記メモリセクタ特定命令は、前記1つ又は複数のページの中に1つ又は複数のメモリセクタを特定し、前記1つ又は複数のページには、前記メモリセクタに関連付けられていないコード命令及びデータを有し、
前記ページ特定命令は、前記1つ又は複数の各ページを以下のように特定し、
第1のタイプのページは、前記メモリセクタに関するものだけのコード命令及びデータ、或いは前記1つ又は複数のメモリセクタに関するものだけのコード命令及びデータを含み、
第2のタイプのページは、前記メモリセクタ及び前記1つ又は複数のメモリセクタの両方に関するコード命令及びデータを含む、請求項16に記載の非一時的なコンピュータ可読媒体。 - 前記タグ付け命令は、前記仮想メモリアドレス空間と前記仮想メモリアドレス空間の複製の両方において、前記第1のタイプのページと前記第2のタイプのページについて互いに同じタグ又は異なるタグでタグ付けする命令を含む、請求項17に記載の非一時的なコンピュータ可読媒体。
- 以下の転送を検出すると、前記仮想メモリアドレス空間で前記通知を作成する命令をさらに含み、
前記両タイプのページに関連付けられた2つのセクタ間で制御の転送、
或いは前記第2のタイプのページにおけるページのセクタのタグ付けされたコード命令又はデータへの制御の転送である、請求項17に記載の非一時的なコンピュータ可読媒体。 - 以下の2つのセクタ間で制御の転送を検出すると、前記仮想メモリアドレス空間の複製で前記通知を作成する命令をさらに含み、
前記2つのセクタ間とは、別々のタグを有するがどちらも前記第1のタイプのページに関連しているセクタ間、或いは、
前記第2のタイプのページのページに関連付けられたセクタから、
別のタグを有し前記第1のタイプのページのページに関連付けられたセクタとの間である、
請求項17に記載の非一時的なコンピュータ可読媒体。 - 前記命令は、あるタグでタグ付けされたメモリセクタから別のタグでタグ付けされたメモリセクタへ、プログラム制御を転送したプログラム命令に関する情報をログに保存する命令をさらに含む、請求項16に記載の非一時的なコンピュータ可読媒体。
- メモリロケーションを選択することは、
プログラム命令の実行のために、関連あるメモリセクタを選択する命令と、
プログラムAPI関数ライブラリの実行のために複製メモリセクタを選択する命令を含む、
請求項16に記載の非一時的なコンピュータ可読媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016121876 | 2016-06-02 | ||
RU2016121876A RU2634172C1 (ru) | 2016-06-02 | 2016-06-02 | Способ передачи управления между адресными пространствами |
US15/234,431 | 2016-08-11 | ||
US15/234,431 US10162745B2 (en) | 2016-06-02 | 2016-08-11 | System and method of transfer of control between memory locations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017220196A true JP2017220196A (ja) | 2017-12-14 |
JP6322246B2 JP6322246B2 (ja) | 2018-05-09 |
Family
ID=60153955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016180473A Active JP6322246B2 (ja) | 2016-06-02 | 2016-09-15 | メモリロケーション間で制御を転送するシステム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10162745B2 (ja) |
JP (1) | JP6322246B2 (ja) |
CN (1) | CN107463513B (ja) |
RU (1) | RU2634172C1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10996886B2 (en) * | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
CN110297657B (zh) * | 2019-06-11 | 2023-07-21 | 东南大学 | 一种基于层次上下文的api推荐方法 |
CN112084013B (zh) * | 2019-06-13 | 2024-04-05 | 武汉杰开科技有限公司 | 一种程序调用方法、芯片及计算机存储介质 |
CN113553274B (zh) * | 2020-04-24 | 2023-09-12 | 江苏华创微系统有限公司 | 用自适应粒度目录表实现片间一致性的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235707A (ja) * | 2013-06-05 | 2014-12-15 | 株式会社リコー | 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム |
WO2015100538A1 (en) * | 2013-12-30 | 2015-07-09 | Nokia Technologies Oy | Method and apparatus for malware detection |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2275930B1 (en) * | 1999-01-28 | 2017-06-14 | Advanced Silicon Technologies, LLC | Executing programs for a first computer architecture on a computer of a second architecture |
JP4892167B2 (ja) * | 2000-07-18 | 2012-03-07 | シンプレックス メジャー センドリアン ベルハッド | ディジタル・データ保護構成 |
US7356736B2 (en) | 2001-09-25 | 2008-04-08 | Norman Asa | Simulated computer system for monitoring of software performance |
WO2005003962A2 (de) * | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit |
US7472384B1 (en) * | 2003-12-02 | 2008-12-30 | Swsoft Holdings, Ltd. | System, method and computer program product for on-the-fly patching of executable code |
GB0418306D0 (en) * | 2004-08-17 | 2004-09-15 | Ibm | Debugging an application process at runtime |
US20060259903A1 (en) * | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
US7363463B2 (en) | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US8819641B1 (en) | 2006-04-27 | 2014-08-26 | Epic Games, Inc. | Program state reversing software development tool |
US7945761B2 (en) | 2006-11-21 | 2011-05-17 | Vmware, Inc. | Maintaining validity of cached address mappings |
CN100555240C (zh) | 2007-01-16 | 2009-10-28 | 国际商业机器公司 | 用于诊断应用程序的方法和系统 |
US8239832B2 (en) | 2007-05-25 | 2012-08-07 | Microsoft Corporation | In-process debugging using external debugging infrastructure |
DE102007038763A1 (de) * | 2007-08-16 | 2009-02-19 | Siemens Ag | Verfahren und Vorrichtung zur Sicherung eines Programms gegen eine Kontrollflussmanipulation und gegen einen fehlerhaften Programmablauf |
GB2474521B (en) * | 2009-10-19 | 2014-10-15 | Ublox Ag | Program flow control |
WO2011076120A1 (en) * | 2009-12-25 | 2011-06-30 | Shanghai Xin Hao Micro Electronics Co. Ltd. | High-performance cache system and method |
CN102375781B (zh) * | 2010-08-04 | 2014-06-11 | 群联电子股份有限公司 | 数据保护方法、存储器控制器及可携式存储器储存装置 |
US8639815B2 (en) * | 2011-08-31 | 2014-01-28 | International Business Machines Corporation | Selecting a primary-secondary host pair for mirroring virtual machines |
US8856789B2 (en) * | 2012-09-06 | 2014-10-07 | Assured Information Security, Inc. | Facilitating execution of a self-modifying executable |
US9436395B2 (en) * | 2014-03-14 | 2016-09-06 | Advanced Micro Devices, Inc. | Mechanisms to save user/kernel copy for cross device communications |
US9703948B2 (en) * | 2014-03-28 | 2017-07-11 | Intel Corporation | Return-target restrictive return from procedure instructions, processors, methods, and systems |
RU2580016C1 (ru) * | 2014-10-17 | 2016-04-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ передачи управления между областями памяти |
-
2016
- 2016-06-02 RU RU2016121876A patent/RU2634172C1/ru active
- 2016-08-11 US US15/234,431 patent/US10162745B2/en active Active
- 2016-09-15 JP JP2016180473A patent/JP6322246B2/ja active Active
- 2016-09-29 CN CN201610866237.7A patent/CN107463513B/zh active Active
-
2018
- 2018-11-16 US US16/193,005 patent/US10261895B2/en active Active
- 2018-11-16 US US16/192,957 patent/US10387300B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235707A (ja) * | 2013-06-05 | 2014-12-15 | 株式会社リコー | 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム |
WO2015100538A1 (en) * | 2013-12-30 | 2015-07-09 | Nokia Technologies Oy | Method and apparatus for malware detection |
Also Published As
Publication number | Publication date |
---|---|
JP6322246B2 (ja) | 2018-05-09 |
US20190087318A1 (en) | 2019-03-21 |
US20190087319A1 (en) | 2019-03-21 |
US10261895B2 (en) | 2019-04-16 |
CN107463513A (zh) | 2017-12-12 |
US10387300B2 (en) | 2019-08-20 |
RU2634172C1 (ru) | 2017-10-24 |
CN107463513B (zh) | 2021-01-12 |
US10162745B2 (en) | 2018-12-25 |
US20170351600A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3009935B1 (en) | System and method of transfer of control between memory locations | |
Ligh et al. | The art of memory forensics: detecting malware and threats in windows, linux, and Mac memory | |
JP7489988B2 (ja) | ガベージコレクションのマーキングにおける同期依存の軽減 | |
US10846145B2 (en) | Enabling live migration of virtual machines with passthrough PCI devices | |
US7213125B2 (en) | Method for patching virtually aliased pages by a virtual-machine monitor | |
US10261895B2 (en) | System and method for transferring execution of a computer program | |
TWI464575B (zh) | 對應用程式進行透明式檢測的方法及系統,和計算系統 | |
KR20210089150A (ko) | 호스트 컴퓨팅 디바이스 가상 메모리에 의해 지원되는 가상 머신 메모리의 더 빠른 액세스 | |
US9292417B2 (en) | System and method for hypervisor breakpoints | |
US20080005529A1 (en) | Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space | |
Tang et al. | Exploring control flow guard in windows 10 | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
KR20210057176A (ko) | 함수 점프 구현 방법, 디바이스, 및 컴퓨터 저장 매체 | |
AU2010355814A1 (en) | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor | |
US20080005528A1 (en) | Methods, Systems, and Computer Program Products for Using a Structured Data Storage System to Provide Access to Addressable Entities in Virtual Address Space | |
JP2016529592A (ja) | 仮想システムの受動的監視のための方法、システム、コンピュータ・プログラム、およびアプリケーション展開方法 | |
EP3252610B1 (en) | System and method of transfer of control between memory locations | |
US20200026875A1 (en) | Protected health information in distributed computing systems | |
RU2623883C1 (ru) | Способ выполнения инструкций в системной памяти | |
US20210157601A1 (en) | Exception interception | |
JP2010176660A (ja) | 仮想ハードディスクへのファイル属性情報の安全な管理の拡張 | |
US20170353485A1 (en) | Facilitating scanning of protected resources | |
JP7369720B2 (ja) | アクションをトリガするための装置及び方法 | |
US20230342173A1 (en) | Virtual machine storage system for duplication avoidance | |
Both et al. | Everything Is a File |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180316 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6322246 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |