RoundRobin

Struct RoundRobin 

Source
pub struct RoundRobin {
    percores: [PerCore; 4],
}
Expand description

A round robin scheduler.

The RoundRobin struct represents a round-robin scheduler, which is a type of preemptive scheduling used in operating systems to manage the execution of processes. In a round-robin scheduler, each process is assigned a fixed time slice (quantum) in which it can run. Once the time slice expires, the process is suspended, and the next process in the queue is scheduled to run. This continues in a circular manner, ensuring fair distribution of CPU time among processes.

Fields§

§percores: [PerCore; 4]

Implementations§

Source§

impl RoundRobin

Source

pub fn new() -> Self

Create a new RoundRobin scheduler.

Trait Implementations§

Source§

impl Default for RoundRobin

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Scheduler for RoundRobin

Source§

fn next_to_run(&self) -> Option<Box<Thread>>

Peek a next thread to run. Read more
Source§

fn push_to_queue(&self, thread: Box<Thread>)

Push a thread th into scheduling queue. Read more
Source§

fn timer_tick(&self)

Called on every timer interrupt (1ms). Read more
Source§

impl Send for RoundRobin

Source§

impl Sync for RoundRobin

Auto Trait Implementations§

§

impl !Freeze for RoundRobin

§

impl !RefUnwindSafe for RoundRobin

§

impl Unpin for RoundRobin

§

impl !UnwindSafe for RoundRobin

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.