Parallel Processing Of Data
US-2024338235-A1 · Oct 10, 2024 · US
US9766911B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9766911-B2 |
| Application number | US-42939909-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 24, 2009 |
| Priority date | Apr 24, 2009 |
| Publication date | Sep 19, 2017 |
| Grant date | Sep 19, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Aspects of the invention are directed to a systems and methods for operating a non-native binary in dynamic binary translation environment. In accordance with an embodiment, there is provided a computer program product in a computer readable medium. The product includes program code for receiving a non-native binary in a computer readable medium and program code for translating the non-native binary. Additionally, the product includes program code for executing the translated non-native binary, the non-native binary including one or more threads, and program code for pausing execution of the translated non-native binary. The product also includes program code for providing guest instruction boundary information to a monitoring process and program code for analyzing a state of each thread of the translated non-native binary. Moreover, the product includes program code for fast-forwarding at least one thread so that its state is consistent with the guest instruction boundary.
Opening claim text (preview).
The invention claimed is: 1. One or more non-transitory computer readable media comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction is translated to a plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the execution of the translated non-native binary has not been paused at any instruction boundary associated with the non-native binary; causing, by the monitoring process, execution of at least the last instruction of the particular plurality of translated non-native binary instructions to reach the instruction boundary associated with the particular non-native binary instruction; and pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 2. The media of claim 1 , wherein the operations further comprise: saving a state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 3. The media of claim 1 , wherein the operations further comprise: exporting, to the monitoring process, a state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 4. The media of claim 3 wherein the monitoring process comprises a non-native process different than the non-native binary. 5. The media of claim 1 , wherein the operations further comprise: determining if an address space of the non-native binary has been modified; and routing execution of the translated non-native binary through a special service routine if the address space is modified. 6. The media of claim 5 wherein routing execution of the translated non-native binary through the special service routine comprises: flushing cache code; and translating the address space of the non-native binary that has been modified. 7. The media of claim 5 wherein determining if the address space of the non-native binary has been modified is based on a /proc/pid/as file of the non-native binary. 8. A system comprising: at least one device including a hardware processor; and the system configured to perform operations comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction is translated to a plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the execution of the translated non-native binary has not been paused at any instruction boundary associated with the non-native binary; causing, by the monitoring process, execution of at least the last instruction of the particular plurality of translated non-native binary instructions to reach the instruction boundary associated with the particular non-native binary instruction; and pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 9. The system of claim 8 wherein the operations further comprise: exporting a register state of the non-native binary after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction. 10. The system of claim 9 wherein the register state is exported to an offset address relative to a binary translator in a computer readable medium. 11. The system of claim 8 wherein the operations further comprise: reading a register state of the non-native binary by opening a /proc/pid/as file of the non-native binary. 12. The system of claim 8 , wherein the operations further comprise: reading, by a second non-native binary, a register state of the non-native binary. 13. The media of claim 1 wherein the instruction boundary associated with the particular non-native binary instruction indicates a stopping point in the plurality of translated non-native binary instructions. 14. The media of claim 1 , wherein the operations further comprise: exporting a state of the non-native binary, after pausing execution of the translated non-native binary when the last instruction has been executed to reach the instruction boundary associated with the particular non-native binary instruction, to an offset address relative to a binary translator. 15. A method, comprising: translating a non-native binary using a binary translator to obtain a translated non-native binary, wherein a particular non-native binary instruction corresponds to a particular plurality of translated non-native binary instructions, and wherein an instruction boundary associated with the particular non-native binary instruction corresponds to a last instruction in the particular plurality of translated non-native binary instructions; beginning execution of the translated non-native binary on a host operating system; during execution of a particular translated non-native binary instruction of the plurality of translated non-native binary instructions: receiving a command to pause execution of the translated non-native binary; responsive to receiving the command: pausing execution of the translated non-native binary after executing the particular translated non-native binary instruction of the plurality of translated non-native binary instructions and before executing a next instruction of the plurality of translated non-native binary instructions; determining, by a monitoring process, that the exe
Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title
Runtime code conversion or optimisation · CPC title
by tracing the execution of the program · CPC title
by runtime analysis (performance monitoring G06F11/3466) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.