KR20180090617A - Electronic device and method for processing data - Google Patents

Electronic device and method for processing data Download PDF

Info

Publication number
KR20180090617A
KR20180090617A KR1020170015701A KR20170015701A KR20180090617A KR 20180090617 A KR20180090617 A KR 20180090617A KR 1020170015701 A KR1020170015701 A KR 1020170015701A KR 20170015701 A KR20170015701 A KR 20170015701A KR 20180090617 A KR20180090617 A KR 20180090617A
Authority
KR
South Korea
Prior art keywords
file
data
account
block index
electronic device
Prior art date
Application number
KR1020170015701A
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 KR1020170015701A priority Critical patent/KR20180090617A/en
Publication of KR20180090617A publication Critical patent/KR20180090617A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Various embodiments relating to an electronic device and a method for processing data in the same are described. According to an embodiment of the present invention, provided is the electronic device including: a memory; and a processor operatively or electrically connected to the memory. The processor is set to store a first file of a first application corresponding to a first account in a first region of the memory and a second file including link information about the first file in a second region of the memory when the installation of the first application is requested by a second account. Various other embodiments are possible. Accordingly, the present invention can efficiently process data and reduce power consumption.

Description

전자 장치 및 전자 장치에서 데이터 처리 방법{ELECTRONIC DEVICE AND METHOD FOR PROCESSING DATA}ELECTRONIC DEVICE AND METHOD FOR PROCESSING DATA [

본 발명의 다양한 실시예들은 전자 장치 및 전자 장치에서 데이터 처리 방법에 관한 것이다.Various embodiments of the invention relate to electronic devices and methods of processing data in electronic devices.

최근 전자 장치를 복수의 사용자들이 공용으로 이용하고자 하는 요구가 증가하고 있다. 이에 따라 전자 장치는 사용자들이 각자 자신의 계정을 이용하여 하나의 전자 장치를 공용으로 사용할 수 있도록 복수 사용자 계정(Multi-user account)을 제공하고 있다. 전자 장치에서 복수의 사용자 계정을 제공하는 경우 사용자 계정마다 데이터 저장 및 처리가 수행되므로 데이터 저장 공간이 많이 필요하고 데이터 처리 과정이 복잡할 수 있다. 이에 따라 복수의 사용자 계정을 위한 효율적인 데이터 저장 및 처리 기술이 필요한 실정이다.BACKGROUND ART [0002] Recently, there is an increasing demand for a plurality of users to commonly use an electronic device. Accordingly, the electronic device provides a multi-user account so that users can commonly use one electronic device using their own account. When a plurality of user accounts are provided in an electronic device, since data is stored and processed for each user account, a large amount of data storage space is required and the data processing process may be complicated. Accordingly, efficient data storage and processing techniques are required for a plurality of user accounts.

종래 기술에 따른 전자 장치에서 복수의 사용자 계정을 지원하기 위한 방식들을 예를 들면, 가상 환경을 이용하는 방식이나 사용자별 디렉토리를 제공하는 방식 등일 수 있다. 가상 환경을 이용하는 방식은 전자 장치 상에 복수의 사용자 각각에 대응된 가상 머신을 구성하고 각 가상 머신들이 가상 디스크 이미지 파일(Virtual Disk Image File)을 이용하여 디스크를 에뮬레이트(Emulate)할 수 있도록 하는 방식 또는 전자 장치 상의 호스트 OS(operating system)가 컨테이너(container)를 이용하여 복수의 사용자 각각에 대응된 가상 환경을 독립적으로 제공하는 방식 등이 될 수 있다. 사용자별 디렉토리(directory)를 제공하는 방식은 복수의 사용자 계정에 대응하는 디렉토리를 구성하고, 각 디렉토리 내에 사용자별 데이터를 저장하여 이용하는 방식일 수 있다.The methods for supporting a plurality of user accounts in the electronic device according to the related art may be, for example, a method of using a virtual environment or a method of providing a directory for each user. A method using a virtual environment is a method of configuring a virtual machine corresponding to each of a plurality of users on an electronic device and allowing each virtual machine to emulate a disk using a virtual disk image file Or a method in which a host operating system (OS) on an electronic device independently provides a virtual environment corresponding to each of a plurality of users using a container. A method of providing a directory for each user may be a method of configuring a directory corresponding to a plurality of user accounts and storing user-specific data in each directory.

가상 머신을 이용하는 경우, 가상 디스크 이미지 파일을 구성하되, 가상 머신들간 공통적으로 사용되는 공통 부분은 공통 디스크 이미지 파일로 유지하고, 가상 머신들 별 고유 데이터에 대응되는 개별 부분은 개별 디스크 이미지 파일로 구성하는 방식을 이용함으로써 저장 공간에 대한 최적화를 도모하고 있다. 그러나 이러한 가상 머신을 이용하는 방식에서는 가상 머신들 별로 개별 디스크 이미지 파일을 생성하는 과정에서 개별 디스크 이미지 파일의 크기가 확장된 이후에는 개별 디스크 이미지 파일 내의 데이터가 삭제되어도 개별 디스크 이미지 파일의 크기는 확장된 크기가 유지됨으로써 저장 공간이 확장된 상태로 점유되는 문제가 있다. 또한 가상 디스크 이미지 파일은 그 자체가 파일이기 때문에 입출력이 발생할 때, 가상 디스크 상에서 입출력 동작이 발생되고, 이후 실제 디스크 상에서 입출력 동작이 한번 더 발생하므로 처리 과정이 복잡하고 전류 소모가 더 발생할 수 있다.In the case of using a virtual machine, a virtual disk image file is configured, a common portion common to the virtual machines is maintained as a common disk image file, and individual portions corresponding to the unique data for each virtual machine are configured as individual disk image files And optimizing the storage space by using the method of FIG. However, in the method using such a virtual machine, after the size of the individual disk image file is enlarged in the process of generating the individual disk image file for each virtual machine, the size of the individual disk image file is enlarged There is a problem that the storage space is occupied in an expanded state because the size is maintained. Also, since the virtual disk image file is a file itself, the input / output operation occurs on the virtual disk when the input / output occurs, and the input / output operation occurs once more on the actual disk.

한편, 호스트가 컨테이너를 이용하는 경우, 컨테이너들 간 공통 부분은 시스템은 Read Only인 하위 파일 시스템을 이용하고, 컨테이터들 각각의 개별 부분은 Read 및 Write 가능한 상위 파일 시스템을 이용하도록 함으로써 저장 공간에 대한 최적화를 도모하고 있다. 그러나 이러한 호스트가 컨테이터를 이용하는 방식에서의 파일 시스템은 스태커블 파일 시스템(Stackable Filesystem) 즉, 두 개의 파일 시스템을 연결하여 마치 한 개의 파일 시스템이 작동하도록 하는 파일 시스템으로서, 하위 파일 시스템의 데이터 수정이 발생하면 상위 파일 시스템도 수정되어야 하므로 처리 과정이 복잡하고 저장공간이 많이 필요할 수 있다. 예를 들면, 하위 파일 시스템의 특정 파일에 대해 1 바이트의 데이터만 수정하고자 하는 경우 수정하고자 하는 1 바이트를 포함하는 파일 전체가 하위 파일 시스템에서 상위 파일 시스템으로 복사되어야 하기 때문에, 복사 동작으로 인한 시간이 처리 과정이 복잡하고 동일한 파일이 중복 저장되므로 저장 공간이 더 필요할 수 있다.On the other hand, when the host uses the container, the common portion between the containers uses the lower file system in which the system is Read Only, and the individual portions of each of the containers use the upper file system capable of Read and Write. Optimization is being planned. However, in such a host-based file system, the file system is a stackable file system, ie, a file system that connects two file systems to make one file system operate, The higher-level file system must be modified as well, so that the processing is complicated and a lot of storage space may be needed. For example, if only one byte of data is to be modified for a specific file of a lower file system, the entire file including one byte to be modified must be copied from the lower file system to the upper file system, This process is complicated and the same files are redundantly stored, so more storage space may be needed.

또한 사용자별 디렉토리를 제공하는 방식의 경우 N 명의 사용자가 있을 때 N 개의 디렉토리를 내에 사용자 별 데이터가 저장될 수 있는데, N 명의 사용자들이 동일한 소프트웨어 패키지를 설치하는 경우 동일한 파일들이 N 개의 디렉토리 내에 각각 설치되어 하나의 전자 장치 내에 N 개의 소프트웨어 패키지가 중복 설치됨으로써 저장 공간이 낭비될 수 있다. Also, in case of providing a directory for each user, user-specific data can be stored in N directories when there are N users. If N users install the same software package, the same files are installed in N directories And storage space may be wasted by overlapping N software packages in one electronic device.

또한 상기한 바와 같은 종래 방식들은 데이터 처리가 파일 시스템 또는 파일 단위로 수행되므로, 파일 내의 일부 데이터만 수정된 경우에도 파일 시스템 또는 파일 전체를 처리해야됨으로써 데이터 처리시 처리량이 많고 저장 공간도 많이 필요할 수 있다.In addition, since the data processing is performed in a file system or a file unit, even if only a part of data in the file is modified, the conventional system as described above requires processing of the entire file system or file, have.

따라서 본 발명의 다양한 실시예들에서는 전자 장치에서 복수의 사용자 계정 지원 시 동일한 파일들이 복수 사용자 디렉토리 내에 각각 설치되는 것이 아니라 미리 저장된 파일이 있는 경우 미리 저장된 파일을 링크하는 CoW Link(Copy-on-Write Link)을 이용함으로써, 데이터 처리 과정이 효율적이고 저장 공간의 낭비를 줄일 수 있으며 전력 소모가 적은 전자 장치 및 전자 장치에서 데이터 처리 방법을 제공할 수 있다. Therefore, in the various embodiments of the present invention, when a plurality of user accounts are supported in the electronic device, the same files are not installed in each of the plurality of user directories, but when a pre-stored file exists, CoW Link (Copy-on-Write Link), it is possible to provide a data processing method in an electronic device and an electronic device which can efficiently process data, reduce waste of storage space, and consume less power.

또한 본 발명의 다양한 실시예들에서는 전자 장치에서 CoW Link 파일 이용 시 CoW Link 파일이 참조하는 원본 파일의 일부 데이터가 수정되면 원본 파일 전체가 아닌 수정된 데이터에 대응된 데이터 블록에 대해서만 별도로 처리가 가능하도록 함으로써 상대적으로 데이터 처리량이 적고 저장 공간도 적게 필요한 전자 장치 및 전자 장치에서 데이터 처리 방법을 제공할 수 있다.In addition, in the various embodiments of the present invention, when a CoW Link file is used in an electronic device, if some data of an original file referenced by a CoW Link file is modified, the data block corresponding to the modified data can be processed separately It is possible to provide a data processing method in an electronic device and an electronic device which require a relatively small data throughput and a small storage space.

다양한 실시 예들에 따르면, 전자 장치에 있어서, 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 메모리; 및 상기 메모리에 동작 가능하게 또는 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 제2 계정에 의한 상기 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하도록 설정될 수 있다.According to various embodiments, there is provided an electronic device comprising: a memory for storing a first file of a first application corresponding to a first account in a first area of the memory; And a processor operatively or electrically connected to the memory, wherein the processor is operable to cause a second file containing link information for the first file to be stored in the memory when the first application is installed by the second account, May be set to be stored in the second area.

다양한 실시 예들에 따르면, 전자 장치에서 데이터 처리 방법에 있어서, 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작; 및 제2 계정에 의한 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 포함할 수 있다. According to various embodiments, there is provided a method of processing data in an electronic device, comprising: storing a first file of a first application corresponding to a first account in a first area of the memory; And storing, in a second area of the memory, a second file containing link information for the first file upon a first application installation request by the second account.

다양한 실시 예에 따르면, 데이터 처리 프로그램을 저장하는 저장 매체에서, 상기 프로그램은 전자 장치에서, 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작 및 제2 계정에 의한 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 수행할 수 있다. According to various embodiments, there is provided a storage medium storing a data processing program, the program comprising: in an electronic device, storing a first file of a first application corresponding to a first account in a first area of the memory; And storing a second file including link information for the first file in a second area of the memory when a first application installation request is made by an account.

본 발명의 다양한 실시예들에 따르면, 전자 장치에서 복수의 사용자 계정 지원 시 동일한 파일들이 복수 사용자 디렉토리 내에 각각 설치되는 것이 아니라 미리 저장된 파일이 있는 경우 미리 저장된 파일을 링크하는 CoW Link 파일을 이용함으로써, 데이터 처리 과정이 효율적이고 저장 공간의 낭비를 줄일 수 있으며, 전력 소모가 적을 수 있다.According to various embodiments of the present invention, when a plurality of user accounts are supported in an electronic device, the same files are not installed in each of a plurality of user directories, but when there is a pre-stored file, by using a CoW Link file linking a pre- Data processing is efficient, storage space is wasted, and power consumption is low.

또한 본 발명의 다양한 실시예들에 따르면 전자 장치에서 CoW Link 파일 이용 시 CoW Link 파일이 참조하는 원본 파일의 일부 데이터가 수정되면 원본 파일 전체가 아닌 수정된 데이터에 대응된 데이터 블록에 대해서만 별도로 처리가 가능하도록 함으로써 상대적으로 데이터 처리량이 적고 저장 공간도 적게 필요하도록 할 수 있다.According to various embodiments of the present invention, when some data of an original file referred to by a CoW Link file is modified when using a CoW Link file in an electronic device, only a data block corresponding to the modified data is processed separately Thereby making it possible to relatively reduce data throughput and require less storage space.

또한 본 발명의 다양한 실시예들에 따르면 동일한 파일을 다른 사용자(예를 들면 VM 또는 실제 사용자 등)별로 독립적으로 사용할 수 있도록 하면서도, 중복 데이터를 최소화 함으로써 저장 공간 낭비를 최소화할 수 있으며, CoW Link 파일을 삭제하면 삭제한 만큼 즉시 다른 사용자가 사용할 수 있으므로, 디스크 이미지를 사용할 때처럼 별도의 추가 작업을 통한 유휴 공간 확보 작업을 하지 않아도 된다.According to various embodiments of the present invention, it is possible to use the same file independently for different users (for example, a VM or an actual user) while minimizing redundant data, thereby minimizing waste of storage space, It is possible to use other users as soon as they are deleted. Therefore, there is no need to perform an additional operation to secure the idle space as in the case of using a disk image.

도 1은 다양한 실시예에 따른 전자 장치의 블록도이다.
도 2는 다양한 실시예에 따른 파일 구조를 나타낸 도면이다.
도 3a 및 도 3b는 다양한 실시 예에 따른 복수의 사용자 계정들 각각에 대응된 디렉토리를 설명하기 위한 개념도이다.
도 4는 다양한 실시예에 따른 전자 장치에서 어플리케이션 설치 동작을 나타낸 흐름도이다.
도 5는 다양한 실시 예에 따른 전자 장치에서 Cow link 파일 실행 시 데이터 수정 발생에 따른 동작을 나타낸 흐름도이다.
도 6은 다양한 실시 예에 따른 전자 장치에서 Cow link 파일 실행 시 읽기 명령 발생에 따른 동작을 나타낸 흐름도이다.
도 7은 다양한 실시예예 따른 전자 장치에서 Cow link 파일 수정 동작을 설명하기 위한 도면이다.
도 8a 및 도 8b는 다양한 실시 예에 따른 파일의 메타 데이터와 블록 인덱스에 포함되는 정보를 나타낸 도면이다.
1 is a block diagram of an electronic device according to various embodiments.
2 is a diagram illustrating a file structure according to various embodiments.
3A and 3B are conceptual diagrams for explaining a directory corresponding to each of a plurality of user accounts according to various embodiments.
4 is a flow diagram illustrating an application installation operation in an electronic device according to various embodiments.
FIG. 5 is a flowchart illustrating an operation according to occurrence of data modification when a Cow link file is executed in an electronic device according to various embodiments.
FIG. 6 is a flowchart illustrating an operation according to generation of a read command when a Cow link file is executed in an electronic device according to various embodiments.
7 is a diagram for explaining a Cow link file modification operation in an electronic device according to various embodiments.
8A and 8B are views showing information included in the file metadata and the block index according to various embodiments.

이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.Hereinafter, various embodiments of the present document will be described with reference to the accompanying drawings. It is to be understood that the embodiments and terminologies used herein are not intended to limit the invention to the particular embodiments described, but to include various modifications, equivalents, and / or alternatives of the embodiments. In connection with the description of the drawings, like reference numerals may be used for similar components. The singular expressions may include plural expressions unless the context clearly dictates otherwise. In this document, the expressions "A or B" or "at least one of A and / or B" and the like may include all possible combinations of the items listed together. Expressions such as " first, "" second," " first, "or" second, " But is not limited to those components. When it is mentioned that some (e.g., first) component is "(functionally or communicatively) connected" or "connected" to another (second) component, May be connected directly to the component, or may be connected through another component (e.g., a third component).

본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다. In this document, the term " configured to (or configured) to "as used herein is intended to encompass all types of hardware, software, , "" Made to "," can do ", or" designed to ". In some situations, the expression "a device configured to" may mean that the device can "do " with other devices or components. For example, a processor configured (or configured) to perform the phrases "A, B, and C" may be implemented by executing one or more software programs stored in a memory device or a dedicated processor (e.g., an embedded processor) , And a general purpose processor (e.g., a CPU or an application processor) capable of performing the corresponding operations.

본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.Electronic devices in accordance with various embodiments of the present document may be used in various applications such as, for example, smart phones, tablet PCs, mobile phones, videophones, electronic book readers, desktop PCs, laptop PCs, netbook computers, workstations, a portable multimedia player, an MP3 player, a medical device, a camera, or a wearable device. Wearable devices may be of the type of accessories (eg, watches, rings, bracelets, braces, necklaces, glasses, contact lenses or head-mounted-devices (HMD) (E.g., a skin pad or tattoo), or a bio-implantable circuit. In some embodiments, the electronic device may be, for example, a television, a digital video disk (Such as Samsung HomeSync TM , Apple TV TM , or Google TV TM ), which are used in home appliances such as home appliances, audio, refrigerators, air conditioners, vacuum cleaners, ovens, microwave ovens, washing machines, air cleaners, set top boxes, home automation control panels, , A game console (e.g., Xbox TM , PlayStation TM ), an electronic dictionary, an electronic key, a camcorder, or an electronic photo frame.

다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다. In an alternative embodiment, the electronic device may be any of a variety of medical devices (e.g., various portable medical measurement devices such as a blood glucose meter, a heart rate meter, a blood pressure meter, or a body temperature meter), magnetic resonance angiography (MRA) A navigation system, a global navigation satellite system (GNSS), an event data recorder (EDR), a flight data recorder (FDR), an automobile infotainment device, a marine electronic equipment (For example, marine navigation systems, gyro compasses, etc.), avionics, security devices, head units for vehicles, industrial or domestic robots, drones, ATMs at financial institutions, of at least one of the following types of devices: a light bulb, a fire detector, a fire alarm, a thermostat, a streetlight, a toaster, a fitness device, a hot water tank, a heater, a boiler, . According to some embodiments, the electronic device may be a piece of furniture, a building / structure or part of an automobile, an electronic board, an electronic signature receiving device, a projector, or various measuring devices (e.g., Gas, or radio wave measuring instruments, etc.). In various embodiments, the electronic device is flexible or may be a combination of two or more of the various devices described above. The electronic device according to the embodiment of the present document is not limited to the above-described devices. In this document, the term user may refer to a person using an electronic device or a device using an electronic device (e.g., an artificial intelligence electronic device).

다양한 실시 예에 따르면, 전자 장치는 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 메모리; 및 상기 메모리에 동작 가능하게 또는 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 제2 계정에 의한 상기 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하도록 설정될 수 있다. According to various embodiments, the electronic device comprises: a memory for storing a first file of a first application corresponding to a first account in a first area of the memory; And a processor operatively or electrically connected to the memory, wherein the processor is operable to cause a second file containing link information for the first file to be stored in the memory when the first application is installed by the second account, May be set to be stored in the second area.

한 실시 예에 따르면, 상기 제1 파일에 대한 링크 정보는 상기 제1 파일을 참조하도록 지시하는 정보를 포함할 수 있다.According to an embodiment, the link information for the first file may include information for referring to the first file.

한 실시 예에 따르면, 상기 프로세서는 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 상기 제2 파일을 생성하도록 설정될 수 있다.According to one embodiment, the processor may be configured to generate the second file using the kernel upon request of an application programming interface.

한 실시 예에 따르면, 상기 프로세서는 상기 제2 파일를 이용하여 상기 제1 파일에 포함된 적어도 하나의 블록 인덱스를 획득하고, 상기 획득된 적어도 하나의 블록 인덱스를 이용하여 상기 제1 파일에 대응된 데이터를 획득하도록 설정될 수 있다.According to one embodiment, the processor obtains at least one block index included in the first file using the second file, and obtains data corresponding to the first file using the obtained at least one block index . ≪ / RTI >

한 실시 예에 따르면, 상기 프로세서는 상기 제2 계정에 의한 제1 파일에 대응된 제1 데이터의 수정 명령 발생에 따라 상기 제1 파일에 포함된 제1 블록 인덱스를 이용하여 상기 제1 데이터를 제2 데이터로 수정하고 상기 제2 데이터에 대응된 제2 블록 인덱스가 포함되도록 상기 제2 파일을 수정하도록 설정될 수 있다.According to an embodiment of the present invention, the processor may update the first data by using a first block index included in the first file in response to generation of a correction command of the first data corresponding to the first file by the second account, 2 data and to modify the second file so that a second block index corresponding to the second data is included.

한 실시 예에 따르면, 상기 프로세서는 상기 제2 계정에 의한 읽기 명령이 발생에 따라 상기 제2 파일에 존재하는 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하고, 상기 제2 파일 내에 상기 블록 인덱스가 존재하지 않으면, 상기 제1 파일에 포함된 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행할 수 있다.According to one embodiment, the processor reads the read object data using a block index existing in the second file as a read command by the second account occurs, If the index does not exist, the read data can be read using the block index included in the first file.

한 실시 예에 따르면, 상기 메모리는 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역이 할당될 수 있다.According to one embodiment, the memory may be allocated at least one account storage area corresponding to each of at least one account and a shared storage area shared by the at least one account.

도 1은 다양한 실시예에 따른 전자 장치의 블록도이다.1 is a block diagram of an electronic device according to various embodiments.

도 1을 참조하면, 전자 장치(101)는 입력부(110), 프로세서(120), 메모리(130), 출력부(150)를 포함할 수 있다. Referring to FIG. 1, an electronic device 101 may include an input unit 110, a processor 120, a memory 130, and an output unit 150.

입력부(110)는 사용자 또는 다른 외부 기기로부터 명령 또는 데이터를 입력받을 수 있다. 입력부(110)는 사용자 입력을 수신할 수 있는 터치 스크린, 키패드, 터치 패드, 또는 스타일러스 등을 포함할 수 있으며, 사용자에 의한 요청 또는 선택 또는 명령을 입력받을 수 있다.The input unit 110 may receive commands or data from a user or other external device. The input unit 110 may include a touch screen, a keypad, a touchpad, a stylus, or the like capable of receiving a user input, and may receive a request, a selection, or a command by a user.

프로세서(120)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. The processor 120 may include one or more of a central processing unit, an application processor, or a communication processor (CP). The processor 120 may perform, for example, operations or data processing relating to control and / or communication of at least one other component of the electronic device.

다양한 실시 예에 따르면 프로세서(120)는 복수의 사용자 계정들 각각에 관련된 연산이나 데이터 처리를 실행할 수 있다. 프로세서(120)는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 공간들 각각에 관련된 연산이나 데이터 처리를 실행할 수 있다. 다양한 실시예에 따르면 프로세서(120)는 복수의 사용자 계정들 중 어느 하나의 사용자 계정(이하 '제1 계정'이라고도 함)에 의한 어플리케이션(이하 '제1 어플리케이션'이라고도 함) 설치 요청에 따라 복수의 사용자 계정들 각각에 대응된 복수의 저장 공간들 중 제1 어플리케이션에 대응된 제1 파일이 존재하는지 여부를 판단하고, 제1 파일이 존재하면 제1 파일에 대한 링크 정보를 포함하는 제2 파일(이하 'CoW Link(Copy-on- Write) 파일'이라고도 함)을 생성하여 메모리(130)에 저장할 수 있다. According to various embodiments, the processor 120 may perform operations or data processing associated with each of a plurality of user accounts. Processor 120 may perform operations or data processing associated with each of a plurality of account storage spaces corresponding to each of a plurality of user accounts. According to various embodiments, the processor 120 may process a plurality of user accounts (hereinafter also referred to as a " first application ") according to a request to install an application Determining whether or not a first file corresponding to a first application exists among a plurality of storage spaces corresponding to user accounts, and if a first file exists, extracting a second file including link information for the first file (Hereinafter, also referred to as " CoW Link (Copy-on-Write) file ") to be stored in the memory 130.

다양한 실시예에 따르면 메모리(130)는 적어도 하나 이상의 사용자 계정들 각각이 공용으로 이용 가능한 공용 저장 공간과, 적어도 하나 이상의 사용자 계정들 각각이 개별적으로 이용 가능한 저장 공간을 포함할 수 있다.According to various embodiments, the memory 130 may include a common storage space in which each of the at least one user accounts is publicly available, and a storage space in which each of the at least one user accounts is available separately.

다양한 실시예에 따르면, 제1 파일은 메모리(130)의 공용 저장 공간 또는 사용자 계정들 각각이 개별적으로 이용 가능한 공용 저장 공간에 존재할 수 있다. 한 실시 예에 따르면 제1 파일은 제1 파일을 설치 요청한 사용자 계정이 아닌 다른 사용자 계정(이하 '제2 계정'이라고도 함)에 대응된 제2 저장 공간에 존재할 수 있다. According to various embodiments, the first file may reside in a public storage space of the memory 130 or in a public storage space in which each of the user accounts is available separately. According to one embodiment, the first file may exist in a second storage space corresponding to a user account other than the user account requesting installation of the first file (hereinafter, also referred to as a 'second account').

한 실시 예에 따르면, 프로세서(120)는 제1 계정에 의한 제1 어플리케이션 설치 요청에 따라 공용 저장 공간 또는 제2 저장 공간에 제1 파일이 존재하는 경우, 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 생성할 수 있고, 생성된 제2 파일을 제1 계정에 대응된 제1 저장 공간에 저장할 수 있다. According to one embodiment, when the first file exists in the common storage space or the second storage space according to the first application installation request by the first account, the processor 120 includes link information for the first file The second file can be generated and the generated second file can be stored in the first storage space corresponding to the first account.

프로세서(120)는 제1 파일이 존재하지 않으면 제1 어플리케이션을 수신하여 제1 사용자 계정에 대응된 제1 저장 공간에 제1 어플리케이션을 설치할 수 있다. 다양한 실시 예에 따르면 프로세서(120)는 어플리케이션 프로그래밍 인터페이스(Application Programming Interface)(145)의 요청에 따라 커널(141)(예컨대 파일 시스템)을 이용하여 파일 단위의 제2 파일을 생성할 수 있다. 다양한 실시 예에 따르면 프로세서(120)는 최초 제2 파일 생성 시, 제2 파일 내에 메타 데이터(meta data)가 포함되도록 생성할 수 있다. 메타 데이터는 제2 파일에 대응된 원본 어플리케이션인 제1 어플리케이션에 대응된 제1 파일을 참조하기 위한 링크 정보를 포함할 수 있다.The processor 120 may receive the first application and install the first application in the first storage space corresponding to the first user account if the first file does not exist. According to various embodiments, the processor 120 may generate a second file on a file-by-file basis using the kernel 141 (e.g., a file system) at the request of an application programming interface 145. According to various embodiments, the processor 120 may generate meta data in the second file when generating the first second file. The metadata may include link information for referring to a first file corresponding to a first application that is a source application corresponding to the second file.

다양한 실시 예에 따르면, 프로세서(120)는 제1 계정에 대응된 제1 저장 공간에 제2 파일이 존재하는 경우 제1 계정에 의한 제1 어플리케이션 실행 요청에 따라 제2 파일을 실행할 수 있다. 프로세서(120)는 제2 파일 실행에 따라 제2 파일 내의 메타 데이터에 포함된 링크 정보를 이용하여 제1 어플리케이션에 대응된 데이터를 획득할 수 있고, 획득된 제1 어플리케이션에 대응된 데이터를 이용하여 제1 어플리케이션을 실행할 수 있다. According to various embodiments, the processor 120 may execute the second file in response to a first application execution request by the first account if the second file exists in the first storage space corresponding to the first account. The processor 120 may acquire data corresponding to the first application using the link information included in the metadata in the second file according to the execution of the second file, and may use the data corresponding to the acquired first application The first application can be executed.

다양한 실시예에 따르면 프로세서(120)는 제2 파일을 이용한 제1 어플리케이션 실행 중 제1 어플리케이션에 대응된 데이터의 수정이 발생하는지 판단할 수 있다. 데이터 수정은 쓰기 명령에 의해 발생할 수 있다. 프로세서(120)는 제1 어플리케이션 실행 중 데이터 수정이 발생하면, 제2 파일 내에 수정이 발생되는 데이터 블록에 대한 블록 인덱스가 존재하는지 판단할 수 있다. 프로세서(120)는 블록 인덱스가 존재하면 메모리(130)의 일부 영역(이하 '제2 저장 영역'이라고도 함)을 수정이 발생되는 데이터를 위한 데이터 블록으로 할당하고, 할당된 제2 저장 영역에 제1 어플리케이션에 대응된 데이터 중 수정 대상 데이터 (이하 '제1 데이터'라고도 함)을 복사할 수 있다. 프로세서(120)는 제2 저장 영역에 복사된 제1 데이터의 일부 데이터를 수정하고, 제2 저장 영역의 위치 정보를 이용하여 수정된 제1 데이터(이하 '제2 데이터' 라고도 함)에 대한 블록 인덱스를 생성하고 블록 인덱스를 이용하여 제2 파일을 수정할 수 있다. 프로세서는 블록 인덱스가 존재하면 블록 인덱스를 이용하여 수정 대상 데이터 블록을 검색하고 검색된 데이터 블록을 이용하여 데이터 수정을 수행할 수 있다.According to various embodiments, the processor 120 may determine whether modification of data corresponding to the first application during the execution of the first application using the second file occurs. Data modification can be caused by a write command. The processor 120 may determine whether there is a block index for a data block in which a modification is made in the second file when data modification occurs during the execution of the first application. The processor 120 allocates a partial area of the memory 130 (hereinafter, also referred to as a " second storage area ") as a data block for data to be modified when a block index exists, (Hereinafter also referred to as " first data ") among the data corresponding to one application. The processor 120 modifies some data of the first data copied to the second storage area and uses the position information of the second storage area to store the modified first data (hereinafter also referred to as " second data & You can create an index and modify the second file using the block index. If there is a block index, the processor can retrieve the block of data to be modified using the block index and perform data modification using the retrieved data block.

메모리(130)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 입력부(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다. Memory 130 may include volatile and / or nonvolatile memory. The memory 130 may store instructions or data related to, for example, at least one other component of the electronic device. According to one embodiment, the memory 130 may store software and / or programs 140. The program 140 may include, for example, a kernel 141, a middleware 143, an application programming interface (API) 145, and / or an application program . At least some of the kernel 141, middleware 143, or API 145 may be referred to as an operating system. The kernel 141 may include system resources used to execute an operation or function implemented in other programs (e.g., middleware 143, API 145, or application program 147) : Input unit 110, processor 120, or memory 130). The kernel 141 also provides an interface to control or manage system resources by accessing individual components of the electronic device 101 in the middleware 143, API 145, or application program 147 .

미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 입력부(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. The middleware 143 can perform an intermediary role such that the API 145 or the application program 147 can communicate with the kernel 141 to exchange data. In addition, the middleware 143 may process one or more task requests received from the application program 147 according to the priority order. For example, middleware 143 may use system resources (e.g., input 110, processor 120, or memory 130) of electronic device 101 in at least one of application programs 147 Prioritize, and process the one or more task requests. The API 145 is an interface for the application 147 to control the functions provided by the kernel 141 or the middleware 143. The API 145 is an interface for controlling the functions provided by the application 141. For example, An interface or a function (e.g., a command).

한 실시예에 따르면, 메모리(130)는 저장 공간을 제공할 수 있다. 저장 공간에는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 영역들이 각각 할당될 수 있고 복수의 사용자 계정들 각각이 공유하는 공유 저장 영역이 할당될 수 있다. 다양한 실시 예에 따르면, 각 사용자 공간에는 각 사용자에 의해 설치되는 파일에 대응된 파일 속성 정보 예컨대 아이노드(i-node)가 저장될 수 있다. 아이노드는 메타 데이터와 블록 인덱스를 포함할 수 있다. 메타 데이터는 아이노드 넘버(i-node number), 파일 타입, 접근 권한(Permission), 링크 카운트(link count), 소유자(owner), 소유 그룹(group), 파일 크기, 맥 타임(MAC Time)을 포함할 수 있다. 아이노드 넘버는 해당 파일을 식별하기 위한 고유한 식별자일 수 있다. 파일 타입은 파일의 유형을 나타내는 정보로서 예컨대 파일이 일반 파일인지, 디렉토리인지, 장치 파일인지 등을 나타내는 정보를 포함할 수 있다. 링크 카운트는 해당 아이노드를 참조하는 링크(예컨대 하드 링크) 개수에 대한 정보를 포함할 수 있다. 소유자는 파일의 소유자 정보를 포함할 수 있다. 소유 그룹은 파일의 소유 그룹 정보를 포함할 수 있다. 파일 크기는 파일의 크기 정보를 포함할 수 있다. 맥 타임은 파일의 내용을 마지막으로 수정한 시간, 파일을 마지막으로 접근한 시간, 파일의 속성을 마지막으로 변경한 시간, 파일의 속성은 아이노드 정보를 의미할 수 있다 즉 소유자, 접근 권한 등이 변경면 마지막 변경 시간이 변경된다. 블록 인덱스는 데이터 블록에 저장되어 있는 파일 내용에 대한 색인 정보일 수 있다. 다양한 실시예에 따르면 공유 공간에는 사용자에 의해 설치되는 파일에 대응된 데이터가 저장될 수 있다. 한 실시 예에 따르면 파일에 대응된 데이터는 블록 단위로 저장될 수 있다. According to one embodiment, the memory 130 may provide storage space. A plurality of account storage areas corresponding to each of the plurality of user accounts may be allocated to the storage space, and a shared storage area shared by each of the plurality of user accounts may be allocated. According to various embodiments, file attribute information corresponding to a file installed by each user such as an i-node may be stored in each user space. An inode may contain metadata and a block index. The metadata includes the i-node number, the file type, the permission, the link count, the owner, the group, the file size, and the MAC Time. . The inode number may be a unique identifier for identifying the file. The file type may be information indicating the type of the file, for example, information indicating whether the file is a general file, a directory, a device file, or the like. The link count may include information about the number of links (e.g., hard links) that reference the inode. The owner may include owner information of the file. An owning group may contain the owning group information of the file. The file size may include size information of the file. MacTime can be the time of last modification of the contents of the file, the time of last access to the file, the time of last modification of the properties of the file, and the properties of the file can refer to the inode information. If changed, the last modification time is changed. The block index may be index information on the file contents stored in the data block. According to various embodiments, data corresponding to a file installed by a user may be stored in the shared space. According to one embodiment, data corresponding to a file can be stored in blocks.

출력부(150)는 프로세서(130)에 의해 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다. 출력부(150)는 외부 출력 장치 또는 외부 전자 장치가 유선 또는 무선으로 연결될 수 있는 연결 장치를 포함할 수 있으며, 유선 또는 무선으로 명령 또는 데이터를 외부 출력 장치 또는 외부 전자 장치로 출력할 수 있다. 다양한 실시예에 따르면 출력부(150)는 스피커, 디스플레이 등의 다양한 외부 출력 장치 또는 외부 전자 장치일 수 있으며 어플리케이션 실행 결과에 따른 소리 신호 또는 영상 신호를 외부 출력 장치 또는 외부 전자 장치로 출력할 수 있다. 디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. The output unit 150 may output the command or data received by the processor 130 to a user or other external device. The output unit 150 may include a connection device through which an external output device or an external electronic device can be connected by wire or wireless, and can output commands or data to an external output device or an external electronic device by wire or wirelessly. According to various embodiments, the output unit 150 may be a variety of external output devices such as a speaker, a display, or an external electronic device, and may output a sound signal or a video signal according to an application execution result to an external output device or an external electronic device . The display can include, for example, a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, or a microelectromechanical system (MEMS) display, or an electronic paper display have. The display may display various content (e.g., text, images, video, icons, and / or symbols, etc.) to the user, for example. The display may include a touch screen and may receive touch, gesture, proximity, or hovering input using, for example, an electronic pen or a portion of the user's body.

한 실시 예에 따르면 전자 장치(101)는 통신 인터페이스(미도시)를 더 포함할 수 있다. 통신 인터페이스는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치, 제 2 외부 전자 장치, 또는 서버) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(예: 제 2 외부 전자 장치 또는 서버)와 통신할 수 있다.According to one embodiment, the electronic device 101 may further include a communication interface (not shown). The communication interface can establish communication between, for example, the electronic device 101 and an external device (e.g., a first external electronic device, a second external electronic device, or a server). For example, the communication interface may be connected to the network via wireless or wired communication to communicate with an external device (e.g., a second external electronic device or server).

무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰라 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.The wireless communication may include, for example, LTE, LTE-A (LTE Advance), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), wireless broadband (WiBro) System for Mobile Communications), and the like. According to one embodiment, the wireless communication may be wireless communication, such as wireless fidelity (WiFi), Bluetooth, Bluetooth low power (BLE), Zigbee, NFC, Magnetic Secure Transmission, Frequency (RF), or body area network (BAN). According to one example, wireless communication may include GNSS. GNSS may be, for example, Global Positioning System (GPS), Global Navigation Satellite System (Glonass), Beidou Navigation Satellite System (Beidou) or Galileo, the European global satellite-based navigation system. Hereinafter, in this document, "GPS" can be used interchangeably with "GNSS ". The wired communication may include, for example, at least one of a universal serial bus (USB), a high definition multimedia interface (HDMI), a recommended standard 232 (RS-232), a power line communication or a plain old telephone service have. Network 162 may include at least one of a telecommunications network, e.g., a computer network (e.g., LAN or WAN), the Internet, or a telephone network.

도 2는 다양한 실시예에 따른 파일 구조를 나타낸 도면이다. 2 is a diagram illustrating a file structure according to various embodiments.

도 2를 참조하면, 파일은 파일의 속성 정보 예컨대 아이노드(inode)(200)를 포함할 수 있다. 아이노드(200)는 메타 데이터(meta data)(210)와 블록 인덱스(block index)(220)를 포함할 수 있다. 메타 데이터(210)는 아이노드 넘버(i-node number), 파일 타입, 접근 권한(Permission), 링크 카운트(link count), 소유자(owner), 소유 그룹(group), 파일 크기, 맥 타임(MAC Time)을 포함할 수 있다. 아이노드 넘버는 해당 파일을 식별하기 위한 고유한 식별자일 수 있다. 파일 타입은 파일의 유형을 나타내는 정보로서 예컨대 파일이 일반 파일인지, 디렉토리인지, 장치 파일인지 등을 나타내는 정보를 포함할 수 있다. 링크 카운트는 해당 아이노드를 참조하는 링크(예컨대 하드 링크) 개수에 대한 정보를 포함할 수 있다. 소유자는 파일의 소유자 정보를 포함할 수 있다. 소유 그룹은 파일의 소유 그룹 정보를 포함할 수 있다. 파일 크기는 파일의 크기 정보를 포함할 수 있다. 맥 타임은 파일의 내용을 마지막으로 수정한 시간, 파일을 마지막으로 접근한 시간, 파일의 속성을 마지막으로 변경한 시간, 파일의 속성은 아이노드 정보를 의미할 수 있다 즉 소유자, 접근 권한 등이 변경면 마지막 변경 시간이 변경된다. 블록 인덱스(220)는 파일에 대응된 데이터의 각 데이터 블록에 대한 색인 정보일 수 있다. 한 실시 예에 따르면, 데이터 블록의 단위는 미리 지정될 수 있다. 예를 들면 파일에 대응된 데이터가 40바이트이고, 데이터 블록의 단위가 4바이트인 경우 파일에 대응된 데이터 블록은 10개일 수 있으며, 아이노드(200)에는 10개의 블록 인덱스가 포함될 수 있다. 블록 인덱스(220) 각각은 그 블록 인덱스에 대응된 데이터(230)의 위치를 포함할 수 있거나, 그 블록 인덱스에 대응된 하위 블록 인덱스(222) 정보를 포함할 수 있다. 하위 블록 인덱스(222)는 그 하위 블록 인덱스(222)의 또다른 하위 인덱스(224)를 포함할 수 있다. Referring to FIG. 2, a file may include file attribute information, such as an inode 200. The inode 200 may include meta data 210 and a block index 220. The metadata 210 includes at least one of an i-node number, a file type, an access permission, a link count, an owner, an owning group, a file size, Time). The inode number may be a unique identifier for identifying the file. The file type may be information indicating the type of the file, for example, information indicating whether the file is a general file, a directory, a device file, or the like. The link count may include information about the number of links (e.g., hard links) that reference the inode. The owner may include owner information of the file. An owning group may contain the owning group information of the file. The file size may include size information of the file. MacTime can be the time of last modification of the contents of the file, the time of last access to the file, the time of last modification of the properties of the file, and the properties of the file can refer to the inode information. If changed, the last modification time is changed. The block index 220 may be index information for each data block of data corresponding to a file. According to one embodiment, the unit of the data block may be specified in advance. For example, if the data corresponding to the file is 40 bytes and the unit of the data block is 4 bytes, the data block corresponding to the file may be 10, and the inode 200 may include 10 block indexes. Each block index 220 may include the location of the data 230 corresponding to the block index or may include a sub-block index 222 corresponding to the block index. The sub-block index 222 may include another sub-index 224 of the sub-block index 222. [

도 3a 및 도 3b는 다양한 실시 예에 따른 복수의 사용자 계정들 각각에 대응된 디렉토리를 설명하기 위한 개념도이다.3A and 3B are conceptual diagrams for explaining a directory corresponding to each of a plurality of user accounts according to various embodiments.

먼저 도 3a를 참조하면, 프로세서(120)는 시스템 디렉토리(3)의 하위 디렉토리로서 user1, user2, user3 와 같이 복수의 사용자 계정들 각각에 대응된 디렉토리들(31, 32, 33)을 포함할 수 있다. user1, user2, user3 는 사용자 계정들이 복수개 존재할 수 있음을 설명하기 위한 예시일 뿐 사용자 계정의 개수는 한정되지 않는다. 사용자 계정들 각각에 대응된 디렉토리들의 존재에 따라 메모리(130)에는 복수의 사용자 계정들 각각에 대응된 계정 저장 영역들이 할당될 수 있고, 복수의 계정들 각각이 공유하는 공유 저장 영역이 할당될 수 있다. 3A, the processor 120 may include directories 31, 32, 33 corresponding to a plurality of user accounts, such as user1, user2, and user3, as subdirectories of the system directory 3 have. user1, user2, and user3 are only examples to illustrate that a plurality of user accounts may exist, but the number of user accounts is not limited. Depending on the existence of directories corresponding to each of the user accounts, account storage areas corresponding to a plurality of user accounts may be allocated to the memory 130, and a shared storage area shared by each of the plurality of accounts may be allocated have.

예를 들어, user3(이하 '제1 계정'이라고도 함)에 의해 예컨대 "com.example.app"와 같은 제1 어플리케이션 설치가 요구되면 프로세서(120)는 메모리(130)에 요청된 제1 어플리케이션에 대응된 제1 파일인 com.example.app 파일(301)이 존재하는지 여부를 판단할 수 있다. 예를 들면, 프로세서(120)는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 영역들 또는 공유 저장 영역에 com.example.app 파일(301)이 존재하는지 여부를 판단할 수 있다. user3 가 설치하고자 하는 어플리케이션의 파일과 동일한 제1 어플리케이션의 제1 파일 com.example.app(301)(이하 'original 파일'이라고도 함) 이 다른 사용자 계정 예컨대 user1 (이하 '제1 계정'이라고도 함)에 대응된 제1 계정 저장 영역에 미리 저장된 상태이거나, 공유 저장 영역에 미리 저장된 상태일 수 있다. 도 3a에서는 user3 가 설치하고자 하는 어플리케이션의 파일과 동일한 어플리케이션 파일 com.example.app 파일(301)이 제1 계정 저장 영역에 미리 저장된 상태임을 가정한다. com.example.app 파일(301) 즉, original 파일은 파일 속성 정보 예컨대 아이노드(310)를 포함할 수 있다. 아이노드(310)는 메타 데이터(311)와 적어도 하나 이상의 블록 인덱스(313, 315)를 포함할 수 있다. 메타 데이터(311)는 original 파일의 이름, 사이즈, 소유권, 엑세스 모드, 타임 스탬프 등의 정보를 포함할 수 있으며, 적어도 하나 이상의 블록 인덱스(313, 315)는 original 파일에 대응된 데이터 블록들 각각에 대응된 크기 및 데이터 블록들 각각에 대응된 저장 영역(330)상의 저장 위치 정보를 포함할 수 있다. 예를 들면 제1 블록 인덱스(313)는 제1 블록 인덱스(313)에 대응된 데이터 A(332)의 크기와 데이터 A의 저장 영역(330)상의 저장 위치 정보를 포함할 수 있고, 제2 블록 인덱스(315)는 제2 블록 인덱스(315)에 대응된 데이터 B(334)의 크기와 데이터 B가 저장된 저장영역(330) 상의 저장 위치 정보를 포함할 수 있다.For example, when a first application installation such as "com.example.app" is requested by user3 (hereinafter also referred to as a " first account "), the processor 120 requests the first application It can be determined whether or not the corresponding first file com.example.app file 301 exists. For example, the processor 120 may determine whether a com.example.app file 301 exists in a plurality of account storage areas or shared storage areas corresponding to each of a plurality of user accounts. the first file com.example.app 301 (hereinafter also referred to as "original file") of the first application, which is the same as the file of the application to be installed by user3, is stored in another user account such as user1, Stored in the first account storage area corresponding to the first storage area, or may be stored in advance in the shared storage area. 3A, it is assumed that the application file com.example.app file 301, which is the same as the file of the application to be installed by user3, is stored in the first account storage area in advance. The com.example.app file 301, that is, the original file, may include file attribute information, such as the inode 310. The inode 310 may include metadata 311 and at least one block index 313 and 315. The metadata 311 may include information such as the name, size, ownership, access mode, time stamp, etc. of the original file, and at least one block index 313 and 315 may include information on each of the data blocks corresponding to the original file And storage location information on the storage area 330 corresponding to each of the corresponding size and data blocks. For example, the first block index 313 may include the size of the data A 332 corresponding to the first block index 313 and the storage location information on the storage area 330 of the data A, The index 315 may include the size of the data B 334 corresponding to the second block index 315 and the storage location information on the storage area 330 where the data B is stored.

프로세서(120)는 제2 사용자의 제2 계정(예를 들면, user3)(33)이 설치하고자 하는"com.example.app"의 어플리케이션에 대응된 파일과 동일한 파일 com.example.app(301)이 미리 저장된 상태이면 com.example.app(301)에 대한 링크 정보를 포함하는 제2 파일인 com.example.app'(303)을 생성하여 제2 계정에 대응된 제2 계정 저장 공간에 저장할 수 있다. 다양한 실시 예에 따르면 프로세서(120)는 제2 파일 생성 시, 제2 파일 내의 아이노드(320)(또는 메타 데이터(321))에 제2 파일에 대응된 original 파일인 com.example.app(301) 파일에 대한 링크 정보가 포함되도록 할 수 있다.The processor 120 generates the same file com.example.app 301 as the file corresponding to the application of "com.example.app" that the second account of the second user (for example, user3) (303), which is a second file containing link information for the com.example.app (301), and stores it in the second account storage space corresponding to the second account have. In accordance with various embodiments, the processor 120 may create an original file com.example.app (301) corresponding to the second file in the inode 320 (or metadata 321) in the second file, ) ≪ / RTI > file.

프로세서(120)는 user3(33)에 의한 요청에 따라 제2 파일인 com.example.app'(303) 파일을 실행할 수 있다. 프로세서(120)는 com.example.app'(303) 파일 실행에 따라 com.example.app'(303) 파일 내의 메타 데이터(321)에 포함된 링크 정보를 이용하여 original 파일인 com.example.app (301)파일에 대응된 아이노드(310)를 획득할 수 있고, 획득된 아이노드(310)의 메타 데이터(311) 및 적어도 하나 이상의 블록 인덱스(313, 315)를 이용하여 com.example.app(301) 파일을 실행할 수 있다. The processor 120 can execute the second file com.example.app '(303) file in response to a request by the user3 (33). The processor 120 uses the link information included in the metadata 321 in the com.example.app '(303) file according to the execution of the com.example.app' (303) file to generate the original file com.example.app It is possible to acquire the inode 310 corresponding to the file 301 and obtain the com.example.app using the metadata 311 of the obtained inode 310 and the at least one block index 313 and 315. [ (301) file can be executed.

도 3b를 참조하면, 프로세서(120)는 com.example.app'(303) 파일을 이용한 com.example.app(301) 실행 중 com.example.app(301)에 대응된 데이터의 수정이 발생하는지 판단할 수 있다. 한 실시예에 따르면 데이터 수정은 쓰기 명령에 의해 발생할 수 있다. 프로세서(120)는 com.example.app(301) 파일 실행 중 데이터 수정이 발생하면, com.example.app'(303) 파일 내에 수정이 발생되는 데이터 블록에 대한 블록 인덱스가 존재하는지 판단할 수 있다. 프로세서(120)는 블록 인덱스가 존재하지 않으면 데이터 저장 영역(330)의 일부 영역(이하 '제2 데이터 저장 영역'이라고도 함)을 수정이 발생되는 데이터를 위한 데이터 블록(336)으로 할당하고, 할당된 제2 데이터 저장 영역(336)에 com.example.app(301) 파일에 대응된 데이터 중 수정 대상 데이터 블록(334)(이하 '제1 데이터 블록'이라고도 함)의 데이터 B를 복사하여 저장할 수 있다. 프로세서(120)는 제2 데이터 저장 영역(336)에 복사된 제1 데이터 블록 B의 일부 데이터를 수정하여 수정된 데이터 b(이하 '제2 데이터'라고도 함)를 저장하고, 제2 데이터 저장 영역(336)의 위치 정보를 이용하여 제2 데이터 (336)에 대한 블록 인덱스(325)를 생성하고 제1 데이터 블록(336)에 대한 블록 인덱스(325)를 포함하도록 com.example.app'(303) 파일을 수정할 수 있다. 프로세서(120)는 블록 인덱스(325)가 이미 존재하면 블록 인덱스(325)를 이용하여 수정 대상 데이터(336)를 검색하고 검색된 데이터(336)를 이용하여 데이터 수정을 수행할 수 있다.Referring to FIG. 3B, the processor 120 determines whether modification of data corresponding to com.example.app (301) occurs while executing com.example.app (301) using com.example.app '(303) It can be judged. According to one embodiment, data modification may occur by a write command. Processor 120 may determine if there is a block index for the data block in which the modification is occurring in the com.example.app '(303) file if data modification occurs during the execution of the com.example.app (301) file . If there is no block index, the processor 120 allocates a part of the data storage area 330 (hereinafter also referred to as a 'second data storage area') as a data block 336 for data to be modified, The data B of the correction target data block 334 (hereinafter also referred to as a "first data block") among the data corresponding to the com.example.app 301 file can be copied and stored in the second data storage area 336 have. The processor 120 modifies some data of the first data block B copied to the second data storage area 336 to store the modified data b (hereinafter also referred to as 'second data'), (303) to generate a block index 325 for the second data 336 using the location information of the first data block 336 and to include the block index 325 for the first data block 336. [ ) You can modify the file. Processor 120 may retrieve modification data 336 using block index 325 and perform data modification using retrieved data 336 if block index 325 already exists.

다양한 실시 예에 따르면, 전자 장치에서 데이터 처리 방법은 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작, 및 제2 계정에 의한 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 포함할 수 있다. According to various embodiments, a method of processing data in an electronic device includes storing a first file of a first application corresponding to a first account in a first area of the memory, And storing a second file containing link information for the first file in a second area of the memory.

한 실시 예에 따르면, 상기 제1 파일에 대한 링크 정보는 상기 제1 파일을 참조하도록 지시하는 정보를 포함할 수 있다.According to an embodiment, the link information for the first file may include information for referring to the first file.

한 실시 예에 따르면, 상기 제2 파일은 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 생성될 수 있다.According to one embodiment, the second file may be created using the kernel at the request of the application programming interface.

한 실시 예에 따르면, 상기 방법은 상기 제2 파일를 이용하여 상기 제1 파일에 포함된 적어도 하나의 블록 인덱스를 획득하고, 상기 획득된 적어도 하나의 블록 인덱스를 이용하여 상기 제1 파일에 대응된 데이터를 획득하는 동작을 더 포함할 수 있다.According to one embodiment, the method further comprises obtaining at least one block index included in the first file using the second file, and using the obtained at least one block index, May be obtained.

한 실시 예에 따르면, 상기 방법은 상기 제2 계정에 의한 제1 파일에 대응된 제1 데이터의 수정 명령 발생에 따라 상기 제1 파일에 포함된 제1 블록 인덱스를 이용하여 상기 제1 데이터를 제2 데이터로 수정하고 상기 제2 데이터에 대응된 제2 블록 인덱스가 포함되도록 상기 제2 파일을 수정하는 동작을 더 포함할 수 있다.According to one embodiment of the present invention, the method further comprises the step of, when a correction instruction of the first data corresponding to the first file is made by the second account, using the first block index included in the first file, 2 data and modifying the second file to include a second block index corresponding to the second data.

한 실시 예에 따르면, 상기 방법은 상기 제2 계정에 의한 읽기 명령이 발생에 따라 상기 제2 파일에 존재하는 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하고, 상기 제2 파일 내에 상기 블록 인덱스가 존재하지 않으면, 상기 제1 파일에 포함된 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하는 동작을 더 포함할 수 있다. According to one embodiment, the method further comprises: reading the read data using a block index existing in the second file as a read command by the second account occurs; If the index does not exist, reading the read target data using the block index included in the first file.

한 실시 예에 따르면, 상기 방법은 상기 메모리에 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역을 할당하는 동작을 더 포함할 수 있다.According to one embodiment, the method may further comprise allocating at least one account storage area corresponding to each of the at least one account to the memory and a shared storage area shared by the at least one account.

도 4는 다양한 실시예에 따른 전자 장치에서 어플리케이션 설치 동작을 나타낸 흐름도이다.4 is a flow diagram illustrating an application installation operation in an electronic device according to various embodiments.

도 4를 참조하면, 전자 장치는 410 동작에서 복수의 사용자 계정들 중 제2 사용자의 제2 계정에 의한 제1 어플리케이션 설치 요청을 수신할 수 있다. Referring to FIG. 4, the electronic device may receive a first application install request by a second account of a second user of a plurality of user accounts in operation 410.

전자 장치는 420 동작에서 제1 어플리케이션의 제1 파일이 존재하는지 판단할 수 있다. 한 실시예에 따르면, 전자 장치는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 영역들 중 제1 어플리케이션의 제1 파일에 대응된 파일 속성 정보 예컨대 아이노드 정보가 저장되어 있으면 제1 어플리케이션의 제1 파일이 존재하는 것으로 판단할 수 있다. 한 실시 예에 따르면, 전자 장치는 복수의 사용자 계정들 각각이 공유하는 공유 저장 영역에 제1 어플리케이션의 제1 파일에 대응된 파일 속성 정보 예컨대 아이노드 정보가 저장되어 있으면 제1 어플리케이션의 제1 파일이 존재하는 것으로 판단할 수 있다. The electronic device can determine if the first file of the first application is present in operation 420. [ According to one embodiment, if the file attribute information corresponding to the first file of the first application, such as the inode information, among the plurality of account storage areas corresponding to each of the plurality of user accounts is stored, It can be determined that the first file exists. According to one embodiment, if file attribute information corresponding to a first file of the first application, for example, inode information, is stored in a shared storage area shared by each of a plurality of user accounts, Can be judged to exist.

전자 장치는 제1 어플리케이션의 제1 파일이 존재하면 422 동작에서 제1 어플리케이션의 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 생성하여 제2 계정에 대응된 제2 계정 저장 영역에 저장할 수 있다. 다양한 실시 예에 따르면 전자 장치는 어플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 요청에 따라 커널의 파일 시스템을 이용하여 파일 단위의 제2 파일을 생성할 수 있다. 다양한 실시 예에 따르면 전자 장치는 제2 파일 생성 시, 제2 파일 내에 제2 파일에 대응된 원본 어플리케이션인 제1 어플리케이션의 제1 파일에 대한 링크 정보를 포함할 수 있다. 한 실시 예에 따르면 제1 파일에 대한 링크 정보는 제1 파일에 대응된 파일 속성 정보 예컨대 아이노드 정보를 참조할 수 있는 링크 정보일 수 있다.The electronic device may generate a second file containing link information for the first file of the first application in the 422 operation if the first file of the first application exists and store the second file in the second account storage area corresponding to the second account have. According to various embodiments, an electronic device can generate a second file in a file unit by using a file system of the kernel according to an application programming interface (API) request. According to various embodiments, the electronic device may include link information for the first file of the first application, which is the original application corresponding to the second file, in the second file when generating the second file. According to one embodiment, the link information for the first file may be link information that can refer to the file attribute information corresponding to the first file, such as the inode information.

전자 장치는 제1 어플리케이션의 제1 파일이 존재하지 않으면 432 동작에서 제1 어플리케이션을 수신하여 제1 어플리케이션을 설치할 수 있다. 다양한 실시 예에 따르면 전자 장치는 제1 어플리케이션을 제2 계정 저장 영역에 저장하거나 공유 저장 영역에 저장할 수 있다.The electronic device may receive the first application in 432 operation and install the first application if the first file of the first application does not exist. According to various embodiments, the electronic device may store the first application in a second account storage area or in a shared storage area.

도 5는 다양한 실시 예에 따른 전자 장치에서 Cow link 파일 실행 시 데이터 수정 발생에 따른 동작을 나타낸 흐름도이다.FIG. 5 is a flowchart illustrating an operation according to occurrence of data modification when a Cow link file is executed in an electronic device according to various embodiments.

도 5를 참조하면, 전자 장치는 510 동작에서 Cow link 파일 즉, 제2 파일을 실행할 수 있다. 한 실시예에 따르면 전자 장치는 사용자에 의한 제2 파일 실행 요청에 따라 제2 파일 내(예컨대 메타 데이터)에 포함된 링크 정보를 이용하여 제1 어플리케이션의 제1 파일에 대응된 파일 속성 정보(예컨대 아이노드 정보)를 획득할 수 있고, 획득된 제1 파일에 대응된 파일 속성 정보를 이용하여 제1 어플리케이션을 실행할 수 있다. Referring to FIG. 5, the electronic device may execute a Cow link file, i.e., a second file, in operation 510. According to one embodiment, the electronic device stores file attribute information (e.g., file attribute information) corresponding to a first file of the first application using link information included in a second file (e.g., metadata) according to a second file execution request by the user The first application can be executed using the file attribute information corresponding to the acquired first file.

전자 장치는 520 동작에서 제1 어플리케이션 실행 중 데이터의 수정 명령이 발생하는지 판단할 수 있다. 한 실시예에 따르면 전자 장치는 제2 파일을 이용한 제1 어플리케이션 실행 중 쓰기 명령 발생에 의해 데이터 수정 명령이 발생할 수 있다. The electronic device may determine whether an instruction to modify data occurs during execution of the first application in operation 520. [ According to an embodiment, a data modification command may be generated by generating a write command during execution of a first application using a second file.

전자 장치는 제1 어플리케이션 실행 중 데이터의 수정 명령이 발생하면 530 동작에서 제2 파일에 수정이 발생되는 데이터에 대한 블록 인덱스가 존재하는지 판단할 수 있다.The electronic device can determine whether there is a block index for the data to be modified in the second file in operation 530 when a data modification command is issued during execution of the first application.

전자 장치는 수정이 발생되는 데이터 블록에 대한 블록 인덱스가 제2 링크 파일에 존재하지 않으면 532 동작에서 메모리(130)의 제2 저장 영역을 수정이 발생되는 데이터를 위한 제2 저장 영역으로 할당하고, 제2 저장 영역에 제2 어플리케이션 파일의 수정 대상 데이터를 복사할 수 있다. 한 실시 예에 따르면 메모리(130)의 제2 저장 영역은 공유 저장 영역 중 일부 영역일 수 있다.The electronic device assigns the second storage area of the memory 130 in the 532 operation to the second storage area for the data where the modification is to occur if a block index for the data block in which modification is occurring is not present in the second link file, And the modification target data of the second application file can be copied to the second storage area. According to one embodiment, the second storage area of the memory 130 may be a part of the shared storage area.

전자 장치는 534 동작에서 제2 저장 영역에 복사된 데이터의 적어도 일부 데이터를 수정할 수 있다. 전자 장치는 546 동작에서 제2 저장 영역의 저장 위치 정보를 이용하여 제2 저장 영역의 데이터에 대한 블록 인덱스를 생성하고, 생성된 블록 인덱스가 제2 파일에 포함되도록 수정할 수 있다.The electronic device may modify at least some data of the data copied to the second storage area at 534 operation. The electronic device may generate the block index for the data in the second storage area using the storage location information of the second storage area in operation 546 and modify the generated block index to be included in the second file.

한편, 전자 장치는 수정이 발생되는 데이터에 대한 블록 인덱스가 제2 파일 내에 존재하면 542 동작에서 블록 인덱스를 이용하여 수정 대상 데이터를 검색할 수 있다. 한 실시예에 따르면 전자 장치는 블록 인덱스를 이용하여 공유 저장 영역에 저장된 수정 대상 데이터를 검색할 수 있다. 전자 장치는 544 동작에서 검색된 수정 대상 데이터를 이용하여 데이터 수정을 수행할 수 있다.On the other hand, if the block index for the data to be modified exists in the second file, the electronic device can search for the modification target data using the block index in operation 542. [ According to one embodiment, the electronic device can search for the modification target data stored in the shared storage area using the block index. The electronic device may perform data modification using the retrieved modification subject data in operation 544.

도 6은 다양한 실시 예에 따른 전자 장치에서 Cow link 파일 실행 시 읽기 명령 발생에 따른 동작을 나타낸 흐름도이다. FIG. 6 is a flowchart illustrating an operation according to generation of a read command when a Cow link file is executed in an electronic device according to various embodiments.

도 6을 참조하면, 전자 장치는 610 동작에서 Cow link 파일 즉, 제2 파일을 실행할 수 있다. 한 실시예에 따르면 전자 장치는 사용자에 의한 제2 파일 실행 요청에 따라 제2 파일 내(예컨대 메타 데이터)에 포함된 링크 정보를 이용하여 제1 어플리케이션 파일에 대응된 파일 속성 정보(예컨대 아이노드 정보)를 획득할 수 있고, 획득된 제1 어플리케이션에 대응된 아이노드 정보를 이용하여 제1 어플리케이션을 실행할 수 있다. Referring to FIG. 6, the electronic device may execute a Cow link file, i.e., a second file, in 610 operation. According to one embodiment, the electronic device stores file attribute information (e.g., inode information) corresponding to a first application file using link information included in a second file (e.g., metadata) according to a second file execution request by a user ), And can execute the first application using the inode information corresponding to the acquired first application.

전자 장치는 620 동작에서 제1 어플리케이션 실행 중 읽기 명령이 발생하는지 판단할 수 있다. The electronic device can determine whether a read command is being issued during execution of the first application in operation 620. [

전자 장치는 제1 어플리케이션 실행 중 읽기 명령이 발생하면 630 동작에서 제2 파일 내에 읽기 명령에 대응된 데이터에 대한 블록 인덱스가 존재하는지 판단할 수 있다. 한 실시 예에 따르면 전자 장치는 제2 내의 아이 노드 정보를 이용하여 읽기 명령에 대응된 데이터에 대한 블록 인덱스가 존재하는지 판단할 수 있다.The electronic device can determine whether a block index for data corresponding to the read command in the second file exists in operation 630 when a read command is issued during execution of the first application. According to one embodiment, the electronic device can determine whether there is a block index for data corresponding to a read command using the inode information in the second.

전자 장치는 읽기 명령이 발생한 데이터에 대한 블록 인덱스가 제2 파일 내에 존재하면 632 동작에서 블록 인덱스를 이용하여 읽기 대상 데이터를 검색할 수 있다. 한 실시예에 따르면 전자 장치는 블록 인덱스를 이용하여 공유 저장 영역에 저장된 읽기 대상 데이터를 검색할 수 있다. 전자 장치는 634 동작에서 검색된 데이터를 이용하여 읽기 명령을 수행할 수 있다.The electronic device can retrieve the data to be read using the block index in operation 632 if the block index for the data in which the read command is generated exists in the second file. According to one embodiment, the electronic device can retrieve the read target data stored in the shared storage area using the block index. The electronic device can perform a read command using data retrieved in operation 634.

전자 장치는 읽기 명령이 발생한 데이터에 대한 블록 인덱스가 제2 파일 내에 존재하지 않으면 642 동작에서 제2 파일에 포함된 링크 정보를 이용하여 제1 어플리케이션 파일에서 읽기 명령이 발생한 데이터에 대한 블록 인덱스를 획득할 수 있다. 한 실시 예에 따르면 전자 장치는 제2 링크 파일에 포함된 메타 데이터를 이용하여 제2 링크 파일이 참조하고 있는 제1 어플리케이션 파일의 아이 노드를 획득하고, 제1 어플리케이션 파일의 아이노드에 포함된 블록 인덱스 중 읽기 명령이 발생한 데이터에 대한 블록 인덱스를 획득할 수 있다.If the block index for the data in which the read command is generated does not exist in the second file, the electronic device obtains the block index for the data in which the read command is generated in the first application file using the link information included in the second file in operation 642 can do. According to one embodiment, the electronic device obtains the inode of the first application file referred to by the second link file by using the metadata included in the second link file, It is possible to obtain the block index for the data in which the read command in the index occurred.

전자 장치는 644 동작에서 획득된 읽기 명령이 발생한 데이터에 대한 블록 인덱스를 이용하여 데이터 읽기를 수행할 수 있다.The electronic device can perform data reading using the block index for the data in which the read command obtained in operation 644 is generated.

도 7은 다양한 실시예예 따른 전자 장치에서 Cow link 파일 수정 동작을 설명하기 위한 도면이다. 7 is a diagram for explaining a Cow link file modification operation in an electronic device according to various embodiments.

도 7을 참조하면, 전자 장치는 메모리에 origina 파일(이하 '원본 파일'이라고도 함.)을 저장할 수 있다. 원본 파일은 원본 파일에 대응된 파일 속성 정보 예컨대 제1 아이노드(710)를 포함할 수 있다. 제1 아이노드(710)는 제1 메타 데이터(712)와 적어도 하나 이상의 제1 블록 인덱스(714)를 포함할 수 있다. 제1 메타 데이터(712)는 원본 파일의 아이노드 넘버(i-node number), 파일 타입, 접근 권한(Permission), 링크 카운트(link count), 소유자(owner), 소유 그룹(group), 파일 크기, 맥 타임(MAC Time)을 포함할 수 있다. 적어도 하나 이상의 제1 블록 인덱스들(714)은 원본 파일에 대응된 데이터를 이루는 적어도 하나 이상의 블록들 각각에 대한 정보일 수 있다.Referring to FIG. 7, an electronic device may store an origina file (hereinafter also referred to as an 'original file') in a memory. The original file may include file attribute information, e.g., a first inode 710, corresponding to the original file. The first inode 710 may include first metadata 712 and at least one first block index 714. The first metadata 712 includes an i-node number, a file type, a permission, a link count, an owner, an owner group, a file size , And MAC Time (MAC Time). The at least one first block indices 714 may be information on each of at least one or more blocks constituting data corresponding to the original file.

전자 장치는 원본 파일이 저장된 상태에서 원본 파일과 동일한 파일의 설치가 요구되면 원본 파일과 동일한 파일을 설치하는 대신 제2 파일 즉, Cow link 파일을 생성할 수 있다. Cow link 파일은 Cow link 파일에 대응된 파일 속성 정보 예컨대 제2 아이노드(720)를 포함할 수 있으며, 최초 생성 시 제2 아이노드(720)의 제2 메타 데이터(722)에 Cow link 파일이 참조하는(또는 Cow link 파일과 연결된) 원본 파일의 제1 아이노드(710) 정보를 포함할 수 있다.If the installation of the same file as the original file is requested while the original file is stored, the electronic device can generate the second file, that is, the Cow link file, instead of installing the same file as the original file. The Cow link file may include file attribute information corresponding to the Cow link file, for example, a second inode 720, and a Cow link file may be added to the second metadata 722 of the second inode 720 May include first inode (710) information of a source file that references (or is associated with a Cow link file).

전자 장치는 Cow link 파일이 실행되면 Cow link 파일의 제2 메타 데이터(722)를 이용하여 원본 파일의 제1 아이노드(710)를 획득하고, 원본 파일의 제1 아이노드(710)에 포함된 제1 메타 데이터(712) 및 적어도 하나의 블록 인덱스(714)를 이용하여 원본 파일에 대응된 데이터들을 처리(읽거나 쓰기)할 수 있다.When the Cow link file is executed, the electronic device obtains the first inode 710 of the original file using the second metadata 722 of the Cow link file, and the first inode 710 of the original file The first metadata 712 and the at least one block index 714 can be used to process (read or write) data corresponding to the original file.

전자 장치는 Cow link 파일이 실행에 의해 원본 파일에 대응된 데이터들의 엑세스 중 쓰기 명령이 발생한 경우 원본 파일의 적어도 하나의 블록 인덱스(714) 중 제1 블록 인덱스(714-2)를 이용하여 제1 블록 인덱스(714-2)에 대응되는 메모리의 제1 데이터 저장 영역의 제1 데이터에 대한 쓰기 명령을 수행할 수 있다. 쓰기 명령 수행에 따라 제1 데이터가 수정되고, 수정된 제1 데이터(이하 '제2 데이터'라고도 함)는 제1 데이터의 제1 데이터 저장 영역과 다른 제2 데이터 저장 영역에 저장될 수 있다. The electronic device uses the first block index 714-2 of the at least one block index 714 of the original file when a write command is generated during the accessing of the data corresponding to the original file by execution of the Cow link file, A write command for the first data of the first data storage area of the memory corresponding to the block index 714-2 can be performed. The first data is modified according to the execution of the write command and the modified first data (hereinafter, also referred to as 'second data') may be stored in a second data storage area different from the first data storage area of the first data.

전자 장치는 제2 데이터에 대한 제2 데이터 저장 영역의 저장에 따라 Cow link 파일의 제2 아이노드(724)에 제2 데이터에 대한 제2 데이터 저장 영역의 위치에 대한 정보를 포함하는 제2 블록 인덱스(724-2)가 포함되도록 Cow link 파일을 수정할 수 있다.The electronic device may further include a second block in the second inode 724 of the Cow link file according to the storage of the second data storage area for the second data, The Cow link file can be modified so that the index 724-2 is included.

한 실시 예에 따르면 원본 파일의 크기가 1M 바이트이고, 적어도 하나 이상의 블록 인덱스(714)가 각각 4096 바이트의 데이터 블록에 대한 블록 인덱스라고 가정하면 적어도 하나의 블록 인덱스(714)는 0~4096 바이트에 대한 블록 인덱스, 4097~ 8192 바이트에 대한 블록 인덱스, 8193~10000 바이트에 대한 블록 인덱스를 포함할 수 있으며, 4112 바이트에 대한 데이터 수정이 발생하면 4112 바이트가 포함된 4097~ 8192 바이트에 대한 블록 인덱스의 데이터가 수정되고, 수정된 제2 데이터는 제2 저장 영역에 저장되며, 전자 장치는 Cow link 파일의 제2 아이노드(724)에 제2 데이터에 대한 제2 데이터 저장 영역의 위치에 대한 정보를 포함하는 제2 블록 인덱스(724-2)가 포함되도록 Cow link 파일을 수정할 수 있다.According to one embodiment, when at least one block index 714 is a block index for a 4096-byte data block, the at least one block index 714 is 0 to 4096 bytes A block index for 4097 to 8192 bytes, and a block index for 8193 to 10000 bytes. If data modification for 4112 bytes occurs, a block index for 4097 to 8192 bytes including 4112 bytes The data is modified and the modified second data is stored in the second storage area and the electronic device stores information about the location of the second data storage area for the second data in the second inode 724 of the Cow link file The second block index 724-2 including the second block index 724-2 may be included.

도 8a 및 도 8b는 다양한 실시 예에 따른 파일의 메타 데이터와 블록 인덱스에 포함되는 정보를 나타낸 도면이다. 8A and 8B are views showing information included in the file metadata and the block index according to various embodiments.

도 8a를 참조하면, "file.zip" 파일에 대한 메타 데이터(810)와 블록 인덱스(820)가 예로 도시되어 있다. 메타 데이터(810)는 "file.zip"와 같은 파일 이름, "Filesystem type is: ef53"와 같은 파일 타입, "File size of file.zip is 47852027 (11683 blocks of 4096 bytes)"와 같은 파일 크기에 대한 정보를 포함할 수 있다. 블록 인덱스(820)는 0 블록 인덱스, 1 블록 인덱스, 2 블록 인덱스와 같은 연속적인 블록 인덱스의 묶음인 ext(extent)를 포함할 수 있다. 각 블록 인덱스는 logical_offset과 physical_offset을 포함할 수 있다. logical_offset은 데이터 블록의 논리적인 블록 위치이고 physical_offset은 데이터 블록의 물리적인 위치로서 메모리 상의 실제 블록 위치일 수 있다. Referring to FIG. 8A, metadata 810 and block index 820 for a "file.zip" file are shown as an example. The metadata 810 includes a file name such as "file.zip", a file type such as "Filesystem type is: ef53", a file size such as "File size of file.zip is 47852027 (11683 blocks of 4096 bytes) And the like. The block index 820 may include ext (extent), which is a contiguous set of block indexes such as a 0 block index, a 1 block index, a 2 block index. Each block index may include logical_offset and physical_offset. logical_offset is the logical block location of the data block and physical_offset is the physical location of the data block and may be the actual block location in the memory.

만약 파일의 일부 데이터의 수정이 발생하면, 수정된 데이터가 다른 저장 영역에 저장되고, 수정된 데이터에 대응된 데이터 블록의 블록 인덱스를 포함하는 "cow_file.zip" 파일이 생성될 수 있다.If some data modification of the file occurs, the modified data is stored in another storage area and a "cow_file.zip" file containing the block index of the data block corresponding to the modified data can be generated.

도 8b를 참조하면, logical_offset의 6144 ~ 6156 위치에 데이터 수정이 발생한 경우 수정된 데이터에 대한 저장 영역이 새로 할당되고,"cow_file.zip" 파일의 블록 인덱스(821)에는 수정된 데이터에 대한 저장 영역 위치 정보를 포함하는 블록 인덱스(821-1)가 포함될 수 있다.Referring to FIG. 8B, a storage area for modified data is newly allocated when data modification occurs at positions 6144 to 6156 of the logical_offset, and a block index 821 of the "cow_file.zip" A block index 821-1 including positional information may be included.

본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시예에 따른 전자 장치의 구성요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.Each of the components described in this document may be composed of one or more components, and the name of the component may be changed according to the type of the electronic device. In various embodiments, the electronic device may comprise at least one of the components described herein, some components may be omitted, or may further include additional other components. In addition, some of the components of the electronic device according to various embodiments may be combined into one entity, so that the functions of the components before being combined can be performed in the same manner.

본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다. As used in this document, the term "module" may refer to a unit comprising, for example, one or a combination of two or more of hardware, software or firmware. A "module" may be interchangeably used with terms such as, for example, unit, logic, logical block, component, or circuit. A "module" may be a minimum unit or a portion of an integrally constructed component. A "module" may be a minimum unit or a portion thereof that performs one or more functions. "Modules" may be implemented either mechanically or electronically. For example, a "module" may be an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs) or programmable-logic devices And may include at least one.

다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)가 될 수 있다. At least a portion of a device (e.g., modules or functions thereof) or a method (e.g., operations) according to various embodiments may include, for example, computer-readable storage media in the form of program modules, As shown in FIG. When the instruction is executed by a processor (e.g., processor 120), the one or more processors may perform a function corresponding to the instruction. The computer readable storage medium may be, for example, memory 130. [

다양한 실시 예에 따르면, 데이터 처리 프로그램을 저장하는 저장 매체에서, 상기 프로그램은 전자 장치에서, 제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작 및 제2 계정에 의한 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 수행할 수 있다. According to various embodiments, there is provided a storage medium storing a data processing program, the program comprising: in an electronic device, storing a first file of a first application corresponding to a first account in a first area of the memory; And storing a second file including link information for the first file in a second area of the memory when a first application installation request is made by an account.

컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.The computer readable recording medium may be a hard disk, a floppy disk, a magnetic media (e.g., a magnetic tape), an optical media (e.g., a compact disc read only memory (CD-ROM) digital versatile discs, magneto-optical media such as floptical disks, hardware devices such as read only memory (ROM), random access memory (RAM) Etc. The program instructions may also include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter, etc. The above- May be configured to operate as one or more software modules to perform the operations of the embodiment, and vice versa.

다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. Modules or program modules according to various embodiments may include at least one or more of the elements described above, some of which may be omitted, or may further include additional other elements. Operations performed by modules, program modules, or other components in accordance with various embodiments may be performed in a sequential, parallel, iterative, or heuristic manner. Also, some operations may be performed in a different order, omitted, or other operations may be added.

이상에서 설명한 본 발명의 다양한 실시예의 전자 장치는 전술한 실시 예 및 도면에 의해 한정되는 것은 아니고, 본 발명의 기술적 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. Will be clear to those who have knowledge of.

Claims (15)

전자 장치에 있어서,
제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 메모리; 및
상기 메모리에 동작 가능하게 또는 전기적으로 연결된 프로세서를 포함하고,
상기 프로세서는,
제2 계정에 의한 상기 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하도록 설정된 전자 장치.
In an electronic device,
A memory for storing a first file of a first application corresponding to a first account in a first area of the memory; And
A processor operatively or electrically coupled to the memory,
The processor comprising:
And store a second file including link information for the first file in a second area of the memory when the first application installation request is made by the second account.
제1항에 있어서,
상기 제1 파일에 대한 링크 정보는 상기 제1 파일을 참조하도록 지시하는 정보를 포함하는 것을 특징으로 하는 전자 장치.
The method according to claim 1,
And the link information for the first file includes information for instructing to refer to the first file.
제1항에 있어서,
상기 프로세서는 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 상기 제2 파일을 생성하도록 설정된 전자 장치.
The method according to claim 1,
Wherein the processor is configured to generate the second file using a kernel upon request of an application programming interface.
제1항에 있어서, 상기 프로세서는 상기 제2 파일를 이용하여 상기 제1 파일에 포함된 적어도 하나의 블록 인덱스를 획득하고, 상기 획득된 적어도 하나의 블록 인덱스를 이용하여 상기 제1 파일에 대응된 데이터를 획득하도록 설정된 전자 장치.
2. The method of claim 1, wherein the processor obtains at least one block index included in the first file using the second file, and uses the obtained at least one block index to obtain data corresponding to the first file .
제4항에 있어서,
상기 프로세서는 상기 제2 계정에 의한 제1 파일에 대응된 제1 데이터의 수정 명령 발생에 따라 상기 제1 파일에 포함된 제1 블록 인덱스를 이용하여 상기 제1 데이터를 제2 데이터로 수정하고 상기 제2 데이터에 대응된 제2 블록 인덱스가 포함되도록 상기 제2 파일을 수정하도록 설정된 전자 장치.
5. The method of claim 4,
Wherein the processor modifies the first data into second data using a first block index included in the first file in response to generation of a correction command for the first data corresponding to the first file by the second account, And modify the second file so that a second block index corresponding to the second data is included.
제4항에 있어서,
상기 프로세서는 상기 제2 계정에 의한 읽기 명령이 발생에 따라 상기 제2 파일에 존재하는 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하고, 상기 제2 파일 내에 상기 블록 인덱스가 존재하지 않으면, 상기 제1 파일에 포함된 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하는 전자 장치.
5. The method of claim 4,
Wherein the processor reads the read target data using a block index existing in the second file when a read command by the second account occurs, and if the block index does not exist in the second file, And reading the data to be read by using the block index included in the first file.
제1항에 있어서,
상기 메모리는 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역이 할당되는 전자 장치.
The method according to claim 1,
Wherein the memory is allocated at least one account storage area corresponding to each of at least one account and a shared storage area shared by the at least one account.
전자 장치에서 데이터 처리 방법에 있어서,
제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작;
제2 계정에 의한 상기 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 포함하는 방법.
A method for processing data in an electronic device,
Storing a first file of a first application corresponding to a first account in a first area of the memory;
Storing in a second area of the memory a second file containing link information for the first file upon the first application installation request by the second account.
제8항에 있어서,
상기 제1 파일에 대한 링크 정보는 상기 제1 파일을 참조하도록 지시하는 정보를 포함하는 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the link information for the first file includes information for instructing to refer to the first file.
제8항에 있어서,
상기 제2 파일은 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 생성되는 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the second file is created using a kernel upon request of an application programming interface.
제8항에 있어서,
상기 제2 파일를 이용하여 상기 제1 파일에 포함된 적어도 하나의 블록 인덱스를 획득하고, 상기 획득된 적어도 하나의 블록 인덱스를 이용하여 상기 제1 파일에 대응된 데이터를 획득하는 동작을 더 포함하는 방법.
9. The method of claim 8,
Further comprising obtaining at least one block index included in the first file using the second file and acquiring data corresponding to the first file using the obtained at least one block index .
제11항에 있어서,
상기 제2 계정에 의한 제1 파일에 대응된 제1 데이터의 수정 명령 발생에 따라 상기 제1 파일에 포함된 제1 블록 인덱스를 이용하여 상기 제1 데이터를 제2 데이터로 수정하고 상기 제2 데이터에 대응된 제2 블록 인덱스가 포함되도록 상기 제2 파일을 수정하는 동작을 더 포함하는 방법.
12. The method of claim 11,
The first data is modified into the second data by using the first block index included in the first file in accordance with the generation of the correction command of the first data corresponding to the first file by the second account, Further comprising modifying the second file such that a second block index corresponding to the second block index is included.
제11항에 있어서,
상기 제2 계정에 의한 읽기 명령이 발생에 따라 상기 제2 파일에 존재하는 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하고, 상기 제2 파일 내에 상기 블록 인덱스가 존재하지 않으면, 상기 제1 파일에 포함된 블록 인덱스를 이용하여 상기 읽기 대상 데이터의 읽기를 수행하는 동작을 더 포함하는 방법.
12. The method of claim 11,
Reads the read target data using a block index existing in the second file when a read command by the second account occurs, and if the block index does not exist in the second file, And reading the read data using a block index included in the file.
제8항에 있어서,
상기 메모리에 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역을 할당하는 동작을 더 포함하는 방법.
9. The method of claim 8,
Further comprising assigning at least one account storage area corresponding to each of at least one account to the memory and a shared storage area shared by the at least one account.
데이터 처리 프로그램을 저장하는 저장 매체에 있어서,
상기 프로그램은 전자 장치에서,
제1 계정에 대응하는 제1 어플리케이션의 제1 파일을 상기 메모리의 제1 영역에 저장하는 동작; 및
제2 계정에 의한 제1 어플리케이션 설치 요구 시 상기 제1 파일에 대한 링크 정보를 포함하는 제2 파일을 상기 메모리의 제2 영역에 저장하는 동작을 수행하도록 설정된 저장 매체.

A storage medium storing a data processing program,
In the electronic device,
Storing a first file of a first application corresponding to a first account in a first area of the memory; And
And store a second file including link information for the first file in a second area of the memory when a first application installation request is made by the second account.

KR1020170015701A 2017-02-03 2017-02-03 Electronic device and method for processing data KR20180090617A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170015701A KR20180090617A (en) 2017-02-03 2017-02-03 Electronic device and method for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170015701A KR20180090617A (en) 2017-02-03 2017-02-03 Electronic device and method for processing data

Publications (1)

Publication Number Publication Date
KR20180090617A true KR20180090617A (en) 2018-08-13

Family

ID=63250605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015701A KR20180090617A (en) 2017-02-03 2017-02-03 Electronic device and method for processing data

Country Status (1)

Country Link
KR (1) KR20180090617A (en)

Similar Documents

Publication Publication Date Title
KR102428461B1 (en) Selective encryption method and apparatus thereof
US10929523B2 (en) Electronic device and method for managing data in electronic device
KR20170096408A (en) Method for displaying application and electronic device supporting the same
US10346359B2 (en) Electronic device and method providing an object management user interface
US20160055082A1 (en) Memory allocating method and electronic device supporting the same
US10546126B2 (en) Method for detecting the tampering of application code and electronic device supporting the same
KR20180127695A (en) Apparatus for securing storage space and method thereof
US10209915B2 (en) Electronic device and file read and write method thereof
KR20170001488A (en) Electronic device having an external memory and method operating the same
US10475146B2 (en) Device for controlling multiple areas of display independently and method thereof
US9454674B2 (en) Data sharing control method and data sharing control terminal
US20170031542A1 (en) Screen operating method and electronic device supporting the same
KR102586628B1 (en) Electronic Device AND Memory Management Method Thereof
KR20180013169A (en) Method for displaying content and electronic device using the same
KR20160034135A (en) Device for Handling Touch Input and Method Thereof
US20160085977A1 (en) Token-based scheme for granting permissions
US20170277413A1 (en) Method for outputting screen and electronic device supporting the same
US11966754B2 (en) Cluster bootstrapping for distributed computing systems
JP2024516572A (en) Zone Segment Drive Management
KR20180086078A (en) Electronic apparatus and method for displaying screen thereof
KR20180019907A (en) Electronic device and method for operating thereof
US10482237B2 (en) Method for processing security of application and electronic device supporting the same
KR20170041467A (en) Wearable Device for Controlling Application Executed on Device and Method Thereof
KR20160137258A (en) Electronic apparatus and method for displaying screen thereof
KR20180110437A (en) Tethering method and electronic device implementing the same

Legal Events

Date Code Title Description
A201 Request for examination