KR20100114607A - 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법 - Google Patents

중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법 Download PDF

Info

Publication number
KR20100114607A
KR20100114607A KR1020090033060A KR20090033060A KR20100114607A KR 20100114607 A KR20100114607 A KR 20100114607A KR 1020090033060 A KR1020090033060 A KR 1020090033060A KR 20090033060 A KR20090033060 A KR 20090033060A KR 20100114607 A KR20100114607 A KR 20100114607A
Authority
KR
South Korea
Prior art keywords
program
operation mode
thread
development
central processing
Prior art date
Application number
KR1020090033060A
Other languages
English (en)
Other versions
KR101596503B1 (ko
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 KR1020090033060A priority Critical patent/KR101596503B1/ko
Publication of KR20100114607A publication Critical patent/KR20100114607A/ko
Application granted granted Critical
Publication of KR101596503B1 publication Critical patent/KR101596503B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법에 관한 것이다. 본 발명에 따른 프로그램 구동장치의 제어방법은, 실행되는 시점에 중앙처리 장치 정보를 확인하는 하드웨어 정보 확인하는 단계와; 상기 단계에서 확인된 중앙처리 장치 정보에 매칭된 동작 모드를 상기 저장 영역으로부터 추출하여 동작 모드를 판단하는 단계와; 상기 단계에서 판단된 동작 모드가 서버 동작 모드인 경우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송하고, 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 단계를 포함하는 것을 특징으로 한다.

Description

중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법{PROGRAM EXECUTION APPARATUS FOR EXECUTING IN EACH DIFFERENT EXECUTION MODE ACCORDING TO CPU INFORMATION}
본 발명은 프로그램 구동장치 및 그 제어방법에 관한 것으로, 보다 상세하게는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법에 관한 것이다.
이동통신 단말기뿐만 아니라 기타 여러 가지 통신장치들에서 구동되는 어플리케이션의 개발에 있어서는 실제 통신 단말 장치의 구동 환경과 개발 환경이 서로 차이가 있을 수 있다.
예를 들어 실제 양산할 단말기를 타겟 단말기라 하고, 해당 타겟 단말기에서 구동되는 어플리케이션을 개발하는 단말기를 개발 단말기라 할 때, 개발 단말기와 타겟 단말기는 서로 구동되는 OS(오퍼레이팅 시스템)가 상이할 수 있다.
즉, 개발 단말기는 일반적인 개인용 컴퓨터를 이용하는 상황이 많기 때문에 대부분의 개인용 컴퓨터에서 사용되는 마이크로소프트사의 윈도우즈가 OS 로서 설치되어 있을 수 있고, 반면에 타겟 단말기는 비용이나 간결함, 그리고 소스를 쉽게 얻을 수 있다는 점을 고려하여 리눅스(Linux)가 OS로 설치될 수 있다.
이 경우 타겟 단말기 상에서 구동되는 어플리케이션의 개발을 위해서 개발 단말기에는 타겟 단말기의 구동 환경을 가상으로 처리해 주는 에뮬레이터가 설치되고 해당 에뮬레이터의 동작에 의해 개발자들은 타겟 단말기의 어플리케이션을 개발 및 동작시켜 검증해오고 있다.
그런데 종래의 이러한 개발 방식 즉, OS 가 다른 환경 하에서 에뮬레이터를 이용하여 어플리케이션의 동작을 검증하는 방식은 각 개발 단말기마다 에뮬레이터를 설치해야하는 번거로움이 있고, 또한 OS가 다르다보니 에뮬레이터 동작이 정확하지 않을 가능성이 많고, 에뮬레이터에서 정상 동작되는 경우라 하더라도 실제 타겟 단말에 어플리케이션 프로그램을 컴파일하여 설치하는 경우에는 에뮬레이터의 동작과는 다른 동작 결과를 보이는 경우가 발생하곤 한다.
또한, 에뮬레이터에서 정상 동작을 보이는 경우에도 실제 타겟 단말기에서 구동되기 위해서는 어플리케이션 소스 코드를 수정해야 하는 경우가 발생할 수 있는데, 이러한 소스 코드 과정은 최소화 하는게 바람직하다.
본 발명은 상기한 종래의 단점을 해결하기 위해 안출된 것으로서, 그 목적은 타겟 단말에서 구동될 어플리케이션의 개발에 있어서, 타겟 단말의 동작 상황에 가장 근접한 개발 환경을 제공하고, 또한 개발한 어플리케이션의 소스 코드 수정을 최소화하여 타겟 단말에 이식할 수 있도록 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동 장치 및 그 제어방법을 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명에 따른 중앙처리 장치 정보에 매칭되는 동작 모드가 저장된 저장 영역과 상기 중앙처리 장치에서 실행되는 실행코드를 포함하는 실행 코드 영역으로 이루어진 프로그램이 구비된 프로그램 구동장치의 제어방법은, 실행되는 시점에 중앙처리 장치 정보를 확인하는 하드웨어 정보 확인하는 단계와; 상기 단계에서 확인된 중앙처리 장치 정보에 매칭된 동작 모드를 상기 저장 영역으로부터 추출하여 동작 모드를 판단하는 단계와; 상기 단계에서 판단된 동작 모드가 서버 동작 모드인 경우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송하고, 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 단계를 포함하여 이루어진다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 타겟 단말기에서 동작하는 어플리케이션의 개발을 위해 적어도 하나의 개발 단말 장치가 통신망을 통해 접속하는 개발 서버는, 상기 적어도 하나의 개발 단말 장치와 통신하는 통신 인터페이 스부와; 어플리케이션 프로그램이 저장된 저장부와; 상기 통신 인터페이스부를 통해 연결된 개발 단말 장치의 요청에 따라 각각 상기 저장부에 저장된 어플리케이션 프로그램을 실행시키는 어플리케이션 프로그램 실행 제어부를 포함하여 구성되고, 상기 실행되는 어플리케이션 프로그램은 상기 개발 서버 상에서 동작하는 서버 동작 모드와 상기 타겟 단말기에서 동작하는 단말 동작 모드를 포함하여 구성되되, 중앙처리장치 하드웨어 정보를 획득하여 서버 환경 여부를 판단하고 서버 환경인 경우 입력 및 출력용으로 상기 통신 인터페이스부를 통한 통신을 수행하는 통신 쓰레드를 생성하고, 상기 통신 인터페이스부를 통해 입력되는 입력신호에 따른 처리를 수행하고 해당 처리 결과를 상기 통신 인터페이스부를 통해 상기 개발 단말 장치에 전송하는 것을 특징으로 한다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 중앙처리 장치 정보에 매칭되는 동작 모드가 저장된 저장 영역과, 상기 중앙처리 장치에서 실행되는 실행코드를 포함하는 실행 코드 영역으로 이루어진 프로그램이 구비된 프로그램 구동장치의 상기 실행 코드 영역의 실행 코드는, 실행되는 시점에 중앙처리 장치 정보를 확인하는 하드웨어 정보 확인 루틴과; 상기 하드웨어 정보 확인 루틴에 의해 확인된 중앙처리 장치 정보에 매칭된 동작 모드를 상기 저장 영역으로부터 추출하여 동작 모드를 판단하는 동작 모드 판단 루틴과; 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 서버 동작 모드인 경우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송하고, 상기 동 작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 동작 실행 루틴을 포함하여 구성된다.
이상 설명한 바와 같이 본 발명에 따르면, 개발 서버에 많은 개발 단말 장치들이 연결되어 각 개발 단말 장치를 이용하여 타겟 단말 장치에서 구동될 어플리케이션의 개발 및 동작 검증을 용이하게 할 수 있다.
또한, 프로그램 구동장치에 저장된 어플리케이션 프로그램은 수행될 때 중앙 처리 장치의 종류에 따라 동작 모드를 결정하여 그에 맞는 입력 및 출력 데이터를 관리하도록 함으로써 개발 서버에서 검증된 어플리케이션 프로그램이 실제 타겟 단말 장치에 이식되는 경우 소스 코드의 수정을 최소화할 수 있고, 개발 서버를 통해 검증된 동작대로 타겟 단말 장치에서도 동일하게 동작할 수 있다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
본 발명의 일 실시예에 따른 중앙 처리 장치(220) 정보에 따라 타겟 단말 장치에서 동작하는 어플리케이션의 개발을 위해 적어도 하나의 개발 단말 장치(100~100_N)가 통신망을 통해 접속하는 프로그램 개발 서버(200)를 포함하는 전체적인 시스템 구성은 도 1과 같다.
동 도면에 도시된 바와 같이 개발 시스템은 복수 개의 개발 단말 장치(100~100_N)와 프로그램 개발 서버(200)를 포함하여 구성된다.
여기서 개발 단말 장치(100~100_N)는 프로그램 개발자들이 타겟 단말 장치(즉, 최종적으로 어플리케이션이 장착될 단말기)에서 구동될 어플리케이션을 개발하기 위한 단말기들이다. 이하 타겟 단말 장치는 임베디드(embedded) 리눅스(linux)가 OS로 설치된 이동통신 단말기인 것을 일 예로 하고, 개발 단말 장치(100~100_N)에는 개인용 컴퓨터에서 널리 이용되는 마이크로 소프트사의 윈도우즈가 OS로서 설치되어 있는 것을 일 예로 한다.
프로그램 개발 서버(200)는 개발자들이 개발 단말 장치(100~100_N)를 통해 접속하여 이동통신 단말기에서 구동될 어플리케이션을 개발하고 검증할 수 있도록 하는 프로그램 개발 환경을 제공하는 서버이다.
따라서 프로그램 개발 서버(200)는 이동통신 단말기와 개발 라이브러리가 직접적으로 호환되는 리눅스가 OS로 설치되어 있어야 한다.
상기와 같은 어플리케이션 개발 환경 하에서 각 개발 단말 장치(100~100_N)들은 프로그램 개발 서버(200)에 접속하여 이동통신 단말기에서 구동될 어플리케이션을 개발함과 동시에 그 동작 결과를 프로그램 개발 서버(200)로부터 수신하여 동작 과정을 확인해 볼 수 있다.
이동통신 단말기의 동작 과정이 개발 단말 장치(100~100_N)에 표시된 예가 도 2에 도시되었다.
동 도면에 도시된 바와 같이 개발 단말 장치(100~100_N)에는 이동통신 단말 기의 에뮬레이터 화면(110)이 표시되고, 사용자는 자신의 개발 단말 장치(100~100_N)에 구비된 키 버튼을 누름으로써 실제 이동통신 단말기에 구비되는 키 버튼에 대응되는 신호를 생성할 수 있고, 이러한 키 버튼 신호가 네트워크를 통해 프로그램 개발 서버(200)에 전송되면 프로그램 개발 서버(200)는 해당 키 버튼 신호에 따른 처리 결과를 전송하고, 개발 단말 장치(100~100_N)에 표시된 이동통신 단말기 에뮬레이터 화면에는 해당 처리 결과에 따른 화면이 표시되는 것이다.
이처럼 하나의 프로그램 개발 서버(200)에 이동통신 단말기와 같은 개발/동작 환경을 구축해 놓고서 다수의 개발 단말 장치(100~100_N)가 접속하여 이동통신 단말기의 어플리케이션 개발 및 동작을 검증할 수 있도록 하면 각 개발 단말 장치(100~100_N)마다 이동통신 단말기에 대응되는 에뮬레이터를 설치해야 하는 번거로움이 줄어들고 또한 에뮬레이터를 수정해야 하는 경우 그 수정이 용이하다.
상술한 프로그램 개발 서버(200)는 도 3에 도시된 바와 같이 통신 인터페이스부(210), 중앙 처리 장치(220), 어플리케이션 프로그램 실행부(221), 저장부(230)를 포함하여 구성될 수 있다.
통신 인터페이스부(210)는 네트워크를 통해 각 개발 단말 장치(100~100_N)가 통신하는 것으로서 예를 들어 네트워크 인터페이스 카드(NIC)에 해당할 수 있다.
중앙 처리 장치(220)는 CPU(Central Processing Unit)와 같이 각종 프로그램들이 실제 실행되도록 구성되는 하드웨어를 의미하며, 이러한 중앙 처리 장치(220)에 각종 프로그램 코드들이 입력되고 해석되는 방식으로 해당 코드에 따른 처리가 이루어지게 된다.
저장부(230)에는 RAM(Random Access Memory) 또는 HDD(Hard Disk Drive) 등과 같이 소정의 데이터가 저장되도록 구성된 것으로서 특히 저장부(230)에는 중앙 처리 장치(220)에서 구동될 각종 프로그램들 즉, 프로그램 코드들이 저장되어 있다.
예를 들어 저장부(230)에는 어플리케이션 프로그램 및 어플리케이션 프로그램을 실행시키는 프로그램이 저장되어 있다.
즉, 어플리케이션 프로그램은 이동통신 단말기의 소정의 기능을 수행하는 것으로서 예를 들어 메뉴를 표시하거나 게임을 제공하거나 기타 계산기 기능을 수행하는 어플리케이션 프로그램일 수 있다.
어플리케이션 프로그램을 실행하는 프로그램은 저장부(230)에 저장된 다른 어플리케이션 프로그램을 중앙 처리 장치(220)에서 구동되도록 하는 프로그램으로서, 예를 들어 프로그램 개발 서버(200)에 설치된 OS 프로그램에 해당할 수 있다.
즉, OS 프로그램이 중앙 처리 장치(220)에서 실행될 때에는 저장부(230)에 저장된 다른 어플리케이션 프로그램을 읽어 중앙 처리 장치(220)에서 구동되도록 할 수 있는데, 이러한 기능을 수행하는 OS 프로그램이 중앙 처리 장치(220)에서 구동될 때 중앙 처리 장치(220)는 어플리케이션 프로그램 실행 제어부로 기능한다고 할 수 있다.
도 3에서는 중앙 처리 장치(220)의 일부에 어플리케이션 프로그램 실행 제어부(221)를 설명의 편의상 도시하였는데, 중앙 처리 장치(220)는 하드웨어적인 관점에서 나타낸 것이고, 어플리케이션 프로그램 실행 제어부(221)는 중앙 처리 장 치(220)에서 구동 중인 소정 프로그램을 소프트웨어적인 관점에서 도시한 것이다.
저장부(230)에 저장된 다른 어플리케이션 프로그램들도 어플리케이션 프로그램 실행 제어부(221)의 기능에 따라 중앙 처리 장치(220)에서 실행될 수 있음은 물론이다.
한편, 저장부(230)에 저장된 어플리케이션 프로그램은, 프로그램 개발 서버(200) 상에서 동작하는 서버 동작 모드와 타겟 단말 장치로서의 이동통신 단말기에서 동작하는 단말 동작 모드를 포함하여 구성되되, 상술한 바와 같이 중앙 처리 장치(220)에서 실행되어 그 기능을 수행함에 있어서 중앙 처리 장치(220) 하드웨어 정보를 획득하여 서버 환경 여부를 판단하고, 서버 환경인 경우 입력 및 출력용으로 통신 인터페이스부(210)를 통한 통신을 수행하는 통신 쓰레드를 생성하고, 통신 인터페이스부(210)를 통해 입력되는 입력신호에 따른 처리를 수행하고 해당 처리 결과를 통신 인터페이스부(210)를 통해 개발 단말 장치(100~100_N)에 전송하는 기능을 수행한다.
즉, 어플리케이션 프로그램은 해당 어플리케이션 프로그램이 동작하는 장치의 중앙 처리 장치(220)의 정보를 기초로 그 동작 방식을 달리하는데, 보다 구체적으로 설명하면 프로그램 실행에 필요한 입력 데이터를 어떠한 방식으로 수신하는지와 프로그램 실행에 따른 결과 데이터를 어떠한 방식으로 출력하는지가 달라진다.
즉, 어플리케이션 프로그램은 서버 동작 모드로 동작하는 경우에는, 소켓 통신에 의해 수신되는 데이터를 어플리케이션 프로그램의 수행에 필요한 입력 데이터로 활용하고, 또한 해당 프로그램의 수행에 따라 발생하는 처리 결과는 마찬가지로 소켓 통신에 의해 외부의 장치 예를 들어 개발 단말 장치(100~100_N)로 전송한다.
따라서 어플리케이션 프로그램이 프로그램 개발 서버(200)에 구비되어 실행되는 경우에는, 개발자들은 개발 단말 장치(100~100_N)를 이용 해당 프로그램 개발 서버(200)에 접속하여 이동통신 단말기용으로 개발된 프로그램의 동작을 시험하며 검증해 볼 수 있다.
즉, 개발 단말 장치(100~100_N)에서 조작되는 키 버튼 조작 신호는 프로그램 개발 서버(200)에 전송되어 프로그램 개발 서버(200)에서 구동 중인 어플리케이션 프로그램의 입력 데이터로써 이용되고, 또한 어플리케이션 프로그램의 수행에 따른 결과 데이터는 개발 단말 장치(100~100_N)에 전송되어 개발 단말 장치(100~100_N)의 디스플레이부(250)에 표시되게 되는 것이다.
한편, 어플리케이션 프로그램이 단말 동작 모드로 동작하는 경우에는 해당 타겟 단말 장치에 구비된 입력장치로부터의 신호가 어플리케이션 프로그램의 입력 데이터로써 이용되고, 어플리케이션 프로그램의 수행에 따른 결과 데이터는 해당 타겟 단말 장치에 구비된 디스플레이부(250)에 표시되도록 제어된다.
이러한 어플리케이션 프로그램의 기능 블록은 도 4와 같다.
즉, 어플리케이션 프로그램은 크게 저장 영역과 실행 코드 영역으로 구성되어 있는데, 저장 영역에는 소정의 정보 데이터가 저장되어 있고, 실행 코드 영역에는 어플리케이션 프로그램의 고유 기능을 수행하는 프로그램 실행 코드가 포함되어 있다.
특히 저장 영역에는 중앙 처리 장치(220) 정보에 따라 어떤 동작 모드로 실 행되어야 하는지를 결정하는 정보들이 저장되어 있다. 예를 들어 각 중앙 처리 장치(220) 정보와 동작 모드가 매칭된 데이터 테이블이 저장 영역에 상수 또는 변수로서 포함되어 있을 수 있다.
실행 코드 영역에는 하드웨어 정보 확인 루틴, 동작모드 판단 루틴, 동작 실행 루틴이 포함되어 있다.
여기서 하드웨어 정보 확인 루틴은 어플리케이션 프로그램이 실행되는 시점에 중앙 처리 장치(220) 정보를 확인하는 기능을 수행한다. 즉, 사용자 등에 의해 어플리케이션 프로그램이 실행되는 경우 하드웨어 정보 확인 루틴은 해당 어플리케이션 프로그램이 구동되고 있는 중앙 처리 장치(220)의 정보를 확인하는 것이다.
중앙 처리 장치(220) 정보를 확인 방법으로는 예를 들어 OS에 의해 기 저장된 하드웨어 정보 파일을 읽어 확인하는 방법 또는 중앙 처리 장치(220) 정보 내의 특정 영역에 저장된 정보를 직접 읽는 방법 등 다양한 방법이 이용될 수 있다.
동작 모드 판단 루틴은 하드웨어 정보 확인 루틴에 의해 확인된 중앙 처리 장치(220) 정보에 매칭되는 동작 모드를 저장 영역으로부터 추출하여 동작 모드를 판단하는 기능을 수행한다.
어플리케이션 프로그램의 저장 영역에는 중앙 처리 장치(220)와 동작 모드가 매칭된 데이터가 저장되어 있기 때문에, 동작 모드 판단 루틴은 하드웨어 정보 확인 루틴에 의해 확인된 중앙 처리 장치(220) 정보를 기초로 동작 모드를 판단할 수 있다.
동작 실행 루틴은 동작 모드 판단 루틴에 의해 판단된 동작 모드가 서버 동 작 모드인 경우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송한다.
예를 들어 동작 실행 루틴은 동작 모드 판단 루틴에 의해 판단된 동작 모드가 서버 동작 모드인 경우에는 UDP(User Datagram Protocol) 쓰레드를 생성하여 UDP 통신을 통해 어플리케이션 프로그램 실행 결과를 외부 장치로 전송한다. 물론 입력 데이터로써 사용되는 데이터도 UDP 통신을 통해 수신되는 데이터를 이용할 수도 있지만 입력 데이터의 무결성을 보장받기 위해 TCP(Transmission Control Protocol) 통신 쓰레드를 생성하여 TCP 통신을 이용하여 수신되는 데이터를 어플리케이션 프로그램의 실행을 위해 필요한 데이터로 이용할 수도 있다.
또한 동작 실행 루틴은 중앙 처리 장치(220')정보에 따라 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 기능을 수행한다.
예를 들어 동작 실행 루틴은 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 어플리케이션 프로그램이 실행되고 있는 프로그램 구동장치에 구비된 입력부(키 버튼 등)(240)의 신호를 처리하는 입력장치 쓰레드와 해당 프로그램 구동장치에 구비된 디스플레이부(LCD : Liquid Crystal Display 등)(250)를 제어하는 출력장치 쓰레드를 생성하여, 입력부(240)에 의해 발생되는 데이터를 어플리케이션 프로그램 동작에 필요한 입력 데이터로 처리하고 그 처리 결과가 디스플레이부(250)에 출력되도록 제어할 수 있다.
상술한 바와 같이 어플리케이션 프로그램이 단말 동작 모드로 동작하는 경우에 해당하는 프로그램 구동장치의 일 예는 도 5에 도시되었다.
도 5에 도시된 프로그램 구동장치가 도 3에 도시된 프로그램 구동장치(즉, 프로그램 개발 서버(200))와 다른 점은 구동장치 자체에 키 입력부(240)와 디스플레이부(250)가 연결되어 있다는 점이다. 따라서 어플리케이션 프로그램은 외부로부터 수신되는 신호가 아닌 키 입력부(240)에 의해 발생하는 신호를 어플리케이션 프로그램 동작시 필요한 입력 데이터로 인식하게 되고, 마찬가지로 어플리케이션 프로그램 동작에 따라 발생하는 처리 결과는 네트워크를 통한 외부로 송출할 필요 없이 디스플레이부(250)에 표시하면 된다.
도 6에서는 상술한 바와 같은 기능을 수행하는 어플리케이션 프로그램의 소프트웨어적인 구조를 도식적으로 나타내고 있다.
Main Thread는 어플리케이션 프로그램이 실행되는 경우 제일 먼저 실행되고, 하위의 다른 쓰레드를 생성하고 종료하는 역할을 수행한다.
Timer Thread는 각 쓰레드에서 요청한 타이머의 생성과 종료를 실행하며, 생성된 타이머의 주기에 도달하는 경우 해당 타이머 이벤트를 Message Control Thread로 전달한다.
Message Control Thread는 Timer Thread와 Device Control Thread, Network Thread에서 전달하는 메시지를 각 UI Control Thread에 전달하는 기능을 수행한다.
UI Control Thread는 하위의 Foreground 쓰레드와 Background 쓰레드의 생성과 종료를 관리하며 하위의 쓰레드에서 생성한 메시지를 수집하고 메시지의 대상이 되는 쓰레드에 전달해주며 Message Control Thread에서 전달받은 메시지를 하위의 쓰레드에 분배해 준다.
여기서 'foreground'와 'background'는 각각 프로세스 등의 실행 상태를 의미하는 것으로서 'background'는 사용자 입력과 출력 인터페이스를 제공하지 않는 상태에서 구동되는 것을 의미하고, 'foreground'는 사용자 입력과 출력 인터페이스를 제공하는 상태에서 구동되는 것을 의미한다.
즉, 사용자는 'foreground' 상태로 구동되는 프로세스와 콘솔 등을 통해 통신할 수 있고, 'background' 상태로 구동되는 프로세스는 우선 'foreground' 상태로 전환시켜야 사용자와의 통신이 가능하다.
따라서 UI Control Thread는 Background Thread가 아닌 Foreground Thread의 디스플레이 동작만 수행되도록 관리하여 준다.
Device Control Thread는 어플리케이션 프로그램이 타겟 단말 장치에서 실행될 때 생성되는 쓰레드로써, 단말의 각 Device를 관리하는 하위 쓰레드의 생성과 소멸을 관리하며, 각 Device로 Message Control Thread의 메시지를 전달하고, 각 Device가 생성한 메시지를 Device Message Control Thread로 전달한다.
Emulator Thread는 어플리케이션 프로그램이 개발 서버(200)에서 실행될 경우 생성되는 쓰레드로서, 하위에 단말의 UI 입,출력부에 해당하는 Socket Thread를 생성하여 외부와의 통신에 따라 수신되는 데이터를 어플리케이션 프로그램의 동작 에 필요한 입력 데이터로 활용하고, 또한 어플리케이션 프로그램의 동작에 따라 생성되는 처리 결과 데이터를 Socket Thread를 통해 외부로 전송하는 기능을 수행한다.
상술한 바와 같은 어플리케이션 프로그램의 동작 흐름을 도 7을 통해 설명한다.
우선, 사용자에 의해 프로그램의 동작 명령이 있는 경우 어플리케이션 프로그램의 메인 쓰레드가 실행된다(단계 S1).
이어서 어플리케이션 프로그램은 중앙 처리 장치(220,220') 정보를 확인하고(단계 S3) 중앙 처리 장치(220) 정보에 따라 현재 실행되고 있는 장치가 임베디드 장치에 해당하는지 판단한다(단계 S5).
여기서 임베디드 장치는 상술한 타겟 단말 장치에 해당한다.
임베디드 장치인 경우 어플리케이션 프로그램은 디바이스 컨트롤 쓰레드를 실행하고(단계 S7), 디바이스 컨트롤 쓰레드는 현재 임베디드 장치에 장착된 하드웨어 입력, 출력 장치를 관리할 수 있는 디바이스 드라이버(즉, 디바이스 쓰레드)를 실행한다(단계 S9). 이때 실행되는 디바이스 쓰레드는 입력을 위한 Keypad Thread와 출력을 위한 LCD Thread 등이 해당한다.
사용자의 키 패드 조작에 의한 키 입력부(240) 신호가 감지되면(단계 S11) 어플리케이션 프로그램은 키 입력부(240) 신호를 입력 데이터로 판단하여 그에 맞는 처리를 수행하고(단계 S13), 처리 결과를 LCD 즉, 디스플레이부(250)에 출력한다(단계 S15).
한편, 중앙 처리 장치(220) 정보 확인 결과 임베디드 장치가 아닌 경우(즉, 개발 서버(200))인 경우에는 어플리케이션 프로그램은 에뮬레이터 쓰레드를 실행하고(단계 S17) 외부와의 통신을 위한 소켓 쓰레드를 실행한다(단계 S19).
소켓 통신에 따른 입력 신호(즉, 외부 소정의 장치로부터 네트워크를 통해 수신되는 신호)가 감지되는 경우(단계 S21) 어플리케이션 프로그램은 소켓 통신에 따른 입력신호를 어플리케이션 프로그램의 동작을 위한 입력 데이터로 판단하여 그에 맞는 처리를 수행하고(단계 S23) 그 처리결과를 소켓 통신에 의해 해당 외부 장치 예를 들어 개발 단말 장치(100~100_N)로 전송한다(단계 S25).
이에 따라 어플리케이션 프로그램이 실행되는 장치가 개발 서버(200)인 경우에는 해당 개발 서버(200)에 연결된 프로그램 개발 단말 장치(100~100_N)의 화면에는 어플리케이션 프로그램의 동작에 따른 결과 화면이 표시되게 된다.
이처럼 어플리케이션 프로그램의 실행 단계에서 중앙 처리 장치(220)의 정보에 기초한 동작 모드를 판단하도록 함으로써, 입력 데이터와 출력 데이터를 어떠한 방식으로 수신하고 출력해야 하는지를 결정하고, 나머지 부분 즉, 입력 데이터에 따라 실행되는 어플리케이션 프로그램의 주요 기능들에 대해서는 임베디드 장치이든 개발 서버(200)이든 동일하게 실행되도록 함으로써, 개발 서버(200)에서 개발된 어플리케이션 프로그램을 임베디드 장치에 이식하는 경우 어플리케이션 프로그램의 코드 수정을 최소화할 수 있고, 또한 개발 단계의 동작과 실제 임베디드 장치에 이식된 후의 동작이 최대한 일치하도록 할 수 있다.
즉, 어플리케이션 프로그램은 자체적으로 동작 모드를 판단하는 기능이 포함 되어 있고, 그 동작 모드에 따라 달라지는 부분은 입력과 출력에 관한 것뿐이므로 최대한 개발 단계에서의 동작과 실제 임베디드 장치에 이식된 상태에서의 동작이 일치하고, 별다른 코드 수정을 할 필요가 없게 된다.
한편, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 특허청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다.
도 1은 본 발명의 일 실시예에 따른 프로그램 개발 서버를 포함하는 전체적인 개발 시스템의 개략 구성도이고,
도 2는 도 1의 개발 단말 장치의 디스플레이부에 표시되는 화면의 일 예를 나타낸 도면이고,
도 3은 도 1의 프로그램 개발 서버의 기능 블록도이고,
도 4는 도 1의 프로그램 개발 서버에 저장된 어플리케이션 프로그램의 코드 의 개념 구성도이고,
도 5는 본 발명의 일 실시예에 따른 어플리케이션 프로그램이 구비된 타겟 단말 장치의 기능 블록도이고,
도 6은 본 발명의 일 실시예에 따른 어플리케이션 프로그램의 각 쓰레드 구성도이고,
도 7은 본 발명의 일 실시예에 따른 어플리케이션 프로그램이 저장된 프로그램 구동 장치의 제어과정을 나타낸 도면이다.
* 도면의 주요 부분에 대한 부호의 설명
100~100_N : 개발 단말 장치 200 : 프로그램 개발 서버
210,210' : 통신 인터페이스부 220,220' : 중앙처리 장치
230,230' : 저장부 240 : 키 입력부
250 : 디스플레이부 221,221': 어플리케이션 프로그램 실행부

Claims (7)

  1. 중앙처리 장치 정보에 매칭되는 동작 모드가 저장된 저장 영역과, 상기 중앙처리 장치에서 실행되는 실행코드를 포함하는 실행 코드 영역으로 이루어진 프로그램이 구비된 프로그램 구동장치의 제어방법에 있어서,
    (a) 실행되는 시점에 중앙처리 장치 정보를 확인하는 하드웨어 정보 확인하는 단계와;
    (b) 상기 (a) 단계에서 확인된 중앙처리 장치 정보에 매칭된 동작 모드를 상기 저장 영역으로부터 추출하여 동작 모드를 판단하는 단계와;
    (c) 상기 (b) 단계에서 판단된 동작 모드가 서버 동작 모드인 경우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송하고, 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 단계를 포함하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동 장치의 제어방법.
  2. 제1항에 있어서,
    상기 (b) 단계에서 판단된 동작 모드가 서버 동작 모드인 경우에는 UDP(User Datagram Protocol) 쓰레드를 생성하여 UDP 통신을 통해 실행 결과를 상기 외부 장치로 전송하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치의 제어방법.
  3. 제1항 또는 제2항에 있어서,
    상기 (b) 단계에서 판단된 동작모드가 단말 동작 모드인 경우에는 상기 프로그램 구동장치에 구비된 입력장치의 신호를 처리하는 입력장치 쓰레드와 상기 프로그램 구동장치에 구비된 출력장치를 제어하는 출력장치 쓰레드를 생성하여, 상기 입력장치에 의해 발생되는 데이터를 입력 데이터로 처리하고 처리 결과가 상기 출력장치에 출력되도록 제어하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치의 제어방법.
  4. 타겟 단말기에서 동작하는 어플리케이션의 개발을 위해 적어도 하나의 개발 단말 장치가 통신망을 통해 접속하는 개발 서버에 있어서,
    상기 적어도 하나의 개발 단말 장치와 통신하는 통신 인터페이스부와;
    어플리케이션 프로그램이 저장된 저장부와;
    상기 통신 인터페이스부를 통해 연결된 개발 단말 장치의 요청에 따라 각각 상기 저장부에 저장된 어플리케이션 프로그램을 실행시키는 어플리케이션 프로그램 실행 제어부를 포함하여 구성되고,
    상기 실행되는 어플리케이션 프로그램은 상기 개발 서버 상에서 동작하는 서버 동작 모드와 상기 타겟 단말기에서 동작하는 단말 동작 모드를 포함하여 구성되되, 중앙처리장치 하드웨어 정보를 획득하여 서버 환경 여부를 판단하고 서버 환경인 경우 입력 및 출력용으로 상기 통신 인터페이스부를 통한 통신을 수행하는 통신 쓰레드를 생성하고, 상기 통신 인터페이스부를 통해 입력되는 입력신호에 따른 처리를 수행하고 해당 처리 결과를 상기 통신 인터페이스부를 통해 상기 개발 단말 장치에 전송하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 개발 서버.
  5. 중앙처리 장치 정보에 매칭되는 동작 모드가 저장된 저장 영역과, 상기 중앙처리 장치에서 실행되는 실행코드를 포함하는 실행 코드 영역으로 이루어진 프로그램이 구비된 프로그램 구동장치에 있어서,
    상기 실행 코드 영역의 실행 코드는,
    실행되는 시점에 중앙처리 장치 정보를 확인하는 하드웨어 정보 확인 루틴과;
    상기 하드웨어 정보 확인 루틴에 의해 확인된 중앙처리 장치 정보에 매칭된 동작 모드를 상기 저장 영역으로부터 추출하여 동작 모드를 판단하는 동작 모드 판단 루틴과;
    상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 서버 동작 모드인 경 우에는 소켓 통신 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 소켓 통신에 따라 수신되는 입력 데이터를 이용하며 프로그램 동작에 따라 생성되는 출력 데이터는 소켓 통신에 따라 전송하고, 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 장치 관리 쓰레드를 실행하고 프로그램 동작에 필요한 입력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 입력 장치로부터 수신하며 프로그램 동작에 따라 생성되는 출력 데이터는 상기 장치 관리 쓰레드에 의해 관리되는 출력 장치에 출력하는 동작 실행 루틴을 포함하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동 장치.
  6. 제5항에 있어서,
    상기 동작 실행 루틴은 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 서버 동작 모드인 경우에는 UDP(User Datagram Protocol) 쓰레드를 생성하여 UDP 통신을 통해 실행 결과를 상기 외부 장치로 전송하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치.
  7. 제5항 또는 제6항에 있어서,
    상기 동작 실행 루틴은 상기 동작 모드 판단 루틴에 의해 판단된 동작 모드가 단말 동작 모드인 경우에는 상기 프로그램 구동장치에 구비된 입력장치의 신호 를 처리하는 입력장치 쓰레드와 상기 프로그램 구동장치에 구비된 출력장치를 제어하는 출력장치 쓰레드를 생성하여, 상기 입력장치에 의해 발생되는 데이터를 입력 데이터로 처리하고 처리 결과가 상기 출력장치에 출력되도록 제어하는 것을 특징으로 하는 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치.
KR1020090033060A 2009-04-16 2009-04-16 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법 KR101596503B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090033060A KR101596503B1 (ko) 2009-04-16 2009-04-16 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090033060A KR101596503B1 (ko) 2009-04-16 2009-04-16 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20100114607A true KR20100114607A (ko) 2010-10-26
KR101596503B1 KR101596503B1 (ko) 2016-02-22

Family

ID=43133723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090033060A KR101596503B1 (ko) 2009-04-16 2009-04-16 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR101596503B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019093658A1 (ko) * 2017-11-09 2019-05-16 삼성전자주식회사 서버, 전자장치 및 그의 제어방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010039012A (ko) * 1999-10-28 2001-05-15 박종섭 반도체 칩 로더 장비
KR20020010559A (ko) * 2001-11-27 2002-02-04 이종하 인터넷망에서 가상기계를 이용한 휴대용 단말기 응용소프트웨어 구현 시스템 및 그 운영방법
KR20030033418A (ko) * 2001-10-22 2003-05-01 텔슨전자 주식회사 이동전화기의 사용자 인터페이스 시험 방법
KR20050114944A (ko) * 2004-06-02 2005-12-07 에스케이 텔레콤주식회사 단말기의 가상머신 어플리케이션 프로그램 제공 방법 및시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010039012A (ko) * 1999-10-28 2001-05-15 박종섭 반도체 칩 로더 장비
KR20030033418A (ko) * 2001-10-22 2003-05-01 텔슨전자 주식회사 이동전화기의 사용자 인터페이스 시험 방법
KR20020010559A (ko) * 2001-11-27 2002-02-04 이종하 인터넷망에서 가상기계를 이용한 휴대용 단말기 응용소프트웨어 구현 시스템 및 그 운영방법
KR20050114944A (ko) * 2004-06-02 2005-12-07 에스케이 텔레콤주식회사 단말기의 가상머신 어플리케이션 프로그램 제공 방법 및시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019093658A1 (ko) * 2017-11-09 2019-05-16 삼성전자주식회사 서버, 전자장치 및 그의 제어방법
US11216328B2 (en) 2017-11-09 2022-01-04 Samsung Electronics Co., Ltd. Server, electronic device, and control method thereof

Also Published As

Publication number Publication date
KR101596503B1 (ko) 2016-02-22

Similar Documents

Publication Publication Date Title
KR101251710B1 (ko) 복수의 부트-가능 장치들 간의 부트 교섭
US8874953B2 (en) System and method of cloud testing and remote monitoring for integrated circuit components in system validation
KR102400384B1 (ko) 외장 메모리를 구비하는 전자장치 및 그 동작 방법
US9558007B2 (en) Out-of band configuration of BIOS setting data
US8745619B2 (en) Computer system and recording medium
CN109308241B (zh) 监听应用程序启动流程方法、装置、终端设备和存储介质
KR20190021141A (ko) 멀티 윈도우를 제어하는 전자 장치 및 그 동작 방법
CN111427803B (zh) 自动化随机测试方法、装置、计算机设备及介质
KR20160112757A (ko) 사용자 장치 및 그것에 대한 무결성 검증 방법
US20140380313A1 (en) Method and device for loading android virtual machine application
US20200401384A1 (en) Electronic device and operation method thereof
US20150196844A1 (en) Systems and methods for executable file identity capture during indirect application launch
KR20150128256A (ko) 실제 스마트기기의 디바이스에서 발생하는 이벤트에 따라 응용프로그램을 실행하는 가상 안드로이드 장치를 구비한 서버 시스템
CN113760332A (zh) 软件升级方法和电子设备
US10796002B1 (en) Method and apparatus for establishing a root-of-trust path for a secure computer
RU2636110C2 (ru) Устройство обработки информации, способ обработки информации и программа
KR20210046426A (ko) 어플리케이션의 최적화 방법 및 이를 지원하는 전자 장치
KR101596503B1 (ko) 중앙처리 장치 정보에 따라 각기 다른 동작 모드로 동작하는 프로그램이 구비된 프로그램 구동장치 및 그 제어방법
CN115185745A (zh) 数据处理方法、系统、电子设备及计算机可读存储介质
KR20040013356A (ko) 휴대전화를 주변장치로 사용하는 휴대형 단말기
KR20170106029A (ko) 전자 장치 및 그의 제어 방법
WO2010125473A1 (en) Mobile operating system management method and system
KR100745487B1 (ko) 이동통신단말기의 부트코드 복구방법 및 장치
US20240012654A1 (en) Electronic device and demo program execution method thereof
US11979404B2 (en) Information providing method, information providing system, and server

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant