KR20220038987A - 전자장치 및 그 제어방법 - Google Patents

전자장치 및 그 제어방법 Download PDF

Info

Publication number
KR20220038987A
KR20220038987A KR1020200121501A KR20200121501A KR20220038987A KR 20220038987 A KR20220038987 A KR 20220038987A KR 1020200121501 A KR1020200121501 A KR 1020200121501A KR 20200121501 A KR20200121501 A KR 20200121501A KR 20220038987 A KR20220038987 A KR 20220038987A
Authority
KR
South Korea
Prior art keywords
memory
data
application
processor
area
Prior art date
Application number
KR1020200121501A
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 KR1020200121501A priority Critical patent/KR20220038987A/ko
Priority to PCT/KR2021/011982 priority patent/WO2022059978A1/ko
Publication of KR20220038987A publication Critical patent/KR20220038987A/ko
Priority to US18/124,253 priority patent/US20230236843A1/en

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/44557Code layout in executable memory
    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예에 따른 전자장치에 있어서, 제1메모리; 제2메모리; 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하고, 상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하고, 상기 비활성화 상태로 전환된 프로세스의 데이터를 상기 제2메모리의 영역에 순차 액세스 방식으로 저장하고, 상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 프로세서를 포함한다.

Description

전자장치 및 그 제어방법{ELECTRONIC APPARATUS AND THE METHOD THEREOF}
본 개시는 메모리를 효율적으로 사용할 수 있는 전자장치 및 그 제어방법에 관한 것이다.
어플리케이션이 실행될 때에는 여러가지 리소스가 메모리에 로딩되고 연산되는 과정이 존재한다. 어플리케이션이 실행되는 시스템의 성능이 충분하지 않거나 리소스가 큰 어플리케이션이 실행되는 경우에는 어플리케이션의 진입이 느려지게 된다.
어플리케이션 진입 시간은 사용자의 어플리케이션 사용성에 큰 영향을 미치기 때문에 사용자와 플랫폼의 상황을 고려하여 다양한 방식으로 어플리케이션을 프리로딩(pre-loading)하는 기법이 사용된다.
시스템의 최초 동작시점이나 사용자의 사용 시나리오에 따라 필요하다고 판단되는 시점에 지정된 어플리케이션을 프리로딩 시킨다.
하지만 시스템의 메모리 자원은 한정적이기 때문에, 활발히 사용하고 있지 않는 리소스와 데이터를 스왑(swap) 장치로 이동시켜 메모리 자원을 확보하고, 필요할 때 스왑 장치에서 메모리로 읽어와 사용한다.
본 개시의 목적은 메모리를 보다 효율적으로 사용하고, 어플리케이션을 보다 빠르게 실행시킬 수 있는 전자장치 및 그 제어방법에 관한 것이다.
본 발명의 일 실시예에 따른 전자장치에 있어서, 제1메모리; 제2메모리; 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하고, 상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하고, 상기 비활성화 상태로 전환된 프로세스의 데이터를 상기 제2메모리의 영역에 순차 액세스 방식으로 저장하고, 상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 프로세서를 포함한다.
상기 프로세서는, 상기 제1메모리에 로드된 상기 어플리케이션의 복수의 프로세스 중 상기 비활성화 상태로 전환할 프로세스를 스케줄링 대상에서 제외시켜 상기 비활성화 상태로 전환할 수 있다.
상기 비활성화 상태로 전환된 프로세스는 제1프로세스이며, 상기 제2메모리의 영역은 상기 제2메모리의 제1영역이고, 상기 프로세서는, 상기 제1메모리에 로드되며 상기 비활성화 상태로 전환되지 않고, 상기 활성화 상태를 유지하는 어플리케이션의 제2프로세스의 데이터를 상기 제2메모리의 제2영역에 임의 액세스 방식으로 저장할 수 있다.
상기 프로세서는, 상기 어플리케이션의 실행을 준비하는 이벤트에 기초하여 상기 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드할 수 있다.
상기 프로세서는, 상기 제1메모리의 여유 메모리량, 상기 프로세서의 속도 또는 상기 프로세서의 평균 사용량 중 적어도 하나에 기초하여 상기 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별할 수 있다.
본 발명의 일 실시예에 따른 전자장치에 있어서, 인터페이스부를 포함하고, 상기 프로세서는, 상기 어플리케이션을 실행하는 사용자입력을 상기 인터페이스부를 통해 수신한 것에 기초하여 상기 복원하는 이벤트가 발생한 것으로 식별할 수 있다.
상기 프로세서는, 상기 복원하는 이벤트에 대응하여, 상기 제2메모리의 영역에 데이터가 저장된 상기 프로세스를 스케줄링 대상에 추가하여 상기 활성화 상태로 복원할 수 있다.
상기 프로세서는, 상기 복원하는 이벤트에 대응하여 상기 제1메모리에 상기 어플리케이션의 복수의 프로세스가 존재하는지 여부를 식별하고, 상기 복수의 프로세스 중 상기 제1메모리에 데이터가 존재하지 않는 프로세스에 기초하여, 상기 프로세스의 데이터가 저장된 상기 제2메모리의 영역을 식별할 수 있다.
본 발명의 일 실시예에 따른 전자장치의 제어방법에 있어서, 어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계; 상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하는 단계; 상기 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하는 단계; 및 상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 단계를 포함할 수 있다.
상기 제1메모리에 로드된 상기 어플리케이션의 복수의 프로세스 중 상기 비활성화 상태로 전환할 프로세스를 스케줄링 대상에서 제외시켜 상기 비활성화 상태로 전환하는 단계를 포함할 수 있다.
상기 비활성화 상태로 전환된 프로세스는 제1프로세스이며, 상기 제2메모리의 영역은 상기 제2메모리의 제1영역이고, 상기 제1메모리에 로드되며 상기 비활성화 상태로 전환되지 않고, 상기 활성화 상태를 유지하는 어플리케이션의 제2프로세스의 데이터를 상기 제2메모리의 제2영역에 임의 액세스 방식으로 저장하는 단계를 포함할 수 있다.
상기 어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계는, 상기 어플리케이션의 실행을 준비하는 이벤트에 기초하여 상기 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하는 단계를 포함할 수 있다.
상기 제1메모리의 여유 메모리량, 상기 프로세서의 속도 또는 상기 프로세서의 평균 사용량 중 적어도 하나에 기초하여 상기 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별하는 단계를 포함할 수 있다.
상기 어플리케이션을 실행하는 사용자입력을 인터페이스부를 통해 수신한 것에 기초하여 상기 복원하는 이벤트가 발생한 것으로 식별하는 단계를 포함할 수 있다.
상기 복원하는 이벤트에 대응하여, 상기 제2메모리의 영역에 데이터가 저장된 상기 프로세스를 스케줄링 대상에 추가하여 상기 활성화 상태로 복원하는 단계를 포함할 수 있다.
상기 복원하는 이벤트에 대응하여 상기 제1메모리에 상기 어플리케이션의 복수의 프로세스가 존재하는지 여부를 식별하는 단계; 및 상기 복수의 프로세스 중 상기 제1메모리에 데이터가 존재하지 않는 프로세스에 기초하여, 상기 프로세스의 데이터가 저장된 상기 제2메모리의 영역을 식별하는 단계를 포함할 수 있다.
컴퓨터가 읽을 수 있는 코드로서, 전자장치의 제어방법을 수행하는 코드를 포함하는 컴퓨터 프로그램이 저장된 기록매체에 있어서, 상기 전자장치의 제어방법은, 어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계; 상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하는 단계; 상기 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하는 단계; 및 상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 어플리케이션의 프리로딩 상태를 구현하되 메모리 용량을 효율적으로 이용하여 어플리케이션 동작을 빠르게 수행할 수 있다.
본 발명의 일 실시예에 따르면, 프로세스를 비활성화 상태로 전환하여, 안정적으로 데이터를 스와핑할 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 전자장치의 구성을 보다 구체적으로 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 전자장치의 스케줄링 동작 모습을 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
이하에서는 첨부 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면에서 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 구성요소를 지칭하며, 도면에서 각 구성요소의 크기는 설명의 명료성과 편의를 위해 과장되어 있을 수 있다. 다만, 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 이하의 실시예에 설명된 구성 또는 작용으로만 한정되지는 않는다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
본 발명의 실시예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 발명의 실시예에서, '구성되다', '포함하다', '가지다' 등의 용어는 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 또한, 본 발명의 실시예에서, '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 모듈로 일체화되어 구현될 수 있다. 또한, 본 발명의 실시예에서, 복수의 요소 중 적어도 하나(at least one)는, 복수의 요소 전부뿐만 아니라, 복수의 요소 중 나머지를 배제한 각 하나 혹은 이들의 조합 모두를 지칭한다.
도 1은 본 발명의 일 실시예에 따른 전자장치의 구성을 도시한 블록도이다.
전자장치(100)는 메모리(10)를 포함한다. 메모리(10)는 어플리케이션 등을 실행하는데 필요한 데이터나 리소스 등을 저장하거나 기억해두는 장치이다. 메모리(10)는, 예컨대, 휘발성 여부, 접근 방식, 할당되는 프로세스의 종류 등에 기초하여 분류될 수 있다. 본 발명에서는 휘발성 여부에 따라 메모리(10)를 크게 제1메모리(11)와 제2메모리(12)로 분류한다.
제1메모리(11)는 휘발성 메모리로, 일시적으로 데이터나 리소스(이하 통칭하여 데이터라 한다.)를 기억시키거나, 일시적으로 기억된 데이터를 읽어내기도 하는 메모리이다. 휘발성 메모리 특성상 전기가 차단이 되는 등 전원이 공급되지 않는 상황에서는 기억된 데이터가 소실되고, 비휘발성 메모리에 비해 용량이 적은 편이나, 데이터 실행 속도가 빠르다. 대표적으로, 휘발성 메모리에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다.
제2메모리(12)는 비휘발성 메모리로, 전원이 공급되지 않아도 저장된 정보를 계속 유지, 즉 영구적으로 데이터를 저장할 수 있으며, 용량은 큰 반면, 데이터 실행 속도가 느리다. 대표적으로, 비휘발성 메모리에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive), ROM(Read Only Memory) 등이 있다.
전자장치(100)는 프로세서(180)를 포함한다.
프로세서(180)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다.
본 발명의 일 실시예에 따르면, 프로세서(180)는 어플리케이션을 실행하기 위해 제2메모리(12)에 저장된 어플리케이션을 제1메모리(11)에 로드한다.
이 때, 보다 빠른 어플리케이션 실행을 위해, 프로세서(180)는 제1메모리(11)에서의 어플리케이션의 실행에 필요한 데이터 로딩과 연산 작업을 미리 진행해 놓고, 사용자가 해당 어플리케이션을 실행할 때에는 해당 과정을 생략함으로써 어플리케이션 사용성을 향상시킬 수 있다. 이 과정을 프리로딩(pre-loading)이라 한다. 프리로딩을 적용하면 미리 실행된 어플리케이션의 데이터가 제1메모리(11)를 점유하게 된다.
다만, 제1메모리(11)는 그 용량이 한정적이기 때문에, 프로세서(180)는 활발히 사용하고 있지 않는 데이터를 제2메모리(12)로 이동시켜 용량을 확보하고, 필요할 때 데이터를 읽어와 사용한다. 현재 이용하고 있지 않은 데이터를 제1메모리(11)에서 제2메모리(12)로 저장하는 동작을 스왑아웃(swap-out)이라 하고, 스왑아웃된 데이터를 다시 제1메모리(11)로 로드하는 동작을 스왑인(swap-in)이라 한다.
프리로딩 상태의 어플리케이션이 실행되기 위해서는 프로세서(180)는 제2메모리(12)로 스왑아웃한 데이터를 다시 스왑인하는 동작을 수행하여야 한다.
이 때, 제2메모리(12)로 읽어오는 데이터가 제2메모리(12) 내에서 랜덤하게 존재하는 경우, 이를 읽어오는데 시간이 많이 걸리게 된다.
이하, 프리로딩을 위해 제1메모리(11)에 로드한 어플리케이션 데이터를 메모리 효율을 위해 제2메모리(12)로 스왑아웃한 경우, 효율적인 I/O 동작을 수행하는 방법에 대해 자세히 서술한다.
도 2는 본 발명의 일 실시예에 따른 전자장치의 구성을 보다 구체적으로 도시한 블록도이다.
도 2에 도시된 바와 같이, 전자장치(100)는 인터페이스부(110)를 포함할 수 있다.
인터페이스부(110)는 유선 인터페이스부(111)를 포함할 수 있다. 유선 인터페이스부(111)는 지상파/위성방송 등 방송표준에 따른 방송신호를 수신할 수 있는 안테나가 연결되거나, 케이블 방송표준에 따른 방송신호를 수신할 수 있는 케이블이 연결될 수 있는 커넥터 또는 포트를 포함한다. 다른 예로서, 전자장치(100)는 방송신호를 수신할 수 있는 안테나를 내장할 수도 있다. 유선 인터페이스부(111)는 HDMI 포트, DisplayPort, DVI 포트, 썬더볼트, 컴포지트(composite) 비디오, 컴포넌트(component) 비디오, 슈퍼 비디오(super video), SCART 등과 같이, 비디오 및/또는 오디오 전송표준에 따른 커넥터 또는 포트 등을 포함할 수 있다. 유선 인터페이스부(111)는 USB 포트 등과 같은 범용 데이터 전송표준에 따른 커넥터 또는 포트 등을 포함할 수 있다. 유선 인터페이스부(111)는 광 전송표준에 따라 광케이블이 연결될 수 있는 커넥터 또는 포트 등을 포함할 수 있다. 유선 인터페이스부(111)는 외부 마이크 또는 마이크를 구비한 외부 오디오기기가 연결되며, 오디오기기로부터 오디오 신호를 수신 또는 입력할 수 있는 커넥터 또는 포트 등을 포함할 수 있다. 유선 인터페이스부(111)는 헤드셋, 이어폰, 외부 스피커 등과 같은 오디오기기가 연결되며, 오디오기기로 오디오 신호를 전송 또는 출력할 수 있는 커넥터 또는 포트 등을 포함할 수 있다. 유선 인터페이스부(111)는 이더넷 등과 같은 네트워크 전송표준에 따른 커넥터 또는 포트를 포함할 수 있다. 예컨대, 유선 인터페이스부(111)는 라우터 또는 게이트웨이에 유선 접속된 랜카드 등으로 구현될 수 있다.
유선 인터페이스부(111)는 상기 커넥터 또는 포트를 통해 셋탑박스, 광학미디어 재생장치와 같은 외부기기, 또는 외부 디스플레이장치나, 스피커, 서버 등과 1:1 또는 1:N(N은 자연수) 방식으로 유선 접속됨으로써, 해당 외부기기로부터 비디오/오디오 신호를 수신하거나 또는 해당 외부기기에 비디오/오디오 신호를 송신한다. 유선 인터페이스부(111)는, 비디오/오디오 신호를 각각 별개로 전송하는 커넥터 또는 포트를 포함할 수도 있다.
그리고, 본 실시예에 따르면 유선 인터페이스부(111)는 전자장치(100)에 내장되나, 동글(dongle) 또는 모듈(module) 형태로 구현되어 전자장치(100)의 커넥터에 착탈될 수도 있다.
인터페이스부(110)는 무선 인터페이스부(112)를 포함할 수 있다. 무선 인터페이스부(112)는 전자장치(100)의 구현 형태에 대응하여 다양한 방식으로 구현될 수 있다. 예를 들면, 무선 인터페이스부(112)는 통신방식으로 RF(radio frequency), 지그비(Zigbee), 블루투스(bluetooth), 와이파이(Wi-Fi), UWB(Ultra WideBand) 및 NFC(Near Field Communication) 등 무선통신을 사용할 수 있다. 무선 인터페이스부(112)는 와이파이(Wi-Fi) 방식에 따라서 AP와 무선통신을 수행하는 무선통신모듈이나, 블루투스 등과 같은 1대 1 다이렉트 무선통신을 수행하는 무선통신모듈 등으로 구현될 수 있다. 무선 인터페이스부(112)는 네트워크 상의 서버와 무선 통신함으로써, 서버와의 사이에 데이터 패킷을 송수신할 수 있다. 무선 인터페이스부(112)는 적외선 통신표준에 따라 IR(Infrared) 신호를 송신 및/또는 수신할 수 있는 IR송신부 및/또는 IR수신부를 포함할 수 있다. 무선 인터페이스부(112)는 IR송신부 및/또는 IR수신부를 통해 리모컨 또는 다른 외부기기로부터 리모컨신호를 수신 또는 입력하거나, 다른 외부기기로 리모컨신호를 전송 또는 출력할 수 있다. 다른 예로서, 전자장치(100)는 와이파이(Wi-Fi), 블루투스(bluetooth) 등 다른 방식의 무선 인터페이스부(112)를 통해 리모컨 또는 다른 외부기기와 리모컨신호를 송수신할 수 있다.
전자장치(100)는 인터페이스부(110)를 통해 수신하는 비디오/오디오신호가 방송신호인 경우, 수신된 방송신호를 채널 별로 튜닝하는 튜너(tuner)를 더 포함할 수 있다.
전자장치(100)가 디스플레이 장치로 구현되는 경우, 디스플레이부(120)를 포함할 수 있다. 디스플레이부(120)는 화면 상에 영상을 표시할 수 있는 디스플레이 패널을 포함한다. 디스플레이 패널은 액정 방식과 같은 수광 구조 또는 OLED 방식과 같은 자발광 구조로 마련된다. 디스플레이부(120)는 디스플레이 패널의 구조에 따라서 부가적인 구성을 추가로 포함할 수 있는데, 예를 들면 디스플레이 패널이 액정 방식이라면, 디스플레이부(120)는 액정 디스플레이 패널과, 광을 공급하는 백라이트유닛과, 액정 디스플레이 패널의 액정을 구동시키는 패널구동기판을 포함한다.
전자장치(100)는 사용자입력부(130)를 포함할 수 있다.
사용자입력부(130)는 사용자의 입력에 의해, 기설정된 다양한 제어 커맨드 또는 한정되지 않은 정보를 프로세서(180)에 전달한다. 사용자입력부(130)는 사용자 입력을 수신할 수 있는 다양한 입력수단을 포함한다.
일 실시예에서 사용자입력부(130)는 전자장치(100)에 마련된 전원키, 숫자키, 메뉴키 등의 버튼을 포함하는 키패드(또는 입력패널)를 포함할 수 있다.
일 실시예에서 사용자입력부(130)는 전자장치(100)를 원격으로 제어 가능하게 기설정된 커맨드/데이터/정보/신호를 생성하여 전자장치(100)로 전송하는 입력장치를 포함할 수 있다. 입력장치는, 예를 들면, 리모컨(remote control), 게임콘솔(game console), 키보드(keyboard), 마우스(mouse) 등을 포함하며, 전자장치(100)와 이격 분리되어, 사용자 입력을 수신할 수 있다.
리모컨에는 사용자 입력을 수신할 수 있는 적어도 하나의 버튼이 마련될 수 있다. 일 실시예에서 리모컨에는 사용자의 터치입력(터치제스처)을 수신하는 터치감지부 및/또는 사용자에 의한 리모컨 자체의 움직임을 감지하는 모션감지부가 마련될 수 있다. 일 실시예에서 입력장치는 리모컨 어플리케이션이 설치된 스마트폰과 같은 단말장치를 포함하며, 이 경우 터치스크린을 통한 사용자의 터치입력이 수신 가능하다.
입력장치는 전자장치(100) 본체와 무선통신이 가능한 외부장치가 되며, 무선통신은 블루투스, 적외선 통신, RF 통신, 무선랜, 와이파이 다이렉트 등을 포함한다.
일 실시예에서 사용자입력부(130)는 사용자의 손의 움직임, 다시 말해, 핸드 제스처(hand gesture)(이하, 제스처 라고도 한다)를 감지하는 모션감지부를 포함할 수 있다. 전자장치(100)는 모션감지부는 손의 이동거리, 이동속도, 이동영역의 면적 등을 감지하여 데이터를 출력할 수 있다.
일 실시예에서 사용자입력부(130)는 디스플레이(121) 주변의 베젤영역에 대한 사용자의 터치를 검출할 수 있는 터치감지부를 포함할 수 있다.
일 실시예에서 사용자로부터 발화된 음성을 수신할 수 있는 마이크로폰(150)와 같은 소리수신부(130)가 사용자입력부(130)에 포함될 수 있다.
일 실시예에서, 사용자입력부(130)는 영상데이터에 대한 프라이버시 처리의 기준이 되는 설정 거리에 대한 사용자입력을 수신할 수 있다. 예를 들면, 사용자입력부(130)를 통해, 설정 거리 또는 설정 거리에 대응하는 기준 위치를 설정 또는 조정(변경)하기 위한 사용자입력이 수신될 수 있다.
전자장치(100)는 저장부(140)를 포함할 수 있다. 저장부(140)는 디지털화된 데이터를 저장한다. 저장부(140)는 전원의 제공 유무와 무관하게 데이터를 보존할 수 있는 비휘발성 속성의 스토리지(storage)와, 프로세서(180)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성의 메모리(memory)를 포함한다. 스토리지에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있으며, 메모리에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다.
전자장치(100)는 마이크로폰(150)을 포함할 수 있다. 마이크로폰(150)은 사용자 음성을 비롯한 외부 환경의 소리를 수집한다. 마이크로폰(150)은 수집된 소리의 신호를 프로세서(180)에 전달한다. 전자장치(100)는 사용자 음성을 수집하는 마이크로폰(150)을 구비하거나, 또는 인터페이스부(110)를 통해 마이크로폰을 가진 리모트 컨트롤러, 스마트폰 등의 외부장치로부터 음성신호를 수신할 수 있다. 외부장치에 리모트 컨트롤러 어플리케이션을 설치하여 전자장치(100)를 제어하거나 음성 인식 등의 기능을 수행할 수도 있다. 이와 같은 어플리케이션이 설치된 외부장치의 경우, 사용자 음성을 수신할 수 있으며, 외부장치는 전자장치(100)와 Wi-Fi/BT 또는 적외선 등을 이용하여 데이터 송수신 및 제어가 가능한 바, 상기 통신 방식을 구현할 수 있는 복수의 인터페이스부(110)가 전자장치(100) 내에 존재할 수 있다.
전자장치(100)는 스피커(160)를 포함할 수 있다. 스피커(160)는 프로세서(180)에 의해 처리되는 오디오 데이터를 소리로 출력한다. 스피커(160)는 어느 한 오디오 채널의 오디오 데이터에 대응하게 마련된 단위 스피커를 포함하며, 복수 오디오 채널의 오디오 데이터에 각기 대응하도록 복수의 단위 스피커를 포함할 수 있다. 다른 실시예로서, 스피커(160)는 전자장치(100)와 분리되어 마련될 수 있으며, 이 경우 전자장치(100)는 오디오 데이터를 인터페이스부(110)를 통하여 스피커(160)로 전달할 수 있다.
전자장치(100)는 센서(170)를 포함할 수 있다. 센서(170)는, 전자장치(100)의 상태 또는 전자장치(100) 주변의 상태를 감지하고, 감지된 정보를 프로세서(180)로 전달할 수 있다. 센서(170)는, 카메라를 포함한다.
이 외에도 지자기 센서(Magnetic sensor), 가속도 센서(Acceleration sensor), 온/습도 센서, 적외선 센서, 자이로스코프 센서, 위치 센서(예컨대, GPS), 기압 센서, 근접 센서, 및 RGB 센서(illuminance sensor) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
전자장치(100)는 프로세서(180)를 포함할 수 있다. 프로세서(180)는 인쇄회로기판 상에 장착되는 CPU, 칩셋, 버퍼, 회로 등으로 구현되는 하나 이상의 하드웨어 프로세서를 포함하며, 설계 방식에 따라서는 SOC(system on chip)로 구현될 수도 있다. 프로세서(180)는 전자장치(100)가 디스플레이장치로 구현되는 경우에 디멀티플렉서, 디코더, 스케일러, 오디오 DSP(Digital Signal Processor), 앰프 등의 다양한 프로세스에 대응하는 모듈들을 포함한다. 여기서, 이러한 모듈들 중 일부 또는 전체가 SOC로 구현될 수 있다. 예를 들면, 디멀티플렉서, 디코더, 스케일러 등 영상처리와 관련된 모듈이 영상처리 SOC로 구현되고, 오디오 DSP는 SOC와 별도의 칩셋으로 구현되는 것이 가능하다.
프로세서(180)는 마이크로폰(150) 등에 의해 사용자 음성에 대한 음성신호를 획득하면, 음성신호를 음성데이터로 변환할 수 있다. 이 때, 음성데이터는 음성신호를 텍스트 데이터로 변환하는 STT(Speech-to-Text) 처리 과정을 통해 얻어진 텍스트 데이터일 수 있다. 프로세서(180)는 음성데이터가 나타내는 커맨드를 식별하고, 식별된 커맨드에 따라서 동작을 수행한다. 음성데이터 처리 과정과, 커맨드 식별 및 수행 과정은, 전자장치(100)에서 모두 실행될 수도 있다. 그러나, 이 경우에 전자장치(100)에 필요한 시스템 부하 및 소요 저장용량이 상대적으로 커지게 되므로, 적어도 일부의 과정은 네트워크를 통해 전자장치(100)와 통신 가능하게 접속되는 적어도 하나의 서버에 의해 수행될 수 있다.
본 발명에 따른 프로세서(180)는 전자장치(100)와 같은 기기(Machine)가 읽을 수 있는 저장 매체(Storage Medium)에 저장된 소프트웨어의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 전자장치(100)와 같은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(Non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(예컨대, 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
한편, 프로세서(180)는 제1메모리에 로드되며 활성화 상태에서 비활성화 상태로 전환된 어플리케이션의 프로세스를 식별하고, 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하고, 프로세스가 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 제2메모리의 영역에 저장된 프로세스의 데이터를 제1메모리에 로드하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다.
프로세서(180)는 제1메모리에 로드되며 활성화 상태에서 비활성화 상태로 전환된 어플리케이션의 프로세스를 식별하고, 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하고, 프로세스가 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 제2메모리의 영역에 저장된 프로세스의 데이터를 제1메모리에 로드하여 인공지능 모델의 입력으로 사용하는 데에 적합한 형태로 변환할 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론(Knowledge based Reasoning), 최적화 예측(Optimization Prediction), 선호 기반 계획(Preference-based Planning), 추천(Recommendation) 등을 포함한다
일 예로, 프로세서(180)는 학습부 및 인식부의 기능을 함께 수행할 수 있다. 학습부는 학습된 신경망 네트워크를 생성하는 기능을 수행하고, 인식부는 학습된 신경망 네트워크를 이용하여 데이터를 인식(또는, 추론, 예측, 추정, 판단)하는 기능을 수행할 수 있다. 학습부는 신경망 네트워크를 생성하거나 갱신할 수 있다. 학습부는 신경망 네트워크를 생성하기 위해서 학습 데이터를 획득할 수 있다. 일 예로, 학습부는 학습 데이터를 저장부(140) 또는 외부로부터 획득할 수 있다. 학습 데이터는, 신경망 네트워크의 학습을 위해 이용되는 데이터일 수 있으며, 상기한 동작을 수행한 데이터를 학습데이터로 이용하여 신경망 네트워크를 학습시킬 수 있다.
학습부는 학습 데이터를 이용하여 신경망 네트워크를 학습시키기 전에, 획득된 학습 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 학습 데이터들 중에서 학습에 이용될 데이터를 선별할 수 있다. 일 예로, 학습부는 학습 데이터를 기 설정된 포맷으로 가공하거나, 필터링하거나, 또는 노이즈를 추가/제거하여 학습에 적절한 데이터의 형태로 가공할 수 있다. 학습부는 전처리된 학습 데이터를 이용하여 상기한 동작을 수행하도록 설정된 신경망 네트워크를 생성할 수 있다.
학습된 신경망 네트워크는, 복수의 신경망 네트워크(또는, 레이어)들로 구성될 수 있다. 복수의 신경망 네트워크의 노드들은 가중치를 가지며, 복수의 신경망 네트워크들은 일 신경망 네트워크의 출력 값이 다른 신경망 네트워크의 입력 값으로 이용되도록 서로 연결될 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN (Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)과 같은 모델을 포함할 수 있다.
한편 인식부는 상기한 동작을 수행하기 위해, 타겟 데이터를 획득할 수 있다. 타겟 데이터는 저장부(140) 또는 외부로부터 획득된 것일 수 있다. 타겟 데이터는 신경망 네트워크의 인식 대상이 되는 데이터일 수 있다. 인식부는 타겟 데이터를 학습된 신경망 네트워크에 적용하기 전에, 획득된 타겟 데이터에 대하여 전처리 작업을 수행하거나, 또는 복수 개의 타겟 데이터들 중에서 인식에 이용될 데이터를 선별할 수 있다. 일 예로, 인식부는 타겟 데이터를 기 설정된 포맷으로 가공하거나, 필터링 하거나, 또는 노이즈를 추가/제거하여 인식에 적절한 데이터의 형태로 가공할 수 있다. 인식부는 전처리된 타겟 데이터를 신경망 네트워크에 적용함으로써, 신경망 네트워크로부터 출력되는 출력값을 획득할 수 있다. 인식부는 출력값과 함께, 확률값 또는 신뢰도값을 획득할 수 있다.
일 예로, 본 발명에 따른 전자장치(100)의 제어방법은 컴퓨터 프로그램 제품 (Computer Program Product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은, 앞서 설명한, 프로세서(180)에 의해 실행되는 소프트웨어의 명령어들을 포함할 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예컨대, CD-ROM)의 형태로 배포되거나, 또는 어플리케이션 스토어(예컨대, 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예컨대, 스마트폰들) 간에 직접, 온라인으로 배포(예컨대, 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
도 3은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
본 발명의 일 실시예에 따른 프로세서(180)는 어플리케이션의 복수의 프로세스를 제1메모리(11)에 로드하고, 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별한다(S310).
본 발명의 일 실시예에 따르면, 프로세스는, 메모리(10)에 로드되어 있는 데이터 또는 어플리케이션에 기반하여 실행되는 작업 단위이다. 즉, 어플리케이션은 적어도 하나의 프로세스를 포함하고, 프로세서(180)가 메모리(10)에 로드되어 있는 데이터를 처리함으로써, 하나 이상의 프로세스가 수행된다. 따라서, 프로세스가 실행되기 위해서는 해당 프로세스에 대응하는 데이터가 메모리(10), 구체적으로는 제1메모리(11)에 로드되어 있어야 한다.
프로세서(180)는 어플리케이션의 프로세스의 상태를 식별한다. 프로세스의 활성화 상태란 프로세스의 데이터가 프로세서(180)에 의해 필요에 따라 이용이 가능하며, 자유롭게 이동이 가능한 상태를 말하며, 반대로, 비활성화 상태란 프로세스의 데이터가 메모리는 점유한 상태이나 프로세서(180)는 이용하지 않고, 임의로 이동되지 않는 상태를 의미한다. 구체적인 내용은 도 4 및 도 5를 이용하여 서술한다.
앞서 도 1에서 서술한 바와 같이, 프로세서(180)가 어플리케이션을 프리로딩한 상태라고 가정한다. 프로세서(180)는 제1메모리(11)의 용량을 확보하기 위해, 데이터를 제2메모리(12)로 스왑아웃한 경우에도, 여전히 어플리케이션은 백그라운드(Background)로 구동 중인 상태이기 때문에, 프로세서(180)의 구동 중 제2메모리(12)로 이동된 데이터가 제1메모리(11)로 다시 로드되는 경우가 있다.
이 동작이 반복되면, 사실상 제2메모리(12)로 데이터를 스왑아웃한 의미가 없어진다. 따라서, 프로세서(180)는 비활성화된 데이터를 기초로 제1메모리(11)에서 제2메모리(12)로 스왑아웃함으로써, 프리로딩 상태를 구현하되 메모리 용량을 효율적으로 이용할 수 있다.
본 발명의 일 실시예에 따른 프로세서(180)는 비활성화 상태로 전환된 것으로 식별된 프로세스의 데이터를 제2메모리(12)의 영역(121)에 순차 액세스 방식으로 저장한다(S320).
순차 액세스(sequential access)란 연속하는 주소를 가지는 메모리의 단일 영역에 데이터를 순차적으로 저장하여, 데이터를 불러올 때 해당 영역을 처음부터 차례대로 한번에 액세스할 수 있는 것을 의미하며, 상호 연속하지 않는 주소를 가지는 메모리의 임의의 복수 영역에 데이터를 나누어 저장하여 데이터를 불러올 때 복수의 영역을 여러 번 액세스하여야 하는 임의 액세스(random access)와 비교하여 데이터의 I/O 효율이 높다.
특히, I/O 효율은, 순차 액세스의 경우, 메모리 사이즈가 작은 경우보다 큰 경우가 높으며, 보통 순차 액세스가 임의 액세스보다 데이터를 읽는 속도가 3~10 배 정도 빠르다.
구체적으로, 임의 액세스 방식으로 데이터를 읽어오는 경우 데이터가 위치한 주소의 영역을 페이지 단위(4KB)로 랜덤하게 읽기 때문에, 데이터의 크기가 클수록 원하고자 하는 데이터를 찾을 때까지 시간이 많이 걸린다. 따라서, 프로세서(180)가 제2메모리(12)로부터 짧은 시간 내에 많은 데이터를 읽어야 하는 경우, 랜덤하게 데이터가 저장되어 있으면 I/O 동작이 병목을 일으키며 이는 어플리케이션 사용성 저하를 야기한다. 반면, 순차 액세스 방식은 데이터를 순차적으로 저장할 수 있으므로, 보다 큰 데이터 단위를 가질 수 있고, 데이터를 읽어들이는데 속도가 빠르다.
추후 필요에 따라 데이터를 제1메모리(11)에 순차 액세스 방식으로 읽어들이기 위해, 프로세서(180)는 제2메모리(12)의 영역(121)에 데이터를 순차적으로 저장한다. 제2메모리(12)의 영역(121)은 연속하는 주소를 가지는 공간으로, 영역(121)의 크기에 따라 순차적으로 저장되는 데이터 크기가 결정된다.
본 발명의 일 실시예에 따른 프로세서(180)는 프로세스가 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 제2메모리(11)의 영역(121)에 저장된 프로세스의 데이터를 제1메모리에 로드한다(S330).
비활성화 상태에서 활성화 상태로 복원되는 이벤트란, 예컨대, 사용자의 어플리케이션을 실행하는 사용자입력일 수 있다. 자세한 내용은 도 9에서 서술한다.
프로세서(180)는 상기 소정의 이벤트에 대응하여, 제2메모리(12)의 영역(121)에 저장된 프로세스의 데이터를 제1메모리(11)에 로드한다. 이 때, 프로세스의 데이터는 제2메모리(12)의 영역(121)에 순차적으로 저장되어 있으므로, 프로세서(180)는 제2메모리(12)의 영역(121)에 저장된 데이터를 한꺼번에 제1메모리(11)에 로드할 수 있고, 따라서 어플리케이션을 빠르게 실행할 수 있다.
다만, 순차 액세스 방식으로 데이터를 저장하는 경우, 액세스 속도의 면에서는 유리함은 있으나, 메모리 영역의 점유의 면에서는 제약이 있을 수 있다. 즉, 순차 액세스되는 영역은, 자유로이 분산될 수 있는 랜덤 액세스 방식의 영역과는 달리, 저장될 데이터의 크기를 전부 만족할 정도의 연속된 공간이 미리 확보되어야 하며, 확보된 영역은 다른 데이터의 저장에 이용될 수 없는 제한이 있다. 따라서, 메모리 공간의 효율적인 이용을 위해서는, 순차 액세스 방식으로 데이터를 저장할 영역의 지정에 있어서 신중한 고려가 요구되고, 순차 액세스 방식으로 저장할 영역은 가급적 최소화하는 것이 바람직하다.
한편, 앞서 설명한 바와 같이, 비활성화된 데이터를 기초로 제1메모리(11)에서 제2메모리(12)로 스왑아웃하게 되면, 의도적이지 않은 스왑인을 방지하게 되어 메모리 공간을 효율적으로 이용할 수 있음을 언급하였다.
따라서, 본 발명의 일 실시예에서는, 프로세서(180)는 제1메모리(11)에서 순차 액세스 방식으로 지정되는 영역을 최소화하고, 해당 영역의 효율적인 이용을 위하여 제2메모리(12)로 스왑아웃한 데이터가 불필요하게 다시 제1메모리(11)로 돌아가는 것이 방지되도록, 프로세스의 상태를 비활성화 상태로 전환하고, 데이터를 제2메모리(12)에 순차 액세스 방식으로 저장한다.
따라서, 본 발명의 일 실시예에 따르면, 어플리케이션의 프리로딩 상태를 구현하되 메모리 용량을 효율적으로 이용하여 어플리케이션 동작을 빠르게 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 4는 앞서 도 3의 S310에서 설명한 바와 같이 메모리(10)에서 프로세스(410)의 데이터가 제1메모리(11)와 제2메모리(12)간 이동이 가능한 활성화 상태를 도시한다.
프로세서(180)는 제1메모리(11)의 용량을 확보하기 위해 제1메모리(11)에 로드된 데이터를 제2메모리(12)로 이동할 수 있고, 이동된 데이터는 프로세서(180)의 실행에 의해 제2메모리(12)에서 제1메모리(11)로 다시 이동할 수 있다. 즉, 이러한 메모리 간 데이터의 이동이 가능한 상태를 활성화 상태라고 한다.
따라서, 프로세서(180)는 메모리의 효율을 위하여 제1메모리(11)에서 제2메모리(12)로 스왑아웃한 데이터가 불필요하게 다시 제1메모리(11)로 돌아가지 않게 하기 위해, 프로세스의 상태를 활성화 상태에서 메모리 간 데이터의 이동이 불가한 비활성화 상태로 전환하고, 데이터를 제2메모리(12)로 저장할 수 있다. 비활성화 상태로 전환하는 동작은 이하 도 5에서 자세히 서술한다.
또한, 도 4는 도 3의 S320에서 설명한 바와 같이, 프로세스(420)의 데이터가 순차 액세스 방식 혹은 임의 액세스 방식으로 데이터를 스왑아웃하는 모습을 도시한다.
프로세스(420)의 상태가 비활성화 상태로 전환된 경우, 프로세서(180)가 프로세스(420)의 데이터를 제1메모리(11)에서 제2메모리(12)로 저장하면, 제2메모리(12)는 별도의 프로세서(180)의 동작 없이는 제2메모리(12)에 존재하게 된다.
프로세서(180)는 제1메모리(11)의 여유 메모리량, 프로세서(180)의 속도 또는 프로세서(180)의 평균 사용량 등을 식별하고, 이 중 적어도 하나에 기초하여 데이터의 스왑아웃 여부를 식별할 수 있다. 예컨대, 제1메모리(11)의 여유 메모리량이 기 정의된 값보다 적은 경우, 프로세서(180)는 제1메모리(11)의 메모리량을 확보하기 위해 제2메모리(12)로의 스왑아웃이 필요함을 식별할 수 있다.
제2메모리(12)는 제1영역(121)과 제2영역(122)으로 구분될 수 있다. 제1영역(121)은 데이터가 순차적으로 저장되는 영역을 의미하고, 제2영역(122)은 데이터가 임의로 저장되는 영역을 의미한다.
제1영역(121)은 각 프로세스 별로 마련(지정)되는 복수 서브영역을 포함한다. 물론 경우에 따라서, 단일 프로세스를 복수의 영역으로 분할하여 저장할 수 있지만, 이 경우에도 각 영역 내에서는 순차 저장된다.
프로세서(180)는 프로세스(420)의 데이터를 비활성화 상태로 전환하고, 전환된 프로세스(420)의 데이터를 제2메모리(12)의 제1영역(121)에 순차 액세스 방식으로 저장한다. 물론 비활성화 상태에서도, 프로세서(180)는 프로세스(420)의 데이터를 제2메모리(12)의 제2영역(122)에 임의 액세스 방식으로 저장할 수 있다. 이 때, 어느 영역에 어떤 방식으로 프로세스의 데이터를 저장할 것인지는 이하 도 5에서 자세히 서술한다. 추가로 프로세서(180)는 제1메모리(11)에 로드되며 비활성화 상태로 전환되지 않고, 활성화 상태를 유지하는 어플리케이션의 프로세스의 데이터를 제2메모리(12)의 제2영역(122)에 임의 액세스 방식으로 저장할 수 있다. 임의 액세스 방식의 경우, 프로세스의 데이터는 제2영역(122) 내에서 임의로 분산되어 저장될 수 있다.
도 5는 본 발명의 일 실시예에 따른 전자장치의 스케줄링 모습을 도시한 도면이다.
프로세서(180)는, 제1메모리(11)에 로드된 어플리케이션의 복수의 프로세스 중 비활성화 상태로 전환할 프로세스를 프로세서(180)의 실행 대상, 즉, 스케줄링 대상에서 제외시켜 비활성화 상태로 전환한다. 스케줄링 대상은, 예컨대, 리스트의 형태로 도 5에 도시된 바와 같이 활성화되어 있는 각 프로세스의 상태를 나타내는 정보가 저장 및 관리된다. 즉, 비활성화 상태로 된다는 것은 프로세서(180)가 활성화되어 있는 프로세스를 스케줄링 대상의 리스트에서 제외 혹은 삭제한다는 것을 의미한다.
스케줄링 대상에서 제외되는 프로세스는, 예컨대, 장기간 사용하지 않아 제1메모리(11)의 점유 필요성이 낮은 프로세스이거나, 어플리케이션의 실행을 위해 꼭 필요한 프로세스로 빠른 실행을 위해 한번에 로드될 필요가 있어, 안정적으로 제2메모리(12)에서 저장될 필요성이 있는 프로세스가 될 수 있다.
도 5에 도시된 스케줄링 대상 중에서, 예컨대, '대기(Waiting) 상태'의 프로세스의 경우에도, 그 사용의 우선순위가 '실행(Running) 상태'의 프로세스보다 낮은 것일 수 있는데, 본 실시예의 스케줄링 대상에서 제외되는 프로세스는, '대기(Waiting) 상태'의 프로세스보다 사용의 우선순위가 낮을 것일 수 있다.
도 5는 프로세서(180)의 프로세스 스케줄링의 과정을 상세히 도시하고 있다.
본 발명의 일 실시예에 따른 프로세서(180)가 활성화 상태로 복원하거나, 비활성화 상태로 전환하기 전 프로세스는 다음 스케줄링 과정에 따라 동작한다.
먼저, 프로세스가 생성(New)되고 나서 생성된 프로세스는 준비(Ready) 상태에 머문다. 준비 상태는 프로세서(180)가 실행 예정인 상태이다. 준비 상태에서 실행(Running) 상태로 넘어가려면 작업 스케줄러가 해당 프로세스를 선택해야 한다.
디스패치(Dispatch)란 준비 상태에서 실행 상태로 전이되는 과정을 말하며, 이는 작업 스케줄러가 해당 프로세스를 선택하여 실행되는 것으로, 이때 실행된 프로세스가 프로세서(180)를 점유하게 된다.
인터럽트(Interrupt) 신호를 받게 되면, 실행 중이던 프로세스는 준비 상태로 전이되고, 우선순위가 높은 프로세스를 실행 상태로 전이한다.
입출력 혹은 이벤트 대기(I/O or Event wait)는 프로세서(180)를 점유하고 있는 프로세스가 입출력 처리를 해야만 하는 상황이라면, 실행되고 있는 프로세스는 실행 상태에서 대기(Waiting) 상태로 바뀐다. 그리고 대기 상태로 바뀐 프로세스는 입출력 처리가 모두 끝날때까지 대기 상태로 머문다. 그리고 실행 상태이던 프로세스가 대기 상태로 전이됨과 함께, 준비 상태이던 또 다른 프로세스가 실행 상태로 전이된다. 또한 대기 상태인 프로세스는 제1메모리(11)의 어느 영역에 머물러 있거나, 혹은 제2메모리(12)로 스왑아웃되는 경우 비활성화될 수 없다면 제2영역(122)에 임의 액세스 방식으로 저장되는 프로세스를 의미한다.
이 때, 앞서 설명한 바와 같이, 스케줄링 과정에서의 대기 상태와 준비 상태는 프로세서(180)에 의해 동작하는 활성화 상태 중 하나인 바, 본 발명의 비활성화 상태와는 구별된다.
입출력 혹은 이벤트 완료(I/O or Event completion)된 프로세스는 대기 상태에서 준비 상태로 전이되어 스케줄러에게 선택될 수 있게 된다.
실행 상태가 끝나게 되면 프로세스는 종료(terminated)된다.
프로세서(180)는, 복원하는 이벤트에 대응하여, 제2메모리(12)의 영역에 데이터가 저장된 프로세스를 스케줄링 대상에 추가하여 프로세스를 활성화 상태로 복원할 수 있다.
본 발명의 일 실시예에 따르면, 프로세스를 비활성화 상태로 전환하여, 안정적으로 데이터를 제2메모리(12)에 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다. 도 6은 도 3의 S320의 동작을 구현하는 일 예를 흐름도로 도시한 도면이다.
프로세서(180)는 제1메모리(11)에서 제2메모리(12)로 프로세스의 데이터를 스왑아웃 할 때, 제2메모리(12)에 스왑아웃 하고자 하는 프로세스의 ID와 일치하는 제1영역(121)이 존재하는지 식별한다(S610).
프로세스의 ID와 일치하는 제1영역(121)이 있는 경우(S610의 Yes), 프로세서(180)는 해당 프로세스의 데이터가 추후 어플리케이션의 실행을 위해 빠르게 제1메모리(11)로 스왑인이 필요하여 제2메모리(12)에 연속적으로 저장할 수 있다. 반면, 프로세스의 ID와 일치하는 제1영역(121)이 없는 경우(S610의 No), 프로세서(180)는 제2영역(122)에 프로세스의 데이터를 랜덤하게 저장한다.
프로세서(180)는 프로세스의 ID와 일치하는 제1영역(121)이 있는 경우(S610의 Yes), 프로세스가 비활성화 상태인지 여부를 식별한다(S620).
프로세스가 비활성화 상태인 경우(S620의 Yes), 프로세서(180)가 프로세스의 데이터를 제2메모리(12)에 저장하여도, 제2메모리(12)에서 임의로 다시 제1메모리(11)로 이동할 우려가 없기 때문에 스왑아웃 시 메모리 효율을 기대할 수 있다. 또한, 추후 프로세스를 포함하는 어플리케이션을 실행 시, 보다 빠른 실행 속도를 위해 프로세서(180)는 제1영역(121)에 순차 액세스 방식으로 프로세스의 데이터를 저장한다(S630).
프로세스가 비활성화 상태가 아닌 경우, 즉 활성화 상태인 경우(S620의 No), 프로세서(180)는 프로세스의 데이터를 제2메모리(12)의 제2영역(122)에 임의 액세스 방식으로 데이터를 저장한다(S640).
추가로, S620 단계와 관련하여, 프로세서(180)는 프로세스(일부 포함)가 비활성화 상태가 가능한 프로세스인지 여부를 식별할 수 있다. 비활성화 상태가 가능한 경우, 프로세스를 비활성화하여 제1영역(121)에 프로세스의 데이터를 저장(S630)하고, 그렇지 못하면 활성화 상태로 제2영역(122)에 프로세스의 데이터를 저장(S640)할 수 있다.
도 7은 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 7은 도 3의 S330에서 설명한 바와 같이, 순차 액세스 방식으로 제2메모리(12)의 제1영역(121)에 저장된 데이터를 제1메모리(11)에 스왑인하는 모습을 도시한다.
프로세서(180)는 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 제2메모리(12)의 영역에 저장된 프로세스(410)의 데이터를 제1메모리(11)에 로드시킬 수 있다.
비활성화 상태에서 활성화 상태로 복원되는 이벤트란, 예컨대, 사용자의 어플리케이션을 실행하는 사용자입력일 수 있다.
본 발명의 일 실시예에 따른 전자장치(100)는 인터페이스부(110)를 포함하고, 프로세서(180)는, 어플리케이션을 실행하는 사용자입력을 인터페이스부(110)를 통해 수신하고, 수신된 사용자입력에 기초하여 프로세스(410)가 활성화 상태로 복원되는 이벤트가 발생한 것으로 식별할 수 있다.
사용자입력은 디스플레이부(120)에 표시된 그래픽 유저 인터페이스(GUI; Graphic User Interface)에서 어플리케이션을 실행시키는 아이콘을 선택하는 입력이거나, 어플리케이션을 실행하는 음성입력일 수 있다.
상기 도 6의 S620에서, 프로세스의 비활성화 상태 전환 여부에 기초하여 제2메모리(12)의 각 영역에 저장한 경우, 프로세서(180)는 제1영역(121)에 저장된 프로세스를 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 기초하여 활성화 상태로 전환하여 제1메모리(11)에 로드할 수 있다. 프로세서(180)는 활성화 상태로 제2영역(122)에 저장된 프로세스는 도 5에서 설명한 바와 같이 준비상태 혹은 대기상태에 있는 프로세스의 상태를 실행 상태로 전환하여 제1메모리(11)로 로드할 수 있다.
본 발명의 일 실시예에 따르면, 데이터는 순차 액세스 방식으로 제2메모리(12)의 제1영역(121)에 저장된 데이터인 바, 보다 빠른 속도로 제1영역(121)에 저장된 데이터를 한꺼번에 제1메모리(11)에 스왑인할 수 있다.
도 8은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 8은 도 3의 S310의 동작이 수행되기 전 어플리케이션의 복수의 프로세스가 제1메모리(11)에 로드되는 동작 흐름도를 도시한다.
본 발명에서의 프리로딩은 사용자가 별도 실행하지 않았음에도, 추후 실행할 것을 대비하여 미리 프로세서(180)의 백그라운드에서 실행시키는 것인데, 프로세서(180)는 어떤 어플리케이션을 어느 시점에서 실행할 것인지 등을 결정한다.
프로세서(180)는 제1메모리(11)의 여유 메모리량, 프로세서(180)의 속도 또는 프로세서(180)의 평균 사용량을 식별할 수 있다(S810).
프로세서(180)는 제1메모리(11)의 여유 메모리량, 프로세서(180)의 속도 또는 프로세서(180)의 평균 사용량 중 적어도 하나에 기초하여 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별할 수 있다(S820).
일 예로 제1메모리(11)의 여유 메모리량이 기 정의된 값 이상인 경우, 제1메모리(11)에서 현재 실행되고 있는 어플리케이션 이외에, 실행되고 있지 않지만 실행될 것으로 예상되는 어플리케이션을 실행할 여유가 있는 것으로 식별되므로, 프로세서(180)는 어플리케이션의 실행을 준비하는 이베트가 발생한 것으로 식별할 수 있다.
프로세서(180)는 어플리케이션의 사용 빈도, 사용 시간대, 어플리케이션의 용량 등에 기초하여 실행할 어플리케이션을 식별할 수 있다.
프로세서(180)는 어플리케이션의 실행을 준비하는 이벤트에 기초하여 어플리케이션의 복수의 프로세스를 제1메모리(11)에 로드할 수 있다.
본 발명의 일 실시예에 따르면, 프리로딩 될 어플리케이션을 식별하여 보다 효율적으로 프리로딩 및 메모리 사용을 구현할 수 있다.
도 9는 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 9는 앞서 도 3의 S320과 관련하여 전자장치가 구현할 수 있는 또 다른 예를 흐름도로 도시한 도면이다.
프로세서(180)는 도 8에 기초하여 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별됨에 따라 어플리케이션을 프리로딩할 수 있다(S910).
프로세서(180)는 도 6의 S620에서 식별한 바와 같이 프로세스의 상태가 활성화인 경우, 어플리케이션 프로세스의 데이터를 제1메모리(11)에서 제2메모리(12)의 제2영역(122)에 저장할 수 있다(S920).
프로세서(180)는 안정적인 프로세스의 데이터를 제2메모리(12)에 저장하기 위해 프로세스의 상태를 비활성화 상태로 전환할 수 있다(S930).
프로세서(180)는 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리(12)의 제1영역(121)으로 이동할 수 있다(S940).
프로세서(180)는 프로세스의 데이터가 모두 제2메모리(12)로 이동하였는지 여부를 식별하고(S950), 이동되지 않으면(S950의 Yes), 다시 S940으로 돌아가 남은 데이터를 제2메모리(12)의 제1영역(121)으로 이동할 수 있다. 모두 제2메모리(12)로 이동한 경우(S950의 No), 프로세서(180)는 동작을 종료한다.
도 10은 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 10은 프로세서(180)가 데이터를 제2메모리(12)에 안정적으로 이동하고 난 뒤, 도 3의 S330과 관련된 동작 흐름도를 도시한다.
프로세서(180)는 프로세스가 비활성화 상태에서 활성화 상태로 복원되는 이벤트가 발생된 것을 식별한다(S1010). 프로세스가 비활성화 상태에서 활성화 상태로 복원된다는 것은 앞서 도 5에서 설명한 바와 같이, 프로세스가 준비 상태에서 실행(Running) 상태로 넘어가기 위해 작업 스케줄러에 의해 선택된다는 것을 의미한다. 선택된 프로세스는 실행되어 프로세서(180)를 점유하게 된다. 프로세스의 상태를 복원하는 이벤트의 발생은 앞서 도 7에서 설명한 바와 같다.
프로세서(180)는 이벤트, 즉, 사용자의 어플리케이션을 실행하려는 사용자 입력에 대응하여 제1메모리(11)에 어플리케이션의 복수의 프로세스가 존재하는지 여부를 식별한다. 제1메모리(11)에 실행하고자 하는 어플리케이션을 실행할 수 있는 데이터가 존재하는 경우(S1020의 Yes), 프로세서(180)는 데이터를 이용하여 해당 어플리케이션을 실행할 수 있다(S1040).
만약, 해당 어플리케이션의 데이터가 본 발명의 일 실시예에 따라 프리로딩 및 메모리 효율을 위해 제2메모리(12)로 이동된 경우, 프로세서(180)는 제1메모리(11)에 어플리케이션의 복수의 프로세스 중 일부 또는 전부가 존재하지 않음을 식별할 수 있다(S1020의 No). 프로세서(180)는 어플리케이션 데이터가 필요하다는 요청(page fault)을 수신할 수 있다.
프로세서(180)는 어플리케이션의 복수의 프로세스 중 제1메모리(11)에 존재하지 않는 프로세스에 기초하여, 해당 프로세스의 데이터가 저장된 제2메모리(12)의 영역을 식별할 수 있다.
프로세서(180)는 제2메모리(12)에 있는 데이터를 제1메모리(11)로 로드할 수 있다(S1030). 보다 구체적으로는, 프로세서(180)는 식별된 제2메모리(12)의 영역에 저장된 데이터를 제1메모리(11)로 로드할 수 있다.프로세서(180)는 로드한 데이터에 기초하여 어플리케이션을 실행할 수 있다(S1040). 본 발명의 실시예에서 해당 어플리케이션을 실행한다는 것은, 백그라운드에서 실행되던 어플리케이션이 포어그라운드(foreground)로 전환되어 실행되는 것을 의미한다. 프로세서(180)는 비활성화 상태로 제2메모리(12)에 저장된 프로세스를 활성화 상태로 전환하고, 스케줄링 대상에서 추가하여 실행 상태로 동작하게 한다.
10: 메모리
100: 전자장치
110: 인터페이스부
120: 디스플레이부
130: 사용자입력부
140: 저장부
150: 마이크로폰
160: 스피커
170: 센서
180: 프로세서

Claims (17)

  1. 전자장치에 있어서,
    제1메모리;
    제2메모리;
    어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하고,
    상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하고,
    상기 비활성화 상태로 전환된 프로세스의 데이터를 상기 제2메모리의 영역에 순차 액세스 방식으로 저장하고,
    상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는
    프로세서를 포함하는 전자장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 제1메모리에 로드된 상기 어플리케이션의 복수의 프로세스 중 상기 비활성화 상태로 전환할 프로세스를 스케줄링 대상에서 제외시켜 상기 비활성화 상태로 전환하는 전자장치.
  3. 제1항에 있어서,
    상기 비활성화 상태로 전환된 프로세스는 제1프로세스이며, 상기 제2메모리의 영역은 상기 제2메모리의 제1영역이고,
    상기 프로세서는,
    상기 제1메모리에 로드되며 상기 비활성화 상태로 전환되지 않고, 상기 활성화 상태를 유지하는 어플리케이션의 제2프로세스의 데이터를 상기 제2메모리의 제2영역에 임의 액세스 방식으로 저장하는 전자장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 어플리케이션의 실행을 준비하는 이벤트에 기초하여 상기 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하는 전자장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 제1메모리의 여유 메모리량, 상기 프로세서의 속도 또는 상기 프로세서의 평균 사용량 중 적어도 하나에 기초하여 상기 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별하는 전자장치.
  6. 제1항에 있어서,
    인터페이스부를 포함하고,
    상기 프로세서는,
    상기 어플리케이션을 실행하는 사용자입력을 상기 인터페이스부를 통해 수신한 것에 기초하여 상기 이벤트가 발생한 것으로 식별하는 전자장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 이벤트에 대응하여, 상기 제2메모리의 영역에 데이터가 저장된 상기 프로세스를 스케줄링 대상에 추가하여 상기 활성화 상태로 복원하는 전자장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 이벤트에 대응하여 상기 제1메모리에 상기 어플리케이션의 복수의 프로세스가 존재하는지 여부를 식별하고,
    상기 복수의 프로세스 중 상기 제1메모리에 데이터가 존재하지 않는 프로세스에 기초하여, 상기 프로세스의 데이터가 저장된 상기 제2메모리의 영역을 식별하는 전자장치.
  9. 전자장치의 제어방법에 있어서,
    어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계;
    상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하는 단계;
    상기 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하는 단계; 및
    상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 단계를 포함하는 것을 특징으로 하는 전자장치의 제어방법.
  10. 제9항에 있어서,
    상기 제1메모리에 로드된 상기 어플리케이션의 복수의 프로세스 중 상기 비활성화 상태로 전환할 프로세스를 스케줄링 대상에서 제외시켜 상기 비활성화 상태로 전환하는 단계를 포함하는 전자장치의 제어방법.
  11. 제9항에 있어서,
    상기 비활성화 상태로 전환된 프로세스는 제1프로세스이며, 상기 제2메모리의 영역은 상기 제2메모리의 제1영역이고,
    상기 제1메모리에 로드되며 상기 비활성화 상태로 전환되지 않고, 상기 활성화 상태를 유지하는 어플리케이션의 제2프로세스의 데이터를 상기 제2메모리의 제2영역에 임의 액세스 방식으로 저장하는 단계를 포함하는 전자장치의 제어방법.
  12. 제9항에 있어서,
    상기 어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계는;
    상기 어플리케이션의 실행을 준비하는 이벤트에 기초하여 상기 어플리케이션의 복수의 프로세스를 상기 제1메모리에 로드하는 단계를 포함하는 전자장치의 제어방법.
  13. 제12항에 있어서,
    상기 제1메모리의 여유 메모리량, 상기 프로세서의 속도 또는 상기 프로세서의 평균 사용량 중 적어도 하나에 기초하여 상기 어플리케이션의 실행을 준비하는 이벤트가 발생한 것으로 식별하는 단계를 포함하는 전자장치의 제어방법.
  14. 제9항에 있어서,
    상기 어플리케이션을 실행하는 사용자입력을 인터페이스부를 통해 수신한 것에 기초하여 상기 이벤트가 발생한 것으로 식별하는 단계를 포함하는 전자장치의 제어방법.
  15. 제9항에 있어서,
    상기 이벤트에 대응하여, 상기 제2메모리의 영역에 데이터가 저장된 상기 프로세스를 스케줄링 대상에 추가하여 상기 활성화 상태로 복원하는 단계를 포함하는 전자장치의 제어방법.
  16. 제9항에 있어서,
    상기 이벤트에 대응하여 상기 제1메모리에 상기 어플리케이션의 복수의 프로세스가 존재하는지 여부를 식별하는 단계; 및
    상기 복수의 프로세스 중 상기 제1메모리에 데이터가 존재하지 않는 프로세스에 기초하여, 상기 프로세스의 데이터가 저장된 상기 제2메모리의 영역을 식별하는 단계를 포함하는 전자장치의 제어방법.
  17. 컴퓨터가 읽을 수 있는 코드로서, 전자장치의 제어방법을 수행하는 코드를 포함하는 컴퓨터 프로그램이 저장된 기록매체에 있어서, 상기 전자장치의 제어방법은,
    어플리케이션의 복수의 프로세스를 제1메모리에 로드하는 단계;
    상기 제1메모리에 로드된 복수의 프로세스 중 비활성화 상태로 전환된 프로세스를 식별하는 단계;
    상기 비활성화 상태로 전환된 프로세스의 데이터를 제2메모리의 영역에 순차 액세스 방식으로 저장하는 단계; 및
    상기 프로세스가 상기 비활성화 상태에서 활성화 상태로 복원되는 이벤트에 대응하여, 상기 제2메모리의 영역에 저장된 상기 프로세스의 데이터를 상기 제1메모리에 로드시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터가 읽을 수 있는 프로그램이 기록된 기록매체.
KR1020200121501A 2020-09-21 2020-09-21 전자장치 및 그 제어방법 KR20220038987A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200121501A KR20220038987A (ko) 2020-09-21 2020-09-21 전자장치 및 그 제어방법
PCT/KR2021/011982 WO2022059978A1 (ko) 2020-09-21 2021-09-06 전자장치 및 그 제어방법
US18/124,253 US20230236843A1 (en) 2020-09-21 2023-03-21 Electronic apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200121501A KR20220038987A (ko) 2020-09-21 2020-09-21 전자장치 및 그 제어방법

Publications (1)

Publication Number Publication Date
KR20220038987A true KR20220038987A (ko) 2022-03-29

Family

ID=80776282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200121501A KR20220038987A (ko) 2020-09-21 2020-09-21 전자장치 및 그 제어방법

Country Status (3)

Country Link
US (1) US20230236843A1 (ko)
KR (1) KR20220038987A (ko)
WO (1) WO2022059978A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140144572A (ko) * 2013-06-11 2014-12-19 삼성전자주식회사 프로세스를 스케줄링하기 위한 방법 및 그 전자 장치
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备
CN105701025B (zh) * 2015-12-31 2019-07-23 华为技术有限公司 一种内存回收方法及装置
JP2018022345A (ja) * 2016-08-03 2018-02-08 東芝メモリ株式会社 情報処理システム
US10228966B2 (en) * 2017-02-03 2019-03-12 Huawei Technologies Co., Ltd. Methods ad systems for hibernation of processes in computing devices

Also Published As

Publication number Publication date
US20230236843A1 (en) 2023-07-27
WO2022059978A1 (ko) 2022-03-24

Similar Documents

Publication Publication Date Title
US10939065B2 (en) Display apparatus and method for controlling display of display apparatus
JP6184098B2 (ja) 電子装置及びその制御方法
US11537360B2 (en) System for processing user utterance and control method of same
CN110392298B (zh) 一种音量调节方法、装置、设备及介质
CN107924282A (zh) 针对同时作用中应用程序的动态控制方案
EP3651153B1 (en) Electronic device and operation method thereof
KR20190115498A (ko) 사용자의 입력에 대한 외부 전자 장치의 응답 시간에 기반하여 지정된 기능을 제어하는 전자 장치 및 그의 방법
CN108008892B (zh) 一种功能启用的方法及终端
US10929009B2 (en) Electronic device for outputting graphic indication
US11194545B2 (en) Electronic device for performing operation according to user input after partial landing
CN108304108B (zh) 一种应用程序的图标显示方法及移动终端
KR102656521B1 (ko) 디스플레이 장치 및 디스플레이 장치의 제어 방법
KR20140116642A (ko) 음성 인식 기반의 기능 제어 방법 및 장치
US20190026074A1 (en) Electronic device and method for expressing natural language
KR20220038987A (ko) 전자장치 및 그 제어방법
CN108170362B (zh) 一种应用运行状态控制方法及移动终端
KR102480728B1 (ko) 전자장치 및 그 제어방법
KR20150058027A (ko) 디스플레이 장치 및 제어 방법
KR20220015306A (ko) 전자장치 및 그 제어방법
KR20210155505A (ko) 이동 가능한 전자장치 및 그 제어방법
KR20210071664A (ko) 전자장치 및 그 제어방법
CN112559532A (zh) 一种基于红黑树的数据插入方法、装置及电子设备
US20230352020A1 (en) Electronic device and utterance processing method thereof
CN115068942A (zh) 基于虚拟场景的图像渲染方法、装置、介质及设备
KR20240040590A (ko) 전자 장치 및 전자 장치의 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination