Swap

Juan Pablo Zaldivar Carrillo saruman en asimov.gda.itesm.mx
Mie Abr 5 13:47:45 CDT 2000


Dices bien, la memoria total (RAM + Swap) depende de tus necesidades. La
reglilla de 
Swap = 2*RAM era para antes. Qué tanta swap tengas depende de qué tanta
memoria en total vayas a necesitas. En la escuela hay un laboratorio de
Linux con Intellistations con 256MB de memoria, y muy rara vez necesitan
memoria virtual. En ese caso podrías hacer una partición de swap
relativamente pequeña. Pero si vas a estar corriendo programas que
necesitan 500 MB de memoria, entonces sí convendría un swap más grande.

Ahora, qué pasa si se acaba la memoria... se supone que un buen programa
siempre que hace una petición de memoria verifica si en efecto la
obtuvo, pero hay problemas. Por ejemplo, ese método funciona bien en C
(malloc(), if (mem == NULL) etc), pero por alguna extraña razón en C++
usando "new" NO sirve (por lo menos usando el compilador egcc). Aparte,
¿qué pasa si el programa simplemente no verifica que haya obtenido la
memoria?

Se supone que Linux es bien fregón y lidiaría con el problema robusta y
elegantemente, matando al proceso troglodita, pero según pruebas que
realicé en mi máquina (con kernel 2.2.12), no lo hace. En lugar de eso
la máquina se "congela" un minuto o dos y luego empiezan a morir
procesos a diestro y siniestro que ni tienen que ver con el programa
ofensor con un "segmentation fault".

Qué gacho, ¿no?

RPM wrote:
> 
> Esta es una pregunta muy basica y surgio a raiz del siguiente tema, si mal
> no recuerdo al inicio los sistemas unix eran multi-usuarios y
> multi-tareas, el costo de la memoria era muy elevado asi como del disco
> pero siempre fue mas costosa la memoria, que pasa cuando un usuario
> necesita mas recursos de los que la maquina puede proporcionar por ejemplo
> un equipo con 16MB y se requiere mas, entonces toma una parte del disco
> dedicada como memoria temporal (no es cache) y la proporciona a l usuario
> el cual este no se da cuenta que esta usando parte del disco como memoria,
> esto es el swap, los sistemas unix tradicionales indicaban que se
> necesitaba cuando menos el doble de ram que poseia la maquina de swap por
> ejemplo 16MB el swap era de 32MB, claro ahora si me dices tengo un equipo
> con 512MB de ram como voy a desperdiciar 1GB de disco de swap, esto ya es
> relativo incluso uno podria si los recursos lo permiten no instalar swap
> en el sistema pero si por algun motivo el equipo lo requiere y no esta la
> maquina se puede en un termino computacional caer (congelar). realmente
> por eso existe el swap, incluso recuerdo bien un equipo HP que venia con
> 64MB de ram y tenia 128MB de swap, si uno hacia un programa que llenara la
> memoria con un numero y este llegaba a terminar con el swap el equipo
> mandaba un mensaje de core dumped y se reiniciaba, asi de fragil era el
> HPUX version 8.0

-- 
  A human being should be able to change a 
  nappy, plan an invasion, butcher a hog, conn a 
  ship, design a building, write a sonnet, balance 
  accounts, build a wall, set a bone, comfort the 
  dying, take orders, give orders, cooperate, act 
  alone, solve equations, analyse a new 
  problem, pitch manure, program a computer, 
  cook a tasty meal, fight efficiently, die 
  gallantly. Specialisation is for insects. 
                -- Robert Heinlein

Juan Pablo Zaldívar Carrillo
ITESM Campus Guadalajara
saruman en asimov.gda.itesm.mx

-- 
Para desuscribirse, mande correo a: ayuda-unsubscribe en linux.org.mx
Para comandos adicionales, envíelo a: ayuda-help en linux.org.mx




Más información sobre la lista de distribución Ayuda