That's precisely the point: if threads never block or yield the CPU, you can guarantee system-wide progress.
If you have an algorithm which might deadlock, 'progress' isn't really well defined.
If you have an algorithm which might deadlock, 'progress' isn't really well defined.
edit: ah, and you might be running under a virtualized cpu and the host takes the cpu away from you.
Edit: another one: SMM mode kicks in and takes the CPU away from the OS.