KR20080052343A - 리눅스 커널 실시간 성능 측정 장치 및 방법 - Google Patents

리눅스 커널 실시간 성능 측정 장치 및 방법 Download PDF

Info

Publication number
KR20080052343A
KR20080052343A KR1020070100072A KR20070100072A KR20080052343A KR 20080052343 A KR20080052343 A KR 20080052343A KR 1020070100072 A KR1020070100072 A KR 1020070100072A KR 20070100072 A KR20070100072 A KR 20070100072A KR 20080052343 A KR20080052343 A KR 20080052343A
Authority
KR
South Korea
Prior art keywords
interrupt
real
time performance
time
task
Prior art date
Application number
KR1020070100072A
Other languages
English (en)
Inventor
정영준
김동환
김재명
김강희
Original Assignee
한국전자통신연구원
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 삼성전자주식회사 filed Critical 한국전자통신연구원
Publication of KR20080052343A publication Critical patent/KR20080052343A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 리눅스 커널의 실시간 성능을 측정하는 장치 및 방법에 관한 것으로, 특히 주기적인 인터럽트에 대한 태스크 수행 결과를 통해 리눅스 커널 실시간 성능을 측정하는 장치 및 방법에 관한 것이다. 본 발명에 따른 리눅스 커널 실시간 성능 측정 장치는, 사용자로부터 명령을 수신하고 실시간 성능 측정 결과를 상기 사용자에게 출력하는 입출력부; 상기 입출력부로부터 상기 명령을 수신하고 주기적인 인터럽트를 발생하는 인터럽트 발생기; 및 상기 인터럽트에 대응하는 복수의 태스크의 수행 시작시간에 기반하여 상기 실시간 성능 측정 결과를 생성하고, 상기 실시간 성능 측정 결과를 상기 입출력부에게 전달하는 제어부로 구성된다. 본 발명은 태스크 선점 지연시간을 구간별로 측정하던 종래의 실시간 성능 측정 방법과 달리 구간을 모두 포함하는 전체 지연시간을 측정함으로써, 용이하게 실시간 성능 측정 방법을 구현할 수 있다.
임베디드, 리눅스, 실시간 성능, 성능 측정

Description

리눅스 커널 실시간 성능 측정 장치 및 방법{Device and Method For Measuring Real-time Performance Of Linux Kernel}
본 발명은 리눅스 커널의 실시간 성능을 측정하는 장치 및 방법에 관한 것으로, 특히 주기적인 인터럽트에 대한 태스크 수행 결과를 통해 리눅스 커널 실시간 성능을 측정하는 장치 및 방법에 관한 것이다.
리눅스는 대형 기종에서 작동하던 운영체계인 유닉스를 소형 PC에서도 작동할 수 있도록 만든 운영체제이다. 리눅스는 프로그램 소스코드가 무료로 공개되어 있어 프로그래머가 원하는 대로 특정기능을 추가할 수 있고, 더욱이 어느 플랫폼에도 포팅이 가능하다는 장점이 있다. 그러나, 리눅스는 전형적인 유닉스 커널과 같이 모놀리틱(monolithic) 커널로 구성되어있고, 이에 따라 사용자 모드에서 커널 모드로의 진입시 시스템 내의 이벤트에 즉각적인 반응을 할 수 없어 실시간 성능이 중요한 시스템에서 사용되기에는 부적합한 면이 있었다.
최근 오픈 커뮤니티의 부단한 노력으로 리눅스 커널의 실시간 성능은 비약적 으로 향상되었고, 이에 따라 리눅스는 공장 자동화, 백색가전의 제어 및 멀티미디어 스트리밍 등의 각종 실시간 응용 분야에 활발히 사용되고 있다. 리눅스를 사용하는 실시간 시스템의 증가에 따라 리눅스 시스템의 실시간 성능을 측정할 수 있는 방법 또한 활발히 개발되고 있다.
종래의 실시간 성능 측정 방법은 리눅스 커널의 태스크 선점 지연 시간을 구성하는 세부 구간을 각각 측정하고 이를 합하여 태스크 선점 지연 시간을 계산하는 방법을 사용한다. 여기서, 태스크 선점 지연시간이란 긴급한 태스크가 발생한 경우에 시스템에서 구동되고 있는 태스크의 CPU 자원을 선점하여 상기 긴급한 태스크에게 서비스할 때까지 소비되는 시간을 의미한다.
도 1을 참조하면, 태스크 선점 지연시간은 인터럽트 도달 지연시간(110), 인터럽트 처리 지연시간(120), 스케줄러 도달 지연시간(130) 및 스케줄러 처리 지연시간(140)으로 구성된다.
우선, 인터럽트 도달 지연시간(110)은 하드웨어적으로 인터럽트가 발생하여 리눅스 커널에 도달하기 까지의 지연시간을 의미하는 것으로, 하드웨어의 구성에 따라 상이하며 매우 적은 시간을 소모한다. 인터럽트 처리 지연시간(120)은 인터럽트 핸들러가 해당 인터럽트를 처리하는데 소모되는 시간으로서, 인터럽트 및 인터럽트의 처리 방법에 따라 달라질 수 있다. 스케줄러 도달 지연시간(130)은 인터럽트가 인터럽트 핸들러에 의해 처리된 이후 스케줄러에 도달할 때까지의 지연시간을 의미하며, 상대적으로 다른 부분에 비하여 많은 시간을 소모한다. 스케줄러 처리 지연시간(140)은 스케줄러가 스케줄링을 하는 동안의 소요되는 시간을 의미한다.
상기 태스크 선점 지연시간을 구성하는 각 구간들은 하드웨어의 특성에 따라 변동이 심하고, 개별적인 측정도 용이하지 않다. 따라서, 태스크 선점 지연시간의 각각의 세부 구간을 별도로 측정하여야 하는 종래의 실시간 성능 측정 방법은 개발 이 어렵고 측정의 정확도를 보장할 수 없는 단점이 있다.
본 발명에서 해결하고자 하는 과제는, 리눅스 커널의 실시간 성능을 보다 용이하게 측정할 수 있는 리눅스 커널 실시간 성능 측정 장치 및 방법을 제공하는 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 측면은 사용자로부터 명령을 수신하고 실시간 성능 측정 결과를 상기 사용자에게 출력하는 입출력부; 상기 입출력부로부터 상기 명령을 수신하고 주기적인 인터럽트를 발생하는 인터럽트 발생기; 및 상기 인터럽트에 대응하는 복수의 태스크의 수행 시작시간에 기반하여 상기 실시간 성능 측정 결과를 생성하고, 상기 실시간 성능 측정 결과를 상기 입출력부에게 전달하는 제어부를 통하여 리눅스 커널의 실시간 성능을 측정하는 리눅스 커널 실시간 성능 측정 장치를 제공한다.
본 발명의 다른 측면은 사용자로부터 수신한 인터럽트 발생주기에 따라 주기적인 인터럽트를 발생하는 단계; 상기 인터럽트에 대응하는 복수의 태스크의 수행 시작시간을 측정하는 단계; 상기 복수의 태스크의 수행 시작시간 간의 간격을 계산하는 단계; 및 실시간 성능 측정 결과를 사용자에게 출력하는 단계를 통하여 리눅스 커널의 실시간 성능을 측정하는 리눅스 커널 실시간 성능 측정 방법을 제공한다.
본 발명은 태스크 선점 지연시간을 구간별로 측정하던 종래의 실시간 성능 측정 방법과 달리 구간을 모두 포함하는 전체 지연시간을 측정함으로써, 용이하게 실시간 성능 측정 방법을 구현할 수 있다.
또한, 본 발명은 종래의 방법에서 고려할 수 없었던 인터럽트 금지구간에 의한 지연시간도 고려함으로써, 좀 더 정확한 실시간 성능을 측정할 수 있다.
도 2는 본 발명의 일 실시예에 따른 실시간 성능 측정 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 실시간 성능 측정 장치(210)는 입출력부(211), 인터럽트 발생기(212) 및 제어부(213)을 포함한다. 입출력부(211)는 사용자(220)로부터 실시간 성능 측정에 대한 명령을 수신하여 각각 인터럽트 발생기(212) 및 제어부(213)에 전달한다. 상기 명령은 인터럽트의 종류 및 인터럽트의 발생 주기 등을 포함할 수 있다.
인터럽트 발생기(212)는 사용자(220)의 명령에 기반하여 일정한 주기로 RTC 인터럽트(Real-time clock interrupt)를 발생한다. 일 실시예에서, 인터럽트 발생기(212)는 RTC 인터럽트를 발생하기 위하여 시스템 콜(System call)을 사용할 수 있다.
리눅스 커널(230)에서 상기 RTC 인터럽트에 대응하는 태스크가 연속적으로 수행되면, 제어부(213)는 연속적인 태스크 수행의 시작시간을 측정하고 그 간격을 계산하여 측정결과를 입출력부(211)에 전달한다. 이상적인 태스크 수행의 간격은 인터럽트 발생 주기와 일치하는 바, 입출력부(211)는 인터럽트 발생 주기와 측정결과를 비교하여 사용자(220)에게 출력한다.
도 3은 본 발명의 일 실시예에 따른 실시간 성능 측정 방법의 순서도이다.
도 3을 참조하면, 리눅스 시스템의 실시간 성능을 측정하기 위해 사용자는 실시간 성능 측정 장치의 입출력부를 통하여 인터럽트 주기 등을 포함하는 명령을 입력한다(310). 인터럽트 발생부는 사용자의 명령에 기반하여 일정한 주기의 RTC 인터럽트를 발생한다(320). 인터럽트의 발생에 따라 리눅스 커널에서 인터럽트에 대응하는 태스크가 수행되면, 제어부는 상기 태스크의 수행 시작시간을 측정한다(330). 사용자의 명령 또는 소정 횟수의 반복에 의해 측정이 종료될 때까지, 인터럽트 발생 및 태스크 수행 시작시간 측정을 반복한다(340).
측정이 종료되면, 제어부는 측정된 태스크 수행 시작시간 간의 간격을 계산하고(350), 이를 인터럽트 주기와 비교하여 사용자에게 출력한다(360).
도 4는 본 발명의 일 실시예에 따른 실시간 성능 측정 방법에 의해 측정되는 시간의 흐름을 나타내는 도면이다.
도 4를 참조하면, 주파수 n의 RTC 인터럽트는 1/n 주기로 발생된다. 예를 들어, 1000Hz의 주파수를 가지는 RTC 인터럽트는 1 msec의 주기로 발생된다.
리눅스 커널에서 수행되고 있는 태스크에 의해 발생한 인터럽트 금지구간에 서 RTC 인터럽트가 발생하면, 상기 RTC 인터럽트는 인터럽트 금지구간이 모두 지나간 이후에 처리가 되기 시작한다. 따라서, 본 발명의 일 실시예에 따른 실시간 성능 측정 방법은 종래의 실시간 성능 측정 방법과 달리 인터럽트 금지구간에 의한 지연시간까지 모두 고려할 수 있다.
RTC 인터럽트는 처리를 위하여 인터럽트 핸들러로 전달되고, 인터럽트 핸들러는 해당 인터럽트 서비스 루틴을 동작하여 인터럽트에 해당하는 태스크를 선택하고, 상기 태스크를 스케쥴러로 전달한다. 스케쥴러는 스케쥴링 정책에 의해 태스크를 수행하고, 이때 태스크의 수행 시작시간과 다음 RTC 인터럽트에 의해 수행되는 태스크의 수행 시작시간과의 간격이 측정된다.
이상적인 경우, 태스크의 수행 시작시간의 간격은 RTC 인터럽트 주기와 일치한다. 예를 들어, 1000Hz의 RTC 인터럽트가 사용되는 실시간 성능 측정에 있어서 각 태스크의 수행 시작시간의 간격이 1 msec에 가까울수록 측정되는 시스템의 실시간 성능이 안정하다는 사실을 나타내는 것이다.
도 5a 및 5b는 본 발명의 일 실시예에 따른 실시간 성능 측정 방법에 의해 리눅스 시스템을 측정한 결과를 나타내는 그래프이다.
도 5a의 그래프는 불안정한 실시간 성능을 가진 리눅스 시스템을 1000 msec의 RTC 인터럽트 주기로 테스트한 결과를 나타낸 그래프이다. 일 실시예에서, 사용자는 리눅스 커널의 실시간 성능을 더 자세히 평가하기 위해 테스트와 동시에 상당한 리눅스 커널 자원을 점유하는 응용 프로그램을 실행시킬 수 있다. 본 테스트에서는 'Hackbench'라는 벤치마킹 프로그램을 이용하였다. 측정 결과를 보면, 불규칙 하게 인터럽트 주기 및 측정 결과 간의 편차가 발생하고, 그 편차의 폭도 인터럽트 주기에 비해 수 배에 이르는 경우가 있다. 특히 Hackbench를 실행한 경우 편차의 폭이 더욱 커지고, 편차가 일어나는 빈도도 증가하는 것을 볼 수 있다.
도 5b의 그래프는 안정한 실시간 성능을 가진 리눅스 시스템을 975 msec의 RTC 인터럽트 주기로 테스트한 결과를 나타낸 그래프이다. 결과를 살펴보면, 도 5a의 그래프에 비하여, 측정 결과가 인터럽트 주기와 큰 편차를 보이지 않고 안정되어 있은 것을 볼 수 있다. Hackbench를 실행한 경우에서도, 편차가 조금 증가하기는 하였으나 일정하고 안정된 결과가 나타나는 것을 볼 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
도 1은 리눅스 시스템에서 태스크 선점 지연시간의 구성을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 실시간 성능 측정 장치의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 실시간 성능 측정 방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따른 실시간 성능 측정 방법에 의해 측정되는 시간의 흐름을 나타내는 도면이다.
도 5a는 본 발명의 일 실시예에 따른 실시간 성능 측정 방법에 의해 불안정한 실시간 성능을 가진 리눅스 시스템을 측정한 결과를 나타내는 그래프이다.
도 5b는 본 발명의 일 실시예에 따른 실시간 성능 측정 방법에 의해 안정한 실시간 성능을 가진 리눅스 시스템을 측정한 결과를 나타내는 그래프이다.

Claims (6)

  1. 리눅스 커널의 실시간 성능을 측정하는 장치에 있어서,
    사용자로부터 명령을 수신하고 실시간 성능 측정 결과를 상기 사용자에게 출력하는 입출력부;
    상기 입출력부로부터 상기 명령을 수신하고 주기적인 인터럽트를 발생하는 인터럽트 발생기; 및
    상기 인터럽트에 대응하는 복수의 태스크의 수행 시작시간에 기반하여 상기 실시간 성능 측정 결과를 생성하고, 상기 실시간 성능 측정 결과를 상기 입출력부에게 전달하는 제어부
    를 포함하는 리눅스 커널 실시간 성능 측정 장치.
  2. 제 1항에 있어서,
    상기 명령은 인터럽트 발생주기를 포함하고, 상기 인터럽트 발생기는 상기 인터럽트 발생주기에 따라 상기 주기적인 인터럽트를 발생하는 리눅스 커널 실시간 성능 측정 장치.
  3. 제 2항에 있어서,
    상기 제어부는 상기 복수의 태스크의 수행 시작시간 간의 간격을 계산하는 리눅스 커널 실시간 성능 측정 장치.
  4. 제 3항에 있어서,
    상기 실시간 성능 측정 결과는 상기 인터럽트 발생주기 및 상기 복수의 태스크의 수행 시작시간 간의 상기 간격을 포함하는 리눅스 커널 실시간 성능 측정 장치.
  5. 리눅스 커널의 실시간 성능을 측정하는 방법에 있어서,
    사용자로부터 수신한 인터럽트 발생주기에 따라 주기적인 인터럽트를 발생하는 단계;
    상기 인터럽트에 대응하는 복수의 태스크의 수행 시작시간을 측정하는 단계;
    상기 복수의 태스크의 수행 시작시간 간의 간격을 계산하는 단계; 및
    실시간 성능 측정 결과를 사용자에게 출력하는 단계
    를 포함하는 리눅스 커널 실시간 성능 측정 방법.
  6. 제 5항에 있어서,
    상기 실시간 성능 측정 결과는 상기 인터럽트 발생주기 및 상기 복수의 태스크의 수행 시작시간 간의 상기 간격을 포함하는 리눅스 커널 실시간 성능 측정 방법.
KR1020070100072A 2006-12-05 2007-10-04 리눅스 커널 실시간 성능 측정 장치 및 방법 KR20080052343A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060122282 2006-12-05
KR1020060122282 2006-12-05

Publications (1)

Publication Number Publication Date
KR20080052343A true KR20080052343A (ko) 2008-06-11

Family

ID=39807174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100072A KR20080052343A (ko) 2006-12-05 2007-10-04 리눅스 커널 실시간 성능 측정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20080052343A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639791B (zh) * 2009-08-31 2012-12-05 浙江大学 一种改善嵌入式实时操作系统中断延迟的方法
US8943503B2 (en) 2010-07-02 2015-01-27 Samsung Electronics Co., Ltd. Apparatus and method for thread progress tracking using deterministic progress index
KR20190102795A (ko) * 2018-02-27 2019-09-04 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639791B (zh) * 2009-08-31 2012-12-05 浙江大学 一种改善嵌入式实时操作系统中断延迟的方法
US8943503B2 (en) 2010-07-02 2015-01-27 Samsung Electronics Co., Ltd. Apparatus and method for thread progress tracking using deterministic progress index
KR20190102795A (ko) * 2018-02-27 2019-09-04 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체
WO2019168265A1 (ko) * 2018-02-27 2019-09-06 삼성전자주식회사 전자 장치, 전자 장치의 태스크 처리 방법 및 컴퓨터 판독 가능 매체

Similar Documents

Publication Publication Date Title
Spinner et al. Evaluating approaches to resource demand estimation
Urunuela et al. Storm a simulation tool for real-time multiprocessor scheduling evaluation
Neukirchner et al. Monitoring arbitrary activation patterns in real-time systems
Weiderman Hartstone: synthetic benchmark requirements for hard real-time applications
Guan et al. New schedulability test conditions for non-preemptive scheduling on multiprocessor platforms
Lee et al. Abstract PRET machines
KR20080052343A (ko) 리눅스 커널 실시간 성능 측정 장치 및 방법
de Oliveira et al. Operating system noise in the linux kernel
Nélis et al. Methodologies for the wcet analysis of parallel applications on many-core architectures
Kirner A uniform model for tolerance-based real-time computing
Abeni et al. A Markovian model for the computation time of real-time applications
Chéramy et al. Simulation of real-time scheduling with various execution time models
Schlatow et al. Self-aware scheduling for mixed-criticality component-based systems
Simon et al. Energy minimization in dag scheduling on mpsocs at run-time: Theory and practice
Chishiro et al. Practical imprecise computation model: Theory and practice
Dkhil et al. A hybrid scheduling algorithm based on self-timed and periodic scheduling for embedded streaming applications
CN109196494B (zh) 用于对数据流执行信息处理的设备和方法
WO2009026361A2 (en) Method, system and apparatus for measuring an idle value of a central processing unit
Bohlin et al. Bounding shared-stack usage in systems with offsets and precedences
Lakhani et al. Applying design patterns to improve the reliability of embedded systems through a process of architecture migration
Richard et al. Approximate feasibility analysis and response-time bounds of static-priority tasks with release jitters
Chattopadhyay et al. Worst case execution time analysis of automotive software
Kim et al. Experimental assessment of the period calibration method: A case study
Saiedian et al. Using UML-based rate monotonic analysis to predict schedulability
Pettersson et al. Testing of multi-tasking real-time systems with critical sections

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application