Threads and Scheduling
at main 45 lines 999 B view raw
1#ifndef PQ_H_ 2#define PQ_H_ 3#include "lib.h" 4#include <stdbool.h> 5 6// Nodo que aguanta cada proceso. 7struct Node { 8 Proc proc; 9 struct Node* next; 10}; 11// Para crear un struct recursivo no se puede hacer un typedef. Aqui esta el 12// typedef. 13typedef struct Node Node; 14 15// Funcion helper para insertar un proceso en la lista y respetar el orden de 16// tiempo de procesos. 17Node* n_insert(Proc proc, Node* node); 18 19// La estructura para priority queue. 20typedef struct { 21 Node* head; 22} PQ; 23 24// Inicializar el prio queue. 25PQ pq_init(); 26 27// La funcion para borrar el prio queue. 28void pq_deinit(PQ* pq); 29 30// La funcion para insertar en el prio queue. 31void pq_insert(PQ* pq, Proc proc); 32 33// la funcion para borrar el primer elemento del prio queue. 34void pq_delete(PQ* pq); 35 36// La funcion para accesar el tope del prio queue. 37Proc pq_access(PQ pq); 38 39// La funcion para imprimir el prio queue. 40void pq_print(PQ pq); 41 42// La funcion para verificar si el prio queue esta vacio. 43bool pq_empty(PQ pq); 44 45#endif // PQ_H_