From 6a243e302b72e087c10703e47343376a159c5e4d Mon Sep 17 00:00:00 2001 From: Supermjork Date: Sat, 18 Mar 2023 16:05:12 +0000 Subject: [PATCH] No comprende Tuples rn :c --- src/main.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 5e746b2..c86e915 100644 --- a/src/main.rs +++ b/src/main.rs @@ -99,16 +99,21 @@ pub fn fifo(mut procs: Vec) -> Vec { completed } -pub fn sjf(mut procs: Vec, mut completed: Vec) -> Vec { - procs.sort_by(|a, b| a.arrival.cmp(&b.arrival)); +pub fn sjf(mut procs: Vec, mut completed: Vec, clock_update: i32) -> Vec { + procs.sort_unstable_by_key(|proc| (proc.arrival, proc.burst)); - let mut clock: i32 = 0; + let mut clock: i32 = clock_update; let mut completed_procs: Vec = vec![]; - while procs.len() > 0 { - if procs.is_empty() { - completed_procs + if procs.is_empty() { + completed_procs + } else { + if procs[0] <= clock { + completed_procs.push(procs[0].one_shot(clock)); + sjf(procs, completed_procs, completed_procs.last().completion_time_yknow_pls) } else { + clock += 1; + sjf(procs, completed_procs, clock) } } }