KR100714710B1 - 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법 - Google Patents

입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법 Download PDF

Info

Publication number
KR100714710B1
KR100714710B1 KR1020060017343A KR20060017343A KR100714710B1 KR 100714710 B1 KR100714710 B1 KR 100714710B1 KR 1020060017343 A KR1020060017343 A KR 1020060017343A KR 20060017343 A KR20060017343 A KR 20060017343A KR 100714710 B1 KR100714710 B1 KR 100714710B1
Authority
KR
South Korea
Prior art keywords
thread
input
output operation
application
state
Prior art date
Application number
KR1020060017343A
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 KR1020060017343A priority Critical patent/KR100714710B1/ko
Priority to US11/653,398 priority patent/US8006246B2/en
Priority to CNB2007100791953A priority patent/CN100511156C/zh
Priority to JP2007040391A priority patent/JP4834566B2/ja
Application granted granted Critical
Publication of KR100714710B1 publication Critical patent/KR100714710B1/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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D21/00Separation of suspended solid particles from liquids by sedimentation
    • B01D21/24Feed or discharge mechanisms for settling tanks
    • B01D21/245Discharge mechanisms for the sediments
    • B01D21/2466Mammoth pumps, e.g. air lift pumps
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F1/00Treatment of water, waste water, or sewage
    • C02F1/40Devices for separating or removing fatty or oily substances or similar floating material
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01GWEIGHING
    • G01G17/00Apparatus for or methods of weighing material of special form or property
    • G01G17/04Apparatus for or methods of weighing material of special form or property for weighing fluids, e.g. gases, pastes
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F2303/00Specific treatment goals
    • C02F2303/22Eliminating or preventing deposits, scale removal, scale prevention

Abstract

본 발명은 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법에 관한 것으로서, 입출력 작업(I/O Operation)을 종료시키고, 입출력 작업에 의해 블로킹된 스레드에 사용자 정의 신호를 전달하여 해당 스레드의 블로킹 상태를 잠시 해제시킴으로써 입출력 시스템 호출(I/O System Call)을 시도하는 스레드에 스레드 종료 예외(ThreadDeath Exception)가 발생되도록 하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치는 어플리케이션에 포함된 스레드의 상태를 확인하는 제어부와, 상기 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 신호 송신부와, 상기 신호에 의하여 상기 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 제 1 종료 함수를 수행하는 작업 관리부 및 상기 제 1 종료 함수에 의하여 상기 입출력 작업이 종료된 스레드의 제 2 종료 함수를 수행하는 스레드 관리부를 포함한다.
입출력 작업(I/O Operation), 스레드(Thread)

Description

입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법{Apparatus and method for forcibly terminating thread blocked by I/O operation}
도 1은 종래의 자바 어플리케이션을 동작시키는 장치를 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치를 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 스레드 정보 테이블을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 스레드의 상태 변화를 나타낸 개념도이다.
도 5는 본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 과정을 나타낸 흐름도이다.
<도면의 주요 부분에 관한 부호의 설명>
210 : 명령 입력부 220 : 저장부
230 : 제어부 240 : 상태 확인부
250 : 신호 송신부 260 : 작업 관리부
270 : 스레드 관리부
본 발명은 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 입출력 작업(I/O Operation)을 종료시키고, 입출력 작업에 의해 블로킹된 스레드에 사용자 정의 신호를 전달하여 해당 스레드의 블로킹 상태를 잠시 해제시킴으로써 입출력 시스템 호출(I/O System Call)을 시도하는 스레드에 스레드 종료 예외(ThreadDeath Exception)가 발생되도록 하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법에 관한 것이다.
자바(Java)는 작성된 코드를 플랫폼 독립적으로 수행하는 객체 지향 프로그래밍 언어이다. 여기서, 플랫폼은 프로그램이 실행되는 하드웨어 또는 운영체계와 같은 소프트웨어 환경을 말한다. 자바로 작성된 코드는 자바 컴파일러(Java Compiler)에 의해 자바 바이트 코드(Java Byte Code)로 컴파일 되고, 자바 바이트 코드는 다양한 하드웨어 기반 플랫폼에 포팅된 자바 가상 머신(Java Virtual Machine)에 의해 실행된다.
도 1은 종래의 자바 어플리케이션을 동작시키는 장치를 나타낸 블록도로서, 자바 어플리케이션 장치(10)는 어플리케이션 관리자(Application Manager)(11), 어플리케이션(Application)(12a, 12b, 12c), 미들웨어(Middleware)(13), 자바 가상 머신(Java Virtual Machine)(14) 및 운영 체계(Operating System)(15)를 포함하여 구성된다.
여기서, 어플리케이션은 자바 어플리케이션(12a, 12b) 및 네이티브 어플리케이션(12c)을 포함한다.
어플리케이션 관리자(11)는 어플리케이션의 상태를 전환시킴으로써 어플리케이션의 라이프 사이클(Life Cycle)을 관리한다. OCAP(Open Cable Application Platform), ACAP(Advanced open Cable Application Platform) 등의 미들웨어(13)는 어플리케이션의 동작을 관리한다.
자바 가상 머신(14)은 어플리케이션에 포함된 클래스를 메모리에 탑재하고 클래스의 수행 코드를 운영 체계(15)의 명령 코드로 전환하며 어플리케이션에 할당된 자원을 관리한다.
전술한 바와 같이, 어플리케이션 관리자(11)는 어플리케이션의 라이프 사이클을 관리하는데, 이를 위하여 어플리케이션 관리자(11)는 우선 종료시키려는 어플리케이션에서 실행 중인 스레드(Thread)의 리스트를 확인한다. 그리하여, 리스트가 비어있으면 곧바로 어플리케이션을 종료시키고, 리스트가 비어있지 않으면 리스트에 포함된 스레드의 종료를 수행한다.
리스트에 포함된 스레드를 종료하기 위하여 어플리케이션 관리자(11)는 우선 리스트 중 첫 번째 스레드의 클래스 객체(Thread Class Object)를 확인하고, 해당 객체에 대한 중단 함수(Thread.interrupt())를 호출한다. 중단 함수는 블록(block) 상태에 있는 스레드의 블록 상태를 잠시 해제하는데 이 때, 어플리케이션 관리자(11)는 해당 객체에 대한 중지 함수(Thread.stop())를 호출한다. 여기서, 중지 함수는 스레드 종료 예외(ThreadDeath Exception)을 발생시키는데 이에 따라, 스레드는 종료된다. 어플리케이션 관리자(11)는 이와 같은 과정을 리스트에 포함된 모든 스레드가 종료할 때까지 진행한다.
그러나, 입출력 작업(I/O Operation)에 의하여 블로킹된 스레드가 어플리케이션에 포함된 경우, 어플리케이션 관리자(11)에 의한 중단 함수 및 중지 함수로는 해당 스레드를 효과적으로 종료시키지 못한다.
일반적으로 자바 프로그램에서 입출력 작업에 대한 함수가 호출되면, 이 함수는 운영 체계(15)의 입출력 시스템 호출(I/O System Call)을 시도하는데, 시스템 호출은 커널 모드(Kernel Mode)에서 수행되는데, 이는 입출력 작업을 기다리는 블로킹(blocking) 상태이다. 그런데, 어플리케이션 관리자(11)에 의한 중단 함수 및 중지 함수는 사용자 모드(User Mode)에서 수행되므로 커널 모드에서 수행 중인 스레드에 영향을 줄 수 없다. 즉, 입출력 시스템 호출이 반환(return)되어 커널 모드에서 사용자 모드로 전환되기 전에는 스레드가 종료되지 않는 것이다.
미국특허 6,842,898호는 자바 가상 머신 환경에서 다수의 연관된 스레드를 모니터링하고 상태 정보에 기초하여 스레드가 활성화되었는지를 결정하여 클린업 프로세스를 실행하는 방법을 개시하고 있다. 그러나, 개시된 발명은 일반적인 스레드의 종료를 수행하기 위한 방법만을 제시하며 입출력 작업에 의하여 블로킹된 스레드의 종료에 대한 방법은 제시하지 않고 있다.
따라서, 입출력 작업에 의하여 블로킹된 스레드를 효과적으로 종료시키는 방법의 등장이 요구된다.
본 발명은 입출력 작업(I/O Operation)을 종료시키고, 입출력 작업에 의해 블로킹된 스레드에 사용자 정의 신호를 전달하여 해당 스레드의 블로킹 상태를 잠 시 해제시킴으로써 입출력 시스템 호출(I/O System Call)을 시도하는 스레드에 스레드 종료 예외(ThreadDeath Exception)가 발생되도록 하는 블로킹된 스레드를 강제 종료하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치는 어플리케이션에 포함된 스레드의 상태를 확인하는 제어부와, 상기 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 신호 송신부와, 상기 신호에 의하여 상기 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 제 1 종료 함수를 수행하는 작업 관리부 및 상기 제 1 종료 함수에 의하여 상기 입출력 작업이 종료된 스레드의 제 2 종료 함수를 수행하는 스레드 관리부를 포함한다.
본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법은 어플리케이션에 포함된 스레드의 상태를 확인하는 단계와, 상기 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 단계와, 상기 신호에 의하여 상기 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 제 1 종료 함수를 수행하는 단계 및 상기 제 1 종료 함수에 의하여 상기 입출력 작업이 종료된 스레드의 제 2 종료 함수를 수행하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치를 나타낸 블록도로서, 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치(이하, 스레드 관리 장치라 한다)(200)는 명령 입력부(210), 저장부(220), 제어부(230), 상태 확인부(240), 신호 송신부(250), 작업 관리부(260) 및 스레드 관리부(270)를 포함하여 구성된다.
명령 입력부(210)는 어플리케이션의 프로그램 코드상에 포함된 소정 동작에 대한 수행 명령을 입력받는 역할을 한다. 입력되는 명령에는 어플리케이션의 작업 실행 및 작업 종료를 위한 명령 포함될 수 있다. 여기서, 어플리케이션은 자바 어플리케이션을 포함하며 그 중, 입출력 작업을 위한 스레드가 포함된 자바 어플리케 이션을 포함한다.
입력된 명령은 해당 명령에 대한 제어 코드로 변환되어 제어부(230)로 전달되는데, 제어부(230)는 명령 입력부(210)로부터 전달받은 제어 코드에 근거하여 스레드 정보 테이블을 갱신한다. 즉, 전달받은 제어 코드가 어플리케이션의 작업 실행을 위한 제어 코드인 경우 제어부(230)는 저장부(220)에 저장된 스레드 정보 테이블을 갱신하는 것인데, 스레드 정보 테이블에 대한 자세한 설명은 도 3을 통하여 후술하기로 한다.
또한, 제어부(230)는 전달받은 제어 코드가 어플리케이션의 작업 종료를 위한 제어 코드인 경우, 작업 종료가 요청된 어플리케이션에 포함된 스레드의 상태를 확인한다. 이 때, 제어부(230)는 저장부(220)에 저장된 스레드 정보 테이블을 참조할 수 있으며 상태 확인부(240)에 의한 정보를 참조할 수 있다.
그리고, 제어부(230)는 명령 입력부(210), 상태 확인부(240), 저장부(220), 신호 송신부(250), 작업 관리부(260), 스레드 관리부(270) 및 스레드 관리 장치(200)의 전반적인 제어를 수행한다.
상태 확인부(240)는 현재 작업 진행 중인 스레드의 상태를 확인하는 역할을 한다. 즉, 상태 확인부(240)는 하나의 어플리케이션에 포함된 전체 스레드의 상태를 확인하는 것으로서, 스레드에 의한 작업이 진행 중인지를 확인하거나 해당 스레드에 의하여 수행되는 작업이 입출력 작업인지를 확인하는 것이다. 여기서, 대상이 되는 어플리케이션의 종류는 제어부(230)로부터 전달받는데 이 때, 제어부(230)로부터 어플리케이션에 포함된 스레드의 리스트를 전달받을 수도 있다.
또한, 상태 확인부(240)는 제어부(230)로부터 복수 개의 어플리케이션에 포함된 스레드의 상태 확인 명령을 받는 경우 복수 개의 어플리케이션에 대한 작업을 동시에 수행할 수도 있다.
저장부(220)는 스레드 정보 테이블을 저장하는 역할을 한다. 스레드 정보 테이블에는 어플리케이션의 식별자, 스레드의 식별자 및 스레드의 상태 등이 포함될 수 있는데, 스레드 정보 테이블에 대한 자세한 설명은 도 3을 통하여 후술하기로 한다.
저장부(220)는 하드 디스크, 플래시 메모리, CF 카드(Compact Flash Card), SD 카드(Secure Digital Card), SM 카드(Smart Media Card), MMC 카드(Multimedia Card) 또는 메모리 스틱(Memory Stick) 등 정보의 입출력이 가능한 모듈로서 스레드 관리 장치(200)의 내부에 구비되어 있을 수도 있고, 별도의 장치에 구비되어 있을 수도 있다.
신호 송신부(250)는 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 역할을 한다. 여기서, 스레드는 블로킹 상태인 스레드로서 신호 송신부(250)는 제어부(230)로부터 대상이 되는 스레드의 리스트를 전달받고 리스트에 포함된 스레드로 신호를 송신하는 것이다. 신호는 스레드간에 송수신되는 소정의 정보로서, 신호를 수신한 스레드는 신호에 대응하는 특정 동작을 수행하게 된다.
신호는 사용자 정의 신호일 수 있는데, 신호를 수신한 스레드는 입출력 작업에 의한 블로킹 상태에서 일시적으로 해제된다. 즉, 블로킹 상태는 운영 체계의 커널 모드에서 시스템 호출을 수행 중인 상태를 포함하는 것으로서, 블로킹 상태에서 의 일시적인 해제란 운영 체계의 커널 모드에서 사용자 모드로의 전환을 의미한다.
작업 관리부(260)는 신호 송신부(250)로부터 송신된 신호에 의하여 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 종료 함수(이하, 제 1 종료 함수라 한다)를 수행하는 역할을 한다. 예를 들어, 입출력 작업이 소켓(Socket)을 이용한 네트워크 작업인 경우 작업 관리부(260)는 소켓의 종료 함수를 수행하며, 입출력 작업이 파일에 대한 입출력 작업인 경우 작업 관리부(260)는 파일 입출력 작업에 대한 종료 함수를 수행하는 것이다.
제 1 종료 함수가 수행됨에 따라, 블로킹 상태가 일시 해제된 스레드는 다시 입출력 작업을 위하여 시스템 호출을 수행하지 못하게 된다. 이에 따라, 스레드에 포함된 입출력 작업은 커널 모드로 복귀하지 못하고 사용자 모드에 머물러 있게 된다.
제 1 종료 함수를 수행함에 있어서, 작업 관리부(260)는 제어부(230)로부터 해당 입출력 작업에 대한 정보를 전달받을 수 있는데, 입출력 작업에 대한 정보에는 어플리케이션의 식별자, 스레드의 식별자 및 입출력 작업의 종류 등이 포함될 수 있다.
스레드 관리부(270)는 제 1 종료 함수에 의하여 입출력 작업이 종료된 스레드의 제 2 종료 함수를 수행하는 역할을 한다. 제 2 종료 함수는 중단 함수 및 중지 함수를 포함할 수 있는데, 중단 함수는 블로킹 상태에 있는 스레드의 블로킹 상태를 잠시 해제하는 역할을 하고, 중지 함수는 스레드 종료 예외를 발생시키는 역할을 한다. 다시 말해, 사용자 모드에 있는 스레드는 제 2 종료 함수에 의하여 종 료되는 것으로서 이에 따라, 어플리케이션의 종료는 용이하게 진행된다. 자바 프로그램 코드에 의하여 스레드가 관리되는 경우 Thread.interrupt() 함수 및 Thread.stop() 함수가 각각 중단 함수 및 중지 함수의 역할을 수행할 수 있다.
어플리케이션에 포함된 스레드가 복수 개인 경우 복수 개의 스레드에 대한 종료 과정이 순차적으로 진행될 수도 있고, 동시에 진행될 수도 있는데 이는 제어부(230)에 의하여 결정된다. 즉, 제어부(230)는 스레드 정보 테이블을 참조하여 어플리케이션에 포함된 복수 개의 스레드에 대한 정보를 동시에 신호 송신부(250), 작업 관리부(260) 및 스레드 관리부(270)로 전달할 수 있으며 하나씩 전달할 수도 있다. 이 때, 복수 개의 스레드에 대한 정보를 하나씩 전달하는 경우, 제어부(230)는 리스트에 포함된 모든 스레드에 대한 정보를 전달할 때까지 작업을 진행하며, 일단 전달된 정보를 스레드 정보 테이블에서 삭제할 수도 있다.
도 3은 본 발명의 실시예에 따른 스레드 정보 테이블을 나타낸 도면으로서, 스레드 정보 테이블(300)은 어플리케이션 식별자 필드(310), 스레드 식별자 필드(320), 입출력 작업의 종류 필드(330), 입출력 작업의 위치 필드(340) 및 상태 필드(350)를 포함하여 구성된다.
어플리케이션 식별자 필드(310)에는 어플리케이션의 고유 식별자가 포함된다. 어플리케이션 식별자는 어플리케이션의 등록 순서가 이용되어 생성되거나 사용자에 의하여 직접 입력되어 생성될 수도 있다.
어플리케이션 식별자는 특정 어플리케이션을 지칭하는데 사용되는 것으로서, 신호 송신부(250), 작업 관리부(260) 및 스레드 관리부(270)는 이를 이용하여 대상 이 되는 어플리케이션을 확인할 수 있게 된다.
스레드 식별자 필드(320)에는 스레드의 고유 식별자가 포함된다. 스레드 식별자는 스레드의 생성 순서가 이용되어 생성되거나 사용자에 의하여 직접 입력되어 생성될 수도 있다.
스레드 식별자는 특정 스레드를 지칭하는데 사용되는 것으로서, 신호 송신부(250), 작업 관리부(260) 및 스레드 관리부(270)는 이를 이용하여 대상이 되는 스레드를 확인할 수 있게 된다.
하나의 어플리케이션에 복수 개의 스레드가 대응되어 스레드 정보 테이블(300)에 포함될 수 있다.
입출력 작업의 종류 필드(330)에는 스레드에 포함된 입출력 작업의 종류를 나타내는 식별자가 포함된다. 예를 들어, 파일 입출력 작업에 대하여는 1의 식별자가 대응되고 네트워크 입출력 작업에 대하여는 2의 식별자가 대응될 수 있는 것이다.
입출력 작업의 종류를 나타내는 식별자는 작업 관리부(260)로 전달되는데, 작업 관리부(260)는 이를 이용하여 해당 입출력 작업에 대한 제 1 종료 함수를 수행한다. 즉, 입출력 작업의 종류에 대응하는 제 1 종료 함수를 추출하여 수행하는 것이다.
입출력 작업의 위치 필드(340)에는 스레드에 포함된 입출력 작업을 수행하는 객체의 위치가 포함된다. 즉, 객체의 주소로서 이는 포인터(Pointer)에 의하여 구현될 수도 있다. 예를 들면, 객체의 파일 기술자(File Descriptor) 같은 것이 위치 필드(340)의 값으로 삽입될 수 있다.
입출력 작업을 수행하는 객체의 위치는 작업 관리부(260)로 전달되는데, 작업 관리부(260)는 이를 이용하여 해당 입출력 작업에 대한 제 1 종료 함수를 수행한다. 즉, 제 1 종료 함수의 파라미터에 입출력 작업을 수행하는 객체의 위치를 삽입하는 것이다.
상태 필드(350)는 스레드의 블로킹 상태 여부를 나타내는 플래그를 포함한다. 예를 들어, 스레드가 블로킹 상태가 아닌 경우 0의 값이 대응되고, 스레드가 블로킹 상태인 경우 1의 값이 대응될 수 있는 것이다.
여기서, 스레드의 상태는 명령 입력부(210)를 통하여 입력된 명령의 종류를 이용하여 확인될 수 있으며, 상태 확인부(240)에 의하여 확인될 수도 있다. 예를 들어, 명령 입력부(210)로 입력된 명령이 입출력 작업에 대한 실행 명령인 경우 이는 운영 체계의 시스템 호출을 필요로 하는 작업이므로 제어부(230)는 상태 필드(350)의 플래그를 블로킹 상태로 갱신한다. 그리고, 명령 입력부(210)로 입력된 명령이 입출력 작업에 대한 종료 명령인 경우 제어부(230)는 상태 필드(350)의 플래그를 블로킹 해제 상태로 갱신한다.
또한, 해당 입출력 작업이 다른 어플리케이션에 의하여 종료될 수도 있는데 이에 따라, 상태 확인부(240)는 수시로 스레드의 상태를 확인하여 제어부(230)로 통지할 수도 있다.
도 4는 본 발명의 실시예에 따른 스레드의 상태 변화를 나타낸 개념도이다.
도 4에서 A 상태(410)는 해당 스레드의 블로킹이 해제된 상태로서 입출력 작 업을 위한 명령이 입력되기 이전 상태를 나타낸다. 이 때, 입출력 작업을 위한 명령이 입력되면 입력된 명령에 따라 어플리케이션에 포함된 스레드는 운영 체계의 시스템 호출을 수행한다. 그런데, 시스템 호출은 운영 체계의 커널 모드에서만 수행되므로 스레드의 상태는 블로킹 상태인 B 상태(420)로 전환된다.
스레드가 B 상태(420)일 때, 스레드 종료 함수인 제 2 함수가 수행되면 스레드는 제 2 함수에 포함된 중단 함수에 의하여 일시적으로 블로킹 상태를 벗어나 C 상태(430)로 이동한다. 그러나, 스레드에 포함된 입출력 작업이 시스템 호출을 수행하여 커널 모드로 복귀하므로, 스레드의 상태는 다시 블로킹 상태인 D 상태(440)로 이동하게 된다.
한편, 스레드가 B 상태(420)일 때, 신호 송신부(250)에 의하여 신호가 송신되면 스레드는 일시적으로 블로킹 상태를 벗어나 C 상태(430)로 이동한다. 이 때, 작업 관리부(260)는 입출력 작업을 종료시키기 위하여 제 1 종료 함수를 수행한다. 이에 따라, 일시적으로 블로킹 상태를 벗어난 스레드에 포함된 입출력 작업이 수행되지 못하므로 커널 모드로의 복귀가 수행되지 않고 스레드는 C 상태(430)에 머물러있게 된다.
그리고, 스레드가 C 상태(430)일 때, 스레드 관리부(270)는 스레드 종료 함수인 제 2 함수를 수행하는데, 제 2 함수에 포함된 중지 함수에 의하여 스레드 종료 예외가 발생하고 이에 따라 스레드는 종료되어 E 상태(450)로 이동한다.
여기서, 어플리케이션의 종료 명령이 입력된 경우 제어부(230)는 스레드 정보 테이블(300)을 참조하여 B 상태(420)에 있는 스레드에만 신호 및 입출력 작업 종료 함수(제 1 종료 함수)가 수행될 수 있도록 하고, A 상태(410)에 있는 스레드에는 스레드 종료 함수(제 2 종료 함수)만이 수행되도록 할 수 있다.
도 5는 본 발명의 실시예에 따른 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 과정을 나타낸 흐름도이다.
입출력 작업에 의해 블로킹된 스레드를 강제 종료하기 위하여 스레드 관리 장치(200)의 명령 입력부(210)는 어플리케이션의 작업 실행을 위한 명령을 입력받는다(S510). 이에 따라, 어플리케이션에 포함된 입출력 작업이 수행될 수 있다. 입력된 명령에 대한 제어 코드는 제어부(230)로 전달되고, 제어부(230)는 저장부(220)에 저장된 스레드 정보 테이블(300)을 갱신한다(S520). 즉, 어플리케이션의 스레드 중 해당 입출력 작업이 포함된 스레드의 상태를 블로킹 상태로 전환하는 것이다. 그리고, 제어부(230)는 작업 관리부(260)로 하여금 해당 입출력 작업이 수행되도록 한다.
그리고, 명령 입력부(210)는 어플리케이션의 작업 종료를 위한 명령을 입력받는다(S530). 입력된 명령에 대한 제어 코드는 제어부(230)로 전달되고, 제어부(230)는 해당 어플리케이션에 포함된 스레드가 블로킹 상태인지 확인한다(S540). 여기서, 제어부(230)는 저장부(220)에 저장된 스레드 정보 테이블(300)을 참조하여 스레드의 상태를 확인할 수 있고, 상태 확인부(240)로부터 전달받은 정보를 이용하여 스레드의 상태를 확인할 수도 있다.
그리하여, 스레드의 상태가 블로킹 상태가 아닌 경우 제어부(230)는 어플리케이션 식별자 및 스레드 식별자를 스레드 관리부(270)로 전달한다. 그리고, 스레 드 관리부(270)는 전달받은 어플리케이션 식별자 및 스레드 식별자를 참조하여 해당 스레드를 종료하기 위한 종료 함수(제 2 종료 함수)를 수행한다(S570). 이에 따라, 블로킹 상태가 아닌 스레드는 제 2 종료 함수에 의하여 종료된다.
한편, 스레드의 상태가 블로킹 상태인 경우 제어부(230)는 어플리케이션 식별자 및 스레드 식별자를 신호 송신부(250)로 전달한다. 그리고, 신호 송신부(250)는 전달받은 어플리케이션 식별자 및 스레드 식별자를 참조하여 해당 스레드로 블로킹 상태를 해제하기 위한 신호를 송신한다(S550). 신호가 송신됨에 따라 신호를 수신한 스레드는 입출력 작업에 의한 블로킹 상태에서 일시적으로 해제된다.
그리고, 제어부(230)는 어플리케이션 식별자, 입출력 작업의 종류 및 입출력 작업의 위치를 작업 관리부(260)로 전달한다. 전달받은 정보를 참조하여 작업 관리부(260)는 스레드에 포함된 입출력 작업을 종료하기 위한 함수(제 1 종료 함수)를 수행한다(S560). 제 1 종료 함수가 수행됨에 따라, 블로킹 상태가 일시 해제된 스레드는 다시 입출력 작업을 위하여 시스템 호출을 수행하지 못하게 된다. 즉, 스레드에 포함된 입출력 작업은 사용자 모드에 머물러 있게 되는 것이다.
그리고, 제어부(230)는 어플리케이션 식별자 및 스레드 식별자를 스레드 관리부(270)로 전달한다. 어플리케이션 식별자 및 스레드 식별자를 전달받은 스레드 관리부(270)는 해당 스레드를 종료하기 위한 함수인 제 2 종료 함수를 수행한다(S570). 제 2 종료 함수가 수행됨에 따라, 해당 스레드는 종료된다.
제어부(230)는 스레드 정보 테이블(300)을 참조하여 해당 어플리케이션에 포함된 각각의 스레드에 대하여 이상과 같은 과정을 반복하여 모든 스레드가 종료될 때까지 진행한다.
도2의 블록도의 각 블록과 도 5의 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하 나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 본 발명의 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 입출력 작업에 의해 블로킹된 스레드를 강제 종료함으로써 해당 스레드를 포함하는 어플리케이션을 신속히 종료하는 장점이 있다.
둘째, 어플리케이션에 할당된 자원의 반환을 신속히 수행할 수 있게 함으로써 자원의 낭비를 감소시키는 장점도 있다.

Claims (14)

  1. 어플리케이션에 포함된 스레드의 상태를 확인하는 제어부;
    상기 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 신호 송신부;
    상기 신호에 의하여 상기 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 제 1 종료 함수를 수행하는 작업 관리부; 및
    상기 제 1 종료 함수에 의하여 상기 입출력 작업이 종료된 스레드의 제 2 종료 함수를 수행하는 스레드 관리부를 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치.
  2. 제 1항에 있어서,
    상기 어플리케이션은 자바 어플리케이션을 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치.
  3. 제 1항에 있어서,
    상기 블로킹 상태는 운영 체계의 커널 모드에서 시스템 호출을 수행 중인 상태를 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치.
  4. 제 3항에 있어서,
    상기 해제는 상기 커널 모드를 사용자 모드로 전환하는 동작인 입출력 작업 에 의해 블로킹된 스레드를 강제 종료하는 장치.
  5. 제 1항에 있어서,
    상기 스레드 관리부는 상기 입출력 작업이 종료된 스레드에 대한 스레드 종료 예외를 발생시키는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치.
  6. 제 1항에 있어서,
    상기 신호, 상기 제 1 종료 함수 또는 상기 제 2 종료 함수는 상기 스레드의 상태가 포함된 테이블에 근거하여 수행되는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치.
  7. 제 6항에 있어서,
    상기 테이블을 저장하는 저장부를 더 포함하는 입출력 작업에 블로킹된 스레드를 강제 종료하는 장치.
  8. 어플리케이션에 포함된 스레드의 상태를 확인하는 단계;
    상기 스레드로 블로킹 상태를 해제하기 위한 신호를 송신하는 단계;
    상기 신호에 의하여 상기 블로킹 상태가 해제된 스레드에 포함된 입출력 작업의 제 1 종료 함수를 수행하는 단계; 및
    상기 제 1 종료 함수에 의하여 상기 입출력 작업이 종료된 스레드의 제 2 종 료 함수를 수행하는 단계를 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  9. 제 8항에 있어서,
    상기 어플리케이션은 자바 어플리케이션을 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  10. 제 8항에 있어서,
    상기 블로킹 상태는 운영 체계의 커널 모드에서 시스템 호출을 수행 중인 상태를 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  11. 제 10항에 있어서,
    상기 해제는 상기 커널 모드를 사용자 모드로 전환하는 동작인 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  12. 제 8항에 있어서,
    상기 제 2 종료 함수를 수행하는 단계는 상기 입출력 작업이 종료된 스레드에 대한 스레드 종료 예외를 발생시키는 단계를 포함하는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  13. 제 8항에 있어서,
    상기 신호, 상기 제 1 종료 함수 또는 상기 제 2 종료 함수는 상기 스레드의 상태가 포함된 테이블에 근거하여 수행되는 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 방법.
  14. 제 13항에 있어서,
    상기 테이블을 저장하는 단계를 더 포함하는 입출력 작업에 블로킹된 스레드를 강제 종료하는 방법.
KR1020060017343A 2006-02-22 2006-02-22 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법 KR100714710B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060017343A KR100714710B1 (ko) 2006-02-22 2006-02-22 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법
US11/653,398 US8006246B2 (en) 2006-02-22 2007-01-16 Apparatus for forcibly terminating thread blocked on input/output operation and method for the same
CNB2007100791953A CN100511156C (zh) 2006-02-22 2007-02-15 强制性地终止输入/输出操作阻止的线程的设备和方法
JP2007040391A JP4834566B2 (ja) 2006-02-22 2007-02-21 入出力作業によってブロッキングされたスレッドを強制終了する装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060017343A KR100714710B1 (ko) 2006-02-22 2006-02-22 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법

Publications (1)

Publication Number Publication Date
KR100714710B1 true KR100714710B1 (ko) 2007-05-04

Family

ID=38269748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060017343A KR100714710B1 (ko) 2006-02-22 2006-02-22 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법

Country Status (4)

Country Link
US (1) US8006246B2 (ko)
JP (1) JP4834566B2 (ko)
KR (1) KR100714710B1 (ko)
CN (1) CN100511156C (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356356B2 (en) * 2007-01-30 2013-01-15 Microsoft Corporation Anti-debugger comprising spatially and temporally separate detection and response portions
KR101113145B1 (ko) 2007-04-05 2012-03-13 후지쯔 세미컨덕터 가부시키가이샤 표면 형상 센서와 그 제조 방법
US8296776B2 (en) * 2008-06-06 2012-10-23 Apple Inc. Efficient mechanism for terminating applications
US8473964B2 (en) 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems
US8321874B2 (en) * 2008-09-30 2012-11-27 Microsoft Corporation Intelligent context migration for user mode scheduling
US8289981B1 (en) * 2009-04-29 2012-10-16 Trend Micro Incorporated Apparatus and method for high-performance network content processing
US9026720B2 (en) 2013-02-07 2015-05-05 Apple Inc. Non-volatile memory monitoring
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
JP6911566B2 (ja) * 2017-06-21 2021-07-28 株式会社リコー 情報処理装置、制限解除方法及び制限解除プログラム
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
CN110750348A (zh) * 2019-10-23 2020-02-04 神州数码融信软件有限公司 批量作业调度方法及装置
CN114461353A (zh) * 2020-11-09 2022-05-10 中兴通讯股份有限公司 调整线程优先级的方法、终端及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062394A (ko) * 2002-12-31 2004-07-07 인터내셔널 비지네스 머신즈 코포레이션 멀티스레드 어플리케이션에서 스레드 실행을 관리하기위한 방법 및 장치

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175059A (ja) * 1987-12-28 1989-07-11 Nec Corp ジョブ管理方式
JP2856003B2 (ja) 1992-09-28 1999-02-10 日本電気株式会社 非同期データ入出力方式
JP3110185B2 (ja) * 1993-01-18 2000-11-20 株式会社東芝 計算機システム
JP2693916B2 (ja) * 1994-09-22 1997-12-24 米沢日本電気株式会社 タスクスケジュール方法
US6349322B1 (en) 1998-05-06 2002-02-19 Sun Microsystems, Inc. Fast synchronization for programs written in the JAVA programming language
JP2000293380A (ja) 1999-04-01 2000-10-20 Nec Corp 複数スレッドの終了処理装置および方法
US6842898B1 (en) 1999-06-10 2005-01-11 International Business Machines Corporation Method and apparatus for monitoring and handling events for a collection of related threads in a data processing system
US6832236B1 (en) 1999-07-08 2004-12-14 International Business Machines Corporation Method and system for implementing automatic filesystem growth monitor for production UNIX computer system
US6457142B1 (en) 1999-10-29 2002-09-24 Lucent Technologies Inc. Method and apparatus for target application program supervision
US6711739B1 (en) 1999-11-08 2004-03-23 Sun Microsystems, Inc. System and method for handling threads of execution
US6687729B1 (en) * 1999-12-20 2004-02-03 Unisys Corporation System and method for providing a pool of reusable threads for performing queued items of work
JP3961301B2 (ja) * 2001-01-25 2007-08-22 松下電器産業株式会社 デジタル機器、タスク管理方法及びそのプログラム
US6910209B2 (en) 2001-04-30 2005-06-21 Sun Microsystems, Inc. Clean thread termination
JP2003029981A (ja) * 2001-07-11 2003-01-31 Denso Corp 端末およびコンピュータプログラム
JP4058752B2 (ja) 2001-12-11 2008-03-12 日本電気株式会社 携帯情報端末装置
US6886112B2 (en) * 2002-06-28 2005-04-26 Microsoft Corporation Recovering from device failure
US7337444B2 (en) 2003-01-09 2008-02-26 International Business Machines Corporation Method and apparatus for thread-safe handlers for checkpoints and restarts
US7337443B2 (en) * 2003-06-30 2008-02-26 Microsoft Corporation Method and apparatus for processing program threads
JP2005050023A (ja) * 2003-07-31 2005-02-24 Fujitsu Ltd 情報処理装置及び方法
DE602004017879D1 (de) 2003-08-28 2009-01-02 Mips Tech Inc Integrierter mechanismus zum suspendieren und endznem prozessor
JP4246672B2 (ja) 2004-06-03 2009-04-02 株式会社リコー 画像形成装置および画像形成装置制御方法
US7698708B1 (en) * 2004-07-30 2010-04-13 Symantec Operating Corporation Method and system for persistent, recoverable user-level locks
JP2006146678A (ja) * 2004-11-22 2006-06-08 Hitachi Ltd 情報処理装置におけるプログラム制御方法、情報処理装置、及びプログラム
US7424644B2 (en) * 2005-03-01 2008-09-09 Microsoft Corporation Method and system for recovering data from a hung application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062394A (ko) * 2002-12-31 2004-07-07 인터내셔널 비지네스 머신즈 코포레이션 멀티스레드 어플리케이션에서 스레드 실행을 관리하기위한 방법 및 장치

Also Published As

Publication number Publication date
JP4834566B2 (ja) 2011-12-14
US20070198980A1 (en) 2007-08-23
JP2007226799A (ja) 2007-09-06
CN101025698A (zh) 2007-08-29
US8006246B2 (en) 2011-08-23
CN100511156C (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
KR100714710B1 (ko) 입출력 작업에 의해 블로킹된 스레드를 강제 종료하는 장치및 방법
CN100492294C (zh) 程序动态加载方法
KR100714712B1 (ko) 컨테인먼트 프레임워크 환경에서 자원을 관리하는 장치 및방법
KR20070097538A (ko) 운영체제에 친숙한 부트로더
CA2300240A1 (en) Transparent loading resources from read-only memory for an application program
CN104657258B (zh) 一种向目标进程内注入Java字节码的方法及装置
CA2376327C (en) Executing native code in place of non-native code
CN102375759B (zh) 利用有限状态机防止代码重入的方法
CN110764813A (zh) 系统软件的升级方法及其运行方法
CN107729221B (zh) 线程间消息监控方法、装置、计算机设备和存储介质
EP1489518B1 (en) Embedded garbage collection
KR100803290B1 (ko) 무선 센서 네트워크 환경에서 프로그램을 변경하기 위한확장 가능한 가상 머신 및 이를 이용한 리프로그래밍 방법
Caromel et al. Robust exception handling in an asynchronous environment
CN112346390B (zh) 光模块控制方法、装置、设备及计算机可读存储介质
CN113051088A (zh) 程序加载方法、装置、设备及计算机可读介质
EP4204960A1 (en) Thread-local return structure for asynchronous state machine
US7191443B2 (en) Digital device, task management method and program therefor
CN113051122A (zh) 性能数据获取方法、装置、电子设备和介质
CN111168668A (zh) 一种机器人的控制方法及机器人
JP3961301B2 (ja) デジタル機器、タスク管理方法及びそのプログラム
EP1835407A2 (en) Apparatus and method for managing resources in a Java environment
CN106919436B (zh) Dalvik虚拟机实现多任务的方法、装置及虚拟机
CN109308215B (zh) 一种基于纤程的交互方法、交互系统及计算机装置
JP2006048186A (ja) 動的コンパイラの生成コードを保護する言語処理系
CN112395083A (zh) 一种资源文件的释放方法和装置

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: 20130318

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140325

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee