Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Memory paging
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=={{Anchor|SWAP-SPACE}}History== In the 1960s, swapping was an early virtual memory technique. An entire program or entire [[Memory segmentation|segment]] would be "swapped out" (or "rolled out") from RAM to disk or drum, and another one would be ''swapped in'' (or ''rolled in'').<ref>{{Cite book |contribution = Operating systems |title = Encyclopedia of computer science and technology |editor1-last = Belzer |editor1-first = Jack |editor2-last = Holzman |editor2-first = Albert G. |editor3-last = Kent |editor3-first = Allen |publisher = CRC Press |volume = 11 |page = 442 |year = 1981 |url = https://books.google.com/books?id=uTFirmDlSL8C |isbn = 0-8247-2261-2 |url-status = live |archive-url = https://web.archive.org/web/20170227051057/https://books.google.com/books?id=uTFirmDlSL8C&printsec=frontcover |archive-date = 2017-02-27 }}</ref><ref>{{Cite book |first = Harvey G. |last = Cragon |title = Memory Systems and Pipelined Processors |publisher = Jones and Bartlett Publishers |page = 109 |year = 1996 |url = https://books.google.com/books?id=q2w3JSFD7l4C |isbn = 0-86720-474-5 |url-status = live |archive-url = https://web.archive.org/web/20170227205647/https://books.google.com/books?id=q2w3JSFD7l4C |archive-date = 2017-02-27 }}</ref> A swapped-out program would be current but its execution would be suspended while its RAM was in use by another program; a program with a swapped-out segment could continue running until it needed that segment, at which point it would be suspended until the segment was swapped in. A program might include multiple [[Overlay (programming)|overlays]] that occupy the same memory at different times. Overlays are not a method of paging RAM to secondary storage{{efn|name=secondary}} but merely of minimizing the program's RAM use. Subsequent architectures used [[memory segmentation]], and individual program segments became the units exchanged between secondary storage and RAM. A segment was the program's entire code segment or data segment, or sometimes other large data structures. These segments had to be [[contiguous data storage|contiguous]] when resident in RAM, requiring additional computation and movement to remedy [[Fragmentation (computer)|fragmentation]].<ref>{{Cite book |contribution = Virtual memory systems |title = Encyclopedia of computer science and technology |editor1-last = Belzer |editor1-first = Jack |editor2-last = Holzman |editor2-first = Albert G. |editor3-last = Kent |editor3-first = Allen |publisher = CRC Press |volume = 14 |page = 32 |year = 1981 |url = https://books.google.com/books?id=KUgNGCJB4agC |isbn = 0-8247-2214-0 |url-status = live |archive-url = https://web.archive.org/web/20170227081754/https://books.google.com/books?id=KUgNGCJB4agC&printsec=frontcover |archive-date = 2017-02-27 }}</ref> [[Ferranti]]'s [[Atlas (computer)|Atlas]], and the [[Atlas Supervisor]] developed at the [[University of Manchester]],<ref>{{cite web|url=http://www.chilton-computing.org.uk/acl/technology/atlas/p019.htm|title=The Atlas Supervisor|first1=T|last1=Kilburn|author-link1=Tom Kilburn|first2=R B|last2=Payne|first3=D J|last3=Howarth|date=1962}}</ref> (1962), was the first system to implement memory paging. Subsequent early machines, and their operating systems, supporting paging include the [[IBM M44/44X]] and its MOS operating system (1964),<ref>{{cite conference|author=R. W. O'Neill|title=Experience using a time sharing multiprogramming system with dynamic address relocation hardware|conference=Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967)|pages=611β621|doi=10.1145/1465482.1465581}}</ref> the [[SDS 940]]<ref>{{cite book|url=http://bitsavers.org/pdf/sds/9xx/940/900640A_940_RefMan_Aug66.pdf|title=Scientific Data Systems Reference Manual, SDS 940 Computer|pages=8β9|date=1966}}</ref> and the [[Berkeley Timesharing System]] (1966), a modified [[IBM System/360 Model 40]] and the [[IBM CP-40|CP-40]] operating system (1967), the [[IBM System/360 Model 67]] and operating systems such as [[TSS/360]] and [[CP/CMS]] (1967), the [[RCA Spectra 70#Model 70/46|RCA 70/46]] and the [[Time Sharing Operating System]] (1967), the [[GE 645]] and [[Multics]] (1969), and the [[PDP-10]] with added [[Raytheon BBN|BBN]]-designed paging hardware and the [[TENEX (operating system)|TENEX]] operating system (1969). Those machines, and subsequent machines supporting memory paging, use either a set of [[page address register]]s or in-memory [[page table]]s{{efn|Some systems have a global page table, some systems have a separate page table for each process, some systems have a separate page table for each segment{{efn|E.g., [[Multics]], [[OS/VS1]], [[OS/VS2]], [[VM/370]]}} and some systems have cascaded page tables.{{efn|E.g.,[[z/OS]].}}}} to allow the processor to operate on arbitrary pages anywhere in RAM as a seemingly contiguous [[logical address]] space. These pages became the units exchanged between secondary storage{{efn|name=secondary}} and RAM.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)