가공데이터 · 한국어 지식관계

실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말 document_id A220623049698

분류
의약학
라벨 상태 (label_status)
approved
문맥 (context)
모바일 기기가 발전해 가면서, 보다 편리한 모바일 환경의 구현을 위해 점점 더 많은 기능이 추가되고 있다. 모바일 기기에 더 많은 기능을 추가한다는 것은 소프트웨어의 사이즈나 램(RAM)의 요구량이 커지는 것을 의미하며, 이는 비교적 비싼 자원(Resource)인 램 사용량 증가로 이어지게 된다. 한편 근래에는 이와 동시에 저렴한 가격의 기기에 대한 수요 또한 커지고 있다. 따라서 이와 같이 상반되는 두 요구 사항을 만족시키기 위해서는, 보다 적은 램 용량을 효율적으로 사용하여야 한다. 모바일 환경이 아닌 PC(Personal Computer)와 같은 일반적인 환경에서는 위와 같은 요구 사항을 가상 메모리 기법을 사용하여 해결하고 있다. 가상 메모리 기법에서는 램에 비하여 느리기는 하지만 훨씬 저렴한 디스크(Disk) 자원을 램인 것처럼 가상화 하고, 필요시마다 디스크의 내용을 램의 일부 버퍼로 매핑하여 사용한다. 특정 프로세스를 처리하는데 요구되는 코드는 디스크에 저장된 코드들 중 일부에 불과하다. 따라서 가상 메모리 기법에서는 특정 시점에 필요한 내용만을 디스크에서 램으로 옮겨 프로세스를 수행함으로써, 램에 대한 활용도를 높인다. 한편 모바일 환경에서는 모바일 기기의 디스크 용도로 낸드 플래쉬(Nand Flash) 메모리를 사용한다. 비 휘발성 저장 매체의 일종인 낸드 플래쉬 메모리는 구조가 간단하면서도 많은 용량의 데이터를 저장할 수 있다. 또한 자기식 저장 장치들보다 내구성이 우수하고 대용량화가 가능하며 값이 싸다는 장점을 가진다. 하지만 낸드 플래쉬 메모리는 write(쓰기) 성능이 read(읽기) 성능에 비하여 매우 느리며, 나아가 쓰기를 빈번히 할 경우 부품의 수명이 길지 못하므로, 일반적인 PC 환경에서의 가상 메모리 기법을 그대로 활용하기는 어렵다. 따라서 모바일 기기에서는 요구 페이징 기법을 적용하되, 램의 내용에 변동이 없는 Read only 영역인 코드 등의 데이터만을 캐싱(caching)하는 기법이 주로 적용되고 있다. 일반적인 PC 환경에서 사용되는 가상 메모리는 해당 내용에 대한 변경이 가능하다, 따라서 캐싱 버퍼(Caching Buffer)에서 빠져 나갈 때에는 변경된 내용을 디스크로 다시 적어주어, 이후 필요한 경우 변경된 내용을 참조할 수 있도록 한다. 반면 모바일 기기에서는 변경이 불가능한 데이터만을 대상으로 요구 페이징을 수행하기 때문에, 낸드 플래쉬 메모리 등으로 내용을 다시 Swap out 해줄 필요가 없다. 도 1은 기존의 요구 페이징 과정을 도시한 도면이다. 특정 프로세스를 처리하고자 하는 경우, 단말에서는 플래쉬 메모리에 저장된 데이터를 읽어오게 된다. 가장 먼저, 단말에서는 데이터를 읽어 와서 저장할 메모리의 공간을 램에 확보한다(S101). 이 경우 단말은 불러올 데이터가 Read Only 데이터에 해당하는지 판단한다(S102). 요구 페이징 대상인 Read Only 데이터는 플래쉬 메모리에 저장되어 있다. 반면, Read Only 데이터 이 외의 데이터는 요구 페이징이 불가능하므로, 모두 램에 로딩(loading) 되어 있다. 따라서 Read Only 데이터에 해당하는 경우, 단말은 요구 페이징을 수행하여 플래쉬 메모리에서 상기 데이터를 불러와 램에 일시적으로 저장한다(S103). 반면, Read Only 데이터가 아닌 데이터들은 요구 페이징 대상이 아니다. 따라서 단말은 램에 로딩되어 있는 데이터를 Caching Buffer로 카피하여 일시적으로 저장한다(S104). 이 경우 단말은 불러온 데이터를 이용하여 특정 프로세스를 처리한다(S105). 이렇게 요구 페이징 기법을 사용하는 경우, 코드 수행을 위한 램 사용량을 코드 크기에서 Caching Buffer 크기만큼 줄일 수 있기 때문에, 코드 수행을 위한 램 요구량를 크게 낮출 수 있는 장점이 있다. 요구 페이징의 경우 긴 시간을 요구하는 Write 동작이 없기 때문에, 1ms의 지연도 허용되지 않는 엄격한 실시간 응답(real time response)을 요구하는 모바일 기기에서 사용하기에 적합한 기술이다. 하지만 낸드 플래쉬 메모리를 데이터 저장 용도와 함께 사용하는 경우, 문제가 발생한다. Multi-Task로 동작하는 모바일 기기에서 동일한 공유 자원인 낸드 플래쉬 메모리를 파일 시스템 등에서 write/erase 하고 있는 도중에 요구 페이징이 요청되는 경우, 파일 시스템의 낸드 플래쉬 메모리 사용이 끝날 때까지 기다렸다가 페이징을 해야만 한다. 그러나 현재 많이 사용하고 있는 낸드 플래쉬와 같은 저장성 플래쉬 매체의 경우 erase와 같은 동작은 수 ms가 걸리므로, 이에 따른 지연이 발생한다. 전화 기능과 같은 프로토콜 스택에서는 수 ms의 지연을 허용할 수 없기 때문에, 일반적으로 요구 페이징이 요구될 경우에도 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단한다. 하지만 이러한 분리 작업은 많은 인력과 기술을 필요로 하며, 나아가 쉽게 구분할 수 없는 경우가 많다. 따라서 안정성을 위해 요구 페이징 적용이 불가능한 코드로 분류되는 코드의 양은 상당량을 차지하게 된다. 이렇게 요구 페이징이 불가능한 것으로 분류된 코드는 모두 램으로 로딩(loading) 되어, 많은 램 자원(resource)을 사용하게 되는 문제점이 발생한다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
모바일 기기에서 요구 페이징 기법을 적용할 때, 낸드 플래쉬 메모리의 특성으로 인해 발생하는 문제점을 해결하기 위해 기존 방식에서 취하고 있는 조치와 그로 인해 발생하는 문제점은 무엇인가?
추론 과정 (compact_reasoning)
  1. 1과제 해석task_interpretation

    낸드 플래쉬 메모리 사용 시 발생하는 지연 문제에 대한 기존의 대응 방식과 그 부작용을 파악한다.

  2. 2정보 추출information_extraction

    낸드 플래쉬의 erase 동작 등으로 인한 지연이 실시간 응답을 요구하는 코드에 영향을 미침을 확인한다.

    • erase와 같은 동작은 수 ms가 걸리므로, 이에 따른 지연이 발생한다.
    • 전화 기능과 같은 프로토콜 스택에서는 수 ms의 지연을 허용할 수 없기 때문에
  3. 3근거 선택evidence_selection

    기존의 대응 방식(코드 분리)과 그로 인한 결과(램 사용량 증가)를 추출한다.

    • 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단한다.
    • 요구 페이징 적용이 불가능한 코드로 분류되는 코드의 양은 상당량을 차지하게 된다.
    • 이렇게 요구 페이징이 불가능한 것으로 분류된 코드는 모두 램으로 로딩(loading) 되어, 많은 램 자원(resource)을 사용하게 되는 문제점이 발생한다.
  4. 4논리 통합logical_integration

    지연 방지를 위해 코드를 분리하지만, 이로 인해 요구 페이징을 못 받는 코드가 많아져 램 사용량이 늘어나는 인과관계를 정리한다.

  5. 5결론 도출conclusion_formulation

    기존 조치는 코드를 엄격히 분리하는 것이며, 문제는 이로 인해 많은 코드가 램에 상주하게 되어 램 자원을 많이 소모한다는 점이다.

    • 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단한다.
    • 요구 페이징이 불가능한 것으로 분류된 코드는 모두 램으로 로딩(loading) 되어, 많은 램 자원(resource)을 사용하게 되는 문제점이 발생한다.
  6. 6답변 생성answer_generation

    질문에 맞춰 대응 방식과 문제점을 기술한다.

    • 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단한다.
    • 요구 페이징이 불가능한 것으로 분류된 코드는 모두 램으로 로딩(loading) 되어, 많은 램 자원(resource)을 사용하게 되는 문제점이 발생한다.
최종 답변 (final_answer)
기존에는 실시간 응답을 요구하는 코드와 그렇지 않은 코드를 엄격하게 분리하여 요구 페이징 적용 여부를 판단하는 조치를 취하고 있다. 그러나 이로 인해 요구 페이징 적용이 불가능한 코드가 상당량을 차지하게 되고, 이 코드들이 모두 램으로 로딩되어 많은 램 자원을 사용하게 되는 문제점이 발생한다.
핵심 해석 (core_interpretation)
모바일 기기에서 실시간 응답성을 보장하기 위해 요구 페이징 적용 여부에 따라 코드를 엄격하게 분리하는 방식은 상당량의 코드가 램으로 로딩되어 램 자원 사용량을 증가시키는 문제점이 있다.