50% of CPU doesn't say anything at all. If only 50% of the CPU is used, you're
underusing the system. Remember that the fraction of CPU time gets allocated to a process is a task of your kernels scheduler, and the sceduler takes into account a lot of variables to decide how much time a process gets. And each OS has its own scheduler - which some OSses, there's even the possibility to tune it. A not complete list of things taken into account:
- How many processes there are in the run queue.
- How many processors there are available to the OS.
- The process' priority.
- How long the process has been running.
- How long the process has been waiting for a time slot.
- If the process is doing a page fault, is it a minor or a major fault?
- Interrupts.
- Blocking system calls.
- ...