Crates.io | axsched |
lib.rs | axsched |
version | 0.3.0 |
created_at | 2025-07-07 18:37:19.319966+00 |
updated_at | 2025-07-07 18:37:19.319966+00 |
description | Various scheduler algorithms in a unified interface |
homepage | https://github.com/arceos-org/arceos |
repository | https://github.com/arceos-org/axsched |
max_upload_size | |
id | 1741631 |
size | 21,629 |
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).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);
}