KR100790304B1 - 자바 가상 머신과 운영 체제의 스케줄링 실행방법 - Google Patents

자바 가상 머신과 운영 체제의 스케줄링 실행방법 Download PDF

Info

Publication number
KR100790304B1
KR100790304B1 KR1020060111091A KR20060111091A KR100790304B1 KR 100790304 B1 KR100790304 B1 KR 100790304B1 KR 1020060111091 A KR1020060111091 A KR 1020060111091A KR 20060111091 A KR20060111091 A KR 20060111091A KR 100790304 B1 KR100790304 B1 KR 100790304B1
Authority
KR
South Korea
Prior art keywords
scheduling
operating system
virtual machine
java
java virtual
Prior art date
Application number
KR1020060111091A
Other languages
English (en)
Inventor
손재웅
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 KR1020060111091A priority Critical patent/KR100790304B1/ko
Application granted granted Critical
Publication of KR100790304B1 publication Critical patent/KR100790304B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

운영 체제(OS)로부터 프로세스를 제공받는 자바 가상 머신(JVM)의 스케줄링 실행방법에 있어서, 상기 자바 가상 머신이 자바 어플리케이션에 대한 스케줄링 정책을 선택하고, 상기 운영 체제의 정보를 입수하는 단계 및 상기 운영 체제의 정보에 따라 상기 자바 가상 머신의 스케줄링 알고리즘을 변경하는 단계를 포함한다. 자바 가상 머신에 프로세스를 제공하는 운영 체제의 정보와 자바 어플리케이션의 특성에 따라 자바 가상 머신의 스케줄링을 변경하고, 자바 가상 머신의 스케줄링에 따라 운영 체제의 스케줄링을 변경함으로써, 다양한 자바 어플리케이션에 적절한 스케줄링을 자바 가상 머신과 운영 체제에 적용하여 자바 어플리케이션을 효율적으로 처리할 수 있다.

Description

자바 가상 머신과 운영 체제의 스케줄링 실행방법{Method for executing of Java virtual machine scheduling and operating system scheduling}
도 1은 본 발명의 실시예에 따른 자바 가상 머신과 운영 체제를 간략히 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 자바 가상 머신과 운영 체제의 스케줄링 실행방법을 도시한 흐름도이다.
도 3a 및 3b는 자바 가상 머신과 운영 체제의 스케줄링의 대기열(queue)을 도시한 예시도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100 : 자바 가상 머신(JVM)
110 : 자바 어플리케이션
120 : 자바 라이브러리
200 : 운영 체제
210 : 하드웨어
220 : 운영 체제 모듈
본 발명은 자바 가상 머신과 운영 체제의 스케줄링 실행방법에 관한 것으로, 보다 상세하게는 자바 가상 머신의 스케줄링과 운영 체제의 스케줄링이 자바 어플리케이션의 특성에 최적화되도록 변경하는 스케줄링 실행방법에 관한 것이다.
일반적으로 하나의 운영 체제(Operating System, OS)가 여러 개의 프로세스(process)들을 효율적으로 처리하기 위하여 프로세스들의 수행 순서를 정하게 되는데, 이를 스케줄링(scheduling)이라고 한다. 하나의 프로세스를 수행하는 동안 중앙 처리 장치(Central Processing Unit, CPU)는 데이터의 연산 과정에서는 필요하지만 데이터의 I/O(Input/Output) 과정에서는 필요하지 않다. 따라서, 실행 중인 프로세스에서 중앙 처리 장치를 사용하지 않는 동안 다른 프로세스에서 중앙 처리 장치를 사용할 수 있도록 스케줄링함으로써 효율적으로 다수의 프로세스들을 처리할 수 있게 된다.
한편, 자바 가상 머신(Java Virtual Machine, JVM)은 자바 어플리케이션(application)을 자바 컴파일러(Java compiler)에서 바이트 코드(bytecode)로 변환하고, 바이트 코드를 자바 인터프리터(Java interpreter)로 해석하여 실행하는 소프트웨어이다. 자바 가상 머신을 설치한 시스템에서는 유닉스(UNIX), 윈도우즈(Windows), 리눅스(Linux), Mac OS 등의 다양한 운영 체제에 의존하지 않고 자바 어플리케이션을 실행할 수 있게 된다.
자바 가상 머신은 운영 체제(OS)의 스케줄링에 따라 프로세스를 할당받아 실행하게 되는데, 자바 가상 머신도 여러 개의 자바 어플리케이션들을 효율적으로 처리하기 위하여 스케줄링을 한다. 자바 가상 머신은 할당받은 프로세스 내에서 여러 개의 자바 어플리케이션들을 스레드(Thread)로 세분하여 실행하게 된다.
이러한 자바 가상 머신의 스케줄링과 운영 체제의 스케줄링이 각각 획일적으로 이루어지게 되면, 다양한 자바 어플리케이션에 대해 적절한 스케줄링을 적용할 수 없게 되어 자바 어플리케이션의 성능을 저하시키는 원인이 된다.
본 발명이 이루고자 하는 목적은 자바 가상 머신에 프로세스를 제공하는 운영 체제의 정보와 자바 어플리케이션의 특성에 따라 자바 가상 머신의 스케줄링을 변경하고, 자바 가상 머신의 스케줄링에 따라 운영 체제의 스케줄링을 변경하는 스케줄링 실행방법을 제공함에 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 스케줄링 실행방법은 운영 체제(OS)로부터 프로세스를 제공받는 자바 가상 머신(JVM)의 스케줄링 실행방법에 있어서, 상기 자바 가상 머신이 자바 어플리케이션에 대한 스케줄링 정책을 선택하고, 상기 운영 체제의 정보를 입수하는 단계 및 상기 운영 체제의 정보에 따라 상기 자바 가상 머신의 스케줄링 알고리즘을 변경하는 단계를 포함한다.
상기 자바 어플리케이션에 대한 스케줄링 정책은 선점 스케줄링(preemptive scheduling) 및 비선점 스케줄링(non-preemptive scheduling) 중 적어도 어느 하나일 수 있다.
상기 자바 가상 머신은 상기 운영 체제의 커널(kernel)에 접근할 수 있는 운영 체제 모듈과 연동하는 자바 라이브러리를 이용하여 상기 운영 체제의 정보를 입수한다.
상기 자바 가상 머신이 입수하는 상기 운영 체제의 정보는 상기 운영 체제의 스케줄링 정책, 상기 운영 체제의 스케줄링 알고리즘 및 상기 운영 체제의 스케줄링의 프로세스 정보 중 적어도 어느 하나일 수 있다.
상기 자바 가상 머신의 스케줄링 알고리즘을 변경하는 단계는 상기 자바 가상 머신이 상기 자바 어플리케이션에 대한 스케줄링 정책을 변경하고, 이에 따라 상기 자바 어플리케이션에 대한 스케줄링 알고리즘을 변경하는 것일 수 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 다른 스케줄링 실행방법은 자바 가상 머신(JVM)에 프로세스를 제공하는 운영 체제(OS)의 스케줄링 실행방법에 있어서, 상기 자바 가상 머신으로 상기 운영 체제의 스케줄링 정책, 상기 운영 체제의 스케줄링 알고리즘 및 상기 운영 체제의 스케줄링의 프로세스 정보를 제공하여 상기 자바 가상 머신의 스케줄링 알고리즘을 변경시키는 단계 및 상기 자바 가상 머신의 스케줄링 알고리즘에 따라 상기 운영 체제의 스케줄링 알고리즘을 변경하는 단계를 포함한다.
상기 운영 체제의 스케줄링 알고리즘을 변경하는 단계는 상기 운영 체제의 커널(kernel)에 접근할 수 있는 운영 체제 모듈로 상기 운영 체제의 스케줄링 정책을 변경하고, 이에 따라 상기 운영 체제의 스케줄링 알고리즘을 변경하는 것이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 이 발명의 바람직한 실시예를 첨부된 도면을 참조로 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 자바 가상 머신과 운영 체제를 간략히 도시한 블록도이다.
도 1을 참조하면, 자바 가상 머신(100)은 자바 어플리케이션(110)을 컴파일(compile)하여 실행하는 소프트웨어이다. 자바 가상 머신(100)은 운영 체제(200)의 정보를 입수하고 운영 체제(200)에 접근할 수 있는 자바 라이브러리(Java library, 120)를 포함한다.
운영 체제(200)는 컴퓨터 시스템의 전체적인 기능을 제어하는 프로그램으로, 사용자의 응용 프로그램이 실행될 수 있는 환경을 제공하고, 컴퓨터 시스템을 구성하는 여러 하드웨어(210) 장치를 제어한다. 운영 체제(200)는 자바 가상 머신(100)의 자바 라이브러리(120)와 연동하여 운영 체제(200)의 커널(kernel)에 접근할 수 있는 운영 체제 모듈(220)을 포함한다.
자바 가상 머신(100)은 자바 어플리케이션(110)을 자바 컴파일러(미도시)에서 바이트 코드(bytecode)로 변환하고, 바이트 코드를 자바 인터프리터(미도시)에서 기계어로 해석하여 운영 체제(200)로 제공하여 자바 어플리케이션(110)을 실행한다. 자바 가상 머신(100)에는 자바 프로그램을 동작시키기 위한 클래스 라이브러 리(Class library, 미도시)가 있으며, 클래스 라이브러리를 이용하여 다수의 자바 어플리케이션(110)을 스케줄링할 수 있다.
자바 어플리케이션(110)은 자바 언어로 작성된 프로그램으로서, 수식의 계산, 자료의 입출력, 그래픽 화면 출력 등 자바 언어로 작성된 각종 응용 프로그램이 될 수 있다.
자바 라이브러리(120)는 자바 가상 머신(100)의 스케줄링과 운영 체제(200)의 스케줄링(200)을 최적화시키기 위한 도구로서, 운영 체제(200)의 정보를 입수하고 운영 체제 모듈(220)과 연동한다. 자바 라이브러리(120)가 입수하는 운영 체제(200)의 정보에는 운영 체제(200)의 스케줄링 정책(policy), 운영 제체(200)의 스케줄링 알고리즘 및 운영 체제(200)의 스케줄링의 프로세스(process)의 정보를 포함한다.
여기서, 프로세스는 하드웨어 자원을 할당하는 단위로서, 일반적으로 하나의 어플리케이션이 하나의 프로세스가 된다. 스케줄링의 프로세스의 정보는 처리중인 프로세스에 대한 정보와 대기열(queue)에 준비 중인 프로세스의 정보를 의미한다.
스케줄링 정책에는 선점 스케줄링(preemptive scheduling)과 비선점 스케줄링(non-preemptive scheduling)이 있다. 선점 스케줄링은 하나의 프로세스가 CPU를 사용하고 있을 때 다른 프로세스가 현재의 프로세스를 중지시키고 CPU를 사용할 수 있는 스케줄링이고, 비선점 스케줄링은 하나의 프로세스가 CPU를 사용하고 있으면 다른 프로세스는 CPU를 사용할 수 없는 스케줄링이다.
스케줄링 알고리즘에는 우선순위(priority) 스케줄링, 기한부(deadline) 스 케줄링, 선입선처리(first come first served, FCFS) 스케줄링, 라운드 로빈(round robin) 스케줄링, 최소작업우선(shortest job first) 스케줄링, SRT(short remaining time) 스케줄링, HRN(high response ratio next) 스케줄링, 다단계 큐(multi-level queue) 스케줄링, 다단계 피드백 큐(multi-feedback queue) 스케줄링 등이 있다.
스케줄링 알고리즘은 스케줄링 정책에 따라 분류될 수 있는데, 선점 스케줄링에는 라운드 로빈 스케줄링, SRT 스케줄링, 다단계 큐 스케줄링, 다단계 피드백 큐 스케줄링이 포함되며, 비선점 스케줄링에는 우선순위 스케줄링, 기한부 스케줄링, 선입선처리 스케줄링, 최소작업우선 스케줄링, HRN 스케줄링이 포함될 수 있다. 따라서, 스케줄링 정책을 변경하면, 이에 따라 해당 스케줄링 알고리즘이 변경될 수 있다.
운영 체제(200)는 개인용 컴퓨터(PC)에 사용되는 미국 마이크로소프트사가 개발한 MS-DOS, 윈도우즈(Windows), IBM사가 개발한 OS/2, 애플사가 개발한 맥 OS(Mac OS) 등과 워크스테이션에 주로 사용되는 미국 AT&T사가 개발한 유닉스(UNIX) 등이 될 수 있다.
이러한 운영 체제(200)는 보조 기억 장치상의 데이터 기록과 저장을 관리하는 파일 관리, 응용 프로그램의 실행 순서와 우선순위 등을 관리하는 스케줄링 관리, 정당한 사용자의 확인을 위한 보안(security) 관리, 통신 회선으로 연결된 컴퓨터 간의 정보 교환을 관리하는 통신망 관리 등 컴퓨터 시스템의 다양한 기능을 수행한다.
운영 체제(200)의 스케줄링 관리는 중앙 처리 장치(CPU)가 다수의 프로세스를 처리할 수 있도록 운영 체제(200)의 스케줄링 정책과 스케줄링 알고리즘을 선택하고, 프로세스의 특성에 따라 스케줄링 정책과 스케줄링 알고리즘을 변경하는 것이다.
운영 체제 모듈(220)은 운영 체제(200)의 스케줄링에 관한 정보를 자바 가상 머신(100)에 제공하고, 자바 가상 머신(100)의 자바 라이브러리(120)와 연동한다. 운영 체제 모듈(220)은 자바 가상 머신(100)의 자바 라이브러리(120)와 연동하여, 운영 체제(200)의 커널(kernel)에 접근하여 자바 어플리케이션(110)의 스케줄링에 적절하도록 운영 체제(200)의 스케줄링 정책과 스케줄링 알고리즘을 변경할 수 있다.
이하, 이러한 자바 가상 머신(100)과 운영 체제(200)가 상호 연동하여 최적화된 스케줄링을 실행하는 방법에 대하여 서술한다.
도 2는 본 발명의 실시예에 따른 자바 가상 머신과 운영 체제의 스케줄링 실행방법을 도시한 흐름도이다.
도 2를 참조하면, 자바 가상 머신(100)은 자바 어플리케이션(110)을 실행하도록 작업을 부여받으면, 해당 자바 어플리케이션(110)에 적절한 스케줄링 정책을 선택한다(S10). 이때, 자바 가상 머신(100)은 운영 체제(200)로부터 프로세스를 할당받고 운영 체제(200)의 스케줄링에 따라 대기열(queue)에 준비 상태로 놓여질 수 있다. 또한, 자바 가상 머신(100)은 복수의 자바 어플리케이션(110)에 대해 스레드(thread)를 할당하거나 하나의 자바 어플리케이션(110)이 실행하는 작업과정에 따라 스레드를 할당할 수 있다.
자바 어플리케이션(110)에 적절한 스케줄링 정책을 선택하는 방법에는 시뮬레이션 도구를 이용하는 방법과 자바 어플리케이션(110)의 특성을 이용하는 방법이 있다. 시뮬레이션 도구를 이용하는 방법은 자바 어플리케이션(110)을 여러 스케줄링 알고리즘을 적용하여 가상으로 수행시켜 봄으로써 결과를 예측하는 것이다. 자바 어플리케이션(110)의 특성을 이용하는 방법은 자바 어플리케이션(110)이 자주 사용하는 컴퓨터 시스템의 기능을 파악하는 것이다.
자바 가상 머신(100)은 자바 라이브러리(120)를 이용하여 운영 체제(200)의 스케줄링 정책, 운영 체제(200)의 스케줄링 알고리즘 및 운영 체제(200)의 스케줄링 프로세스의 정보 등 운영 체제(200)에 대한 정보를 입수한다(S20).
자바 가상 머신(100)은 운영 체제(200)에 대한 정보와 자바 어플리케이션(110)의 특성을 고려하여 자바 어플리케이션(110)에 대한 스케줄링과 운영 체제(200)의 스케줄링을 변경할 필요가 있는지 판단한다(S30). 이때, 자바 어플리케이션(110)의 특성은 자바 가상 머신(100)이 선택한 자바 어플리케이션(110)에 대한 스케줄링 정책과 이에 따른 자바 어플리케이션(110)에 대한 스케줄링 알고리즘이 될 수 있다.
자바 어플리케이션(110)의 스케줄링을 변경할 필요가 있는 경우, 자바 가상 머신(100)은 자바 어플리케이션(110)에 대한 스케줄링 정책 또는 스케줄링 알고리즘을 변경한다(S40). 이때, 자바 어플리케이션(110)의 스케줄링 정책을 변경함에 따라 스케줄링 알고리즘이 변경될 수 있고, 동일한 스케줄링 정책 하에서 자바 어 플리케이션(110)에 대한 스케줄링 알고리즘만을 변경할 수도 있다.
자바 가상 머신(100)은 자바 라이브러리(120)를 이용하여 운영 체제 모듈(220)과 연동하여 운영 체제(200)의 커널에 접근한다. 운영 체제(200)의 스케줄링을 자바 어플리케이션(110)에 대한 스케줄링에 적절한 스케줄링으로 변경한다(S50). 이때, 운영 체제(200)의 스케줄링 정책 또는 스케줄링 알고리즘을 변경한다.
이하, 자바 가상 머신(100)의 자바 어플리케이션(110)에 대한 스케줄링 변경에 따라 운영 체제(200)의 스케줄링을 변경하는 일실시예를 들어 설명한다.
도 3a 및 3b는 자바 가상 머신과 운영 체제의 스케줄링의 대기열(queue)을 도시한 예시도이다. 도 3a는 자바 가상 머신(100)과 운영 체제(200)가 선입선처리(FCFS) 스케줄링으로 구성한 대기열을 나타낸 것이고, 도 3b는 자바 가상 머신(100)과 운영 체제(200)가 SRT 스케줄링으로 구성한 대기열을 나타낸 것이다.
도 3a를 참조하면, 자바 가상 머신(100)과 운영 체제(200)가 선입선처리(FCFS) 스케줄링으로 구성한 대기열(queue)을 가정한다. 운영 체제(200)의 스케줄링의 대기열에는 프로세스1(P1), 프로세스2(P2), 프로세스3(P3), 프로세스4(P4)의 순으로 프로세스들이 처리를 기다리게 되고, 자바 가상 머신(100)의 스케줄링의 대기열에는 스레드1, 스레드2, 스레드3의 순으로 처리를 기다리게 된다.
선입선처리(FCFS) 스케줄링은 비선점 스케줄링으로 운영 체제(200)의 대기열에서 P1의 처리가 완료된 후에 P2가 처리되고, P2의 처리가 완료된 후에 P3의 처리가 이루어지게 된다. 자바 가상 머신(100)은 운영 체제(200)의 대기열의 P3을 할당 받았으므로, 운영 체제(200)에서 P1과 P2가 처리될 때까지 기다려야 한다.
여기서, 운영 체제(200)의 스케줄링의 반환시간(turnaround time)은 P1이 15, P2가 20, P3이 24, P4가 30이 되고, 평균 반환시간은 22.25가 된다. 자바 가상 머신(100)의 스케줄링의 반환시간은 스레드1이 2, 스레드2가 2.8, 스레드3이 4가 되고, 평균 반환시간은 2.93이 된다. 반환시간은 프로세스가 대기열에 제출되어 처리되어 종료될 때까지의 시간을 의미하는 것으로, 일반적으로 반환시간이 짧을수록 시스템의 성능이 좋은 것으로 판단한다.
만일, 자바 어플리케이션(110)이 대화식(interactive)이고 운영 체제(200)의 다른 프로세스보다 우선적으로 처리할 필요가 있는 경우에는 자바 가상 머신(100)은 운영 체제 모듈(220)에 접근하여 운영 체제(200)의 스케줄링을 변경할 수 있다.
자바 가상 머신(100)이 자바 어플리케이션(110)에 대한 스케줄링과 운영 체제(200)의 스케줄링을 SRT 스케줄링으로 변경한 경우 도 3b와 같이 대기열이 구성된다.
도 3b를 참조하면, 자바 어플리케이션(110)과 운영 체제(200)의 스케줄링 정책이 비선점 스케줄링에서 선점 스케줄링으로 변경되고, 선점 스케줄링 중에서 SRT 스케줄링으로 변경될 수 있다. SRT 스케줄링은 작업 시간이 가장 짧은 프로세스를 먼저 처리하되, 더 짧은 작업이 들어오면 CPU를 빼앗기는 스케줄링이다.
운영 체제(200)가 SRT 스케줄링으로 변경되면, 대기열의 프로세스 순서가 P3, P2, P4, P1 순으로 바뀌게 된다. 이에 따라, 자바 어플리케이션(110)이 할당받은 P3이 다른 프로세스보다 우선적으로 처리될 수 있게 된다. 또한, 자바 가상 머 신(100)도 SRT 스케줄링으로 변경되면, 자바 가상 머신(100)의 대기열의 스레드 순서가 스레드2, 스레드3, 스레드1 순으로 바뀌게 된다.
SRT 스케줄링으로 변경된 운영 체제(200)의 스케줄링의 반환시간(turnaround time)은 P3이 4, P2가 9, P4가 15, P1이 30이 되고, 평균 반환시간은 14.5가 된다. SRT 스케줄링으로 변경된 자바 가상 머신(100)의 스케줄링의 반환시간은 스레드2가 0.8, 스레드3이 2, 스레드1이 4가 되고, 평균 반환시간은 2.23이 된다.
따라서, 선입선처리(FCFS) 스케줄링에 비하여 SRT 스케줄링의 반환시간이 더 작아서 대화식으로 짧은 작업 시간을 요구하는 자바 어플리케이션(110)을 더욱 효율적으로 처리할 수 있게 된다.
이상, 자바 가상 머신(100)과 운영 체제(200)의 스케줄링 정책과 스케줄링 알고리즘이 동일한 예를 들어 설명하였으나, 자바 가상 머신(100)과 운영 체제(200)의 스케줄링 정책과 스케줄링 알고리즘은 서로 다를 수 있다. 또한, 자바 가상 머신(100)의 스케줄링과 운영 체제(200)의 스케줄링 중 어느 하나만을 변경할 수도 있다. 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는, 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
자바 가상 머신에 프로세스를 제공하는 운영 체제의 정보와 자바 어플리케이션의 특성에 따라 자바 가상 머신의 스케줄링을 변경하고, 자바 가상 머신의 스케줄링에 따라 운영 체제의 스케줄링을 변경함으로써, 다양한 자바 어플리케이션에 적절한 스케줄링을 자바 가상 머신과 운영 체제에 적용하여 자바 어플리케이션을 효율적으로 처리할 수 있다.

Claims (7)

  1. 운영 체제(OS)로부터 프로세스를 제공받는 자바 가상 머신(JVM)의 스케줄링 실행방법에 있어서,
    상기 자바 가상 머신이 자바 어플리케이션에 대한 스케줄링 정책을 선택하고, 상기 운영 체제의 정보를 입수하는 단계; 및
    상기 운영 체제의 정보에 따라 상기 자바 가상 머신의 스케줄링 알고리즘을 변경하는 단계;
    를 포함하는 것을 특징으로 하는 스케줄링 실행방법.
  2. 제 1항에 있어서, 상기 자바 어플리케이션에 대한 스케줄링 정책은 선점 스케줄링(preemptive scheduling) 및 비선점 스케줄링(non-preemptive scheduling) 중 적어도 어느 하나인 것을 특징으로 하는 스케줄링 실행방법.
  3. 제 1항에 있어서, 상기 자바 가상 머신은 상기 운영 체제의 커널(kernel)에 접근할 수 있는 운영 체제 모듈과 연동하는 자바 라이브러리를 이용하여 상기 운영 체제의 정보를 입수하는 것을 특징으로 하는 스케줄링 실행방법.
  4. 제 1항에 있어서, 상기 자바 가상 머신이 입수하는 상기 운영 체제의 정보는 상기 운영 체제의 스케줄링 정책, 상기 운영 체제의 스케줄링 알고리즘 및 상기 운영 체제의 스케줄링의 프로세스 정보 중 적어도 어느 하나인 것을 특징으로 하는 스케줄링 실행방법.
  5. 제 1항에 있어서, 상기 자바 가상 머신의 스케줄링 알고리즘을 변경하는 단계는 상기 자바 가상 머신이 상기 자바 어플리케이션에 대한 스케줄링 정책을 변경하고, 이에 따라 상기 자바 어플리케이션에 대한 스케줄링 알고리즘을 변경하는 것을 특징으로 하는 스케줄링 실행방법.
  6. 자바 가상 머신(JVM)에 프로세스를 제공하는 운영 체제(OS)의 스케줄링 실행방법에 있어서,
    상기 자바 가상 머신으로 상기 운영 체제의 스케줄링 정책, 상기 운영 체제의 스케줄링 알고리즘 및 상기 운영 체제의 스케줄링의 프로세스 정보를 제공하여 상기 자바 가상 머신의 스케줄링 알고리즘을 변경시키는 단계; 및
    상기 자바 가상 머신의 스케줄링 알고리즘에 따라 상기 운영 체제의 스케줄링 알고리즘을 변경하는 단계;
    를 포함하는 것을 특징으로 하는 스케줄링 실행방법.
  7. 제 6항에 있어서, 상기 운영 체제의 스케줄링 알고리즘을 변경하는 단계는 상기 운영 체제의 커널(kernel)에 접근할 수 있는 운영 체제 모듈로 상기 운영 체제의 스케줄링 정책을 변경하고, 이에 따라 상기 운영 체제의 스케줄링 알고리즘을 변경하는 것을 특징으로 하는 스케줄링 실행방법
KR1020060111091A 2006-11-10 2006-11-10 자바 가상 머신과 운영 체제의 스케줄링 실행방법 KR100790304B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060111091A KR100790304B1 (ko) 2006-11-10 2006-11-10 자바 가상 머신과 운영 체제의 스케줄링 실행방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060111091A KR100790304B1 (ko) 2006-11-10 2006-11-10 자바 가상 머신과 운영 체제의 스케줄링 실행방법

Publications (1)

Publication Number Publication Date
KR100790304B1 true KR100790304B1 (ko) 2008-01-02

Family

ID=39216210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060111091A KR100790304B1 (ko) 2006-11-10 2006-11-10 자바 가상 머신과 운영 체제의 스케줄링 실행방법

Country Status (1)

Country Link
KR (1) KR100790304B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010101922A1 (en) * 2009-03-04 2010-09-10 Vmware, Inc. Managing latency introduced by virtualization
KR101438708B1 (ko) 2013-03-08 2014-09-05 고려대학교 산학협력단 응용 프로그램 제어 방법
KR101800991B1 (ko) 2014-03-27 2017-11-23 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터에서 다수 스레드들을 관리하기 위한 컨트롤 영역
KR101809380B1 (ko) 2016-11-29 2017-12-14 전자부품연구원 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926889A (ja) * 1995-07-13 1997-01-28 Hitachi Ltd 仮想計算機システム
US6269391B1 (en) * 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US6282702B1 (en) * 1998-08-13 2001-08-28 Sun Microsystems, Inc. Method and apparatus of translating and executing native code in a virtual machine environment
WO2004063926A1 (en) * 2003-01-14 2004-07-29 Motorola, Inc. Operating system, method and computer program product for controlling a data processing system
KR20070086843A (ko) * 2004-12-10 2007-08-27 인텔 코오퍼레이션 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926889A (ja) * 1995-07-13 1997-01-28 Hitachi Ltd 仮想計算機システム
US6269391B1 (en) * 1997-02-24 2001-07-31 Novell, Inc. Multi-processor scheduling kernel
US6282702B1 (en) * 1998-08-13 2001-08-28 Sun Microsystems, Inc. Method and apparatus of translating and executing native code in a virtual machine environment
WO2004063926A1 (en) * 2003-01-14 2004-07-29 Motorola, Inc. Operating system, method and computer program product for controlling a data processing system
KR20070086843A (ko) * 2004-12-10 2007-08-27 인텔 코오퍼레이션 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010101922A1 (en) * 2009-03-04 2010-09-10 Vmware, Inc. Managing latency introduced by virtualization
KR101438708B1 (ko) 2013-03-08 2014-09-05 고려대학교 산학협력단 응용 프로그램 제어 방법
KR101800991B1 (ko) 2014-03-27 2017-11-23 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터에서 다수 스레드들을 관리하기 위한 컨트롤 영역
KR101809380B1 (ko) 2016-11-29 2017-12-14 전자부품연구원 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치

Similar Documents

Publication Publication Date Title
Bastoni et al. Is semi-partitioned scheduling practical?
US9465663B2 (en) Allocating resources in a compute farm to increase resource utilization by using a priority-based allocation layer to allocate job slots to projects
US9069610B2 (en) Compute cluster with balanced resources
CA2722670C (en) Scheduler instances in a process
JP4185103B2 (ja) 実行可能プログラムをスケジューリングするためのシステム及び方法
US20050081208A1 (en) Framework for pluggable schedulers
Paolieri et al. IA^ 3: An interference aware allocation algorithm for multicore hard real-time systems
US20080229319A1 (en) Global Resource Allocation Control
WO2005046304A2 (en) Method and system for allocation of special purpose computing resources in a multiprocessor system
JP7461947B2 (ja) プロセッサにおける余裕認識(laxity-aware)型動的優先度変更
KR100790304B1 (ko) 자바 가상 머신과 운영 체제의 스케줄링 실행방법
Abeni et al. EDF scheduling of real-time tasks on multiple cores: Adaptive partitioning vs. global scheduling
Amer et al. Improving scientific workflow performance using policy based data placement
KR20130051076A (ko) 응용프로그램 스케줄링 방법 및 장치
RU2450330C2 (ru) Аппаратно-реализуемый способ выполнения программ
Nosrati et al. Task scheduling algorithms introduction
KR20150089665A (ko) 워크플로우 작업 스케줄링 장치
Walters et al. Enabling interactive jobs in virtualized data centers
US9378062B2 (en) Interface between a resource manager and a scheduler in a process
Gupta et al. Optimizing Greedy Algorithm to Balance the Server Load in Cloud Simulated Environment
EP1630671A1 (en) Framework for pluggable schedulers
Kashyap et al. Big data at hpc wales
Saraswat et al. Design and implementation of a process scheduler simulator and an improved process scheduling algorithm for multimedia operating systems
Li Real-Time Virtualization and Coordination for Edge Computing
Shah et al. Organization Based Intelligent Process Scheduling Algorithm (OIPSA)

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111201

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee