Download 5.8.1. Swap

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
5.8.
SWAP-SPACE MANAGEMENT
Swap-space — Virtual memory uses disk space as an extension of main
memory The main goal for the design and implementation of swap space is
―to provide the best throughput for the virtual-memory system.
5.8.1. Swap-Space Use
Swap space is used in various ways by different operating
systems, depending on the implemented memory-management
algorithms.
1. The systems that implement swapping may use swap space to hold the
entire process image, including the code and data segments.
2. Paging systems may simply store pages that have been pushed out of
main memory. The amount of swap space needed on a system can
therefore vary depending on
(a) The amount of physical memory,
(b) The amount of virtual memory it is backing and
(c) The way in which the virtual memory is used.
It can range from a few megabytes of disk space to gigabytes.
Some operating systems, such as UNIX, allow the use of multiple swap spaces.
Estimation of swap space: Note that it is safer to overestimate than to
underestimate swap space, because if a system runs out of swap space it may
be forced to abort processes or may crash entirely. Overestimation wastes disk
space that could otherwise be used for files, but does no other harm.
5.8.2. Swap-Space Location
A swap space can reside in two places:
1. Swap space can be carved out of the normal file system, or
2. It can be in a separate disk partition.
(I) Normal file system:
If the swap space is simply a large file within the file system, normal filesystem routines can be used to create it, name it, and allocate its space.
This approach, though easy to implement, is also inefficient
(-) Finding the directory structure and the disk-allocation data structures takes time
and extra disk accesses.
(-) External fragmentation can greatly increase swapping times by forcing multiple
seeks during reading or writing of a process image.
We can improve performance
(a) By caching the block location information in physical memory and
(b) By using special tools to allocate physically contiguous blocks for the swap
file
(II) Separate disk partition:
In this a separate swap-space storage manager is used to allocate and de-allocate
the blocks. This manager uses algorithms optimized for speed, rather than for
storage efficiency.
(-) Internal fragmentation may increase, but this tradeoff is acceptable.
(+) Data in the swap space generally live for much shorter amounts of time than do
files in the file system
(+) The swap area may be accessed much more frequently.
This approach creates a fixed amount of swap space during disk partitioning.
Adding more swap space can be done only via
1. Repartitioning of the disk or
2. Adding another swap space elsewhere.
5.8.3. Swap-Space Management: An Example
4.3BSD allocates swap space when process starts; holds text segment (the
program) and data segment.
Kernel uses swap maps to track swap-space use.
Solaris 2 allocates swap space only when a page is forced out of physical
memory, not when the virtual memory page is first created.
Fig.Data Structures for Swapping on Linux Systems