SWAP

  • Swap: Memòria d'intercanvi (en disc).

      - Memòria Virtual (MV) = Memòria Principal + Swap
    
  • Si un procés esgota la MV --> el s.o. l'elimina.

    Solucions:

      1. Augmentar l'àrea (partició) de swap en disc 
    
      2. Crear una nova àrea (partició) de swap en disc.
    
      3. Crear un fitxer swap (p.e. en la partició arrel).
    

Modificar/Crear una nova partició swap

  1. # fdisk /dev/hda
    
    	d: esborrar una partició
    
    	n: nova partició
    
    		e: estesa
    
    		p: primària
    
    	l: llistar els tipus de particions 
    
    	t: canviar a partició tipus swap (82)
    
    	w: desar canvis i sortir
    
    	q: sortir sense desar els canvis
    
  2. # mkswap /dev/hda5     # crea una nova zona swap en /dev/hda5
    
  3. # swapon /dev/hda5  	# activa la nova zona swap (/dev/hda5)
    
  4. # swapoff /dev/hda5 		# desactiva la nova zona swap (/dev/hda5)
    
  5. # free 	# per comprovar que s'hagi afegit correctament
    
  • Per que el sistema, en arrencar-se, carregui correctament la nova zona de swap --> en /etc/fstab s'ha d'afegir:

    /dev/hda5      none      swap      defaults      0 0 
    

Creació d'un fitxer swap

#!/bin/bash

# script SWAP

ROOT_UID=0        # root té $UID = 0.

FILE=/tmp/swap

BLOCKSIZE=1024

MINBLOCKS=40

[ $UID -ne 0 ] && echo "no autoritzat" && exit 1	# UID de root = 0

blocks=${1:-$MINBLOCKS}         #  default  40 blocs

[ $blocks -lt $MINBLOCKS ]  && echo "blocks > $MINBLOCKS" && exit 2

dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks

/sbin/mkswap -f $FILE $blocks	# crea fitxer swap

/sbin/swapon $FILE  		# Activa el fitxer swap

echo "Fitxer swap creat i activat"

exit 0
  • ¿  # dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks   ?

  • Per mirar mida Swap:

    # free -b   # en bytes 
    
  • Desactivació d'un fitxer swap:

    # swapoff fitxer
    
  • Esborrat fitxer swap:

    # rm fitxer