KR20150017598A - 휴대 단말기에서 시스템 호출 제어 장치 및 방법 - Google Patents

휴대 단말기에서 시스템 호출 제어 장치 및 방법 Download PDF

Info

Publication number
KR20150017598A
KR20150017598A KR1020130093753A KR20130093753A KR20150017598A KR 20150017598 A KR20150017598 A KR 20150017598A KR 1020130093753 A KR1020130093753 A KR 1020130093753A KR 20130093753 A KR20130093753 A KR 20130093753A KR 20150017598 A KR20150017598 A KR 20150017598A
Authority
KR
South Korea
Prior art keywords
system call
service routine
software interrupt
call interface
interface table
Prior art date
Application number
KR1020130093753A
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 KR1020130093753A priority Critical patent/KR20150017598A/ko
Priority to US14/305,775 priority patent/US20150046931A1/en
Publication of KR20150017598A publication Critical patent/KR20150017598A/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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Abstract

본 발명은 휴대 단말기에서 시스템 호출을 제어하는 장치 및 방법에 관한 것으로, 제1소프트웨어 인터럽트가 적용된 태스크의 제1프로세스 제어 블록을 검색하며, 상기 검색된 제1프로세스 제어 블록으로부터 시스템 호출 인터페이스 테이블을 검출하며, 상기 검출된 시스템 호출 인터페이스 테이블로부터 시스템 호출 서비스 루틴을 검색하고, 상기 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행하는 것을 특징으로 한다.

Description

휴대 단말기에서 시스템 호출 제어 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING A SYSTEM CALL IN A PORTABLE TERMINAL}
본 발명은 휴대 단말기에 관한 것으로, 특히, 휴대 단말기에서 시스템 호출을 제어하는 장치 및 방법에 관한 것이다.
스마트 폰(Smart Phone) 및 태블릿(Tablet) 등의 휴대 단말기는 여러 가지 다양한 애플리케이션들을 통해 사용자에게 여러 가지 유용한 기능을 제공하고 있다. 따라서, 휴대 단말기는 다양한 기능의 제공을 통해 음성 통화 기능과 더불어 다양한 형태의 정보를 이용할 수 있는 기기로 변모해 가는 추세이다. 특히, 이러한 휴대 단말기는 특정 애플리케이션을 실행하여 특정 기능을 사용자에게 제공한다.
한편, 특정 애플리케이션이 휴대 단말기에 포함된 하드웨어를 사용하기 위해서는 시스템 호출 명령을 이용하여 원하는 하드웨어의 기능을 호출하였다.
그러나 휴대 단말기의 운영 시스템(이하 'OS'라 한다)가 업데이트되거나 특정 애플리케이션이 지원하는 OS가 휴대 단말기의 OS와 다른 경우, 휴대 단말기는 특정 애플리케이션을 실행할 수 없었다. 왜냐하면, 프로그램(예를 들면, 애플리케이션)을 실행 불가능하도록 만들지 않고서는 시스템 호출 중 하나를 제거하거나 변경하는 것이 어려운 문제점이 있었다.
따라서, 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 실행하거나 변경할 수 있는 방안의 필요성이 대두하였다.
이를 위해, 본원 발명은 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 실행하기 위한 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공한다.
그리고 본원 발명은 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 변경하기 위한 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공한다.
상기한 과제를 해결하기 위한 본 발명의 장치는, 휴대 단말기에서 시스템 호출을 제어하는 장치에 있어서, 제1소프트웨어 인터럽트가 적용된 태스크의 제1프로세스 제어 블록을 검색하며, 상기 검색된 제1프로세스 제어 블록으로부터 시스템 호출 인터페이스 테이블을 검출하며, 상기 검출된 시스템 호출 인터페이스 테이블로부터 시스템 호출 서비스 루틴을 검색하고, 상기 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행하는 제어부를 포함하는 것을 특징으로 한다.
상기한 과제를 해결하기 위한 본 발명의 방법은, 휴대 단말기에서 시스템 호출을 제어하는 방법에 있어서, 제1소프트웨어 인터럽트가 적용된 태스크의 제1프로세스 제어 블록을 검색하며, 상기 검색된 제1프로세스 제어 블록으로부터 시스템 호출 인터페이스 테이블을 검출하며, 상기 검출된 시스템 호출 인터페이스 테이블로부터 시스템 호출 서비스 루틴을 검색하고, 상기 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행하는 것을 특징으로 한다.
이를 위해, 본원 발명은 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공함으로써 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 실행할 수 있다.
그리고 본원 발명은 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공함으로써 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 변경할 수 있다.
도 1은 본 발명의 실시 예에 따른 휴대 단말기의 블록 구성도,
도 2는 본 발명의 실시 예에 따른 안드로이드 구조를 도시한 도면,
도 3은 본 발명의 제1실시 예에 따른 휴대 단말기에서 시스템 호출을 실행하는 흐름도,
도 4는 본 발명의 제2실시 예에 따른 휴대 단말기에서 시스템 호출 인터페이스를 변경하는 흐름도,
도 5는 본 발명의 제1실시 예에 따라 시스템 호출을 실행하는 프로그램 언어를 도시한 도면,
도 6은 본 발명의 제2실시 예에 따라 시스템 호출 인터페이스를 변경하는 프로그램 언어를 도시한 도면이다.
이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다.
본 발명의 실시 예에 따른 휴대 단말기는 휴대가 용이하게 이동 가능한 전자기기로서, 화상전화기, 휴대폰, 스마트 폰(smart phone), IMT-2000(International Mobile Telecommunication 2000) 단말기, WCDMA 단말기, UMTS(Universal Mobile Telecommunication Service) 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), DMB(Digital Multimedia Broadcasting) 단말기, E-Book, 휴대용 컴퓨터(Notebook, Tablet 등) 또는 디지털 카메라(Digital Camera) 등이 될 수 있다. 그리고 고정 단말기는 데스크탑(desktop) 개인용 컴퓨터 등이 될 수 있다.
도 1은 본 발명의 실시 예에 따른 휴대 단말기의 블록 구성도이다.
도 1을 참조하면, 휴대 단말기는 제어부(101)와 표시부(103)와 입력부(105)와 메모리부(107)와 RF부(109)와 데이터 처리부(111)와 음향 처리부(113)를 포함한다.
각 구성요소를 살펴보면, RF부(109)는 단말기의 무선 통신 기능을 수행한다. 특히, RF부(109)는 송신되는 신호의 주파수를 상승변환 및 증폭하는 RF(Radio Frequcnecy) 송신기와, 수신되는 신호를 저잡음 증폭하고 주파수를 하강변환하는 RF수신기 등을 포함한다. 그리고 데이터 처리부(111)는 송신되는 신호를 부호화 및 변조하는 송신기 및 수신되는 신호를 복조 및 복호하는 수신기 등을 포함한다. 즉, 데이터 처리부(111)는 모뎀(MODEM) 및 코덱(CODEC)으로 구성될 수 있다. 여기서 코덱은 패킷 데이터 등을 처리하는 데이터 코덱과 음성 등의 오디오 신호를 처리하는 오디오 코덱을 포함한다.
그리고 음향 처리부(113)는 데이터 처리부(111)의 오디오 코덱에서 출력되는 수신 오디오 신호를 재생하거나 또는 마이크로부터 발생되는 송신 오디오 신호를 데이터 처리부(111)의 오디오 코덱에 전송하는 기능을 수행한다. 그리고 입력부(105)는 숫자 및 문자 정보를 입력하기 위한 키들 및 각종 기능들을 설정하기 위한 기능 키들을 구비한다.
그리고 표시부(103)는 영상 신호를 화면으로 표시하며, 제어부(101)로부터 출력 요청되는 데이터를 표시할 수 있다. 만약에, 표시부(103)가 정전식 또는 감압식 등의 터치 표시 화면 방식으로 구현될 경우, 입력부(105)는 미리 설정된 최소한의 키만을 포함할 수 있으며 표시부(103)는 입력부(105)의 키입력 기능을 일부 대체할 수 있다.
그리고 메모리부(107)는 프로그램 메모리, 데이터 메모리들로 구성될 수 있다. 여기서, 프로그램 메모리는 휴대 단말기의 일반적인 동작을 제어하기 위한 부팅(booting) 및 운영 시스템(Operating System, 이하 'OS'라 할 수 있다)을 저장하고, 데이터 메모리는 휴대 단말기 동작 중에 발생되는 각종 데이터들을 저장할 수 있다. 예를 들면, 운영 시스템은 안드로이드가 될 수 있다. 여기서, 안드로이드는 휴대 단말기용 운영체제, 미들웨어 및 응용프로그램을 포함하는 소프트웨어 플랫폼이다.
그리고 제어부(101)는 휴대 단말기의 전반적인 동작을 제어하는 기능을 수행한다. 특히, 제어부(101)는 메모리부(107)에 저장된 운영 시스템 예를 들면, 안드로이드를 실행하고, 실행된 안드로이드를 이용하여 시스템 호출을 실행하거나 시스템 호출 인터페이스를 변경한다. 여기서, 시스템 호출은 애플리케이션에서 운영 체제의 기능을 불러내기 위한 프로그램 절차(C 언어에서는 함수)를 호출하는 것을 말한다. 그리고 시스템 호출은 OS 하에서는 애플리케이션에서 메모리나 입출력 장치를 직접 조작하는 것이 허락되지 않으므로 파일이나 입출력 장치나 메모리에 액세스할 때 사용한다.
도 2는 본 발명의 실시 예에 따른 안드로이드의 구조를 도시한 도면이다.
도 2를 참조하면, 안드로이드는 리눅스 커널(209)과 라이브러리(205)와 안드로이드 런타임(207)과 애플리케이션 프레임 워크(203)와 애플리케이션(201)을 포함한다.
각 구성 요소를 살펴보면, 리눅스 커널(209)는 안드로이드의 최하위 계층으로, 백그라운드 스레드, 메모리, 보안과 디바이스 등의 낮은 수준 관리 기능을 수행한다. 그리고 라이브러리(205)는 응용 프로그램(애플리케이션)들이 공통적으로 사용하는 라이브러리들을 포함하고, 안드로이드 런타임(207)은 애플리케이션을 실행하기 위해 최적화된 환경을 제공하며, 달빅 가상 머신과 자바 코어 라이브러리를 포함할 수 있다.
그리고 애플리케이션 프레임 워크(203)는 안드로이드의 애플리케이션 프로그래밍 인터페이스(Application Programing Interface, 이하 'API'라 한다)이다. 애플리케이션은 리눅스 커널(209)이나 라이브러리(205)를 직접 호출할 수 없으며 API를 통해서 리눅스 커널(209)이나 라이브러리(205)를 요청할 수 있다. 그리고 애플리케이션(201)은 게임 또는 유틸리티 등과 같은 응용 프로그램을 말한다.
특히, 시스템 호출을 실행하기 위해, 애플리케이션(201)은 소프트웨어 인터럽트 명령을 실행한다. 여기서, 소프트웨어 인터럽트는 필요한 태스크를 실행하도록 설계되어 있는 독립된 명령의 집합인 인터럽트 루틴에 의해 제공되는 서비스를 요구하기 위해 현행 처리를 정지시키는 프로그램 생성형의 인터럽트를 말한다. 예를 들면, 어떤 프로그램이 소프트웨어 인터럽트를 생성하여 마이크로프로세서가 컴퓨터 입출력 시스템의 제어에 있는 비디오 루틴을 참조하게 한다거나 마우스나 키보드로부터의 입력을 읽게 할 수 있다. 특히, 소프트웨어 인터럽트는 시스템 호출의 실행을 요청하는 소프트웨어 인터럽트이다.
그리고 리눅스 커널(209)은 소프트웨어 인터럽트 명령이 실행된 경우, 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 프로세스 제어 블록(Process Control Block, 이하 'PCB'라 한다)을 검색한다.
여기서, 태스크는 OS가 자원을 할당하여 처리하는 경우의 일의 단위를 말한다. 태스크의 개념은 자원의 효율적 사용, 다중 처리(multiprocessing)에 있어서의 처리율(throughput)의 향상을 도모하기 위해 이루어지는 것이고, 각 프로그램은 태스크를 경유하여 시스템 자원(system resources)을 할당할 수 있으며 실행(run)하게 된다. 그리고 PCB는 OS가 프로세스에 대한 유용한 정보를 저장하는 있는 저장 장소를 말한다. PCB는 프로세스의 현재 상태, 프로세스의 고유한 식별자, 프로세스의 우선 순위, 프로세스가 적재된 기억 장치 부분을 가리키는 포인터(pointer), 프로세스에 할당된 자원을 가리키는 포인터 및 레지스터 내용을 저장하는 장소 등에 관한 정보를 포함한다.
그리고 애플리케이션(201)은 리눅스 커널(209)로부터 검색된 PCB를 수신하고, 수신된 PCB로부터 시스템 호출 인터페이스 테이블을 검출한다. 여기서, 시스템 호출 인터페이스는, 커널에 서비스를 요청하거나 하드웨어를 조작하고자 하는 명령이 발생하면 소프트웨어 인터럽트를 읽어 해당 함수를 호출하여 주는 것을 말한다 그리고 시스템 호출 인터페이스 테이블은 적어도 하나의 시스템 호출 함수를 포함한다.
그리고 애플리케이션(201)은 검출된 시스템 호출 인터페이스 테이블로부터 소프트웨어 인터럽트가 적용된 태스크에 대응되는 시스템 호출 서비스 루틴을 검색한다. 즉, 애플리케이션(201)은 검출된 시스템 호출 인터페이스 테이블로부터 소프트웨어 인터럽트가 적용된 태스크에 대응되는 시스템 호출 함수를 검색한다.
그리고 리눅스 커널(209)은 애플리케이션(201)으로부터 검색된 시스템 호출 서비스 루틴을 수신하고, 수신된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행한다.
그리고 시스템 호출 인터페이스를 변경하기 위해, 애플리케이션(201)은 소프트웨어 인터럽트 명령을 실행한다. 여기서, 소프트웨어 인터럽트는 리눅스 커널(209)에게 시스템 호출 인터페이스 테이블의 선택을 요청하는 인터럽트이다.
그리고 리눅스 커널(209)은 소프트웨어 인터럽트가 수신되면, 어떤 시스템 호출 인터페이스가 필요한지 결정하기 위해, 프로세스를 체크한다. 여기서, 프로세스는 실행 중인 프로그램을 말한다. 그리고 리눅스 커널(209)은 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 PCB를 검색한다.
그리고 리눅스 커널(209)은 검색된 PCB에 포함된 시스템 호출 인터페이스 테이블을 새로운 시스템 호출 인터페이스 테이블로 변경함으로써 검색된 PCB를 업데이트한다. 이때, 리눅스 커널(209)는 이전 시스템 호출 서비스 루틴에 대응되는 새로운 시스템 호출 서비스 루틴을 포함하는 정보를 기반으로 PCB에 포함된 시스템 호출 인터페이스 테이블에 포함된 이전 시스템 호출 서비스 루틴을 새로운 시스템 호출 서비스 루틴으로 변경함으로써 PCB에 포함된 시스템 호출 인터페이스 테이블을 새로운 시스템 호출 인터페이스 테이블로 변경할 수 있다.
여기서, 정보는 OS에 의해 생성되며, 이러한 정보는 이전 시스템 호출 인터페이스의 구성을 알고 있는 OS의 업데이트 버전에서도 이전 애플리케이션의 실행을 가능하게 한다.
도 3은 본 발명의 제1실시 예에 따른 휴대 단말기에서 시스템 호출을 실행하는 흐름도이다.
도 3을 참조하면, 301 단계에서, 애플리케이션(201)은 소프트웨어 인터럽트 명령을 실행한 후, 303 단계로 진행한다. 여기서, 소프트웨어 인터럽트는 필요한 태스크를 실행하도록 설계되어 있는 독립된 명령의 집합인 인터럽트 루틴에 의해 제공되는 서비스를 요구하기 위해 현행 처리를 정지시키는 프로그램 생성형의 인터럽트를 말한다. 예를 들면, 어떤 프로그램이 소프트웨어 인터럽트를 생성하여 마이크로프로세서가 컴퓨터 입출력 시스템의 제어에 있는 비디오 루틴을 참조하게 한다거나 마우스나 키보드로부터의 입력을 읽게 할 수 있다. 특히, 소프트웨어 인터럽트는 시스템 호출의 실행을 요청하는 소프트웨어 인터럽트이다.
그리고 303 단계에서, 리눅스 커널(209)은 소프트웨어 인터럽트 명령이 실행된 경우, 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 PCB를 검색한 후, 305 단계로 진행한다.
여기서, 태스크는 OS가 자원을 할당하여 처리하는 경우의 일의 단위를 말한다. 태스크의 개념은 자원의 효율적 사용, 다중 처리에 있어서의 처리율의 향상을 도모하기 위해 이루어지는 것이고, 각 프로그램은 태스크를 경유하여 시스템 자원을 할당할 수 있으며 실행하게 된다. 그리고 PCB는 OS가 프로세스에 대한 유용한 정보를 저장하는 있는 저장 장소를 말한다. PCB는 프로세스의 현재 상태, 프로세스의 고유한 식별자, 프로세스의 우선 순위, 프로세스가 적재된 기억 장치 부분을 가리키는 포인터, 프로세스에 할당된 자원을 가리키는 포인터 및 레지스터 내용을 저장하는 장소 등에 관한 정보를 포함한다.
그리고 305 단계에서, 애플리케이션(201)은 리눅스 커널(209)로부터 검색된 PCB를 수신하고, 수신된 PCB로부터 시스템 호출 인터페이스 테이블을 검출한 후, 307 단계로 진행한다. 여기서, 시스템 호출 인터페이스는, 커널에 서비스를 요청하거나 하드웨어를 조작하고자 하는 명령이 발생하면 소프트웨어 인터럽트를 읽어 해당 함수를 호출하여 주는 것을 말한다 그리고 시스템 호출 인터페이스 테이블은 적어도 하나의 시스템 호출 함수를 포함한다.
그리고 307 단계에서, 애플리케이션(201)은 검출된 시스템 호출 인터페이스 테이블로부터 소프트웨어 인터럽트가 적용된 태스크에 대응되는 시스템 호출 서비스 루틴을 검색한 후, 309 단계로 진행한다. 즉, 애플리케이션(201)은 검출된 시스템 호출 인터페이스 테이블로부터 소프트웨어 인터럽트가 적용된 태스크에 대응되는 시스템 호출 함수를 검색한다.
그리고 309 단계에서, 리눅스 커널(209)은 애플리케이션(201)으로부터 검색된 시스템 호출 서비스 루틴을 수신하고, 수신된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행한다.
이러한 단계들을 통해, 휴대 단말기는 실행중인 프로세스에 대한 시스템 호출 인터페이스를 검색할 수 있고, 시스템 호출 인터페이스의 세부사항을 저장하고, 운영체제의 태스크와 시스템 호출 인터페이스의 세부사항의 관계를 확립할 수 있다.
도 4는 본 발명의 제2실시 예에 따른 휴대 단말기에서 시스템 호출 인터페이스를 변경하는 흐름도이다.
도 4를 참조하면, 401 단계에서, 애플리케이션(201)은 소프트웨어 인터럽트 명령을 실행한 후, 403 단계로 진행한다. 여기서, 소프트웨어 인터럽트는 리눅스 커널(209)에게 시스템 호출 인터페이스 테이블의 선택을 요청하는 인터럽트이다.
그리고 403 단계에서, 리눅스 커널(209)은 소프트웨어 인터럽트가 수신되면, 어떤 시스템 호출 인터페이스가 필요한지 결정하기 위해, 프로세스를 체크한 후, 405 단계로 진행한다. 여기서, 프로세스는 실행 중인 프로그램을 말한다. 그리고 405 단계에서, 리눅스 커널(209)은 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 PCB를 검색한 후, 407 단계로 진행한다.
그리고 407 단계에서, 리눅스 커널(209)은 검색된 PCB에 포함된 시스템 호출 인터페이스 테이블을 새로운 시스템 호출 인터페이스 테이블로 변경함으로써 검색된 PCB를 업데이트한다. 이때, 리눅스 커널(209)는 이전 시스템 호출 서비스 루틴에 대응되는 새로운 시스템 호출 서비스 루틴을 포함하는 정보를 기반으로 PCB에 포함된 시스템 호출 인터페이스 테이블에 포함된 이전 시스템 호출 서비스 루틴을 새로운 시스템 호출 서비스 루틴으로 변경함으로써 PCB에 포함된 시스템 호출 인터페이스 테이블을 새로운 시스템 호출 인터페이스 테이블로 변경할 수 있다.
여기서, 정보는 OS에 의해 생성되며, 이러한 정보는 이전 시스템 호출 인터페이스의 구성을 알고 있는 OS의 업데이트 버전에서도 이전 애플리케이션의 실행을 가능하게 한다.
이러한 단계들을 통해, 휴대 단말기는 이전의 시스템 호출 인터페이스를 새로운 시스템 호출 인터페이스로 변경할 수 있다.
도 5는 본 발명의 제1실시 예에 따라 시스템 호출을 실행하는 프로그램 언어를 도시한 도면이다.
도 5를 참조하면, 애플리케이션(201)은 501 및 503 프로그램 언어를 통하여 소프트웨어 인터럽트 명령을 실행한다. 특히, 소프트웨어 인터럽트는 시스템 호출의 실행을 요청하는 소프트웨어 인터럽트이다. 이때, 애플리케이션(201)은 소프트웨어 인터럽트 명령의 실행을 요청하고, 라이브러리(205)는 해당 소프트웨어 인터럽트에 대응되는 라이브러리를 실행한다.
그리고 리눅스 커널(209)은 505 프로그램 언어를 통하여 소프트웨어 인터럽트 명령이 실행된 경우, 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 PCB를 검색한다.
그리고 애플리케이션(201)은 507 프로그램 언어를 통하여 검색된 PCB로부터 시스템 호출 인터페이스 테이블을 검출하고, 검출된 시스템 호출 인터페이스 테이블로부터 소프트웨어 인터럽트가 적용된 태스크에 대응되는 시스템 호출 서비스 루틴을 검색한다.
그리고 리눅스 커널(209)은 509 프로그램 언어를 통하여 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행한다.
도 6은 본 발명의 제2실시 예에 따라 시스템 호출 인터페이스를 변경하는 프로그램 언어를 도시한 도면이다.
도 6을 참조하면, 애플리케이션(201)은 601 프로그램 언어를 통해 소프트웨어 인터럽트 명령을 실행한다. 여기서, 소프트웨어 인터럽트는 리눅스 커널(209)에게 시스템 호출 인터페이스 테이블의 변경을 요청하는 인터럽트이다.
그리고 리눅스 커널(209)은 603 및 605 프로그램 언어를 통해 소프트웨어 인터럽트가 수신되면, 어떤 시스템 호출 인터페이스가 필요한지 결정하기 위해, 프로세스를 체크한다.
그리고 리눅스 커널(209)은 607 및 609 프로그램 언어를 통해 소프트웨어 인터럽트가 적용된 태스크를 검색하고, 검색된 태스크의 PCB를 검색하고, 검색된 PCB에 포함된 시스템 호출 인터페이스 테이블을 새로운 시스템 호출 인터페이스 테이블로 변경함으로써 검색된 PCB를 업데이트한다.
본원 발명은 다른 컴파일러 툴 체인들, 시스템 라이브러리들, 및 다른 OS로 생성된 실행중인 바이너리 애플리케이션들을 실행할 수 있다. 이를 위해 본원 발명은 시스템 호출 인터페이스를 변경하기 위한 시스템 호출 소프트웨어 인터럽트를 제공하며, 휴대 단말기에서 제공하는 시스템 호출 인터페이스를 기반으로 애플리케이션의 시스템 호출 인터페이스를 변경하는 것을 제공한다.
본원 발명은 플랫폼들을 발달시키기 위한 시스템 호출 인터페이스의 유지를 매우 간소화한다. 따라서, 모든 시스템 호출들의 계층을 다시 조작하는 것이 가능하다. 애플리케이션에 대한 예전의 시스템 호출 인터페이스 서비스 루틴이 시스템 호출 인터페이스 테이블의 끝으로 이동하는 경우, 새로운 시스템 호출 인터페이스 서비스 루틴이 시스템 호출 인터페이스 테이블의 시작 부분에 추가된다.
또한, 시스템 호출 인터페이스의 구현을 위한 코드가 특정 애플리케이션의 수요에 의해 로드(load)될 수 있다. 새로운 시스템 호출들은 예전 시스템이 호환성만을 유지하는 동안 최적화될 수 있다. OS는 실행 중인 레거시 애플리케이션들이 없을 때 자원들을 확보할 필요가 없다.
상기한 동작을 통해, 본원 발명은 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공함으로써 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 실행할 수 있다. 그리고 본원 발명은 휴대 단말기에서 시스템 호출 제어 장치 및 방법을 제공함으로써 특정 애플리케이션이 실행 중에도 특정 애플리케이션에 대한 시스템 호출을 변경할 수 있다.
본 발명의 휴대 단말기에서 시스템 호출 제어 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함할 수 있다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함할 수 있다.  또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
상술한 본 발명의 설명에서는 휴대 단말기와 같은 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 본 발명의 특허 범위는 상기 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위뿐 아니라 균등 범위에도 미침은 자명할 것이다.
101: 제어부 103: 표시부
105: 입력부 107: 메모리부
109: RF부 111: 데이터 처리부
113: 음향 처리부

Claims (12)

  1. 휴대 단말기에서 시스템 호출을 제어하는 장치에 있어서,
    제1소프트웨어 인터럽트가 적용된 태스크의 제1프로세스 제어 블록을 검색하며, 상기 검색된 제1프로세스 제어 블록으로부터 시스템 호출 인터페이스 테이블을 검출하며, 상기 검출된 시스템 호출 인터페이스 테이블로부터 시스템 호출 서비스 루틴을 검색하고, 상기 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행하는 제어부를 포함하는 것을 특징으로 하는 제어 장치.
  2. 제1항에 있어서,
    상기 제어부는, 상기 검출된 시스템 호출 인터페이스 테이블로부터 상기 제1 소프트웨어 인터럽트가 적용된 상기 태스크에 대응되는 시스템 호출 함수를 검색하는 것을 특징으로 하는 제어 장치.
  3. 제1항에 있어서,
    상기 제1소프트웨어 인터럽트는, 상기 시스템 호출을 요청하는 인터럽트인 것을 특징으로 하는 제어 장치.
  4. 제1항에 있어서,
    상기 제어부는, 제2소프트웨어 인터럽트가 수신되면, 어떤 시스템 호출 인터페이스가 필요한지 결정하기 위해 프로세스를 확인하며, 상기 제2소프트웨어 인터럽트가 적용된 태스크의 제2프로세스 제어 블록을 검색하고, 상기 검색된 제2프로세스 제어 블록이 새로운 시스템 호출 인터페이스 테이블을 포함하도록 상기 검색된 제2프로세스 제어 블록을 업데이트하는 것을 특징으로 하는 제어 장치.
  5. 제4항에 있어서,
    상기 제어부는, 이전 시스템 호출 서비스 루틴에 대응되는 새로운 시스템 호출 서비스 루틴을 포함하는 정보를 기반으로 상기 시스템 호출 인터페이스 테이블에 포함된 상기 시스템 호출 서비스 루틴을 새로운 시스템 호출 서비스 루틴으로 변경함으로써 상기 검색된 제2프로세스 제어 블록을 업데이트하는 것을 특징으로 하는 제어 장치.
  6. 제4항에 있어서,
    상기 제2소프트웨어 인터럽트는, 상기 시스템 호출 인터페이스 테이블의 변경을 요청하는 인터럽트인 것을 특징으로 하는 제어 장치.
  7. 휴대 단말기에서 시스템 호출을 제어하는 방법에 있어서,
    제1소프트웨어 인터럽트가 적용된 태스크의 제1프로세스 제어 블록을 검색하는 과정과,
    상기 검색된 제1프로세스 제어 블록으로부터 시스템 호출 인터페이스 테이블을 검출하는 과정과,
    상기 검출된 시스템 호출 인터페이스 테이블로부터 시스템 호출 서비스 루틴을 검색하는 과정과,
    상기 검색된 시스템 호출 서비스 루틴을 이용하여 시스템 호출을 실행하는 과정을 포함하는 것을 특징으로 하는 제어 방법.
  8. 제7항에 있어서,
    상기 시스템 호출 서비스 루틴을 검색하는 과정은, 상기 검출된 시스템 호출 인터페이스 테이블로부터 상기 제1 소프트웨어 인터럽트가 적용된 상기 태스크에 대응되는 시스템 호출 함수를 검색하는 과정인 것을 특징으로 하는 제어 방법.
  9. 제7항에 있어서,
    상기 제1소프트웨어 인터럽트는, 상기 시스템 호출을 요청하는 인터럽트인 것을 특징으로 하는 제어 방법.
  10. 제7항에 있어서,
    제2소프트웨어 인터럽트가 수신되면, 어떤 시스템 호출 인터페이스가 필요한지 결정하기 위해 프로세스를 확인하는 과정과,
    상기 제2소프트웨어 인터럽트가 적용된 태스크의 제2프로세스 제어 블록을 검색하는 과정과,
    상기 검색된 제2프로세스 제어 블록이 새로운 시스템 호출 인터페이스 테이블을 포함하도록 상기 검색된 제2프로세스 제어 블록을 업데이트하는 과정을 더 포함하는 것을 특징으로 하는 제어 방법.
  11. 제10항에 있어서,
    상기 검색된 제2프로세스 제어 블록을 업데이트하는 과정은, 이전 시스템 호출 서비스 루틴에 대응되는 새로운 시스템 호출 서비스 루틴을 포함하는 정보를 기반으로 상기 시스템 호출 인터페이스 테이블에 포함된 상기 시스템 호출 서비스 루틴을 새로운 시스템 호출 서비스 루틴으로 변경함으로써 상기 검색된 제2프로세스 제어 블록을 업데이트하는 과정인 것을 특징으로 하는 제어 방법.
  12. 제10항에 있어서,
    상기 제2소프트웨어 인터럽트는, 상기 시스템 호출 인터페이스 테이블의 변경을 요청하는 인터럽트인 것을 특징으로 하는 제어 방법.
KR1020130093753A 2013-08-07 2013-08-07 휴대 단말기에서 시스템 호출 제어 장치 및 방법 KR20150017598A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130093753A KR20150017598A (ko) 2013-08-07 2013-08-07 휴대 단말기에서 시스템 호출 제어 장치 및 방법
US14/305,775 US20150046931A1 (en) 2013-08-07 2014-06-16 Apparatus and method for controlling a system call in a portable terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130093753A KR20150017598A (ko) 2013-08-07 2013-08-07 휴대 단말기에서 시스템 호출 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150017598A true KR20150017598A (ko) 2015-02-17

Family

ID=52449773

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130093753A KR20150017598A (ko) 2013-08-07 2013-08-07 휴대 단말기에서 시스템 호출 제어 장치 및 방법

Country Status (2)

Country Link
US (1) US20150046931A1 (ko)
KR (1) KR20150017598A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897612A (zh) * 2018-07-17 2018-11-27 北京京东金融科技控股有限公司 路由跳转的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437766B2 (en) * 2002-10-03 2008-10-14 Sandia National Laboratories Method and apparatus providing deception and/or altered operation in an information system operating system
US7992156B1 (en) * 2006-04-03 2011-08-02 Trend Micro Incorporated Determining the address of a system call table to perform antivirus tasks in a computer
US10255104B2 (en) * 2012-03-29 2019-04-09 Advanced Micro Devices, Inc. System call queue between visible and invisible computing devices

Also Published As

Publication number Publication date
US20150046931A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
JP7018463B2 (ja) アプリケーションコンテナを使用するコードおよび従属データの送達の管理
CN108958844B (zh) 一种应用程序的控制方法及终端
RU2486579C2 (ru) Устройство терминала, имеющее основанную на виртуальной машине (vm) структуру уровней для выполнения разнородных приложений
CA2604445C (en) A method and system for implementing customizable container services as component wireless applications
KR102193404B1 (ko) 상호작용 개발 환경으로부터의 소프트웨어 아티팩트의 점진적 컴파일링 기법
US20130055237A1 (en) Self-adapting software system
CN103443763A (zh) 包含对重写虚拟函数的调用的支持的isa桥接
WO2020014926A1 (zh) 一种补丁包生成方法及设备
KR20080039080A (ko) 이종언어편집 라이브러리의 인터페이스 기능이 구비된단말장비, api호출방법 및 컴파일함수생성방법
CN110221877B (zh) 一种应用程序的运行方法、装置、电子设备、及存储介质
CN110489158B (zh) 对代码托管平台进行优化的方法、装置、介质和电子设备
CN102016802A (zh) 跨任务共享操作系统子进程
JP2019523480A (ja) Nandストレージデバイスのためのプリエンプティブ圧縮解除スケジューリング
US20080320490A1 (en) Method, apparatus and computer program product for providing sub-process resource management
JP2006277204A (ja) 携帯通信端末装置
KR20150017598A (ko) 휴대 단말기에서 시스템 호출 제어 장치 및 방법
CN113742716B (zh) 代码运行方法、装置、电子设备、存储介质和程序产品
CN113448585B (zh) 一种线程池的编译方法、装置、电子设备和存储介质
CN106775608B (zh) 独立系统进程的实现方法和装置
US11606457B2 (en) Technology and method for selectively providing network function to application of device
CN114253615B (zh) 一种引导程序设置方法、装置、电子设备及存储介质
KR102381185B1 (ko) 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
EP3872630A2 (en) Request processing method and apparatus, electronic device, and computer storage medium
KR101262668B1 (ko) 임베디드 시스템의 동적 바인딩 구조를 이용한 갱신 장치및 방법
Cheng Analysis and Comparison with Android and iPhone Operating System

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid