robert-w-gries / rxinu

Rust implementation of Xinu educational operating system
Apache License 2.0
34 stars 4 forks source link

Use custom PriorityQueue struct with efficient remove #69

Closed robert-w-gries closed 3 years ago

robert-w-gries commented 6 years ago

Currently, the preemptive scheduler does an ugly, inefficient clone() to copy all processes to a new ready_list, excluding the process we want to unready.

The solution is to write our own PriorityQueue implementation that supports a remove() API call.