KR102044775B1 - Method for User based Resource Scheduling under Multi-User Environment - Google Patents

Method for User based Resource Scheduling under Multi-User Environment Download PDF

Info

Publication number
KR102044775B1
KR102044775B1 KR1020170158636A KR20170158636A KR102044775B1 KR 102044775 B1 KR102044775 B1 KR 102044775B1 KR 1020170158636 A KR1020170158636 A KR 1020170158636A KR 20170158636 A KR20170158636 A KR 20170158636A KR 102044775 B1 KR102044775 B1 KR 102044775B1
Authority
KR
South Korea
Prior art keywords
user
group
resource scheduling
scheduling method
weight
Prior art date
Application number
KR1020170158636A
Other languages
Korean (ko)
Other versions
KR20190060436A (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 KR1020170158636A priority Critical patent/KR102044775B1/en
Publication of KR20190060436A publication Critical patent/KR20190060436A/en
Application granted granted Critical
Publication of KR102044775B1 publication Critical patent/KR102044775B1/en

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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법은 사용자 식별자(UID: user id)를 기준으로 각 사용자에 대한 개별 리소스 그룹을 할당하는 단계와, 상기 사용자가 애플리케이션을 실행할 때 상기 애플리케이션에 대응하는 모든 프로세스를 상기 사용자의 개별 리소스 그룹에 자동으로 할당하는 단계를 포함한다. 기존에 프로세스별로 생성되던 리소스 그룹 대신에 사용자별 리소스 그룹을 생성하여 사용자 기반 리소스 스케줄링을 지원할 수 있으며 리소스 그룹은 다른 사용자의 그룹과 격리되므로 사용자 간 성능 격리를 지원할 수 있다. In a multi-user environment, a user-based resource scheduling method includes allocating an individual resource group for each user based on a user identifier (UID), and recalling all processes corresponding to the application when the user executes the application. Automatically assigning to individual user resource groups. User-based resource scheduling can be created by creating user-specific resource groups instead of resource groups previously created by processes. Resource groups are isolated from groups of other users, enabling performance isolation between users.

Description

다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법{Method for User based Resource Scheduling under Multi-User Environment}Method for User based Resource Scheduling under Multi-User Environment}

본 발명은 컴퓨팅 시스템 리소스 스케쥴링 기법으로 보다 상세하게는 다중 사용자 환경에서 서피스 컴퓨팅 시스템 리소스 스케쥴링 기법에 관한 것이다. The present invention relates to a computing system resource scheduling technique, and more particularly, to a surface computing system resource scheduling technique in a multi-user environment.

다중 사용자 환경을 지원하는 서피스 컴퓨팅에서는 각 사용자의 안정적인 성능을 적시에 예약된 자원을 제공하는 것을 보장하기 위해 자원 요청에 대해 엄격한 기준을 통해 자원 예약을 수행해야한다. 즉, 사용자 기반 스케줄링과 사용자 간 성능 격리가 요구된다. Surface computing with a multi-user environment requires resource reservations through strict criteria for resource requests to ensure that each user's reliable performance provides timely reserved resources. In other words, user-based scheduling and performance isolation between users are required.

엄격한 자원 예약을 위해 운영체제는 실시간 태스크가 요청한 자원에 대해 스케줄링 분석을 수행한다. 리눅스는 이러한 자원예약 기능을 control group 프레임워크(cgroup)를 사용하여 제공한다. cgroup은 자원마다 해당하는 서브시스템(Subsystem)을 통해 하드웨어의 중앙처리장치(CPU), 메모리(Memory), 네트워크 (Network)등의 자원을 제공하며, 각 자원은 태스크 그룹 단위로 제공된다. For strict resource reservation, the operating system performs scheduling analysis on the resources requested by real-time tasks. Linux provides this resource reservation using the control group framework (cgroup). The cgroup provides resources such as a CPU, a memory, a network, and the like through a subsystem corresponding to each resource, and each resource is provided in a task group unit.

그러나 종래기술과 관련된 최신 리눅스 시스템은 리눅스 디바이스 드라이브 중 콘솔이나 터미널을 의미하는 tty(Teletypewriter)별로 cgroup을 생성하기 때문에 tty를 기준으로 CPU 리소스를 할당한다. 여기서 cgroup은 리눅스 커널에서 프로세스들의 자원 사용을 제한하고 격리시키는 기능을 가진다. 이 경우, 종래의 최신 리눅스 시스템에서의 CPU 리소스 스케쥴링 및/또는 I/O 리소스 스케줄링은 tty 사이에서의 성능 격리 및 공정성을 제공할 수 있지만 사용자 간에는 공정한 리소스 할당과 성능 격리를 제공 할 수 없다. However, the latest Linux system related to the prior art allocates CPU resources based on ttys because cgroups are created for each tty (Teletypewriter), which means a console or a terminal among Linux device drives. Here cgroups have the ability to limit and isolate the resource usage of processes in the Linux kernel. In this case, CPU resource scheduling and / or I / O resource scheduling in a modern Linux system can provide performance isolation and fairness between ttys, but cannot provide fair resource allocation and performance isolation between users.

또한, 기존의 cgroup이 사용자 기반 스케줄링에 사용되려면 각 프로세스는 기존 tty 별 그룹으로부터 사용자 별 그룹으로의 추가적인 프로세스 이주(migration)가 필요하다는 문제점이 있으며 모든 프로세스의 소유 정보를 추적할 수 있어야 한다. 종래의 최신 리눅스 시스템에서 만일 사용자 간 공정성과 성능 격리, 그리고 가중치 기반의 할당을 위해 cgroup 인터페이스를 통하여 사용자별 그룹을 생성한다면, 프로세스가 생성될 때 자동으로 들어가는 그룹(autogroup)으로부터 사용자별 그룹으로의 태스크 그룹(task group)의 불필요한 이주가 발생한다. 즉, 기존 tty 별 그룹(autogroup)으로부터 태스크 그룹(task group)을 빼서 해당 사용자 그룹(user group)으로 옮겨줘야하고, 백그라운드 애플리케이션에서 사용자 식별자(userid(uid)), 프로세스 식별자(process id(pid))의 모니터링이 필요하므로 인하여 오버헤드(overhead)가 발생되는 문제점이 있다. Also, in order for existing cgroups to be used for user-based scheduling, there is a problem that each process needs an additional process migration from the existing tty-specific group to the user-specific group, and it must be able to track ownership information of all processes. In modern modern Linux systems, if you create per-user groups via the cgroup interface for inter-user fairness, performance isolation, and weight-based assignments, the autogroup-to-user group is automatically created when the process is created. Unnecessary migration of task groups occurs. That is, the task group should be removed from the existing tty autogroup and moved to the corresponding user group. In the background application, the user identifier (userid (uid)) and process identifier (process id (pid)) Since there is a need for monitoring, there is a problem in that an overhead occurs.

또한, FSS(Fair Share Scheduler) 스케줄러와 같은 종래의 사용자 기반 스케줄링 관련 기술은 사용자 간 공정성(fairness)에만 초점을 두기 때문에, 원하는 사용자에게 더 많은 리소스를 할당할 수가 없는 한계가 있다. In addition, conventional user-based scheduling-related techniques, such as the Fair Share Scheduler (FSS) scheduler, focus only on fairness between users, thereby limiting the inability to allocate more resources to desired users.

공개특허공보 제10-2009-0055018호 (권한 관리 시스템, 인터내셔널 비지네스 머신즈 코포레이션)Patent Publication No. 10-2009-0055018 (Permission Management System, International Business Machines Corporation) 등록특허공보 제10-1733534호 (경성 실시간 스케줄링 태스크 그룹을 위한 수행 가능성 분석 방법 및 장치, 국방과학연구소)Korean Patent Publication No. 10-1733534 (Performance Analysis Method and Apparatus for Hard Real-Time Scheduling Task Group, Agency for Defense Development)

비선점 환경의 TinyOS에서 실시간을 고려한 태스크 그룹 기반의 스케줄링 기법, Journal of Korea Multimedia Society, 2010.09, vol 13, 페이지 1285-1298Task Group-based Scheduling Scheme for Real-Time Considerations in TinyOS in Non-Preemptive Environments, Journal of Korea Multimedia Society, 2010.09, vol 13, pages 1285-1298

전술한 문제점을 해결하기 위한 본 발명의 목적은 사용자를 기반으로 중앙처리장치(CPU) 리소스 및/또는 입출력(I/O) 리소스를 할당하여 사용자 간 중앙처리장치 및/또는 입출력 성능의 격리를 제공하기 위한 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법을 제공하는 것이다.An object of the present invention for solving the above problems is to allocate the central processing unit (CPU) resources and / or input / output (I / O) resources based on the user to provide isolation of the central processing unit and / or input / output performance between users To provide a user-based resource scheduling method in a multi-user environment.

전술한 문제점을 해결하기 위한 본 발명의 일측면에 따르면, 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법은 사용자 식별자(UID: user id)를 기준으로 각 사용자에 대한 개별 리소스 그룹을 할당하는 단계와, 상기 사용자가 애플리케이션을 실행할 때 상기 애플리케이션에 대응하는 모든 프로세스를 상기 사용자의 개별 리소스 그룹에 자동으로 할당하는 단계를 포함한다. 상기 리소스 스케쥴링 방법은 중앙처리장치(CPU) 리소스 스케쥴링 방법이 될 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 사용자 식별자 별로 사용자 태스크 그룹을 할당 하는 단계와, 상기 사용자 식별자가 같은 프로세스들을 상기 사용자 태스크 그룹에 자동으로 할당하는 단계를 포함할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 사용자 식별자를 기준으로 가중치를 부여해 상기 가중치를 기초로 중앙처리장치 리소스를 상기 사용자에게 차등적으로 제공하는 단계를 더 포함할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 가중치가 높을수록 상기 가상 실행시간이 실제 수행시간에 비해 더 천천히 증가하고, 가중치가 낮을수록 상기 가상 실행시간이 실제 수행시간에 비해 더 빨리 증가할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 가중치가 높은 프로세스 또는 가중치가 높은 사용자 태스크 그룹이 가중치가 낮은 프로세스 또는 가중치가 낮은 사용자 태스크 그룹보다 상기 가상 실행시간이 더 천천히 증가하도록 함으로써 더 많은 시간을 할당 받도록 리소스가 스케쥴링 될 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 사용자 식별자를 기준으로 사용되고 있는 프로세스에 균등하게 분배되도록 스케쥴링하는 단계를 더 포함할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 악의적인 사용자에게 중앙처리장치 리소스 사용을 소정 값 이하로 제한하는 단계를 더 포함할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 가상 실행 시간이 가장 낮은 프로세스 및 사용자 태스크 그룹이 선택되어 스케쥴링 될 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 선택된 사용자 태스크 그룹에서 상기 가상 실행 시간이 가장 낮은 tty 태스크 그룹을 선택하고, 상기 선택된 tty 태스크 그룹 중에서 상기 가상 실행 시간이 가장 낮은 프로세스를 선택할 수 있다. 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 선택된 프로세스가 실행할 수 있는 최대 가상 실행 시간을 모두 사용하거나 상기 선택된 프로세스가 멈추게 되는 경우 상기 중앙처리장치 리소스 스케쥴링을 재요청 할 수 있다. 상기 리소스 스케쥴링 방법은 입출력(I/O) 리소스 스케쥴링 방법이 될 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 사용자 식별자 별로 사용자 입출력 그룹을 할당 하는 단계와, 상기 사용자 식별자가 같은 프로세스들을 같은 상기 사용자 입출력 그룹에 할당하는 단계를 포함할 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 사용자 식별자를 기준으로 가중치를 부여해 상기 가중치를 기초로 입출력(I/O) 리소스를 상기 사용자에게 차등적으로 제공하는 단계를 더 포함할 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되어 스케쥴링되며, 가중치가 높을 수록 상기 가상 디스크 시간이 실제 사용한 시간에 비해 더 천천히 증가하며, 가중치가 높은 사용자 입출력 그룹이 가중치가 낮은 사용자 입출력 그룹보다 상기 가상 디스크 시간이 더 천천히 증가하도록 함으로써 더 많은 시간을 할당받도록 리소스가 스케쥴링 될 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 사용자 식별자를 기준으로 사용되고 있는 프로세스에 상기 입출력(I/O) 리소스를 균등하게 분배되도록 스케쥴링하는 단계를 더 포함할 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되어 스케쥴링 될 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 선택된 사용자 입출력 그룹에서 우선순위가 가장 높은 프로세스를 선택할 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 프로세스들은 실시간(RT, real time) 프로세스, 최선형(best effort) 프로세스 및 유휴(IDLE) 프로세스를 포함하며, 상기 실시간(RT, real time) 프로세스, 상기 최선형(best effort) 프로세스, 상기 유휴(IDLE) 프로세스 순으로 우선순위가 높을 수 있다. 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 사용자 입출력 그룹간에는 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되도록 스케쥴링하고, 상기 사용자 입출력 그룹 내 프로세스 또는 프로세스 입출력 큐는 라운드 로빈 방식으로 스케쥴링 될 수 있다.According to an aspect of the present invention for solving the above problems, the user-based resource scheduling method in a multi-user environment, the step of assigning a separate resource group for each user based on a user identifier (UID), Automatically allocating all processes corresponding to the application to the user's respective resource group when the user executes the application. The resource scheduling method may be a central processing unit (CPU) resource scheduling method. The CPU resource scheduling method may include allocating a user task group for each user identifier and automatically allocating processes having the same user identifier to the user task group. The CPU resource scheduling method may further include assigning a weight based on the user identifier and differentially providing the CPU resource to the user based on the weight. In the CPU resource scheduling method, as the weight increases, the virtual execution time increases more slowly than the actual execution time, and as the weight decreases, the virtual execution time increases faster than the actual execution time. . The CPU resource scheduling method allocates more time by allowing a higher weighted process or a higher weighted user task group to increase the virtual execution time more slowly than a lower weighted process or a lower weighted user task group. Resources can be scheduled to receive. The CPU resource scheduling method may further include scheduling to be equally distributed to the process being used based on the user identifier. The CPU resource scheduling method may further include limiting the use of the CPU resource to a malicious user to a predetermined value or less. In the CPU resource scheduling method, a process and a user task group having the lowest virtual execution time may be selected and scheduled. The CPU resource scheduling method may select a tty task group having the lowest virtual execution time from the selected user task group, and select a process having the lowest virtual execution time from the selected tty task group. The CPU resource scheduling method may re-request the CPU resource scheduling when all of the maximum virtual execution time that the selected process can execute or when the selected process is stopped. The resource scheduling method may be an input / output (I / O) resource scheduling method. The I / O resource scheduling method may include allocating a user I / O group for each user identifier and allocating processes having the same user identifier to the same user I / O group. The input / output (I / O) resource scheduling method may further include assigning a weight based on the user identifier and differentially providing the input / output (I / O) resource to the user based on the weight. In the I / O resource scheduling method, a user I / O group having the lowest virtual disk time is selected and scheduled. The higher the weight, the slower the virtual disk time increases than the actual time used, and the user I / O having a high weight. Resources may be scheduled so that groups are allocated more time by allowing the virtual disk time to increase more slowly than user I / O groups with lower weights. The input / output (I / O) resource scheduling method may further include scheduling to distribute the input / output (I / O) resources evenly to a process being used based on the user identifier. In the I / O resource scheduling method, a user I / O group having the lowest virtual disk time may be selected and scheduled. The input / output (I / O) resource scheduling method may select a process having the highest priority from the selected user input / output group. The input / output (I / O) resource scheduling method includes the real time (RT) process, the best effort process, and the idle (IDLE) process, the real time (RT) process, the The priority may be higher in order of best effort process and IDLE process. The I / O resource scheduling method may schedule the user I / O group having the lowest virtual disk time to be selected between the user I / O groups, and the process or the process I / O queue in the user I / O group may be scheduled in a round robin manner. .

본 발명의 실시 예들에 따른 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법에 따르면, 사용자 식별자(userid(uid))를 기준으로 각 사용자에 대해 개별 리소스 그룹인 사용자 태스크 그룹을 할당하고 사용자가 프로세스를 생성할 때 프로세스를 해당 사용자 태스크 그룹에 자동으로 할당함으로써, 기존에 tty(Teletypewriter) 또는 프로세스별로 생성되던 리소스 그룹 대신에 사용자별 리소스 그룹을 생성하여 사용자 기반 리소스 스케줄링을 지원할 수 있으며 상기 리소스 그룹은 다른 사용자의 그룹과 격리되므로 사용자 간 성능 격리를 지원할 수 있다. 이 경우, 본 발명과 비슷한 기능을 제공할 수 있는 기존의 리눅스 시스템의 cgroup 인터페이스와 달리, tty 및 프로세스 별 리소스 그룹을 생성하기 이전에 사용자 그룹을 생성하기 때문에 전술한 바와 같은 프로세스 이주(migration)로 인한 오버헤드는 발생하지 않는다. According to a user-based resource scheduling method for supporting a multi-user environment according to embodiments of the present invention, a user task group, which is an individual resource group, is assigned to each user based on a user identifier (userid (uid)), and the user processes By automatically assigning a process to a corresponding user task group when creating, it is possible to support user-based resource scheduling by creating a user-specific resource group instead of a tty (Teletypewriter) or a resource group previously created by a process. It is isolated from groups of users to support performance isolation between users. In this case, unlike the cgroup interface of the existing Linux system that can provide a function similar to the present invention, since the user group is created before the tty and process resource groups are created, the process migration as described above is performed. No overhead is incurred.

또한, 본 발명의 실시 예들에 따른 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법에 따르면, cgroup에 사용되는 중앙처리장치 리소스 그룹인 태스크 그룹(task group) 및/또는 입출력 리소스 그룹 (CFQ group)을 사용자 별로 생성하게 수정함으로써 사용자 별로 공정한 리소스를 할당 받게 하고 중앙처리장치 및/또는 입출력 성능을 격리할 수 있다. In addition, according to the user-based resource scheduling method for supporting a multi-user environment according to an embodiment of the present invention, a task group and / or input and output resource group (CFQ group) which is a central processing unit resource group used for cgroup Modifications created per user allow for fair resource allocation per user and isolation of CPU and / or I / O performance.

또한, 본 발명의 실시 예들에 따른 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법에 따르면, 동일한 양의 리소스 할당이 아닌, 시스템이 원하는 비율에 따른 리소스 할당을 지원하기 위하여 각 리소스 그룹의 가중치를 조절하여 태스크 그룹과 입출력 그룹 객체의 가중치를 조절함으로써 가중치 기반의 리소스 할당을 지원할 수 있다. In addition, according to the user-based resource scheduling method for supporting a multi-user environment according to an embodiment of the present invention, rather than the same amount of resource allocation, the weight of each resource group is adjusted to support resource allocation according to a desired ratio of the system By adjusting the weights of task group and I / O group objects, weight-based resource allocation can be supported.

도 1은 본 발명의 바람직한 실시 예에 따른 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법의 순서도이다.
도 2은 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법을 설명하기 위한 개념도이다.
도 6은, 본 발명의 실시예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법과 비교하기 위한 종래 기술에 따른 중앙처리장치(CPU) 리소스 처리 방식을 도시한다.
도 7은, 본 발명의 다른 실시 예에 따른 사용자 기반 중앙처리장치(CPU) 스케줄링 방식을 도시한다.
도 8은, 본 발명의 다른 실시 예에 따른 사용자 기반 가중치를 활용한 중앙처리장치(CPU) 스케줄링 방식을 도시한다.
도 9a는 본 발명의 일 실시 예에 따른 사용자 기반 중앙처리장치 리소스 공정성 실험결과를 도시한다.
도 9b는 본 발명의 일 실시 예에 따른 사용자 기반 중앙처리장치 리소스 성능 격리 실험결과를 도시한다.
도 9c는 본 발명의 일 실시 예에 따른 사용자 기반 입출력(I/O) 리소스 공정 실험 결과를 도시한다.
도 9d는 본 발명의 일 실시 예에 따른 사용자 기반 리소스 성능 격리 실험 결과를 도시한다.
1 is a flowchart illustrating a user-based resource scheduling method for supporting a multi-user environment according to an exemplary embodiment of the present invention.
2 is a flowchart illustrating a user-based central processing unit resource scheduling method for a surface computing system supporting a multi-user environment according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a user-based central processing unit resource scheduling method for a surface computing system supporting a multi-user environment according to an embodiment of the present invention.
4 is a flowchart illustrating a user-based input / output (I / O) resource scheduling method for a surface computing system supporting a multi-user environment according to another embodiment of the present invention.
5 is a conceptual diagram illustrating a user-based input / output (I / O) resource scheduling method for a surface computing system supporting a multi-user environment according to another embodiment of the present invention.
6 illustrates a CPU processing method according to the prior art for comparing with a user-based resource scheduling method in a multi-user environment according to embodiments of the present invention.
7 illustrates a user-based central processing unit (CPU) scheduling scheme according to another embodiment of the present invention.
FIG. 8 illustrates a CPU scheduling method using user-based weights according to another embodiment of the present invention.
9A illustrates a user-based CPU resource fairness experiment result according to an embodiment of the present invention.
9B illustrates a result of a user-based central processing unit resource performance isolation experiment according to an embodiment of the present invention.
9C illustrates a result of a user-based input / output (I / O) resource process experiment according to an embodiment of the present invention.
9D illustrates a result of a user-based resource performance isolation experiment according to an embodiment of the present invention.

도 1은 본 발명의 바람직한 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 리소스 스케쥴링 방법의 순서도이다. 1 is a flowchart of a user-based resource scheduling method for a surface computing system supporting a multi-user environment according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 바람직한 실시 예에 따른 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법은 사용자 식별자(UID: User id)를 기준으로 각 사용자에 대한 개별 리소스 그룹을 할당하는 단계(S110)와, 사용자가 애플리케이션을 실행할 때 해당 애플리케이션에 대응하는 모든 프로세스를 해당 사용자의 개별 리소스 그룹에 자동으로 할당하는 단계(S120)로 이루어진다. Referring to FIG. 1, in a user-based resource scheduling method supporting a multi-user environment according to an exemplary embodiment of the present invention, allocating individual resource groups for each user based on a user identifier (UID) (S110). And automatically assigning all processes corresponding to the application to the individual resource group of the user (S120) when the user executes the application.

여기서, 상기 사용자 식별자는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템에서 중앙처리장치 리소스 스케쥴링 방법에서는 사용자 태스크 그룹(User Task Group)을 할당하여 사용자를 식별할 수 있다. 또는, 상기 사용자 식별자는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템에서 입출력(I/O) 리소스 스케쥴링 방법에서는 사용자 기반 입출력 그룹(User CFQ Group)을 할당하여 사용자를 식별할 수 있다. Here, the user identifier may identify a user by allocating a user task group in the CPU processing method of the surface computing system supporting the multi-user environment. Alternatively, the user identifier may identify a user by allocating a user based input / output group (User CFQ Group) in an input / output (I / O) resource scheduling method in a surface computing system supporting a multi-user environment.

다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법은 도 2 및 도 3에서 자세히 후술하며, 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법은 도 4 및 도 5에서 자세히 후술한다. A user-based central processing unit resource scheduling method for a surface computing system supporting a multi-user environment will be described in detail with reference to FIGS. 2 and 3, and user-based input / output (I / O) resources for a surface computing system supporting a multi-user environment are described below. The scheduling method will be described later with reference to FIGS. 4 and 5.

실제 커널 내부에서의 중앙처리장치(CPU) 리소스 그룹으로는 태스크 그룹(task group)이 사용되며, 커널은 이 객체를 부모-자식 계층으로 관리한다. 기존의 리눅스 커널에서는 새로운 터미널(terminal)이 실행되어 tty가 생성될 때마다 setsid 시스템 콜이 호출되며, 그 tty를 위한 태스크 그룹(task group)이 생성되어 루트 태스크 그룹(root task group)의 새로운 자식 그룹이 된다. 여기서, tty는 일반적으로 리눅스 시스템에서 사용자가 컴퓨터와 통신하는 터미널(세션)이며, setsid는 하나의 세션을 생성하고 프로그램 그룹 ID를 지정해주는 리눅스 시스템 콜(system call)이다.A task group is used as a CPU resource group in the real kernel, and the kernel manages this object in a parent-child hierarchy. In the old Linux kernel, the setsid system call is called whenever a new terminal is executed and a tty is created, and a task group for that tty is created to create a new child of the root task group. Become a group. Here, tty is usually a terminal (session) in which a user communicates with a computer in a Linux system, and setsid is a Linux system call that creates a session and specifies a program group ID.

그러나 본 발명의 실시 예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법에서는 tty별 태스크 그룹(task group) 대신 사용자 식별자(uid)별 사용자 태스크 그룹(user task group)을 생성하고, 같은 사용자 식별자(uid)를 가진 프로세스들을 같은 사용자 태스크 그룹(user task group)에 할당 또는 삽입한다. 사용자 태스크 그룹(user task group)은 다른 사용자 태스크 그룹(user task group)들과 독립되어 있기 때문에, 본 발명의 실시 예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법에서는 사용자별 성능 격리가 가능하다. 또한, 본 발명의 실시 예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법에서는 각 사용자 태스크 그룹(user task group)마다 고유의 가중치를 조절할 수 있어서 사용자에게 가중치 기반으로 리소스를 할당할 수 있다. 이하, 리소스는 중앙처리장치 리소스 또는 입출력(I/O) 리소스를 포함하는 의미이다.However, in the user-based resource scheduling method in a multi-user environment according to the embodiments of the present invention, instead of generating a task group for each tty, a user task group for each user identifier (uid) is generated and the same user identifier (uid) is generated. Assign or insert processes with) into the same user task group. Since the user task group is independent of other user task groups, the user-based resource scheduling method in the multi-user environment according to the embodiments of the present invention enables performance isolation by user. In addition, in a user-based resource scheduling method in a multi-user environment according to embodiments of the present invention, a unique weight may be adjusted for each user task group, and thus resources may be allocated to the user based on the weight. Hereinafter, the resource means a central processing unit resource or an input / output (I / O) resource.

예를 들어, 사용자(User) 1, 2, 3이 있을 때 사용자(User) 1이 더욱 중요한 일을 하는 경우, 시스템 측면에서 사용자(User) 1에게 가중치를 줄 수 있다. 예를 들어 가중치를 사용자(User) 마다 각각 2:1:1을 주었다면, 사용자(User) 1, 2, 3은 각각 50%, 25%, 25%의 리소스를 할당받게 된다. For example, if User 1 is more important when there are Users 1, 2, and 3, a weight can be given to User 1 in terms of the system. For example, if the weight is given to each user 2: 1: 1, users 1, 2, and 3 will be allocated resources of 50%, 25%, and 25%, respectively.

본 발명의 실시 예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법은 프로세스가 생성될 때 바로 해당 사용자 태스크 그룹(user task group)에 할당 또는 삽입하기 때문에 추가적인 태스크 그룹 간 이주(migration)로 인한 오버헤드가 발생하지 않는다. In a multi-user environment, the user-based resource scheduling method according to the embodiments of the present invention allocates or inserts a user task group immediately when a process is created, and thus, overhead due to migration between additional task groups. Does not occur.

도 2는 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법을 설명하기 위한 순서도이다. 2 is a flowchart illustrating a user-based central processing unit resource scheduling method for a surface computing system supporting a multi-user environment according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법은 먼저, 사용자 기반 중앙처리장치 리소스 스케쥴링 요청이 있는지 판단(S200)한다. Referring to FIG. 2, in the user-based CPU resource scheduling method for a surface computing system supporting a multi-user environment according to an embodiment of the present invention, first, a user-based CPU resource scheduling request is determined (S200). do.

각 사용자마다 개별적인 사용자 태스크 그룹(User Task Group)을 가지기 때문에 사용자별 스케쥴링이 가능하다. Since each user has a separate user task group, user-specific scheduling is possible.

사용자 기반 중앙처리장치 리소스 스케쥴링의 요청이 있는 경우, 최소의 가상 실행 시간(vRuntime)을 가진 큐를 서치(search)하여 코어 태스크 그룹(Core Task Group) 중 가상 실행 시간(vRuntime)이 가장 낮은 사용자 태스크 그룹(User Task Group)을 선택한다(S210). 여기서, vRuntime은 가상 실행 시간(vitual runtime)의 줄임말로 한 프로세스가 CPU를 사용한 시간을 전체 프로세스와 해당 프로세스의 우선순위(priority)를 고려하여 스케일링(scaling)된 값이다. When there is a request for user-based CPU resource scheduling, the user task with the lowest virtual runtime (vRuntime) among the core task groups is searched by searching the queue with the minimum virtual runtime (vRuntime). Select a group (User Task Group) (S210). Here, vRuntime is an abbreviation of virtual runtime, and is a value in which a process uses a CPU in consideration of the overall process and priority of the process.

상기 선택된 사용자 태스크 그룹에서 상기 가상 실행 시간이 가장 낮은 tty(Teletypewriter) 태스크 그룹을 선택(S220)하고, 상기 선택된 tty 태스크 그룹 중에서 상기 가상 실행 시간이 가장 낮은 프로세스를 선택한다(S230). In the selected user task group, the tty (Teletypewriter) task group having the lowest virtual execution time is selected (S220), and the process having the lowest virtual execution time is selected from the selected tty task group (S230).

해당 프로세스 및 상기 프로세스가 할당된 그룹 - 여기서, 그룹은 사용자 태스크 그룹 또는 tty 태스크 그룹을 의미함 - 의 상기 가상 실행 시간을 증가시키고(S240), 상기 해당 프로세스가 실행할 수 있는 최대 가상 실행 시간을 모두 사용하거나 상기 해당 프로세스가 멈추게 되는 경우 중앙처리장치 리소스 스케쥴링을 재 요청한다(S250). 여기서, 상기 가상 실행 시간은 후술할 관리자에 의해 조절 또는 설정되는 가중치에 의해 가상 실행 시간의 증가 속도가 변경될 수 있다. 예를 들어, 가중치가 높을수록 가상 실행 시간이 실제 수행시간에 비해 더 천천히 증가한다. 즉, 가중치가 높을수록 가상 실행시간이 실제 수행시간에 비해 더 천천히 증가하고, 가중치가 낮을수록 가상 실행시간이 실제 수행시간에 비해 더 빨리 증가한다. 따라서, 가중치가 높은 프로세스(또는 사용자 태스크 그룹)가 가중치가 낮은 프로세스(또는 사용자 태스크 그룹)보다 가상 실행시간이 더 천천히 증가하도록 함으로써 더 많은 시간을 할당받도록 리소스가 스케쥴링 되도록 구현할 수 있다.Increase the virtual execution time of the process and the group to which the process is assigned, where the group means a user task group or a tty task group (S240), and all of the maximum virtual execution times that the process can run. If the corresponding process is stopped or used, it requests for central resource scheduling again (S250). Here, the speed of increase of the virtual execution time may be changed by a weight that is adjusted or set by an administrator to be described later. For example, higher weights increase the virtual execution time more slowly than the actual execution time. That is, the higher the weight, the virtual execution time increases more slowly than the actual execution time, and the lower the weight, the virtual execution time increases faster than the actual execution time. Therefore, it is possible to implement such that resources are scheduled such that a higher weight process (or user task group) is allocated more time by causing the virtual execution time to increase more slowly than a lower weight process (or user task group).

도 2의 각 단계 별 세부 사항은 도 3을 이용하여 후술한다.Details of each step of FIG. 2 will be described later with reference to FIG. 3.

도 3은 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a user-based central processing unit resource scheduling method for a surface computing system supporting a multi-user environment according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링은 사용자 태스크 그룹의 가상실행시간(vRuntime)에 기반하여 공정성을 달성하는 스케줄링 방법이다. Referring to FIG. 3, user-based CPU resource scheduling for a surface computing system supporting a multi-user environment according to an embodiment of the present invention achieves fairness based on a virtual runtime of a user task group. Scheduling method.

도 2에서 전술한 바와 같이, 본 발명의 일 실시 예에 따른 중앙처리장치 리소스 스케쥴링 방법에서는, 가상 실행 시간이 가장 낮은 프로세스 및/또는 사용자 태스크 그룹이 선택되어 스케쥴링 될 수 있다. As described above with reference to FIG. 2, in the CPU resource scheduling method according to an embodiment of the present disclosure, a process and / or a user task group having the lowest virtual execution time may be selected and scheduled.

도 3을 참조하면, 본 발명의 일 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 과정은, 1번째 사용자의 태스크 그룹(User Task Group)(315-1), …, k번째 사용자의 태스크 그룹(User Task Group)(315-k), …, n번째 사용자의 태스크 그룹(User Task Group)(315-n) 중 상기 k번째 사용자의 태스크 그룹(User Task Group)(315-k)의 상기 가상실행시간(vRuntime)이 가장 낮다고 가정하면, 코어 태스크 그룹(Core Task Group)(305) 중 가상실행시간(vRuntime)이 가장 낮은 상기 k 번째 사용자의 태스크 그룹(User Task Group)(315-k)가 선택된다(S310, S210 참조). Referring to FIG. 3, a user-based central processing unit resource scheduling process for a surface computing system supporting a multi-user environment according to an embodiment of the present invention may include a user task group 315-1 of a first user. ),… , User Task Group 315-k of the k-th user,... Assuming that the virtual runtime vRuntime of the user task group 315-k of the k-th user is the lowest among the task groups 315-n of the n-th user, The k-th user's task group 315-k having the lowest virtual runtime vRuntime among the task groups 305 is selected (see S310 and S210).

제 1 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-1), …, 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j), …, 제 n텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-n) 중 상기 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j)의 상기 가상실행시간(vRuntime)이 가장 낮다(즉, 제 j 텔레 타이프 라이터 태스크 그룹(325-j)의 가상실행시간의 증가 속도가 실제 수행시간에 비해 n개 텔레 타이프 라이터 태스크 그룹 중에서 가장 천천히 증가한다)고 가정하면 상기 k 번째 사용자 태스크 그룹(315-k)에서 상기 가상실행시간(vRuntime)이 가장 낮은(즉, 가상 실행 시간의 증가 속도가 실제 수행시간에 비해 n개 텔레 타이프 라이터 태스크 그룹 중에서 가장 천천히 증가하는) 상기 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j)이 선택된다(S320, S220 참조). First teletyper task group 325-1,... J j tty Task Group 325-j,. The virtual runtime (vRuntime) of the j-th teletyper task group (325-j) is the lowest among the n-th typewriter task group (325-n) (ie Assuming that the increase rate of the virtual execution time of the j-th teletypewriter task group 325-j increases most slowly among the n teletypewriter task groups compared to the actual execution time), the k-th user task group 315 the jth teletypewriter task group at the lowest vRuntime (i.e., the rate of increase of the virtual execution time increases most slowly among the n teletypewriter task groups relative to the actual execution time) at -k). (tty Task Group) 325-j is selected (see S320 and S220).

제 1프로세스(335-1), …, 제 m프로세스(335-m), …, 제 n프로세스(335-n) 중 상기 제 m프로세스(335-m)이 상기 가상실행시간(vRumtime)이 가장 낮다(즉, 제 m프로세스(335-m)의 가상 실행 시간의 증가 속도가 실제 수행시간에 비해 n개 프로세스들 중에서 가장 천천히 증가한다)고 가정하면, 상기 선택된 제 j 텔레 타이프 라이터 그룹(tty Task Group)(325-j)에서 상기 가상실행시간(vRuntime)이 가장 낮은 제 m프로세스(335-m)가 선택된다(S330, S230 참조). First process 335-1,... , M process 335-m,... Among the nth process 335-n, the mth process 335-m has the lowest virtual execution time vRumtime (that is, the increase rate of the virtual execution time of the mth process 335-m is actually lower than that of the nth process 335-n. The slowest increase among the n processes compared to the execution time), the mth process having the lowest vRuntime in the selected jth tty Task Group 325-j. 335-m is selected (see S330 and S230).

이후, 상기 선택된 상기 가상실행시간(vRuntime)이 가장 낮은(즉, 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 가장 천천히 증가하는) m프로세스(335-m)의 가상 실행 시간이 증가되며, 상기 m프로세스(335-m)가 최대로 실행할 수 있는 시간을 모두 사용하거나 멈추게 되면 사용자 기반 중앙처리장치 리소스 스케쥴링을 재요청하고(S340) 다시 단계 S210부터 수행한다. Thereafter, the virtual execution time of the m process 335-m which has the lowest value of the selected virtual runtime vRuntime (that is, the median speed of the virtual execution time increases slowly compared to the actual execution time) is increased, and When the process m (335-m) runs out or stops to the maximum, the user-based central processing unit resource scheduling is re-requested (S340) and is performed again from step S210.

또는, 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링은 사용자 태스크 그룹의 가중치에 기반하여 공정성을 달성할 수 있다. Alternatively, user-based CPU resource scheduling for a surface computing system supporting a multi-user environment according to another embodiment of the present invention may achieve fairness based on a weight of a user task group.

상기 사용자 태스크 그룹은 관리자에 의해 가중치가 조절된다. 본 발명의 다른 실시예에 따른 중앙처리장치 리소스 스케쥴링 방법에서는, 가중치가 높을수록 가상 실행 시간이 실제 수행시간에 비해 더 천천히 증가하며, 가중치가 높은 프로세스(및/또는 사용자 태스크 그룹)가 가중치가 낮은 프로세스(및/또는 사용자 태스크 그룹)보다 가상 실행시간이 더 천천히 증가하므로 더 많은 시간을 할당받도록 리소스가 스케쥴링 될 수 있다. The user task group is weighted by an administrator. In the CPU resource scheduling method according to another embodiment of the present invention, the higher the weight, the slower the virtual execution time is compared to the actual execution time, and the higher the weight (and / or the user task group) the lower the weight. Since the virtual runtime grows more slowly than the process (and / or user task group), resources can be scheduled to allocate more time.

본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 과정은, 1번째 사용자의 태스크 그룹(User Task Group)(315-1), …, k번째 사용자의 태스크 그룹(User Task Group)(315-k), …, n번째 사용자의 태스크 그룹(User Task Group)(315-n) 중 상기 k번째 사용자의 태스크 그룹(User Task Group)(315-k)의 가중치가 가장 크다(즉, k번째 사용자의 태스크 그룹의 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 n개 사용자의 태스크 그룹 중에서 가장 천천히 증가한다)고 가정하면, 코어 태스크 그룹(Core Task Group)(305) 중 가중치가 가장 큰(즉, 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 n개 사용자의 태스크 그룹 중에서 가장 천천히 증가하는) 상기 k 번째 사용자의 태스크 그룹(User Task Group)(315-k)가 선택될 수 있다. According to another embodiment of the present invention, a user-based central processing unit resource scheduling process for a surface computing system supporting a multi-user environment includes a user task group 315-1,. , User Task Group 315-k of the k-th user,... The weight of the k-th user's task group 315-k is highest among the n-th user's task group 315-n (ie, the k-th user's task group). Assuming that the medium acceleration rate of virtual execution time increases most slowly among the task groups of n users compared to the actual execution time, the core weight of the Core Task Group 305 is the highest (ie, the virtual execution time). The k-th user's task group 315-k may be selected.

제 1 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-1), …, 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j), …, 제 n텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-n) 중 상기 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j)의 가중치가 가장 크다(즉, 제 j 텔레 타이프 라이터 태스크 그룹(325-j)의 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 n개 텔레 타이프 라이터 태스크 그룹 중에서 가장 천천히 증가한다)고 가정하면 상기 k 번째 사용자 태스크 그룹(315-k)에서 상기 가중치가 가장 큰(즉, 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 n개 텔레 타이프 라이터 태스크 그룹 중에서 가장 천천히 증가하는) 상기 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)(325-j)이 선택될 수 있다First teletyper task group 325-1,... J j tty Task Group 325-j,. The weight of the j th teletype writer task group 325-j is the largest among the n th typewriter task group 325-n (ie, the j th typewriter). The weighting rate in the k-th user task group 315-k is assumed to be the middle acceleration rate of the virtual execution time of the task group 325-j increases most slowly among the n teletypewriter task groups compared to the actual execution time. Is the largest (that is, the medium acceleration speed of the virtual execution time is the slowest increase among the n teletypewriter task groups compared to the actual execution time), the j-th teletypewriter task group 325-j is Can be chosen

제 1프로세스(335-1), …, 제 m프로세스(335-m), …, 제 n프로세스(335-n) 중 상기 제 m프로세스(335-m)이 가중치가 가장 크다(즉, 제 m프로세스(335-m)의 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 n개 프로세스들 중에서 가장 천천히 증가한다)고 가정하면, 상기 선택된 제 j 텔레 타이프 라이터 그룹(tty Task Group)(325-j)에서 가중치가 가장 큰 제 m프로세스(335-m)가 선택될 수 있다(S330, S230 참조). First process 335-1,... , M process 335-m,... Among the nth processes 335-n, the m th process 335-m has the largest weight (that is, the middle acceleration rate of the virtual execution time of the m th process 335-m is n compared to the actual execution time). The slowest among the processes), the m th process 335-m having the largest weight may be selected from the selected j th tty Task Group 325-j (S330). , S230).

이후, 상기 선택된 가중치가 가장 큰(즉, 가상 실행 시간의 중가 속도가 실제 수행시간에 비해 가장 천천히 증가하는) m프로세스(335-m)의 가상 실행 시간이 증가되며, 상기 m프로세스(335-m)가 최대로 실행할 수 있는 시간을 모두 사용하거나 멈추게 되면 사용자 기반 중앙처리장치 리소스 스케쥴링을 재요청하고(S340) 다시 단계 S210부터 수행할 수 있다. Then, the virtual execution time of the m process 335-m with the largest weight selected (i.e., the middle speed of the virtual execution time increases most slowly compared to the actual execution time) is increased, and the m process 335-m is increased. When all of the maximum time that can be executed or stopped is used, user-based CPU resource scheduling may be re-requested (S340) and the process may be performed again from step S210.

도 4는 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a user-based input / output (I / O) resource scheduling method for a surface computing system supporting a multi-user environment according to another embodiment of the present invention.

도 4를 참조하면, 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법은, 사용자 기반 사용자 입출력(I/O) 스케쥴링 요청이 있는지 판단(S400)한다. 여기서, 각 사용자마다 개별적인 사용자 입출력 그룹(User CFQ Group)을 가지기 때문에 사용자 별 스케쥴링이 가능하다. 상기 판단 결과, 상기 사용자 입출력(I/O) 스케쥴링 요청이 있는 경우, 최소의 가상 디스크 시간(vdisktime)을 가진 큐를 서치(search)하여 디바이스 입출력 그룹(Device CFQ Group) 중 가상 디스크 시간(vdisktime)이 가장 낮은 사용자 입출력 그룹(User CFQ Group)을 선택한다(S410). 상기 선택된 사용자 입출력 그룹에서 우선순위가 가장 높은 서비스 트리(service tree) 또는 프로세스를 선택한다(S420). 여기서, 우선순위는 실시간(RT, real time) 프로세스(521), 최선형(BE, best effort) 프로세스(522), 유휴(IDLE) 프로세스(523) 순으로 높을 수 있다.Referring to FIG. 4, in the user-based CPU scheduling method for a surface computing system supporting a multi-user environment according to another embodiment of the present invention, it is determined whether a user-based user input / output (I / O) scheduling request is performed ( S400). Here, since each user has a separate user input / output group (User CFQ Group), scheduling is possible for each user. As a result of the determination, when the user input / output (I / O) scheduling request is received, a virtual disk time (vdisktime) of the device CFQ group is searched by searching a queue having a minimum virtual disk time (vdisktime). The lowest user input / output group (User CFQ Group) is selected (S410). A service tree or a process having the highest priority is selected from the selected user input / output group (S420). Here, the priority may be higher in order of a real time (RT) process 521, a best effort (BE) process 522, and an idle (IDLE) process 523.

상기 선택된 서비스 트리(service tree) 또는 프로세스에서 각 입출력 큐(CFQ queue)마다 라운드 로빈(Round Robin) 방식으로 입출력 큐(CFQ queue)를 선택한다(S430). 여기서, 상기 라운드 로빈(Round Robin) 방식을 따를 경우, 각 입출력 큐(CFQ Queue)마다 어떤 시간 동안 - 특정한 타임 슬라이스(time slice) 동안 - I/O 데이터를 보내고 해당 타임 슬라이스가 끝나면 순차적으로 해당 입출력 큐(CFQ Queue)의 옆의 입출력 큐(CFQ Queue)를 선택하여 스케쥴링된다. 즉, 사용자 입출력 그룹(User CFQ Group)간에는 가상 디스크 시간(vdisktime)이 가장 낮은 사용자 입출력 그룹(User CFQ Group)이 선택되도록 스케쥴링하고, 사용자 입출력 그룹(User CFQ Group) 내 프로세스(또는 프로세스 입출력 큐(Process CFQ queue))는 라운드 로빈방식으로 스케쥴링된다.In the selected service tree or process, an CFQ queue is selected for each CFQ queue in a round robin manner (S430). In this case, according to the round robin method, each input / output queue (CFQ Queue) for a certain time-during a specific time slice-to send I / O data and when the corresponding time slice ends the corresponding input / output sequentially It is scheduled by selecting the input / output queue (CFQ Queue) next to the queue (CFQ Queue). In other words, the user CFQ group is scheduled to select the user CFQ group having the lowest virtual disk time (vdisktime), and the process (or process I / O queue) within the user CFQ group is selected. Process CFQ queue)) is scheduled in a round robin fashion.

상기 선택된 해당 사용자 입출력 그룹(user CFQ group)의 가상 디스크 시간을 증가시킨후(S440) 가상 디스크 시간을 모두 소모하면 가상 디스크 시간이 가장 낮은 또 다른 사용자 입출력 그룹(user CFQ group)으로 입출력 리소스가 할당된다. 각 단계 별 세부내용은 도 5를 이용하여 후술한다.After increasing the virtual disk time of the selected user CFQ group (S440), if all the virtual disk time is consumed, the I / O resource is allocated to another user CFQ group having the lowest virtual disk time. do. Details for each step will be described later with reference to FIG. 5.

도 4에서 전술한 바와 같이, 본 발명의 일 실시 예에 따른 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법에서는, 가상 디스크 시간(virtual disk time)이 가장 낮은 사용자 입출력 그룹(User CFQ Group)이 선택되어 스케쥴링되며, 가중치가 높을 수록 가상 디스크 시간이 실제 사용한 시간에 비해 더 천천히 증가하며, 가중치가 높은 사용자 입출력 그룹(User CFQ Group)이 가중치가 낮은 사용자 입출력 그룹(User CFQ Group)보다 가상 디스크 시간이 더 천천히 증가하므로 더 많은 시간을 할당받도록 리소스가 스케쥴링 될 수 있다. As described above with reference to FIG. 4, in the user-based input / output (I / O) resource scheduling method according to an embodiment of the present invention, the user CFQ group having the lowest virtual disk time is selected. The higher the weight, the slower the virtual disk time is compared to the actual time used, and the higher the weight of the user I / O group (User CFQ Group) than the lower weight I / O group (User CFQ Group). As it grows more slowly, resources can be scheduled to allocate more time.

도 5는 본 발명의 다른 실시 예에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법을 설명하기 위한 개념도이다.5 is a conceptual diagram illustrating a user-based input / output (I / O) resource scheduling method for a surface computing system supporting a multi-user environment according to another embodiment of the present invention.

도 5를 참조하면, 사용자 식별자 별 사용자 입출력 그룹(user CFQ group)이 할당되고, 상기 사용자가 생성한 모든 프로세스에 해당되는 프로세스 입출력 큐(process CFQ queue)를 상기 사용자 입출력 그룹에 할당한다. 여기서, 입출력 큐(CFQ Queue)란 리눅스 CFQ(Complete Fair Queuing) I/O 스케쥴러에서 관리하고 있는 입출력 큐(I/O Queue)로서, 프로세스마다 개별적으로 할당되는 입출력 큐(I/O Queue)이다. 프로세스 마다 고유한 입출력 큐(CFQ queue)를 가지고 있어서 프로세스 간의 공정성(fairness)을 보장할 수 있다. 입출력 그룹(CFQ group)이란 입출력 큐(CFQ queue)의 상위 계층이며 여러 프로세스를 하나의 그룹으로 묶어서 스케쥴링할 때 사용된다.Referring to FIG. 5, a user CFQ group for each user identifier is allocated, and a process CFQ queue corresponding to all processes created by the user is allocated to the user I / O group. Here, the I / O queue is an I / O queue managed by the Linux Complete Fair Queuing (CFQ) I / O scheduler, and is an I / O queue allocated to each process individually. Each process has its own input / output queue (CFQ queue) to ensure fairness between processes. I / O group (CFQ group) is the upper layer of the I / O queue (CFQ queue) and is used when scheduling by grouping several processes into one group.

상기 사용자 입출력 그룹은 상기 가중치 또는 입출력 큐(CFQ queue)의 유형에 따라 특정 서비스 트리(service tree)를 통해 따로 관리된다. 여기서, 입출력 큐(CFQ queue)의 유형은 실시간(RT, real time) 프로세스(521), 최선형(BE, best effort) 프로세스(522), 유휴(IDLE) 프로세스(523)가 될 수 있다. 또는 입출력 큐(CFQ queue)의 유형은 동기(Sync), 비동기(async), 동기-아이들(sync-idle) 또는 동기-노아이들(sync-noidle)이 될 수 있다. 자세한 설명은 도 5를 참조하여 후술한다. The user I / O group is separately managed through a specific service tree according to the weight or the type of the I / O queue. Here, the type of input / output queue (CFQ queue) may be a real time (RT) process 521, a best effort (BE) process 522, and an idle (IDLE) process 523. Alternatively, the type of the input / output queue may be sync, async, sync-idle, or sync-noidle. A detailed description will be described later with reference to FIG. 5.

도 5를 참조하면, 1번째 사용자 입출력 그룹(User CFQ Group)(515-1), …, k번째 사용자 입출력 그룹(User CFQ Group)(515-k), …, n번째 사용자 입출력 그룹(User CFQ Group)(515-n) 중 상기 k번째 사용자 입출력 그룹(User CFQ Group)(515-k)의 가상 디스크 시간이 가장 낮다고 가정하면, 가상 디스크 시간(vdisktime)이 가장 낮은 상기 k 번째 사용자 입출력 그룹(User CFQ Group)(515-k)이 선택된다(S510, 단계 S410 참조). 5, a first user input / output group (User CFQ Group) 515-1,... , k th User CFQ Group 515-k,... Assuming that the virtual disk time of the k-th user input / output group (515-k) is the lowest among the nth user input / output group (515-n), the virtual disk time (vdisktime) is The lowest k-th user CFQ Group 515-k is selected (S510, see step S410).

상기 선택된 사용자 입출력 그룹 내에서 우선순위가 가장 높은 서비스 트리(service tree) 또는 프로세스가 선택된다(S420 참조). 상기 프로세스는 실시간(RT, real time) 프로세스(521), 최선형(BE, best effort) 프로세스(522), 유휴(IDLE) 프로세스(523) 중 적어도 하나가 될 수 있다. 예를 들어, 우선 순위는 실시간(RT, real time) 프로세스(521), 최선형(BE, best effort) 프로세스(522), 유휴(IDLE) 프로세스(523) 순으로 높을 수 있다. The service tree or process having the highest priority in the selected user input / output group is selected (see S420). The process may be at least one of a real time (RT) process 521, a best effort (BE) process 522, and an idle (IDLE) process 523. For example, the priority may be higher in order of real time (RT) process 521, best effort (BE) process 522, and idle (IDLE) process 523.

실시간(RT, real time) 프로세스(521), 최선형(BE, best effort) 프로세스(522), 유휴(IDLE) 프로세스(523) 중 실시간(RT, real time) 프로세스(521)가 우선순위(priority)가 가장 높다고 가정하면, 상기 K 번째 사용자 입출력 그룹(515-k)에서 우선순위가 가장 높은 프로세스인 실시간(RT, real time) 프로세스(521)가 선택된다(S520, 단계 S420 참조). 여기서, 상기 실시간(RT) 프로세스(521)는 상기 최선형(BE) 프로세스(522) 및 상기 유휴(IDLE) 프로세스(523) 보다 우선순위가 높기 때문에 상기 실시간(RT) 프로세스(521)는 항상 상기 최선형(BE) 프로세스(522)나 상기 유휴(IDEL) 프로세스(523) 보다 먼저 실행될 수 있다.The real time (RT) process 521 among the real time (RT) process 521, the best effort (BE) process 522, and the idle (IDLE) process 523 is a priority. Is assumed to be the highest, a real time (RT) process 521, which is the highest priority process, is selected in the K-th user I / O group 515-k (see S520 and S420). Here, the real time (RT) process 521 has a higher priority than the BE process 522 and the idle process 523, so the RT process 521 is always the best type. It may be executed before the BE process 522 or the idle process 523.

I/O의 종류(또는 유형)에는 I/O 데이터(확인요망)를 보내고 프로세스가 I/O 동작이 마칠때까지 기다리는 동기(Sync)와, I/O 동작이 마칠 때까지 기다리지 않고 그 다음 코드를 실행하는 비동기(async)가 있다. 동기(sync)이면서 요청하는 데이터가 순차적이면 동기-아이들(sync-idle) 순차적이지 않으면 동기-노아이들(sync-noidle), I/O가 비동기(async)하면 비동기(async)라는 큐로 I/O가 할당 또는 삽입된다. The type (or type) of I / O sends the I / O data (confirmation) and the process waits for the I / O operation to complete, and the next code without waiting for the I / O operation to complete. There is async to run. If the requested data is synchronous and is sequential, the sync-idle is not sequential. If it is not sequential, it is sync-noidle.If the I / O is async, I / O is queued as async. Is assigned or inserted.

이후, 도 4의 S430에서 전술한 바와 같이, 사용자 입출력 그룹(User CFQ Group) 내 프로세스(또는 프로세스 입출력 큐(Process CFQ queue))는 라운드 로빈 방식으로 스케쥴링 되므로, 도 5에서 라운드 로빈 방식으로 프로세스 입출력 큐(Process CFQ Queue)가 선택(S530)되며, 상기 제 k 번째 사용자 입출력 그룹(515-k)의 가상 디스크 시간을 증가시킨다(S540, 단계 S440 참조). 가상 디스크 시간을 모두 소모하면 가상 디스크 시간이 가장 낮은 또 다른 사용자 입출력 그룹(user CFQ group)으로 입출력 리소스가 할당된다. 라운드 로빈(Round Robin) 방식으로 입출력 큐(CFQ Queue)가 선택될 경우, 입출력 큐(CFQ Queue)별로 우선순위(priority)에 따라서 특정한 타임 슬라이스(time slice)를 가지고 해당 타임슬라이스를 모두 소모하면 순서대로 그 옆의 입출력 큐(CFQ Queue)로 스케쥴링된다. Subsequently, as described above in S430 of FIG. 4, since the process (or process input / output queue) in the user input / output group (User CFQ Group) is scheduled in a round robin manner, the process input / output in a round robin manner in FIG. 5. The process CFQ queue is selected (S530), and the virtual disk time of the k th user I / O group 515-k is determined. To increase (see step S540, step S440). When the virtual disk time is exhausted, I / O resources are allocated to another user CFQ group with the lowest virtual disk time. When CFQ Queue is selected by round robin, if all the time slices are consumed with a specific time slice according to the priority of each CFQ Queue It is scheduled to be next to the input / output queue (CFQ Queue).

도 6은, 본 발명의 실시예들에 따른 다중 사용자 환경에서 사용자 기반 리소스 스케쥴링 방법과 비교하기 위한 종래 기술에 따른 중앙처리장치(CPU) 리소스 처리 방식을 도시한다.6 illustrates a CPU processing method according to the prior art for comparing with a user-based resource scheduling method in a multi-user environment according to embodiments of the present invention.

도 6을 참조하면, 기존 리눅스 시스템에서는 FSS(Fair Share Scheduler) 스케줄러를 사용하여 사용자들에게 가중치 기반의 유연한 리소스 할당을 제공하기보다는 프로세스 별 공정성만을 목적으로 중앙처리장치 및 입출력 리소스 스케줄링을 제공한다. 도 6을 참조하면, 제 1사용자(610)는 중앙처리장치 리소스를 10% 할당 받고, 제 2사용자(620)는 중앙처리장치 리소스를 20% 할당 받으며, 제 3사용자(630)는 리소스를 30% 할당 받았고, 제 4사용자(640)는 리소스를 40% 할당 받았다. 제 1 프로세스 내지 제 10 프로세스는 모두 동일한 중앙처리장치 리소스를 10% 할당 받은 것을 도시한다.Referring to FIG. 6, the existing Linux system uses the FSS scheduler to provide the central processing unit and I / O resource scheduling for the purpose of process-specific fairness rather than providing weight-based flexible resource allocation to users. Referring to FIG. 6, the first user 610 is allocated 10% of the CPU resources, the second user 620 is allocated 20% of the CPU resources, and the third user 630 receives 30% of the CPU resources. The fourth user 640 received 40% of the resource. The first to tenth processes all show 10% allocation of the same CPU resource.

만약 상기 사용자 간 공정성과 성능 격리, 그리고 가중치 할당을 위해 기존의 cgroup 인터페이스를 통하여 사용자 별 그룹을 생성한다면, 프로세스가 생성될 때 자동으로 들어가는 그룹(autogroup)으로부터 상기 사용자 별 그룹으로의 불필요한 이주가 발생한다. If a user-specific group is created through the existing cgroup interface for fairness, performance isolation, and weight assignment between users, unnecessary migration occurs from the autogroup that is automatically entered when the process is created. do.

그러나, 본 발명에서는 사용자 식별자(uid)를 기반으로 상기 사용자에 대한 개별 리소스 그룹을 할당하여 상기 사용자가 애플리케이션을 실행할 때 상기 사용자의 모든 프로세스를 상기 사용자 그룹에 자동으로 할당하여 상기 문제점들을 해결한다.However, the present invention solves the problems by allocating an individual resource group for the user based on a user identifier (uid) and automatically assigning all processes of the user to the user group when the user executes an application.

도 7은, 본 발명의 다른 실시 예에 따른 사용자 기반 중앙처리장치(CPU) 스케줄링 방식을 도시한다. 7 illustrates a user-based central processing unit (CPU) scheduling scheme according to another embodiment of the present invention.

도 7을 참조하면, 본 발명에서는 사용자 식별자 기반으로 사용자 태스크 그룹(user task group)을 할당하고, 상기 사용자 식별자가 같은 프로세스들을 같은 상기 사용자 태스크 그룹에 할당한다. 상기 사용자 태스크 그룹은 또 다른 사용자 태스크 그룹들과 독립적으로 실행되기 때문에 상기 사용자 식별자 별로 중앙처리장치 리소스 스케쥴링이 가능하다. Referring to FIG. 7, the present invention allocates a user task group based on a user identifier, and assigns processes having the same user identifier to the same user task group. Since the user task group is executed independently from other user task groups, CPU resource scheduling is possible for each user identifier.

도 7을 참조하면, 제1 사용자 태스크 그룹(710), 제2 사용자 태스크 그룹(720) 및 제3 사용자 태스크 그룹(730) 그리고 제4 사용자 태스크 그룹(740)은 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 환경에서 중앙처리장치 리소스가 각각 25%씩 할당된 것을 도시한다. Referring to FIG. 7, the first user task group 710, the second user task group 720, and the third user task group 730 and the fourth user task group 740 are surface computing supporting a multi-user environment. In the user environment for the system, CPU resources are allocated 25% each.

또한, 도 7을 참조하면, 제 1프로세스(711)는 상기 제 1사용자 태스크 그룹(710)에 할당되며 상기 제 1프로세스(711)는 단독으로 상기 제 1사용자 태스크 그룹(710)에 할당된 중앙처리장치 리소스를 최대 25%까지 할당 받은 예를 나타낸다.7, a first process 711 is assigned to the first user task group 710 and the first process 711 is a centrally assigned to the first user task group 710 alone. The following shows an example in which up to 25% of processor resources are allocated.

마찬가지로, 도 7을 참조하면, 제2 프로세스(721)와 제3 프로세스(722)는 제 2 사용자 태스크 그룹(720)에 할당되며 동일한 사용자 식별자를 갖는다. 또한, 상기 제2 사용자 태스크 그룹(720)에 할당된 중앙처리장치 25%의 리소스를 상기 제 2프로세스(721)와 상기 제 3프로세스(722)가 각각 최대 12.5%씩 할당 받은 예를 나타낸다.Similarly, referring to FIG. 7, the second process 721 and the third process 722 are assigned to the second user task group 720 and have the same user identifier. In addition, the second processor 721 and the third process 722 are allocated a maximum of 12.5% resources of the central processing unit 25% allocated to the second user task group 720, respectively.

또한, 도 7을 참조하면, 제 4 프로세스(731)와 제 5프로세스(732) 및 제 6프로세스(733)는 제 3사용자 태스크 그룹(730)에 할당되며 동일한 사용자 식별자를 갖는다. 상기 제 3사용자 태스크 그룹(730)에 할당된 중앙처리장치 25%의 리소스를 상기 제 4 프로세스(731)와 상기 제 5프로세스(732) 및 상기 제 6프로세스(733)는 각각 최대 8.3%씩 할당 받은 것을 도시한다.In addition, referring to FIG. 7, the fourth process 731, the fifth process 732, and the sixth process 733 are assigned to the third user task group 730 and have the same user identifier. The fourth process 731, the fifth process 732, and the sixth process 733 each allocate up to 8.3% of resources of the central processing unit 25% allocated to the third user task group 730. Show what you received.

또한, 도 7을 참조하면, 제 7 프로세스(741)와 제 8프로세스(742) 및 제 9프로세스(743) 그리고 제 10프로세스(744)는 제 4사용자 태스크 그룹(740)에 할당되며 동일한 사용자 식별자를 갖는다. 도 7을 참조하면, 상기 제 4사용자 태스크 그룹(740)에 할당된 중앙처리장치 25%의 리소스를 상기 제 7 프로세스(741)와 상기 제 8프로세스(742) 및 상기 제 9프로세스(743) 그리고 상기 제 10프로세스(744)는 각각 최대 6.25%씩 할당 받은 예를 나타낸다. 7, the seventh process 741, the eighth process 742, the ninth process 743, and the tenth process 744 are assigned to the fourth user task group 740 and have the same user identifier. Has Referring to FIG. 7, resources of the central processing unit 25% allocated to the fourth user task group 740 are allocated to the seventh process 741, the eighth process 742, and the ninth process 743. The tenth process 744 shows an example of being allocated at most 6.25%.

도 7을 참조하면, 종래기술은 tty 혹은 프로세스 별로 생성되던 리소스 그룹 대신에 사용자 별 리소스 그룹을 생성하여 사용자 간 공정성 및 성능 격리를 지원한 결과를 도시한다. Referring to FIG. 7, the prior art shows a result of supporting per-user fairness and performance isolation by creating a resource group for each user instead of the resource group generated for each tty or process.

본 발명에서는 상기 사용자 식별자를 기준으로 사용자 태스크 그룹을 생성하고 상기 사용자 태스크 그룹에서 애플리케이션을 실행될 때 상기 사용자 태스크 그룹별로 프로세스를 자동으로 할당함으로써 전술한 바와 같은 프로세스의 불필요한 이주(migration) 문제를 해결할 수 있다. According to the present invention, an unnecessary migration problem of the process can be solved by generating a user task group based on the user identifier and automatically allocating processes for each user task group when an application is executed in the user task group. have.

도 8은, 본 발명의 다른 실시 예에 따른 사용자 기반 가중치를 활용한 중앙처리장치(CPU) 스케줄링 방식을 도시한다. FIG. 8 illustrates a CPU scheduling method using user-based weights according to another embodiment of the present invention.

도 8을 참조하면, 본 발명의 다른 실시 예에 따른 사용자 기반 가중치를 활용한 중앙처리장치(CPU) 스케줄링 방식은 사용자 식별자 기반으로 사용자 태스크 그룹(user task group)을 생성하고, 상기 사용자 태스크 그룹별로 가중치 기반의 중앙처리장치 리소스 스케줄링을 제공한다.Referring to FIG. 8, a CPU scheduling method using a user-based weight according to another embodiment of the present invention generates a user task group based on a user identifier, and generates a user task group for each user task group. It provides weight based CPU resource scheduling.

도 8은 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 스케줄링 중앙처리장치 리소스 가중치를 제 1사용자 태스크 그룹(810), 제 2사용자 태스크 그룹(820) 및 제 3사용자 태스크 그룹(830)에 각각 50%, 25%, 25% 비율로 즉, 2:1:1 비율로 가중치를 할당한 예를 나타낸다. FIG. 8 illustrates user-based scheduling central processor resource weights for a surface computing system supporting a multi-user environment in a first user task group 810, a second user task group 820, and a third user task group 830. An example of assigning weights at 50%, 25%, and 25% ratios, that is, at 2: 1: 1 ratios, respectively.

제 1프로세스(811)와 제 2프로세스(812)는 제 1사용자 태스크 그룹(810)에 할당되며 동일한 사용자 식별자를 갖는다. 또한, 상기 제 1사용자 태스크 그룹(810)에 할당된 중앙처리장치 50%의 리소스를 상기 제 1프로세스(811)와 상기 제 2프로세스(812)가 각각 최대 25%씩 할당 받아 리소스를 사용할 수 있다. The first process 811 and the second process 812 are assigned to the first user task group 810 and have the same user identifier. In addition, the first process 811 and the second process 812 may each allocate up to 25% of resources of the central processing unit 50% allocated to the first user task group 810 to use the resources. .

제 3프로세스(821)와 제 4프로세스(822)는 제 2사용자 태스크 그룹(820)에 할당되며 동일한 사용자 식별자를 갖는다. 또한, 상기 제 2사용자 태스크 그룹(820)에 할당된 중앙처리장치 25%의 리소스를 상기 제 3프로세스(821)와 상기 제 4프로세스(822)가 각각 최대 12.5%씩 할당 받아 리소스를 사용할 수 있다. The third process 821 and the fourth process 822 are assigned to the second user task group 820 and have the same user identifier. In addition, the third process 821 and the fourth process 822 may each allocate up to 12.5% of the resources of the central processing unit 25% allocated to the second user task group 820 to use the resources. .

제 5프로세스(831)와 제 6프로세스(832)는 제 3사용자 태스크 그룹(830)에 할당되며 동일한 사용자 식별자를 갖는다. 또한, 상기 제 3사용자 태스크 그룹(830)에 할당된 중앙처리장치 25%의 리소스를 상기 제 5프로세스(831)와 상기 제 6프로세스(832)가 각각 최대 12.5%씩 할당 받은 것을 도시한다. The fifth process 831 and the sixth process 832 are assigned to the third user task group 830 and have the same user identifier. Also, the fifth process 831 and the sixth process 832 are allocated up to 12.5% of resources of the central processing unit 25% allocated to the third user task group 830, respectively.

즉, 도 8에 도시된 바와같이, 상기 제 1사용자 태스크 그룹(810)에 속해 있는 상기 제 1프로세스(811)와 상기 제2프로세스(812)는 상기 제 2사용자 태스크 그룹(820)에 할당 되어있는 상기 제 3프로세스(821)와 상기 제 4프로세스(822) 그리고 상기 제 3사용자 태스크 그룹(830)에 할당되어 있는 상기 제 5프로세스(831)와 상기 제 6프로세스(832)와 비교했을 때 최대 2배 이상 중앙처리장치 리소스를 할당 받아 리소스를 사용할 수 있다. That is, as shown in FIG. 8, the first process 811 and the second process 812 belonging to the first user task group 810 are allocated to the second user task group 820. Maximum compared with the fifth process 831 and the sixth process 832 assigned to the third process 821, the fourth process 822, and the third user task group 830. Allocate more than twice the CPU resources to use the resources.

도 9a 내지 도 9d는 본 발명을 위한 사용자 공정성과 사용자 간 성능 격리를 제공함을 검증하기 위해 4명 내지 5명의 사용자가 동일한 시스템의 리소스를 요청하는 환경을 구축하여 실험을 진행한 결과를 도시한다.9A to 9D illustrate the results of experiments by establishing an environment in which four to five users request resources of the same system to verify that the user fairness and performance isolation between users are provided for the present invention.

모든 실험에는 Ubuntu 16.04 LTS 64bit 운영체제가 사용되었고, 최신 버전의 리눅스 커널 4.11 버전을 수정하여 사용자 별 CPU, I/O 리소스 할당을 구현하였다.In all experiments, Ubuntu 16.04 LTS 64bit operating system was used, and the latest Linux kernel version 4.11 was modified to implement user-specific CPU and I / O resource allocation.

또한 공정성 실험의 중앙처리장치 벤치마크 프로그램으로는 비디오 인코딩 프로그램인 mencoder를, I/O 벤치마크 프로그램으로는 I/O 성능 테스트 프로그램인 fio를 사용하였다. 성능 격리 실험에는 추가로 stress-ng 툴을 이용하여 악의적인 사용자에 의해 전반적인 중앙처리장치 및 입출력 리소스 성능을 하락시키도록 설계하였다. 모든 프로세스는 독립적 터미널에서 실행되었다.Also, we used mencoder, a video encoding program, and fio, an I / O performance test program, as an I / O benchmark program. In the performance isolation experiment, the stress-ng tool was used to reduce the overall CPU and I / O resource performance by malicious users. All processes were run in an independent terminal.

도 9a를 참조하면, 도 9a는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 공정성 실험 결과로써 4명의 사용자가 1개, 2개, 3개, 4개의 상기 중앙처리장치 벤치마크 프로그램 실행한 결과를 도시한다. Referring to FIG. 9A, FIG. 9A illustrates four, one, two, three, four, four CPU processors as a result of a user-based CPU resource fairness experiment for a surface computing system supporting a multi-user environment. The result of mark program execution is shown.

먼저 상기 중앙처리장치 리소스 공정 실험과 관련된 종래의 기법을 활용하여, 제 2사용자, 제 3사용자, 제 4사용자가 제 1사용자의 2.02배, 3.04배, 4.06배의 CPU 리소스를 할당받았다. 상기 종래의 기법은 사용자를 고려하지 않고 단순히 실행중인 tty(teletypewriter) 또는 프로세스의 수에 따라 리소스를 할당하기에, 상기 사용자는 실행중인 프로그램 수에 비례하는 불공정한 리소스를 할당받는다. 그러나, 본 발명의 실시 예들에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 공정성 실험 결과 제 1 사용자, 제 2사용자, 제 3사용자, 제 4사용자는 18% 이하 차이 내에서 동일한 CPU 리소스를 할당 받게 된다. 즉, 종래의 기법은 프로세스 기반이므로 프로세스끼리 공정성을 제공하며, 그래서 더 많은 프로세스를 가지는 사용자는 총 처리량이 다른 사용자에 비해 더 많다. 하지만 본 발명의 실시예들에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 스케쥴링 방법은 사용자끼리 공정성을 제공하므로 하나의 사용자가 구동하는 모든 프로세스들의 총 처리량(도 9a의 경우 인코딩 처리량)의 합은 사용자끼리 유사하다(18% 이내). First, using the conventional techniques related to the CPU processing experiment, the second user, the third user, and the fourth user are allocated CPU resources of 2.02 times, 3.04 times, and 4.06 times of the first user. The conventional technique simply allocates resources according to the number of running ttys (teletypewriters) or processes without considering users, so that users are allocated unfair resources proportional to the number of running programs. However, as a result of a user-based CPU resource fairness experiment for a surface computing system supporting a multi-user environment according to embodiments of the present invention, the first user, the second user, the third user, and the fourth user are within 18% of the difference. Will be allocated the same CPU resource. In other words, the conventional technique is process-based, thus providing fairness between processes, so that users with more processes have more total throughput than other users. However, the user-based CPU resource scheduling method for the surface computing system supporting the multi-user environment according to the embodiments of the present invention provides fairness among users so that the total throughput of all processes driven by one user (see FIG. 9A). In this case, the sum of encoding throughputs) is similar between users (within 18%).

도 9b를 참조하면, 도 9b는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 성능 격리 실험으로써, 악의적인 사용자가 고의로 다량의 프로세스를 수행할 때 다른 사용자의 성능에 얼마나 영향을 끼치는 지를 보여주며, 도 9b는 5명의 사용자가 10개의 상기 중앙처리 장치 스트레스 프로그램을 실행한 결과를 도시한다. 도 9b는 도 9a와 실험 환경 및 프로세스 수는 동일하지만 추가적으로 악의적인 사용자가 다량의 프로세스를 수행하여 CPU 리소스를 요청하는 경우를 나타낸다. 상기 중앙처리장치 리소스 성능 격리 실험에서, 종래 기법은 상기 사용자 별 성능 격리를 제공하지 못하기 때문에 악의적인 프로그램에 의해 시스템 전반적으로 성능이 하락하며 기존의 상기 사용자들의 성능에도 악영향을 미친다. 그러나 본 발명의 실시예들에 따르면, 상기 사용자 별로 독자적인 리소스 그룹을 소유하고 있기 때문에 상기 사용자 별 성능 격리를 보장해준다. 결과적으로 본 발명에 따른 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 중앙처리장치 리소스 성능 격리 실험에 따르면, 제 1사용자, 제 2사용자, 제 3사용자, 제 4사용자의 인코딩 처리량 총합은 상기 종래 기법에 비해 56% 향상되었다. 즉, 도 9b에서 본 발명의 실시 예들에 따른 사용자 기반 중앙처리장치 리소스 스케쥴링 방법은 전체 사용자(제1 내지 제4 사용자)의 전체 프로세스의 총처리량(도 9b의 경우 인코딩 처리량)의 합을 기존 방식의 전체 사용자(제1 내지 제4 사용자)의 전체 프로세스의 총처리량(도 9b의 경우 인코딩 처리량)의 합과 비교해 보면 기존 방식에 비해 약 56% 높다. 이는 본 발명의 실시 예들에 따른 사용자 기반 중앙처리장치 리소스 스케쥴링 방법이 사용자 간의 성능 격리를 제공해주어서 기존 방식에 비해 악의적인 사용자에 의해 발생하는 성능저하가 적기 때문이다. Referring to FIG. 9B, FIG. 9B is As a user-based central processor resource performance isolation experiment for a surface computing system supporting a multi-user environment, it shows how a malicious user intentionally affects the performance of other users when performing a large number of processes. The results of five users running the ten CPU stress programs are shown. FIG. 9B illustrates a case where the experimental environment and the number of processes are the same as those of FIG. 9A, but additionally, a malicious user requests a CPU resource by performing a large number of processes. In the CPU resource performance isolation experiment, since the conventional technique does not provide the performance isolation for each user, the overall performance of the system is degraded by a malicious program and adversely affects the performance of existing users. However, according to embodiments of the present invention, since the user owns a unique resource group, the user-specific performance is guaranteed. As a result, according to a user-based central processing unit resource performance isolation experiment for a surface computing system supporting a multi-user environment according to the present invention, the total encoding throughput of the first user, the second user, the third user, and the fourth user is 56% improvement over the prior art. That is, in FIG. 9B, in the user-based CPU processing resource scheduling method according to the embodiments of the present invention, the sum of the total throughputs (encoding throughput in the case of FIG. 9B) of the entire processes of the entire users (first to fourth users) is conventional. Compared to the sum of the total throughputs (encoding throughput in FIG. 9B) of the entire processes of the entire users (first to fourth users) of, are about 56% higher than the conventional scheme. This is because the user-based central processing unit resource scheduling method according to the embodiments of the present invention provides performance isolation between users, thereby reducing performance degradation caused by malicious users compared to the conventional method.

도 9c를 참조하면, 도 8c는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 공정 실험 결과로써, 4명의 사용자가 1개, 2개, 3개, 4개의 상기 I/O 벤치마크 프로그램을 실행한 결과를 도시한다. 상기 사용자 기반 입출력(I/O) 리소스 공정 실험과 관련 종래의 기법에서, 제 2사용자, 제 3사용자, 제4사용자가 제 1사용자의 2.11배, 3.11배, 4.15배의 I/O 리소스를 할당 받았다. 본 발명의 실시예들에 따르면, 상기 사용자에 따라 일차적으로 리소스를 할당하기에 사용자들은 공정한 리소스를 할당 받을 수 있다. 즉, 제 1사용자, 제 2사용자, 제 3사용자, 제 4사용자는 15% 이하 차이 내에서 동일한 I/O 리소스를 할당 받게 된다. Referring to FIG. 9C, FIG. 8C is a result of a user-based input / output (I / O) resource processing experiment for a surface computing system supporting a multi-user environment, in which four users have one, two, three, four, Shows the results of running the I / O benchmark program. In the conventional technique related to the user-based input / output (I / O) resource processing experiment, the second user, third user, and fourth user allocates 2.11 times, 3.11 times, and 4.15 times I / O resources of the first user. received. According to embodiments of the present invention, users may be allocated a fair resource to allocate resources primarily according to the user. That is, the first user, the second user, the third user, and the fourth user are allocated the same I / O resource within 15% or less.

도 9d를 참조하면, 도 8d는 다중 사용자 환경을 지원하는 서피스 컴퓨팅 시스템을 위한 사용자 기반 입출력(I/O) 리소스 성능 격리 실험 결과로써 악의적인 사용자가 고의로 다량의 프로세스를 수행할 때 다른 사용자의 성능에 얼마나 영향을 끼치는 지를 보여주며, 도 9d는 5명의 사용자가 10개의 상기 I/O 스트레스 프로그램을 실행한 결과를 도시한다. 본 발명은 상기 5명의 사용자 별로 독자적인 리소스 그룹을 소유하고 있기 때문에 상기 5명의 사용자 별 성능 격리를 보장해준다. 즉, 본 발명에 따르면, 제 1사용자, 제 2사용자, 제 3사용자, 제 4사용자의 읽기 성능 처리량의 총합은 종래 기법에 비해 66% 향상된 결과를 도시한다. 즉, 도 9d에서 본 발명의 실시 예들에 따른 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법은 전체 사용자(제1 내지 제4 사용자)의 전체 프로세스의 총처리량(도 9d의 경우 읽기 성능 처리량)의 합을 기존 방식의 전체 사용자(제1 내지 제4 사용자)의 전체 프로세스의 총처리량(도 9d의 경우 읽기 성능 처리량)의 합과 비교해 보면 기존 방식에 비해 약 66% 높다. 이는 본 발명의 실시 예들에 따른 사용자 기반 입출력(I/O) 리소스 스케쥴링 방법이 사용자 간의 성능 격리를 제공해주어서 기존 방식에 비해 악의적인 사용자에 의해 발생하는 성능저하가 적기 때문이다. Referring to FIG. 9D, FIG. 8D is a result of a user-based input / output (I / O) resource performance isolation experiment for a surface computing system supporting a multi-user environment, and the performance of another user when a malicious user intentionally performs a large amount of processes. Figure 9d shows the results of five users running the ten I / O stress programs. Since the present invention owns its own resource group for each of the five users, it ensures performance isolation for each of the five users. That is, according to the present invention, the sum of the read performance throughputs of the first user, the second user, the third user, and the fourth user shows a 66% improvement over the conventional technique. That is, in FIG. 9D, the method for scheduling user-based input / output (I / O) resources according to the embodiments of the present invention is based on the total throughput (read performance throughput in the case of FIG. 9D) of all processes of all users (first to fourth users). Comparing the sum with the sum of the total throughput (read performance throughput in the case of FIG. 9D) of all processes of the conventional users (first to fourth users) is about 66% higher than the conventional method. This is because the user-based input / output (I / O) resource scheduling method according to the embodiments of the present invention provides performance isolation between users, thereby reducing performance degradation caused by malicious users compared to the conventional method.

305: 코어 태스크 그룹(Core Task Group)
315-1: 1번째 사용자 태스크 그룹(User Task Group)
315-k: k번째 사용자 태스크 그룹(User Task Group)
315-n: n번째 사용자 태스크 그룹(User Task Group)
325-1: 제 1 텔레 타이프 라이터 태스크 그룹(tty Task Group)
325-j: 제 j 텔레 타이프 라이터 태스크 그룹(tty Task Group)
325-n: 제 n 텔레 타이프 라이터 태스크 그룹(tty Task Group)
335-1: 제 1 프로세스
335-m: 제 m 프로세스
335-1: 제 n 프로세스
505: 디바이스 CFQ 그룹(Device CFQ Group)
515-1: 1번째 사용자 입출력 그룹(User CFQ Group)
515-k: k번째 사용자 입출력 그룹(User CFQ Group)
515-n: n번째 사용자 입출력 그룹(User CFQ Group)
521: 실시간(RT) 프로세스
522: 최선형(BE) 프로세스
523: 유후(IDLE) 프로세스
535-1: 제 1 프로세스 입출력 큐(Process CFQ Queue)
535-j: 제 j 프로세스 입출력 큐(Process CFQ Queue)
535-k: 제 m 프로세스 입출력 큐(Process CFQ Queue)
305: Core task group
315-1: First user task group
315-k: kth user task group
315-n: nth user task group
325-1: First Teletyper Task Group
325-j: jth teletypewriter task group
325-n: nth teletypewriter task group
335-1: First process
335-m: m process
335-1: nth process
505: Device CFQ Group
515-1: User CFQ Group 1st
515-k: kth user input / output group (User CFQ Group)
515-n: nth user input / output group (User CFQ Group)
521: Real-time (RT) process
522: Best Practices (BE) process
523: IDLE process
535-1: Process CFQ Queue
535-j: Process CFQ Queue
535-k: Process m / c queue (Process CFQ Queue)

Claims (20)

다중 사용자 환경에서 컴퓨팅 시스템에 의해서 수행되는 사용자 기반 리소스 스케쥴링 방법에 있어서, 상기 컴퓨팅 시스템은
사용자 식별자(UID: user id)를 기준으로 각 사용자에 대한 개별 리소스 그룹을 할당하는 단계; 및
상기 사용자가 애플리케이션을 실행할 때 상기 애플리케이션에 대응하는 모든 프로세스를 상기 사용자의 개별 리소스 그룹에 자동으로 할당하는 단계를 포함하되,
상기 리소스 스케쥴링 방법은 입출력(I/O) 리소스 스케쥴링 방법을 포함하고,
상기 각 사용자에 대한 개별 리소스 그룹을 할당하는 단계는 상기 사용자 식별자 별로 사용자 입출력 그룹을 할당 하는 단계를 포함하며,
상기 입출력(I/O) 리소스 스케쥴링 방법은
상기 사용자 입출력 그룹을 할당 하는 단계;
상기 사용자 식별자가 같은 프로세스들을 같은 상기 사용자 입출력 그룹에 할당하는 단계; 및
상기 사용자 식별자를 기준으로 가중치를 부여해 상기 가중치를 기초로 상기 입출력(I/O) 리소스를 상기 사용자에게 차등적으로 제공하는 단계를 포함하는, 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.
In the user-based resource scheduling method performed by the computing system in a multi-user environment, the computing system is
Allocating an individual resource group for each user based on a user identifier (UID); And
Automatically allocating all processes corresponding to the application to an individual resource group of the user when the user executes the application,
The resource scheduling method includes an input / output (I / O) resource scheduling method,
Allocating an individual resource group for each user includes allocating a user input / output group for each user identifier.
The I / O resource scheduling method is
Allocating the user input / output group;
Assigning processes with the same user identifier to the same user input / output group; And
And assigning weights based on the user identifiers to differentially provide the input / output (I / O) resources to the user based on the weights.
삭제delete 삭제delete 제 1항에 있어서, 상기 리소스 스케쥴링 방법은 중앙처리장치(CPU) 리소스 스케쥴링 방법을 더 포함하고, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 사용자 식별자를 기준으로 가중치를 부여해 상기 가중치를 기초로 중앙처리장치 리소스를 상기 사용자에게 차등적으로 제공하는 단계를 더 포함하는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.2. The method of claim 1, wherein the resource scheduling method further comprises a CPU resource scheduling method, wherein the CPU resource scheduling method assigns a weight based on the user identifier and based on the weight. And differentially providing a central processing unit resource to the user. 제 4항에 있어서, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 가중치가 높을수록 가상 실행시간이 실제 수행시간에 비해 더 천천히 증가하고, 가중치가 낮을수록 상기 가상 실행시간이 실제 수행시간에 비해 더 빨리 증가하는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.5. The CPU resource scheduling method of claim 4, wherein the higher the weight, the virtual execution time increases more slowly than the actual execution time, and the lower the weight, the virtual execution time is greater than the actual execution time. A user-based resource scheduling method supporting a multi-user environment characterized by rapid growth. 제 4항에 있어서, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 제1 가중치를 가진 프로세스 또는 제2 가중치를 가진 사용자 태스크 그룹이 상기 제1 가중치보다 낮은 제3 가중치를 가진 프로세스 또는 상기 제1 가중치보다 낮은 제4 가중치를 가진 사용자 태스크 그룹보다 가상 실행시간이 더 천천히 증가하도록 함으로써 더 많은 시간을 할당 받도록 리소스가 스케쥴링 되는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.
The method of claim 4, wherein the CPU resource scheduling method comprises: a process having a first weight or a user task group having a second weight having a third weight lower than the first weight or the first weight. A method for scheduling user-based resource support in a multi-user environment, wherein resources are scheduled to allocate more time by causing virtual execution time to increase more slowly than a user task group with a lower fourth weight.
삭제delete 삭제delete 제 4항에 있어서, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 가상 실행 시간이 가장 낮은 프로세스 및 사용자 태스크 그룹이 선택되어 스케쥴링 되는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.The method of claim 4, wherein the CPU resource scheduling method selects and schedules a process having a lowest virtual execution time and a user task group. 6. 제 9항에 있어서, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 선택된 사용자 태스크 그룹에서 상기 가상 실행 시간이 가장 낮은 tty 태스크 그룹을 선택하고, 상기 선택된 tty 태스크 그룹 중에서 상기 가상 실행 시간이 가장 낮은 프로세스를 선택하는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.The method of claim 9, wherein the CPU resource scheduling method selects a tty task group having the lowest virtual execution time from the selected user task group, and has a lowest virtual execution time among the selected tty task groups. User-based resource scheduling method supporting a multi-user environment, characterized in that the process is selected. 제 10항에 있어서, 상기 중앙처리장치(CPU) 리소스 스케쥴링 방법은 상기 선택된 프로세스가 실행할 수 있는 최대 가상 실행 시간을 모두 사용하거나 상기 선택된 프로세스가 멈추게 되는 경우 상기 중앙처리장치 리소스 스케쥴링을 재 요청하는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.12. The method of claim 10, wherein the CPU resource scheduling method uses all of the maximum virtual execution times that the selected process can execute or re-requests the CPU resource scheduling when the selected process is stopped. User-based resource scheduling method supporting multi-user environment. 삭제delete 삭제delete 삭제delete 제 1항에 있어서, 상기 입출력(I/O) 리소스 스케쥴링 방법은 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되어 스케쥴링되며, 가중치가 높을수록 상기 가상 디스크 시간이 실제 사용한 시간에 비해 더 천천히 증가하며, 제1 가중치를 가진 사용자 입출력 그룹이 상기 제1 가중치보다 낮은 제2 가중치를 가진 사용자 입출력 그룹보다 상기 가상 디스크 시간이 더 천천히 증가하도록 함으로써 더 많은 시간을 할당받도록 리소스가 스케쥴링되는 것을 특징으로 하는 사용자 기반 리소스 스케쥴링 방법.
The method of claim 1, wherein the I / O resource scheduling method selects and schedules a user I / O group having the lowest virtual disk time, and the higher the weight, the slower the virtual disk time increases than the actual time used. Resource is scheduled so that the user I / O group having a first weight increases more time by causing the virtual disk time to increase more slowly than the user I / O group having a second weight lower than the first weight. Based resource scheduling method.
삭제delete 제 1항에 있어서, 상기 입출력(I/O) 리소스 스케쥴링 방법은 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되어 스케쥴링되는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.

2. The method of claim 1, wherein the input / output (I / O) resource scheduling method is a user input / output group having the lowest virtual disk time is selected and scheduled.

삭제delete 삭제delete 제 17항에 있어서, 상기 입출력(I/O) 리소스 스케쥴링 방법은 상기 사용자 입출력 그룹간에는 가상 디스크 시간이 가장 낮은 사용자 입출력 그룹이 선택되도록 스케쥴링하고, 상기 사용자 입출력 그룹 내 프로세스 또는 프로세스 입출력 큐는 라운드 로빈방식으로 스케쥴링되는 것을 특징으로 하는 다중 사용자 환경을 지원하는 사용자 기반 리소스 스케쥴링 방법.18. The method of claim 17, wherein the method for scheduling input / output (I / O) resources schedules a user input / output group having the lowest virtual disk time to be selected between the user input / output groups, and a process or a process input / output queue in the user input / output group is round-robin User-based resource scheduling method for supporting a multi-user environment, characterized in that the scheduling in a manner.
KR1020170158636A 2017-11-24 2017-11-24 Method for User based Resource Scheduling under Multi-User Environment KR102044775B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170158636A KR102044775B1 (en) 2017-11-24 2017-11-24 Method for User based Resource Scheduling under Multi-User Environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170158636A KR102044775B1 (en) 2017-11-24 2017-11-24 Method for User based Resource Scheduling under Multi-User Environment

Publications (2)

Publication Number Publication Date
KR20190060436A KR20190060436A (en) 2019-06-03
KR102044775B1 true KR102044775B1 (en) 2019-11-14

Family

ID=66849380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170158636A KR102044775B1 (en) 2017-11-24 2017-11-24 Method for User based Resource Scheduling under Multi-User Environment

Country Status (1)

Country Link
KR (1) KR102044775B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023027521A1 (en) * 2021-08-26 2023-03-02 Samsung Electronics Co., Ltd. Method and electronic device for managing network resources among application traffic
CN116795517B (en) * 2023-08-25 2023-11-07 中国人民解放军国防科技大学 Multi-strategy self-adaptive asynchronous task scheduling method, system and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003122586A (en) 2001-08-09 2003-04-25 Matsushita Electric Ind Co Ltd Task scheduling device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5797129A (en) * 1991-10-31 1998-08-18 Texas Instruments Incorporated Predicting resource usage in a multiple task, multiple resource environment
KR101432751B1 (en) * 2012-12-18 2014-08-22 서강대학교산학협력단 Load balancing method and system for hadoop MapReduce in the virtual environment
KR20170094899A (en) * 2016-02-12 2017-08-22 삼성에스디에스 주식회사 System and method for managing computing resources
KR101733534B1 (en) 2016-03-04 2017-05-24 국방과학연구소 Schedulability analysys method and system for task group of hard real-time

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003122586A (en) 2001-08-09 2003-04-25 Matsushita Electric Ind Co Ltd Task scheduling device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김환 외 2명. ‘다중 사용자 환경을 위한 효율적인 태스크 그룹 생성 기법’. 한국정보과학회 2017년 한국컴퓨터종합학술대회 논문집, 2017.06., pp.2018-2020.*

Also Published As

Publication number Publication date
KR20190060436A (en) 2019-06-03

Similar Documents

Publication Publication Date Title
EP3254196B1 (en) Method and system for multi-tenant resource distribution
Polo et al. Performance-driven task co-scheduling for mapreduce environments
US8332862B2 (en) Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
Park et al. Locality-aware dynamic VM reconfiguration on MapReduce clouds
Song et al. A service-oriented priority-based resource scheduling scheme for virtualized utility computing
CN113454614A (en) System and method for resource partitioning in distributed computing
Sonkar et al. A review on resource allocation and VM scheduling techniques and a model for efficient resource management in cloud computing environment
Stavrinides et al. Scheduling different types of applications in a saas cloud
Singh et al. Analysis and comparison of CPU scheduling algorithms
KR102044775B1 (en) Method for User based Resource Scheduling under Multi-User Environment
Shahapure et al. Load balancing with optimal cost scheduling algorithm
Newell et al. RAS: continuously optimized region-wide datacenter resource allocation
Hwang et al. Resource allocation policies for loosely coupled applications in heterogeneous computing systems
D'Amico et al. Holistic slowdown driven scheduling and resource management for malleable jobs
Karatza Scheduling gangs in a distributed system
Ullah et al. LSTPD: least slack time-based preemptive deadline constraint scheduler for Hadoop clusters
Guim et al. A job self-scheduling policy for HPC infrastructures
Zhang et al. Scheduling best-effort and real-time pipelined applications on time-shared clusters
Yan et al. Heterogeneous cores for mapreduce processing: Opportunity or challenge?
Ahmad et al. A novel dynamic priority based job scheduling approach for cloud environment
Dubey et al. An innovative approach for scheduling of tasks in cloud environment
Kang et al. Proportional disk I/O bandwidth management for server virtualization environment
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment
Gu et al. Elastic model aggregation with parameter service
HoseinyFarahabady et al. Enhancing disk input output performance in consolidated virtualized cloud platforms using a randomized approximation scheme

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right