When your journey to implement your own Operating System this is the part you are going to learn some serial ports. use mouse, mouse movements.
you need to create C functions and some header files and call them via assembly.
Then you have to learn Priority Based scheduling.
Priority Based Scheduling
Each process is assigned a priority
Priority are two types
Static priority — typically set at start of execution
Dynamic priority — Scheduler can change the process priority during execution in order to archive scheduling goals.
To process those priority levels we use multilevel ques.
CPU Scheduler
Types of process- I/O bound, CPU bound
Several CPU scheduling Algorithms and scheduling criteria
various Scheduling algorithms ex- FCFS Algorithm
then Convoy Effect- All process wait for some big process to get off the CPU.
ex2- Shortest Job First (SJF Algorithm) — No preemption algorithm. this algorithm scheduled process to ascending order using CPU Burst time.
ex3- SRTF Algorithm
ex4- Round Robin scheduling — Run process for a time slice then move to back to ready queue.
Process Types
Realtime — have deadlines, Should never blocked by low priority task
Normal Processes-Interactive, Batch
Completely Fair Scheduling(CFS)
This is the newest scheduler currently used in Linux systems
The Linux scheduler since 2007
By Lngo Molnar
No heuristics
Elegant handling of I/O and CPU bound process.