
6.3 Priority-Based Scheduling 323
Deadline_tree
Activation_record
Data structure
Code
Activation_record
......
/* linked list, sorted by deadline */
Activation_record *processes;
/* data structure for sorting processes */
Deadline_tree *deadlines;
void expired_deadline(Activation_record *expired){
remove(expired); /* remove from the deadline-sorted list */
add(expired,expired->deadline); /* add at new deadline */
}
oid EDF(int current) { /* current ⫽ currently executing process */
int i;
/* turn off current process (may be turned back on) */
processes->state ⫽ READY_STATE;
/* find process to start executing */
for (alink = processes; alink !⫽ NULL; ...