Misplaced Pages

TOPS-20

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary OS used on some of DEC's 36-bit mainframe computers . The Hardware Reference Manual was described as for "DECsystem-10/DECSYSTEM-20 Processor" (meaning the DEC PDP-10 and the DECSYSTEM-20 ).

#642357

76-720: TOPS-20 began in 1969 as the TENEX operating system of Bolt, Beranek and Newman (BBN) and shipped as a product by DEC starting in 1976. TOPS-20 is almost entirely unrelated to the similarly named TOPS-10 , but it was shipped with the PA1050 TOPS-10 Monitor Calls emulation facility which allowed most, but not all, TOPS-10 executables to run unchanged. As a matter of policy, DEC did not update PA1050 to support later TOPS-10 additions except where required by DEC software. TOPS-20 competed with TOPS-10, ITS and WAITS —all of which were notable time-sharing systems for

152-422: A Model B hardware revision to enlarge the user virtual address space. Some effective address calculations by instructions located beyond the original 18-bit address space were performed to 30 significant bits, although only a 23-bit virtual address space was supported. Program code located in the original 18-bit address space had unchanged semantics, for backward compatibility . The first in-house code name for

228-475: A page frame in RAM, the processor treats this invalid memory reference as a page fault and transfers control from the program to the operating system. The operating system must: When all page frames are in use, the operating system must select a page frame to reuse for the page the program now needs. If the evicted page frame was dynamically allocated by a program to hold data, or if a program modified it since it

304-764: A GTJFN (Get Job File Number) JSYS, and then that JFN number was used to open (OPENF) and manipulate the file's contents. PCL (Programmable Command Language) is a programming language that runs under TOPS-20. PCL source programs are, by default, stored with Filetype .PCL, and enable extending the TOPS-20 EXEC via a verb named DECLARE. Newly compiled commands then become functionally part of the EXEC. PCL includes: Paul Allen maintained several publicly accessible historic computer systems before his death, including an XKL TOAD-2 running TOPS-20. See also SDF Public Access Unix System . TENEX (operating system) TENEX

380-489: A displacement deferred addressing mode, where the longword containing the operand address crosses a page boundary, and the source and destination could both cross page boundaries. This single instruction references ten pages; if not all are in RAM, each will cause a page fault. As each fault occurs the operating system needs to go through the extensive memory management routines perhaps causing multiple I/Os which might include writing other process pages to disk and reading pages of

456-479: A feature of Microsoft Windows since Windows 3.0 in 1990. Windows 3.x creates a hidden file named 386SPART.PAR or WIN386.SWP for use as a swap file. It is generally found in the root directory , but it may appear elsewhere (typically in the WINDOWS directory). Its size depends on how much swap space the system has (a setting selected by the user under Control Panel → Enhanced under "Virtual Memory"). If

532-531: A keystroke is not in main memory, then if the user enters a keystroke, the server will take one or more page faults, requiring those pages to read from swap before the keystroke can be processed, slowing the response to it. If those pages do not remain in memory, they will have to be faulted in again to handle the next keystroke, making the system practically unresponsive even if it's actually executing other tasks normally. macOS uses multiple swap files. The default (and Apple-recommended) installation places them on

608-431: A list of files in a directory, whereas TENEX used DIRECTORY (OF FILES) . " DIRECTORY " was the command word, " (OF FILES) " was noise added to make the purpose of the command clearer. To relieve users of the need to type these long commands, TENEX used a command completion system that understood unambiguously abbreviated command words, and expanded partial command words into complete words or phrases. For instance,

684-409: A lot of random writes, while SSDs do not have this problem. Certainly the default values work well in most workloads, but desktops and interactive systems for any expected task may want to lower the setting while batch processing and less interactive systems may want to increase it. When the system memory is highly insufficient for the current tasks and a large portion of memory activity goes through

760-602: A low-cost version of the KI-10. While this was going on, Stanford University AI programmers, many of them MIT alumni , were working on their own project to build a PDP-10 that was ten times faster than the original KA-10. The project evolved into the Foonly line of computers. DEC visited them and many of their ideas were then folded into the KL-10 project. The same year IBM also announced their own machine with virtual memory, making it

836-496: A much simpler single-level page mapping system. This compromise impacted system sales; by this point TENEX was the most popular customer-written PDP-10 operating systems, but it would not run on the new, faster KI-10s. To correct this problem, the DEC PDP-10 sales manager purchased the rights to TENEX from BBN and set up a project to port it to the new machine. At around this time Murphy moved from BBN to DEC as well, helping on

SECTION 10

#1732782340643

912-463: A slow swap, the system can become practically unable to execute any task, even if the CPU is idle. When every process is waiting on the swap, the system is considered to be in swap death . Swap death can happen due to incorrectly configured memory overcommitment . The original description of the "swapping to death" problem relates to the X server . If code or data used by the X server to respond to

988-429: A small number of code and data pages compared to the total memory the program requires. The pages most frequently accessed are called the working set . When the working set is a small percentage of the system's total number of pages, virtual memory systems work most efficiently and an insignificant amount of computing is spent resolving page faults. As the working set grows, resolving page faults remains manageable until

1064-480: A standard requirement for any computer. In the end the KL integrated a number of major changes to the system, but did not end up being any lower in cost. From the start, the new DECSYSTEM-20 would run a version of TENEX as its default operating system. Functional upgrades for the KL-10 processor architecture were limited. The most significant new feature (called extended addressing ) was modified pager microcode running on

1140-427: 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 overlays that occupy the same memory at different times. Overlays are not a method of paging RAM to disk but merely of minimizing the program's RAM use. Subsequent architectures used memory segmentation , and individual program segments became

1216-411: A system with 6 GB of memory and a 16 GB fixed-size page file and 2 TB of disk space). In both examples, the system uses about 0.8% of the disk space with the page file pre-extended to its maximum. Defragmenting the page file is also occasionally recommended to improve performance when a Windows system is chronically using much more memory than its total physical memory. This view ignores

1292-431: A virtually unlimited number of swap backends (devices or files), and also supports assignment of backend priorities. When the kernel swaps pages out of physical memory, it uses the highest-priority backend with available free space. If multiple swap backends are assigned the same priority, they are used in a round-robin fashion (which is somewhat similar to RAID 0 storage layouts), providing improved performance as long as

1368-459: Is 60 ; setting it higher can cause high latency if cold pages need to be swapped back in (when interacting with a program that had been idle for example), while setting it lower (even 0) may cause high latency when files that had been evicted from the cache need to be read again, but will make interactive programs more responsive as they will be less likely to need to swap back cold pages. Swapping can also slow down HDDs further because it involves

1444-463: Is a Linux kernel parameter that controls the relative weight given to swapping out of runtime memory , as opposed to dropping pages from the system page cache , whenever a memory allocation request cannot be met from free memory. Swappiness can be set to a value from 0 to 200. A low value causes the kernel to prefer to evict pages from the page cache while a higher value causes the kernel to prefer to swap out "cold" memory pages. The default value

1520-406: Is a 32-bit x86 processor with 4  GB and without Physical Address Extension (PAE). In this case, the processor is able to address all the RAM installed and no more. However, even in this case, paging can be used to support more virtual memory than physical memory. For instance, many programs may be running concurrently. Together, they may require more physical memory than can be installed on

1596-423: Is also used in contexts other than virtual memory systems; for example, to describe cache issues in computing or silly window syndrome in networking. A worst case might occur on VAX processors. A single MOVL crossing a page boundary could have a source operand using a displacement deferred addressing mode, where the longword containing the operand address crosses a page boundary, and a destination operand using

SECTION 20

#1732782340643

1672-454: Is an operating system developed in 1969 by BBN for the PDP-10 , which later formed the basis for Digital Equipment Corporation 's TOPS-20 operating system. In the 1960s, BBN was involved in a number of LISP -based artificial intelligence projects for DARPA , many of which had very large (for the era) memory requirements. One solution to this problem was to add paging software to

1748-399: Is analogous to a prefetch input queue in a CPU. Swap prefetching will prefetch recently swapped-out pages if there are enough free pages for them. If a program ends, the operating system may delay freeing its pages, in case the user runs the same program again. The free page queue is a list of page frames that are available for assignment. Preventing this queue from being empty minimizes

1824-482: Is common to dedicate an entire partition of a hard disk to swapping. These partitions are called swap partitions . Many systems have an entire hard drive dedicated to swapping, separate from the data drive(s), containing only a swap partition. A hard drive dedicated to swapping is called a "swap drive" or a "scratch drive" or a " scratch disk ". Some of those systems only support swapping to a swap partition; others also support swapping to files. The Linux kernel supports

1900-454: Is enabled via the CR0 control register . In the 1960s, swapping was an early virtual memory technique. An entire program or entire segment would be "swapped out" (or "rolled out") from RAM to disk or drum, and another one would be swapped in (or rolled in ). 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

1976-498: Is one way of allowing the size of the addresses used by a process, which is the process's "virtual address space" or "logical address space", to be different from the amount of main memory actually installed on a particular computer, which is the physical address space. In most systems, the size of a process's virtual address space is much larger than the available main memory. For example: A computer with true n -bit addressing may have 2 addressable units of RAM installed. An example

2052-509: Is requested. (This is often in combination with pre-cleaning, which guesses which pages currently in RAM are not likely to be needed soon, and pre-writing them out to storage). When a page fault occurs, anticipatory paging systems will not only bring in the referenced page, but also other pages that are likely to be referenced soon. A simple anticipatory paging algorithm will bring in the next few consecutive pages even though they are not yet needed (a prediction using locality of reference ); this

2128-459: Is temporary. As soon as the expanded regions are no longer in use (at the next reboot, if not sooner) the additional disk space allocations are freed and the page file is back to its original state. Locking a page file size can be problematic if a Windows application requests more memory than the total size of physical memory and the page file, leading to failed requests to allocate memory that may cause applications and system processes to fail. Also,

2204-434: Is to set a single "locked" page file size so that Windows will not expand it. However, the page file only expands when it has been filled, which, in its default configuration, is 150% of the total amount of physical memory. Thus the total demand for page file-backed virtual memory must exceed 250% of the computer's physical memory before the page file will expand. The fragmentation of the page file that occurs when it expands

2280-475: Is used up. Swap memory could be activated and deactivated any moment allowing the user to choose to use only physical RAM. The backing store for a virtual memory operating system is typically many orders of magnitude slower than RAM . Additionally, using mechanical storage devices introduces delay , several milliseconds for a hard disk. Therefore, it is desirable to reduce or eliminate swapping, where practical. Some operating systems offer settings to influence

2356-605: Is used, pages are loaded only when they are referenced. A program from a memory mapped file begins execution with none of its pages in RAM. As the program commits page faults, the operating system copies the needed pages from a file, e.g., memory-mapped file , paging file, or a swap partition containing the page data into RAM. Some systems use only demand paging —waiting until a page is actually requested before loading it into RAM. Other systems attempt to reduce latency by guessing which pages not in RAM are likely to be needed soon, and pre-loading such pages into RAM, before that page

TOPS-20 - Misplaced Pages Continue

2432-934: The IBM M44/44X and its MOS operating system (1964), the SDS 940 and the Berkeley Timesharing System (1966), a modified IBM System/360 Model 40 and the CP-40 operating system (1967), the IBM System/360 Model 67 and operating systems such as TSS/360 and CP/CMS (1967), the RCA 70/46 and the Time Sharing Operating System (1967), the GE 645 and Multics (1969), and the PDP-10 with added BBN -designed paging hardware and

2508-534: The LISP language, allowing it to write out unused portions of memory to disk for later recall if needed. One such system had been developed for the PDP-1 at MIT by Daniel Murphy before he joined BBN. Early DEC machines were based on an 18-bit word, allowing addresses to encode for a 256 kiloword memory. The machines were based on expensive core memory and included nowhere near the required amount. The pager used

2584-461: The PDP-10 during this timeframe. TOPS-20 is informally known as TWENEX. TOPS-20 was based upon the TENEX operating system, which had been created by Bolt Beranek and Newman for Digital's PDP-10 computer. After Digital started development of the KI-10 version of the PDP-10, an issue arose: by this point TENEX was the most popular customer-written PDP-10 operating systems, but it would not run on

2660-460: The PDP-10 . BBN started talks with DEC to get a paging subsystem in the new machine, then known by its CPU name, the KA-10. DEC was not interested; however, one development of these talks was support in the PDP-10 for a second virtual memory segment, allowing half of the user address space to be mapped to a separate (potentially read-only) region of physical memory. Additionally, DEC insisted on keeping

2736-425: The TENEX operating system (1969). Those machines, and subsequent machines supporting memory paging, use either a set of page address registers or in-memory page tables 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 disk and RAM. When a process tries to reference a page not currently mapped to

2812-514: The TOPS-20 Command Processor. JSYS stands for J ump to SYS tem. Operands were at times memory addresses. "TOPS-20 allows you to use 18-bit or 30-bit addresses. Some monitor calls require one kind, some the other; some calls accept either kind. Some monitor calls use only 18 bits to hold an address. These calls interpret 18-bit addresses as locations in the current section." Internally, files were first identified, using

2888-420: The active process from disk. If the operating system could not allocate ten pages to this program, then remedying the page fault would discard another page the instruction needs, and any restart of the instruction would fault again. To decrease excessive paging and resolve thrashing problems, a user can increase the number of pages available per program, either by running fewer programs concurrently or increasing

2964-487: The amount of RAM in the computer. In multi-programming or in a multi-user environment, many users may execute the same program, written so that its code and data are in separate pages. To minimize RAM use, all users share a single copy of the program. Each process's page table is set up so that the pages that address code point to the single shared copy, while the pages that address data point to different physical pages for each process. Different programs might also use

3040-698: The cache and avoiding filesystem overhead. When residing on HDDs, which are rotational magnetic media devices, one benefit of using swap partitions is the ability to place them on contiguous HDD areas that provide higher data throughput or faster seek time. However, the administrative flexibility of swap files can outweigh certain advantages of swap partitions. For example, a swap file can be placed on any mounted file system, can be set to any desired size, and can be added or changed as needed. Swap partitions are not as flexible; they cannot be enlarged without using partitioning or volume management tools, which introduce various complexities and potential downtimes. Swappiness

3116-410: The computing necessary to service a page fault. Some operating systems periodically look for pages that have not been recently referenced and then free the page frame and add it to the free page queue, a process known as "page stealing". Some operating systems support page reclamation ; if a program commits a page fault by referencing a page that was stolen, the operating system detects this and restores

TOPS-20 - Misplaced Pages Continue

3192-413: The concepts are independent of the technology used. Depending on the memory model , paged memory functionality is usually hardwired into a CPU/MCU by using a Memory Management Unit (MMU) or Memory Protection Unit (MPU) and separately enabled by privileged system code in the operating system 's kernel . In CPUs implementing the x86 instruction set architecture (ISA) for instance, the memory paging

3268-419: The cost of the machine as low as possible, such as supporting systems with a minimum of 16K words of core, and omitting the fast semiconductor register option (substituting core), at the cost of a considerable performance decrease. BBN nevertheless went ahead with its purchase of several PDP-10s, and decided to build their own hardware pager. During this period a debate began on what operating system to run on

3344-415: The drive, causing other files to become fragmented. For this reason, a fixed-size contiguous page file is better, providing that the size allocated is large enough to accommodate the needs of all applications. The required disk space may be easily allocated on systems with more recent specifications (i.e. a system with 3 GB of memory having a 6 GB fixed-size page file on a 750 GB disk drive, or

3420-434: The fact that, aside from the temporary results of expansion, the page file does not become fragmented over time. In general, performance concerns related to page file access are much more effectively dealt with by adding more physical memory. Unix systems, and other Unix-like operating systems, use the term "swap" to describe the act of substituting disk space for RAM when physical RAM is full. In some of those systems, it

3496-484: The growth reaches a critical point. Then faults go up dramatically and the time spent resolving them overwhelms time spent on the computing the program was written to do. This condition is referred to as thrashing . Thrashing occurs on a program that works with huge data structures, as its large working set causes continual page faults that drastically slow down the system. Satisfying page faults may require freeing pages that will soon have to be re-read from disk. "Thrashing"

3572-441: The kernel's decisions. Many Unix-like operating systems (for example AIX , Linux , and Solaris ) allow using multiple storage devices for swap space in parallel, to increase performance. In some older virtual memory operating systems, space in swap backing store is reserved when programs allocate memory for runtime data. Operating system vendors typically issue guidelines about how much swap space should be allocated. Paging

3648-603: The late 1980s, most of the TOPS-20 users had migrated to Unix. A loyal group of TOPS-20 enthusiasts kept working on various projects to preserve and extend TOPS-20, notably Mark Crispin and the Panda TOPS-20 distribution. Paging In computer operating systems , memory paging (or swapping on some Unix-like systems) is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory . In this scheme,

3724-442: The memory dump. When the system is rebooted, Windows copies the memory dump from the page file to a separate file and frees the space that was used in the page file. In the default configuration of Windows, the page file is allowed to expand beyond its initial allocation when necessary. If this happens gradually, it can become heavily fragmented which can potentially cause performance problems. The common advice given to avoid this

3800-520: The most significant bits of the address to index a table of blocks on a magnetic drum that acted as the pager's backing store . The software would fetch the pages if needed, and then resolve the address to the proper area of RAM . In 1964 DEC announced the PDP-6 . DEC was still heavily involved with MIT's AI Lab, and many feature requests from the LISP hackers were moved into this machine. 36-bit computing

3876-488: The name TENEX (TEN-EXtended) for the new system. It included a full virtual memory system—that is, not only could programs access a full 18 bit address space of 262144 words of virtual memory, every program could do so at the same time. The pager system would handle mapping as it would always, copying data to and from the backing store as needed. The only change needed was for the pager to be able to hold several sets of mappings between RAM and store, one for each program using

SECTION 50

#1732782340643

3952-573: The new machines. Strong arguments were made for the continued use of TOPS-10, in order to keep their existing software running with minimum effort. This would require a re-write of TOPS-10 to support the paging system, and this seemed like a major problem. At the same time, TOPS-10 did not support a number of features the developers wanted. In the end they decided to make a new system, but include an emulation library that would allow it to run existing TOPS-10 software with minor effort. The developer team—amongst them Daniel Murphy and Daniel G. Bobrow —chose

4028-686: The new, faster KI-10s. To correct this problem, the DEC PDP-10 sales manager purchased the rights to TENEX from BBN and set up a project to port it to the new machine. In the end, very little of the original TENEX code remained, and Digital ultimately named the resulting operating system TOPS-20. Some of what came with TOPS-20 was merely an emulation of the TOPS-10 Operating System's calls. These were known as UUO's, standing for Unimplemented User Operation, and were needed both for compilers, which were not 20-specific, to run, as well as user-programs written in these languages. The package that

4104-521: The operating system retrieves data from secondary storage in same-size blocks called pages . Paging is an important part of virtual memory implementations in modern operating systems, using secondary storage to let programs exceed the size of available physical memory. For simplicity, main memory is called "RAM" (an acronym of random-access memory ) and secondary storage is called "disk" (a shorthand for hard disk drive , drum memory or solid-state drive , etc.), but as with many aspects of computing,

4180-493: The operating system was VIROS (VIRtual memory Operating System); when customers started asking questions, the name was changed to SNARK so that DEC could truthfully deny that there was any project called VIROS. When the name SNARK became known, the name was briefly reversed to become KRANS; this was quickly abandoned when someone objected that " krans " meant "funeral wreath" in Swedish (though it simply means "wreath"; this part of

4256-430: The page file is rarely read or written in sequential order, so the performance advantage of having a completely sequential page file is minimal. However, a large page file generally allows the use of memory-heavy applications, with no penalties besides using more disk space. While a fragmented page file may not be an issue by itself, fragmentation of a variable size page file will over time create several fragmented blocks on

4332-600: The page frame least likely to be needed soon, often through the least recently used (LRU) algorithm or an algorithm based on the program's working set . To further increase responsiveness, paging systems may predict which pages will be needed soon, preemptively loading them into RAM before a program references them, and may steal page frames from pages that have been unreferenced for a long time, making them available. Some systems clear new pages to avoid data leaks that compromise security; some set them to installation defined or random values to aid debugging. When pure demand paging

4408-572: The page frame without having to read the contents back into RAM. The operating system may periodically pre-clean dirty pages: write modified pages back to disk even though they might be further modified. This minimizes the amount of cleaning needed to obtain new page frames at the moment a new program starts or a new data file is opened, and improves responsiveness. (Unix operating systems periodically use sync to pre-clean all dirty pages; Windows operating systems use "modified page writer" threads.) After completing initialization, most programs operate on

4484-525: The porting project. Most of the work centered on emulating the BBN pager hardware in a combination of software and the KI-10's simpler hardware. The speed of the KI-10 compared to the PDP-6 made this possible. Additionally the porting effort required a number of new device drivers to support the newer backing store devices being used. Just as the new TENEX was shipping, DEC started work on the KL-10, intended to be

4560-486: The root directory of the partition where Windows is installed. Windows can be configured to use free space on any available drives for page files. It is required, however, for the boot partition (i.e., the drive containing the Windows directory) to have a page file on it if the system is configured to write either kernel or full memory dumps after a Blue Screen of Death . Windows uses the paging file as temporary storage for

4636-487: The root partition, though it is possible to place them instead on a separate partition or device. AmigaOS 4.0 introduced a new system for allocating RAM and defragmenting physical memory. It still uses flat shared address space that cannot be defragmented. It is based on slab allocation method and paging memory that allows swapping. Paging was implemented in AmigaOS 4.1 but may lock up system if all physical memory

SECTION 60

#1732782340643

4712-539: The same libraries. To save space, only one copy of the shared library is loaded into physical memory. Programs which use the same library have virtual addresses that map to the same pages (which contain the library's code and data). When programs want to modify the library's code, they use copy-on-write , so memory is only allocated when needed. Shared memory is an efficient means of communication between programs. Programs can share pages in memory, and then write and read to exchange data. The first computer to support paging

4788-458: The size of the page file to start at 1.5× the size of physical memory, and expand up to 3× physical memory if necessary. If a user runs memory-intensive applications on a system with low physical memory, it is preferable to manually set these sizes to a value higher than default. The file used for paging in the Windows NT family is pagefile.sys . The default location of the page file is in

4864-446: The story may be apocryphal). Ultimately DEC picked TOPS-20 as the name of the operating system, and it was as TOPS-20 that it was marketed. The hacker community , mindful of its origins, quickly dubbed it TWENEX (a portmanteau of "twenty TENEX"), even though by this point very little of the original TENEX code remained (analogously to the differences between AT&T V7 Unix and BSD ). DEC people cringed when they heard "TWENEX", but

4940-437: The system would have paging support invisibly, making programming much easier. DEC was initially interested, however in 1966 they announced they would be discontinuing the PDP-6 and concentrating solely on their smaller 18-bit and new 16-bit lines. The PDP-6 was expensive and complex, and therefore had not sold well. It was not long until it became clear that DEC was once again entering the 36-bit business with what would become

5016-461: The system. The pager also held access time information in order to tune performance. The resulting pager was fairly complex, filling a full-height 19" rackmount chassis. One notable feature of TENEX was its user-oriented command line interpreter . Unlike typical systems of the era, TENEX deliberately used long command names and even included non-significant noise words to further expand the commands for clarity. For instance, Unix uses ls to print

5092-598: The term caught on nevertheless (the written abbreviation "20x" was also used). TWENEX was successful and very popular; in fact, there was a period in the early 1980s when it commanded as fervent a culture of partisans as Unix or ITS —but DEC's decision to scrap all the internal rivals to the VAX architecture and its VMS operating system killed the DEC-20 and put an end to TWENEX's brief period of popularity. DEC attempted to convince TOPS-20 users to convert to VMS, but instead, by

5168-504: The underlying devices can be efficiently accessed in parallel. From the end-user perspective, swap files in versions 2.6.x and later of the Linux kernel are virtually as fast as swap partitions; the limitation is that swap files should be contiguously allocated on their underlying file systems. To increase performance of swap files, the kernel keeps a map of where they are placed on underlying devices and accesses them directly, thus bypassing

5244-642: The units exchanged between disk 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 when resident in RAM, requiring additional computation and movement to remedy fragmentation . Ferranti 's Atlas , and the Atlas Supervisor developed at the University of Manchester , (1962), was the first system to implement memory paging. Subsequent early machines, and their operating systems, supporting paging include

5320-451: The user could type DIR and the escape key, at which point TENEX would replace DIR with the full command. The completion feature also worked with file names, which took some effort on the part of the interpreter, and the system allowed for long file names with human-readable descriptions. TENEX also included a command recognition help system: typing a question mark ( ? ), printed out a list of possible matching commands and then return

5396-454: The user moves or deletes this file, a blue screen will appear the next time Windows is started, with the error message "The permanent swap file is corrupt". The user will be prompted to choose whether or not to delete the file (even if it does not exist). Windows 95 , Windows 98 and Windows Me use a similar file, and the settings for it are located under Control Panel → System → Performance tab → Virtual Memory. Windows automatically sets

5472-466: The user to the command line with the question mark removed. The command line completion and help live on in current CLIs like tcsh . TENEX became fairly popular in the small PDP-10 market, and the external pager hardware developed into a small business of its own. In early 1970 DEC started work on an upgrade to the PDP-10 processor, the KI-10. BBN once again attempted to get DEC to support a complex pager with indirect page tables, but instead DEC decided on

5548-409: Was especially useful for LISP programming because with an 18-bit address space, a word of storage on these systems contained two addresses, a perfect match for the common LISP CAR and CDR operations. BBN became interested in buying one for their AI work when they became available, but wanted DEC to add a hardware version of Murphy's pager directly into the system. With such an addition, every program on

5624-854: Was mapped into a user's address space was named PA1050: PA as in PAT as in compatibility; 10 as in DEC or PDP 10; 50 as in a PDP 10 Model 50, 10/50, 1050. Sometimes PA1050 was referred to as PAT, a name that was a good fit to the fact that PA1050, "was simply unprivileged user-mode code" that "performed the requested action, using JSYS calls where necessary." The major ways to get at TOPS-20 capabilities, and what made TOPS-20 important, were The "EXEC" accomplished its work primarily using Rather advanced for its day were some TOPS-20-specific features: One could then type ? to find out what operands were permitted/required. Pressing Ctrl-T displays status information . The following list of commands are supported by

5700-402: Was read into RAM (in other words, if it has become "dirty"), it must be written out to disk before being freed. If a program later references the evicted page, another page fault occurs and the page must be read back into RAM. The method the operating system uses to select the page frame to reuse, which is its page replacement algorithm , is important to efficiency. The operating system predicts

5776-402: Was the supercomputer Atlas , jointly developed by Ferranti , the University of Manchester and Plessey in 1963. The machine had an associative ( content-addressable ) memory with one entry for each 512 word page. The Supervisor handled non-equivalence interruptions and managed the transfer of pages between core and drum in order to provide a one-level store to programs. Paging has been

#642357