Assignment in Computer Science and Operating Systems
#include <stdio.h>
#include <stdlib.h>
typedef struct process {
struct process *next;
int ID;
int startTime;
int runningTime;
int timeReady;
int timeBlocked;
} qProcess;
typedef struct queue {
qProcess *front;
qProcess *rear;
} queue;
qProcess *new_process(int t, int ID) {
struct process* p = (struct process*) malloc(sizeof(struct process));
p->startTime = t;
p->ID = ID;
return p;
}
void enqueue(queue *queue, qProcess *new_p) {
if (queue->front == NULL) {
queue->front = new_p;
queue->rear = new_p;
queue->front->next = queue->rear->next = NULL;
} else {
queue->rear->next = new_p;
queue->rear = new_p;
queue->rear->next = NULL;
}
}
qProcess *dequeue(queue *queue) {
qProcess *p = NULL;
if (queue->front) {
p = queue->front;
if (queue->front == queue->rear) {
queue->front = NULL;
queue->rear = NULL;
} else {
queue->front = p->next;
}
}
return p;
}