KR20180090617A - Electronic device and method for processing data - Google Patents
Electronic device and method for processing data Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
Description
본 발명의 다양한 실시예들은 전자 장치 및 전자 장치에서 데이터 처리 방법에 관한 것이다.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
입력부(110)는 사용자 또는 다른 외부 기기로부터 명령 또는 데이터를 입력받을 수 있다. 입력부(110)는 사용자 입력을 수신할 수 있는 터치 스크린, 키패드, 터치 패드, 또는 스타일러스 등을 포함할 수 있으며, 사용자에 의한 요청 또는 선택 또는 명령을 입력받을 수 있다.The
프로세서(120)는 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. The
다양한 실시 예에 따르면 프로세서(120)는 복수의 사용자 계정들 각각에 관련된 연산이나 데이터 처리를 실행할 수 있다. 프로세서(120)는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 공간들 각각에 관련된 연산이나 데이터 처리를 실행할 수 있다. 다양한 실시예에 따르면 프로세서(120)는 복수의 사용자 계정들 중 어느 하나의 사용자 계정(이하 '제1 계정'이라고도 함)에 의한 어플리케이션(이하 '제1 어플리케이션'이라고도 함) 설치 요청에 따라 복수의 사용자 계정들 각각에 대응된 복수의 저장 공간들 중 제1 어플리케이션에 대응된 제1 파일이 존재하는지 여부를 판단하고, 제1 파일이 존재하면 제1 파일에 대한 링크 정보를 포함하는 제2 파일(이하 'CoW Link(Copy-on- Write) 파일'이라고도 함)을 생성하여 메모리(130)에 저장할 수 있다. According to various embodiments, the
다양한 실시예에 따르면 메모리(130)는 적어도 하나 이상의 사용자 계정들 각각이 공용으로 이용 가능한 공용 저장 공간과, 적어도 하나 이상의 사용자 계정들 각각이 개별적으로 이용 가능한 저장 공간을 포함할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 제1 파일은 메모리(130)의 공용 저장 공간 또는 사용자 계정들 각각이 개별적으로 이용 가능한 공용 저장 공간에 존재할 수 있다. 한 실시 예에 따르면 제1 파일은 제1 파일을 설치 요청한 사용자 계정이 아닌 다른 사용자 계정(이하 '제2 계정'이라고도 함)에 대응된 제2 저장 공간에 존재할 수 있다. According to various embodiments, the first file may reside in a public storage space of the
한 실시 예에 따르면, 프로세서(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
프로세서(120)는 제1 파일이 존재하지 않으면 제1 어플리케이션을 수신하여 제1 사용자 계정에 대응된 제1 저장 공간에 제1 어플리케이션을 설치할 수 있다. 다양한 실시 예에 따르면 프로세서(120)는 어플리케이션 프로그래밍 인터페이스(Application Programming Interface)(145)의 요청에 따라 커널(141)(예컨대 파일 시스템)을 이용하여 파일 단위의 제2 파일을 생성할 수 있다. 다양한 실시 예에 따르면 프로세서(120)는 최초 제2 파일 생성 시, 제2 파일 내에 메타 데이터(meta data)가 포함되도록 생성할 수 있다. 메타 데이터는 제2 파일에 대응된 원본 어플리케이션인 제1 어플리케이션에 대응된 제1 파일을 참조하기 위한 링크 정보를 포함할 수 있다.The
다양한 실시 예에 따르면, 프로세서(120)는 제1 계정에 대응된 제1 저장 공간에 제2 파일이 존재하는 경우 제1 계정에 의한 제1 어플리케이션 실행 요청에 따라 제2 파일을 실행할 수 있다. 프로세서(120)는 제2 파일 실행에 따라 제2 파일 내의 메타 데이터에 포함된 링크 정보를 이용하여 제1 어플리케이션에 대응된 데이터를 획득할 수 있고, 획득된 제1 어플리케이션에 대응된 데이터를 이용하여 제1 어플리케이션을 실행할 수 있다. According to various embodiments, the
다양한 실시예에 따르면 프로세서(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
메모리(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)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 입력부(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. The
한 실시예에 따르면, 메모리(130)는 저장 공간을 제공할 수 있다. 저장 공간에는 복수의 사용자 계정들 각각에 대응된 복수의 계정 저장 영역들이 각각 할당될 수 있고 복수의 사용자 계정들 각각이 공유하는 공유 저장 영역이 할당될 수 있다. 다양한 실시 예에 따르면, 각 사용자 공간에는 각 사용자에 의해 설치되는 파일에 대응된 파일 속성 정보 예컨대 아이노드(i-node)가 저장될 수 있다. 아이노드는 메타 데이터와 블록 인덱스를 포함할 수 있다. 메타 데이터는 아이노드 넘버(i-node number), 파일 타입, 접근 권한(Permission), 링크 카운트(link count), 소유자(owner), 소유 그룹(group), 파일 크기, 맥 타임(MAC Time)을 포함할 수 있다. 아이노드 넘버는 해당 파일을 식별하기 위한 고유한 식별자일 수 있다. 파일 타입은 파일의 유형을 나타내는 정보로서 예컨대 파일이 일반 파일인지, 디렉토리인지, 장치 파일인지 등을 나타내는 정보를 포함할 수 있다. 링크 카운트는 해당 아이노드를 참조하는 링크(예컨대 하드 링크) 개수에 대한 정보를 포함할 수 있다. 소유자는 파일의 소유자 정보를 포함할 수 있다. 소유 그룹은 파일의 소유 그룹 정보를 포함할 수 있다. 파일 크기는 파일의 크기 정보를 포함할 수 있다. 맥 타임은 파일의 내용을 마지막으로 수정한 시간, 파일을 마지막으로 접근한 시간, 파일의 속성을 마지막으로 변경한 시간, 파일의 속성은 아이노드 정보를 의미할 수 있다 즉 소유자, 접근 권한 등이 변경면 마지막 변경 시간이 변경된다. 블록 인덱스는 데이터 블록에 저장되어 있는 파일 내용에 대한 색인 정보일 수 있다. 다양한 실시예에 따르면 공유 공간에는 사용자에 의해 설치되는 파일에 대응된 데이터가 저장될 수 있다. 한 실시 예에 따르면 파일에 대응된 데이터는 블록 단위로 저장될 수 있다. According to one embodiment, the
출력부(150)는 프로세서(130)에 의해 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다. 출력부(150)는 외부 출력 장치 또는 외부 전자 장치가 유선 또는 무선으로 연결될 수 있는 연결 장치를 포함할 수 있으며, 유선 또는 무선으로 명령 또는 데이터를 외부 출력 장치 또는 외부 전자 장치로 출력할 수 있다. 다양한 실시예에 따르면 출력부(150)는 스피커, 디스플레이 등의 다양한 외부 출력 장치 또는 외부 전자 장치일 수 있으며 어플리케이션 실행 결과에 따른 소리 신호 또는 영상 신호를 외부 출력 장치 또는 외부 전자 장치로 출력할 수 있다. 디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. The
한 실시 예에 따르면 전자 장치(101)는 통신 인터페이스(미도시)를 더 포함할 수 있다. 통신 인터페이스는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치, 제 2 외부 전자 장치, 또는 서버) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(예: 제 2 외부 전자 장치 또는 서버)와 통신할 수 있다.According to one embodiment, the
무선 통신은, 예를 들면, 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
도 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
예를 들어, 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
프로세서(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
프로세서(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
도 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
다양한 실시 예에 따르면, 전자 장치에서 데이터 처리 방법은 제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
전자 장치는 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
전자 장치는 제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
전자 장치는 520 동작에서 제1 어플리케이션 실행 중 데이터의 수정 명령이 발생하는지 판단할 수 있다. 한 실시예에 따르면 전자 장치는 제2 파일을 이용한 제1 어플리케이션 실행 중 쓰기 명령 발생에 의해 데이터 수정 명령이 발생할 수 있다. The electronic device may determine whether an instruction to modify data occurs during execution of the first application in
전자 장치는 제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
전자 장치는 수정이 발생되는 데이터 블록에 대한 블록 인덱스가 제2 링크 파일에 존재하지 않으면 532 동작에서 메모리(130)의 제2 저장 영역을 수정이 발생되는 데이터를 위한 제2 저장 영역으로 할당하고, 제2 저장 영역에 제2 어플리케이션 파일의 수정 대상 데이터를 복사할 수 있다. 한 실시 예에 따르면 메모리(130)의 제2 저장 영역은 공유 저장 영역 중 일부 영역일 수 있다.The electronic device assigns the second storage area of the
전자 장치는 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
도 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
전자 장치는 제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
전자 장치는 읽기 명령이 발생한 데이터에 대한 블록 인덱스가 제2 파일 내에 존재하면 632 동작에서 블록 인덱스를 이용하여 읽기 대상 데이터를 검색할 수 있다. 한 실시예에 따르면 전자 장치는 블록 인덱스를 이용하여 공유 저장 영역에 저장된 읽기 대상 데이터를 검색할 수 있다. 전자 장치는 634 동작에서 검색된 데이터를 이용하여 읽기 명령을 수행할 수 있다.The electronic device can retrieve the data to be read using the block index in
전자 장치는 읽기 명령이 발생한 데이터에 대한 블록 인덱스가 제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
전자 장치는 644 동작에서 획득된 읽기 명령이 발생한 데이터에 대한 블록 인덱스를 이용하여 데이터 읽기를 수행할 수 있다.The electronic device can perform data reading using the block index for the data in which the read command obtained in
도 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
전자 장치는 원본 파일이 저장된 상태에서 원본 파일과 동일한 파일의 설치가 요구되면 원본 파일과 동일한 파일을 설치하는 대신 제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
전자 장치는 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
전자 장치는 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
전자 장치는 제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
도 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,
만약 파일의 일부 데이터의 수정이 발생하면, 수정된 데이터가 다른 저장 영역에 저장되고, 수정된 데이터에 대응된 데이터 블록의 블록 인덱스를 포함하는 "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
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(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,
다양한 실시 예에 따르면, 데이터 처리 프로그램을 저장하는 저장 매체에서, 상기 프로그램은 전자 장치에서, 제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 파일을 참조하도록 지시하는 정보를 포함하는 것을 특징으로 하는 전자 장치.
The method according to claim 1,
And the link information for the first file includes information for instructing to refer to the first file.
상기 프로세서는 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 상기 제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.
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 .
상기 프로세서는 상기 제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.
상기 프로세서는 상기 제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.
상기 메모리는 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역이 할당되는 전자 장치.
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.
상기 제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.
상기 제2 파일은 어플리케이션 프로그래밍 인터페이스의 요청에 따라 커널을 이용하여 생성되는 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the second file is created using a kernel upon request of an application programming interface.
상기 제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 .
상기 제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.
상기 제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.
상기 메모리에 적어도 하나 이상의 계정 각각에 대응된 적어도 하나의 계정 저장 영역과 상기 적어도 하나 이상의 계정이 공유하는 공유 저장 영역을 할당하는 동작을 더 포함하는 방법.
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.
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) |
-
2017
- 2017-02-03 KR KR1020170015701A patent/KR20180090617A/en active Search and Examination
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 |