KR20060023514A - 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램 - Google Patents

정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20060023514A
KR20060023514A KR1020057001912A KR20057001912A KR20060023514A KR 20060023514 A KR20060023514 A KR 20060023514A KR 1020057001912 A KR1020057001912 A KR 1020057001912A KR 20057001912 A KR20057001912 A KR 20057001912A KR 20060023514 A KR20060023514 A KR 20060023514A
Authority
KR
South Korea
Prior art keywords
partition
interrupt
interrupt processing
processing
request
Prior art date
Application number
KR1020057001912A
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 KR20060023514A publication Critical patent/KR20060023514A/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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Abstract

복수의 오퍼레이팅 시스템(OS)에 대응하는 처리인 파티션 설정에 기초하는 처리 제어에 있어서, 인터럽트 요구를 효율적으로 처리 가능하게 하는 구성을 실현한다. 복수의 OS에 기초하는 처리를 전환 제어하는 프로세스 제어에 있어서, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 구성으로 하였다. 또한 최대 허용 지연 시간, 최소 허용 지연 시간을 고려하여 처리 스케줄을 설정한다. 본 구성에 의해, 파티션 전환 처리의 증가를 기본적으로 1회로만 억제하는 것이 가능하게 되어, 효율적인 데이터 처리가 가능하게 된다.
데이터, 최대 허용 지연 시간, 파티션, 인터럽트, 오퍼레이팅 시스템

Description

정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램{INFORMATION PROCESSING DEVICE, PROCESS CONTROL METHOD, AND COMPUTER PROGRAM}
본 발명은, 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램에 관한 것이다. 특히, 인터럽트 요구 처리의 실행 타이밍의 관리에 의해 최적의 데이터 처리를 실현하는 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램에 관한 것이다.
일반적으로, 컴퓨터 시스템은, 주변 하드웨어에서 소프트웨어의 개재가 필요한 사정이 발생했을 때에, 인터럽트 요구를 프로세서에 송출함으로써, 그 시점에서 실행되어 있던 프로그램의 실행을 중단하고, 인터럽트 처리 프로그램을 기동하는 기구를 갖는다.
한편, 최근의 프로세서는, 예를 들면 이하의 a∼c의 기구를 채용함으로써 그 성능을 비약적으로 높이고 있다. 즉,
a. 캐쉬 메모리
b. 다수의 레지스터
c. 분기 예측 기구
그런데, 이들 기구는, 인터럽트 처리와 같이, 미리 예측할 수 없는 시점에 제어의 흐름이 변화하는 처리에 대한 성능이 상대적으로 낮다.
한편, 소위 기가비트 이더넷(등록 상표) 등과 같이 예를 들면 12μsec마다의 인터럽트를 발생시킬 수 있는 고속의 통신 기구에서는, 고빈도의 인터럽트 요구가 발생한다. 예를 들면, 1Gbps의 통신 속도로 1500 바이트의 패킷을 수신한 경우, 12 μsec마다 1 패킷을 수신하게 된다. 패킷 수신마다 인터럽트를 발생시킨다고 하는 일반적인 하드웨어 구성을 채용한 경우, 12μsec마다 인터럽트 처리를 행할 필요가 발생하게 된다.
또한, 세트 톱 박스 등과 같이, 내부에 다수의 인터럽트 요구 발생원을 저장할 필요가 있는 시스템에서도, 인터럽트 처리에 소비되는 시간이 전체 처리 시간에 차지하는 비율이 높아지는 경향이 있다.
만약, 인터럽트 요구 발생 간격이 예측 가능하면, 오퍼레이팅 시스템에 의한 타이머 디바이스의 폴링에 의해, 이 문제를 해결하는 것이 가능하다. 이 구성에 대해서는, 예를 들면 비특허 문헌1(Mohit Aron and Peter Druschel, Soft Timers : Efficient Microsecond Software Timer Support for Network Processing, ACM Transactions on Computer Systems, Vol.18, No.3, August2000)에 기재되어 있다.
그러나, 미리 인터럽트 요구 발생 간격을 예측할 수 없는 인터럽트 발생원에서는, 이러한 방법을 적용할 수 없다. 인터럽트의 발생 빈도의 증가에 따른 오버헤드 증대라는 문제는, 개개의 오퍼레이팅 시스템(OS)의 문제를 야기할 뿐만 아니라, 복수의 OS를 하나의 시스템 상에서 동시에 동작시키기 위한 OS 스케쥴링을 실행하는 파티션 관리 소프트웨어에서도 중대한 문제로 된다.
하나의 시스템 상에 복수의 OS를 탑재한 경우, 각 OS가 실행하는 처리는, 시스템에서 공통된 하드웨어, 즉 CPU나 메모리 등을 이용하게 되기 때문에, 각 OS의 실행 처리를 시계열로 순차적으로 전환하여 실행하는 것이 필요하게 된다. 이러한 OS 스케쥴링을 실행하는 것이 파티션 관리 소프트웨어이다. 파티션은 각 OS에 대응하는 처리이다.
예를 들면 하나의 시스템에 OS(α)와 OS(β)의 2개의 오퍼레이팅 시스템이 병존하는 경우, OS(α)의 처리를 파티션 A로 하고, OS(β)의 처리를 파티션 B로 하면, 파티션 관리 소프트웨어는, 파티션 A와 파티션 B의 실행 스케줄을 결정하고, 결정한 스케줄에 기초하여, 각 OS에서의 처리를 실행한다.
이와 같이 복수 OS를 하나의 시스템 상에서 동작시키는 환경에서, 임의의 인터럽트 처리가 특정한 파티션에서 동작하고 있는 OS(α)에서만 실행 가능한 경우, 인터럽트 요구 발생 시점에서 동작하고 있는 파티션이 인터럽트 처리에 적응하지 않는 OS(β)의 파티션(B)인 경우에는, 파티션(B)의 처리를 중단하고, OS(α)를 적용하여 인터럽트 처리를 실행하고, 인터럽트 처리의 실행 후에 파티션(B)의 처리를 재개하는 처리가 행하여진다. 이와 같이 인터럽트 요구의 처리에는, 파티션 전환이 빈번하게 행해지게 된다.
또한, 종래의 파티션 관리 방식으로서, 인터럽트의 발생과는 무관하게 관리하의 각 OS에 대응하는 파티션의 실행 타이밍을 결정하는 구성으로 한 것도 있다. 이러한 방식에서는, 인터럽트 요구가 발생한 경우, 미리 스케줄이 완료된 관리 하의 OS에 대응하는 파티션을 변경하지 않고 인터럽트 요구에 대응하는 파티션의 설 정을 행하게 된다. 이미 스케줄 설정이 완료된 파티션이 장기간에 걸쳐 존재하는 경우에는, 인터럽트 요구의 처리의 실행 개시까지 장시간의 대기를 필요로 하는 경우가 있었다.
이와 같이, 관리 하의 OS의 처리(파티션)를 우선하여, 인터럽트 요구의 처리를 관리 하의 OS의 처리(파티션)의 빈 시간까지 대기하여 실행하는 종래형의 파티션 관리 방식에서는, 응답 시간에 대한 요구가 까다로운 인터럽트 요구 발생원이 존재하는 경우에는, 적절한 인터럽트 요구 처리가 실행되지 않아, 통신 에러 등의 데이터 처리 에러를 야기할 가능성이 있었다.
<발명의 개시>
본 발명은, 전술한 종래 기술에서의 문제점을 감안하여 이루어진 것으로, 복수 OS가 탑재되어, 파티션 관리에 의해 각 OS의 처리가 실행되는 시스템에 있어서, 인터럽트 요구에 따라 최적의 처리 타이밍을 결정하여 실행함으로써, 인터럽트 요구에 대한 처리에 기초하는 오버헤드 증대를 방지하여 시스템 전체의 효율적인 처리를 실현함과 함께, 인터럽트 요구에 대한 허용 시간을 초과하는 대기 등에 기초하는 처리 에러의 발생을 방지한 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
본 발명의 제1 측면은,
복수의 오퍼레이팅 시스템(OS)을 저장한 기억부와,
상기 복수의 OS에 기초하는 처리를 실행하는 프로세서와,
상기 복수의 OS 각각의 처리로서 규정되는 파티션을 시간축을 따라 스케쥴링 하고, 스케쥴링에 따른 파티션 전환 제어에 기초하여 상기 복수 OS의 전환 제어를 실행하는 프로세스 관리 수단을 갖는 정보 처리 장치로서,
상기 프로세스 관리 수단은,
인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하고, 파티션 스케줄에서 예정된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에 있어서 인터럽트 처리를 실행시키는 프로세스 제어를 행하는 구성을 갖는 것을 특징으로 하는 정보 처리 장치에 있다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 프로세스 관리 수단은, 상기 인터럽트 처리 파티션을, 인터럽트 요구 발생 후의 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에 있어서, 상기 프로세스 관리 수단은, 인터럽트 처리 요구가 최대 허용 지연 시간이 설정된 요구이고, 인터럽트 처리 요구의 발생으로부터 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 없는 경우에는, 실행 중인 파티션을 중단하고, 인터럽트 처리를 실행시키는 프로세스 제어를 행하는 구성을 갖는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 복수의 OS에 기초하는 처리를 실행하는 프로세서는 병렬로 동작 가능한 복수의 프로세서를 갖는 구성으로서, 상기 프로세스 관리 수단은, 상기 복수의 프로세서 각각에 대하여, 상 기 파티션을 시간축을 따라 스케쥴링하고, 각 프로세서에 대한 파티션 스케줄에 따른 파티션 전환 제어를 실행하는 구성으로서, 상기 인터럽트 처리 파티션을, 상기 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 해당 선택한 파티션 스케줄 중 파티션 전환 타이밍에 일치시켜 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에 있어서, 상기 프로세스 관리 수단은, 복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍을 갖는 파티션 스케줄을 선택하고, 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 프로세스 관리 수단은, 인터럽트 처리 요구가 최소 허용 지연 시간이 설정된 요구인 경우에 있어서, 인터럽트 처리 요구의 발생으로부터 최소 허용 지연 시간 이후에 발생하는 미리 설정된 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 프로세스 관리 수단은, 인터럽트 처리 요구에 대응하는 인터럽트 처리가 미리 설정된 파티션 스케줄에 규정된 스케줄 완료 파티션에 있어서 실행 가능한 경우에, 해당 인터럽트 처리를 상기 스케줄 완료 파티션에서 실행시키는 처리를 행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에 있어서, 상기 복수의 OS에 기초하는 처리를 실행하는 프로세서는 병렬로 동작 가능한 복수의 프로세서를 갖는 구성으로서, 상기 프로세스 관리 수단은, 각 프로세서에 대응하는 프로세스 제어를 실행하는 프로세서 대응의 파티션 전환 모듈을 갖는 구성인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 장치의 일 실시 양태에서, 상기 파티션 전환 모듈은, 파티션 전환 모듈이 대응된 프로세서의 처리 가능한 인터럽트 요구 발생원 정보로서의 인터럽트 그룹 정보를 가짐과 함께, 인터럽트 그룹마다 설정된 인터럽트 요구 대기 행렬로서 설정되는 복수의 인터럽트 그룹별 보류 큐로부터 상기 인터럽트 그룹 정보에 의해 판별되는 프로세서에 의해 처리 가능한 그룹에 대응하는 보류 큐에 저장된 인터럽트 요구의 엔트리에 관한 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 제2 측면은,
복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어 방법으로서,
인터럽트 처리 요구의 발생을 검출하는 단계와,
상기 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 인터럽트 처리 파티션 설정 단계와,
상기 인터럽트 처리 파티션 설정 정보에 따라, 파티션 스케줄에 있어서 예정 된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에 있어서 인터럽트 처리를 실행하는 인터럽트 처리 실행 단계
를 갖는 것을 특징으로 하는 프로세스 제어 방법에 있다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에 있어서, 상기 인터럽트 처리 파티션 설정 단계는, 상기 인터럽트 처리 파티션을, 인터럽트 요구 발생 후의 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 설정하는 처리를 실행하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시양태에 있어서, 상기 인터럽트 처리 파티션 설정 단계는, 인터럽트 처리 요구가 최대 허용 지연 시간이 설정된 요구이고, 인터럽트 처리 요구의 발생으로부터 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 없는 경우에는, 실행 중인 파티션을 중단하고, 중단부에 인터럽트 처리 파티션을 설정하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에 있어서, 상기 프로세스 제어 방법은, 또한 상기 복수의 OS에 기초하는 처리를 실행하는 복수의 프로세서 각각에 대하여, 상기 파티션을 시간축을 따라 스케쥴링하고, 각 프로세서에 대한 파티션 스케줄에 따른 파티션 전환 제어를 실행하는 단계를 갖고, 상기 인터럽트 처리 파티션 설정 단계는, 상기 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 해당 선택한 파티션 스케줄 중 파티션 전환 타이밍에 일치시켜 인터럽트 처리 파티션을 설정하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시양태에서, 상기 인터럽트 처 리 파티션 설정 단계는, 복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍을 갖는 파티션 스케줄을 선택하고, 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에 있어서, 상기 인터럽트 처리 파티션 설정 단계는, 인터럽트 처리 요구가 최소 허용 지연 시간이 설정된 요구인 경우에, 인터럽트 처리 요구의 발생으로부터 최소 허용 지연 시간 이후에 발생하는 미리 설정된 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 프로세스 제어 방법의 일 실시 양태에 있어서, 상기 프로세스 제어 방법은, 또한 인터럽트 처리 요구에 대응하는 인터럽트 처리가 미리 설정된 파티션 스케줄에 규정된 스케줄 완료 파티션에 있어서 실행 가능한 경우에, 해당 인터럽트 처리를 상기 스케줄 완료 파티션에 있어서 실행시키는 단계를 갖는 것을 특징으로 한다.
또한, 본 발명의 제3 측면은,
복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어를 실행하는 컴퓨터 프로그램으로서,
인터럽트 처리 요구의 발생을 검출하는 단계와,
상기 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 인터럽 트 처리 파티션 설정 단계와,
상기 인터럽트 처리 파티션 설정 정보에 따라, 파티션 스케줄에 있어서 예정된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에 있어서 인터럽트 처리를 실행하는 인터럽트 처리 실행 단계
를 갖는 것을 특징으로 하는 컴퓨터 프로그램에 있다.
본 발명의 구성에 따르면, 복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어에 있어서, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 구성으로 했으므로, 인터럽트 요구에 대응하는 파티션 전환 처리의 증가를 1회로만 억제하는 것이 가능해지고, 처리 부하의 증대를 방지하여, 효율적인 데이터 처리를 실행하는 것이 가능하게 된다.
또한, 본 발명의 구성에 따르면, 인터럽트 처리 요구에, 최대 허용 지연 시간, 혹은 최소 허용 지연 시간이 설정되어 있는 경우, 이들의 허용 시간 내에 파티션 전환이 발생한 경우에는, 그 전환 타이밍에 인터럽트 처리 파티션을 설정하고, 이들의 허용 시간 내에 파티션 전환이 발생하지 않은 경우에는, 강제 인터럽트를 행하는 등, 각 인터럽트 요구에 대응한 처리를 실행하는 구성이므로, 처리 에러를 발생시키지 않는 구성이 실현된다.
또한, 본 발명의 구성에 따르면, 멀티 프로세서 시스템에서 복수 OS에 의한 처리가 병렬로 실행 가능한 구성에서는, 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 선택한 파티션 스케줄 중 파티션 전환 타이밍에 일 치시켜 인터럽트 처리 파티션을 설정하는 구성으로 했으므로, 복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍에 인터럽트 요구를 실행시키는 것이 가능해져, 더 효율적인 데이터 처리가 가능하게 된다.
또한, 본 발명의 컴퓨터 프로그램은, 예를 들면, 여러가지 프로그램 코드를 실행하는 것이 가능한 범용 컴퓨터 시스템에 대하여, 컴퓨터 판독 가능한 형식으로 제공하는 기억 매체, 통신 매체, 예를 들면, CD나 DVD, MO 등의 기억 매체, 혹은 네트워크 등의 통신 매체에 의해 제공 가능한 컴퓨터 프로그램이다. 이러한 프로그램을 컴퓨터 판독 가능한 형식으로 제공함으로써, 컴퓨터 시스템 상에서 프로그램에 따른 처리가 실현된다.
본 발명의 또 다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시예나 첨부하는 도면에 기초하는, 보다 상세한 설명에 의해 분명해질 것이다. 또한, 본 명세서에서 시스템이란, 복수 장치의 논리적 집합 구성으로서, 각 구성의 장치가 동일 케이싱 내에 있는 것으로는 한하지 않는다.
도 1은 본 발명의 프로세스 관리 수단, 프로세스 관리 방법에 있어서 적용하는 오퍼레이팅 시스템(OS)의 구성을 설명하는 도면.
도 2는 파티션에 기초하는 스케쥴링예를 도시하는 도면.
도 3은 단일 프로세서 시스템에서의 인터럽트 요구의 스케쥴링예에 대하여 설명하는 도면.
도 4는 인터럽트 요구 발생 직후에 인터럽트 처리 파티션을 바로 기동하는 종래형의 인터럽트 요구 처리예를 설명하는 도면.
도 5는 최대 지연 시간을 제한한 처리예에 대하여 설명하는 도면.
도 6은 멀티프로세서 시스템에서의 인터럽트 요구의 스케쥴링예에 대하여 설명하는 도면.
도 7은 최소 지연 시간이 설정된 인터럽트 요구에 대한 파티션 스케쥴링 처리에 대하여 설명하는 도면.
도 8은 인터럽트 처리를 행할 수 있는 파티션이 스케줄되는 것을 대기하고, 스케쥴링된 파티션에서 인터럽트 처리를 실행하는 처리를 설명하는 도면.
도 9는 본 발명의 프로세스 관리 수단의 구성에 대하여 설명하는 도면.
도 10은 인터럽트 요구 발생원 정보의 데이터 구성에 대하여 설명하는 도면.
도 11은 인터럽트 그룹 번호의 설정예에 대하여 설명하는 도면.
도 12는 보류 큐의 저장 정보예를 설명하는 도면.
도 13은 파티션 전환 모듈에 의한 파티션 전환 처리 시에 참조되는 정보에 대하여 설명하는 도면.
도 14는 인터럽트 요구 발생 시의 처리를 설명하는 플로우차트.
도 15는 인터럽트 요구의 보류 큐에의 추가 처리를 설명하는 플로우차트.
도 16은 강제 인터럽트 처리를 설명하는 플로우차트.
도 17은 파티션 전환 처리를 설명하는 플로우차트.
도 18은 본 발명을 적용하는 것이 가능한 정보 처리 장치의 구성예를 도시하는 도면.
<발명을 실시하기 위한 최량의 형태>
이하, 본 발명의 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램의 상세 내용에 대하여 설명한다. 또한, 설명은, 이하의 항목순으로 행한다.
1. 본 발명에서의 프로세스 관리의 개요
2. 인터럽트 요구에 대한 처리예1
3. 인터럽트 요구에 대한 처리예2
4. 멀티프로세서 시스템에서의 처리
5. 최소 지연 시간이 설정된 인터럽트 요구 처리
6. 규정 스케줄을 이용한 인터럽트 요구 처리
7. 프로세스 관리 수단의 구성
8. 인터럽트 처리의 설정 및 실행 시퀀스
9. 정보 처리 장치의 하드 구성예
[1. 본 발명에서의 프로세스 관리의 개요]
우선, 도 1을 참조하여 본 발명의 정보 처리 장치, 프로세스 제어 방법의 개요에 대하여 설명한다. 도 1은, 본 발명의 정보 처리 장치, 프로세스 제어 방법에 있어서 적용하는 오퍼레이팅 시스템(OS)의 구성을 설명하는 도면이다.
본 발명의 정보 처리 장치, 프로세스 제어 방법에서 적용하는 오퍼레이팅 시스템(OS)은, 도 1에 도시한 바와 같이, 레벨0의 레벨0-OS(0)(102) 상에 복수의 레벨1-OS(1α)(1β)(1γ)(103)이 설정된 구성을 갖는다. 여러가지 구체적 처리 프로그램으로서의 어플리케이션(104)은, 레벨1-OS(103) 상에 설정되고, 레벨1-OS(103) 중 어느 한 OS에 대응되어 동작한다. 또한, 도 1에는 레벨1-OS(103)를 3개 도시하고 있지만, 이것은 일례로서, 본 발명은 2개 이상의 임의의 수의 복수 OS를 갖는 시스템, 소위 멀티 OS 시스템에서 적용 가능하다. 이들의 OS는, 정보 처리 장치의 기억부에 저장되어, 프로세서에서 실행된다.
또한, 이하의 설명에서, OS(1), OS(1α), OS(1β)··는 레벨1의 OS를 의미하고, OS(0)는 레벨0의 OS를 의미하는 것으로 한다.
하드웨어(HW)(101)는, 각 OS에서 공통으로 이용되는 프로세서(CPU), 메모리 등의 하드웨어이다.
레벨0의 OS(0)(102)는, 레벨1의 OS(1)(103), 즉 본 예에서는 OS(1α), OS(1β), OS(1γ)의 3개의 OS(1)가 실행하는 처리에 관한 스케쥴링을 실행한다. 레벨0의 OS(0)(102)는, 레벨1의 각 OS(1)에 대응하는 처리를 파티션이라는 구획으로 시계열로 스케쥴링한다.
도 2에 파티션에 기초하는 스케쥴링예를 도시한다. 도 2의 (a)는, 레벨1의 OS(1)의 처리에 적용 가능한 프로세서가 하나인 단일 프로세서 시스템의 구성에서의 파티션 스케줄의 설정예이다.
레벨1의 OS(1)의 처리에 적용 가능한 프로세서가 하나인 단일 프로세서 시스템에서는, 레벨1의 OS(1)인 OS(1α), OS(1β), OS(1γ)는 병렬로 처리를 실행할 수 없기 때문에, 각 OS(1)에서의 처리는, 단일 시계열 처리로서 스케쥴링된다.
도 2의 (a)에 도시하는 예에서는, 시간 t0∼t1에서 OS(1α)에 의한 처리, 즉 파티션 A를 실행하고, 시간 t1∼t2에서 OS(1β)에 의한 처리, 즉 파티션 B를 실행 하고, 시간 t2∼t3에서 OS(1γ)에 의한 처리, 즉 파티션 C를 실행한다. 이하, 시간축을 따라 각 OS의 처리가 실행되게 된다.
도 2의 (b)는, 레벨1 OS의 처리에 적용 가능한 프로세서가 2개인 복수 프로세서 시스템의 구성에 있어서의 파티션 스케줄의 설정예이다.
레벨1 OS의 처리에 적용 가능한 프로세서가 복수개 있는 경우, 레벨1의 OS인 OS(1α), OS(1β), OS(1γ)는, 프로세서수에 따라 병렬로 처리를 실행할 수 있다. 따라서, 레벨0의 OS(0)는, 프로세서수에 따른 복수의 시계열 처리로서 레벨1의 OS(1)의 실행 처리를 스케쥴링한다.
도 2의 (b)에 도시하는 예에서는, 프로세서1에서, 시간 t10∼t11에서 OS(1α)에 의한 처리, 즉 파티션 A를 실행하고, 시간 t11∼t12에서 OS(β)에 의한 처리, 즉 파티션 B를 실행한다. 한편, 프로세서2에서, 시간 t20∼t21에서 OS(1β)에 의한 처리, 즉 파티션 B를 실행하고, 시간 t21∼t22에서 OS(1γ)에 의한 처리, 즉 파티션 C를 실행한다.
[2. 인터럽트 요구에 대한 처리예1]
이어서, 인터럽트 요구가 발생한 경우의, 파티션 관리에 대하여 설명한다. 인터럽트 처리 요구가 발생한 경우, 프로세스 관리 수단으로서의 레벨0의 OS(0)(102)는, 그 인터럽트 처리를 어떤 타이밍에서 어떤 레벨1의 OS(1)에 의해 실행시키는지 결정하는 처리를 실행한다. 즉, 프로세스 관리 수단으로서의 레벨0의 OS(0)(102)는 인터럽트 요구에 대응하는 인터럽트 처리의 실행 기간으로서의 인터럽트 처리 파티션의 설정 처리를 행한다.
레벨1의 OS(1)는, 인터럽트 처리 파티션의 설정이 이루어진 경우에는, 그 설정된 파티션 스케줄에 따른 처리를 행하게 된다.
프로세서의 수가 하나이거나, 또는 인터럽트 처리에 관하여 프로세서가 상호 독립된 시스템, 즉 단일 프로세서 시스템에서의 인터럽트 요구의 스케쥴링예에 대하여 도 3을 이용하여 설명한다.
도 3에 도시하는 인터럽트 요구의 스케쥴링예는, 인터럽트 요구 발생 시에 실행 중인 파티션의 OS(1α)에 의해 인터럽트 요구를 처리할 수 없는 경우, 실행 중인 파티션의 종료 시까지 대기하여, 실행 중인 파티션의 종료 후에 인터럽트 요구를 처리할 수 있는 OS(1x)(x≠α)의 인터럽트 파티션을 설정한 예이다. 도 3의 (a)는 인터럽트가 발생하고 있지 않을 때의 스케쥴링이다.
도 3의 (b)는, OS(1α)에 의한 처리인 파티션 A의 실행 기간 중에 인터럽트 요구가 발생하여, 이 인터럽트 요구가 OS(1α)에서는 실행될 수 없고, 다른 OS(1 x)(x≠α)에 의해 실행 가능한 경우에, 미리 스케줄이 완료된 파티션 전환 시까지 인터럽트 요구의 처리 실행을 대기한다. 인터럽트 요구에 대한 처리의 실행 후에, 파티션 B의 처리를 실행한다.
도 3의 (b)에 도시한 바와 같이, 인터럽트 요구(201)는, OS(1α)에 의한 처리인 파티션 A의 실행 기간 중에 발생하고 있지만, 레벨0의 OS(0)는, 인터럽트 요구(201)의 처리의 개시를 파티션 A의 실행 종료까지 지연시킨다.
즉, 인터럽트 요구(201)의 발생 후, 시간 Td 경과 후의 파티션 A의 종료 시간까지 대기하여, 인터럽트 요구에 대응하는 처리인 인터럽트 처리 파티션을 설정 한다. 이 지연 시간 Td는, 인터럽트가 발생하고 있지 않을 때에 예정되어 있는 파티션 스케줄에 있어서, 파티션 A로부터 다른 파티션에의 전환이 발생하는 타이밍까지의 시간이다. 본 실시예에서는, 인터럽트 처리 파티션을, 인터럽트 요구 발생 후의 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 설정한다.
전술한 인터럽트 요구에 대한 스케쥴링 처리는, 종래의 방식과 비교하면, 파티션의 전환 횟수를 감소시킨다고 하는 효과가 있다.
인터럽트 요구 발생 직후에 인터럽트 처리 파티션을 바로 기동하는 종래형의 인터럽트 요구 처리예를 도 4에 도시한다.
도 4에 도시하는 처리예는, 도 3에 도시한 바와 마찬가지의 타이밍에서 인터럽트 요구가 발생한 경우의 처리예이다. 도 4의 (a)는 인터럽트가 발생하고 있지 않을 때의 스케쥴링이다.
도 4의 (b)는, OS(1α)에 의한 처리인 파티션 A의 실행 기간 중에 인터럽트 요구(211)가 발생하여, 이 인터럽트 요구가 OS(1α)에서는 실행될 수 없고, 다른 OS(1x)(x≠α)에 의해 실행 가능한 경우, 인터럽트 요구 발생 직후에 인터럽트 처리 파티션(212)을 바로 기동한다.
도 4의 (b)에 도시한 바와 같이, 인터럽트 요구(211)는, OS(1α)에 의한 처리인 파티션 A의 실행 기간 중에 발생하고, 직후에 인터럽트 처리 파티션(212)이 설정된다.
이 시점에서, 파티션 A는 중단되고, 인터럽트 처리 파티션(212)의 전후에서 2개의 파티션 A(221), 파티션 A(222)에 의해 실행하게 된다. 이 결과, 파티션 A(221)로부터 인터럽트 처리 파티션(212)에의 파티션 전환, 인터럽트 처리 파티션(212)으로부터 파티션 A(222)에의 파티션 전환이 필요해져, 인터럽트 처리 실행을 위해 증가하는 파티션 전환 횟수가 2회로 된다.
도 3에 도시하는 예에서는, 파티션 A의 종료 후에 인터럽트 처리 파티션을 실행할 뿐이므로, 인터럽트 처리 실행을 위해 증가하는 파티션 전환 횟수는 1회뿐이다. 이와 같이, 인터럽트 처리를 지연시킴으로써 파티션 전환 횟수를 1회 감소시키는 효과를 얻을 수 있다.
또 하나의 효과는, 명령 실행 효율의 향상이다. 도 4에서, 분단된 2개의 파티션 A(221), 파티션 A(222)에 설정되는 시간은, 각각 T1, T2로 되고, T1+T2는, 인터럽트 처리가 없는 경우에 설정되어 있던 시간 T와 동일하게 된다. 즉 T=T1+T2이다.
그러나, 기간 T의 길이가 기간 T1과 T2의 길이를 더한 것과 동일함에도 불구하고, 기간 T 사이에 실행할 수 있는 명령의 수는, 기간 T1과 T2의 사이에 실행되는 명령의 수의 합계보다도 많아진다. 이것은, 파티션 A의 실행이, 인터럽트 처리 파티션의 실행에 의해 분단되지 않기 때문이다. 파티션 A의 실행이 인터럽트 처리 파티션에 의해 중단되어 있는 동안에, 프로세서가 구비하고 있는 다양한 캐쉬 기구나 버퍼(캐쉬 메모리나 TLB, 분기 예측 버퍼)의 상태가 인터럽트 처리 파티션에 의해 갱신된다. 이 갱신의 결과, 파티션 A로 복귀한 후의 명령 실행 효율은, 파티션 A를 연속적으로 실행하고 있었던 경우와 비교하여 저하하는 것이다.
도 3을 참조하여 설명한 바와 같이, 인터럽트 요구의 처리 파티션의 설정을, 인터럽트 요구 발생 시에 실행 중인 파티션의 종료 예정 시각 후로 함으로써, 파티션 전환 오버헤드의 삭감과, 명령 실행 효율의 향상이라는 효과가 얻어진다.
[3. 인터럽트 요구에 대한 처리예2]
전술한 인터럽트 요구의 처리 지연 방법만을 적용하면, 인터럽트 요구 발생 시에 실행 중인 파티션의 설정 시간이 긴 경우에는, 인터럽트 요구의 처리 개시 시각이 지연되어, 처리에 따라서는 에러를 발생시키는 경우가 있다.
이것을 해결하는 처리예로서, 최대 지연 시간을 제한한 처리예에 대하여 도 5를 참조하여 설명한다.
도 5의 (a)는, 전술한 실시예에 상당하는 처리예로서, 인터럽트 처리의 실행 개시 위치를, 인터럽트 요구(301) 발생 시에 실행 중인 파티션(파티션 A)의 종료 시점으로 한 예이다. 파티션 A의 종료 후에 인터럽트 처리 파티션(302)을 설정하고 있다.
도 5의 (a)에 도시하는 예는, 인터럽트 요구(301) 발생 시부터 파티션 A의 종료 예정 시각까지의 시간 Td가, 인터럽트 요구의 최대 허용 지연 시간 Tmax보다 짧은, 즉 Td<Tmax이고, 파티션 A의 종료 예정 시각까지 대기해도 문제가 없는 경우의 처리이다.
인터럽트 요구에는, 최대 허용 지연 시간이 설정된 인터럽트 요구가 있다. 최대 허용 지연 시간은, 예를 들면 인터럽트 요구 발생원에 대응하여 설정된 정보로서, 레벨0의 OS(0)가 유지되고 있다. 이들의 구성에 대해서는 후술한다.
최대 허용 지연 시간이 설정된 인터럽트 요구가 발생한 경우에, 도 5의 (b) 에 도시한 바와 같이, 인터럽트 요구(311) 발생 시에 실행 중인 파티션의 종료 예정 시각까지의 시간이, 인터럽트 요구의 최대 허용 지연 시간 Tmax보다 긴 경우에는, 파티션의 처리 종료까지 대기하지 않고, 파티션 A를 인터럽트 요구의 최대 허용 지연 시간 Tmax 이내에 중단하고, 인터럽트 처리 파티션(312)을 설정하여 실행한다.
이 처리를 강제 인터럽트 처리라고 한다. 이 강제 인터럽트 처리의 결과, 파티션 A는 전단 파티션 A(321)와 후단 파티션 A(322)로 분할되어 처리된다.
이와 같이, 인터럽트 요구의 최대 허용 지연 시간이 경과해도 파티션의 전환이 발생하지 않는 경우에는, 최대 허용 지연 시간의 경과 시점 혹은 경과 이전의 시점에서, 실행 중인 파티션을 중단하고, 인터럽트 처리 파티션으로 전환하여 인터럽트 처리를 실행한다.
이와 같이, 허용 지연 시간을 고려한 인터럽트 처리의 지연을 행함으로써, 최대 응답 시간(최대 허용 지연 시간)에 제한이 있는 인터럽트 요구를 발생시킬 수 있는 시스템에 있어서, 최대 응답 시간(최대 허용 지연 시간)의 인터럽트 요구 처리의 실행을 보증하는 것이 가능해져서, 인터럽트 요구의 과대한 지연에 따른 데이터 처리 에러의 발생을 방지할 수 있다.
[4. 멀티프로세서 시스템에서의 처리]
전술한 실시예에서는, 프로세서의 수가 하나이거나, 또는 인터럽트 처리에 관하여 프로세서가 상호 독립된 시스템을 전제로 해 왔다. 복수의 프로세서가 병렬로 처리를 실행할 수 있는 시스템에서는, 더 효율적인 처리가 가능하게 된다.
멀티프로세서 시스템에서의 인터럽트 요구의 스케쥴링예에 대하여, 도 6을 참조하여 설명한다. 도 6에서, 병렬 처리 가능한 프로세서는 3개(프로세서1, 프로세서2, 프로세서3) 있으며, 프로세서1, 프로세서2, 프로세서3 각각의 처리 시퀀스가, 레벨0의 OS(0)에 의해 스케쥴링된다.
도 6의 (a)는, 프로세서1을 적용한 처리의 파티션에 의한 스케쥴링이고, 도 6의 (b)는, 프로세서2를 적용한 처리의 파티션에 의한 스케쥴링이고, 도 6의 (c)는, 프로세서3을 적용한 처리의 파티션에 의한 스케쥴링이다.
이 예에서는, 프로세서1에서 인터럽트 요구 X(401)와 인터럽트 요구 Y(402)가 발생한 예를 나타내고 있다. 프로세서1에서는 파티션 A가 실행을 계속하고 있으며, 인터럽트 처리 파티션은 계속 지연되고 있다. 그 후, 프로세서2에서, 파티션 B의 처리가 종료하여, 파티션 전환 타이밍(411)이 발생하고 있다.
각 프로세서의 파티션 구성은, 레벨0의 OS(0)가 파악하고 있으며, 프로세서1에서 발생한 인터럽트 요구 X(401) 또는 인터럽트 요구 Y(402) 후에 발생하는 파티션 전환 타이밍 중, 가장 빠른 파티션 전환 타이밍이 설정된 프로세서를 식별한다.
이 때, 인터럽트 처리 X를 설정하는 것이 가능한, 가장 빠른 파티션 전환 타이밍은, 프로세서2의 파티션 B의 처리 종료 시의 파티션 전환 타이밍(411)이다. 레벨0의 OS(0)는, 프로세서1에서 보류 중으로 되어 있는 인터럽트 처리 X를 프로세서2로 위양하여, 파티션 B에 이어서 처리하도록 스케쥴링을 하고, 인터럽트 처리 파티션(412)을 프로세서2의 파티션 B의 처리 종료 후에 설정하여, 프로세서2에 의해 인터럽트 처리 X를 실행시킨다.
또한, 인터럽트 처리 Y를 설정하는 것이 가능한, 가장 빠른 파티션 전환 타이밍은, 프로세서3의 파티션 D의 처리 종료 시의 파티션 전환 타이밍(421)이다. 레벨0의 OS(0)는, 프로세서1에서 보류 중으로 되어 있는 인터럽트 처리 Y를 프로세서3으로 위양하여, 파티션 D에 이어서 처리하도록 스케쥴링을 하고, 인터럽트 처리 파티션(422)을 프로세서3의 파티션 D의 처리 종료 후에 설정하여, 프로세서3에 의해 인터럽트 처리 Y를 실행시킨다.
이와 같이, 복수 프로세서에 의한 병렬 처리가 실행 가능한 멀티프로세서 시스템에서는, 지연 중인 인터럽트 처리를 프로세서 사이에서 위양하는 것이 가능하고, 인터럽트 요구 발생 후의 가장 빠른 파티션 전환 타이밍이 설정된 프로세서에 지연 중인 인터럽트 처리를 실행시킴으로써, 지연 시간을 짧게 한 인터럽트 처리의 실행이 가능해지고, 실행 중인 파티션을 중단시켜 강제 인터럽트를 행하지 않고, 미리 정해진 파티션 스케줄의 파티션 전환 타이밍을 이용한 인터럽트 처리의 실행을, 더 높은 확률로 행하는 것이 가능하게 된다.
[5. 최소 지연 시간이 설정된 인터럽트 요구 처리]
전술한 바와 같이, 인터럽트 요구에는, 최대 허용 지연 시간이 설정된 인터럽트 요구가 있다. 또한, 인터럽트 요구에는 최소 지연 시간이 설정된 인터럽트 요구가 있다. 최소 지연 시간은, 예를 들면 인터럽트 요구 발생원마다 정해져 있고, 인터럽트 요구 발생원 정보로서, 레벨0의 OS(0)의 관리 정보로서 설정된다. 이들의 정보에 대해서는 후술한다.
최소 지연 시간이 설정된 인터럽트 요구가 발생한 경우에는, 최소 지연 시간 이 경과할 때까지는, 비록 파티션 전환이 행해져도 처리를 개시하지 않는다.
도 7을 참조하여 최소 지연 시간이 설정된 인터럽트 요구에 대한 레벨0의 OS(0)가 실행하는 파티션 설정에 기초하는 스케쥴링 처리에 대하여 설명한다.
도 7에서, 파티션 A의 실행 중에 인터럽트 요구(501)가 발생하고 있다. 전술한 실시예에 따른 경우에는, 파티션 A로부터 파티션 B의 전환의 발생 시에 인터럽트 처리 파티션이 설정되지만, 인터럽트 요구(501)는, 최소 지연 시간이 설정된 인터럽트 요구이다.
이와 같이, 최소 지연 시간이 설정된 인터럽트 요구인 경우에는, 인터럽트의 요구(501)의 발생 시점부터 최소 지연 시간이 경과할 때까지 대기하고, 그 후에 발생하는 파티션 전환 타이밍에 인터럽트 처리 파티션(501)을 설정한다. 도 7에 도시하는 파티션 B의 종료 후에 인터럽트 처리 파티션(501)이 설정된다.
또한, 인터럽트 요구에 최대 지연 시간이 또한 설정되어 있는 경우에는, 최대 지연 시간을 고려한 처리를 또한 행하게 된다. 즉, 인터럽트 요구의 발생 시점부터 최소 지연 시간 경과 후이고, 최대 지연 시간 이내에 파티션 전환이 행해지는 타이밍이 있으면, 거기에 인터럽트 처리 파티션을 설정하지만, 인터럽트 요구의 발생 시점부터 최소 지연 시간 경과 후, 최대 지연 시간 이내에 파티션 전환이 행해지는 타이밍이 없는 경우에는, 그 파티션 실행을 중단하고 거기에 인터럽트 처리 파티션을 설정한다.
[6. 규정 스케줄을 이용한 인터럽트 요구 처리]
지금까지 설명하여 온 방식은, 기본적으로, 인터럽트가 발생하고나서 최초의 파티션 전환이 행해지는 시점까지 인터럽트 처리를 연기하고, 허용되지 않는 경우에 파티션을 중단하고 인터럽트 처리를 실행하는 구성예를 설명하여 왔다.
그런데, 인터럽트 요구 발생원에 따라서는, 그 허용 지연 시간이 파티션 전환의 발생 간격에 비해 충분히 큰 것이 있다. 한편, 인터럽트 처리를 행하는 파티션이, 인터럽트 처리만을 행하는 것은 드물며, 다른 파티션과 마찬가지로 프로세서 시간의 할당을 받고 있는 것이 많다. 그와 같은 경우에는, 레벨0의 OS(0)가 실행하는 규정의 스케쥴링 프로세스에 있어서, 인터럽트 처리를 행할 수 있는 파티션이 스케줄되는 것을 대기하고, 스케쥴링된 파티션에서 인터럽트 처리를 실행하는 구성으로 하는 것이 가능하다. 단, 이 경우에도, 인터럽트 요구의 허용 지연 시간을 초과하지 않는 범위에서의 대기가 조건으로 된다.
본 구성에 따르면, 인터럽트 요구의 실행만을 위한 파티션의 설정을 행할 필요가 없게 되므로, 인터럽트 처리 오버헤드가 더 삭감된다.
본 구성은, 레벨0의 OS(0)가 설정한 파티션 스케줄이, 미리 예측 가능한 경우, 이 예측된 스케줄을 이용하여 인터럽트 처리를 연기한다고 하는 방법이다. 도 8을 참조하여, 본 실시예에 따른 인터럽트 요구의 처리와 파티션 스케줄과의 대응에 대하여 설명한다.
도 8에서는, 파티션 A의 실행 중에 인터럽트 요구(601)가 발생하고 있다. 이 인터럽트 요구(601)에는, 최대 허용 지연 시간(Tmax)이 설정되어 있다.
인터럽트 요구(601)의 발생 후, 최대 허용 지연 시간(Tmax) 이내에 있어서, 이 인터럽트 요구를 처리하는 것이 가능한 파티션이 스케쥴링되어 있다고 예측할 수 있었다고 한다. 그 결과, 이 인터럽트 요구(601)는 그 파티션에서 처리되도록 설정된다.
도 8에서는, 파티션 D(611)가, 인터럽트 요구(601)를 처리하는 것이 가능한 파티션이고, 레벨0의 OS(0)가 규정된 파티션 스케쥴링에 의해 스케줄된 파티션이고, 인터럽트 요구(601)는, 파티션 D(611)에서 실행되도록 설정된다.
본 구성에 따르면, 인터럽트 요구의 실행만을 위한 파티션의 설정을 행할 필요가 없게 되어, 인터럽트 처리 오버헤드가 삭감되어, 효율적인 데이터 처리가 실현된다.
[7. 프로세스 관리 수단의 구성]
이상, 본 발명의 프로세스 관리 처리예를 복수 설명해 왔다. 이하, 이들의 처리를 실행하기 위한 프로세스 관리 수단의 구성에 대하여 설명한다.
도 9를 참조하여 본 발명의 프로세스 관리 수단의 정보 관리 구성에 대하여 설명한다. 도 9에 도시하는 구성예는, 복수 프로세서를 갖는 멀티프로세서 시스템에서의 정보 구성으로서, 도 1에 도시하는 레벨0의 OS(0)의 제어 하에 각 정보가 관리되고, 또한 각 모듈에 의한 동작이 제어된다. 프로세서1(731), 프로세서2(732), 프로세서3(733)는, 레벨1의 OS(1)에 따른 처리를 병렬로 실행할 수 있다. 또한, 레벨0의 OS(0)도 어느 하나의 프로세서에 의해 처리를 실행하게 된다.
정보를 관리하는 메모리는, 각 OS, 각 프로세서에 공통된 메모리 영역으로서의 공유 메모리(710)와, 각 프로세서에 대응하여 설정되는 프로세서 대응 모듈(720)로 구분된다.
공유 메모리(710)에는, 인터럽트 요구 발생원 정보(711), 인터럽트 그룹마다 설정된 보류 큐(712, 713··), 및 통지 완료 인터럽트 요구 정보(714)가 저장된다.
각 프로세서에 대응하는 프로세서 대응 모듈(720)에는, 타이머(721)와, 파티션 전환 모듈(722), 국소 메모리(723)가 설정된다.
각 구성 요소에 대하여 설명한다. 공유 메모리(710)에 저장되는 인터럽트 요구 발생원 정보(711)는, 인터럽트 요구를 발생시키는 인터럽트 요구 발생원에 대응하는 정보로서, 도 10에 도시하는 정보로 구성된다.
데이터 처리를 실행하는 장치에서, 인터럽트 요구를 발생시키는 인터럽트 요구 발생원은, 예를 들면 네트워크 I/F 등 미리 결정된 요소이다. 인터럽트 요구 발생원 정보(713)는, 이러한 인터럽트 요구를 발생시키는 인터럽트 요구 발생원마다의 정보를 기록한 정보이다.
도 10에 도시한 바와 같이, 각 인터럽트 요구 발생원마다, 이하의 a∼d의 정보, 즉
a. 인터럽트 그룹 번호
b. 인터럽트 처리 파티션 ID
c. 최대 허용 지연 시간
d. 최소 허용 지연 시간
의 각 정보가 대응되어 설정된다.
a. 인터럽트 그룹 번호는, 각 프로세서에 대응되어 설정되는 파티션 전환 모 듈의 대응 프로세서의 처리 가능한 인터럽트 요구 발생원의 그룹 정보이다. 예를 들면 도 11에 도시한 바와 같은 그룹 번호가 설정된다. 도 11에 도시하는 예에서, 그룹1은, 인터럽트 요구를 발생하는 인터럽트 요구 발생원 a, b, c의 그룹으로서 설정되고, 그룹2는 인터럽트 요구를 발생하는 인터럽트 요구 발생원 d, e, f의 그룹으로서 설정된 예를 나타내고 있다.
각 프로세서에 대응되어 설정되는 파티션 전환 모듈은, 인터럽트 그룹마다 설정된 인터럽트 요구 대기 행렬로서 설정되는 복수의 인터럽트 그룹별 보류 큐(712, 713··)로부터, 인터럽트 그룹 정보에 의해 판별되는 프로세서에 의해 처리 가능한 그룹에 대응하는 보류 큐에 저장된 인터럽트 요구의 엔트리에 관한 처리만을 실행하게 된다.
도 10으로 되돌아가, 인터럽트 요구 발생원 정보의 구성에 대하여 설명을 계속한다. b. 인터럽트 처리 파티션 ID는, 그 인터럽트 요구 발생원이 발생하는 인터럽트 요구를 실행하는 파티션의 식별자로서의 ID이다. 레벨0의 OS(0)는, 전술한 각 처리예에서, 인터럽트 처리 파티션을 스케쥴링하는 경우, 인터럽트 처리 파티션 ID를 파티션 스케쥴링 데이터로서 설정한다. 이 설정에 따라, 인터럽트 파티션이 실행된다.
c. 최대 허용 지연 시간, d. 최소 허용 지연 시간은, 그 인터럽트 요구 발생원이 발생하는 인터럽트 요구에 대응되는 최대 허용 지연 시간, 및 최소 허용 지연 시간이다. 이들 정보는 설정되지 않는 경우도 있다. 설정이 있는 경우에는, 전술한 각 처리예에서 설명한 바와 같이, 레벨0의 OS(0)는, 각각의 허용 시간 내에 서의 처리를 실행할 수 있도록, 인터럽트 처리 파티션의 설정을 행한다.
도 9에 도시한 바와 같이, 공유 메모리(710)에는, 인터럽트 그룹마다 설정되는 보류 큐(712, 713)가 저장된다. 인터럽트 그룹은, 도 11을 참조하여 설명한 바와 같이, 각 프로세서에 대응되어 설정되는 파티션 전환 모듈의 대응 프로세서의 처리 가능한 인터럽트 요구 발생원의 그룹 정보이다.
예를 들면, 보류 큐(712)에는, 그룹 번호1, 즉 인터럽트 요구를 발생하는 인터럽트 요구 발생원 a, b, c로부터의 인터럽트 요구만이 엔트리로서 설정된다. 보류 큐(713)에는, 그룹 번호2, 즉 인터럽트 요구를 발생하는 인터럽트 요구 발생원 d, e, f로부터의 인터럽트 요구만이 엔트리로서 설정된다.
각 보류 큐에는, 도 12에 도시한 바와 같이, 발생 완료된 인터럽트 요구 정보로서, 각 인터럽트 요구의 식별자인 인터럽트 요구 ID와, 각 인터럽트 요구에 대응하는 최대 허용 지연 시간, 및 최소 허용 지연 시간 정보가 저장된다. 저장순은 최대 허용 지연 시간이 짧은 순으로 설정되고, 레벨0의 OS(0)는, 전술한 각 처리예에 있어서, 인터럽트 처리 파티션을 스케쥴링하는 경우, 보류 큐의 선두로부터, 즉 최대 허용 지연 시간이 짧은 순으로 큐를 취출하여 인터럽트 처리 파티션의 설정, 혹은 인터럽트 처리를 실행하는 파티션의 설정 처리를 행한다.
도 9에 도시하는 공유 메모리(710)의 통지 완료 인터럽트 요구 정보(714)는, 이미 실제로 인터럽트 요구를 처리하는 레벨1의 OS에 대하여 통지 완료의 인터럽트 요구 정보를 저장하는 영역이다.
즉, 보류 큐(712, 713)에 저장된 인터럽트 요구 정보는, 레벨0의 OS(0)의 제 어 하에 순차적으로, 각 레벨1의 OS(1 x)에 통지되어, 처리가 맡겨지지만, 통지된 후에는, 이 통지 완료 인터럽트 요구 정보(714)에 저장되고, 인터럽트 처리 파티션이 완료되고, 파티션의 전환이 발생하면 통지 완료 인터럽트 요구 정보(71)의 저장 정보도 클리어된다. 또한, 인터럽트 요구가 발생한 시점에서 프로세서에서 실행 중인 파티션에 있어서, 바로 인터럽트 요구를 실행하는 것이 가능한 경우에는, 레벨0의 OS(0)는, 보류 큐에 인터럽트 요구를 유지하지 않고, 인터럽트 요구를 실행하는 OS(1x)에 통지하여, 통지 완료 인터럽트 요구 정보(714)에 인터럽트 요구 정보를 저장한다.
이어서, 도 9에 도시하는 프로세서 대응 모듈(720)의 구성에 대하여 설명한다. 프로세서 대응 모듈(720)에는, 타이머(721)와, 파티션 전환 모듈(722), 국소 메모리(723)가 설정된다.
파티션 전환 모듈(722)은, 각 프로세서마다 설정되는 모듈로서, 타이머(721)에 의해 계측되는 시간의 경과에 따라 각 파티션을 시분할로 실행하도록, 파티션 전환을 행한다.
전술한 처리예에서 설명한 바와 같이, 레벨0의 OS(0)가 설정한 파티션 스케줄에 따라, 스케쥴링된 파티션 전환 시각에, 스케줄된 파티션으로 전환한다. 예를 들면 파티션 A로부터 파티션 B에의 전환, 혹은 인터럽트 처리 파티션에의 전환을 행한다.
도 9에 도시하는 예는, 프로세서가 3개이고, 각 프로세서에 대응하는 파티션 전환 모듈은, 예를 들면 전술한 도 6에 도시하는 (a), (b), (c)의 각 파티션 스케 줄에 따라, 파티션 전환을 실행하게 된다.
파티션 전환 모듈은, 국소 메모리(723)에 저장한 도 13에 도시하는 정보를 참조하여 처리를 실행한다.
즉, 이하의 변수, 및 데이터 구조를 참조하여 파티션 전환 처리를 실행한다.
a. 현행 파티션 : 현재, 실행 중인 파티션 ID
b. 인터럽트 그룹 집합 : 파티션 전환 모듈이 동작하고 있는 프로세서를 처리할 수 있는 인터럽트 그룹 집합
c. 파티션 콘텍스트 : 각 파티션의 콘텍스트
파티션 콘텍스트에는, 레지스터의 내용 등과 같이 중단된 처리를 재개하기 위해 필요한 정보 외에 이하의 값이 저장되어 있다.
c-1. 통지 완료 인터럽트 집합 : 이 파티션에서 처리할 인터럽트의 집합
c-2. 예측 기동 시각 : 이어서, 이 파티션이 기동되는 예정 시간(예정보다도 늦게 기동되지 않도록 제어됨)
또한, 국소 메모리(723)에는, 파티션 스케줄에 따른 처리를 실행하기 위한 시간 정보, 프로그램 실행용의 어드레스 정보가 저장된다. 구체적으로 설명하면,
설정 시각 정보 : 설정된 처리를 개시하는 시각
설정 시각에 기동되는 루틴 어드레스: 실행할 처리가 기술된 루틴의 어드레스
부가 정보 어드레스 : 루틴 기동 시에 인수로서 전달받는 부가 정보 어드레스
이들 정보가, 설정 시각순으로 배열된 리스트로서 저장된다. 각 프로세서는, 설정 시각 정보로서 설정된 설정 시각, 즉 파티션 전환 후의 새로운 파티션 실행 시에 있어서, 설정 시각에 기동되는 루틴 어드레스 및 부가 정보 어드레스에 기초하여 실행 프로그램 및 프로그램 실행에 필요한 파라미터 등을 취득하여 새로운 파티션의 처리를 개시한다.
[8. 인터럽트 처리의 설정 및 실행 시퀀스]
이어서, 본 발명의 프로세스 관리 처리에 있어서 실행하는 인터럽트 요구에 대응하는 처리 수순에 대하여, 도 14∼도 17의 플로우를 참조하여 설명한다. 설명은 이하의 4개의 처리로 나눠 행한다. 또한, 이들의 처리는, 레벨0의 OS(0)가 실행하는 처리이다.
a. 인터럽트 요구 발생 시의 처리(도 14)
b. 인터럽트 요구의 보류 큐에의 추가 처리(도 15)
c. 강제 인터럽트 처리(도 16)
d. 파티션 전환 처리(도 17)
a. 인터럽트 요구 발생 시의 처리
우선, 도 14의 플로우차트를 참조하여 임의의 인터럽트 요구 발생원이 인터럽트 요구를 프로세서에 송출했을 때에 행하는 처리의 수순에 대하여 설명한다.
임의의 인터럽트 요구 발생원이 인터럽트 요구를 프로세서에 송출하면, 레벨0의 OS(0)는, 단계 S101에서 해당 프로세서에 있어서 실행 중인 현행 파티션이 인 터럽트 요구를 실행하는 것이 가능한 파티션인지의 여부를 판정한다. 이것은, 먼저 도 10을 참조하여 설명한 인터럽트 요구 발생원 정보에 기초하여, 레벨0의 OS(0)가 판정한다.
현행 파티션이 인터럽트 요구를 실행하는 것이 가능한 파티션인 경우에는, 단계 S102로 진행하여, 인터럽트 요구의 처리 요구를 현행 파티션을 실행 중인 OS(1x)에 통지함과 함께, 통지 완료 인터럽트 요구 정보에 등록한다.
인터럽트 요구의 처리 요구를 통지받은 레벨1의 OS(1x)는, 자기의 스케줄 하에서 현행 파티션 내에서의 인터럽트 요구 처리를 행한다.
단계 S101에서, 프로세서에서 실행 중인 현행 파티션이 인터럽트 요구를 실행하는 것이 가능한 파티션이 아니라고 판정하면, 단계 S103으로 진행하여, 인터럽트 요구를 실행하는 파티션이 인터럽트 요구 발생원에 대응하여 설정되어 있는 최대 허용 지연 시간 이전에 실행이 예정되어 있는지의 여부를 판정한다. 이것은 미리 설정된 파티션 스케줄 정보에 기초하여 레벨0의 OS(0)가 판정한다.
인터럽트 요구를 실행하는 파티션이 인터럽트 요구 발생원에 대응하여 설정되어 있는 최대 허용 지연 시간 이전에 실행이 예정되어 있는 경우에는, 단계 S104로 진행하여, 인터럽트 요구의 처리 요구를 최대 허용 지연 시간 이전에 실행이 예정되어 있는 파티션을 실행하는 OS(1x)에 통지함과 함께, 통지 완료 인터럽트 요구 정보에 등록한다.
인터럽트 요구의 처리 요구를 통지받은 레벨1의 OS(1x)는, 자기의 스케줄 하에서 실행 예정 파티션 내에서의 인터럽트 요구 처리를 행한다.
한편, 단계 S103에서, 인터럽트 요구를 실행하는 파티션이 인터럽트 요구 발생원에 대응하여 설정되어 있는 최대 허용 지연 시간 이전에 실행이 예정되어 있지 않다고 판정된 경우에는, 단계 S105로 진행하여, 인터럽트 요구 발생원에 대응하여 설정되어 있는 최소 허용 지연 시간 경과 후에 「보류 큐 추가 처리」를 실행하도록 타이머를 설정한다.
최소 허용 지연 시간은, 먼저 도 10을 참조하여 설명한 바와 같이, 인터럽트 요구 발생원 정보에 포함되는 정보이다. 레벨0의 OS(0)는, 최소 허용 지연 시간에 기초하여 타이머를 설정하여, 최소 허용 지연 시간 경과 후에 「보류 큐 추가 처리」를 실행한다. 이 보류 큐 추가 처리에 대해서는, 도 15를 참조하여 후단에서 설명한다.
또한, 추가하는 보류 큐는, 전술한 바와 같이, 인터럽트 그룹별로 설정되어 있고, 인터럽트 요구 발생원 정보에 포함되는 인터럽트 그룹 번호에 기초하여, 대응하는 인터럽트 그룹의 보류 큐에 인터럽트 요구 정보가 추가된다. 큐에 설정되는 정보는, 먼저 도 12를 참조하여 설명한 바와 같이, 인터럽트 요구 ID, 최대 허용 지연 시간, 최소 허용 지연 시간의 각 정보이다.
보류 큐에 추가된 후에는, 레벨0의 OS(0)가 순차적으로 큐의 선두로부터 인터럽트 요구를 취득하고, 전술한 각 처리예에 따라 최대 허용 지연 시간, 최소 허용 지연 시간을 고려한 파티션 설정 처리를 실행한다.
b. 인터럽트 요구의 보류 큐에의 추가 처리(도 15)
이어서, 인터럽트 요구의 보류 큐에의 추가 처리에 대하여, 도 15의 플로우 를 참조하여 설명한다.
단계 S201에서, 인터럽트 요구의 발생원 S의 특정을 행하고, 단계 S202에서, 인터럽트 요구 발생원 S에 기초하여, 인터럽트 요구 발생원 정보를 참조하여 인터럽트 그룹 g를 특정하고, 인터럽트 요구를 추가할 대상으로 하는 그룹을 결정한다.
또한, 단계 S203에서, 인터럽트 요구의 발생 시각(t)에, 인터럽트 요구에 대응하는 최대 허용 지연 시간(Tmax)을 가산하여, 인터럽트 요구의 최대 지연 실행 시간 정보 Td(데드 라인)를 산출하고, 단계 S204에서, 최대 지연 실행 시간 정보 Td(데드 라인)에 타이머를 설정한다. 이 타이머 설정 정보는, 그 동안에 파티션 전환 등의 인터럽트 파티션을 설정할 수 없는 경우에 강제 인터럽트를 실행하기 위해 사용된다.
타이머가 설정된 제한 시간 이전에, 파티션 전환 등의 인터럽트 파티션을 설정할 수 있었던 경우에는, 타이머는 리세트된다. 타이머가 설정된 제한 시간 이전에, 파티션 전환 등의 인터럽트 파티션을 설정할 수 없었던 경우에는, 타이머의 설정 기한에 수반하여, 실행 파티션의 중단 및 인터럽트 처리의 실행, 즉 강제 인터럽트 처리가 행해진다.
c. 강제 인터럽트 처리
이어서, 도 16을 참조하여 강제 인터럽트 처리의 실행 수순에 대하여 설명한다. 이 강제 인터럽트 처리는, 먼저 도 5를 참조하여 설명한 바와 같이, 인터럽트 요구(인터럽트 요구 발생원)에 대응하여 설정되어 있는 최대 허용 지연 시간 내에 파티션 전환이 행해지지 않는 경우에 행해지는 처리이다.
단계 S301에서, 레벨0의 OS(0)는, 현행 파티션을 중단시켜 인터럽트 처리를 실행시키는 레벨1의 OS(1x)가 실행 중인 파티션에 대응하는 콘텍스트를 메모리에 기억한다. 예를 들면 레지스터값 등, 처리 중단 후, 재개할 때에 필요한 정보이다.
단계 S302에서, 강제 인터럽트에 의해 실행되는 인터럽트 처리에 대응하는 보류 큐의 엔트리를 삭제하고, 단계 S303에서 통지 완료 인터럽트 요구 정보에 인터럽트 정보를 추가한다. 또한, 이 처리에서, 레벨0의 OS(0)는, 강제 인터럽트에 의한 인터럽트 파티션을 실행하는 OS(1x)에 인터럽트 요구 처리의 실행을 통지한다. 인터럽트 요구의 처리 요구를 통지받은 레벨1의 OS(1x)는, 인터럽트 요구 처리를 행한다.
또한, 단계 S304에서, 레벨0의 OS(0)는, 중단 파티션의 콘텍스트를 복원하고, 단계 S305에서, 중단 파티션의 인터럽트 벡터로 점프한다. 이 단계 S304, S 305의 처리는, 인터럽트 요구 처리에 의해 중단된 파티션을 레벨1의 OS(1x)에 재개시키기 위한 처리로서, 단계 S304에서 중단의 발생 시점의 상태를 회복하고, 단계 S305에서, 중단 발생 시점의 처리 단계로 회귀시키는 처리로서 실행하는 것이다.
d. 파티션 전환 처리
이어서, 파티션 전환 처리에 대하여, 도 17의 플로우차트를 참조하여 설명한다.
파티션 전환은, 레벨0의 OS(0)가 설정한 파티션 스케줄에 따른 타이밍에서 실행된다. 혹은 전술한 강제 인터럽트 처리의 경우에도 실행되는 처리이다.
단계 S401에서, 레벨0의 OS(0)는, 파티션 전환을 실행하기 위해 처리를 끝내는 현행 파티션의 콘텍스트를 메모리에 기억한다. 예를 들면 레지스터값 등, 파티션을 재개할 때에 필요한 정보이다.
단계 S402에서, 현행 파티션을 실행 중인 프로세서가 관계하는 인터럽트 그룹의 보류 큐의 큐 저장 상태를 판정한다.
큐가 비어 있는 경우에는, 인터럽트 처리는 실행되지 않게 되고, 미리 설정된 파티션 스케줄에 따른 처리가 행해지므로, 단계 S403으로 진행하고, 다음으로 실행 예정의 파티션의 콘텍스트를 복원하고, 복원된 콘텍스트에 기초하여, 레벨1의 OS(1x)에 의해 다음 파티션이 실행된다.
단계 S402에서, 현행 파티션을 실행 중인 프로세서가 관계하는 인터럽트 그룹의 보류 큐에 인터럽트 요구의 큐가 존재한다고 판정된 경우에는, 단계 S411로 진행하고, 보류 큐의 선두로부터, 인터럽트 요구의 엔트리를 취득한다. 전술한 바와 같이, 보류 큐는 최대 허용 지연 시간이 짧은 것부터 순서대로 배열되어 있다.
단계 S412에서, 취출한 보류 큐의 인터럽트 요구에 대응하는 인터럽트 파티션을 실행하는 OS(1x)에 인터럽트 요구 처리의 실행을 통지한다. 인터럽트 요구의 처리 요구를 통지받은 레벨1의 OS(1x)는, 인터럽트 요구 처리를 행한다. 단계 S413에서 통지 완료 인터럽트 요구 정보에 인터럽트 정보를 추가한다.
단계 S414에서, 통지 완료 인터럽트 요구의 최대 기여 용지(用地) 시간에 대응하여 설정되어 있는 강제 인터럽트 처리의 타이머 설정을 해제한다.
또한, 단계 S415에서, 인터럽트 처리의 실행 전의 상태값의 회복, 즉 파티션 의 콘텍스트를 복원하고, 단계 S416에서, 파티션의 인터럽트 벡터로 점프 처리를 실행한다. 이 단계 S415, S416의 처리는, 인터럽트 요구 처리에 의해 지연된 후에 실행 예정의 파티션을 레벨1의 OS(1x)에 정상적으로 실행시키기 위한 처리이고, 단계 S415의 처리는, 인터럽트의 발생에 따라 변화한 각종 상태값을 인터럽트가 발생하지 않았던 경우의 상태값으로 회복시키는 처리로서 행해지고, 단계 S416은, 인터럽트가 발생하지 않았던 경우의 처리 단계에 레벨1의 OS(1x)를 설정하는 처리로서 실행하는 것이다.
[9. 정보 처리 장치의 하드 구성예]
이어서, 전술한 처리를 실행하는 프로세스 관리 수단을 구비한 정보 처리 장치의 하드웨어 구성예에 대하여 설명한다. 전술한 프로세스 관리는, 일반적인 PC에 의해서도 실현 가능하고, 도 1에 도시하는 계층 구성의 OS, 즉 실제로 어플리케이션과 제휴한 처리를 실행하는 레벨1의 OS(1x) 프로그램을 복수 저장하고, 이들의 복수 레벨1의 OS(1x) 프로그램의 파티션 관리를 실행하는 레벨0의 OS(0) 프로그램을 저장함으로써 PC 등의 다양한 정보 처리 장치에서 실현된다.
도 18에 전술한 프로세스 관리를 실행하는 것이 가능한 정보 처리 장치의 하드웨어 구성예를 도시한다.
CPU(Central Processing Unit)(951, 952, 953)는, ROM(Read Only Memory)(902), 또는 HDD(904) 등에 기억되어 있는 프로그램에 따라, 각종 처리를 실행하여, 데이터 처리 수단으로서 기능한다.
전술한 실시예에서의 레벨1의 각 OS(1x)의 제어 하에 여러가지 처리를 실행 한다. 또한, 레벨0의 OS(0)가 실행하는 처리에도 적용된다. 각각의 프로세서(CPU)에는 타이머(961, 962, 963)가 설정되고, 파티션 스케줄의 관리, 인터럽트 요구의 최대 허용 지연 시간, 최소 허용 지연 시간의 계측에 이용된다.
RAM(903)에는, CPU(961, 962, 963) 각각이 실행하는 프로그램이나 데이터가 적절하게 기억된다. 프로그램으로서는 레벨0의 OS(0)가 실행하는 파티션 관리 프로그램이 포함되고, 전술한 각종 처리는 파티션 관리 프로그램에 기초하여 실행된다.
또한, 도 9를 참조하여 설명한 공유 메모리 내의 인터럽트 그룹별 보류 큐, 인터럽트 요구 발생원 정보, 통지 완료 인터럽트 요구 정보, 또한 각 프로세서 대응의 국소 메모리의 저장 정보, 예를 들면 파티션 전환 시에 보존, 복원할 콘텍스트 정보, 여러가지 시간 정보, 어드레스 정보 등이 저장된다. 도 9에서는, 각 국소 메모리, 공유 메모리를 개별로 구분하여 기재했지만, 이들은 하나의 메모리에 각 기억 영역을 구분 설정하여 기억하는 것이 가능하다. CPU(951, 952, 953), ROM(902), 및 RAM(903), HDD(904)는, 버스(905)를 통하여 서로 접속되어 있다.
버스(905)에는, 입출력 인터페이스(906)가 접속되어 있고, 이 입출력 인터페이스(906)에는, 예를 들면 사용자에 의해 조작되는 키보드, 마우스 등의 입력 정보를 처리하는 입력부(907), 사용자에게 각종 정보를 제시하는 LCD, CRT, 스피커 등으로 구성되는 출력부(908)가 접속된다. 또한, 데이터 송수신 수단으로서 기능하는 통신부(909), 자기 디스크, 광 디스크, 광 자기 디스크, 또는 반도체 메모리 등의 리무버블 기록 매체(911)를 장착하고, 이들 리무버블 기록 매체(911)로부터의 데이터 판독 혹은 기입 처리를 실행하는 드라이브(910)가 접속된다.
도 18에 도시하는 하드 구성은, 전술한 프로세스 관리를 적용하는 것이 가능한 정보 처리 장치의 하나로서 PC의 하드 구성을 도시한 것으로, 본 발명의 프로세스 관리는, 이 PC 구성에 한하지 않고, 복수의 OS가 탑재되어, 파티션 관리에 의한 프로세스 관리가 실행되는 게임 기기, 통신 단말 장치 등, 다양한 정보 처리 장치에서 적용 가능한 것이다.
이상, 특정한 실시예를 참조하면서, 본 발명에 대하여 상세히 설명해 왔다. 그러나, 본 발명의 요지를 이탈하지 않은 범위에서 당업자가 해당 실시예의 수정이나 대용을 할 수 있는 것은 자명하다. 즉, 예시의 형태로 본 발명을 개시해 온 것으로, 한정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는, 특허 청구의 범위란을 참작해야한다.
또한, 명세서 중에서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 혹은 양자의 복합 구성에 의해 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우에는, 처리 시퀀스를 기록한 프로그램을, 전용의 하드웨어에 내장된 컴퓨터 내의 메모리에 인스톨하여 실행시키거나, 혹은 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록 매체로서의 하드디스크나 ROM(Read Only Memory)에 미리 기록해 둘 수 있다. 혹은, 프로그램은 플렉시블 디스크, CD-ROM(Compact Disc Read Only Memory), MO(Magneto optical) 디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록 매체에, 일시적 혹은 영속적으로 저장(기록)해 둘 수 있다. 이러한 리무버블 기록 매체는, 소위 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 전술한 바와 같은 리무버블 기록 매체로부터 컴퓨터에 인스톨하는 것 외에, 다운로드 사이트로부터, 컴퓨터에 무선 전송하거나, LAN(Local Area Network), 인터넷이라고 한 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그와 같이 하여 전송되어 오는 프로그램을 수신하여, 내장된 하드디스크 등의 기록 매체에 인스톨할 수 있다.
또한, 명세서에 기재된 각종 처리는, 기재에 따라 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 혹은 필요에 따라 병렬적으로 혹은 개별로 실행되어도 된다. 또한, 본 명세서에서 시스템이란, 복수의 장치의 논리적 집합 구성이고, 각 구성의 장치가 동일 케이싱 내에 있다고는 한하지 않는다.
이상, 설명한 바와 같이, 본 발명의 구성에 따르면, 복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어에 있어서, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 구성으로 했으므로, 인터럽트 요구에 대응하는 파티션 전환 처리의 증가를 1회로만 억제하는 것이 가능해져, 처리 부하의 증대를 방지하여, 효율적인 데이터 처리를 실행하는 것이 가능하게 된다.
또한, 본 발명의 구성에 따르면, 인터럽트 처리 요구에, 최대 허용 지연 시간, 혹은 최소 허용 지연 시간이 설정되어 있는 경우, 이들의 허용 시간 내에 파티 션 전환이 발생한 경우에는, 그 전환 타이밍에 인터럽트 처리 파티션을 설정하고, 이들의 허용 시간 내에 파티션 전환이 발생하지 않는 경우에는, 강제 인터럽트를 행하는 등, 각 인터럽트 요구에 대응한 처리를 실행하는 구성이므로, 처리 에러를 발생시키지 않는 구성이 실현된다.
또한, 본 발명의 구성에 따르면, 멀티프로세서 시스템에서 복수 OS에 의한 처리가 병렬로 실행 가능한 구성에서는, 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 선택한 파티션 스케줄 중 파티션 전환 타이밍에 일치시켜 인터럽트 처리 파티션을 설정하는 구성으로 했으므로, 복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍에 인터럽트 요구를 실행시키는 것이 가능해져, 더 효율적인 데이터 처리가 가능하게 된다.

Claims (17)

  1. 복수의 오퍼레이팅 시스템(OS)을 저장한 기억부와,
    상기 복수의 OS에 기초하는 처리를 실행하는 프로세서와,
    상기 복수의 OS 각각의 처리로서 규정되는 파티션을 시간축을 따라 스케쥴링하고, 스케쥴링에 따른 파티션 전환 제어에 기초하여 상기 복수의 OS의 전환 제어를 실행하는 프로세스 관리 수단을 갖는 정보 처리 장치로서,
    상기 프로세스 관리 수단은,
    최대 허용 지연 시간이 설정된 인터럽트 처리 요구의 발생으로부터 상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있는지의 여부를 판단하고,
    상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있다고 판단한 경우에는, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하고, 파티션 스케줄에서 예정된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에서 인터럽트 처리를 실행시키는 프로세스 제어를 행하는 구성을 갖는 것을 특징으로 하는 정보 처리 장치.
  2. 제1항에 있어서,
    상기 프로세스 관리 수단은,
    상기 인터럽트 처리 파티션을, 인터럽트 요구 발생 후의 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  3. 제1항에 있어서,
    상기 프로세스 관리 수단은,
    인터럽트 처리 요구의 발생으로부터 상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 없다고 판단한 경우에는, 실행 중인 파티션을 중단하고, 인터럽트 처리를 실행시키는 프로세스 제어를 행하는 구성을 갖는 것을 특징으로 하는 정보 처리 장치.
  4. 제1항에 있어서,
    상기 복수의 OS에 기초하는 처리를 실행하는 프로세서는 병렬로 동작 가능한 복수의 프로세서를 갖는 구성이고,
    상기 프로세스 관리 수단은,
    상기 복수의 프로세서 각각에 대하여, 상기 파티션을 시간축을 따라 스케쥴링하고, 각 프로세서에 대한 파티션 스케줄에 따른 파티션 전환 제어를 실행하는 구성이고,
    상기 인터럽트 처리 파티션을, 상기 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 해당 선택한 파티션 스케줄 중 파티션 전환 타이 밍에 일치시켜 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  5. 제4항에 있어서,
    상기 프로세스 관리 수단은,
    복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍을 갖는 파티션 스케줄을 선택하여, 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  6. 제1항에 있어서,
    상기 프로세스 관리 수단은,
    인터럽트 처리 요구가 최소 허용 지연 시간이 설정된 요구인 경우에, 인터럽트 처리 요구의 발생으로부터 최소 허용 지연 시간 이후에 발생하는 미리 설정된 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  7. 제1항에 있어서,
    상기 프로세스 관리 수단은,
    인터럽트 처리 요구에 대응하는 인터럽트 처리가 미리 설정된 파티션 스케줄 에 규정된 스케줄 완료 파티션에서 실행 가능한 경우에, 해당 인터럽트 처리를 상기 스케줄 완료 파티션에서 실행시키는 처리를 행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  8. 제1항에 있어서,
    상기 복수의 OS에 기초하는 처리를 실행하는 프로세서는 병렬로 동작 가능한 복수의 프로세서를 갖는 구성으로서,
    상기 프로세스 관리 수단은,
    각 프로세서에 대응하는 프로세스 제어를 실행하는 프로세서 대응의 파티션 전환 모듈을 갖는 구성인 것을 특징으로 하는 정보 처리 장치.
  9. 제8항에 있어서,
    상기 파티션 전환 모듈은,
    파티션 전환 모듈의 대응된 프로세서의 처리 가능한 인터럽트 요구 발생원 정보로서의 인터럽트 그룹 정보를 가짐과 함께, 인터럽트 그룹마다 설정된 인터럽트 요구 대기 행렬로서 설정되는 복수의 인터럽트 그룹별 보류 큐로부터 상기 인터럽트 그룹 정보에 의해 판별되는 프로세서에 의해 처리 가능한 그룹에 대응하는 보류 큐에 저장된 인터럽트 요구의 엔트리에 관한 처리를 실행하는 구성인 것을 특징으로 하는 정보 처리 장치.
  10. 복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어 방법으로서,
    인터럽트 처리 요구의 발생을 검출하는 단계와,
    인터럽트 처리 요구가 최대 허용 지연 시간이 설정된 인터럽트 처리 요구인지의 여부를 판단하는 인터럽트 처리 요구 양태 판단 단계와,
    최대 허용 지연 시간이 설정된 인터럽트 처리 요구의 발생으로부터 상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있는지의 여부를 판단하는 타이밍 판단 단계와,
    상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있다고 판단한 경우에는, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 인터럽트 처리 파티션 설정 단계와,
    상기 인터럽트 처리 파티션 설정 정보에 따라, 파티션 스케줄에서 예정된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에서 인터럽트 처리를 실행하는 인터럽트 처리 실행 단계
    를 갖는 것을 특징으로 하는 프로세스 제어 방법.
  11. 제10항에 있어서,
    상기 인터럽트 처리 파티션 설정 단계는,
    상기 인터럽트 처리 파티션을, 인터럽트 요구 발생 후의 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 설정하는 처리를 실행하는 것을 특징으로 하는 프로세스 제어 방법.
  12. 제10항에 있어서,
    상기 인터럽트 처리 파티션 설정 단계는,
    상기 인터럽트 처리 요구 양태 판단 단계에서, 인터럽트 처리 요구가 최대 허용 지연 시간이 설정된 인터럽트 처리 요구라고 판단되고, 또한 상기 타이밍 판단 단계에서, 상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 없다고 판단된 경우,
    실행 중인 파티션을 중단하고, 중단부에 인터럽트 처리 파티션을 설정하는 것을 특징으로 하는 프로세스 제어 방법.
  13. 제10항에 있어서,
    상기 프로세스 제어 방법은,
    상기 복수의 OS에 기초하는 처리를 실행하는 복수의 프로세서 각각에 대하여, 상기 파티션을 시간축을 따라 스케쥴링하고, 각 프로세서에 대한 파티션 스케줄에 따른 파티션 전환 제어를 실행하는 단계를 더 갖고,
    상기 인터럽트 처리 파티션 설정 단계는,
    상기 복수의 프로세서에 대응하는 복수의 파티션 스케줄 중 하나를 선택하고, 해당 선택한 파티션 스케줄 중 파티션 전환 타이밍에 일치시켜 인터럽트 처리 파티션을 설정하는 것을 특징으로 하는 프로세스 제어 방법.
  14. 제13항에 있어서,
    상기 인터럽트 처리 파티션 설정 단계는,
    복수의 파티션 스케줄 중, 인터럽트 요구 발생 후, 가장 빠른 타이밍의 파티션 전환 타이밍을 갖는 파티션 스케줄을 선택하고, 가장 빠른 타이밍의 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 것을 특징으로 하는 프로세스 제어 방법.
  15. 제10항에 있어서,
    상기 인터럽트 처리 파티션 설정 단계는,
    인터럽트 처리 요구가 최소 허용 지연 시간이 설정된 요구인 경우에, 인터럽트 처리 요구의 발생으로부터 최소 허용 지연 시간 이후에 발생하는 미리 설정된 파티션 전환 타이밍에 일치시켜 상기 인터럽트 처리 파티션을 설정하는 처리를 실행하는 구성인 것을 특징으로 하는 프로세스 제어 방법.
  16. 제10항에 있어서,
    상기 프로세스 제어 방법은,
    인터럽트 처리 요구에 대응하는 인터럽트 처리가 미리 설정된 파티션 스케줄에 규정된 스케줄 완료 파티션에서 실행 가능한 경우에, 해당 인터럽트 처리를 상 기 스케줄 완료 파티션에서 실행시키는 단계를 더 갖는 것을 특징으로 하는 프로세스 제어 방법.
  17. 복수의 오퍼레이팅 시스템(OS)에 기초하는 처리를 전환 제어하는 프로세스 제어를 실행하는 컴퓨터 프로그램으로서,
    인터럽트 처리 요구의 발생을 검출하는 단계와,
    인터럽트 처리 요구가 최대 허용 지연 시간이 설정된 인터럽트 처리 요구인지의 여부를 판단하는 인터럽트 처리 요구 양태 판단 단계와,
    최대 허용 지연 시간이 설정된 인터럽트 처리 요구의 발생으로부터 상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있는지의 여부를 판단하는 타이밍 판단 단계와,
    상기 최대 허용 지연 시간 이내에, 미리 설정된 파티션 전환 타이밍이 있다고 판단한 경우에는, 인터럽트 처리 요구에 대응하는 인터럽트 처리 실행 기간으로서의 인터럽트 처리 파티션을, 미리 설정된 파티션 전환 타이밍에 일치시켜 설정하는 인터럽트 처리 파티션 설정 단계와,
    상기 인터럽트 처리 파티션 설정 정보에 따라, 파티션 스케줄에서 예정된 하나의 파티션의 종료에 이은 처리로서 상기 OS 중 어느 하나에서 인터럽트 처리를 실행하는 인터럽트 처리 실행 단계
    를 갖는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020057001912A 2003-06-03 2004-05-11 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램 KR20060023514A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00157565 2003-06-03
JP2003157565A JP3952992B2 (ja) 2003-06-03 2003-06-03 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
KR20060023514A true KR20060023514A (ko) 2006-03-14

Family

ID=33508394

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057001912A KR20060023514A (ko) 2003-06-03 2004-05-11 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램

Country Status (6)

Country Link
US (1) US7818751B2 (ko)
EP (1) EP1548592B1 (ko)
JP (1) JP3952992B2 (ko)
KR (1) KR20060023514A (ko)
CN (1) CN100483351C (ko)
WO (1) WO2004109512A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4009602B2 (ja) * 2004-03-02 2007-11-21 日本電気通信システム株式会社 リアルタイムosを用いたタスク処理方法、装置、及びプログラム
US8156493B2 (en) * 2006-04-12 2012-04-10 The Mathworks, Inc. Exception handling in a concurrent computing process
US8694999B2 (en) * 2006-12-07 2014-04-08 Wind River Systems, Inc. Cooperative scheduling of multiple partitions in a single time window
US7913009B2 (en) * 2007-06-20 2011-03-22 Microsoft Corporation Monitored notification facility for reducing inter-process/inter-partition interrupts
CN101546365B (zh) * 2008-03-25 2011-01-26 联想(北京)有限公司 硬件安全单元逻辑切换方法、系统及硬件安全单元
US8135921B2 (en) 2008-06-06 2012-03-13 International Business Machines Corporation Automated paging device management in a shared memory partition data processing system
US8090911B2 (en) 2009-04-16 2012-01-03 International Business Machines Corporation Selecting a target number of pages for allocation to a partition
EP2672344B1 (en) * 2011-01-31 2017-06-28 Toyota Jidosha Kabushiki Kaisha Safety control device and safety control method
US20120198464A1 (en) * 2011-01-31 2012-08-02 Toyota Jidosha Kabushiki Kaisha Safety controller and safety control method
KR101773166B1 (ko) * 2011-02-21 2017-08-30 삼성전자주식회사 가상 머신 스케줄 시점 조절 장치 및 방법
JP5829890B2 (ja) * 2011-11-02 2015-12-09 ルネサスエレクトロニクス株式会社 半導体データ処理装置、タイムトリガ通信システム及び通信システム
US9110878B2 (en) * 2012-01-18 2015-08-18 International Business Machines Corporation Use of a warning track interruption facility by a program
US9104508B2 (en) * 2012-01-18 2015-08-11 International Business Machines Corporation Providing by one program to another program access to a warning track facility
US8850450B2 (en) * 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
US9229884B2 (en) 2012-04-30 2016-01-05 Freescale Semiconductor, Inc. Virtualized instruction extensions for system partitioning
US9152587B2 (en) * 2012-05-31 2015-10-06 Freescale Semiconductor, Inc. Virtualized interrupt delay mechanism
US9442870B2 (en) 2012-08-09 2016-09-13 Freescale Semiconductor, Inc. Interrupt priority management using partition-based priority blocking processor registers
US9436626B2 (en) 2012-08-09 2016-09-06 Freescale Semiconductor, Inc. Processor interrupt interface with interrupt partitioning and virtualization enhancements
US9311137B2 (en) * 2012-09-28 2016-04-12 International Business Machines Corporation Delaying interrupts for a transactional-execution facility
JP5866082B1 (ja) * 2015-06-22 2016-02-17 三菱電機株式会社 プログラマブルコントローラおよびプログラマブルコントローラの制御方法
EP3451774B1 (en) * 2016-05-13 2020-11-04 Huawei Technologies Co., Ltd. Service data transmission method and user equipment
DE102016212808A1 (de) * 2016-07-13 2018-01-18 Robert Bosch Gmbh Unterbrechungsanforderungs-Verteilereinrichtung und Betriebsverfahren hierfür
CN106776056B (zh) * 2016-11-10 2020-12-29 北京像素软件科技股份有限公司 游戏数据处理方法、装置及服务器
DE112018002331T5 (de) * 2017-05-05 2020-01-16 Microchip Technology Inc. Vorrichtungen und verfahren zur priorisierung der übertragung von ereignissen auf seriellen kommunikationsverbindungen
CN109032029B (zh) * 2018-08-14 2020-12-08 北京东土科技股份有限公司 工业服务器对外通信方法、系统、装置及工业服务器

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
JPH0659906A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 並列計算機の実行制御方法
JPH06250850A (ja) * 1993-02-26 1994-09-09 Hitachi Ltd 入出力割込み要因の処理方法
US6466962B2 (en) 1995-06-07 2002-10-15 International Business Machines Corporation System and method for supporting real-time computing within general purpose operating systems
US5812844A (en) 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
JP2001282558A (ja) 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
EP1176795A3 (en) * 2000-07-25 2008-06-11 Canon Kabushiki Kaisha Information processing apparatus issuing job to peripheral device and method for issuing job to peripheral device
US20020161961A1 (en) * 2001-01-17 2002-10-31 Ajile Systems, Inc. Multiple virtual machine environment management system
JP2002259155A (ja) * 2001-02-26 2002-09-13 Hitachi Ltd 多重系計算機システム
US6944736B2 (en) * 2001-06-28 2005-09-13 Hewlett-Packard Development Company, L.P. Managing latencies in accessing memory of computer systems
JP2003036176A (ja) * 2001-07-24 2003-02-07 Sony Corp 割り込み処理システム
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
EP1467282B1 (en) * 2003-04-09 2008-10-01 Jaluna SA Operating systems
US7281075B2 (en) * 2003-04-24 2007-10-09 International Business Machines Corporation Virtualization of a global interrupt queue
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050132121A1 (en) * 2003-12-16 2005-06-16 Wind River Systems, Inc. Partitioned operating system tool

Also Published As

Publication number Publication date
CN1698034A (zh) 2005-11-16
EP1548592B1 (en) 2015-07-01
US20050278719A1 (en) 2005-12-15
CN100483351C (zh) 2009-04-29
JP2004362100A (ja) 2004-12-24
US7818751B2 (en) 2010-10-19
JP3952992B2 (ja) 2007-08-01
EP1548592A1 (en) 2005-06-29
WO2004109512A1 (ja) 2004-12-16
EP1548592A4 (en) 2008-04-30

Similar Documents

Publication Publication Date Title
KR20060023514A (ko) 정보 처리 장치, 프로세스 제어 방법, 및 컴퓨터 프로그램
JP4580845B2 (ja) タスク実行装置
US7996593B2 (en) Interrupt handling using simultaneous multi-threading
JP3776449B2 (ja) マルチタスク低電力制御装置
KR20020087388A (ko) 연산처리시스템 및 연산처리 제어방법, 업무관리시스템 및업무관리방법과 기억매체
JP2000330807A (ja) 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
WO2009150815A1 (ja) マルチプロセッサシステム
JP2006099331A (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
WO2023246044A1 (zh) 调度方法及装置、芯片、电子设备及存储介质
JP4170364B2 (ja) プロセッサ
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
JP6311330B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2006146758A (ja) コンピュータシステム
WO2010137092A1 (ja) マルチオペレーティングシステム制御方法及びプロセッサシステム
JP2001236236A (ja) タスク制御装置およびそのタスクスケジューリング方法
JP2005149312A (ja) タスク管理システム
JPH11312148A (ja) バリア同期方法及び装置
Saranya et al. An implementation of partitioned scheduling scheme for hard real-time tasks in multicore linux with fair share for linux tasks
JPH1063515A (ja) マルチタスク制御のスケジューリング方法
JP7188472B2 (ja) コンピュータ、スケジューリング方法、及び、プログラム
Lee et al. Interrupt handler migration and direct interrupt scheduling for rapid scheduling of interrupt-driven tasks
US10901784B2 (en) Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor
JPH0644234B2 (ja) タスク管理装置
CN115599508A (zh) Cpu及任务调度方法
JP2010205046A (ja) 情報処理装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid