분할형 구조 시뮬레이션

매니코어OS
이동: 둘러보기, 검색

연구배경

매니코어 시스템 연구

최근 프로세스의 성능향상 방안으로서 주로 코어의 수를 증가시키는 방식이 대두되고 있다. 이러한 경향에 따라, 향후 다양한 매니코어 시스템들이 구축될 전망이다.

분할형 운영체제 연구

운영체제의 성능 향상을 위한 연구 중 하나로서, 새로운 운영체제 구조로서 분할형 운영체제 를 제안하는 연구가 진행되고 있다. 분할형 운영체제의 경우, 운영체제의 기능 중 필수적인 기능만을 커널에 탑재하고 나머지 기능은 유저 프로세스로서 제공하도록 한다. 분할형 운영체제에서 이용하는 커널은 기존의 일체형 운영체제에 비하여 커널의 크기가 매우 작아, 마이크로 커널 이라 정의한다.

연구목표 및 연구의 필요성

최종 목표

  • 초고성능 매니코어 시스템 구축을 위한 기반 마련

세부 연구목표

  • 분할형 운영체제를 위한 시뮬레이터 제작
  • 분할형 운영체제를 위한 벤치마크 확보
  • 시뮬레이션을 통한 분할형 운영체제의 스케일러빌러티 분석

연구의 필요성

  • 매니코어 환경에 대한 분할형 구조의 적합성 판단
매니코어 환경에서 성능을 내기 위해 가장 중요한 요건이 스케일러빌러티이다. 그러므로, 매니코어 환경에서의 적합성을 판단하기 위해서는 스케일러빌러티 분석이 선행되어야 한다.
  • 분할형 운영체제 구현 비용
현재 구현되어 있는 분할형 운영체제는 전무한 실정이다. 실험을 위하여 분할형 운영체제를 구현하여 실험하기에는 제작 비용이 너무 크므로, 시뮬레이션을 이용한 비용감축이 필요하다.
  • 분할형 운영체제를 위한 시뮬레이터 및 벤치마크 부재
분할형 운영체제는 새로 연구되고 있는 운영체제 구조이므로, 기존의 시뮬레이터 및 벤치마크는 일체형 운영체제에만 적용가능하며, 아직 분할형 운영체제를 위한 시뮬레이터 및 벤치마크가 미흡하다.

연구내용

시뮬레이터 제작: osSim

분할형 운영체제에 대한 시뮬레이션이 가능한 시뮬레이터를 직접 제작하고, osSim 이라 명명하였다. osSim의 구조는 다음과 같이 설계되었다.

osSim 구조

벤치마크 확보: AIM7 Modified

멀티유저를 위한 유닉스 시스템 벤치마크인 AIM7 (AIM Multiuser Benchmark)를 확보한 후, 분할형 운영체제에서 실행가능하도록 벤치마크를 변경하여, AIM7 Modified 라고 명명하였다.


실험 및 결과: 스케일러빌러티 측정

시뮬레이션에 이용할 분할형 운영체제의 구조를 설계하고, 수행한 일련의 실험과정은 아래와 같다.


<설계>      시스템 서비스      분할형 운영체제는 기존의 운영체제와 같이 커널이 응용에 시스템 콜을 제공하는 것이 아니라, 시스템 서비스를 수행하는 응용이 사용자가 실행하는 응용에 시스템 서비스를 제공한다.
     현재 설계상, 제공되는 시스템 서비스는 6가지로 분류된다 - Naming Service, PM(Process Management), FM(File Management), Disk I/O, Network I/O, MM(Memory Management).
     동종 시스템 서비스가 2개 이상 존재할 경우, 동기화 비용이 소모된다. 현재 설계상, 각 시스템 서비스 종류마다 동종 시스템 수는 같도록 설계하였다.
     IPC      각 프로세스는 마이크로커널에 포함된 IPC(Inter-Process Communication) 기능을 이용하여 서로 통신한다. IPC는 로컬 IPC와 원격 IPC(remote IPC)로 구분되며, 원격 IPC에 더 많은 비용이 소모된다.
     사용자가 실행하는 응용이 시스템 서비스를 요청하고 제공받는 과정에는 IPC가 이용된다. 이 과정에서 이용되는 IPC의 약 80%는 로컬 IPC이며, 약 20%가 원격 IPC이다.

<가정>      1. 시스템 전체 코어개수는 최대 1000개까지로 제한함.
     2. 동종 시스템 서비스들의 동기화 비용은 선형모델 적용 - 특히, <실험1>에서는 동기화할 시스템 서비스 하나 당 2%의 추가 비용이 드는 것으로 가정함.
     3. INTEL Xeon Phi 에서 IPC 비용을 측정한 결과, 로컬 IPC에 300 ns, 원격 IPC에 1696 ns가 소모되는 것으로 측정되었으며, 이 값을 시뮬레이션에 이용함.

<실험1>    nCores    시스템 전체 코어 수
   nSet    동종 시스템 서비스 수
   terminated jobs    시간당 작업 총 수행량 (total throughput)

실험1 (nCores, nSet)-terminated jobs

실험결과, 수행한 환경에서 동종 시스템 서비스 수는 32개가 적합한 것으로 나타났다. 동종 시스템 서비스의 수가 지나치게 적은 환경(nSet=1,2,4,8,16)에서는, 특정 시스템 서비스를 제공받으려는 응용이 몰릴 경우 병목현상이 발생하여 성능이 저하되는 것으로 분석되었다. 반면 동종 시스템 서비스의 수가 지나치게 많은 경우(nSet=64,128) 시스템 서비스 수행에 자원이 몰려, 응용에 필요한 자원들이 부족하게 되어 성능이 저하되는 것으로 분석되었다.

<실험2>    nCores    시스템 전체 코어 수
   serviceCost    동종 시스템 서비스의 동기화에 드는 추가 비용
   terminated jobs    시간당 작업 총 수행량 (total throughput)

실험2 (nCores, serviceCost)-terminated jobs

동종 시스템 서비스의 동기화 비용에 따라 성능이 좌우됨을 알 수 있다. 또한, 동종 시스템 서비스의 동기화 비용이 30% 이상이 될 경우, 스케일러빌러티를 얻는 것이 어려워 진다는 것을 알 수 있다.

연구결과물

공개 소프트웨어