AQuSA
AQuoSAAQuoSA(Adaptive Quality of Service Architecture)는 Linux 커널에 적응형 Quality of Service 기능을 프로비저닝하기 위한 개방형 아키텍처입니다.이 프로젝트는 Linux와 같은 범용 운영체제 상에서 QoS 관련 서비스를 지원하기 위한 유연하고 휴대성이 뛰어나며 개방적인 아키텍처를 갖추고 있습니다.아키텍처는 공식적인 일정 분석 및 제어 이론적 결과를 기반으로 합니다.
AQuoS의 주요 기능은 런타임 요건에 따라 QoS 인식 응용 프로그램의 CPU 할당을 동적으로 조정할 수 있는 자원 예약 레이어입니다.이러한 기능을 제공하기 위해 AQuoSA는 Earest Defline First(EDF)에 기초한 CPU 자원 예약 메커니즘을 구현하는 커널 수준의 CPU 스케줄러를 내장한다.이를 통해 Linux 커널은 시스템 내에서 실행되는 태스크 간에 (부분적으로) 시간적인 분리를 실현할 수 있습니다.
AQuoSA는 적절하게 설계된 액세스 제어 모델을 사용하여 여러 사용자 시스템에서 권한이 없는 사용자에게 실시간 스케줄링 기능을 제어 방식으로 제공하는 몇 안 되는 프로젝트 중 하나입니다.
묘사
프로젝트의 아키텍처는 다음과 같이 요약할 수 있습니다.
Linux 커널에 패치 적용
가장 낮은 레벨에서는 Linux 커널에 패치를 적용하면 관련된 스케줄링 이벤트를 동적으로 로드된 모듈에 통지하는 기능이 추가됩니다.이들은 태스크의 생성 또는 정지, 차단 및 차단 해제 이벤트에서 확인되었습니다.이 패치는 주로 Linux 스케줄러 코드(sched.c)에 올바르게 삽입된 몇 줄의 코드로 구성되어 있기 때문에 최소한의 침습성이 있습니다.이는 모든 스케줄링 정책을 구현할 수 있기 때문에 "일반 스케줄러 패치"라고 불립니다.
자원 예약
리소스 예약 계층은 세 가지 구성 요소로 구성됩니다.
핵심 컴포넌트는 범용 스케줄러 패치를 통해 Linux 커널에 도입된 기능을 이용하여 CPU의 자원 예약 스케줄링 패러다임을 동적으로 로드 가능한 커널 모듈입니다.
둘째, 사용자 레벨 라이브러리(QRES 라이브러리)를 사용하면 응용 프로그램이 완전하고 적절하게 설계된 API 호출 세트를 통해 새로운 스케줄링 정책을 사용할 수 있습니다.기본적으로 이러한 콜을 통해 응용 프로그램은 프로세스에 대해 CPU의 일정 비율을 예약하도록 시스템에 요구할 수 있습니다.
셋째, 커널 레벨컴포넌트(슈퍼바이저)는 요청된 CPU 공유의 합계가 스케줄러의 스케줄링 가능성 조건(1개 미만 또는 오버헤드로 인해 약간 미만)을 위반하지 않도록 QRES 라이브러리를 통해 어플리케이션에 의해 이루어지는 모든 요구를 중개합니다.슈퍼바이저 동작은 시스템 관리자가 완전히 설정할 수 있기 때문에 CPU 상에서 이루어지는 예약에 대해 사용자별 또는 그룹별로 최소 보증값과 최대 허용값을 지정할 수 있습니다.
AQuoSA를 사용하면 응용 프로그램은 필요한 스케줄링 보증으로 실행되도록 CPU의 일부를 예약할 수 있는 리소스 예약 계층을 직접 사용할 수 있습니다.예를 들어 멀티미디어 어플리케이션은 운영체제시스템에 어플리케이션을 실행하도록 요구할 수 있습니다.P밀리초마다 적어도Q밀리초씩 스케줄이 되어 있습니다.여기서 Q와 P는 어플리케이션의 성질에 따라 달라집니다.
응용 프로그램을 Resource Reservation 레이어에 등록할 때 시스템이 응용 프로그램에 항상 보장해야 하는 최소 보장 예약을 지정할 수 있습니다.최소 보장 예약 요청에 따라 계층은 승인 제어를 수행합니다. 즉, 추가 후 실행 중인 새 애플리케이션 집합이 CPU 포화 제한을 초과하지 않는 경우에만 새 애플리케이션을 허용합니다.
적응형 예약
고압축 기술을 사용하는 일반적인 멀티미디어 애플리케이션에서는 CPU에서 고정 예약으로 이러한 애플리케이션을 실행하는 것이 매우 어렵거나 비현실적이거나 불편할 수 있습니다.실제로 가장 효율적인 예약은 압축 레벨이 다르기 때문에 시간이 지남에 따라 달라질 수 있습니다.e.
기존 실시간시스템에서는 WCET(Worst Case Execution Time) 분석 기술을 사용하여 예를 들어 정기적인 태스크가 CPU에서 실행되는 최대 시간을 계산한 후 다음 인스턴스를 기다리는 것을 차단합니다.
이러한 분석은 오늘날의 복잡한 멀티미디어 애플리케이션에서는 매우 어렵습니다.다단계 캐시, CPU 실행 파이프라인, 온버스 버퍼, 멀티 마스터 버스 등의 테크놀로지가 메모리 액세스에 필요한 시간을 결정할 때 예측할 수 없는 변수를 많이 도입하는 표준 PC와 같은 범용 하드웨어에서 특히 그렇습니다.
이러한 시스템에서는 애플리케이션의 평균 예상 로드에 따라 시스템 설계를 조정하는 것이 훨씬 편리합니다.그렇지 않으면 런타임 중에 시스템의 사용률이 크게 저하될 수 있습니다.
이미 설명한 바와 같이 비디오 플레이어 등의 특정 멀티미디어 애플리케이션의 경우 실제 처리 중인 데이터에 따라 부하가 크게 변동하기 때문에 런타임에 애플리케이션에 필요한 CPU 비율에 대한 적절한 고정값을 찾는 것은 매우 어렵습니다.평균 요건에 근거한 고정 예약 또는 그보다 약간 큰 예약은 런타임 중에 품질이 떨어지는 일시적 기간을 초래합니다(예: 동영상 재생).한편, 최대 예상 부하에 근거한 고정 예약은 부하가 실제로 최대 예상 값에 도달하는 기간을 제외하고 대부분의 시간 동안 CPU가 불필요하게 과도하게 예약됩니다.
이러한 클래스의 애플리케이션에서는 AQuoSA의 Adaptive Reservation 레이어에서 제공되는 Adaptive Reservation 기술을 사용하는 것이 훨씬 편리합니다.이 기술은 애플리케이션 프로세스의 계산 요건에 대한 지속적인 온라인 모니터링을 수행하므로 CPU d에서의 예약을 동적으로 조정할 수 있습니다.모니터링되는 데이터에 대한 추가 정보입니다.
Adaptive Reservation 레이어는 광범위한 멀티미디어 애플리케이션 내에서 매우 일반적으로 사용되는 컨트롤러 세트를 사용하기 위한 API를 애플리케이션에 제공합니다.
AQuSA 액세스컨트롤 모델
Linux 의 대부분의 실시간 버전에서는 변경된 OS 의 실시간 기능을 가진 사용자가 시스템에 대한 루트 권한을 가지고 있어야 합니다.이는 임베디드 시스템 컨텍스트에서 완벽하게 허용됩니다.단, 멀티미디어 애플리케이션 등에 실시간스케줄 기능이 필요한 멀티유저 시스템의 경우 이는 과도한 수치입니다.따라서 AQuoSA에는 시스템 관리자가 다음 작업을 수행할 수 있는 전용 액세스컨트롤 모델이 포함되어 있습니다.
- OS가 개개의 사용자 또는 그룹 전체에 부여할 수 있는 최소 보증 대역폭의 최대값 관점에서 개개의 사용자 또는 그룹에 대한 실시간 스케줄링 쿼터를 정의합니다.
- 과부하 상황에서 최소한의 보증치를 초과하는 옵션의 필수 대역폭 값을 경쟁 사용자 간에 분배하는 방법을 제어합니다.
- 는 개별 사용자 또는 그룹에 의해 생성되는 실시간 예약에 의해 시스템에 부과될 수 있는 최대 스케줄링 오버헤드를 제어합니다.예를 들어 실시간 예약으로 지정할 수 있는 최소 기간을 제어할 수 있습니다.
상세한 것에 대하여는, RTAS [2]2008에 게재된 토픽에 관한 문서를 참조해 주세요.
외부 링크
레퍼런스
- ^ Palopoli, Luigi; Cucinotta, Tommaso; Marzario, Luca; Lipari, Giuseppe (April 2008). "AQuoSA - Adaptive Quality of Service Architecture". Software: Practice and Experience. 39: 1–31. CiteSeerX 10.1.1.149.8231. doi:10.1002/spe.883.
- ^ Cucinotta, Tommaso (2008). "Access Control for Adaptive Reservations on Multi-User Systems". 2008 IEEE Real-Time and Embedded Technology and Applications Symposium. pp. 387–396. doi:10.1109/RTAS.2008.16. ISBN 978-0-7695-3146-5.