KR100818919B1 - 메소드 호출 방법 및 이를 이용한 자바 가상 머신 - Google Patents
메소드 호출 방법 및 이를 이용한 자바 가상 머신 Download PDFInfo
- Publication number
- KR100818919B1 KR100818919B1 KR1020060018412A KR20060018412A KR100818919B1 KR 100818919 B1 KR100818919 B1 KR 100818919B1 KR 1020060018412 A KR1020060018412 A KR 1020060018412A KR 20060018412 A KR20060018412 A KR 20060018412A KR 100818919 B1 KR100818919 B1 KR 100818919B1
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- executing
- called
- bytecode
- virtual machine
- Prior art date
Links
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims (20)
- 제1 메소드가 호출되는 경우 상기 제1 메소드의 실행에 필요한 정보를 포함하는 프레임을 생성하는 단계; 및소정의 조건을 만족하는 제2 메소드가 호출되는 경우, 상기 생성된 프레임을 사용하여 상기 제2 메소드를 실행하는 단계를 포함하는, 메소드 호출 방법.
- 제 1항에 있어서,상기 프레임은 실행중인 바이트코드의 위치를 지시하는 프로그램 카운터, 실행 중인 메소드의 종료시 리턴할 바이트코드의 위치를 지시하는 리턴 주소, 및 상기 실행중인 메소드가 사용할 피연산자 스택을 포함하는, 메소드 호출 방법.
- 제 2항에 있어서,상기 제2 메소드를 실행하는 단계는,상기 제2 메소드를 호출하는 바이트코드의 다음 바이트코드의 위치 정보를 상기 리턴 주소로 저장하는 단계;상기 제2 메소드의 첫번째 바이트코드의 위치로 상기 프로그램 카운터를 설정하는 단계; 및상기 피연산자 스택을 사용하여 상기 제2 메소드를 실행하는 단계를 포함하는, 메소드 호출 방법.
- 제 1항에 있어서,상기 제1 메소드를 호출하는 단계; 및상기 제1 메소드가 사용할 피연산자 스택을 할당하는 단계를 더 포함하는, 메소드 호출 방법.
- 제 4항에 있어서,상기 피연산자 스택은 상기 제1 메소드의 실행에 필요한 것보다 소정의 양만큼 더 큰, 메소드 호출 방법.
- 제 1항에 있어서,상기 제2 메소드는 상기 제1 메소드로부터 호출되고, 다른 메소드를 호출하지 않는 메소드인, 메소드 호출 방법.
- 제 1항에 있어서,상기 제2 메소드는 상기 제1 메소드로부터 파생된 메소드 호출 경로 상에 존재하는 메소드이고, 상기 메소드 호출 경로는 임계 레벨 이하의 메소드 호출 레벨로 구성되는, 메소드 호출 방법.
- 제 7항에 있어서,상기 제2 메소드는 상기 제2 메소드의 실행을 위하여 필요한 피연산자 스택의 크기가 임계크기 미만인 메소드인, 메소드 호출 방법.
- 제 1항에 있어서,소정의 클래스 파일을 로딩하는 단계; 및상기 클래스 파일에 포함된 메소드들 중에서 상기 제1 메소드로서 동작할 수 있는 메소드와 상기 제2 메소드로서 동작할 수 있는 메소드에 대한 정보를 제공하는 단계를 더 포함하는, 메소드 호출 방법.
- 소정의 클래스 파일을 로딩하는 클래스 로더; 및상기 로딩된 클래스 파일에 포함된 메소드 중에서 제1 메소드가 호출되는 경우 상기 제1 메소드의 실행에 필요한 정보를 포함하는 프레임을 생성하고, 소정의 조건을 만족하는 제2 메소드가 호출되는 경우 상기 생성된 프레임을 사용하여 상기 제2 메소드를 실행하는 인터프리터를 포함하는, 디지털 연산 장치.
- 제 10항에 있어서,상기 프레임은 실행중인 바이트코드의 위치를 지시하는 프로그램 카운터, 실행 중인 메소드의 종료시 리턴할 바이트코드의 위치를 지시하는 리턴 주소, 및 상기 실행중인 메소드가 사용할 피연산자 스택을 포함하는, 디지털 연산 장치.
- 제 11항에 있어서,상기 인터프리터는 상기 제2 메소드를 호출하는 바이트코드의 다음 바이트코드의 위치 정보를 상기 리턴 주소로 저장하고, 상기 제2 메소드의 첫번째 바이트코드의 위치로 상기 프로그램 카운터를 설정하고, 상기 피연산자 스택을 사용하여 상기 제2 메소드를 실행하는, 디지털 연산 장치.
- 제 10항에 있어서,상기 인터프리터는 상기 제1 메소드를 호출하고, 상기 제1 메소드가 사용할 피연산자 스택을 할당하는, 디지털 연산 장치.
- 제 13항에 있어서,상기 피연산자 스택은 상기 제1 메소드의 실행에 필요한 것보다 소정의 양만큼 더 큰, 디지털 연산 장치.
- 제 10항에 있어서,상기 제2 메소드는 상기 제1 메소드로부터 호출되고, 다른 메소드를 호출하지 않는 메소드인, 디지털 연산 장치.
- 제 10항에 있어서,상기 제2 메소드는 상기 제1 메소드로부터 파생된 메소드 호출 경로 상에 존재하는 메소드이고, 상기 메소드 호출 경로는 임계 레벨 이하의 메소드 호출 레벨로 구성되는, 디지털 연산 장치.
- 제 16항에 있어서,상기 제2 메소드는 상기 제2 메소드의 실행을 위하여 필요한 피연산자 스택의 크기가 임계크기 미만인 메소드인, 디지털 연산 장치.
- 제 10항에 있어서,상기 클래스 로더는 상기 클래스 파일에 포함된 메소드들 중에서 상기 제1 메소드로서 동작할 수 있는 메소드와 상기 제2 메소드로서 동작할 수 있는 메소드에 대한 정보를 제공하는, 디지털 연산 장치.
- 자바 가상 머신;상기 자바 가상 머신이 사용할 메모리를 제공하는 주 기억부; 및상기 자바 가상 머신에게 소정의 데이터를 입력하고, 상기 자바 가상 머신으로부터 소정의 작업 결과를 출력 받는 입출력부를 포함하고,상기 자바 가상 머신은,소정의 클래스 파일을 로딩하는 클래스 로더; 및상기 로딩된 클래스 파일에 포함된 메소드 중에서 제1 메소드가 호출되는 경우 상기 제1 메소드의 실행에 필요한 정보를 포함하는 프레임을 생성하고, 소정의 조건을 만족하는 제2 메소드가 호출되는 경우 상기 생성된 프레임을 사용하여 상기 제2 메소드를 실행하는 인터프리터를 포함하는, 디지털 연산 장치.
- 제 1항 내지 제 9항 중 어느 한 항에 의한 방법을 실행하기 위한 컴퓨터로 읽을 수 있는 프로그램을 기록한 기록매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060018412A KR100818919B1 (ko) | 2006-02-24 | 2006-02-24 | 메소드 호출 방법 및 이를 이용한 자바 가상 머신 |
US11/652,597 US8341606B2 (en) | 2006-02-24 | 2007-01-12 | Method of invoking inlined method and java virtual machine using the method |
JP2007026490A JP2007226784A (ja) | 2006-02-24 | 2007-02-06 | インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン |
EP07102947A EP1830255A3 (en) | 2006-02-24 | 2007-02-23 | Method execution in a computing environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060018412A KR100818919B1 (ko) | 2006-02-24 | 2006-02-24 | 메소드 호출 방법 및 이를 이용한 자바 가상 머신 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070088160A KR20070088160A (ko) | 2007-08-29 |
KR100818919B1 true KR100818919B1 (ko) | 2008-04-03 |
Family
ID=37914003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060018412A KR100818919B1 (ko) | 2006-02-24 | 2006-02-24 | 메소드 호출 방법 및 이를 이용한 자바 가상 머신 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8341606B2 (ko) |
EP (1) | EP1830255A3 (ko) |
JP (1) | JP2007226784A (ko) |
KR (1) | KR100818919B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328692A (ja) * | 2006-06-09 | 2007-12-20 | Canon Inc | 代数演算方法及びその装置、プログラム |
US8413125B2 (en) * | 2007-01-26 | 2013-04-02 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
US8813051B2 (en) * | 2011-04-14 | 2014-08-19 | International Business Machines Corporation | Running multiple copies of native code in a Java Virtual Machine |
US9753846B2 (en) * | 2012-09-06 | 2017-09-05 | Red Hat, Inc. | Adjusting the operating memory used by a virtual machine during runtime |
CN114003317B (zh) * | 2021-10-29 | 2024-09-20 | 北京达佳互联信息技术有限公司 | 内联实现方法及装置、电子设备、存储介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084146A (ja) * | 1999-08-30 | 2001-03-30 | Internatl Business Mach Corp <Ibm> | バイトコード実行装置およびその方法 |
US20030018679A1 (en) * | 2001-03-27 | 2003-01-23 | Sun Microsystems, Inc. | Enhanced virtual machine instructions |
US20050050528A1 (en) * | 2003-07-03 | 2005-03-03 | International Business Machines Corporation | Method and apparatus to guarantee type and initialization safety in multithreaded programs |
KR20060028568A (ko) * | 2004-09-25 | 2006-03-30 | 삼성전자주식회사 | 이종의 자바 메소드를 실행하는 방법 및 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185597B1 (en) | 1995-06-07 | 2001-02-06 | Microsoft Corporation | Method and system for expanding a buried stack frame |
WO1999049238A1 (fr) * | 1996-10-02 | 1999-09-30 | Harmonic Drive Systems Inc. | Appareil de regulation de phase |
US6003038A (en) * | 1997-03-31 | 1999-12-14 | Sun Microsystems, Inc. | Object-oriented processor architecture and operating method |
US6138210A (en) * | 1997-06-23 | 2000-10-24 | Sun Microsystems, Inc. | Multi-stack memory architecture |
US6170083B1 (en) * | 1997-11-12 | 2001-01-02 | Intel Corporation | Method for performing dynamic optimization of computer code |
US6507946B2 (en) * | 1999-06-11 | 2003-01-14 | International Business Machines Corporation | Process and system for Java virtual method invocation |
GB9921721D0 (en) | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
US6658657B1 (en) | 2000-03-31 | 2003-12-02 | Intel Corporation | Method and apparatus for reducing the overhead of virtual method invocations |
US6934939B2 (en) * | 2001-02-28 | 2005-08-23 | International Business Machines Corporation | Method for unwinding a program call stack |
US7080368B2 (en) * | 2002-10-31 | 2006-07-18 | International Business Machines Corporation | Object oriented apparatus and method for preserving stack frame identity during inlined method calls |
KR100654428B1 (ko) | 2004-01-14 | 2006-12-06 | 삼성전자주식회사 | 자바 프로그램의 처리 속도를 향상시키는 시스템 및 그 방법 |
JP2005284729A (ja) | 2004-03-30 | 2005-10-13 | Fujitsu Ltd | バイトコードをネイティブコードにコンパイルする仮想マシン |
-
2006
- 2006-02-24 KR KR1020060018412A patent/KR100818919B1/ko active IP Right Grant
-
2007
- 2007-01-12 US US11/652,597 patent/US8341606B2/en active Active
- 2007-02-06 JP JP2007026490A patent/JP2007226784A/ja active Pending
- 2007-02-23 EP EP07102947A patent/EP1830255A3/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084146A (ja) * | 1999-08-30 | 2001-03-30 | Internatl Business Mach Corp <Ibm> | バイトコード実行装置およびその方法 |
US20030018679A1 (en) * | 2001-03-27 | 2003-01-23 | Sun Microsystems, Inc. | Enhanced virtual machine instructions |
US20050050528A1 (en) * | 2003-07-03 | 2005-03-03 | International Business Machines Corporation | Method and apparatus to guarantee type and initialization safety in multithreaded programs |
KR20060028568A (ko) * | 2004-09-25 | 2006-03-30 | 삼성전자주식회사 | 이종의 자바 메소드를 실행하는 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP1830255A3 (en) | 2009-05-06 |
US8341606B2 (en) | 2012-12-25 |
US20070204258A1 (en) | 2007-08-30 |
KR20070088160A (ko) | 2007-08-29 |
EP1830255A2 (en) | 2007-09-05 |
JP2007226784A (ja) | 2007-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7406684B2 (en) | Compiler, dynamic compiler, and replay compiler | |
US7181610B2 (en) | Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension | |
WO2018099292A1 (zh) | 一种进程管理方法及装置 | |
KR101059633B1 (ko) | 멀티태스킹 가상 머신을 위한 힙 구성 | |
WO2020192705A1 (zh) | 类加载方法和装置 | |
US8200938B2 (en) | Computer system and method providing a memory buffer for use with native and platform-independent software code | |
KR100818919B1 (ko) | 메소드 호출 방법 및 이를 이용한 자바 가상 머신 | |
US20220300264A1 (en) | Implementing optional specialization when compiling code | |
KR100577366B1 (ko) | 이종의 자바 메소드를 실행하는 방법 및 장치 | |
US20140222410A1 (en) | Hybrid emulation and kernel function processing systems and methods | |
US20100058305A1 (en) | Automatic Generation of Language Bindings for Libraries Using Data from Compiler Generated Debug Information | |
US7213098B2 (en) | Computer system and method providing a memory buffer for use with native and platform-independent software code | |
US20060070028A1 (en) | Procedure invocation in an integrated computing environment having both compiled and interpreted code segments | |
CN109032572B (zh) | 一种基于字节码的java程序方法内联的方法 | |
US7100015B1 (en) | Redirecting external memory allocation operations to an internal memory manager | |
US9389843B2 (en) | Efficient interpreter profiling to obtain accurate call-path information | |
CN112711462A (zh) | 一种云平台虚拟cpu热绑定方法、装置及计算机可读存储介质 | |
KR101140522B1 (ko) | 객체 관리 시스템 및 방법 | |
US20240111555A1 (en) | Unknown object sub-class identification | |
US11720374B1 (en) | Dynamically overriding a function based on a capability set | |
JP5646591B2 (ja) | マルチタスク仮想マシンのためのヒープ組織 | |
WO2023154092A1 (en) | Dynamically overriding a function based on a capability set during load time | |
CN118377559A (zh) | 一种页面显示方法、可穿戴电子设备及可读存储介质 | |
CN116010100A (zh) | 区块链系统中的合约调用方法、装置、设备及存储介质 | |
CN118656144A (zh) | Matlab驱动加载方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130221 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140221 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150212 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160218 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180220 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190220 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20200225 Year of fee payment: 13 |