首页 / 专利库 / 银行与财务事项 / 截止时间 / 스냅샷 이미지를 이용한 부팅 장치 및 방법

스냅샷 이미지를 이용한 부팅 장치 및 방법

阅读:899发布:2024-02-11

专利汇可以提供스냅샷 이미지를 이용한 부팅 장치 및 방법专利检索,专利查询,专利分析的服务。并且PURPOSE: A booting device using a snapshot image and a method thereof are provided to selectively compress and store a snapshot image by a block unit in case of snapshot boot, thereby reducing the size of the snapshot image. CONSTITUTION: An image compressing unit(102) divides a generated snapshot image into blocks. The image compressing unit determines whether to compress each block based on at least one of decompression time, loading time, and deadline time, a compression rate of each block. The image compressing unit selectively compresses each block. A booting unit(103) loads a first block when a snapshot boot is executed based on the snapshot image. The booting unit loads a second block while decompressing the first block.,下面是스냅샷 이미지를 이용한 부팅 장치 및 방법专利的具体信息内容。

  • 스냅샷 부트(snapshot boot)를 위한 스냅샷 이미지(snapshot image)를 생성하는 이미지 생성부; 및
    생성된 스냅샷 이미지를 다수의 블록(block)들로 분할하고, 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 기초하여 각 블록의 압축 여부를 결정하고, 각 블록을 선택적으로 압축하는 이미지 압축부; 및
    상기 스냅샷 이미지에 기초한 스냅샷 부트가 실행될 때, 제 1 블록을 로딩하고, 로딩된 제 1 블록의 압축을 해제함과 동시에 제 2 블록을 로딩하는 부팅부; 를 포함하는 스냅샷 이미지를 이용한 부팅 장치.
  • 제 1 항에 있어서, 상기 이미지 압축부는
    상기 블록이 부팅 초기에 반드시 로딩되어야 하는 필수 블록인지 여부를 판단하는 스냅샷 이미지를 이용한 부팅 장치.
  • 제 2 항에 있어서, 상기 이미지 압축부는
    상기 블록이 상기 필수 블록인 경우,
    상기 블록의 압축해제시간 및 마지막으로 로딩될 블록의 로딩시간을 비교해서 상기 압축 여부를 결정하는 스냅샷 이미지를 이용한 부팅 장치.
  • 제 2 항에 있어서, 상기 이미지 압축부는
    상기 블록이 상기 필수 블록인 경우,
    상기 블록의 압축해제시간 및 마지막으로 로딩될 블록의 로딩시간을 비교하고, 상기 블록의 압축률 및 설정된 임계값을 비교해서 상기 압축 여부를 결정하는 스냅샷 이미지를 이용한 부팅 장치.
  • 제 2 항에 있어서, 상기 이미지 압축부는
    상기 블록이 상기 필수 블록이 아닌 경우,
    상기 블록의 압축해제시간과 상기 블록의 로딩시간의 합 및 상기 블록의 데드라인시간을 비교해서 상기 압축 여부를 결정하는 스냅샷 이미지를 이용한 부팅 장치.
  • 제 2 항에 있어서, 상기 이미지 압축부는
    상기 블록이 상기 필수 블록이 아닌 경우,
    상기 블록의 압축해제시간과 상기 블록의 로딩시간의 합 및 상기 블록의 데드라인시간을 비교하고, 상기 블록의 압축률 및 설정된 임계값을 비교해서 상기 압축 여부를 결정하는 스냅샷 이미지를 이용한 부팅 장치.
  • 스냅샷 이미지(snapshot image)에 기초한 스냅샷 부트(snapshot boot)가 가능한 컴퓨팅 장치에 있어서,
    다수의 프로세싱 코어;
    휘발성의 제 1 메모리; 및
    비휘발성의 제 2 메모리; 를 포함하며,
    상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어가, 상기 제 1 메모리 및/또는 상기 각각의 프로세싱 코어의 상태 정보를 포함하는 스냅샷 이미지를 생성하고, 생성된 스냅샷 이미지를 다수의 블록으로 분할하고, 분할된 각각의 블록을 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 따라 선택적으로 압축하여 상기 제 2 메모리에 저장하고,
    제 1 프로세싱 코어가, 상기 제 2 메모리에 저장된 각각의 블록을 상기 제 1 메모리에 로딩하고,
    제 2 프로세싱 코어가, 상기 제 1 프로세싱 코어의 로딩 동작과 병렬적으로, 상기 제 1 메모리로 로딩된 각각의 블록의 압축해제를 실행하는 컴퓨팅 장치.
  • 제 7 항에 있어서, 상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어는
    상기 블록이 부팅 초기에 반드시 로딩되어야 하는 필수 블록인지 여부를 판단하는 컴퓨팅 장치.
  • 제 8 항에 있어서, 상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어는
    상기 블록이 상기 필수 블록인 경우,
    상기 블록의 압축해제시간 및 마지막으로 로딩될 블록의 로딩시간을 비교해서 상기 압축 여부를 결정하는 컴퓨팅 장치.
  • 제 8 항에 있어서, 상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어는
    상기 블록이 상기 필수 블록인 경우,
    상기 블록의 압축해제시간 및 마지막으로 로딩될 블록의 로딩시간을 비교하고, 상기 블록의 압축률 및 설정된 임계값을 비교해서 상기 압축 여부를 결정하는 컴퓨팅 장치.
  • 제 8 항에 있어서, 상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어는
    상기 블록이 상기 필수 블록이 아닌 경우,
    상기 블록의 압축해제시간과 상기 블록의 로딩시간의 합 및 상기 블록의 데드라인시간을 비교해서 상기 압축 여부를 결정하는 컴퓨팅 장치.
  • 제 8 항에 있어서, 상기 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어는
    상기 블록이 상기 필수 블록이 아닌 경우,
    상기 블록의 압축해제시간과 상기 블록의 로딩시간의 합 및 상기 블록의 데드라인시간을 비교하고, 상기 블록의 압축률 및 설정된 임계값을 비교해서 상기 압축 여부를 결정하는 컴퓨팅 장치.
  • 스냅샷 부트(snapshot boot)를 위한 스냅샷 이미지(snapshot image)를 생성하는 단계;
    생성된 스냅샷 이미지를 다수의 블록(block)들로 분할하는 단계;
    각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 기초하여 각 블록의 압축 여부를 결정하는 단계;
    상기 결정 결과에 따라, 각 블록을 선택적으로 압축하는 단계; 및
    상기 스냅샷 이미지에 기초한 스냅샷 부트가 실행될 때, 제 1 블록을 로딩하고, 로딩된 제 1 블록의 압축을 해제함과 동시에 제 2 블록을 로딩하는 단계; 를 포함하는 스냅샷 이미지를 이용한 부팅 방법.
  • 제 13 항에 있어서, 상기 압축 여부를 결정하는 단계는
    상기 블록이 부팅 초기에 반드시 로딩되어야 하는 필수 블록인지 여부를 판단하는 단계;
    상기 블록이 상기 필수 블록인 경우, 상기 블록의 압축해제시간이 마지막으로 로딩될 블록의 로딩시간 이하인지 여부를 판단하는 단계;
    상기 블록의 압축해제시간이 마지막으로 로딩될 블록의 로딩시간 이하인 경우, 상기 블록의 압축률이 설정된 임계값 이상인지 여부를 판단하는 단계; 및
    상기 블록의 압축률이 설정된 임계값 이상인 경우, 상기 블록을 압축하는 단계; 를 포함하는 스냅샷 이미지를 이용한 부팅 방법.
  • 제 13 항에 있어서, 상기 압축 여부를 결정하는 단계는
    상기 블록이 부팅 초기에 반드시 로딩되어야 하는 필수 블록인지 여부를 판단하는 단계;
    상기 블록이 상기 필수 블록이 아닌 경우, 상기 블록의 압축해제시간과 상기 블록의 로딩시간의 합이 상기 블록의 데드라인시간 이하인지 여부를 판단하는 단계;
    상기 합이 상기 블록의 데드라인시간 이하인 경우, 상기 블록의 압축률이 설정된 임계값 이상인지 여부를 판단하는 단계; 및
    상기 블록의 압축률이 설정된 임계값 이상인 경우, 상기 블록을 압축하는 단계; 를 포함하는 스냅샷 이미지를 이용한 부팅 방법.
  • 说明书全文

    스냅샷 이미지를 이용한 부팅 장치 및 방법{Apparatus and method for booting based on a snapshot image}

    시스템의 부팅 시간을 단축시키기 위한 기술과 관련된다.

    임베디드 기기의 성능이 높아짐에 따라, 최근에는 다양간 기능을 지원하는 이른바 Rich OS(Windows Phone OS, IPhone OS, Android/Linux)가 임베디드 기기에 사용되고 있다.

    Rich OS가 지원하는 기능은 점점 늘어나고 있는 추세이고, 이에 따라 OS의 커널 사이즈 및 소프트웨어 플랫폼의 크기 역시 커지고 있는 실정이다. 큰 커널 사이즈 및 소프트웨어 플랫폼은 느린 시스템 부팅을 야기할 수 있다. 커널 사이즈 및 소프트웨어 플랫폼의 크기가 커질수록 초기화 루틴과 파일 로딩이 많아지기 때문이다.

    느린 시스템 부팅을 해결하기 위한 대표적인 방법으로는 Hibernation 및 Suspend-To-Disk 등이 있다. Hibernation 및 Suspend-To-Disk 방법에 의하면, 현재 RAM의 상태 및 CPU/Device의 상태 정보를 디스크(Disk)나 플래시 메모리(Flash memory) 등의 저장장치(Non-volatile storage)에 저장하고 종료한다. 그리고 다음 부팅 때에는 저장된 상태 정보를 메모리의 원래의 위치로 복구함으로써 빠른 부팅이 이루어지도록 한다. 이때 저장되는 상태 정보는 스냅샷 이미지(snopshot image)로 불리기도 한다.

    스냅샷 이미지의 크기 및 스냅샷 이미지를 이용한 부팅 시간을 줄일 수 있는 장치 및 방법이 제공된다.

    본 발명의 일 양상에 따른 장치는 스냅샷 부트(snapshot boot)를 위한 스냅샷 이미지(snapshot image)를 생성하는 이미지 생성부, 생성된 스냅샷 이미지를 다수의 블록(block)들로 분할하고, 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 기초하여 각 블록의 압축 여부를 결정하고, 각 블록을 선택적으로 압축하는 이미지 압축부, 및 스냅샷 이미지에 기초한 스냅샷 부트가 실행될 때, 제 1 블록을 로딩하고, 로딩된 제 1 블록의 압축을 해제함과 동시에 제 2 블록을 로딩하는 부팅부를 포함할 수 있다.

    본 발명의 다른 양상에 따른 장치는 다수의 프로세싱 코어, 휘발성의 제 1 메모리, 및 비휘발성의 제 2 메모리; 를 포함하며, 다수의 프로세싱 코어 중 어느 하나의 프로세싱 코어가, 제 1 메모리 및/또는 각각의 프로세싱 코어의 상태 정보를 포함하는 스냅샷 이미지를 생성하고, 생성된 스냅샷 이미지를 다수의 블록으로 분할하고, 분할된 각각의 블록을 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 따라 선택적으로 압축하여 상기 제 2 메모리에 저장하고, 제 1 프로세싱 코어가, 제 2 메모리에 저장된 각각의 블록을 상기 제 1 메모리에 로딩하고, 제 2 프로세싱 코어가, 제 1 프로세싱 코어의 로딩 동작과 병렬적으로, 제 1 메모리로 로딩된 각각의 블록의 압축해제를 실행하는 것이 가능하다.

    본 발명의 일 양상에 따른 방법은 스냅샷 부트(snapshot boot)를 위한 스냅샷 이미지(snapshot image)를 생성하는 단계, 생성된 스냅샷 이미지를 다수의 블록(block)들로 분할하는 단계, 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간, 및 각 블록의 압축률 중 적어도 하나에 기초하여 각 블록의 압축 여부를 결정하는 단계, 상기 결정 결과에 따라, 각 블록을 선택적으로 압축하는 단계, 및 스냅샷 이미지에 기초한 스냅샷 부트가 실행될 때, 제 1 블록을 로딩하고, 로딩된 제 1 블록의 압축을 해제함과 동시에 제 2 블록을 로딩하는 단계를 포함할 수 있다.

    개시된 내용에 따르면, 스냅샷 부트에 있어서 블록 단위로 선택적 압축을 한 후 스냅샷 이미지를 저장하기 때문에 스냅샷 이미지의 크기를 줄일 수 있다.

    또한 스냅샷 이미지를 점진적으로 로딩할 때 그 로딩과 압축해제가 동시에 수행될 수 있기 때문에 부팅 시간을 더욱 단축시킬 수가 있다.

    도 1은 본 발명의 일 실시예에 따른 스냅샷 이미지(snapshot image)를 이용한 부팅 장치를 도시한다.
    도 2는 본 발명의 일 실시예에 따른 이미지 압축 장치를 도시한다
    도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 부팅 장치의 동작을 설명하기 위한 도면이다.
    도 4는 본 발명의 일 실시예에 따른 컴퓨팅 장치를 도시한다.
    도 5는 본 발명의 일 실시예에 따른 스냅샷 이미지를 이용한 부팅 방법을 도시한다.
    도 6은 본 발명의 다른 실시예에 따른 스냅샷 이미지를 이용한 부팅 방법을 도시한다.

    이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.

    도 1은 본 발명의 일 실시예에 따른 스냅샷 이미지(snapshot image)를 이용한 부팅 장치를 도시한다.

    도 1을 참조하면, 부팅 장치(100)는 운영 체제(OS, operating system)를 필요로 하는 각종 단말에 적용될 수 있다. 예를 들어, 단말은 전원을 켰을 때 운영 체제의 커널 및 초기화 루틴의 로딩을 필요로 하는 컴퓨터, 스마트 폰, 디지털 TV, mp3 플레이어 등이 될 수 있다.

    부팅 장치(100)는 스냅샷 이미지를 이용하여 부팅을 실행할 수 있다. 스냅샷 이미지는 초기 부팅이 완료되었을 때의 시스템의 상태 정보가 될 수 있다. 시스템의 상태 정보는 단말에 포함된 프로세서, 메모리 및 입/출력 장치 등의 상태 정보가 될 수 있다. 예를 들어, 단말의 부팅이 완료된 직후에, 부팅 장치(100)는 스냅샷 이미지를 생성한다. 생성된 스냅샷 이미지는 메모리(110)의 특정 영역에 존재할 수 있다. 부팅 장치(100)는 생성된 스냅샷 이미지를 디스크(120)에 저장한다. 디스크(120)는 메모리(110)와 달리 전원 공급이 중단되어도 정보를 저장할 수 있다. 단말이 재기동될 때, 부팅 장치(100)는 디스크(120)에 저장된 스냅샷 이미지를 메모리(110)에 로딩함으로써 빠른 부팅이 수행되도록 하는 것이 가능하다.

    부팅 장치(100)는 점진적으로(incrementally) 스냅샷 이미지를 로딩할 수 있다. 스냅샷 이미지는 필수 데이터와 비필수 데이터로 구분될 수 있다. 필수 데이터는 부팅시에 반드시 로딩되어야 하는 데이터를 말하고, 비필수 데이터는 부팅시에 반드시 로딩되지 않아도 되는 데이터를 말한다. 예를 들어, 비필수 데이터는 로딩되지 않아도 사용자가 단말을 사용하는데는 큰 지장이 없고 사용자는 단말이 부팅된 것으로 인식할 수 있다. 스냅샷 이미지를 통해 부팅이 실행될 때, 부팅 장치(100)는 스냅샷 이미지 중 필수 데이터들을 먼저 로딩하고 비필수 데이터들은 이후에 백그라운드 형식으로 로딩하는 것이 가능하다.

    부팅 장치(100)는 이미지 생성부(101), 이미지 압축부(102), 및 부팅부(103)를 포함할 수 있다.

    이미지 생성부(101)는 스냅샷 이미지를 생성한다. 스냅샷 이미지란 전술한 바와 같이 빠른 부팅을 위해 생성된 부팅 직후의 시스템 상태 정보가 될 수 있다. 본 실시예에 따라, 스냅샷 이미지를 통한 부팅을 스냅샷 부트 또는 스냅샷 부팅이라고 지칭하기로 한다.

    이미지 압축부(102)는 생성된 스냅샷 이미지를 다수의 블록(block)들로 분할한다. 생성된 스냅샷 이미지는 메모리(110)에 존재할 수 있다. 스냅샷 이미지는 메모리(110)의 저장 단위인 페이지(page)로 구분될 수 있다. 블록은 몇 개의 페이지로 이루어질 수 있다. 예를 들어, 도 3a를 참조하면, 생성된 스냅샷 이미지(300)가 block #0 내지 block #n과 같은 다수의 블록들로 분할되는 것이 가능하다.

    또한 이미지 압축부(102)는 각각의 블록에 대해 압축 여부를 결정한다. 압축(compression)이란 데이터의 저장 공간 또는 데이터의 전송 시간을 줄이기 위해 데이터의 크기를 줄이는 것을 말한다. 압축 여부의 결정 기준은 각 블록의 압축해제시간, 각 블록의 로딩시간, 각 블록의 데드라인시간 및 각 블록의 압축률 등이 될 수 있다. 블록의 압축해제시간은 어떤 블록을 압축했다고 가정했을 때 그 압축을 해제하는데 소요되는 시간을 의미한다. 블록의 로딩시간은 스냅샷 부팅시에 그 블록이 디스크(120)에서 메모리(110)로 로딩되는데 소요되는 시간을 의미한다. 전술하였듯이, 부팅 장치(100)는 스냅샷 이미지를 블록 단위로 점진적 로딩을 수행할 수 있다. 블록의 데드라인시간은 블록의 로딩을 완료해야만 하는 시간을 의미한다. 다시 말해, 각 블록은 단말의 정상 동작을 위해 데드라인시간전까지 로딩이 완료되어야 한다. 블록의 압축률은 데이터의 크기를 줄일 수 있는 정도를 의미한다.

    또한 이미지 압축부(102)는 각각의 블록을 선택적으로 압축한다. 예를 들어, 이미지 압축부(102)는 각 블록에 대해 압축 여부를 결정한 후, 압축하기로 결정된 블록은 압축을 하고, 압축을 하지 않기로 결정된 블록은 압축을 하지 아니할 수 있다.

    또한 이미지 압축부(102)는 선택적으로 압축된 블록들을 포함하는 스냅샷 이미지를 단말의 전원이 오프되기 전에 디스크(120)에 저장한다.

    부팅부(103)는 디스크(120)에 저장된 스냅샷 이미지를 이용하여 부팅을 실행한다. 예를 들어, 부팅부(103)는 디스크(120)에 저장된 스냅샷 이미지를 메모리(110)로 로딩할 수 있다. 이때, 부팅부(103)는 블록 단위로 스냅샷 이미지를 로딩할 수 있다.

    또한, 부팅부(103)는 어느 하나의 블록을 로딩함과 동시에 다른 하나의 블록의 압축을 해제할 수 있다. 예를 들어, 도 3d를 참조하면, 블록 단위로 분할된 스냅샷 이미지(300)가 디스크(120)에 저장되어 있는 경우, 부팅부(103)는 첫 번째 사이클에서 block #0을 메모리(110)로 로딩할 수 있다. 그리고 부팅부(103)는 두 번째 사이클에서 block #1을 로딩하고 로딩과 동시에 먼저 로딩되었던 block #0의 압축을 (만약, block #0가 압축된 블록이라면) 해제할 수 있다. 단말이 여러 개의 프로세싱 코어를 갖는 경우, 부팅부(103)는 여러 개의 프로세싱 코어를 모두 활성화시켜서 부팅이 이루어지도록 하는 것이 가능하다.

    도 2는 본 발명의 일 실시예에 따른 이미지 압축 장치를 도시한다. 이것은 도 1의 이미지 압축부(102)에 관한 일 예가 될 수 있다.

    도 2를 참조하면, 이미지 압축 장치(200)는 분할부(201), 결정부(202), 및 선택적 압축부(203)를 포함할 수 있다.

    분할부(201)는 생성된 스냅샷 이미지를 다수의 블록으로 분할한다. 블록은 여러 개의 페이지로 이루어질 수 있다. 스냅샷 이미지의 압축 및 압축해제는 블록 단위로 이루어질 수 있다. 스냅샷 이미지의 저장 및 로딩 역시 블록 단위로 이루어질 수 있다. 분할부(201)는, 예컨대, 도 3a과 같이, 생성된 스냅샷 이미지(300)를 block #0 내지 block #n으로 분할하는 것이 가능하다.

    결정부(202)는 각 블록의 압축 여부를 결정한다.

    결정부(202)가 압축 여부를 결정하는 방법의 일 예는 도 3b와 같다. 도 3b를 참조하면, 결정부(202)는 블록이 필수 블록인지 여부를 판단한다. 블록이 필수 블록인 경우, 결정부(202)는 블록의 압축해제시간과 마지막으로 로딩될 블록의 로딩시간을 비교해서 압축 여부를 결정한다.

    예컨대, 도 3b에서, 결정부(202)는 block #0의 압축 여부를 결정한다. 결정부(202)는 block #0가 필수 블록인지 여부를 판단한다. 필수 블록이란 점진적 스냅샷 부트에서 초기에 반드시 로딩이 완료되어야만 하는 데이터 페이지를 포함하는 블록이 될 수 있다. block #0가 필수 블록인 경우, 결정부(202)는 block #0의 압축해제시간과 마지막으로 로딩될 블록인 block #n의 로딩시간을 비교한다. 만약, block #0의 압축해제시간이 마지막으로 로딩될 블록인 block #n의 로딩시간보다 짧은 경우, 결정부(202)는 block #0의 압축을 결정한다. 또한 추가적으로, block #0의 압축해제시간이 마지막으로 로딩될 블록인 block #n의 로딩시간보다 짧은 경우, 결정부(202)는 block #0의 압축률이 정해진 임계값 이상이 될 수 있는지 판단할 수 있다. 판단 결과 정해진 임계값 이상으로 압축이 가능하다면 block #0의 압축을 결정할 수 있다.

    결정부(202)가 압축 여부를 결정하는 방법의 다른 예는 도 3c와 같다. 도 3c를 참조하면, 결정부(202)는 블록이 필수 블록인지 여부를 판단한다. 블록이 비필수 블록인 경우, 결정부(202)는 블록의 압축해제시간 및 로딩시간의 합과 그 블록의 데드라인시간을 비교해서 압축 여부를 결정한다.

    예컨대, 도 3c에서, 결정부(202)는 block #1의 압축 여부를 결정한다. 결정부(202)는 block #1가 비필수 블록인지 여부를 판단한다. 비필수 블록이란 점진적 스냅샷 부트에서 초기에 반드시 로딩이 완료되지 않아도 되는 데이터 페이지를 포함하는 블록이 될 수 있다. 이러한 블록은 초기 부팅 이후에 백그라운드 형식으로 로딩될 수 있다. block #1가 비필수 블록인 경우, 결정부(202)는 block #1의 압축해제시간과 block #1의 로딩시간을 더한다. 그리고 더해진 시간과 block #1의 데드라인시간을 비교한다. 만약, 더해진 시간이 데드라인시간보다 짧은 경우, 결정부(202)는 block #1의 압축을 결정한다. 또한 추가적으로, 더해진 시간이 데드라인시간보다 짧은 경우, 결정부(202)는 block #1의 압축률이 정해진 임계값 이상이 될 수 있는지 판단할 수 있다. 판단 결과 정해진 임계값 이상으로 압축이 가능하다면 block #1의 압축을 결정할 수 있다.

    다시 도 2에서, 선택적 압축부(203)는 결정부(202)의 결정에 따라 각각의 블록을 압축하거나 압축을 하지 아니한다. 본 실시예에 따라 선택적 압축이란 이와 같이 어떤 기준에 따라 압축을 하거나 하지 않는 것을 의미할 수 있다.

    또한 선택적 압축부(203)는 각각의 블록을 비휘발성 메모리인 디스크(120, 도 1 참조)에 저장한다.

    도 3a 내지 도 3d는 본 발명의 일 실시예에 따른 부팅 장치의 동작을 설명하기 위한 도면이다.

    도 3a를 참조하면, 생성된 스냅샷 이미지(300)는 다수의 블록으로 분할될 수 있다. 예컨대, 생성된 스냅샷 이미지(300)는 block #0 내지 block #n을 포함할 수 있다.

    도 3b를 참조하면, 점진적 스냅샷 부트에서 초기에 반드시 로딩이 완료되어야만 하는 필수 블록은 블록의 압축해제시간, 마지막 블록의 로딩시간에 따라 압축 여부가 결정될 수 있다. 예컨대, block #0가 필수 블록인 경우, block #0의 압축해제시간이 마지막으로 로딩될 블록인 block #n의 로딩시간보다 짧은지 여부가 판단될 수 있다. 만약 block #0의 압축해제시간이 마지막으로 로딩될 블록인 block #n의 로딩시간보다 짧은 경우, block #0는 압축될 블록으로 결정될 수 있다.

    도 3c를 참조하면, 점진적 스냅샷 부트에서 백그라운드 형식으로 로딩이 되어도 무방한 비필수 블록은 블록의 압축해제시간 및 로딩시간의 합과 블록의 데드라인시간에 따라 압축 여부가 결정될 수 있다. 예컨대, block #1가 비필수 블록인 경우, block #1의 압축해제시간과 block #1의 로딩시간의 합이 block #1의 데드라인시간보다 짧은지 여부가 판단될 수 있다. 만약, block #1의 압축해제시간과 block #1의 로딩시간의 합이 block #1의 데드라인시간보다 짧은 경우, block #1은 압축될 블록으로 결정될 수 있다.

    도 3d를 참조하면, 각 블록의 로딩과 압축해제는 병렬적으로 이루어질 수 있다. 시간 t에서 block #0이 로딩된다. 시간 t+1에서 block #1이 로딩된다. 그리고 block #1의 로딩과 동시에 block #0의 압축이 해제될 수 있다. 만약 block #0가 압축된 블록이 아니라면 압축 해제 동작은 생략될 수도 있음은 물론이다. 마찬가지로 시간 t+2에서 block #2가 로딩됨과 동시에 block #1의 압축이 해제될 수 있다. 이러한 병렬 처리는 다수의 프로세싱 코어를 갖는 단말에서 이루어질 수 있다. 예컨대, 독립적으로 구동되는 두 개의 프로세싱 코어 중 하나의 프로세싱 코어는 블록의 로딩을 처리하고 다른 프로세싱 코어는 블록의 압축 해제를 처리하는 것이 가능하다. 본 실시예에 따른 부팅 장치(100, 도 1 참조)는 스냅샷 부트가 실행될 때 시스템에 포함된 프로세싱 코어를 적어도 2개 이상 활성화시키는 것이 가능하다.

    도 4는 본 발명의 일 실시예에 따른 컴퓨팅 장치를 도시한다. 이것은 본 실시예에 따른 부팅 장치가 적용된 단말의 일 예가 될 수 있다.

    도 4를 참조하면, 컴퓨팅 장치(400)는 코어부(401), 메인 메모리(402), 및 디스크(403)를 포함할 수 있다.

    코어부(401)는 다수의 프로세싱 코어를 포함한다. 각각의 프로세싱 코어는 어떠한 작업을 병렬적으로 처리할 수 있다.

    컴퓨팅 장치(400)에 전원이 인가되면 컴퓨팅 장치(400)가 부팅된다. 처음의 부팅은 스냅샷 이미지에 기초하지 아니한 일반적 부팅이 될 수 있다.

    처음 부팅이 완료되면 core #0은 스냅샷 이미지를 생성한다. 예를 들어, core #0가 부팅이 완료된 직후에 코어부(401) 및 메인 메모리(402)의 상태 정보를 생성하는 것이 가능하다. 생성된 스냅샷 이미지는 휘발성의 메인 메모리(402)의 특정 영역에 임시로 저장된다.

    또한 core #0은 생성된 스냅샷 이미지를 다수의 블록으로 나누고 각 블록의 압축 여부를 결정한다. 그리고 결정 결과에 따라 각 블록을 선택적으로 압축한 후 비휘발성의 디스크(403)에 저장한다.

    컴퓨팅 장치(400)의 전원 공급이 중단된 후, 다시 전원이 인가되면 컴퓨팅 장치(400)는 디스크(403)에 저장된 스냅샷 이미지에 따라 부팅된다.

    스냅샷 부팅이 실행되면, 본 실시예에 따른 부트 로더에 의해 적어도 core #0과 core #1이 활성화된다. 부트 로더의 예는 도 1의 부팅부(103)가 될 수 있다.

    활성화된 core #0과 core #1은 스냅샷 이미지의 각 블록의 로딩과 압축 해제를 병렬적으로 처리한다. 예컨대, 첫 번째 사이클에서 core #0가 디스크(403)에서 첫 번째 블록을 메인 메모리(402)로 로딩한다. 그리고 두 번째 사이클에서 core #0은 디스크(403)에서 두 번째 블록을 메인 메모리(402)로 로딩하고 core #1은 메인 메모리(402)에 로딩된 첫 번째 블록이 압축된 블록인지 살펴보고 압축된 블록이면 그 압축을 해제하는 것이 가능하다.

    도 5는 본 발명의 일 실시예에 따른 스냅샷 이미지를 이용한 부팅 방법을 도시한다. 이것은 본 실시예에 따라 스냅샷 이미지를 선택적으로 압축한 후 저장하는 방법에 관한 일 예가 될 수 있다.

    도 1 내지 도 5를 참조하면, 먼저, 부팅 장치(100)가 스냅샷 이미지를 생성한다(501). 예컨대, 도 1의 이미지 생성부(101)가 도 4의 컴퓨팅 장치(400)의 부팅 직후 상태 정보를 포함하는 스냅샷 이미지를 생성하는 것이 가능하다.

    그리고 부팅 장치(100)가 생성된 스냅샷 이미지를 다수의 블록으로 분할한다(502). 예컨대, 도 2의 분할부(201)가, 도 3a와 같이, 스냅샷 이미지를 다수의 블록으로 분할하는 것이 가능하다.

    그리고 부팅 장치(100)가 각 블록을 압축할 것인지 여부를 결정한다(503). 예컨대, 도 2의 결정부(202)가, 도 3b 및 도 3c와 같이, k 번째 블록을 압축할 것인지 말것인지를 결정하는 것이 가능하다.

    만약, k 번째 블록을 압축할 것으로 결정한 경우, 부팅 장치(100)가 k 번째 블록을 압축하고(504), 그렇지 아니한 경우 k를 증가시켜 다음 블록에 대해 위 과정을 반복한다.

    그리고 부팅 장치(100)가 k 번째 블록이 마지막 블록인지 여부를 판단한다(505). 만약 마지막 블록이면, 부팅 장치(100)는 블록 단위로 선택적 압축된 스냅샷 이미지를 도 4의 디스크(403)에 저장하고(506), 그렇지 아니한 경우 k를 증가시켜 다음 블록에 대해 위 과정을 반복한다.

    도 6은 본 발명의 다른 실시예에 따른 스냅샷 이미지를 이용한 부팅 방법을 도시한다. 이것은 본 실시예에 따라 스냅샷 이미지를 점진적으로 로딩하되 로딩과 압축해제를 동시에 수행하는 방법에 관한 일 예가 될 수 있다.

    도 1 내지 도 4 및 도 6을 참조하면, 먼저 부팅 장치(100)가 스냅샷 부트에 따라 k 번째 블록을 로딩한다(601). 예컨대, 도 1의 부팅부(103)가 도 4의 코어부(401)의 모든 코어를 활성화시켜서 core #0에 의해 디스크(403)에 있는 k 번째 블록이 메모리(402)로 로딩되는 것이 가능하다.

    그리고 부팅 장치(100)가 로딩된 블록이 압축된 블록인지 여부를 판단한다(602). 압축된 블록이 아니면 k를 증가시켜서 다음 블록을 로딩하고, 압축된 블록인 경우 k 번째 블록의 압축을 해제함과 동시에 k+1 번째 블록을 로딩한다(603). 예컨대, 도 1의 부팅부(103)가 도 4의 코어부(401)의 모든 코어를 활성화시켜서, 도 3d와 같이, core #0에 의해 k 번째 블록의 압축이 해제되고 core #1에 의해 k+1번째 블록이 로딩되는 것이 가능하다.

    그리고 부팅 장치(100)가 로딩된 블록이 마지막 블록인지 여부를 판단하고(604), 마지막 블록이 아닌 경우 k를 증가시켜서 다음 블록에 대해 위 과정을 수행한다.

    이상에서 살펴본 바와 같이, 개시된 장치 및 방법에 따르면, 스냅샷 부트에 있어서 블록 단위로 선택적 압축을 한 후 스냅샷 이미지를 저장하기 때문에 스냅샷 이미지의 크기를 줄일 수 있다. 또한 스냅샷 이미지를 점진적으로 로딩할 때 그 로딩과 압축해제가 동시에 수행될 수 있기 때문에 부팅 시간을 더욱 단축시킬 수가 있다.

    한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.

    컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.

    나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈