Added queue structure

This commit is contained in:
2022-08-15 20:20:31 -05:00
parent bdb0b753a3
commit 5b959c9763
7 changed files with 125 additions and 11 deletions

View File

@@ -214,7 +214,7 @@ int add_process(void *program_entry, int priority, physaddr_t address_space)
new_process->page_table = address_space;
new_process->state = initial_context;
kernel.process_table = avl_insert(kernel.process_table, new_process->resource_id, new_process);
queue_insert(&kernel.priority_queue, new_process, new_process->priority);
priorityqueue_insert(&kernel.priority_queue, new_process, new_process->priority);
kernel.next_pid++;
return new_process->resource_id;
}
@@ -223,9 +223,9 @@ struct process_context_t *next_process()
{
if(kernel.active_process != NULL)
{
queue_insert(&kernel.priority_queue, kernel.active_process, kernel.active_process->priority);
priorityqueue_insert(&kernel.priority_queue, kernel.active_process, kernel.active_process->priority);
}
kernel.active_process = extract_min(&kernel.priority_queue);
kernel.active_process = priorityqueue_extract_min(&kernel.priority_queue);
if(kernel.active_process != NULL)
{
paging_load_address_space(kernel.active_process->page_table);
@@ -247,7 +247,7 @@ int terminate_process(size_t process_id)
kernel.active_process = NULL;
}
kernel.process_table = avl_remove(kernel.process_table, process_id);
queue_remove(&kernel.priority_queue, process);
priorityqueue_remove(&kernel.priority_queue, process);
destroy_context(process->state);
kfree(process);
return S_OK;