the bug is caused by sched, when a task is waiting DO NOT switch to it, also fix a bug on hd.c,