• 제목/요약/키워드: Garbage Collector

검색결과 27건 처리시간 0.024초

Cold 블록 영역과 hot 블록 영역의 주기적 교환을 통한 wear-leveling 향상 기법 (A wear-leveling improving method by periodic exchanging of cold block areas and hot block areas)

  • 장시웅
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2008년도 춘계종합학술대회 A
    • /
    • pp.175-178
    • /
    • 2008
  • 플래시 메모리에서 읽기 작업은 속도도 빠르고 제약이 없으나 데이터 변경 시에는 덮어쓰기(overwrite)가 되지 않아 해당 데이터를 새로운 영역에 쓰고 이전에 존재하던 데이터는 무효 시켜야한다. 무효화시킨 데이터는 가비지컬렉션을 통해 지움 연산을 수행해야 한다. 지역 접근성을 가지는 데이터에 대해 가비지컬렉션을 통해 클리어 시킬 대상 목록을 선정할 때 cost-benefit 방법을 사용하면 성능은 좋으나 wear-leveling이 나빠지는 문제점이 있다. 본 연구에서는 wear-leveling을 개선하기 위해 플래시 메모리를 hot 데이터 그룹들과 cold 데이터 그룹들의 다수의 그룹으로 분할한 후 데이터를 배치하고 주기적으로 hot 데이터 영역과 cold 데이터 영역을 교체함으로써 wear-leveling과 성능을 개선하였다.

  • PDF

GC-Tune을 이용한 Haskell 병렬 프로그램의 성능 조정 (Tuning the Performance of Haskell Parallel Programs Using GC-Tune)

  • 김화목;안형준;변석우;우균
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제23권8호
    • /
    • pp.459-465
    • /
    • 2017
  • 매니코어 기술에 힘입어 컴퓨터 하드웨어의 성능이 향상되고 있지만 그에 비례한 소프트웨어 성능 증가는 다소 미미한 실정이다. 함수형 언어는 병렬 프로그램의 성능을 향상시키는 대안 중 하나이다. 이러한 언어는 부수효과가 없는 순수한 수식을 통해 내재된 병렬성을 지원하기 때문이다. 함수형 언어인 Haskell은 모나드를 기반으로 하는 다양하고 쉬운 병렬 구조를 제공하기 때문에 병렬 프로그래밍에서 널리 사용된다. 하지만 Haskell로 작성된 병렬 프로그램의 성능 확장성은 코어 수가 증가함에 따라 변동이 큰 경향이 있다. 이는 프로그램 실행에 있어 가비지 컬렉션이 공간과 시간에 모두 영향을 미치는데 Haskell은 이러한 가비지 컬렉션을 사용하는 가상머신 위에서 실행되기 때문이라고 추정된다. 따라서 본 논문에서는 GC-Tune이라는 메모리 튜닝 도구를 사용하여 이 추정이 맞는지 검증하고 Haskell 병렬 프로그램의 성능 확장성을 높이는 방법을 모색한다. 병렬 Haskell 표절 검사 프로그램을 대상으로 실험한 결과 성능 확장성이 향상되었다. 특히 메모리 튜닝을 하지 않은 프로그램에 비해 속도 향상의 변동 범위가 39% 감소하였다.

플래시 파일시스템에서 wear-leveling 개선을 위한 블록 할당 정책 (A Block Allocation Policy to Enhance Wear-leveling in a Flash File System)

  • 장시웅
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2007년도 추계종합학술대회
    • /
    • pp.574-577
    • /
    • 2007
  • 디스크에서는 데이터가 변경되면 해당 영역에 겹쳐 쓰기를 수행하나 플래시 메모리에서는 겹쳐 쓰기가 수행되지 않아 데이터가 변경될 때 새로운 영역에 데이터를 갱신한다. 따라서 이전의 데이터는 쓸모없는 데이터가 되기 때문에 가비지 컬렉션을 통해 지움 연산을 수행하여 새로운 영역을 확보하게 된다. 지움(erase) 연산을 수행할 수 있는 회수가 플래시 메모리의 특성에 의해 일정 회수로 제한을 받게 되므로 플래시 메모리의 모든 블록은 고르게 쓰여 지고 지워져야 한다. 본 논문은 지역성을 가지는 접근에서 wear-leveling을 개선하기 위한 방법으로 hot 데이터와 cold 데이터를 서로 다른 뱅크에 저장하고 시간이 흐름에 따라 일정주기로 cold 뱅크와 hot 뱅크를 교환하는 CB-MB(Cost Benefit between Multi Bank) 방법을 제안하고 성능을 평가하였다. CB-MB는 uniform한 작업부하에 대해서는 다른 방법들과 유사한 성능을 보이는 반면 접근 지역성을 가지는 작업부하에 대해서는 상대적으로 월등한 성능을 제공하는 것으로 분석되었다.

  • PDF

접근 지역성을 가지는 작업부하에서 플래시 파일시스템의 wear-leveling 향상 기법 (A method for improving wear-leveling of flash file systems in workload of access locality)

  • 장시웅
    • 한국정보통신학회논문지
    • /
    • 제12권1호
    • /
    • pp.108-114
    • /
    • 2008
  • 플래시 메모리는 디스크와는 달리 덮어쓰기가 불가능하므로, 새로운 데이터는 새로운 영역에 갱신이 된다. 데이터가 빈번히 변경되면 새로운 영역을 확보하기 위해 가비지 컬렉션을 통하여 데이터를 지우게 되는데, 이때 지움(erase) 연산을 수행 할 수 있는 회수가 플래시 메모리의 특성에 의해 일정 회수로 제한을 받게 되므로 플래시 메모리의 모든 블록은 고르게 쓰여지고 지워져야 한다. 그러나 지역 접근성을 가지는 데이터를 Cost-benefit 방법으로 처리하면 성능은 좋으나 wear-leveling은 매우 나빠지는 문제점이 있다. 본 논문에서는 wear-leveling을 개선하기 위해 멀티 뱅크에서 하나의 뱅크는 cold 데이터를 다른 뱅크는 hot 데이터를 할당하고, 시간이 흐름에 따라 일정주기로 cold 뱅크와 hot 뱅크를 교환하는 CB-MB(Cost Benefit between Multi Bank) 방법을 제안하고 성능을 평가하였다. CB-MB방법은 hot 데이터와 cold 데이터를 블록단위로 분리하여 관리하는 Cost-benefit방법에 비해 성능에 있어 30% 성능향상을 보이고 wear-leveling측면에서 1/3이하로 표준편차를 줄였다.

임베디드 자바 가상머신을 위한 가비지 컬렉터 개발 (Development of a Garbage Collector for an Embedded Java Virtual Machine)

  • 차창일;김형준;황규정;김상욱;이상윤;원희선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 춘계학술발표대회
    • /
    • pp.1321-1324
    • /
    • 2006
  • 자바 언어는 그 객체지향성, 안전성, 유연성으로 인하여 현재 가장 널리 쓰이는 프로그래밍 언어의 하나가 되었으며, 자바 가상머신이 제공해주는 가비지 컬렉터로 인하여 프로그래머는 메모리 관리에 관한 많은 고민이 줄어들었다. 임베디드 환경에서 역시 자바는 강세를 나타내고 있으며 임베디드 환경의 특성을 반영한 가상 머신과 가비지 컬렉션 기법이 요구되고 있다. 본 논문에서는 힙이라고 불리는 메모리 영역을 크게 젊은 세대와 늙은 세대의 두 부분으로 나누어서 관리하며 각 세대는 그 특성과 요구사항에 적합하도록 각기 다른 기법을 적용한 가비지 컬렉터를 제안한다. 더불어 효과적인 가비지의 식별을 위한 쓰기 장벽과 2중 필터링 기법을 제안하고 있으며, 일반적인 방법으로 회수가 불가능한 순환적 구조의 가비지를 검출하여 회수하기 위한 이중 검사 기법을 제안한다. 제안하는 기법은 임베디드 환경의 요구사항인 객체의 빠른 할당, 동작의 실시간성, 모든 가비지의 회수, 단편화 제거, 높은 지역성 등을 모두 만족한다.

  • PDF

분할 정복법을 이용한 Haskell GC 조정 시간 개선 (Improving Haskell GC-Tuning Time Using Divide-and-Conquer)

  • 안형준;김화목;류샤오;김연어;변석우;우균
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제6권9호
    • /
    • pp.377-384
    • /
    • 2017
  • 발열 때문에 더이상 회로 집적도를 높일 수 없기 때문에 단일 코어 프로세서의 성능 향상은 한계에 달했다. 그래서 코어를 여러 개 사용하는 멀티 코어, 매니 코어 형태의 프로세서가 등장했으며 병렬 프로그래밍이 중요해졌다. 이러한 상황에서 병렬 프로그래밍에 여러 장점이 있는 순수 함수형 언어 Haskell이 주목받고 있다. Haskell은 식 계산 방식에서 이미 병렬성이 내재되어 있으며 병렬 구조를 지원하는 모나드 도구를 제공한다. 그런데 Haskell 병렬 프로그램의 성능은 메모리 재사용 시스템을 포함한 실행시간 시스템에 큰 영향을 받는다. 이미 Haskell이 제공하는 메모리 프로파일링 도구로 GC-tune이 있지만, GC-tune은 가능한 모든 GC 옵션에 대해 프로그램 실행 시간을 반복 측정하기 때문에 GC 조정 시간이 너무 오래 걸린다. 그래서 본 연구에서는 기본적인 분할 정복법을 이용해서 GC-tune의 탐색 영역을 매 단계마다 4분의 1로 줄이는 방법을 제안한다. 제안하는 방법을 두 가지 병렬 프로그램(극대 독립 집합 프로그램과 K-평균 프로그램)에 적용한 결과, 평균 98%의 정확도로 실행 시간을 평균 7.78배 단축시켰다.

Eval-Apply 모델의 STGM에 기반하여 지연 계산 함수형 프로그램을 자바로 컴파일하는 기법 (Compiling Lazy Functional Programs to Java on the basis of Spineless Taxless G-Machine with Eval-Apply Model)

  • 남병규;최광훈;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제29권5호
    • /
    • pp.326-335
    • /
    • 2002
  • 최근에 지연 계산 함수형 언어를 자바 프로그램으로 변환함으로써 지연 계산 함수형 언어 프로그램에 대해 코드 이동성을 제공하려는 연구가 있었다. 이러한 연구들은 자바와 지연 계산형 함수형 언어의 추상 기계가 가지는 구조적 유사성에 바탕을 두고 있다. 지연 계산 함수형 언어에 대한 추상 기계인 STGM(Spineless Tagless G-machine)과 자바 언어에 대한 추상 기계인 JVM(Java Virtual Machine)은 기억장소 재활용 체계와 스택 기계 구조를 가진다는 점에서 공통된 특징을 가지고 있다. 그러나 현재가지의 지연 계산 함수형 언어로부터 자바로의 변환 구조는 이와 같은 추상 기계 구조상의 공통점을 충분히 이용하지 못하였다. 본 논문에서는 STGM의 계산 모델을 eval-apply 모델로 새로이 정의함으로써 STGM과 JVM의 공통점을 충분히 이용하는 새로운 변환 구도를 제안한다. 새로이 제안된 변환 구도에서는 자바 스택(Java Virtual Machine Stack)을 사용하여 함수 계산을 수행하도록 함으로써 스택 시뮬레이션으로 인해 나타나는 자바에서의 배열 접근 부담을 제거하였다. 본 논문의 변환 구도에 의해 자바로 변환된 벤치마크 프로그램들은 기존의 변환 구도에 의해 변환된 경우보다 JDK 1.3에서 빠르게 동작한다.