Talk:Memory management
This is the talk page for discussing improvements to the Memory management article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||||||||||||||||||||||
|
Text and/or other creative content from this version of Dynamic memory allocation was copied or moved into Memory management with this edit. The former page's history now serves to provide attribution for that content in the latter page, and it must not be deleted as long as the latter page exists. |
YUP
editThis really is a terrible article. Its ridiculously saturated with junk and could fall apart at any time, and probably should, it makes a vast variety of claims on how all these systems are tied together without even mentioning the application layer, and is written in sloppy stereotypical granulated oxford lecture style. I've gone through and fixed some of it, but its an oddly useless factor. — Preceding unsigned comment added by MeekMelange (talk • contribs) 15:51, 30 May 2012 (UTC)
Dynamic memory allocation in various languages
editi was really wondering how would if i insert a section about Comparison table of Dynamic Memory Allocation in various languages such as in java, c++, python, pascal etc. That will give glimpse that how one can allocate memory dynamically in different languages.
Prashantgonarkar (talk) 09:54, 30 October 2011 (UTC)
Garbage collection
editI quite disagree with the definition of Garbage collection (GC) given here.ie
It says : "Garbage collection is the automated allocation and deallocation of computer memory resources for a program." For me, the role of the garbage collector is to reclaim garbage but not to allocate memory. Allocating memory automatically is the goal of a memory allocator.
I would like to change this (if everyone agree) to : "Garbage collection is the automated deallocation of unused computer memory resources for a program."
What do you think ?
What happened
editwhat happened in this article?
Http://upload.wikimedia.org/wikipedia/en/1/18/Wikipedia_problem.png
--Dowclo 23:19, 14 March 2007 (UTC)
- The article got vandalized; no big deal, we have to put up with it every day. All edits made to Wikipedia are kept, you can use the "history" tab to see the changes. (I reformatted your comment a bit, I hope you don't mind). -- intgr 23:39, 14 March 2007 (UTC)
- it is appreciate you corrected my formatting, but you didn't fix the problem, when i went to the article, my firefox just get freezed, then i forbid the wikipedia's script, but the CPU usage still went to 100%, when i switch to maxthon(a IE shell) then the situation got a little bit better(in first couple sec the CPU usage is still 100%) --Dowclo 01:06, 15 March 2007 (UTC)
- Sounds like you are viewing a cached copy of the page; did you try refreshing it? -- intgr 01:08, 15 March 2007 (UTC)
- hehe, the article is clean now ^_^ (i went to the article after i saw your post, by the time the problem was still at there -__-b) --Dowclo 01:24, 15 March 2007 (UTC)
This Article is Horrible.
editSeriously.173.55.143.130 (talk) 02:10, 9 May 2009 (UTC)
- Thank you for your suggestion. When you believe an article needs improvement, please feel free to make those changes. Wikipedia is a wiki, so anyone can edit almost any article by simply following the edit this page link at the top. The Wikipedia community encourages you to be bold in updating pages. Don't worry too much about making honest mistakes — they're likely to be found and corrected quickly. If you're not sure how editing works, check out how to edit a page, or use the sandbox to try out your editing skills. New contributors are always welcome. You don't even need to log in (although there are many reasons why you might want to).
- If you want somebody else to do this work for you, you could at least be constructive in your criticism, i.e. what in particular you found confusing or inaccurate. -- intgr [talk] 08:32, 10 May 2009 (UTC)
lsbş. —Preceding unsigned comment added by 85.97.185.15 (talk) 09:39, 10 March 2010 (UTC)
merge with Dynamic memory management
editBoth articles discuss essentially the same concept topic. I think it's better to merge both articles.1exec1 (talk) 20:35, 8 October 2011 (UTC)
- This article discusses a concept? It seems to me to be discussing a variety of things with which the name "memory management" could, in theory, be associated - relocation and protection (which sounds as if they're disussing virtual memory), sharing, modules, and DOS memory managers. Guy Harris (talk) 22:10, 8 October 2011 (UTC)
- Sorry, I'm not a native speaker of English. By saying the same concept I meant the same topic.1exec1 (talk) 23:44, 8 October 2011 (UTC)
- Again, a topic? It's discussing multiple topics, not a single topic. Guy Harris (talk) 04:14, 9 October 2011 (UTC)
- OK, I give up, my English is not that good. I agree that article covers several topics in the sense that the discussed subjects are quite different. However, they are not entirely unrelated, and memory management fits well to define the scope that encompasses all these topics. Dynamic memory allocation also falls within that scope, so I think we should merge that content to this article.
- Unrelatedly, what word should I use as an alias to description that generalizes all discussed topics (memory management in this case)? Scope feels kinda weird in such a context, though I might be totally wrong.1exec1 (talk) 23:09, 9 October 2011 (UTC)
Coalescing Merger complete
editMerger complete. All information from Coalescing (computer science) has been merged into this article. Northamerica1000(talk) 04:39, 16 March 2012 (UTC)
- I see coalescing (computer science) is currently a stub article; the merge has been undone.[1]
- Should it be re-merged as per the 2011 discussion at Wikipedia:Articles for deletion/Coalescing (computer science), or is there some reason to keep it separate? --DavidCary (talk) 02:13, 10 July 2016 (UTC)
- @DavidCary: I don't exactly remember why I undid this merge, but I suppose I did because the merge was carried out poorly. Just a cut-and-paste of the original article into this one. This happens too often when a merge is the result of an AfD outcome, and it tends to reduce the quality of the (sometimes fairly arbitrarily chosen) merge target.
- However, this article should probably mention coalescing, so feel free to undo my undoing. It would be preferable if the text mentioned it in a slightly more natural way, like in the original source [2], though. —Ruud 09:57, 10 July 2016 (UTC)
"userland" memory management vs. OS memory management
editThis article seems to largely (but not entirely) be concerned with techniques used to manage application memory. Is there a place to discuss how the OS manages the computer's physical and/or virtual memory on behalf of the user? I came to this question while updating DOS/360 (I believe) and looking for an appropriate wikilink for "partition". I think there should be an article discussing the methods operating systems have used to manage memory: "all memory" like DOS, IBSYS,etc. Memory "banks" like TOPS-10 segments, fixed partitions (DOS/360, MFT), dynamic allocation like OS/360 MVT, and then a brief discussion of virtual memory - single address space (OS/VS2 SVS and maybe others), segmented virtual memory like Multics, and then multiple address spaces like most current systems. Virtual memory has a pretty good article, but the historical stuff doesn't seem to have a home. Peter Flass (talk) 17:58, 7 May 2012 (UTC)
- I created a new article is Memory management (operating systems). Peter Flass (talk) 19:23, 9 May 2012 (UTC)
103.6.184.32 was right: there is an inbound redirect Heap (programming) (edit | talk | history | links | watch | logs), but there is no explanation of it. BTW, various threads on this talk page, and the presence of a dirty JPEG diagram on a very visible spot, certainly indicate that the article is neglected by good, able experts for a long time. Incnis Mrsi (talk) 10:56, 2 September 2012 (UTC)
- Still unaddressed. And heap allocated memory does NOT have to be manually managed... Caleb Stanford (talk) 03:12, 30 July 2022 (UTC)
Proposed Merger with Memory management (operating systems)
edit- Oppose. I created Memory management (operating systems) after considering adding that material to Memory management. It appeared there was not much overlap. Most of the material in Memory management (operating systems) is really of historical interest, since virtual memory has largely eliminated partitions, etc. Perhaps the choice of name wasn't the greatest. Peter Flass (talk) 12:50, 2 September 2012 (UTC)
- Oppose. Memory management on the operating system level is quite distinct from memory management at the application level. —Ruud 17:49, 8 October 2012 (UTC)
- Weak support Memory management scope seems to cover both (which makes sense considering the name), with section(s) and size that can easily accommodate this article. A split based on topic (rather than history), seems OK, but considering the small article sizes a merge would also be OK. As this has been proposed for years, suggest closing. Widefox; talk 10:55, 30 June 2017 (UTC)
- Comment There are MM functions at the OS kernel level, but also at the app framework (what we used to call the run-time library) level (like malloc), and also in the CPU. Not every combination of CPU architecture+OS puts the boundaries at exactly the same place, nor does every combination of OS + programming environment. And of course there are differences in available functionality and in terminology.
- It seems to me that there should be an "umbrella" article that would discuss the general concepts across CPU/OS/programming environment, establish a common terminology, and guide readers to the correct subsidiary article(s) for their interest.
- This thought lead me to another idea: there are at least a dozen editors who seem to be interested, to various degrees, in maintaining and updating MM article. Most of us have our own specialty interest/expertise areas and we've all been editing these articles a little bit here and there, nipping at our particular specialties. Should we have some discussion re working together to improve all MM articles in a more consistent manner? Should we create a wikiproject, a subproject of WP:WikiProject Computing?
- @Amaury: @DoRD: @Dsimic: @FleetCommand: @GeneralizationsAreBad: @Guy Harris: @Guy Macon: @Jeh: @Peter Flass: @Ruud Koot: @TJH2018: @Widefox:
- Jeh (talk) 17:19, 19 September 2017 (UTC)
- Support per WP:SIZERULE. The readable prose size of each is: It seems there is even a nice reserved spot for the merger too. Give Don Salieri my regards. FleetCommand (Speak your mind!) 06:49, 21 September 2017 (UTC)
- Memory management: 6361 B (985 words)
- Memory management (operating systems): 5547 B (882 words)
- Support, merge the OS article into here. But some substantial improvements need to be made here. Jeh (talk) 07:44, 21 September 2017 (UTC)
- Comment: I find it interesting that some of the comments above seem to assume that memory management is always either part of the operating system or part of the application. This is likely because so many people don't know that the kind of programming I specialize in even exists. I often write programs for microcontrollers that consist of a single infinite loop, thus needing no operating system, and on occasion these sort of programs interact directly with a memory management unit in hardware. --Guy Macon (talk) 13:18, 21 September 2017 (UTC)
- A problem shared by the article. The article also largely omits mention of CPU MM functions such as address translation. It puts address translation under the "operating system" heading, but in every system I've worked on the actual translation is done in the CPU's MMU. The OS sets up the data structures to allow the MMU to do that, but the actual translation happens in the MMU.
- But, does that mean you oppose or support the merge? Jeh (talk) 13:36, 21 September 2017 (UTC)
- Support merging Memory management (operating systems) into Memory management. Also support expanding Memory Management so that it covers programs like the ones I write; assembly language with no OS that directly controls MMU hardware. --Guy Macon (talk) 21:07, 21 September 2017 (UTC)
- But, does that mean you oppose or support the merge? Jeh (talk) 13:36, 21 September 2017 (UTC)
- Support, per FleetCommand...TJH2018talk 15:29, 21 September 2017 (UTC)
Scope of this article
edit@Dsimic: recently removed discussion on application-level memory management from this article, saying:
- ""Memory management" refers to managing memory at the system level, within the hardware and operating system – sorry, but higher levels of memory management (libraries, languages, etc.) do not belong here"
Were you thinking about the separate Memory management (operating systems) article? Because this article seems to discuss application-level memory management as well, and the content you removed seems relevant to app-level memory management, for example "Memory requests are satisfied by allocating portions from a large pool of memory called the heap or free store". The word "heap" is commonly applied to application memory pools.
Or perhaps this should be split more clearly and changed into a disambiguation page? -- intgr [talk] 22:14, 2 December 2014 (UTC)
- Hello! Actually, I had Resource management (computing) article in mind as a possible destination for the addition I've deleted; that article deals specifically with the higher levels of memory management (libraries, languages, garbage collection, etc.), so it should be a much better fit.
- Anyway, I agree that we might have Memory management as a disambiguation page, which should then link to Memory management (system level) (which might be the new name for current Memory management article, any suggestions for a better name?), Memory management (operating systems), and Resource management (computing) articles. However, including Resource management (computing) into that disambiguation page would go against the way it currently fits into the structure established by Resource management (disambiguation).
- Another approach would be to merge Memory management and Memory management (operating systems) under a single Memory management article. In that case, the addition I've deleted would fit perfectly well into the resulting article, while referencing to Resource management (computing) for more general information. This merger approach might be even better, as those two articles aren't lengthy and having them merged would actually improve readability over creating a disambiguation page.
- Thoughts? — Dsimic (talk | contribs) 08:06, 3 December 2014 (UTC)
Illustration lacks a level
editThe "Hardware to user illustration" lacks the BIOS-level, between hardware and operative system. Can possibly be mentioned as ROM-level or Firmware-level. (BIOS is far more than the battery charged CMOS-type of memory, which on PC's have quite a few settings. The OS (such as Windows, Mac or Linux) makes call to the BIOS or Basic Input Output System in order to work. The same applies to "nude" programs (applications which don't require an OS, typical example are some hard drive partitioning programs). A computer works without a battery (and thereby also without the so called "CMOS-settings" ; CMOS is however a type of transistor[1]) but cannot work without the actual (firmware) BIOS. Suggestion - add BIOS to the illustration, as a level between hardware and operative system. Boeing720 (talk) 18:54, 23 May 2017 (UTC)
- Modern OSes may call the firmware monitor to perform some functions, but:
- it's not necessarily a traditional BIOS - it might be EFI/UEFI for newer PCs and Macs and, for non-IBM PC compatible machines, other firmware such as Open Firmware or EFI/UEFI;
- those modern OSes don't use it for I/O, the "IO" in "BIOS" notwithstanding, except perhaps during the early boot process, before the OS's own drivers are loaded;
- so the OS talks directly to the hardware, without the firmware's intervention, for most operations. Guy Harris (talk) 19:28, 23 May 2017 (UTC)
- Also, the illustration is part of Template:OS, not part of this page, so comments about the illustration belong on Template talk:OS, not here. Guy Harris (talk) 19:31, 23 May 2017 (UTC)
Stack and heap differentiation
editI propose that the article distinguishes between the following two topics:
- Stack-based memory allocation → Compile-time allocations; implicit calls to predefined system routines
- Heap-based memory allocation → Run-time allocations; explicit calls
AXONOV (talk) ⚑ 23:15, 5 January 2022 (UTC)
- Stack-based memory allocation is also at run time. Even the offsets within the stack frame may be dynamic, e.g.,
foo: procedure(count) declare bar(count) fixed bin auto, baz(count) fixed bin auto; ... return; end;
- for a PL/I example. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 01:07, 6 January 2022 (UTC)
- "Stack-based memory allocation is also at run time" Yes - adding to or subtracting from the stack pointer is done at run time. The layout of a [[stack frame] might be determined at compile time if all the elements are fixed-size, but, as you noted, if they aren't fixed-size, even that involves run-time work (the compiler may be able to determine, at compile time, an expression that gives the offset of an on-the-stack variable, but that expression doesn't necessarily evaluate to a constant value).
- This article doesn't say much about stacks; that may be why heap-based memory allocation redirects here. Is the idea here that the stack stuff in this article should be moved to stack-based memory allocation?
- And there's region-based memory management, which is somewhat like multiple heaps, but also shares some characteristics of a stack, as the article notes.
- (And then there are spaghetti stacks.) Guy Harris (talk) 02:00, 6 January 2022 (UTC)
- I would say that we need a
{{stack|Stack-based memory allocation}}
template. If anybody writes a heap section then the redirect should point to it. --Shmuel (Seymour J.) Metz Username:Chatul (talk) 15:07, 6 January 2022 (UTC) Is the idea here that the stack stuff…
It's a good idea to separate these topics and include some brief information on memory-management techniques by using separate sections for that. AXONOV (talk) ⚑ 08:49, 7 January 2022 (UTC)
- I would say that we need a
Somewhat related: the redirect from Heap (programming) to manual memory management is wholly confusing. Heap-based memory does not have to be manually managed. In fact, it often isn't. Wikipedia seems to lack any good explanation of the heap (at least, I can't find it). Caleb Stanford (talk) 03:16, 30 July 2022 (UTC)
India Education Program course assignment
editThis article was the subject of an educational assignment supported by Wikipedia Ambassadors through the India Education Program.
The above message was substituted from {{IEP assignment}}
by PrimeBOT (talk) on 20:00, 1 February 2023 (UTC)
Page numbers in citations
edit@Thecowboygilbert: Edit special:permalink/1202962652 removes parameters, moves a page number from an {{sfn}} template[1] to the {{cite book}} template[2] that refers, and removes the ending page number entirely. The whole point of having separate sfn and cite templates was to allow references to multiple page ranges in the same document without having multiple almost identical cite templates for the document. Is there any reason not to revert the edit. -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 17:08, 29 February 2024 (UTC)
- What are you wanting do in specific? I was just fixing the SFN/HARV error and adding the correct adjustment to the correct citation. You are allowed to remove the duplicate citation, which in your evidence would be the first one and change the sfn to the second citation. I’ll have to look at it in a minute but it would be fine to change the sfn to the latter. @Chatul Thecowboygilbert - (talk) ♥ 17:47, 29 February 2024 (UTC)
- I see what you meant, I have moved the work down to the Bibliography section as it’s used for a point of reference for the sfn. I have also edited the page number to reflect the original page numbers, 2.37-2.39 and removed the page= parameter from the book citation. I had misread what you had first said and reread it. @Chatul Thecowboygilbert - (talk) ♥ 17:57, 29 February 2024 (UTC)
- @Thecowboygilbert: It's still broken. The {{sfn}} doesn't link to p. 2-37 in the PDF, the identifier is missing and the base publications are not listed in the same place. How about if I start from special:permalink/1211046467, move OS360Sup and OSVS1Dig to Biblioograph, and add a comment to only put page numbers on referring {{sfn}} templates? -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 19:17, 29 February 2024 (UTC)
- What identifier are you talking about and what base publications are you talking about? If we revert and move to the Bibliography, we’ll end up with a broken sfn/harv still. I can add more to the sfn parameters to your liking but I do need all the information for it. Thecowboygilbert - (talk) ♥ 19:56, 29 February 2024 (UTC)
- @Thecowboygilbert: In special:permalink/1211046467, the References section has a labelled list
-
- OS360Sup
- OS Release 21 IBM System/360 Operating System Supervisor Services and Macro Instructions (PDF). IBM Systems Reference Library (Eighth ed.). IBM. September 1974. GC28-6646-7.
- OSVS1Dig
- OS/VS1 Programmer's Reference Digest Release 6 (PDF). IBM. 1976.
- where the labels are the identifiers for the {{sfn}} templates.
- What breakage in the sfn are you referring to? The references 0–255.[3] and similar[1] appear to display properly? Is there an issue with the metadata? -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 22:12, 29 February 2024 (UTC)
- The sfn/harv citation will display an error if you have a specific userscript installed saying that the citation is not communicating with the work. So yes, there is a problem with the metadata. It's an error that I usually see associated with sources that are not listed in the bibliography/work cited section or it using the wrong citation format.
- I moved both publications down to the bibliography, added a correct location URL for the correct page numbers. Are you good with this now? Thecowboygilbert - (talk) ♥ 01:38, 1 March 2024 (UTC)
- @Thecowboygilbert: Are you saying that putting a link into
|page=
or|pages=
in {{sfn}} will break the metadata? Is it documented, and, if not, should it be? The text in template:sfn#Adding a URL for the page or location claims that it's legitimate. Does this,[4] this,[5] this,[6] or this[7] have the same problem? - You didn't just move the {{cite book}}, you also changed the markup, destroying the visual link between, e.g.,
|ref=OS360Sup
and the citation.
- @Thecowboygilbert: Are you saying that putting a link into
- What identifier are you talking about and what base publications are you talking about? If we revert and move to the Bibliography, we’ll end up with a broken sfn/harv still. I can add more to the sfn parameters to your liking but I do need all the information for it. Thecowboygilbert - (talk) ♥ 19:56, 29 February 2024 (UTC)
- @Thecowboygilbert: It's still broken. The {{sfn}} doesn't link to p. 2-37 in the PDF, the identifier is missing and the base publications are not listed in the same place. How about if I start from special:permalink/1211046467, move OS360Sup and OSVS1Dig to Biblioograph, and add a comment to only put page numbers on referring {{sfn}} templates? -- Shmuel (Seymour J.) Metz Username:Chatul (talk) 19:17, 29 February 2024 (UTC)
References
- ^ a b OSVS1Dig, pp. 2.37-2.39, VS1 Storage Subpools. Cite error: The named reference "FOOTNOTEOSVS1Dig[httpbitsaversorgpdfibm370OS_VS1GC24-5091-5_OS_VS1_Release_6_Programmers_Reference_Digest_197609pdfpage114 2.37]-2.39VS1 Storage Subpools" was defined multiple times with different content (see the help page).
- ^ OS/VS1 Programmer's Reference Digest Release 6 (PDF). Systems (Sixth ed.). IBM. November 1975. GC24-5091-5.
- ^ OS360Sup, pp. 82-85.
- ^ OS360Sup, pp. 82, Subpool Handling (in MFT Systems with Subtasking.
- ^ OS360Sup, pp. 82-85, Subpool Handling (in MVT Systems.
- ^ OSVS1Dig, pp. 2.37-2.39, VS1 Storage Subpools.
- ^ OSVS1Dig, pp. 2.37–2.39, VS1 Storage Subpools.
Burroughs/Unisys MCP memory management system discussed in Knuth?
editMemory management § Memory management in Burroughs/Unisys MCP systems says
Donald Knuth describes a similar system in Section 2.5 ‘Dynamic Storage Allocation’ of ‘Fundamental Algorithms’.
That section of Fundamental Algorithms discusses several memory management algorithms, and does not discuss descriptors at all? Does that claim mean that one or more of the algorithms discussed in that section is used by the MCP? Guy Harris (talk) 07:35, 30 November 2024 (UTC)
- There is no disputation here. Knuth consulted at Burroughs at that time. The schemes described in §2.5 of Knuth are very similar to those used for memory management in Burroughs MCP.
- The comment is about the memory management scheme as a whole, not specifically descriptors. Ian.joyner (talk) 12:07, 30 November 2024 (UTC)