KR101522881B1 - System and method for distributed compiling - Google Patents

System and method for distributed compiling Download PDF

Info

Publication number
KR101522881B1
KR101522881B1 KR1020080055345A KR20080055345A KR101522881B1 KR 101522881 B1 KR101522881 B1 KR 101522881B1 KR 1020080055345 A KR1020080055345 A KR 1020080055345A KR 20080055345 A KR20080055345 A KR 20080055345A KR 101522881 B1 KR101522881 B1 KR 101522881B1
Authority
KR
South Korea
Prior art keywords
header file
file
remote computer
cache
directory
Prior art date
Application number
KR1020080055345A
Other languages
Korean (ko)
Other versions
KR20090129203A (en
Inventor
엄민영
최광훈
김선욱
조경진
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020080055345A priority Critical patent/KR101522881B1/en
Publication of KR20090129203A publication Critical patent/KR20090129203A/en
Application granted granted Critical
Publication of KR101522881B1 publication Critical patent/KR101522881B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 소스 파일의 공유와 헤더 파일 캐싱을 기반으로 하는 분산 컴파일 시스템 및 방법에 관한 것이다. 본 발명에 따른 분산 컴파일 방법은, 서버 컴퓨터와 적어도 하나의 원격 컴퓨터가 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있게 연결하고, 원격 컴퓨터에서 작업 디렉터리를 연결된 공유 디렉터리로 변경한다. 그리고, 원격 컴퓨터에서 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 공유 디렉터리에 목적 파일을 생성한다. 이에 의해, 서버 컴퓨터 및 원격 컴퓨터의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있으며, 원격 컴퓨터의 수에 따른 성능 향상의 폭을 일정 수준 유지시킬 수 있다.

Figure R1020080055345

분산 컴파일, H-캐시, 전처리기

The present invention relates to a distributed compilation system and method based on sharing of source files and header file caching. In the distributed compilation method according to the present invention, a server computer and at least one remote computer connect a directory in which a source file is stored as a shared directory, and change a working directory from a remote computer to a connected directory. Then, distributed files are created in the shared directory by performing distributed compilation on the allocated files among the source files on the remote computer. Accordingly, it is possible to perform distributed compilation while minimizing work load on the server computer and the remote computer, and to maintain a certain level of performance improvement according to the number of remote computers.

Figure R1020080055345

Distributed compilation, H-cache, preprocessor

Description

분산 컴파일 시스템 및 방법{System and method for distributed compiling}{System and method for distributed compiling}

본 발명은 분산 컴파일 시스템 및 방법에 관한 것으로, 더욱 상세하게는 소스 파일 공유와 헤더 파일 캐싱을 기반으로 하는 분산 컴파일 시스템 및 방법에 관한 것이다.The present invention relates to a distributed compilation system and method, and more particularly, to a distributed compilation system and method based on source file sharing and header file caching.

일반적으로 분산 컴파일 시스템은, 소스 파일(source file)을 소유하는 하나의 서버 컴퓨터가 네트워크에 연결된 원격 컴퓨터들에게 소스 파일을 전처리한(preprocessing) 결과 파일을 전송하여 컴파일을 수행토록 하는 구조이거나, 혹은 서버 컴퓨터가 컴파일에 필요한 소스 파일 및 헤더 파일들을 원격 컴퓨터들에게 전달하여 전처리 및 컴파일을 수행토록 하는 구조로 이루어져 있다.In general, a distributed compilation system is a structure in which a server computer that owns a source file performs a compilation by transmitting a preprocessing result file to remote computers connected to the network, or The server computer sends the source files and header files needed for compilation to remote computers for preprocessing and compiling.

첫 번째 구조의 경우, 간단한 구성의 컴파일 작업시 성능 향상을 얻을 수 있는 기회가 있다. 그러나, 복잡한 구성의 컴파일 작업시, 전처리 시간이 많이 소요되고, 서버 컴퓨터에서 다수의 전처리 작업을 동시에 처리하게 되어 멀티 태스킹 오버헤드가 커지게 되어 암달의 법칙(Amdhal's law)에 따른 병렬화 기회가 적어져 성능 향상을 얻기 어렵다. For the first structure, there is a chance to get a performance boost in a simple configuration compile. However, in the case of complicated configuration compilation, it takes a lot of preprocessing time and the multitasking overhead becomes large because the server computer handles a lot of preprocessing tasks simultaneously, and the chance of parallelism according to Amdhal's law is decreased It is difficult to obtain a performance improvement.

또한, 두 번째 구조의 경우, 첫 번째 구조의 단점을 최소화하여 작업에 참여 하는 원격 컴퓨터의 수가 늘어날수록 성능 향상을 얻을 수 있는 이점이 있다. 그러나, 소스 및 헤더 파일을 전송하기 위해 네트워크 오버헤드가 크며, 이를 해결하기 위해 원격 컴퓨터도 파일 전송에 참여하는 경우가 있어 작업을 즉시 처리하기 힘든 경우가 발생할 수 있다.Also, in the case of the second structure, there is an advantage that the disadvantage of the first structure is minimized and the performance increases as the number of remote computers participating in the work increases. However, the network overhead is large in order to transmit the source and header files. In order to solve this problem, the remote computer may participate in the file transfer.

따라서, 본 발명의 목적은, 컴파일에 참여하는 컴퓨터들의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있도록 하는 분산 컴파일 시스템 및 방법을 제공함에 있다.Accordingly, it is an object of the present invention to provide a distributed compilation system and method that can perform distributed compilation while minimizing workload of computers participating in compilation.

상기 목적을 달성하기 위한 본 발명에 따른 분산 컴파일 방법은, 서버 컴퓨터와 적어도 하나의 원격 컴퓨터가 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있도록 연결하는 단계, 상기 원격 컴퓨터에서 상기 공유 디렉터리를 작업 디렉터리로 변경하는 단계, 및 상기 원격 컴퓨터에서 상기 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 단계를 포함한다.According to an aspect of the present invention, there is provided a distributed compilation method comprising: connecting a server computer and at least one remote computer so that a directory in which a source file is stored can be used as a shared directory; And performing distributed compilation on a file allocated among the source files in the remote computer to generate an object file in the shared directory.

한편, 본 발명에 따른 분산 컴파일 시스템은, 소스 파일을 저장하는 서버 컴퓨터, 및 상기 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있도록 연결되어, 상기 공유 디렉터리를 작업 디렉터리로 변경한 후, 상기 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 적어도 하나의 원격 컴퓨터를 포함한다. Meanwhile, a distributed compilation system according to the present invention includes a server computer that stores a source file, and a directory that is used to store the source file as a shared directory, changes the shared directory to a working directory, And at least one remote computer for performing distributed compilation on the allocated files to generate an object file in the shared directory.

상기 목적을 달성하기 위하여 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In order to attain the above object, the present invention provides a computer-readable recording medium having recorded thereon a program for causing a computer to execute the method.

본 발명에 따르면, 서버 컴퓨터 및 원격 컴퓨터들이 소스 파일이 저장된 디렉터리를 공유하도록 연결되어, 상위 네트워크 계층에서 서버 컴퓨터와 원격 컴퓨터들은 파일 전송에 관여하지 않게 된다. 또한, 원격 컴퓨터들은 헤더 파일 캐싱을 사용하여, 헤더 파일 등을 전송하기 위한 네트워크 오버헤드를 감소시킨다. 이에 따라, 컴파일에 참여하는 컴퓨터들의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있다. 또한, 원격 컴퓨터의 수에 따른 성능 향상의 폭을 일정 수준 유지시킬 수 있으므로, 다수의 컴퓨터를 사용하는 분산 컴파일 환경에 최적화되어 동작할 수 있다.According to the present invention, the server computer and the remote computers are connected to share a directory in which the source files are stored, so that the server computer and remote computers in the upper network layer are not involved in file transfer. In addition, remote computers use header file caching to reduce network overhead for sending header files and the like. Accordingly, distributed compilation can be performed while minimizing the workload of the computers participating in the compilation. In addition, since the performance improvement according to the number of remote computers can be maintained at a certain level, it can be optimized and operated in a distributed compilation environment using a plurality of computers.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, the present invention will be described in detail with reference to the drawings.

본 발명에 따른 분산 컴파일 시스템은, 서버 컴퓨터가 소유하고 있는 소스 파일들을 네트워크상에 연결된 다른 원격 컴퓨터들이 공유하여, 원격 컴퓨터들은 공유된 디렉터리에서 각각 컴파일 작업을 수행토록 한다. 이와 같은 구성에 의해, 상위 네트워크 계층에서의 파일 전송이 없으므로, 서버 컴퓨터 및 연결된 원격 컴퓨터들이 파일 전송을 중심으로 한 네트워크 접근에 대해 관여할 필요가 없게 되어, 각 컴퓨터들에게 더 많은 기회를 제공할 수 있게 된다. In the distributed compilation system according to the present invention, source files owned by a server computer are shared by other remote computers connected to the network, and remote computers execute compile operations in shared directories. With this arrangement, there is no file transfer at the higher network layer, so that the server computer and the connected remote computers do not have to engage in network access based on file transfer, thereby providing more opportunities for each computer .

도 1은 본 발명의 일실시예에 따른 분산 컴파일 시스템의 구성을 나타낸 도면이다. 도 1을 참조하면, 본 분산 컴파일 시스템은, 하나의 서버 컴퓨터(100)와 제1 내지 제n 원격 컴퓨터(200a ~ 200n)로 구성되며, 서버 컴퓨터(100)와 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 네트워크를 통해 연결된다. 1 is a block diagram of a distributed compilation system according to an embodiment of the present invention. 1, the distributed distributed compilation system includes a server computer 100 and first through nth remote computers 200a through 200n. The server computer 100 and the first through nth remote computers 200a to 200n are connected through a network.

서버 컴퓨터(100)는 작업을 수행할 제1 내지 제n 원격 컴퓨터(200a ~ 200n)를 선택한 후, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)로 소스 파일이 저장된 소스 디렉터리를 공유 디렉터리로 접근할 수 있도록 하는 공유 디렉터리 접근 권한정보, 컴파일 명령어, 및 컴파일을 수행할 디렉터리 정보 등을 전달한다. 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 서버 컴퓨터(100)로부터 제공받은 정보를 바탕으로 서버 컴퓨터(100)의 소스 디렉터리를 공유하여 공유 디렉터리로 설정한다. 공유 디렉터리의 설정에는 네트워크 드라이브 방식을 사용할 수 있으며, 기타 다른 방법을 사용하여 소스 파일을 공유할 수도 있다. The server computer 100 selects the first to nth remote computers 200a to 200n to perform the operation and then accesses the source directory in which the source files are stored to the first to nth remote computers 200a to 200n to the shared directory Shared directory access permission information, compile command, and directory information to be compiled. The first to nth remote computers 200a to 200n share the source directory of the server computer 100 based on the information provided from the server computer 100 and set them as a shared directory. You can use the network drive method to set up the shared directory, or you can share the source file using other methods.

제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 설정한 공유 디렉터리에서 전처리 및 컴파일 작업을 수행하게 된다. 이때, 전처리 작업의 빠른 처리를 위해 제1 내지 제n 원격 컴퓨터(200a ~ 200n) 내에 각각 요청되었던 헤더 파일들을 저장하는 H-캐시를 포함하여 헤더 파일 캐싱을 사용함으로써, 공유 디렉터리에 대한 접근을 최소화한다. The first to nth remote computers 200a to 200n perform pre-processing and compiling operations in the set shared directory. At this time, by using the header file caching including the H-cache for storing the header files requested respectively in the first to n-th remote computers 200a to 200n for quick processing of the preprocessing operation, access to the shared directory is minimized do.

즉, 공유 디렉터리에 연결되어 소스 파일을 공유하는 경우, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 전처리 과정에서 공유 디렉터리에 있는 헤더 파일을 요구하게 되는데, 범용 전처리기(preprocessor)의 기본 동작에서는 사용자가 설정한 모든 검색경로를 전처리기가 원하는 파일을 발견할 때까지 탐색하게 되므로 필요 이상으로 공유 디렉터리를 접근하게 된다. 따라서, 상위 계층에서의 네트워크 오버헤드가 없다고 하더라도 하위 계층에서는 네트워크를 사용하고 있는 상태가 된다. 이에 따라, 불필요하고 과도한 공유 디렉터리의 접근은 전처리 속도를 현저히 떨어뜨리고 전처리 속도의 저하는 전체 컴파일 시간의 저하에 직결되므로 이를 해결해야 할 필요가 있다. That is, when the source files are shared with the shared directory, the first to nth remote computers 200a to 200n request a header file in the shared directory in the preprocessing process. In the preprocessor, , The searcher searches all the search paths set by the user until the preprocessor finds the desired file, and accesses the shared directory more than necessary. Therefore, even if there is no network overhead in the upper layer, the network is used in the lower layer. As a result, unnecessary and excessive access to the shared directory significantly reduces the preprocessing speed, and degradation of the preprocessing speed is directly related to the degradation of the entire compilation time.

이러한 속도 저하를 해결하기 위해, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)의 각 지역 하드 디스크에 제1 내지 제n 원격 컴퓨터(200a ~ 200n)가 컴파일을 위해 서버 컴퓨터(100)의 공유 디렉터리로부터 읽어 들였던 헤더 파일들을 복사하여 공유 디렉터리의 접근을 최소화하는 헤더 파일 캐시(H-cache) 구조를 사용한다. 이 구조는 동일한 프로젝트내 다수의 소스 파일을 컴파일하는 과정에서 각 과정은 일반적으로 공통의 헤더 파일을 요구하는 특성을 활용한 것이다. 즉, 컴파일 과정이 진행될수록 원격 컴퓨터가 요구했던 헤더 파일들을 지역 하드 디스크 드라이브에 저장한 후, 저장된 헤더 파일들에 접근함으로써 공유 디렉터리 대신 지역 하드 디스크에 접근하도록 하여, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)은 각 컴파일 작업이 공유 디렉터리에서의 작업이 아닌 마치 지역 하드 디스크에서 이루어지는 것과 같은 효과를 나타내게 한다.In order to solve such a speed reduction, the first to nth remote computers 200a to 200n are connected to the local hard disks of the first to nth remote computers 200a to 200n by a shared directory of the server computer 100 for compilation And a header file cache (H-cache) structure that minimizes access to the shared directory by copying the header files read from the server. This structure makes use of the characteristic that each process generally requires a common header file in the process of compiling multiple source files in the same project. That is, as the compilation process progresses, the header files requested by the remote computer are stored in the local hard disk drive, and the local hard disk is accessed instead of the shared directory by accessing the stored header files, 200a to 200n) will have the same effect as if each compilation operation was done on a local hard disk, not on a shared directory.

제1 내지 제n 원격 컴퓨터(200a ~ 200n)가 컴파일 과정을 통해 생성된 목적 파일들은 공유 디렉터리에 저장되어, 서버 컴퓨터(100)가 필요로 할 경우 링크 및 기타 작업을 수행할 수 있도록 한다. The object files generated through the compiling process of the first to nth remote computers 200a to 200n are stored in a shared directory so that the server computer 100 can perform a link and other tasks when the server computer 100 needs it.

도 2는 제1 원격 컴퓨터의 구성을 나타낸 도면이다. 나머지 제2 내지 제n 원격 컴퓨터들도 제1 원격 컴퓨터와 동일한 구성을 갖는다. 도 2를 참조하면, 제1 원격 컴퓨터(200a)는 범용 전처리기와는 달리 수정된 전처리기(210a)를 내장하고 있다. 전처리기(210a)는 전처리 작업을 위해 공유 디렉터리로부터 소스 파일(.c)을 제공받으며, 공유 디렉터리에서 전처리 작업을 수행하는 도중에 H-캐시를 사용한다. 제1 원격 컴퓨터(200a)는 H-캐시 활용을 위해 RFHT(Requested header file table)(220a)와 H-cache(221a), 그리고 H-캐시 해시를 구비한다. 도 2에서는 H-캐시 해시가 전처리기(210a) 내에 구비된 것으로 도시하고 있으나, H-캐시 해시는 전처리기(210a)와 별도로 구비될 수도 있다. 2 is a diagram showing a configuration of a first remote computer. The remaining second to nth remote computers also have the same configuration as the first remote computer. Referring to FIG. 2, the first remote computer 200a includes a modified preprocessor 210a, unlike the general purpose preprocessor. The preprocessor 210a receives the source file (.c) from the shared directory for the preprocessing operation and uses the H-cache during the preprocessing operation in the shared directory. The first remote computer 200a includes an RFHT (Requested Header File Table) 220a, an H-cache 221a, and an H-cache hash for utilizing the H-cache. Although the H-cache hash is shown in FIG. 2 as being provided in the preprocessor 210a, the H-cache hash may be provided separately from the preprocessor 210a.

RFHT(220a)는 전처리기(210a)로부터 요청되었던 헤더 파일의 이름, 그 헤더 파일의 실제 위치에 대한 절대 경로, 및 캐시로 저장될 위치의 절대 경로 등을 저장한다. H-캐시 해시는 RHFT(220a)에 저장된 데이터의 고속 검색이 가능하도록, 헤더 파일이 실제 위치한 절대 경로(파일 이름 포함)를 키(key)로 가지고, 그 헤더 파일이 저장된 캐시 디렉터리의 절대 경로를 데이터로 가진다. The RFHT 220a stores the name of the header file requested from the preprocessor 210a, the absolute path to the actual location of the header file, and the absolute path of the location to be stored in the cache. The H-cache hash has an absolute path (including the file name) in which the header file is physically located, so that the data stored in the RHFT 220a can be retrieved at a high speed, and the absolute path of the cache directory in which the header file is stored Data.

이와 같은 구성에 의해, 소스 파일로부터 필요한 헤더 파일들에 대한 정보를 얻어낸 후, 전처리기(210a)가 파일 검색 루틴에 들어오면, RFHT(220a)내에 그 헤더파일이 존재하는지에 대한 여부를 확인하여, H-캐시 디렉터리(221a)에서 헤더 파일을 제공받거나, 그렇지 않을 경우 공유 디렉터리에 직접 접근하여 헤더 파일을 제공받는다. 공유 디렉터리에 접근하여 헤더 파일을 제공받을 경우, 이 헤더 파일의 정보는 RFHT(220a)와 H-캐시 해시에 동시에 갱신되며, 그 헤더 파일은 H-캐시 디렉 터리(221a)에 복사되어 저장되어, 후에 동일한 헤더 파일의 요청이 들어왔을 때 공유 디렉터리가 아닌 H-캐시 디렉터리(221a)로부터 헤더 파일을 제공받게 된다. With such a configuration, after obtaining information on necessary header files from the source file, if the preprocessor 210a enters the file search routine, it checks whether the header file exists in the RFHT 220a , The header file is provided in the H-cache directory 221a, or if not, the header file is directly provided to the shared directory. When accessing the shared directory and receiving a header file, the information in the header file is simultaneously updated in the RFHT 220a and the H-cache hash. The header file is copied and stored in the H-cache directory 221a, When a request for the same header file is received later, a header file is received from the H-cache directory 221a, not the shared directory.

이러한 과정을 거쳐 전처리 된 파일이 생성되면, 제1 원격 컴퓨터(200a) 내에 탑재된 컴파일러(230a)가 전처리된 파일을 컴파일하여 목적 파일을 생성한다. 이 과정은 모두 공유 디렉터리를 작업 디렉터리로 설정한 상태에서 진행되기 때문에 사용자나 분산 컴파일러가 별다른 설정을 하지 않더라도 생성된 목적 파일은 공유 디렉터리 내에 저장된다. 따라서, 이 위치는 실제 서버 컴퓨터(100)가 컴파일을 진행하여 목적 파일이 생성되는 위치와 같다.When the preprocessed file is generated through the above process, the compiler 230a installed in the first remote computer 200a compiles the preprocessed file and generates the object file. Since all of this process is done with the shared directory set to the working directory, the created object file is stored in the shared directory even if the user or the distributed compiler does not make any settings. Accordingly, this position is the same as the position at which the actual server computer 100 compiles and the object file is generated.

도 3 내지 도 5는 본 발명의 일실시예에 따른 분산 컴파일 시스템의 동작방법의 설명에 제공되는 흐름도이다. 먼저, 도 3은 서버 컴퓨터(100)에서 수행되는 과정을 나타낸다. 이하, 설명의 편의상, 서버 컴퓨터(100)와 제1 원격 컴퓨터(200a) 간의 동작만을 설명하지만, 나머지 제2 내지 제n 원격 컴퓨터들에 대해서도 동일한 과정이 수행된다.3 to 5 are flowcharts provided in the description of an operation method of a distributed compilation system according to an embodiment of the present invention. First, FIG. 3 shows a process performed by the server computer 100. For convenience of explanation, only the operation between the server computer 100 and the first remote computer 200a will be described below, but the same process is performed for the remaining second to nth remote computers.

도 3을 참조하면, 서버 컴퓨터(100)는 컴파일 작업 시작과 동시에 제1 원격 컴퓨터(200a)와 네트워크로 연결된다(S300). 이 연결을 통해 공유 디렉터리 접근 권한정보, 작업 디렉터리 정보, 및 컴파일 명령어 등을 전송한다(S305). 제1 원격 컴퓨터(200a)는 이러한 정보를 가공하여 공유 디렉터리에 연결하고, 작업 경로를 공유 디렉터리로 변경한 후, 그 성공 여부에 대한 신호를 서버 컴퓨터(100)로 전달한다. 만일, 제1 원격 컴퓨터(200a)로부터 공유 디렉토리 접근 성공신호인 NDRS(Network Drive Request Success) 신호를 수신한 경우(S310), 서버 컴퓨 터(100)는 제1 원격 컴퓨터(200a)로부터 컴파일 종료 신호 수신을 기다린다(S315). 그러나, 공유 디렉토리 연결의 실패를 나타내는 NDRF(Network Drive Request Failed) 신호를 수신한 경우에는 서버 컴퓨터(100)는 자체에서 실패한 컴파일 작업을 수행한다(S325). Referring to FIG. 3, the server computer 100 is connected to the first remote computer 200a through a network at the same time as the compile operation starts (S300). The shared directory access right information, the working directory information, the compile command, and the like are transmitted through the connection (S305). The first remote computer 200a processes this information to connect to the shared directory, changes the work path to the shared directory, and transmits a signal indicating the success to the server computer 100. [ When receiving a network drive request success (NDRS) signal from the first remote computer 200a in step S310, the server computer 100 receives a compile end signal from the first remote computer 200a, And waits for reception (S315). However, when receiving the NDRF (Network Drive Request Failed) signal indicating the failure of the shared directory connection, the server computer 100 performs a failed compile operation by itself (S325).

제1 원격 컴퓨터(200a)는 전처리 및 컴파일 작업을 거친 후 작업 성공 여부를 다시 한번 서버 컴퓨터(100)에 전송한다. 작업이 성공했을 경우, 서버 컴퓨터(100)는 다음 컴파일 작업을 위해 현재 프로세스를 종료하고(S320), 만약 원격 컴퓨터(200a)에서 컴파일 작업이 실패했을 경우는 서버 컴퓨터(100)에서 실패한 컴파일 작업을 재수행 한 후 프로세스를 종료시킨다(S325).After the first remote computer 200a has undergone the preprocessing and compiling operations, the first remote computer 200a once again transmits the success or failure of the operation to the server computer 100. [ If the operation is successful, the server computer 100 terminates the current process for the next compilation operation (S320). If the compile operation fails in the remote computer 200a, the server computer 100 performs a failed compile operation The process is terminated and the process is terminated (S325).

도 4는 원격 컴퓨터에서 수행되는 분산 컴파일 과정을 나타낸다. 도 4를 참조하면, 제1 원격 컴퓨터(200a)는 서버 컴퓨터(100)와 네트워크로 연결되고(S300), 이 연결을 통해 서버 컴퓨터(100)로부터 공유 디렉터리 접근 권한정보, 작업 디렉터리 정보 그리고 컴파일 명령어를 전송받는다(S405). 제1 원격 컴퓨터(200a)는 전송받은 정보 중에서 공유 디렉터리 접근 권한정보를 이용하여 서버 컴퓨터(100)의 소스 디렉터리를 공유 디렉터리로 하여 네트워크 드라이브로써 연결하고, 작업 경로 변경을 시도한 후(S410), 성공 여부에 대한 신호를 서버 컴퓨터(100)로 전달한다(S415). 즉, 연결이 완료되어 컴파일 디렉터리로 이동하면 NDRS(Network Drive Request Success) 신호를 서버 컴퓨터(100)에 전달하고, 연결이 실패하면 서버 컴퓨터(100)에게 NDRF(Network Drive Request Failed) 신호를 전달한다. 4 shows a distributed compilation process performed on a remote computer. 4, the first remote computer 200a is connected to the server computer 100 via a network (S300). From the server computer 100, the first remote computer 200a receives the shared directory access right information, the working directory information, (S405). The first remote computer 200a connects the source directory of the server computer 100 as a shared directory by using the shared directory access right information among the received information, connects it as a network drive, tries to change the work path (S410) And transmits the signal to the server computer 100 (S415). That is, when the connection is completed and the connection directory is moved to the compile directory, the NDRS (Network Drive Request Success) signal is transmitted to the server computer 100. When the connection is failed, the NDRF signal is transmitted to the server computer 100 .

공유 디렉터리에 연결을 완료한 후, 제1 원격 컴퓨터(200a)는 전처리 작업을 수행한다(S425). 전처리 작업 중 H-캐시를 사용되며, 전처리 작업이 완료되면 제1 원격 컴퓨터(200a)는 컴파일 작업을 수행한다(S430). 컴파일 작업을 통해 생성된 목적 파일(object file)은 공유 디렉터리에 그대로 저장이 된다. 그리고, 작업 성공 여부를 다시 한번 서버 컴퓨터(100)에 전송한다(S435). 작업이 성공한 경우, 제1 원격 컴퓨터(200a)는 서버 컴퓨터(100)에게 작업 완료를 뜻하는 DONE 신호를 보내고, 서버 컴퓨터(100)는 DONE 신호를 받은 후 다음 컴파일 작업을 수행한다. After completing the connection to the shared directory, the first remote computer 200a performs a preprocessing operation (S425). The H-cache is used during the preprocessing operation. When the preprocessing operation is completed, the first remote computer 200a performs the compiling operation (S430). The object file generated by the compilation operation is stored in the shared directory. Then, the server computer 100 transmits the success or failure of the operation to the server computer 100 again (S435). When the operation is successful, the first remote computer 200a sends a DONE signal to the server computer 100 to indicate completion of the operation, and the server computer 100 receives the DONE signal and then performs the next compilation operation.

도 5는 원격 컴퓨터에서 H-캐시의 동작방법의 설명에 제공되는 순서도이다. 도 5를 참조하면, 전처리 과정에서 헤더 파일에 대한 읽기 요청이 있는 경우(S500), 전처리기(210a)는 요청한 헤더 파일 이름과 검색해야 할 전체 경로를 결합하여 절대 경로 리스트를 생성한다(S505). 전처리기(210a)는 생성한 절대 경로 리스트의 데이터 모두를 H-캐시 해시의 키와 비교하여, RHFT(220a)내에 해당 헤더 파일 정보가 있는지를 검색한다(S510).5 is a flowchart provided in the description of a method of operating the H-cache in a remote computer. 5, if there is a read request for a header file in the preprocessing step (S500), the preprocessor 210a generates an absolute path list by combining the requested header file name and the entire path to be searched (S505) . The preprocessor 210a compares all the data of the generated absolute path list with the key of the H-cache hash to search for the corresponding header file information in the RHFT 220a (S510).

검색 결과, 요청된 헤더 파일에 대한 경로가 RHFT(220a)내에 있으면, 전처리기(210a)는 파일 검색 루틴을 H-캐시 모드로 전환한다(S520). 그리고, 파일 검색 루틴으로 진입한다(S525). 파일 검색루틴으로 진입하여 파일 검색을 수행하는 과정에서, 전처리기(210a)는 헤더 파일을 검색할 절대 경로를 H-캐시 해시의 키 값으로 사용된 절대 경로와 비교한다(S530). 비교 결과 두 경로가 다르면 검색 경로 리스트의 데이터 갱신 과정은 수행하지 않은 채 실제 공유 디렉터리에 대한 검색 과정을 건너뛰게 한다. 따라서, 이러한 경우 검색 루틴 과정에서 공유 디렉터리에는 접근하지 않는다. 그러나 비교 결과 두 경로가 일치하면, 공유 디렉터리가 아 닌 지역 H-캐시 디렉터리(221a)에서 해당 헤더 파일을 읽어오게 한다(S540). If the search result shows that the path to the requested header file is within the RHFT 220a, the preprocessor 210a switches the file search routine to the H-cache mode (S520). Then, the file search routine is entered (S525). In the process of entering a file search routine and performing a file search, the preprocessor 210a compares the absolute path to search for the header file with the absolute path used as the key value of the H-cache hash (S530). If the two paths are different from each other, the search process for the actual shared directory is skipped without updating the data of the search path list. Therefore, in this case, the shared directory is not accessed during the search routine. However, if the two paths match, the corresponding header file is read from the local H-cache directory 221a, not the shared directory (S540).

S515 단계에서, 만약 절대 경로 리스트를 H-캐시 해시에 대입한 결과 RFHT(220a)에 해당 파일의 정보가 존재하지 않는다면, 일반 검색모드로 전환하ㅇ여(S545), 일반 파일 검색 루틴으로 진입한다(S550). 일반 파일 검색 루틴으로 진입하여 파일 검색을 수행한 결과, 요구한 파일 검색에 성공한 경우, 전처리기(210a)는 검색한 헤더 파일의 이름, 실제 위치의 절대 경로, 캐시로 저장될 경로 등을 포함하는 검색한 헤더 파일에 대한 정보를 RHFT(220a) 및 H-캐시 디렉터리(221a) 저장한다(S560). In step S515, if the information of the corresponding file does not exist in the RFHT 220a as a result of substituting the absolute path list into the H-cache hash, the general search mode is entered (S545) and the normal file search routine is entered (S550). If the search for the requested file is successful as a result of entering the general file search routine and searching for the requested file, the preprocessor 210a includes the name of the searched header file, the absolute path of the actual location, The RHFT 220a and the H-cache directory 221a store information about the searched header file (S560).

즉, 검색한 헤더 파일을 H-캐시에 복사하여 다음 전처리 작업에서 지역 하드 디스크에서 헤더 파일을 찾아낼 수 있도록 한다. 이때, 동시에 검색한 헤더 파일에 대한 정보가 H-캐시 해시에도 저장하게 되는데, 저장되는 헤더 파일의 키는 전술한 바와 같이 헤더 파일 실제 위치의 절대 경로를 사용한다. 만일, 요구한 파일의 검색에 실패한 경우에는 검색 실패 및 컴파일 에러를 발생시킨다(S565).That is, the retrieved header file is copied to the H-cache so that the next preprocessing operation can find the header file from the local hard disk. At this time, information on the searched header file is also stored in the H-cache hash. The key of the header file to be stored uses the absolute path of the actual location of the header file, as described above. If the search of the requested file fails, a search failure and a compile error are generated (S565).

이와 같은 과정을 통해 전처리기(210a)는 공유 디렉터리에 대한 접근을 최소화하는 대신 지역 H-캐시 디렉터리(221a)로부터 헤더 파일을 읽어 올 수 있게 된다. 이러한 구성을 통해 두 번째 컴파일 작업부터 소스파일을 제외한 헤더 파일들에 대한 접근을 지역 캐시 디렉터리로 전환할 수 있어, 공유 디렉터리를 이용한 분산 컴파일 작업의 단점을 최소화할 수 있다.Through this process, the preprocessor 210a can read the header file from the local H-cache directory 221a instead of minimizing access to the shared directory. With this configuration, access to the header files except the source file can be converted to the local cache directory from the second compilation operation, and the disadvantages of the distributed compilation work using the shared directory can be minimized.

전처리 과정이 끝나면 원격 컴퓨터는 전처리된 파일에 대한 컴파일 작업을 수행한다. 이 컴파일 작업은 어떠한 컴파일러를 사용하는 경우에도 동일하게 수행 되므로 H-캐시를 사용하는 전처리기가 컴파일러에 종속적으로 동작하는 경우는 없으며, 따라서 다양한 목적 기계의 컴파일러에 쉽게 적용될 수 있다.At the end of the preprocessing process, the remote computer compiles the preprocessed files. Since this compilation is performed in the same way with any compiler, the preprocessor using the H-cache does not depend on the compiler, so it can be easily applied to the compiler of various purpose machines.

도 6 내지 도 10은 본 발명의 일실시예에 따른 분산 컴파일 방법의 성능을 시뮬레이션한 결과를 나타낸 그래프이다. 먼저, 도 6은 H-캐시를 사용하지 않은 경우 분산 컴파일 성능을 나타낸 것이다. 도 6에서 'Local'로 표시한 항목은 일반 컴파일 시간을 나타내고, 'remote'는 분산 컴파일을 수행을 위해 연결된 컴퓨터를 의미한다.6 to 10 are graphs illustrating simulation results of performance of the distributed compilation method according to an embodiment of the present invention. First, FIG. 6 shows the distributed compilation performance when the H-cache is not used. In FIG. 6, 'Local' denotes a general compile time, and 'remote' denotes a computer connected to perform distributed compilation.

도 7 및 도 8은 H-캐시를 사용한 경우 분산 컴파일 방법의 성능을 나타낸 그래프이다. 도 7 및 도 8에서는, 일반 컴파일 시간을 '1'로 놓고, 각각의 구성에 따른 성능 향상도를 표시하고 있다. 도 7 및 도 8에 도시한 바와 같이, H-캐시를 사용한 경우 분산 컴파일 수행을 위해 연결된 컴퓨터의 수가 증가함에 따라 성능 향상의 폭도 일정하게 증가함을 알 수 있다. 7 and 8 are graphs illustrating performance of the distributed compilation method when the H-cache is used. In FIGS. 7 and 8, the general compile time is set to '1', and the degree of performance improvement according to each configuration is shown. As shown in FIGS. 7 and 8, when the number of computers connected to the distributed compilation is increased, the performance of the H-cache increases.

도 9는 H-캐시 사용시 전처리 시간 속도 향상 그래프이다. 도 9에서 'NDCD'로 표시한 항목이 H-캐시가 없는 경우의 속도로써 '1'로 표준화하여 나타내고 있다. 그리고, 'NDCD with H-cache'로 나타낸 항목이 H-캐시가 있는 경우로, H-캐시가 없는 경우보다 속도가 향상됨을 알 수 있다.FIG. 9 is a graph illustrating a preprocessing time rate improvement when the H-cache is used. In FIG. 9, the item denoted by 'NDCD' is normalized to '1' as the speed when there is no H-cache. In addition, if the item indicated by 'NDCD with H-cache' has H-cache, it can be seen that the speed is improved compared to the case without H-cache.

도 10은 전체 컴파일 시간에서 H-캐시를 처리하는 시간의 비율을 나타낸 그래프이다. 즉, 전체 컴파일 시간에서 전처리 과정, 순수 컴파일 과정, 및 캐싱 과정이 차지하는 비율을 나타내고 있다. 도 10에 도시한 바와 같이, 전체 컴파일 시간에서 H-캐시를 처리하는데 소요되는 캐싱 과정의 소요 시간에 대한 비율은 매 우 작은 것을 알 수 있다. 10 is a graph showing a ratio of time for processing the H-cache at the entire compile time. That is, the ratio of the preprocessing process, the pure compilation process, and the caching process in the total compile time is shown. As shown in FIG. 10, the ratio of the time required for the caching process for processing the H-cache at the entire compile time is very small.

이와 같이, 본 발명에 따른 분산 컴파일 방법은, H-캐시의 사용에 의해 컴파일 성능이 증가한다. 또한, 일반적인 분산 컴파일 방법은 상위 계층에서 소켓을 통해 전처리된 파일을 전송하거나 컴파일에 필요한 소스 및 헤더 파일을 전송함으로써 네트워크 사용에 따른 부하가 크고 서버 컴퓨터에게 작업 부담을 주어 분산 컴파일에 참여하는 컴퓨터의 수가 늘어날 수록 성능 향상의 폭이 적어지나, 본 발명에 따른 분산 컴파일 방법에서는 사용되는 원격 컴퓨터 개수의 증가에 대응하는 성능 향상의 폭도 일정하게 증가하는 결과를 보여준다. As described above, the distributed compilation method according to the present invention increases the compilation performance by using the H-cache. In addition, a general distributed compilation method is a method in which a higher layer transmits a preprocessed file through a socket, or transmits a source and a header file necessary for compilation, thereby causing a heavy load on the network and imposing a burden on the server computer, As the number of remote computers increases, the performance improvement is less. However, in the distributed compiling method according to the present invention, the increase in the performance improvement corresponding to the increase in the number of remote computers used is also constant.

한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave such as transmission over the Internet. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention.

도 1은 본 발명의 일실시예에 따른 분산 컴파일 시스템의 구성을 나타낸 도면,1 is a block diagram of a distributed compilation system according to an embodiment of the present invention;

도 2는 원격 컴퓨터의 구성을 나타낸 도면.2 shows a configuration of a remote computer.

도 3 내지 도 5는 본 발명의 일실시예에 따른 분산 컴파일 시스템의 동작방법에 대한 설명에 제공되는 흐름도, FIG. 3 is a flowchart illustrating a method of operating a distributed compilation system according to an embodiment of the present invention. FIG.

도 5는 원격 컴퓨터에서 H-캐시의 동작방법에 대한 설명에 제공되는 흐름도, 그리고.5 is a flow chart provided in the description of how the H-cache operates in a remote computer, and Fig.

도 6 내지 도 10은 본 발명의 일실시예에 따른 분산 컴파일 방법의 성능을 시뮬레이션한 결과를 나타낸 그래프이다.6 to 10 are graphs illustrating simulation results of performance of the distributed compilation method according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Description of the Related Art [0002]

100 : 서버 컴퓨터 200a ~ 200n : 원격 컴퓨터 100: server computer 200a-200n: remote computer

Claims (12)

서버 컴퓨터와 적어도 하나의 원격 컴퓨터를 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있도록 연결하는 단계;Connecting the server computer and at least one remote computer so that the directory where the source files are stored can be used as a shared directory; 상기 원격 컴퓨터가 상기 공유 디렉터리를 작업 디렉터리로 변경하는 단계;The remote computer changing the shared directory to a working directory; 상기 원격 컴퓨터가 상기 소스 파일 중 할당된 소스 파일의 헤더 파일 정보를 획득하는 단계;The remote computer obtaining header file information of an allocated source file among the source files; 상기 원격 컴퓨터가 상기 공유 디렉터리에 접근하기에 앞서서 상기 헤더 파일 정보에 대응하는 헤더 파일이 헤더파일 캐시에 존재하는지 확인하는 단계;Confirming whether a header file corresponding to the header file information exists in the header file cache before the remote computer accesses the shared directory; 확인 결과, 상기 헤더파일 캐시에 상기 헤더 파일이 존재하면, 상기 원격 컴퓨터가 상기 헤더파일 캐시로부터 상기 헤더 파일을 획득하는 단계;If the header file exists in the header file cache, the remote computer obtains the header file from the header file cache; 상기 원격 컴퓨터가 상기 헤더 파일을 이용하여 상기 소스 파일을 전처리하는 단계; 및The remote computer preprocessing the source file using the header file; And 상기 원격 컴퓨터가 컴파일러를 통해 상기 전처리된 소스 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 단계;The remote computer performs distributed compilation on the preprocessed source file through a compiler to generate an object file in the shared directory; 를 포함하는 분산 컴파일 방법.Lt; / RTI > 제1항에 있어서,The method according to claim 1, 상기 서버 컴퓨터에서 상기 목적 파일에 대한 링크 작업을 수행하는 단계를 더 포함하는 것을 특징으로 하는 분산 컴파일 방법.Further comprising the step of performing a link operation on the object file in the server computer. 제1항에 있어서,The method according to claim 1, 상기 서버 컴퓨터와 상기 원격 컴퓨터는 네트워크 드라이브 방식으로 연결하는 것을 특징으로 하는 분산 컴파일 방법.Wherein the server computer and the remote computer are connected in a network drive manner. 제1항에 있어서,The method according to claim 1, 상기 분산 컴파일을 수행하는 과정에서 오류가 발생한 경우, 오류가 발생한 분산 컴파일 과정을 상기 서버 컴퓨터에서 다시 수행하는 단계를 더 포함하는 것을 특징으로 하는 분산 컴파일 방법.Further comprising the step of, when an error occurs in the process of performing the distributed compilation, performing a distributed compilation process in which the error occurs in the server computer again. 제1항에 있어서,The method according to claim 1, 상기 원격 컴퓨터는,The remote computer comprising: 상기 확인 결과, 상기 헤더파일 캐시에 상기 헤더 파일이 존재하지 않으면, 상기 공유 디렉터리에 접근하여 상기 헤더 파일을 획득하고, 상기 획득된 헤더 파일을 상기 헤더파일 캐시에 복사하는 것을 특징으로 하는 분산 컴파일 방법.If the header file does not exist in the header file cache, accesses the shared directory to obtain the header file, and copies the obtained header file to the header file cache. . 삭제delete 제5항에 있어서,6. The method of claim 5, 상기 헤더 파일에 대한 상기 서버 컴퓨터 내 절대 경로를 키로 하고, 상기 헤더파일 캐시의 절대 경로를 원소로 하는 캐싱 해시를 생성하는 단계를 더 포함하는 것을 특징으로 하는 분산 컴파일 방법.Further comprising the step of generating a caching hash using the absolute path in the server computer for the header file as a key and with the absolute path of the header file cache as an element. 소스 파일을 저장하는 서버 컴퓨터; 및A server computer storing source files; And 상기 소스 파일이 저장된 디렉터리를 공유 디렉터리로 설정하고, 상기 소스 파일 중 할당된 소스 파일의 헤더 파일 정보를 획득하며, 상기 공유 디렉터리에 접근하기에 앞서서 상기 헤더 파일 정보에 대응하는 헤더 파일이 헤더파일 캐시에 존재하는지 확인하고, 확인 결과, 상기 헤더파일 캐시에 상기 헤더 파일이 존재하면, 상기 헤더파일 캐시로부터 상기 헤더 파일을 획득한 후 상기 헤더 파일을 이용하여 상기 소스 파일을 전처리하며, 컴파일러를 통해 상기 전처리된 소스 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 적어도 하나의 원격 컴퓨터;A header file corresponding to the header file information is stored in a header file cache before accessing the shared directory, and a header file corresponding to the header file information is stored in the header file cache, And if the header file exists in the header file cache as a result of the check, acquires the header file from the header file cache, preprocesses the source file using the header file, At least one remote computer for performing distributed compilation on a preprocessed source file to create an object file in the shared directory; 를 포함하는 분산 컴파일 시스템.Lt; / RTI > 제8항에 있어서,9. The method of claim 8, 상기 서버 컴퓨터에서 상기 목적 파일에 대한 링크 작업을 수행하는 것을 특징으로 하는 분산 컴파일 시스템.And the server computer performs a link operation on the object file. 제8항에 있어서,9. The method of claim 8, 상기 서버 컴퓨터와 상기 원격 컴퓨터는 네트워크 드라이브 방식으로 연결하는 것을 특징으로 하는 분산 컴파일 시스템.Wherein the server computer and the remote computer are connected in a network drive manner. 제8항에 있어서,9. The method of claim 8, 상기 서버 컴퓨터는, 상기 분산 컴파일 과정에서 오류가 발생한 경우, 오류가 발생한 분산 컴파일 과정을 다시 수행하는 것을 특징으로 하는 분산 컴파일 시스템.Wherein the server computer performs a distributed compilation process in which an error occurs when an error occurs in the distributed compilation process. 제8항에 있어서,9. The method of claim 8, 상기 원격 컴퓨터는, The remote computer comprising: 상기 확인 결과, 상기 헤더파일 캐시에 상기 헤더 파일이 존재하지 않으면, 상기 공유 디렉터리에 접근하여 상기 헤더 파일을 획득하고, 상기 획득된 헤더 파일을 상기 헤더파일 캐시에 복사하는 것을 특징으로 하는 분산 컴파일 시스템. If the header file does not exist in the header file cache, accesses the shared directory to obtain the header file, and copies the obtained header file to the header file cache. .
KR1020080055345A 2008-06-12 2008-06-12 System and method for distributed compiling KR101522881B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080055345A KR101522881B1 (en) 2008-06-12 2008-06-12 System and method for distributed compiling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080055345A KR101522881B1 (en) 2008-06-12 2008-06-12 System and method for distributed compiling

Publications (2)

Publication Number Publication Date
KR20090129203A KR20090129203A (en) 2009-12-16
KR101522881B1 true KR101522881B1 (en) 2015-05-26

Family

ID=41689323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080055345A KR101522881B1 (en) 2008-06-12 2008-06-12 System and method for distributed compiling

Country Status (1)

Country Link
KR (1) KR101522881B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489850A (en) * 2019-08-13 2019-11-22 东莞市纮萦服饰有限公司 A kind of flower pattern Compilation Method
KR102193822B1 (en) * 2020-09-24 2020-12-22 넷마블 주식회사 Distributed compile system implementing blockchain rewards

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060095091A (en) * 2005-02-25 2006-08-30 삼성전자주식회사 Improved compiling method and apparatus
KR20060110733A (en) * 2003-08-21 2006-10-25 마이크로소프트 코포레이션 System and methods for synchronizing computer systems through an intermediary file system share or device
KR20060121074A (en) * 2005-05-23 2006-11-28 (주)주빅스테크놀러지 Hybrid peer to peer network intelligent distributed compiler system and method thereof, and computer readable recording medium on which a program therefor is recorded
KR20070027093A (en) * 2005-08-29 2007-03-09 삼성전자주식회사 Compiling method using the peer to peer file sharing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060110733A (en) * 2003-08-21 2006-10-25 마이크로소프트 코포레이션 System and methods for synchronizing computer systems through an intermediary file system share or device
KR20060095091A (en) * 2005-02-25 2006-08-30 삼성전자주식회사 Improved compiling method and apparatus
KR20060121074A (en) * 2005-05-23 2006-11-28 (주)주빅스테크놀러지 Hybrid peer to peer network intelligent distributed compiler system and method thereof, and computer readable recording medium on which a program therefor is recorded
KR20070027093A (en) * 2005-08-29 2007-03-09 삼성전자주식회사 Compiling method using the peer to peer file sharing

Also Published As

Publication number Publication date
KR20090129203A (en) 2009-12-16

Similar Documents

Publication Publication Date Title
US11388251B2 (en) Providing access to managed content
JP4463661B2 (en) Computer system, computer, database access method and database system
US8458209B2 (en) Virtual world query response system
KR100330576B1 (en) System and method for locating pages on the world wide web and locating documents from a network of computers
US7092971B2 (en) Prefetch appliance server
US20180349430A1 (en) Client-driven commit of distributed write transactions in a database environment
US20060277196A1 (en) Data management system, data server, data management method and storage medium thereof
US7958511B1 (en) Mechanism for estimating the computing resources needed to execute a job
CN103714073A (en) Method and device for querying data
JP2008071035A (en) Data management system and data management method
CN103299299A (en) Highly adaptable query optimizer search space generation process
KR101919771B1 (en) Optimization technique for database application
CN101568919A (en) Single view of data in a networked computer system with distributed storage
US20090198703A1 (en) Intelligent data storage system
WO2007035653A2 (en) Providing direct access to distributed managed content
JP2007025785A (en) Database processing method, system, and program
US20080270594A1 (en) Method and system of separate file storage locations as unified file storage
KR101522881B1 (en) System and method for distributed compiling
US7284014B2 (en) Pre-fetch computer system
CA2470093A1 (en) Preparing associated files for storage in a server
US20230214391A1 (en) Metadata search via n-gram index
CN111488157A (en) Server installation system and method
US20030115172A1 (en) Electronic file management
US6976040B2 (en) System and method of data-management and data-management program
US7412456B2 (en) System and method for improved exposure of database schema information

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee