Knowledge

Talk:Virtual address space

Source đź“ť

399:
needed for another purpose, the kernel uploads it (again, no fault). The only differences there are 1) it's read from or written to the "swap area" (swap partition or swap file/page file/whatever your OS calls it), 2) it's not written back unless the page frame is needed for another purpose, and 3) the pages, being anonymous, don't serve as entries in a cache. So "accessing a memory-mapped file does not necessarily lead to a page fault" is not a point of distinction between "virtual memory" in the sense of "anonymous pages don't all have to be in physical memory" and memory-mapped files.
290:
that if any of the addresses in that address space are backed by physical memory, all are - i.e., a system where all code and data is in physical memory at all times, or where an entity given its own address space is either entirely in physical memory or entirely out of physical memory, i.e. swapped in or swapped out, at any given time). There is no requirement that each process, if the OS even has a notion of processes, have a separate virtual address space, as the current second paragraph of
368:. I insist only that they are distinct. Accessing a memory-mapped file not necessarily leads to a page fault. On reading the file, an entire page may be already downloaded. On writing to an already downloaded page, the page is just marked as altered (no fault). Then, after a suitable amount of time, the kernel uploads it (again, no fault). Then, the page is not necessarily discarded but may remain in the RAM as a file cache. It is not exactly the same way as the 74: 53: 22: 420:
says, in the introductory paragraph, "In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary
398:
Accessing, for example, the stack or heap does not necessarily lead to a page fault, either. On reading from the stack or heap, an entire page may be downloaded. On writing to an already downloaded page, the page is just marked as altered (no fault). Then, if the page frame containing that page is
275:
There's the concept of those some or all of those "not-physical" addresses not necessarily being mapped to physical addresses, with attempts by the machine to refer to them trapping to code that would, for example, load data from backing store into main memory and changing the map so that the address
935:
the pagefile implies that there is a specific relationship between pages of v.a.s. and page locations in the pagefile that's set up when the region is created, but that's not the case. Such relationships are only established if and when things have to be written to the pagefile. In addition, you get
647:
The example is too NT-oriented, and should probably be rewritten to discuss the general concepts of anonymous pages and file-mapped pages either without referring to the NT specifics or with references to specifics from other OSes as well. The "on 32-bit MS Windows" and "on 64-bit MS Windows" stuff
744:
provide such a mapping if a reference is made to the address")? In the former case, the address space, for most if not all non-segmented systems, would include address 0, and would consist of a small number of regions (typically 1 or 2, e.g. 2 in x86-64 with current implementations); in the latter
537:
You persuaded that there is no essential difference (probably, I distinguished "virtual memory" from "paging" insufficiently). But a redirect from VAS to the "virtual memory" article can be a bit confusing: a VAS has not necessarily to contain any "virtual" (i.e. not yet mapped to physical) memory.
289:
There's the notion of the range of not-physical addresses to which instructions, on a machine with some form of address mapping, can refer. On a machine with virtual memory, that would be called the virtual address space; I'm not sure what it would be called on a machine without virtual memory (so
926:
You are correct. You don't need a pagefile to use v.a.s. that isn't mapped to exes or dlls or etc. And the notion that (in Windows terms) VirtualAlloc'd v.a.s. is "mapped to the pagefile" is incorrect. (There is such a thing as a "pagefile-backed section", but still, it isn't really "mapped to the
522:
4GB into the address space if pointers are 32 bits, which might be considered another difference, but, in both cases, the addresses backed by "swap space" or by a file are "virtual" in that there's no guarantee that they're in memory and a fetch from or store into the region might result in a page
340:
There's the notion of memory-mapped files, which are generally implemented by assigning a section of the virtual address space to a region of a file and arranging that page faults in that region fetch backing store from the file and, optionally, arranging that dirty pages in that region be written
868:
is not an OS concept. Virtual addressing is implemented in hardware. As far as I know, virtual addresses have never been implemented in software, except perhaps as a research project. The OS relies on the processor to supply the mechanism. In short, you can have a VAX without VMS, but not VMS
812:
have an address space smaller than the maximum amount of memory the CPU can address, or as you mention an address space can have holes. The hardware defines the maximum and the OS can further restrict it. Another question - is the concept of "address space" relevant to segmented systems such as
261:
There's the concept of instructions referring to addresses other than physical addresses. This could be used in a system that keeps all code and data in memory, without even swapping entire processes, much less swapping segments or paging. That's what, for example, "base and bounds" registers
349:
cases where a portion of the address space needn't be backed by physical memory and a reference to that portion of the address space causes a fault where the fault handler fetches the data from some form of backing store, which might be a memory-mapped file. I'm unaware of any consensus that
936:
a page fault the first time you touch both process-private and mapped virtual pages, just like you will if you touch a page that isn't defined yet. It's just that in the latter case the PF can't be resolved, whereas in the other two, it can be. That entire discussion needs to be rewritten.
876:
allocated by the OS, or the demand-paged memory services the OS provides. For example, on the i386 architecture the virtual address space is 2, but in ye olde Windows no single process was ever allotted more than 2 because 2 GB was reserved for the OS.
968:
memory the machine can address. All four possible combinations of "/3GB switch on or off" and "4 GB chipset or not" are possible and efficacious; the location of the U/K boundary in virtual address space is not directly related to how much RAM you have.
600:
restricted to "modern" operating systems such as the ones listed (and I'm not sure what renders OpenVMS or UNIX or even Windows NT "modern", as they date back to somewhere between the late 1970's and early-to-mid 1990's); they date back at least to
341:
back to the file. Whether that's distinct from "virtual memory" is a question of whether "virtual memory" refers only to what, in a system with paged virtual memory, are sometimes called "anonymous pages", i.e. pages
512:
includes files in disk storage as well as "swap space". In most OSes that support memory-mapped files, explicit calls must be made to map regions of files into the address space (but I don't think that's the case in
752:
Or, to put it another way, in the diagram on the page, are the gray areas part of the virtual address space (in which case it's defined by the hardware) or not (in which case it's defined by the software)?
731: 768:
It seems to me that it's a combination. The architecture defines the maximum possible size and the software decides what to actually make available. "Would" or "does" is more appropriate.
634:
and the "licensed internal code" on which it runs; IBM i, at least, uses other mechanisms to isolate processes (as did, say, OS/VS2 SVS, which I think used the "storage key" mechanism).
446:
And a definition of "virtual memory" that includes both anonymous pages and pages from memory-mapped files would be one where the following sentences from the opening paragraph of the
649: 517:- I think every file has a region of the (single) address space permanently assigned to it), which might be considered a difference, and, in some systems, you can't necessarily map 880:
Every reference in this article referring to files and virtual memory should be removed. Some are completely wrong. (The best that can be said for the reference to malloc is
345:
backed by a memory-mapped file (such as, say, stack and "heap" pages) but, instead, backed by pages in "swap space" (swap partition, swap file/pagefile, whatever) or refers to
230:). Although on modern systems the virtual memory operates in the context of VAS, it has not necessarily to use it (cf. ancient "swapping" mechanism when a process was 183: 762: 901: 172:
The article could be merged with virtual memory, as its entire content barring the first sentence is about virtual memory, not specifically virtual address space.
583:, in the fashion of the first sentence of the opening paragraph, rather than used to refer to the range of not-physical addresses to which instructions can refer. 372:
usually operates, but it expands a usable VAS portion likewise. Could you offer a definition of virtual memory which entirely absorbs memory-mapped files?
927:
pagefile".) First, again, you don't need a pagefile at all to create private committed address space (or even pagefile-backed sections!). Such v.a.s. is
429:
to memory-mapped files - the pages in the file are retried from secondary storage (the file) for use in main memory, and are retrieved in units of pages.
132: 243: 990: 661: 852: 822: 795: 777: 685: 547: 532: 381: 359: 493:
to be designed as though there is only one kind of memory, "virtual" memory, which behaves like directly addressable read/write memory (RAM).
951: 978: 957: 945: 1034: 996: 122: 276:
range in question refers to the physical memory in question. That's what's generally considered "virtual memory", and is what the
162: 1029: 872:
The virtual address space is the range of addresses the processor is capable of addressing. It's not to be confused with the
840: 326: 187: 1015: 630:
provide "security through process isolation" but that do provide virtual memory and a global virtual address space, such as
179: 98: 704: 538:
Should "virtual address space" become a quasi-independent section with a definition of that kind of memory address space?
149: 911:
Even in the windows-specific example, I don't believe the references to the page file are required to make the point.
813:
Multics? Still another - are there any systems besides SVS that use a single shared address space for all processes?
313:. Each program thus appears to have sole access to the virtual memory. However, some older operating systems (such as 226:
mechanism to enhance the usable memory for a process. The most common and most famous one, but not the only one (cf.
920: 726: 960:, the /3GB switch and "4 GB chipsets" are not directly related to each other. The former controls the division in 1039: 964:
address space between user mode and kernel mode, per-process and system-wide. The latter has to do with how much
81: 58: 983: 198:
is the thing which gave a prominence to virtual address spaces, but these two are not more the same thing than
33: 786:
Yes, "by the hardware and the OS" is "a combination", so you're saying it's "by the hardware and the OS".
652:- if people want to know that level of detail about NT, they should look in Microsoft's documentation. 97:
on Knowledge. If you would like to participate, please visit the project page, where you can join
470: 21: 839:"are there any systems besides SVS that use a single shared address space for all processes?" 167: 158:. For example, it talks about 4GB address space. It could be different on other architectures. 94: 916: 818: 773: 700: 681: 543: 478: 474: 377: 239: 39: 736:
Is the virtual address space defined by the hardware (as in "all addresses for which the OS
579:
heard "virtual address space", without an "a" or a "the" in front of it, used to refer to a
848: 791: 758: 657: 528: 490: 482: 355: 175: 740:
a mapping") or by the hardware and the OS (as in "all addresses for which the OS actually
8: 1004: 714: 306: 897: 885: 227: 203: 912: 814: 769: 696: 677: 539: 373: 235: 219: 1012: 906: 844: 787: 754: 653: 524: 351: 263: 215: 329:
that run all processes in a single address space composed of virtualized memory.
722: 447: 291: 277: 211: 195: 1023: 974: 941: 893: 310: 199: 889: 486: 318: 234:
uploaded to the disk). Leave articles distinct, just specify what is what.
159: 521:
of a file into the address space, e.g. you can't map all of a file : -->
305:
Most modern operating systems that support virtual memory also run each
1008: 1003:
commonly use the binary prefixes (Gi, Mi, etc) for computer units, see
718: 650:
Knowledge is not a manual, guidebook, textbook, or scientific journal
90: 884:.) In its place should be a discussion of address translation. Cf. 970: 937: 86: 73: 52: 606: 602: 364:
I do not insist that "virtual memory" and "memory-mapped files"
417: 369: 314: 676:
Yes it is a mess. I fixed the lead, but more work is needed.
864:
The answer to the OS woulda-coulda question is: No. Virtual
631: 610: 514: 322: 732:
What is, and what isn't, part of the virtual address space?
155: 266:
page is referring to when it discusses memory addresses.
931:
the pagefile if you have one, but to say that it is
564:
The "virtual address space" page is a bit of a mess:
85:, a collaborative effort to improve the coverage of 154:This article has references that are specific to 1021: 252:OK, there are several concepts to discuss here. 749:include 0, and might include several regions. 206:. "Virtual address space" is one of (several) 695:Is there a consensus on the merge proposal? 350:"virtual memory" refers only to the former. 19: 956:Despite the edit comment that accompanied 709:So, um, shouldn't this proposal be on the 596:The concepts discussed on this page are 1022: 327:single address space operating systems 648:should probably be removed entirely; 952:Re the /3GB swtich and 4 GB chipsets 79:This article is within the scope of 15: 421:storage in same-size blocks called 38:It is of interest to the following 13: 262:provide, and is arguably what the 14: 1051: 1035:Mid-importance Computing articles 222:. "Virtual memory" is a specific 321:) and even modern ones (such as 72: 51: 20: 127:This article has been rated as 107:Knowledge:WikiProject Computing 1030:Start-Class Computing articles 745:case, for most OSes, it would 110:Template:WikiProject Computing 1: 705:22:01, 12 December 2014 (UTC) 101:and see a list of open tasks. 902:23:18, 30 October 2014 (UTC) 218:space" which is opposed to 7: 1016:09:52, 21 August 2017 (UTC) 999:: note that Knowledge does 921:07:31, 28 August 2013 (UTC) 853:19:52, 27 August 2013 (UTC) 823:19:07, 27 August 2013 (UTC) 796:16:29, 27 August 2013 (UTC) 778:15:39, 27 August 2013 (UTC) 763:18:03, 26 August 2013 (UTC) 686:02:04, 26 August 2013 (UTC) 662:20:10, 26 August 2012 (UTC) 548:19:12, 28 August 2012 (UTC) 533:09:12, 27 August 2012 (UTC) 382:07:17, 27 August 2012 (UTC) 360:20:10, 26 August 2012 (UTC) 244:12:43, 26 August 2012 (UTC) 150:Assumptions that need a fix 10: 1056: 626:There are systems that do 194:Certainly, the concept of 133:project's importance scale 979:17:26, 15 July 2016 (UTC) 946:18:00, 15 July 2016 (UTC) 888:and this discussion from 727:17:26, 20 July 2015 (UTC) 163:13:30, 24 July 2007 (UTC) 126: 67: 46: 188:06:18, 29 May 2008 (UTC) 1040:All Computing articles 984:Computer unit prefixes 886:this page from caldera 95:information technology 28:This article is rated 479:computer data storage 475:computer architecture 309:in its own dedicated 82:WikiProject Computing 483:random-access memory 477:'s various forms of 715:Talk:Virtual memory 210:implementations of 228:memory-mapped file 220:physical addresses 113:Computing articles 34:content assessment 1014: 869:without a VAX. 425:." That applies 204:space exploration 190: 178:comment added by 147: 146: 143: 142: 139: 138: 1047: 1011: 994: 212:memory addresses 173: 115: 114: 111: 108: 105: 76: 69: 68: 63: 55: 48: 47: 31: 25: 24: 16: 1055: 1054: 1050: 1049: 1048: 1046: 1045: 1044: 1020: 1019: 995:In response to 988: 986: 954: 909: 734: 469:This technique 366:never intersect 264:logical address 216:logical address 170: 152: 112: 109: 106: 103: 102: 61: 32:on Knowledge's 29: 12: 11: 5: 1053: 1043: 1042: 1037: 1032: 985: 982: 953: 950: 949: 948: 908: 905: 882:not even wrong 862: 861: 860: 859: 858: 857: 856: 855: 830: 829: 828: 827: 826: 825: 801: 800: 799: 798: 781: 780: 733: 730: 693: 692: 691: 690: 689: 688: 669: 668: 667: 666: 665: 664: 640: 639: 638: 637: 636: 635: 619: 618: 617: 616: 615: 614: 589: 588: 587: 586: 585: 584: 568: 567: 566: 565: 559: 558: 557: 556: 555: 554: 553: 552: 551: 550: 503: 502: 501: 500: 499: 498: 497: 496: 495: 494: 489:), allowing a 458: 457: 456: 455: 454: 453: 452: 451: 448:virtual memory 437: 436: 435: 434: 433: 432: 431: 430: 407: 406: 405: 404: 403: 402: 401: 400: 389: 388: 387: 386: 385: 384: 335: 334: 333: 332: 331: 330: 298: 297: 296: 295: 292:virtual memory 284: 283: 282: 281: 278:virtual memory 270: 269: 268: 267: 256: 255: 254: 253: 247: 246: 196:virtual memory 180:132.204.221.34 169: 168:Merge proposal 166: 151: 148: 145: 144: 141: 140: 137: 136: 129:Mid-importance 125: 119: 118: 116: 99:the discussion 77: 65: 64: 62:Mid‑importance 56: 44: 43: 37: 26: 9: 6: 4: 3: 2: 1052: 1041: 1038: 1036: 1033: 1031: 1028: 1027: 1025: 1018: 1017: 1013: 1010: 1006: 1002: 998: 992: 981: 980: 976: 972: 967: 963: 959: 947: 943: 939: 934: 930: 925: 924: 923: 922: 918: 914: 904: 903: 899: 895: 891: 887: 883: 878: 875: 874:process space 870: 867: 854: 850: 846: 842: 838: 837: 836: 835: 834: 833: 832: 831: 824: 820: 816: 811: 807: 806: 805: 804: 803: 802: 797: 793: 789: 785: 784: 783: 782: 779: 775: 771: 767: 766: 765: 764: 760: 756: 750: 748: 743: 739: 738:could provide 729: 728: 724: 720: 716: 712: 707: 706: 702: 698: 687: 683: 679: 675: 674: 673: 672: 671: 670: 663: 659: 655: 651: 646: 645: 644: 643: 642: 641: 633: 629: 625: 624: 623: 622: 621: 620: 612: 608: 604: 599: 595: 594: 593: 592: 591: 590: 582: 578: 574: 573: 572: 571: 570: 569: 563: 562: 561: 560: 549: 545: 541: 536: 535: 534: 530: 526: 520: 516: 511: 510: 509: 508: 507: 506: 505: 504: 492: 488: 484: 480: 476: 472: 468: 467: 466: 465: 464: 463: 462: 461: 460: 459: 449: 445: 444: 443: 442: 441: 440: 439: 438: 428: 424: 419: 415: 414: 413: 412: 411: 410: 409: 408: 397: 396: 395: 394: 393: 392: 391: 390: 383: 379: 375: 371: 367: 363: 362: 361: 357: 353: 348: 344: 339: 338: 337: 336: 328: 324: 320: 316: 312: 311:address space 308: 304: 303: 302: 301: 300: 299: 293: 288: 287: 286: 285: 279: 274: 273: 272: 271: 265: 260: 259: 258: 257: 251: 250: 249: 248: 245: 241: 237: 233: 229: 225: 221: 217: 214:, a case of " 213: 209: 205: 201: 200:rocket engine 197: 193: 192: 191: 189: 185: 181: 177: 165: 164: 161: 157: 134: 130: 124: 121: 120: 117: 100: 96: 92: 88: 84: 83: 78: 75: 71: 70: 66: 60: 57: 54: 50: 49: 45: 41: 35: 27: 23: 18: 17: 1005:WP:COMPUNITS 1000: 987: 965: 961: 955: 932: 928: 910: 890:bottom up cs 881: 879: 873: 871: 865: 863: 809: 751: 746: 741: 737: 735: 710: 708: 694: 627: 597: 580: 576: 518: 487:disk storage 426: 422: 416:The page on 365: 346: 342: 280:page covers. 231: 223: 207: 171: 153: 128: 80: 40:WikiProjects 958:this change 913:Peter Flass 815:Peter Flass 770:Peter Flass 713:talk page, 697:Peter Flass 678:Peter Flass 540:Incnis Mrsi 471:virtualizes 374:Incnis Mrsi 294:points out: 236:Incnis Mrsi 174:—Preceding 30:Start-class 1024:Categories 866:addressing 845:Guy Harris 788:Guy Harris 755:Guy Harris 654:Guy Harris 525:Guy Harris 352:Guy Harris 319:OS/VS2 SVS 997:this edit 933:mapped to 929:backed by 581:mechanism 481:(such as 104:Computing 91:computing 87:computers 59:Computing 991:Maggyero 966:physical 894:Jklowden 450:article: 232:entirely 224:OS-level 208:hardware 176:unsigned 962:virtual 907:Example 607:TSS/360 603:Multics 523:fault. 491:program 427:exactly 307:process 131:on the 711:target 418:paging 370:paging 325:) are 315:OS/VS1 160:Raanoo 93:, and 36:scale. 1009:intgr 1007:. -- 810:could 742:would 632:IBM i 611:TENEX 577:never 575:I've 515:IBM i 423:pages 323:IBM i 975:talk 942:talk 917:talk 898:talk 849:talk 819:talk 808:You 792:talk 774:talk 759:talk 723:talk 719:SamB 701:talk 682:talk 658:talk 609:and 605:and 544:talk 529:talk 485:and 378:talk 356:talk 317:and 240:talk 202:and 184:talk 156:IA32 1001:not 971:Jeh 938:Jeh 841:Yes 747:not 717:? — 628:not 598:not 519:all 347:all 343:not 123:Mid 1026:: 977:) 944:) 919:) 900:) 851:) 843:. 821:) 794:) 776:) 761:) 725:) 703:) 684:) 660:) 546:) 531:) 473:a 380:) 358:) 242:) 186:) 89:, 993:: 989:@ 973:( 940:( 915:( 896:( 892:. 847:( 817:( 790:( 772:( 757:( 721:( 699:( 680:( 656:( 613:. 542:( 527:( 376:( 354:( 238:( 182:( 135:. 42::

Index


content assessment
WikiProjects
WikiProject icon
Computing
WikiProject icon
WikiProject Computing
computers
computing
information technology
the discussion
Mid
project's importance scale
IA32
Raanoo
13:30, 24 July 2007 (UTC)
unsigned
132.204.221.34
talk
06:18, 29 May 2008 (UTC)
virtual memory
rocket engine
space exploration
memory addresses
logical address
physical addresses
memory-mapped file
Incnis Mrsi
talk
12:43, 26 August 2012 (UTC)

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑