|
||
---|---|---|
.idea | ||
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
scheduler.iml |
README.md
Simple Process Scheduler
This project is for BS.
It simulates the scheduler in an OS (like Linux, Windows...).
Strategies:
Next | In Dev | Works | |
---|---|---|---|
FIFO | ✓ | ||
RR | ✓ | ✓ | |
MLsndFIFO | ✓ | X | X |
MLsndRR | ✓ | X | X |
Features:
- TUI | simple to use terminal / text interface
- Simulator (Object) | very simple and handy usage
- Instruction parsing | parses your input string -> instructions
- Pretty print
- Flow
- Time (coming)
- Queue (coming)
How to get this project?
Download
- Download from the releases page.
- Make sure it's executable by running
chmod 700 scheduler
- Execute with
./scheduler
Build it yourself
- Install Rust. You find it from the official website rust-lang.org
- Run
cargo build --release
- Now you can execute
./target/release/scheduler
How to use this project?
Below you find a very simple example
1.0 Enter your processes
How many processes do you want to enter?
> 2
What's the letter for your 1. process?
> A
Please enter your instructions for A
> Work(20), Launch(B), Wait(30), Work(25);
What's the letter for your 2. process?
> B
Please enter your instructions for B
> Work(55);
2.1 Choose your strategy (FIFO)
What scheduler strategy do you want to run?
(1) FIFO
(2) RR
(42) exit
> 1
A: LLLL......-----LLLLL|
B: LLLLLLLLLLL |
Q: A
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
A: B
B: L
2.2 Choosing your strategy (RR)
What scheduler strategy do you want to run?
(1) FIFO
(2) RR
(42) exit
> 2
Whats the time slice?
> 20
Whats the quantum?
> 2
A: LLLL......--LLLLL |
B: LLLLLLLL-----LLL|
Q: A B
0 0 0 0 0 0 0 0 0 0 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2
0 0 0 0 0 0 0 0 0 0 0 0 0
A: L B L
B: B L B