summaryrefslogtreecommitdiff
path: root/kernel/timer.s
diff options
context:
space:
mode:
authorJake Mannens <jake72360@gmail.com>2018-07-11 05:38:01 +1000
committerJake Mannens <jake72360@gmail.com>2018-07-11 05:38:01 +1000
commit59cac783f5ba12a47308b05b87d5cfa769473a49 (patch)
tree35e14bb57fa7fdbaf1573f409c3289e1ddb9c0c1 /kernel/timer.s
parent99d16e98e04c73e108160d7d70244bafdb33b6fc (diff)
Modified the tick_handler interrupt routine in timer.s so that it no
longer calls reschedule() directly. It now calls sched_tick() so that the scheduler can make it's own decisions relating to handling the timer interrupt. The reschedule() function now *actually* implements a basic round-robin scheduling algorithm that iterates through the list of tasks. This is still a temporary algorithm but at least it now includes *all* runnable processes instead of switching back and forth between process 1 and 2.
Diffstat (limited to 'kernel/timer.s')
-rw-r--r--kernel/timer.s4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/timer.s b/kernel/timer.s
index c84a847..12ea9d0 100644
--- a/kernel/timer.s
+++ b/kernel/timer.s
@@ -2,7 +2,7 @@ global ticks
global timer_init
extern cstate
extern register_isr
-extern reschedule
+extern sched_tick
ticks: dd 0
@@ -26,7 +26,7 @@ tick_handler:
out 0x20, al
; call the scheduler
- call reschedule
+ call sched_tick
; restore the data segment selectors
pop ax