Why does TOP never show cpu usage reaching 100%?

view story

http://unix.stackexchange.com – I have a dual-core processor. I'm running two instances of the program below void void main(){ int i; while(1){ i=i+1; } } I run TOP and CPU usage gets up to 97%, however it never reaches 100%, why doesn't it? CPU is supposed to be always busy running the two programs with no I/O operation. How would the int overflow affect the memory? Does TOP actually show all the CPU usage or is there a percentage of the CPU reserved only for the SO that is not shown there? Are there processes of the SO that are not shown there? (HowTos)