KR20240020131A - Apparatus and method for managing processes - Google Patents

Apparatus and method for managing processes Download PDF

Info

Publication number
KR20240020131A
KR20240020131A KR1020220101516A KR20220101516A KR20240020131A KR 20240020131 A KR20240020131 A KR 20240020131A KR 1020220101516 A KR1020220101516 A KR 1020220101516A KR 20220101516 A KR20220101516 A KR 20220101516A KR 20240020131 A KR20240020131 A KR 20240020131A
Authority
KR
South Korea
Prior art keywords
list
started
kill
memory
processes
Prior art date
Application number
KR1020220101516A
Other languages
Korean (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 PCT/KR2023/007761 priority Critical patent/WO2024029717A1/en
Publication of KR20240020131A publication Critical patent/KR20240020131A/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/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시는 프로세스 관리 장치 및 방법에 관한 것으로, 프로세스가 시작되면 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하고, 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하고, 프로세스 킬 이벤트가 발생하면, 프로세스 킬 이벤트의 종류에 따라 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리에서 삭제할 수 있다.The present disclosure relates to a process management device and method. When a process starts, information about the started process is updated in the process list, and the number preset in the process list in order of priority to be protected is checked as a kill protection list, When a process kill event occurs, processes that are not included in the kill protection list can be selected and deleted from memory, depending on the type of process kill event.

Description

프로세스 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING PROCESSES}Process management apparatus and method {APPARATUS AND METHOD FOR MANAGING PROCESSES}

이하의 일 실시 예들은 프로세스가 메모리에 빈번하게 업로드되는 현상을 제어하기 위한 것입니다.The following embodiments are intended to control the phenomenon of processes being frequently uploaded to memory.

프로세스가 많은 메모리를 사용할수록, 메모리에 올라와 있던 데이터는 물리적인 한계상황으로 메모리에서 쫓겨날 수 밖에 없다.The more memory a process uses, the more data stored in memory is forced out of memory due to physical limitations.

안드로이드 운영체제와 같은 멀티테스킹(Multi-Tasking)을 지원하는 운영체제는 동시에 여러 프로세스가 메모리에 업로드 될 수 있다. 이러한 운영체제는 물리적인 메모리 한계상황 때문에 모든 프로세스를 계속 해서 메모리에 유지할 수 없고, 메모리가 부족하거나 메모리에 존재하는 프로세스의 수가 특정 개수를 초과하면 프로세스를 킬(kill) 시키게 된다.In operating systems that support multi-tasking, such as the Android operating system, multiple processes can be uploaded to memory at the same time. This operating system cannot keep all processes in memory due to physical memory limitations, and when memory is insufficient or the number of processes in memory exceeds a certain number, processes are killed.

프로세스가 시작되고 킬 될 때 시스템은 시스템 호출, 권한 설정, 권한 부여, 권한 체크, 실제 사용해야 하는 리소스 로딩 등 다양한 작업을 수행한다. 이는 시스템에 때때로 부담이 된다. When a process is started and killed, the system performs various tasks such as making system calls, setting permissions, granting permissions, checking permissions, and loading resources that must actually be used. This is sometimes a burden on the system.

특히, 동시에 여러 프로세스가 시작되는 경우에는 시스템이 버벅이는 현상이 발생하는데, 부팅 직후 단말이 버벅거리는 현상이 발생하는 것은 이러한 이유 때문이다. In particular, when multiple processes are started at the same time, the system may stutter. This is why the terminal may stutter immediately after booting.

프로세스가 킬 될 때, 또한 시스템은 시그널 핸들러(signal handler)를 동작하면서 메모리를 정리하고, 생성된 프로세스 레코드(Process Record)를 정리하는 작업들을 수행하는데, 프로세스가 시작할 때 만큼의 부하상황이 발생한다.When a process is killed, the system also runs a signal handler, cleans up memory, and cleans up the created process records. This causes as much load as when the process starts. .

따라서 잦은 프로세스의 시작과 킬 상황은 단말의 버벅임 현상을 만들고, 사용자의 체감성능을 떨어뜨리는 주요 원인 중 하나이다.Therefore, frequent process startup and kill situations are one of the main causes of terminal stuttering and deterioration of the user's perceived performance.

일 실시 예에 따른 프로세스 관리 방법은, 프로세스가 시작되면(210) 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하는 동작(220); 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하는 동작(230); 및 프로세스 킬 이벤트가 발생하면(240), 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)을 포함할 수 있다.A process management method according to an embodiment includes: when a process starts (210), updating information about the started process in a process list (220); An operation (230) of checking a preset number of processes in the process list in order of high priority to be protected as a kill protection list; And when a process kill event occurs (240), an operation (250) of selecting a process that is not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110.

일 실시 예에 따른 프로세스 관리 장치는 프로세스가 업로드되는 메모리(110); 및 프로세스가 시작되면 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하고, 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하고, 프로세스 킬 이벤트가 발생하면, 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 프로세서(120)를 포함할 수 있다.A process management device according to an embodiment includes a memory 110 to which a process is uploaded; And when a process starts, the information about the started process is updated in the process list, the number preset in the process list in order of priority protected is checked with the kill protection list, and when a process kill event occurs, the process Depending on the type of kill event, it may include a processor 120 that selects a process not included in the kill protection list and deletes it from the memory 110.

도 1은 일 실시 예에 따른 프로세스 관리 장치의 개략적인 구성을 도시한 도면이다.
도 2는 일 실시 예에 따른 프로세스 관리 장치에서 프로세스를 관리하는 과정을 도시한 흐름도이다.
도 3은 일 실시 예에 따른 프로세스 관리 장치에서 프로세스 리스트를 업데이트 하는 과정을 도시한 흐름도이다.
도 4는 일 실시 예에 따른 프로세스 관리 장치에서 기설정된 시간 간격으로 프로세스 리스트와 킬 보호 리스트를 초기화하는 과정을 도시한 흐름도이다.
도 5는 일 실시 예에 따른 프로세스 관리 장치에서 사용자 요청에 의한 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.
도 6은 일 실시 예에 따른 프로세스 관리 장치에서 메모리에 업로드된 프로세스의 개수가 기설정된 개수를 초과하여 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.
도 7은 일 실시 예에 따른 프로세스 관리 장치에서 메모리의 부족으로 인해 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.
도 8은 일 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
FIG. 1 is a diagram illustrating a schematic configuration of a process management device according to an embodiment.
Figure 2 is a flowchart illustrating a process for managing a process in a process management device according to an embodiment.
Figure 3 is a flowchart illustrating a process of updating a process list in a process management device according to an embodiment.
Figure 4 is a flowchart illustrating a process of initializing a process list and a kill protection list at preset time intervals in a process management device according to an embodiment.
Figure 5 is a flowchart illustrating a processing process when a process kill event due to a user request occurs in a process management device according to an embodiment.
FIG. 6 is a flowchart illustrating a processing process when a process kill event occurs because the number of processes uploaded to memory exceeds a preset number in a process management device according to an embodiment.
FIG. 7 is a flowchart illustrating a process when a process kill event occurs due to insufficient memory in a process management device according to an embodiment.
Figure 8 is a block diagram of an electronic device in a network environment according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. However, various changes can be made to the embodiments, so the scope of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents, or substitutes for the embodiments are included in the scope of rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are for descriptive purposes only and should not be construed as limiting. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by a person of ordinary skill in the technical field to which the embodiments belong. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless explicitly defined in the present application, should not be interpreted in an ideal or excessively formal sense. No.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, when describing with reference to the accompanying drawings, identical components will be assigned the same reference numerals regardless of the reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiments, if it is determined that detailed descriptions of related known technologies may unnecessarily obscure the gist of the embodiments, the detailed descriptions are omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. Additionally, in describing the components of the embodiment, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, sequence, or order of the component is not limited by the term. When a component is described as being "connected," "coupled," or "connected" to another component, that component may be directly connected or connected to that other component, but there is no need for another component between each component. It should be understood that may be “connected,” “combined,” or “connected.”

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components including common functions will be described using the same names in other embodiments. Unless stated to the contrary, the description given in one embodiment may be applied to other embodiments, and detailed description will be omitted to the extent of overlap.

이하에서는, 본 발명의 일 실시 예에 따른 프로세스 관리 장치 및 방법을 첨부된 도 1 내지 도 8을 참조하여 상세히 설명한다.Below, according to an embodiment of the present invention The process management device and method will be described in detail with reference to the attached FIGS. 1 to 8.

도 1은 일 실시 예에 따른 프로세스 관리 장치의 개략적인 구성을 도시한 도면이다.FIG. 1 is a diagram illustrating a schematic configuration of a process management device according to an embodiment.

도 1을 참조하면, 프로세스 관리 장치(100)는 메모리(110)와 프로세서(120)를 포함할 수 있다.Referring to FIG. 1, the process management device 100 may include a memory 110 and a processor 120.

메모리(110)는 램(RAM)과 같은 휘발성 메모리 일 수 있다.The memory 110 may be volatile memory such as RAM.

메모리(110)는 프로세서(120)에 의해 제어되는 프로세스들이 업로드 될 수 있다.Processes controlled by the processor 120 may be uploaded to the memory 110 .

프로세서(120)는 프로세스가 시작되면 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 할 수 있다. When a process starts, the processor 120 can update information about the started process in the process list.

그리고, 프로세서(120)는 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확할 수 있다.In addition, the processor 120 can confirm the kill protection list as a preset number in order of priority to be protected in the process list.

그리고, 프로세서(120)는 프로세스 킬 이벤트가 발생하면, 프로세스 킬 이벤트의 종류에 따라 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제할 수 있다.Also, when a process kill event occurs, the processor 120 may select a process that is not included in the kill protection list according to the type of the process kill event and delete it from the memory 110.

프로세서(120)는 프로세스 리스트를 업데이트 할 때, 프로세스 리스트에서 시작된 프로세스에 관한 정보를 검색하고, 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하는 여부를 확인할 수 있다.When updating the process list, the processor 120 may search for information about the started process in the process list and check whether information about the started process exists in the process list.

프로세서(120)는 확인결과 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하 지 않으면, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화하고, 시작된 프로세스의 프로세스 식별정보와 함께 프로세스 리스트에 업데이트 할 수 있다. 이때, 시작 횟수는 시작된 프로세스가 시작된 횟수이고, 시작 간격은 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고, 시작 소요시간은 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간 일 수 있다.If, as a result of the confirmation, there is no information about the started process in the process list, the processor 120 initializes the information about the number of starts, start intervals, and start time, and updates the process list with the process identification information of the started process. You can. At this time, the number of starts is the number of times the started process started, the start interval is the time interval between the previous start time of the started process and the current start time, and the start time is the number of days it takes for the started process to start after receiving the start request. there is.

프로세서(120)는 확인결과 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하면, 시작된 프로세스의 시작 횟수를 1 증가시키고, 프로세스 리스트에 저장된 시작된 프로세스의 시작 간격과 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 업데이트 하고, 프로세스 리스트에 저장된 시작된 프로세스의 시작 소요시간과 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 업데이트 할 수 있다.As a result of the check, if information about the started process exists in the process list, the processor 120 increases the start count of the started process by 1, compares the start interval of the started process stored in the process list with the current start interval of the started process, and sets a smaller You can update the value and update it to a larger value by comparing the startup time of the started process stored in the process list with the current startup time of the started process.

프로세서(120)는 프로세스 리스트를 업데이트 할 때, 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 프로세스 리스트에서 삭제할 수 있다. 즉, 프로세서(120)는 프로세스 리스트에 포함된 프로세스의 수를 기설정된 개수로 관리할 수 있다.When updating the process list, the processor 120 may delete from the process list the process with the oldest update among the processes present in the process list if the number of processes included in the process list exceeds a preset number. That is, the processor 120 can manage the number of processes included in the process list to a preset number.

프로세서(120)는 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인할 때, 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당할 수 있다.When the processor 120 checks the kill protection list for a preset number of protected processes in the process list in order of high priority, the processor 120 may assign priorities to the processes included in the process list in the order of the highest number of starts.

프로세서(120)는 우선순위를 할당할 때, 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당할 수 있다.When assigning priorities, the processor 120 may assign a higher priority to a process that takes longer to start among processes that have the same number of starts.

또한, 프로세서(120)는 시작 횟수가 동일하고 시작 소요시간이 유사한(기설정된 오프셋 범위 내에 있는) 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당할 수 있다.Additionally, in the case of processes with the same number of starts and similar start times (within a preset offset range), the processor 120 may assign a higher priority to a process with a shorter start interval.

프로세서(120)는 프로세스 킬 이벤트가 사용자의 요청에 의한 것이면, 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되었는지 확인하고, 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되어 있으면 메모리(110)에서 삭제하지 않고 스킵할 수 있다. 프로세서(120)는 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되어 있지 않으면 메모리(110)에서 삭제할 수 있다.If the process kill event is a result of a user's request, the processor 120 checks whether the process requested to be killed by the user is included in the kill protection list, and if the process requested to be killed by the user is included in the kill protection list, the processor 120 deletes it from the memory 110. You can skip it without doing it. The processor 120 may delete the process that the user has requested to kill from the memory 110 if it is not included in the kill protection list.

프로세서(120)는 프로세스 킬 이벤트가 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것이면, 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인할 수 있다. 그리고, 프로세서(120)는 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택할 수 있다. 그리고, 프로세서(120)는 선택된 프로세스가 킬 보호 리스트에 존재하지 않으면 메모리(110)에서 삭제하는 선택된 프로세스가 킬 보호 리스트에 존재하면 스킵하고 다음 순서의 프로세스를 선택할 수 있다. 그리고, 프로세서(120)는 선택된 프로세스가 킬 보호 리스트에 존재하지 않으면 메모리(110)에서 삭제할 수 있다.If a process kill event occurs when the number of processes uploaded to the memory 110 exceeds a preset number, the processor 120 may check which processes are inactive among the processes uploaded to the memory 110. Additionally, the processor 120 may select processes in the order in which they were started most recently among inactive processes. Also, if the selected process does not exist in the kill protection list, the processor 120 may skip the selected process to be deleted from the memory 110 and select the next process in the kill protection list. Additionally, the processor 120 may delete the selected process from the memory 110 if it does not exist in the kill protection list.

프로세서(120)는 시작된 프로세스를 메모리(110)에 업로드할 때, 시작된 프로세스의 스킵 플래그를 폴스(false)로 초기화해서 업로드할 수 있다. 프로세서(120)는 프로세스 킬 이벤트가 메모리(110)의 부족 상황에서 발생한 것이면, 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택할 수 있다. 그리고, 프로세서(120)는 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 메모리(110)의 사용량이 가장 큰 프로세스를 선택할 수 있다. 선택된 프로세스가 킬 보호 리스트에 포함되어 있으면 선택된 프로세스의 스킵 플래그를 트루(true)로 변환하고, 다시 메모리에서 삭제할 프로세서를 상술한 방법과 같이 선택할 수 있다. 이때, 상술한 방법은 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 메모리(110)의 사용량이 가장 큰 프로세스를 선택하는 것일 수 있다. 그리고, 프로세서(120)는 선택된 프로세스가 킬 보호 리스트에 포함되지 않으면 메모리(110)에서 선택된 프로세스를 삭제할 수 있다.When uploading a started process to the memory 110, the processor 120 may initialize the skip flag of the started process to false and upload it. If the process kill event occurs when the memory 110 is insufficient, the processor 120 may select the lowest priority group among groups divided according to priority in the memory 110. Additionally, the processor 120 may select the process with the largest usage of the memory 110 among processes included in the selected group and whose skip flag is false. If the selected process is included in the kill protection list, the skip flag of the selected process is converted to true, and the processor to be deleted from memory can be selected again as described above. At this time, the above-described method may be to select the process with the largest usage of the memory 110 among the processes included in the selected group and whose skip flag is false. Additionally, the processor 120 may delete the selected process from the memory 110 if the selected process is not included in the kill protection list.

이때, 우선순위로 분류된 그룹은 상위 우선순위 그룹, 중간 우선순위 그룹 및 하위 우선순위 그룹으로 분류될 수 있다. 상위 우선순위 그룹은 메모리(110)에 업로드되어 포그라운드로 동작 중인 프로세스들의 그룹일 수 있다. 중간 우선순위 그룹은 메모리(110)에 업로드되어 서비스 중인 프로세스들의 그룹일 수 있다. 하위 우선순위 그룹은 메모리(110)에 업로드되어 백그라운드로 동작 중인 프로세스들의 그룹일 수 있다.At this time, groups classified by priority may be classified into a high priority group, a medium priority group, and a low priority group. The high priority group may be a group of processes that are uploaded to the memory 110 and are operating in the foreground. The medium priority group may be a group of processes that are uploaded to the memory 110 and are being serviced. The lower priority group may be a group of processes that are uploaded to the memory 110 and operating in the background.

프로세서(120)는 기설정된 시간 간격(410)으로 프로세스 리스트와 킬 보호 리스트를 초기화할 수 있다. 이때, 초기화는 프로세스 리스트와 킬 보호 리스트를 기설정된 프로세스 리스트와 기설정된 킬 보호 리스트로 변환하는 것일 수 있다.The processor 120 may initialize the process list and kill protection list at preset time intervals 410. At this time, initialization may be converting the process list and kill protection list into a preset process list and a preset kill protection list.

프로세스 관리 장치(100)에 프로세스 관리 소프트웨어가 설치될 때, 프로세스 리스트는 기설정된 프로세스들을 포함하는 기설정된 프로세스 리스트로 생성될 수 있다. 다시 말해, 프로세스 리스트는 최초에 생성될 때, 기설정된 프로세스들을 포함하는 기설정된 프로세스 리스트로 생성될 수 있다. 이때, 기설정된 프로세스 리스트에 포함되는 기설정된 프로세스들은 개발자가 빈번하게 시작될 것으로 판단한 임의의 프로세스 일 수 있다.When process management software is installed in the process management device 100, a process list may be created as a preset process list including preset processes. In other words, when the process list is initially created, it may be created as a preset process list including preset processes. At this time, the preset processes included in the preset process list may be arbitrary processes that the developer determines will be started frequently.

한편, 프로세스 관리 장치(100)에서 프로세스 관리 소프트웨어가 업데이트될 때, 프로세스 리스트는 기설정된 프로세스들을 포함하는 기설정된 프로세스 리스트로 업데이트 될 수 있다.Meanwhile, when the process management software in the process management device 100 is updated, the process list may be updated to a preset process list including preset processes.

이하, 상기와 같이 구성된 본 개시에 따른 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, the method according to the present disclosure configured as above will be described with reference to the drawings.

도 2는 일 실시 예에 따른 프로세스 관리 장치에서 프로세스를 관리하는 과정을 도시한 흐름도이다.Figure 2 is a flowchart illustrating a process for managing a process in a process management device according to an embodiment.

도 2를 참조하면, 프로세스 관리 장치(100)는 프로세스가 시작되면(210) 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트할 수 있다(220). 이때, 업데이트 하는 시작된 프로세스에 관한 정보는 프로세스 식별정보, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보 일 수 있다. 이때, 시작 횟수는 시작된 프로세스가 시작된 횟수이고, 시작 간격은 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고, 시작 소요시간은 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간일 수 있다. 220동작의 보다 상세한 설명은 이후 도 3을 참조하여 후술한다.Referring to FIG. 2, when a process starts (210), the process management device 100 may update information about the started process in the process list (220). At this time, the information about the started process to be updated may be information about process identification information, start count, start interval, and start time. At this time, the number of starts is the number of times the started process started, the start interval is the time interval between the previous start time of the started process and the current start time, and the start time is the time it takes for the started process to start after receiving the start request. there is. A more detailed description of operation 220 will be described later with reference to FIG. 3.

그리고, 프로세스 관리 장치(100)는 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인할 수 있다(230). 이때, 230동작에서 프로세스 관리 장치(100)는 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당할 수 있다. 230동작에서 프로세스 관리 장치(100)는 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당할 수 있다. 230동작에서 프로세스 관리 장치(100)는 시작 횟수가 동일하고, 시작 소요시간이 기설정된 오프셋 범위 내에 있는 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당할 수 있다.Additionally, the process management device 100 may check the kill protection list as a preset number in order of priority to be protected in the process list (230). At this time, in operation 230, the process management device 100 may assign priorities to processes included in the process list in the order of the highest number of starts. In operation 230, for processes with the same number of starts, the process management device 100 may assign a higher priority to a process with a longer start time. In operation 230, the process management device 100 may assign a higher priority to a process with a shorter start interval for processes that have the same number of starts and whose start time is within a preset offset range.

그리고, 프로세스 관리 장치(100)는 프로세스 킬 이벤트가 발생하는지 확인한다(240).Then, the process management device 100 checks whether a process kill event occurs (240).

240동작의 확인결과 프로세스 킬 이벤트가 발생하면(240), 프로세스 킬 이벤트의 종류에 따라 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제할 수 있다(250). 프로세스 킬 이벤트의 종류에 따른 250동작의 보다 상세한 설명은 이후 도 5, 도 6, 도 7을 참조하여 후술한다.If a process kill event occurs as a result of confirmation of operation 240 (240), processes not included in the kill protection list can be selected and deleted from the memory 110 according to the type of the process kill event (250). A more detailed description of operation 250 according to the type of process kill event will be described later with reference to FIGS. 5, 6, and 7.

본 개시의 프로세스 관리 장치(100)는 도 2의 과정을 통해서 자주 시작되는 프로세스를 메모리(110)에 오래 상주하도록 관리함으로써, 프로세스의 빈번한 시작과 킬로 인한 버벅임을 개선할 수 있다. The process management device 100 of the present disclosure manages frequently started processes to reside in the memory 110 for a long time through the process of FIG. 2, thereby improving stuttering due to frequent starting and killing of processes.

도 3은 일 실시 예에 따른 프로세스 관리 장치에서 프로세스 리스트를 업데이트 하는 과정을 도시한 흐름도이다.Figure 3 is a flowchart illustrating a process of updating a process list in a process management device according to an embodiment.

도 3을 참조하면, 프로세스 관리 장치(100)는 프로세스 리스트에서 시작된 프로세스에 관한 정보를 검색하고, 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하는 여부를 확인할 수 있다(310).Referring to FIG. 3, the process management device 100 may search for information about the started process in the process list and check whether information about the started process exists in the process list (310).

310동작의 확인결과 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하지 않으면, 프로세스 관리 장치(100)는 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하는지 여부를 확인할 수 있다(312).As a result of checking operation 310, if there is no information about the started process in the process list, the process management device 100 may check whether the number of processes included in the process list exceeds the preset number (312).

312동작의 확인결과 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면, 프로세스 관리 장치(100)는 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 프로세스 리스트에서 삭제할 수 있다(314).As a result of checking operation 312, if the number of processes included in the process list exceeds the preset number, the process management device 100 may delete the process with the oldest update among the processes existing in the process list from the process list (314). .

도 3에서 프로세스 리스트에 포함된 프로세스의 개수를 기설정된 개수로 관리하지 않는 경우, 312동작과 314동작은 생략될 수 있다.In FIG. 3, if the number of processes included in the process list is not managed to a preset number, operations 312 and 314 may be omitted.

310동작의 확인결과 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하지 않는 경우, 312동작의 확인결과 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하지 않는 경우, 또는 314동작을 수행한 이후에 프로세스 관리 장치(100)는 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화 할 수 있다(316).As a result of operation 310, if there is no information about the process started in the process list, as a result of operation 312, if the number of processes included in the process list does not exceed the preset number, or after performing operation 314 The process management device 100 may initialize information regarding the number of starts, start intervals, and start time (316).

310동작의 확인결과 프로세스 리스트에 시작된 프로세스에 관한 정보가 존재하면, 프로세스 관리 장치(100)는 시작된 프로세스의 시작 횟수를 1 증가시키고, 프로세스 리스트에 저장된 시작된 프로세스의 시작 간격과 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 설정하고, 프로세스 리스트에 저장된 시작된 프로세스의 시작 소요시간과 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 설정할 수 있다(318).As a result of checking operation 310, if information about the started process exists in the process list, the process management device 100 increases the start count of the started process by 1, and increases the start interval of the started process stored in the process list and the current start interval of the started process. You can set it to a smaller value by comparing , and set it to a larger value by comparing the startup time of the started process stored in the process list with the current startup time of the started process (318).

316동작 또는 318동작 이후, 프로세스 관리 장치(100)는 시작된 프로세스의 프로세스 식별정보, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 프로세스 리스트에 업데이트 할 수 있다(320).After operation 316 or 318, the process management device 100 may update the process list with information about the process identification information, start number, start interval, and start time of the started process (320).

도 4는 일 실시 예에 따른 프로세스 관리 장치에서 기설정된 시간 간격으로 프로세스 리스트와 킬 보호 리스트를 초기화하는 과정을 도시한 흐름도이다.Figure 4 is a flowchart illustrating a process of initializing a process list and a kill protection list at preset time intervals in a process management device according to an embodiment.

도 4를 참조하면, 프로세스 관리 장치(100)는 기설정된 시간 간격을 경과하였는지 확인할 수 있다(410).Referring to FIG. 4, the process management device 100 may check whether a preset time interval has elapsed (410).

410동작의 확인결과 기설정된 시간 간격을 경과하였으면, 프로세스 관리 장치(100)는 프로세스 리스트와 킬 보호 리스트를 초기화할 수 있다(420).As a result of checking operation 410, if the preset time interval has elapsed, the process management device 100 may initialize the process list and kill protection list (420).

이때, 프로세스 리스트와 킬 보호 리스트의 초기화는 프로세스 리스트와 킬 보호 리스트를 기설정된 프로세스 리스트와 기설정된 킬 보호 리스트로 변환하는 것일 수 있다.At this time, initialization of the process list and kill protection list may be to convert the process list and kill protection list into a preset process list and a preset kill protection list.

도 5는 일 실시 예에 따른 프로세스 관리 장치에서 사용자 요청에 의한 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.Figure 5 is a flowchart illustrating a processing process when a process kill event due to a user request occurs in a process management device according to an embodiment.

도 5를 참조하면, 프로세스 관리 장치(100)는 프로세스 킬 이벤트가 사용자의 요청에 의한 것(510)이면, 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되었는지 확인할 수 있다(512).Referring to FIG. 5, if the process kill event is a result of a user's request (510), the process management device 100 may check whether the process requested to be killed by the user is included in the kill protection list (512).

521동작의 확인결과 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되어 있으면, 프로세스 관리 장치(100)는 사용자가 킬 요청한 프로세스를 메모리(110)에서 삭제하지 않고 스킵(skip)할 수 있다(514).As a result of checking operation 521, if the process requested to be killed by the user is included in the kill protection list, the process management device 100 may skip the process requested to be killed by the user without deleting it from the memory 110 (514). .

521동작의 확인결과 사용자가 킬 요청한 프로세스가 킬 보호 리스트에 포함되어 있지 않으면, 프로세스 관리 장치(100)는 사용자가 킬 요청한 프로세스를 메모리(110)에서 삭제할 수 있다(516).As a result of checking operation 521, if the process requested to be killed by the user is not included in the kill protection list, the process management device 100 may delete the process requested to be killed by the user from the memory 110 (516).

도 6은 일 실시 예에 따른 프로세스 관리 장치에서 메모리에 업로드된 프로세스의 개수가 기설정된 개수를 초과하여 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.FIG. 6 is a flowchart illustrating a processing process when a process kill event occurs because the number of processes uploaded to memory exceeds a preset number in a process management device according to an embodiment.

도 6을 참조하면, 프로세스 관리 장치(100)는 프로세스 킬 이벤트가 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것인지 확인할 수 있다(610).Referring to FIG. 6, the process management device 100 may check whether a process kill event occurred because the number of processes uploaded to the memory 110 exceeds a preset number (610).

610동작의 확인결과 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 프로세스 킬 이벤트가 발생한 것이면, 프로세스 관리 장치(100)는 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인할 수 있다(612).As a result of checking operation 610, if the number of processes uploaded to the memory 110 exceeds the preset number and a process kill event occurs, the process management device 100 selects an inactive process among the processes uploaded to the memory 110. You can check (612).

그리고, 프로세스 관리 장치(100)는 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택할 수 있다(614).Additionally, the process management device 100 may select processes in the order in which they were started most recently among inactive processes (614).

그리고, 프로세스 관리 장치(100)는 선택된 프로세스가 킬 보호 리스트에 존재하는지 확인할 수 있다(616).Additionally, the process management device 100 may check whether the selected process exists in the kill protection list (616).

616동작의 확인결과 선택된 프로세스가 킬 보호 리스트에 존재하면, 프로세스 관리 장치(100)는 선택된 프로세스의 삭제를 스킵하고 다음 순서의 프로세스를 선택할 수 있다(618). 618동작 이후 프로세스 관리 장치(100)는 616동작으로 돌아갈 수 있다.As a result of checking operation 616, if the selected process exists in the kill protection list, the process management device 100 can skip deletion of the selected process and select the next process (618). After operation 618, the process management device 100 may return to operation 616.

616동작의 확인결과 선택된 프로세스가 킬 보호 리스트에 존재하면, 프로세스 관리 장치(100)는 선택된 프로세스를 메모리(110)에서 삭제할 수 있다(620).If the selected process exists in the kill protection list as a result of checking operation 616, the process management device 100 may delete the selected process from the memory 110 (620).

도 7은 일 실시 예에 따른 프로세스 관리 장치에서 메모리의 부족으로 인해 프로세스 킬 이벤트가 발생한 경우의 처리 과정을 도시한 흐름도이다.FIG. 7 is a flowchart illustrating a process when a process kill event occurs due to insufficient memory in a process management device according to an embodiment.

도 7을 참조하면, 프로세스 관리 장치(100)는 프로세스 킬 이벤트가 메모리(110)의 부족 상황에서 발생한 것인지 여부를 확인할 수 있다(710).Referring to FIG. 7 , the process management device 100 may check whether a process kill event occurred due to a shortage of memory 110 (710).

710단계의 확인결과 메모리(110)의 부족에 의한 프로세스 킬 이벤트이면, 프로세스 관리 장치(100)는 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택할 수 있다(712). 이때, 우선순위로 분류된 그룹은 상위 우선순위 그룹, 중간 우선순위 그룹 및 하위 우선순위 그룹으로 분류될 수 있다. 상위 우선순위 그룹은 메모리(110)에 업로드되어 포그라운드로 동작 중인 프로세스들의 그룹일 수 있다. 중간 우선순위 그룹은 메모리(110)에 업로드되어 서비스 중인 프로세스들의 그룹일 수 있다. 하위 우선순위 그룹은 메모리(110)에 업로드되어 백그라운드로 동작 중인 프로세스들의 그룹일 수 있다.If, as a result of the confirmation in step 710, it is a process kill event due to insufficient memory 110, the process management device 100 may select the lowest priority group among the groups divided according to priority in the memory 110 (712) ). At this time, groups classified by priority may be classified into a high priority group, a medium priority group, and a low priority group. The high priority group may be a group of processes that are uploaded to the memory 110 and are operating in the foreground. The medium priority group may be a group of processes that are uploaded to the memory 110 and are being serviced. The lower priority group may be a group of processes that are uploaded to the memory 110 and operating in the background.

그리고, 프로세스 관리 장치(100)는 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 메모리(110)의 사용량이 가장 큰 프로세스를 선택할 수 있다(714). 이때, 시작된 프로세스의 스킵 플래그는 시작된 프로세스가 메모리(110)에 업로드될 때, 폴스(false)로 초기화되어 업로드 될 수 있다.Additionally, the process management device 100 may select the process with the largest usage of the memory 110 among the processes included in the selected group and whose skip flag is false (714). At this time, the skip flag of the started process may be initialized to false and uploaded when the started process is uploaded to the memory 110.

그리고, 프로세스 관리 장치(100)는 선택된 프로세스가 킬 보호 리스트에 포함되었는지 여부를 확인할 수 있다(716).Additionally, the process management device 100 may check whether the selected process is included in the kill protection list (716).

716동작의 확인결과 선택된 프로세스가 킬 보호 리스트에 포함되어 있으면,As a result of checking operation 716, if the selected process is included in the kill protection list,

프로세스 관리 장치(100)는 선택된 프로세스의 스킵 플래그를 트루(true)로 변환할 수 있다(718). 718동작 이후 프로세스 관리 장치(100)는 714동작으로 돌아갈 수 있다.The process management device 100 may convert the skip flag of the selected process to true (718). After operation 718, the process management device 100 may return to operation 714.

716동작의 확인결과 선택된 프로세스가 킬 보호 리스트에 포함되지 않으면 프로세스 관리 장치(100)는 메모리(110)에서 선택된 프로세스를 삭제할 수 있다(720).As a result of checking operation 716, if the selected process is not included in the kill protection list, the process management device 100 may delete the selected process from the memory 110 (720).

도 8은 일 실시예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.Figure 8 is a block diagram of an electronic device in a network environment according to one embodiment.

도 8을 참조하면, 네트워크 환경(800)에서 전자 장치(801)는 제1 네트워크(898)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(802)와 통신하거나, 또는 제2 네트워크(899)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(804) 또는 서버(808) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(801)는 서버(808)를 통하여 전자 장치(804)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(801)는 프로세서(820), 메모리(830), 입력 모듈(850), 음향 출력 모듈(855), 디스플레이 모듈(860), 오디오 모듈(870), 센서 모듈(876), 인터페이스(877), 연결 단자(878), 햅틱 모듈(879), 카메라 모듈(880), 전력 관리 모듈(888), 배터리(889), 통신 모듈(890), 가입자 식별 모듈(896), 또는 안테나 모듈(897)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(801)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(878))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(876), 카메라 모듈(880), 또는 안테나 모듈(897))은 하나의 구성요소(예: 디스플레이 모듈(860))로 통합될 수 있다.Referring to FIG. 8, in the network environment 800, the electronic device 801 communicates with the electronic device 802 through a first network 898 (e.g., a short-range wireless communication network) or a second network 899. It is possible to communicate with at least one of the electronic device 804 or the server 808 through (e.g., a long-distance wireless communication network). According to one embodiment, the electronic device 801 may communicate with the electronic device 804 through the server 808. According to one embodiment, the electronic device 801 includes a processor 820, a memory 830, an input module 850, an audio output module 855, a display module 860, an audio module 870, and a sensor module ( 876), interface 877, connection terminal 878, haptic module 879, camera module 880, power management module 888, battery 889, communication module 890, subscriber identification module 896 , or may include an antenna module 897. In some embodiments, at least one of these components (eg, the connection terminal 878) may be omitted, or one or more other components may be added to the electronic device 801. In some embodiments, some of these components (e.g., sensor module 876, camera module 880, or antenna module 897) are integrated into one component (e.g., display module 860). It can be.

프로세서(820)는, 예를 들면, 소프트웨어(예: 프로그램(840))를 실행하여 프로세서(820)에 연결된 전자 장치(801)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(820)는 다른 구성요소(예: 센서 모듈(876) 또는 통신 모듈(890))로부터 수신된 명령 또는 데이터를 휘발성 메모리(832)에 저장하고, 휘발성 메모리(832)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(834)에 저장할 수 있다. 일실시예에 따르면, 프로세서(820)는 메인 프로세서(821)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(823)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(801)가 메인 프로세서(821) 및 보조 프로세서(823)를 포함하는 경우, 보조 프로세서(823)는 메인 프로세서(821)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(823)는 메인 프로세서(821)와 별개로, 또는 그 일부로서 구현될 수 있다.The processor 820, for example, executes software (e.g., program 840) to operate at least one other component (e.g., hardware or software component) of the electronic device 801 connected to the processor 820. It can be controlled and various data processing or calculations can be performed. According to one embodiment, as at least part of data processing or computation, the processor 820 stores commands or data received from another component (e.g., sensor module 876 or communication module 890) in volatile memory 832. The commands or data stored in the volatile memory 832 can be processed, and the resulting data can be stored in the non-volatile memory 834. According to one embodiment, the processor 820 includes a main processor 821 (e.g., a central processing unit or an application processor) or an auxiliary processor 823 that can operate independently or together (e.g., a graphics processing unit, a neural network processing unit ( It may include a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor). For example, if the electronic device 801 includes a main processor 821 and a auxiliary processor 823, the auxiliary processor 823 may be set to use lower power than the main processor 821 or be specialized for a designated function. You can. The auxiliary processor 823 may be implemented separately from the main processor 821 or as part of it.

보조 프로세서(823)는, 예를 들면, 메인 프로세서(821)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(821)를 대신하여, 또는 메인 프로세서(821)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(821)와 함께, 전자 장치(801)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(860), 센서 모듈(876), 또는 통신 모듈(890))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(823)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(880) 또는 통신 모듈(890))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(823)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(801) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(808))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.The auxiliary processor 823 may, for example, act on behalf of the main processor 821 while the main processor 821 is in an inactive (e.g., sleep) state, or while the main processor 821 is in an active (e.g., application execution) state. ), together with the main processor 821, at least one of the components of the electronic device 801 (e.g., the display module 860, the sensor module 876, or the communication module 890) At least some of the functions or states related to can be controlled. According to one embodiment, co-processor 823 (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module 880 or communication module 890). there is. According to one embodiment, the auxiliary processor 823 (eg, neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. Artificial intelligence models can be created through machine learning. For example, such learning may be performed in the electronic device 801 itself on which the artificial intelligence model is performed, or may be performed through a separate server (e.g., server 808). Learning algorithms may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but It is not limited. An artificial intelligence model may include multiple artificial neural network layers. Artificial neural networks include deep neural network (DNN), convolutional neural network (CNN), recurrent neural network (RNN), restricted boltzmann machine (RBM), belief deep network (DBN), bidirectional recurrent deep neural network (BRDNN), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the examples described above. In addition to hardware structures, artificial intelligence models may additionally or alternatively include software structures.

프로세서(820), 메인 프로세서(821) 또는 보조 프로세서(823) 중에서 적어도 하나 또는 조합은 도 1의 프로세서(120)의 동작을 수행할 수 있다.At least one or a combination of the processor 820, the main processor 821, and the auxiliary processor 823 may perform the operations of the processor 120 of FIG. 1.

메모리(830)는, 전자 장치(801)의 적어도 하나의 구성요소(예: 프로세서(820) 또는 센서 모듈(876))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(840)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(830)는, 휘발성 메모리(832) 또는 비휘발성 메모리(834)를 포함할 수 있다. 휘발성 메모리(832) 은 도 1의 메모리(110)의 동작을 수행할 수 있다.The memory 830 may store various data used by at least one component (eg, the processor 820 or the sensor module 876) of the electronic device 801. Data may include, for example, input data or output data for software (e.g., program 840) and instructions related thereto. Memory 830 may include volatile memory 832 or non-volatile memory 834. Volatile memory 832 can perform the operation of memory 110 of FIG. 1.

프로그램(840)은 메모리(830)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(842), 미들 웨어(844) 또는 어플리케이션(846)을 포함할 수 있다. The program 840 may be stored as software in the memory 830 and may include, for example, an operating system 842, middleware 844, or application 846.

입력 모듈(850)은, 전자 장치(801)의 구성요소(예: 프로세서(820))에 사용될 명령 또는 데이터를 전자 장치(801)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(850)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The input module 850 may receive commands or data to be used in a component of the electronic device 801 (e.g., the processor 820) from outside the electronic device 801 (e.g., a user). The input module 850 may include, for example, a microphone, mouse, keyboard, keys (eg, buttons), or digital pen (eg, stylus pen).

음향 출력 모듈(855)은 음향 신호를 전자 장치(801)의 외부로 출력할 수 있다. 음향 출력 모듈(855)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The sound output module 855 may output sound signals to the outside of the electronic device 801. The sound output module 855 may include, for example, a speaker or receiver. Speakers can be used for general purposes such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.

디스플레이 모듈(860)은 전자 장치(801)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(860)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(860)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The display module 860 can visually provide information to the outside of the electronic device 801 (eg, a user). The display module 860 may include, for example, a display, a hologram device, or a projector, and a control circuit for controlling the device. According to one embodiment, the display module 860 may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of force generated by the touch.

오디오 모듈(870)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(870)은, 입력 모듈(850)을 통해 소리를 획득하거나, 음향 출력 모듈(855), 또는 전자 장치(801)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(802))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The audio module 870 can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module 870 acquires sound through the input module 850, the sound output module 855, or an external electronic device (e.g., directly or wirelessly connected to the electronic device 801). Sound may be output through an electronic device 802 (e.g., speaker or headphone).

센서 모듈(876)은 전자 장치(801)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(876)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module 876 detects the operating state (e.g., power or temperature) of the electronic device 801 or the external environmental state (e.g., user state) and generates an electrical signal or data value corresponding to the detected state. can do. According to one embodiment, the sensor module 876 includes, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, humidity sensor, or light sensor.

인터페이스(877)는 전자 장치(801)가 외부 전자 장치(예: 전자 장치(802))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(877)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 877 may support one or more designated protocols that can be used to connect the electronic device 801 directly or wirelessly with an external electronic device (eg, the electronic device 802). According to one embodiment, the interface 877 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

연결 단자(878)는, 그를 통해서 전자 장치(801)가 외부 전자 장치(예: 전자 장치(802))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(878)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 878 may include a connector through which the electronic device 801 can be physically connected to an external electronic device (eg, the electronic device 802). According to one embodiment, the connection terminal 878 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).

햅틱 모듈(879)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(879)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 879 can convert electrical signals into mechanical stimulation (e.g., vibration or movement) or electrical stimulation that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module 879 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

카메라 모듈(880)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(880)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The camera module 880 can capture still images and moving images. According to one embodiment, the camera module 880 may include one or more lenses, image sensors, image signal processors, or flashes.

전력 관리 모듈(888)은 전자 장치(801)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(888)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The power management module 888 can manage power supplied to the electronic device 801. According to one embodiment, the power management module 888 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).

배터리(889)는 전자 장치(801)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(889)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.Battery 889 may supply power to at least one component of electronic device 801. According to one embodiment, the battery 889 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.

통신 모듈(890)은 전자 장치(801)와 외부 전자 장치(예: 전자 장치(802), 전자 장치(804), 또는 서버(808)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(890)은 프로세서(820)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(890)은 무선 통신 모듈(892)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(894)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(898)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(899)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(804)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(892)은 가입자 식별 모듈(896)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(898) 또는 제2 네트워크(899)와 같은 통신 네트워크 내에서 전자 장치(801)를 확인 또는 인증할 수 있다.Communication module 890 is configured to provide a direct (e.g., wired) communication channel or wireless communication channel between electronic device 801 and an external electronic device (e.g., electronic device 802, electronic device 804, or server 808). It can support establishment and communication through established communication channels. Communication module 890 operates independently of processor 820 (e.g., an application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module 890 is a wireless communication module 892 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 894 (e.g., : LAN (local area network) communication module, or power line communication module) may be included. Among these communication modules, the corresponding communication module is a first network 898 (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 899 (e.g., legacy It may communicate with an external electronic device 804 through a telecommunication network such as a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., LAN or WAN). These various types of communication modules may be integrated into one component (e.g., a single chip) or may be implemented as a plurality of separate components (e.g., multiple chips). The wireless communication module 892 uses subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 896 to communicate within a communication network such as the first network 898 or the second network 899. The electronic device 801 can be confirmed or authenticated.

무선 통신 모듈(892)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(892)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(892)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(892)은 전자 장치(801), 외부 전자 장치(예: 전자 장치(804)) 또는 네트워크 시스템(예: 제2 네트워크(899))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(892)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다. The wireless communication module 892 may support 5G networks after 4G networks and next-generation communication technologies, for example, NR access technology (new radio access technology). NR access technology provides high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low latency). -latency communications)) can be supported. The wireless communication module 892 may support high frequency bands (e.g., mmWave bands), for example, to achieve high data rates. The wireless communication module 892 uses various technologies to secure performance in high frequency bands, such as beamforming, massive MIMO (multiple-input and multiple-output), and full-dimensional multiplexing. It can support technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module 892 may support various requirements specified in the electronic device 801, an external electronic device (e.g., electronic device 804), or a network system (e.g., second network 899). According to one embodiment, the wireless communication module 892 supports Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 164 dB or less) for realizing mmTC, or U-plane latency (e.g., 164 dB or less) for realizing URLLC. Example: Downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) can be supported.

안테나 모듈(897)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(897)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(897)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(898) 또는 제2 네트워크(899)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(890)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(890)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(897)의 일부로 형성될 수 있다. The antenna module 897 may transmit or receive signals or power to or from the outside (e.g., an external electronic device). According to one embodiment, the antenna module 897 may include an antenna including a radiator made of a conductor or a conductive pattern formed on a substrate (eg, PCB). According to one embodiment, the antenna module 897 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for the communication method used in the communication network, such as the first network 898 or the second network 899, is connected to the plurality of antennas by, for example, the communication module 890. can be selected. Signals or power may be transmitted or received between the communication module 890 and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (eg, radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module 897.

다양한 실시예에 따르면, 안테나 모듈(897)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, antenna module 897 may form a mmWave antenna module. According to one embodiment, a mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first side (e.g., bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., mmWave band); And a plurality of antennas (e.g., array antennas) disposed on or adjacent to the second side (e.g., top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band. can do.

상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( (e.g. commands or data) can be exchanged with each other.

일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(899)에 연결된 서버(808)를 통해서 전자 장치(801)와 외부의 전자 장치(804)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(802, 또는 804) 각각은 전자 장치(801)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(801)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(802, 804, 또는 808) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(801)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(801)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(801)로 전달할 수 있다. 전자 장치(801)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(801)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(804)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(808)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(804) 또는 서버(808)는 제2 네트워크(899) 내에 포함될 수 있다. 전자 장치(801)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.According to one embodiment, commands or data may be transmitted or received between the electronic device 801 and the external electronic device 804 through the server 808 connected to the second network 899. Each of the external electronic devices 802 or 804 may be of the same or different type as the electronic device 801. According to one embodiment, all or part of the operations performed in the electronic device 801 may be executed in one or more of the external electronic devices 802, 804, or 808. For example, when the electronic device 801 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 801 may perform the function or service instead of executing the function or service on its own. Alternatively, or additionally, one or more external electronic devices may be requested to perform at least part of the function or service. One or more external electronic devices that have received the request may execute at least part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device 801. The electronic device 801 may process the result as is or additionally and provide it as at least part of a response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology can be used. The electronic device 801 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device 804 may include an Internet of Things (IoT) device. Server 808 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 804 or server 808 may be included in the second network 899. The electronic device 801 may be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may store program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with limited drawings as described above, those skilled in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the following claims.

일 실시 예에 따른 프로세스 관리 방법은, 프로세스가 시작되면(210) 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하는 동작(220); 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하는 동작(230); 및 프로세스 킬 이벤트가 발생하면(240), 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)을 포함할 수 있다.A process management method according to an embodiment includes: when a process starts (210), updating information about the started process in a process list (220); An operation (230) of checking a preset number of processes in the process list in order of high priority to be protected as a kill protection list; And when a process kill event occurs (240), an operation (250) of selecting a process that is not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 리스트를 업데이트 하는 동작(220)은, 상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색(310)하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하지 않으면, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화하고(316), 상기 시작된 프로세스의 프로세스 식별정보와 함께 상기 프로세스 리스트에 업데이트 하는 동작(320)을 포함할 수 있다.In the process management method according to an embodiment, the operation 220 of updating the process list includes searching 310 for information about the started process in the process list, and determining that information about the started process exists in the process list. If not, an operation 320 of initializing information on the number of starts, start intervals, and start time required, and updating the process list along with process identification information of the started process (320).

이때, 상기 시작 횟수는 상기 시작된 프로세스가 시작된 횟수이고, 상기 시작 간격은 상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고, 상기 시작 소요시간은 상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간일 수 있다.At this time, the start count is the number of times the started process started, the start interval is the time interval between the previous start time of the started process and the current start time, and the start time is the start time when the started process starts after receiving a start request. It may be the time it takes for it to happen.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 리스트를 업데이트 하는 동작(220)은, 상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색(310)하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하면, 상기 시작된 프로세스의 시작 횟수를 1 증가시키고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 간격과 상기 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 업데이트 하고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 소요시간과 상기 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 업데이트 하는 동작(318, 320)을 포함할 수 있다.In the process management method according to an embodiment, the operation 220 of updating the process list includes searching 310 for information about the started process in the process list, and determining that information about the started process exists in the process list. If so, the start count of the started process is increased by 1, the start interval of the started process stored in the process list is compared with the current start interval of the started process, updated to a smaller value, and the started process stored in the process list is updated to a smaller value. It may include operations 318 and 320 of comparing the start time required for and the current start time required for the started process and updating it to a larger value.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 리스트를 업데이트 하는 동작(220)은, 상기 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면(312) 상기 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 상기 프로세스 리스트에서 삭제하는 동작(314)을 포함할 수 있다.In the process management method according to one embodiment, the operation of updating the process list (220) includes, when the number of processes included in the process list exceeds a preset number (312), the update is performed among the processes existing in the process list. An operation 314 of deleting the oldest process from the process list may be included.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하는 동작(230)은, 상기 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당하고, 상기 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당하고, 상기 시작 횟수가 동일하고, 상기 시작 소요시간이 기설정된 오프셋 범위 내에 있는 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당할 수 있다.In the process management method according to one embodiment, the operation 230 of checking the number of preset numbers in the process list in the order of high priority protected as the kill protection list is determined by the order in which the processes included in the process list have a high number of start times. For processes with the same number of starts, a higher priority is assigned to a process with a longer start time, and processes with the same number of starts and whose start time are within a preset offset range In these cases, a higher priority can be assigned to processes with shorter startup intervals.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은, 상기 프로세스 킬 이벤트가 사용자의 요청에 의한 것(510)이면, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되었는지 확인(512)하고, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 메모리(110)에서 삭제하지 않고(514), 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있지 않으면 상기 메모리(110)에서 삭제(516)할 수 있다.In the process management method according to one embodiment, the operation 250 of selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110 is performed when the process kill event is requested by the user. If so (510), it is checked (512) whether the process that the user requested to kill is included in the kill protection list, and if the process that the user requested to kill is included in the kill protection list, it is deleted from the memory (110). Otherwise, if the process requested to be killed by the user is not included in the kill protection list, it can be deleted from the memory 110 (516).

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은, 상기 프로세스 킬 이벤트가 상기 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것(610)이면, 상기 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인(612)하고, 상기 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택(614)하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하면(616) 스킵하고 다음 순서의 프로세스를 선택(618)하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하지 않으면(616) 상기 메모리(110)에서 삭제(620)할 수 있다.In the process management method according to an embodiment, the operation 250 of selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110 is performed when the process kill event is selected from the memory ( If the number of processes uploaded to 110) exceeds the preset number (610), the inactive process among the processes uploaded to the memory 110 is checked (612), and the most inactive process is checked (612). Select a process in the order started a long time ago (614), and if the selected process exists in the kill protection list (616), skip it and select a process in the next order (618), and if the selected process exists in the kill protection list, If not (616), it can be deleted (620) from the memory 110.

일 실시 예에 따른 프로세스 관리 방법에서 상기 시작된 프로세스에 관한 정보를 프로세스 리스트로 업데이트 하는 동작(220)은, 상기 시작된 프로세스를 상기 메모리(110)에 업로드할 때, 상기 시작된 프로세스의 스킵 플래그를 폴스(false)로 초기화해서 업로드하고, 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은, 상기 프로세스 킬 이벤트가 상기 메모리(110)의 부족 상황에서 발생한 것(710)이면, 상기 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택(712)하고, 상기 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 상기 메모리(110)의 사용량이 가장 큰 프로세스를 선택(714)하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 포함(716)되지 않으면 상기 메모리(110)에서 상기 선택된 프로세스를 삭제(720)하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 포함(716)되어 있으면 상기 선택된 프로세스의 스킵 플래그를 트루(true)로 변환(718)할 수 있다.In the process management method according to one embodiment, the operation 220 of updating information about the started process to the process list includes, when uploading the started process to the memory 110, the skip flag of the started process is set to false ( In the operation 250 of initializing and uploading to false) and selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110, the process kill event is deleted from the memory 110. ), if a shortage situation occurs (710), the lowest priority group is selected (712) among the groups divided according to priority in the memory 110, and the group included in the selected group and the skip flag is false is selected (712). Among the processes, the process with the largest usage of the memory 110 is selected (714), and if the selected process is not included in the kill protection list (716), the selected process is deleted from the memory 110 (720). , if the selected process is included in the kill protection list (716), the skip flag of the selected process can be converted to true (718).

이때, 상기 그룹은, 상기 메모리(110)에 업로드되어 포그라운드로 동작 중인 프로세스를 상위 우선순위 그룹으로 분류되고, 상기 메모리(110)에 업로드되어 서비스 중인 프로세스를 중간 우선순위 그룹으로 분류되고, 상기 메모리(110)에 업로드되어 백그라운드로 동작 중인 프로세스를 하위 우선순위 그룹으로 분류될 수 있다.At this time, in the group, processes uploaded to the memory 110 and operating in the foreground are classified as a high priority group, and processes uploaded to the memory 110 and in service are classified as a medium priority group. Processes uploaded to the memory 110 and operating in the background may be classified into a lower priority group.

일 실시 예에 따른 프로세스 관리 방법은 기설정된 시간 간격(410)으로 상기 프로세스 리스트와 상기 킬 보호 리스트를 초기화 하는 동작(420)을 더 포함할 수 있다.The process management method according to an embodiment may further include an operation 420 of initializing the process list and the kill protection list at a preset time interval 410.

일 실시 예에 따른 프로세스 관리 방법에서 상기 초기화하는 동작(420)은, 상기 프로세스 리스트와 상기 킬 보호 리스트를 기설정된 프로세스 리스트와 기설정된 킬 보호 리스트로 변환하여 초기화할 수 있다.In the process management method according to one embodiment, the initializing operation 420 may be performed by converting the process list and the kill protection list into a preset process list and a preset kill protection list.

일 실시 예에 따른 프로세스 관리 방법에서 상기 프로세스 리스트는, 최초에 생성될 때, 기설정된 프로세스들을 포함하는 기설정된 프로세스 리스트로 생성될 수 있다.In the process management method according to one embodiment, when the process list is initially created, it may be created as a preset process list including preset processes.

일 실시 예에 따른 프로세스 관리 장치는 프로세스가 업로드되는 메모리(110); 및 프로세스가 시작되면 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하고, 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하고, 프로세스 킬 이벤트가 발생하면, 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 프로세서(120)를 포함할 수 있다.A process management device according to an embodiment includes a memory 110 to which a process is uploaded; And when a process starts, the information about the started process is updated in the process list, the number preset in the process list in order of priority protected is checked with the kill protection list, and when a process kill event occurs, the process Depending on the type of kill event, it may include a processor 120 that selects a process not included in the kill protection list and deletes it from the memory 110.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 리스트를 업데이트 할 때, 상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하지 않으면, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화하고, 상기 시작된 프로세스의 프로세스 식별정보와 함께 상기 프로세스 리스트에 업데이트 할 수 있다.When updating the process list, the processor 120 of the process management device according to one embodiment searches for information about the started process in the process list, and determines that information about the started process exists in the process list. If not, information on the number of starts, start intervals, and start time required can be initialized and updated in the process list along with the process identification information of the started process.

이때, 상기 시작 횟수는 상기 시작된 프로세스가 시작된 횟수이고, 상기 시작 간격은 상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고, 상기 시작 소요시간은 상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간 일 수 있다.At this time, the start count is the number of times the started process started, the start interval is the time interval between the previous start time of the started process and the current start time, and the start time is the start time when the started process starts after receiving a start request. It may be the time it takes for it to happen.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 리스트를 업데이트 할 때, 상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하면, 상기 시작된 프로세스의 시작 횟수를 1 증가시키고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 간격과 상기 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 업데이트 하고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 소요시간과 상기 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 업데이트 할 수 있다.When updating the process list, the processor 120 of the process management device according to one embodiment searches for information about the started process in the process list, and determines that information about the started process exists in the process list. If so, the start count of the started process is increased by 1, the start interval of the started process stored in the process list is compared with the current start interval of the started process, updated to a smaller value, and the started process stored in the process list is updated to a smaller value. It can be updated to a larger value by comparing the start time required for and the current start time required for the process started above.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 리스트를 업데이트 할 때, 상기 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면 상기 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 상기 프로세스 리스트에서 삭제할 수 있다.When updating the process list, the processor 120 of the process management device according to one embodiment updates the process among the processes present in the process list if the number of processes included in the process list exceeds a preset number. The oldest process can be deleted from the process list.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인할 때, 상기 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당하고, 상기 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당하고, 상기 시작 횟수가 동일하고, 상기 시작 소요시간이 기설정된 오프셋 범위 내에 있는 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당할 수 있다.When the processor 120 of the process management device according to an embodiment checks the number preset in the process list in order of high priority as a kill protection list, the number of starts of the process included in the process list is Priorities are assigned in higher order, and for processes with the same number of starts, a higher priority is assigned to a process with a longer start time, and the number of starts is the same, and the start time is within a preset offset range. For processes that exist, higher priorities can be assigned to processes with shorter startup intervals.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 킬 이벤트가 사용자의 요청에 의한 것이면, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되었는지 확인하고, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 메모리(110)에서 삭제하지 않고, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있지 않으면 상기 메모리(110)에서 삭제할 수 있다.If the process kill event is a result of a user's request, the processor 120 of the process management device according to one embodiment checks whether the process requested to be killed by the user is included in the kill protection list, and determines whether the process requested to be killed by the user is included in the kill protection list. If a process is included in the kill protection list, it may not be deleted from the memory 110. If the process requested to be killed by the user is not included in the kill protection list, it may be deleted from the memory 110.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 프로세스 킬 이벤트가 상기 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것이면, 상기 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인하고, 상기 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하면 스킵하고 다음 순서의 프로세스를 선택하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하지 않으면 상기 메모리(110)에서 삭제할 수 있다.The processor 120 of the process management device according to an embodiment may, if the process kill event occurs when the number of processes uploaded to the memory 110 exceeds a preset number, Among the processes, an inactive process is checked, a process is selected from among the inactive processes in the order in which it was started most recently, and if the selected process exists in the kill protection list, it is skipped and the next process is selected, and the selected process is selected. If a process does not exist in the kill protection list, it can be deleted from the memory 110.

일 실시 예에 따른 프로세스 관리 장치의 상기 프로세서(120)는, 상기 시작된 프로세스를 상기 메모리(110)에 업로드할 때, 상기 시작된 프로세스의 스킵 플래그를 폴스(false)로 초기화해서 업로드하고, 상기 프로세스 킬 이벤트가 상기 메모리(110)의 부족 상황에서 발생한 것이면, 상기 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택하고, 상기 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 상기 메모리(110)의 사용량이 가장 큰 프로세스를 선택하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 포함되지 않으면 상기 메모리(110)에서 상기 선택된 프로세스를 삭제하고, 상기 선택된 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 선택된 프로세스의 스킵 플래그를 트루(true)로 변환할 수 있다.When uploading the started process to the memory 110, the processor 120 of the process management device according to one embodiment initializes the skip flag of the started process to false, uploads it, and kills the process. If the event occurs due to a shortage of the memory 110, a process that selects the lowest priority group among the groups divided according to priority in the memory 110 and is included in the selected group and the skip flag is false Among them, the process with the largest usage of the memory 110 is selected, and if the selected process is not included in the kill protection list, the selected process is deleted from the memory 110, and the selected process is included in the kill protection list. If included, the skip flag of the selected process can be converted to true.

[1] [One]

Claims (20)

프로세스가 시작되면(210) 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하는 동작(220);
상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하는 동작(230); 및
프로세스 킬 이벤트가 발생하면(240), 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)
을 포함하는 프로세스 관리 방법.
When a process starts (210), an operation of updating information about the started process in the process list (220);
An operation (230) of checking a preset number of processes in the process list in order of high priority to be protected as a kill protection list; and
When a process kill event occurs (240), an operation (250) of selecting processes that are not included in the kill protection list according to the type of the process kill event and deleting them from the memory (110).
Process management method including.
제1항에 있어서,
상기 프로세스 리스트를 업데이트 하는 동작(220)은,
상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색(310)하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하지 않으면, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화하고(316), 상기 시작된 프로세스의 프로세스 식별정보와 함께 상기 프로세스 리스트에 업데이트 하는 동작(320)
을 포함하고,
상기 시작 횟수는,
상기 시작된 프로세스가 시작된 횟수이고,
상기 시작 간격은,
상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고,
상기 시작 소요시간은,
상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간인
프로세스 관리 방법.
According to paragraph 1,
The operation 220 of updating the process list is,
Information about the started process is searched in the process list (310), and if information about the started process does not exist in the process list, information about the number of starts, start intervals, and start time is initialized (316). , An operation of updating the process list with the process identification information of the started process (320)
Including,
The number of starts is,
The number of times the started process was started,
The starting interval is,
The time interval between the previous start time and the current start time of the started process,
The starting time is,
The time taken for the started process to receive the start request and start
How to manage the process.
제1항 내지 제2항 중 어느 한 항에 있어서,
상기 프로세스 리스트를 업데이트 하는 동작(220)은,
상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색(310)하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하면, 상기 시작된 프로세스의 시작 횟수를 1 증가시키고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 간격과 상기 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 업데이트 하고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 소요시간과 상기 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 업데이트 하는 동작(318, 320)
을 포함하고,
상기 시작 횟수는,
상기 시작된 프로세스가 시작된 횟수이고,
상기 시작 간격은,
상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고,
상기 시작 소요시간은,
상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간인
프로세스 관리 방법.
According to any one of claims 1 and 2,
The operation 220 of updating the process list is,
Information about the started process is searched in the process list (310), and if information about the started process exists in the process list, the start count of the started process is increased by 1, and the started process stored in the process list is increased by 1. Compare the start interval of the started process with the current start interval of the started process and update it to a smaller value, and compare the start time of the started process stored in the process list with the current start time of the started process and update it to a larger value. Action (318, 320)
Including,
The number of starts is,
The number of times the started process was started,
The starting interval is,
The time interval between the previous start time and the current start time of the started process,
The starting time is,
The time taken for the started process to receive the start request and start
How to manage the process.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 프로세스 리스트를 업데이트 하는 동작(220)은,
상기 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면(312) 상기 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 상기 프로세스 리스트에서 삭제하는 동작(314)
을 포함하는 프로세스 관리 방법.
According to any one of claims 1 to 3,
The operation 220 of updating the process list is,
If the number of processes included in the process list exceeds a preset number (312), the operation of deleting the process with the oldest update among the processes existing in the process list from the process list (314)
Process management method including.
제1항 내지 제4항 중 어느 한 항에 있어서,
상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하는 동작(230)은,
상기 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당하고,
상기 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당하고,
상기 시작 횟수가 동일하고, 상기 시작 소요시간이 기설정된 오프셋 범위 내에 있는 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당하는
프로세스 관리 방법.
According to any one of claims 1 to 4,
The operation 230 of checking the kill protection list for a preset number of protected processes in the process list in order of high priority,
Assign priorities to the processes included in the process list in order of the highest number of starts,
For processes with the same number of startups, a higher priority is assigned to the process with a longer startup time,
For processes where the number of starts is the same and the start time is within a preset offset range, a higher priority is assigned to the process with a shorter start interval.
How to manage the process.
제1항 내지 제5항 중 어느 한 항에 있어서,
상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은,
상기 프로세스 킬 이벤트가 사용자의 요청에 의한 것(510)이면, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되었는지 확인(512)하고,
상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 메모리(110)에서 삭제하지 않고(514),
상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있지 않으면 상기 메모리(110)에서 삭제(516)하는
프로세스 관리 방법.
According to any one of claims 1 to 5,
Operation 250 of selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110,
If the process kill event is due to a user's request (510), check whether the process requested to be killed by the user is included in the kill protection list (512),
If the process requested to be killed by the user is included in the kill protection list, it is not deleted from the memory 110 (514),
If the process requested to be killed by the user is not included in the kill protection list, it is deleted (516) from the memory 110.
How to manage the process.
제1항 내지 제6항 중 어느 한 항에 있어서,
상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은,
상기 프로세스 킬 이벤트가 상기 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것(610)이면, 상기 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인(612)하고,
상기 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택(614)하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하면(616) 스킵하고 다음 순서의 프로세스를 선택(618)하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하지 않으면(616) 상기 메모리(110)에서 삭제(620)하는
프로세스 관리 방법.
According to any one of claims 1 to 6,
Operation 250 of selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110,
If the process kill event occurs when the number of processes uploaded to the memory 110 exceeds the preset number (610), inactive processes among the processes uploaded to the memory 110 are checked (612) ,
Among the inactive processes, the process is selected in the order in which it was started most recently (614),
If the selected process exists in the kill protection list (616), skip it and select the next process (618),
If the selected process does not exist in the kill protection list (616), it is deleted (620) from the memory 110.
How to manage the process.
제1항 내지 제7항 중 어느 한 항에 있어서,
상기 시작된 프로세스에 관한 정보를 프로세스 리스트로 업데이트 하는 동작(220)은,
상기 시작된 프로세스를 상기 메모리(110)에 업로드할 때, 상기 시작된 프로세스의 스킵 플래그를 폴스(false)로 초기화해서 업로드하고,
상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 동작(250)은,
상기 프로세스 킬 이벤트가 상기 메모리(110)의 부족 상황에서 발생한 것(710)이면, 상기 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택(712)하고,
상기 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 상기 메모리(110)의 사용량이 가장 큰 프로세스를 선택(714)하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 포함(716)되지 않으면 상기 메모리(110)에서 상기 선택된 프로세스를 삭제(720)하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 포함(716)되어 있으면 상기 선택된 프로세스의 스킵 플래그를 트루(true)로 변환(718)하는
프로세스 관리 방법.
According to any one of claims 1 to 7,
Operation 220 of updating information about the started process to the process list,
When uploading the started process to the memory 110, the skip flag of the started process is initialized to false and uploaded,
Operation 250 of selecting a process not included in the kill protection list according to the type of the process kill event and deleting it from the memory 110,
If the process kill event occurs in a situation where the memory 110 is insufficient (710), the group with the lowest priority is selected from among the groups divided according to priority in the memory 110 (712),
Selecting the process with the largest usage of the memory 110 among the processes included in the selected group and having a false skip flag (714),
If the selected process is not included in the kill protection list (716), the selected process is deleted (720) from the memory 110,
If the selected process is included in the kill protection list (716), the skip flag of the selected process is converted to true (718).
How to manage the process.
제1항 내지 제8항 중 어느 한 항에 있어서,
상기 그룹은,
상기 메모리(110)에 업로드되어 포그라운드로 동작 중인 프로세스를 상위 우선순위 그룹으로 분류되고,
상기 메모리(110)에 업로드되어 서비스 중인 프로세스를 중간 우선순위 그룹으로 분류되고,
상기 메모리(110)에 업로드되어 백그라운드로 동작 중인 프로세스를 하위 우선순위 그룹으로 분류되는
프로세스 관리 방법.
According to any one of claims 1 to 8,
The group is:
Processes uploaded to the memory 110 and operating in the foreground are classified into a high priority group,
Processes uploaded to the memory 110 and in service are classified into a medium priority group,
Processes uploaded to the memory 110 and operating in the background are classified into a lower priority group.
How to manage the process.
제1항 내지 제9항 중 어느 한 항에 있어서,
기설정된 시간 간격(410)으로 상기 프로세스 리스트와 상기 킬 보호 리스트를 초기화 하는 동작(420)
을 더 포함하는 프로세스 관리 방법.
According to any one of claims 1 to 9,
An operation (420) to initialize the process list and the kill protection list at a preset time interval (410).
A process management method further comprising:
제1항 내지 제10항 중 어느 한 항에 있어서,
상기 초기화하는 동작(420)은,
상기 프로세스 리스트와 상기 킬 보호 리스트를 기설정된 프로세스 리스트와 기설정된 킬 보호 리스트로 변환하여 초기화하는
프로세스 관리 방법.
According to any one of claims 1 to 10,
The initializing operation 420 is,
Initializing the process list and the kill protection list by converting them into a preset process list and a preset kill protection list.
How to manage the process.
제1항 내지 제11항 중 어느 한 항에 있어서,
상기 프로세스 리스트는,
최초에 생성될 때, 기설정된 프로세스들을 포함하는 기설정된 프로세스 리스트로 생성되는
프로세스 관리 방법.
According to any one of claims 1 to 11,
The process list is,
When initially created, it is created as a preset process list containing preset processes.
How to manage the process.
프로세스가 업로드되는 메모리(110); 및
프로세스가 시작되면 상기 시작된 프로세스에 관한 정보를 프로세스 리스트에 업데이트 하고, 상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인하고, 프로세스 킬 이벤트가 발생하면, 상기 프로세스 킬 이벤트의 종류에 따라 상기 킬 보호 리스트에 포함되지 않은 프로세스를 선택하여 메모리(110)에서 삭제하는 프로세서(120)
를 포함하는 프로세스 관리 장치.
Memory 110 to which the process is uploaded; and
When a process starts, the information about the started process is updated in the process list, the number preset in the process list in order of priority protected is checked with the kill protection list, and when a process kill event occurs, the process kill A processor 120 that selects processes not included in the kill protection list according to the type of event and deletes them from the memory 110.
A process management device including a.
제13항에 있어서,
상기 프로세서(120)는,
상기 프로세스 리스트를 업데이트 할 때,
상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하지 않으면, 시작 횟수, 시작 간격 및 시작 소요시간에 관한 정보를 초기화하고, 상기 시작된 프로세스의 프로세스 식별정보와 함께 상기 프로세스 리스트에 업데이트 하고,
상기 시작 횟수는,
상기 시작된 프로세스가 시작된 횟수이고,
상기 시작 간격은,
상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고,
상기 시작 소요시간은,
상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간인
프로세스 관리 장치.
According to clause 13,
The processor 120,
When updating the process list,
Search for information about the started process in the process list, and if there is no information about the started process in the process list, initialize information about the number of starts, start intervals, and start time, and start the process of the started process. Update the process list with identification information,
The number of starts is,
The number of times the started process was started,
The starting interval is,
The time interval between the previous start time and the current start time of the started process,
The starting time is,
The time taken for the started process to receive the start request and start
Process management device.
제13항 내지 제14항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 프로세스 리스트를 업데이트 할 때,
상기 프로세스 리스트에서 상기 시작된 프로세스에 관한 정보를 검색하고, 상기 프로세스 리스트에 상기 시작된 프로세스에 관한 정보가 존재하면, 상기 시작된 프로세스의 시작 횟수를 1 증가시키고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 간격과 상기 시작된 프로세스의 이번 시작 간격을 비교해서 더 작은 값으로 업데이트 하고, 상기 프로세스 리스트에 저장된 상기 시작된 프로세스의 시작 소요시간과 상기 시작된 프로세스의 이번 시작 소요시간을 비교해서 더 큰 값으로 업데이트 하고,
상기 시작 횟수는,
상기 시작된 프로세스가 시작된 횟수이고,
상기 시작 간격은,
상기 시작된 프로세스의 이전에 시작 시간과 금번 시작 시간 사이의 시간 간격이고,
상기 시작 소요시간은,
상기 시작된 프로세스가 시작 요청을 받고 시작되기까지 걸린 시간인
프로세스 관리 장치.
According to any one of claims 13 to 14,
The processor 120,
When updating the process list,
Search for information about the started process in the process list, and if information about the started process exists in the process list, increase the start count of the started process by 1, and increase the start interval of the started process stored in the process list. Compare the current start interval of the started process and update it to a smaller value, compare the start time of the started process stored in the process list with the current start time of the started process, and update it to a larger value,
The number of starts is,
The number of times the started process was started,
The starting interval is,
The time interval between the previous start time and the current start time of the started process,
The starting time is,
The time taken for the started process to receive the start request and start
Process management device.
제13항 내지 제15항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 프로세스 리스트를 업데이트 할 때,
상기 프로세스 리스트에 포함된 프로세스의 개수가 기설정된 개수를 초과하면 상기 프로세스 리스트에 존재하는 프로세스 중에서 업데이트가 가장 오래된 프로세스를 상기 프로세스 리스트에서 삭제하는
프로세스 관리 장치
According to any one of claims 13 to 15,
The processor 120,
When updating the process list,
If the number of processes included in the process list exceeds a preset number, the process with the oldest update among the processes existing in the process list is deleted from the process list.
process management device
제13항 내지 제16항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 프로세스 리스트에서 보호되는 우선순위가 높은 순서로 기설정된 개수를 킬 보호 리스트로 확인할 때,
상기 프로세스 리스트에 포함된 프로세스의 시작 횟수가 높은 순서로 우선순위를 할당하고,
상기 시작 횟수가 동일한 프로세스들의 경우 시작 소요시간이 더 긴 프로세스에 더 높은 우선순위를 할당하고,
상기 시작 횟수가 동일하고, 상기 시작 소요시간이 기설정된 오프셋 범위 내에 있는 프로세스들의 경우 시작 간격이 더 짧은 프로세스에 더 높은 우선순위를 할당하는
프로세스 관리 장치.
According to any one of claims 13 to 16,
The processor 120,
When checking the kill protection list for the number of processes set in order of priority protected in the above process list,
Assign priorities to the processes included in the process list in order of the highest number of starts,
For processes with the same number of startups, a higher priority is assigned to the process with a longer startup time,
For processes where the number of starts is the same and the start time is within a preset offset range, a higher priority is assigned to the process with a shorter start interval.
Process management device.
제13항 내지 제17항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 프로세스 킬 이벤트가 사용자의 요청에 의한 것이면, 상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되었는지 확인하고,
상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 메모리(110)에서 삭제하지 않고,
상기 사용자가 킬 요청한 프로세스가 상기 킬 보호 리스트에 포함되어 있지 않으면 상기 메모리(110)에서 삭제하는
프로세스 관리 장치.
According to any one of claims 13 to 17,
The processor 120,
If the process kill event is due to a user's request, check whether the process requested to be killed by the user is included in the kill protection list,
If the process requested to be killed by the user is included in the kill protection list, it is not deleted from the memory 110,
If the process requested to be killed by the user is not included in the kill protection list, it is deleted from the memory 110.
Process management device.
제13항 내지 제18항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 프로세스 킬 이벤트가 상기 메모리(110)에 업로드된 프로세스의 개수가 기설정된 개수를 초과해서 발생한 것이면, 상기 메모리(110)에 업로드된 프로세스 중에서 활동이 없는 프로세스를 확인하고,
상기 활동이 없는 프로세스 중에서 가장 오래전에 시작된 순서대로 프로세스를 선택하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하면 스킵하고 다음 순서의 프로세스를 선택하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 존재하지 않으면 상기 메모리(110)에서 삭제하는
프로세스 관리 방법.
According to any one of claims 13 to 18,
The processor 120,
If the process kill event occurs when the number of processes uploaded to the memory 110 exceeds the preset number, check which process is inactive among the processes uploaded to the memory 110,
Among the processes with no activity, select the process in the order in which it was started most recently,
If the selected process exists in the kill protection list, skip it and select the next process,
If the selected process does not exist in the kill protection list, it is deleted from the memory 110.
How to manage the process.
제13항 내지 제19항 중 어느 한 항에 있어서,
상기 프로세서(120)는,
상기 시작된 프로세스를 상기 메모리(110)에 업로드할 때, 상기 시작된 프로세스의 스킵 플래그를 폴스(false)로 초기화해서 업로드하고,
상기 프로세스 킬 이벤트가 상기 메모리(110)의 부족 상황에서 발생한 것이면, 상기 메모리(110)에서 우선순위에 따라 나뉘어진 그룹 중에서 우선순위가 가장 낮은 그룹을 선택하고,
상기 선택된 그룹에 포함되고 스킵 플래그가 폴스인 프로세스 중에서 상기 메모리(110)의 사용량이 가장 큰 프로세스를 선택하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 포함되지 않으면 상기 메모리(110)에서 상기 선택된 프로세스를 삭제하고,
상기 선택된 프로세스가 상기 킬 보호 리스트에 포함되어 있으면 상기 선택된 프로세스의 스킵 플래그를 트루(true)로 변환하는
프로세스 관리 장치.
According to any one of claims 13 to 19,
The processor 120,
When uploading the started process to the memory 110, the skip flag of the started process is initialized to false and uploaded,
If the process kill event occurs in a situation where the memory 110 is insufficient, select the lowest priority group among the groups divided according to priority in the memory 110,
Selecting the process with the largest usage of the memory 110 from among the processes included in the selected group and whose skip flag is false,
If the selected process is not included in the kill protection list, delete the selected process from the memory 110,
If the selected process is included in the kill protection list, converting the skip flag of the selected process to true.
Process management device.
KR1020220101516A 2022-08-05 2022-08-12 Apparatus and method for managing processes KR20240020131A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2023/007761 WO2024029717A1 (en) 2022-08-05 2023-06-07 Process management device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220097951 2022-08-05
KR20220097951 2022-08-05

Publications (1)

Publication Number Publication Date
KR20240020131A true KR20240020131A (en) 2024-02-14

Family

ID=89896609

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220101516A KR20240020131A (en) 2022-08-05 2022-08-12 Apparatus and method for managing processes

Country Status (1)

Country Link
KR (1) KR20240020131A (en)

Similar Documents

Publication Publication Date Title
KR20240020131A (en) Apparatus and method for managing processes
KR20220118047A (en) Processor for initializing model file of application and elecronic device including same
KR20220102405A (en) Electronic device and operation method thereof
KR20220064655A (en) Electronic device and method for executing application thereof
KR20220099322A (en) Electronic device and method for managing memory using the same
WO2024029717A1 (en) Process management device and method
US20230342209A1 (en) Service operation method and electronic device supporting same
US20230030132A1 (en) Application optimization method and apparatus supporting the same
US20230315521A1 (en) Electronic device and operation method of electronic device allocating memory resource to task
US20240118887A1 (en) Method for updating application and electronic device thereof
US20230131325A1 (en) Electronic device and method of protecting battery in the electronic device
KR20240039547A (en) Apparatus and method for providing customized software
KR20240079126A (en) Electronic device and method for managing cookie information thereof
KR20230063823A (en) Electronic device for scheduling transmission or reception of data through a plurality of links and method for the same
KR20240035269A (en) Apparatus and method for selecting suitable accelerators for machine learning model
KR20220117685A (en) Management method of persistent group information of electric device
KR20230088218A (en) Method and electronic device for scanning channels in frequency bands
KR20220109093A (en) Electronic device and method for controlling thereof
KR20240013626A (en) Apparatus and method for controlling radio wave output in bluetooth environment
KR20230155925A (en) Electronic device for providing charge related information of battery and method for operating thereof
KR20220135504A (en) Data Storage device and operating method of data Storage device
KR20240025417A (en) Method for managing memory and electronic device supporting the same
KR20240045929A (en) Method of update and electronic device therefor
KR20220131023A (en) Electronic device including multi processor and operating method thereof
KR20240019623A (en) Apparatus and method for determining source capability for charging of an electronic device