KR101093286B1 - 정보 처리 장치, 스케쥴러 및 스케쥴링 방법 - Google Patents

정보 처리 장치, 스케쥴러 및 스케쥴링 방법 Download PDF

Info

Publication number
KR101093286B1
KR101093286B1 KR1020090132693A KR20090132693A KR101093286B1 KR 101093286 B1 KR101093286 B1 KR 101093286B1 KR 1020090132693 A KR1020090132693 A KR 1020090132693A KR 20090132693 A KR20090132693 A KR 20090132693A KR 101093286 B1 KR101093286 B1 KR 101093286B1
Authority
KR
South Korea
Prior art keywords
time
program
programs
unit
base
Prior art date
Application number
KR1020090132693A
Other languages
English (en)
Other versions
KR20100081928A (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 가부시키가이샤 야마다케
Publication of KR20100081928A publication Critical patent/KR20100081928A/ko
Application granted granted Critical
Publication of KR101093286B1 publication Critical patent/KR101093286B1/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

(과제) 각각 연산 주기가 상이한 복수의 프로그램의 효율적인 연산을 가능하게 하는 정보 처리 장치를 제공한다.
(해결수단) 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부(301)와, 복수의 프로그램 각각의 연산 시간을, 각각 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하고, 복수의 베이스 기간 중의 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 하나의 베이스 기간후의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하는 할당부(305)와, 연산 시간이 할당된 복수의 프로그램을 연산하는 연산 장치(400)를 포함한다.

Description

정보 처리 장치, 스케쥴러 및 스케쥴링 방법{INFORMATION PROCESSING APPARATUS, SCHEDULER AND SCHEDULING METHOD}
본 발명은 컴퓨터 기술에 관한 것으로, 정보 처리 장치, 스케쥴러 및 스케쥴링 방법에 관한 것이다.
프로세스 제어기 및 PLC(Programmable Logic Controller) 등의 디지털식 컨트롤러는 이산적으로 제어 처리를 한다. 그 때문에, 디지털식 컨트롤러는, 소정의 연산 주기로, 제어 처리를 실현하는 프로그램의 연산을 반복하고 있다(예를 들어, 특허문헌 1 참조). 최근, 마이크로프로세서의 고집적화에 의해, 마이크로프로세서의 처리 능력의 고속화가 진행되고, 연산 주기의 단축화도 진행되고 있다. 그러나, 한편으로, 연산 주기가 짧은 것부터 긴 것까지 준비하여, 제어 처리의 용도에 따라 적절한 연산 주기를 각 프로그램에 할당하는 것도 고안되어 있다.
특허문헌 1 : 일본 특허 공개 2002-351509호 공보
각각 연산 주기가 상이한 복수의 프로그램은, 종래, 멀티태스크 오퍼레이팅 시스템(OS)에 의해 실행되었다. 그러나, 멀티태스크 0S에 의한 단순한 타임 셰어에서는, 프로그램의 엄밀한 연산 주기를 지키는 것을 보증할 수 없다. 또한, 복수의 프로그램 각각에 우선 순위를 붙이는 번잡한 순서가 필요했다. 또, 마이크로프로세서의 처리 능력을, 미리 연산 주기가 짧은 프로그램과, 연산 주기가 긴 프로그램에 할당하는 것도 고안되었다. 그러나, 미리 설정된 처리 능력의 할당에, 실제로 연산되는 프로그램의 수가 대응하지 않는 경우가 생길 수 있다. 그 때문에, 예를 들어 연산 주기가 짧은 프로그램의 수가 많아, 미리 연산 주기가 짧은 프로그램의 처리에 할당된 마이크로프로세서의 처리 능력이 부족해지는 한편, 연산 주기가 긴 프로그램의 수가 적어, 미리 연산 주기가 긴 프로그램의 처리에 할당된 마이크로프로세서의 처리 능력은 비어 있는 채로 있는 사태가 생길 수 있다. 그 결과, 마이크로프로세서의 불필요한 처리 능력이 발생할 문제가 생길 수 있다.
따라서, 본 발명은, 각각 연산 주기가 상이한 복수의 프로그램의 효율적인 연산을 가능하게 하는 정보 처리 장치, 스케쥴러 및 스케쥴링 방법을 제공하는 것을 목적의 하나로 한다.
본 발명의 형태는, 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부와, 복수의 프로그램 각각의 연산 시간을, 각각 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하고, 복수의 베이스 기간 중의 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 하나의 베이스 기간후의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하는 할당부와, 복수의 베이스 기간 중에 각각 연산 시간이 할당된 복수의 프로그램을 연산하는 연산부를 포함하는 정보 처리 장치인 것을 요지로 한다. 본 발명에 따른 정보 처리 장치에 의하면, 복수의 베이스 기간 각각에, 각각 연산 주기가 상이한 복수의 프로그램이, 연산 주기가 짧은 순으로 할당되기 때문에, 복수의 프로그램을 효율적으로 연산하는 것이 가능해진다.
본 발명의 다른 형태는, 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부와, 복수의 프로그램 각각의 연산 시간을, 각각 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하고, 복수의 베이스 기간 중의 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 하나의 베이스 기간후의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하는 할당부를 포함하는 스케쥴러인 것을 요지로 한다. 본 발명에 따른 스케쥴러에 의하면, 복수의 베이스 기간 각각에, 각각 연산 주기가 상이한 복수의 프로그램이, 연산 주기가 짧은 순으로 할당되기 때문에, 복수의 프로그램을 효율적으로 스케쥴하는 것이 가능해진다.
본 발명의 다른 형태는, 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 것과, 복수의 프로그램 각각의 연산 시간을, 각각 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하고, 복수의 베이스 기간 중의 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 하나의 베이스 기간후의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하는 것을 포함하는 스케쥴링 방법인 것을 요지로 한다. 본 발명에 따른 스케쥴링 방법에 의하면, 복수의 베이스 기간 각각에, 각각 연산 주기가 상이한 복수의 프로그램이, 연산 주기가 짧은 순으로 할당되기 때문에, 복수의 프로그램을 효율적으로 스케쥴하는 것이 가능해진다.
본 발명에 의하면, 각각 연산 주기가 상이한 복수의 프로그램의 효율적인 연산을 가능하게 하는 정보 처리 장치, 스케쥴러 및 스케쥴링 방법을 제공할 수 있다.
이하에 본 발명의 실시형태를 설명한다. 이하의 도면의 기재에서, 동일 또는 유사한 부분에는 동일 또는 유사한 부호로 표시하였다. 단, 도면은 모식적인 것이다. 따라서, 구체적인 치수 등은 이하의 설명을 대조하여 판단해야 하는 것이다. 또, 도면 상호간에도 상호의 치수의 관계나 비율이 상이한 부분이 포함되어 있는 것은 물론이다.
(제1 실시형태)
제1 실시형태에 따른 정보 처리 장치는, 도 1에 나타낸 바와 같이, 스케쥴러(300)를 포함한다. 스케쥴러(300)는, 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부(301)를 포함한다. 또, 스케쥴러(300)는, 복수의 프로그램 각각의 연산 시간을, 각각 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 연산 주기가 보다 짧은 순으로 할당하고, 복수의 베이스 기간 중의 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 하나의 베이스 기간후의 베이스 기간 중에, 연산 주기가 짧은 순으로 할당하는 할당부(305)를 더 포함한다. 또, 정보 처리 장치는, 복수의 베이스 기간 중에 각각 연산 시간이 할당된 복수의 프로그램을 연산하는 연산 장치(400)를 포함한다.
스케쥴러(300)와 연산 장치(400)는, 전기 신호를 전송하는 데이터 버스(500)로 접속되어 있다. 또한, 데이터 버스(500)에는, 각각 연산 주기가 상이한 복수의 프로그램을 보존하는 프로그램 기억 장치(330)가 접속되어 있다. 복수의 프로그램은, 각각 복수의 기능 블록을 포함한다. 여기서는, 프로그램 기억 장치(330)가 제1 내지 제4 프로그램을 보존하고 있는 경우를 예를 들어 설명한다.
제1 프로그램은, 예를 들어, 100 밀리초의 연산 주기로 연산되는 기능 블록을 25개 포함하고 있다. 제1 실시형태에서, 연산 장치(400)에서 1개의 기능 블록을 연산하기 위해 필요한 연산 시간이 2 밀리초인 경우, 제1 프로그램을 1회 연산하기 위해 필요한 연산 시간은 50 밀리초이다. 제2 프로그램은, 예를 들어, 200 밀리초의 연산 주기로 연산되는 기능 블록을 30개 포함하고 있다. 이 경우, 제2 프로그램을 1회 연산하기 위해 필요한 연산 시간은 60 밀리초이다.
제3 프로그램은, 예를 들어, 500 밀리초의 연산 주기로 연산되는 기능 블록 을 25개 포함하고 있다. 이 경우, 제3 프로그램을 1회 연산하기 위해 필요한 연산 시간은 50 밀리초이다. 제4 프로그램은, 예를 들어, 1000 밀리초의 연산 주기로 연산되는 기능 블록을 50개 포함하고 있다. 이 경우, 제4 프로그램을 1회 연산하기 위해 필요한 연산 시간은 100 밀리초이다.
단위 시간 산출부(301)은, 데이터 버스(500)를 통해, 프로그램 기억 장치(330)로부터, 제1 내지 제4 프로그램 각각의 연산 주기를 판독한다. 또한 단위 시간 산출부(301)는, 제1 내지 제4 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출한다. 여기서는, 제1 프로그램, 제2 프로그램, 제3 프로그램 및 제4 프로그램의 연산 주기가, 각각 100 밀리초, 200 밀리초, 500 밀리초 및 1000 밀리초이므로, 단위 시간으로서 산출되는 최대 공약수는 100 밀리초이다. 제1 내지 제4 프로그램 각각의 연산 주기의 값이 정수가 아닌 경우는, 연산 주기의 값을 정수로 표기할 수 있도록, 예컨대 단위를 환산하면 된다. 예를 들어, 프로그램 기억 장치(330)에, 제1 내지 제4 프로그램 각각의 연산 주기가 0.1초, 0.2초, 0.5초 및 1초로 보존되고 있는 경우는, 단위를 초에서 밀리초로 환산함으로써, 연산 주기의 값을 정수로 표기할 수 있다.
스케쥴러(300)는, 완료 시간 산출부(302) 및 연산 횟수 산출부(303)를 더 포함한다. 완료 시간 산출부(302) 및 연산 횟수 산출부(303)는, 데이터 버스(500)를 통해, 프로그램 기억 장치(330)로부터, 제1 내지 제4 프로그램 각각의 연산 주기를 판독한다. 또한 완료 시간 산출부(302)는, 제1 내지 제4 프로그램 각각의 연산 주기의 최소 공배수를, 제1 내지 제4 프로그램의 모든 연산이 적어도 1회 완료되기 위해 필요한 완료 시간으로서 산출한다. 여기서는, 완료 시간으로서 산출되는, 제1 내지 제4 프로그램 각각의 연산 주기의 최소 공배수는 1000 밀리초이다. 또, 상술한 바와 같이, 제1 내지 제4 프로그램 각각의 연산 주기의 값이 정수가 아닌 경우는, 연산 주기의 값을 정수로 표기할 수 있도록, 예컨대 단위를 환산하면 된다.
연산 횟수 산출부(303)는, 완료 시간 산출부(302)로부터 산출된 완료 시간을 수신한다. 또한 연산 횟수 산출부(303)는, 수신한 완료 시간을 프로그램의 연산 주기로 나눔으로써, 완료 시간까지, 연산 장치(400)가 프로그램을 연산하는 합계 연산 횟수를 산출한다. 여기서, 완료 시간이 1000 밀리초인 경우, 연산 주기가 100 밀리초인 제1 프로그램의 합계 연산 횟수는 10회이며, 연산 주기가 200 밀리초인 제2 프로그램의 합계 연산 횟수는 5회이다. 또, 연산 주기가 500 밀리초인 제3 프로그램의 합계 연산 횟수는 2회이며, 연산 주기가 1000 밀리초인 제4 프로그램의 합계 연산 횟수는 1회이다.
할당부(305)는, 데이터 버스(500)를 통해, 프로그램 기억 장치(330)로부터, 제1 내지 제4 프로그램 각각의 연산 주기 및 1회당 연산 시간을 판독한다. 또, 할당부(305)는, 단위 시간 산출부(301)로부터 산출된 단위 시간을 수신하고, 완료 시간 산출부(302)로부터 산출된 완료 시간을 수신하고, 연산 횟수 산출부(303)로부터 산출된 합계 연산 횟수를 수신한다.
또한, 할당부(305)는, 완료 시간을 단위 시간으로 나눈 수를, 설정하는 복수의 베이스 기간의 수로서 산출한다. 완료 시간이 1000 밀리초이고, 단위 시간이 100 밀리초인 경우, 설정하는 복수의 베이스 기간의 수는 10이다. 여기서, 할당 부(305)는, 제1 내지 제4 프로그램 각각의 연산 횟수가, 연산 횟수 산출부(303)가 산출한 합계 연산 횟수에 도달할 때까지, 제1 내지 제4 프로그램 각각의 연산 시간을, 설정하는 첫번째 내지 열번째의 베이스 기간 각각 중에 할당한다.
우선, 할당부(305)는, 도 2에 나타낸 바와 같이, 단위 시간 산출부(301)가 산출한 100 밀리초의 단위 시간을 갖는 첫번째 베이스 기간을 설정하여, 첫번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 제1 프로그램의 연산 주기가 가장 짧기 때문에, 할당부(305)는, 첫번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 연산 횟수 산출부(303)가 산출한 제1 프로그램의 합계 연산 횟수에서 1을 빼고, 제1 프로그램의 나머지 연산 횟수를 9로 한다.
제1 프로그램을 1회 연산하기 위해 필요한 연산 시간은 50 밀리초이므로, 제1 프로그램의 연산 시간을 할당한 후, 첫번째 베이스 기간에는 비어 있는 시간이 50 밀리초 남는다. 따라서, 할당부(305)는, 첫번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제1 프로그램 다음으로 연산 주기가 짧은 제2 프로그램의 연산 시간을 할당하는 것을 시도한다. 그러나, 제2 프로그램을 1회 연산하기 위해 필요한 연산 시간은 60 밀리초이다. 그 때문에, 할당부(305)는, 첫번째 베이스 기간 중에, 제2 프로그램의 60 밀리초의 연산 시간 중, 최초의 50 밀리초의 연산 시간만을 할당한다. 또한, 할당부(305)는, 첫번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
첫번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 3에 나타낸 바와 같이, 두번째 베이스 기간을 설정하여, 두번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 두번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 감소시켜 8로 한다.
또, 할당부(305)는, 두번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 연산 시간을 할당하는 것을 시도한다. 여기서, 첫번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 10 밀리초의 연산 시간이, 첫번째 베이스 기간보다 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 남겨져 있다. 그 때문에, 할당부(305)는, 두번째 베이스 기간 중에, 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제2 프로그램의 1회째 연산이 완료되기 때문에, 할당부(305)는, 연산 횟수 산출부(303)가 산출한 제2 프로그램의 합계 연산 횟수에서 1을 빼고, 제2 프로그램의 나머지 연산 횟수를 4로 한다.
제2 프로그램의 연산 시간을 할당한 후, 두번째 베이스 기간에는 불필요한 시간이 40 밀리초 남는다. 제2 프로그램의 연산 주기는 200 밀리초이므로, 두번째 베이스 기간에서 연산이 종료된 경우, 제2 프로그램의 2회째 연산은, 세번째 베이스 기간으로부터 개시해야 한다. 따라서, 할당부(305)는, 두번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 제2 프로그램 다음으로 연산 주기가 짧은 제 3 프로그램의 연산 시간을 할당하는 것을 시도한다. 그러나, 제3 프로그램을 1회 연산하기 위해 필요한 연산 시간은 50 밀리초이다. 그 때문에, 할당부(305)는, 두번째 베이스 기간 중에, 제3 프로그램의 50 밀리초의 연산 시간 중, 최초의 40 밀리초의 연산 시간만을 할당한다. 또, 할당부(305)는, 두번째 베이스 기간 내에 할당할 수 없었던 제3 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
두번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 4에 나타낸 바와 같이, 세번째 베이스 기간을 설정하여, 세번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 세번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 7로 한다.
또, 할당부(305)는, 세번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 60 밀리초의 연산 시간 중 50 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 세번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
세번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 5에 나타낸 바와 같이, 네번째 베이스 기간을 설정하여, 네번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기 가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 네번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 6으로 한다.
또, 할당부(305)는, 네번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 세번째 베이스 기간 중에 할당할 수 없었던 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제2 프로그램의 2회째 연산이 완료되기 때문에, 할당부(305)는, 제2 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 3으로 한다. 그 후, 네번째 베이스 기간에는 비어 있는 시간이 40 밀리초 남는다.
따라서, 할당부(305)는, 네번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 두번째 베이스 기간 중에 할당할 수 없었던 제3 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제3 프로그램의 1회째 연산이 완료되기 때문에, 할당부(305)는, 연산 횟수 산출부(303)가 산출한 제3 프로그램의 합계 연산 횟수에서 1을 빼고, 제3 프로그램의 나머지 연산 횟수를 1로 한다. 그 후, 네번째 베이스 기간에는 비어 있는 시간이 30 밀리초 남는다.
따라서, 할당부(305)는, 네번째 베이스 기간 내의 제3 프로그램의 연산 시간 다음에, 제3 프로그램 다음으로 연산 주기가 짧은 제4 프로그램의 연산 시간을 할당하는 것을 시도한다. 그러나, 제4 프로그램을 1회 연산하기 위해 필요한 연산 시간은 100 밀리초이다. 그 때문에, 할당부(305)는, 네번째 베이스 기간 중에, 제4 프로그램의 100 밀리초의 연산 시간 중, 최초의 30 밀리초의 연산 시간만을 할당한다. 또한, 할당부(305)는, 네번째 베이스 기간 내에 할당할 수 없었던 제4 프로 그램의 나머지 70 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
네번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 6에 나타낸 바와 같이, 다섯번째 베이스 기간을 설정하여, 다섯번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 다섯번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 5로 한다.
또, 할당부(305)는, 다섯번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 60 밀리초의 연산 시간 중, 50 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 다섯번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
다섯번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 7에 나타낸 바와 같이, 여섯번째 베이스 기간을 설정하여, 여섯번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 여섯번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 4로 한다.
또, 할당부(305)는, 여섯번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 다섯번째 베이스 기간 중에 할당할 수 없었던 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제2 프로그램의 3회째 연산이 완료되기 때문에, 할당부(305)는, 제2 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 2로 한다. 또, 할당부(305)는, 여섯번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 제3 프로그램의 50 밀리초의 연산 시간 중, 40 밀리초의 연산 시간을 할당한다. 또한, 할당부(305)는, 여섯번째 베이스 기간 내에 할당할 수 없었던 제3 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
여섯번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 8에 나타낸 바와 같이, 일곱번째 베이스 기간을 설정하여, 일곱번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 일곱번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 3으로 한다.
또, 할당부(305)는, 일곱번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 60 밀리초의 연산 시간 중, 50 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 일곱번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
일곱번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 9에 나타낸 바와 같이, 여덟번째 베이스 기간을 설정하여, 여덟번째 베이스 기간 중에, 제1 내지 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 여덟번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 2로 한다.
또, 할당부(305)는, 여덟번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 일곱번째 베이스 기간 중에 할당할 수 없었던 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제2 프로그램의 4회째 연산이 완료되기 때문에, 할당부(305)는, 제2 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 1로 한다.
또, 할당부(305)는, 여덟번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 여섯번째 베이스 기간 중에 할당할 수 없었던 제3 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제3 프로그램의 2회째 연산이 완료되기 때문에, 할당부(305)는, 제3 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 0으로 한다. 그 후, 여덟번째 베이스 기간에는 비어 있는 시간이 30 밀리초 남는다.
따라서, 할당부(305)는, 여덟번째 베이스 기간 내의 제3 프로그램의 연산 시간 다음에, 네번째 베이스 기간 중에 할당할 수 없었던 제4 프로그램의 남겨져 있던 70 밀리초의 연산 시간을 할당하는 것을 시도한다. 그러나, 여덟번째 베이스 기간에는 비어 있는 시간이 30 밀리초밖에 남아 있지 않기 때문에, 할당부(305)는, 제4 프로그램의 남겨져 있던 70 밀리초의 연산 시간 중, 최초의 30 밀리초의 연산 시간만을 할당한다. 또, 할당부(305)는, 여덟번째 베이스 기간 내에 할당할 수 없었던 제4 프로그램의 나머지 40 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
여덟번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 10에 나타낸 바와 같이, 아홉번째 베이스 기간을 설정하여, 아홉번째 베이스 기간 중에, 나머지 연산 횟수가 0으로 되어 있지 않은 제1, 제2 및 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 할당부(305)는, 우선 아홉번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 1로 한다.
또, 할당부(305)는, 아홉번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 60 밀리초의 연산 시간 중, 50 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 아홉번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
아홉번째 베이스 기간에의 연산 시간의 할당이 종료되었기 때문에, 도 1에 나타내는 할당부(305)는, 도 11에 나타낸 바와 같이, 열번째 베이스 기간을 설정하여, 열번째 베이스 기간 중에, 나머지 연산 횟수가 0으로 되어 있지 않은 제1, 제2 및 제4 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시 도한다. 할당부(305)는, 우선 열번째 베이스 기간의 선두에 제1 프로그램의 연산 시간을 할당한다. 또, 할당부(305)는, 제1 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 0으로 한다.
또, 할당부(305)는, 열번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 아홉번째 베이스 기간 중에 할당할 수 없었던 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 이에 따라, 제2 프로그램의 5회째 연산이 완료되기 때문에, 할당부(305)는, 제2 프로그램의 나머지 연산 횟수를 1을 더 감소시켜 0으로 한다.
제2 프로그램 다음으로 연산 주기가 짧은 제3 프로그램의 나머지 연산 횟수는, 이미 0으로 되어 있다. 그 때문에, 할당부(305)는, 열번째 베이스 기간 중에 제3 프로그램의 연산 시간을 할당하지 않는다. 그리고, 할당부(305)는, 열번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 여덟번째 베이스 기간 중에 할당할 수 없었던 제4 프로그램의 남겨져 있던 40 밀리초의 연산 시간을 할당한다. 이에 따라, 제4 프로그램의 1회째 연산이 완료되기 때문에, 할당부(305)는, 연산 횟수 산출부(303)가 산출한 제4 프로그램의 합계 연산 횟수에서 1을 빼고, 제4 프로그램의 나머지 연산 횟수를 0으로 한다.
열번째 베이스 기간에의 연산 시간의 할당이 종료된 시점에서, 도 1에 나타내는 완료 시간 산출부(302)가 산출한 완료 시간에 도달한다. 또, 연산 횟수 산출부(303)가 산출한, 완료 시간까지, 연산 장치(400)가 제1 내지 제4 프로그램의 각각을 연산하는 합계 연산 횟수가 달성된다. 그 때문에, 할당부(305)는, 제1 내지 제4 프로그램 각각의 연산 시간의 할당 스케쥴의 작성을 종료한다.
연산 장치(400)는, 스케쥴러(300)로부터, 할당부(305)가 작성한 도 11에 나타내는 제1 내지 제4 프로그램 각각의 연산 시간의 할당 스케쥴을 수신한다. 또, 도 1에 나타내는 연산 장치(400)는, 프로그램 기억 장치(330)로부터 제1 내지 제4 프로그램을 판독한다. 또한, 연산 장치(400)는, 수신한 도 11에 나타내는 할당 스케쥴에 따라서 제1 내지 제4 프로그램을 연산한다. 또, 열번째 베이스 기간에서의 연산이 종료된 후에는, 첫번째 베이스 기간으로 되돌아가, 제1 내지 제4 프로그램의 연산을 반복한다. 도 1에 나타내는 연산 장치(400)는, 반드시 도 11에 나타내는 할당 스케쥴의 완성을 대기하여 제1 내지 제4 프로그램을 연산하지 않아도 된다. 예를 들어, 연산 장치(400)는, 스케쥴러(300)에 의한 할당 스케쥴의 작성과 병행하여, 첫번째 베이스 기간의 선두에 할당된 프로그램으로부터 연산을 실행해도 된다.
도 1에 나타내는 데이터 버스(500)에는, 일시 기억 장치(331), 입력 장치(312) 및 출력 장치(313)가 더 접속되어 있다. 일시 기억 장치(331)에는, 스케쥴러(300) 및 연산 장치(400)에 의해 처리 결과가 순서대로 보존된다. 입력 장치(312)에는, 프로그램 기억 장치(330)에 보존되는 프로그램 등이 입력된다. 출력 장치(313)는, 스케쥴러(300)가 작성한 프로그램의 할당 스케쥴 및 연산 장치(400)가 연산한 프로그램의 연산 결과 등이 출력된다.
이상 설명한 제1 실시형태에 따른 정보 처리 장치에 의하면, 복수의 프로그램의 연산 시간을, 각각의 연산 주기에 따르면서 효율적으로 스케쥴링하는 것이 가 능해진다. 또한, 제1 실시형태에 따른 정보 처리 장치에 의하면, 각 베이스 기간에 프로그램의 연산 시간을 연속적으로 할당하므로, 연산 장치(400)의 불필요한 처리 능력을 생략하는 것도 가능해진다.
(제2 실시형태)
제2 실시형태에 따른 도 12에 나타내는 정보 처리 장치의 프로그램 기억 장치(330)에는, 제1 실시형태와 동일한 제1 내지 제3 프로그램이 보존되어 있다. 또, 제2 실시형태에 따른 프로그램 기억 장치(330)에는, 제4 프로그램 대신, 예를 들어 1000 밀리초의 연산 주기로 연산되는 기능 블록을 30개 포함하는 제5 프로그램이 보존되어 있다. 연산 장치(400)에서 1개의 기능 블록을 연산하기 위해 필요한 연산 시간이 2 밀리초인 경우, 제5 프로그램을 1회 연산하기 위해 필요한 연산 시간은 60 밀리초이다.
또한, 제2 실시형태에 따른 프로그램 기억 장치(330)에는, 다른 프로그램의 연산을 개시한 후, 예를 들어 300 밀리초부터 400 밀리초 사이의 타이밍에 연산되도록, 사용자에 의해 지정된 제1 타이밍 지정 프로그램이 보존되어 있다. 제1 타이밍 지정 프로그램은, 예를 들어, 기능 블록을 5개 포함한다. 이 경우, 제1 타이밍 지정 프로그램을 1회 연산하기 위해 필요한 연산 시간은 10 밀리초이다.
또, 제2 실시형태에 따른 프로그램 기억 장치(330)에는, 다른 프로그램의 연산을 개시한 후, 예를 들어 800 밀리초부터 900 밀리초 사이의 타이밍에 연산되도록, 사용자에 의해 지정된 제2 타이밍 지정 프로그램이 보존되어 있다. 제2 타이밍 지정 프로그램은, 예를 들어, 기능 블록을 15개 포함한다. 이 경우, 제2 타이 밍 지정 프로그램을 1회 연산하기 위해 필요한 연산 시간은 30 밀리초이다.
단위 시간 산출부(301)는, 제1 실시형태와 마찬가지로, 제1 내지 제3 프로그램 및 제5 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출한다. 여기서, 단위 시간으로서 산출되는 최대 공약수는 100 밀리초이다. 또, 연산 횟수 산출부(303)는, 제1 내지 제3 프로그램 및 제5 프로그램 각각의 연산 주기의 최소 공배수를, 제1 내지 제3 프로그램 및 제5 프로그램의 모든 연산이 적어도 1회 완료되기 위해 필요한 완료 시간으로서 산출한다. 여기서, 완료 시간으로서 산출되는 최소 공배수는 1000 밀리초이다.
연산 횟수 산출부(303)는, 완료 시간까지, 연산 장치(400)가 제1 내지 제3 프로그램 및 제5 프로그램의 각각을 연산하는 합계 연산 횟수를 산출한다. 여기서, 제1 프로그램의 합계 연산 횟수는 10회이고, 제2 프로그램의 합계 연산 횟수는 5회이고, 제3 프로그램의 합계 연산 횟수는 2회이고, 제5 프로그램의 합계 연산 횟수는 1회이다.
제2 실시형태에 따른 스케쥴러(300)는 우선 할당부(304)를 더 포함한다. 우선 할당부(304)는, 단위 시간 산출부(301) 및 완료 시간 산출부(302)로부터, 단위 시간 및 완료 시간을 각각 수신한다. 또한, 우선 할당부(304)는, 완료 시간을 단위 시간으로 나눈 수를, 복수의 베이스 기간의 수로서 산출한다. 여기서, 완료 시간을 단위 시간으로 나눈 수는 10이기 때문에, 우선 할당부(304)는, 도 13에 나타낸 바와 같이, 첫번째 내지 열번째 베이스 기간을 설정한다. 또, 도 12에 나타내는 우선 할당부(304)는, 프로그램 기억 장치로부터, 제1 및 제2 타이밍 지정 프로 그램의 지정된 연산 타이밍과 연산 시간을 판독한다.
다음으로, 우선 할당부(304)는, 도 13에 나타내는 첫번째 내지 열번째 베이스 기간 중에, 제1 내지 제3 프로그램 및 제5 프로그램의 연산 시간을 할당하기 전에, 제1 및 제2 타이밍 지정 프로그램의 연산 시간을 할당한다. 여기서, 제1 타이밍 지정 프로그램은, 300 밀리초부터 400 밀리초 사이의 타이밍에 연산되도록 지정되어 있다. 그 때문에, 우선 할당부(304)는, 네번째 베이스 기간의 선두에, 제1 타이밍 지정 프로그램의 10 밀리초의 연산 시간을 할당한다. 또, 제2 타이밍 지정 프로그램은, 800 밀리초부터 900 밀리초 사이의 타이밍에 연산되도록 지정되어 있다. 그 때문에, 우선 할당부(304)는, 아홉번째 베이스 기간의 선두에, 제2 타이밍 지정 프로그램의 30 밀리초의 연산 시간을 할당한다.
제2 실시형태에서, 도 12에 나타내는 할당부(305)는, 우선 할당부(304)가, 첫번째 내지 열번째 베이스 기간 중에, 제1 및 제2 타이밍 지정 프로그램 각각의 연산 시간을 할당한 후, 첫번째 내지 열번째 베이스 기간 중에, 제1 내지 제3 프로그램 및 제5 프로그램 각각의 연산 시간을 할당한다. 구체적으로는, 할당부(305)는, 도 14에 나타낸 바와 같이, 우선 첫번째 내지 세번째 베이스 기간 중에, 제1 실시형태와 마찬가지로, 제1 내지 제3 프로그램의 연산 시간을 할당한다.
또, 네번째 베이스 기간의 최초의 10 밀리초에는, 이미 제1 타이밍 지정 프로그램의 연산 시간이 할당되어 있기 때문에, 할당부(305)는, 네번째 베이스 기간 내의 제1 타이밍 지정 프로그램의 연산 시간 다음에, 제1 내지 제3 프로그램 및 제5 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한 다. 따라서, 할당부(305)는, 제1 타이밍 지정 프로그램의 연산 시간 다음에, 우선 제1 프로그램의 연산 시간을 할당한다.
또, 할당부(305)는, 네번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 세번째 베이스 기간 중에 할당할 수 없었던, 제2 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 네번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 두번째 베이스 기간 중에 할당할 수 없었던 제3 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당한다. 그 후, 네번째 베이스 기간에는 비어 있는 시간이 20 밀리초 남는다.
따라서, 할당부(305)는, 네번째 베이스 기간 내의 제3 프로그램의 연산 시간 다음에, 제3 프로그램 다음으로 연산 주기가 짧은 제5 프로그램의 연산 시간을 할당하는 것을 시도한다. 그러나, 제5 프로그램을 1회 연산하기 위해 필요한 연산 시간은 60 밀리초이다. 그 때문에, 할당부(305)는, 네번째 베이스 기간 중에, 제5 프로그램의 60 밀리초의 연산 시간 중, 최초의 20 밀리초의 연산 시간만을 할당한다. 또, 도 12에 나타내는 할당부(305)는, 네번째 베이스 기간 내에 할당할 수 없었던 제5 프로그램의 나머지 40 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
그 후, 할당부(305)는, 도 15에 나타낸 바와 같이, 다섯번째 내지 일곱번째 베이스 기간 중에, 제1 실시형태와 마찬가지로, 제1 내지 제3 프로그램의 연산 시간을 할당한다. 다음으로, 할당부(305)는, 여덟번째 베이스 기간 중에, 제1 실시형태와 마찬가지로, 우선 제1 내지 제3 프로그램의 연산 시간을 할당한다. 그 후, 여덟번째 베이스 기간에는 비어 있는 시간이 30 밀리초 남는다.
따라서, 할당부(305)는, 여덟번째 베이스 기간 내의 제3 프로그램의 연산 시간 다음에, 네번째 베이스 기간 중에 할당할 수 없었던, 제5 프로그램의 남겨져 있던 40 밀리초의 연산 시간을 할당하는 것을 시도한다. 그러나, 여덟번째 베이스 기간에는 비어 있는 시간이 30 밀리초밖에 남아 있지 않기 때문에, 할당부(202)는, 제5 프로그램의 남겨져 있던 40 밀리초의 연산 시간 중, 최초의 30 밀리초의 연산 시간만을 할당한다. 또, 도 12에 나타내는 할당부(305)는, 여덟번째 베이스 기간 내에 할당할 수 없었던 제5 프로그램의 나머지 10 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
다음으로, 도 16에 나타낸 바와 같이, 아홉번째 베이스 기간의 최초의 30 밀리초에는, 이미 제2 타이밍 지정 프로그램의 연산 시간이 할당되어 있다. 그 때문에, 할당부(305)는, 아홉번째 베이스 기간 내의 제2 타이밍 지정 프로그램의 연산 시간 다음에, 제1 내지 제3 프로그램 및 제5 프로그램 각각의 연산 시간을, 연산 주기가 짧은 순으로 할당하는 것을 시도한다. 따라서, 할당부(305)는, 제2 타이밍 지정 프로그램의 연산 시간 다음에, 우선 제1 프로그램의 연산 시간을 할당한다.
또, 할당부(305)는, 아홉번째 베이스 기간 내의 제1 프로그램의 연산 시간 다음에, 제2 프로그램의 60 밀리초의 연산 시간 중, 20 밀리초의 연산 시간을 할당한다. 그리고, 도 12에 나타내는 할당부(305)는, 아홉번째 베이스 기간 내에 할당할 수 없었던 제2 프로그램의 나머지 40 밀리초의 연산 시간을, 이후의 베이스 기간 중에 할당해야 하는 연산 시간으로서 유지한다.
다음으로, 할당부(305)는, 열번째 베이스 기간 중에, 우선 제1 프로그램의 연산 시간을 할당하고, 제1 프로그램의 연산 시간 다음에, 아홉번째 베이스 기간 중에 할당할 수 없었던, 제2 프로그램의 남겨져 있던 40 밀리초의 연산 시간을 할당한다. 또, 할당부(305)는, 열번째 베이스 기간 내의 제2 프로그램의 연산 시간 다음에, 여덟번째 베이스 기간 중에 할당할 수 없었던, 제5 프로그램의 남겨져 있던 10 밀리초의 연산 시간을 할당하여, 연산 시간의 할당 스케쥴의 작성을 종료한다.
제2 실시형태에 따른 정보 처리 장치의 그 밖의 구성 요소는, 제1 실시형태와 동일하기 때문에 설명은 생략한다. 프로그램의 연산 시간의 할당은 자동적으로 행해지는 것이 바람직하지만, 일부 프로그램에 관해서는, 연산 시간을 할당하는 타이밍을 사용자가 지정하고자 하는 경우도 생길 수 있다. 이에 비해, 제2 실시형태에 따른 정보 처리 장치에 의하면, 타이밍 지정 프로그램에 관해서는, 사용자의 지정대로 연산 시간을 할당하고, 그 밖의 프로그램에 관해서는, 자동적으로 효율적인 연산 시간의 할당을 실시하는 것이 가능해진다.
(그 밖의 실시형태)
상기와 같이 본 발명을 실시형태에 의해 기재했지만, 이 개시의 일부를 이루는 기술 및 도면은 본 발명을 한정하는 것으로 이해되어서는 안된다. 이 개시로부터 당업자에게는 다양한 대체 실시형태, 실시예 및 운용 기술이 명확해질 것이다. 예를 들어, 도 1에 나타내는 프로그램 기억 장치(330)에 새로운 프로그램이 추가되거나, 보존되고 있던 프로그램의 연산 주기가 변경되거나, 보존되고 있던 프로그램 이 삭제되거나 한 경우, 스케쥴러(300)가 자동적으로, 프로그램의 연산 시간의 할당을 재스케쥴링해도 된다. 또, 실시형태에 나타낸 연산 주기 및 연산 시간 등은 어디까지나 예시적인 것이다. 예를 들어, 프로그램 기억 장치(330)에, 100 밀리초의 연산 주기로 연산되는 프로그램과, 250 밀리초의 연산 주기로 연산되는 프로그램이 보존되고 있는 경우, 단위 시간은 50 밀리초이고, 완료 시간은 500 밀리초이다. 이와 같이, 본 발명은 여기서는 기재하지 않은 여러가지 실시형태 등을 포함한다는 것을 이해해야 한다. 따라서, 본 발명은 이 개시로부터 타당한 특허청구범위의 발명 특정 사항에 의해서만 한정되는 것이다.
도 1은 본 발명의 제1 실시형태에 따른 정보 처리 장치의 모식도이다.
도 2는 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제1 모식도이다.
도 3은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제2 모식도이다.
도 4는 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제3 모식도이다.
도 5는 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제4 모식도이다.
도 6은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제5 모식도이다.
도 7은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제6 모식도이다.
도 8은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제7 모식도이다.
도 9는 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제8 모식도이다.
도 10은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제9 모식도이다.
도 11은 본 발명의 제1 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제10 모식도이다.
도 12는 본 발명의 제2 실시형태에 따른 정보 처리 장치의 모식도이다.
도 13은 본 발명의 제2 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제1 모식도이다.
도 14는 본 발명의 제2 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제2 모식도이다.
도 15는 본 발명의 제2 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제3 모식도이다.
도 16은 본 발명의 제2 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제4 모식도이다.
도 17은 본 발명의 제2 실시형태에 따른 연산 시간의 할당 방법을 나타내는 제5 모식도이다.
(부호의 설명)
300 : 스케쥴러 301 : 단위 시간 산출부
302 : 완료 시간 산출부 303 : 연산 횟수 산출부
304 : 우선 할당부 305 : 할당부
312 : 입력 장치 313 : 출력 장치
330 : 프로그램 기억 장치 331 : 일시 기억 장치
400 : 연산 장치 500 : 데이터 버스

Claims (13)

  1. 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부와,
    상기 복수의 프로그램 각각의 연산 시간을, 각각 상기 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하고, 상기 복수의 베이스 기간 중 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 상기 하나의 베이스 기간후의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하는 할당부와,
    상기 복수의 베이스 기간 중에 각각 상기 연산 시간이 할당된 상기 복수의 프로그램을 연산하는 연산부
    를 포함하는 정보 처리 장치.
  2. 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 단위 시간 산출부와,
    상기 복수의 프로그램 각각의 연산 시간을, 각각 상기 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하고, 상기 복수의 베이스 기간 중 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 상기 하나의 베이스 기간후의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하는 할당부
    를 포함하는 스케쥴러.
  3. 제2항에 있어서,
    상기 복수의 프로그램 각각의 연산 주기의 최소 공배수를, 상기 복수의 프로그램의 모든 연산이 1회 이상 완료되기 위해 필요한 완료 시간으로서 산출하는 완료 시간 산출부를 더 포함하는 스케쥴러.
  4. 제3항에 있어서,
    상기 복수의 연속하는 베이스 기간의 합계 시간은 상기 완료 시간인 것인 스케쥴러.
  5. 제3항 또는 제4항에 있어서,
    상기 완료 시간을 상기 복수의 프로그램 각각의 연산 주기로 나눔으로써, 상기 완료 시간까지 상기 복수의 프로그램 각각이 연산되는 합계 연산 횟수를 산출하는 연산 횟수 산출부를 더 포함하는 스케쥴러.
  6. 제5항에 있어서,
    상기 할당부는, 상기 복수의 프로그램 각각의 연산 횟수가 상기 합계 연산 횟수에 도달할 때까지, 상기 복수의 프로그램 각각의 연산 시간을 상기 복수의 베이스 기간 중에 할당하는 것인 스케쥴러.
  7. 제2항에 있어서,
    상기 할당부는, 상기 복수의 프로그램 각각의 연산 시간을, 상기 복수의 각각의 베이스 기간 중에 할당하기 전에, 연산하는 타이밍이 지정된 타이밍 지정 프로그램을, 상기 복수의 베이스 기간 중 하나 이상 중에 할당하는 우선 할당부를 더 포함하는 것인 스케쥴러.
  8. 복수의 프로그램 각각의 연산 주기의 최대 공약수를 단위 시간으로서 산출하는 것과,
    상기 복수의 프로그램 각각의 연산 시간을, 각각 상기 단위 시간을 갖는 복수의 연속하는 각각의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하고, 상기 복수의 베이스 기간 중 하나의 베이스 기간 중에서 연산이 완료되지 않은 프로그램의 나머지 연산 시간을, 상기 하나의 베이스 기간후의 베이스 기간 중에, 상기 연산 주기가 짧은 순으로 할당하는 것
    을 포함하는 스케쥴링 방법.
  9. 제8항에 있어서,
    상기 복수의 프로그램 각각의 연산 주기의 최소 공배수를, 상기 복수의 프로그램의 모든 연산이 1회 이상 완료되기 위해 필요한 완료 시간으로서 산출하는 것을 더 포함하는 스케쥴링 방법.
  10. 제9항에 있어서,
    상기 복수의 연속하는 베이스 기간의 합계 시간은 상기 완료 시간인 것인 스케쥴링 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 완료 시간을 상기 복수의 프로그램 각각의 연산 주기로 나눔으로써, 상기 완료 시간까지 상기 복수의 프로그램 각각이 연산되는 합계 연산 횟수를 산출하는 것을 더 포함하는 스케쥴링 방법.
  12. 제11항에 있어서,
    상기 할당에서, 상기 복수의 프로그램 각각의 연산 횟수가 상기 합계 연산 횟수에 도달할 때까지, 상기 복수의 프로그램 각각의 연산 시간을, 상기 복수의 베이스 기간 중에 할당하는 것인 스케쥴링 방법.
  13. 제8항에 있어서,
    상기 복수의 프로그램 각각의 연산 시간을, 상기 복수의 각각의 베이스 기간 중에 할당하기 전에, 연산하는 타이밍이 지정된 타이밍 지정 프로그램을, 상기 복수의 베이스 기간 중 하나 이상 중에 할당하는 것을 더 포함하는 스케쥴링 방법.
KR1020090132693A 2009-01-07 2009-12-29 정보 처리 장치, 스케쥴러 및 스케쥴링 방법 KR101093286B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2009-001375 2009-01-07
JP2009001375A JP2010160600A (ja) 2009-01-07 2009-01-07 情報処理装置、スケジューラ、及びスケジューリング方法

Publications (2)

Publication Number Publication Date
KR20100081928A KR20100081928A (ko) 2010-07-15
KR101093286B1 true KR101093286B1 (ko) 2011-12-14

Family

ID=42312563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090132693A KR101093286B1 (ko) 2009-01-07 2009-12-29 정보 처리 장치, 스케쥴러 및 스케쥴링 방법

Country Status (5)

Country Link
US (1) US8327366B2 (ko)
JP (1) JP2010160600A (ko)
KR (1) KR101093286B1 (ko)
CN (1) CN101799769B (ko)
TW (1) TWI402752B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009055752A1 (de) * 2009-11-25 2011-05-26 Robert Bosch Gmbh Verfahren zum Ermöglichen einer sequentiellen, nicht blockierenden Abarbeitung von Anweisungen in nebenläufigen Tasks in einer Steuereinrichtung
KR101880452B1 (ko) * 2012-02-06 2018-08-17 삼성전자주식회사 커널 수행 순서 스케줄링 방법 및 장치
JP2014006788A (ja) * 2012-06-26 2014-01-16 Azbil Corp 情報処理装置およびプログラム実行方法
JP2014142823A (ja) * 2013-01-24 2014-08-07 Azbil Corp データ作成装置および方法
JP6163842B2 (ja) * 2013-04-11 2017-07-19 富士電機株式会社 プログラマブルコントローラの支援装置、そのプログラム、プログラマブルコントローラシステム
CN105049173B (zh) * 2015-08-27 2017-12-22 南京南瑞继保电气有限公司 异步装置的同步方法
TWI584667B (zh) 2015-11-27 2017-05-21 財團法人工業技術研究院 多請求的排程方法及排程裝置
JP6645223B2 (ja) * 2016-02-04 2020-02-14 富士電機株式会社 制御システム、および制御装置
JP7331774B2 (ja) * 2020-05-12 2023-08-23 株式会社デンソー 電子制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351509A (ja) 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2589791B2 (ja) 1988-12-14 1997-03-12 日本たばこ産業株式会社 ループ制御装置
DE69938621D1 (de) * 1999-05-03 2008-06-12 St Microelectronics Sa Befehlausgabe in einem Rechner
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US20020103847A1 (en) * 2001-02-01 2002-08-01 Hanan Potash Efficient mechanism for inter-thread communication within a multi-threaded computer system
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
US7475222B2 (en) * 2004-04-07 2009-01-06 Sandbridge Technologies, Inc. Multi-threaded processor having compound instruction and operation formats
JP2006099332A (ja) * 2004-09-29 2006-04-13 Sony Corp 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
JP2007233930A (ja) * 2006-03-03 2007-09-13 Shimadzu System Solutions Co Ltd 分散制御システム用シミュレータ
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351509A (ja) 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法

Also Published As

Publication number Publication date
JP2010160600A (ja) 2010-07-22
KR20100081928A (ko) 2010-07-15
TWI402752B (zh) 2013-07-21
US20100175069A1 (en) 2010-07-08
CN101799769B (zh) 2013-10-02
US8327366B2 (en) 2012-12-04
CN101799769A (zh) 2010-08-11
TW201032135A (en) 2010-09-01

Similar Documents

Publication Publication Date Title
KR101093286B1 (ko) 정보 처리 장치, 스케쥴러 및 스케쥴링 방법
JP6799947B2 (ja) スライディングタイムウィンドウを用いてタスクをスケジュール設定するためのシステムおよび方法
US8621473B2 (en) Constrained rate monotonic analysis and scheduling
CN103729246A (zh) 一种任务调度方法和装置
US9947068B2 (en) System and method for GPU scheduling
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
CN112306661B (zh) 任务调度方法、装置、电子设备及可读存储介质
JP2008242510A (ja) ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
CN111210136A (zh) 一种机器人任务调度的方法及服务器
CN110866687A (zh) 任务分配方法及装置
US10452425B2 (en) Apparatus and method for processing a plurality of tasks
CN110161983A (zh) 控制装置、控制系统、控制方法以及存储介质
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
JP6877649B2 (ja) 数値制御装置
JP7267819B2 (ja) 並列タスクスケジューリング方法
KR20130022707A (ko) 위상 정렬 및 잉여 시간을 기반으로 하는 주기 및 비주기 실시간 태스크 스케줄링 알고리즘
JP2006099579A (ja) 情報処理装置及び情報処理方法
CN111381946A (zh) 任务处理方法、装置及相关产品
WO2008148624A1 (en) Method and device for providing a schedule for a predictable operation of an algorithm on a multi-core processor
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
JP2021039666A (ja) コア割当装置及びコア割当方法
JP6289197B2 (ja) プラント制御装置エンジニアリングツール
KR101947221B1 (ko) 가상 클러스터 구동 시간 스케줄링 방법 및 장치
CN111240829A (zh) 一种基于时间片的多核任务调度方法、装置、存储介质及电子设备
CN110109743B (zh) 一种实时进程调度方法

Legal Events

Date Code Title Description
A201 Request for examination
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: 20141120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161122

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171120

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 8