KR102453343B1 - Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof - Google Patents

Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof Download PDF

Info

Publication number
KR102453343B1
KR102453343B1 KR1020220092343A KR20220092343A KR102453343B1 KR 102453343 B1 KR102453343 B1 KR 102453343B1 KR 1020220092343 A KR1020220092343 A KR 1020220092343A KR 20220092343 A KR20220092343 A KR 20220092343A KR 102453343 B1 KR102453343 B1 KR 102453343B1
Authority
KR
South Korea
Prior art keywords
data
threads
information
serial number
data transfer
Prior art date
Application number
KR1020220092343A
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 KR1020220092343A priority Critical patent/KR102453343B1/en
Application granted granted Critical
Publication of KR102453343B1 publication Critical patent/KR102453343B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • 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
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed are an electronic device that enables fast data transfer through a scheduling for data transfer task, and an operating method therefor. The present invention relates to the electronic device capable of processing the data transfer task by simultaneously generating a thread of up to an optimal number based on a quantity of data subject to the data transfer task, and the operating method therefor. The electronic device comprises: an information storage part; a prediction part; a quantity selection part; and a task performing part.

Description

데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치 및 그 동작 방법{ELECTRONIC APPARATUS WHICH ENABLES FAST DATA MIGRATION THROUGH SCHEDULING OF DATA MIGRATION TASKS, AND THE OPERATING METHOD THEREOF}Electronic device enabling fast data migration through scheduling of data migration task and method of operation thereof

본 발명은 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치 및 그 동작 방법에 대한 것이다.The present invention relates to an electronic device that enables fast data transfer through scheduling of a data transfer task and an operating method thereof.

최근, IT 기술이 발달함에 따라, 컴퓨터 등과 같은 전자 장치에서 활용되는 데이터의 양이 방대해지고 있다.Recently, with the development of IT technology, the amount of data used in electronic devices such as computers is increasing.

이와 관련해서, 데이터 저장소에 저장되어 있는 데이터를 다른 데이터 저장소로 이관할 때, 데이터 이관 작업의 대상이 되는 데이터의 수량이 많을 수록, 데이터 이관 작업을 처리하는데 소요되는 시간이 증가하는 문제점이 있다.In this regard, when transferring data stored in a data storage to another data storage, there is a problem in that as the amount of data that is a target of the data migration operation increases, the time required to process the data migration operation increases.

따라서, 보다 빠르고 효율적으로 많은 수의 데이터에 대한 데이터 이관 작업을 수행하기 위한 기술에 대한 연구가 필요하다.Therefore, there is a need for a study on a technology for performing data migration for a large number of data more quickly and efficiently.

일반적으로는, 많은 수의 데이터에 대한 데이터 이관 작업을 처리할 때, 데이터를 순차적으로 하나씩 이관하는 대신, 여러 개의 스레드(thread)를 동시에 생성하여 여러 개의 데이터를 동시에 이관하는 병렬 처리 방식이 많이 사용되고 있다.In general, when processing data migration for a large number of data, a parallel processing method of simultaneously migrating multiple data by creating multiple threads simultaneously is used instead of sequentially migrating data one by one. have.

하지만, 한정된 컴퓨팅 자원 내에서 동시에 생성되는 스레드의 개수를 무조건적으로 증가시키게 되면, 생성된 스레드 각각의 성능은 저하된다는 점에서, 동시에 생성되는 스레드의 개수를 무조건적으로 증가시켜 데이터 이관 작업을 병렬 처리하는 기존의 방식은 비효율적이다.However, if the number of threads that are simultaneously created within a limited computing resource is unconditionally increased, the performance of each created thread is degraded. The existing method is inefficient.

만약, 데이터의 수량을 고려하여 최적의 개수만큼의 스레드를 동시에 생성함으로써, 많은 수의 데이터에 대한 데이터 이관 작업을 병렬 처리할 수 있다면, 보다 빠르고 효율적으로 데이터 이관 작업을 처리할 수 있을 것이다. If the data migration task for a large number of data can be processed in parallel by simultaneously creating the optimal number of threads in consideration of the amount of data, the data migration operation can be processed faster and more efficiently.

따라서, 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 기술에 대한 연구가 필요하다.Therefore, it is necessary to study a technology that enables fast data migration through scheduling of data migration tasks.

본 발명은 데이터 이관 작업의 대상이 되는 데이터의 수량을 기초로, 최적의 개수만큼의 스레드(thread)를 동시에 생성하여 데이터 이관 작업을 처리하는 전자 장치 및 그 동작 방법을 제시함으로써, 상기 전자 장치를 통해, 보다 빠르고 효율적으로 데이터 이관 작업을 처리할 수 있도록 지원하고자 한다.The present invention provides an electronic device for processing a data transfer task by simultaneously creating an optimal number of threads based on the quantity of data that is a target of the data transfer task, and an operating method thereof, thereby providing the electronic device. Through this, we want to support faster and more efficient data migration.

본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치는 데이터 이관 작업의 수행을 위해, 상기 전자 장치에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드(thread) 개수에 대한 정보가 저장되어 있는 정보 저장부, 사용자에 의해, 사전 설정된 제1 데이터 저장소에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간 - 상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함 - 을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 예측부, 상기 전자 장치에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택하는 개수 선택부 및 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 작업 수행부를 포함한다.In an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention, the maximum number of threads that can be simultaneously created in the electronic device is preset in order to perform the data transfer task. An information storage unit in which information about When this is approved, the work required time required to simultaneously create n threads and process the data transfer task - The task required time is equal to the k data from the first data storage by allocating the k data equally to the n threads. 2 Means the time it takes to process the data transfer operation to the data storage - By repeatedly performing the process for estimating n by 1 from 1 to the maximum number of threads, the electronic device can simultaneously create A predictor for predicting the task required time according to the number of threads, a first for which the task required time is predicted to be the minimum among the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device When the number selector for selecting the number of threads and the first number of threads is selected, the number of threads corresponding to the first number of threads is simultaneously created, and the k data are equally allocated to the number of threads corresponding to the first number of threads. , by simultaneously executing as many threads as the first number of threads, and a task performing unit for performing a data transfer operation for the k pieces of data from the first data storage to the second data storage.

또한, 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법은 데이터 이관 작업의 수행을 위해, 상기 전자 장치에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드 개수에 대한 정보가 저장되어 있는 정보 저장부를 유지하는 단계, 사용자에 의해, 사전 설정된 제1 데이터 저장소에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간 - 상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함 - 을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 단계, 상기 전자 장치에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택하는 단계 및 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 단계를 포함한다.In addition, according to an embodiment of the present invention, in the method of operating an electronic device that enables fast data transfer through scheduling for a data transfer task, the maximum preset value that can be simultaneously created in the electronic device is to perform the data transfer task. maintaining an information storage unit in which information on the number of threads is stored, and transferring k (k is a natural number greater than or equal to 2) data stored in a preset first data storage by a user to a preset second data storage When the instructing data transfer command is applied, the task required to process the data transfer task by simultaneously creating n threads - The task required time is the first time required by equally allocating the k data to the n threads. By repeatedly performing the process for estimating - which means the time required to process the data transfer operation from the data storage to the second data storage, increasing n by 1 from 1 to the maximum number of threads, the electron estimating the time required for the task according to the number of threads that can be simultaneously created in the device; among the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device, the task required time is the minimum selecting the predicted first number of threads, and when the first number of threads is selected, simultaneously generating as many threads as the first number of threads, and equally allocating the k data to the number of threads corresponding to the first number of threads and then performing a data migration operation for the k pieces of data from the first data storage to the second data storage by simultaneously executing as many threads as the first number of threads.

본 발명은 데이터 이관 작업의 대상이 되는 데이터의 수량을 기초로, 최적의 개수만큼의 스레드(thread)를 동시에 생성하여 데이터 이관 작업을 처리하는 전자 장치 및 그 동작 방법을 제시함으로써, 상기 전자 장치를 통해, 보다 빠르고 효율적으로 데이터 이관 작업을 처리할 수 있도록 지원할 수 있다.The present invention provides an electronic device for processing a data transfer task by simultaneously creating an optimal number of threads based on the quantity of data that is a target of the data transfer task, and an operating method thereof, thereby providing the electronic device. Through this, it is possible to support faster and more efficient data migration.

도 1은 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention.
2 is a flowchart illustrating a method of operating an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. These descriptions are not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, like reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, refer to those of ordinary skill in the art to which the present invention belongs. It has the same meaning as is commonly understood by those who have it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.In this document, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, in various embodiments of the present invention, each of the components, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, an ASIC (Application Specific Integrated Circuit), etc. may be implemented with various well-known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks in the accompanying block diagram or steps in the flowchart are computer program instructions that are loaded in a processor or memory of equipment capable of data processing, such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer, and perform specified functions. can be interpreted as meaning Since these computer program instructions may be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks of the block diagram or the steps of the flowchart are produced in an article containing instruction means for performing the same. it might be In addition, each block or each step may represent a module, segment, or portion of code comprising one or more executable instructions for executing the specified logical function(s). It should also be noted that, in some alternative embodiments, it is possible for the functions recited in blocks or steps to be executed out of the prescribed order. For example, two blocks or steps shown one after another may be performed substantially simultaneously or in the reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 구조를 도시한 도면이다.1 is a diagram illustrating a structure of an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 전자 장치(110)는 정보 저장부(111), 예측부(112), 개수 선택부(113) 및 작업 수행부(114)를 포함한다.Referring to FIG. 1 , an electronic device 110 according to an embodiment of the present invention includes an information storage unit 111 , a prediction unit 112 , a number selection unit 113 , and a task execution unit 114 .

정보 저장부(111)에는 데이터 이관 작업의 수행을 위해, 전자 장치(110)에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드(thread) 개수에 대한 정보가 저장되어 있다.In the information storage unit 111 , information on the maximum number of threads that can be simultaneously generated by the electronic device 110 is stored in advance to perform a data transfer operation.

관련해서, 전자 장치(110)에서 생성되는 스레드 개수가 많아지는 경우, 스레드 하나의 성능이 그만큼 저하되기 때문에, 사용자(130)는 전자 장치(110)의 성능을 고려하여, 데이터 이관 작업을 수행하는데 있어서, 동시 생성할 수 있는 최대 스레드 개수를 사전 지정해 둘 수 있다. 이와 관련하여, 사용자(130)에 의해 사전 지정된 최대 스레드 개수가 '8(개)'라고 하는 경우, 정보 저장부(111)에는 상기 최대 스레드 개수인 '8(개)'에 대한 정보가 저장되어 있을 수 있다.In relation to this, when the number of threads generated in the electronic device 110 increases, the performance of one thread decreases by that much, so that the user 130 performs a data transfer operation in consideration of the performance of the electronic device 110 . Therefore, the maximum number of threads that can be created at the same time can be preset. In this regard, when the maximum number of threads preset by the user 130 is '8 (pcs)', information on '8 (pcs)', which is the maximum number of threads, is stored in the information storage unit 111. there may be

예측부(112)는 사용자(130)에 의해, 사전 설정된 제1 데이터 저장소(11)에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소(12)로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간(상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함)을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 전자 장치(110)에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측한다.The prediction unit 112 instructs the user 130 to transfer k (k is a natural number greater than or equal to 2) data stored in the preset first data storage 11 to the preset second data storage 12 . When a data transfer command of The electronic device ( In 110), the task required time is predicted according to the number of threads that can be simultaneously created.

여기서, 균등 할당이란 상기 n개의 스레드에 상기 k개의 데이터를 균등한 개수로 할당하는 방식을 의미하는 것으로, '5개'의 스레드에 '10'개의 데이터를 균등 할당한다고 하는 경우, '5개'의 스레드 각각에 '2개'의 데이터를 할당할 수 있고, '6개'의 스레드에 '10'개의 데이터를 균등 할당한다고 하는 경우, '6개의 스레드 중 '4개'의 스레드 각각에 '2개'의 데이터를, 나머지 '2개'의 스레드 각각에 '1개'의 데이터를 할당할 수 있다.Here, the equal allocation refers to a method of allocating the k data in an equal number to the n threads. If '2' data can be allocated to each of the '6' threads and '10' data is equally allocated to '6' threads, '2' to each of '4' threads out of '6 threads' 'data' and 'one' data can be allocated to each of the remaining 'two' threads.

이와 관련해서, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하기 위해, 상기 n개의 스레드에 상기 k개의 데이터를 라운드 로빈(round robin) 방식으로 할당하는 방식이 사용될 수 있다.In this regard, in order to equally allocate the k pieces of data to the n threads, a method of allocating the k pieces of data to the n threads in a round robin manner may be used.

이때, 본 발명의 일실시예에 따르면, 예측부(112)는 사용자(130)에 의해 상기 데이터 이관 명령이 인가되면, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서, 순차적으로, 하기의 표 1과 같은 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 전자 장치(110)에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측할 수 있다.At this time, according to an embodiment of the present invention, when the data transfer command is applied by the user 130, the prediction unit 112 increases n by 1 from 1 to the maximum number of threads, and sequentially, the following By repeatedly performing steps (1) to (3) as shown in Table 1, it is possible to predict the time required for the task according to the number of threads that can be simultaneously created in the electronic device 110 .

(1) n개의 스레드를 동시에 생성한 후, 상기 k개의 데이터 중 사전 설정된 샘플링 비율만큼에 해당되는 개수의 데이터를 샘플링하여, 상기 n개의 스레드 중 어느 하나의 스레드를 통해, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리함으로써, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리하는데 소요되는 제1 시간을 연산하고, 상기 제1 시간을 상기 샘플링된 데이터의 개수로 나눔으로써, 상기 샘플링된 데이터 각각의 데이터 이관 작업을 처리하는데 소요된 평균 시간을 연산함.(여기서, 제1 데이터 저장소(11)에서 제2 데이터 저장소(12)로 이관되어야 하는 상기 k개의 데이터 각각은 서로 동일한 형식의 데이터인 것으로 가정하며, 이로 인해, k개 데이터 각각이 제1 데이터 저장소(11)에서 제2 데이터 저장소(12)로 이관되는데 소요되는 작업 소요 시간은 이론상 동일한 것으로 가정함)

(2) 상기 k개의 데이터를 상기 n개의 스레드에 균등 할당하여 데이터 이관 작업을 처리한다고 하였을 때, 하나의 스레드를 통해 처리해야 하는 최대 데이터 개수를 산출함.

(3) 상기 평균 시간에 상기 최대 데이터 개수를 곱함으로써, 상기 n개의 스레드를 통해 데이터 이관 작업을 처리할 경우의 상기 작업 소요 시간을 예측함.
(1) After simultaneously creating n threads, the number of data corresponding to a preset sampling rate among the k data is sampled, and through any one of the n threads, the first data storage 11 ) to the second data storage 12, by processing the data transfer operation for the sampled data, calculates a first time required to process the data transfer operation for the sampled data, and the first time By dividing by the number of the sampled data, the average time taken to process the data transfer operation of each of the sampled data is calculated. (Here, the transfer from the first data store 11 to the second data store 12 It is assumed that each of the k pieces of data to be data is of the same format as each other, and therefore, the time required for each of the k pieces of data to be transferred from the first data storage 11 to the second data storage 12 is Assuming they are the same in theory)

(2) Assuming that the data transfer operation is processed by allocating the k data equally to the n threads, the maximum number of data to be processed through one thread is calculated.

(3) By multiplying the average time by the maximum number of data, the time required for the task when the data transfer task is processed through the n threads is predicted.

이때, 본 발명의 일실시예에 따르면, 예측부(112)는 상기 과정 (2)에서, 상기 최대 데이터 개수를 하기의 수학식 1에 따라 산출할 수 있다.In this case, according to an embodiment of the present invention, the prediction unit 112 may calculate the maximum number of data according to Equation 1 below in the process (2).

Figure 112022078036967-pat00001
Figure 112022078036967-pat00001

여기서, p는 상기 최대 데이터 개수,

Figure 112022078036967-pat00002
는 천장 함수를 의미한다.where p is the maximum number of data,
Figure 112022078036967-pat00002
is the ceiling function.

개수 선택부(113)는 예측부(112)를 통해 전자 장치(110)에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 해당되는 각 스레드 개수에 따른 상기 작업 소요 시간이 예측되면, 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택한다.The number selector 113 determines the number of each thread when the task required time according to the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device 110 is predicted through the predictor 112 . Among them, the first number of threads for which the work required time is predicted to be the minimum is selected.

작업 수행부(114)는 개수 선택부(113)에 의해 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행한다.When the first number of threads is selected by the number selection unit 113 , the task performing unit 114 simultaneously generates as many threads as the first number of threads, and includes the k threads in the first number of threads. After allocating data equally, the k data are transferred from the first data storage 11 to the second data storage 12 by simultaneously executing as many threads as the first number of threads.

이하에서는, 예측부(112), 개수 선택부(113) 및 작업 수행부(114)의 동작을 예를 들어, 상세히 설명하기로 한다.Hereinafter, the operations of the prediction unit 112 , the number selection unit 113 , and the task execution unit 114 will be described in detail, for example.

먼저, 정보 저장부(111)에 저장되어 있는 상기 최대 스레드 개수를 '8'개, k를 '1,000'이라고 하고, 전자 장치(110)에 사용자(130)에 의해, 제1 데이터 저장소(11)에 저장된 '1,000'개의 데이터를 제2 데이터 저장소(12)로 이관할 것을 지시하는 데이터 이관 명령이 인가되었다고 가정하자.First, it is assumed that the maximum number of threads stored in the information storage unit 111 is '8' and k is '1,000'. Assume that a data transfer command instructing to transfer '1,000' data stored in the second data storage 12 is applied.

그러면, 예측부(112)는 n을 1부터 상기 최대 스레드 개수인 '8'까지 1씩 증가시키면서, 순차적으로, 상기 표 1과 같은 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 전자 장치(110)에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측할 수 있다.Then, the prediction unit 112 sequentially and repeatedly performs steps (1) to (3) as shown in Table 1 while increasing n by 1 from 1 to '8', which is the maximum number of threads. The device 110 may estimate the task required time according to the number of threads that can be simultaneously created.

관련해서, n이 '3'일 때, 예측부(112)가 상기 표 1과 같은 과정 (1) 내지 과정 (3)을 수행함으로써, '3'개의 스레드를 통해 데이터 이관 작업을 처리할 경우의 상기 작업 소요 시간을 예측하는 과정에 대해 설명하면 하기와 같다.In relation to this, when n is '3', the prediction unit 112 performs processes (1) to (3) as shown in Table 1, thereby processing the data transfer operation through '3' threads. A process for estimating the required work time will be described below.

먼저, 사전 설정된 샘플링 비율을 '1%'라고 하는 경우, 예측부(112)는 과정 (1)에서, '3'개의 스레드를 동시에 생성한 후, '1,000'개의 데이터 중 상기 샘플링 비율인 '1%'만큼에 해당되는 개수인 '10개'의 데이터를 샘플링하여, '3'개의 스레드를 통해, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로, '10개'의 샘플링 데이터에 대한 데이터 이관 작업을 처리함으로써, '10개'의 샘플링 데이터에 대한 데이터 이관 작업을 처리하는데 소요되는 제1 시간을 연산할 수 있다. 이때, 상기 제1 시간이 '30(초)'로 연산되었다고 하는 경우, 예측부(112)는 상기 제1 시간을 상기 샘플링 데이터의 개수인 '10'으로 나눔으로써, '10개'의 샘플링 데이터 각각의 데이터 이관 작업을 처리하는데 소요된 평균 시간을 '3(초)'로 연산할 수 있다.First, when the preset sampling rate is '1%', the prediction unit 112 simultaneously creates '3' threads in step (1), and then '1' which is the sampling rate among '1,000' pieces of data. By sampling '10' data, which is the number corresponding to %', '10' sampling data from the first data storage 11 to the second data storage 12 through '3' threads By processing the data transfer operation for , it is possible to calculate a first time required to process the data transfer operation for '10 pieces of sampled data. At this time, if it is assumed that the first time period is calculated as '30 (seconds)', the prediction unit 112 divides the first time period by '10', which is the number of sampling data, to obtain '10 pieces of sampled data. The average time taken to process each data transfer operation can be calculated as '3 (seconds)'.

그러면, 예측부(112)는 과정 (2)에서, 상기 수학식 1을 기초로, '1,000'개의 데이터를 '3'개의 스레드에 균등 할당하여 데이터 이관 작업을 처리한다고 하였을 때, 하나의 스레드를 통해 처리해야 하는 최대 데이터 개수를 '334(개)'와 같이 산출할 수 있다.Then, in step (2), based on Equation 1, the prediction unit 112 allocates '1,000' pieces of data equally to '3' threads to process the data transfer operation, one thread The maximum number of data to be processed can be calculated as '334 (pieces)'.

그 이후, 예측부(112)는 과정 (3)에서, 상기 평균 시간인 '3(초)'에 상기 최대 데이터 개수인 '334(개)'를 곱함으로써, '3'개의 스레드를 통해 데이터 이관 작업을 처리할 경우의 상기 작업 소요 시간을 '1,002(초)'과 같이 예측할 수 있다.After that, in the process (3), the prediction unit 112 multiplies the average time of '3 (seconds)' by the maximum number of data, '334 (units)', to transfer data through '3' threads. When processing a job, the required time for the job may be predicted as '1,002 (seconds)'.

이러한 방식으로, 예측부(112)는 n을 1부터 '8'까지 1씩 증가시키면서, 상기 표 1과 같은 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 1부터 '8'까지에 해당되는 각 스레드 개수에 따른 상기 작업 소요 시간을 예측할 수 있다.In this way, the prediction unit 112 repeatedly performs steps (1) to (3) as shown in Table 1 above while increasing n by 1 from 1 to '8', so that from 1 to '8' It is possible to estimate the time required for the operation according to the number of corresponding threads.

그 결과, 1부터 '8'까지에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수가 '6'이라고 하는 경우, 개수 선택부(113)는 전자 장치(110)에서 동시 생성 가능한, 1부터 '8'까지에 해당되는 각 스레드 개수 중, 상기 제1 스레드 개수인 '6'을 선택할 수 있다.As a result, among the number of threads corresponding to 1 to '8', when the number of the first threads for which the work required time is predicted to be '6' is '6', the number selector 113 may '6', which is the first number of threads, may be selected from among the number of threads corresponding to 1 to '8' that can be created simultaneously.

그러면, 작업 수행부(114)는 '6'개의 스레드를 동시에 생성하고, '6'개의 스레드에 '1,000'개의 데이터를 균등 할당한 후, '6'개의 스레드를 동시에 실행함으로써, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로 '1,000'개의 데이터에 대한 데이터 이관 작업을 수행할 수 있다.Then, the task execution unit 114 simultaneously creates '6' threads, equally allocates '1,000' data to the '6' threads, and simultaneously executes the '6' threads, so that the first data storage A data migration operation for '1,000' pieces of data may be performed from (11) to the second data storage 12 .

이때, 본 발명의 일실시예에 따르면, 작업 수행부(114)는 개수 선택부(113)에 의해 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수에 대해서 예측된 제1 작업 소요 시간을, 상기 k개의 데이터에 대한 데이터 이관 작업을 처리하는 데 소요될 것으로 예상되는 작업 예상 시간으로 화면 상에 표시한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행함과 동시에, 화면 상에 표시되는 상기 제1 작업 소요 시간을 역카운트하고, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되기 전에 상기 제1 작업 소요 시간이 모두 소진되는 경우, 상기 제1 작업 소요 시간을 사전 설정된 추가 시간만큼 증가시켜 다시 역카운트하는 과정을, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 반복적으로 수행할 수 있다.At this time, according to an embodiment of the present invention, when the first number of threads is selected by the number selection unit 113 , the task execution unit 114 calculates the estimated first task required time for the first number of threads. , is displayed on the screen as the estimated time required to process the data transfer task for the k data, and then simultaneously creates as many threads as the first number of threads, and as many threads as the first number of threads After allocating the k data equally, by simultaneously executing as many threads as the first number of threads, data transfer operation for the k data from the first data storage 11 to the second data storage 12 At the same time, the time required for the first operation displayed on the screen is reversed, and when the time required for the first operation is all exhausted before the data transfer operation for the k pieces of data is completed, the first operation The process of increasing the required time by a preset additional time and counting again may be repeatedly performed until the data transfer operation for the k pieces of data is completed.

예컨대, 전술한 예와 같이, 개수 선택부(113)에 의해 상기 제1 스레드 개수인 '6'이 선택되었다고 하고, 이때, 상기 제1 스레드 개수인 '6'에 대해서 예측된 제1 작업 소요 시간이 '800(초)'라고 가정하자.For example, as in the above-described example, it is assumed that '6', which is the first number of threads, is selected by the number selector 113, and in this case, the estimated first task required time for '6', which is the first number of threads, is Let's assume this is '800 (seconds)'.

그러면, 작업 수행부(114)는 상기 제1 작업 소요 시간인 '800(초)'를, '1,000'개의 데이터에 대한 데이터 이관 작업을 처리하는 데 소요될 것으로 예상되는 작업 예상 시간으로 화면 상에 표시할 수 있다.Then, the task performing unit 114 displays '800 (seconds)', which is the first task required time, on the screen as the estimated task time expected to be required to process the data transfer task for '1,000' pieces of data. can do.

그 이후, 작업 수행부(114)는 '6'개의 스레드를 동시에 생성하고, '6'개의 스레드에, '1,000'개의 데이터를 균등 할당할 수 있다.Thereafter, the task execution unit 114 may simultaneously create '6' threads and equally allocate '1,000' data to the '6' threads.

그러고 나서, 작업 수행부(114)는 '6'개의 스레드를 동시에 실행함으로써, 제1 데이터 저장소(11)로부터 제2 데이터 저장소(12)로 '1,000'개의 데이터에 대한 데이터 이관 작업을 수행함과 동시에, 화면 상에 표시되는 상기 제1 작업 소요 시간인 '800(초)'를 '799(초), 798(초), 797(초), 796(초), ...'의 형태로 역카운트할 수 있다.Then, the task execution unit 114 simultaneously executes '6' threads, thereby performing a data transfer operation for '1,000' pieces of data from the first data storage 11 to the second data storage 12 at the same time. , '800 (seconds)', which is the time required for the first operation displayed on the screen, is counted backward in the form of '799 (seconds), 798 (seconds), 797 (seconds), 796 (seconds), ...' can do.

이를 통해, 사용자(130)는 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 소요되는 작업 소요 시간을 예측할 수 있다.Through this, the user 130 may estimate the required time required for the data transfer operation for '1,000' pieces of data to be completed.

다만, 이러한 상기 제1 작업 소요 시간은 이론적으로 연산한 예측 시간에 불과하기 때문에, 전자 장치(110)의 시스템 상황에 따라, '1,000'개의 데이터에 대한 데이터 이관 작업이 완료되기 전에, 상기 제1 작업 소요 시간인 '800(초)'가 역카운트 완료되어 모두 소진되는 상황이 발생할 수 있다. 이러한 상황이 발생한다면, 상기 제1 작업 소요 시간이 '0(초)'임에도 불구하고, 데이터 이관 작업이 완료되지 않은 상황이므로, 결과적으로는 사용자(130)에게 부정확한 정보가 전달되는 상황이라고 볼 수 있다. 따라서, 본 발명에 따른 작업 수행부(114)는 데이터 이관 작업이 완료되기 전에 상기 제1 작업 소요 시간이 모두 소진되는 상황이 발생하는 경우, 상기 제1 작업 소요 시간을 사전 설정된 추가 시간만큼 증가시킨 후 이를 다시 역카운트하는 과정을 반복 수행함으로써, 사용자(130)에게 추가적으로 작업 시간이 소요됨을 알릴 수 있다.However, since the time required for the first operation is only a theoretically calculated predicted time, depending on the system situation of the electronic device 110 , before the data transfer operation for '1,000' pieces of data is completed, the first There may be a situation in which '800 (seconds)', which is the required work time, is exhausted because the reverse count is completed. If such a situation occurs, even though the time required for the first operation is '0 (seconds)', the data transfer operation is not completed. As a result, inaccurate information is delivered to the user 130. can Therefore, the task performing unit 114 according to the present invention increases the first task required time by a preset additional time when a situation occurs in which the first task required time is all exhausted before the data transfer task is completed. Then, by repeating the process of counting again, it is possible to notify the user 130 that additional work time is required.

이와 관련해서, 상기 사전 설정된 추가 시간이 '10초'라고 하면, 작업 수행부(114)는 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료되기 전에, 상기 제1 작업 소요 시간인 '800(초)'가 모두 소진되는 경우, 상기 제1 작업 소요 시간을 '10초'만큼 증가시켜 다시 역카운트할 수 있다.In this regard, if the preset additional time is '10 seconds', the task performing unit 114 sets the first task required time of '800 (seconds) before the data transfer operation for '1,000' pieces of data is completed. )' is exhausted, the time required for the first operation may be increased by '10 seconds' to count backward again.

이러한 방식으로, 작업 수행부(114)는 위 과정을 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 반복적으로 수행함으로써, 사용자(130)에게 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 소요되는 작업 소요 시간에 대한 정보를 지속적으로 제공할 수 있다.In this way, the task performing unit 114 repeatedly performs the above process until the data transfer task for '1,000' pieces of data is completed, so that the data transfer task for '1,000' pieces of data is performed to the user 130 . It can provide continuous information about how long a task will take to complete.

본 발명의 일실시예에 따르면, 전자 장치(110)는 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 데이터 이관 작업에 대한 이력 정보를 생성하여 소정의 클라우드 저장 서버(140)에 저장해 두는 구성을 더 포함할 수 있다. 이를 위해, 본 발명에 따른 전자 장치(110)는 테이블 유지부(115), 이벤트 발생부(116), 일련번호 분할부(117), 연산 코드 생성부(118), 해시 값 생성부(119), 정보 저장 처리부(120), 정보 수신부(121), 일련번호 재분할부(122), 연산 코드 재생성부(123), 이력 정보 복원부(124) 및 정보 표시부(125)를 더 포함할 수 있다.According to an embodiment of the present invention, when the data transfer operation for the k pieces of data is completed, the electronic device 110 generates history information for the data transfer operation and stores it in a predetermined cloud storage server 140 . may further include. To this end, the electronic device 110 according to the present invention includes a table maintaining unit 115 , an event generating unit 116 , a serial number dividing unit 117 , an operation code generating unit 118 , and a hash value generating unit 119 . , an information storage processing unit 120 , an information receiving unit 121 , a serial number re-dividing unit 122 , an operation code regenerating unit 123 , a history information restoration unit 124 , and an information display unit 125 .

테이블 유지부(115)는 1부터 상기 최대 스레드 개수까지에 해당되는 각 스레드 개수에 대응되는, 사전 설정된 서로 다른 2t(t는 2 이상의 자연수임)자릿수의 일련번호가 기록된 일련번호 테이블을 저장하여 유지한다.The table holding unit 115 stores a serial number table in which a serial number of preset different 2t (t is a natural number equal to or greater than 2) digits corresponding to each number of threads corresponding to the number of threads from 1 to the maximum number of threads is recorded. keep

예컨대, 전술한 예와 같이, 상기 최대 스레드 개수를 '8(개)'라고 하고, t를 '3'이라고 하는 경우, 테이블 유지부(115)는 1부터 '8'까지에 해당되는 각 스레드 개수에 대응되는, 사전 설정된 서로 다른 '6'자릿수의 일련번호가 기록된 일련번호 테이블을 저장하여 유지할 수 있다.For example, as in the above example, when the maximum number of threads is '8' and t is '3', the table holding unit 115 sets the number of threads corresponding to 1 to '8'. Corresponding to, it is possible to store and maintain a serial number table in which preset serial numbers of different '6' digits are recorded.

스레드 개수number of threads '6'자릿수의 일련번호Serial number with '6' digits 1One 921457921457 22 230514230514 33 881692881692 44 130286130286 55 631754631754 66 122945122945 77 610452610452 88 711328711328

이벤트 발생부(116)는 작업 수행부(114)에 의해, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하기 위한 이력 저장 이벤트를 발생시킨다.When the data transfer operation for the k pieces of data is completed by the task execution unit 114 , the event generator 116 generates a history storage event for storing transfer history information for the k pieces of data.

이관 이력 정보 생성부(117)는 이벤트 발생부(116)에 의해 상기 이력 저장 이벤트가 발생되면, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료된 날짜 및 시간에 대한 정보, 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 데 소요된 실제 소요 시간에 대한 정보, 원천 데이터 저장소에 대한 정보로, 제1 데이터 저장소(11)에 대한 식별 정보 및 타겟 데이터 저장소에 대한 정보로, 제2 데이터 저장소(12)에 대한 식별 정보로 구성된 제1 이관 이력 정보를 생성한다.When the history storage event is generated by the event generating unit 116 , the transfer history information generating unit 117 includes information on the date and time when the data transfer operation for the k pieces of data is completed, and the data on the k pieces of data. Information on the actual time required to perform the migration operation, information on the source data storage, identification information on the first data storage 11 and information on the target data storage, and the second data storage 12 Creates first transfer history information composed of identification information for

일련번호 분할부(118)는 이관 이력 정보 생성부(117)에 의해 상기 제1 이관 이력 정보가 생성되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 제1 부분 일련번호와 우측의 t자릿수의 제2 부분 일련번호로 분할한다.When the first transfer history information is generated by the transfer history information generating unit 117, the serial number dividing unit 118 extracts a first serial number corresponding to the first number of threads from the serial number table, The first serial number is divided into a first partial serial number of t digits on the left and a second partial serial number of t digits on the right side of the central axis of the first serial number.

연산 코드 생성부(119)는 상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로(modulo)-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제2 연산 코드를 생성한다.The operation code generation unit 119 configures the result value when a modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, thereby generating the t-bit number. 1 operation code is generated and a result value obtained when modulo-2 operation is performed on each of the t numbers constituting the second partial serial number is configured as a bit string, thereby generating a t-bit second operation code create

여기서, 모듈로-2 연산은 피제수를 2로 나누는 나눗셈을 수행하여, 그에 대한 나머지(remainder)를 산출하는 연산을 의미한다.Here, the modulo-2 operation refers to an operation that divides the dividend by 2 and calculates a remainder.

해시 값 생성부(120)는 상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합(XOR) 연산을 수행함으로써, t비트의 시드(seed) 코드를 생성한 후, 상기 시드 코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성한다.The hash value generator 120 generates a t-bit seed code by performing an exclusive-or (XOR) operation between the first operation code and the second operation code, and then converts the seed code to a preset hash. A first hash value is generated by applying it as an input to the function.

정보 저장 처리부(121)는 해시 값 생성부(120)에 의해 상기 제1 해시 값이 생성되면, 상기 제1 이관 이력 정보를 상기 제1 해시 값으로 암호화한 후, 사전 설정된 클라우드 저장 서버(140)에, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 서로 대응시켜 저장함으로써, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하는 과정을 완료한다.When the first hash value is generated by the hash value generator 120 , the information storage processing unit 121 encrypts the first transfer history information with the first hash value, and then sets a preset cloud storage server 140 . , by storing the encrypted first transfer history information and information on the number of first threads in correspondence with each other, the process of storing transfer history information for the k pieces of data is completed.

정보 수신부(122)는 클라우드 저장 서버(140)에 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 저장된 이후, 사용자(130)에 의해, 상기 제1 이관 이력 정보에 대한 표시 명령이 인가되면, 클라우드 저장 서버(140)로부터, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 수신한다.The information receiving unit 122 displays the first transfer history information by the user 130 after the encrypted first transfer history information and the information on the first number of threads are stored in the cloud storage server 140 . When the command is applied, the encrypted first migration history information and information on the number of the first threads are received from the cloud storage server 140 .

일련번호 재분할부(123)는 정보 수신부(122)에 의해 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 수신되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 상기 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 상기 제1 부분 일련번호와 우측의 t자릿수의 상기 제2 부분 일련번호로 분할한다.When the encrypted first transfer history information and the information on the first number of threads are received by the information receiving unit 122, the serial number re-dividing unit 123 receives from the serial number table, the number of threads corresponding to the first number of threads. The first serial number is extracted, and the first serial number is the first partial serial number of t digits on the left and the second partial serial number of t digits on the right with respect to the central axis of the first serial number. split into

연산 코드 재생성부(124)는 상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제2 연산 코드를 생성한다.The operation code regenerating unit 124 configures the result value when the modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, so that the t-bit first operation A code is generated and the result value obtained when modulo-2 operation is performed on each of the t numbers constituting the second partial serial number is configured as a bit string, thereby generating the t-bit second operation code. do.

이력 정보 복원부(125)는 상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 상기 시드 코드를 생성하고, 상기 시드 코드를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성한 후, 상기 암호화된 제1 이관 이력 정보를 상기 제1 해시 값으로 복호화함으로써, 상기 제1 이관 이력 정보를 복원한다.The history information restoration unit 125 generates the t-bit seed code by performing an exclusive-OR operation between the first operation code and the second operation code, and applies the seed code as an input to the hash function. After generating a first hash value, the first migration history information is restored by decrypting the encrypted first migration history information into the first hash value.

정보 표시부(126)는 이력 정보 복원부(125)에 의해 상기 제1 이관 이력 정보가 복원되면, 상기 제1 이관 이력 정보를 화면 상에 표시한다.When the first transfer history information is restored by the history information restoration unit 125 , the information display unit 126 displays the first transfer history information on the screen.

이하에서는, 이벤트 발생부(116), 이관 이력 정보 생성부(117), 일련번호 분할부(118), 연산 코드 생성부(119), 해시 값 생성부(120), 정보 저장 처리부(121), 정보 수신부(122), 일련번호 재분할부(123), 연산 코드 재생성부(124), 이력 정보 복원부(125) 및 정보 표시부(126)의 동작을 예를 들어, 상세히 설명하기로 한다.Hereinafter, the event generation unit 116, the transfer history information generation unit 117, the serial number division unit 118, the operation code generation unit 119, the hash value generation unit 120, the information storage processing unit 121, Operations of the information receiving unit 122 , the serial number repartitioning unit 123 , the operation code regenerating unit 124 , the history information restoring unit 125 , and the information displaying unit 126 will be described in detail, for example.

먼저, 전술한 예와 같이, 상기 제1 스레드 개수를 '6'이라고 하고, 전술한 예에 따라, 작업 수행부(114)에 의해 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료되었다고 가정하자.First, as in the above-described example, it is assumed that the first number of threads is '6', and according to the above-described example, the data transfer operation for '1,000' pieces of data is completed by the task execution unit 114 .

이때, 이벤트 발생부(116)는 '1,000'개의 데이터에 대한 이관 이력 정보를 저장하기 위한 이력 저장 이벤트를 발생시킬 수 있다.In this case, the event generator 116 may generate a history storage event for storing transfer history information for '1,000' pieces of data.

그러면, 이관 이력 정보 생성부(117)는 '1,000'개의 데이터에 대한 데이터 이관 작업이 완료된 날짜 및 시간에 대한 정보, '1,000'개의 데이터에 대한 데이터 이관 작업을 수행하는 데 소요된 실제 소요 시간에 대한 정보, 원천 데이터 저장소에 대한 정보로, 제1 데이터 저장소(11)에 대한 식별 정보 및 타겟 데이터 저장소에 대한 정보로, 제2 데이터 저장소(12)에 대한 식별 정보로 구성된 제1 이관 이력 정보를 생성할 수 있다.Then, the transfer history information generating unit 117 provides information on the date and time at which the data transfer operation for '1,000' pieces of data was completed, and the actual time required to perform the data transfer operation for '1,000' pieces of data. information on the source data storage, identification information on the first data storage 11 and information on the target data storage, and first transfer history information consisting of identification information on the second data storage 12 can create

그러고 나서, 일련번호 분할부(118)는 상기 표 2와 같은 일련번호 테이블로부터, 상기 제1 스레드 개수인 '6'에 대응되는 '122945'를 추출하고, '122945'를, '122945'의 중심축을 기준으로, 좌측의 '3'자릿수의 제1 부분 일련번호인 '122'와 우측의 '3'자릿수의 제2 부분 일련번호인 '945'로 분할할 수 있다.Then, the serial number division unit 118 extracts '122945' corresponding to '6', which is the first number of threads, from the serial number table as shown in Table 2, and sets '122945' to the center of '122945'. Based on the axis, it can be divided into '122' which is a first partial serial number of '3' digits on the left and '945' which is a second partial serial number of '3' digits on the right side.

그러면, 연산 코드 생성부(119)는 상기 제1 부분 일련번호인 '122'를 구성하는 '3'개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, '3'비트의 제1 연산 코드를 '100'과 같이 생성할 수 있고, 상기 제2 부분 일련번호인 '945'를 구성하는 '3'개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, '3'비트의 제2 연산 코드를 '101'과 같이 생성할 수 있다.Then, the operation code generator 119 configures the result value when the modulo-2 operation is performed on each of the '3' numbers constituting the '122', which is the first partial serial number, into a bit string. , a first operation code of '3' bits can be generated like '100', and modulo-2 operation is performed on each of '3' numbers constituting '945', which is the second partial serial number. By composing the result value at the time of doing this as a bit string, the second operation code of '3' bits can be generated like '101'.

그 이후, 해시 값 생성부(120)는 상기 제1 연산 코드인 '100'과 상기 제2 연산 코드인 '101' 간의 배타적 논리합 연산을 수행함으로써, '3'비트의 시드 코드를 '001'과 같이 생성한 후, 상기 시드 코드인 '001'을 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성할 수 있다.Thereafter, the hash value generating unit 120 performs an exclusive OR operation between '100', which is the first operation code, and '101', which is the second operation code, to convert the '3' bit seed code to '001' and After generating together, the first hash value may be generated by applying the seed code '001' as an input to a preset hash function.

그러면, 정보 저장 처리부(121)는 상기 제1 이관 이력 정보를 상기 제1 해시 값으로 암호화한 후, 사전 설정된 클라우드 저장 서버(140)에, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수인 '6'에 대한 정보를 서로 대응시켜 저장함으로써, '1,000'개의 데이터에 대한 이관 이력 정보를 저장하는 과정을 완료할 수 있다.Then, the information storage processing unit 121 encrypts the first transfer history information with the first hash value, and sends the encrypted first transfer history information and the first number of threads to a preset cloud storage server 140 . By storing information on '6' in correspondence with each other, the process of storing transfer history information for '1,000' pieces of data can be completed.

그 이후, 전자 장치(110)에 사용자(130)에 의해, 상기 제1 이관 이력 정보에 대한 표시 명령이 인가되었다고 가정하자.After that, it is assumed that a display command for the first transfer history information is applied to the electronic device 110 by the user 130 .

그러면, 정보 수신부(122)는 클라우드 저장 서버(140)로부터, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수인 '6'에 대한 정보를 수신할 수 있다.Then, the information receiving unit 122 may receive, from the cloud storage server 140 , the encrypted first migration history information and information on '6', which is the first number of threads.

그러고 나서, 일련번호 재분할부(123)는 상기 표 2와 같은 일련번호 테이블로부터, 상기 제1 스레드 개수인 '6'에 대응되는 '122945'를 추출하고, '122945'를, '122945'의 중심축을 기준으로, 좌측의 '3'자릿수의 상기 제1 부분 일련번호인 '122'와 우측의 '3'자릿수의 상기 제2 부분 일련번호인 '945'로 분할할 수 있다.Then, the serial number subdivision unit 123 extracts '122945' corresponding to '6', which is the first number of threads, from the serial number table as shown in Table 2, and sets '122945' to the center of '122945'. Based on the axis, it may be divided into '122', which is the first partial serial number of '3' digits on the left side, and '945', which is the second partial serial number of '3' digits on the right side.

그러면, 연산 코드 재생성부(124)는 상기 제1 부분 일련번호인 '122'를 구성하는 '3'개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, '3'비트의 상기 제1 연산 코드를 '100'과 같이 생성할 수 있고, 상기 제2 부분 일련번호인 '945'를 구성하는 '3'개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, '3'비트의 상기 제2 연산 코드를 '101'과 같이 생성할 수 있다.Then, the operation code regeneration unit 124 configures the result value when the modulo-2 operation is performed on each of the '3' numbers constituting the '122', which is the first partial serial number, into a bit string. , the first operation code of '3' bits can be generated like '100', and modulo-2 operation is performed on each of '3' numbers constituting '945', which is the second partial serial number. By composing the result value at the time of execution into a bit string, the second operation code of '3' bits can be generated as '101'.

그 이후, 이력 정보 복원부(125)는 상기 제1 연산 코드인 '100'과 상기 제2 연산 코드인 '101' 간의 배타적 논리합 연산을 수행함으로써, '3'비트의 시드 코드를 '001'과 같이 생성한 후, 상기 시드 코드인 '001'을 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성할 수 있다.Thereafter, the history information restoration unit 125 performs an exclusive-OR operation between '100', which is the first operation code, and '101', which is the second operation code, thereby converting the '3'-bit seed code to '001' and After generating together, the first hash value may be generated by applying the seed code '001' as an input to the hash function.

그러고 나서, 이력 정보 복원부(125)는 상기 암호화된 제1 이관 이력 정보를 상기 제1 해시 값으로 복호화함으로써, 상기 제1 이관 이력 정보를 복원할 수 있다.Then, the history information restoration unit 125 may restore the first migration history information by decrypting the encrypted first migration history information into the first hash value.

그러면, 정보 표시부(126)는 상기 제1 이관 이력 정보를 화면 상에 표시할 수 있다.Then, the information display unit 126 may display the first transfer history information on the screen.

즉, 전자 장치(110)는 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 상기 k개의 데이터에 대한 이관 이력 정보를 생성하여 클라우드 저장 서버(140)에 저장해 둠으로써, 사용자(130)가 언제든지 상기 k개의 데이터가 이관된 이력에 대한 정보를 확인할 수 있도록 지원할 수 있다.That is, when the data transfer operation for the k pieces of data is completed, the electronic device 110 generates and stores transfer history information for the k pieces of data in the cloud storage server 140 , so that the user 130 can It can support to check information about the history to which the k pieces of data have been transferred.

도 2는 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법을 도시한 순서도이다.2 is a flowchart illustrating a method of operating an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention.

단계(S210)에서는 데이터 이관 작업의 수행을 위해, 상기 전자 장치에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드 개수에 대한 정보가 저장되어 있는 정보 저장부를 유지한다.In step S210, in order to perform the data transfer operation, the electronic device maintains an information storage unit in which information on the maximum number of threads that can be created simultaneously is stored.

단계(S220)에서는 사용자에 의해, 사전 설정된 제1 데이터 저장소에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간(상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함)을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측한다. In step S220, when a data transfer command instructing to migrate k (k is a natural number greater than or equal to 2) data stored in the preset first data store to the preset second data store is applied by the user, the thread is started in step S220. Time required to generate n pieces of data at the same time and process the data transfer operation By repeatedly performing a process for predicting (meaning time required to process a task), increasing n by 1 from 1 to the maximum number of threads, Estimate the time it will take to work.

단계(S230)에서는 상기 전자 장치에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택한다.In step S230, the electronic device selects the first number of threads for which the work required time is predicted to be the minimum from among the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device.

단계(S240)에서는 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행한다.In step S240, if the first number of threads is selected, threads corresponding to the first number of threads are simultaneously created, and the k data are equally allocated to the first number of threads, and then the first number of threads is created. By simultaneously executing as many threads as the number of threads, a data migration operation for the k pieces of data is performed from the first data storage to the second data storage.

이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 사용자에 의해 상기 데이터 이관 명령이 인가되면, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서, 순차적으로, 상기 표 1에서 나타낸 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측할 수 있다.At this time, according to an embodiment of the present invention, in step S220, when the data transfer command is applied by the user, n is sequentially increased from 1 to the maximum number of threads by 1, as shown in Table 1 above. By repeatedly performing steps (1) to (3), it is possible to estimate the time required for the task according to the number of threads that can be simultaneously created in the electronic device.

이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 과정 (2)에서, 상기 최대 데이터 개수를 상기 수학식 1에 따라 산출할 수 있다.At this time, according to an embodiment of the present invention, in step S220, in step (2), the maximum number of data may be calculated according to Equation 1 above.

또한, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수에 대해서 예측된 제1 작업 소요 시간을, 상기 k개의 데이터에 대한 데이터 이관 작업을 처리하는 데 소요될 것으로 예상되는 작업 예상 시간으로 화면 상에 표시한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행함과 동시에, 화면 상에 표시되는 상기 제1 작업 소요 시간을 역카운트하고, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되기 전에 상기 제1 작업 소요 시간이 모두 소진되는 경우, 상기 제1 작업 소요 시간을 사전 설정된 추가 시간만큼 증가시켜 다시 역카운트하는 과정을, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 반복적으로 수행할 수 있다.In addition, according to an embodiment of the present invention, when the first number of threads is selected in step S240 , the estimated first task required time for the first number of threads is used for the data transfer task for the k pieces of data. After displaying on the screen as the estimated work time expected to process Then, by simultaneously executing the number of threads as many as the first number of threads, the data transfer operation for the k pieces of data from the first data storage to the second data storage is performed, and the first operation displayed on the screen Reverse counting the required time, and when all the required time for the first operation is exhausted before the data transfer operation for the k pieces of data is completed, the required time for the first operation is increased by a preset additional time to reverse count The process may be repeatedly performed until the data transfer operation for the k pieces of data is completed.

또한, 본 발명의 일실시예에 따르면, 상기 전자 장치의 동작 방법은 1부터 상기 최대 스레드 개수까지에 해당되는 각 스레드 개수에 대응되는, 사전 설정된 서로 다른 2t(t는 2 이상의 자연수임)자릿수의 일련번호가 기록된 일련번호 테이블을 저장하여 유지하는 단계, 단계(S240)에 의해, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하기 위한 이력 저장 이벤트를 발생시키는 단계, 상기 이력 저장 이벤트가 발생되면, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료된 날짜 및 시간에 대한 정보, 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 데 소요된 실제 소요 시간에 대한 정보, 원천 데이터 저장소에 대한 정보로, 상기 제1 데이터 저장소에 대한 식별 정보 및 타겟 데이터 저장소에 대한 정보로, 상기 제2 데이터 저장소에 대한 식별 정보로 구성된 제1 이관 이력 정보를 생성하는 단계, 상기 제1 이관 이력 정보가 생성되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 제1 부분 일련번호와 우측의 t자릿수의 제2 부분 일련번호로 분할하는 단계, 상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제2 연산 코드를 생성하는 단계, 상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 시드 코드를 생성한 후, 상기 시드 코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성하는 단계, 상기 제1 해시 값이 생성되면, 상기 제1 이관 이력 정보를 상기 제1 해시 값으로 암호화한 후, 사전 설정된 클라우드 저장 서버에, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 서로 대응시켜 저장함으로써, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하는 과정을 완료하는 단계, 상기 클라우드 저장 서버에 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 저장된 이후, 상기 사용자에 의해, 상기 제1 이관 이력 정보에 대한 표시 명령이 인가되면, 상기 클라우드 저장 서버로부터, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 수신하는 단계, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 수신되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 상기 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 상기 제1 부분 일련번호와 우측의 t자릿수의 상기 제2 부분 일련번호로 분할하는 단계, 상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제2 연산 코드를 생성하는 단계, 상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 상기 시드 코드를 생성하고, 상기 시드 코드를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성한 후, 상기 암호화된 제1 이관 이력 정보를 상기 제1 해시 값으로 복호화함으로써, 상기 제1 이관 이력 정보를 복원하는 단계 및 상기 제1 이관 이력 정보가 복원되면, 상기 제1 이관 이력 정보를 화면 상에 표시하는 단계를 더 포함할 수 있다.Also, according to an embodiment of the present invention, in the method of operating the electronic device, the number of preset different 2t (t is a natural number equal to or greater than 2) digits corresponding to the number of threads corresponding to 1 to the maximum number of threads. When the data transfer operation for the k pieces of data is completed by storing and maintaining the serial number table in which the serial numbers are recorded, by step S240, history storage for storing transfer history information for the k pieces of data generating an event, when the history storage event occurs, information on the date and time when the data transfer operation on the k pieces of data is completed, and the actual time required to perform the data transfer operation on the k pieces of data generating first migration history information including information on the source data storage, identification information on the first data storage and information on the target data storage, and identification information on the second data storage; , when the first transfer history information is generated, a first serial number corresponding to the first number of threads is extracted from the serial number table, and the first serial number is set based on the central axis of the first serial number. , dividing into a first partial serial number of t digits on the left and a second partial serial number of t digits on the right side, performing a modulo-2 operation on each of t numbers constituting the first partial serial number By composing the result value at the time of the operation into a bit string, a t-bit first operation code is generated, and the result when modulo-2 operation is performed on each of the t numbers constituting the second partial serial number After generating a t-bit seed code by generating a t-bit second operation code by composing the value into a bit string, performing an exclusive-OR operation between the first operation code and the second operation code, generating a first hash value by applying a seed code to a preset hash function as an input; when the first hash value is generated, the first migration history information is applied to the first hash value After encryption, the process of storing the transfer history information for the k pieces of data by storing the encrypted first transfer history information and the information on the number of first threads in correspondence with each other in a preset cloud storage server. Completing, after the encrypted first transfer history information and information on the number of first threads are stored in the cloud storage server, when a display command for the first transfer history information is applied by the user, the Receiving the encrypted first transfer history information and information on the number of first threads from the cloud storage server. When the encrypted first transfer history information and information on the first number of threads are received, the serial extracting the first serial number corresponding to the first number of threads from the number table, and using the first serial number as the first partial serial number of the left t-digit number based on the central axis of the first serial number and dividing into the second partial serial number of t digits to the right, and a bit string of a result value obtained when modulo-2 operation is performed on each of t numbers constituting the first partial serial number By doing so, the first operation code of t bits is generated, and the result value when the modulo-2 operation is performed on each of the t numbers constituting the second partial serial number is configured as a bit string, t generating the second operation code of bits and performing an exclusive-OR operation between the first operation code and the second operation code to generate the seed code of t bits, and input the seed code to the hash function After generating the first hash value by applying to , restoring the first migration history information by decrypting the encrypted first migration history information to the first hash value, and the first migration history information is restored The method may further include displaying the first transfer history information on a screen.

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법은 도 1을 이용하여 설명한 전자 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, a method of operating an electronic device that enables fast data transfer through scheduling of a data transfer task according to an embodiment of the present invention has been described with reference to FIG. 2 . Here, the operation method of the electronic device that enables fast data transfer through scheduling for the data transfer task according to an embodiment of the present invention may correspond to the configuration of the operation of the electronic device 110 described with reference to FIG. 1 . Therefore, a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.According to an embodiment of the present invention, the method of operating an electronic device that enables fast data transfer through scheduling for a data transfer task may be implemented as a computer program stored in a storage medium for execution through combination with a computer.

또한, 본 발명의 일실시예에 따른 데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the method of operating an electronic device that enables fast data transfer through scheduling for a data transfer task according to an embodiment of the present invention is implemented in the form of a program command that can be executed through various computer means and is a computer-readable medium. can be recorded in The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but these are only provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , various modifications and variations are possible from these descriptions by those of ordinary skill in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and not only the claims described below, but also all those with equivalent or equivalent modifications to the claims will be said to belong to the scope of the spirit of the present invention. .

110: 전자 장치
111: 정보 저장부 112: 예측부
113: 개수 선택부 114: 작업 수행부
115: 테이블 유지부 116: 이벤트 발생부
117: 이관 이력 정보 생성부 118: 일련번호 분할부
119: 연산 코드 생성부 120: 해시 값 생성부
121: 정보 저장 처리부 122: 정보 수신부
123: 일련번호 재분할부 124: 연산 코드 재생성부
125: 이력 정보 복원부 126: 정보 표시부
130: 사용자
140: 클라우드 저장 서버
110: electronic device
111: information storage unit 112: prediction unit
113: number selection unit 114: task execution unit
115: table maintenance unit 116: event generating unit
117: transfer history information generation unit 118: serial number division unit
119: operation code generation unit 120: hash value generation unit
121: information storage processing unit 122: information receiving unit
123: serial number re-division unit 124: operation code regeneration unit
125: history information restoration unit 126: information display unit
130: user
140: cloud storage server

Claims (12)

데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치에 있어서,
데이터 이관 작업의 수행을 위해, 상기 전자 장치에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드(thread) 개수에 대한 정보가 저장되어 있는 정보 저장부;
사용자에 의해, 사전 설정된 제1 데이터 저장소에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간 - 상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함 - 을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 예측부;
상기 전자 장치에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택하는 개수 선택부; 및
상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 작업 수행부
를 포함하는 전자 장치.
An electronic device that enables fast data transfer through scheduling for data transfer tasks, the electronic device comprising:
an information storage unit for storing information on the maximum number of threads that are preset to be simultaneously generated by the electronic device in order to perform a data transfer operation;
When a data transfer command instructing to migrate k (k is a natural number greater than or equal to 2) data stored in the preset first data store to the preset second data store is applied by the user, n threads are simultaneously created and Operation time required to process the data transfer operation - The operation required time is when the data transfer operation is processed from the first data storage to the second data storage by allocating the k data equally to the n threads Meaning the time required - By repeatedly performing the process for predicting n while increasing n by 1 from 1 to the maximum number of threads, predicting the time required for the task according to the number of threads that can be simultaneously created in the electronic device predictor;
a number selection unit for selecting the first number of threads for which the work required time is predicted to be the minimum from among the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device; and
When the first number of threads is selected, as many threads as the first number of threads are simultaneously created, the k data are equally allocated to the first number of threads, and then the number of threads equal to the first number of threads a task performing unit performing a data transfer operation for the k pieces of data from the first data store to the second data store by simultaneously executing
An electronic device comprising a.
제1항에 있어서,
상기 예측부는
상기 사용자에 의해 상기 데이터 이관 명령이 인가되면, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서, 순차적으로, 하기의 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 것을 특징으로 하는 전자 장치.
(1) n개의 스레드를 동시에 생성한 후, 상기 k개의 데이터 중 사전 설정된 샘플링 비율만큼에 해당되는 개수의 데이터를 샘플링하여, 상기 n개의 스레드 중 어느 하나의 스레드를 통해, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리함으로써, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리하는데 소요되는 제1 시간을 연산하고, 상기 제1 시간을 상기 샘플링된 데이터의 개수로 나눔으로써, 상기 샘플링된 데이터 각각의 데이터 이관 작업을 처리하는데 소요된 평균 시간을 연산함.
(2) 상기 k개의 데이터를 상기 n개의 스레드에 균등 할당하여 데이터 이관 작업을 처리한다고 하였을 때, 하나의 스레드를 통해 처리해야 하는 최대 데이터 개수를 산출함.
(3) 상기 평균 시간에 상기 최대 데이터 개수를 곱함으로써, 상기 n개의 스레드를 통해 데이터 이관 작업을 처리할 경우의 상기 작업 소요 시간을 예측함.
According to claim 1,
the prediction unit
When the data transfer command is applied by the user, by repeatedly performing the following steps (1) to (3) sequentially while increasing n by 1 from 1 to the maximum number of threads, in the electronic device The electronic device of claim 1, wherein the operation duration is predicted according to the number of threads that can be simultaneously created.
(1) After simultaneously creating n threads, a number of data corresponding to a preset sampling rate among the k data is sampled, and from the first data storage through any one of the n threads By processing the data transfer operation for the sampled data to the second data storage, a first time required to process the data transfer operation for the sampled data is calculated, and the first time is used for the sampled data By dividing by the number of , the average time taken to process the data transfer operation of each of the sampled data is calculated.
(2) Assuming that the data transfer operation is processed by allocating the k data equally to the n threads, the maximum number of data to be processed through one thread is calculated.
(3) By multiplying the average time by the maximum number of data, the time required for the task when the data transfer task is processed through the n threads is predicted.
제2항에 있어서,
상기 예측부는
상기 과정 (2)에서, 상기 최대 데이터 개수를 하기의 수학식 1에 따라 산출하는 것을 특징으로 하는 전자 장치.
[수학식 1]
Figure 112022078036967-pat00003

여기서, p는 상기 최대 데이터 개수,
Figure 112022078036967-pat00004
는 천장 함수를 의미함.
3. The method of claim 2,
the prediction unit
In the step (2), the electronic device characterized in that the maximum number of data is calculated according to Equation 1 below.
[Equation 1]
Figure 112022078036967-pat00003

where p is the maximum number of data,
Figure 112022078036967-pat00004
is the ceiling function.
제1항에 있어서,
상기 작업 수행부는
상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수에 대해서 예측된 제1 작업 소요 시간을, 상기 k개의 데이터에 대한 데이터 이관 작업을 처리하는 데 소요될 것으로 예상되는 작업 예상 시간으로 화면 상에 표시한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행함과 동시에, 화면 상에 표시되는 상기 제1 작업 소요 시간을 역카운트하고, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되기 전에 상기 제1 작업 소요 시간이 모두 소진되는 경우, 상기 제1 작업 소요 시간을 사전 설정된 추가 시간만큼 증가시켜 다시 역카운트하는 과정을, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 반복적으로 수행하는 것을 특징으로 하는 전자 장치.
According to claim 1,
The work execution unit
When the first number of threads is selected, the estimated first task required time for the first number of threads is displayed on the screen as the estimated work time required to process the data transfer task for the k pieces of data. then, by simultaneously creating as many threads as the first number of threads, allocating the k data equally to the threads as many as the first number of threads, and simultaneously executing the threads as many as the first number of threads, The data transfer operation for the k pieces of data is performed from the first data storage to the second data storage, and the time required for the first operation displayed on the screen is reversed, and the data transfer operation for the k pieces of data is performed. When all of the time required for the first task is exhausted before this is completed, the process of increasing the time required for the first task by a preset additional time and counting again is performed when the data transfer task for the k pieces of data is completed An electronic device, characterized in that it is repeatedly performed until
제1항에 있어서,
1부터 상기 최대 스레드 개수까지에 해당되는 각 스레드 개수에 대응되는, 사전 설정된 서로 다른 2t(t는 2 이상의 자연수임)자릿수의 일련번호가 기록된 일련번호 테이블을 저장하여 유지하는 테이블 유지부;
상기 작업 수행부에 의해, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하기 위한 이력 저장 이벤트를 발생시키는 이벤트 발생부;
상기 이력 저장 이벤트가 발생되면, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료된 날짜 및 시간에 대한 정보, 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 데 소요된 실제 소요 시간에 대한 정보, 원천 데이터 저장소에 대한 정보로, 상기 제1 데이터 저장소에 대한 식별 정보 및 타겟 데이터 저장소에 대한 정보로, 상기 제2 데이터 저장소에 대한 식별 정보로 구성된 제1 이관 이력 정보를 생성하는 이관 이력 정보 생성부;
상기 제1 이관 이력 정보가 생성되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 제1 부분 일련번호와 우측의 t자릿수의 제2 부분 일련번호로 분할하는 일련번호 분할부;
상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로(modulo)-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제2 연산 코드를 생성하는 연산 코드 생성부;
상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합(XOR) 연산을 수행함으로써, t비트의 시드(seed) 코드를 생성한 후, 상기 시드 코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성하는 해시 값 생성부;
상기 제1 해시 값이 생성되면, 상기 제1 이관 이력 정보를 상기 제1 해시 값으로 암호화한 후, 사전 설정된 클라우드 저장 서버에, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 서로 대응시켜 저장함으로써, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하는 과정을 완료하는 정보 저장 처리부;
상기 클라우드 저장 서버에 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 저장된 이후, 상기 사용자에 의해, 상기 제1 이관 이력 정보에 대한 표시 명령이 인가되면, 상기 클라우드 저장 서버로부터, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 수신하는 정보 수신부;
상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 수신되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 상기 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 상기 제1 부분 일련번호와 우측의 t자릿수의 상기 제2 부분 일련번호로 분할하는 일련번호 재분할부;
상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제2 연산 코드를 생성하는 연산 코드 재생성부;
상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 상기 시드 코드를 생성하고, 상기 시드 코드를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성한 후, 상기 암호화된 제1 이관 이력 정보를 상기 제1 해시 값으로 복호화함으로써, 상기 제1 이관 이력 정보를 복원하는 이력 정보 복원부; 및
상기 제1 이관 이력 정보가 복원되면, 상기 제1 이관 이력 정보를 화면 상에 표시하는 정보 표시부
를 더 포함하는 전자 장치.
According to claim 1,
a table holding unit for storing and maintaining a serial number table in which a serial number of preset different 2t (t is a natural number equal to or greater than 2) digits corresponding to each number of threads corresponding to the number of threads from 1 to the maximum number of threads;
an event generator generating, by the task execution unit, a history storage event for storing the transfer history information for the k pieces of data when the data transfer operation for the k pieces of data is completed;
When the history storage event occurs, information on the date and time at which the data transfer operation for the k pieces of data is completed, information on the actual time required to perform the data transfer operation on the k pieces of data, and source data a migration history information generator configured to generate first migration history information including storage information, identification information on the first data storage and target data storage information, and identification information on the second data storage;
When the first transfer history information is generated, a first serial number corresponding to the first number of threads is extracted from the serial number table, and the first serial number is based on a central axis of the first serial number, a serial number dividing unit dividing the first partial serial number of t digits on the left and the second partial serial number of t digits on the right side;
A t-bit first operation code is generated by composing a result value obtained when a modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, and an operation code generator generating a t-bit second operation code by configuring a result value obtained by performing a modulo-2 operation on each of the t numbers constituting the second partial serial number into a bit string;
By performing an exclusive-or (XOR) operation between the first operation code and the second operation code, a t-bit seed code is generated, and then the seed code is applied to a preset hash function as an input to obtain a first a hash value generator for generating a hash value;
When the first hash value is generated, after encrypting the first migration history information with the first hash value, the encrypted first migration history information and information on the number of the first threads in a preset cloud storage server an information storage processing unit that completes the process of storing the transfer history information for the k pieces of data by storing them in correspondence with each other;
After the encrypted first migration history information and information on the number of first threads are stored in the cloud storage server, when a display command for the first migration history information is applied by the user, the cloud storage server , an information receiving unit for receiving the encrypted first transfer history information and information on the number of the first threads;
When the encrypted first transfer history information and information on the number of first threads are received, the first serial number corresponding to the first number of threads is extracted from the serial number table, and the first serial number is , A serial number re-division unit dividing the first partial serial number of t digits on the left and the second partial serial number of t digits on the right with respect to the central axis of the first serial number;
The t-bit first operation code is generated by configuring a result value obtained when a modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, and the second operation code is generated. an operation code regenerating unit generating the t-bit second operation code by composing a result value obtained when a modulo-2 operation is performed on each of the t numbers constituting the partial serial number into a bit string;
The t-bit seed code is generated by performing an exclusive-OR operation between the first operation code and the second operation code, and the first hash value is generated by applying the seed code as an input to the hash function. , a history information restoration unit for restoring the first transfer history information by decrypting the encrypted first transfer history information into the first hash value; and
When the first transfer history information is restored, an information display unit for displaying the first transfer history information on a screen
An electronic device further comprising a.
데이터 이관 작업에 대한 스케줄링을 통해 빠른 데이터 이관을 가능하게 하는 전자 장치의 동작 방법에 있어서,
데이터 이관 작업의 수행을 위해, 상기 전자 장치에서 동시에 생성 가능한 것으로 사전 지정된 최대 스레드(thread) 개수에 대한 정보가 저장되어 있는 정보 저장부를 유지하는 단계;
사용자에 의해, 사전 설정된 제1 데이터 저장소에 저장된 k(k는 2 이상의 자연수임)개의 데이터를 사전 설정된 제2 데이터 저장소로 이관할 것을 지시하는 데이터 이관 명령이 인가되면, 스레드를 n개 동시에 생성하여 데이터 이관 작업을 처리하는데 소요되는 작업 소요 시간 - 상기 작업 소요 시간은, 상기 n개의 스레드에 상기 k개의 데이터를 균등 할당하여 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 데이터 이관 작업을 처리할 때 소요되는 시간을 의미함 - 을 예측하기 위한 과정을, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 단계;
상기 전자 장치에서 동시 생성 가능한, 1부터 상기 최대 스레드 개수까지에 에 해당되는 각 스레드 개수 중, 상기 작업 소요 시간이 최소로 예측된 제1 스레드 개수를 선택하는 단계; 및
상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 단계
를 포함하는 전자 장치의 동작 방법.
A method of operating an electronic device that enables fast data transfer through scheduling for data transfer tasks, the method comprising:
maintaining an information storage unit storing information on a maximum number of threads that are preset to be simultaneously generated by the electronic device in order to perform a data transfer operation;
When a data transfer command instructing to migrate k (k is a natural number greater than or equal to 2) data stored in the preset first data store to the preset second data store is applied by the user, n threads are simultaneously created and Operation time required to process the data transfer operation - The operation required time is when the data transfer operation is processed from the first data storage to the second data storage by allocating the k data equally to the n threads Meaning the time required - By repeatedly performing the process for predicting n while increasing n by 1 from 1 to the maximum number of threads, predicting the time required for the task according to the number of threads that can be simultaneously created in the electronic device to do;
selecting, from among the number of threads corresponding to 1 to the maximum number of threads that can be simultaneously created in the electronic device, the first number of threads for which the work required time is predicted to be the minimum; and
When the first number of threads is selected, as many threads as the first number of threads are simultaneously created, the k data are equally allocated to the first number of threads, and then the number of threads equal to the first number of threads performing a data migration operation for the k pieces of data from the first data storage to the second data storage by simultaneously executing
A method of operating an electronic device comprising a.
제6항에 있어서,
상기 예측하는 단계는
상기 사용자에 의해 상기 데이터 이관 명령이 인가되면, n을 1부터 상기 최대 스레드 개수까지 1씩 증가시키면서, 순차적으로, 하기의 과정 (1) 내지 과정 (3)을 반복적으로 수행함으로써, 상기 전자 장치에서 동시 생성 가능한 각 스레드 개수에 따른 상기 작업 소요 시간을 예측하는 것을 특징으로 하는 전자 장치의 동작 방법.
(1) n개의 스레드를 동시에 생성한 후, 상기 k개의 데이터 중 사전 설정된 샘플링 비율만큼에 해당되는 개수의 데이터를 샘플링하여, 상기 n개의 스레드 중 어느 하나의 스레드를 통해, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리함으로써, 상기 샘플링된 데이터에 대한 데이터 이관 작업을 처리하는데 소요되는 제1 시간을 연산하고, 상기 제1 시간을 상기 샘플링된 데이터의 개수로 나눔으로써, 상기 샘플링된 데이터 각각의 데이터 이관 작업을 처리하는데 소요된 평균 시간을 연산함.
(2) 상기 k개의 데이터를 상기 n개의 스레드에 균등 할당하여 데이터 이관 작업을 처리한다고 하였을 때, 하나의 스레드를 통해 처리해야 하는 최대 데이터 개수를 산출함.
(3) 상기 평균 시간에 상기 최대 데이터 개수를 곱함으로써, 상기 n개의 스레드를 통해 데이터 이관 작업을 처리할 경우의 상기 작업 소요 시간을 예측함.
7. The method of claim 6,
The predicting step
When the data transfer command is applied by the user, by repeatedly performing the following steps (1) to (3) sequentially while increasing n by 1 from 1 to the maximum number of threads, in the electronic device The method of operating an electronic device, characterized in that predicting the time required for the operation according to the number of threads that can be simultaneously created.
(1) After simultaneously creating n threads, a number of data corresponding to a preset sampling rate among the k data is sampled, and from the first data storage through any one of the n threads By processing the data transfer operation for the sampled data to the second data storage, a first time required to process the data transfer operation for the sampled data is calculated, and the first time is used for the sampled data By dividing by the number of , the average time taken to process the data transfer operation of each of the sampled data is calculated.
(2) Assuming that the data transfer operation is processed by allocating the k data equally to the n threads, the maximum number of data to be processed through one thread is calculated.
(3) By multiplying the average time by the maximum number of data, the time required for the task when the data transfer task is processed through the n threads is predicted.
제7항에 있어서,
상기 예측하는 단계는
상기 과정 (2)에서, 상기 최대 데이터 개수를 하기의 수학식 1에 따라 산출하는 것을 특징으로 하는 전자 장치의 동작 방법.
[수학식 1]
Figure 112022078036967-pat00005

여기서, p는 상기 최대 데이터 개수,
Figure 112022078036967-pat00006
는 천장 함수를 의미함.
8. The method of claim 7,
The predicting step
In step (2), the method of operating an electronic device, characterized in that the maximum number of data is calculated according to Equation 1 below.
[Equation 1]
Figure 112022078036967-pat00005

where p is the maximum number of data,
Figure 112022078036967-pat00006
is the ceiling function.
제6항에 있어서,
상기 수행하는 단계는
상기 제1 스레드 개수가 선택되면, 상기 제1 스레드 개수에 대해서 예측된 제1 작업 소요 시간을, 상기 k개의 데이터에 대한 데이터 이관 작업을 처리하는 데 소요될 것으로 예상되는 작업 예상 시간으로 화면 상에 표시한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 생성하고, 상기 제1 스레드 개수만큼의 스레드에, 상기 k개의 데이터를 균등 할당한 후, 상기 제1 스레드 개수만큼의 스레드를 동시에 실행함으로써, 상기 제1 데이터 저장소로부터 상기 제2 데이터 저장소로 상기 k개의 데이터에 대한 데이터 이관 작업을 수행함과 동시에, 화면 상에 표시되는 상기 제1 작업 소요 시간을 역카운트하고, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되기 전에 상기 제1 작업 소요 시간이 모두 소진되는 경우, 상기 제1 작업 소요 시간을 사전 설정된 추가 시간만큼 증가시켜 다시 역카운트하는 과정을, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료될 때까지 반복적으로 수행하는 것을 특징으로 하는 전자 장치의 동작 방법.
7. The method of claim 6,
The performing step is
When the first number of threads is selected, the estimated first task required time for the first number of threads is displayed on the screen as the estimated work time required to process the data transfer task for the k pieces of data. then, by simultaneously creating as many threads as the first number of threads, allocating the k data equally to the threads as many as the first number of threads, and simultaneously executing the threads as many as the first number of threads, The data transfer operation for the k pieces of data is performed from the first data storage to the second data storage, and the time required for the first operation displayed on the screen is reversed, and the data transfer operation for the k pieces of data is performed. When all of the time required for the first task is exhausted before this is completed, the process of increasing the time required for the first task by a preset additional time and counting again is performed when the data transfer task for the k pieces of data is completed A method of operating an electronic device, characterized in that it is repeatedly performed until
제6항에 있어서,
1부터 상기 최대 스레드 개수까지에 해당되는 각 스레드 개수에 대응되는, 사전 설정된 서로 다른 2t(t는 2 이상의 자연수임)자릿수의 일련번호가 기록된 일련번호 테이블을 저장하여 유지하는 단계;
상기 수행하는 단계에 의해, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료되면, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하기 위한 이력 저장 이벤트를 발생시키는 단계;
상기 이력 저장 이벤트가 발생되면, 상기 k개의 데이터에 대한 데이터 이관 작업이 완료된 날짜 및 시간에 대한 정보, 상기 k개의 데이터에 대한 데이터 이관 작업을 수행하는 데 소요된 실제 소요 시간에 대한 정보, 원천 데이터 저장소에 대한 정보로, 상기 제1 데이터 저장소에 대한 식별 정보 및 타겟 데이터 저장소에 대한 정보로, 상기 제2 데이터 저장소에 대한 식별 정보로 구성된 제1 이관 이력 정보를 생성하는 단계;
상기 제1 이관 이력 정보가 생성되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 제1 부분 일련번호와 우측의 t자릿수의 제2 부분 일련번호로 분할하는 단계;
상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로(modulo)-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 제2 연산 코드를 생성하는 단계;
상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합(XOR) 연산을 수행함으로써, t비트의 시드(seed) 코드를 생성한 후, 상기 시드 코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성하는 단계;
상기 제1 해시 값이 생성되면, 상기 제1 이관 이력 정보를 상기 제1 해시 값으로 암호화한 후, 사전 설정된 클라우드 저장 서버에, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 서로 대응시켜 저장함으로써, 상기 k개의 데이터에 대한 이관 이력 정보를 저장하는 과정을 완료하는 단계;
상기 클라우드 저장 서버에 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 저장된 이후, 상기 사용자에 의해, 상기 제1 이관 이력 정보에 대한 표시 명령이 인가되면, 상기 클라우드 저장 서버로부터, 상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보를 수신하는 단계;
상기 암호화된 제1 이관 이력 정보와 상기 제1 스레드 개수에 대한 정보가 수신되면, 상기 일련번호 테이블로부터, 상기 제1 스레드 개수에 대응되는 상기 제1 일련번호를 추출하고, 상기 제1 일련번호를, 상기 제1 일련번호의 중심축을 기준으로, 좌측의 t자릿수의 상기 제1 부분 일련번호와 우측의 t자릿수의 상기 제2 부분 일련번호로 분할하는 단계;
상기 제1 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제1 연산 코드를 생성하고, 상기 제2 부분 일련번호를 구성하는 t개의 숫자들 각각에 대해 모듈로-2 연산을 수행하였을 때의 결과 값을 비트열로 구성함으로써, t비트의 상기 제2 연산 코드를 생성하는 단계;
상기 제1 연산 코드와 상기 제2 연산 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 상기 시드 코드를 생성하고, 상기 시드 코드를 상기 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성한 후, 상기 암호화된 제1 이관 이력 정보를 상기 제1 해시 값으로 복호화함으로써, 상기 제1 이관 이력 정보를 복원하는 단계; 및
상기 제1 이관 이력 정보가 복원되면, 상기 제1 이관 이력 정보를 화면 상에 표시하는 단계
를 더 포함하는 전자 장치의 동작 방법.
7. The method of claim 6,
storing and maintaining a serial number table in which serial numbers of preset different 2t (t is a natural number equal to or greater than 2) digit number corresponding to each number of threads corresponding to 1 to the maximum number of threads are recorded;
generating a history storage event for storing migration history information for the k pieces of data when the data migration operation for the k pieces of data is completed by the performing;
When the history storage event occurs, information on the date and time at which the data transfer operation for the k pieces of data is completed, information on the actual time required to perform the data transfer operation on the k pieces of data, and source data generating first migration history information including identification information on the second data storage as information on the storage, identification information on the first data storage and information on the target data storage;
When the first transfer history information is generated, a first serial number corresponding to the first number of threads is extracted from the serial number table, and the first serial number is based on a central axis of the first serial number, dividing the first partial serial number of t digits on the left side and the second partial serial number of t digits on the right side;
A t-bit first operation code is generated by composing a result value obtained when a modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, and generating a t-bit second operation code by composing a result value obtained by performing a modulo-2 operation on each of the t numbers constituting the second partial serial number into a bit string;
By performing an exclusive-or (XOR) operation between the first operation code and the second operation code, a t-bit seed code is generated, and then the seed code is applied to a preset hash function as an input to obtain a first generating a hash value;
When the first hash value is generated, after encrypting the first migration history information with the first hash value, the encrypted first migration history information and information on the number of the first threads in a preset cloud storage server Completing the process of storing the transfer history information for the k pieces of data by storing them in correspondence with each other;
After the encrypted first migration history information and information on the number of first threads are stored in the cloud storage server, when a display command for the first migration history information is applied by the user, the cloud storage server , receiving the encrypted first transfer history information and information on the number of the first threads;
When the encrypted first transfer history information and information on the number of first threads are received, the first serial number corresponding to the first number of threads is extracted from the serial number table, and the first serial number is , dividing the first partial serial number of t digits on the left and the second partial serial number of t digits on the right with respect to the central axis of the first serial number;
The t-bit first operation code is generated by configuring a result value obtained when a modulo-2 operation is performed on each of the t numbers constituting the first partial serial number into a bit string, and the second operation code is generated. generating the t-bit second operation code by composing a result value obtained by performing a modulo-2 operation on each of the t numbers constituting the partial serial number into a bit string;
The t-bit seed code is generated by performing an exclusive-OR operation between the first operation code and the second operation code, and the first hash value is generated by applying the seed code as an input to the hash function. , restoring the first transfer history information by decrypting the encrypted first transfer history information into the first hash value; and
When the first transfer history information is restored, displaying the first transfer history information on a screen
The method of operating an electronic device further comprising a.
제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 6 to 10 through combination with a computer. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
A computer program stored in a storage medium for executing the method of any one of claims 6 to 10 through combination with a computer.
KR1020220092343A 2022-07-26 2022-07-26 Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof KR102453343B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220092343A KR102453343B1 (en) 2022-07-26 2022-07-26 Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220092343A KR102453343B1 (en) 2022-07-26 2022-07-26 Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof

Publications (1)

Publication Number Publication Date
KR102453343B1 true KR102453343B1 (en) 2022-10-11

Family

ID=83599216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220092343A KR102453343B1 (en) 2022-07-26 2022-07-26 Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof

Country Status (1)

Country Link
KR (1) KR102453343B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090095635A (en) * 2006-12-14 2009-09-09 노키아 코포레이션 Method for the secure storing of program state data in an electronic device
KR101236835B1 (en) * 2011-02-28 2013-02-25 삼성중공업 주식회사 Encoding and decoding method using encoding codes
KR20130137503A (en) * 2012-06-07 2013-12-17 주식회사 엘지씨엔에스 Apparatus for dynamic data processing using resource monitoring and method thereof
KR20180094118A (en) * 2016-01-12 2018-08-22 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Encryption of memory operations
KR20200124551A (en) * 2019-04-24 2020-11-03 주식회사 데이터스트림즈 A conversion systsm for processing large amounts of data in a batch job
KR102264205B1 (en) * 2019-09-20 2021-06-10 인천대학교 산학협력단 Real-time analysis device capable of determining whether work assignment scheduling in a real-time system is possible and operating method thereof
KR20210113761A (en) * 2020-03-09 2021-09-17 코싸인온 주식회사 A data transfer method based on arithmetic characteristics between internal and external memory by memory controller

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090095635A (en) * 2006-12-14 2009-09-09 노키아 코포레이션 Method for the secure storing of program state data in an electronic device
KR101236835B1 (en) * 2011-02-28 2013-02-25 삼성중공업 주식회사 Encoding and decoding method using encoding codes
KR20130137503A (en) * 2012-06-07 2013-12-17 주식회사 엘지씨엔에스 Apparatus for dynamic data processing using resource monitoring and method thereof
KR20180094118A (en) * 2016-01-12 2018-08-22 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Encryption of memory operations
KR20200124551A (en) * 2019-04-24 2020-11-03 주식회사 데이터스트림즈 A conversion systsm for processing large amounts of data in a batch job
KR102264205B1 (en) * 2019-09-20 2021-06-10 인천대학교 산학협력단 Real-time analysis device capable of determining whether work assignment scheduling in a real-time system is possible and operating method thereof
KR20210113761A (en) * 2020-03-09 2021-09-17 코싸인온 주식회사 A data transfer method based on arithmetic characteristics between internal and external memory by memory controller

Similar Documents

Publication Publication Date Title
US9608664B2 (en) Compression of integer data using a common divisor
US10885378B2 (en) Container image management
JP4334582B2 (en) Secret sharing apparatus, method and program
US10248326B2 (en) Incremental erasure coding for storage systems
US9152921B2 (en) Computing regression models
US20180341516A1 (en) Processing jobs using task dependencies
CN110930145B (en) Cold wallet generation method, transaction information processing method, device and storage medium
JP2018511132A (en) Application loading method and apparatus
CN107431620B (en) Runtime instantiation of broadcast encryption schemes
US10031764B2 (en) Managing executable files
WO2023052869A1 (en) Secure encryption of partial blocks
US10334028B2 (en) Apparatus and method for processing data
KR102453343B1 (en) Electronic apparatus which enables fast data migration through scheduling of data migration tasks, and the operating method thereof
JP7055142B2 (en) How to generate prime numbers for cryptographic applications
CN112181974B (en) Identification information distribution method, system and storage device
KR102177440B1 (en) Method and Device for Processing Big Data
CN109947613B (en) File reading test method and device
KR101981628B1 (en) Method and Apparatus for Frame Scheduling Based on Bus Communication
JP2007218997A (en) Prime number generation device, program and method
KR101738415B1 (en) Data storage apparatus and method for storing a message dispersedly
CN108228081B (en) Method and apparatus for data protection
KR101988302B1 (en) Apparatus and method for generating identifier of content file based on hash, and method for hash code generation
US11841982B2 (en) Partitioning circuits for execution of sequential secure computation code on multiple processors
US11593026B2 (en) Zone storage optimization using predictive protocol patterns
WO2022267038A1 (en) Random sequence generation method and apparatus, device, and medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant