Round-Robin
user_0531932
c_cpp
2 years ago
743 B
9
Indexable
struct pcb_t * get_proc(void) {
//printf("%s", "non MLQ get proc used\n");
struct pcb_t * proc = NULL;
/* TODO: get a process from [ready_queue].
* Remember to use lock to protect the queue.
* */
pthread_mutex_lock(&queue_lock);
if(!empty(&ready_queue)) {
proc = dequeue(&ready_queue);
enqueue(&run_queue, proc);
}
pthread_mutex_unlock(&queue_lock);
return proc;
}
void put_proc(struct pcb_t * proc) {
pthread_mutex_lock(&queue_lock);
enqueue(&run_queue, proc);
pthread_mutex_unlock(&queue_lock);
}
void add_proc(struct pcb_t * proc) {
pthread_mutex_lock(&queue_lock);
enqueue(&ready_queue, proc);
pthread_mutex_unlock(&queue_lock);
}Editor is loading...