KR20140144572A - 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치 - Google Patents

프로세스를 스케줄링하기 위한 방법 및 그 전자 장치 Download PDF

Info

Publication number
KR20140144572A
KR20140144572A KR1020130066701A KR20130066701A KR20140144572A KR 20140144572 A KR20140144572 A KR 20140144572A KR 1020130066701 A KR1020130066701 A KR 1020130066701A KR 20130066701 A KR20130066701 A KR 20130066701A KR 20140144572 A KR20140144572 A KR 20140144572A
Authority
KR
South Korea
Prior art keywords
application
electronic device
scheduling
execution
attribute value
Prior art date
Application number
KR1020130066701A
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 KR1020130066701A priority Critical patent/KR20140144572A/ko
Publication of KR20140144572A publication Critical patent/KR20140144572A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

본 발명은 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치에 관한 것으로서, 전자 장치의 프로세스 스케줄링 방법은, 전자 장치가 휴면 모드(sleep mode)로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하는 과정과, 실행중인 애플리케이션의 속성 값에 따라 상태 제어 대상이 되는 적어도 하나의 애플리케이션을 결정하는 과정과, 상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하는 과정과, 상기 결정된 애플리케이션을 스케줄링 제외 대상으로 결정하는 과정을 포함하여, 소모 전력을 감소시킬 수 있는 효과가 있다.

Description

프로세스를 스케줄링하기 위한 방법 및 그 전자 장치{METHOD FOR SCHEDULING PROCESS AND AN ELECTRONIC DEVICE THEREOF}
본 발명은 전자 장치에 관한 것으로서, 특히 전자 장치에서 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치에 관한 것이다.
최근 스마트폰 및 태블릿 PC(Personal Computer) 등과 같은 전자 장치의 급격한 발달에 따라 무선 음성 통화 및 정보 교환이 가능한 전자 장치는 생활 필수품이 되었다. 전자 장치는 보급 초기에 단순히 무선 통화가 가능한 휴대 장치로 인식되었으나, 그 기술이 발달하고 무선 인터넷이 도입됨에 따라 단순히 무선 통화가 가능한 휴대 장치에서 벗어나 일정관리, 게임, 리모컨, 이미지 촬영 등의 기능을 수행하는 멀티미디어 장치로 발전하여 사용자의 욕구를 충족시키고 있다.
특히, 최근에는 전자 장치에서 다수의 작업을 동시에 실행 하는 것(이하 멀티태스킹(Multi-tasking)이라 칭함)이 가능하게 되었다. 예를 들어, 전자 장치는 웹 브라우저 애플리케이션으로 인터넷을 실행함과 동시에 음악 애플리케이션으로 음악을 재생할 수 있다. 이때, 전자 장치는 웹 브라우저 애플리케이션 및 음악 애플리케이션 각각을 서로 다른 윈도우(Window)에서 실행할 수 있다. 또한, 전자 장치는 웹 브라우저 애플리케이션을 하나의 윈도우에 실행하고, 음악 애플리케이션을 백그라운드에서 실행할 수 있다.
하지만, 전자 장치의 백그라운드에서 실행중인 애플리케이션은 사용자가 인지하지 못한 상황에서 실행중일 수 있다. 예를 들어, 사용자가 정상적인 종료 절차에 의해 애플리케이션을 종료하지 않은 경우, 사용자가 인지하지 못한 애플리케이션이 백그라운드에서 계속해서 실행 중일 수 있다. 이와 같은 경우, 전자 장치는 백그라운드에서 실행 중인 애플리케이션에 의해 전력을 낭비하게 된다. 또한, 유휴 모드(Sleep mode)에서 실행중인 애플리케이션에 의해 메모리가 낭비될 수도 있다.
이에 따라, 백그라운드에서 실행중인 애플리케이션에 의해 낭비되는 전력을 감소시키기 위한 방법이 제공될 필요가 있다.
따라서, 본 발명의 실시 예는 전자 장치에서 프로세스를 스케줄링하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 다른 실시 예는 전자 장치에서 유휴 모드에서 실행중인 애플리케이션의 프로세스를 스케줄링에서 제외하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 실시 예는 전자 장치에서 유휴 모드 진입 시, 애플리케이션의 실행 정보를 저장하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 실시 예는 전자 장치에서 유휴 모드에서 활성 모드로 전환 시, 애플리케이션의 프로세스를 스케줄링하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 실시 예는 전자 장치에서 백그라운드에서 실행중인 애플리케이션의 프로세스를 스케줄링에서 제외하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 실시 예는 전자 장치에서 애플리케이션이 백그라운드 모드로 진입 시, 애플리케이션의 실행 정보를 저장하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 실시 예는 전자 장치에서 백그라운드 모드에서 포어그라운드 모드로 전환 시, 애플리케이션의 프로세스를 스케줄링하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 실시 예에 따르면, 전자 장치에서 프로세스를 스케줄링하기 위한 방법은 전자 장치가 휴면 모드(sleep mode)로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하는 과정과, 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정하는 과정과, 상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하는 과정과, 상기 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 과정을 포함한다.
본 발명의 실시 예에 따르면, 전자 장치에서 프로세스를 스케줄링하기 위한 장치는 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며, 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 것으로서, 상기 프로그램은 전자 장치가 휴면 모드(sleep mode)로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하고, 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정한 후, 상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하고, 상기 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 명령어를 포함한다.
본 발명에서는 전자 장치에서 애플리케이션별 속성 값을 설정하여, 전자 장치가 휴면 모드로 진입하거나 혹은 애플리케이션이 백그라운드에서 실행 시, 애플리케이션의 실행 정보를 저장하고, 해당 애플리케이션을 프로세스 스케줄링 대상에서 제외시킴으로써, 전력이 불필요하게 낭비되는 것을 방지할 수 있다.
도 1a는 본 발명의 실시 예에 따라 프로세스를 스케줄링하기 위한 전자 장치의 블록 구성을 도시하는 도면,
도 1b는 본 발명의 실시 예에 따라 프로세스를 스케줄링하기 위한 프로세서의 블록 구성을 도시하는 도면,
도 2a는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션의 속성 값에 따라 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하는 도면,
도 2b는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션의 속성 값에 따라 애플리케이션의 프로세스를 스케줄링하는 수단을 도시하는 도면,
도 3a는 본 발명의 실시 예에 따른 전자 장치에서 휴면 모드 진입 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하는 도면,
도 3b는 본 발명의 실시 예에 따른 전자 장치에서 활성 모드 진입 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하는 도면,
도 4는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션별 속성 값을 도시하는 도면,
도 5는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션의 속성 값에 따른 기능을 도시하는 도면,
도 6은 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션의 속성 값을 결정하는 도면,
도 7a는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션이 백그라운드에서 실행 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하는 도면 및
도 7b는 본 발명의 실시 예에 따른 전자 장치에서 애플리케이션이 포어그라운드에서 실행 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하는 도면.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하 설명에서 전자 장치는 프로세스 스케줄링이 가능한 이동통신 단말기, 스마트폰(Smart Phone), 태블릿 PC(Tablet Personal Computer), 디지털 카메라, MP3, 네비게이션, 랩탑(Laptop), 넷북(Netbook), 컴퓨터(Computer), 텔레비전(Television), 냉장고 및 에어컨 등을 포함한다.
도 1a는 본 발명의 실시 예에 따라 프로세스를 스케줄링하기 위한 전자 장치의 블록 구성을 도시하고 있다.
도 1a를 참조하면, 전자 장치(100)는 메모리(110), 프로세서(120) 및 터치 스크린(Touch Screen)(130)를 포함한다. 메모리(110) 및 프로세서(120) 각각은 다수 개의 메모리(110) 및 다수 개의 프로세서(120)로 구성될 수 있다.
메모리(110)는 데이터 저장부(111), 운영 체제 프로그램(112), 애플리케이션 프로그램(113), 그래픽 사용자 인터페이스 프로그램(114), 애플리케이션 관리 프로그램(115) 및 스케줄링 프로그램(116) 등을 포함한다. 또한, 소프트웨어 구성요소인 프로그램은 명령어들의 집합으로 표현할 수 있으므로, 프로그램은 명령어 세트(instruction set)라고 표현하기도 한다. 프로그램은 또한 모듈로 표현하기도 한다.
메모리(110)는 본 발명의 실시 예를 수행하는 명령어들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
데이터 저장부(111)는 메모리(110)에 저장된 프로그램에 대응하는 기능을 수행하는 중에 발생되는 데이터를 저장한다.
본 발명에 따른 데이터 저장부(111)는 애플리케이션별 속성 값을 저장할 수 있다. 이때, 각 애플리케이션에 대해 선택 혹은 설정 가능한 속성 값들은 설계 단계에서 다수 개의 값들로 미리 설정되거나 혹은 사용자 제어에 의해 다수 개의 값들로 설정될 수 있다. 예를 들어, 제 1 애플리케이션의 선택 혹은 설정 가능한 속성 값들은 제 0 속성 값, 제 1 속성 값 및 제 2 속성 값으로 구성될 수 있고, 제 2 애플리케이션에 대해 선택 혹은 설정 가능한 속성 값들은 제 0 속성 값 및 제 1 속성 값으로 구성될 수 있다. 이때, 각 애플리케이션에 대한 설정 값은 선택 혹은 설정 가능한 속성 값들 중에서 설계자 혹은 사용자에 의해 어느 하나로 설정될 수 있다.
데이터 저장부(111)는 애플리케이션별 속성 값의 개수 및 애플리케이션 속성 값들 각각에 대응하는 이벤트에 대한 정보를 저장할 수 있다. 예를 들어, 데이터 저장부(111)는 제 0 속성 값에 대응하는 이벤트가 "계속 실행"이고, 제 1 속성 값에 대응하는 이벤트가 "프로세스 스케줄링에서 제외"이고, 제 2 속성 값에 대응하는 이벤트가 "배터리 잔량에 따라 종료"임을 나타내는 정보를 저장할 수 있다. 여기서, 애플리케이션 속성 값에 대응하는 이벤트 정보는, 본 명세서의 실시 예에서 제안하는 특정 상황에서 해당 속성 값을 갖는 애플리케이션에 대한 처리 방식을 나타내는 정보이다. 여기서, 특정 상황은 전자 장치가 유휴 모드(Sleep mode)로 진입하는 상황, 애플리케이션이 백그라운드 실행 모드에서 실행되는 상황, 혹은 배터리의 잔량이 미리 설정된 임계값 이하가 되는 상황 중 적어도 하나의 상황을 포함할 수 있다. 예를 들어, 데이터 저장부(111)는 애플리케이션별 속성 값이 세 개(제 0 속성 값, 제 1 속성 값 및 제 2 속성 값)임을 나타내는 정보를 저장할 수 있으며, 제 0 속성 값으로 설정된 애플리케이션은 유휴 모드 및 백그라운드 실행 모드 진입 시, 계속하여 실행되며, 제 1 속성 값으로 설정된 애플리케이션은 유휴 모드(Sleep mode) 및 백그라운드 실행 모드 진입 시, 프로세스 스케줄링에서 제외되며, 제 2 속성 값으로 설정된 애플리케이션은 배터리 잔량이 10% 보다 작거나 같은 경우, 종료됨을 나타내는 정보를 저장할 수 있다.
더하여, 데이터 저장부(111)는 유휴 모드 진입 시, 속성 값이 제 1 속성 값인 애플리케이션의 실행 정보를 저장할 수 있다.
또한, 데이터 저장부(111)는 애플리케이션이 백그라운드에서 실행되는 경우, 해당 애플리케이션의 속성 값이 제 1 속성 값임이 확인되면, 해당 애플리케이션의 실행 정보를 저장할 수 있다. 이때, 애플리케이션의 실행 정보는 특정 시점에서의 애플리케이션 실행과 관련된 정보를 의미한다. 예를 들어, 애플리케이션 실행 정보는 특정 시점에서의 애플리케이션의 깊이(depth) 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보등을 포함할 수 있다. 보다 상세한 예로, 전자 장치에서 자동차 게임 애플리케이션이 실행되는 시, 실행 정보 저장 이벤트가 발생되는 제 1 시점에 자동차가 출발선에서 대기 중인 상황을 가정하면, 제 1 시점의 실행 정보는 추후에 자동차가 출발선에 대기 중인 상황을 동일하게 재현하기 위한 깊이 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보 등을 포함할 수 있다. 여기서, 특정 시점 즉, 실행 정보 저장 이벤트가 발생되는 시점은 전자 장치(100)가 유휴 모드로 진입하는 시점, 혹은 애플리케이션을 백그라운드 실행 모드에서 실행시키는 시점, 혹은 전자 장치(100)의 배터리 잔량이 임계값 보다 큰 값에서 작은 값으로 변경되는 시점일 수 있다.
운영 체제 프로그램(112)(예를 들어, WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, 또는 VxWorks와 같은 내장 운영 체제)은 일반적인 시스템 작동(system operation)을 제어하는 여러 가지의 소프트웨어 구성요소를 포함한다. 예를 들어, 일반적인 시스템 작동의 제어는, 메모리 관리 및 제어, 저장 하드웨어(장치) 제어 및 관리, 전력 제어 및 관리 등을 의미한다. 운영 체제 프로그램(112)은 여러 가지의 하드웨어(장치)와 소프트웨어 구성요소(프로그램) 사이의 통신을 원활하게 하는 기능을 수행한다.
애플리케이션 프로그램(113)은 브라우저(browser), 이메일(email), 메시지(message), 워드 프로세싱(word processing), 어드레스 북(address book), 위젯(widget), 디지털 저작권 관리(DRM, Digital Right Management), 음성 인식(voice recognition), 음성 복제, 위치 결정 기능(position determining function), 위치기반 서비스(location based service) 및 전화 애플리케이션을 포함한다.
그래픽 사용자 인터페이스 프로그램(114)은 사용자와 전자 장치(100) 사이의 그래픽을 이용한 사용자 인터페이스를 제공하는 적어도 하나의 소프트웨어 구성요소를 포함한다. 즉, 그래픽 사용자 인터페이스 프로그램(114)은 터치 스크린(130)에 사용자 인터페이스 정보를 표시하기 위한 적어도 하나의 소프트웨어 구성요소를 포함한다. 본 발명에 따라 그래픽 사용자 인터페이스 프로그램(114)은 전자 장치(100)에서 애플리케이션별 속성 값을 설정할 수 있는 UI(User Interface) 화면을 디스플레이하기 위한 명령어를 포함한다. 이때, 속성 값은 적어도 하나 이상으로 구성될 수 있으며, 그래픽 사용자 인터페이스 프로그램(114)은 적어도 하나 이상의 속성 값을 리스트 형식 혹은 옵션 형식으로 디스플레이하기 위한 명령어를 포함할 수 있다. 그래픽 사용자 인터페이스 프로그램(114)은 속성 값 리스트를 디스플레이하기 위한 명령어를 포함한다.
또한, 그래픽 사용자 인터페이스 프로그램(114)은 애플리케이션의 저장된 실행 정보를 바탕으로 애플리케이션의 실행 화면을 복원하기 위한 명령어를 포함한다. 예를 들어, 그래픽 사용자 인터페이스 프로그램(114)은 도서 애플리케이션의 저장된 실행 정보가 제 1 도서 데이터의 4 페이지를 디스플레이하는데 필요한 정보인 경우, 도서 애플리케이션의 실행 정보를 바탕으로 제 1 도서 데이터의 4 페이지를 디스플레이하기 위한 명령어를 포함할 수 있다.
애플리케이션 관리 프로그램(115)은 애플리케이션별 속성 값을 설정할 수 있다. 이때, 애플리케이션의 속성 값은 적어도 하나 이상의 속성 값으로 구성될 수 있으며, 애플리케이션 관리 프로그램(115)은 특정 속성 값 설정 시, 각 애플리케이션을 설정된 속성 값에 대응하는 이벤트에 따라 제어할 수 있다. 예를 들어, 애플리케이션 관리 프로그램(115)은 전자 장치(100)가 휴면 모드로 진입하거나 혹은 제 1 애플리케이션이 백그라운드 실행 모드로 진입할 경우, 제 0 속성 값으로 설정된 제 1 애플리케이션을 계속하여 실행할 수 있다. 다른 예로, 애플리케이션 관리 프로그램(115)은 전자 장치(100)가 휴면 모드로 진입하거나 혹은 제 1 애플리케이션이 백그라운드 실행 모드로 진입할 경우, 제 1 속성 값으로 설정된 제 1 애플리케이션의 실행을 차단할 수 있다. 또 다른 예로 애플리케이션 관리 프로그램(115)은 전자 장치(100)가 휴면 모드로 진입한 상태에서 전자 장치(100)의 배터리 잔량이 10% 보다 작거나 같은 경우, 제 2 속성 값으로 설정된 제 1 애플리케이션의 실행을 종료할 수 있다.
자세히 말해, 애플리케이션 관리 프로그램(115)은 전자 장치(100)가 유휴 모드로 진입하는지 여부를 감지하고, 유휴 모드로 진입 시, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값이 설정된 애플리케이션이 존재하는지 여부를 확인한 다. 여기서, 애플리케이션의 상태 정보는 해당 애플리케이션의 프로세스가 스케줄링 대상에서 제외되는지 혹은 스케줄링 대상에 포함되는지 여부를 나타내는 정보를 의미한다. 따라서, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값은, 대응하는 이벤트가 "프로세스 스케줄링에서 제외"인 속성 값을 의미할 수 있다. 만약, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값이 설정된 애플리케이션이 존재하는 경우, 애플리케이션 관리 프로그램(115)은 해당 애플리케이션의 실행 정보를 저장하고, 휴면 모드에서 해당 애플리케이션 실행을 차단하기 위해 스케줄링 프로그램(116)을 제어할 수 있다. 여기서, 해당 애플리케이션의 실행 차단은 휴면 모드 동안에 해당 애플리케이션의 프로세스를 스케줄링 대상에서 제외시켜, 해당 애플리케이션의 실행을 중지시키는 것을 의미한다.
더하여, 애플리케이션 관리 프로그램(115)은 애플리케이션이 백그라운드 실행 모드로 진입하는지 여부를 감지하고, 백그라운드 실행 모드로 진입 시, 해당 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다. 만약, 해당 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 애플리케이션 관리 프로그램(115)은 해당 애플리케이션의 실행 정보를 저장하고, 백그라운드 실행 모드에서 해당 애플리케이션 실행을 차단하기 위해 스케줄링 프로그램(116)을 제어할 수 있다.
애플리케이션 관리 프로그램(115)은 전자 장치(100)가 유휴 모드에서 활성 모드로 전환되는지 여부를 감지하고, 활성 모드 진입 시, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션이 존재하는지 여부를 확인한다. 만약, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션이 존재하는 경우, 애플리케이션 관리 프로그램(115)은 저장된 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션을 복원할 수 있다. 여기서, 해당 애플리케이션의 복원은 해당 애플리케이션의 프로세스를 스케줄링 대상에 다시 포함시켜, 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션이 휴면 모드 진입 이전에 실행했던 기능을 동일하게 실행하도록 하는 것을 의미한다.
또한, 애플리케이션 관리 프로그램(115)은 백그라운드 실행 모드에서 실행중인 애플리케이션이 포어그라운드(Foreground) 실행 모드로 전환되는지 여부를 감지하고, 포어 그라운드 실행 모드 진입 시, 해당 애플리케이션의 설정 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다. 만약, 해당 애플리케이션의 설정 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는 경우, 애플리케이션 관리 프로그램(115)은 저장된 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션을 복원할 수 있다.
스케줄링 프로그램(116)은 애플리케이션의 설정 값에 따라 프로세스 스케줄링을 제어할 수 있다. 예를 들어, 스케줄링 프로그램(116)은 전자 장치(100)가 유휴 모드로 진입되는 경우, 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 다른 예를 들어, 스케줄링 프로그램(116)은 전자 장치(100)가 활성 모드로 진입되는 경우, 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션의 상태 정보를 ready로 변경함으로써, 해당 애플리케이션을 프로세서 스케줄링 대상으로 결정할 수 있다. 이때, 상태 정보가 block으로 설정된 애플리케이션은 프로세서(120)를 사용할 수 없고, ready로 설정된 애플리케이션은 스케줄링 순서에 따라 프로세서를 사용할 수 있다. 또 다른 예를 들어, 스케줄링 프로그램(116)은 백그라운드 실행 모드로 전환되는 애플리케이션의 속성 값이 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 해당 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 또 다른 예를 들어, 스케줄링 프로그램(116)은 포어그라운드 실행 모드로 전환되는 애플리케이션의 속성 값이 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 해당 애플리케이션의 상태 정보를 ready로 변경함으로써, 해당 애플리케이션을 프로세서 스케줄링 대상으로 결정할 수 있다.
프로세서(120)는 도시되지는 않았지만 적어도 하나의 프로세서 및 주변 인터페이스로 구성될 수 있다. 또한, 프로세서(120)는 메모리(110)에 저장되어 있는 특정한 프로그램(명령어 세트)을 실행하여 그 프로그램에 대응하는 특정한 다수의 기능을 수행한다.
터치 스크린(130)은 터치 감지 디스플레이(touch-sensitive display)로서, 전자 장치(100)와 사용자 사이에 터치 입력/출력을 위한 인터페이스를 제공한다. 터치 스크린(130)은 터치 센서(미도시)를 통해 터치(혹은 접촉)를 감지하고, 감지되는 터치 입력을 전자 장치(100)로 전달하고, 전자 장치(100)로부터의 출력을 사용자에게 시각적으로 제공하는 매개체이다. 즉, 터치 스크린(130)은 터치 입력에 반응하여, 사용자에게 텍스트, 그래픽 및 비디오를 바탕으로 하는 시각적 출력을 제공한다.
터치 스크린(130)은 사용자의 터치 입력을 감지하는 터치 감지면을 포함하여, 햅틱(haptic) 접촉, 택타일(tactile) 접촉 또는 이들의 조합 방식에 의한 사용자 터치를 입력을 감지한다. 예를 들면, 터치 스크린(130)의 터치 감지 지점은 터치 감지면에 대한 접촉에 사용된 손가락의 폭(digit)에 대응한다. 또한, 터치 스크린(130)은 터치 감지면을 통해 스타일러스(stylus) 펜(pen) 등과 같은 외부기기에 의한 접촉을 감지한다. 검출된 접촉은, 터치스크린 상에 표시되는 사용자 인터페이스 대상(예를 들어, 소프트 키)에 대응하는 상호 작용(interaction)으로 변환한다.
터치 스크린(130)은 LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode) 또는 FLED(Flexible LED)등과 같은 다양한 디스플레이 기술을 사용할 수 있으며. 본 발명의 터치 스크린(130)은 이러한 디스플레이 기술을 이용하는 터치 스크린으로 한정되는 것은 아니다. 또한, 터치 스크린(130)은 용량형(capacitive) 검출, 저항형(resistive) 검출, 적외선형 (infrared) 검출 또는 표면 음파 검출 기술과 같은 여러 가지 터치 검출(혹은 감지(sensing)) 기술을 이용하여 터치 감지면에 대한 접촉의 시작, 접촉의 이동 또는 접촉의 중단이나 종료를 감지할 수 있다. 본 발명에 따른 터치 스크린(130)은 애플리케이션의 적어도 하나의 속성 값을 포함하는 UI를 디스플레이할 수 있다. 예를 들어, 터치 스크린(130)은 제 1 애플리케이션의 속성 값인 제 0 속성 값, 제 1 속성 값 및 제 2 속성 값을 포함하는 UI를 디스플레이할 수 있다.
또한, 터치 스크린(130)은 애플리케이션의 속성 값 선택을 위한 터치를 감지할 수 있다. 예를 들어, 터치 스크린(130)은 제 0 속성 값 내지 제 2 속성 값 중에서 제 1 속성 값을 선택하기 위한 터치를 감지할 수 있다.
상술한 설명에서 전자 장치(100)는 하나 이상의 속성 값을 포함하며, 하나의 속성 값은 애플리케이션의 상태 정보를 제어할 수 있는 속성 값이어야 한다. 더하여, 전자 장치(100)는 애플리케이션의 상태 정보를 제어할 수 있는 속성 값을 제외한 하나 이상의 다른 속성 값을 선택적으로 포함할 수 있다.
도 1b는 본 발명의 실시 예에 따라 프로세스를 스케줄링하기 위한 프로세서의 블록 구성을 도시하고 있다.
도 1b를 참조하면, 프로세스는 애플리케이션 관리 프로세서(122) 및 스케줄링 프로세서(124)를 포함한다.
애플리케이션 관리 프로세서(122)는 애플리케이션별 속성 값을 설정할 수 있다. 이때, 애플리케이션의 속성 값은 적어도 하나 이상의 속성 값으로 구성될 수 있으며, 애플리케이션 관리 프로세서(122)는 특정 속성 값 설정 시, 각 애플리케이션을 설정된 속성 값에 대응하는 이벤트에 따라 제어할 수 있다. 예를 들어, 애플리케이션 관리 프로세서(122)는 전자 장치(100)가 휴면 모드로 진입하거나 혹은 제 1 애플리케이션이 백그라운드 실행 모드로 진입할 경우, 제 0 속성 값으로 설정된 제 1 애플리케이션을 계속하여 실행할 수 있다. 다른 예로, 애플리케이션 관리 프로세서(122)는 전자 장치(100)가 휴면 모드로 진입하거나 혹은 제 1 애플리케이션이 백그라운드 실행 모드로 진입할 경우, 제 1 속성 값으로 설정된 제 1 애플리케이션의 실행을 차단할 수 있다. 또 다른 예로 애플리케이션 관리 프로세서(122)는 전자 장치(100)가 휴면 모드로 진입한 상태에서 전자 장치(100)의 배터리 잔량이 10% 보다 작거나 같은 경우, 제 2 속성 값으로 설정된 제 1 애플리케이션의 실행을 종료할 수 있다.
자세히 말해, 애플리케이션 관리 프로세서(122)는 전자 장치(100)가 유휴 모드로 진입하는지 여부를 감지하고, 유휴 모드로 진입 시, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값이 설정된 애플리케이션이 존재하는지 여부를 확인한 다. 여기서, 애플리케이션의 상태 정보는 해당 애플리케이션의 프로세스가 스케줄링 대상에서 제외되는지 혹은 스케줄링 대상에 포함되는지 여부를 나타내는 정보를 의미한다. 따라서, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값은, 대응하는 이벤트가 "프로세스 스케줄링에서 제외"인 속성 값을 의미할 수 있다. 만약, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값이 설정된 애플리케이션이 존재하는 경우, 애플리케이션 관리 프로세서(122)는 해당 애플리케이션의 실행 정보를 저장하고, 휴면 모드에서 해당 애플리케이션 실행을 차단하기 위해 스케줄링 프로세서(124)를 제어할 수 있다. 여기서, 해당 애플리케이션의 실행 차단은 휴면 모드 동안에 해당 애플리케이션의 프로세스를 스케줄링 대상에서 제외시켜, 해당 애플리케이션의 실행을 중지시키는 것을 의미한다.
더하여, 애플리케이션 관리 프로세서(122)는 애플리케이션이 백그라운드 실행 모드로 진입하는지 여부를 감지하고, 백그라운드 실행 모드로 진입 시, 해당 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다. 만약, 해당 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 애플리케이션 관리 프로세서(122)는 해당 애플리케이션의 실행 정보를 저장하고, 백그라운드 실행 모드에서 해당 애플리케이션 실행을 차단하기 위해 스케줄링 프로세서(124)를 제어할 수 있다.
애플리케이션 관리 프로세서(122)는 전자 장치(100)가 유휴 모드에서 활성 모드로 전환되는지 여부를 감지하고, 활성 모드 진입 시, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션이 존재하는지 여부를 확인한다. 만약, 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션이 존재하는 경우, 애플리케이션 관리 프로세서(122)는 저장된 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션을 복원할 수 있다. 여기서, 해당 애플리케이션의 복원은 해당 애플리케이션의 프로세스를 스케줄링 대상에 다시 포함시켜, 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션이 휴면 모드 진입 이전에 실행했던 기능을 동일하게 실행하도록 하는 것을 의미한다.
또한, 애플리케이션 관리 프로세서(122)는 백그라운드 실행 모드에서 실행중인 애플리케이션이 포어그라운드(Foreground) 실행 모드로 전환되는지 여부를 감지하고, 포어 그라운드 실행 모드 진입 시, 해당 애플리케이션의 설정 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다. 만약, 해당 애플리케이션의 설정 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는 경우, 애플리케이션 관리 프로세서(122)는 저장된 애플리케이션 실행 정보를 바탕으로 해당 애플리케이션을 복원할 수 있다.
스케줄링 프로세서(124)는 애플리케이션의 설정 값에 따라 프로세스 스케줄링을 제어할 수 있다. 예를 들어, 스케줄링 프로세서(124)는 전자 장치(100)가 유휴 모드로 진입되는 경우, 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 다른 예를 들어, 스케줄링 프로세서(124)는 전자 장치(100)가 활성 모드로 진입되는 경우, 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션의 상태 정보를 ready로 변경함으로써, 해당 애플리케이션을 프로세서 스케줄링 대상으로 결정할 수 있다. 이때, 상태 정보가 block으로 설정된 애플리케이션은 프로세서(120)를 사용할 수 없고, ready로 설정된 애플리케이션은 스케줄링 순서에 따라 프로세서를 사용할 수 있다. 또 다른 예를 들어, 스케줄링 프로세서(124)는 백그라운드 실행 모드로 전환되는 애플리케이션의 속성 값이 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 해당 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 또 다른 예를 들어, 스케줄링 프로세서(124)는 포어그라운드 실행 모드로 전환되는 애플리케이션의 속성 값이 상태 정보를 제어할 수 있는 속성 값으로 설정된 경우, 해당 애플리케이션의 상태 정보를 ready로 변경함으로써, 해당 애플리케이션을 프로세서 스케줄링 대상으로 결정할 수 있다.
도 2a는 본 발명의 실시 예에 따른 전자 장치(100)에서 애플리케이션의 속성 값에 따라 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하고 있다.
도 2a를 참조하면, 전자 장치(100)는 201단계에서 전자 장치(100)가 휴면 모드로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지한다. 예를 들어, 전자 장치(100)는 제 1 애플리케이션이 실행되는 상태에서, 전원 버튼을 짧게 눌러 전자 장치(100)의 모드가 휴면 모드로 진입됨을 감지할 수 있다. 다른 예를 들어, 전자 장치(100)는 제 2 애플리케이션이 포어그라운드 실행 모드에서 실행되는 상태에서, 사용자 제어에 의해 제 2 애플리케이션이 백그라운드 실행 모드로 진입됨을 감지할 수 있다.
이후, 전자 장치(100)는 203단계로 진행하여 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정한다. 자세히 말해, 전자 장치(100)는 애플리케이션의 속성 값을 확인하여, 확인된 속성 값을 바탕으로 프로세스를 스케줄링 대상에서 제외시킬 애플리케이션을 결정할 수 있다.
이후, 전자 장치(100)는 205단계에서 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장한다. 이때, 애플리케이션의 실행 정보는 특정 시점에서의 애플리케이션 실행과 관련된 정보를 의미한다. 예를 들어, 애플리케이션 실행 정보는 특정 시점에서의 애플리케이션의 깊이(depth) 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보등을 포함할 수 있다.
이후, 전자 장치(100)는 207단계에서 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시킨다. 이에 따라, 전자 장치(100)는 스케줄링에서 제외된 애플리케이션에게 프로세서를 할당하지 않는다.
도 2b는 본 발명의 실시 예에 따른 전자 장치(100)에서 애플리케이션의 속성 값에 따라 애플리케이션의 프로세스를 스케줄링하는 수단을 도시하고 있다.
도 2b를 참조하면, 전자 장치(100)는 전자 장치(100)가 휴면 모드로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하는 수단(211)을 포함한다. 이때, 전자 장치(100)는 휴면 모드 및 활성 모드 전환 수단 혹은 적어도 두 개 이상의 애플리케이션을 동시에 실행하는 멀티 태스킹이 가능한 수단을 포함할 수 있다.
더하여, 전자 장치(100)는 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정하는 수단(213)을 포함한다. 이때, 전자 장치(100)는 애플리케이션별로 적어도 하나의 속성 값을 설정하는 수단 및 애플리케이션 속성 값에 대응하는 기능을 저장하는 수단을 포함할 수 있다.
더하여, 전자 장치(100)는 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하는 수단(215)을 포함한다. 이때, 전자 장치(100)는 애플리케이션 실행 정보가 어떤 애플리케이션의 실행 정보인지를 나타내기 위해 애플리케이션과 애플리케이션의 실행 정보를 매핑하여 저장하는 수단을 포함할 수 있다.
더하여, 전자 장치(100)는 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 수단 수단(217)을 포함한다.
도 3a는 본 발명의 실시 예에 따른 전자 장치(100)에서 휴면 모드 진입 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하고 있다.
도 3a를 참조하면, 전자 장치(100)는 301단계에서 전자 장치(100)가 휴면 모드로 진입하는지 여부를 확인한다. 이때, 휴면 모드는 전자 장치(100)의 전원은 종료하지 않은 상태에서, 디스플레이 장치의 전원만 종료한 상태를 의미한다.
만약, 전자 장치(100)가 휴면 모드로 진입한 경우, 전자 장치(100)는 303단계로 진행하여 애플리케이션 속성 값이 제 1 속성 값인 애플리케이션을 확인한다. 이때, 전자 장치(100)는 사용자 제어에 의해 애플리케이션별 속성 값을 설정할 수 있으며, 속성 값 설정을 위한 메뉴 선택 시, 속성 값을 선택하기 위한 UI 화면을 디스플레이할 수 있다. 예를 들어, 전자 장치(100)는 애플리케이션별 속성 값 설정을 위한 메뉴 선택 시, 도 4에 도시된 바와 같이, 속성 값 설정 UI 화면을 디스플레이할 수 있다. 이때, 각각의 속성 값은 미리 설정된 이벤트와 매핑되어 서로 다른 이벤트를 수행하도록 설정되어 있을 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 제 0 속성 값으로 설정된 애플리케이션은 유휴 모드(Sleep mode) 및 백그라운드 실행 모드 진입 시, 계속 수행되고, 제 1 속성 값으로 설정된 애플리케이션은 유휴 모드(Sleep mode) 및 백그라운드 실행 모드 진입 시, 프로세스 스케줄링에서 제외되며, 제 2 속성 값으로 설정된 애플리케이션은 유뮤 모드 및 백그라운드 실행 모드 진입 시, 종료됨을 나타내는 정보를 저장할 수 있다. 이때, 제 0 속성 값 및 제 2 속성 값에 매핑된 이벤트는 사용자 제어에 의해 변경될 수 있다. 또한, 전자 장치(100)는 설정된 애플리케이션별 속성 값을 변경하고자하는 메뉴가 선택된 경우, 도 6에 도시된 바와 같이, 속성 값 설정 UI 화면을 디스플레이하여, 사용자 제어에 따라 속성 값을 변경할 수 있다.
이후, 전자 장치(100)는 305단계로 진행하여 확인된 애플리케이션의 실행 정보를 저장할 수 있다. 이때, 애플리케이션의 실행 정보는 특정 시점에서의 애플리케이션 실행과 관련된 정보를 의미한다. 예를 들어, 애플리케이션 실행 정보는 특정 시점에서의 애플리케이션의 깊이(depth) 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보등을 포함할 수 있다.
이후, 전자 장치(100)는 307단계로 진행하여 확인된 애플리케이션의 상태 정보를 block으로 설정할 수 있다. 자세히 말해, 전자 장치(100)는 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
301단계에서 전자 장치(100)가 휴면 모드로 진입하지 않는 경우, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
도 3b는 본 발명의 실시 예에 따른 전자 장치(100)에서 활성 모드 진입 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하고 있다.
도 3b를 참조하면, 전자 장치(100)는 311단계에서 전자 장치(100)가 활성 모드로 진입하는지 여부를 확인한다. 예를 들어, 전자 장치(100)는 휴면 모드에서 전원 버튼을 짧게 눌러 전자 장치(100)가 활성 모드로 진입함을 감지할 수 있다.
만약, 전자 장치(100)가 활성 모드로 진입하는 경우, 전자 장치(100)는 313단계로 진행하여 애플리케이션 속성 값이 제 1 속성 값인 애플리케이션을 확인한다. 자세히 말해, 전자 장치(100)는 전자 장치(100)의 모드가 활성 모드로 진입하는 경우, 전자 장치(100)에 저장된 애플리케이션들 중에서, 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정된 애플리케이션을 확인한다.
이후, 전자 장치(100)는 315단계로 진행하여 확인된 애플리케이션의 실행 정보를 애플리케이션의 미리 저장된 실행 정보로 변경한다. 자세히 말해, 전자 장치(100)는 전자 장치(100)가 활성 모드로 진입하는 경우, 전자 장치(100)가 휴면 모드 진입 시, 저장한 애플리케이션의 실행 정보를 바탕으로, 애플리케이션의 실행 정보를 복원할 수 있다. 이에 따라, 해당 애플리케이션은 휴면 모드로 진입하기 직전에 출력하던 데이터를 출력할 수 있다. 예를 들어, 제 1 도서 데이터의 5 페이지를 디스플레이하던 중에 전자 장치(100)가 휴면 모드로 진입한 경우, 전자 장치(100)는 전자 장치(100)가 휴면 모드에서 활성 모드로 전환 시, 도서 애플리케이션의 실행 정보를 바탕으로 제 1 도서 데이터의 5 페이지를 디스플레이할 수 있다.
이후, 전자 장치(100)는 317단계로 진행하여 확인된 애플리케이션의 상태 정보를 ready로 설정할 수 있다. 자세히 말해, 전자 장치(100)는 애플리케이션의 상태 정보를 ready으로 변경함으로써, 해당 애플리케이션을 프로세스 스케줄링 대상으로 결정할 수 있다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
반면, 301단계에서 전자 장치(100)가 활성 모드로 진입하지 않는 경우, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
도 7a는 본 발명의 실시 예에 따른 전자 장치(100)에서 애플리케이션이 백그라운드에서 실행 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하고 있다.
도 7a를 참조하면, 전자 장치(100)는 701단계에서 애플리케이션이 백그라운드에서 실행되는지 여부를 감지한다. 다시 말해, 전자 장치(100)는 포어그라운드 실행 모드에서 실행되던 애플리케이션이 백그라운드 실행 모드로 전환되어 실행되는지 혹은 애플리케이션이 백그라운드 실행 모드에서 바로 실행되는지 여부를 감지할 수 있다.
만약, 애플리케이션이 백그라운드에서 실행되는 경우, 703단계로 진행하여 애플리케이션 속성 값이 제 1 속성 값으로 설정되어 있는지 여부를 확인한다. 다시 말해, 전자 장치(100)는 백그라운드 실행 모드에서 실행되는 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다.
만약, 애플리케이션의 속성 값이 제 1 속성 값으로 설정된 경우, 전자 장치(100)는 705단계로 진행하여 확인된 애플리케이션의 실행 정보를 저장한다. 예를 들어, 전자 장치(100)는 현재 실행중인 제 1 애플리케이션이 사용자 제어에 의해 백그라운드 실행 모드로 진입하는 경우, 제 1 애플리케이션의 속성 값이 제 1 속성 값임을 확인한 후, 제 1 애플리케이션의 애플리케이션의 실행 정보를 저장할 수 있다.
이후, 전자 장치(100)는 707단계로 진행하여 확인된 애플리케이션의 상태 정보를 block으로 설정할 수 있다. 자세히 말해, 전자 장치(100)는 애플리케이션의 상태 정보를 block으로 변경함으로써, 프로세스 스케줄링 대상에서 해당 애플리케이션을 제외 시킬 수 있다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다. 다른 예들 를어, 전자 장치는면, 703단계에서 애플리케이션 속성 값이 제 1 속성 값으로 설정되지 않은 경우, 전자 장치(100)는 709단계로 진행하여 애플리케이션을 백그라운드에서 실행한다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
반면, 701단계에서 애플리케이션이 백그=라운드에서 실행되지 않는 경우, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
도 7b는 본 발명의 실시 예에 따른 전자 장치(100)에서 애플리케이션이 포어그라운드에서 실행 시, 애플리케이션의 프로세스를 스케줄링하는 절차를 도시하고 있다.
도 7b를 참조하면, 전자 장치(100)는 711단계에서 애플리케이션이 포어그라운드에서 실행되는지 여부를 감지한다. 다시 말해, 전자 장치(100)는 백그라운드 실행 모드에서 실행되던 애플리케이션이 포어그라운드 실행 모드로 전환되어 실행되는지 여부를 감지할 수 있다.
만약, 애플리케이션이 포어그라운드에서 실행되는 경우, 713단계로 진행하여 애플리케이션 속성 값이 제 1 속성 값으로 설정되어 있는지 여부를 확인한다. 다시 말해, 전자 장치(100)는 백그라운드 실행 모드에서 포어그라운드 실행 모드로 전환되어 실행되는 애플리케이션의 속성 값이 애플리케이션의 상태 정보를 제어할 수 있는 속성 값으로 설정되어 있는지 여부를 확인한다.
만약, 애플리케이션의 속성 값이 제 1 속성 값으로 설정된 경우, 전자 장치(100)는 715단계로 진행하여 확인된 애플리케이션의 실행 정보를 애플리케이션의 미리 저장된 실행 정보로 변경한다. 자세히 말해, 전자 장치(100)는 애플리케이션이 포어그라운드 실행 모드로 전환되어 실행되는 경우, 애플리케이션이 백그라운드 실행 모드 진입 시, 저장한 애플리케이션의 실행 정보를 바탕으로, 애플리케이션의 실행 정보를 복원할 수 있다. 이에 따라, 해당 애플리케이션은 백그라운드 실행 모드로 진입하기 직전에 출력하던 데이터를 출력할 수 있다. 예를 들어, 제 1 음악 데이터의 2분 25초를 재생하던 중에 음악 애플리케이션이 백그라운드 실행 모드로 진입한 경우, 전자 장치(100)는 음악 애플리케이션이 포어그라운드 실행 모드로 전환 시, 음악 애플리케이션의 실행 정보를 바탕으로 제 1 음악 데이터의 2분 25초를 재생할 수 있다.
이후, 전자 장치(100)는 717단계로 진행하여 확인된 애플리케이션의 상태 정보를 ready로 설정할 수 있다. 자세히 말해, 전자 장치(100)는 애플리케이션의 상태 정보를 ready으로 변경함으로써, 해당 애플리케이션을 프로세스 스케줄링 대상으로 결정할 수 있다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
반면, 713단계에서 애플리케이션의 속성 값이 제 1 속성 값으로 설정되지 않은 경우, 전자 장치(100)는 719단계로 진행하여 속성 값에 따라 이벤트를 수행한다. 이후, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
반면, 711단계에서 애플리케이션이 포어그라운드에서 실행되지 않는 경우, 전자 장치(100)는 본 발명의 실시 예에 따른 절차를 종료한다.
본 명세서에 설명된 발명의 실시 예 및 모든 기능 동작들은 본 명세서에서 개시된 구조 및 이들의 균등 구조들을 포함하는 컴퓨터 소프트웨어, 펌웨어(firmware), 또는 하드웨어로, 또는 이들의 하나 이상의 조합으로 실시될 수 있다. 또한, 본 명세서에서 설명된 발 명의 실시 예들은 하나 이상의 컴퓨터 프로그램 제품, 즉 데이터 프로세싱 장치에 의해 실행되거나 이 장치의 동작을 제어하기 위한 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터프로그램 명령어들의 하나 이상의 모듈로 실시될 수 있다.
컴퓨터 판독가능 매체는 머신 판독가능 저장 매체, 머신 판독가능 저장 기판, 메모리 장치, 머신 판독가능 전파 스트림에 영향을 주는 물질의 구성, 또는 이들의 하나 이상의 조합이 될 수 있다. 데이터 프로세싱 장치라는 용어는 예로 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하는 데이터를 프로세싱하기 위한 모든 기기, 장치 및 머신을 포함한다. 기기는 하드웨어에 부가하여 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템 또는 하나 이상의 이들의 조합을 구성하는 코드를 포함할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야한다.

Claims (21)

  1. 전자 장치가 휴면 모드(sleep mode)로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하는 과정과,
    실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정하는 과정과,
    상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하는 과정과,
    상기 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 과정을 포함하는
    전자 장치의 제어 방법.
  2. 제 1 항에 있어서,
    실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정하는 과정은,
    상기 애플리케이션의 설정된 속성 값을 확인하는 과정과,
    상기 설정된 속성 값에 매핑된 이벤트를 확인하는 과정과,
    상기 매핑된 이벤트가 상기 애플리케이션의 상태를 제어하는 이벤트인 경우, 상기 애플리케이션을 속성 값에 따라 스케줄링 제외 대상이 되는 애플리케이션으로 결정하는 과정을 포함하는
    전자 장치의 제어 방법.
  3. 제 1 항에 있어서,
    실행중인 애플리케이션의 속성 값에 따라 계속 실행될 적어도 하나의 애플리케이션을 결정하는 과정과,
    상기 계속 실행될 것으로 결정된 애플리케이션의 실행을 유지하는 과정을 더 포함하는
    전자 장치의 제어 방법.
  4. 제 1 항에 있어서,
    상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하는 과정은,
    상기 애플리케이션과 상기 실행 정보를 매핑하여 저장하는 과정을 포함하는
    전자 장치의 제어 방법.
  5. 제 1 항에 있어서,
    상기 애플리케이션의 실행 정보는 특정 시점에서의 애플리케이션의 깊이(depth) 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보 중 적어도 하나를 포함하는
    전자 장치의 제어 방법.
  6. 제 1 항에 있어서,
    상기 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 과정은,
    상기 결정된 애플리케이션의 상태 정보를 block으로 설정하는 과정을 포함하는
    전자 장치의 제어 방법.
  7. 제 1 항에 있어서,
    상기 전자 장치가 상기 유휴 모드에서 활성 모드로 전환되거나 혹은 적어도 하나의 애플리케이션이 상기 백그라운드 실행 모드에서 포어그라운드 실행 모드로 전환되어 실행되는지 여부를 감지하는 과정을 더 포함하는
    전자 장치의 제어 방법.
  8. 제 7 항에 있어서,
    상기 전자 장치가 상기 유휴 모드에서 활성 모드로 전환되는 경우, 실행이 중지된 애플리케이션의 속성 값에 따라 스케줄링 대상이 될 적어도 하나의 애플리케이션을 결정하는 과정과,
    상기 스케줄링 대상이 될 적어도 하나의 애플리케이션을 미리 저장된 애플리케이션 실행 정보를 바탕으로 복원하는 과정과,
    상기 복원된 애플리케이션을 스케줄링하여 실행하는 과정을 더 포함하는
    전자 장치의 제어 방법.
  9. 제 7 항에 있어서,
    상기 애플리케이션이 상기 백그라운드 실행 모드에서 포어그라운드 실행 모드로 전환되어 실행되는 경우, 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제어 대상이 되는 적어도 하나의 애플리케이션을 결정하는 과정과,
    상기 스케줄링 대상이될 적어도 하나의 애플리케이션을 미리 저장된 애플리케이션 실행 정보를 바탕으로 복원하는 과정과,
    상기 복원된 애플리케이션을 스케줄링하여 실행하는 과정을 더 포함하는
    전자 장치의 제어 방법.
  10. 제 8 항 및 제 9 항 중 어느 하나의 항에 있어서,
    상기 복원된 애플리케이션을 스케줄링하여 실행하는 과정은,
    상기 복원된 애플리케이션의 상태 정보를 ready로 설정하는 과정을 포함하는
    전자 장치의 제어 방법.
  11. 하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되어 있으며, 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 것으로서,
    상기 프로그램은 전자 장치가 휴면 모드(sleep mode)로 진입되거나 혹은 적어도 하나의 애플리케이션이 백그라운드 실행 모드로 진입되는지 여부를 감지하고, 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제외 대상이 되는 적어도 하나의 애플리케이션을 결정한 후, 상기 결정된 적어도 하나의 애플리케이션의 실행 정보를 저장하고, 상기 결정된 애플리케이션을 스케줄링에서 제외시켜 실행을 중지시키는 명령어를 포함하는
    전자 장치.
  12. 제 11 항에 있어서,
    상기 프로그램은 상기 애플리케이션의 설정된 속성 값을 확인하고, 상기 설정된 속성 값에 매핑된 이벤트를 확인한 후, 상기 매핑된 이벤트가 상기 애플리케이션의 상태를 제어하는 이벤트인 경우, 상기 애플리케이션을 속성 값에 따라 스케줄링 제외 대상이 되는 애플리케이션으로 결정하는 명령어를 포함하는
    전자 장치.
  13. 제 11 항에 있어서,
    상기 프로그램은 실행중인 애플리케이션의 속성 값에 따라 계속 실행될 적어도 하나의 애플리케이션을 결정한 후, 상기 계속 실행될 것으로 결정된 애플리케이션의 실행을 유지하는 명령어를 더 포함하는
    전자 장치.
  14. 제 11 항에 있어서,
    상기 프로그램은 상기 애플리케이션과 상기 실행 정보를 매핑하여 저장하는 명령어를 포함하는
    전자 장치.
  15. 제 11 항에 있어서,
    상기 애플리케이션의 실행 정보는 특정 시점에서의 애플리케이션의 깊이(depth) 정보, 입력 파라미터, 출력 파라미터 및 화면 디스플레이 정보 중 적어도 하나를 포함하는
    전자 장치.
  16. 제 11 항에 있어서,
    상기 프로그램은 상기 결정된 애플리케이션의 상태 정보를 block으로 설정하는 명령어를 포함하는
    전자 장치.
  17. 제 11 항에 있어서,
    상기 프로그램은 상기 전자 장치가 상기 유휴 모드에서 활성 모드로 전환되거나 혹은 적어도 하나의 애플리케이션이 상기 백그라운드 실행 모드에서 포어그라운드 실행 모드로 전환되어 실행되는지 여부를 감지하는 명령어를 더 포함하는
    전자 장치.
  18. 제 17 항에 있어서,
    상기 프로그램은 상기 전자 장치가 상기 유휴 모드에서 활성 모드로 전환되는 경우, 실행이 중지된 애플리케이션의 속성 값에 따라 스케줄링 대상이 될 적어도 하나의 애플리케이션을 결정하고, 상기 스케줄링 대상이 될 적어도 하나의 애플리케이션을 미리 저장된 애플리케이션 실행 정보를 바탕으로 복원한 후, 상기 복원된 애플리케이션을 스케줄링하여 실행하는 명령어를 더 포함하는
    전자 장치.
  19. 제 17 항에 있어서,
    상기 프로그램은 상기 애플리케이션이 상기 백그라운드 실행 모드에서 포어그라운드 실행 모드로 전환되어 실행되는 경우, 실행중인 애플리케이션의 속성 값에 따라 스케줄링 제어 대상이 되는 적어도 하나의 애플리케이션을 결정하고, 상기 스케줄링 대상이될 적어도 하나의 애플리케이션을 미리 저장된 애플리케이션 실행 정보를 바탕으로 복원한 후, 상기 복원된 애플리케이션을 스케줄링하여 실행하는 명령어를 더 포함하는
    전자 장치.
  20. 제 18 항 및 제 19 항 중 어느 하나의 항에 있어서,
    상기 프로그램은 상기 복원된 애플리케이션의 상태 정보를 ready로 설정하는 명령어를 포함하는
    전자 장치.
  21. 전자 장치에 의해 실행될 경우, 상기 장치로 하여금 제 1항의 방법을 수행하도록 하는 명령어들을 포함하는 하나 이상의 프로그램을 저장한 컴퓨터 판독 가능 저장 매체.
KR1020130066701A 2013-06-11 2013-06-11 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치 KR20140144572A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130066701A KR20140144572A (ko) 2013-06-11 2013-06-11 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130066701A KR20140144572A (ko) 2013-06-11 2013-06-11 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치

Publications (1)

Publication Number Publication Date
KR20140144572A true KR20140144572A (ko) 2014-12-19

Family

ID=52674784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130066701A KR20140144572A (ko) 2013-06-11 2013-06-11 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치

Country Status (1)

Country Link
KR (1) KR20140144572A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059978A1 (ko) * 2020-09-21 2022-03-24 삼성전자(주) 전자장치 및 그 제어방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059978A1 (ko) * 2020-09-21 2022-03-24 삼성전자(주) 전자장치 및 그 제어방법

Similar Documents

Publication Publication Date Title
KR102109111B1 (ko) 애플리케이션을 관리하는 방법 및 그 전자 장치
US9400590B2 (en) Method and electronic device for displaying a virtual button
JP6215626B2 (ja) 電子装置の制御方法及びその電子装置並びにコンピュータ読出可能記録媒体
CN107885534B (zh) 一种锁屏方法、终端及计算机可读介质
US10168855B2 (en) Automatic detection of user preferences for alternate user interface model
KR102021048B1 (ko) 사용자 입력을 제어하기 위한 방법 및 그 전자 장치
KR102028119B1 (ko) 애플리케이션을 디스플레이하는 방법 및 그 전자 장치
US20160092064A1 (en) Method and Apparatus for Displaying Application Interface, and Electronic Device
US20120216146A1 (en) Method, apparatus and computer program product for integrated application and task manager display
CN105373326B (zh) 数据处理系统及方法
KR20140042270A (ko) 애플리케이션을 실행하기 위한 방법 및 그 전자 장치
US9342172B2 (en) Method of detecting protection case and electronic device thereof
KR102086799B1 (ko) 가상 키 패드를 디스플레이하기 위한 방법 및 그 전자 장치
KR20200014128A (ko) 전자 장치의 디스플레이 및 외부 디스플레이 전부를 이용하여 어플리케이션을 실행하기 위한 전자 장치 및 방법
KR20140112296A (ko) 다중 터치에 대응하는 기능을 처리하기 위한 방법 및 그 전자 장치
CN104035706A (zh) 显示方法以及电子装置
EP2770421A2 (en) Electronic device having touch-sensitive user interface and related operating method
US20200379946A1 (en) Device, method, and graphical user interface for migrating data to a first device during a new device set-up workflow
US20140152583A1 (en) Optimistic placement of user interface elements on a touch screen
KR102536148B1 (ko) 전자 장치의 동작 방법 및 장치
CN107340906B (zh) 触摸输入装置的显示方法
CN103135911A (zh) 一种信息处理方法及电子终端
CN106886351B (zh) 一种终端时间信息的显示方法、装置及计算机设备
US9026691B2 (en) Semi-autonomous touch I/O device controller operation under control of host
KR20140144572A (ko) 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment