KR20030023371A - 하이브리드 서버 모델 - Google Patents

하이브리드 서버 모델 Download PDF

Info

Publication number
KR20030023371A
KR20030023371A KR1020010056540A KR20010056540A KR20030023371A KR 20030023371 A KR20030023371 A KR 20030023371A KR 1020010056540 A KR1020010056540 A KR 1020010056540A KR 20010056540 A KR20010056540 A KR 20010056540A KR 20030023371 A KR20030023371 A KR 20030023371A
Authority
KR
South Korea
Prior art keywords
thread
threads
server
request
priority
Prior art date
Application number
KR1020010056540A
Other languages
English (en)
Inventor
천경아
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020010056540A priority Critical patent/KR20030023371A/ko
Publication of KR20030023371A publication Critical patent/KR20030023371A/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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 네트워크 시스템에서 공유자원 관리모델에 관한 것으로 N개의 스래드로서 하나의 세트를 이루는 스래드 세트와 상기 세트들이 M개인 세트로 이루어진 서버측과 다수의 요구신호를 발생하는 클라이언트측으로 구성되고 클라이언트 측에서 요구신호가 왔을때 서로 다른 셋트의 스래드에서 이를 각각 처리하고 만약 남은 스래드가 없을 경우 다른 세트에서 스래드를 빌려오게하는 하이브리드 서버 모델을 제공하는데 있다.

Description

하이브리드 서버 모델{Hybrid Server Model}
본 발명은 실시간 시스템에서 동기화를 위한 공유자원 관리모델에 관한것으로 특히 하이브리드 서버모델에 관한 것이다.
네트웍을 이용한 실시간 시스템에서는 클라이언트 작업(client task)들의 요청에 대해서 보다 나은 서버 작업(server task)에 대한 선점가능성 (preemptability)을 제공하여 최적의 왕복응답시간(round-trip time)을 제공할수 있는 실시간 서버 모델이 필요하다.
실시간 서버 모델은 서버 작업이 요청(request)을 처리하기 위해 몇 개의 스래드(thread)를 갖도록 함으로써 서버 작업에 대한 선점가능성을 향상시키는데 있다. 실시간 서버 모델의 초점은 서버작업의 구조와 우선순위 관리에 있으며, 이미 다른 요청을 처리중인 서버작업은 공유자원을 다루게 되므로 아무리 높은 우선순위 작업의 요청이 들어온다 할지라도 현재 처리중인 작업의 요청 처리가 완료될 때까지는 대기큐(queue)에서 대기하여야만 한다.
이와 같은 요청을 보다 효과적으로 처리할 수 있는 구조를 가지고 있는 실시간 서버 모델에는 여러가지가 있는데, 이는 요청을 처리하기 위한 스래드의 개수와 우선순위의 관리 방법에 따라 단일 스래드 서버모델(single thread server model), 정적 우선순위 작업자 모델(static prioritized worker model), 동적 우선순위 작업자 모델(dynamic prioritized worker model) 그리고 동적 서버 모델(dynamic server model)이 있다.
먼저 도 1은 단일 스레드 서버 모델을 나타낸 구성으로서 단일 스래드 서버 모델은 가장 기본적이고, 간단한 구조를 갖는 서버 모델로서 서버 작업이 하나의 스래드를 갖으며, 한 스래드가 모든 요청을 처리한다. 클라이언트 작업으로부터 들어온 요청은 서버 작업에서 이미 처리되고 있는 다른 작업의 요청 처리를 선점할 수 없으므로 요청 처리가 완료 될 때가지 블록 되어 대기 큐에 대기하여야 한다.
도 2는 정적/동적 우선순위 작업자 모델을 나타낸 구성으로서 먼저 정적 우선순위 작업자모델을 설명하자면,클라이언트 작업으로부터 새로운 요청이 들어왔을 때, 해당 요청과 같은 우선순위를 처리하는 작업자 스래드가 요청을 처리하는 모델이다. 따라서 이 모델에서 필요한 작업자 스래드는 시스템에서 제공하는 우선순위 범위만큼 존재하여야만 한다. 만약 해당 작업자 스래드가 다른 클라이언트 작업의 요청을 처리중이라면, 새로운 요청은 이전 요청의 처리가 끝날 때까지 해당 작업자 스래드의 대기 큐에서 대기하여야 한다.또한 적 우선순위 작업자 모델은 정적 우선순위 작업자 모델과 달리 작업자 스래드의 개수가 우선순위 단계와 같을 필요 없이 시스템의 성능을 저하시키지 않을 정도의 개수로 존재할 뿐 아니라 작업자 스래드들 모두 우선순위에 관계없이 클라이언트 작업의 요청을 처리한다. 만약 모든 작업자 스래드들이 클라이언트 작업의 요청을 처리중이라면, 새로운 클라이언트 작업 요청은 작업자 스래드들 중 어느 것 하나가 작업을 마칠 때까지 블록된 채 대기큐에서 기다려야 한다.
도 3은 동적 서버 모델을 나타낸것으로서 정적 우선순위 작업자 모델이나 동적 우선순위 작업자 모델과 달리 정해진 개수의 작업자 스래드들 두는 것이 아니라 클라이언트 작업으로부터 새로운 요청이 들어왔을 때 해당 요청을 처리할 스래드가 없을 경우 요청 처리를 위한 새로운 스래드들 생성시킨다. 이와 같이 스래드를 생성시켜 주기 위하여 동적 서버모델은 다른 모델들과 달리 스래드 관리자를 하나 더 가지고 있다. 스래드 관리자는 처리할 요청이 들어왔을 때 요청을 처리할 스래드가 있을 경우에는 해당 스래드들 할당하고, 그렇지 않을 경우에는 새로운 스래드를 생성하는 역할을 담당한다.
그러나 위의 실시간 서버 모델들은 다음과 같은 문제점들을 가지고 있다.
단일 스래드 서버 모델은 구조가 간단하여 구현하기가 쉽지만, 서버 작업에 대한 클라이언트 요청의 개수가 많은 경우에는 대기 큐의 대기줄이 길어져 빠른 서버 작업의 요청처리를 기대하기 힘들다. 뿐만 아니라 서버 작업이 짧은 서비스만을 제공할 경우에만 적합할 뿐 그렇지 못한 경우에는 서버 작업에 대한 낮은 선점가능성과 우선순위 반전 시간이 길어지게 된다.
그리고 정적 우선순위 작업자 모델은 높은 우선순위의 요청이 낮은 우선순위 처리를 위해 대기되는 문제는 발생하지 않지만 시스템의 우선순위 단계가 많아질 경우 작업자 스래드의 개수가 함께 많아짐으로 인해 문맥교환(context switching)이 빈번하게 이루어져 CPU 효율성(utilization)의 심각한 저하를 초래할 수 있다. 또한, 작업자 스래드의 개수가 많음에도 불구하고 같은 우선순위의 클라이언트 작업들이 계속해서 요청을 할 때 다른 작업자 스래드들은 요청을 처리하고 있지 않더라도 일정 작업자 스래드의 요청 처리 완료를 모두 기다려야 하는 문제가 발생한다.
또한 동적 우선순위 작업자 모델은 시스템 성능을 저하시키지 않는 범위에서 스래드를 최적의 개수로 정할 수 있지만 모든 스래드들이 낮은 우선순위의 요청을 처리하고 있을 경우, 높은 우선순위의 요청이 낮은 우선순위요청처리를 기다릴 수밖에 없는 문제가 발생한다.
마지막으로 동적 서버 모델의 경우는 가장 높은 선점가능성을 가지고 있으며 우선순위 반전 문제가 일어나지않지만 요청에 대한 새로운 스래드의 생성으로 인한 비용을 무시할 수는 없다. 또한 정적 우선순위 작업자 모델과 마찬가지로 계속적으로 스래드의 개수가 늘어나게 되면 빈번하게 일어나는 문맥교환의 문제점을 갖고 있을 뿐 아니라, 스래드가 동적으로 생성되어지기 때문에 서버 작업상에서 자원 활용율을 최대한으로 높이기란 상당히 어렵다.
위의 모델들은 우선순위 반전 시간을 줄이고 서버에 대한 선점 가능성을 제공하기 위한 구조를 가지고 있으나, 선점가능성과 오버헤드(overhead)간의 트레이드 오프(trad-off)를 해결하지 못하는 문제점들이 존재한다.우선순위 반전 문제를 해결하여 높은 선점가능성을 갖고 동시에 전체 시스템 성능에 영향을 최대한 줄일 수 있는 새로운 모델이 필요하다.
따라서 본 발명의 목적은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 우선순위 반전 문제를 해결하여 높은 선점가능성을 갖고 동시에 전체 시스템 성능에 영향을 최대한 줄일 수 있는 새로운 모델을 제공하는데 있다.
도 1은 종래기술에 따른 단일스래드 서버 모델.
도 2는 종래기술에 따른 우선순위 작업자 모델.
도 3은 종래기술에 따른 동적 서버 모델.
도 4는 본 발명에 따른 하이브리드 서버 모델
도 5는 본 발명에 따른 하이브리드 모델에서의 스래드 이동 도시도
도 6은 본 발명에 따른 하이브리드 모델에서의 처리 순서도
상기 목적을 달성하기 위한 본 발명의 특징은 N개의 스래드로서 하나의 세트를 이루는 스래드 세트와 상기 세트들이 M개인 세트로 이루어진 서버와 클라이언트측에서 요구신호가 왔을때 서로 다른 셋트의 스래드에서 이를 각각 처리하는데 있다. 상기 목적을 달성하기 위한 또다른 특징은 어느한 세트내에서 더이상 사용가능한 스래드가 없을때 다른세트에서 스래드를 빌려오는데 있다.
이하 제 4도 내지 5도를 참조하여 본 발명을 설명한다. 도 4는 요구신호를 발생할 수 있는 다수의 클라이언트측과 또한 N개의 스래드로서 하나의 세트를 이루고 이러한 세트들이 M개로 구성된 서버측이 있다. 즉 N개의 스래드를 갖으며, 이 스래드를 M개의 집합으로 묶은 형태를 갖는다. 즉 N개의 스래드를 갖고 M개의 집합으로 구성되어 있다고 하면, 각 집합은 N/M개의 스래드로 구성된다. 각 스래드 집합은 해당 우선순위 범위에 속하는 클라이언트 작업의 요청만을 처리한다. 예를 들어, 집합의 개수가 3개라고 하면, 클라이언트 작업으로부터 새로운 요청이 들어올 때, 해당 요청의 우선순위가 3개의 범위중 어느 범위에 속하는 지에 따라서 해당 범위의 요청을 처리하는 스래드 집합으로부터 서비스를 받게 된다. 스래드 집합 내에서의 요청처리는 동적 우선순위 작업자 모델과 같은 방법으로 클라이언트 작업의 요청을 처리할 유효한 스래드가 요청을 처리하게 된다.
도 5는 남는 스래드가 없을 경우 다른 셋트에서 스래드를 빌려오는 경우를 나타낸 도면이다. 즉 일정 스래드 집합에 해당하는 우선순위의 요청이 계속해서 들어와 더 이상 요청을 처리할 스래드가 없을 경우 다른 스래드 집합으로부터 스래드를 빌려온다. 즉, 비슷한 우선순위의 클라이언트 작업 요청이 계속적으로 들어와 특정 스래드 집합의 대기큐에 해당되는 요청의 개수가 늘어나게 되면, 그 외의 다른 스래드 집합의 대기큐를 검사하여 큐에 대기되는 요청의 개수가 가장 적은 집합의 스래드를 부하가 많이 걸린 스래드 집합에 임시적으로 이주(migration)한다. 스래드 이주는 논리적으로 스래드 집합의 범위를 변화 시켜줌으로써, 한 스래드 집합에 요청 처리 부하가 많이 걸려 작업 요청이 지나치게 대기되는 현상을 다른 한가한 스래드 집합의 스래드를 해당 작업자 스래드 집합의 범주에 포함시켜 요청을 처리하도록 하여 해결하고자 하는 것이다. 다른 스래드 집합으로부터 빌려온 스래드는 해당 스래드 집합의 대기 큐에 더 이상 대기되는 요청이 없을 때 다시 본래의 스래드 집합으로 되돌려 준다.
도 6은 본 발명에 따른 하이브리드 모델에 잇어서의 처리순서를 나타낸 처리 순서도이다. 먼저 요청신호가 입력되면 해당 세트내에 처리가능한 스래드가 있는지를 확인한다. 있으면 대기큐에서 삭제처리를하고 없다면 우선순위 계층 프로토콜에따라 해당 대기큐에 입력한다. 대기큐에 대기 요청수가 일정범위를 벗어나는지 확인하고 벗언나다면 다른 세트로부터 남는 스래드를 이주하도록한다. 물론 범위를 벗어나지 않으면 자체 세트내에서 처리를 한다. 이렇게 할당된 스래드들을 이용하면 대기큐는 하나도 없게되므로 모든 요청신호가 완료가 된다.
이상에서 설명한 바와 같은 본 발명에 따른 하이브리드 모델은 서버 작업에 대한 선점가능성을 높일 수 있을 뿐 아니라, 작업 요청에 대한 왕복응답시간을 줄일 수 있고 실시간 시스템에서 보다 효과적으로 공유자원을 관리할 수 있고, 동기화를 위한 공유자원의 관리에 있어서 보다 나은 성능을 가져올 수 있다.
이상 설명한 내용과 같이 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (2)

  1. N개의 스래드로서 하나의 세트를 이루는 스래드 세트와 상기 세트들이 M개인 세트로 이루어진 서버와 다수의 요구신호를 발생할 수 있는 클라이언트측으로 구성되고 클라이언트 요구신호에 대해 비어있는 세트내의 스래드를 먼저 사용하게 하는 네트워크 시스템에서의 하이브리드 서버 모델.
  2. 상기1항에 있어서 어느한 세트내에서 더이상 사용가능한 스래드가 없을때 다른 세트에서 스래드를 빌려주는것을 특징으로하는 하이브리드 서버 모델.
KR1020010056540A 2001-09-13 2001-09-13 하이브리드 서버 모델 KR20030023371A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010056540A KR20030023371A (ko) 2001-09-13 2001-09-13 하이브리드 서버 모델

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010056540A KR20030023371A (ko) 2001-09-13 2001-09-13 하이브리드 서버 모델

Publications (1)

Publication Number Publication Date
KR20030023371A true KR20030023371A (ko) 2003-03-19

Family

ID=27723900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010056540A KR20030023371A (ko) 2001-09-13 2001-09-13 하이브리드 서버 모델

Country Status (1)

Country Link
KR (1) KR20030023371A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131499A (zh) * 2019-12-31 2020-05-08 北京讯鸟软件有限公司 并发和异步任务处理方法及其设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131499A (zh) * 2019-12-31 2020-05-08 北京讯鸟软件有限公司 并发和异步任务处理方法及其设备

Similar Documents

Publication Publication Date Title
US5875329A (en) Intelligent batching of distributed messages
US7493436B2 (en) Interrupt handling using simultaneous multi-threading
JP3610120B2 (ja) トランザクション・システム内のサーバの数を動的に制御する方法
Zhao et al. A window protocol for transmission of time-constrained messages
WO2017133623A1 (zh) 一种数据流处理方法、装置和系统
KR100383381B1 (ko) 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치
US7246167B2 (en) Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections
CN110383764B (zh) 无服务器系统中使用历史数据处理事件的系统和方法
EP2506147B1 (en) Epoll optimisations
WO2019223596A1 (zh) 事件处理方法、装置、设备及存储介质
US20060190942A1 (en) Processor task migration over a network in a multi-processor system
US20030187914A1 (en) Symmetrical multiprocessing in multiprocessor systems
Nakajima et al. Integrated management of priority inversion in real-time mach
CN105718315A (zh) 一种任务处理方法及服务器
US10437645B2 (en) Scheduling of micro-service instances
CN107911484B (zh) 一种消息处理的方法及装置
KR20030023371A (ko) 하이브리드 서버 모델
JPH09101902A (ja) ジョブスケジューリング方式
JPH03262074A (ja) 疎結合並列計算機における負荷の動的均等化方法
KR100481604B1 (ko) 다중 쓰레드 소켓 폴링 서버 시스템
Cai et al. A simulation study of dynamic load balancing for network-based parallel processing
Arredondo et al. Load distribution and balancing support in a workstation-based distributed system
Jo et al. Request-aware Cooperative {I/O} Scheduling for Scale-out Database Applications
US20060048150A1 (en) Task management methods and related devices
WO1991002314A1 (en) Data processing network

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application