KR100727901B1 - 마이크로 스케듈링 방법 및 운영체제 커널 장치 - Google Patents

마이크로 스케듈링 방법 및 운영체제 커널 장치 Download PDF

Info

Publication number
KR100727901B1
KR100727901B1 KR1019990027887A KR19990027887A KR100727901B1 KR 100727901 B1 KR100727901 B1 KR 100727901B1 KR 1019990027887 A KR1019990027887 A KR 1019990027887A KR 19990027887 A KR19990027887 A KR 19990027887A KR 100727901 B1 KR100727901 B1 KR 100727901B1
Authority
KR
South Korea
Prior art keywords
special
class
application
data
job
Prior art date
Application number
KR1019990027887A
Other languages
English (en)
Other versions
KR20010009501A (ko
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 삼성전자주식회사
Priority to KR1019990027887A priority Critical patent/KR100727901B1/ko
Priority to JP2000067465A priority patent/JP2001043094A/ja
Priority to CNB001047140A priority patent/CN1198210C/zh
Priority to US09/536,044 priority patent/US6779181B1/en
Publication of KR20010009501A publication Critical patent/KR20010009501A/ko
Application granted granted Critical
Publication of KR100727901B1 publication Critical patent/KR100727901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

운영체제에서 사용되는 마이크로 스케듈링 방법과, 상기 마이크로 스케듈링 방법을 구현하는 운영체제 커널이 개시된다. 본 마이크로 스케듈링 방법은, 리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하는 단계와, 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행하는 단계와, 상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링하는 단계, 및 상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행하는 단계를 포함하는 것을 특징으로 한다. 본 마이크로 스케듈링 방법은 멀티미디어 지원을 필요로 하는 모든 운영체제에서 정확한 QoS(quality of service)의 지원이 가능하다.

Description

마이크로 스케듈링 방법 및 운영체제 커널 장치{Micro scheduling method and operating system kernel device therefrom}
도 1은 본 발명에 의한 마이크로 스케듈링 방법이 구현된 운영체제 커널의 구조를 도시한 블록도이다.
도 2 내지 도 4는 각각 스페셜 IO 클래스 1, 2, 및 3의 구성예를 나타낸 도면이다.
도 5는 HQ의 JOB 인터벌 분포의 일예를 나타낸 도면이다.
도 6은 HQ의 구성의 일예를 나타낸 블록도이다.
도 7은 디스크 IO를 수반한 스페셜 IO JOB을 설명하기 위한 도면이다.
본 발명은 마이크로 스케듈링 알고리즘에 관한 것으로, 더 상세하게는 멀티미디어 지원을 필요로 하는 운영체제에 적합한 마이크로 스케듈링 알고리즘에 관한 것이다.
또한, 본 발명은 상기 마이크로 스케듈링 방법을 구현하는 운영체제 커널에 관한 것이다.
유닉스(Unix: 등록상표), 리눅스(Linux: 등록상표), 및 원도우즈엔티(WindowsNT: 등록상표)와 같은 운영체제는 멀티 유저를 지원하기 위하여 10 밀리초 정도의 타임 슬라이스(time slice)를 가지는 태스크 스케듈링(task scheduling) 방식을 사용하고 있다. 멀티미디어를 지원하기 위해서는 QoS(quality of service) 요건을 만족하는 기능을 운영체제 및 네트워크에서 지원하여야 하는데, 복수 개의 애플리케이션을 처리한다면 멀티미디어 데이터를 처리하는 도중에도 정해진 태스크 스케듈링에 따라 계속적인 인터럽트가 발생되므로 멀티미디어 데이터의 처리가 연속적이지 못하고 끊어짐이 발생한다. 즉, 종래의 운영체제에서 사용되는 스케쥴링 방식으로는 멀티미디어를 지원하기 위한 QoS 요건을 만족시키기가 어렵다는 문제점이 있다.
상기 문제점을 해결하기 위한 다른 종래 기술에 따르면, 공유 힙(heap)을 구성하는 것과 같이 운영체제에서 중요한 프로세스의 구조를 변형하기 때문에 기존 소프트웨어와의 호환성을 상실한다는 문제점이 있다.
또한, 상기 문제점을 해결하기 위한 또 다른 종래기술에 따르면, EDF(Earliest Deadline First) 등과 같은 리얼타임 스케듈링 알고리즘을 적용하는 경우에는 어드미션 제어(admission control), 역방향 호환성(backward compatibility) 유지, 비정상적인 QoS 위배 등으로 인하여 성능이 현저하게 저하될 수 있으며, 과부하 상태에서는 이미 보증한 서비스 품질 조차도 달성되지 않는 경우가 발생할 수 있다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 멀티미디어를 지원하기 위한 QoS 요건을 만족시키는 마이크로 스케듈링 알고리즘을 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기 마이크로 스케듈링 알고리즘을 구현하는 운영체제 커널을 제공하는 것이다.
상기 과제를 이루기 위하여 본 발명에 의한 마이크로 스케듈링 방법은
멀티미디어 애플리케이션을 지원하기 위한 운영체제 커널에서 구현되는 스케듈링 방법에 있어서, (a) 리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하는 단계; (b) 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행하는 단계; (c) 상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링하는 단계; 및 (d) 상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 (a) 단계는 애플리케이션에서 예측한 퍼포먼스 파라미터와 애플리케이션 클래스에 따르는 우선순위 및 팔러시 기술표에서 사용자가 설정한 리소스 할당을 기초로 하는 엔터프라이즈 QoS 모델링에 의하여 수행되는 것이 바람직하다.
또한, 상기 (a) 단계는 (a-1) 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하는 단계; 및 (a-2) 실제 운용 환경에서 측정치를 보정 하는 단계;를 포함하여 이루어지는 것이 바람직하다.
또한, 상기 방법은 가용성 테스트를 수행하는 단계; 어드미션 제어 및 리소스 예약을 수행하는 단계; 시스템 리소스에 대하여 각 애플리케이션별 디폴트 및 최대 범위를 결정하기 위한 팔러시를 기술하는 단계; CPU 바운드 퍼포먼스에 대한 측정을 수행하는 단계; IO 바운드 퍼포먼스에 대한 측정을 수행하는 단계;를 더 포함하는 것이 바람직하다.
또한, 상기 스페셜 I/O 시스템 콜은 사용자 공간에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 1, 사용자 공간에서 사용자 공간으로 데이터를 이동시키는 I/O 서비스 클래스 2, 사용자 공간으로 데이터를 주고 받는 I/O 서비스 클래스 3, 및 장치에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 4의 4 가지 클래스로 구분되는 I/O JOB에서, 멀티미디어 애플리케이션에 나타날 수 있는 I/O 서비스 클래스 4를 스페셜 I/O에 해당하는 JOB인 것으로 결정하여, 애플리케이션에서 수행할 JOB이 스페셜 I/O에 해당하는 경우에 상기 스페셜 I/O 스케듈링 수단에 의하여 배분된 리소스에 따라 주기적인 입출력을 담당하는 것이 바람직하다.
또한, 상기 스페셜 I/O는 디스크 파일에서 네트워크로 또는 네트워크에서 디스크 파일로 입출력을 수행하는 스페셜 IO 클래스 1, I/O에서 네트워크로 또는 네트워크에서 I/O로 입출력을 수행하는 스페셜 IO 클래스 2, 및 애플케이션에서/으로 입출력을 수행하거나 스레드( thread)에서 스레드로 또는 루프백(loop-back) 형태로 입출력을 수행하는 스페셜 IO 클래스 3의 3 가지 클래스로 구분되는 것이 바람직하다.
또한, 상기 (c) 단계에서 스케듈링에 사용되는 태스크 큐는, 스페셜 IO 클래스 1의 애플리케이션에 관련된 MQ, 스페셜 IO 클래스 2 및 3의 애플리케이션에 관련된 HQ와 스페셜 IO 클래스 4의 애플리케이션에 관련된 LQ의 3 가지로 구분되는 것이 바람직하다.
또한, 상기 (c) 단계는 상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에 스케듈링에 있어서 가장 높은 우선 순위를 가지는 HQ를 사용하는 것이 바람직하다.
또한, 상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에는 가능한 한 스페셜 I/O에서 장치-장치로 처리하는 것이 바람직하다.
또한, 상기 팔러시 기술표는 시스템의 리소스에 대하여 4 가지 애플리케이션의 디폴트 리소스 및 최대 리소스의 범위를 팔러시로서 기술하는 것이 바람직하다.
또한, 상기 팔러시 기술표는 I/O JOB 클래스 1, 2, 3, 및 4에 대하여 각 클래스의 애플리케이션이 확보하여 사용할 수 있는 CPU 시간의 최소값을 소정의 비율로 최소 리소스를 할당함으로써 각 애플리케이션에 대한 디폴트 리소스를 할당하는 단계; 애플리케이션의 사용 패턴에 의하여 4 개의 애플리케이션 클래스가 공유할 수 있는 나머지 리소스를 할당하는 단계; 및 각각의 애플리케이션 클래스에 대하여 일정한 범위의 CPU 리소스를 할당하는단계;를 포함하는 방법에 의하여 설정된 팔러시를 포함하는 것이 바람직하다.
또한, 상기 방법은 새로운 애플리케이션이 수행되기 전에 상기 디폴트 리소스 및 최대 리소스의 범위를 사용하여 QoS 파라미터 교환과 어드미션 제어를 수행 하는 것이 바람직하다.
또한, 상기 방법은 스페셜 IO 클래스 1의 경우, (a-1) 파일 버퍼를 할당하는 단계; (b-1) X를 소정의 양의 정수라 할 때 파일 버퍼로부터 X 바이트를 읽어들이는 단계; (c-1) 프로토콜데이터유닛(PDU)에서 파일 버퍼가 비어있는지를 체크하는 단계; (d-1) 상기 (c-1) 단계에서 파일 버퍼가 비어있는 것으로 체크되면 포크(fork)를 수행하여 디스크 장치를 웨이크업(wake-up)하여 상기 디스크 장치로부터 데이터를 읽는 단계; (e-1) 상기 (d-1) 단계의 결과를 HQ에 저장하는 단계; 및 (f-1) 상기 (c-1) 단계에서 파일 버퍼가 비어 있지 않은 것으로 체크되면 HQ에 저장되어 있는 데이터를 전송하고, 디스크를 슬립(sleep) 상태로 유지시키는 단계; (g-1) UDP데이타를 네트워크 장치로 발송하는 단계; (h-1) 발송된 UDP데이타를 네트워크 장치 측의 버퍼에 저장하는 단계; 및 (i-1) 네트워크 장치의 버퍼에 저장된 UDP데이타를 매체 엑세스 제어에 의하여 네트워크 장치로 전송하는 단계;를 수행하고, 상기 스페셜 I/O 시스템 콜은 (a-1) 내지 (f-1) 단계에 관여하는 것이 바람직하다.
또한, 상기 방법은 스페셜 IO 클래스 2의 경우, (a-2) 외부 음성을 마이크를 통하여 입력하는 단계; (b-2) 입력된 외부 음성을 전기적인 음성신호로 변환하는 단계; (c-2) 하드웨어 보코더에서 변환된 음성신호를 디지털 음성 데이터로 변환하는 단계; (d-2) 상기 디지털 음성 데이터를 버퍼에 저장하는 단계; (e-2) 버퍼에 저장된 디지털 음성 데이터를 패킷화하는 단계; (f-2) 패킷화된 데이터를 HQ에 저장하는 단계; (g-2) 패킷전송요구신호(RTP)/사용자데이터패킷(UDP)를 네트워크 장 치로 발송하는 단계; (h-2) 발송된 RTP/UDP데이타를 네트워크 장치의 버퍼에 저장하는 단계; 및 (i-2) 네트워크 장치의 버퍼에 저장된 RTP/UDP데이타를 매체 엑세스 제어에 의하여 네트워크 장치로 발송하는 단계;를 수행하고, 상기 스페셜 I/O 시스템 콜은 (e-2) 내지 (g-2) 단계에 관여하는 것이 바람직하다.
또한, 상기 퍼포먼스 측정은 (pm-a) 각 애플리케이션을 복수의 클래스로 식별하는 단계; (pm-b) 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하는 단계; 및 (pm-b) 실제 운용 환경에서 측정치를 보정하는 단계;를 포함하여 이루어지는 것이 바람직하다.
또한, 상기 (pm-b) 단계는, (pm-b-1) 임무 중대성(mission critical) 작업은 애플리케이션 특성에 맞는 벤치 마크 프로그램을 사용하여 어느 정도의 트랜잭션을 처리할 수 있는지를 측정하여 시스템에서 처리하여야 하는 최소 및 최대 트랜잭션의 수를 결정하는 단계; (pm-b-2) 리소스 예약을 필요로 하는 하이 미디어(high media) 애플리케이션과 G.723, 및 H.263 등의 표준을 따르는 대화형 미디어 애플리케이션은 스케듈링 주기등과 같은 QoS 파라미터와, 반복되는 중요 루틴에 대한 정보를 사용자가 명시한 다음, 초당 인코딩 또는 디코딩 수행 시간을 측정하는 단계; 및 (pm-b-3) 기타 실시간 처리를 요하지 않는 애플리케이션은 퍼포먼스 측정을 생략하는 단계;를 포함하는 것이 바람직하다.
또한, 상기 (pm-b) 단계는, (pm-b-1-na) 만일 상기 (pm-b-1) 단계에서 임무 중대성 작업만을 수행하기에도 시스템의 성능이 부족하다고 결정되면 보다 나은 성능의 시스템을 사용하도록 사용자에게 표시하는 단계;를 더 포함하는 것이 바람직 하다.
또한, 상기 다른 과제를 이루기 위하여 본 발명에 의한 운영체제 커널은 리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하고, 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행하는 엔터프라이즈 QoS 리소스 매니징 수단; 상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링하는 스페셜 I/O 스케듈링 수단; 및 상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행하는 스페셜 I/O 서비스 루틴 수단;을 포함하는 것을 특징으로 한다.
이하 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명하기로 한다.
도 1에는 본 발명에 의한 마이크로 스케듈링 방법이 구현된 운영체제 커널의 구조를 블록도로써 도시하였다. 도 1을 참조하면, 본 발명에 의한 마이크로 스케듈링 방법이 구현된 운영체제 커널(12)은 엔터프라이즈 QoS(E-QoS) 리소스 매니저(120), 가용성 테스트부(122), 어드미션 제어 및 리소스 예약부(124); CPU 바운드 퍼포먼스 측정부(126), 및 IO 바운드 퍼포먼스 측정부(128)을 구비한다. 또한, 운영체제 커널(12)은 팔러시 기술표(130), 리소스 예약 프로토콜 수행부(132), 커널 스케듈러(134), 스페셜 I/O 스케듈러(136), 스페셜 I/O 서비스 루틴(138)을 구 비한다.
동작을 설명하면, 엔터프라이즈 QoS(E-QoS) 리소스 매니저(120)는 리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하고, 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행한다.
또한, 도시한 바와 같이 엔터프라이즈 QoS(E-QoS) 리소스 매니저(120)는 가용성 테스트를 수행하는 가용성 테스트부(122), 어드미션 제어 및 리소스 예약을 수행하는 어드미션 제어 및 리소스 예약부(124), CPU 바운드 퍼포먼스에 대한 측정을 수행하는 CPU 바운드 퍼포먼스 측정부(126), IO 바운드 퍼포먼스에 대한 측정을 수행하는 IO 바운드 퍼포먼스 측정부(128)와 연동되어 리소스 매니징을 수행하는 것으로 세분화될 수 도 있다.
또한, 팔러시 기술표(130)에는 시스템 리소스에 대하여 각 애플리케이션(10)별 디폴트 및 최대 범위가 저장되어 있다.
즉, 상기 엔터프라이즈 QoS(E-QoS) 리소스 매니저(120)는 애플리케이션(10)에서 예측한 퍼포먼스 파라미터와 애플리케이션(10) 클래스에 따르는 우선순위 및 팔러시 기술표에서 사용자가 설정한 리소스 할당을 기초로 하는 엔터프라이즈 QoS(E-QoS) 모델링에 의하여 리소스 매니징을 수행한다.
스페셜 I/O 스케듈러(136)는 상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링한다.
스페셜 I/O 서비스 루틴(138)은 상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행한다.
스페셜 I/O 서비스를 수행하는 시스템 콜은 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 입출력 동작을 담당한다. 이와같은 입출력 동작은, 예를들어, DVD 플레이어에서 인코딩되어 있는 MPEG 스트림을 네트워크로 발송하는 애플리케이션에서 나타날 수 있다. 이 경우, 애플리케이션은 작업의 시작과 종료를 담당하고, 중간에는 모니터링만을 수행한다.
일반적으로, I/O JOB은 다음과 같은 4 가지 클래스로 구분된다.
1) I/O 서비스 클래스 1: 사용자 공간에서 장치로 데이터를 이동시킨다. 예를들어, 메모리상의 사용자 데이터를 카피인하여 디스크로 저장하거나 네트워크로 전송하는 경우가 이에 해당한다.
2) I/O 서비스 클래스 2: 사용자 공간에서 사용자 공간으로 데이터를 이동시킨다. 예를들어, TCP/IP를 통하여 로컬 호스트로 데이터를 보내는 경우와 립싱크(lip sync)와 같은 멀티미디어 애플리케이션 사이에서 I/O 메카니즘을 사용하여 데이터를 주고 받는 경우가 이에 해당한다.
3) I/O 서비스 클래스 3: 장치에서 사용자 공간으로 데이터를 주고 받는다. 예를들어, 네트워크로부터 수신된 메시지나 디스크에서 읽은 데이터를 애플리케이션의 데이터 영역에 카피아웃하는 경우가 이에 해당한다.
4) I/O 서비스 클래스 4: 장치에서 장치로 데이터를 이동시킨다. 예를들어, CD-ROM과 같은 저장매체에 파일 형태로 저장되어 있는 데이터를 네트워크를 통하여 전송하거나 네트워크 파일 시스템에 원격 시스템이 데이터를 엑세스하는 경우가 이에 해당한다.
여기서, I/O 서비스 클래스 4가 멀티미디어 애플리케이션에 나타날 수 있는 스페셜 I/O에 해당한다. 스페셜 I/O(SIO)는 다음과 같은 3 가지 클래스로 구분된다.
1) SIO 클래스 1: 디스크 파일에서 네트워크로 또는 네트워크에서 디스크 파일로 입출력을 수행한다. 예를들어, VOD, 웹 다운로드, FTP등이 이에 해당한다.
2) SIO 클래스 2: I/O에서 네트워크로 또는 네트워크에서 I/O로 입출력을 수행한다. 예를들어, VoIP(Voice over Internet Protocol), 화상 회의(video conferencing)등이 이에 해당한다.
3) SIO 클래스 3: 애플케이션에서/으로 입출력을 수행한다. 또는 스레드( thread)에서 스레드로 또는 루프백(loop-back) 형태로 입출력을 수행한다. 예를들어, 립싱크가 이에 해당한다.
도 2에는 SIO 클래스 1의 구성예를 나타내었다. 도 2를 참조하면, SIO 클래스 1의 경우에는, 먼저, 파일 버퍼를 할당한다. 다음에는, 파일버퍼로부터 임의의 X 바이트를 읽어들인다. 프로토콜데이터유닛(PDU)측에서는 파일 버퍼가 비어있는지를 체크하여, 그 결과가 파일 버퍼가 비어있는 것으로 체크되면 포크(fork)를 수행하여 디스크 장치를 웨이크업(wake-up)하여 상기 디스크 장치로부터 데이터를 읽고 그 결과를 HQ에 저장한다. 만일, 파일 버퍼가 비어 있지 않은 것으로 체크되면 HQ에 저장되어 있는 데이터를 전송하고, 디스크를 슬립(sleep) 상태로 유지시킨다. 데이터는 사용자 데이터 프로토콜(user data protocol: UDP)에 따라 네트워크 장치로 발송하고 발송된 데이터는 네트워크 장치 측의 버퍼에 저장된다. 네트워크 장치의 버퍼에 저장된 UDP 데이터는 매체 엑세스 제어에 의하여 네트워크 장치로 전송된다. 여기서, 스페셜 I/O(SIO) 시스템 콜은 점선으로 도시한 바와 같이 파일 버퍼 할당에서 디스크 읽음 및 슬립 상태/웨이크엎 상태 유지까지를 관여한다.
도 3에는 SIO 클래스 2의 구성예를 나타내었다. 도 3를 참조하면, SIO 클래스 2의 경우에는 먼저, 외부 음성이 마이크이 입력되어 전기적인 음성신호로 변환된다. 변환된 음성신호는 하드웨어 보코더에 입력되어 디지털 음성 데이터로 변환된다. 디지털 음성 데이터는 버퍼에 저장되었다가 패킷화된다. 패킷화된 데이터는 HQ에 저장된다. 다음으로, 리얼타임전송프로토콜(real-time transport protocol: 이하 RTP라 칭함)/사용자데이터프로토콜(이하 UDP라 칭함)에 따라 패킷화된 데이터가 네트워크 장치로 발송된다. RTP/UDP에 의하여 발송된 데이터는 네트워크 장치의 버퍼에 저장된다. 네트워크 장치의 버퍼에 저장된 데이터는 매체 엑세스 제어에 의하여 네트워크 장치로 전송된다. 여기서, 스페셜 I/O(SIO) 시스템 콜은 점선으로 도시한 바와 같이 버퍼에의 저장에서 RTP/UDP 발송까지를 관여한다.
도 4에는 SIO 클래스 3의 구성예를 나타내었다. 도 4를 참조하면, SIO 클래스 3의 경우에는 먼저, 외부 음성이 마이크이 입력되어 전기적인 음성신호로 변환된다. 변환된 음성신호는 디지털 음성 데이터로 변환되어 버퍼에 저장된다. 버퍼에 저장된 음성 데이터는 소프트웨어 보코더에 입력된다. 소프트웨어 보코더는 음성 데이터를 패킷화하여 HQ에 저장한다. 이후의 동작은 도 3을 참조하여 설명한 바와 동일하다.
한편, 엔터프라이즈 QoS(E-QOS) 리소스 매니저(120)는 일정한 유형의 JOB에 대한 퍼포먼스 측정과 사용자가 미리 설정한 팔러시(policy)에 의하여 JOB 어드미션 제어를 수행한다. 퍼포먼스 측정은 12.5 마이크로초를 하나의 PU(performance unit:퍼포먼스 유닛)으로 한다. 즉, 어떤 애플리케이션이 수행되는 시간을 몇 개의 PU가 필요로 하는지를 계산하여 결정한다.
대부분의 펜티엄(등록상표)급 시스템에서는 포크(fork)나 실행동작(exec)을 제외하고 대부분의 시스템 콜이 수 마이크로 초에서 수십 마이크로초 내에 수행되고, 통신 네트워크에서의 기본 프레임 단위가 12.5 마이크로초이므로, PU는 12.5 마이크로 초인 것이 바람직하다. 또한, PU를 12.5 마이크로 초로 설정하면, 향후 멀티미디어 애플리케이션에서의 퍼포먼스 측정 및 벤치마킹에 용이하게 적용할 수 있다는 장점이 있다. 이러한 경우, 가용 퍼포먼스로 640 밀리초는 51,200 PU에 해당한다. 하지만, PU 설정은 12.5 마이크로 초로 한정되지 않으며 시스템의 성능에 따라 가변될 수 있다.
또한, 예를들어, 시스템이나 네트워크에서 MPEG 스트림을 처리하는 경우 초당 30 내지 60 프레임이 전송되어야 하며, G.723 표준에 따라 음성 통화를 수행하는 경우에는 30 밀리초 단위로 음성 패킷이 전송되어야 한다. 이 경우, CPU가 처리 가능한 MIPS 값 보다는 메모리 카피(copy)의 성능과 깊은 관계가 있는 시스템 버스의 속도, 통신 프로토콜, I/O 버퍼 크기등이 시스템의 성능을 좌우한다.
즉, 일반적인 멀티미디어 시스템에서 타임 인터벌(time interval)은 QoS 파 라미터에서 가장 중요한 속성이므로 본 실시예에서 시스템의 성능을 MIPS 단위가 아닌 타임 인터벌을 사용하며, 또한, 이러한 타임 인터벌을 스케듈링의 기준으로써 사용하기 때문에 효율적으로 멀티미디어 데이터를 처리할 수 있다.
하지만, MPEG 디코딩과 같은 CPU 바운드 JOB의 경우에는 CPU의 MIPS가 중요한 척도가 된다. 즉, 애플리케이션의 클래스에 따라 퍼포먼스 측정의 단위가 달라질 수 있다.
따라서, 각 애플리케이션에 대한 퍼포먼스 측정은 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정한 다음, 실제 운용 환경에서 측정치를 보정한다.
1) 임무 중대성(mission critical) 작업은 데비트-크레디트(debite-credit)와 같은 애플리케이션 특성에 맞는 벤치 마크 프로그램을 사용하여 어느 정도의 트랜잭션을 처리할 수 있는지를 측정한다. 시스템에서 처리하여야 하는 최소 및 최대 트랜잭션의 수를 결정하여야 하며, 만일, 이러한 작업만을 수행하기에도 시스템의 성능이 부족하다고 결정되면 보다 나은 성능의 시스템을 사용하도록 사용자에게 표시되어야 한다.
2) 리소스 예약을 필요로 하는 하이 미디어(high media) 애플리케이션과 G.723, 및 H.263 등의 표준을 따르는 대화형 미디어 애플리케이션은 스케듈링 주기등과 같은 QoS 파라미터와, 반복되는 중요 루틴에 대한 정보를 사용자가 명시한 다음, 초당 인코딩 또는 디코딩 수행 시간을 측정한다.
3) 기타 실시간 처리를 요하지 않는 애플리케이션은 퍼포먼스 측정을 수행하 지않음으로써 퍼포먼스 측정에 따라 발생할 수 있는 오버헤드를 줄인다. 하지만, 애플리케이션은 시스템의 퍼포먼스에 대한 정보를 입수하여 대응하는 것이 가능하며, 사용자에게 예측 응답 시간을 알려 주도록 하는 것이 바람직하다.
한편, 팔러시 설정은 시스템의 리소스에 대하여 4 가지 애플리케이션의 디폴트 및 최대 범위를 결정한다. 다음에는 새로운 애플리케이션이 수행되기 전에 상기 디폴트 및 최대 범위를 기초로 QoS 파라미터 교환을 수행한 다음, 어드미션 제어를 수행한다. 팔러시 설정은 예를들어 다음과 같이 수행할 수 있다.
1) 전체 시스템에 대하여 각 클래스의 애플리케이션이 확보하여 사용할 수 있는 CPU 시간의 최소값을 결정한다. 전체 시스템의 PU(PU_sys) = 51,200 PU에서 I/O JOB에 대한 리소스 분배를 20,000 PU로 하고, 나머지는 사용자 프로세스의 CPU 바운드 JOB을 수행하게 하고자 하는 경우, I/O JOB 클래스 1, 2, 3, 및 4에 대하여 각각 20%, 10%, 10%, 10%로 최소 리소스를 할당한다면, 각 애플리케이션에 대한 최소 리소스는,
PUc1_def(클래스 1의 애플리케이션에 대한 디폴트 PU) = 4,000 PU
PUc2_def(클래스 2의 애플리케이션에 대한 디폴트 PU) = 2,000 PU
PUc3_def(클래스 3의 애플리케이션에 대한 디폴트 PU) = 2,000 PU
PUc4_def(클래스 4의 애플리케이션에 대한 디폴트 PU) = 2,000 PU
과 같이 할당된다.
2) 다음에는, 애플리케이션의 사용 패턴에 의하여 나머지 리소스를 할당한다. 전체 20,000 PU에서 10,000 PU를 디폴트로 할당하였으므로, 남은 가용 리소스 는 10,000 PU이다. 이 나머지 리소스는 4 개의 애플리케이션 클래스가 공유할 수 있는 리소스이다. 만일, 클래스 1의 애플리케이션의 사용 패턴에서 최대 사용 값을 크게 하고, 클래스 3은 정해진 값 이상을 초과하지 못하도록 하고자 한다면, 부가적인 리소스들은,
PUc1_add(클래스 1의 애플리케이션에 대한 부가 PU) = 7,500 PU
PUc2_add(클래스 2의 애플리케이션에 대한 부가 PU) = 2,500 PU
PUc3_add(클래스 3의 애플리케이션에 대한 부가 PU) = 0 PU
PUc4_add(클래스 4의 애플리케이션에 대한 부가 PU) = 7,500 PU
과 같이 배분될 수 있다.
따라서, 각각의 애플리케이션 클래스는,
PUc1 = <PUc1_def, PUc1_max> = <4,000, 11,500> PU
PUc2 = <PUc2_def, PUc2_max> = <2,000, 4,500> PU
PUc3 = <PUc3_def, PUc3_max> = <2,000, 2,000> PU
PUc4 = <PUc4_def, PUc4_max> = <2,000, 9,500> PU
과 같은 범위의 CPU 리소스를 할당받게 된다.
엔터프라이즈 Qos(E-QoS) 모델링은 애플리케이션에서 예측한 퍼포먼스 파라미터와 애플리케이션 클래스에 따르는 우선순위 및 팔러시 관리자에서 사용자가 설정한 리소스 할당을 기초로 하여 다음과 같이 수행된다. 여기서, 스케듈링에 사용되는 태스크 큐는 클래스 1의 애플리케이션에 관련된 MQ, 클래스 2 및 3의 애플리케이션에 관련된 HQ와 클래스 4의 애플리케이션에 관련된 LQ의 3 가지로 구분된다.
먼저, 애플리케이션의 클래스에 따른 퍼포먼스 파라미터를 살펴보면 다음과 같다.
클래스 2의 애플리케이션의 대표적인 예로서는 음성 통신과 화상 회의가 있다. 음성 통신의 경우, 한쪽 방향의 처리를 보면, 두 단계의 태스크로 구분될 수 있다. 첫 번째는 I/O 장치에서 음성 코덱을 통하여 데이터를 읽고, 두 번째는 통신 프로토콜을 사용하여 상기 데이터를 패킷 형태로 30 밀리초 간격으로 전송하는 것이다. 화상 회의의 경우에는 각각 보코더와 비디오 코더를 통하여 입력된 데이터를 음성은 30 밀리초 단위로 영상은 30 내지 150 밀리초 단위로 전송한다.
클래스 3의 애플리케이션은 시스템 리소스를 헤비(heavy)하게 사용한다는 점을 제외하고는 클래스 2의 애플리케이션과 동일한 성격을 가진다.
클래스 2와 클래스 3의 애플리케이션은 일반적으로 10 밀리초 단위의 스케듈링을 요하며, 이러한 JOB이 많은 경우에는 기존의 시스템에서는 컨텍스트 오버헤드(context overhead)로 인하여 효율적인 시스템을 설계할 수 없었다.
본 발명에 따른 E-QoS 모델에서는 클래스 2와 클래스 3의 애플리케이션은 가능한 한 스페셜 I/O에서 장치-장치로 처리한다. 따라서, 사용자 공간의 컨텍스트 스위칭이 최소화된다. 또한, 이와같이 하는 경우에는 JOB의 수행시간, 즉, PU의 예측이 용이하다.
또한, 본 발명의 실시예에 따르면 클래스 2와 클래스 3의 JOB은 스케듈링에 있어서 가장 높은 우선 순위를 가지는 HQ를 사용한다. HQ는 타임 인터벌을 가질 수 있는 구조를 가지며, 스케듈러는 이 타임 인터벌과 JOB의 수행시간에 따라서 JOB을 균등하게 배분한다.
도 5에는 HQ의 JOB 인터벌 분포의 일예를 나타내었다. 도 5를 참조하면, 10 밀리초에서는 200 PU가 I/O에 할당된다. 클래스 2의 애플리케이션은 <20,45>, 클래스 3의 애플리케이션은 <20,20>의 범위에 해당하는 PU를 배분한다. 또한, 클래스 1과 클래스 4의 애플리케이션에 대한 PU의 디폴트 값을 합한 60 PU는 예비로 남겨 놓는다. 여기서, 클래스 2와 클래스 3의 최대 PU와 클래스 1 및 클래스 4의 디폴트 PU 합산값이 200을 초과하는 경우에는 일부 클래스 2 및 클래스 3의 JOB에 대한 QoS를 보장할 수 없게 된다. 따라서, 본 발명의 실시예에 따르면, 어드미션 제어에서 클래스 2와 클래스 3의 최대 PU와 클래스 1 및 클래스 4의 디폴트 PU 합산값이 200을 초과하는 경우에는 적절하게 제어한다.
본 발명의 실시예에 따르면, HQ를 JOB 스케듈링에 필요한 타임 주기들의 최대공약수(greatest common devisor: 이하 GCD라 칭함)를 단위로 구성한다. 10 밀리초 이하의 경우는 10 밀리초로 간주하는 것이 바람직하다. 또한, 매 GCD 주기마다 해당 큐에 있는 JOB을 소진될 때까지 순차적으로 처리한다.
도 6에는 HQ의 구성의 일예를 나타내었다. 도 6을 참조하면, 7 개의 클래스 2 및 클래스 3의 JOB이 HQ에 분포된다. 클래스 1의 애플리케이션의 트랜잭션은 하드 리얼 타임을 요하지 않기 때문에 정해진 PU를 적절하게 배분하여 사용하면 된다. 클래스 1의 스케듈링은 라운드로빈(RR: round robin)을 사용한다. 클래스 4의 애플리케이션은 우선 순위가 가장 낮으며, 클래스 1과 동일하게 라운드로빈을 사용하여 스케듈링을 수행한다.
HQ에 저장된 작업을 수행한 다음, MQ에 저장된 클래스 1의 JOB을 수행하며, LQ에 저장된 클래스 4의 JOB을 수행한다. 하지만, 클래스 1의 애플리케이션은 별도의 큐, 즉, MQ를 가지지만, HQ에서 MQ의 디폴트 부분을 항상 예비하고 있기 때문에 일정한 리소스에 대하여는 우선 순위를 보장받을 수 있다.
I/O 장치에서 네트워크로 데이터를 이동시키는 경우는 2 가지 형태가 있다. 하나는 I/O 버퍼에서 네트워크 버퍼로 데이터를 이동시키는 경우이고, 다른 하나는 디스크로부터 데이터를 읽어서 네트워크로 전송하는 경우이다. I/O 버퍼에서 네트워크 버퍼로 데이터를 전송하는 경우는 이상에서 설명한 SIO 클래스 2에 해당하며, 예를들어, VoIP, 화상 회의 등이 이에 해당한다. VoIP 애플리케이션에서는 초기에 TCP를 사용하여 콜 설정을 하고, 다음에 마이크/보고더 장치를 통하여 입력되는 패킷을 TUP/UDP를 통하여 내트워크로 전송하게 된다. 이때, 실제 데이터는 매 30 밀리초 단위로 30 바이트 정도의 데이터를 네트워크로 발송하여야 한다. 애플리케이션은 슬??(sleep) 상태로 들어가고, RTP 세션의 모니터링 이벤트 발생시에 이의 처리만을 수행하면 된다. 따라서, 커널 공간에서 사용자 공간으로 데이터 카피인 또는 카피아웃이 필요하지 않고, 이를 수행하기 위한 VoIP 사용자 프로세스를 스케듈링할 필요도 없다.
이러한 본 발명에 따른 방법에 의하면, 주기적인 스케듈링이 가능하면서도 시스템의 오버헤드는 극적으로 감소시킬 수 있다.
디스크에서 MPEG 스트림과 같은 파일 데이터를 읽어서 내트워크로 전송하는 경우는 VOD와 같은 애플리케이션이나 HTML 문서에서도 볼 수 있다. 이러한 애플리 케이션에서는 파일을 오픈한 다음에 데이터를 사용자 공간의 버퍼로 읽어 들인다. 다음에는 UDP 데이터 패킷을 만들어 네트워크로 전송한다.
도 7에는 디스크 IO를 수반한 스페셜 IO JOB을 일예로써 설명하기 위한 도면을 나타내었다. 도 7을 참조하면, 커널 내에 디스크 리드를 수반하는 스페셜 I/O(SIO) 시스템 콜을 처리하는 과정이 도시되어 있다. MPEG2 스트림을 초당 30 프레임, 500 킬로 바이트/프레임으로 전송하여야 하는 경우에는 스페셜 I/O 루틴은 3 개의 이벤트에 따라 처리된다. 먼저, 파일 버퍼에 데이터가 있는 경우에는 바로 패킷을 구성하여 UDP 데이터로서 전송한다. 하지만, 파일 버퍼에 다음에 전송할 데이터가 있지 않은 경우에는 바로 디스크로부터 읽어 들이는 루틴을 호출한다. 디스크 I/O는 20 밀리초 정도 소요되므로 디스크 인터럽트가 발생하면 이를 응답하여 데이터를 파일 버퍼에 쓴다.
상기와 같은 본 발명에 따른 운영체제는 엔터프라이즈 QoS(E-QoS) 모델에서 마이크로 스케듈링 알고리즘을 사용함으로써 임무 중대성 애플리케이션과 인터액티브 멀티미디어 또는 MPEG 비디오 플레이와 같은 멀티미디어 애플리케이션을 클래스로 구분하고 클래스 별로 시스템 및 네트워크 리소스를 할당하고 조정함으로써 전용 서비스망이 아닌 인트라넷 및 인터넷 망에서 멀티미디어 QoS를 효율성있게 지원할 수 있다.
상기와 같은 본 발명에 의한 마이크로 스케듈링 방법은 멀티미디어 데이터를 처리하는 운영체제가 존재하는 모든 컴퓨터와, 웹 서버, 멀티미디어 서버등과 같은 서버(server)와, 라우터(router)와 같은 네트워크 장비, 및 컴퓨터 스위칭 장비등 의 운영체제에 적용될 수 있다.
특히, 상기와 같은 본 발명에 따른 마이크로 스케듈링 알고리즘은 컴퓨터 프로그램으로 작성할 수 있다. 상기 프로그램은 멀티미디어 애플리케이션을 지원하기 위한 운영체제 커널내에 삽입됨으로써 운영체제 커널로 구현될 수 있다. 상기 프로그램은 코드 및 코드 세그멘트들을 포함하며 본 발명이 속하는 기술분야의 프로그래머에 의해 용이하게 추론될 수 있다. 그리고, 컴퓨터에서 사용되는 매체로부터 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이러한 프로그램들은 컴퓨터에서 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 기록 매체는 플로피 디스크나 하드 디스크와 같은 자기기록 매체와, 시디롬(CD-ROM)이나 디비디(DVD)와 같은 광기록매체들을 포함한다. 또한, 상기 프로그램들은 인터넷과 같은 캐리어 웨이브에 의하여 전송될 수 있다.
상술한 바와 같이 본 발명에 따르면 시스템 콜을 추가적으로 사용하여 전용 서비스망이 아닌 인트라넷 및 인터넷 망에서 멀티미디어 QoS를 효율성있게 지원할 수 있다.

Claims (34)

  1. 멀티미디어 애플리케이션을 지원하기 위한 운영체제 커널에서 구현되는 스케듈링 방법에 있어서,
    (a) 리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운 드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하는 단계;
    (b) 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행하는 단계;
    (c) 상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링하는 단계; 및
    (d) 상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행하는 단계;를 포함하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  2. 제1항에 있어서, 상기 (a) 단계는,
    애플리케이션에서 예측한 퍼포먼스 파라미터와 애플리케이션 클래스에 따르는 우선순위 및 팔러시 기술표에서 사용자가 설정한 리소스 할당을 기초로 하는 엔터프라이즈 QoS 모델링에 의하여 수행되는 것을 특징으로 하는 마이크로 스케듈링 방법.
  3. 제1항에 있어서, 상기 (a) 단계는,
    (a-1) 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하는 단계; 및
    (a-2) 실제 운용 환경에서 측정치를 보정하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 마이크로 스케듈링 방법.
  4. 제1항에 있어서,
    가용성 테스트를 수행하는 단계;
    어드미션 제어 및 리소스 예약을 수행하는 단계;
    시스템 리소스에 대하여 각 애플리케이션별 디폴트 및 최대 범위를 결정하기 위한 팔러시를 기술하는 단계;
    CPU 바운드 퍼포먼스에 대한 측정을 수행하는 단계;
    IO 바운드 퍼포먼스에 대한 측정을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 스페셜 I/O 시스템 콜은,
    사용자 공간에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 1, 사용자 공간에서 사용자 공간으로 데이터를 이동시키는 I/O 서비스 클래스 2, 사용자 공간으로 데이터를 주고 받는 I/O 서비스 클래스 3, 및 장치에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 4의 4 가지 클래스로 구분되는 I/O JOB에서,
    멀티미디어 애플리케이션에 나타날 수 있는 I/O 서비스 클래스 4를 스페셜 I/O에 해당하는 JOB인 것으로 결정하여, 애플리케이션에서 수행할 JOB이 스페셜 I/O에 해당하는 경우에 상기 스페셜 I/O 스케듈링 수단에 의하여 배분된 리소스에 따라 주기적인 입출력을 담당하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  6. 제5항에 있어서, 상기 스페셜 I/O는,
    디스크 파일에서 네트워크로 또는 네트워크에서 디스크 파일로 입출력을 수행하는 스페셜 IO 클래스 1, I/O에서 네트워크로 또는 네트워크에서 I/O로 입출력을 수행하는 스페셜 IO 클래스 2, 및 애플케이션에서/으로 입출력을 수행하거나 스레드( thread)에서 스레드로 또는 루프백(loop-back) 형태로 입출력을 수행하는 스페셜 IO 클래스 3의 3 가지 클래스로 구분되는 것을 특징으로 하는 마이크로 스케듈링 방법.
  7. 제6항에 있어서, 상기 (c) 단계에서 스케듈링에 사용되는 태스크 큐는,
    스페셜 IO 클래스 1의 애플리케이션에 관련된 MQ, 스페셜 IO 클래스 2 및 3의 애플리케이션에 관련된 HQ와 스페셜 IO 클래스 4의 애플리케이션에 관련된 LQ의 3 가지로 구분되는 것을 특징으로 하는 마이크로 스케듈링 방법.
  8. 제7항에 있어서, 상기 (c) 단계는,
    상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에 스케듈링에 있어서 가장 높은 우선 순위를 가지는 HQ를 사용하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  9. 제7항에 있어서,
    상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에 가능한 한 스페셜 I/O에서 장치-장치로 처리하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  10. 제2항에 있어서, 상기 팔러시 기술표는,
    시스템의 리소스에 대하여 4 가지 애플리케이션의 디폴트 리소스 및 최대 리소스의 범위를 팔러시로서 기술하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  11. 제10항에 있어서, 상기 팔러시 기술표는,
    I/O JOB 클래스 1, 2, 3, 및 4에 대하여 각 클래스의 애플리케이션이 확보하여 사용할 수 있는 CPU 시간의 최소값을 소정의 비율로 최소 리소스를 할당함으로써 각 애플리케이션에 대한 디폴트 리소스를 할당하는 단계;
    애플리케이션의 사용 패턴에 의하여 4 개의 애플리케이션 클래스가 공유할 수 있는 나머지 리소스를 할당하는 단계; 및
    각각의 애플리케이션 클래스에 대하여 일정한 범위의 CPU 리소스를 할당하는단계;를 포함하는 방법에 의하여 설정된 팔러시를 포함하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  12. 제11항에 있어서,
    새로운 애플리케이션이 수행되기 전에 상기 디폴트 리소스 및 최대 리소스의 범위를 사용하여 QoS 파라미터 교환과 어드미션 제어를 수행하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  13. 제6항에 있어서,
    스페셜 IO 클래스 1의 경우,
    (a-1) 파일 버퍼를 할당하는 단계;
    (b-1) X를 소정의 양의 정수라 할 때 파일 버퍼로부터 X 바이트를 읽어들이는 단계;
    (c-1) 프로토콜데이터유닛(PDU)에서 파일 버퍼가 비어있는지를 체크하는 단계;
    (d-1) 상기 (c-1) 단계에서 파일 버퍼가 비어있는 것으로 체크되면 포크(fork)를 수행하여 디스크 장치를 웨이크업(wake-up)하여 상기 디스크 장치로부터 데이터를 읽는 단계;
    (e-1) 상기 (d-1) 단계의 결과를 HQ에 저장하는 단계; 및
    (f-1) 상기 (c-1) 단계에서 파일 버퍼가 비어 있지 않은 것으로 체크되면 HQ에 저장되어 있는 데이터를 전송하고, 디스크를 슬립(sleep) 상태로 유지시키는 단계;
    (g-1) UDP데이타를 네트워크 장치로 발송하는 단계;
    (h-1) 발송된 UDP데이타를 네트워크 장치 측의 버퍼에 저장하는 단계; 및
    (i-1) 네트워크 장치의 버퍼에 저장된 UDP데이타를 매체 엑세스 제어에 의하 여 네트워크 장치로 전송하는 단계;를 수행하고,
    상기 스페셜 I/O 시스템 콜은 (a-1) 내지 (f-1) 단계에 관여하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  14. 제6항에 있어서,
    스페셜 IO 클래스 2의 경우,
    (a-2) 외부 음성을 마이크를 통하여 입력하는 단계;
    (b-2) 입력된 외부 음성을 전기적인 음성신호로 변환하는 단계;
    (c-2) 하드웨어 보코더에서 변환된 음성신호를 디지털 음성 데이터로 변환하는 단계;
    (d-2) 상기 디지털 음성 데이터를 버퍼에 저장하는 단계;
    (e-2) 버퍼에 저장된 디지털 음성 데이터를 패킷화하는 단계;
    (f-2) 패킷화된 데이터를 HQ에 저장하는 단계;
    (g-2) 패킷전송요구신호(RTP)/사용자데이터패킷(UDP)를 네트워크 장치로 발송하는 단계;
    (h-2) 발송된 RTP/UDP데이타를 네트워크 장치의 버퍼에 저장하는 단계; 및
    (i-2) 네트워크 장치의 버퍼에 저장된 RTP/UDP데이타를 매체 엑세스 제어에 의하여 네트워크 장치로 발송하는 단계;를 수행하고,
    상기 스페셜 I/O 시스템 콜은 (e-2) 내지 (g-2) 단계에 관여하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  15. 제1항에 있어서, 상기 퍼포먼스 측정은,
    (pm-a) 각 애플리케이션을 복수의 클래스로 식별하는 단계;
    (pm-b) 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하는 단계; 및
    (pm-b) 실제 운용 환경에서 측정치를 보정하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 마이크로 스케듈링 방법.
  16. 제15항에 있어서, 상기 (pm-b) 단계는,
    (pm-b-1) 임무 중대성(mission critical) 작업은 애플리케이션 특성에 맞는 벤치 마크 프로그램을 사용하여 어느 정도의 트랜잭션을 처리할 수 있는지를 측정하여 시스템에서 처리하여야 하는 최소 및 최대 트랜잭션의 수를 결정하는 단계;
    (pm-b-2) 리소스 예약을 필요로 하는 하이 미디어(high media) 애플리케이션과 G.723, 및 H.263 등의 표준을 따르는 대화형 미디어 애플리케이션은 스케듈링 주기등과 같은 QoS 파라미터와, 반복되는 중요 루틴에 대한 정보를 사용자가 명시한 다음, 초당 인코딩 또는 디코딩 수행 시간을 측정하는 단계; 및
    (pm-b-3) 기타 실시간 처리를 요하지 않는 애플리케이션은 퍼포먼스 측정을 생략하는 단계;를 포함하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  17. 제16항에 있어서, 상기 (pm-b) 단계는,
    (pm-b-1-na) 만일 상기 (pm-b-1) 단계에서 임무 중대성 작업만을 수행하기에도 시스템의 성능이 부족하다고 결정되면 보다 나은 성능의 시스템을 사용하도록 사용자에게 표시하는 단계;를 더 포함하는 것을 특징으로 하는 마이크로 스케듈링 방법.
  18. 멀티미디어 애플리케이션을 지원하기 위한 운영체제 커널 장치에 있어서,
    리소스 예약 및 팔러시(policy)에 의한 리소스 할당을 위하여 I/O 바운드 JOB 및 CPU 바운드 JOB에 대한 퍼포먼스 측정을 수행하고, 사용자가 미리 설정한 팔러시에 의하여 퍼포먼스 파라미터를 적절하게 조정하기 위한 JOB 어드미션 제어를 수행하는 엔터프라이즈 QoS 리소스 매니징 수단;
    상기 퍼포먼스 측정과 JOB 어드미션 제어를 기초로, 멀티미디어 애플리케이션의 특성상 사용자 공간으로의 데이터 이동이 필요하지 않은 데이터에 대하여 주기적으로 입출력 JOB을 수행하도록 스케듈링하는 스페셜 I/O 스케듈링 수단; 및
    상기 스페셜 I/O 스케듈링 수단에 의하여 결정된 우선 순위에 따라 스페셜 I/O 시스템 콜을 수행하는 스페셜 I/O 서비스 루틴 수단;을 포함하는 것을 특징으로 하는 운영체제 커널 장치.
  19. 제18항에 있어서, 상기 엔터프라이즈 QoS 리소스 매니징 수단은,
    애플리케이션에서 예측한 퍼포먼스 파라미터와 애플리케이션 클래스에 따르는 우선순위 및 팔러시 기술표에서 사용자가 설정한 리소스 할당을 기초로 하는 엔터프라이즈 QoS 모델링에 의하여 리소스 매니징을 수행하는 것을 특징으로 하는 운영체제 커널 장치.
  20. 제18항에 있어서, 상기 각 클래스의 애플리케이션에 대한 퍼포먼스 측정은, 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하고, 실제 운용 환경에서 측정치를 보정하여 이루어지는 것을 특징으로 하는 운영체제 커널 장치.
  21. 제18항에 있어서,
    가용성 테스트를 수행하는 가용성 테스트 수단;
    어드미션 제어 및 리소스 예약을 수행하는 어드미션 제어 및 리소스 예약 수단;
    시스템 리소스에 대하여 각 애플리케이션별 디폴트 및 최대 범위를 결정하기 위한 팔러시 기술표;
    CPU 바운드 퍼포먼스에 대한 측정을 수행하는 CPU 바운드 퍼포먼스 측정 수단; 및
    IO 바운드 퍼포먼스에 대한 측정을 수행하는 IO 바운드 퍼포먼스 측정 수단;을 더 포함하는 것을 특징으로 하는 운영체제 커널 장치.
  22. 제18항 내지 제21항 중 어느 한 항에 있어서, 상기 스페셜 I/O 시스템 콜은,
    사용자 공간에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 1, 사용자 공간에서 사용자 공간으로 데이터를 이동시키는 I/O 서비스 클래스 2, 사용자 공간으로 데이터를 주고 받는 I/O 서비스 클래스 3, 및 장치에서 장치로 데이터를 이동시키는 I/O 서비스 클래스 4의 4 가지 클래스로 구분되는 I/O JOB에서,
    멀티미디어 애플리케이션에 나타날 수 있는 I/O 서비스 클래스 4를 스페셜 I/O에 해당하는 JOB인 것으로 결정하여, 애플리케이션에서 수행할 JOB이 스페셜 I/O에 해당하는 경우에 상기 스페셜 I/O 스케듈링 수단에 의하여 배분된 리소스에 따라 주기적인 입출력을 담당하는 것을 특징으로 하는 운영체제 커널 장치.
  23. 제22항에 있어서, 상기 스페셜 I/O는,
    디스크 파일에서 네트워크로 또는 네트워크에서 디스크 파일로 입출력을 수행하는 스페셜 IO 클래스 1, I/O에서 네트워크로 또는 네트워크에서 I/O로 입출력을 수행하는 스페셜 IO 클래스 2, 및 애플케이션에서/으로 입출력을 수행하거나 스레드(thread)에서 스레드로 또는 루프백(loop-back) 형태로 입출력을 수행하는 스페셜 IO 클래스 3의 3 가지 클래스로 구분되는 것을 특징으로 하는 운영체제 커널 장치.
  24. 제23항에 있어서, 상기 스페셜 I/O 스케듈링 수단에서 스케듈링에 사용되는 태스크 큐는,
    스페셜 IO 클래스 1의 애플리케이션에 관련된 MQ, 스페셜 IO 클래스 2 및 3의 애플리케이션에 관련된 HQ와 스페셜 IO 클래스 4의 애플리케이션에 관련된 LQ의 3 가지로 구분되는 것을 특징으로 하는 운영체제 커널 장치.
  25. 제24항에 있어서, 상기 스페셜 I/O 스케듈링 수단은,
    상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에 스케듈링에 있어서 가장 높은 우선 순위를 가지는 HQ를 사용하는 것을 특징으로 하는 운영체제 커널 장치.
  26. 제25항에 있어서,
    상기 스페셜 IO 클래스 2와 스페셜 IO 클래스 3의 JOB의 경우에 가능한 한 스페셜 I/O에서 장치-장치로 처리하는 것을 특징으로 하는 운영체제 커널 장치.
  27. 제19항에 있어서, 상기 팔러시 기술표는,
    시스템의 리소스에 대하여 4 가지 애플리케이션의 디폴트 리소스 및 최대 리소스의 범위를 팔러시로서 기술하는 것을 특징으로 하는 운영체제 커널 장치.
  28. 제27항에 있어서, 상기 팔러시 기술표는,
    I/O JOB 클래스 1, 2, 3, 및 4에 대하여 각 클래스의 애플리케이션이 확보하여 사용할 수 있는 CPU 시간의 최소값을 소정의 비율로 최소 리소스를 할당함으로써 각 애플리케이션에 대한 디폴트 리소스를 할당하고,
    애플리케이션의 사용 패턴에 의하여 4 개의 애플리케이션 클래스가 공유할 수 있는 나머지 리소스를 할당하고,
    각각의 애플리케이션 클래스에 대하여 일정한 범위의 CPU 리소스를 할당하여 설정된 팔러시를 포함하는 것을 특징으로 하는 운영체제 커널 장치.
  29. 제28항에 있어서,
    새로운 애플리케이션이 수행되기 전에 상기 디폴트 리소스 및 최대 리소스의 범위를 사용하여 QoS 파라미터 교환과 어드미션 제어를 수행하는 것을 특징으로 하는 운영체제 커널 장치.
  30. 제23항에 있어서,
    스페셜 IO 클래스 1의 경우,
    (a-1) 파일 버퍼를 할당하고;
    (b-1) X를 소정의 양의 정수라 할 때 파일 버퍼로부터 X 바이트를 읽어들이고;
    (c-1) 프로토콜데이터유닛(PDU)에서 파일 버퍼가 비어있는지를 체크하고;
    (d-1) 상기 (c-1) 단계에서 파일 버퍼가 비어있는 것으로 체크되면 포크(fork)를 수행하여 디스크 장치를 웨이크업(wake-up)하여 상기 디스크 장치로부터 데이터를 읽고;
    (e-1) 상기 (d-1) 단계의 결과를 HQ에 저장하고;
    (f-1) 상기 (c-1) 단계에서 파일 버퍼가 비어 있지 않은 것으로 체크되면 HQ에 저장되어 있는 데이터를 전송하고, 디스크를 슬립(sleep) 상태로 유지시키고;
    (g-1) UDP데이타를 네트워크 장치로 발송하고;
    (h-1) 발송된 UDP데이타를 네트워크 장치 측의 버퍼에 저장하고;
    (i-1) 네트워크 장치의 버퍼에 저장된 UDP데이타를 매체 엑세스 제어에 의하여 네트워크 장치로 전송하고,
    상기 스페셜 I/O 시스템 콜은 (a-1) 내지 (f-1)에 관여하는 것을 특징으로 하는 운영체제 커널 장치.
  31. 제23항에 있어서,
    스페셜 IO 클래스 2의 경우,
    (a-2) 외부 음성을 마이크를 통하여 입력하고;
    (b-2) 입력된 외부 음성을 전기적인 음성신호로 변환하고;
    (c-2) 하드웨어 보코더에서 변환된 음성신호를 디지털 음성 데이터로 변환하고;
    (d-2) 상기 디지털 음성 데이터를 버퍼에 저장하고;
    (e-2) 버퍼에 저장된 디지털 음성 데이터를 패킷화하고;
    (f-2) 패킷화된 데이터를 HQ에 저장하고;
    (g-2) 패킷전송요구신호(RTP)/사용자데이터패킷(UDP)를 네트워크 장치로 발송하고;
    (h-2) 발송된 RTP/UDP데이타를 네트워크 장치의 버퍼에 저장하고;
    (i-2) 네트워크 장치의 버퍼에 저장된 RTP/UDP데이타를 매체 엑세스 제어에 의하여 네트워크 장치로 발송하고;
    상기 스페셜 I/O 시스템 콜은 (e-2) 내지 (g-2)에 관여하는 것을 특징으로 하는 운영체제 커널 장치.
  32. 제18항에 있어서, 상기 퍼포먼스 측정은,
    (pm-a) 각 애플리케이션을 복수의 클래스로 식별하고;
    (pm-b) 애플리케이션의 클래스에 따라 테스트 프로그램으로 기본적인 수치를 정하고;
    (pm-b) 실제 운용 환경에서 측정치를 보정하여 이루어지는 것을 특징으로 하는 운영체제 커널 장치.
  33. 제32항에 있어서, 상기 (pm-b)는,
    (pm-b-1) 임무 중대성(mission critical) 작업은 애플리케이션 특성에 맞는 벤치 마크 프로그램을 사용하여 어느 정도의 트랜잭션을 처리할 수 있는지를 측정하여 시스템에서 처리하여야 하는 최소 및 최대 트랜잭션의 수를 결정하고;
    (pm-b-2) 리소스 예약을 필요로 하는 하이 미디어(high media) 애플리케이션과 G.723, 및 H.263 등의 표준을 따르는 대화형 미디어 애플리케이션은 스케듈링 주기등과 같은 QoS 파라미터와, 반복되는 중요 루틴에 대한 정보를 사용자가 명시한 다음, 초당 인코딩 또는 디코딩 수행 시간을 측정하고;
    (pm-b-3) 기타 실시간 처리를 요하지 않는 애플리케이션은 퍼포먼스 측정을 생략하여 이루어지는 것을 특징으로 하는 운영체제 커널 장치.
  34. 제33항에 있어서, 상기 (pm-b)는,
    (pm-b-1-na) 만일 상기 (pm-b-1)에서 임무 중대성 작업만을 수행하기에도 시스템의 성능이 부족하다고 결정되면 보다 나은 성능의 시스템을 사용하도록 사용자에게 표시하는 것을 특징으로 하는 운영체제 커널 장치.
KR1019990027887A 1999-07-10 1999-07-10 마이크로 스케듈링 방법 및 운영체제 커널 장치 KR100727901B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019990027887A KR100727901B1 (ko) 1999-07-10 1999-07-10 마이크로 스케듈링 방법 및 운영체제 커널 장치
JP2000067465A JP2001043094A (ja) 1999-07-10 2000-03-10 マイクロスケジューリング方法及び運営体制カーネル
CNB001047140A CN1198210C (zh) 1999-07-10 2000-03-24 微调度方法和包含操作系统内核的计算装置
US09/536,044 US6779181B1 (en) 1999-07-10 2000-03-27 Micro-scheduling method and operating system kernel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990027887A KR100727901B1 (ko) 1999-07-10 1999-07-10 마이크로 스케듈링 방법 및 운영체제 커널 장치

Publications (2)

Publication Number Publication Date
KR20010009501A KR20010009501A (ko) 2001-02-05
KR100727901B1 true KR100727901B1 (ko) 2007-06-14

Family

ID=19600876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990027887A KR100727901B1 (ko) 1999-07-10 1999-07-10 마이크로 스케듈링 방법 및 운영체제 커널 장치

Country Status (4)

Country Link
US (1) US6779181B1 (ko)
JP (1) JP2001043094A (ko)
KR (1) KR100727901B1 (ko)
CN (1) CN1198210C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170112774A (ko) * 2016-04-01 2017-10-12 한국전자통신연구원 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60042965D1 (de) * 2000-05-24 2009-10-29 Sony Deutschland Gmbh Dienstqualitätsunterhandlung
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US7315892B2 (en) * 2001-06-27 2008-01-01 International Business Machines Corporation In-kernel content-aware service differentiation
KR100420268B1 (ko) * 2001-12-21 2004-03-02 한국전자통신연구원 스택을 이용한 커널 스케줄링 방법
US7085831B2 (en) * 2002-01-16 2006-08-01 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US7996507B2 (en) * 2002-01-16 2011-08-09 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
US8589930B2 (en) 2002-03-22 2013-11-19 Toyota Jidosha Kabushiki Kaisha Determining whether to execute a new task by deleting task objects of existing tasks
US20040001510A1 (en) * 2002-07-01 2004-01-01 Hamilton Anthony G. Method and system for processing communications data
US7512947B2 (en) * 2003-03-31 2009-03-31 Avaya Inc. System and method for efficient scheduling of periodic phenomena
KR100630052B1 (ko) * 2004-01-26 2006-09-27 삼성전자주식회사 실시간 전송 프로토콜 데이터의 전송을 위한 처리 시스템 및 방법
US7496653B2 (en) * 2005-01-31 2009-02-24 International Business Machines Corporation Method, system, and computer program product for providing quality of service guarantees for clients of application servers
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US20070196623A1 (en) * 2006-02-21 2007-08-23 Avery Dennison Corporation Laser or ink jet printable sheet assembly
US7962563B2 (en) * 2006-03-24 2011-06-14 International Business Machines Corporation System and method for managing storage system performance as a resource
US9588809B2 (en) 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US20080271030A1 (en) * 2007-04-30 2008-10-30 Dan Herington Kernel-Based Workload Management
CN101039282B (zh) * 2007-05-14 2010-06-02 中兴通讯股份有限公司 一种对流入cpu系统的报文的流量管理方法
US7790531B2 (en) 2007-12-18 2010-09-07 Micron Technology, Inc. Methods for isolating portions of a loop of pitch-multiplied material and related structures
US8030218B2 (en) * 2008-03-21 2011-10-04 Micron Technology, Inc. Method for selectively modifying spacing between pitch multiplied structures
US8566585B2 (en) * 2008-07-14 2013-10-22 Nyotron Information Security Ltd. System and a method for processing system calls in a computerized system that implements a kernel
US9940181B2 (en) * 2008-07-14 2018-04-10 Nyotron Information Security Ltd. System and method for reacting to system calls made to a kernal of the system
US8347302B1 (en) 2008-10-09 2013-01-01 Amazon Technologies, Inc. System-aware resource scheduling
JP5245722B2 (ja) * 2008-10-29 2013-07-24 富士通株式会社 スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
KR101827369B1 (ko) * 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
KR20140102478A (ko) * 2013-02-14 2014-08-22 한국전자통신연구원 워크플로우 작업 스케줄링 장치 및 그 방법
US9244939B2 (en) 2013-06-27 2016-01-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing I/O operations in a shared file system
US9606833B2 (en) 2014-04-09 2017-03-28 Samsung Electronics Co., Ltd Method and apparatus for providing a preemptive task scheduling scheme in a real time operating system
CN105279019B (zh) * 2014-06-10 2018-11-23 中国移动通信集团公司 一种应用程序的调度方法、装置和终端设备
CN104092626A (zh) * 2014-07-22 2014-10-08 太仓市同维电子有限公司 保障ip融合通信系统服务质量的方法
US9674099B2 (en) * 2014-09-25 2017-06-06 Microsoft Technology Licensing, Llc Network classification for applications
US10146577B2 (en) 2016-12-11 2018-12-04 International Business Machines Corporation Enabling real-time CPU-bound in-kernel workloads to run infinite loops while keeping RCU grace periods finite
CN107748682B (zh) * 2017-10-31 2020-11-13 Oppo广东移动通信有限公司 后台应用管控方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303369A (en) * 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
US5406476A (en) * 1991-04-11 1995-04-11 Sun Microsystems, Inc. Method and apparatus for resource constraint scheduling
US5682477A (en) * 1993-05-27 1997-10-28 Fujitsu Limited System for selecting an implementing class having corresponding prescribed resources matching the availed resources and calculating compensating data to be stored in a management table
KR19980086596A (ko) * 1997-05-22 1998-12-05 제프리 엘. 포맨 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링
KR20000026428A (ko) * 1998-10-20 2000-05-15 전한얼 실시간 운영 시스템에서의 서비스 품질 관리 시스템 및 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2077061C (en) * 1991-11-22 1998-04-21 Mark J. Baugher Scheduling system for distributed multimedia resources
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
JPH05265974A (ja) * 1992-03-17 1993-10-15 Hitachi Ltd 計算機資源配分方式
US5543822A (en) * 1993-05-28 1996-08-06 Helix Software Company, Inc. Method for increasing the video throughput in computer systems
US6041354A (en) * 1995-09-08 2000-03-21 Lucent Technologies Inc. Dynamic hierarchical network resource scheduling for continuous media
IL116708A (en) * 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
DE69738832D1 (de) * 1996-03-28 2008-08-28 Hitachi Ltd Verfahren zum Planen von periodischen Prozessabläufen
US6279039B1 (en) * 1996-04-03 2001-08-21 Ncr Corporation Resource management method and apparatus for maximizing multimedia performance of open systems
JPH10161986A (ja) * 1996-11-27 1998-06-19 Hitachi Ltd 資源情報通信方式および方法
US6654780B1 (en) * 1997-03-28 2003-11-25 International Business Machines Corporation System of managing processor resources in a non-dedicated computer system
JPH11161505A (ja) * 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd メディア送出装置
US6470406B1 (en) * 1999-06-25 2002-10-22 International Business Machines Corporation Managing isochronous processes in a heterogenous work environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303369A (en) * 1990-08-31 1994-04-12 Texas Instruments Incorporated Scheduling system for multiprocessor operating system
US5406476A (en) * 1991-04-11 1995-04-11 Sun Microsystems, Inc. Method and apparatus for resource constraint scheduling
US5682477A (en) * 1993-05-27 1997-10-28 Fujitsu Limited System for selecting an implementing class having corresponding prescribed resources matching the availed resources and calculating compensating data to be stored in a management table
KR19980086596A (ko) * 1997-05-22 1998-12-05 제프리 엘. 포맨 컴퓨터 자원에 대한 비례적인 사용 및 응답 시간의 스케쥴링
KR20000026428A (ko) * 1998-10-20 2000-05-15 전한얼 실시간 운영 시스템에서의 서비스 품질 관리 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170112774A (ko) * 2016-04-01 2017-10-12 한국전자통신연구원 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템
KR101955715B1 (ko) 2016-04-01 2019-03-07 한국전자통신연구원 복수의 자가적응형 어플리케이션들을 포함하는 임베디드 시스템

Also Published As

Publication number Publication date
US6779181B1 (en) 2004-08-17
CN1198210C (zh) 2005-04-20
CN1280335A (zh) 2001-01-17
KR20010009501A (ko) 2001-02-05
JP2001043094A (ja) 2001-02-16

Similar Documents

Publication Publication Date Title
KR100727901B1 (ko) 마이크로 스케듈링 방법 및 운영체제 커널 장치
Rajkumar et al. Resource kernels: A resource-centric approach to real-time and multimedia systems
US7457312B2 (en) Bandwidth sharing in advanced streaming format
Sojka et al. Modular software architecture for flexible reservation mechanisms on heterogeneous resources
US7685599B2 (en) Method and system for performing real-time operation
Strosnider et al. The deferrable server algorithm for enhanced aperiodic responsiveness in hard real-time environments
US7773522B2 (en) Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US7140016B2 (en) Media accelerator quality of service
Bernat et al. Guaranteed on-line weakly-hard real-time systems
US20090100435A1 (en) Hierarchical reservation resource scheduling infrastructure
US20020019843A1 (en) Multiprocessor object control
US20050066330A1 (en) Method and system for performing real-time operation
JP2009541848A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
Ramakrishnan et al. Operating system support for a video-on-demand file service
Levine et al. Empirical evaluation of OS endsystem support for real-time CORBA object request brokers
Bosch et al. Real-time disk scheduling in a mixed-media file system
Gopalakrishna et al. Efficient quality of service support in multimedia computer operating systems
KR20010098904A (ko) 멀티프로세서 객체 제어
US7925769B2 (en) Media flow converter for use in real-time delivery transactions
Lakshman et al. AQUA: An Adaptive End-System Quality of Service Architecture
Shen et al. User Level Scheduling of Communicating Real-Time Tasks.
CN107329819A (zh) 一种作业管理方法及装置
Wolf et al. Evaluation of a CPU scheduling mechanism for multimedia systems
Chu CPU service classes: A soft real-time framework for multimedia applications
Gopalan et al. Coordinated allocation and scheduling of multiple resources in real-time operating systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150528

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee