I was wondering the same thing. Google found this somewhat informative article. See the section "4K Stacks in 2.6" about 1/3 down the page.
Apparently every process has it's own "kernel stack" used whenever the process enters kernel-mode code. previously it was 2 pages large (8KB). The pages had to be adjacent in physical memory, which can be hard to find on a heavily used system. Now they are reducing it to only 1 page, so stack hungry drivers must go on a diet.
It also mentions something about interupts that I don't understand. Maybe interupting breakfast is safer when everyone ate a small stack of pancakes.
Yeah, spoofing and account termination without verification makes me a bit nervous. A few months ago, my hotmail account recieved four or five 'mail undeliverable' mails from various servers. But I never sent any of the original messages. Checking the smtp headers showed that none of the original messages came from hotmail servers.
Applications which write code at runtime should have no trouble if they were developed properly in the first place!
In windows, the function VirtualAlloc has has always expected you to specify the level of protection for the memory page(s) you are allocating. These options include read,write, & execute in any combination.
The programmer should have used this. (sorry, don't know if unix mmap has the same options).
While I think there are benefits to it, many interns that I've worked with seem paralyzed if they don't have syntax highlighting
Don't be too hard on our naked-text challenged friends. Some people think that MS Word style developement enviornments and non-human readable source code is the path to enlightenment.
Yeah those where the days. Kids now adays don't even know how many millions of bits are wasted on crazy junk. Just imagine how much space is taken by the preemptive thread scheduler and its data. There was a time when applications would cooperate with each other to do their work. 32 bit pointers? Please. All we had was a near pointer and a segment register, and we liked it!
Yeah, most everybody I know has trouble with these, especially prolog (same as scheme right?). But I wonder what would happen if prolog was your first... Maybe it is only hard to understand because people only encounter it after a few years of procedural languages?
Or maybe humans do think in procedural. Not too often you see a recipie for toast written:
toasted(bread):- cooked(bread), buttered(bread) cooked(bread):- BreadInToaster(bread, toaster), TosterFinished(toaster) TosterFinished(toaster):-.... ack, kill me now
Reading this thread convinced me to try firefox. And yeah, it is good. Download was fast, install was painless and quick, I liked having the bloated features get kicked out to extensions. And happiest of all: firefox took 35MB working set/80MB virtual vs. ie6 taking 45MB working set/140MB virtual. Definately need to stop thinking of mozilla as a beast.
But, rendering... Some pages aren't correct, thanks to web monkey's using IE's HTML additions. That's a real chicken/egg problem. And WTF, opening ifilms.com with firefox causes media player v6 to load instead of v9?? I didn't even know v6 was installed! It had to download the fricken codecs.
Still, I'll set it as my default for awhile, see how it goes.
It's hard to appreciate garbage collection, for one, until you've had to pick up your own memory trash
Well yes, they did teach us C at my school.
But our coverage of assembler was limited (not a full course). Just implementing some functions, called by C. And analysing the output of various compilers and flags. The focus was just on the performance tricks.
does reserving a region Y as mostly empty help make the management of X more efficient?
Okay, I think I understand now. IMHO, I don't think that is necessary.
[maybe you can] map [regions of memory] through an extra layer of indirection.
This is exactly what modern VM systems do. Every application has a private virtual address space so it can allocate memory at almost any virtual address. The VM manager maps addresses from the virtual space to real memory (or swap file). IIRC, the CPU supports translation look-aside buffers (TLB) which make this very fast. So an application can get a big linear block of virtual memory even if the actual memory must get scattered. In theory ram has no 'seek time', so this scattering doesn't matter.
Things are further simplified with memory pages. The VM manager handles memory in constant sized blocks, so finding free memory is quick. Your language's runtime implements application-private mem management on top of those blocks. But that is all in virtual addresses, needing no knowledge of swap or physical ram.
Well, anyway, that's my dusty understanding of VM design anyway.;-)
Re:If You have enough RAM
on
Is Swap Necessary?
·
· Score: 3, Insightful
I had to read that a couple times before I noticed the problem. You have the second theorem wrong. It should say: "X ram + Y swap is slower than (X + Y) ram with NO swap at all". Then, your question about managing X+Y ram wouldn't make sense because there is nothing to manage: either you run out of memory and apps die or you don't.
Intelligent memory managment only affects performance if you have swap space. Swap space could be defined as storage which is slower than main memory. If all your storage is the same speed, memory management is trivial.
Ironically, I have the same challenge for theorem #1 that you used for #2. #1 states that having swap is better than not having it. Clearly having swap increases the amount of allocations programs can make before their malloc's fail. But improve performance? That is only true if the OS can predict what data is needed for the future operations. If it predicts wrong, the usage of swap can degrade performance.
Any inlining function that renders on the client that gets information from another server. However javascript is not affected, but activex and other plugins are
In that case why would MS be at fault? They have no control over what an ActiveX control does.
Personally I like the VB syntax, it works well for simple tasks.
When I need something more powerfull, Managed C++ is a good alternative.
C# is useless to me. But I suppose it is nice for people who are used to java. Or if you want to mess with Mono of course.
Really. I haven't had any problems with C++ features in C++.net. It can be a pain marshalling between the managed and unmanaged code. But I don't feal like I'm working with a subset of regular C++.
Just be glad if your theaters don't charge extra for it. The amsterdam theaters honoured matrix fans by eliminating matinee pricing and adding another euro on top of the normal max price.
Oh wait, NY theaters charge $10? nevermind.
We've had dll reference counts, file protection, self registering COM dlls,.Net assemblies/manifests, and now this... If dll hell still exists, it will never be solved.
That said, I've never really had a problem with 'dll hell'.
Not computer related, but, I once welded a screwdriver to the metal box holds the power outlet. It took a surprising amount of force to get them apart.
So really, should we be surprised he doesn't mind having P2P pirates help distribute it, when he also accepts help from Hezbollah?
Apparently every process has it's own "kernel stack" used whenever the process enters kernel-mode code. previously it was 2 pages large (8KB). The pages had to be adjacent in physical memory, which can be hard to find on a heavily used system. Now they are reducing it to only 1 page, so stack hungry drivers must go on a diet.
It also mentions something about interupts that I don't understand. Maybe interupting breakfast is safer when everyone ate a small stack of pancakes.
Yeah, spoofing and account termination without verification makes me a bit nervous. A few months ago, my hotmail account recieved four or five 'mail undeliverable' mails from various servers. But I never sent any of the original messages. Checking the smtp headers showed that none of the original messages came from hotmail servers.
In windows, the function VirtualAlloc has has always expected you to specify the level of protection for the memory page(s) you are allocating. These options include read,write, & execute in any combination.
The programmer should have used this. (sorry, don't know if unix mmap has the same options).
Yeah, and also installs some spyware and pop-up windows requesting you to buy a legal copy. maybe intentionally corrupt the filesystem now and then.
Yeah those where the days. Kids now adays don't even know how many millions of bits are wasted on crazy junk. Just imagine how much space is taken by the preemptive thread scheduler and its data. There was a time when applications would cooperate with each other to do their work. 32 bit pointers? Please. All we had was a near pointer and a segment register, and we liked it!
Or maybe humans do think in procedural. Not too often you see a recipie for toast written:
But, rendering... Some pages aren't correct, thanks to web monkey's using IE's HTML additions. That's a real chicken/egg problem. And WTF, opening ifilms.com with firefox causes media player v6 to load instead of v9?? I didn't even know v6 was installed! It had to download the fricken codecs.
Still, I'll set it as my default for awhile, see how it goes.
But our coverage of assembler was limited (not a full course). Just implementing some functions, called by C. And analysing the output of various compilers and flags. The focus was just on the performance tricks.
Things are further simplified with memory pages. The VM manager handles memory in constant sized blocks, so finding free memory is quick. Your language's runtime implements application-private mem management on top of those blocks. But that is all in virtual addresses, needing no knowledge of swap or physical ram.
Well, anyway, that's my dusty understanding of VM design anyway. ;-)
NOBODY expects the Spanish Inquisition!
Intelligent memory managment only affects performance if you have swap space. Swap space could be defined as storage which is slower than main memory. If all your storage is the same speed, memory management is trivial.
Ironically, I have the same challenge for theorem #1 that you used for #2. #1 states that having swap is better than not having it. Clearly having swap increases the amount of allocations programs can make before their malloc's fail. But improve performance? That is only true if the OS can predict what data is needed for the future operations. If it predicts wrong, the usage of swap can degrade performance.
keep in mind though that AutoRun and AutoPlay are not the same thing. AutoPlay is a WinXP feature.
Personally I like the VB syntax, it works well for simple tasks. When I need something more powerfull, Managed C++ is a good alternative. C# is useless to me. But I suppose it is nice for people who are used to java. Or if you want to mess with Mono of course.
Really. I haven't had any problems with C++ features in C++.net. It can be a pain marshalling between the managed and unmanaged code. But I don't feal like I'm working with a subset of regular C++.
Riiight. Well, maybe that is why the headline for the story was in red?
me too!!
funny. I thought something was odd about the statement "many of you will recall" in regards to a museum.
Just be glad if your theaters don't charge extra for it. The amsterdam theaters honoured matrix fans by eliminating matinee pricing and adding another euro on top of the normal max price. Oh wait, NY theaters charge $10? nevermind.
We've had dll reference counts, file protection, self registering COM dlls, .Net assemblies/manifests, and now this... If dll hell still exists, it will never be solved.
That said, I've never really had a problem with 'dll hell'.
Not computer related, but, I once welded a screwdriver to the metal box holds the power outlet. It took a surprising amount of force to get them apart.