HOME

TheInfoList




A memory-mapped file is a segment of
virtual memory In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "cre ...

virtual memory
that has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource. This resource is typically a file that is physically present on disk, but can also be a device,
shared memory In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...

shared memory
object, or other resource that the
operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (operating system), Android and Mi ...

operating system
can reference through a
file descriptor In Unix and Unix-like computer operating systems, a file descriptor (FD, less frequently fildes) is a unique identifier (Handle (computing), handle) for a file (computing), file or other input/output System resource, resource, such as a pipe (Unix) ...
. Once present, this correlation between the file and the memory space permits applications to treat the mapped portion as if it were primary memory.


History


TOPS-20 PMAP

An early () implementation of this was the PMAP system call on the
DEC-20 The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system (products introduced in 1977). PDP-10 computers running the TOPS-10 operating system were labeled ''DECsystem-10'' as a w ...
's
TOPS-20 The TOPS-20 operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android (ope ...

TOPS-20
operating system, a feature used by Software House's System-1022 database system.


SunOS 4 mmap

SunOS 4 introduced
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser Multi-user software is computer software Software is a collection of Instruction (computer science), instructions that tell a computer how to work. This is in contrast t ...

Unix
's
mmap In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softw ...
, which permitted programs "to map files into memory."


Windows Growable Memory-Mapped Files (GMMF)

Two decades after the release of TOPS-20's PMAP,
Windows NT Windows NT is a proprietary {{Short pages monitor">DotNet
PHP supported memory-mapping techniques in a number of native file access functions such as file_get_contents() but has removed this in 5.3 (se
revision log
. For the
R programming language R is a programming language for statistical computing and graphics supported by the R Core Team and the R Foundation for Statistical Computing. Created by statisticians Ross Ihaka and Robert Gentleman (statistician), Robert Gentleman, R is used ...
there exists a library on CRAN calle
bigmemory
which uses the Boost library and provides memory-mapped backed arrays directly in R. The packag

offers memory-mapped vectors, matrices, arrays and data frames. The
J programming language J, or j, is the tenth letter Letter, letters, or literature may refer to: Characters typeface * Letter (alphabet) A letter is a segmental symbol A symbol is a mark, sign, or word that indicates, signifies, or is understood as rep ...
has supported memory mapped files since at least 2005. It includes support for boxed array data, and single datatype files. Support can be loaded from 'data/jmf' J's Jdb and JD database engines use memory mapped files for column stores.


References

{{DEFAULTSORT:Memory-Mapped File Virtual memory