DOI QR코드

DOI QR Code

리눅스 커널을 위한 함수 단위 업데이트 성능 개선 기법

Improving Function-level Update Performance For Linux Kernel

  • 임병홍 (성균관대학교 임베디드소프트웨어학과) ;
  • 김인혁 (성균관대학교 전자전기컴퓨터공학과) ;
  • 엄영익 (성균관대학교 전자전기컴퓨터공학과)
  • Lim, Byoung-Hong (Dept. of Embedded software, Sungkyunkwan University) ;
  • Kim, In-Hyuk (Dept. of Electrical and Computer Engineering, Sungkyunkwan University) ;
  • Eom, Young-Ik (Dept. of Electrical and Computer Engineering, Sungkyunkwan University)
  • 발행 : 2009.04.23

초록

기존의 동적 커널 업데이트 시스템에서 주로 사용되는 함수 단위의 재구성 기법으로는 트랩과 점프가 있다. 이러한 기법들을 사용하면 커널 서비스의 중단 없이 함수 단위로 커널을 업데이트할 수 있는 이점이 있다. 하지만 커널 업데이트 후, 프로세서가 분기 명령어를 처리하는 과정에 두 가지 문제점이 존재한다. 업데이트 함수에 업데이트가 필요한 함수 내의 분기 명령어 오퍼랜드 값을 그대로 복사하면 의미 없는 메모리 주소로 분기하게 된다. 또한 분기 명령어로 short jump를 사용하면, 현재 위치에서 8 비트 범위를 벗어난 주소공간에 존재하는 분기 함수에는 접근을 할 수 없는 문제를 안고 있다. 본 논문에서는 이러한 문제점들을 해결하기 위해 short jump 대신 long jump를 사용하는 방식을 제안하였다. 이를 위해 업데이트가 필요한 함수의 분기 명령어가 갖고 있는 오퍼랜드 값을 추출하여, 업데이트 함수의 분기 명령어가 정상적으로 동작할 수 있도록 오퍼랜드 값을 수정해주는 동적 커널 업데이트 시스템을 설계하고 구현하였다.

키워드