Swap Space — Paging and Swapping
5.5.2 Swap Space — Paging and Swapping
UNIX systems require an appropriate swap space available for regular activities; otherwise, they cannot function normally and they crash immediately. The swap space is provided as a separate swap partition, and is sometimes several partitions for primary and additional swap partitions. UNIX systems use a virtual memory approach to access required programs and data. Virtual memory space consists of the physical memory space known as system memory and the corresponding disk space where programs and data actually reside. However, program execution and data processing are performed from the system memory only; therefore special techniques are required to provide the data needed from the system memory at the right time. This is the only task but it is an extremely difficult task of a specialized subsystem known as a memory management system MMS. This task is crucial for system performance. The system memory is continuously updated and synchronized with the disk, and programs and data are transferred in both directions. The transfer is performed in pages, and a page is the basic unit in the data transfer. In UNIX a part of the disk space is reserved as an extension of the system memory for temporary storage while the OS keeps track of processes that require more system memory than is available. This temporary depot is known as a swap space. When the OS recognizes the need, swap space is used for paging and swapping. Paging is when individual memory segments, or pages, are moved to or from the swap area in an ordered way. When free memory space is low, portions of processes primarily data segments within the process address space are moved into the swap space to free system memory. The data segments are selected to be moved if they have not been referenced recently different criteria can be implemented, but the most common is LRU — least recently used. When the running process tries to reference the data segment that has been transferred to the swap space, a page fault occurs and the process is suspended until the required data pages are returned into the system memory. A page fault occurs normally when a program is started for the first time; then the required pages must be brought from the disk. The swap space is mostly organized as a flat partition, which reduces the overhead and enables faster page transfer, both in and out. This is not a necessity, but it increases the transfer efficiency. However, the existence of a swap space is a requirement; the swap space can be thought of as an extension of the system memory, and there is no operating system to operate without a system memory. 130 Swapping occurs during a heavy workload, when memory shortage becomes critical, and the OS lacks the needed time to perform regular paging. When swapping, the kernel moves complete processes including all associated code and data segments to the swap area. The processes are chosen if they are not expected to run for a while. Unfortunately, it is often nearly impossible to make a perfect selection. When the process is run again it must be copied back into the system memory from the swap space. If such a transfer has to be performed repeatedly, the system performance drops sharply until the system stabilizes and continues with regular paging. The system simply spends more time doing process image and data transfer between the memory and swap areas than it spends running the same processes. While paging represents normal system activity, swapping is an undesired event. Performance−wise, it is preferable for swapping to never occur. Unfortunately, in real life such situations are unavoidable. The best way to prevent swapping is to increase the system memory. Today, huge system memory space is quite common and the need for swapping is drastically reduced; swapping happens only occasionally, or perhaps even never. The size of the swap space should be larger than the system memory. Theoretically, the need for swapping the complete system memory could arise. Therefore, if the system memory is upgraded, a new swap partition should also be added unless the primary swap partition has already been sized for future memory upgrades. The swap space is also used as a dump space. In an emergency the system could dump a complete memory image into the swap space known as a memory core. This is an additional reason to have a swap space larger than the memory itself. In the case of a dump space, the requirements are even greater: the available space must be contiguous — at a dump time no overhead is allowed, and the copying of the memory into the swap partition must be simple and fast. In this case, an additional swap partition does not work; only a contiguous increase of the existing primary partition helps. Unfortunately, this demand often cannot be met; a more painful yet realistic solution is to rebuild the complete system. Solaris 2.x went one step further by introducing the swapfs filesystem. Today, memory is not very expensive, and therefore huge system memory is not rare; new UNIX implementations frequently have GBs sized system memory. Under these circumstances, swap space can be expanded to include a part of the system memory besides the usual disk−based swap area. Then pages can be swapped from the system memory to the memory−based swap area, thereby actually staying within the system memory. The only question, then, is how the system would tell the difference between regular and swapped pages; this is the task of the swapfs filesystem. Anonymous swapped pages are named by swapfs and handled appropriately. There is no need for a literal copying of pages within memory; simply, pages stay where they were, but are marked as swapped. Swapped pages requested by the system are released for regular use. Therefore, everything happens as it would in typical swapping, except much, much faster; the system performance benefit is obvious. Please note that the phrases a swapped page and to swap a page do not necessarily refer to the swapping process; they have been also used to identify a page in the swap area and the process of 131 As the need for system memory increases, swapfs makes more space by backing swapped pages into the disk−based swap area swap partition. The worst−case scenario is a well−known swap structure: physical memory is used as system memory, and the swap area is restricted to the swap partition. As soon as more room has been made in the memory, a swap space can expand in that way. Such a flexible approach implies that all swap partitions, including the primary one, should be mounted through entries in the filesystem configuration file. Otherwise, there is no need for a default primary swap configuration entry; it is already well known to the system.5.5.3 Loopback Virtual Filesystem
Parts
» Unix Administration. 7485KB Mar 29 2010 05:04:17 AM
» UNIX Operating System UNIX — Introductory Notes
» Berkeley Standard Distribution — BSD UNIX System V or ATT UNIX
» System Administrators Job UNIX System and Network Administration
» Computing Policies UNIX System and Network Administration
» Legal Acts Administration Guidelines
» Code of Ethics Administration Guidelines
» USENIX System Administrators Guild — SAGE
» In This Book UNIX System and Network Administration
» Introduction The Unix Model — Selected Topics
» Access Classes File ProtectionFile Access
» Default File Mode File ProtectionFile Access
» Plain Regular File Socket Named Pipe
» Special File Names Special File Creation
» Process Types Process Attributes
» Process Life Cycles Processes
» System V ATT Flavored ps Command
» Destroying Processes The UNIX kill command will eliminate a process entirely:
» Becoming a Superuser Communicating with Other Users
» The man Command UNIX Online Documentation
» The uptime Command The uptime command displays:
» Personal Documentation UNIX Administration Starters
» Shell Script Execution UNIX Shell Scripts
» Shell Variables UNIX Shell Scripts
» Double Command−Line Scanning
» Introductory Notes System Startup and Shutdown
» The Bootstrap Program System Startup
» The Kernel Execution System Startup
» System States System Startup
» The Outlook of a Startup Procedure
» Initialization Scripts System Startup
» The BSD rc Scripts BSD Initialization Sequence
» BSD−Like Initialization System V Initialization
» An Example Shutdown Procedures
» Introduction to the UNIX Filesystem
» System V Filesystem Directory Organization
» Mounting a Filesystem home, users
» Dismounting a Filesystem home, users
» Automatic Filesystem Mounting Removable Media Management
» BSD Filesystem Configuration File
» Filesystem Types A Few Other Filesystem Issues
» Swap Space — Paging and Swapping
» Loopback Virtual Filesystem A Few Other Filesystem Issues
» Display Filesystem Statistics: The df Command
» Checking Filesystems: The fsck Command
» Introduction UNIX Filesystem Layout
» Disk Partitions Physical Filesystem Layout
» Filesystem Structures Physical Filesystem Layout
» The mkfs Command Filesystem Creation
» File Identification and Allocation
» File Storage vs. File Transfer
» Reserved Free Space Filesystem Performance Issues
» Logical Volume Manager — AIX Flavor
» Logical Volume Manager — Solaris Flavor
» Redundant Array of Inexpensive Disks RAID
» The Volume Snapshot Snapshot
» The Filesystem Snapshot Snapshot
» Virtual UNIX Filesystem Logical Filesystem Layout
» Disk Space Upgrade UNIX Filesystem Layout
» User Database — File etcpasswd
» Initialization Template Files UNIX Login Initialization
» User Login Initialization Files
» Systemwide Login Initialization Files
» Restricted User Accounts Users and Secondary Groups
» Assigning User Passwords Standard UNIX Users and Groups
» Managing Disk Usage by Users
» System V Accounting Accounting
» AIX−Flavored Accounting Accounting
» Physical Security Passwords UNIX Lines of Defense
» File Permissions UNIX Lines of Defense
» Backups Password Encryption UNIX Lines of Defense
» Setting Password Restrictions UNIX Lines of Defense
» The Wheel Group Secure Terminals — Other Approaches
» History of the Root Account Tracking User Activities
» The syslogd Daemon The Concept of System Logging
» The Configuration File etcsyslog.conf
» Linux Logging Enhancements The logger Command
» Testing System Logging System Logging Configuration
» The last Command Limiting the Growth of Log Files
» BSD Printing Subsystem UNIX Printing Subsystem
» The lp, lpstat, and cancel Commands
» The etcprintcap File BSD Printer Configuration and the Printer Capability Database
» Filters BSD Printer Configuration and the Printer Capability Database
» The Printer Database Directory Hierarchy on System V
» Setting a Remote Printer on HP−UX
» BSD and AIX Cross−Printing Solaris and BSD Cross−Printing
» Third−Party Printer Spooling Systems
» The tput Command The tset, tput, and stty Commands
» The stty Command The tset, tput, and stty Commands
» The tar Command Tape−Related Commands
» The cpio Command Tape−Related Commands
» The dd Command Tape−Related Commands
» The mt Command Magnetic Tape Devices and Special Device Files
» The SVR3 and SVR4 backup Commands
» The fbackup Command Backup and Dump Commands
» The dumpufsdump Command Backup and Dump Commands
» Interactive Restore The restore Commands
» The frecover Command Restoring Files from a Backup
» Tape Control UNIX Backup and Restore
» The NTP Daemon Network Time Distribution
» The crontab Files Network Time Distribution
» The crontab Command Network Time Distribution
» Linux Approach Network Time Distribution
» Programs Scheduled for a Specific Time
» UNIX and Networking Network Fundamentals
» TCPIP and the Internet ISO OSI Reference Model
» TCPIP Protocol Architecture Computer Networks
» Internet Protocol IP Internet Layer and IP Protocol
» Network Access Layer Transport Layer and TCP and UDP Protocols
» Application Layer TCPIP Layers and Protocols
» IP Address Classes Data Delivery
» Dynamic Routing Internet Routing
» Protocols, Ports, and Sockets
» UNIX Database Files Multiplexing
» The arp Command Address Resolution ARP
» The portmapper Daemon The etcrpc File
» The ifconfig Command Configuring the Network Interface
» The netstat Command Configuring the Network Interface
» The inetd Daemon Super Internet Server
» Further Improvements and Development
» Host Names and Addresses Domain Name Service DNS
» The Local Host Table — etchosts
» Handling the NIC Host Table — A Journey into the Past
» Other Resolver Parameters BIND Configuration
» Name Servers UNIX Name Service — BIND
» The Configuration File etcnamed.boot
» The named.local File The named.cache file
» Subdomains and Parenting BIND Version 8.X.X
» The nslookup Interactive Mode
» A Few Examples of nslookup Usage
» Purpose and Concepts Network Information Service NIS
» To Create an NIS Client NIS Domain Name
» The etcnetgroup File DatabasesNIS Maps
» Security Issues NIS Management
» The showmount Command Mounting Remote Filesystems
» An Example The Automount Maps
» The rlogin Command The rcp Command
» The HOME.rhosts File Using UNIX r−Commands — An Example
» SSH Configuration Secure Shell SSH
» Root Access SSH Installation and User Access Setup
» SSH — Version 2 Secure Shell SSH
» Simple Mail Transport Protocol SMTP
» Rewriting an E−mail Address Pattern Matching
» Address Transformation The Parsing of E−mail Addresses
» Testing Rewrite Rules The sendmail −bt Command
» The Debugging Level Checking the Mail Queue
» Mail Subcommands The Mail Program and .mailrc File
» POP Transactions Post Office Protocol POP
» Internet Message Access Protocol IMAP
» Finger Common UNIX Network Applications
» The ping Command Host Connectivity
» The traceroute Command Host Connectivity
» The X Administration Philosophy
» Window Managers An Introduction to the X Window System
» xdm Configuration Files The X Display Managers
» Vendor−Specific X Flavors — a Configuration Example
» XDMCP Queries The Xaccess File
» Other Access Control Mechanisms
» Components of the xdm−Based User X Environment
» Other Startup Methods The User X Environment
» A Permanent X11 Installation
» Introduction to Kernel Reconfiguration
» Kernel Configuration Database Kernel Reconfiguration
» The config Command BSD−Like Kernel Configuration Approach
» HP−UX 10.x Kernel Configuration
» UNIX and Modems Introduction to Modems
» Terminal Lines and Modem Control
» C−Kermit Third−Party Communication Software
» UUCP Versions UUCP Chat−Transfer Session
» The UUCP Daemons UUCP Commands, Daemons, and Related Issues
» The UUCP Spool Directories and Files
» Additional Security in BNU UUCP
» Additional Security in Version 2 UUCP
» Intranet vs. Internet Introduction to Intranet
» Intranet Design Approach Introduction to Intranet
» Life Cycle of a Virus Virus Types
» The Viruswall Implementation Viruswalls
» Application Proxies SOCKS Proxies
» Web Services Intranet Front−End Services
» Other External Services Intranet Front−End Services
» Network Infrastructure and Desktops
» Dynamic Host Configuration Protocol DHCP
» UNIX and Not−UNIX Platform Integration
» HP−UX Installation UNIX Installation Procedures
» Linux Installation UNIX Installation Procedures
» Solaris Patch Installation HP−UX Patch Installation
» Solaris and Lost Root Password HP−UX and Lost Root Password
» Solaris Procedure to Create an Alternate Boot Partition
» Solaris Recovery of the Failed Mirrored Boot Disk
Show more