Duda memoria Swap

Duda memoria Swap

de Juan Ignacio Larrambebere Daglio -
Número de respuestas: 3

Hola, me surge una duda sobre la memoria swap. Leyendo el libro, entiendo que la memoria swap es un area del disco que se utiliza para intercambiar aquellas paginas de los procesos cuando los marcos en los que se encuentran dichas paginas es requerido para cargar otra pagina. La pregunta es porque se lleva la pagina de memoria al area de swap en vez de llevarla al lugar de disco donde la pagina originalmene se encuentra? Es el acceso al area de swap mas rapido que al resto del disco? o hay algo que no estoy entendiendo?

Desde ya, muchas gracias.

 Juan.

En respuesta a Juan Ignacio Larrambebere Daglio

Re: Duda memoria Swap

de Guillermo Gabrielli Ferreira -

El swap tiene la ventaja que es un espacio continuo (en unix donde dedicas una partición) o más o menos continuo (en windows es un archivo que puede fragmentarse pero se intenta mantenerlo en la menor cantidad de fragmentos posible) de manera que el disco no tiene que hacer tantas operaciones de seek para leerlo o escribirlo.

Igual como dices, tengo entendido que hay sistemas operativos que en el caso de páginas que solo contienen código de solo lectura (o que estan seguros que no fueron modificadas) en vez de escribirlo en el swap simplemente lo leen de vuelta del disco cuando sea necesario ahorrando la escritura al swap a cambio de capaz un poco maś de seek, pero eso son atributos de implementaciones específicas (leí en algun blog que alguna versión del kernel de windows o de linux hace eso pero no me acuerdo bien) no un caso general.

Además hay que tener en cuenta que si las páginas contienen datos o no es posible determinar si fueron modificadas con respecto de donde se cargo (o la representación en memoria es distinta de la de disco) o  simplemente no se lleva control de desde donde proviene el contenido de cada página esa optimización no es posible. (no solo se requeriría saber de que archivo proviene sino exactamente de que offset dentro del archivo proviene una página). En el caso general esta optimización simplemente no es posible.


En respuesta a Juan Ignacio Larrambebere Daglio

Re: Duda memoria Swap

de Guillermo Gabrielli Ferreira -
Encontre esto en el Silberschatz, en la sección Performance of Demang Paging:


An additional aspect of demand paging is the handling and overall use
of swap space. Disk I/0 to swap space is generally faster than that to the file
system. It is faster because swap space is allocated in much larger blocks, and
file lookups and indirect allocation methods are not used (Chapter 12). The
system can therefore gain better paging throughput by copying an entire file
image into the swap space at process startup and then performing demand
paging from the swap space. Another option is to demand pages from the file
system initially but to write the pages to swap space as they are replaced. This
approach will ensure that only needed pages are read from the file system but
that all subsequent paging is done from swap space.
Some systems attempt to limit the amount of swap space used through
demand paging of binary files. Demand pages for such files are brought directly
from the file system. However, when page replacement is called for, these
frames can simply be overwritten (because they are never modified), and the
pages can be read in from the file system again if needed. Using this approach,
the file system itself serves as the backing store. However, swap space must
still be used for pages not associated with a file; these pages include the stack
and heap for a process. This method appears to be a good compromise and is
used in several systems, including Solaris and BSD UNIX