KR20070074764A - 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법 - Google Patents

시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법 Download PDF

Info

Publication number
KR20070074764A
KR20070074764A KR1020060002722A KR20060002722A KR20070074764A KR 20070074764 A KR20070074764 A KR 20070074764A KR 1020060002722 A KR1020060002722 A KR 1020060002722A KR 20060002722 A KR20060002722 A KR 20060002722A KR 20070074764 A KR20070074764 A KR 20070074764A
Authority
KR
South Korea
Prior art keywords
time
processes
work
scheduling
load
Prior art date
Application number
KR1020060002722A
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 KR1020060002722A priority Critical patent/KR20070074764A/ko
Publication of KR20070074764A publication Critical patent/KR20070074764A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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

Landscapes

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

Abstract

특정 프로세스에 작업요청이 몰리는 경우 그와 동일한 작업을 할 수 있는 새로운 프로세스를 생성하여 그에게 작업을 수행하도록 하는 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그 방법에 관하여 개시한다. 본 구조에서의 시분할 시스템에서 프로세스를 스케줄링하는 시스템은 균등하게 할당된 시간을 기반으로 작업을 수행하는 다수의 프로세스 및 상기 각 프로세스들의 작업량 (load)을 측정하고, 이를 제어하는 로드 밸런서를 포함한다. 상기 로드 밸런서는 상기 다수의 프로세스 중 특정한 프로세스의 작업 요청 수가 미리 설정한 한계값 이상일 때, 상기 시스템에게 상기 특정한 프로세스와 동일한 작업을 할 수 있는 새로운 프로세스를 생성하도록 요청한다. 따라서, 시분할 시스템에서 특정 프로세스로 작업이 몰리는 현상이 발생했을 때, 그와 동일한 작업을 하는 새로운 프로세스를 생성하고, 이후로 요청되는 작업은 새롭게 생성된 프로세스로 작업을 전달하게 함으로써 시스템 전체가 급속히 느려지는 상황을 미연에 방지할 수 있다.

Description

시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그 방법 {System and Method for Scheduling Process in the Time-Sharing System}
도 1은 본 발명의 실시예에 따른 시분할 시스템에서 프로세스를 스케줄링하는 상태를 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따라 시분할 시스템에서 프로세스를 스케줄링 하는 방법을 나타낸 흐름도이다.
본 발명은 시분할 방식의 컴퓨터 시스템에 관한 것으로서, 구체적으로 특정 프로세스에 작업요청이 몰리는 경우 그와 동일한 작업을 할 수 있는 새로운 프로세스를 생성하여 그에게 작업을 수행하도록 하는 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그 방법에 관한 것이다.
시분할 시스템(Time-Sharing System)은 고전적인 컴퓨터 시스템에서부터 현재에 이르기까지 널리 사용되고 있는 프로세스 스케줄링 방법 중의 하나이다. 이는 각 프로세스에게 균등한 시간을 부여하여 특정한 프로세스가 CPU를 오래 점유하는 단점을 보완할 수 있다는 장점이 있다.
하지만, 특정한 컴퓨터 시스템의 경우, 실행중인 여러 개의 프로세스 중에서도 특정한 프로세스에게 작업(Job)이 몰릴 수도 있다. 이러한 시분할 시스템의 경우, 작업이 몰리는 프로세스에 대한 고려가 없기 때문에 이는 전반적인 시스템 성능에 있어 치명적인 약점이 될 수 있다. 왜냐하면, 일반적으로 특정한 프로세스에게 부하가 많이 걸리는 경우, 해당 프로세스의 작업 처리 속도나 리소스 관리 방법에 따라 전반적인 시스템의 성능에 치명적인 영향을 끼칠 수 있기 때문이다.
특히, 시분할 운영체제와 같이 프로세스의 작업량이나 프로세스가 갖는 우선순위가 아닌 단순히 프로세스마다 동일한 시간 조각(Time Slice)을 할당하여 돌아가는 환경에서는 한쪽으로 부하가 몰리는 경우 시스템의 성능은 더욱 안 좋은 결과를 보일 가능성이 높다.
상기 문제점을 해결하고자, 본 발명은 작업이 극도로 몰리는 환경을 고려하여 이러한 경우 같은 작업을 처리할 수 있는 프로세스를 새로 생성하여 이를 통해 프로세스 스케줄링에서 더 좋은 시스템 결과를 내는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 시분할 시스템에서는 균등하게 할당 된 시간을 기반으로 작업을 수행하는 다수의 프로세스; 및 상기 각 프로세스들의 작업량(load)을 측정하고, 이를 제어하는 로드 밸런서 (Load-Balancer)를 포함하며, 상기 로드 밸런서는 상기 다수의 프로세스 중 특정한 프로세스의 작업 요청 수가 미리 설정한 한계값 이상일 때, 상기 시스템에게 상기 특정한 프로세스와 동일한 작업을 할 수 있는 새로운 프로세스를 생성하도록 요청하는 것을 특징으로 한다.
여기서, 상기 새롭게 생성된 프로세스는 상기 특정한 프로세스에게로 들어온 작업 요청을 전달받아 수행하고 그 결과를 유저 어플리케이션으로 리턴하는 것을 특징으로 한다.
또한, 상기 목적은 시분할 시스템에서 프로세스를 스케줄링하는 방법에 있어서, 다수의 프로세스가 균등하게 할당된 시간을 기반으로 작업을 수행하는 단계; 특정 프로세스에 대한 작업 요청 수가 미리 설정한 한계 값을 넘는 경우, 상기 시스템에서 새로운 프로세스를 생성하는 단계; 및 상기 새로운 프로세스로 현재 들어온 작업 요청을 전달하는 단계를 포함하는 시분할 시스템에서 프로세스를 스케줄링하는 방법에 의해서도 달성될 수 있다.
여기서, 상기 새롭게 생성된 프로세스는 상기 특정 프로세스와 동일한 작업을 하는 프로세스인 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
실시예
본 발명의 실시예는 일반적인 컴퓨팅 시스템 중에서, 시분할 정책으로 프로세스가 스케줄링되는 운영체제 환경을 대상으로 한다.
또한, 시스템 내부에 프로세스들의 작업량(load)를 측정하고, 이를 중간에 제어할 수 있는 로드 밸런서(Load Balancer)가 있다고 가정한다. 이는 로드 밸런서에서 각 프로세스에 대한 작업 요청이나 연산 요청을 중간에서 기록하고, 특정한 시간 이내의 작업 요청수가 일정한 기준을 넘어가는 경우 해당 프로세스를 체크해 낼 수 있어야 하기 때문이다.
본 발명의 실시예에 따른 시스템에서도 관심을 갖는 대상은 이와 같이 부하가 많은 프로세스이다.
도 1은 본 발명의 실시예에 따른 시분할 시스템에서 프로세스를 스케줄링하는 상태를 나타낸 블록도이다.
도 1을 참조하면, 총 6개의 프로세스가 구동 중에 있고, 각 프로세스는 서로 리소스(CPU, 메모리 등)를 점유하기 위해 경쟁하게 된다. 이러한 경쟁을 제어하기 위하고, 시스템의 리소스를 분배하기 위해 시스템에서는 스케줄링 정책을 사용한다. 도 1에서 프로세스 스케줄러(Process Scheduler)가 이를 담당한다.
상기 프로세스 스케줄러는 각 프로세스에게 균등한 시간을 배분할 수 있는 시분할 시스템 정책을 사용한다.
각 프로세스에서 작업 요청(request)이 들어오는 것을 균등한 시간으로 배 분하는데, 도 1에서와 같이 프로세스 2에 작업 로드가 몰리는 경우 상기와 같은 시분할 방식은 오히려 단점으로 작용할 수 있다.
따라서, 이를 해결하기 위해서 본 발명의 실시예의 로드 밸런서는 시스템에게 상기 프로세스 2와 동일한 작업을 하는 프로세스 2'를 생성하도록 요청하고, 이에 따라 기존 프로세스 2에 대한 작업요청이 들어오면 새롭게 생성된 프로세스 2'에게 전달하게 된다.
상세히 설명하면, 도 1과 같이 6개의 프로세스가 실행 중이라면, 각 프로세스는 CPU를 1/6 시간 만큼씩 사용할 수 있다. 이때, 프로세스 2에 극도로 작업이 몰리는 경우, 상기 프로세스 2와 같은 역할을 할 수 있는 프로세스 2'라는 프로세스를 생성한다. 이렇게 변경되는 경우 시스템 전체로는 프로세스 2와 프로세스 2'가 작업을 나누어 가지므로 이론적으로 2/(6+1)=2/7 시간씩 CPU를 사용하게 된다. 이는 기존의 1/6 시간 보다는 이론적으로는 2배 가까운 수행시간을 가질 수 있는 것이다. 따라서, 동적인 프로세스 생성 및 관리를 통해 전체 시스템의 응답속도 및 결과값(throughput)을 높일 수 있다.
도 2는 본 발명의 실시예에 따라 시분할 시스템에서 프로세스를 스케줄링 하는 방법을 나타낸 흐름도이다.
도 2를 참조하면, 먼저, 도 1과 같이 6개의 프로세스가 실행되고 있다고 가정하면, 각 프로세스는 1/6 시간 만큼씩 리소스(CPU, 메모리 등)를 점유하여 작업을 수행하고 있으며, 소정의 프로세스에 대한 작업 요청이 있다면(S10), 로드 밸런 서는 각 프로세스 요청이 들어올 때마다 내부 저장소에 해당 횟수를 프로세스 별로 기록한다(S20). 아무런 요청이 없다면, 각 프로세스는 할당된 시간 만큼씩 해당 기능을 수행한다(S25).
다음, 로드 밸런서는 각 시간 주기마다 프로세스 별로 요청 수가 제한 값을 넘었는지 체크한다(S30). 여기서, 1초당 100회 이상 작업 요청이 들어온 경우를 요청의 한계값으로 설정한다. 다만, 상기 한계값은 설계자가 실험치나 경험치를 토대로 하여 자유롭게 변경 가능하다.
만약, 특정한 프로세스(프로세스 2)에 대한 작업 요청이 시스템의 한계값에 도달한 경우, 로드 밸런서는 시스템에게 해당 프로세스와 2 동일한 작업을 하는 프로세스 2'를 생성하도록 요청한다(S40). 반면, 아직 요청 한계값을 넘지 않았다면, 해당 프로세스에 요청을 전달한다(S45).
다음, 시스템에서 새로운 프로세스 2'의 생성에 성공하였는지 판단하고 (S50), 새로운 프로세스 2'를 생성하였다면, 현재 들어온 요청을 프로세스 2'에게 전달하고 앞으로 들어오는 새로운 요청을 할당하도록 변경한다(S60). 만약, 프로세스 2'를 생성하지 않았다면, 작업 요청은 기존 프로세스 2로 전달한다(S65).
마지막으로, 각 프로세스는 해당 요청을 처리하고 작업 결과를 유저 어플리케이션(User Application)에게 리턴한다(S70). 시스템은 위와 같은 과정을 계속 반복한다.
특정한 프로세스에 대한 복사본(clone) 프로세스의 생성은 커널레벨(Kernel Level)에서 지원하며 이를 이용하면 같은 일을 담당하는 프로세스를 만들 수 있다.
위와 같은 과정을 기존의 시분할 시스템에 적용하게 되면, 기존에는 클라이언트(Client) 입장에서 1/N 만큼 시스템을 사용할 수 있었다면, 만약 프로세스가 동적으로 생성되는 경우에는 2/(N+1) 시간만큼 시스템을 사용할 수 있게 된 것이다. 즉, 기존에 비해 약 2배 가량의 시스템 가용시간을 가질 수 있게 되는 것이며, 이러한 차이는 클라이언트 입장에서는 기존에 비해서 더 좋은 응답시간과 결과 처리량(throughput)을 가져올 수 있다.
상기와 같은 본 발명의 실시예를 응용하면 같은 요청을 처리할 수 있는 프로세스를 M개 만들어 낸다면 전체 시스템에서 (1+M)/(N+M) 시간만큼의 시간을 사용할 수 있다.
본 발명의 실시예에 따르면, 이 구조는 시분할 매커니즘을 통해 프로세스를 관리하는 일반 운영체제에서 사용될 수 있다. 특히, 특정한 프로세스에 대해 기하급수적으로 작업 요청이 들어가고 이러한 현상 때문에 시스템의 성능이 저하되는 경우, 본 발명을 이용하면 이러한 단점들을 시스템 레벨에서 보완해 줄 수 있다. 이는, 시분할 시스템이 가지는 가장 큰 특성인 각 프로세스에게 동일한 시간을 할당하여 동작하는 방식을 이용하여, 부하가 큰 프로세스와 똑 같은 일을 담당하는 프로세스를 생성하여 그 요청을 나누어 처리하기 때문에 가능한 것이다.
이상 본 발명의 바람직한 실시예를 도시하고 설명하였으나, 본 발명의 기술사상은 첨부된 도면과 상기한 설명내용에 한정하지 않으며 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 형태의 변형이 가능함은 이 분야의 통상의 지식을 가진 자에게는 자명한 사실이다.
상술한 바와 같은 본 발명에 따르면, 시분할 시스템에서 특정 프로세스로 작업이 몰리는 현상이 발생했을 때, 그와 동일한 작업을 하는 새로운 프로세스를 생성하고, 이후로 요청되는 작업은 새롭게 생성된 프로세스로 작업을 전달하게 함으로써 시스템 전체가 급속히 느려지는 상황을 미연에 방지할 수 있다.

Claims (4)

  1. 시분할 시스템에서 프로세스를 스케줄링하는 시스템에 있어서,
    균등하게 할당된 시간을 기반으로 작업을 수행하는 다수의 프로세스; 및
    상기 각 프로세스들의 작업량(load)을 측정하고, 이를 제어하는 로드 밸런서(load-balancer)를 포함하며,
    상기 로드 밸런서는 상기 다수의 프로세스 중 특정한 프로세스의 작업 요청 수가 미리 설정한 한계값 이상일 때, 상기 시스템에게 상기 특정한 프로세스와 동일한 작업을 할 수 있는 새로운 프로세스를 생성하도록 요청하는 것을 특징으로 하는 시분할 시스템에서 프로세스를 스케줄링하는 시스템.
  2. 제 2 항에 있어서,
    상기 새롭게 생성된 프로세스는 상기 특정한 프로세스에게로 들어온 작업 요청을 전달받아 수행하고 그 결과를 유저 어플리케이션으로 리턴하는 것을 특징으로 하는 시분할 시스템에서 프로세스를 스케줄링하는 시스템.
  3. 시분할 시스템에서 프로세스를 스케줄링하는 방법에 있어서,
    다수의 프로세스가 균등하게 할당된 시간을 기반으로 작업을 수행하는 단 계;
    특정 프로세스에 대한 작업 요청 수가 미리 설정한 한계 값을 넘는 경우, 상기 시스템에서 새로운 프로세스를 생성하는 단계; 및
    상기 새로운 프로세스로 현재 들어온 작업 요청을 전달하는 단계를 포함하는 시분할 시스템에서 프로세스를 스케줄링하는 방법.
  4. 제 3 항에 있어서,
    상기 새롭게 생성된 프로세스는 상기 특정 프로세스와 동일한 작업을 하는 프로세스인 것을 특징으로 하는 시분할 시스템에서 프로세스를 스케줄링하는 방법.
KR1020060002722A 2006-01-10 2006-01-10 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법 KR20070074764A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060002722A KR20070074764A (ko) 2006-01-10 2006-01-10 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060002722A KR20070074764A (ko) 2006-01-10 2006-01-10 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법

Publications (1)

Publication Number Publication Date
KR20070074764A true KR20070074764A (ko) 2007-07-18

Family

ID=38500012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060002722A KR20070074764A (ko) 2006-01-10 2006-01-10 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법

Country Status (1)

Country Link
KR (1) KR20070074764A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160100377A (ko) * 2013-12-18 2016-08-23 크로노-세이프 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160100377A (ko) * 2013-12-18 2016-08-23 크로노-세이프 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법

Similar Documents

Publication Publication Date Title
Chen et al. Parties: Qos-aware resource partitioning for multiple interactive services
Yun et al. Memory access control in multiprocessor for real-time systems with mixed criticality
US10609129B2 (en) Method and system for multi-tenant resource distribution
Hwang et al. Rearchitecting linux storage stack for µs latency and high throughput
US7433962B2 (en) Multi-user computer system with an access balancing feature
Reda et al. Rein: Taming tail latency in key-value stores via multiget scheduling
US20050039183A1 (en) System and method for allocating a plurality of resources between a plurality of computing domains
JPH09167141A (ja) 負荷分散制御方法
US20140282503A1 (en) Weight-based collocation management
McDaniel et al. A two-tiered approach to I/O quality of service in docker containers
Rupprecht et al. SquirrelJoin: Network-aware distributed join processing with lazy partitioning
US7797756B2 (en) System and methods for managing software licenses in a variable entitlement computer system
Jaiman et al. Héron: Taming tail latencies in key-value stores under heterogeneous workloads
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
Zaouch et al. Load balancing for improved quality of service in the cloud
Bartolini et al. Proactive workload dispatching on the EURORA supercomputer
Bucur et al. The influence of the structure and sizes of jobs on the performance of co-allocation
Lin et al. {RingLeader}: efficiently Offloading {Intra-Server} Orchestration to {NICs}
CN111930516B (zh) 一种负载均衡方法及相关装置
Cheng et al. Dynamic resource provisioning for iterative workloads on Apache Spark
US11003360B2 (en) IO request processing according to processing sorting indexes
Lin et al. Two-tier project and job scheduling for SaaS cloud service providers
Mehta et al. BI batch manager: a system for managing batch workloads on enterprise data-warehouses
KR20070074764A (ko) 시분할 시스템에서 프로세스를 스케줄링하는 시스템 및 그방법
GB2422225A (en) Scheduling grouped applications each group having a utilization limit and a reserve

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination