I studied x86_64 assembly language, somewhere in my studies I learned that the CPU cannot stop doing stuff, it must constantly run/execute something.
Question 1) I am wondering then, how come there is a graph in the "task manager" that shows how much CPU is being currently utilized, doesn't it always do something, doesn't it always execute some binary (low level assembly) instruction?
Question 2) I read on Wikipedia that the CPU executes the "idle" system process, why? Can't it just loop the schedule queue back ?
Let me explain, let's assume hypothetically the our CPU has 100 cycles per second:
PROCESS1 is run for 10 cycles, PROCESS1 is preempted PROCESS2 is run for 20 cycles, PROCESS2 is preempted SYSTEM_IDLE is run for 70 cycles, SYSTEM_IDLE is preempted loop
Can't the CPU be fully utilized exclusively by PROCESS1 and PROCESS2 ?
PROCESS1 is run for 40 cycles, PROCESS1 is preempted PROCESS2 is run for 60 cycles, PROCESS2 is preempted loop
Lastly, I am using a fairly old computer, memory is not lacking (i.e. there is plenty available), CPU utilization is at 40% at most, usually 10%.
Here's the problem though:
When I run my web browser alone, only 1 tab everything is smooth CPU at 7%, memory 50%
When I run my web browser along with a music player, 20 tabs, everything is lagging, can't even scroll (up or down) web pages, i get like 3 frames a second, the strange thing though is that CPU utilization is only at 30% rarely going to 35% and memory about 70% full
Last Question: Why can't the web browser use more CPU ? I wouldn't mind if it could run as smoothly as when I run the browser with only 1 tab
Tanks for your explanations :)
[EDIT1] PS: I am running Windows 10 x64, Browser is: Firefox (last version), Available memory = 500mb, Firefox uses about 270mb. CPU Speed 2.77Ghz 2 logic cores, ATI Radeon X1000 256mb dedicated Computer is freshly formatted, installed the OS from scratch about 10 days ago as of this post