that's a fair mistake he made, but a mistake never the lessOK. I thought I understood the concept of System Idle Process but realize I don't.
Some guy posted this online recently as a solution to "clear memory," but that doesn't seem accurate if the SysIdleProc only shows the percentage of idle time (i.e., available CPU time) available moment by moment.
I tried his "trick" but would like to know exactly what it really does.
HERE IT IS:
Create a shortcut for this exactly as shown above and name the shortcut anything:
When you double-click it, it will clean out the SystemIdle Process of its accumulated loitering junk (but this doesn't seem accurate to me).
teh mskb said:Idle Task Scheduling: The ProcessIdleTask API
The file placement optimization, which is done no more often than once every three days, is an example of a task that is carried out when the system is deemed to be idle. System Restore and other features of Windows XP also attempt to defer some work until the system is deemed to be idle. There are also some done-once-after-setup work items that also operate under the Idle Task Scheduling mechanisms.
All of these "idle tasks" are controllable by a system API in advapi32.dll, ProcessIdleTasks. The APIs sole purpose is to allow benchmarks a simple way to force any pending idle tasks to be executed immediately, without having to wait a lengthy period of time.
The API ProcessIdleTasks can be called in one of two ways, from the command line or synchronously from a program. To call ProcessIdleTasks from the command line, use this syntax:
When called from the command line, the ProcessIdleTasks work is done in the background asynchronously. It can take 10 to 15 minutes for idle tasks to complete. Task Manager will report processes running, and the disk will likely be active during this time.
The ProcessIdleTasks API takes no arguments and returns a standard Win32 error code. The definition is:
The API itself is synchronous, so it wont return until the idle tasks have completed.
lots of miss information concerning the system idle process, so, for members of ntfs, I'll give you the skinny...you'll definitely have a heads up on this much not understood feature of xp
if you'd like to do more research, the Microsoft publication "inside windows 2000" is an unbelievable wealth of information and reference
everyone knows, Windows NT is multi threading operating system, which in everyday language just means you can do a bunch of different things on your box, with the illusion that everything is happening simultanously...an amazing ability this is indeed, and everyone should learn to take advantage of it...do not follow that old advice and force your computer to run one only thing at a time, your computer allows you to be so much more productive, it's designed to run many things at once...but that's another discussion.
the reality is, your standard chip can only do one thing at a time, but, it switches back and forth between threads so fast, and so often, that everything looks like it virtually (I love that word) happens at once.
this switching back and forth is managed with a set of algorithms known as "the NT scheduler".
the scheduler simply looks at the priorities on the various threads that are active...it then gives each thread it's share of CPU time, ( this unit of time is known as a quantum )...the quantum length can be adjusted in NT, but that's the word we use when speaking of the time unit the CPU spends with any given thread. Quantum lengths are also devided, and a thread will be preempted and forced to give it up it's remaining quantum immediatly if a higher priority shows up.
the scheduler doesn't look at what process a thread belongs to, it just looks at the priority of a thread...pretty simple...the scheduler then executes the highest priority...this high priority thread will decay a level for every quantum completed...however, the level can be re bumped depending on the program and how it's referenced by the user....for instance as an extreme example, a keyboard stroke can at times bump a priority on an idle thread that is waiting for that stroke by 6 points.
The scheduler will be able to prevent threads from starving due to a priority lower then everything else, (When real time threads are not ready to execute) and the scheduler will make sure every thread gets it's share of CPU...lower priority threads are bumped sometimes to level 15... they can even be given more then one quanta if they haven't had a quantum for too long a period.
there are also other policies that insure lower priorities get a quantum (when real time threads are not ready to execute)... as mentioned, every thread in the 1-15 range will decay a level (to a point set by the program) every time it completes a quantum...and of course, these threads can always get bumped up levels according to use, and so refreshed in priority as well as decayed.
programs also voluntarily give up their priority, and programs get "blocked "from even being considered for a quantum when they are not ready to execute.
"not ready to execute", or "blocked" threads use no CPU time...they incur no CPU overhead and there is no CPU management overhead, the overhead of the NT scheduler is a constant set of algorithms that always run....when a thread or process incurs zero CPU, it's as if it's not even running at all as far as CPU resource liability
if a number of threads have the same priority, these threads are just executed in a round robin fashion along that respective priority.
of course, there's allot of sophistication involved with these scheduling policies, but you now have an accurate model
fyi... even most people that know about CPU scheduling in NT are under the impression that there are 31 priorities in the NT kernel
there are 32
there is 1 through 15 for the common apps, 16 through 31 for critical threads, and then there is a priority "zero"
in NT, the higher the number a priority, the higher the priority...this is a random choice, and similar to the vms's OS's, (after all, it is David cutler that is responsible for nt)...the reverse could have been true, it's just the way Microsoft did it.
as told, priorities 1 through 15 are the dynamic priorities that typical applications get assigned..the threads in this realm change priorities all along, getting bumped and degraded according to need by the os...these are dynamic in nature.
16 through 31 not dynamic, this is what we mean by "real time" when talking about a threads priority...the priority of real time threads is constant...the os does not change the priorities of these threads..these priorities are used for operations that are time critical...in addition, users with administrative authority can also set real time priorities for applications on their own
so now I finally get to the next level of priority
this is priority level 0 (zero)
your system idle process gets a priority of zero.
This process is a single thread running on each processor, which has the sole task of accounting for processor time when the system isn't processing other threads. In Task Manager, expect this process to account for the majority of processor time.
with priority zero, when no other thread is executing, priority zero gets a quantum.
and so, here is the biggest misinterpretation with the system idle process
if you open your task manager while the CPU is hardly working, and look to processes, you will notice that your system idle process is taking 90% or such of the CPU time.
THIS FIGURE IS MISUNDERSTOOD!!!!
this figure represents how much cpu time has not even been requested by anything you are currently working with
This is first post and I hope that people will give answer for the difficulty we are facing
1. I am havng machine (XP pro, p4-Hyperthreading) and as per the system's task manager the "System Idel Process" is showing 98% usage.
2. I run a antivirus check and a antispy program simultaneously.(for approx. 2 hrs they run)
3. In between i want to open a notepad and a Firefox and want to use them. A GTalk messenger is running in background. (I do toggle between them frequently in these 2 hrs.)
*Now the problem I am facing is..........................................................
The task manger showing 55% for "System Idel Process". At this point I am using firefox and want to switch to notepad which I used before 2 mins.
When I do switching the notepad takes literaly 30 seconds to just show up so I can Edit it.
Now a popup arrives from gtalk, and i am not getting the contents(message) for next two minutes.
Above was only one scenario. This also happens on a simple normal running (so the application running/responding slow).
One thing I want to say that, same scenario with same config (on Other) pc do not produce such result!
There the "System Idel process" is present but do not show up if computer is Idel.
is it good or bad to have the system idle process over 90?I didn't understand what Perris meant at the end of his explanation of the System Idle Process. Is it good or bad if it's over 90 and what exactly, in other words does it do?