Title: Priority Enhanced Stride Scheduling
1Priority Enhanced Stride Scheduling
- Damien Le Moal, Mineyoshi Masuda, Masahiro
Goshima, - Shin-ichiro Mori, Yasuhiko Kitamura,
- Toshiaki Kitamura and Shinji Tomita
Graduate School of Informatics, Kyoto University
2Overview
- Introduction
- context and objectives
- Background
- Priority based scheduling
- Fair-share scheduling Stride scheduling
- Colonia local scheduling
- Priority enhanced stride scheduling
- Evaluation results
- Conclusion and future work
3Introduction Context
- Computer Colony a cluster of workstations
- High-bandwidth, low-latency communications
- hardware support for cache coherent shared
distributed memory - User level communications
- Colonia distributed operating system
- Implement a massively parallel computer
- Fine-grain parallelism support
- Dynamic preemptive process migration
4Introduction Objectives
- In such environment
- Various workload execution
- User interactive, I/O bound and compute bound
processes - Parallel applications
- More users execute applications on a single node
5Introduction Objectives
- As a result, process scheduling needs
- Support for a wide range of applications
- In particular user interactive processes
- Fair-share allocation of CPU time
- Among users and processes
- System wide
- But
- Adaptive to the current workload on highly
loaded nodes only
6Colonia Distributed Scheduling
- Approach
- Local and global scheduling
- Fair-share scheduling locally to each node
- Load balancing implements global fairness
Global fair-share scheduling
7Priority Scheduling
- UNIX systems
- Priority scheduling
- General
- Simple to implement, small overhead
- Dynamic priority calculation efficient execution
of a wide range of applications - CPU time allocation to users depends on the
number of processes - CPU starvation problem
8Fair-share Scheduling
- Fair-share scheduling
- Share calculated with a currency (tickets)
- Hierarchical fair-share share defined for users
and processes - Priority-based fair-share scheduling
- Use existing method
- Priority calculation method difficult
- Tuning not easy
- Fairness realized over long periods
9Stride Scheduling
- Proportional-share scheduling methods
- Execute processes depending only on their share
(tickets) - Stride scheduling
At each quanta, the process with the smallest
pass is chosen
10Stride Scheduling
- Stride scheduling problems
- Simple algorithm
- Fairness realized over short intervals
- Overhead depends on the number of processes
- Basic implementation degrade response time
- Process behavior not considered
- Not preemptive
11Colonia Local Scheduling
- Solution
- Combination of two methods
- Priority scheduling to control process execution
order - Stride scheduling to implement simply overall
fairness
Policy needed to decide on the use of either
priority or stride scheduling
12Enhanced Stride Scheduling
- Stride scheduling implementation
- Avoiding sorting the ready queue in pass order
- Idea replacing pass with an array index
- Processes are chosen from the head list
13Priority Enhanced Stride Scheduling
- Priority and Stride scheduling combination use
- New processes or processes waking up
- Scheduled first with their priority
- Temporary unfair CPU time allocation tolerated
- Depending on share and CPU usage
- Stride scheduling used
14Priority Enhanced Stride Scheduling
- Priority and stride scheduling use
CPU time allocation
Share
Time
15Priority Enhanced Stride Scheduling
- Control CPU usage accounting
- Classically
- Over process life time
- Recently used share
- Over a smaller time interval (few seconds)
16Priority Enhanced Stride Scheduling
- Ready queue
- Multi-level feedback queue
- Stride queue assigned a fixed priority
- Priority calculation
- Control stride queue usage
- Classical priority/time quantum calculation (SJF)
17Evaluation results
? Process 3 (500)
? Process 2 (300)
? Process 1 (200)
18Evaluation results
? User C (200)
? User B (300)
? User A (500)
19Conclusion
- Flexible fair-share scheduling
- Precise Allocation of CPU time
- Response time minimized
- Scheme flexible adaptive to the load
- On lightly loaded systems only priority
scheduling - Future work
- Tuning
- System wide extension of fairness
20Evaluation results
- Stride scheduling overhead
? Simple get
? Colonia get
? Simple put
? Colonia put
21Evaluation results
? stride scheduling only
? priority scheduling only
22Evaluation results
Allocated share
? Process 2 (500)
Time (sec)