Expand description
§axsched
Various scheduler algorithms in a unified interface.
Currently supported algorithms:
FifoScheduler
: FIFO (First-In-First-Out) scheduler (cooperative).RRScheduler
: Round-robin scheduler (preemptive).CFScheduler
: Completely Fair Scheduler (preemptive).
§Example
use std::sync::Arc;
use axsched::{FifoScheduler, FifoTask, BaseScheduler};
let mut scheduler = FifoScheduler::new();
scheduler.init();
for i in 0..10 {
let task = FifoTask::new(i);
scheduler.add_task(Arc::new(task));
}
for i in 0..10 {
let next = scheduler.pick_next_task().unwrap();
let task_id = *next.inner();
println!("Task {task_id} is running...");
assert_eq!(task_id, i);
scheduler.put_prev_task(next, false);
}
Structs§
- CFSTask
- task for CFS
- CFScheduler
- A simple Completely Fair Scheduler (CFS).
- Fifo
Scheduler - A simple FIFO (First-In-First-Out) cooperative scheduler.
- Fifo
Task - A task wrapper for the
FifoScheduler
. - RRScheduler
- A simple Round-Robin (RR) preemptive scheduler.
- RRTask
- A task wrapper for the
RRScheduler
.
Traits§
- Base
Scheduler - The base scheduler trait that all schedulers should implement.