Hubbry Logo
search
logo

Single-level store

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
Single-level store

Single-level storage (SLS) or single-level memory is a computer storage term which has had two meanings. The two meanings are related in that in both, pages of memory may be in primary storage (RAM) or in secondary storage (disk), and that the physical location of a page is unimportant to a process.

The term originally referred to what is now usually called virtual memory, which was introduced in 1962 by the Atlas system at the University of Manchester. In this system, data in the core memory was automatically moved to and from a magnetic drum to make it appear as if the core had the same storage capacity of the much larger drum.

In modern usage, the term usually refers to the organization of a computing system in which there are no files, only persistent objects (sometimes called segments). Software, very similar to virtual memory and developed as an offshoot from it, allows data on external storage to be mapped into processes' address spaces, manipulated in memory, and invisibly written back to storage. The entire storage of the computer is thought of as a single two-dimensional plane of addresses (segment, and address within segment).

The persistent object concept was first introduced by Multics in the mid-1960s, in a project shared by MIT, General Electric and Bell Labs. It also was implemented as virtual memory, with the actual physical implementation including a number of levels of storage types. Multics, for instance, had three levels originally: main memory, a high-speed drum, and disks. Multics was highly influential, and the single-level store became a very popular concept in the early 1970s.

Among the major efforts to bring the concept into the mainstream was the IBM Future Systems project of 1971, but this project grew out of control and was cancelled in 1975. The concept was then picked by IBM's midrange labs and became part of the System/38 that was released in 1978. In this system, memory is allocated not only by size but also given a name. Data written to that allocation is invisibly stored to secondary storage, and when the program allocates that memory again at some future time, the stored data is invisibly loaded back in. IBM holds patents to single-level storage as implemented in the IBM i operating system on IBM Power Systems.

In early computer systems, there was a clear distinction between main memory and any secondary storage. In order to process data, programs would use explicit code to read data from secondary storage into main memory, manipulate it in main memory, and then use more code to write it back out to secondary storage again. This distinction remains to this day in most operating systems (OS).

In the 1960s, timesharing and multiprogramming were introduced. In these systems, more than one program might be running at the same time, and each desires to have its own memory to work with. This led to sometimes complex systems where programs would describe the minimum and desired amounts of memory they needed to operate, and the OS would break up main memory into blocks typically known as segments. As there were now potentially many programs running at the same time, each individual program might have less memory to work with than it desired.

Attempts to address this problem led to the development of virtual memory (VM). VM systems break the main memory down into a series of fixed-sized segments, or "pages", and allocate them to programs on demand. Programs are unaware that the VM system exists, they simply ask for memory and will be granted it or denied, as before. The difference is that each program would not be limited to some fraction of the main memory being set aside for it, but would instead be granted access to the entire memory, a "virtual" main memory that was typically much larger than actual physical memory. As programs used up the physical memory, and it eventually ran out, the VM system would examine the pages for data that was not currently needed, and write it out to secondary storage. This was known as "paging". When a program attempted to access values in memory that had been paged, the VM system would once again intervene, writing out some other page of memory and loading the requested one back in. This is invisible to the program, to it, it appears there is a single large memory and its data is always available. Programs written in a VM system are otherwise similar to those on earlier machines. To store data permanently, the program still had to have code to read and write data to and from secondary storage, most typically a file system but also sometimes a database engine.

See all
User Avatar
No comments yet.