So when I am doing something like calculating a file integrity hash, converting a video, compressing some files etc. why does my CPU not reach 100% usage, instead it happily jumps around from 0% to 15%. Now I appreciate that other things are going on and Window's scheduler cannot allocate 100% CPU to any one task, and some tasks are limited by other factors, such as waiting on the hard disk, network connection etc. and some tasks aren't suited to using all my CPU cores, is this poor coding (on application or OS)?. But instead of wasting these CPU cycles cant such tasks be sped up? I have an i7 Processor by the way, but am asking this question in general, rather than specific to my CPU.
Also why would my CPU ever be at 0% usage? Its always doing something right, or is this a rounding thing - as reported by Windows task manager.