KR20150024533A - 프로세스 운영 방법 및 그 장치 - Google Patents

프로세스 운영 방법 및 그 장치 Download PDF

Info

Publication number
KR20150024533A
KR20150024533A KR20130101518A KR20130101518A KR20150024533A KR 20150024533 A KR20150024533 A KR 20150024533A KR 20130101518 A KR20130101518 A KR 20130101518A KR 20130101518 A KR20130101518 A KR 20130101518A KR 20150024533 A KR20150024533 A KR 20150024533A
Authority
KR
South Korea
Prior art keywords
application
platform
module
child process
child
Prior art date
Application number
KR20130101518A
Other languages
English (en)
Other versions
KR102125209B1 (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 KR1020130101518A priority Critical patent/KR102125209B1/ko
Priority to US14/469,815 priority patent/US9880874B2/en
Publication of KR20150024533A publication Critical patent/KR20150024533A/ko
Application granted granted Critical
Publication of KR102125209B1 publication Critical patent/KR102125209B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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

Landscapes

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

Abstract

본 발명의 일 예에 따른 프로세스 운영 방법에 있어서, 실행 어플리케이션을 결정하는 과정과; 결정된 실행 어플리케이션을 위한 어플리케이션 프로세스를 생성하는 과정과; 생성한 어플리케이션 프로세스에 2차 메모리로부터 상기 결정된 실행 어플리케이션을 로딩하는 과정과; 플랫폼 프로세스의 자식 프로세스인 플랫폼 자식 프로세스를 생성하는 과정과; 플랫폼 자식 프로세스에 어플리케이션의 서브모듈을 로딩하는 과정을 수행하며, 이외에도 다양한 실시예가 가능할 수 있다.

Description

프로세스 운영 방법 및 그 장치{PROCESS OPERATING METHOD AND APPARATUS THEREFOR}
본 발명은 전자기기 구동을 위한 소프트웨어 플랫폼에서의 프로세스 운영 방법 및 그 장치에 관한 것이다.
멀티 프로세스 처리 기술은 컴퓨팅 환경에서 중요하게 고려되는 기술이다. 최근 들어, 일반적인 PC 뿐만 아니라, 휴대 단말기의 기능 및 PDA의 기능을 결합시킨 스마트폰(Smart phone)이나 태블릿 PC(Tablet PC) 등의 휴대 전자기기가 각광받고 있는 추세이다. 이러한 스마트폰이나 태블릿 PC에는 보다 대용량의 메모리와 고성능 CPU가 탑재되며, 보다 복잡하고 고도화된 작업을 요구하는 다양한 어플리케이션들의 실행, 음성/데이터 통신 및 PC 연동 등을 지원하기 위한 소프트웨어 플랫폼(이하 플랫폼)이 탑재되고 있는 추세이다. 이와 같이, 전력량, 저장 공간 등 제한된 하드웨어 자원을 가진 휴대 전자기기 상에서 멀티 프로세스 처리 기술은 더욱 그 중요성이 커지고 있다.
전자기기 상에서 구동되는 플랫폼의 경우 한정된 자원을 효율적으로 관리하여야 하므로 플랫폼의, 프로세스 관리 모듈은 구동되고 있는 프로세스의 운영에 적극적으로 관여한다. 예를 들어, 제한된 RAM 용량의 한계를 극복하기 위해 프로세스 관리 모듈은 사용빈도가 낮은 프로세스를 시스템 메모리인 램(RAM)에서 스토리지(storage) 메모리로 옮길 수 있다. 또 다른 예를 들면, 제한된 전력량의 한계를 극복하기 위해 프로세스 관리 모듈은 멀티 프로세스 실행시에, 한 번에 하나의 프로세스를 구동하고, 사용자 또는 시스템의 요청에 의해 다수의 프로세스 간의 구동 상태 천이를 지원하여 사용자에게는 다수의 프로세스가 동시에 수행되고 있는 것처럼 보이게 할 수 있다.
이를 위해 플랫폼의 프로세스 관리 모듈은 도 1에 도시된 바와 같이, 프로세스 라이프 사이클 정책을 바탕으로 프로세스의 상태를 정의하고 프로세스의 상태를 천이하는 방법을 사용한다. 예를 들면, 프로세스 관리 모듈은 통상 프로세스의 상태를 "실행-준비-대기" 세 상태로 정의하여 관리할 수 있다. "실행(running)"은 프로세스가 플랫폼에 의해 실제적으로 구동되고 있는 상태를 의미하며, "실행" 상태의 프로세스는 RAM에 로드되고 로드된 프로세스의 구동을 위해 전자기기의 전력을 사용한다. "준비(ready)"는 언제든지"실행" 상태로 천이될 수 있는 상태를 의미하며, "준비" 상태의 프로세스는 RAM에 로드되지만, 전자기기의 전력을 사용하지는 않는다. "대기(blocked, 또는 suspended blocked)"는 "실행" 또는 "준비"상태로 천이될 수 있는 상태를 의미하며, "대기"상태의 프로세스는 RAM에 로드되지 않으며, 전자기기의 전력을 사용하지 않는다.
프로세스 관리 모듈은 프로세스 라이프 사이클 정책에 따라 전자기기의 자원을 최대한 활용하기 위해 각 프로세스의 상태를 천이(transition)한다. 예를 들어, 프로세스 간의 천이가 빈번하게 일어날 경우 적어도 하나 이상의 프로세스를"실행" 또는 "준비" 상태로 결정한다. 또 다른 예를 들어, 특정 프로세스가 대용량의 RAM 공간을 요구할 경우 현재 "준비" 상태로RAM에 로드된 프로세스를 "대기" 상태로 천이하여 RAM에서 삭제할 수 있다.
그런데, 멀티 프로세스 실행시에, 프로세스들 중에 자식 프로세스로 생성된 프로세스는 통상 부모 프로세서의 우선순위 등의 속성값을 부모 프로세스와 동일하게 지정받아 생성된다. 이 경우 자식 프로세스는 부모 프로세스에 비해 낮은 우선순위를 가지게 되어 실시간 처리 등에 불리할 수 있다. 또한 자식 프로세스는 프로세스 관리 모듈의 정책에 의해 부모 프로세스의 상태 천이에 따라 지속적으로 "실행" 상태를 유지할 수 없을 수도 있다.
경우에 따라서는, 특정 자식 프로세스에 의해 수행되는 기능도 부모 프로세스의 영향없이 계속 "실행"되거나 독립적으로 운영되어야 할 필요성이 있는데, 상기한 프로세스 운영 방법은 그러한 경우에 적절한 지원이 가능하지 않은 문제점이 있게 된다.
본 발명은 전술한 문제점을 해결하기 위하여, 보다 효율적인 프로세스 운영 방안을 제안한다.
특히, 본 발명의 일 실시예에서는 어플리케이션의 엔진모듈이 프로세스 관리 모듈에 의한 라이프 사이클 관리 정책의 영향을 받지 않는 프로세스에서 운영될 수 있도록 하는 방안을 제안한다.
본 발명의 일 예에 따르면, 프로세스 운영 방법에 있어서; 실행 어플리케이션을 결정하고; 결정된 실행 어플리케이션을 위한 어플리케이션 프로세스를 생성하고; 생성한 어플리케이션 프로세스에 2차 메모리로부터 상기 결정된 실행 어플리케이션을 로딩하고; 플랫폼 프로세스의 자식 프로세스인 플랫폼 자식 프로세스를 생성하고; 플랫폼 자식 프로세스에 어플리케이션의 서브모듈을 로딩하는 동작을 수행함을 특징으로 한다.
본 발명의 다른 예에 따르면, 프로세스 운영 장치를 구비한 전자기기에 있어서, 다수의 어플리케이션 및 관련 컨텐츠들을 저장하는 2차 메모리와; 상기 2차 메모리에 저장된 상기 어플리케이션을 내부의 1차 메모리로 로드하여 해당 어플리케이션의 실행을 제어하며, 상기 어플리케이션 실행시에, 어플리케이션 운영을 위한 플랫폼 프로세스와, 어플리케이션을 로딩하며 로딩된 어플리케이션의 실행을 담당하는 어플리케이션 프로세스와; 플랫폼 프로세스에 의해 생성되어 상기 로딩된 어플리케이션의 서브모듈을 실행하는 플랫폼 자식 프로세스를 생성하여, 상기 어플리케이션을 실행을 제어하는 제어부를 포함함을 특징으로 한다.
본 발명의 또 다른 예에 따르면, 프로세스 운영을 위한 플랫폼 구조에 있어서; 어플리케이션 운영을 위한 플랫폼 프로세스와; 어플리케이션을 로딩하며, 로딩된 어플리케이션의 실행을 담당하는 어플리케이션 프로세스와; 상기 플랫폼 프로세스에 의해 생성되어 상기 로딩된 어플리케이션의 서브모듈을 실행하는 플랫폼 자식 프로세스를 포함하며; 상기 플랫폼 프로세스는 상기 어플리케이션 프로세스의 요청에 의해 상기 플랫폼 자식 프로세스를 생성하고, 상기 어플리케이션의 상기 서브모듈을 상기 플랫폼 자식 프로세스로 로딩하는 기능을 수행하며; 상기 어플리케이션 프로세스는 상기 플랫폼 프로세스에 상기 플랫폼 자식 프로세스의 생성을 요청하고, 상기 플랫폼 자식 프로세스에 로드된 상기 어플리케이션의 상기 서브모듈과 상기 어플리케이션의 메인모듈의 통신 기능을 수행함을 특징으로 한다.
본 발명의 실시예들에 의해, 보다 효율적인 프로세스 운영이 가능하며, 특히, 어플리케이션의 엔진모듈이 프로세스 관리 모듈에 의한 라이프 사이클 관리 정책의 영향을 받지 않는 프로세스에서 운영될 수 있도록 할 수 있게 된다.
도 1은 일반적인 프로세스 상태의 천이 관계를 나타낸 일 예시도
도 2는 어플리케이션 실행시 고려될 수 있는 프로세스 상태의 천이 관계를 나타낸 일 예시도
도 3a 및 도 3b는 어플리케이션 실행시 고려될 수 있는 프로세스 상태의 천이 관계를 나타낸 다른 예시도들
도 4는 어플리케이션 실행시 고려될 수 있는 플랫폼 프로세스의 일 예시도
도 5는 본 발명의 일 실시예가 적용되는 어플리케이션의 기능상 구조도
도 6은 본 발명의 일 실시예에 따른 플랫폼의 프로세스 관리 모듈이 관리하는 프로세스들에 대한 개략적인 전체 구조도
도 7a 내지 도 7d는 본 발명의 일 실시예에 따라, 어플리케이션의 실행을 위한 프로세스 생성 상태를 나타낸 예시도들
도 8은 본 발명의 일 실시예에 따른 프로세스 운영 기능이 적용되는 전자기기의 개략적인 전체 블록 구성도
도 9는 본 발명의 일 실시예에 따른 프로세스 운영 동작을 흐름도
이하 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명에서는 구체적인 구성 소자 등과 같은 특정 사항들이 나타나고 있는데 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들이 본 발명의 범위 내에서 소정의 변형이나 혹은 변경이 이루어질 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다.
본 개시에서 '프로세스'란 컴퓨팅 환경에서 CPU의 활동(activity)에 해당하는 "실행중인 프로그램"을 칭하는 것으로서, 작업(job) 또는 태스크(task)의 실행을 모두 포괄적으로 지칭하며, 커널에 등록되어 커널의 관리하에 들어간 작업을 의미한다.
도 2는 어플리케이션 실행시 고려될 수 있는 프로세스 상태의 천이 관계를 나타낸 일 예시도로서, 도 2에서는 어플리케이션의 예로서, <음악플레이어>가 도시되고 있다. 도 2를 참조하여, 먼저, 어플리케이션 실행 측면에서 프로세스 운영 상태를 살펴보면 보면, 현재 실행 중인 어플리케이션은 "실행" 상태의 프로세스에서 구동되고 있으며, 현재 실행 중이지 않은 어플리케이션은 "준비" 또는 "대기"상태의 프로세스에서 구동되고 있다.
그런데, 어플리케이션은 기능적으로 사용자와의 상호작용을 담당하는 UI(User Interface)기능과 실제적인 동작 수행을 담당하는 엔진기능으로 나눌 수 있으며, 각각의 구현부를 UI모듈과 엔진 모듈로 정의할 수 있다. 만약 UI모듈과 엔진모듈이 하나의 프로세스에서 운영되도록 구현되었다면, 해당 어플리케이션이 수행되는 동안 사용자 상호작용 여부와 상관없이 UI모듈과 엔진모듈은 모두 RAM에 로드되어야 한다. 예를 들어, 음악 플레이어의 경우 사용자와 상호 작용하는 인터페이스를 관리하는 UI모듈과 음악을 재생하는 엔진모듈로 구성될 수 있는데, 배경 음악 재생 중일 경우 사용자와 상호작용하는 인터페이스는 필요 없음에도 불구하고, 해당 어플리케이션의 실행을 위해 UI모듈은 RAM에 로드되어야 한다. 결국, 이 경우에는 도 2에 도시된 바와 같이, 현재 수행 중인 어플리케이션의 프로세스 및 배경음악재생을 위한 프로세스가 모두 실행 상태에 있게 됨을 알 수 있다.
이러한 문제를 해결하기 위해, 어플리케이션을 구현함에 있어서 사용자와의 상호작용을 담당하는 UI기능을 구현한 UI모듈 및 실제적인 동작 수행을 담당하는 엔진기능을 구현한 엔진모듈로 분리하여 구현하고, 각각의 모듈을 별도의 프로세스에서 구동하여 자원을 효율적으로 운영하도록 구현할 수 있다.
도 3a 및 도 3b는 어플리케이션 실행시 고려될 수 있는 프로세스 상태의 천이 관계를 나타낸 다른 예시도들이다. 도3a 및 도 3b를 참조하면, 예를 들어, 음악 플레이어 어플리케이션의 경우를 살펴보면, 사용자가 음악 플레이어 어플리케이션을 실행시키고 음악 재생 및 컨트롤 UI를 사용하고 있는 경우에는, 도 3a에 도시된 바와 같이, UI모듈이 구동되고 있는 프로세스 및 엔진모듈이 구동되고 있는 프로세스를 모두 "실행" 상태에 둔다. 만약, 이러한 상태에서, 사용자가 배경 음악 플레이 모드로 전환할 경우에는, 도 3b에 도시된 바와 같이, UI모듈이 구동되고 있는 프로세스는 "준비" 또는"대기" 상태로 천이하여 자원의 사용을 최소화하고, 엔진모듈이 구동되고 있는 프로세스는 "실행" 상태를 유지하여 배경 음악이 재생될 수 있도록 한다.
그런데, 도 4에 도시된 바와 같이, 일반적으로 엔진모듈이 수행되는 프로세스는 일반적인 Linux의 "fork()" 함수 또는 Windows의 "CreateProcess()"에 등에 의해, UI모듈이 수행되는 프로세스에 의해 생성되는 자식 프로세스로 생성되도록 구현하는 경우를 고려해 볼 수도 있다. 그러나, 이 경우에는, 엔진모듈이 수행되는 프로세스는 프로세스 우선순위 등의 속성값을 부모 프로세스와 동일하게 지정받는다. 따라서, 이 경우 엔진모듈이 수행되는 프로세스는 플랫폼에 의해 생성되는 프로세스에 비해 낮은 우선순위를 가지게 되어, 이로 인해 실시간 처리 등에 불리하며, 또한 플랫폼의 프로세스 관리 모듈의 정책에 의해 지속적으로 "실행" 상태를 유지할 수 없을 수도 있다.
이에, 본 발명의 다양한 실시예를 통해 어플리케이션의 엔진모듈이 프로세스 관리 모듈에 의한 라이프 사이클 관리 정책의 영향을 받지 않는 프로세스에서 운영될 수 있도록 하는 방안을 제안한다.
도 5는 본 발명의 일 실시예가 적용되는 어플리케이션의 기능상 구조도이다. 도 5를 참조하면, 먼저, 본 발명의 일 실시예가 적용되는 어플리케이션(21)은 UI모듈(210) 및 엔진모듈(212)을 포함하여 구성될 수 있다. UI모듈(210)은 사용자와의 상호작용 기능을 담당한다. 엔진모듈(212)은 실제적인 동작을 수행하는 기능을 담당한다.
한편, 도 5에서는 어플리케이션(21)이 UI모듈(210)과 엔진모듈(212)을 포함하여 구성되는 것으로 설명하였으나, 이는 일 예에 따른 구조이며, 어플리케이션(21)이 반드시 UI모듈(210)과 엔진모듈(212)로 구성되지 않을 수도 있다. 즉, 어플리케이션은 기능상 구분되는 적어도 하나 이상의 모듈로 구성될 수 있으며, 본 발명의 다양한 실시예들을 통해 다양한 기능모듈로 구성되는 어떠한 어플리케이션에서도 본 발명이 적용될 수 있다. 다만, 휴대 전자기기에서 실행되는 어플리케이션(21)은 UI모듈(210)과 엔진모듈(21)로 구성하는 것이 보다 일반적일 수 있으며, 따라서, 이하의 설명에서는, 어플리케이션(21)이 메인모듈로서, UI모듈(210)과 서브모듈로서, 엔진모듈(212)로 구현된 경우를 예로 들어 설명하기로 한다.
도 6은 본 발명의 일 실시예에 따른 플랫폼의 프로세스 관리 모듈이 관리하는 프로세스들에 대한 개략적인 전체 구조도이다. 도 6을 참조하면, 본 발명의 일 실시예에 따른 플랫폼의 프로세스 관리 모듈은 플랫폼 프로세스(30), 플랫폼 자식 프로세스(33), 어플리케이션 프로세스(31)를 생성 및 관리하도록 구성된다. 플랫폼 프로세스(30)는 어플리케이션 운영을 위한 프로세스를 관리하며, 본 발명의 일 실시예에 따라 어플리케이션 프로세스(31)의 요청에 의해 플랫폼 자식 프로세스(33)를 생성하고, 어플리케이션의 기능모듈 중 미리 설정된 서브모듈, 예를 들어, 엔진모듈을 플랫폼 자식 프로세스로 로딩하는 기능을 수행한다.
플랫폼 자식 프로세스(33)는 본 발명의 일 실시예에 따라, 플랫폼 프로세스(30)에 의해 생성되어 어플리케이션의 서브모듈, 예를 들어, 엔진모듈을 실행하게 되며 플랫폼 프로세스(30)와 동일한 속성을 가진다.
어플리케이션 프로세스(31)는 어플리케이션 실행에 필요한 프로세스로, 본 발명의 일 실시예에 따라 플랫폼 프로세스(30)에 플랫폼 자식 프로세스(33)의 생성을 요청하고, 플랫폼 자식 프로세스(33)에 로드된 어플리케이션의 서브모듈, 예를 들어, 엔진모듈과 어플리케이션의 다른 기능모듈, 예를 들어, 메인모듈인 UI모듈의 통신 기능에 관여한다.
도 7a 내지 도 7d는 본 발명의 일 실시에에 따라, 어플리케이션의 실행을 위한 프로세스 생성 상태를 나타낸 예시도들이다. 먼저, 도 7a를 참조하면, 어플리케이션이 실행되기 전에는 RAM(122) 영역에 플랫폼 프로세스(30)가 존재한다.
이러한 상태에서, 사용자의 요청이나 다른 이벤트 발생 등에 의해 해당하는 어플리케이션 실행이 결정되면, 도 7b에 도시된 바와 같이, RAM(122) 영역에 어플리케이션 실행을 위한 어플리케이션 프로세스(31)가 생성되고, 이 어플리케이션 프로세스(31)에 스토리지 메모리(11)로부터 어플리케이션(21)이 로드된다. 로드된 어플리케이션(21)은 UI모듈(210) 및 엔진모듈(212)을 포함한다.
이후, 어플리케이션(21)을 로드한 어플리케이션 프로세스(31)는 도 7c에 도시된 바와 같이, 플랫폼 프로세스(30)에 엔진모듈(21)의 정보를 포함하여 플랫폼 자식 프로세스의 생성을 요청한다.
이러한 어플리케이션 프로세스(31)의 요청을 받은 플랫폼 프로세스(30)는 도7d에 도시된 바와 같이, 플랫폼 자식 프로세스(33)를 생성하고, 어플리케이션 프로세스(31)의 요청에 포함된 정보를 참고하여, 엔진모듈(212)을 플랫폼 자식 프로세스(122)로 로딩한다.
상기 도 7a 내지 도 7d에 도시된 바와 같은 과정을 통해, 본 발명의 일 실시예에 따른 어플리케이션(21)의 엔진모듈(212)은 어플리케이션 프로세스(21)에 대한 프로세스 관리 모듈에 의한 라이프 사이클 관리 정책의 영향을 받지 않는 프로세스, 즉 플랫폼 자식 프로세스(32)에서 운영될 수 있다. 이에 따라, 어플리케이션(21)의 엔진모듈(212)은 플랫폼 프로세스(30)와 동일한 우선순위를 가진 프로세스(플랫폼 자식 프로세스)에서 운영되어, 실시간 처리 등에서 이점을 가질 수 있다.
이와 같이, 본 발명의 알 실시예에 따르면, 플랫폼 프로세스(30)로부터 플랫폼 자식 프로세스(32)가 생성되고, 어플리케이션(21)의 일부가 플랫폼 자식 프로세스(32)에서 실행되도록 분리됨으로써, 실시간 멀티 프로세스 처리를 위한 단위 프로세스들이 상대적으로 분리 이전보다 적어진 메모리 풋 프린트를 가지게 된다. 이를 통해 문맥 교환(context switching)에 이점이 생기고, 이는 시스템 전체에 부하가 줄어드는 효과를 가져와서, 실시간 처리를 위한 프로세스 전환시 플랫폼의 부하가 줄어들어 실시간 처리에 이점을 가질 수 있다.
도 8은 본 발명의 일 실시예에 따른 프로세스 운영 기능이 적용되는 전자기기의 개략적인 전체 블록 구성도이다. 도 8을 참조하면, 본 발명의 일 실시예가 적용되는 전자기기는 예를 들어, 휴대 전자기기에 관한 구성을 가지고 있으며, 제어부(10), 스토리지 메모리(11), 터치스크린(13), 오디오처리부(14) 및 무선통신부(16)를 포함하여 구성될 수 있다. 도 8에 도시된 휴대 전자기기는, 일 예로서, 스마트폰이나, 핸드폰 등에 해당하는 구조를 개시하고 있으나, 이외에도 본 발명이 적용될 수 있는 휴대 전자기기는 PMP(Portable Multimedia Player), PDA나, MP3 플레이어, 태블릿 PC, 개인용 네비게이션 기기, 휴대용 게임기 등과 같이, 다양할 수 있으며, 이 경우에, 상기 도 8에 도시된 무선통신부(16) 등은 구비되지 않을 수도 있다. 이외에도 본 발명이 적용될 수 있는 전자기기는 노트북이나 일반적인 PC도 가능할 수 있다.
도 8을 참조하면, 터치스크린(13)은 휴대 전자기기에서 출력되는 출력 정보에 대한 표시 기능을 수행하는 표시패널(131)과, 사용자에 의한 각종 입력 기능을 수행하는 입력감지패널(134)로 구성될 수 있다. 이때, 표시패널(132)은 통상 LCD(Liquid Crystal Display) 또는 OLED(Organic Light Emitting Diodes로서 PMOLED 또는 AMOLED) 스크린으로 구성될 수 있으며, 입력감지패널(134)과 구조적으로 통합적으로 구현될 수 있다.
표시패널(132)은 해당 휴대 전자기기의 각종 동작 상태, 메뉴 상태, 어플리케이션 실행 및 서비스 등에 따른 다양한 화면을 표시할 수 있다. 입력감지 패널(134)은 손가락, 전자펜(미도시) 등의 각종 물체를 이용한 사용자의 싱글 또는 멀티 터치 입력, 드래그 입력, 필기 입력, 드로잉 입력 등의 각종 입력을 감지할 수 있는 적어도 하나 이상의 패널로 구현 될 수 있다.
무선통신부(16)는 해당 휴대 전자기기가 이동 통신 기능 등과 같은 무선 통신 기능을 지원하는 경우 포함될 수 있는 구성부이다. 구체적으로, 이동통신 기능을 위한 무선 신호 송수신 및 처리 동작을 수행하기 위하여, 안테나와, RF부와 모뎀(MODEM)을 포함하여 구성될 수 있다.
오디오처리부(14)는 휴대 단말기의 오디오 신호 출력을 위한 스피커(SPK) 및 오디오 신호 수집을 위한 마이크(MIC)를 구비한다. 또한, 오디오처리부(14)는 스피커와 마이크를 통해 입출력되는 오디오 신호를 처리하는 음성 코덱(codec), 등을 구비하여, 이동통신 기능에 따른 전화 통화 수행시에는, 사용자의 음성을 입력받거나 사용자에게 가청음을 출력하며, 또한 각종 동작에 대응되는 처리음이나, 각종 디지털 오디오 컨텐츠, 동영상 컨텐츠 등에 대응되는 사운드를 출력한다.
스토리지 메모리인 2차 메모리(secondary memory)(11)는 휴대 전자기기에서 수행될 수 있는 다양한 프로그램과 데이터를 저장하는 구성부이다. 예를 들어, 스토리지 메모리(11)는 다양한 어플리케이션 및 다양한 멀티미디어 관련 컨텐츠들을 저장하기 위한 대용량 기억장치로 구성된다. 이러한 스토리지 메모리(11)는 플래시 메모리나, 휴대 전자기기에 장착되는 메모리 카드(예, SD카드, 메모리 스틱 등) 등으로 구성될 수 있다. 경우에 따라서는, 하드 디스크 드라이브(HDD)나 솔리드스테이트 드라이브(SSD)를 포함하여 구성될 수도 있다.
제어부(10)는 상기 각 기능부들을 총괄적으로 제어하며, 각 기능부들간의 데이터 및 신호 흐름들 제어하여 휴대 전자기기의 전반적인 동작을 제어한다. 특히 제어부(10)는 어플리케이션 수행에 따른 UI 및 실행 화면을 터치스크린(13) 상에 디스플레이되도록 제어하며, 터치스크린(13)을 통해 입력되는 사용자 입력에 따라 휴대 전자기기의 동작을 전환 및 제어할 수 있다.
이러한 제어부(10)는 프로세서로서, CPU(Central Processor Unit: 100)(또는 AP: Application Processor)을 주요 구성으로 가질 수 있으며, 해당 전자기기의 기본적인 시스템 운영을 위한 동작 프로그램이 탑재되고, 각종 동작 수행을 위한 데이터를 임시적으로 저장하기 위한 시스템 메모리인 1차 메모리(Primary memory)(120)를 구비한다. 1차 메모리(120)는 전자기기의 특정 동작 수행을 위해 2차 메모리(11)로부터 제공되는 어플리케이션 및 동작 수행 중에 발생된 데이터를 임시적으로 저장하는 램(RAM: 122)을 대표적으로 포함하여 구성된다. 1차 메모리(120)에는 또한 기능적으로 프로세스 관리 모듈(126)이 구비되는데, 프로세스 관리 모듈(126)은 프로세스 관리를 위한 다양한 기능을 수행하도록 구성되며, 스풀러(spooler), 작업 스케줄러(job scheduler), 프로세스 스케줄러(process scheduler), 트래픽 제어기(traffic controller)의 기능을 수행한다. 상기 CPU(100)와 1차 메모리(120)는 내부 버스를 통해 상호 연결된다. 상기 1차 메모리(120)에 본 발명의 일 실시예에 따른 소프트웨어 플랫폼이 구현되며, 상기 프로세스 관리 모듈(126)은 이러한 소프트웨어 플랫폼의 구현에 따른 기능을 수행하게 된다.
한편, 상기의 예에서는, 1차 메모리(120)가 램(122)으로 구현되는 것으로 설명하였으나, 1차 메모리(120)는 램(122)을 비롯하여, 어플리케이션 수행을 위한 프로세서(CPU/AP)의 레지스터(register)나 캐시 메모리(cache memory)를 모두 포함한 구성으로 간주할 수 있으며, 2차 메모리(11)는 이러한 1차 메모리(120) 외의 메모리를 의미하는 것으로 간주할 수 있다.상기와 같은 구성부들을 구비하여 본 발명의 일 실시예에 따른 휴대 전자기기가 구현될 수 있으며, 이외에도, 휴대 전자기기에는 충전용 배터리 등을 구비한 전원부가 구비될 수 있으며, GPS부, 진동 모터, 카메라 모듈 등과 같은 현재 이동통신 단말기에 적용되는 기능부들이 기본적으로 구비되어 있거나, 더 부가되게 구성될 수 있음은 물론이다.
도 9는 본 발명의 일 일시예에 따른 프로세스 운영 동작을 흐름도로서, 상기 도 8에 도시된 바와 같은 프로세스 관리 모듈(126)의 제어하에 수행될 수 있다. 도 9를 참조하면, 901단계에서는, 사용자의 요청이나 다른 이벤트 발생 등에 따른 해당하는 실행 어플리케이션을 결정한다.
이후, 903단계에서는, 1차 메모리, 예를 들어, RAM 영역에 상기 결정된 실행 어플리케이션을 위한 어플리케이션 프로세스를 생성하고, 이후 905단계에서는, 상기 생성한 어플리케이션 프로세스에 스토리지 메모리로부터 상기 결정된 실행 어플리케이션을 로딩한다. 이때, 로드된 어플리케이션은 UI모듈 및 엔진모듈을 포함한다.
이후, 907단계에서는, 플랫폼 프로세스에서 어플리케이션의 엔진모듈을 확인하게 되는데, 이는 플랫폼 프로세스에서 상기 어플리케이션 프로세스로부터 상기 엔진모듈의 정보를 포함하여 플랫폼 자식 프로세스의 생성을 요청을 받음으로써 수행된다.
이후, 911단계에서는, 플랫폼 프로세스에서 플랫폼 자식 프로세스를 생성하고, 이후 913단계에서는 생성한 자식 프로세서에 엔진모듈을 로딩한다.
상기와 같이 본 발명의 일 실시예에 따른 프로세스 운영 방안이 이루어질 수 있으며, 한편 상기한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나 여러 가지 변형이 본 발명의 범위를 벗어나지 않고 실시될 수 있다. 따라서 본 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 청구범위와 청구범위의 균등한 것에 의하여 정하여져야 할 것이다.
또한, 본 발명의 실시 예들은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 전자기기 내에 포함될 수 있는 메모리는 본 발명의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. 따라서, 본 발명은 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.

Claims (11)

  1. 프로세스 운영 방법에 있어서,
    실행 어플리케이션을 결정하는 과정과;
    상기 결정된 실행 어플리케이션을 위한 어플리케이션 프로세스를 생성하는 과정과;
    상기 생성한 어플리케이션 프로세스에 2차 메모리로부터 상기 결정된 실행 어플리케이션을 1차 메모리로 로딩하는 과정과;
    플랫폼 프로세스의 자식 프로세스인 플랫폼 자식 프로세스를 생성하는 과정과;
    상기 플랫폼 자식 프로세스에 상기 어플리케이션의 미리 설정된 서브모듈을 로딩하는 과정을 포함함을 특징으로 하는 프로세스 운영 방법.
  2. 제1항에 있어서, 플랫폼 자식 프로세스를 생성하는 과정은,
    상기 어플리케이션 프로세스로부터 상기 서브모듈의 정보를 포함하여 플랫폼 자식 프로세스의 생성을 요청받음으로써 수행됨을 특징으로 하는 프로세스 운영 방법.
  3. 제1항에 있어서, 상기 플랫폼 자식 프로세스는 상기 플랫폼 프로세스와 동일한 속성값을 가짐을 특징으로 하는 프로세스 운영 방법.
  4. 제1항에 있어서, 상기 어플리케이션에서 상기 서브모듈은 해당 어플리케이션의 실제적인 동작을 수행하는 기능을 담당하는 엔진모듈이며, 상기 어플리케이션은 상기 엔진모듈과 더불어, 사용자와의 상호작용을 위한 UI(User Interface)기능을 담당하는 UI모듈을 포함하여 구성함을 특징으로 하는 프로세스 운영 방법.
  5. 프로세스 운영 장치를 구비한 전자기기에 있어서,
    다수의 어플리케이션 및 관련 컨텐츠들을 저장하는 2차 메모리와;
    상기 2차 메모리에 저장된 상기 어플리케이션을 내부의 1차 메모리로 로드하여 해당 어플리케이션의 실행을 제어하며, 상기 어플리케이션 실행시에, 실행할 어플리케이션을 로딩하며 로딩된 어플리케이션의 실행을 담당하는 어플리케이션 프로세스와, 플랫폼 프로세스에 의해 생성되어 상기 로딩된 어플리케이션의 미리 설정된 서브모듈을 실행하는 플랫폼 자식 프로세스를 생성하여, 상기 어플리케이션을 실행을 제어하는 제어부를 포함함을 특징으로 하는 전자기기.
  6. 제5항에 있어서,
    상기 플랫폼 프로세스는 상기 어플리케이션 프로세스의 요청에 의해 상기 플랫폼 자식 프로세스를 생성하고, 상기 어플리케이션의 상기 서브모듈을 상기 플랫폼 자식 프로세스로 로딩하는 기능을 수행하며;
    상기 어플리케이션 프로세스는 상기 플랫폼 프로세스에 상기 플랫폼 자식 프로세스의 생성을 요청하고, 상기 플랫폼 자식 프로세스에 로드된 상기 어플리케이션의 상기 서브모듈과 상기 어플리케이션의 메인모듈의 통신 기능을 수행함을 특징으로 하는 전자기기.
  7. 제6항에 있어서, 상기 플랫폼 자식 프로세스는 상기 플랫폼 프로세스와 동일한 속성값을 가짐을 특징으로 하는 전자기기.
  8. 제6항에 있어서, 상기 어플리케이션에서 상기 서브모듈은 해당 어플리케이션의 실제적인 동작을 수행하는 기능을 담당하는 엔진모듈이며, 상기 메인모듈은 사용자와의 상호작용을 위한 UI(User Interface)기능을 담당하는 UI모듈임을 특징으로 하는 전자기기.
  9. 프로세스 운영을 위한 플랫폼 구조에 있어서,
    어플리케이션 운영을 위한 플랫폼 프로세스와;
    어플리케이션을 로딩하며, 로딩된 어플리케이션의 실행을 담당하는 어플리케이션 프로세스와;
    상기 플랫폼 프로세스에 의해 생성되어 상기 로딩된 어플리케이션의 미리 설정된 서브모듈을 실행하는 플랫폼 자식 프로세스를 포함하며;
    상기 플랫폼 프로세스는 상기 어플리케이션 프로세스의 요청에 의해 상기 플랫폼 자식 프로세스를 생성하고, 상기 어플리케이션의 상기 서브모듈을 상기 플랫폼 자식 프로세스로 로딩하는 기능을 수행하며;
    상기 어플리케이션 프로세스는 상기 플랫폼 프로세스에 상기 플랫폼 자식 프로세스의 생성을 요청하고, 상기 플랫폼 자식 프로세스에 로드된 상기 어플리케이션의 상기 서브모듈과 상기 어플리케이션의 메인모듈의 통신 기능을 수행함을 특징으로 하는 플랫폼 구조.
  10. 제9항에 있어서, 상기 플랫폼 자식 프로세스는 상기 플랫폼 프로세스와 동일한 속성값을 가짐을 특징으로 하는 플랫폼 구조.
  11. 제9항에 있어서, 상기 어플리케이션에서 상기 서브모듈은 해당 어플리케이션의 실제적인 동작을 수행하는 기능을 담당하는 엔진모듈이며, 상기 메인모듈은 사용자와의 상호작용을 위한 UI(User Interface)기능을 담당하는 UI모듈임을 특징으로 하는 플랫폼 구조.
KR1020130101518A 2013-08-27 2013-08-27 프로세스 운영 방법 및 그 장치 KR102125209B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130101518A KR102125209B1 (ko) 2013-08-27 2013-08-27 프로세스 운영 방법 및 그 장치
US14/469,815 US9880874B2 (en) 2013-08-27 2014-08-27 Process operating method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130101518A KR102125209B1 (ko) 2013-08-27 2013-08-27 프로세스 운영 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20150024533A true KR20150024533A (ko) 2015-03-09
KR102125209B1 KR102125209B1 (ko) 2020-07-07

Family

ID=52585176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130101518A KR102125209B1 (ko) 2013-08-27 2013-08-27 프로세스 운영 방법 및 그 장치

Country Status (2)

Country Link
US (1) US9880874B2 (ko)
KR (1) KR102125209B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145372A (zh) * 2017-05-09 2017-09-08 北京京东尚科信息技术有限公司 信息生成方法和装置
US11036568B1 (en) 2019-12-12 2021-06-15 Salesforce.Com, Inc. Enabling execution of program instructions in the background

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090125470A (ko) * 2008-06-02 2009-12-07 에스케이 텔레콤주식회사 모바일 플랫폼에서 어플리케이션 간의 연동 방법과 장치 및그 기록매체
US20100205617A1 (en) * 2009-02-06 2010-08-12 International Business Machines Corporation Method and system for autonomic application program spawning in a computing environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574239B1 (en) * 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
KR100924647B1 (ko) 2008-08-07 2009-11-02 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
US8904241B2 (en) * 2011-07-27 2014-12-02 Oracle International Corporation Proactive and adaptive cloud monitoring
US9411637B2 (en) * 2012-06-08 2016-08-09 Apple Inc. Adaptive process importance
US9286081B2 (en) * 2012-06-12 2016-03-15 Apple Inc. Input device event processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090125470A (ko) * 2008-06-02 2009-12-07 에스케이 텔레콤주식회사 모바일 플랫폼에서 어플리케이션 간의 연동 방법과 장치 및그 기록매체
US20100205617A1 (en) * 2009-02-06 2010-08-12 International Business Machines Corporation Method and system for autonomic application program spawning in a computing environment

Also Published As

Publication number Publication date
US20150067705A1 (en) 2015-03-05
US9880874B2 (en) 2018-01-30
KR102125209B1 (ko) 2020-07-07

Similar Documents

Publication Publication Date Title
KR102148948B1 (ko) 전자 장치의 멀티 태스킹 방법 및 그 전자 장치
EP3855312A1 (en) Information processing method, device, storage medium, electronic device and system
KR102194795B1 (ko) 전력 제어를 위한 전자 장치 및 방법
US10186244B2 (en) Sound effect processing method and device, plug-in unit manager and sound effect plug-in unit
US9477296B2 (en) Apparatus and method for controlling power of electronic device having multi-core
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
CN112257135B (zh) 一种基于多线程的模型加载方法、装置、存储介质及终端
CN109408136B (zh) 信息处理方法、装置、存储介质及电子设备
US20120079418A1 (en) Interface for application management in an electronic device
KR102222752B1 (ko) 프로세서의 동적 전압 주파수 스케일링 방법
WO2017129022A1 (zh) 一种终端数据库的并行执行方法和装置
US8730174B2 (en) Device and method for receiving input
US9740266B2 (en) Apparatus and method for controlling multi-core of electronic device
KR20130004502A (ko) 프로세서에서 스레드들을 실행하는 시스템 및 방법
US20210279095A1 (en) Interrupt Management for a Hypervisor
KR20180048993A (ko) 메모리 상태 천이 타이머들을 동적으로 조정하기 위한 시스템들 및 방법들
US20140304720A1 (en) Method for starting process of application and computer system
US20210119460A1 (en) Resource statistics collection method and apparatus and terminal
KR20150024533A (ko) 프로세스 운영 방법 및 그 장치
US10133514B2 (en) Flushless transactional layer
US11606457B2 (en) Technology and method for selectively providing network function to application of device
US20150074530A1 (en) Method for controlling content in mobile electronic device
US20220292627A1 (en) Method and electronic device for boosting graphics performance
WO2022166553A1 (zh) 一种实现批量系统调用的方法及装置
US10365700B2 (en) System and method of managing context-aware resource hotplug

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