Preemptible Linux Kernel: Interviews and Info
An anonymous submitter sends: "MontaVista and Robert Love are developing a patch for the Linux kernel to make it fully preemptible. Lots of users are involved, and tests show huge reductions in latency. Robert's kernel patches are here. Finally, an interview with Robert, on preemption and more."
Cool! I really hope this'll make it into the official kernel, hopefully even 2.4 (though I doubt so not that 2.5 has been started).
The reductions in latency -- would that include the type of latency that plagues real-time audio applications like sound-on-sound recording?
We're sorry, but tonight's "Linux" will not be aired. Normally you would find 2.4.12 or 2.4.13-pre2 on Sunday nights, but not this evening. Now that Linux is fully preemptible, NBC will be airing a four-hour music-and-ice-skating tribute to Bill Gates.
We apologize for any inconvenience, and for the reduced uptime. Enjoy the show.
Nope. Decent sound-on-sound recording uses pretty large buffers to get around that sort of problem.
You'd think this would have been one of the first few 'features' of the Linux core. If the latency were high, it would screw programs and things that rely on low latencies to compute. Better late than never.
Job? I don't have time to get a job! Who will sit around and bitch about being broke and unemployed then?
Does anyone think that this will ever make it into the kernel? It seems that Linus does not like this because it cures the symptons of latency in the kernel instead of the real problems.
I'm wondering about this paragraph:
Can anyone give a nice layman's description of what he's talking about here?
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
JA: What tips and inspiration can you offer aspiring kernel hackers?
Robert Love: Read the source, play with the source, and bathe regularly.
All computer science labs should have available eye-wash style emergency showers.
Troll Like a Champion Today
Can someone fill me in... Hasn't Microsoft been claiming windows has been preemptive since win95??? Is this some other form of 'preemptiveness'?
What is this 'preemptive' thing refering to? Task scheduling?
---
Programming is like sex... Make one mistake and support it the rest of your life.
Look at BeOS for an example of why this sort of processing can't possibly fit into a normal-use system. BeOS was constructed especially for the handling of low-latency media such as audio, but as anyone who tried to program it can tell you, it was exceptionally difficult to program anything other than media apps with it! The extremely high-resolution threading of the operating system made even the simplest programming tasks near impossible, as mutex locks and thread conditionals needed to be spread throughout the code to ensure proper execution. This is why BeOS ultimately flopped: it was too hard to program for.
But, of course, this is an area where Linux could shine. Due to its open-source nature, a special media-processing fork of the kernel could be made for those who need to deal with real-time audio, while the general-purpose kernel remains general-purpose. In fact, DeMuDi Linux is already striving for this goal.
Loneliness is a power that we possess to give or take away forever
I think this is a good short-term solution for the latency problems but I personally wouldn't include it in the main kernel releases. I believe that it *might* be a good idea to fork the kernel releases (temorarily) in two groups: One for servers and one for workstations until the problems have been solved. ;-)). We still need a larger user base...
I think that (for now) using this patch on workstations is a pretty good idea. And I think that there should be a better solution for the problem witch should THEN be something along the lines of kernel 3.0
I am not a kernel developer or anything, but I am currently reading up on the source and the mailing lists.
Basically all I am trying to say is: Make it work NOW and solve the real problem later. Just make sure that is WILL be solved... (no microsoft coding ways here
Fighting for peace is like fucking for virginity
So long as the console driver and the keyboard driver are alive, root should always be able to open a new shell and kill an offending process that is hanging the rest of the system. Right now, this is too frequently a non-option.
I am not a lawyer. Do not take my words as legal advice. If you need legal advice, consult an attorney.
why do a lot of extraordinarily stupid individuals feel the need to broadcast their stupidity to the rest of the world?
Don't be so hard on yourself.
I thought giving the Kernel the ability to preemt other programs was important. If you give programs the ability to preempt the kernel, doesn't that just change the system back to cooperative multi-tasking? I could just see programmers abusing the ability to preempt the kernel to squeeze a little more speed out of their app.
If you're wondering what the heck a preemptive kernel entails, then here's some background.
Also, if you don't like Robert Love's implementation, then Andrew Morton maintains a patch with a similar low-latency goal.
why do a lot of extraordinarily stupid individuals feel the need to broadcast their stupidity to the rest of the world?
So idiots like you will reply. Jackass. Go eat poop.
if anyone would care to explain / provide links that would be great
My server
Go eat poop
Eating poop is a very bad idea, as it is highly toxic and can cause severe sickness, or even death.
- Linux Devices Article detailed, very nice, on this issue from Sept 6
- Kernel Hacking How-to Page on this again, very detailed.
- The Kernel SpinLock metering FAQ
All around useful stuff, enough to get you started destro^H^H^H^H^H^H hacking your own kernel"It is a greater offense to steal men's labor, than their clothes"
Mac OS-X is fully pre-empt already, making it a greatly stable system.
I can only see a fully pre-empted Linux increasing it's already solid stability.
Now if only we could remove co-operative threading from windows....
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
...and if it works, the linux folks will have finally caught up with circa-last-year FreeBSD SMPng efforts!!
I don't want to sound like I'm contradicting you, but did you happen to read this link from the article? It's specifically about realtime audio. Key paragraph:
*EXCITING* NEWS: things getting almost perfect ! Ingo's lowlatency-2.2.10-N6 patch with the shm.c part backed out and a modification of filemap.c (thanks to Roger Larsson) performs _REALLY_ well, using my usual latencytest parameters (4.3ms buffer), I got NO DROP-OUTS anymore, with sporadic maximum peaks of ONLY 2.9ms This is really exciting because it opens the doors to a whole new class of Realtime applications for Linux, simply using userspace processes scheduled SCHED_FIFO. I heard of comparable low-latencies only from BEOS, Windows can't simply guarantee these kind of latencies, not even using DirectX. Using a soft-synth on Win98 on my BOX I must use 15-20ms audio buffers to get _SOMEWHAT_ reliable audio. This is actually about more than 3-4times the buffer I used for testing under Linux ( 4.35ms).
I don't know much about the field, but the page seems to speak to several of the audio-related concerns mentioned above.
Kill, Tux, kill!
looks like www.OnCoreSystems.com has had that for quite a while now....and they have context switch times under 5 microseconds...ofcourse they are using linux as a application on their microkernel...
The left hand (processor 0) needs to know what the right hand (processor 1) is doing.
:)
Reverse if necessary.
Ambidexterous people...just HUSH!
Heh, how about that, computers do have a real life (tm) frame of referrence.
Moose.
Have you read the moderator guidelines? Well, have you, PUNK? (and I want a Karma: Gnarly option)
Is it a Worm, is it a Virus, does it use Outlook?
Hrm.. I know this is extremely off-topic, but I figure someone on Slashdot is having the same problems, so I'll ask. Are any of you using ATT@Home to host a mail server? Has your port 25 been blocked? Mine has. I hope something terrible doesn't have to happen to the local ATT@Home office...
I couldn't disagree more. BeOS is far from hard to program for. The API's are relatively simple, in fact BeOS is one of the only O/Ses you can read people calling a joy to code for. How much do you even know about it?
That's the idea...
No sig is worth reading.
Ummm,
Sorry, just want to note that mutex and semaphore programming is not all that difficult if you do it much. True windows have a few kinks, but the concept is pretty basic. Basically I would have to disagree that mutex and thread programming makes programming hard. It's just programming once you understand it, it's pretty straight forward.
As for the windows problem use startthreadx instead of startthread (Yeah probably not the real api functions, but close enough haven't worked on windows for a while.)
Lando
/* TODO: Spawn child process, interest child in technology, have child write a new sig */
OK... I'm confused... this is extrmeley off-topic and I've never touched BeOS (besides failing to install it) so I don't know what I'm talking about.
Are you saying that in a multi-threaded program BeOS was so finely preemptible w/ small time slices that you couldn't be sloppy with resource contention like you can get away with on most UP platforms? I can't see any other way a scheduler would effect a user application.
Or maybe the application framework you used for BeOS applications allowed events to be handled in parallel? Or...?
Brian Macy
Its a Virus.
This is about making the kernel preemptible, which means that a process can be preempted if it's in kernel space (i.e. making a system call) as well as when it's executing normal user code.
Without a preemptible kernel, a process can remain on the cpu during the several milliseconds that a system call can potentially take to return or sleep, even if a higher priority process becomes runnable during that time.
conjecture:
all posts are trolls.
proof method:
show that a post with n characters is considered a troll.
show that a post with n+1 characters is considered a troll.
proof:
let n=0
for a post where n=0 (i.e. with zero characters) click link (*)
Note the moderation.
for a post with n+1 characters click link (*)
Again, observe the moderation.
Therefore, it is proven by mathematical induction that all posts are considered trolls.
After the MS anthrax attack, I saw Linux geeks dancing and celebrating in the streets on CNN. Fucking assholes. We should bomb them.
Proof by induction is not proof. And you just copied that from fortune, anyway.
Of course it would be crass to mention that Windows NT/2000 has had a preemptive kernel from day 1. Facts and *nix polictical correctness don't mix too well at /.
No, that was old footage.
the US has begun nightly bombing runs and commando assaults on the pitiful country of Finland, and preliminary reports suggest that Tove Torvalds has been captured and pack-raped by Green Berets. more news as it cums.
I hope that Linus will look at whether these patches hurt the normal case. "normal" means things like kernel compilation, not just an arbitrary latency measure and dbench (one of the least realistic benchmarks possible!)
there are good reasons to be skeptical of all-out premptiveness: it will unavoidably lower throughput in easy-to-define cases. any intro OS text will talk about optimal scheduling, where 'optimal' requires a definition of throughput or some other metric. preemptive kernels will context switch more, and will probably interfere with the natural 'batching' that happens when a big job runs for a while. think about caches: you never want to switch unless you must. this is not an argument against low-latency! it's an arguement against lowest latency as an absolute; we need to set a target (5ms would be fine imo) and meet it. going beyond such a goal will hurt the normal case.
Whether this patch is added or not is surely just a question of whether it is stable enough or not.
As it says in the interview, the enablement of the patch is an option in the config... For those that want it (i.e. most desktop users I would expect) it's there. For those that don't, it can be disabled.
It seems that the patch works, as scientifically explored by his benchmarks. If there is a fault in the patch, I'm sure that half of slashdot will email the chap.
In summary, it works, is probably stable and can be enabled/disabled in config if needed. It already does, and probably can, benefit lots of people.
Put it in!
(At worst it can be removed and a new kernel released the day after... hehe)
-- Mike
Windows 95 was released in 1996, don't you remember?
http://www.linuxdevices.com/articles/AT4185744181. html
Goofed that up.
Nice discussion, from Sept 6, with related links
[sigh]
"It is a greater offense to steal men's labor, than their clothes"
Isn't this pretty much what RTLinux does already?
Those low latency patches have been around for a while. Why haven't they made it into the kernel?
http://www.uow.edu.au/~andrewm/linux/schedlat.html
They do what they do for a livng, to make money.
Kind of like scalpers, who buy tickets and sell them in demand for higher prices.
I'm a big retard who forgot to log out of Slashdot on Mike's computer! LOOK AT ME.
The last time I looked, the Linux process time slice HZ constant was an anemic 100. When will it finally be defaulted to a respectable 1000 so that programs that act on events are more responsive? You can't even make a smooth scrolling ticker on Linux without chewing up all the CPU if the HZ constant is 100 - too slow. I realize that more time will be spect in context switching - so be it - the time is miniscule.
Oh.... wait.... are you one of those people who can't compile their own kernel???
If you had done any research at all, and had looked at the source code for a BeOS application you would not be making a comment like this.
I know different individuals have different ideas of what difficulty is, and I am no great programmer, but I can tell you that BeOS is one of the easiest operating systems to program under. BeOS flopped for many other reasons that are not really for discussion here.
After seeing that somone else has also made a point of saying "your wrong" I hope you get that posting score reduced from a +5 to a -5.
BeOS programming really isn't that hard. You just have to get used to the idea of locking every single thing that could possibly be shared.
A deep unwavering belief is a sure sign you're missing something...
I would just like to add that I'm using an RME Hammerfall on Windows 2000 with 3ms latency. Works fine.
I downloaded linux 2.4.12, unzipped it to make /usr/src/linux, downloaded preempt-kernel-rml-2.4.12-1 and did "patch -p0 preempt-kernel-rml-2.4.12-1.patch" and got tons of errors and warnings from patch along the lines of:
Hunk #1 FAILED at xx.
What am I doing wrong here?
Geoffeg
But Darwin is built on top of the Mach microkernel, no? So most of the normal kernel-y stuff will already be in userspace, reducing the need for kernel pre-emption.
Also, and this is key, the audio in my test game (Loki's Tribes 2 port) DEFINATELY syncs up better with on-screen action, making me think that this type of patch is an incredible boon for us Linux gamers.
Please Rate my comment (and help support Fre
The extremely high-resolution threading of the operating system made even the simplest programming tasks near impossible, as mutex locks and thread conditionals needed to be spread throughout the code to ensure proper execution.
Right on! I ran BeOs under VmWare to try developing for it, and the pthreads compatibility was... well let's just be polite and say "extremely non-optimal". The spin locks in the kernel were so tightly placed that any possible race condition you could think of would occur if you didn't mutex lock the hell out of it, and the littany of devices you had to lock to access memory was just unbelievable. I pretty much had to read through the video driver code to get anything done as the documentation got as far as "Hello World" before wishing you luck.
Anyway, DeMuDi looks to be a step in the right direction - maybe if a Linux distro starts shipping with 2 kernels, a standard kernel and a multi-media enhanced kernel, we'll finally have a workable solution.
The API's are relatively simple, in fact BeOS is one of the only O/Ses you can read people calling a joy to code for.
The other is AtheOS.
Loneliness is a power that we possess to give or take away forever
Yeah, it's very odd that people seem to find using Lock() & Unlock() pairs on objects tough. This is going from experiences with AtheOS, but it isn't hard to remember (& you can get away with a lot if you're just coding some sloppy code for yourself. My own code rarely locks any objects before it does something with it, and doesn't lock up)
"Professional audio processing requires an extremely special form of real-time processing that is pretty much only good for handling audio, and which actually can cause problems with any other types of software."
Special in what way? I'm not really familiar with audio software but I have a hard time picturing what you mean by "special" real-time.
You say that in Windows software handles it's own scheduling and bypasses the kernel. What exactly does that buy you that you couldn't get more elegantly in Linux by creating a kernel patch (A premptable kernel patch for example). The windows way strikes me as not very stable, flexible or good.
Linux let's your program hog the cpu already by setting nice levels. With preemption even if it gives the cpu to a different process it can take it back right away.
The Linux way seems better exactly because it's not a special purpose hack. Why is hogging the cpu for audio processing any different than hogging the cpu for video processing?
Don't let the loser bother you. Consider: a person who has nothing better to do with his time than sit on slashdot randomly telling strangers to "get a life" seriously needs to get a life himself. I can't even imagine how sad and pathetic someone's existence must be for that to be the high point of their day. Nobody who really had a life would be doing that, it doesn't make sense. I'm not claiming I have a life, but I haven't sunk that low yet :)
Your induction is flawed. You've showed an example where n=0 and where n=1 (which *just happens*, by coincidence, to be 1 more than the previous one), but you HAVE NOT SHOWN specifically the case of "n+1" characters (i.e. given any "n", that "n+1" will be troll post). You've showed that "0+1" in your example was true, but demonstrating "0+1" is vastly different from demonstrating "n+1". Go back to class.
you are a cocksucker. He did too show that if n was a troll, n+1 would be a troll. Besides, its fucking obvious. I mean, really! If I have a link to goatsex, and then say good slashbot, I am still a troll.
Take this personaility test.
Does anyone who's installed this thing know if you can switch kernel preemption on and off on the fly (through /proc or something)? And if not, how difficult would that be to achieve? Sorry, I'm not a kernel hacker so I have no clue how to find this out from the source.
True, also, you can always chicken out and use big global locks if you need something quick.
A deep unwavering belief is a sure sign you're missing something...
Tried this patch before... it works great adds a nice option in the kernel config. But the problem is pcmcia-cs doesn't work with it. Says in the changelog it will be fixed on the next release of pcmcia-cs but I want it now!
It does work nicely... everything is a lot more responsive.
Great work!
After messing with it on several machines, here is what I have found.
* it doesn't work well on a shell server or anything which might have alot of disk activity. The changes seem to do everything at the expense of disk IO and network IO. I do see better speed on interactive stuff though. Its not worth the hit in IO.
* there is no option to turn it off while in operation. Means you have to run different kernels if you want to do some things with the preempt, and other stuff without.
Brielle
I don know if it's supposed to be broken in 2.4.12 but i have compiled with the preemtive kernel with 2.4.10 (the patch linked in the 2.4.10 kernel anouncement here) and my NIC is a pcmcia card (i an not connected through a modem). Hence, it must be working.
Had to compile everything pcmcia related it into the kernel (non module), except for the lan card driver.
Excellent work on this. It's a wonder that the a fully preemptive kernel wasn't introduced a long time ago, but I guess it depends on what your view of the purpose of Linux is.
1. Is it a server OS, built to handle a large amount of processing and get it done as fast as possible
or
2. Is it a workstation OS, built with from a user's perspective, with responsiveness and ease of frustration as the most important elements.
If you look at it this way, I guess it is easy to see why the preemptive kernel wasn't brought in before now, because up until only recently, Linux really was thought of as a server OS. But now that it's trying to become more user friendly to the general populace to more easily spread its love, #2 starts eclipsing #1 for attention.
It is a good thing that they are making it a sysem option, because then you can choose which mode is more important for YOU.
+1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.
He didn't even answer the guy's question.
And anyway, threading never caused a BSOD in Win9x. He's on crack.
___
The ends are ape-chosen, only the means are man's. -- Aldous Huxley
This is why BeOS ultimately flopped: it was too hard to program for.
True, but in a very different way. The lack of decent developer support, for a platform running on hardware most people use windows on, aimed at the market that people buy macs for, compatible with less actual hardware than either, with no software from vendors anyone had ever heard of, is why it flopped.
I liked BeOS too. I ultimately wiped it off my system because I just didn't have a use for it.
I've finally had it: until slashdot gets article moderation, I am not coming back.
Response from one of the head developers:
/home/brennan Shell: /usr/local/bin/tcsh
/.
[simm0@mercury ~]$ finger brennan@nullsoft.com
[nullsoft.com]
Login: brennan Name: Brennan Underwood
Directory:
On since Sun Oct 14 18:17 (PDT) on ttyp0, idle 1:05, from 64.105.36.233
New mail received Sun Oct 14 19:20 2001 (PDT)
Unread since Sun Oct 14 19:05 2001 (PDT)
Project:
Why, none other than architect and head such-and-such for Winamp 3.0.
Codename Wasabi. Why this fails to get me all the chicks I'll never know.
Plan:
14-Oct-2001
Dear
We ported it to Linux because we *like* Linux. Calm down.
Sincerely,
Brennan
yeah the one I tried was with 2.4.10 didn't work. my card's driver isn't included with the kernel so I have to compile the pcmcia driver that comes with the pcmcia-cs package (why IS there 2 different drivers?). I checked the changelog on the pre-emptive kernel page and it mentions that they are pressing the maintainers to fix the code for pcmcia-cs for the next release which I hope is soon.
This happens to mee too when I use netscape 4.7x (ie, not mozilla). If I hit the "back" button repeatedly very quickly (when there is a few pages available to back up), it'll lock up X (the pointer works, but no clicks or key input gets to the apps). CTRL-ALT-BACKSPACE does no good; but telnetting in and killing netscape does (X goes back to normal)
I'll have to try this with the pre-emption patch (for curiosity; I've switched to better browsers)
Most likely it is a X problem.
Anywhere that BeOS highlighted your race condition by causing unwanted behaviour is somewhere that you'd get "random" crash bugs from in another OS if you didn't fix the code.
Other OSes don't guarantee much about how long your timeslice is, or how often you'll get time, it's sort of haphazard. That randomness means that while those race conditions don't manifest as much, they're still there to bite you.
Think of it like memory leaks and dangling pointers. Ninety-nine times you can use an element of a linked list after delinking it, one time it will have already been written over. But you don't want to somehow make the bug come up one in a thousand times... you want it to come up EVERY time so that you fix the problem before release.
It might be a bit of a pain to put locks around everything, but after a while it becomes quick and natural and you still have the power of a fast kernel with a very small timeslice for when you need it.
Those locks you're leaving out of your non-BeOS code might make it easier to code, but they mean it'll crash at random years later when some odd combination of load variables causes your program to be yanked out of a critical area before completion and lets the next thread enter too soon. But you'll have run it for months, seen no problems, and shipped it.
You *need* to lock everything that might ever be an issue, even if it's the tiniest operation. That's why there's a "Test & Set" operation in ASM. It might be the tiniest thing, but you need to guarantee it's atomic.
I wish more OSes were hard in the way you describe - if race conditions were more easily shaken out they wouldn't plague "release caliber" software.
And as to BeOS being hard to program for... What?!? It might have enforced better style which could be a pain at first, but it was (is still, I guess) a wonderful OS for programmers.
The desktop end-user *is* a real-time application
You know, some things just aren't black and white.
The pre-emptible kernel patches radically rework the way the kernel functions. So people are being cautious.
I was surprised he said this. This isn't a big scary kludge that inserts a bunch of hacks all over the place in the kernel; this is a relatively small patch that simply leverages all the SMP work. It won't make the kernel uglier or harder to maintain, so IMHO it is very worth adding.
I am confident that Linus will get that prodding from the real world he is waiting for, because my own experiences with this patch are overwhelmingly positive. I'm using kernel 2.4.10 with the preemption patch on my desktop Linux boxes, and I love the snappy feel it gives my system. Playing back MP3 music never skips now, and my K6-III/450 system pops up web pages in Galeon so fast it feels like an Athlon system.
Kudos to Robert Love and anyone else who worked on this patch.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
Yeah, this puts the kernel right up there with the Emmys!
Will Joan Rivers be there for the 2.5 rollout?
Kill, Tux, kill!
As shown by the chart from the Real-Time Benchmark Result - available at [ http://kpreempt.sourceforge.net/ ] - we can see that the spinlock problem is preventing the pre-emptive kernel to achieve its true potential.
Therefore, is there ANYONE out there doing anything to solve the spinlock problem?
Muchas Gracias, Señor Edward Snowden !
True reduction of latency will NOT happen as long as the Spinlock problem is still plaguing Linux.
As shown by the chart from the Real-Time Benchmark Result - available at [ http://kpreempt.sourceforge.net/ ] - we can see that the spinlock problem is preventing the pre-emptive kernel to achieve its true potential.
Therefore, is there ANYONE out there doing anything to solve the spinlock problem?
Muchas Gracias, Señor Edward Snowden !
And are you a Linux user? If so PLEASE go and get demudi up and running on that box and see what latencies you get there for comparable tasks and then come back and tell us! Demudi is spawned from the Hammerfall's ability to offer (Semi-)Professional audio capabilities to Linux. I have a Hammerfall about 5 metres from me at the moment, but it's not mine and I would be beaten severly if I touched it :-(
Never underestimate the dark side of the Source
Using a kernel with this patch to run vmware, I experience long halts in both systems (linux and windows98/vmware). They both freeze for several seconds each, waiting for something. This happens a couple of times every minute. Anybody know what's up?
sig sig sputnik
So people are being cautious...
:)
on this issue
I don't know how this might manifest itself, but I could see how some existing, highly tuned programs could have problems with such a patch. If software is developed with the current mainstream kernel in mind, it may make certain internal assumptions about not being preempted during certain operations, and some timing getting messed up because of that. One poster mentioned a potential VMware problem, which could be an effect of something like this.
I would like to see this patch in there, but I could see some reasons to be hesitant about putting it in now. I would love to see latency on the level of QNX, that seems very responsev..
XML is like violence. If it doesn't solve the problem, use more.
I'm compiling the Love patch as I type, but am interested if the Morten patch will co-exist happily with the Love patch?
Considering that BeOS has no pthreads library, I'm not surprised that you weren't impressed with its pthreads compatibility.
And the "littany of devices you had to lock to access memory"... uh, ok. Sure. malloc() and friends must have slipped your mind.
Unless you were working on specialized low-level stuff (you don't say), you're totally blowing smoke and FUD. Doing POSIX programming... no need to worry about threads or locking or anything (well, maybe you'd worry about sockets not being file descriptors). Doing GUI programming, you lock your window when you access it and unlock it when you're done... not a big deal, and not a totally alien concept.
BeOS was by no means perfect, but it certainly wasn't pure hell to program.
*shrug*
- chrish
OS X has been mentioned once -but no one pointed out the following link: http://developer.apple.com/technotes/tn/tn2028.htm l#MacOSXThreading
You have to scroll down to reach the section about kernel threading.
Great, here we go again. Yet another OS that will get plugged where it isn't welcome.
He did too show that if n was a troll, n+1 would be a troll
No, he didn't. Here is a further example demonstrating the flaw he DID make, since some people here are missing it. I will prove, by induction, that "n squared is always less than 10".
Step 1: For n=0, 0^2 = 0. Since 0Step 2: For n=1 (which is 1 greater than 0), 1^2 = 1. 1See the flaw yet? My hypothesis is flawed (try it for n=8), but I have "proven" it by induction in the same way he did. Come on, this is not that hard. In my "induction proof", it is merely a *coincidence* (essentially) that my hypothesis HAPPENED to be true for n=0 AND n=1, and I managed to prove it for "0" and for "0+1", but I *did not* prove it for "n+1", even though substituting n with 0 fits into the "0" and "0+1" example.
(Sorry for repost, posted in wrong format)
...)
"He did too show that if n was a troll, n+1 would be a troll"
No, he didn't. Here is an additional example demonstrating the flaw he *did* make. I will "prove", by induction, that "n squared is always less than 10" (which naturally is an incorrect hypothesis
Step 1: For n=0, 0^2 = 0. Since 010, my hypothesis is true for n=0.
Step 2: For n=1 (which is "0+1", i.e. 1 is "1 greater than 0"), 1^2 = 1. 110. Thus, I have "shown" that for n+1 (i.e. "0+1"), "n squared is always less than 10".
See the flaw yet? My hypothesis is flawed (try it for n=8), but I have "proven" it by induction in the same way he did. In my "induction proof", it is merely a *coincidence* (essentially) that my hypothesis HAPPENED to be true for n=0 AND n=1, and I managed to prove it for "0" and for "0+1", but I *did not* prove it for "n+1", even though substituting n with 0 fits into the "0" and "0+1" example. Somewhere in the inductive step proof, you actually still need an "n" to appear (or "k" is also used in texts) (e.g. a proof that "(k+1)^2 10" - obviously not provable in this case, but if that inequality could be proved, then my induction would have been proved).
look you moron.
The assumption is that a post with n characters is a troll.
Assuming that, is a post with n+1 characters a troll?
Of course it is you dhiarhetic ally mcbeal eating homosexual wiccan conspiracy cult member.
Reality check here:
Here is a post:
:Natalie Portman, hot grits?
It is a troll and moderated as such.
add one character to this post, any character and it will still be a troll!
You, sir, are a moron.
Take this personaility test.
Of course it is you dhiarhetic ally mcbeal eating homosexual wiccan conspiracy cult member
I am not diahretic!!!!
add one character to this post, any character and it will still be a troll!
Thats just one example. I can show you plenty of examples where n and n+1 will BOTH satisfy a given *incorrect* hypothesis, for certain specific values of n. Actually I already *have* given an example, but you were obviously too stupid to understand the explanation, so instead you just lashed out. Shame.
Good luck with your induction courses. You'll need it. Actually, on second thoughts, *you* won't be needing it, because you don't need to understand induction to ask people "do you want fries with that?" Myself, I passed those courses and got my degree years ago.
You, sir, are clearly clueless w.r.t. induction.