pre-emptive multi tasking failing ?

S

Skybuck Flying

Hi,

I noticed that pre-emptive multi tasking is failing in xp.

When an application is processing a lot of information and therefore using a
lot of cpu power all other applications 'hang'.

I am not the only user that has noticed this behaviour.

What is wrong with the pre-emptive multi tasking in XP ?

The only solution for me as a programmer is using the same old trick:
yielding and sleeping !

Seems like we programmers at back at step zero with XP ?!

Especially on fast computers it seems to get worse.

Skybuck.
 
S

Skybuck Flying

David Jones said:
I don't understand this. What are you expecting to
happen?

1. I expect the GUI to remain responsive in all cases.
2. I expect windows XP to give each process (with same priority) exactly the
same ammount of time.
I know that's impossible but it seems XP is doing a worse job then it's
predecessors.
There are various priority levels that determine which
process gets a timeslice (you should read the info on
MSDN or the book Inside Windows 2000). If the process
has stuff to do, it gets the timeslice. If it doesn't,
it doesn't use the timeslice and the scheduler keeps
going.

If you have an application that is running at high
priorities, that has precedence over anything at a lower
priority, which means it will get all the CPU time it
wants before any lower priority processes get any.

This is absolutely not the case.

As far as I know and have checked all programs run at normal priority.
There's nothing broken here. This is the exact same
behavior as in NT/2000. All applications won't 'hang'
(unless they're 16-bit legacy ones, in which case if one
hangs, the rest will), they'll just take a while to get
enough CPU time to do their own tasks depending on the
various priority levels.

I am starting to think there is something seriously wrong with XP.

It must be a bug somewhere.
The scheduler still rips control away from each
process/thread pre-emptively. The alternative is that
people complain about their process not getting enough
CPU time to do intensive tasks because the scheduler
keeps giving CPU time to "less important" stuff.

This is definetly not the case.

The case is that one program (with normal priority) is starving all other
programs ( with normaly priority ).

This is clearly an XP maybe even a Windows 2000 issue and should clearly not
happen.
The OS scheduler is not a catchall to save you from
improper coding or bugs. Your app may be coded
correctly, but there are a million variables at work. If
you're spinlocking or in some sort of infinite loop, you
need to fix that rather than rely on other means.

It should be perfectly ok for a programmer to code an infinite loop in
windows xp.

That is what pre-emptive multi threading is all about.

In pre-emptive multi threading the burden is on the kernel programmers
shoulders not on the user programmer's shoulder.

I have always been a fan of microsoft windows but this is a serious issue
and I am loosing fate in windows fast if microsoft does not
comment on the issue :)

Skybuck.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top