KR0150775B1 - 밀결합 다중 처리 시스템의 스케줄링 방식 - Google Patents

밀결합 다중 처리 시스템의 스케줄링 방식

Info

Publication number
KR0150775B1
KR0150775B1 KR1019940000478A KR19940000478A KR0150775B1 KR 0150775 B1 KR0150775 B1 KR 0150775B1 KR 1019940000478 A KR1019940000478 A KR 1019940000478A KR 19940000478 A KR19940000478 A KR 19940000478A KR 0150775 B1 KR0150775 B1 KR 0150775B1
Authority
KR
South Korea
Prior art keywords
run queue
local run
central processing
processing unit
local
Prior art date
Application number
KR1019940000478A
Other languages
English (en)
Other versions
KR950024066A (ko
Inventor
송규연
Original Assignee
구자홍
엘지전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구자홍, 엘지전자주식회사 filed Critical 구자홍
Priority to KR1019940000478A priority Critical patent/KR0150775B1/ko
Publication of KR950024066A publication Critical patent/KR950024066A/ko
Application granted granted Critical
Publication of KR0150775B1 publication Critical patent/KR0150775B1/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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Abstract

본 발명은 밀결합 다중 처리 시스템의 스케줄링 방식에 관한 것으로서, 이는 글러벌 런 큐방식을 배제하고 각 중앙처리장치 마다 로컬 런 큐를 가지고 있고 수행해야 할 프로세스를 선택할시 자기 자신의 로컬 런 큐를 검색하여 자기 자신의 로컬 런 큐가 비어 있는 경우에 한해서 원형 형태로 다른 중앙처리장치의 로컬 런 큐를 검색하여 스케줄링에 대한 부하를 감소시키고, 중앙처리장치의 갯수 증가에 따라 시스템의 성능을 선형적으로 증가시키도록 한 것이다.
이와 같은 본 발명은 각각의 중앙처리장치 마다 적어도 하나 이상의 로컬 런 큐를 가지고 수행해야 할 프로세스를 선택할시 그 선택하고자 하는 중앙처리장치 자신의 로컬 런 큐를 검색하여 자기 자신의 로컬 런 큐를 우선적으로 억세스함으로써 달성된다.

Description

밀결합 다중 처리 시스템의 스케줄링 방식
제1도는 종래 밀결합 다중 처리 시스템에서의 글로벌런 큐방식에 대한 구성도.
제2도는 본 발명 밀결합 다중 처리 시스템 구성도.
제3도는 제2도에 의한 로컬 런 큐방식에 대한 구성도.
제4도는 제3도 인접 중앙처리장치에 대한 자료 구성도.
* 도면의 주요부분에 대한 부호의 설명
200∼203 : 입출력 제어보드 204 : 입출력보드
본 발명은 밀결합 다중 처리 시스템에서의 프로세서 스케줄링에 관한 것으로, 좀더 상세하게는 로컬 런 큐(Local Run Queue) 검색 방법을 채택하여 스케줄링에 대한 부하를 감소시키고 아울러 중앙처리장치의 개수 증가에 따라 시스템의 성능을 선형적으로 증가시키도록 하는 밀결합 다중 처리 시스템의 스케줄링 방식에 관한 것이다.
일반적으로 밀결합 다중 처리 시스템은 중앙처리장치의 개수가 2개 이상이면 메모리 보드는 시스템 버스에 공유 연결되어 다수의 중앙처리장치 보드가 공유하는 구조로 이루어져 있다.
그리고, 밀결합 다중 처리 시스템을 운용하기 위한 운용체제는 단일 프로세서용 운용체제와는 다르게 여러개의 중앙처리장치가 동시에 동작하게 해주어야 하며, 공유자원에 대하여 에러(Error)없이 사용할 수 있도록 동시 접근을 배제 하여야 한다.
사용자의 요구를 서비스하기 위해 요청된 작업을 하나의 프로세서 단위로 만들며 전술한 바와 같이, 상기의 밀결합 다중 처리 시스템에서는 중앙처리장치 개수가 다수개 이므로 생성된 프로세서를 하나의 중앙처리장치에 할당하는 스케줄링이 필요하게 된다.
이와 같이, 다수개의 중앙처리장치로 구성된 종래 밀결합 다중 처리 시스템에서는 제1도에 도시된 바와 같은 글로벌 런 큐방식(Global Run Queue)을 이용하여 스케줄링을 수행하게 된다.
즉, 제1도에 도시된 바와 같은 밀결합 시스템에서 사용자의 요구를 처리하기 위한 프로세서(100a)의 프로세스에 선택된 하나의 제1 내지 제4 중앙처리장치(101 내지 104)에 할당하기 위하여 대기행렬(Queue)를 사용하게 된다.
상기 해당 제1 내지 제4 중앙처리장치(101 내지 104)는 프로세서(100a)에서의 처리를 기다리며, 생성된 프로세스를 대기행렬에 저장한 다음 처리할 프로세스가 없는 중앙처리장치가 대기행렬에 저장되어 있는 프로세스를 하나 가져온 후에 그 프로세스를 수행하게 된다.
생성 초기에는 대기행렬에 저장되는 것 이외에도 외부로부터 입출력 제어기를 통해 입출력 작업을 기다리면서 슬리프(Sleep)하고 있다가 요청된 입출력 작업이 완료되어 재 수행을 해야 할 때도 대기행렬에 저장된다.
상기 입출력 작업이 수행되기를 기다리는 프로세스를 저장하고 있으므로 런 큐가 부르며, 제1도에서와 같이 여러개의 중앙처리장치가 동시에 런 큐의 내용을 이용하므로 글로벌 런 큐라고 한다.
상기 각각의 제1 내지 제4 중앙처리장치(101 내지 104)가 글로벌 런 큐(100)에 저장되어 있는 프로세서(100a)의 프로세스 중에서 하나를 선택하여 수행을 하게 된다.
그러나, 이와 같은 종래 밀결합 다중 처리 시스템에서는 처리기 시간을 공유하기 위하여 단일 처리기 프로세스 스케줄링 방식과 더불어 처리기들 간의 부하를 동적으로 유지하기 위한 처리기 스케줄링을 함께 사용하고 있다.
상기 처리를 대기하고 있는 프로세스를 저장하고 각각의 중앙처리장치가 필요시 접근하여 프로세스를 선택한 다음 수행하기 위해 글로벌 런 큐를 가지고 있다.
상기 글로벌 런 큐는 공유 영역이므로, 각 중앙처리장치가 글로벌 런 큐를 억세스할시 지속성(Consistency)을 보장하기 위해 록킹(Locking)을 걸어야 한다.
또한 상기 하나의 중앙처리장치가 록킹을 걸고 글로벌 런 큐를 사용하고 있으면 다른 중앙처리장치들은 이 작업이 끝날 때까지 기다리고 있어야 한다.
이 기다리는 시간 때문에 시스템 성능은 저하되고 중앙처리장치 개수가 증가하면 증가할수록 글로벌 런 큐의 록킹에 대한 오버헤드(Overhead) 때문에 시스템 성능이 비례적으로 증가하지 않게 되는 문제점이 있었다.
따라서, 본 발명의 목적은 글로벌 런 큐방식을 배제하고 각 중앙처리장치마다 로컬 런 큐를 가지고 있고 수행해야 할 프로세스를 선택할시 자기 자신의 로컬 런 큐를 검색하여 자기 자신의 로컬 런 큐가 비어 있는 경우에 한해서 원형(Circular) 형태로 다른 중앙처리장치의 로컬 런 큐를 검색하여 스케줄링에 대한 부하를 감소시키고 아울러 중앙처리장치의 개수 증가에 따라 시스템의 성능을 선형적으로 증가시키도록한 밀결합 다중 처리 시스템의 스케줄링방식을 제공함에 있다.
이와 같은 본 발명의 목적은 각각의 중앙처리장치마다 적어도 하나 이상의 로컬 런 큐를 가지고 수행해야 할 프로세스를 선택할시 그 선택하고자 하는 중앙처리장치 자신의 로컬 런 큐를 검색하여 자기 자신의 로컬 런 큐를 우선적으로 억세스함으로써 달성하는 것으로, 이하 본 발명을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
제2도는 본 발명 밀결합 다중 처리 시스템 구성도로서, 이에 도시한 바와 같이, 외부의 처리기로부터 입력되는 정보를 인터페이스하고 그 외부의 처리기의 동작을 제어하는 제1 내지 제4 입출력 제어보드(200 내지 203)와, 상기 제1 내지 제4 입출력 제어보드(200 내지 203)로부터 입력된 외부 처리기의 각종 정보를 입력받아 시스템 버스를 통해 인터페이스하는 입출력보드(204)와, 각기 로컬 런 큐를 가지고 수행해야 할 프로세스를 선택할시 상기 입출력보드(204)에서 인터페이스된 각종 데이터를 메모리보드(206)에 저장하고 그 저장된 데이터를 읽어들여 처리후 상기 입출력보드(204) 및 해당 제1 내지 제4 입출력 제어보드(200 내지 203)를 통해 외부 처리기로 송신하는 다수의 중앙처리장치(205∼205n)로 구성한다. 상기에서 각각의 중앙처리장치(205∼205n)에 구비된 로컬 런 큐는 첨부된 도면 제3도에 도시된 바와 같이, 각각의 중앙처리장치가 수행해야 할 프로세서(207)(207a∼207n)의 프로세스를 선택할시 그 선택하고자 하는 중앙처리장치(205)(205a 내지 205n) 자신의 로컬 런 큐를 검색하여 자기 자신 로컬 런 큐를 우선적으로 억세스하도록 되어 있다.
즉 중앙처리장치 #3는 프로세스 #20을 수행할 경우 우선 자신의 로컬 런 큐인 프로세서 207를 검색하여 프로세스 #20을 수행하게 된다.
그리고, 상기 중앙처리장치(205)(205a 내지 205n)에 대한 자료는 제4도와 같다.
이와 같이, 구성된 본 발명의 작용 효과를 제2도 내지 제4도를 참조하여 상세히 설명하면 다음과 같다.
먼저 본 발명 밀결합 다중 처리 시스템에서 프로세서(207)(207a 내지 207n)의 프로세스 수행을 위하여 스케줄링 방식으로 글로벌 런 큐를 사용하면 글로벌 런 큐에 대한 록킹 오버헤드 때문에 중앙처리장치가 증가하더라도 시스템 성능이 비례적으로 증가하지 않게 된다.
따라서 런 큐에 대한 록킹 오버헤드를 줄이고 균동한 동적 부하를 주기 위한 제3도의 로컬 런 큐 구조와 이를 이용한 스케줄링 방식을 설명하면 다음과 같다.
먼저 각각의 중앙처리장치(205)(205a 내지 205n)는 제3도에서와 같이 자기 자신에 대한 로컬 런 큐를 가지게 된다.
따라서 운용체제 내부에서는 중앙처리장치 개수 만큼의 로컬 런 큐가 존재하게 된다.
각 중앙처리장치가 수행할 프로세스를 선택해야 할 경우 중앙처리장치 자기 자신에게 할당되어 있는 런 큐만 억세스하므로 로킹이 필요없게 되고, 이에 따라 록킹 오버헤드도 발생하지 않게 된다.
균등한 동적 부하를 위해 중앙처리장치(205)(205a 내지 205n) 자기 자신의 로컬 런 큐에 저장되어 있는 프로세스가 전혀 없을 경우에만 다른 프로세서(207)(207a 내지 207n)의 로컬 런 큐를 검색하게 된다.
이를 다음에 구체적으로 설명하면 다음과 같다.
상기 각각의 중앙처리장치(205)(205a 내지 205n)는 제4도와 같이, 로컬 런 큐 자료 구조를 가지게 된다.
이 자료 구조에는 런 큐 및 이를 위한 가변 록킹으로 구성되어 있다.
운용체제 내부에는 중앙처리장치 개수 만큼 로컬 런 큐 자료 구조가 존재하고 있는 어레이 구조를 가진다.
상기 각각의 중앙처리장치(205)(205a 내지 205n)가 수행해야 할 프로세서(207)(207a 내지 207n)의 프로세스를 할 경우 자기 자신에 해당하는 로컬 런 큐를 찾은 다음에 이에 대한 록킹을 한다.
이와 같은 록킹을 하지만 자신에 대한 로컬 런 큐에 대해 독립적으로 수행함으로 록킹이 실패할 확률이 글로벌 런 큐 방식보다 현저히 낮아지게 된다.
상기 로컬 런 큐에서 프로세스가 선택되면 이 프로세스를 수행하게 된다.
중앙처리장치(205)(205a 내지 205n)자기 자신의 로컬 런 큐에 프로세스가 저장되어 있지 않으면 해당 중앙처리장치는 기다리는 것이 아니라, 균등한 동적 부하를 얻기 위해 다른 중앙처리장치의 로컬 런 큐를 검색하게 된다.
상기 다른 중앙처리장치의 로컬 런 큐를 검색하기 위한 록킹 오버헤드를 최소화 하기 위해 어떤 중앙처리장치가 다른 중앙처리장치의 로컬 런 큐를 검색하는 방법으로 원형 스캐닝 방식을 이용하게 된다.
각 중앙처리장치는 컴퓨터 초기화시에 각각 번호를 배당하게 된다. 이때 각 중앙처리장치에는 자신의 번호 이외에 다른 중앙처리장치의 번호를 순서에 따라 셋팅하게 되는데 제4도의 예를 보면 각 중앙처리장치는 제일 먼저 자신의 번호를 갖고(중앙처리장치 #3는 3을, 중앙처리장치 #4는 4를...)그 다음에 오름차순으로 다른 중앙처리장치의 번호를 갖는다. 여기서, 가장 높은 중앙처리장치번호 다음에는 가장 낮은 번호를 세팅하여 원형으로 스캐닝할 수 있도록 한다. 즉, 중앙처리장치 #6은 6-3-4-5로 되어 있어서 자신의 번호인 #6의 로컬 런 큐를 먼저 검색하고 다음에는 중앙처리장치 #3를, 그 다음에는 중앙처리장치 #4를... 이렇게 하여 자신의 로컬 런 큐에 프로세서가 없을 경우 인접한 중앙처리장치부터 검색을 하게 되므로 다수의 중앙처리장치가 동시에 하나의 로컬 런 큐를 검색하여 록킹을 하는데 실패하게 되는 경우가 현저히 줄어 들게 된다.
중앙처리장치가 다른 중앙처리장치의 로컬 런 큐를 검색하는 경우는 자신의 로컬 런 큐를 검색하지 않는다면 자신의 로컬 런 큐에 프로세서가 들어올 때까지 기다려야 하고 중앙처리장치는 그때까지 아무일도 하지 않아 자원의 낭비가 될 수 있다.
이상에서 상세히 설명한 바와 같이, 본 발명에 따르면 밀결합 다중 처리 시스템에서 글로벌 런 큐 방식을 배제하고 로컬 런 큐 방식 및 균등한 동적부하를 실현하기 위한 원형방식의 로컬 런 큐 검색 방법을 채택하므로써, 록킹이 실패할 확률이 낮아지며 이에 따라 시스템 성능이 향상되고 중앙처리장치의 개수가 증가함에 따라 비례적으로 성능이 증가하게 되는 효과가 있다.

Claims (1)

  1. 각각의 중앙처리장치가 자신의 로컬 런 큐를 검색하여 프로세서가 존재할 경우 자신의 로컬 런 큐를 억세스하고 프로세서가 존재하지 않을 경우 다른 중앙처리장치의 로컬 런 큐를 검색하는 것을 특징으로 하는 밀결합 다중 처리 시스템의 스케줄링 방식.
KR1019940000478A 1994-01-13 1994-01-13 밀결합 다중 처리 시스템의 스케줄링 방식 KR0150775B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940000478A KR0150775B1 (ko) 1994-01-13 1994-01-13 밀결합 다중 처리 시스템의 스케줄링 방식

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940000478A KR0150775B1 (ko) 1994-01-13 1994-01-13 밀결합 다중 처리 시스템의 스케줄링 방식

Publications (2)

Publication Number Publication Date
KR950024066A KR950024066A (ko) 1995-08-21
KR0150775B1 true KR0150775B1 (ko) 1998-10-15

Family

ID=19375568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940000478A KR0150775B1 (ko) 1994-01-13 1994-01-13 밀결합 다중 처리 시스템의 스케줄링 방식

Country Status (1)

Country Link
KR (1) KR0150775B1 (ko)

Also Published As

Publication number Publication date
KR950024066A (ko) 1995-08-21

Similar Documents

Publication Publication Date Title
US5592671A (en) Resource management system and method
CA1324837C (en) Synchronizing and processing of memory access operations in multiprocessor systems
US5826079A (en) Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor
US5787480A (en) Lock-up free data sharing
US5734817A (en) Method for making a data base available to a user program during data base recovery
CN100530079C (zh) 用于在非均衡存储器存取计算机系统中调度任务的方法和设备
US5758183A (en) Method of reducing the number of overhead instructions by modifying the program to locate instructions that access shared data stored at target addresses before program execution
US5933598A (en) Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures
AU598857B2 (en) Move-out queue buffer
US5717942A (en) Reset for independent partitions within a computer system
US6601089B1 (en) System and method for allocating buffers for message passing in a shared-memory computer system
US5761729A (en) Validation checking of shared memory accesses
US6516393B1 (en) Dynamic serialization of memory access in a multi-processor system
US20030079093A1 (en) Server system operation control method
US5214775A (en) Hierarchy structured memory system contained in a multiprocessor system
EP0497600B1 (en) Memory access method and apparatus
US6643746B1 (en) Optimal multi-channel memory controller system
JP2000506659A (ja) マルチプロセッサデータ処理システム内でメモリを割り当てる方法
US6351749B1 (en) Multi-threading, multi-tasking architecture for a relational database management system
US5671405A (en) Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
US20030088744A1 (en) Architecture with shared memory
JPH10187538A (ja) 仮想アドレス変換資源の共用化の方法及びシステム
Tang et al. Toward coordination-free and reconfigurable mixed concurrency control
JPH0512126A (ja) 仮想計算機のアドレス変換装置及びアドレス変換方法
EP0279189B1 (en) Storage system

Legal Events

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

Payment date: 20010314

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee