KR20050009686A - 싱글 프로세서용 운영 체계에 의한 병렬 처리시스템에서의 시큐어리티 관리 시스템 - Google Patents

싱글 프로세서용 운영 체계에 의한 병렬 처리시스템에서의 시큐어리티 관리 시스템 Download PDF

Info

Publication number
KR20050009686A
KR20050009686A KR1020040055408A KR20040055408A KR20050009686A KR 20050009686 A KR20050009686 A KR 20050009686A KR 1020040055408 A KR1020040055408 A KR 1020040055408A KR 20040055408 A KR20040055408 A KR 20040055408A KR 20050009686 A KR20050009686 A KR 20050009686A
Authority
KR
South Korea
Prior art keywords
processor
processing
unit
security
processing unit
Prior art date
Application number
KR1020040055408A
Other languages
English (en)
Other versions
KR100622189B1 (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 KR20050009686A publication Critical patent/KR20050009686A/ko
Application granted granted Critical
Publication of KR100622189B1 publication Critical patent/KR100622189B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

멀티 프로세서상에서 싱글 프로세서용 OS 및 기존의 어플리케이션을 동작시키고 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서, 어플리케이션 내에서 병렬화가 가능한 처리 단위에 대해 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부는 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행한다.

Description

싱글 프로세서용 운영 체계에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템{SECURITY MANAGEMENT SYSTEM IN PARALLEL PROCESSING SYSTEM BY OS FOR SINGLE PROCESSORS}
발명의 배경
발명의 분야
본 발명은 멀티 프로세서에 의한 병렬 처리 시스템에 있어서의 시큐어리티 관리 시스템에 관한 것으로, 특히, 멀티 프로세서상에서 싱글 프로세서용 OS 및 기존의 어플리케이션을 동작시키고, 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 관한 것이다.
종래의 기술
휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 데이터 처리 장치에서는, 기본적으로 싱글 프로세서상에서 싱글 프로세서용 오퍼레이팅 시스템(이하, 싱글 프로세서용 OS) 및 싱글 프로세서용의 어플리케이션(이하, 단지 어플리케이션이라고 지칭)을 실행시키고 있는 것이 현재의 상황이다.
이와 같은 상황에 있어서, 멀티 프로세서 베이스에서 상기 어플리케이션 그대로를 변경없이 사용하고 싶는 경우에는, 상기 싱글 프로세서용 OS 대신에 멀티 프로세서용 OS상에서 어플리케이션을 실행시킬 필요가 있다.
상기한 바와 같은 멀티 프로세서 시스템상에서 멀티 프로세서용 OS와 어플리케이션의 실행을 제어하는 시스템으로서는, 예를 들면, 특개평3-257652호 공보, 특개평3-113563호 공보에 개시된 종래 기술이 있다.
특개평3-257652호 공보(문헌 1)에서는 복수의 프로세서 엘리먼트로 이루어지는 멀티 프로세서 시스템에 있어서의 각 프로세서 엘리먼트 사이의 인터럽트 제어 방법을 개시한다.
특개평3-113563호 공보(문헌 2)에서는 멀티 프로세서 시스템에 있어서의 복수의 프로세서에 할당하는 프로세스의 스케줄링 방법을 개시한다.
또한, 특개2003-O58515호 공보(문헌 3)에서는 복수의 프로세서 엘리먼트로 개별의 프로세스를 실행하기 위한 방법을 개시하고 있다.
그러나, 종래와 같이 멀티 프로세서용 OS상에서 기존의 어플리케이션을 동작시키는 경우, 어플리케이션은 복수의 프로세서 중의 하나밖에 사용하지 않음에도 불구하고, 멀티 프로세서용 OS가 멀티 프로세서용의 서비스를 행하거나, 다른 어플리케이션이 동작하지 않는데도 다른 프로세서와의 배타 처리를 속행하기 때문에, 그 여분의 처리가 오버헤드로 되어 버리고, 또한 상기 어플리케이션을 멀티 프로세서용으로 변경하는데도, 변경에 상당히 수고와 비용이 걸린다는 문제점이 있다.
특히, 휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 소형 데이터 처리 장치에서 멀티 프로세서에 의한 병렬 처리 시스템을 실현하는 경우, 멀티 프로세서용 OS의 처리의 오버 헤드, 어플리케이션의 변경이 큰 장애로 된다.
이와 같은 상황에 있어서, 어플리케이션이 그대로 변경없이 기존의 싱글 프로세서용 OS상에서 이용되고 있는 경우에는, 기존의 어플리케이션을 그대로 멀티 프로세서상에서 동작시킬 수 있는 병렬 처리 시스템의 실현이 요망되고 있다.
또한, 종래의 멀티 프로세서용 OS에 의한 병렬 처리 시스템에서는, OS가 실질적으로 단일이기 때문에, 각 프로세서마다 시큐어리티 기능을 분리한다는 것이곤란하고, 또한, 시큐어리티에 대응시킴에 의해, 프로세서 성능이 일률적으로 내려가 버린다는 문제점이 있다.
이와 같은 상황하에서, 휴대 전화 및 휴대 PC를 포함하는 휴대 단말 등의 소형 데이터 처리 장치에서는 멀티 프로세서의 각 프로세서상에서 싱글 프로세서용 OS를 동작시키는 병렬 처리 시스템으로서, 각 프로세서마다 개별적으로 시큐어리티 기능을 갖게 함과 함께 불필요하게 프로세서의 성능을 저하시키지 않는 시스템의 제공이 기대된다.
또한, 상술한 어느 문헌에서도 각 프로세서마다 개별적으로 시큐어리티 기능을 갖게 한다는 기술을 개시하고 있지 않다.
본 발명의 목적은 멀티 프로세서상에서 싱글 프로세서용 OS와 기존의 어플리케이션을 그것들에 변경을 가하는 일 없이 동작시키고, 그 기존의 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현할 수 있도록 한 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서, 프로세서의 성능을 저하시키는 일이 없이 소프트웨어적으로 각 프로세서마다 개별적으로 시큐어리티를 확보할 수 있는 시큐어리티 관리 시스템을 제공하는 것에 있다.
본 발명의 제 1의 양상에 있어서, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2 그룹으로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 하기 요건을 갖는다. 멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서, 상기 싱글프로세서용 OS에 조립된 시큐어리티 확장부가 처리 요구에 응하여 상기 처리 단위로부터의 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 처리 요구에 응하여 상기 처리 단위로부터의 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부, 상기 처리 단위에 대한 시큐어리티 제어를 행하기 위한 어플리케이션 제어부의 적어도 하나가, 처리 요구에 응하여 상기 처리 단위로부터 상기 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부, 상기 처리 단위에 대한 시큐어리티 제어를 행하기 위한 어플리케이션 제어부의 적어도 하나가, 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 하기 요건을 갖는다. 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부의 기능에 관해 상기 프로세서마다 제한을 마련하고 상기 각 프로세서상에서 동작하는 상기 처리 단위로부터의 처리 요구를 제한한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부의 기능에 관해 상기 프로세서마다 제한을 마련하고, 상기 각 프로세서상에서 동작하는 상기 처리 단위로부터의 처리 요구를 제한한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고, 상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서 요구 기능이 다른 처리 단위를 실행시키는 경우에, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능에 응하여 해당 처리 단위를 실행하는 프로세서를 선택하여 할당한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고, 하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어함에 의해, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서, 요구 기능이 다른 처리 단위를 실행시키는 경우에, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능에 응하여 해당 처리 단위를 실행하는 프로세서를 선택하여 할당한다.
본 발명의 다른 양상에 따르면, 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서, 멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서, 요구 기능이 다른 처리 단위를 실행시키는 경우에, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능에 응하여 해당 처리 단위를 실행하는 프로세서를 선택하여 할당한다.
본 발명의 다른 목적, 특징 및 장점은 이하의 상세한 설명으로부터 명확해진다.
도 1은 본 발명을 적용하는 제 1예의 병렬 처리 시스템의 구성을 도시한 블록도.
도 2는 제 1예의 병렬 처리 시스템의 병렬 처리부에 의한 병렬 처리 기동 동작을 설명하기 위한 도면.
도 3은 병렬 처리 시스템의 병렬 처리부에 의한 병렬 처리 기동에 있어서의 요구를 행하기 위한 메시지의 구성을 도시한 도면.
도 4는 제 1예에 따른 병렬 처리 시스템에서 제 2 프로세서측의 태스크로부터 파일 액세스 요구에 대한 OS 서비스부의 동작을 설명하는 도면.
도 5는 제 1 프로세서측의 순차 태스크로부터의 파일 액세스 요구에 대한 동작을 설명하는 도면.
도 6은 제 1예에 따른 병렬 처리 시스템에서 제어 처리 중계부의 내부 구성을 도시한 블록도.
도 7은 제 1예에 따른 병렬 처리 시스템에서 제어 처리 중계부의 처리 동작을 설명하는 도면.
도 8은 제 1예에 따른 병렬 처리 시스템에서 프록시부에 의한 시그널 통지 처리 동작을 설명하는 도면.
도 9는 제 1예에 따른 병렬 처리 시스템에서 제 2 프로세서측에 있어서의 태스크 상호간의 연동 동작을 실현하기 위한 구성을 도시한 블록도.
도 10은 제 1예에 따른 병렬 처리 시스템에 있어서의 제 2 프로세서측에 있어서의 태스크 상호간의 연동 동작을 설명하는 도면.
도 11은 병렬 처리 시스템에 대한 적용예로서의 멀티 프로세서의 휴대 단말에 있어서 어플리케이션을 동작시키는 경우의 예를 설명하는 도면.
도 12는 본 발명을 적용하는 제 2예에 따른 병렬 처리 시스템의 구성을 도시한 블록도.
도 13은 제 2예에 따른 병렬 처리 시스템에서 프로세스의 동기적인 병렬 처리 기동의 동작을 설명하기 위한 도면.
도 14는 제 2예에 따른 병렬 처리 시스템에서 프로세스의 비동기적인 병렬 처리 기동의 동작을 설명하기 위한 도면.
도 15는 제 2예에 따른 병렬 처리 시스템에서 제어 처리 중계부의 내부 구성을 도시한 블록도.
도 16은 제 2예에 따른 병렬 처리 시스템에서 제어 처리 중계부의 처리 동작을 설명하는 도면.
도 17은 본 발명을 적용하는 제 3예에 따른 병렬 처리 시스템의 구성을 도시한 블록도.
도 18은 제 3예에 따른 병렬 처리 시스템에서 프로세서내의 프로세스가 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 업 또는 다운을 행하는 경우의 동작을 설명하기 위한 도면.
도 19는 제 3예에 따른 병렬 처리 시스템에서 프로세서 내의 프로세스가 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 다운을 행하는 경우의 동작을 설명하기 위한 도면.
도 20은 제 3예에 따른 병렬 처리 시스템에서 동일 프로세서 내의 프로세스 사이에서 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 업을 행하는 경우의 동작을 설명하기 위한 도면.
도 21은 제 3예에 따른 병렬 처리 시스템에서 다른 프로세서 상호간의 프로세스 사이에서 프로세스간 통신부에 의한 세마포어 방식을 이용하여 세마포어 업을 행하는 경우의 동작을 설명하기 위한 도면.
도 22는 제 3예에 따른 병렬 처리 시스템에서 프로세서 내의 프로세스가 프로세스간 통신부에 의한 메시지 큐 시스템을 이용하여 메시지의 수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 23은 제 3예에 따른 병렬 처리 시스템에서 프로세서 내의 프로세스가 프로세스간 통신부에 의한 메시지 큐 시스템을 이용하여 메시지의 수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 24는 제 3예에 따른 병렬 처리 시스템에서 프로세서 내의 프로세스가 프로세스간 통신부에 의한 메시지 큐 시스템을 이용하여 메시지의 송신을 행하는 경우의 동작을 설명하기 위한 도면.
도 25는 제 3예에 따른 병렬 처리 시스템에서 동일 프로세서 내의 프로세스 사이에서 프로세스간 통신부에 의한 메시지 큐 시스템을 이용하여 메시지의 송수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 26은 제 3예에 따른 병렬 처리 시스템에서 다른 프로세서 상호간의 프로세스 사이에서 프로세스간 통신부에 의한 메시지 큐 시스템을 이용하여 메시지의 송수신을 행하는 경우의 동작을 설명하기 위한 도면.
도 27은 제 3예에 따른 병렬 처리 시스템에서 세마포어 방식 및 메시지 큐 시스템을 이용한 프로세스간 통신의 구체적인 예를 설명하기 위한 도면.
도 28은 도 27의 구체적인 예에 있어서의 브라우저 화면의 표시 컨텐츠를 설명하는 도면.
도 29는 본 발명이 적용되는 제 4예의 병렬 처리 시스템의 구성을 도시한 블록도.
도 30은 본 발명의 제 1의 실시예에 따른 병렬 처리 시스템의 시큐어리티 관리 시스템의 구성을 도시한 블록도.
도 31은 본 발명의 제 1의 실시예에서의 제어 파일의 컨텐츠예를 도시한 도면.
도 32는 본 발명의 제 1의 실시예에서의 제어 파일의 판독 동작을 설명하기 위한 도면.
도 33은 본 발명의 제 1의 실시예에 있어서의 시큐어리티 관리 동작을 설명하기 위한 도면.
도 34는 본 발명의 제 1의 실시예에 있어서의 시큐어리티 관리 동작을 설명하기 위한 도면.
도 35는 본 발명의 제 2의 실시예에 따른 병렬 처리 시스템의 시큐어리티 관리 시스템의 구성을 도시한 블록도.
도 36은 본 발명의 제 2의 실시예에서의 제어 파일의 컨텐츠를 도시한 도면.
도 37은 본 발명의 제 2의 실시예에서의 제어 파일의 판독 동작을 설명하기 위한 도면.
도 38은 본 발명의 제 2의 실시예에서의 시큐어리티 관리 동작을 설명하기 위한 도면.
도 39는 본 발명의 제 3의 실시예에 따른 병렬 처리 시스템의 시큐어리티 관리 시스템의 구성을 도시한 블록도.
도 40은 본 발명의 제 3의 실시예에서의 제어 파일의 컨텐츠예를 도시한 도면.
도 41은 본 발명의 제 3의 실시예에서의 제어 파일의 판독 동작을 설명하기 위한 도면.
도 42는 본 발명의 제 3의 실시예에서의 시큐어리티 관리 동작을 설명하기 위한 도면.
본 발명의 양호한 실시예를 첨부된 도면을 참조하여 이하에 상세히 기술한다. 다음에서, 본 발명의 이해를 돕기 위해 다양하고 명확한 설명이 이루어질 것이다. 그러나, 본 발명은 당업자에 의해 더 이상의 상세 명세 없이도 수행될 수 있음이 명확하다. 다른 예에서, 본 발명의 불명료하게 할 가능성이 있는 불필요한 주지의 구성은 설명하지 않는다.
우선, 본 발명에 따른 시큐어리티 관리 시스템을 적용하는 병렬 처리 시스템에 관해 설명한다. 이하에서 설명하는 병렬 처리 시스템에서는, 종래의 싱글 프로세서용 OS에 대해 일체의 변경을 가하는 일 없이, 복수의 프로세서에의 처리를 의뢰하는 기구나 복수의 프로세서에의 OS 서비스의 제공에 있어서의 크리티컬 섹션의 보호 기구를 부가함으로써 멀티 프로세서상에서의 병렬 처리를 실행한다.
도 1은 제 1예로서의 병렬 처리 시스템의 구성을 도시한 블록도이다.
도 1에 도시한 바와 같이, 제 1예의 병렬 처리 시스템은 논리적으로 제 1 프로세서측(10)과 제 2 프로세서측(20)의 2그룹으로 나누어진, 시스템 버스(91)로 접속된 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를 포함하고, 제 1 프로세서측(10)의 프로세서(P0)상에서 동작하는 싱글 프로세서용 OS(30)를 실장하고, 또한 제 1 프로세서측(10)의 프로세서(P0) 및 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)의 각각에, 병렬 처리를 행하기 위한 병렬 처리부(40P0 내지 40Pn) 및 OS 서비스를 처리하기 위한 OS 서비스부(50P0 내지 50Pn)를 실장하여 구성된다. 또한, 시스템 버스(91)에는, 각 프로세서(P0 내지 Pn)에 의해 공유된 공유 메모리로서의 주기억 장치(92) 및 디스크 장치 등의 외부 기억 장치(93)가 접속된다.
상기 멀티 프로세서에는, 동일 종류의 프로세서를 복수 구비하는 구성뿐만 아니라, DSP나 시큐어리티 엔진 등의 이종(異種)의 처리 장치를 복수 구비하는 구성도 포함한다.
제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호와 데이터의 송수신 행하기 위한 제어 처리 중계부(60)가 독자적으로 마련되고, 또한 제 1프로세서측(10)에는, 싱글 프로세서용 OS(30)가 제 2 프로세서측(20)에서 실행되는 태스크와 통신하기 위한 프록시부(70)가 마련되어 있다.
상기 제 1 프로세서측(10)의 프로세서는 반드시 단일(單一)일 필요는 없고 복수의 프로세서로 이루어져 있어서도 좋다. 예를 들면, 제 1 프로세서측(10)을 2개의 프로세서로 하고, 각각에 다른 싱글 프로세서용 OS를 실장하는 구성으로 하는 것도 가능하다.
제 1 프로세서측(10)의 프로세서에 의해 기동되는 싱글 프로세서용 OS(30)로서는 기존의 OS가 이용된다. 예를 들면, 리얼타임 OS 나 UNIX(R) OS가 그대로 이용된다.
본 명세서에서 사용하는 태스크란 UNIX(R) OS에 있어서의 프로세스나 스레드, 리얼타임 OS에 있어서의 태스크 등의 병렬 처리를 행하기 위한 처리 단위를 의미한다.
본 예의 병렬 처리 시스템에서, 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 병렬화를 행할 수 없는 태스크(순차 태스크)를 제 1 프로세서측(10)의 프로세서(P0)에서 처리하고, 어플리케이션 내에서 병렬화를 행할 수 있는 태스크를 제 2 프로세서측(20)에서 새로운 태스크로서 생성하여 병렬 처리를 시킨다.
병렬 처리부(40P0) 및 병렬 처리부(40P1 내지 40Pn)는, 태스크의 생성, 기동, 정지, 종료, 삭제, 및 그 밖의 태스크에 관한 제어를 행하는 기능을 갖는다. 여기서는, 제 1 프로세서측(10)의 병렬 처리부(40P0)는, 제 2 프로세서측(20)의 각프로세서(P1 내지 Pn)의 병렬 처리부(40P1 내지 40Pn)에 대해, 제어 처리 중계부(60)를 통하여 태스크의 생성, 기동, 정지, 종료, 삭제 등의 처리를 행한다. 시그널 통지에 관해서는, 병렬 처리부(40P0)와 병렬 처리부(40P1 내지 40Pn)의 쌍방향으로부터 처리된다.
OS 서비스부(50P0) 및 OS 서비스부(50P1 내지 50Pn)는 외부 기기에의 각종의 액세스와 제어를 행하기 위한 인터페이스, 태스크사이에 공유된 리소스에의 각종 액세스와 제어를 행하기 위한 인터페이스로서 기능을 갖는다.
제어 처리 중계부(60)는 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서, 제어 신호와 데이터의 송수신을 행하기 위한 부이고, 복수의 프로세서로 병렬 처리되는 복수의 태스크 사이의 제어에 사용된다.
프록시부(70)는 제 2 프로세서측(20)에서 실행되는 태스크(일부 또는 전부)에 대응되고, 제 2 프로세서측(20)의 태스크와 싱글 프로세서용 OS(30) 사이에서의 시그널 통지(태스크를 제어하기 위한 각종 제어 신호의 통지)를 위해 실장되어 있다.
이하, 상기한 바와 같이 구성되는 제 1예의 병렬 처리 시스템의 동작에 관해, 도면을 참조하여 상세하게 설명한다.
여기서는, 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 제 1 프로세서측(10)의 프로세서(P0)에서 처리하는 처리 단위를 순차 태스크(ST)라고 하고, 어플리케이션 내에서 병렬화를 행할 수 있는 태스크로서 제 2 프로세서측(20)에 대해 태스크(PT-1 내지 PT-n)로서 병렬 처리를 시키는 처리 단위를 병렬화 태스크(PT)라고 한다.
우선, 병렬 처리부(40P0, 40P1 내지 40Pn)에 의한 병렬 처리 기동의 동작에 관해, 도 2와 도 3을 참조하여 설명한다.
(1) 제 1 프로세서측(10)의 병렬화 태스크(PT)를 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)의 어느 하나로서 기동시키는 경우, 병렬 처리부(40P0)에 대해, 제 2 프로세서측(20)에서 기동시키는 처리 단위로서의 태스크(PT-1 내지 PT-n)의 어느 하나의 생성을 요구한다.
병렬 처리부(40P0), 병렬 처리부(40P1 내지 40Pn)로부터의 커맨드(command)로서는, 예를 들면, 이하와 같은 것이 있다. create(태스크의 생성), delete(태스크의 삭제), activate(태스크의 기동), terminate(태스크의 종료), signal(시그널 요구) 등이 있다. 이 중, create(태스크의 생성), delete(태스크의 삭제), activate(태스크의 기동), terminate(태스크의 종료)에 관해서는, 제 1 프로세서측(10)으로부터 제 2 프로세서측(20)에 보내지는 커맨드이고, signal(시그널 커맨드)은 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서 쌍방향으로부터 보내진다.
이 커맨드는 도 3에 도시한 바와 같은 메시지에 의해 행하여진다. 즉, 요구하는 컨텐츠(이 경우는, 태스크 생성)을 나타내는 요구 컨텐츠(201), 태스크를 처리시키는 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)를 지정하는 프로세서 번호(202), 새롭게 생성하는 태스크(PT-1 내지 PT-n)를 나타내는 태스크 번호, 태스크 생성을 요구하는 병렬화 태스크(PT)를 나타내는 원래 태스크 번호로 이루어지는 메시지를 병렬 처리부(40P0)에 대해 송신함으로써, 태스크 생성의 요구를 행하다. 또한, 태스크 생성 이외의 커맨드에 대해서도, 도 3에 도시한 메시지에 따른 커맨드가 보내진다.
(2) 병렬 처리부(40P0)는 생성하는 태스크(PT-1 내지 PT-n)에 대응하는 프록시부(70)를 기동한다. 이 프록시부(70)는 제 1 프로세서측(10)과 제 2 프로세서측(20)에서 태스크의 관리 컨텐츠를 공유하지 않도록 하기 위해, 또한 배타 처리를 제 1 프로세서측(10)에서 완결시키기 위해 기동된다. 이 때, 프록시부(70)에는 태스크(PT-1 내지 PT-n)의 태스크 번호가 보존된다.
(3) 병렬 처리부(40P0)는 상술한 태스크 번호 및 요구 컨텐츠(제 2 프로세서측(20)의 프로세서(P1 내지 Pn)에의 태스크 생성)이라는 태스크 생성에 필요한 데이터와, "병렬 처리"를 지정하는 통신 이유 정보를 제어 처리 중계부(60)에 설정한다.
그 결과, 제어 처리 중계부(60)에 대해, 후술하는 주기억 장치(92)(공유 메모리)에의 통신 컨텐츠의 설정과 프로세서 사이 인터럽트를 위한 처리가 행하여진다.
여기서, 통신 이유 정보란, 제어 처리 중계부(60)에 인도한 데이터의 인수처(취득처)를 나타내는 것이고, 상기의 경우, 지정된 프로세서(P1 내지 Pn)의 병렬 처리부(40P1 내지 40Pn)에 의해, 제어 처리 중계부(60)에 설정된 데이터가 취득되게 된다.
(4) 제 2 프로세서측(20)의 지정된 프로세서(P1 내지 Pn)상의 병렬처리부(40P1 내지 40Pn)는 제어 처리 중계부(60)로부터 통신 이유 정보가 "병렬 처리"인 요구 컨텐츠(태스크 제어에 필요한 데이터)을 취득한다.
(5) 그리고, 병렬 처리부(40P1 내지 40Pn)는 취득한 요구 컨텐츠에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 생성·기동한다.
이상에 의해 제 1 프로세서측(10)의 싱글 프로세서용 OS상에서 동작하는 어플리케이션의 처리 단위인 병렬화 태스크(PT)의 처리 단위를 제 2 프로세서측(20)상에 태스크(PT-1 내지 PT-n)로서 병렬 처리를 시키는 것이 가능해진다.
병렬 처리부(40P1 내지 40Pn)는, 취득한 요구 컨텐츠에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 생성하고 기동하는 경우에 관해 기술하였지만, 제 1 프로세서측(10)의 병렬화 태스크(PT)를 미리 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)의 어느 하나로서 생성하여 두고, 병렬 처리부(40P1 내지 40Pn)가 취득한 요구 컨텐츠에 의거하여 프로세서(P1 내지 Pn)상에서 태스크(PT-1 내지 PT-n)를 기동하도록 할 수도 있다.
다음에, OS 서비스부(50P0, 50P1 내지 50Pn)에 의한 OS 서비스 처리 동작에 관해 설명한다.
OS 서비스부(50P0, 50P1 내지 50Pn)는 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상에 생성한 태스크(PT-1 내지 PT-n)로부터의 요구에 의거하여, 싱글 프로세서용 OS(30)에 의한 서비스인 외부 기기에의 각종 액세스와 제어, 다른 태스크와 공용하는 리소스에의 각종 액세스와 제어에 관한 서비스를 제공하기 위한 기능을 갖는다. 싱글 프로세서용 OS(30)에 의한 서비스에는 통상의 OS가 제공하는 시스템콜이나 API에 상당하는 것이 주된 대상으로 된다.
제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크(PT-1 내지 PT-n)로부터의 파일 액세스(예를 들면, 외부 기억 장치(93)상의 파일에 대한 각종의 처리) 커맨드에 대한 OS 서비스부(50P0, 50P1 내지 50Pn)의 동작을 도 4를 참조하여 설명한다.
여기서, 파일 액세스에는, open(파일의 오픈), close(파일의 클로즈), read(파일의 판독), write(파일의 기록), seek(파일 기록 위치의 이동), remove(파일의 삭제), rename(파일의 명칭 변경) 등의 처리가 포함된다.
(1) 제 2 프로세서측(20)의 태스크(PT-1 내지 PT-n)에서 파일 액세스 처리의 필요가 발생하면, 태스크(PT-1 내지 PT-n)가 제 2 프로세서측(20)의 OS 서비스부(50P1 내지 50Pn)에 대해 파일 액세스를 위한 서비스를 요구한다. 이 파일 액세스의 서비스 커맨드에 있어서는, 예를 들면, OS 서비스부(50P1 내지 50Pn)에 의해 파일에 기록 처리로서 정의된 write 함수나 파일의 판독 처리로서 정의된 read 함수 등이 호출된다.
여기서, OS 서비스부(50P1 내지 50Pn)는 제 1 프로세서측(10)의 처리(싱글 프로세서용 OS(30)에 의한 파일 액세스 처리)에 필요한 데이터를 설정한다.여기에서 필요한 데이터에는 요구 컨텐츠(예를 들면, write request), 액세스하는 파일의 기술자(file descriptor), 문자열에의 포인터, 문자열의 길이, 태스크 번호 등의 정보가 포함된다.
(2) 통신 이유 정보를 "OS 서비스"로 하여, 요구 컨텐츠를 포함하는 필요한데이터를 제어 처리 중계부(60)에 대해 설정함으로써, OS 서비스부(50P1 내지 50Pn)가 제 1 프로세서측(10)에 대해 파일 액세스 요구를 발행한다.
그 후, 파일 액세스의 서비스 커맨드를 행한 태스크(PT-1 내지 PT-n)는 대기 상태로 되고, 대응하는 프로세서(P1 내지 Pn)에서는 병렬 처리부(40P1 내지 40Pn)에 의해 다른 태스크로 처리가 전환된다(태스크 스위칭).
(3) 제 1 프로세서측(10)의 OS 서비스부(50P0)는 제어 처리 중계부(60)로부터 "OS 서비스"라는 통신 이유 정보의 상기 파일 액세스 요구를 취득한다.
(4) 제 1 프로세서측(10)의 OS 서비스부(50P0)는 취득한 요구 컨텐츠에 따라 싱글 프로세서용 OS(30)에 대해 파일 액세스를 요구한다.
(5) 그 결과, 싱글 프로세서용 OS(30)는 요구에 의거하여 외부 기억 장치(93) 등에 대한 파일 액세스(write나 read 등)를 행한다. 이 파일 액세스 처리는 싱글 프로세서용 OS(30)가 본래 구비하고 있는 파일 액세스 서비스를 그대로 이용하여 실행된다.
(6) 요구된 파일 액세스 처리가 종료되면, 싱글 프로세서용 OS(30)는 제 1 프로세서측(10)의 OS 서비스부(50P0)에 파일 액세스 요구에 대한 반환치를 돌려주고, 처리를 되돌린다.
(7) 또한, OS 서비스부(50P0)는 그 반환치와 파일 액세스 요구를 행한 태스크(PT-1 내지 PT-n)의 태스크 번호를 포함하는 데이터인 통신 컨텐츠를, "OS 서비스"를 통신 이유 정보로 하여 제어 처리 중계부(60)에 설정함에 의해, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)에 대해 파일 액세스의 완료를 통지한다.
(8) 대응하는 프로세서(P1 내지 Pn)의 OS 서비스부(50P1 내지 50Pn)는 제어 처리 중계부(60)로부터 상기 설정된 반환치와 완료 통지를 수취한다.
(9) 그리고, 제 2 프로세서측(20)의 OS 서비스부(50P1 내지 50Pn)는, 병렬 처리부(40P1 내지 40Pn)에 대해 파일 액세스 요구를 행한 태스크(PT-1 내지 PT-n)를 기동하도록 의뢰한다.
그 결과, 대기 상태로 되어 있던 태스크(PT-1 내지 PT-n)에 처리가 전환된다.
(10) 병렬 처리부(40P1 내지 40Pn)에 의해 기동된 태스크(PT-1 내지 PT-n)는 OS 서비스부(50P1 내지 50Pn)로부터 파일 액세스의 반환치를 수취하고, 처리를 계속한다.
상기에 의해 제 2 프로세서측(20)에 개별적으로 파일 액세스를 위한 처리부를 마련하는 일 없이, 제 2 프로세서측(20)에서의 태스크(PT-1 내지 PT-n)는 싱글 프로세서용 OS(30)의 서비스를 그대로 이용하여 파일 액세스가 가능해진다. 또한, 이와 같은 구성을 사용하여, 파일 액세스를 위한 배타 처리가 제 1 프로세서측(10)에서 완결되기 때문에, 멀티 프로세서용 OS상에서 어플리케이션을 동작시키는 경우와 같은 배타 처리에 의한 오버헤드가 발생하는 일 없이 병렬 처리를 실현할 수 있다.
또한, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크(PT-1 내지 PT-n)가, 예를 들어, 외부 기억 장치(93)상의 리드온리(read only) 데이터를 파일 액세스하는 경우에는, 상기한 바와 같이 OS 서비스부(50P1 내지 50Pn)에 의한 처리를 경유하는 일 없이, 각 프로세서(P1 내지 Pn)로부터 외부 기억 장치(93)에 직접 액세스하도록 하여도 좋다.
여기서, 제 1 프로세서측(10)의 프로세서(P0)상의 순차 태스크(ST)로부터의 파일 액세스 요구에 관해서는, OS 서비스부를 사용하지 않고 직접 싱글 프로세서용 OS(30)에 의해 처리가 이루어진다. 이하, 도 5를 참조하여 설명한다.
(1) 프로세서(P0)상의 순차 태스크(ST)는 싱글 프로세서용 OS(30)에 대해 파일 액세스를 요구한다.
(2) 그 결과, 싱글 프로세서용 OS(30)는 커맨드에 의거하여 외부 기억 장치(93) 등에 대한 파일 액세스(wiite나 read 등)를 행한다. 이 파일 액세스 처리는 싱글 프로세서용 OS(30)가 본래 구비하고 있는 파일 액세스 서비스를 그대로 변경없이 이용하여 실행된다.
(3) 파일 액세스 처리가 종료되면, 싱글 프로세서용 OS(30)는 순차 태스크(ST)에 대해 파일 액세스 요구에 대한 반환치를 돌려주고, 처리를 되돌린다.
순차 태스크(ST)로부터의 OS 서비스 요구에 대해서는 배타 제어 등의 필요가 없기 때문에, 쓸데없는 오버헤드가 발생하지 않는다.
제어 처리 중계부(60)에 의한 처리 동작에 관해 도 6 및 도 7을 참조하여 설명한다.
우선, 제어 처리 중계부(60)의 구성을 도 6에 도시한다. 도시한 바와 같이, 제어 처리 중계부(60)는 각 프로세서(P0 내지 Pn)에 대응한 인터럽트 제어 장치(61P0 내지 61Pn)와, 각 프로세서(P0 내지 Pn)에 대응한 통신 영역(62P0 내지62Pn)을 구비하여 구성된다. 여기서, 통신 영역(62P0 내지 62Pn)은 주기억 장치(92) 내에 확보된다.
인터럽트 장치(61P0 내지 61Pn)는 다른 프로세서에 대해 인터럽트를 지시하는 인터럽트 지시부(61a), 인터럽트의 지시에 의해 인터럽트가 있은 취지의 정보를 보존하는 인터럽트 상태 보존부(61b), 인터럽트를 클리어하는 인터럽트 취소부(61c)에 의해 구성된다.
또한, 통신 영역(62P0 내지 62Pn)은 통신원의 프로세서로부터의 통신 이유 정보를 보존하는 통신 이유 보존 영역(62a), 통신하기 위한 통신 데이터를 보존하는 통신 데이터 보존 영역(62b), 통신을 확보하기 위해 통신 영역에 대해 로크를 걸기 위한 상호 배타 제어 영역(62c)에 의해 구성된다.
이 때, 통신 데이터지 영역(62b)에는, 통신하는 통신 데이터(요구 컨텐츠를 포함하는 필요 데이터)가 저장되는 주기억 장치(92)에의 포인터가 저장되게 된다.
제 1 프로세서측(10)의 병렬 처리부(40P0)로부터 제 2 프로세서측(20)의 프로세서(P1)에의 통신 처리를 예로서 들고, 도 7을 참조하여 그 동작을 설명한다.
(1) 병렬 처리부(40P0)는 프로세서(P1)용의 통신 영역(62P1)의 상호 배타 제어 영역(62c)에 로크를 건다. 구체적으로는, 상호 배타 제어 영역(62c)에 저장되는 lock 변수를 로크 상태로 함에 의해 해당 프로세서(P1)용의 통신 영역(62P1)이 다른 프로세서에서 사용되는 것을 배제한다.
상기 영역이 다른 프로세서에 의해 이미 로크되어 있는 경우에는, 로크가 해제되는 것을 대기한다.
(2) 통신 영역(62P1)의 로크가 취득된 경우, 병렬 처리부(40P0)는 통신 이유 정보와 통신 데이터(요구 컨텐츠를 포함하는 필요 데이터)를 통신 영역(62P1)의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)의 각각에 저장한다.
저장된 통신 이유 정보로서는, 상술한 바와 같이 태스크 생성을 위한 통신 처리라면, "병렬 처리"를 나타내는 정보(예를 들면, 병렬 처리에 대응하여 미리 정해져 있는 수치 등의 데이터)가 저장된다.
(3) 병렬 처리부(40P0)는 자신의 인터럽트 제어 장치(61P0)의 인터럽트 지시부(61a)에 대해 프로세서(P1)에의 인터럽트를 지시한다.
(4) 인터럽트 제어 장치(61P0)의 인터럽트 지시부(61a)는 프로세서(P1)에 대응하는 인터럽트 제어 장치(61P1)의 인터럽트 상태 보존부(61b)에 인터럽트를 나타내는 정보를 세트한다. 이로 인해 프로세서(P1)가 인터럽트 상태로 된다.
(5) 프로세서(P1)의 병렬 처리부(40P1)는 제어 처리 중계부(60)의 인터럽트 제어 장치(61P1)의 인터럽트 상태 보존부(61b)의 상태로부터 인터럽트가 세트된 것을 판별한다.
(6) 프로세서(P1)의 병렬 처리부(40P1)는 제어 처리 중계부(60)의 자신의 인터럽트 상태 보존부(61b)의 인터럽트 정보를 클리어함에 의해 자신의 인터럽트 상태를 해제한다.
(7) 프로세서(P1)의 병렬 처리부(40P1)는 제어 처리 중계부(60)의 자신의 통신 영역(62P1)의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)으로부터, 통신 이유 정보와 통신 데이터(요구 컨텐츠를 포함하는 필요 데이터)를 각각취득한다.
(8) 다음의 통신을 수리할 수 있게 된 후, 프로세서(P1)의 병렬 처리부(40P1)는 자신의 통신 영역(62P1)의 상호 배타 제어 영역(62c)의 로크를 해제한다. 구체적으로는, 상호 배타 제어 영역(62c)에 저장되는 lock 변수를 언로크 상태로 함에 의해, 해당 프로세서(P1)용의 통신 영역(62P1)이 다른 프로세서로부터 사용할 수 있도록 해방한다.
이상과 같이, 제어 처리 중계부(60)를 사용하여, 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서 제어 신호나 데이터의 송수신이 실현된다.
프록시부(70)에 의한 시그널 통지 처리 동작에 관해 도 8을 참조하여 설명한다.
프록시부(70)는 싱글 프로세서용 OS(30)가 제 2 프로세서측(20)에 생성하는 태스크(PT-1 내지 PT-n)와 시그널(제어 신호)에 의한 통신을 행하기 위한 기능을 갖는다. 이 프록시부(70)에는 대응하는 태스크(PT-1 내지 PT-n)의 태스크 번호가 보존되어 있다.
복수의 태스크(PT-1 내지 PT-n)에 1대1로 프록시부(70)를 관련시켜도 좋고, 하나의 프록시부(70)에 복수의 태스크(PT-1 내지 PT-n)를 관련시켜도 좋다.
(1) 제 1 프로세서측(10)의 순차 태스크(ST)가, 싱글 프로세서용 OS(30)에 대해 시그널 통지의 서비스를 요구한다. 이 시그널 통지에 의해 통신되는 시그널은, 싱글 프로세서용 OS(30)가 본래 갖는 서비스 기능에 의해, 제 2 프로세서측(20)의 각 프로세서(P1 내지 Pn)상에서 기동되고 있는 태스크(PT-1 내지PT-n)를 제어하기 위한 제어 신호이다.
(2) 싱글 프로세서용 OS(30)는 시그널을 대응하는 프록시부(70)에 통지한다.
(3) 프록시부(70)는 통지된 시그널을 제어 처리 중계부(60)를 통과하여, 자신에게 대응하는 제 2 프로세서측(20)의 태스크(PT-1)가 존재하는 프로세서(P1 내지 Pn)에 통지한다. 여기서, 통신 이유 정보로서는 "병렬 처리"가 설정된다.
(4) 제어 처리 중계부(60)에의 통신 이유 정보가 "병렬 처리"이기 때문에, 제 2 프로세서측(20)의 대응하는 프로세서의 병렬 처리부(40P1 내지 40Pn)는 제어 처리 중계부(60)로부터 시그널 통지 요구를 취득한다.
(5) 시그널 통지 요구를 취득한 병렬 처리부(40P1 내지 40Pn)는 대응하는 태스크(PT-1 내지 PT-n)에 대해 시그널(제어 신호)을 통지한다.
따라서, 프록시부(70)가 제 2 프로세서측(20)의 프로세서(P0 내지 Pn)상의 태스크(PT-1 내지 PT-n)와 태스크 번호에 의해 연관시켜져 있기 때문에, 제 1 프로세서측(10)에서는 태스크(PT-1 내지 PT-n)에 대해 싱글 프로세서용 OS(30)에 의한 시그널 통지의 서비스를 실행하는 것이 가능해진다.
마지막으로, 제 2 프로세서측(20)에서의 태스크 상호간의 연동 동작에 관해 도 9와 도 10을 참조하여 설명한다.
도 9는 태스크 사이가 제휴를 하기 위한 병렬 처리부(40P1 내지 40Pn)의 구성을 도시한다. 도시한 바와 같이, 병렬 처리부(40P1 내지 40Pn)는 상호배타부(41P1 내지 41Pn)를 구비하고 있다.
주기억 장치(92) 내에는 태스크의 제휴를 하기 위해 상호 배타 제어영역(43)과 태스크 관리 컨텐츠 보존 영역(44)을 갖는다.
(1) 프로세서(P1)상의 태스크(PT-1)는 자신의 병렬 처리부(40P1)에 대해 소망하는 병렬 처리를 요구한다.
(2) 프로세서(P1)의 병렬 처리부(40P1)는 상호배타부(41P1)에 병렬 처리에 이용하는 자원의 확보를 위해 로크 취득을 요구한다.
(3) 상호배타부(41P1)는 주기억 장치(92)의 상호 배타 제어 영역(43)을 이용하여 로크를 취득한다.
(4) 상호배타부(41P1)는 병렬 처리부(40P1)에 대해 로크 취득이 이루어진 취지를 통지한다.
(5) 병렬 처리부(40P1)는, 태스크 관리 컨텐츠 보존 영역(44)에서, 프로세서(P1)상의 병렬 처리를 요구하는 태스크(PT-1)의 관리 컨텐츠(요구 컨텐츠, 태스크 번호 그 밖의 필요한 데이터)을 보존한다.
(6) 병렬 처리부(40P1)는 우선도가 낮은 태스크를 실행하고 있는 다른 프로세서(P2 내지 Pn)에 인터럽트를 건다. 여기서는, 프로세서(Pn)에의 인터럽트가 걸린 것으로 한다.
(7) 병렬 처리부(40P1)는 상호배타부(41P1)에 대해 상기 확보한 로크의 해제를 요구한다.
(8) 상호배타부(41P1)는 주기억 장치(92)의 상호 배타 제어 영역(43)의 로크를 해제한다.
(9) 상호배타부(41P1)는 병렬 처리부(40P1)에 대해 로크의 해제 완료를 통지한다.
(10) 병렬 처리부(40P1)는 태스크(PT-1)에 처리를 되돌린다.
(11) 프로세서(Pn)의 병렬 처리부(40Pn)는 상호배타부(41Pn)에 대해 병렬 처리에 이용하는 자원의 확보를 위한 로크 취득을 요구한다.
(12) 상호배타부(41Pn)는 주기억 장치(92)의 상호 배타 제어 영역(43)을 이용하여 로크를 취득한다.
(13) 상호배타부(41Pn)는 병렬 처리부(40Pn)에 대해 로크의 취득 완료를 통지한다.
(14) 병렬 처리부(40Pn)는 태스크 관리 컨텐츠 보존 영역(44) 내에 저장되어 있는 태스크 관리 컨텐츠를 취득한다.
(15) 병렬 처리부(40Pn)는 태스크 관리 컨텐츠에 의거하여 새로운 태스크를 생성 기동한다.
(16) 병렬 처리부(40Pn)는, 상호배타부(41Pn)로부터, 확보한 로크의 해제를 요구한다.
(17) 상호배타부(41Pn)는 주기억 장치(92)의 상호 배타 제어 영역(43)의 로크를 해제한다.
(18) 상호배타부(41Pn)는 병렬 처리부(40Pn)에 대해 로크의 해제 완료를 통지한다.
이상의 태스크 연휴 동작에 의해, 어느 프로세서(P1 내지 Pn)에서 기동하고 있는 태스크(PT-1 내지 PT-n)가 자신의 처리 단위를 다른 프로세서에 대해 병렬 처리 시키는 것이 가능해진다.
상기한 바와 같이 구성되는 병렬 처리 시스템에 있어서의 적용예로서는, 예를 들면 멀티 프로세서의 휴대 단말에서 어플리케이션을 동작시키는 경우를 설명한다.
여기서, 어플리케이션이 휴대 단말상에서 영상(동화)과 음성을 동시에 재생하는 기능을 가지며, 그 중 사운드 출력 처리를 순차 태스크(A)로 하고, 영상 출력 처리를 병렬화 태스크(B)로 하여 제 1 프로세서측(10)의 프로세서(P0)상에서 동작시키는 경우를 상정하고, 도 11을 참조하여 설명한다.
병렬화 태스크(B)는 상술한 병렬 처리부에 의해 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)의 어느 하나에 태스크(C)로서 생성되고 기동된다.
생성된 태스크(C)는 OS 서비스부의 파일 액세스 처리에 의해 영상의 화면 출력을 실행한다.
또한, 순차 태스크(A)에 의한 사운드 출력은 싱글 태스크(OS)(30)의 서비스에 의해 음성의 출력이 실행된다.
음성과 영상의 동기를 정기적으로 취하는 경우에는, 상술한 프록시부(70)에 의한 시그널 통지 동작에 의해 순차 태스크(A)와 태스크(C) 사이의 시그널 통지를 행함으로써 동기를 취한다.
또한, 태스크(C)에서 영상에 편집을 가하는 처리를 실행하는 경우에는, 그 편집 처리를 태스크 연동 처리에 의해 다른 프로세서상에 태스크(D)로서 생성 기동한다.
태스크(C)에 의한 영상 출력 처리가 종료된 경우에는, 태스크(C)로부터 파일 액세스 동작에 의해 싱글 프로세서용 OS에 종료 통지를 행한다.
본 병렬 처리 시스템에서는, 모듈로서 병렬 처리부(40P0 내지 40Pn), OS 서비스부(50P0 내지 50Pn), 제어 처리 중계부(60) 및 프록시부(70)의 실장은, 싱글 프로세서용 OS(30) 및 프로세서(P0)상에서 실행되는 어플리케이션에 변경을 가하는 일 없이, 멀티 프로세서의 시스템 구성상에서, 싱글 프로세서용 OS(30) 및 어플리케이션을 오버헤드 없이 동작시킬 수 있음과 함께, 멀티 프로세서에 의한 병렬 처리의 이득을 얻는 것이 가능해진다.
다음에, 본 발명을 적용하는 제 2예의 병렬 처리 시스템에 관해, 도 12 이하의 도면을 참조하여 설명한다. 도 12는 이 제 2예의 형태에 의한 병렬 처리 시스템의 구성을 도시한 블록도이고, 도 1과 공통의 구성 요소에 관해서는 같은 부호를 사용한다. 도 12에 도시한 제 2예에서는, 제 1예에 있어서의 병렬 처리부(40P0 내지 40Pn)를 각각 병렬 처리 통신부(400P0 내지 400Pn)와 제어 프록시부(500P0 내지 500Pn)로 구성한 경우를 나타내고 있다.
도 12에 도시한 바와 같이, 본 예의 병렬 처리 시스템에 있어서, 시스템 버스(91)로 접속되는 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를 논리적으로 제 1 프로세서측(100)과 제 2 프로세서측(200)의 2세트로 나누고 구성하고 있는 점에 관해서는, 제 1예와 동일하다.
제 2예에 있어서는, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(CPU)(P0 내지 Pn)의 각 프로세서상에서 동작하는 싱글 프로세서용 OS(300P0 내지 300Pn)를 실장하고 있다.
또한, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)의 각각에, 병렬 처리를 행하기 위한 병렬 처리 통신부(400P0 내지 400Pn)와 제어 프록시부(500P0 내지 500Pn)를 실장하여 구성된다. 시스템 버스(91)에는 각 프로세서(P0 내지 Pn)가 공유하는 공유 메모리로서의 주기억 장치(92) 및 디스크 장치와 같은 외부 기억 장치(93)가 접속되어 있다.
또한, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서 제어 신호나 데이터의 송수신을 행하기 위한 제어 처리 중계부(600)가 독자적으로 마련되어 있다.
제 1예에서 나타낸 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)가 제 2 프로세서측(200)에서 실행되는 프로세스와 통신하기 위한 프록시부(70)에 관해서는, 제 1예와 완전히 같은 기능을 실행하기 때문에, 편의상 생략하고 있다.
제 1예에서는, 제 2 프로세서측(20)의 프로세서(P1 내지 Pn)상의 태스크로부터의 파일 액세스 커맨드에 대해 태스크의 스위칭이 이루어지는 것을 설명하였지만, 본 예에 있어서도, 제 2 프로세서측(200)으로부터의 파일 액세스가 가능하고, 파일 액세스 요구를 행한 제 2 프로세서측(200)의 프로세스(PP-1 내지 PPn)는 제 2 프로세서측(200)의 싱글 프로세서용 OS(300P1 내지 300Pn)에 의해 프로세스의 스위칭이 행하여진다.
상기 각 프로세서(P0 내지 Pn)에 실장되는 싱글 프로세서용 OS(300P0 내지 300Pn)에 관해서는, 리얼타임 OS와 같은 메모리 보호 기능을 실현하는 가상 기억기구를 갖지 않는 OS만이 아니라, 기존의 OS인 Linux나 Windows(R) 등이라는 가상 기억 기구를 구비하는 OS도 이용하는 것이 가능하고, 각 프로세서(P0 내지 Pn)의 전부, 또는 일부에서 메모리 보호 기구의 실현이 가능한 점에서 제 1예와 상위하다.
또한, 싱글 프로세서용 OS(300P0 내지 300Pn)는 전부가 같은 종류의 OS일 필요는 없고 서로 다른 종류의 OS라도 좋다.
이 예에서는, 병렬 처리를 행하기 위한 처리 단위인 태스크가 서로의 프로세서 사이에서 메모리 보호받고 있고, 그러한 의미에서 제 1예의 태스크와 구별하기 위해 프로세스라고 칭하기로 한다.
본 예에 의한 병렬 처리 시스템에서는, 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 동작하는 어플리케이션의 처리 단위중, 병렬화를 행할 수 없는 프로세스(순차 프로세스(SP))를 제 1 프로세서측(100)의 프로세서(P0)에서 처리하고, 어플리케이션 내에서 병렬화를 행할 수 있는 태스크를 제 2 프로세서측(200)에서 새로운 프로세스(PP-1 내지 PP-n)로서 생성하고 병렬 처리를 시킨다.
병렬 처리 통신부(400P0) 및 병렬 처리 통신부(400P1 내지 400Pn)는 프로세스와 싱글 프로세서용 OS(300P0 내지 300Pn)와의 사이에서, 프로세스의 생성, 기동, 정지, 종료, 삭제 및 그 밖의 프로세스에 관한 제어 정보의 수수를 행하는 기능을 갖는다.
여기서, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서는, 제어 처리 중계부(600)를 통하여 태스크의 생성, 기동, 정지, 종료, 삭제 등에 관한 제어정보나 데이터를 교환한다.
또한, 제어 프록시부(500P0) 및 제어 프록시부(500P1 내지 500Pn)는 싱글 프로세서용 OS(300P0 내지 300Pn)로부터 프로세스에의 처리 요구를 입수하고 프로세스를 기동하는 기능을 갖는다.
제어 처리 중계부(600)는 제 1 프로세서측(10)과 제 2 프로세서측(20) 사이에서 제어 신호나 데이터의 송수신을 행하기 위한 부이고, 복수의 프로세서로 병렬 처리되는 복수의 프로세스 사이의 제어에 사용된다.
이하, 상기한 바와 같이 구성되는 제 2예의 병렬 처리 시스템의 동작에 관해 도면을 참조하여 상세하게 설명한다.
여기에서 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 어플리케이션이 동작하고, 그 어플리케이션의 처리 단위중, 제 1 프로세서측(100)의 프로세서(P0)에서 처리하는 처리 단위를 순차 프로세스(SP)로 하면, 어플리케이션 내에서 병렬화를 행할 수 있는 프로세스이고, 제 2 프로세서측(200)에 대해 태스크(PP-1 내지 PP-n)로서 병렬 처리를 시키는 처리 단위를 병렬화 프로세스(PP)라고 한다.
제 2예의 병렬 처리 시스템에서는, 어느 프로세스(태스크)를 기동한 후에, 호출측의 프로세스(태스크)인 병렬화 프로세스(PP)가, 기동한 프로세스(PP-1 내지 PP-n)의 종료를 대기시키는 병렬 처리의 동기 기동과, 호출측의 프로세스(태스크)인 병렬화 프로세스(PP)가, 기동한 프로세스(PP-1 내지 PP-n)의 종료를 대기하지 않아도 되는 병렬 처리의 비동기 기동이 가능하다.
우선, 프로세스의 병렬 처리의 동기 기동의 동작에 관해 도 13을 참조하여설명한다.
여기에서 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)이면, 제 1 프로세서측(100)의 병렬화 프로세스(PP)가 제 2 프로세서측(200)에서 기동시키는 처리 단위인 프로세스(PP-k)로서 미리 생성되어 있는 것으로 한다.
(1) 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)상의 프로세스(PP-k)가, 병렬 처리 통신부(400Pk)에서, 자체 프로세스에 속하는 처리의 정보를 등록한다. 그 결과, 프로세스(PP-k)는 대기 상태로 되어 있다.
(2) 병렬 처리 통신부(400Pk)는 싱글 프로세서용 OS(300Pk)를 통하여 주기억 장치(92)(공유 메모리)상에 필요한 데이터를 액세스하는 요구를 행한다.
(3) 그 결과, 프로세스(PP-k)에 속하는 처리의 정보가 주기억 장치(92)(공유 메모리)에 저장된다.
(4) 프로세서(P0)상의 프로세스(PP)는 병렬 처리 통신부(400P0)에 대해 동기적인 처리를 의뢰한다. 그 후, 프로세스(PP)는 대기 상태로 된다.
(5) 의뢰를 받은 병렬 처리 통신부(400P0)는 싱글 프로세서용 OS(300P0)를 통하여 주기억 장치(92)(공유 메모리)상의 데이터에 대한 액세스 요구를 행한다.
(6) 싱글 프로세서용 OS(300P0)에 의해 주기억 장치(92)(공유 메모리)가 액세스된다.
(7) 병렬 처리 통신부(400P0)는 주기억 장치(92)(공유 메모리)로부터 프로세스(PP-k)에 속하는 처리의 정보를 취득한다. 따라서, 프로세스(PP-k)를 실행하는 프로세서 번호와 프로세스 번호가 취득된다.
(8) 병렬 처리 통신부(400P0)는 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)로부터 취득한 정보에 의거하여 통신 의뢰를 요구한다.
(9) 싱글 프로세서용 OS(300P0)는 통신에 필요한 정보를 제어 처리 중계부(600)에서 설정한다.
(10) 그 결과, 제어 처리 중계부(600)로부터 프로세서(Pk)의 싱글 프로세서용 OS(300Pk)에 대해 처리 커맨드가 송신된다.
(11) 프로세서(Pk)의 제어 프록시부(500Pk)는 싱글 프로세서용 OS(300Pk) 경유로 송신된 처리 요구를 입수한다.
(12) 그리고, 제어 프록시부(500Pk)는 입수한 처리 커맨드에 의해 프로세스(PP-k)를 기동한다.
(13) 그 결과, 대기 상태에 있던 프로세스(PP-k)는 처리를 실행한다.
(14) 처리의 종료 후, 프로세스(PP-k)는 그 취지의 정보를 병렬 처리 통신부(400Pk)에 통지한다.
(15) 통지를 받은 병렬 처리 통신부(400Pk)는 싱글 프로세서용 OS(300Pk) 경유로 통지된 정보에 의거하여 통신 의뢰를 요구한다.
(16) 싱글 프로세서용 OS(300Pk)는 통신에 필요한 정보를 제어 처리 중계부(600)에서 설정한다.
(17) 그 결과, 제어 처리 중계부(600)로부터 프로세서(P0)의 싱글 프로세서용 OS(300P0)에 대해 처리 요구가 송신된다.
(18) 프로세서(P0)의 제어 프록시부(500P0)는 싱글 프로세서용 OS(300P0) 경유로 송신된 처리 요구를 입수한다.
(19) 그리고, 제어 프록시부(500P0)는 입수한 처리 요구에 의해 프로세스(PP)를 기동한다.
따라서, 제 1 프로세서측(100)의 프로세서(P0)상의 프로세스(PP)와 제 2 프로세서측(200)의 프로세스(PP-k)와의 사이에서의 동기적인 처리가 실현된다.
다음에, 프로세스의 병렬 처리의 비동기 기동의 동작에 관해, 도 14를 참조하여 설명한다.
여기에서 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)이면, 제 1 프로세서측(100)의 병렬화 프로세스(PP)가 제 2 프로세서측(200)에서 기동시키는 처리 단위인 프로세스(PP-k)로서 미리 생성되어 있는 것으로 한다.
(1) 처리를 행하고 있은 제 2 프로세서측(200)의 프로세서(Pk)(1≤k≤n)상의 프로세스(PP-k)가, 병렬 처리 통신부(400Pk)에 대해, 자체 프로세스에 속하는 처리의 정보를 등록한다. 그 결과, 프로세스(PP-k)는 대기 상태로 된다.
(2) 병렬 처리 통신부(400Pk)는 싱글 프로세서용 OS(300Pk)를 통하여 주기억 장치(92)(공유 메모리)상에 필요한 데이터를 액세스하는 요구를 행한다.
(3) 그 결과, 프로세스(PP-k)에 속하는 처리의 정보가 주기억 장치(92)(공유 메모리)에 저장된다.
(4) 프로세서(P0)상의 프로세스(PP)는 병렬 처리 통신부(400P0)에 대해 비동기적인 처리를 요청한다. 이 경우, 프로세스(PP)는 대기 상태로 되지 않고 그 후 처리를 계속한다.
(5) 요청을 받은 병렬 처리 통신부(400P0)는 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)상의 데이터에 대한 액세스 요구를 행한다.
(6) 주기억 장치(92)(공유 메모리)는 싱글 프로세서용 OS(300P0)에 의해 액세스된다.
(7) 병렬 처리 통신부(400P0)는 주기억 장치(92)(공유 메모리)로부터 프로세스(PP-k)에 속하는 처리의 정보를 취득한다. 그 결과, 프로세스(PP-k)를 실행하는 프로세서 번호와 프로세스 번호가 취득된다.
(8) 병렬 처리 통신부(400P0)는 싱글 프로세서용 OS(300P0) 경유로 주기억 장치(92)(공유 메모리)로부터 취득한 정보에 의거하여 통신 의뢰를 요구한다.
(9) 싱글 프로세서용 OS(300P0)는 통신에 필요한 정보를 제어 처리 중계부(600)에서 설정한다.
(10) 따라서, 제어 처리 중계부(600)로부터 프로세서(Pk)의 싱글 프로세서용 OS(300Pk)에 대해 처리 요구가 송신된다.
(11) 프로세서(Pk)의 제어 프록시부(500Pk)는 싱글 프로세서용 OS(300Pk) 경유로 송신된 처리 요구를 입수한다.
(12) 그리고, 제어 프록시부(500Pk)는 입수한 처리 요구에 의해 프로세스(PP-k)를 기동한다.
(13) 따라서, 대기 상태에 있던 프로세스(PP-k)는 처리를 실행한다.
이상에 의해, 제 1 프로세서측(100)의 프로세서(P0)상의 프로세스(PP)와 제 2 프로세서측(200)의 프로세스(PP-k)와의 사이에서의 비동기적인 처리가 실현된다.
제 2예에 따른 병렬 처리 시스템에서의 제어 처리 중계부(600)에 의한 처리 동작에 관해 도 15 및 도 16을 참조하여 설명한다.
우선, 제어 처리 중계부(600)의 구성을 도 15에 도시한다. 도시한 바와 같이, 제어 처리 중계부(600)는 각 프로세서(P0 내지 Pn)에 대응한 인터럽트 제어 장치(601P0 내지 601Pn)와, 각 프로세서(P0 내지 Pn)에 대응한 통신 영역(602P0 내지 602Pn)을 구비하여 구성된다. 여기서, 통신 영역(602P0 내지 602Pn)은 주기억 장치(92) 내에 확보된다.
상기 인터럽트 제어 장치(601P0 내지 601Pn)는 도 6에 도시한 제 1예에 따른 제어 처리 중계부(60)의 구성과 동일하며, 인터럽트 지시부(601a), 인터럽트 상태 보존부(601b), 인터럽트 취소부(601c)에 의해 구성된다.
또한, 통신 영역(602P0 내지 602Pn)은 도 6에 도시한 제 1예와 기본적으로 같은 구성이고, 도 6의 통신 이유 보존 영역(62a)과 통신 데이터 보존 영역(62b)을 조합시킨 통신 큐(602a)와, 상호 배타 제어 영역(602c)에 의해 구성된다.
예로서, 제 1 프로세서측(100)의 병렬 처리 통신부(400P0)로부터 제 2 프로세서측(20)의 프로세서(Pn)에의 통신 처리를 도 16을 참조하여 그 동작을 설명한다.
(1) 병렬 처리 통신부(400P0)는 프로세서(P1)용의 통신 영역(602Pn)의 상호 배타 제어 영역(602b)에 로크를 건다. 구체적으로는, 상호 배타 제어 영역(602b)에 저장되는 lock 변수를 로크 상태로 함에 의해, 해당 프로세서(Pn)용의 통신 영역(602Pn)이 다른 프로세서에서 사용되는 것을 배제한다.
(2) 병렬 처리 통신부(400P0)는 통신 이유 정보와 통신 데이터(요구 컨텐츠를 포함하는 필요 데이터)를 통신 영역(602Pn)의 통신 큐(602a)에 저장한다.
저장되는 통신 이유 정보로서, 상술한 바와 같이 프로세스의 생성 기동을 위한 통신 처리인 경우, "프로세스 기동"을 나타내는 정보(예를 들면, 병렬 처리에 대응하여 미리 정해져 있는 수치 등의 데이터)가 저장된다.
(3) (1)의 시점에서, 통신 영역(602Pn)의 통신 큐(602a)가 비어있으면, 병렬 처리 통신부(400P0)는 자신의 인터럽트 제어 장치(601P0)의 인터럽트 지시부(601a)에 대해, 프로세서(Pn)에의 인터럽트를 지시한다.
(4) 프로세서(P0)의 병렬 처리 통신부(400P0)는 프로세서(Pn)용의 통신 영역(602Pn)의 상호 배타 제어 영역(602b)을 언로크 상태로 한다. (1)의 시점에서 통신 영역(602Pn)의 통신 큐(602a)가 비어있지 않은 경우에는, 인터럽트할 필요가 없기 때문에 여기서 처리를 종료한다.
(5) 인터럽트 제어 장치(601P0)의 인터럽트 지시부(601a)는 프로세서(Pn)에 대응하는 인터럽트 제어 장치(601Pn)의 인터럽트 상태 보존부(601b)에 인터럽트를 나타내는 정보를 설정한다. 그 결과, 프로세서(Pn)가 인터럽트 상태로 된다.
(6) 프로세서(Pn)의 싱글 프로세서용 OS(300Pn)는 프로세서(Pn)용의 인터럽트 제어 장치(601Pn)의 인터럽트 상태 보존부(601b)의 상태로부터 인터럽트를 수리한다.
(7) 프로세서(Pn)에서 싱글 프로세서용 OS(300Pn)는 인터럽트 제어 장치(601Pn)의 인터럽트 취소부(601c)에 의해 자신의 인터럽트 상태 보존부(601b)의 인터럽트 정보를 클리어함에 의해 자신의 인터럽트 상태를 해제한다.
(8) 프로세서(Pn)에서 싱글 프로세서용 OS(300Pn)는 자신의 제어 프록시부(500Pn)를 기동한다.
(9) 프로세서(Pn)의 제어 프록시부(500Pn)는 자신의 통신 영역(602Pn)의 상호 배타 제어 영역(602b)에 로크를 세트한다.
(10) 프로세서(Pn)의 제어 프록시부(500Pn)는 또한 자신의 통신 영역(602Pn)의 통신 큐(602a)로부터 통신 이유 정보와 통신 데이터를 각각 삭제한다.
(11) 프로세서(Pn)의 제어 프록시부(500Pn)는 프로세서(Pn)용의 통신 영역(602Pn)의 상호 배타 제어 영역(602b)을 언로크로 한다. 그 결과, 해당 프로세서(Pn)용의 통신 영역(602Pn)이 다른 프로세서로부터 사용할 수 있게 된다.
따라서, 제어 처리 중계부(600)를 이용함에 의해, 제 1 프로세서측(100)과 제 2 프로세서측(200) 사이에서 제어 신호나 데이터의 송수신이 실현된다.
다음에, 본 발명이 적용되는 제 3예에 따른 병렬 처리 시스템에 관해 도 17 이하를 참조하여 설명한다. 도 17은 이 제 3예의 병렬 처리 시스템의 구성을 도시한 블록도이고, 도 13과 공통의 구성 요소에 관해서는 같은 부호를 이용하고 있다.
상기 설명한 제 2예에 있어서의 동기적인 처리에서는, 프로세스 상호간에 있어서, 한쪽의 프로세스가 다른쪽의 프로세스에 의해 주기억 장치(92)상의 데이터가 갱신되었는지 여부의 체크를 반복할 필요가 있고, 그 반복분만큼 추가 처리가 발생하고 있지만, 본 예에서는, 그러한 추가 처리를 필요로 하지 않는 고성능인 프로세스 사이의 동기와 데이터 수수를 가능하게 하는 것이다.
도 17에 도시한 바와 같이, 제 3예에 따른 병렬 처리 시스템은, 제 2예와 마찬가지로, 시스템 버스(91)를 통해 접속되는 복수의 프로세서(CPU)(P0 내지 Pn)(n은 1 이상의 정수)로 이루어지는 멀티 프로세서를 논리적으로 제 1 프로세서측(100)과 제 2 프로세서측(200)의 2세트로 나누어 구성하고, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서(200)의 프로세서(CPU)(P1 내지 Pn)상에서 동작하는 싱글 프로세서용 OS(300P0 내지 300Pn)를 실장하고 있다.
이 제 3예는, 제 2예에서 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)의 병렬 처리를 행하기 위한 병렬 처리 통신부(400P0 내지 400Pn)와 제어 프록시부(500P0) 내지 500Pn)에 더하여, 제 1 프로세서측(100)의 프로세서(P0) 및 제 2 프로세서측(200)의 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스 사이에서의 통신을 실현하기 위한 프로세스간 통신부(1000P0 내지 1000Pn)를 더 포함하는 것을 특징으로 하고 있다.
즉, 종래에 멀티 프로세서용 OS에 실장되어 있던 프로세스간 통신의 기능을 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서 실현하여, 유저 레벨에 의한 프로세스간 통신 기능의 실장을 가능하게 하고 있다.
또한, 이 예에서도, 제 1예에서 나타낸 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)가 제 2 프로세서측(200)에서 실행되는 프로세스와 통신하기 위한 프록시부(70)에 관해서는 제 1예와 완전히 동일한 기능을 실행하기 때문에, 편의상 생략한다.
상기 프로세스간 통신부(1000P0 내지 1000Pn) 이외의 구성 요소에 관한 구성 및 동작에 관해서는, 상술한 제 2예와 동일하기 때문에, 이하에서는, 프로세스간 통신부(1000P0 내지 1000Pn)에 관해서만 설명하기로 한다.
상기 프로세스간 통신부(1000P0 내지 1000Pn)는 세마포어(semaphore)나 메시지 큐 등의 방식을 이용함에 의해, 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스 사이에서의 통신을 실현하는 것이다.
프로세스간 통신부(1000P0 내지 1000Pn)가 세마포어 방식을 이용하여 프로세스간 통신을 행하는 경우에 관해 설명한다.
도 18에 도시한 바와 같이, 제 2 프로세서측(200)의 프로세서(Pm)와 프로세서(Pn)상에서 각각 프로세스(PP-m)와 프로세스(PP-n)가 실행되고 있는 경우에 있어서, 프로세스(PP-m)와 프로세스(PP-n)가 프로세스간 통신부(1000Pm, 1000Pn)에 의한 세마포어 방식을 이용하여 통신을 행하는 경우에 관해 설명한다.
세마포어는 복수의 프로세스가 동시 실행되는 멀티 태스크 OS에 있어서 서로 통신하여 동기를 취하는 복수 프로세스를 위한 위한 시스템이고, 서로 동기된 프로세스가 카운터의 변화에 따라 처리를 행하도록 하는 일종의 공유 플래그(카운터)로서, 통신(동기)을 실현한다.
우선, 도 18에 있어서, 프로세서(Pm)상의 프로세스(PP-m)가 주기억 장치(92)의 세마포어 정보 영역(공유 플래그)을 업 또는 다운하는 경우의 동작을 설명한다. 여기서, 세마포어 업은, 세마포어 정보 영역의 카운터치를 증가시키고, 세마포어 다운은, 세마포어 정보 영역의 카운터치를 감소시킨다. 세마포어 다운할 수 없는경우, 해당 프로세스는 SLEEP하여 대기 상태로 되고, 세마포어 업에 의해 WAKE-UP 된다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어 카운터)를 업 또는 다운하는 경우, 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 세마포어 번호로 구별되는 공유 플래그로서의 세마포어 정보 영역(#N)(시스템에 의해 미리 결정된 수만큼 세마포어 정보 영역이 확보됨)에 액세스함에 의해, 세마포어를 업 또는 다운할 수 있는지가 판명된다.
다음에, 도 19를 참조하여, 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어 플래그)를 다운하는 경우의 동작을 설명한다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 세마포어(세마포어 플래그)를 다운하고자 프로세스간 통신부(1000Pm)에 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스한다. 여기서, 세마포어 정보 영역(#N)에서 세마포어의 카운터치로서 초기치 "0"이 설정되어 있고, 다운하려고 하여도 다운할 수 없도록 미리 정해져 있다. 따라서, 세마포어를 다운할 수 없음이 판명된다.
(3) 프로세스간 통신부(1000Pm)는 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 상기 프로세스(PP-m)를 SLEEP 시키도록 요구한다.
(4) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 프로세스(PP-m)를 SLEEP 시키고 런 큐로부터 제외한다.
즉, 상기의 경우 프로세스(PP-m)는 세마포어를 다운할 수 없기 때문에 SLEEP 한다.
또한, 도 20에 있어서, 상기한 바와 같이 프로세스(PP-m)가 SLEEP 한 상태에서, 같은 프로세서(Pm)상의 프로세스(PP-m1)가 세마포어를 업하는 경우의 동작을 설명한다.
(1) 프로세스(PP-m1)가 세마포어의 업을 프로세스간 통신부(1000Pm)에 요구한다.
(2) 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스함에 의해, 세마포어 대기의 프로세스(PP-m)가 존재하는지 판명한다.
(3) 또한, 프로세스간 통신부(1000Pm)는 제어 처리 중계부(600)에 대해 메시지(제어 메시지)를 송신함으로써, 프로세스(PP-m)의 WAKE-UP을 요구한다.
(4) 제어 프록시부(500Pm)가 제어 처리 중계부(600)로부터 메시지를 수신한다. 이 제어 처리 중계부(600)에 의한 메시지의 중계는 도 15, 도 16에서 설명한 동작에 의거하여 행하여진다.
(5) 제어 프록시부(500Pm)는 메시지로부터 세마포어 대기의 프로세스의 WAKE-UP 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 WAKE-UP 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는, 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 WAKE-UP 하여 런 큐에 연결한다. 이 경우, WAKE-UP 된프로세스(PP-m)는 재차 세마포어를 다운하고자 시도한다.
또한, 상기 처리(3), (4)에 있어서의 제어 처리 중계부(600)에 의한 제어 메시지의 중계를 이용하지 않고 싱글 프로세서용 OS(300Pm)의 통신 기능을 이용하여 프로세스간 통신부(1000Pm)로부터 제어 프록시부(500Pm)에 대해 직접 프로세스(PP-m)의 WAKE-UP을 요구하도록 하면, 처리(3), (4)가 생략되고 고속화가 가능하다.
도 21을 참조하면, 상기한 바와 같이 프로세서(Pm)상의 프로세스(PP-m)가 SLEEP한 상태이고, 다른 프로세서(Pn)상의 프로세스(PP-n)가 세마포어를 업하는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 프로세스(PP-n)가 세마포어의 업을 자체 프로세서(Pn)의 프로세스간 통신부(1000Pn)에 요구한다.
(2) 프로세스간 통신부(1000Pn)는 주기억 장치(92)에 확보되어 있는 세마포어 정보 영역(#N)에 액세스함에 의해, 세마포어 대기의 프로세스(PP-m)가 존재하는 것을 판명한다.
(3) 프로세스간 통신부(1000Pn)는 제어 처리 중계부(600)에 대해 메시지(제어 메시지)를 송신함으로써 프로세스(PP-m)의 WAKE-UP을 요구한다.
(4) 계속해서, 프로세서(Pm)의 제어 프록시부(500Pm)가 제어 처리 중계부(600)로부터 메시지를 수신한다. 이 제어 처리 중계부(600)에 의한 메시지의 중계는 도 15 및 도 16로 설명한 동작에 의거하여 행하여진다.
(5) 제어 프록시부(500Pm)는 메시지로부터 세마포어 대기의 프로세스의 WAKE-UP 요구이라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 WAKE-UP 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 WAKE-UP 하고 런 큐에 연결한다. 이 경우, WAKE-UP 된 프로세스(PP-m)는 재차 세마포어를 다운하고자 시도한다.
다음에, 도 22에 도시한 바와 같이, 제 2 프로세서측(200)의 프로세서(Pm)와 프로세서(Pn)상에서 각각 프로세스(PP-m)와 프로세스(PP-n)가 실행되어 있는 경우에 있어서, 프로세스(PP-m)와 프로세스(PP-n)가 프로세스간 통신부(1000Pm과 1000Pn)에 의한 메시지 큐 시스템을 이용하여 통신을 행하는 경우에 관해 설명한다.
메시지 큐 시스템이란, 복수의 프로세스 사이에서 통신을 행하는 방법으로서, 이름대로 "큐"를 작성하고, 거기에 정보로서의 메시지(프로세스 상호간에 교환되는 처리 데이터)를 저장하여 가는 시스템이다. 메시지 큐 시스템에서는, 인수측의 프로세스는 그 메시지를 임의의 순번으로 수취할 수 있다. 또한, 메시지를 어느 하나의 프로세스가 수취하면 그 메시지는 큐로부터 사라진다.
도 22를 참조하면, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 시스템에 의해 메시지를 수신하는 경우의 동작을 설명한다. 여기서는, 취득하여야 할 메시지가 주기억 장치(92)에 확보되어 있는 큐 번호로 구별되는 큐 정보 영역(#N)(시스템에 의해 미리 결정된 수만큼 큐 정보 영역이 확보됨)에 존재하는 경우이다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 메시지의 수신을 하기 위해 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)을 액세스하고 메시지를 수신한다.
(3) 그리고, 프로세스간 통신부(1000Pm)는 수신한 메시지를 요구원인 프로세스(PP-m)에 카피한다. 이 시점에서 해당 메시지는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)으로부터 소거된다.
다음에, 도 23를 참조하면, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 시스템에 의해 메시지를 수신하는 경우의 제 2의 동작을 설명한다. 여기서는, 취득하여야 할 메시지가 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 존재하지 않는 경우이다.
(1) 프로세서(Pm)상의 프로세스(PP-m)가 메시지의 수신을 하기 위해 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스한다. 이 경우, 취득하여야 할 메시지가 확보되어 있는 큐 정보 영역(#N)에 존재하지 않고, 메시지를 수신할 수 없는 것을 판명한다.
(3) 프로세스간 통신부(1000Pm)는 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 상기 프로세스(PP-m)를 SLEEP 시키도록 요구한다.
(4) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 프로세스(PP-m)를 SLEEP 시키고, 런 큐로부터 제외한다.
즉, 상기의 경우, 프로세스(PP-m)는 메시지를 수신할 수 없기 때문에 SLEEP 한다.
도 24를 참조하면, 프로세서(Pm)상의 프로세스(PP-m)가 메시지 큐 시스템에 의해 메시지를 송신하는 경우의 동작을 설명한다. 여기서는, 송신하려고 하는 메시지 대기의 프로세스가 존재하지 않고, 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에의 메시지의 송신만을 행하는 경우이다.
(1) 메시지의 송신하기 위해, 프로세서(Pm)상의 프로세스(PP-m)가 프로세스간 통신부(1000Pm)에 그 취지를 요구한다.
(2) 요구를 받은 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고, 프로세스(PP-m)로부터의 메시지를 저장한다.
도 25를 참조하면, 프로세서(Pm)상의 프로세스가 메시지 큐 시스템에 의해 메시지를 송신하는 경우의 동작을 설명한다. 여기서는, 송신하려고 하는 메시지 대기의 프로세스가 존재하는 경우이다. 즉, 도 23에 도시된 바와 같이 프로세스(PP-m)가 메시지를 수신할 수 없고 SLEEP하고 있는 상태에서 프로세스(PP-m1)로부터 메시지가 송신되는 경우이다.
(1) 프로세스(PP-m1)가 메시지의 송신을 프로세스간 통신부(1000Pm)에 요구한다.
(2) 프로세스간 통신부(1000Pm)는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고, 프로세스(PP-m1)로부터의 메시지를 저장한다. 여기서, 메시지 대기의 프로세스(PP-m)가 존재하는 것을 판명한다.
(3) 프로세스간 통신부(1000Pm)는 제어 처리 중계부(600)에 대해 제어 메시지를 송신함으로써, 프로세스(PP-m)의 WAKE-UP을 요구한다.
(4) 제어 프록시부(500Pm)는 제어 처리 중계부(600)로부터 제어 메시지를 수신한다.
(5) 제어 프록시부(500Pm)는 제어 메시지로부터 메시지 대기의 프로세스의 WAKE-UP 요구라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 WAKE-UP 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 WAKE-UP 하고, 런 큐에 연결한다.
이 경우, WAKE-UP 된 프로세스(PP-m)는 재차 메시지의 수신을 시도한다. 그 결과, 프로세스(PP-m1)로부터의 메시지가 프로세스(PP-m)에서 수신된다.
상기 처리(3), (4)에 있어서의 제어 처리 중계부(600)에 의한 제어 메시지의 중계를 이용하지 않고 싱글 프로세서용 OS(300Pm)의 통신 기능을 이용하여 프로세스간 통신부(1000Pm)로부터 제어 프록시부(500Pm)에 대해 직접 프로세스(PP-m)의 WAKE-UP을 요구하도록 하면, 처리(3), (4)가 생략되고 고속화가 가능하다.
도 26을 참조하면, 도 23에 도시한 바와 같이 프로세서(Pm)상의 프로세스(PP-m)가 SLEEP하여 메시지 대기의 상태에서, 다른 프로세서(Pn)상의 프로세스(PP-n)가 메시지를 송신하는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 프로세스(PP-n)가 메시지의 송신을 자체 프로세서(Pn)의 프로세스간 통신부(1000Pn)에 요구한다.
(2) 프로세스간 통신부(1000Pn)는 주기억 장치(92)에 확보되어 있는 큐 정보 영역(#N)에 액세스하고 프로세스(PP-n)로부터의 메시지를 저장한다. 여기서, 메시지 대기의 프로세스(PP-m)가 존재하는 것을 판명한다.
(3) 프로세스간 통신부(1000Pn)는 제어 처리 중계부(600)에 대해 제어 메시지를 송신함으로써 프로세스(PP-m)의 WAKE-UP을 요구한다.
(4) 계속해서, 프로세서(Pm)의 제어 프록시부(500Pm)가 제어 처리 중계부(600)로부터 제어 메시지를 수신한다.
(5) 제어 프록시부(500Pm)는 제어 메시지로부터 메시지 대기의 프로세스의 WAKE-UP 요구이라고 판단하고, 싱글 프로세서용 OS(300Pm)에 대해 시스템 콜을 이용하여 대기 상태의 상기 프로세스(PP-m)를 WAKE-UP 시키도록 요구한다.
(6) 싱글 프로세서용 OS(300Pm)는 시스템 콜을 이용하여 요구된 프로세스(PP-m)를 WAKE-UP하여 런 큐에 연결한다.
이 경우, WAKE-UP된 프로세스(PP-m)는 재차 메시지의 수신을 시도한다. 그 결과, 프로세스(PP-n)로부터의 메시지가 프로세스(PP-m)에서 수신되고, 다른 프로세서 상호간에 프로세스 사이의 통신이 실행된다.
본 예의 병렬 처리 시스템에 의하면, 상술한 바와 같이 프로세스간 통신부(1000P0 내지 Pn)에 의해, 세마포어 방식 또는 메시지 큐 시스템을 이용한 동일 프로세서 내 또는 다른 프로세서 사이의 프로세스 통신(동기 또는 메시지의 송수)을 행함에 의해, 프로세스 전환 등의 프로세스 제어나 데이터의 송수신을 행하는 것이 가능해진다.
싱글 프로세서용 OS에 의한 프로세스간 통신은 동일 프로세서 내의 프로세스 사이에 한정되고 다른 프로세서 사이에서의 프로세스 통신은 처리가 무거운 네트워크 등을 이용하여 행할 필요가 있지만, 네트워크 통신에 비하여 처리가 고속인 제어 처리 중계부(600)와 프로세스간 통신부(1000P0 내지 Pn)에 의한 세마포어 방식 또는 메시지 큐 시스템을 이용함으로써, 싱글 프로세서용 OS를 실장하는 멀티 프로세서 시스템에 있어서도 처리가 빠른 프로세스간 통신을 실현할 수 있다.
동일 프로세서 내의 프로세스간 통신에 관해서는, 싱글 프로세서용 OS에 의한 프로세스의 SLEEP으로부터 WAKE-UP에 필요로 하는 처리 성능과 거의 동등한 성능을 얻을 수 있다.
멀티 프로세서용 OS와 달리, 프로세서마다 다른 싱글 프로세서용 OS를 실장하고 있어서도 프로세서 상호간의 프로세스간 통신이 가능하게 되는 이점이 더 있다.
다음에, 상기 프로세스간 통신부(1000P0 내지 1000Pn)에 의한 세마포어 방식 및 메시지 큐 시스템을 이용한 프로세스간 통신의 구체적인 예에 관해 도 27을 참조하여 설명한다.
도 27에서, 프로세서(P0), 프로세서(Pj), 프로세서(Pk)상에서 프로세스(PP-0), 프로세스(PP-j) 및 프로세스(PP-k)가 각각 실행되고 있다. 여기서는, 프로세스(PP-0)가 브라우저, 프로세스(PP-j)가 java(R)애플릿, 프로세스(PP-k)가 MPEG4 어플리케이션으로서 동작하고, 도 28에 도시한 바와 같이, 프로세스(PP-0)에 의한 브라우저(1100)에 매입된 윈도우 내에서 프로세스(PP-j)에 의한 java(R)애플릿의 컨텐츠(1200)와, 프로세스(PP-k)에 의한 MPEG4 영상 컨텐츠(1300)가 동기하여 표시된다.
이 예에서는, 제 1 프로세서측(100)의 싱글 프로세서용 OS(300P0)상에서 동작하는 어플리케이션의 처리 단위중 프로세스(PP-0)를 프로세서(P0)상에서 동작시키고, 어플리케이션 내에서 병렬화를 행할 수 있는 프로세스인 프로세스(PP-j)와 프로세스(PP-k)를 제 2 프로세서측(200)의 프로세서(Pj)와 프로세서(Pk)에서 병렬 처리하는 경우이다.
도 27에서, java(R)애플릿(프로세스(PP-j))과 MPEG4 어플리케이션(프로세스(PP-k))은 기동되면, 함께 브라우저(프로세스(PP-0))로부터의 Java(R) 어플리 데이터 및 MPEG4 영상 데이터의 수신을 대기한다(스텝 S101, S201).
여기서, 프로세서(P0)의 프로세스(PP-0)로부터 프로세스간 통신부(1000P0)에 의한 메시지 송신을 이용하여, Java(R) 어플리 데이터 및 MPEG4 영상 데이터가 메시지로서 송신되고, java(R)애플릿(프로세스(PP-j)) 및 MPEG4 어플리케이션(프로세스(PP-k))으로 수신된다.
그 결과, java(R)애플릿(프로세스(PP-j))에 의한 동작이 시작되고(스텝 S102), MPEG4 어플리케이션(프로세서PP1k)에 의한 디코드 처리가 시작된다(스텝 S202).
이 예에서는, java(R)애플릿(프로세스(PP-j))에 의한 동작이 MPEG4 어플리케이션(프로세스(PP-k))에 의한 디코드 처리보다 빨리 종료하는 것을 미리 알고 있고, java(R)애플릿(프로세스(PP-j))은 동작 종료 후에, MPEG4 어플리케이션(프로세스(PP-k))의 처리 완료를 기다리도록, 세마포어의 카운터의 초기치를 "0"에 설정하고, 빨리 종료한 java(R)애플릿(프로세스(PP-j))이 세마포어 다운할 수 없도록 되어 있다. 또한, MPEG4 어플리케이션(프로세스(PP-k)은 처리 종료 후에 세마포어 업하도록 정의되어 있다.
java(R)애플릿(프로세서PP -j)은 세마포어 다운하려고 하지만(스텝 S103), 카운터의 초기치가 "0"이기 때문에 다운할 수 없고 SLEEP되고, 세마포어 대기의 상태로 된다.
MPEG4 어플리케이션(프로세스(PP-k))이 처리가 종료하면(스텝 S203), 세마포어 업을 요구한다(스텝 S204). 그 결과, 세마포어 대기의 java(R)애플릿(프로세스(PP-j))이 WAKE-UP 되고 세마포어 다운이 가능하게 된다.
이상의 동작을 프레임마다 반복함에 의해, 프로세스(PP-0)에 의한 브라우저(1100)에 매입된 윈도우 내에서, 프로세스(PP-j)에 의한 java(R)애플릿의 컨텐츠(1200)과, 프로세스(PP-k)에 의한 MPEG4 영상 컨텐츠(1300)가 동기하여 표시된다.
다음에, 본 발명의 제 4예에 따른 병렬 처리 시스템을 도 29 이하를 참조하여 설명한다. 도 29는 이 제 4예에 따른 병렬 처리 시스템의 구성을 도시한 블록도로서, 도 13과 공통의 구성 요소에 관해서는 같은 부호를 이용하고 있다.
도 29에 도시한 바와 같이, 제 4예의 병렬 처리 시스템은 시스템 버스(91)를 통해 접속되는 복수의 프로세서(CPU)(P1 내지 Pn)(n은 2 이상의 정수)로 이루어지는 멀티 프로세서를 포함하고, 프로세서(P1 내지 Pn)의 각 프로세서상에서 동작하는 싱글 프로세서용 OS(300P1 내지 300Pn)를 실장하고 있다.
구체적으로, 본 예는 멀티 프로세서를 논리적으로 제 1 프로세서측과 제 2 프로세서측의 2그룹으로 나누지 않는 것이 제 1예 내지 제 3예와 상위하다.
제 4예는, 상기 제 3예와 마찬가지로, 프로세서(P1 내지 Pn)의 병렬 처리를 행하기 위한 병렬 처리 통신부(400P1 내지 400Pn)와 제어 프록시부(500P1 내지 500Pn)에 더하여, 프로세서(P1 내지 Pn)상에서 실행되는 각 프로세스 사이에서의 통신을 실현하기 위한 프로세스간 통신부(1000P1 내지 1000Pn)를 구비하고 있다.
한편, 제 1예와 같은 OS 서비스부(50P1 내지 50Pn)나, 제 1예부터 제 3예와 같은 병렬 처리 통신부(400P1 내지 400Pn)를 구비하는 일 없이, 각 프로세서(P1 내지 Pn)상의 프로세스 제어가 가능하다. 또한, 각 프로세서(P1 내지 Pn)상의 싱글 프로세서용 OS(300P1 내지 300Pn)에 관해서는, 같은 OS일 필요는 없고 서로 달라도 좋다.
즉, 본 예도 지금까지 멀티 프로세서용 OS에 실장되어 있던 프로세스간 통신의 기능을 멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키는 싱글 프로세서용 OS에 의한 병렬 처리 시스템상에서 실현하는 것이며, 유저 레벨에 의한 프로세스간 통신 기능의 실장을 가능하게 하고 있다.
각 프로세서(P1) 내지 프로세서(Pn) 내에 있어서의 각 프로세스의 실행에 관해서는, 다른 프로세서와의 배타 제어를 할 필요없이 수행된다.
개개의 프로세서(P1) 내지 프로세서(Pn) 내에 있어서의 프로세스간 통신 및 프로세서 상호간에 있어서의 프로세스간 통신에 관해서는, 제 3예에서 설명한 바와 같이, 프로세스간 통신부(1000P1 내지 1000Pn)에 의한 세마포어 방식 및 메시지 큐시스템을 이용하여 행하여지고, 프로세스 상호간의 동기 처리 및 데이터의 수수가 실행된다.
상기 병렬 처리 시스템에 적용되는 본 발명의 시큐어리티 관리 시스템에 관해 도 30을 참조하여 설명한다. 여기서는, 제 1예에서 나타낸 병렬 처리 시스템에 대해 본 발명의 시큐어리티 관리 시스템을 적용한 제 1의 실시예에 관해 설명한다.
제 1의 실시예에 따른 시큐어리티 관리 시스템은 도 1에 도시한 제 1예에 따른 병렬 처리 시스템의 구성과 같은 구성이며, 제 1 프로세서측(10)의 프로세서(P0)와 제 2 프로세서측(20)의 프로세서(P1 내지 Pn0)에 구비되는 OS 서비스부(1500P0, 1500P1 내지 1500Pn)가, HD나 Flash ROM 등으로 이루어지는 외부 기억 장치(93)에 저장된 제어 파일(2000P0 내지 2000Pn)에 의거하여 태스크마다 또는 각 프로세서마다 액세스 제어나 액세스의 양적(量的) 제어 등에 의한 시큐어리티를 실현하는 기능을 갖는 점이 상위하다. 도 1과 같은 구성에 관해서는 같은 부호를 붙이고 설명을 생략한다.
본 실시예는 OS 서비스부(1500P0, 1500P1 내지 1500Pn)에 시큐어리티 기능을 부가함으로써, 유저 레벨에서의 시큐어리티에의 대응을 가능하게 하고 있다.
외부 기억 장치(93)에 저장되는 제어 파일(2000P0 내지 2000Pn)의 시큐어리티 컨텐츠의 설정예를 도 31에 도시한다. 도 31의 제어 파일(2000P0 내지 2000Pn)에는, 이하와 같은 시큐어리티 컨텐츠가 정의되어 있다. 이들 제어 파일(2000P0 내지 2000Pn)에서 설정되는 시큐어리티 컨텐츠는 각각 같은 컨텐츠라도 좋고, 서로 다른 컨텐츠라도 좋다.
각 프로세서(P0, P1 내지 Pn)상에서 실행되는 태스크마다의 제어 레벨에 관해, 태스크(A, B, C)가 Level(0), 태스크(D, F)가 Level(1), 그 밖의 태스크가 Level(2)로 설정되어 있다.
각 제어 레벨마다의 액세스 제어 컨텐츠에 관해, Level(0)이 "모든 액세스가 가능", Level(1)이 "판독의 액세스만 가능", Level(2)가 "화면을 제외한 외부 출력은 일체 불가"인 것이 설정되어 있다.
제어 레벨마다의 양적인 제한 컨텐츠에 관해서는, Level(0)이 "표준적인 제한", Level(1)이 "판독 파일이 한개까지", Level(2)가 "세마포어는 사용 불가"인 것이 설정되어 있다.
또한, 도 31의 예에서는, 제어 파일에 태스크마다 제어 레벨을 설정한 예를 나타냈지만, 그 밖에 각 프로세서(P0, P1 내지 Pn)마다 제어 레벨을 설정하는 것도 가능하다.
여기서, 본 실시예에 따른 시큐어리티 관리 시스템의 동작에 관해, 도 32를 참조하여 스텝별로 설명한다.
우선, 외부 기억 장치(93)에 저장되는 제어 파일(2000P1 내지 2000Pn)이 프로세서(P0 내지 Pn)에 판독되는 경우의 동작을 설명한다.
(1) 프로세서(P1)상의 OS 서비스부(1500P1)가 기동 후에 자체 프로세서용의 제어 파일(2000P1)을 취득하기 위해, 외부 기억 장치(93)에 저장되어 있는 제어 파일(2000P1)의 판독 요구를 제어 처리 중계부(60)에 전송한다.
(2) 프로세서(P0)의 OS 서비스부(1500P0)는 제어 처리 중계부(60)로부터 상기 판독 요구를 수취한다.
(3) 프로세서(P0)의 OS 서비스부(1500P0)는 싱글 프로세서용 OS(30)에 대해 제어 파일(2000P1)의 판독 요구를 발행한다.
(4) 싱글 프로세서용 OS(30)는 외부 기억 장치(93)에 제어 파일(2000P1)의 액세스 요구를 발행한다.
(5) 싱글 프로세서용 OS(30)는 외부 기억 장치(93)로부터 제어 파일(2000P1)의 컨텐츠를 수취한다.
(6) 싱글 프로세서용 OS(30)는 제어 파일(2000P1)의 시큐어리티 컨텐츠를 프로세서(P0)의 OS 서비스부(1500P0)에 인도한다.
(7) 프로세서(P0)의 OS 서비스부(1500P0)는 제어 처리 중계부(60)를 통하여 상기 제어 파일(2000P1)의 시큐어리티 컨텐츠를 전송한다.
(8) 프로세서(P1)의 OS 서비스부(1500P1)는 제어 처리 중계부(60)를 통하여 전송된 제어 파일(2000P1)의 시큐어리티 컨텐츠에 따라, 프로세서(P1)상에서 실행되는 태스크(PT-1)에 관해 시큐어리티의 제어를 행한다.
제어 파일(2000P1)의 컨텐츠가 한번의 판독 요구로 전부 판독할 수 없는 경우에는, 필요 사항(예를 들면, 도 31에 있어서, 각 태스크의 제어 레벨)만을 판독 요구하고, 그 밖의 사항에 관해서는 태스크로부터의 처리 요구가 있을 때마다 순차 판독을 행하도록 하여도 좋다.
상기와 같이 외부 기억 장치(93)로부터 제어 파일의 판독을 행하는 일 없이, 제어 파일(2000P0 내지 2000Pn)에 설정되는 시큐어리티 컨텐츠를 미리 각프로세서(P0 내지 Pn)의 OS 서비스부(1500P0 내지 1500Pn)에 조립하여 두도록 하여도 좋다.
상기와 같이 판독된 제어 파일(2000P1)의 시큐어리티 컨텐츠에 의거하여 태스크로부터의 요구가 제어되는 경우의 동작에 관해 설명한다.
우선, 프로세서(P1)상의 어느 태스크(PT-1)로부터의 요구가 제어 파일(2000P1)에서 설정되는 시큐어리티 기능에 의해 제한된 경우에 관해, 도 33 및 도 34를 이용하여 설명한다.
(1) 프로세서(P1)상의 태스크(PT-1)가 같은 프로세서상의 OS 서비스부(1500P1)에 대해 소정의 처리를 요구한다.
OS 서비스부(1500P1)는 상기와 같이 취득한 제어 파일(2000P1)의 시큐어리티 컨텐츠에 의거하여, 태스크(PT-1)로부터의 해당 요구를 수리하여야 하는지의 여부를 판단한다. 구체적으로는, 태스크(PT-1)에 설정되어 있는 제어 레벨에서 해당 요구가 허가되어 있는지의 여부를 판단한다.
(2) 해당 요구가 허가되지 않은 경우, OS 서비스부(1500P1)가 요구원의 태스크(PT-1)에 대해 에러를 돌려준다. 그 결과, 태스크(PT-1)에 대해 제어 파일(2000P1)에서 허가되지 않은 처리 요구는 금지되게 된다.
예를 들면, 프로세서(P1)상의 태스크(PT-1)에 관해, 제어 파일(2000P1)에 의해 제어 레벨(Level(1))로 설정되고, 판독의 액세스만이 허가되어 있는 경우, 이와 같은 태스크(PT-1)로부터 어느 파일에의 기록 액세스의 요구가 있으면, OS 서비스부(1500P1)는, 도 31에 도시한 제어 파일의 시큐어리티 컨텐츠에 의거하여,태스크(PT-1)에 관해, 기록 액세스는 허가되어 있지 않다고 판단하고, 태스크(PT-1)에 대해 에러를 돌려주는 것이다.
계속해서, 상기한 바와 같이 제어 파일(2000P1)의 컨텐츠를 판독한 프로세서(P1)상의 어느 태스크(PT-1)로부터의 요구가 시큐어리티 기능에 의해 프로세서(P0)에서 제한된 경우에 관해 도 34를 이용하여 설명한다.
(1) 프로세서(P1)상의 태스크(PT-1)가 같은 프로세서상의 OS 서비스부(1500P1)에 대해 소정의 처리를 요구한다.
OS 서비스부(1500P1)는 상기와 같이 취득한 제어 파일(2000P1)의 시큐어리티 컨텐츠에 의거하여, 태스크(PT-1)로부터의 해당 요구를 수리하여야 하는지의 여부를 판단한다.
(2) 해당 요구가 허가되어 있는 경우에는, OS 서비스부(1500P1)가 제어 처리 중계부(60)를 통하여 해당 요구를 전송한다.
(3) 프로세서(P0)의 OS 서비스부(1500P0)는 제어 처리 중계부(60)로부터 해당 요구를 수리하고 해당 요구를 허가하여야 하는지의 여부를 제어 파일에 의거하여 판단한다.
(4) 프로세서(P0)의 OS 서비스부(1500P0)는 허가되지 않는다고 판단한 경우, 에러로서 제어 처리 중계부(60)에 대답한다.
(5) 프로세서(P1)의 OS 서비스부(1500P1)는 제어 처리 중계부(60)로부터 에러를 수리한다.
(6) 또한, OS 서비스부(1500P1)는 요구원의 태스크(PT-1)에 대해 에러를 돌려준다.
상기와 같이, 태스크(PT-1)가 동작하는 프로세서(P1)의 OS 서비스부(1500P1)상에서 허가된 처리 요구가 프로세서(P0)의 서비스부(50P0)에서 제한된다. 따라서, 프로세서(P0)의 OS 서비스부(1500P0)에서, 프로세서(P1 내지 Pn)의 태스크로부터의 처리 요구에 대한 시큐어리티 보호를 행하기 위해 프로세서(P1 내지 Pn)에 대한 제어 파일과 컨텐츠가 다른 제어 파일(2000P0)을 설정하는 것이 가능하다.
상기 실시예에서, 프로세서(P0)의 OS 서비스부(1500P0)에 있어서의 시큐어리티 컨텐츠를 낮게 설정하고, 또는 시큐어리티 기능을 마련하지 않음으로써, 프로세서(P0)상에서 실행된 기존의 어플리케이션의 성능이 제한되지 않도록 구성하는 것도 가능하다.
상기한 설명에서는 제어 파일에 의해 태스크마다 제어 레벨을 설정한 예를 나타냈지만, 예를 들면 각 프로세서의 OS 서비스부마다 시큐어리티 기능의 고저를 설정하고, 시큐어리티를 완전히 체크하지 않는 최저의 레벨부터 모든 컨텐츠(요구)을 체크하는 최고 레벨까지의 권한을 OS 서비스부에 설정하는 것도 가능하다.
OS 서비스부 이외에 병렬 처리부(40P0 내지 40Pn)에 대해 시큐어리티 기능을 마련하고, 제어 파일에 각 병렬 처리부(40P0 내지 40Pn)마다 생성가능한 태스크의 종류를 제한하는 구성으로 하는 것도 가능하다.
또한, 상기한 실시예에서는, 제 1예의 병렬 처리 시스템에 대해 본 발명의 시큐어리티 관리 시스템을 적용한 경우를 나타냈지만, 제 2예 이하의 병렬 처리 시스템에 본 발명의 시큐어리티 시스템을 적용할 수 있음은 명백하다.
제 2예나 제 3예의 병렬 처리 시스템에 본 발명을 적용함으로써, 각 프로세서의 프로세스간 통신부에 대해 시큐어리티 기능을 마련하고, 각 프로세스간 통신부마다, 실행할 수 있는 프로세스간 통신의 종류를 제한하는 구성으로 할 수도 있다.
프로세서의 전원 상태를 관리하여 싱글 프로세서용 OS에 대해 전원 상태의 변경 요구를 행하는 부, 또는 싱글 프로세서용 OS에 대해 동작 클록의 가변 요구를 행하는 부를 구비하는 경우에, 해당 부로부터의 전원의 제어 요구나 동작 클록의 가변 요구에 대해서도 OS 서비스부에 의한 시큐어리티 제어가 가능하다.
또한, 제 1의 실시예는 각 프로세서마다 준비된 제어 파일(2000P0 내지 Pn)을 판독하고 그 제어 파일의 시큐어리티 컨텐츠에 의거하여 각 OS 서비스부가 시큐어리티 보호를 행하는 구성을 나타냈지만, 외부 기억 장치(93)에 저장하는 제어 파일을 적절히 변경 가능하게 하고, 제어 파일이 변경될 때마다 OS 서비스부가 재판독을 행하도록 함으로써 동적으로 시큐어리티 컨텐츠를 변경할 수 있다.
상기 설명에서는, OS 서비스부(1500P0 내지 1500Pn)가 제어 파일을 판독하고, 또는 미리 OS 서비스부(1500P0 내지 1500Pn)에 시큐어리티 컨텐츠를 조립된 예를 나타냈지만, 각 프로세서(P0 내지 Pn)의 OS 서비스부(1500P0 내지 1500Pn) 그 자체의 기능에 관해, 각 OS 서비스부마다 제한을 마련함에 의해, 각 프로세서(P0 내지 Pn)상에서 동작하는 태스크로부터의 요구를 제어하도록 구성하는 것도 가능하다. 그 결과, 상기한 경우와 같은 효과를 얻을 수 있다.
예를 들면, 소정의 프로세서(Pn)의 OS 서비스부(1500Pn)의 기능에 관해 파일에의 기록을 제한하는 것으로 하면, 프로세서(Pn)상에서 동작하는 태스크로부터의 파일에의 기록 요구는 금지되게 된다. 이와 같이, 프로세서마다 OS 서비스부의 기능을 제한함에 의해, 프로세서마다의 시큐어리티 효과를 실현할 수 있다.
다음에, 병렬 처리 시스템에 적용되는 시큐어리티 관리 시스템의 제 2의 실시예에 관해, 도 35를 참조하여 설명한다.
여기서는, 제 2예 및 제 3예로서 도 12 및 도 17에 도시한 병렬 처리 시스템에 대해 본 발명의 시큐어리티 관리 시스템을 적용한 제 2의 실시예에 관해 설명한다.
본 실시예는 각 OS에 있어서의 시큐어리티 레벨을 가변으로 함에 의해, 각 프로세서상에서 동작하는 프로세스에 의한 서비스를 적절하게 보호하는 구성으로 되어 있다.
제 2의 실시예에 따른 시큐어리티 관리 시스템을 도시한 도 35에서는 제 2예로서 도 12에 도시한 병렬 처리 시스템에 본 발명을 적용한 구성으로 되어 있고, 도 12와 같은 구성에 관해서는 같은 부호를 붙이고 설명을 생략한다.
제 2의 실시예에 따른 시큐어리티 관리 시스템에서는 각 프로세서(P0 내지 Pn)에 마련되는 싱글 프로세서용 OS를 확장함에 의해, 시큐어리티 확장 기능을 갖는 싱글 프로세서용 OS(3000P0 내지 3000Pn)를 구비하고 있다. 이 싱글 프로세서용 OS(3000P0 내지 3000Pn)에는, 시큐어리티 기능을 확장하기 위한 시큐어리티 확장부(3100P0 내지 3100Pn)가 모듈로서 조립되어 있다.
싱글 프로세서용 OS(3000Pn)는 시스템 콜 내에서 시큐어리티 보호가 필요한처리에 있어서, 시큐어리티 확장부(3100Pn)에 대해 시큐어리티 컨텐츠의 체크를 요구하기 위한 기능을 갖고 있다.
본 실시예에 있어서, 외부 기억 장치(93)에 저장되는 제어 파일(2000P0 내지 2000Pn)의 시큐어리티 컨텐츠의 설정예를 도 36에 도시한다. 도 36의 제어 파일(2000P0 내지 2000Pn)에서는 각 프로세서(P0, P1 내지 Pn)상에서 실행되는 프로세스에 관한 이하와 같은 시큐어리티 컨텐츠가 정의되어 있다. 이들 제어 파일(2000P0 내지 2000Pn)에서 설정되는 시큐리티 컨텐츠는 각각 같은 컨텐츠여도 좋고, 서로 다른 컨텐츠라도 좋다.
각 프로세서(P0, P1 내지 Pn)상에서 실행되는 프로세스마다의 제어 레벨에 관해, 프로세스(A, B, C)가 Level(0), 프로세스(D, F)가 Level(1), 그 밖의 프로세스가 Level(2)로 설정되어 있다.
각 제어 레벨마다의 액세스 제어 컨텐츠에 관해, Level(0)이 모든 액세스가 가능, Level(1)이 다른 프로세스 생성의 시스템 콜 금지, Level(2)가 I/O에 관한 시스템 콜 금지인 것이 설정되어 있다.
또한, 제어 레벨마다의 양적인 제한 컨텐츠에 관해서는, Level(0)이 표준적인 제한, Level(1)의 판독 파일이 한개까지, Level(2)가 세마포어가 2개까지 사용 가능한 것이 설정되어 있다.
여기서, 제 2의 실시예에 따른 시큐어리티 관리 시스템의 동작에 관해, 도 37을 참조하여 각 스텝에 대해 설명한다.
우선, 외부 기억 장치(93)에 저장되는 제어 파일(2000P1 내지 Pn)이 프로세서(P0 내지 Pn)에 판독되는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 시큐어리티 확장부(3100Pn)가 싱글 프로세서용 OS(3000Pn)에 대해 외부 기억 장치(93)에 저장되는 제어 파일(2000Pn)의 판독 요구를 발행한다.
(2) 프로세서(Pn)의 싱글 프로세서용 OS(3000Pn)는 외부 기억 장치(93)를 액세스하고 제어 파일(2000Pn)의 판독을 요구한다.
(3) 싱글 프로세서용 OS(3000Pn)는 외부 기억 장치(93)로부터 제어 파일(2000Pn)을 수신한다.
(4) 프로세서(Pn)의 싱글 프로세서용 OS(3000Pn)는 자체 프로세서의 시큐어리티 확장부(3100Pn)에 대해, 취득한 제어 파일(2000Pn)의 시큐어리티 컨텐츠를 인도한다. 그 결과, 시큐어리티 확장부(3100Pn)는 수취한 제어 파일(2000Pn)의 시큐어리티 컨텐츠에 의거하여, 시큐어리티 기능을 실행한다.
제어 파일(2000Pn)의 컨텐츠가 한번의 판독 요구이고 전부 판독할 수 없는 경우에는, 필요 사항(예를 들면, 도 36에서, 각 프로세스의 제어 레벨)만을 판독 요구하고, 그 밖의 사항에 관해서는 프로세스로부터의 처리 요구가 있을때마다 순차 판독을 행할 수 있다.
상기한 바와 같이 외부 기억 장치(93)로부터 제어 파일의 판독을 행하는 일 없이, 제어 파일(2000P0 내지 2000Pn)에 설정되는 시큐리티 컨텐츠를 미리 각 프로세서(P0 내지 Pn)의 시큐어리티 확장부(3100P0 내지 3100Pn)에 조립하는 것도 가능하다.
여기서, 제 2의 실시예에 따른 시큐어리티 관리 시스템의 동작으로서, 상기한 바와 같이 판독된 제어 파일(2000P1)의 시큐어리티 컨텐츠에 의거하여 프로세스로부터의 요구가 제어되는 경우의 동작에 관해 스텝별로 설명한다.
우선, 프로세서(Pn)상의 어느 프로세스(PP-n)로부터의 요구가 제어 파일(2000P1)에서 설정된 시큐어리티 기능에 의해 제한되는 경우에 관해 도 38을 이용하여 설명한다.
(1) 프로세서(Pn)상의 어느 프로세스(PP-n)가 프로세서(Pn)의 싱글 프로세서용 OS(3000Pn)에 대해 시스템 콜을 요구한다.
(2) 싱글 프로세서용 OS(3000Pn)는 시스템 콜 내에서 시큐어리티 보호가 필요한 처리부분까지 처리가 진행되면, 시큐어리티 확장부(3100Pn)에 대해 시큐어리티의 체크를 요구한다.
(3) 프로세서(Pn)상의 시큐어리티 확장부(3100Pn)는 미리 취득한 제어 파일(2000Pn)의 시큐어리티 컨텐츠에 의거하여, 해당 시큐어리티 콜을 실행하여도 좋은지의 여부를 판단하고 그 판단 결과를 싱글 프로세서용 OS(3000Pn)에 통지한다. 예를 들면, 시큐어리티 컨텐츠에 의해 실행 불가라고 판단된 경우에는, 싱글 프로세서용 OS(3000Pn)에 대해 에러를 통지한다.
(4) 에러가 통지된 싱글 프로세서용 OS(3000Pn)는 요구원의 프로세서(PP-n)에 에러를 통지한다.
스텝(3)에서 시큐어리티 컨텐츠에 의해 시스템 콜의 실행이 허가된 경우에는, 그 취지가 싱글 프로세서용 OS(3000Pn)에 통지되고 요구된 시스템 콜을 처리한다.
예를 들면, 프로세서(Pn)상의 어느 프로세스(PP-n)의 제어 레벨이 Level(2)이고 해당 프로세스(PP-n)로부터 I/O에 관한 시스템 콜의 요구가 있은 경우, 시큐어리티 확장부(3100Pn)가 도 36에 도시한 제어 파일의 시큐어리티 컨텐츠에 의거하여, 프로세스(PP-n)로부터의 요구가 실행 불가인 것을 판별하고, 프로세스(PP-n)에 대해 에러를 통지한다.
본 실시예는 상술한 제 1의 실시예와 조합시켜서 구성하는 것도 가능하다. 이와 같은 구성으로 함으로써 보다 강고한 시큐어리티 환경이 확보된다.
각 프로세서의 시큐어리티 확장부에 의한 시큐어리티 레벨에 관해서는, 제어 파일의 시큐어리티 컨텐츠를 바꿈으로써 프로세서마다 다르도록 설정할 수 있다. 예를 들면, 어느 프로세서에서는 강고한 시큐어리티 레벨으로 하고, 다른 프로세서에서는 느슨한 시큐어리티 레벨으로 할 수 있다.
상기 실시예에 있어서, 프로세서(P0)의 시큐어리티 확장부(3100P0)에서의 시큐어리티 컨텐츠를 낮게 설정함으로써, 프로세서(P0)상에서 실행되는 기존의 어플리케이션(프로세스)의 성능이 제한되지 않도록 구성하는 것도 가능하다.
이 실시예에서도, 외부 기억 장치(93)에 저장하는 제어 파일을 적절히 변경 가능하게 하고, 제어 파일이 변경될 때마다 시큐어리티 확장부가 재판독을 행하도록 함으로써 동적으로 시큐어리티 컨텐츠를 변경할 수 있다.
상기 설명에서는, 시큐어리티 확장부(3100P0 내지 3100Pn)가 제어 파일을 판독하거나 또는 미리 시큐어리티 확장부(3100P0 내지 3100Pn)에 시큐어리티 컨텐츠를 조립된 예를 나타냈지만, 각 프로세서(P0 내지 Pn)의 시큐어리티 확장부(3100P0 내지 3100Pn) 그 자체의 기능에 관해, 각 시큐어리티 확장부마다 제한을 마련함에 의해, 각 프로세서(P0 내지 Pn)상에서 동작하는 태스크로부터의 요구를 제어하도록 구성하는 것도 가능하다. 그 결과, 프로세서마다 시큐어리티 레벨이 다른 제어를 할 수 있고, 상기한 경우와 같은 효과를 얻을 수 있다.
다음에, 병렬 처리 시스템에 적용되는 시큐어리티 관리 시스템의 제 3의 실시예에 관해, 도 39를 참조하여 설명한다.
여기서는, 제 2예 및 제 3예로서 도 12 및 도 17에 도시한 병렬 처리 시스템에 대해 본 발명의 시큐어리티 관리 시스템을 적용한 제 3의 실시예에 관해 설명한다.
본 실시예는, 어플리케이션의 실행 환경 레벨에서 시큐어리티 레벨을 가변으로 함에 의해, 각 프로세서상에서 동작하는 프로세스에 의한 서비스를 적절하게 보호하는 구성으로 되어 있다.
제 3의 실시예에 따른 시큐어리티 관리 시스템을 나타내는 도 39에서는, 제 2예로서 도 12에 도시한 병렬 처리 시스템에 본 발명을 적용한 구성으로 되어 있고, 도 12와 같은 구성에 관해서는 같은 부호를 붙이고 설명을 생략한다.
이 제 3의 실시예에 따른 시큐어리티 관리 시스템에서는, 각 프로세서(P0 내지 Pn)에, 각 프로세서(P0 내지 Pn)상에서 프로세스로서 실행되는 Java(R) 등의 어플리케이션마다의 실행 환경을 제공함과(Java(R) 등의 어플리케이션에 대해 기능을 제공한다) 함께, 시큐어리티 레벨을 관리한 어플리케이션 제어부(예를 들면,Java(R) 가상 머신)(4000P0 내지 Pn)가 마련되어 있다.
본 실시예에서 외부 기억 장치(93)에 저장되는 제어 파일(2000P0 내지 2000Pn)의 시큐어리티 컨텐츠의 설정예가 도 40에 도시된다. 도 40의 제어 파일에서는, 각 프로세서(P0, P1 내지 Pn)상에서 실행되는 어플리케이션으로서의 프로세스에 관한 이하와 같은 시큐어리티 컨텐츠가 정의되어 있다. 이들 제어 파일(2000P0 내지 2000Pn)에서 설정되는 시큐어리티 컨텐츠는 각각 같은 컨텐츠라도 좋고, 서로 다른 컨텐츠라도 좋다.
각 프로세서(P0, P1 내지 Pn)상에서 실행된 프로세스마다의 제어 레벨에 관해, 프로세스(A, B, C)가 Level(0), 프로세서(D, F)가 Level(1), 그 밖의 프로세스가 Level(2)로 설정되어 있다.
각 제어 레벨마다의 액세스 제어 컨텐츠에 관해, Level(0)이 "모든 액세스가 가능", Level(1)이 "다른 프로세스 생성의 시스템 콜 금지", Level(2)가 "I/0에 관한 시스템 콜 금지"라고 설정되어 있다.
또한, 제어 레벨마다의 양적인 제한 컨텐츠에 관해서는, Level(0)이 "표준적인 제한", Level(1)의 "판독 파일이 한개까지", Level(2)가 "세마포어가 2까지 사용 가능"이라고 설정되어 있다.
또한, 어플리케이션으로서의 프로세스가 사용할 수 있는 라이브러리의 제한에 관해, Level(0)이 모든 라이브러리, Level(1)이 표준의 라이브러리와 음악 기능의 라이브러리, Level(2)가 표준의 라이브러리인 것이 설정되어 있다.
여기서, 제 3의 실시예에 따른 시큐어리티 관리 시스템의 동작에 관해 도 41을 참조하여 스텝별로 설명한다.
우선, 외부 기억 장치(93)에 저장되는 제어 파일(2000P1 내지 Pn)이 프로세서(P0 내지 Pn)에 판독되는 경우의 동작을 설명한다.
(1) 프로세서(Pn)상의 어플리케이션 제어부(4000Pn)가 싱글 프로세서용 OS(3000Pn)에 대해 제어 파일(2000Pn)의 판독 요구를 낸다.
(2) 프로세서(Pn)의 싱글 프로세서용 OS(3000Pn)는 외부 기억 장치(93)에 액세스하고, 제어 파일(2000Pn)의 판독을 지시한다.
(3) 싱글 프로세서용 OS(3000Pn)는 외부 기억 장치(93)로부터 제어 파일(2000Pn)을 수취한다.
(4) 그리고, 프로세서(Pn)의 싱글 프로세서용 OS(3000Pn)는 어플리케이션 제어부(4000Pn)에 취득한 제어 파일(200Pn)을 인도하고, 어플리케이션 제어부(4000Pn)는 그 제어 파일의 시큐어리티 컨텐츠에 따라 자체 프로세서상에서 실행하는 프로세스의 시큐어리티를 관리한다.
또한, 제어 파일(2000Pn)의 컨텐츠가 한번의 판독 요구로 전부 판독할 수 없는 경우에는, 필요 사항(예를 들면, 도 41에 있어서, 각 프로세스의 제어 레벨)만을 판독 요구하고, 그 밖의 사항에 관해서는 프로세스로부터의 처리 요구가 있을때마다 순차 판독을 행하도록 하여도 좋다.
또한, 상기한 바와 같이 외부 기억 장치(93)로부터 제어 파일의 판독을 행하지 않고, 제어 파일(2000P0 내지 2000Pn)에 설정되는 시큐어리티 컨텐츠를 미리 각 프로세서(P0 내지 Pn)의 어플리케이션 제어부(4000P0 내지 4000Pn)에 조립하여 두도록 하여도 좋다.
제 3의 실시예에 따른 시큐어리티 관리 시스템의 동작으로서, 상기한 바와 같이 판독된 제어 파일(2000P1)의 시큐어리티 컨텐츠에 의거하여 프로세스로부터의 요구가 제어되는 경우의 동작에 관해 스텝별로 설명한다.
우선, 프로세서(Pn)상의 어느 프로세스(PP-n)(예를 들면, Java(R) 어플리케이션)로부터의 요구가 제어 파일(2000P1)에서 설정되는 시큐어리티 기능에 의해 제한되는 경우에 관해, 도 42를 이용하여 설명한다.
(1) 프로세서(Pn)상의 프로세스(PP-n)(Java(R) 어플리케이션)가, 프로세서(Pn)의 어플리케이션 제어부(4000Pn)에 대해 서비스 함수를 요구한다.
(2) 요구를 받은 어플리케이션 제어부(4000Pn)는 취득한 제어 파일(2000Pn)에 의거하여, 요구된 서비스 함수를 실행하여도 좋은지의 여부를 판단하고, 실행 불가라면 에러를 요구원의 프로세스(PP-n)에 통지하고, 실행 가능하면 해당 서비스 함수의 실행 결과를 요구원의 프로세스(PP-n)에 통지한다.
예를 들면, 프로세서(Pn)상의 어느 프로세스(PP-n)의 제어 레벨이 Level(2)이고, 해당 프로세스(PP-n)로부터 음악 기능 라이브러리를 사용하는 서비스 함수가 요구된 경우, 어플리케이션 제어부(4000Pn)는 도 40에 도시한 제어 파일의 시큐어리티 컨텐츠에 의거하여, 프로세스(PP-n)로부터의 요구가 실행 불가인 것을 판별하고, 프로세서(PP-n)에 대해 에러를 통지한다.
또한, 본 실시예는 상술한 제 1의 실시예, 제 2의 실시예와 조합시켜서 구성하는 것도 가능하다. 이와 같은 구성으로 함으로써 보다 강고한 시큐어리티 환경이확보된다.
상기한 설명에서는, 제어 파일에 의해 태스크마다 제어 레벨을 설정한 예를 나타냈지만, 예를 들면 어플리케이션 제어부(4000P0 내지 4000Pn)마다 시큐어리티 기능의 고저를 설정하고, 시큐어리티를 완전히 체크하지 않는 최저의 레벨부터 모든 컨텐츠(요구)을 체크하는 최고 레벨까지의 권한을 어플리케이션 제어부에 설정하는 것도 가능하다.
더하여, 상기 실시예에 있어서, 프로세서(P0)의 어플리케이션 제어부(4000P0)에 있어서의 시큐어리티 컨텐츠를 낮게 설정함으로써, 프로세서(P0)상에서 실행되는 기존의 어플리케이션(프로세스)의 성능이 제한되지 않도록 구성하는 것도 가능하다.
이 실시예에서도, 외부 기억 장치(93)에 저장하는 제어 파일을 적절히 변경 가능하게 하고, 제어 파일이 변경될때마다 어플리케이션 제어부가 재판독을 행하도록 함으로써, 동적으로 시큐어리티 컨텐츠를 변경할 수 있다.
상기 설명에서는, 어플리케이션 제어부(4000P0 내지 4000Pn)가 제어 파일을 판독하고, 또는 미리 어플리케이션 제어부(4000P0 내지 4000Pn)에 시큐어리티 컨텐츠를 조립하고, 그 시큐어리티 컨텐츠에 의거하여 제어를 행하는 예를 나타냈지만, 그 밖에 프로세스(예를 들면, Java(R) 어플리케이션)의 실행을 제어하는 방법을, 제 4의 실시 예의 변형으로서 이하에 기술한다.
이 제 4의 실시 예의 구성에 관해서는, 제 3의 실시예와 같으며, 시스템상에서 동작하는 각 프로세스(예를 들면, Java(R) 어플리케이션)와, 어플리케이션 제어부(4000P0 내지 4000Pn)의 기능이 제 3의 실시예와 상위하다.
제 4의 실시예에서는, 각 프로세서(P0 내지 Pn)에 마련하는 프로세스(예를 들면, Java(R) 어플리케이션)의 실행 환경을 제공하는 어플리케이션 제어부(예를 들면, Java(R) 가상 머신)(4000P0 내지 4000Pn)에 관해, 그것들이 제공하는 기능에 서로 다른 제한을 마련하고, 요구 기능이 다른 프로세스(예를 들면, Java(R) 어플리케이션)를 실행시키는 경우, 해당 프로세스(예를 들면, Java(R) 어플리케이션)를 관리하기 위한 매니저로서의 프로세스가 각 프로세서의 어플리케이션 제어부(4000P0 내지 4000Pn)가 제공하는 기능에 응하여, 해당 프로세스(예를 들면, Java(R) 어플리케이션)를 각 프로세서에 배분하는 것이다. 그 결과, 요구 기능이 다른 복수의 프로세스(예를 들면, Java(R) 어플리케이션)가 해당 요구 기능을 제공하는 각 프로세서에 배당되어 동작하게 되고, 성능 저하를 효과적에 방지할 수 있다.
어플리케이션 제어부(예를 들면, Java(R) 가상 머신)의 기능에 제한을 마련하는 방법으로서는, 예를 들면 각 프로세서상의 어플리케이션 제어부(예를 들면, Java(R) 가상 머신)마다 그들의 기능을 제한하는 다른 프로파일을 조립하는 방법, 또는 로드 가능한 클래스 파일 내지 이용 가능한 라이브러리를 제한하여 둔다는 방법이 생각된다.
또한, 상기 각 실시 예의 병렬 처리 시스템은 병렬 처리부, OS 서비스부, 제어 처리 중계부, 프록시부, 프로세스간 통신부의 각 기능을 갖는 병렬 처리 프로그램에 의해 실현할 수 있고, 시큐어리티 관리 시스템에 관해서도, OS 서비스부, 어플리케이션 제어부의 기능을 갖는 시큐어리티 관리 프로그램에 의해 실현할 수 있다. 이들의 프로그램은 자기 디스크, 반도체 메모리 그 밖의 기록 매체에 저장되고, 그 기록 매체로부터 컴퓨터 처리 장치에 로드되고, 컴퓨터 처리 장치의 동작을 제어함에 의해, 상술한 각 기능을 실현한다.
이상 바람직한 실시예 및 구체적인 예를 들어 본 발명을 설명하였지만, 본 발명은 반드시 상기 실시예 및 구체적인 예로 한정되는 것은 아니고, 그 기술적 사상의 범위 내에서 다양하게 변형하여 실시할 수 있다.
이상 설명한 바와 같이 본 발명에 의하면, 멀티 프로세서상에서 싱글 프로세서용 OS와 기존의 어플리케이션을 그것들에 변경을 가하는 일 없이 동작시키고, 그 기존의 어플리케이션에 대해 멀티 프로세서에 의한 병렬 처리를 실현할 수 있도록 한 싱글 프로세서용 OS에 의한 병렬 처리 시스템에 있어서, 소프트웨어적으로 각 프로세서마다 개별적으로 시큐어리티의 제어를 행할 수가 있음과 함께, 프로세서의 성능을 저하시키는 일이 없는 시큐어리티 관리 시스템을 실현할 수 있다.
또한, 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부, 싱글 프로세서용 OS에 조립된 시큐어리티 확장부, 처리 단위에 대한 시큐어리티 제어를 행하기 위한 어플리케이션 제어부를 선택적에 마련함에 의해, 유저 레벨, OS 레벨 또는 어플리케이션 실행 환경 레벨에서의 시큐어리티 제어를 실현할 수 있도록 된다.
싱글 프로세서 구성에 있어서의 유저 레벨 라이브러리에 의한 시큐어리티 관리에서는, 싱글 프로세서용 OS의 변경이 필요하게 되지만, 본 발명에 의하면, OS의 변경을 하지 않고 유저 레벨에서의 시큐어리티 관리를 실현할 수 있다.
또한, 지금까지의 OS 레벨에서의 시큐어리티 관리에서는, 다른 시큐어리티 레벨의 실행을 할 때에, 가장 엄격한 레벨에서의 동작이 요구되기 때문에, 시스템 성능이 저하되어 버리게 되지만, 본 발명에 의하면, 프로세서마다의 시큐어리티 확장부에 의해 시큐어리티 레벨을 프로세서마다 설정할 수 있기 때문에, 시스템 성능의 저하를 해소할 수 있다.
지금까지의 Java(R) 어플리 등의 어플리케이션 실행 환경에 의한 시큐어리티 관리에서는, 시큐어리티 레벨이 다른 복수의 어플리케이션을 동작시킬 필요 때문에, 시스템 성능이 저하되고, 또한 요구되는 주파수가 높아지고 소비 전력량이 커져 버리지만, 본 발명에 의하면, 프로세서마다 또는 어플리케이션마다 시큐어리티를 관리하기 때문에, 그러한 부적당함을 해소할 수 있다.

Claims (31)

  1. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 상기 처리 단위로부터의 처리 요구에 관해 상기 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  2. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  3. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부가 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  4. 제 1항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 미리 상기 OS 서비스부에 조립하고, 상기 OS 서비스부가 상기 처리 요구에 응하여 상기 제어파일의 시큐어리티 컨텐츠에 따라 상기 처리 단위로부터 처리 요구에 대해 시큐어리티 보호를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  5. 제 1항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 제어 파일에 설정하고,
    상기 OS 서비스부가 상기 처리 단위로부터의 처리 요구에 응하여 상기 제어 파일의 시큐어리티 컨텐츠에 따라 상기 처리 요구에 대한 시큐어리티 보호를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  6. 제 5항에 있어서,
    상기 각 프로세서의 레벨이 다른 시큐어리티 컨텐츠를 갖는 상기 제어 파일을 상기 병렬 시스템상의 외부 기억 장치에 저장된 상기 각 프로세서마다 설정하고,
    상기 각 프로세서의 상기 OS 서비스부가 상기 외부 기억 장치로부터 대응하는 상기 제어 파일을 각각 판독하고, 상기 처리 단위로부터의 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  7. 제 6항에 있어서,
    상기 외부 기억 장치에 저장된 상기 제어 파일이 변경된 경우에, 대응하는 상기 프로세서의 상기 OS 서비스부가 변경된 상기 제어 파일을 재판독하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  8. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부가 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  9. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부가 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  10. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서,
    상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부가 상기 처리 요구에 응하여 처리 단위로부터 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  11. 제 8항에 있어서,
    상기 시큐어리티 확장부는 상기 싱글 프로세서용 OS에 모듈로서 조립되며, 상기 처리 단위로부터의 상기 싱글 프로세서용 OS에 대하는 시스템 콜의 요구에 대해 상기 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  12. 제 8항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 미리 상기 시큐어리티 확장부에 조립하고, 상기 시큐어리티 확장부가 상기 처리 요구에 응하여 상기 제어 파일의 시큐어리티 컨텐츠에 따라 상기 처리 단위로부터 처리 요구에 대해 시큐어리티 보호를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  13. 제 8항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 제어 파일에 설정하고,
    상기 시큐어리티 확장부는 상기 처리 요구에 응하여 상기 제어 파일의 시큐어리티 컨텐츠에 따라 상기 처리 단위로부터 처리 요구에 대해 시큐어리티 보호를행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  14. 제 13항에 있어서,
    상기 각 프로세서마다 레벨이 다른 시큐어리티 컨텐츠를 갖는 상기 제어 파일을 상기 병렬 시스템상의 외부 기억 장치에 저장하고,
    상기 각 프로세서의 상기 시큐어리티 확장부가 상기 외부 기억 장치로부터 대응하는 상기 제어 파일을 각각 판독하여, 상기 처리 단위로부터의 요구에 응하여 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  15. 제 14항에 있어서,
    상기 외부 기억 장치에 저장된 상기 제어 파일이 변경되면, 대응하는 상기 프로세서의 상기 시큐어리티 확장부가 변경된 상기 제어 파일을 재판독하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  16. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 기능를 제어하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  17. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 기능를제어하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  18. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서,
    상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  19. 제 16항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 미리 상기 어플리케이션 제어부에 조립하고, 상기 어플리케이션 제어부는 상기 시큐어리티 컨텐츠에 따라상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 보호를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  20. 제 16항에 있어서,
    상기 프로세서 또는 상기 처리 단위마다의 시큐어리티 컨텐츠를 제어 파일에 설정하고,
    상기 어플리케이션 제어부는 상기 처리 요구에 응하여 상기 제어 파일의 시큐어리티 컨텐츠에 따라 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 보호를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  21. 제 20항에 있어서,
    상기 각 프로세서마다 레벨이 다른 시큐어리티 컨텐츠를 갖는 상기 제어 파일을 상기 병렬 시스템상의 외부 기억 장치에 저장하고,
    상기 각 프로세서의 상기 어플리케이션 제어부는 상기 외부 기억 장치로부터 대응하는 상기 제어 파일을 각각 판독하고, 상기 처리 단위로부터의 요구에 응하여 시큐어리티 기능을 제어하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  22. 제 21항에 있어서,
    상기 외부 기억 장치에 저장된 상기 제어 파일이 변경되면, 대응하는 상기 프로세서의 상기 어플리케이션 제어부는 변경된 상기 제어 파일을 재판독하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  23. 제 16항에 있어서,
    상기 처리 단위는 Java(R) 어플리케이션인 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  24. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부, 상기 처리 단위에 대한 시큐어리티 제어를 행하기 위한 어플리케이션 제어부 중 적어도 하나가 상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  25. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부, 상기 싱글 프로세서용 OS에 조립된 시큐어리티 확장부, 상기 처리 단위에 대한 시큐어리티 제어를 행하기 위한 어플리케이션 제어부 중 적어도 하나가 상기 처리 요구에 응하여 상기 처리 단위로부터의 처리 요구에 대한 시큐어리티 제어를 행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  26. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부의 기능에 관해 상기 프로세서마다 제한을 마련하고, 상기 각 프로세서상에서 동작하는 상기 처리 단위로부터의 처리 요구를 제한하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  27. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    상기 처리 단위에 대해 상기 싱글 프로세서용 OS의 서비스를 제공하는 OS 서비스부의 기능에 관해 상기 프로세서마다 제한을 마련하고, 상기 각 프로세서상에서 동작하는 상기 처리 단위로부터의 처리 요구를 제한하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  28. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    상기 멀티 프로세서를 논리적으로 제 1의 프로세서측과 제 2의 프로세서측의 2그룹으로 나누고,
    상기 제 1의 프로세서측의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 상기 제 2의 프로세서측의 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    요구 기능이 다른 처리 단위를 실행시킬 때, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능에 따라 해당 처리 단위를 실행하는 프로세서를 선택하고 할당하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  29. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 어플리케이션을 동작시키고,
    하나의 프로세서상에서 동작하는 상기 어플리케이션 내에서 병렬화가 가능한 처리 단위를 다른 프로세서상에서 새로운 처리 단위로서 제어하여, 상기 어플리케이션에 대해 상기 멀티 프로세서에 의한 병렬 처리를 행하는 병렬 처리 시스템상에서,
    요구 기능이 다른 처리 단위를 실행시킬 때, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능에 따라 해당 처리 단위를 실행하는 프로세서를 선택하고 할당하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  30. 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템에 있어서,
    멀티 프로세서상에서 싱글 프로세서용 OS 및 태스크로서의 처리 단위를 동작시키는 병렬 처리 시스템상에서,
    요구 기능이 다른 처리 단위를 실행시킬 때, 상기 처리 단위에 대한 실행 환경을 제공하는 어플리케이션 제어부가 제공하는 기능따라 해당 처리 단위를 실행하는 프로세서를 선택하고 할당하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
  31. 제 28항에 있어서,
    상기 처리 단위는 Java(R) 어플리케이션이고, 상기 각 프로세서의 어플리케이션 제어부로서의 Java(R) 가상 머신마다 상기 Java(R) 어플리케이션의 기능을 제한하는 프로파일을 조립하거나 로드 가능한 클래스 파일을 제한함으로써 요구 기능이 다른 상기 Java(R) 어플리케이션을 실행하는 것을 특징으로 하는 싱글 프로세서용 OS에 의한 병렬 처리 시스템에서의 시큐어리티 관리 시스템.
KR1020040055408A 2003-07-18 2004-07-16 병렬 처리 시스템 KR100622189B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00198889 2003-07-18
JP2003198889A JP4062441B2 (ja) 2003-07-18 2003-07-18 並列処理システム及び並列処理プログラム

Publications (2)

Publication Number Publication Date
KR20050009686A true KR20050009686A (ko) 2005-01-25
KR100622189B1 KR100622189B1 (ko) 2006-09-13

Family

ID=32866805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040055408A KR100622189B1 (ko) 2003-07-18 2004-07-16 병렬 처리 시스템

Country Status (5)

Country Link
US (1) US7516323B2 (ko)
JP (1) JP4062441B2 (ko)
KR (1) KR100622189B1 (ko)
CN (1) CN100565494C (ko)
GB (1) GB2404050B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101394225B1 (ko) * 2012-06-22 2014-05-14 인텔렉추얼디스커버리 주식회사 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US7698552B2 (en) 2004-06-03 2010-04-13 Intel Corporation Launching a secure kernel in a multiprocessor system
KR101123742B1 (ko) * 2005-12-23 2012-03-16 삼성전자주식회사 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
US8856522B2 (en) 2007-02-27 2014-10-07 Rockwell Automation Technologies Security, safety, and redundancy employing controller engine instances
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
JP5627187B2 (ja) * 2009-03-13 2014-11-19 新日鉄住金ソリューションズ株式会社 情報処理装置、情報処理方法及びプログラム
CN102163054A (zh) * 2010-12-30 2011-08-24 上海自动化仪表股份有限公司 Profibus-dp主站通信设备及其微处理器和asic芯片共享数据的方法
CN104025045B (zh) 2011-11-04 2017-07-04 学校法人早稻田大学 处理器系统及加速器
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9720989B2 (en) 2013-11-11 2017-08-01 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
US9794135B2 (en) 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9858322B2 (en) 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US9276959B2 (en) * 2013-11-11 2016-03-01 Amazon Technologies, Inc. Client-configurable security options for data streams
US9639589B1 (en) 2013-12-20 2017-05-02 Amazon Technologies, Inc. Chained replication techniques for large-scale data streams
JP6231899B2 (ja) 2014-02-06 2017-11-15 ルネサスエレクトロニクス株式会社 半導体装置、プロセッサシステム、及びその制御方法
US20170084373A1 (en) * 2015-09-21 2017-03-23 Qualcomm Incorporated Programmable magnet orientations in a magnetic array
US10133496B1 (en) * 2016-06-15 2018-11-20 Amazon Technologies, Inc. Bindable state maintaining components
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
US10798140B1 (en) 2018-07-16 2020-10-06 Amazon Technologies, Inc. Stream data record reads using push-mode persistent connections
US10855754B1 (en) 2018-07-16 2020-12-01 Amazon Technologies, Inc. Isolated read channel categories at streaming data service
US10768830B1 (en) 2018-07-16 2020-09-08 Amazon Technologies, Inc. Streaming data service with isolated read channels
US11070600B1 (en) 2018-07-16 2021-07-20 Amazon Technologies, Inc. Optimization techniques to support lagging readers at streaming data service
US10956246B1 (en) 2018-07-16 2021-03-23 Amazon Technologies, Inc. Isolated read channel management interfaces at streaming data service
US11075984B1 (en) 2018-07-16 2021-07-27 Amazon Technologies, Inc. Workload management at streaming data service supporting persistent connections for reads

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5764859A (en) 1980-10-08 1982-04-20 Hitachi Ltd Multi-processor system
CA1244142A (en) * 1985-06-17 1988-11-01 William E. Hammer Distributed data management mechanism
DE69031233T2 (de) 1989-02-24 1997-12-04 At & T Corp Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme
US5142684A (en) 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
JP2769367B2 (ja) 1989-09-28 1998-06-25 株式会社日立製作所 マルチプロセッサスケジューリング方法
JP2831083B2 (ja) 1990-03-08 1998-12-02 株式会社日立製作所 マルチプロセッサシステムおよび割り込み制御装置
EP0674283A3 (en) 1994-03-24 1996-03-27 At & T Global Inf Solution Order and download computerized repository resources.
JPH09237193A (ja) * 1996-02-29 1997-09-09 Mitsubishi Electric Corp 並列計算機における動的負荷分散方法
US5872972A (en) * 1996-07-05 1999-02-16 Ncr Corporation Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited
JP2002505477A (ja) 1998-02-26 2002-02-19 サンマイクロシステムズ インコーポレーテッド スタックベースのセキュリティ要求
US6581089B1 (en) 1998-04-16 2003-06-17 Sony Corporation Parallel processing apparatus and method of the same
JPH11306038A (ja) * 1998-04-16 1999-11-05 Sony Corp 並列演算処理装置およびその方法
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003058515A (ja) 2001-08-21 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7418703B2 (en) * 2002-03-20 2008-08-26 Nec Corporation Parallel processing system by OS for single processor
JP3969308B2 (ja) * 2002-03-20 2007-09-05 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム
US20040181782A1 (en) * 2003-03-13 2004-09-16 Piotr Findeisen System and method for optimizing memory usage by locating lingering objects
JP4051703B2 (ja) * 2003-03-31 2008-02-27 日本電気株式会社 シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
JP4196333B2 (ja) * 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101394225B1 (ko) * 2012-06-22 2014-05-14 인텔렉추얼디스커버리 주식회사 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법

Also Published As

Publication number Publication date
JP2005038113A (ja) 2005-02-10
US7516323B2 (en) 2009-04-07
US20050015625A1 (en) 2005-01-20
CN100565494C (zh) 2009-12-02
KR100622189B1 (ko) 2006-09-13
GB2404050A (en) 2005-01-19
GB2404050B (en) 2007-01-17
JP4062441B2 (ja) 2008-03-19
GB0415370D0 (en) 2004-08-11
CN1577316A (zh) 2005-02-09

Similar Documents

Publication Publication Date Title
KR100622189B1 (ko) 병렬 처리 시스템
KR100708952B1 (ko) 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법
JP4051703B2 (ja) シングルプロセッサ向けosによる並列処理システム、並列処理プログラム
US8443377B2 (en) Parallel processing system running an OS for single processors and method thereof
US7567985B1 (en) Mechanism for implementing a sparse file system for an operating system partition
KR101177971B1 (ko) 보호 영역 경계들에서의 오브젝트 호출 방법, 시스템 및 장치
KR100958303B1 (ko) 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법
US11386014B2 (en) Method and system for low latency data management
US11966599B2 (en) Method and system for low latency data management
JPH1078882A (ja) ハードウェア資源マネージャ
JP2013516711A (ja) 電子デバイスにおける電力を制御するシステムおよび方法
US7188120B1 (en) System statistics virtualization for operating systems partitions
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
KR20120062854A (ko) 계산기 장치
JP3969308B2 (ja) シングルプロセッサ向けosによる並列処理システム
CN113791898B (zh) 一种基于TrustZone的可信微内核操作系统
GB2434008A (en) Inter-processor communication in a parallel processing system running an OS for single processors
KR19990053525A (ko) 실시간 시스템의 자원 공유 방법

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: 20090824

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee