A multi-level Run-Queue Scheduling System of Linux

리눅스 기반의 멀티레벨 런큐 스케줄링

  • 박동국 (서울시립대학교 전자전기컴퓨터공학부) ;
  • 윤상용 (서울시립대학교 전자전기컴퓨터공학부) ;
  • 이용우 (서울시립대학교 전자전기컴퓨터공학부)
  • Published : 2002.04.01

Abstract

최근 멀티미디어 데이터 서버로 리눅스 시스템을 쓰는 경우가 많아 졌다. 이 경우, 멀티미디어 데이터에 관한 서비스를 효율적으로 제공할 수 있어야 한다. 이를 위하여, 본 논문에서는 기존의 리눅스 scheduling 방식이 갖는 단일레벨 run-queue 구조를 변형한 다중레벨 run-queue를 제안하였다. 기존의 단일레벨 run-queue에서는 queue 내에 프로세스의 수가 많아질수록 검색시간이 길어지는 단점이 있다. 본 논문에서는 기존의 run-queue를 여러 단계로 나누고, scheduling 과정에서 상위 queue부터 프로세스가 존재하는지를 조사하도록 스케줄러를 변형하였다. 따라서, 상위 queue에 프로세스가 있는 경우에는 하위의 queue는 더 이상 조사한 필요가 없게 되므로. 결과적으로 검색시간을 줄일 수 있게 된다. 한편, 다중 레벨의 run-queue를 사용할 경우, 이를 관리하기 위한 오버헤드가 별도로 발생한다. 본 논문에서는, 제안한 다중레벨의 run-queue 시스템의 성능을 최적화하기 위하여, queue의 적절한 개수 선정 및 각 프로세스를 어떤 queue에 넣을 것인지를 결정하는 것이 성능에 미치는 영향에 대하여 실험적으로 연구하여 새로운 스케줄러의 성능을 기존 스케줄러와 비로 분석하였다. 본 논문에서 제안한 멀티레벨 run-queue를 사용함으로써, 각 queue의 스케줄링 정책(policy)과 관련 파라메터 간을 독자적으로 변화시킬 수 있다. 따라서, 여러 가지 상황에 적합한 스케줄링을 각각의 경우에 맞게 최적화하는 것이 손쉬워 지므로 여러 분야에서 매우 유용하게 쓰일 것이다.

Keywords