KR100942740B1 - 스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법 - Google Patents

스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법 Download PDF

Info

Publication number
KR100942740B1
KR100942740B1 KR1020087002269A KR20087002269A KR100942740B1 KR 100942740 B1 KR100942740 B1 KR 100942740B1 KR 1020087002269 A KR1020087002269 A KR 1020087002269A KR 20087002269 A KR20087002269 A KR 20087002269A KR 100942740 B1 KR100942740 B1 KR 100942740B1
Authority
KR
South Korea
Prior art keywords
thread
time
cpu
cache
executed
Prior art date
Application number
KR1020087002269A
Other languages
English (en)
Other versions
KR20080023358A (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 KR20080023358A publication Critical patent/KR20080023358A/ko
Application granted granted Critical
Publication of KR100942740B1 publication Critical patent/KR100942740B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/5033Allocation 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 data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

효율적으로 캐쉬를 사용할 수 있도록 스레드를 CPU에 할당한다. 스레드(20)의 실행시에 실행 시작 시각 및 실행하는 CPU(10a)의 CPU 번호를 기억하고, 중단중인 스레드(20)를 다음에 실행시키는 CPU(10a∼10d)에 할당할 때에, 실행 시작 시각으로부터의 경과 시간(t)을 산출하며, CPU(10a∼10d)에서 사용하는 캐쉬에 대하여 차수가 높을수록 큰 시간 파라미터(T1, T2, T3)(T1<T2<T3)를 설정하고, 경과 시간(t)이 n차(n은 2 이상의 자연수)의 캐쉬에 설정된 시간 파라미터 미만이며, (n-1)차 캐쉬에 설정된 시간 파라미터 이상의 경우에는 이전 회 실행한 CPU(10a)와 함께 n차의 캐쉬를 공유하는 CPU(10a∼10d) 중에서 부하가 가장 적은 CPU에 스레드(20)를 할당한다.

Description

스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법{COMPUTER-READABLE RECORDING MEDIUM RECORDING SCHEDULE CONTROL PROGRAM AND SCHEDULE CONTROL METHOD}
본 발명은 스케줄 제어 프로그램 및 스케줄 제어 방법에 관한 것이며, 특히, 복수의 프로세서 장치에, 실행시키는 스레드를 할당하는 처리를 컴퓨터에 기능시키는 스케줄 제어 프로그램 및 복수의 프로세서 장치에, 실행시키는 스레드를 할당하는 스케줄 제어 방법에 관한 것이다.
복수의 CPU(Central Processing Unit)를 이용하여 프로그램을 실행하는 멀티 프로세서 시스템 대응의 OS(Operating System)에서는 실행하는 프로그램을 복수의 실행 단위(이하, 스레드라고 함)로 분할하고 스레드를 OS의 스케줄러에 의해 각 CPU에 할당함으로써 프로그램을 실행하고 있다. 이와 같이, 하나의 프로그램을 복수의 CPU에 의해 병렬 처리함으로써, 프로그램 처리 시간의 절약과, CPU에 걸리는 부하의 분산을 실현하고 있다.
스케줄러는 CPU마다 지금부터 실행시키는 스레드가 연결된 대기 행렬[이하 런큐(ranQ)라고 부름]로부터 가장 우선도가 높은 스레드를 골라내고, 그 스레드를 골라 낸 런큐에 대응하는 CPU에서 실행시킨다. 또한, 실행 시작 시각을 스레드마다에 기록하고 있었다.
도 7은 종래의 스케줄러에 의한 스레드의 할당 상황을 모식적으로 도시한 도면이며, 도 7의 (A)는 어떤 스레드 실행시의 캐쉬 메모리의 데이터를 도시하고, 도 7의 (B)는 일정 시간 경과 후에 그 스레드를 재할당할 때의 캐쉬 메모리의 데이터 상황을 도시하는 도면이다.
여기서는 CPU(500a, 500b, 500c, 500d) 각각에 대하여 1차 캐쉬 메모리(이하, 1차 캐쉬라고 함)(501a, 501b, 501c, 501d)가 접속되어 있으며, CPU(500a, 500b)에서 2차 캐쉬 메모리(이하 2차 캐쉬라고 함)(502a)를 공유하고, CPU(500c, 500d)에서 2차 캐쉬(502b)를 공유하고 있는 컴퓨터의 일부 구성을 도시하고 있다. 또한, 사선부는 데이터를 도시하고 있다.
도 7의 (A)에 있어서, CPU(500a)는 스레드(510)를 실행하고 있다. 이 때, 1차 캐쉬(501a) 및 2차 캐쉬(502a)에서는 스레드(510)에서 이용하는 데이터가, 예컨대 도시하지 않는 메인 메모리로부터 독출되어 기억된다. 또한, 스레드(511, 512, 513)는 런큐에 접속되어 있으며, 실행 대기의 상태로 되어 있다.
그런데, 싱글 프로세서 시스템의 경우와 달리, 멀티 프로세서 시스템에서는, 스레드가 항상 동일한 CPU에서 실행되는 것은 아니며, 예컨대 일정 시간으로 중단되어, 그 CPU에 다른 스레드를 실행시킴으로써, 멀티 마스크를 실현한다. 그리고, 예컨대 중단한 스레드(510)를 재개할 때에는 도 7의 (B)와 같이 스케줄러는 그 스레드(510)를 연결시키는 런큐를 갖는 CPU를 이하와 같이 선택하였다.
(1) 스레드(510)가 이전 회에 실행권을 얻은 시각(실행 시작 시각)으로부터 이번 런큐에 연결시키는 시각까지의 경과 시간이, 어떤 일정 시간 이내이면, 이전 회, 스레드(510)를 실행한 CPU(500a)를 선택한다.
(2) 어떤 일정 시간 외이면, 모든 CPU(500a∼500d) 중에서 가장 부하가 적은 CPU를 선택한다.
이것은, 어떤 일정 시간 내이면, 이전 회 스레드(510)를 실행한 CPU(500a)가 사용한 캐쉬에, 도 7의 (B)에 도시하는 바와 같이, 스레드(510)가 이전 회에 사용한 데이터가 아직 남아 있는 것을 기대할 수 있기 때문이다. 이 제어에 의해, 캐쉬 히트율을 향상시켜 성능 향상을 실현하고 있었다. 또한, 각 CPU의 부하는 런큐에 연결되어 있는 스레드(514, 515, 516)의 수나 그 우선도로 결정된다.
또한, 멀티프로세서 시스템에 있어서의 캐쉬의 미스 히트를 적게 하기 위한 기술로서, 각 스레드(태스크)가 각 프로세서의 캐쉬 중에 확보되어 있는 블록수를 계수하여, 이 계수 결과를 복수의 프로세서에서 공유하고 있는 메모리에 기억해 두고, 스레드의 재개시, 이 계수 결과를 바탕으로, 그 스레드를 캐쉬에 보다 많은 블록수를 갖는 프로세서에 실행시키는 수법이 알려져 있다(예컨대, 특허 문헌 1 참조).
또한, 2차 캐쉬의 미스 히트를 적게 하기 위한 기술로서, 2차 캐쉬를 공유하고 있는 CPU의 그룹이 복수 접속된 멀티프로세서 시스템에 있어서, 프로세스가 항상 특정한 CPU 그룹에서 실행되도록 한 기술도 있었다(예컨대, 특허 문헌 2 참조).
[특허 문헌 1] 일본 특허 공개 평성 제8-30562호 공보(단락 번호[0020]∼[0039], 도 1∼도 5)
[특허 문헌 2] 일본 특허 공개 평성 제10-143382호 공보
그러나, 중단하고 있던 스레드의 CPU에의 할당을, 이전 회의 실행 시작 시각으로부터의 일정한 경과 시간을 기준으로서 행하는 종래의 스케줄 제어 방법에서는 이하와 같은 문제가 있었다.
도 7의 (B)와 같이, 경과 시간에 따라서는 1차 캐쉬(501a)에는 스레드(510)의 이전 회 실행시에 기억된 데이터는 남아 있지 않지만, 2차 캐쉬(502a)에 그 데이터가 남아 있는 경우가 있다. 또한, 2차 캐쉬(502a)에는 데이터가 남아 있지 않지만, 도시하지 않는 3차 캐쉬에 데이터가 남아 있는 경우도 있다. 즉 차수가 큰 캐쉬일수록 경과 시간이 길어도 데이터가 남아 있을 가능성이 높다. 그러나, 종래의 스케줄 제어에서는 이것을 고려하지 않고, 경과 시간이 어느 일정 시간 외의 경우에는 모든 CPU 중에서 가장 부하가 적은 CPU를 선택하기 때문에, 캐쉬에 남아 있는 데이터를 쓸모 없게 하는 경우가 있으며, 효율적인 캐쉬의 사용이 행하여지고 있지 않다는 문제가 있었다.
본 발명은 이러한 점을 감안하여 이루어진 것이며, 효율적으로 캐쉬를 사용할 수 있도록 스레드를 CPU에 할당하는 스케줄 제어 프로그램을 제공하는 것을 목적으로 한다.
또한, 본 발명의 다른 목적은, 효율적으로 캐쉬를 사용할 수 있도록 스레드를 CPU에 할당하는 스케줄 제어 방법을 제공하는 것이다.
[과제를 해결하기 위한 수단]
본 발명에서는 상기 문제를 해결하기 위해, 복수의 프로세서 장치에, 실행시키는 스레드를 할당하는 처리를 컴퓨터에 기능시키는 스케줄 제어 프로그램에 있어서, 도 1에 도시하는 바와 같이, 컴퓨터를, 스레드(20) 실행시에 실행 시작 시각 및 실행하는 프로세서 장치[도 1에서는 예컨대 CPU(10a)]의 식별 정보(CPU 번호)를 기억하는 스레드 정보 기억 수단(1), 중단중인 스레드(20)를 다음에 실행시키는 프로세서 장치[CPU(10a, 10b, 10c, 10d)]에 할당할 때에, 실행 시작 시각으로부터의 경과 시간(t)을 산출하는 경과 시간 산출 수단(2), 프로세서 장치[CPU(10a, 10b, 10c, 10d)]에서 사용하는 캐쉬 메모리[1차 캐쉬(11a, 11b, 11c, 11d), 2차 캐쉬(12a, 12b), 3차 캐쉬(13)]에 대하여 차수가 높을수록 큰 시간 파라미터(T1, T2, T3)(T1<T2<T3)를 설정하고, 경과 시간(t)은 n차(n은 2 이상의 자연수)의 캐쉬 메모리로 설정된 시간 파라미터 미만이며, (n-1)차의 캐쉬 메모리에 설정된 시간 파라미터 이상의 경우에는 이전 회 실행한 프로세서 장치[CPU(10a)] 및 이전 회 실행한 프로세서 장치[CPU(10a)]와 함께 n차 캐쉬 메모리를 공유하는 프로세서 장치 중에서, 부하가 가장 적은 프로세서 장치에 스레드(20)를 할당하는 스레드 할당 수단(3)으로서 기능시키는 것을 특징으로 하는 스케줄 제어 프로그램이 제공된다.
상기한 구성에 의하면, 스레드 정보 기억 수단(1)은 스레드(20)의 실행시에 실행 시작 시각 및 실행하는 프로세서 장치[도 1에서는, 예컨대 CPU(10a)]의 식별정보(CPU 번호)를 기억하고, 경과 시간 산출 수단(2)은 중단중인 스레드(20)를 다음에 실행시키는 프로세서 장치[CPU(10a, 10b, 10c, 10d)]에 할당할 때에, 실행 시작 시각으로부터의 경과 시간(t)을 산출하며, 스레드 할당 수단(3)은 프로세서 장치[CPU(10a, 10b, 10c, 10d)]에서 사용하는 캐쉬 메모리[1차 캐쉬(11a, 11b, 11c, 11d), 2차 캐쉬(12a, 12b), 3차 캐쉬(13)]에 대하여 차수가 높을수록 큰 시간 파라미터(T1<T2<T3)를 설정하고, 경과 시간(t)이 n차(n은 2 이상의 자연수)의 캐쉬 메모리로 설정된 시간 파라미터 미만이며, (n-1)차 캐쉬 메모리로 설정된 시간 파라미터 이상의 경우에는 이전 회 실행한 프로세서 장치[CPU(10a)] 및 이전 회 실행한 프로세서 장치[CPU(10a)]와 함께 n차 캐쉬 메모리를 공유하는 프로세서 장치 중에서 부하가 가장 적은 프로세서 장치에 스레드(20)를 할당한다.
도 1은 복수의 CPU에, 실행시키는 스레드를 할당하기 위한 스케줄 제어의 개략을 설명한 도면.
도 2는 본 실시형태의 스케줄 제어를 실행하는 컴퓨터 일례의 하드웨어 구성도.
도 3은 하드웨어의 구성 정보를 도시한 도면.
도 4는 본 실시형태의 스케줄 제어에 따른 OS의 기능을 모식적으로 도시한 도면.
도 5는 스레드 실행시의 처리의 흐름을 설명한 흐름도.
도 6은 중단중인 스레드를 어느 하나의 CPU의 런큐에 연결시키는 처리의 흐름을 설명한 도면.
도 7은 종래의 스케줄러에 의한 스레드의 할당 상황을 모식적으로 도시한 도면이며, 도 7의 (A)는 어떤 스레드 실행시의 캐쉬 메모리의 데이터를 도시하고, 도 7의 (B)는 일정 시간 경과 후에 그 스레드를 다시 할당할 때의 캐쉬 메모리의 데이 터 상황을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 스레드 정보 기억 수단
2 : 경과 시간 산출 수단
3 : 스레드 할당 수단
10a, 10b, 10c, 10d : CPU
11a, 11b, 11c, 11d : 1차 캐쉬
12a, 12b : 2차 캐쉬
13 : 3차 캐쉬
20, 21, 22, 23, 24, 25, 26 : 스레드
T1, T2, T3 : 시간 파라미터
t : 경과 시간
이하, 본 발명의 실시형태를 도면을 참조하여 상세히 설명한다.
우선, 본 발명의 실시형태의 개략을 설명한다.
도 1은 복수의 CPU에, 실행시키는 스레드를 할당하기 위한 스케줄 제어의 개략을 설명하는 도면이다.
또한, 여기서는 복수의 CPU(10a, 10b, 10c, 10d) 각각에 대하여 1차 캐쉬(11a, 11b, 11c, 11d)가 접속되어 있으며, CPU(10a, 10b)에서 2차 캐쉬(12a)를 공유하고, CPU(10c, 10d)에서 2차 캐쉬(12b)를 공유하고 있으며, CPU(10a∼10d)에 서 3차 캐쉬(13)를 공유하고 있는 컴퓨터에 있어서의 스케줄 제어를 예로서 설명한다. 또한, 각 CPU(10a∼10d)에서 실행되는 스레드(20, 21, 22, 23, 24, 25, 26)를 모식적으로 도시하고 있다.
복수의 CPU(10a∼10d)에, 실행시키는 스레드를 할당하는 스케줄 제어는, 스레드 정보 기억 수단(1), 경과 시간 산출 수단(2), 스레드 할당 수단(3)으로써 행하여진다.
이하, 각 처리 수단의 기능을 설명한다.
스레드 정보 기억 수단(1)은 스레드(20∼26) 각각의 실행시에 실행 시작 시각 및 실행하는 CPU(10a∼10d)의 식별 정보(이하 CPU 번호)를 기억한다.
경과 시간 산출 수단(2)은 중단중인 스레드[예컨대 스레드(20))를, 다음에 실행시키는 CPU(10a∼10d)에 할당할 때에, 스레드 정보 기억 수단(1)에 기억한 실행 시작 시각으로부터의 경과 시간(t)을 산출한다.
스레드 할당 수단(3)은 CPU(10a∼10d)에의 스레드(20∼26)의 할당을 행한다. 이 때, CPU(10a∼10d)가 사용하는 캐쉬 메모리[1차 캐쉬(11a, 11b, 11c ,11d), 2차 캐쉬(12a, 12b), 3차 캐쉬(13)]에 대하여 차수가 높을수록 큰 시간 파라미터(T1, T2, T3)(T1<T2<T3)를 설정한다. 이 시간 파라미터는, 각각의 차수의 캐쉬에 중단중인 스레드가 이전 회 실행시에 사용한 데이터가 남아 있을 가능성이 있는 시간을 대중(目安)으로 설정하다. 차수가 높은 캐쉬일수록 용량이 크기 때문에, 경과 시간(t)이 길어도 데이터가 남아 있을 가능성이 높다. 그 때문에, 차수가 높을수록 큰 시간 파라미터가 설정된다. 구체적으로는, 시간 파라미터는 캐쉬의 용량이나, 벤치마크 등에 의해 결정한다. 그리고, 스레드 할당 수단(3)은 중단중인 스레드의 경과 시간(t)이 n차(n은 2 이상의 자연수)의 캐쉬에 설정된 시간 파라미터 미만이며, (n-1)차의 캐쉬에 설정된 시간 파라미터 이상의 경우에는, 이전 회 실행한 CPU 및 이전 회 실행한 CPU 와 함께 n차 캐쉬를 공유하는 CPU 중에서 부하가 가장 적은 CPU에, 중단중인 스레드를 할당하는 것을 특징으로 한다.
이하, 중단중인 스레드(20)를 다시 CPU(10a∼10d) 중 어느 하나에 할당하는 경우를 예로서, 본 실시형태의 스케줄 제어 방법의 개략을 설명한다.
중단중인 스레드(20)를 CPU(10a∼10d) 중 어느 하나에 할당할 때, 경과 시간 산출 수단(2)은 스레드 정보 기억 수단(1)에서 기억된 스레드(20)의 이전 회 실행시의 실행 시작 시각을 참조하여, 현시각까지의 경과 시간(t)을 산출한다. 스레드 할당 수단(3)은 산출된 경과 시간(t)을 기초로 이하와 같은 스레드(20)의 할당을 행한다.
우선, 경과 시간(t)이 t<T1의 경우에는, 스레드 정보 기억 수단(1)에서 기억한 CPU 번호를 참조하여, 스레드(20)를 이전 회 실행한 CPU(10a)를 선택하고, 재차 스레드(20)를 할당한다[CPU(10a)의 런큐에 연결시킴].
T1≤t<T2의 경우에는 이전 회 실행한 CPU(10a) 및 CPU(10a)와 함께 2차 캐쉬(12a)를 공유하는 CPU(10b) 중에서, 부하가 적은 CPU에 스레드(20)를 할당한다. 도 1의 경우, CPU(10a)의 런큐에는 3개의 스레드(21, 22, 23)가 존재한다. 한편, CPU(10b)의 런큐에는 2개의 스레드(24, 25)가 있다. 그 때문에, 스레드 할당 수단(3)은 부하가 적은 CPU(10b)의 런큐에 스레드(20)를 연결시킨다.
T2≤t<T3의 경우에는 이전 회 실행한 CPU(10a) 및 CPU(10a)와 함께 3차 캐쉬(13)를 공유하는 CPU(10b, 10c, 10d) 중에서 부하가 가장 적은 CPU에 스레드(20)를 할당한다. 도 1의 경우, CPU(10c)에는 스레드가 존재하지 않고, CPU(10d)에는 하나의 스레드(26)가 존재하기 때문에, 스레드(20)는 CPU(10c)에 할당된다.
또한, t≥T3의 경우에는 종래와 같이, 모든 CPU(10a, 10b, 10c, 10d) 중에서 가장 부하가 적은 CPU에 스레드(20)가 할당된다. 도 1의 경우에는, CPU(10c)가 선택되어, 스레드(20)가 할당된다.
이와 같이 함으로써, 경과 시간에 따라 이전 회 실행시에 기억된 데이터가 남아 있을 가능성이 높은 캐쉬를 사용하는 CPU(10a∼10d)가, 중단중인 스레드(20)의 할당 대상으로서 선택되기 때문에, 캐쉬의 히트율이 올라, 캐쉬를 효율적으로 사용할 수 있다.
또한, 캐쉬를 공유하는 CPU(10a∼10d) 중에서 가장 적은 부하의 CPU에 할당하는 처리를 행하기 때문에, 스레드(20)의 할당과 동시에 부하 분산 처리가 행하여지게 된다. 이것에 의해, 스레드 할당 후에 부하 분산 처리를 행하는 것에 기인하여, 캐쉬에 기억되어 있던 스레드 데이터가 추방되어 캐쉬 히트율이 내려가는 것을 방지할 수 있다.
다음에, 실시형태의 상세한 내용을 설명한다.
도 2는 본 실시형태의 스케줄 제어를 실행하는 컴퓨터 일례의 하드웨어 구성도이다.
여기서 도시하는 컴퓨터(30)는, 예컨대 UNIX(등록 상표)의 서버 컴퓨터이다.
컴퓨터(30)는 각각 1차 캐쉬를 내장하고 있는 8개의 CPU(31a, 31b, 31c, 31d, 31e, 31f, 31g, 31h)와, 2차 캐쉬(32a, 32b, 32c, 32d), 3차 캐쉬(33a, 33b), 3차 캐쉬(33a, 33b)와 시스템 버스(34)를 통해 접속되는 메모리(35), I/O(36) 등으로 구성되어 있다.
또한, 2차 캐쉬(32a)는 CPU(31a, 31b)에서 공유되고, 2차 캐쉬(32b)는 CPU( 31c, 31d)에서 공유되며, 2차 캐쉬(32c)는 CPU(31e, 31f)에서 공유되고, 2차 캐쉬(32d)는 CPU(31g, 31h)에서 공유되어 있다. 또한, 3차 캐쉬(33a)는 CPU(31a, 31b, 31c, 31d)에서 공유되고, 3차 캐쉬(33b)는 CPU(31e, 31f, 31g, 31h)에서 공유되어 있다.
이러한, 하드웨어의 구성 정보는 이하와 같은 펌웨어로 기술되어 있다.
도 3은 하드웨어의 구성 정보를 도시하는 도면이다.
예컨대, CPU(cpu node)에 대해서는, 각각의 식별 정보 "id:∼"가 기술되고, 또한, 그 CPU가 이용하는 캐쉬의 식별 정보가 캐쉬의 차수마다 기술되어 있다. 예컨대 도 2의 CPU(31a)는 식별 정보가 "id=0"으로 기술되고, CPU(31a)에 내장된 1차 캐쉬는 "level 1 cache id: 0"이며, CPU(31a)에서 이용하는 2차 캐쉬(32a)는 "level 2 cache id: 0"이고, 3차 캐쉬(33a)는 "level 3 cache id: 0"으로 각각 기술되어 있다. 또한, 예컨대 CPU(31h)는 식별 정보가 "id=7"로 기술되고, CPU(31h)에 내장된 1차 캐쉬의 식별 정보는 "level 1 cache id 7"이며, CPU(31h)에서 이용하는 2차 캐쉬(32d)의 식별 정보는 "level 2 cache id:3"이고, 3차 캐쉬(33b)의 식별 정보는 "level 3 cache id:1"로 각각 기술되어 있다. 또한, 하드웨어의 구성 정 보에는, 도시를 생략하였지만 메모리(35)나, I/O(36) 등의 구성을 도시하는 기술도 포함된다. 이러한 하드웨어의 구성 정보는 OS에 전달된다.
도 4는 본 실시형태의 스케줄 제어에 따른 OS의 기능을 모식적으로 도시하는 도면이다.
펌웨어로부터의 하드웨어 구성 정보에 의해, 도 2의 CPU(31a∼31h)의 정보를 도시하는 CPU 관리 구조체(40-1, 40-2, 40-3, …, 40-8)가 생성된다. 스레드(41)는 스레드 관리 구조체로 나타내고, 그 스레드(41)의 실행 시작 시각 "disptime"과, 그 스레드(41)를 실행한 CPU 번호 "cpu"가 기억된다. 스레드(41)는 스케줄러(42)에 의해 CPU(31a∼31h) 중 어느 하나에 할당된다.
OS의 스케줄러(42)는 스레드 관리 구조체를 참조하여, 경과 시간에 따라 중단중인 스레드를 할당하는 CPU를 선택한다. 또한, 전술한 바와 같이 캐쉬의 차수에 따라 시간 파라미터(T1, T2, T3)를 설정한다.
이러한 기능을 갖는 OS에 의해, 도 1에서 도시한 각 수단이 도 2에서 도시하는 바와 같은 하드웨어의 컴퓨터(30) 상에서 실현된다.
이하, 도 2, 도 3, 도 4를 이용하여 본 실시형태의 스케줄 제어 방법을 설명한다.
우선, 스레드 실행시의 처리를 설명한다.
도 5는 스레드 실행시의 처리 흐름을 설명하는 흐름도이다.
스레드 실행 처리가 시작되면, 스케줄러(42)는 각 CPU(31a∼31h)의 런큐를 확인하여, 대기중인 스레드(41)의 존재를 확인한다. 스레드(41)가 있는 경우에는 단계 S2의 처리로 진행되고, 스레드(41)가 없는 경우에는 스레드(41)가 런큐에 출현할 때까지 단계 S1의 처리를 반복한다(단계 S1).
스케줄러(42)는 스레드(41)가 런큐에 존재하는 경우에는, 런큐로부터 스레드(41)를 제외하고, 실행 상태로 한다. 이하, 도 4에서 도시하는 바와 같이, CPU 관리 구조체(40-2)로 나타내는 CPU(31b)의 런큐에 연결된 스레드(41a)를 예로서 설명한다. 도 4의 화살표 A로 나타내고 있는 바와 같이, CPU 관리 구조체(40-2)로 표시되는 CPU(31b)의 런큐로부터 스레드(41a)가 제외되고, 스레드(41a)는 CPU(31b)에 의한 실행권을 얻는다(단계 S2).
또한, 실행권을 얻은 스레드(41a)의 스레드 관리 구조체에, 실행 시작 시각"disptime"이 되는 현시각과, 실행하는 CPU(31b)의 CPU 번호[예컨대, CPU(31b)의 식별 정보인 "id=1"]를 기억한다(단계 S3).
그 후, CPU(31b)에 의해, 실행권을 얻은 스레드(41a)가 실행된다(단계 S4).
이러한 스레드(41a)는 처리가 끝나면 소멸하지만, I/O(36)를 통한 외부 기기로부터의 응답 대기나, 다른 스레드가 획득중인 배타 자원 대기의 경우나, 스레드(41a)의 처리가 일정 시간을 초과하였을 때 등, 처리를 끝내기 전에 중단되는 경우도 있다(도 4의 화살표 B). 그 경우, 스케줄러(42)는 스레드(41a)를 일단 중단 상태로 하고, CPU(31b)의 런큐에 있는 다른 스레드에 실행권을 부여한다. I/O(36)를 통한 외부 기기로부터의 응답이 있었을 때나, 다른 스레드가 획득중이었던 배타 자원이 해방되었을 때, 기타 스레드(41a)의 처리가 일정 시간을 초과하여 일단 다른 스레드에 실행권을 양도한 후 등, 스레드(41a)의 실행을 재개시키는 경우, 스레드(41a)를 다시 어느 하나의 CPU(31a∼31h)에 할당하는 처리를 행한다.
도 6은 중단중인 스레드를 어느 하나의 CPU의 런큐에 연결시키는 처리의 흐름을 설명하는 도면이다.
또한, 이하에도 도 4에서 도시한 스레드(41a)를 이용하여 설명한다.
우선, 스케줄러(42)는 중단중인 스레드(41a)의 스레드 관리 구조체에 기록되어 있는 실행 시작 시각 "disptime"과 현시각과의 차로부터 경과 시간(t)을 산출한다(단계 S5).
그리고 경과 시간(t)이 t<T1의 경우, 이전 회와 동일한 CPU(31b)를 선택한다(단계 S6).
T1≤t<T2의 경우에는 이전 회 동작한 CPU(31b)와 2차 캐쉬(32a)를 공유하는 CPU(31a, 31b) 중에서 가장 부하가 적은 CPU를 선택한다. 도 4의 예에서는 CPU 관리 구조체(40-1)로 나타내는 CPU(31a)의 런큐에 연결되어 있는 스레드(41)의 수가 CPU 관리 구조체(40-2)로 나타내는 CPU(31b)의 런큐에 연결되어 있는 스레드(41)의 수보다도 많고, 부하가 크기 때문에 CPU(31b)가 선택된다(단계 S7).
T2≤t<T3의 경우에는 이전 회 동작한 CPU(31b)와 3차 캐쉬(33a)를 공유하는 CPU(31a, 31b, 31c, 31d) 중에서 가장 부하가 적은 CPU를 선택한다. 도 4의 예에서는 CPU 관리 구조체(40-3)로 나타내는 CPU(31c)가 선택된 경우를 도시하고 있다(단 계 S8).
t≥T3의 경우에는 모든 CPU(31a∼31h) 중에서 가장 부하가 적은 CPU를 선택한다. 도 4의 예는 CPU 관리 구조체(40-8)로 나타내는 CPU(31h)가 선택된 경우를 도시하고 있다(단계 S9).
그리고 마지막에, 스케줄러(42)는 선택된 CPU의 런큐에 스레드(41a)를 연결시킨다(단계 S10).
이상과 같이, 본 실시형태의 스케줄 제어 방법에 의하면, 경과 시간에 따라 이전 회 실행시에 기억한 데이터가 남아 있을 가능성이 높은 캐쉬를 사용하는 CPU가 중단중인 스레드의 할당 대상으로서 선택되기 때문에, 캐쉬의 히트율이 올라, 캐쉬를 효율적으로 사용할 수 있다.
또한, 캐쉬를 공유하는 CPU 중에서 가장 적은 부하의 CPU에 할당하는 처리를 행하기 때문에, 중단중인 스레드의 할당과 동시에 부하 분산 처리가 행하여지게 된다. 이것에 의해, 스레드 할당 후에 부하 분산 처리를 행하는 것에 기인하여, 캐쉬에 기억되어 있던 스레드의 데이터가 추방되어 캐쉬 히트율이 내려가는 것을 방지할 수 있다.
또한, 전술한 바와 같이, 상기한 처리 내용은 컴퓨터에 의해 실현할 수 있다. 그 경우, 컴퓨터가 가져야 하는 기능의 처리 내용을 기술한 프로그램이 제공된다. 그 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터 상에서 실현된다. 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는 자기 기록 장치, 광디스크, 광 자기 기록 매체, 반도체 메모리 등이 있다. 자기 기록 장치에는 하드디스크 장치(HDD), 플렉시블 디스크(FD), 자기 테이프 등이 있다. 광디스크에는 DVD(Digital Versatile Disc), DVD-RAM, CD-ROM, CD-R(Recordable)/RW(ReWritable) 등이 있다. 광자기 기록 매체에는 M0(Magneto-Optical disk) 등이 있다.
프로그램을 유통시키는 경우에는, 예컨대 그 프로그램이 기록된 DVD, CD-ROM 등의 휴대형 기록 매체가 판매된다. 또한, 프로그램을 서버 컴퓨터의 기억 장치에 저장해 두고, 네트워크를 통해 서버 컴퓨터에서 다른 컴퓨터로 그 프로그램을 전송할 수도 있다.
프로그램을 실행하는 컴퓨터는, 예컨대 휴대형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을 자기의 기억 장치에 저장한다. 그리고, 컴퓨터는 자기의 기억 장치로부터 프로그램을 판독하고, 프로그램에 따른 처리를 실행한다. 또한, 컴퓨터는 휴대형 기록 매체로부터 직접 프로그램을 판독하며, 그 프로그램에 따른 처리를 실행할 수도 있다. 또한, 컴퓨터는 서버 컴퓨터로부터 프로그램이 전송될 때마다, 차례로 수취한 프로그램에 따른 처리를 실행할 수도 있다.
이상, 본 발명을 실시예에 기초하여 설명하였지만, 본 발명은 상기에 한정되는 것은 아니며, 특허청구의 범위에 기재한 범위 내에서 여러 가지 변형이 가능하다. 예컨대, 상기에서는 3차 캐쉬까지의 컴퓨터를 예로서 설명하였지만, 3차 이상의 캐쉬가 있는 컴퓨터에 대해서도 마찬가지로 적용할 수 있다.
상기에 대해서는 단지, 본 발명의 원리를 나타내는 것이다. 또한, 다수의 변 형, 변경이 당업자에게 있어서 가능하며, 본 발명은 상기에 도시하고, 설명한 정확한 구성 및 응용예에 한정되는 것은 아니며, 대응하는 모든 변형예 및 균등물은 첨부한 청구항 및 그 균등물에 의한 본 발명의 범위로 간주된다.
본 발명은 스레드 실행시에 실행 시작 시각 및 실행하는 프로세서 장치의 식별 정보를 기억하고, 중단중인 스레드를 다음에 실행시키는 프로세서 장치에 할당할 때에, 실행 시작 시각으로부터의 경과 시간을 산출하며, 프로세서 장치에서 사용하는 캐쉬에 대하여 차수가 높을수록 큰 시간 파라미터를 설정하고, 경과 시간이 n차(n은 2차의 자연수)의 캐쉬에 설정된 시간 파라미터 미만이며, (n-1)차의 캐쉬에 설정된 시간 파라미터 이상의 경우에는 이전 회 실행한 프로세서 장치 및 이전 회 실행한 프로세서 장치와 함께 n차 캐쉬를 공유하는 프로세서 장치 중에서 부하가 가장 적은 프로세서 장치에 스레드를 할당하기 때문에, 경과 시간에 따라 이전 회 실행시에 기억한 데이터가 남아 있을 가능성이 높은 캐쉬를 사용하는 프로세서 장치가 중단중인 스레드의 할당 대상으로서 선택된다. 이것에 의해, 캐쉬의 히트율이 올라가며, 캐쉬를 효율적으로 사용할 수 있다.
또한, 캐쉬를 공유하는 프로세서 장치 중에서 가장 적은 부하의 프로세서 장치에 할당하는 처리를 행하기 때문에, 중단중인 스레드의 할당과 동시에 부하 분산 처리가 행하여지게 된다. 이것에 의해, 스레드 할당 후에 부하 분산 처리를 행하는 것에 기인하여, 캐쉬에 기억되어 있던 스레드 데이터가 추방되어 캐쉬 히트율이 내려가는 것을 방지할 수 있다.
본 발명의 상기 및 다른 목적, 특징 및 이점은 본 발명의 예로서 바람직한 실시형태를 나타내는 첨부한 도면과 관련된 이하의 설명에 의해 명백해질 것이다.

Claims (4)

  1. 복수의 프로세서 장치에, 실행시키는 스레드를 할당하는 처리를 컴퓨터에 기능시키는 스케줄 제어 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체에 있어서,
    컴퓨터를,
    스레드 실행시에 실행 시작 시각 및 실행하는 프로세서 장치의 식별 정보를 기억하는 스레드 정보 기억 수단,
    중단중인 상기 스레드를 다음에 실행시키는 프로세서 장치에 할당할 때에, 상기 실행 시작 시각으로부터의 경과 시간을 산출하는 경과 시간 산출 수단, 및
    상기 프로세서 장치에서 사용하는 캐쉬 메모리에 대하여 차수가 높을수록 큰 시간 파라미터를 설정하고, 상기 경과 시간이 n차(n은 2 이상의 자연수)의 캐쉬 메모리에 설정된 상기 시간 파라미터 미만이며, (n-1)차 캐쉬 메모리에 설정된 상기 시간 파라미터 이상의 경우에는, 이전 회 실행한 프로세서 장치 및 상기 이전 회 실행한 프로세서 장치와 함께 상기 n차 캐쉬 메모리를 공유하는 프로세서 장치 중에서 부하가 가장 적은 프로세서 장치에 상기 스레드를 할당하는 스레드 할당 수단
    으로서 기능시키는 것을 특징으로 하는 스케줄 제어 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  2. 제1항에 있어서, 각 캐쉬 메모리에 대하여 설정되는 상기 시간 파라미터는 대응하는 캐쉬 메모리의 용량에 따라 설정되는 것을 특징으로 하는 스케줄 제어 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  3. 복수의 프로세서 장치에, 실행시키는 스레드를 할당하는 스케줄 제어 방법에 있어서,
    스레드 정보 기억 수단에, 스레드 실행시에 실행 시작 시각 및 실행하는 프로세서 장치의 식별 정보를 기억시키는 단계와,
    경과 시간 산출 수단으로, 중단중인 상기 스레드를 다음에 실행시키는 프로세서 장치에 할당할 때에, 상기 실행 시작 시각으로부터의 경과 시간을 산출하는 단계와,
    스레드 할당 수단에 의해, 상기 프로세서 장치에서 사용하는 캐쉬 메모리에 대하여 차수가 높을수록 큰 시간 파라미터를 설정하고, 상기 경과 시간이 n차(n은 2 이상의 자연수)의 캐쉬 메모리에 설정된 상기 시간 파라미터 미만이며, (n-1)차의 캐쉬 메모리에 설정된 상기 시간 파라미터 이상의 경우에는, 이전 회 실행한 프로세서 장치 및 상기 이전 회 실행한 프로세서 장치와 함께 상기 n차 캐쉬 메모리를 공유하는 프로세서 장치 중에서 부하가 가장 적은 프로세서 장치에 상기 스레드를 할당하는 단계
    를 포함하는 것을 특징으로 하는 스케줄 제어 방법.
  4. 제3항에 있어서, 각 캐쉬 메모리에 대하여 설정되는 상기 시간 파라미터는 대응하는 캐쉬 메모리의 용량에 따라 설정되는 것을 특징으로 하는 스케줄 제어 방법.
KR1020087002269A 2005-08-09 2005-08-09 스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법 KR100942740B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/014590 WO2007017932A1 (ja) 2005-08-09 2005-08-09 スケジュール制御プログラム及びスケジュール制御方法

Publications (2)

Publication Number Publication Date
KR20080023358A KR20080023358A (ko) 2008-03-13
KR100942740B1 true KR100942740B1 (ko) 2010-02-17

Family

ID=37727128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002269A KR100942740B1 (ko) 2005-08-09 2005-08-09 스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법

Country Status (6)

Country Link
US (1) US8479205B2 (ko)
EP (1) EP1914632B1 (ko)
JP (1) JP4651671B2 (ko)
KR (1) KR100942740B1 (ko)
CN (1) CN100573458C (ko)
WO (1) WO2007017932A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356284B2 (en) * 2006-12-28 2013-01-15 International Business Machines Corporation Threading model analysis system and method
JP4872818B2 (ja) * 2007-06-14 2012-02-08 ムラテックオートメーション株式会社 プロセス状態監視装置
US8453146B2 (en) * 2009-12-23 2013-05-28 Intel Corporation Apportioning a counted value to a task executed on a multi-core processor
US8756585B2 (en) * 2009-12-29 2014-06-17 International Business Machines Corporation Efficient monitoring in a software system
WO2012095982A1 (ja) * 2011-01-13 2012-07-19 富士通株式会社 マルチコアプロセッサシステム、およびスケジューリング方法
JP5737298B2 (ja) * 2011-01-21 2015-06-17 富士通株式会社 スケジューリング方法およびスケジューリングシステム
CN102402220B (zh) * 2011-01-21 2013-10-23 南京航空航天大学 基于负荷分担式的容错飞行控制系统的故障检测方法
US20120267423A1 (en) * 2011-04-19 2012-10-25 Taiwan Semiconductor Manufacturing Company, Ltd. Methods and Apparatus for Thin Die Processing
JP5776776B2 (ja) * 2011-08-05 2015-09-09 富士通株式会社 データ処理システム、およびデータ処理方法
US9274854B2 (en) * 2012-07-27 2016-03-01 International Business Machines Corporation Contamination based workload management
US9571329B2 (en) * 2013-03-11 2017-02-14 International Business Machines Corporation Collective operation management in a parallel computer
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling
JP5808450B1 (ja) 2014-04-04 2015-11-10 ファナック株式会社 マルチコアプロセッサを使用して逐次プログラムを実行する制御装置
CN106484537B (zh) * 2016-09-30 2019-07-19 网易(杭州)网络有限公司 一种cpu核资源的分配方法和设备
CN116521351B (zh) * 2023-07-03 2023-09-05 建信金融科技有限责任公司 多线程任务调度方法、装置、存储介质及处理器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04283849A (ja) * 1991-03-13 1992-10-08 Toshiba Corp マルチプロセッサシステム
JPH05151064A (ja) * 1991-11-29 1993-06-18 Yokogawa Electric Corp 密結合マルチプロセツサシステム
JPH11259318A (ja) 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2815095B2 (ja) * 1989-07-12 1998-10-27 日本電信電話株式会社 マルチプロセッサにおけるタスク割り当て制御方法
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system
JPH0830562A (ja) 1994-07-19 1996-02-02 Nec Corp マルチプロセッサシステム
US5784614A (en) * 1995-07-27 1998-07-21 Ncr Corporation Cache affinity scheduling method for multi-processor nodes in a split transaction bus architecture
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
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
JPH10143382A (ja) 1996-11-08 1998-05-29 Hitachi Ltd 共有メモリ型マルチプロセッサシステムの資源管理方法
US5974438A (en) 1996-12-31 1999-10-26 Compaq Computer Corporation Scoreboard for cached multi-thread processes
US6665699B1 (en) * 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
JP3535795B2 (ja) * 2000-02-21 2004-06-07 博 和泉 コンピュータ、並びに、コンピュータ読み取り可能な記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04283849A (ja) * 1991-03-13 1992-10-08 Toshiba Corp マルチプロセッサシステム
JPH05151064A (ja) * 1991-11-29 1993-06-18 Yokogawa Electric Corp 密結合マルチプロセツサシステム
JPH11259318A (ja) 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式

Also Published As

Publication number Publication date
EP1914632A1 (en) 2008-04-23
CN100573458C (zh) 2009-12-23
CN101238442A (zh) 2008-08-06
EP1914632B1 (en) 2012-06-27
JPWO2007017932A1 (ja) 2009-02-19
WO2007017932A1 (ja) 2007-02-15
KR20080023358A (ko) 2008-03-13
US8479205B2 (en) 2013-07-02
US20080109817A1 (en) 2008-05-08
JP4651671B2 (ja) 2011-03-16
EP1914632A4 (en) 2009-07-29

Similar Documents

Publication Publication Date Title
KR100942740B1 (ko) 스케줄 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 스케줄 제어 방법
KR100600925B1 (ko) 스레드 유형에 근거한 컴퓨터 자원의 동적 할당
US5784698A (en) Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
JP4056471B2 (ja) プロセッサに譲渡するためのシステム
US9256448B2 (en) Process grouping for improved cache and memory affinity
US20060123423A1 (en) Borrowing threads as a form of load balancing in a multiprocessor data processing system
JP5040773B2 (ja) メモリバッファ割当装置およびプログラム
US8166482B2 (en) Scheduling method, scheduling apparatus and multiprocessor system
US8332611B2 (en) Method and system for managing memory
US9032411B2 (en) Logical extended map to demonstrate core activity including L2 and L3 cache hit and miss ratio
JPH03147047A (ja) 入出力チャネル経路上の負荷を均衡させる方法及びコンピュータ・システム
JPS59180645A (ja) デ−タ・セツト割当て方法
US20150163324A1 (en) Approach to adaptive allocation of shared resources in computer systems
JP2009528610A (ja) タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
JP6149595B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
US20070101332A1 (en) Method and apparatus for resource-based thread allocation in a multiprocessor computer system
US8352702B2 (en) Data processing system memory allocation
KR102493859B1 (ko) 듀얼 모드 로컬 데이터 저장
US20180292988A1 (en) System and method for data access in a multicore processing system to reduce accesses to external memory
JP6135392B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
US20100153678A1 (en) Memory management apparatus and method
CN101847128A (zh) 管理tlb的方法和装置
JP2015191604A (ja) 制御装置、制御プログラム、および制御方法
US8689230B2 (en) Determination of running status of logical processor
US9483502B2 (en) Computational processing device including request holding units each provided for each type of commands, information processing device including request holding units each provided for each type of commands, and method of controlling information processing device

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140117

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee