View Full Version : Who has faster multitasking OS/2 or Linux or Windows XP
Who has faster multitasking and multithreading OS/2 or linux
or Windows XP?
Daneel Olivaw
03-12-05, 08:49 AM
Windows XP, but not by much. I'm saying that because HT seems to have a better support on winXP. And its no big deal IMO. However, if you compile your own kernel, then Linux prabably comes out on top.
9point9
03-12-05, 07:17 PM
Doesn't that make it processor dependant? I'm running on Athlon XP so no HT.
You've left the Windows option as XP but I wouldn't be suprised if 2003 Server is better at it. Windows 2000 Pro will be just as good at multitasking as XP Pro seeing how they're underneath very similar. Win2K has less clutter though so will be faster.
Win2K has less clutter though so will be faster.
The major drawback of Win2k however is the lack of security. No support for DEP, among other things, that the latest service packs provide for both XP and Server 2003
Thier was a report where the creator of linux talked about the way windows handled mutitasking and actually said there were advantages to the way windows does some of its multitasking chores. I tried googling for the reoprt but it hits nothing solid (lots of crap), it was actually a great read, talked about the way linux and windows are structured compared to each other.
Daneel Olivaw
03-21-05, 02:55 PM
Probably the way the wait/sleep queue is implemented.
SuLinUX
03-22-05, 01:33 PM
By the way, Windows is not true multi-tasking since it doesn't use your memory/CPU correctly between apps. Linux splits CPU time between apps correctly and also memory is assigned much better and not wasted. Windows also uses the prefeching of apps to make it seem faster. The amiga did multi-tasking way before Windows just incase you though Windows did.
Daneel Olivaw
03-23-05, 12:49 AM
edit: -scratch one post- realized it made no sense after some thought... :(
I have no clue how the multitasking is implemented under WinXP, however, I have a fair idea of the theory for Linux since I study and program under Linux... but it just seems to me Linux is less responsive than WinXP, just a bit. But that could just be because my WinXP is pretty tweaked and not cluttered at all, whereas I never gave my FC3 installation as much attention.
oldsk00l
03-23-05, 01:42 AM
BSD beats em all, the kernel scheduler is noticeably better than in Linux. imho XP is probably the worst at "multitasking" out of the options here.
Leviathan
03-25-05, 06:21 AM
I don't think you can nominate a definite winner there.
Don't know much anything about OS/2 or BSD, but the Windows Scheduler is geared more towards short response time than the Linux Scheduler (shorter timeslices) which also means there are more task-switches => more time wasted switching tasks.
Also, Windows has a mechanism to give UI-Threads higher priority so user interaction is again more responsive than on Linux (and propably most other OS) at the cost of raw processing power.
Besides, Windows has had working Kernel-Preemtion since Windows NT so all drivers for WinNT/Win2k/WinXP can be properly preempted.
Linux on the other hand has introduced Kernel-Preemtion only with v2.6 and there are still some drivers that don't work properly if they are preempted so it's adviced to not use that feature. (Quote: "Say Y here if you are feeling brave and building a kernel for a desktop, embedded or real-time system. Say N if you are unsure.")
Depending on Application, each system has its advantages.
oldsk00l
03-25-05, 11:56 AM
I don't think you can nominate a definite winner there.
Don't know much anything about OS/2 or BSD, but the Windows Scheduler is geared more towards short response time than the Linux Scheduler (shorter timeslices) which also means there are more task-switches => more time wasted switching tasks.
Also, Windows has a mechanism to give UI-Threads higher priority so user interaction is again more responsive than on Linux (and propably most other OS) at the cost of raw processing power.
Besides, Windows has had working Kernel-Preemtion since Windows NT so all drivers for WinNT/Win2k/WinXP can be properly preempted.
Linux on the other hand has introduced Kernel-Preemtion only with v2.6 and there are still some drivers that don't work properly if they are preempted so it's adviced to not use that feature. (Quote: "Say Y here if you are feeling brave and building a kernel for a desktop, embedded or real-time system. Say N if you are unsure.")
Depending on Application, each system has its advantages.
Funny thing is though, is the short response time it seems no one really wants. I remember Linus Torvalds talking about it and it just hasn't been an issue people want improved.
About the BSD KSE, here's a good read.
http://www.freebsd.org/kse/
SuLinUX
03-26-05, 02:17 PM
Well Windows is designed to be a desktop OS from the out set and has advantages, Linux on the other hand was not.
I did a experiment in Linux and The GIMP 2.2.4, opened 4 of the same picture (around 80Mb with 10 layers) and applied a motion blur to one layer of each picture at the same time.
See picture below, which shows true multitasking, multithreading abilities of both Linux and The Gimp 2.
gmontem
03-26-05, 03:33 PM
For those who have used BeOS and have an understanding of its architecture how does it stack against the other OSes as far as multitasking is concerned?
Lauwenmark78
03-27-05, 03:42 AM
BeOS has a very reactive multitasking architecture - in fact, it was one of its selling points. It used fine-grained threading with a fully preemptive kernel to achieve a high level of responsiveness.
When compared with recent competitors (Linux 2.6.x, Windows NT5, OSX), it doesn't show a perceptible difference, though. That's because the technologies BeOS used are now present in all of them. IMHO, it is still superior to Windows because a given application could hardly lock the whole system (something still easy to achieve today under Windows).
It is pretty hard to determine who has "the faster multitasking" - given the common power of today's CPUs, the context-switching costs are hardly a problem anymore (except for specific cases, like real-time scheduling). The two points that are really relevant today for a desktop environment are:
- How responsive applications are;
- How clever the resources distribution is.
Windows NT5 (The kernel of Windows 2000 and above) multitasking is responsive, but not very clever: an application can get all the CPU, resulting in an overall locked, unusable system. Linux tends to favor intelligent resource management - it is much harder for an application to hog the CPU; on the other hand, it can sometimes be less responsive as NT5, since the "top" application may not get as much CPU time as it would under NT5.
actually, the "true" answer from a technical standpoint is freebsd/mac comes out on top, then windows, then linux. the reason why windows is slightly faster than linux at multitasking is because linux uses what's called "preemptive multi-tasking". basically what this means is, the linux kernel always maintains 100% control of the program. in a windows os, the kernel gives the processor to a program, then tells it to pass it on until it gets back around. this is slightly faster, but gives the possibility that a single application can take down the entire computer. in linux this is not possible because the kernel never releases the processor to an application exclusively. therefore, in order to crash linux, you would have to crash the kernel itself.
freebsd i am not sure if it uses pre-emptive multitasking or not, but the kernel of freebsd has a very good scheduler, which allows for more efficiant use of the processor than linux and windows, giving you more work for less cpu cycles. (which is why macintosh computers can have a lower mhz rating and still keep up with faster comps). i can't validate that last point about freebsd, but i can definitely say the difference between windows and linux multitasking is if they are preemptive or not.
Leviathan
04-29-05, 07:17 AM
actually, the "true" answer from a technical standpoint is freebsd/mac comes out on top, then windows, then linux. the reason why windows is slightly faster than linux at multitasking is because linux uses what's called "preemptive multi-tasking". basically what this means is, the linux kernel always maintains 100% control of the program. in a windows os, the kernel gives the processor to a program, then tells it to pass it on until it gets back around. this is slightly faster, but gives the possibility that a single application can take down the entire computer. in linux this is not possible because the kernel never releases the processor to an application exclusively. therefore, in order to crash linux, you would have to crash the kernel itself.
This is not true, every Windows with NT kernel has preemptive multi-tasking and even Windows 95 didn't have cooperative multi-tasking as you've described it. The only OSes I know of that actually use cooperative multi-tasking are Oberon and Plurix.
While Linux only is preemptible on the Application side, kernel modules still are not preemptible unless you enable the very experimental and very not working "preemptive kernel" option when compiling the kernel. "Not working" because many drivers still can't be preempted, not because the kernel does something wrong.
Besides, you're messing up the term "crashing" with "freezing".
An application or driver that can't be preempted by the system and doesn't give up the cpu FREEZES the System. On windows (NT) neither apps nor drivers can do that (though they can freeze the GUI which makes Windows useless), on linux apps can't, drivers can.
Crashing means, an app or driver can get the system into a state from which it can't recover and where it can't work properly anymore. This is usually caused by a faulty security system which might enable an application or driver to get write access to OS memory. This does happen in Windows a lot (BSOD and GPF are both symptoms for this kind of error) while similar errors on Linux are unheard of. But this has nothing to do with Multi-Tasking.
vBulletin® v3.7.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.