Sei sulla pagina 1di 6

IS-344

Sistemas Operativos
Ingeniería de Sistemas

Laboratorio

EL SISTEMA OPERATIVO COMO GESTOR DE MEMORIA 7


OBJETIVOS
• Realizar experimentos orientados a investigar los algoritmos usados para el manejo de la
memoria dentro del sistema operativo Windows
• Monitorizar el comportamiento de los procesos en GNU/Linux y observar el uso de la
memoria.

1. TEMAS
• Uso de librerías Dynamic Link Library (DLL)
• Analizar el Working Set
• Analizar la base de Page Frame Numbers
• Monitoreo de procesos relacionadas con el manejo de memoria

2. ACTIVIDADES
2.1. ACTIVIDAD 1: ANALIZANDO DLLS
Para esta primera parte, deberá usar Process Explorer de Sysinternals, disponible en la
Carpeta Utilitarios del Drive de clase.

1) Ejecute Process Explorer


2) Cámbiese a DLL View en View->Lower Pane View

UNSCH/MCCQ Página 1 de 6
IS-344
Sistemas Operativos
Ingeniería de Sistemas

3) Ejecute Word y Excel simultáneamente


4) Examine las listas de DLL cargadas por estos dos programas, y encuentre una común entre los
dos. Puede ordenar por path.
5) Trate de borrar ese DLL desde Explorer. Anote sus resultados.
6) En Process Explorer, use search para encontrar quien tiene este DLL cargado. Anote sus
resultados.
7) Investigue en internet y responda ¿Qué es un archivo dll y cuáles son las ventajas y desventajas
de su uso?

2.2. ACTIVIDAD 2: ANALIZANDO EL MANEJO DE PREFETCH DE WINDOWS


Para esta parte, necesitas el WinPrefetchView, disponible en la Carpeta Utilitarios del Drive
de clase.
1) Abra la carpeta c:\windows\prefetch y observar el contenido
2) Abra el archivo layout.ini y observe el contenido
3) Ejecute WinPrefetchView

4) Tendrá acceso a la carpeta c:\windows\prefetch, observe la ventana correspondiente y


responda
5) ¿Cuándo fue ejecutado por última vez el Netbeans?.
6) ¿Cuántas veces se ejecutó el MS Word?
7) Investigue en internet y diga que es superfetch y prefetch

2.3. ACTIVIDAD 3: ADMINISTRACIÓN DE MEMORIA ANTE UN PROCESO QUE CRECE


INDEFINIDAMENTE
Usando internet busque lo siguiente.
1) ¿Qué es pagefile.sys?
2) Realizando los pasos del enlace Gestor de memoria que se encuentra en el classroom anote
el tamaño mínimo permitido, el recomendado y el actualmente asignado de los archivos de
paginación asignados a su equipo.

2.4. ACTIVIDAD 4: ANALIZANDO LOS PAGE FAULTS


Para esta parte, necesita instalar rktools.exe disponible en la Carpeta Utilitarios del Drive
de clase y ejecutar pfmon
Asegúrese que la Aplicación se encuentre en la unidad C:\

UNSCH/MCCQ Página 2 de 6
IS-344
Sistemas Operativos
Ingeniería de Sistemas

1) Abra una ventana de cmd.exe


2) Ejecute desde la línea de comandos en c:\ el comando pfmon notepad
3) Observe la ejecución que sale en la pantalla. Un soft fault indica un page fault que fue
satisfecho con una página descartada, pero todavía presente en memoria. Un hard fault involucra
una lectura de disco. Anote el comportamiento de esta instancia de notepad, y luego cierre
notepad.
4) Ejecute notepad otra vez. Escriba dos líneas de texto. Guarde el archivo. Anote el
comportamiento, analice las diferencias y escriba sus resultados.

UNSCH/MCCQ Página 3 de 6
IS-344
Sistemas Operativos
Ingeniería de Sistemas

GESTION DE MEMORIA EN GNU/LINUX


1. El comando free
En primer lugar, entendamos cómo se gestiona la memoria física del sistema en Linux. El kernel
tiende a tomar, primeramente, la memoria que necesitan los procesos que corre. Conforme el
sistema está en marcha más tiempo, el kernel toma prácticamente la totalidad de la memoria física
existente, dejando solamente unos cuantos MB de memoria físicamente libres. Muchas veces esto
lleva a los principiantes en Linux a confusión, llegando a creer que la gestión de la memoria que hace
Linux no es eficiente.
¿Y para qué usa esa memoria restante Linux? Pues la usa como buffers, esto es, guarda datos para
un acceso más rápido al disco duro, datos de programas que se abrieron, por si se vuelven a abrir
que se invierta mucho menos tiempo en ello, etc. En definitiva, aprovecha la memoria físicamente
libre para agilizar tareas básicas. Por otro lado, esto es bastante lógico... ¿para qué te sirve tener
una gran cantidad de memoria RAM física libre? ¿Y si la usamos para hacer que el sistema vaya más
rápido? Mucho mejor, ¿no te parece?
Si la carga de tareas (procesos) que el sistema tiene que soportar lo carga y estos procesos (o
programas ejecutándose) necesitan esta memoria que se está usando como buffers, Linux borra estos
buffers de la memoria y la asigna a las nuevas tareas que la necesiten.
En definitiva, ¿cómo podemos saber la memoria que tenemos libre y lo que ocupa cada cosa (procesos
por un lado y buffers por otro)? La respuesta la tenemos en el comando free (la salida por defecto
es en KBs).

# free
total used free shared buffers cached
Mem: 256016 251304 4712 0 12236 177516
-/+ buffers/cache: 61552 194464
Swap: 409648 2964 406684

En el equipo de este ejemplo, hay 256 MB de RAM física instalada. De ellos, solamente 4 MB están
libres (de lo que deducimos que la máquina lleva tiempo encendida y que se han escrito buffers en
parte de la RAM). En la línea -/+ buffers/cache tenemos en used la cantidad de memoria estimada
que los procesos del sistema están usando, y en free, la suma de la memoria usada para buffers y
caché más la físicamente libre. Así, los procesos sólo están necesitando 60 MB de RAM, y el resto de
memoria usada está simplemente agilizando el sistema.
Ahora nos fijamos en la última línea. Ahí tenemos el uso de la partición SWAP de intercambio de
datos. Esta es una buena medida para saber lo "cargado" que está nuestro sistema. En este caso hay
escritos menos de 3 MB en la memoria SWAP, lo que pone de manifiesto que la máquina anda holgada.

Información free.

- total: memoria disponible


- used: memoria utilizada

UNSCH/MCCQ Página 4 de 6
IS-344
Sistemas Operativos
Ingeniería de Sistemas

- free: memoria libre


- shared: memoria compartida actualmente en uso
- buffers: tamaño actual del buffer caché
- cached: tamaño de la caché de disco
Puede ser personalizado con los siguientes parámetros:
-b, –bytes
Muestra la salida en bytes.
-k, –kb
Muestra la salida en kilobytes (KB). Es el resultado por defecto.
-m, –mb
Muestra la salida en megabytes (MB).
-g, –gb
Muestra la salida en gigabytes (GB).
-l, –lowhigh
Muestra información detallada acerca de la utilización baja y alta de memoria.
-o, –old
Muestra el formato antiguo, sin -/+ buffers/cache.
-t, –total
Muestra un resumen del total de memoria física y swap.

El resultado mostrado por este comando es estático, para poder visualizar el uso de la memoria de
manera dinámica, se le puede agregar el comando watch:

#watch –n 1 –d free
La opción –n indica el tiempo de refrescamiento de la información y –d para resaltar la evolución de
los snapshots.

2. El comando vmstat (virtual memory statistics)


Proporciona información acerca de procesos, actividad de la CPU, memoria, paginación, bloques de
entrada salida e interrupciones. Puede mostrar la información de forma continua. Ejemplo: muestra
2 filas con un retardo de 5 segundos

$ vmstat 5 2
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 124304 9360 8160 320216 1 16 366 198 1226 1580 20 7 66 6
1 0 124304 9264 8176 320336 0 0 14 55 1177 1281 77 23 0 0

La primera fila muestra información media desde el último reinicio, y el resto de información es
con respecto a la anterior.

Vmstat informa acerca del uso de la memoria física y virtual, de la actividad de intercambio entre
memoria y disco, transferencias, interrupciones, cambios de contexto y uso del procesador.

UNSCH/MCCQ Página 5 de 6
IS-344
Sistemas Operativos
Ingeniería de Sistemas

Descripción de la información vmstat


- vmstat: Cabecera
- Procs: procesos en espera de ser ejecutados (r) y durmiendo ininterrumpidamente (b)
- Memory : memoria virtual usada (swpd), libre (free), usada por los buffers (buff) y como caché
(cache)
- Swap : memoria transferida desde el disco (si), y al disco (so)
- IO : bloque enviados (bi) y recibidis (bo) desde dispositivos
- System : número de interrupciones por segundo (in) y número de cambios de contexto (cs)
- CPU : porcentajes de la distribución de tiempos de uso entre modo usuario (us), modo sistema
(sy) tiempo ocioso (id)

ACTIVIDAD 5

1) Realizar un reporte del estado de la memoria de su computadora una vez que hubiera
reiniciado la misma usando el SO GNU/LINUX. (Es importante señalar que no debe arrancar
ningún otro programa). Use los comandos free y vmstat
2) Ejecutar diversos programas en su computadora (anotar la lista correspondiente)
3) Realizar un nuevo reporte del estado de la memoria de su computador

Anotar las conclusiones (del uso de memoria física y swap)

UNSCH/MCCQ Página 6 de 6

Potrebbero piacerti anche