Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Gestión de Memoria en Linux

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA DE SISTEMAS


INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

Gestin de Memoria
Jose Azadobay.

Objetivos

Ofrecer a cada proceso un espacio lgico propio.


Proporcionar proteccin entre procesos.
Maximizar el rendimiento del sistema.
Permitir que los procesos compartan memoria.

Materiales
Host Linux
Entorno VPN

I. MARCO TERICO

La memoria es uno de los recursos ms valiosos que gestiona el sistema operativo. Uno de
los elementos principales que caracterizan un proceso es la memoria que utiliza. sta est
lgicamente separada de la de cualquier otro proceso del sistema (excepto los threads de un
mismo proceso que comparten normalmente la mayor parte de la memoria que tienen
asignada).
Un proceso no puede acceder, al espacio de memoria asignado a otro proceso, lo cual es
imprescindible para la seguridad y estabilidad del sistema. El direccionamiento es una parte
importante de la gestin de memoria, puesto que influye mucho en la visin del mismo por parte
de un proceso, como en el aprovechamiento del hardware y el rendimiento del sistema. En
Linux, adems, un proceso tiene dos espacios de memoria: el espacio de memoria del
usuario, nico para ese proceso, y el espacio de memoria del kernel, idntico en todos los
procesos.

Espacio de direcciones de un proceso.

Conjunto de direcciones a las que hace referencia. Los espacios de direcciones


involucrados en la gestin de la memoria son de tres tipos:
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

Espacio de direcciones fsicas. Las direcciones fsicas son aquellas que referencian alguna
posicin de la memoria fsica. Se obtienen despus de aplicar una transformacin por parte
de la MMU (Unidad de Manejo de Memoria).

Espacio de direcciones lgicas o virtuales. Las direcciones lgicas son las direcciones
utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador
(la MMU), antes de convertirse en direcciones fsicas.

Espacio de direcciones lineales. Las direcciones lineales se obtienen a partir de las


direcciones lgicas tras haber aplicado una transformacin dependiente de la arquitectura. En
Linux las direcciones lgicas y lineales son idnticas. En el i386, es el nombre que reciben las
direcciones tras haber aplicado la tcnica de segmentacin. En la segmentacin, tras haber
realizado las correspondientes comprobaciones de seguridad, se le suma a la direccin lgica
una cierta direccin base, obteniendo as la direccin lineal. A partir del kernel de Linux 2.2.x,
las direcciones base de casi todos los segmentos es 0, y, por lo tanto, las direcciones lineales y
las lgicas son las mismas.

II. MEMORIA VIRTUAL

El tamao combinado del programa, datos y pila puede exceder la cantidad de memoria fsica
disponible. El sistema operativo guarda aquellas partes del programa concurrentemente en uso
en memoria central y el resto en disco. Cuando un programa espera que se le cargue en
memoria central de disco otra parte del mismo, la CPU se puede asignar a otro proceso.

Paginacin.
El espacio virtual de direcciones se divide en unidades llamadas pginas, todas del mismo
tamao. La memoria principal se divide en marcos de pginas (page frames) del mismo tamao
que las pginas virtuales y son compartidas por los distintos procesos del sistema (en cada
marco de pgina se carga una pgina de un proceso).

Segmentacin
El espacio de direcciones se divide en segmentos, cada uno de los cuales corresponder
a una rutina (procedimiento, funcin), un programa o un conjunto de datos (una entidad
lgica). Todo aquello que se corresponda con sub-espacio de direcciones independientes.
Cada programa contiene una cierta cantidad de segmentos. Los primeros segmentos se
reservan para procedimientos, datos y pila, pertenecientes al programa en ejecucin. Los
segmentos restantes contienen un archivo por segmento, as que los procesos pueden
direccionar todos sus archivos directamente sin tener que abrirlos ni usar primitivas especiales
de entrada/salida. Cada archivo puede crecer de forma completamente independiente de los
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

otros, con cada byte direccionado por un par (segmento, desplazamiento).Por otro lado,
colocando objetos diferentes en diferentes segmentos, se facilita la comparticin de estos
objetos entre procesos mltiples.

Segmentacin Paginada.
Como su propio nombre indica, la segmentacin paginada intenta aunar lo mejor de los dos
esquemas. La segmentacin proporciona soporte directo a las regiones del proceso y la
paginacin permite un mejor aprovechamiento de la memoria y una base para construir un
esquema de memoria virtual. Con esta tcnica, un segmento est formado por un conjunto de
pginas, y por tanto, no tiene que estar contiguo en memoria. La MMU utiliza una tabla de
segmentos, tal que cada entrada de la tabla apunta a una tabla de pginas.

III. COMANDOS DE GESTION DE MEMORIA EN LINUX


Free

El comando free nos muestra tres lneas, seis columnas y admite varios parmetros. Aqu te
pego una captura con un ejemplo y luego vamos explicando:

La lnea 1 nos muestra la memoria RAM: en la primera columna la cantidad total del
equipo, en la segunda la que est en uso, la tercera la que est libre, la cuarta es un valor en
desuso que tiempos antiguos sera la memoria compartida, la quinta nos muestra la memoria
que est siendo usada por el buffer de los programas (es decir, datos que se guardan
temporalmente durante la ejecucin de un programa para verlos una sola vez) y la sexta lo
que hay en la cach de los programas (son datos que los programas dejan cargados para
revisarlos regularmente y acelerar su ejecucin).

La lnea 2 nos muestra la swap, el espacio de disco duro que hemos definido como memoria
de intercambio, y slo nos da tres columnas: total, utilizada y libre.

En la imagen del ejemplo se puede ver que se uso free junto al parmetro -m, de esa forma
muestra los datos en megas. Si en lugar de -m usramos -k lo mostrara en kilobytes, con -
g en gigabytes y con -b en bytes. Segn la precisin necesitada ser ms recomendable una
u otra unidad.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

Si se quiere ver una lnea adicional con la suma de la memoria fsica y la SWAP puedes
conseguirlo con el parmetro -t.
Con el parmetro -s la consulta se recargar cada pocos segundos, para permitirnos mantener
monitorizado el estado de la memoria. El comando por defecto har los redondeos de la
memoria en base a potencias de 1024, si quieres que lo haga en base a 1000 tendrs que usar
el parmetro si. Si tienes 8 gigas y sacas la consulta con -g es probable que te salgan 7 por
este redondeo, con si te apareceran los 8.

Vmstat

Vmstat es un comando que nos permite obtener un detalle general de los procesos, E/S, uso
de memoria/swap, estado del sistema y actividad del CPU. Es esencial para entender que est
pasando en tu sistema, detectar cuellos de botella, etc.
Para usarlo, podemos correrlo sin parmetros, y obtendremos algo similar a esto:

La primera lnea es simple, se divide en seis categoras: procesos, memoria, swap, E/S,
sistema y CPU.
La segunda un detalle abierto de cada categora superior.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

Los campos mostrados en relacin con los a procesos son:


r: El nmero de procesos ejecutables esperando para acceder al CPU.
b: El nmero de procesos en un estado dormido continuo.
Los campos relacionados a la memoria son:
swpd: La cantidad de memoria utilizada.
free: La cantidad de memoria libre.
buff: La cantidad de memoria utilizada por las memorias intermedias.
cache: La cantidad de memoria utilizada como cach de pginas.
Los campos relacionados a swap son:
si: La cantidad de memoria intercambiada desde el disco.
so: La cantidad de memoria intercambiada hacia el disco.
Los campos relacionados con E/S son:
bo: Los bloques enviados a un dispositivo de bloques.
bi: Los bloques recibidos desde un dispositivo de bloques.
Los campos relacionados al sistema son:
in: El nmero de interrupciones por segundo.
cs: El nmero de cambios de contexto por segundo.
Los campos relacionados al CPU son:
us: El porcentaje de tiempo que el CPU ejecut cdigo de nivel del usuario.
sy: El porcentaje de tiempo que el CPU ejecut cdigo de nivel del sistema.
id: El porcentaje de tiempo que el CPU estaba desocupado.
wa: Esperas de E/S.
Si se ejecuta el comando vmstat sin opciones, nos muestra una nica lnea, que contiene
promedios calculados desde la ltima vez que se arranc el sistema.
Si ejecutamos vmstat 1 muestra una nueva lnea de utilizacin de datos cada segundo,
mientras que el comando vmstat 1 10, muestra una nueva lnea por segundo, pero slo por
los prximos 10 segundos.

Vmstat -s
El comando vmstat -s sirve para mostrar cuntos eventos del sistema se produjeron desde la
ltima vez que se inici el sistema.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

TOP
El comando top nos da informacin acerca del uso de la cpu, de la memoria, de los procesos
en ejecucin, etc en tiempo real. Nos puede ayudar a monitorizar nuestro servidor dedicado
si notamos que algo no funciona bien. En ocasiones podemos notar alguna incidencia y
gracias al comando top, podemos encaminarnos hacia la causa del problema.

Para salir del comando debemos usar la tecla q


Con la opcin d (delay) podemos cambiar el tiempo de refresco.
Si pulsamos la tecla 1 veremos la informacin del procesador desglosada por cada CPU.
Pulsando la tecla n y a continuacin un nmero, podemos ver el nmero de procesos con ms
consumo que queramos, por ejemplo, nicamente los cinco procesos con ms carga.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

HTOP

Una de las mejoras que tiene HTOP respecto a TOP es que permite la navegacin entre
procesos, tanto vertical como horizontalmente mediante las flechas en el teclado. Esto da
mucha comodidad al usuario. Con HTOP es posible visualizar 2 o 4 medidores de CPU (una
limitacin importante que tena esta herramienta), de modo de poder diferenciar bien
claramente el uso que cada uno de los ncleos est recibiendo.

Otra mejora interesante es que para matar un proceso no necesitas introducir el nmero de
ste, tan slo situarte sobre l y matarlo, lo que da una comodidad mucho mayor con respecto
a TOP. Adems, HTOP tiene soporte para colores y para ratn algo facilita mucho las cosas
al usuario. Por ltimo, cabe destacar que HTOP carga a una velocidad mayor, adems de
todas las mejoras mencionadas anteriormente.

Esta herramienta no viene instalada en el sistema por defecto y por tanto hay que instalarla
con el comando apt-get install htop:

Ahora veremos cmo es el monitor de HTOP, mucho ms intuitivo que el anterior:


ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

PS

El comando ps se utiliza para obtener una instantnea de los procesos en el sistema. Muchas
veces es necesario obtener informacin valiosa, como por ejemplo determinar bajo qu
usuario corre un proceso, y utilizamos el viejo y conocido "ps aux" sin saber bien que
opciones estamos utilizando.

Generalmente en cualquier distribucin de GNU/Linux se incluye la versin de ps que


acepta diferentes tipos de opciones: las opciones UNIX que son precedidas por un guin
(dash), las opciones BSD que no utilizan guin, y las opciones GNU largas que se preceden
por dos guiones. Estas opciones se pueden mezclar, pero a veces ocasionan conflictos o
existen opciones sinnimas que producen los mismos resultados. Por ejemplo "ps -aux"
muestra todos los procesos pertenecientes al usuario llamado "x", ya que no suele existir un
usuario llamado "x" ps lo interpreta como el comando "ps aux" e imprime una advertencia.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

DF

El comando df se usa para informar de cunto espacio libre en disco est disponible para
cada particin que tengas. La primera columna muestra el nombre de la particin tal como
aparece en el directorio /dev. Las columnas siguientes muestran el espacio total, bloques
asignados y bloques disponibles.

SINTAXIS:
La sintaxis es
df [opciones]

OPCIONES:

-a Incluye sistemas de archivos falsos.


-hMostrar los tamaos en formato legible por humanos (1K 234M 2G)
-H Muestra tamaos en formato legible por humanos, pero utiliza potencias de 1000, no de
1024.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

-i Listar informacin de inodos en vez de uso de bloques.


-l Limitar el listado a sistemas de archivos locales.
-P Usar el formato de salida POSIX.
-T Mostrar el tipo de sistema de archivos.

Ejemplo: df -h

Mostrar tamaos en formato legible por humanos.

DU

El comando du se usa para informar de cunto espacio en disco ocupa un archivo o directorio.

SINTAXIS:
La sintaxis es
du [opciones] directorios

OPCIONES:

-a Muestra el uso de espacio de cada archivo.


-k Escribe el tamao de los archivos en unidades de 1024 octetos, en vez de las unidades
de 512 octetos por defecto.
-s En vez de la salida por defecto, informa slo de la suma total de cada uno de los archivos
especificados.
-L Procesa los enlaces simblicos usando el archivo o directorio al que el enlace simblico
referencia, en vez del enlace en s mismo.
-x Cuando evala los tamaos de archivo, evala slo esos archivos que tengan el mismo
dispositivo que el archivo especificado en el operando.

Ejemplo:
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

$ Cd Documentos
$ Du -h

Muestra la capacidad de la carpeta actual.

WATCH

El comando watch nos permite ejecutar comandos o scripts de forma peridica desde la
terminal. Se puede utilizar con cualquier tipo de programa, permitiendo por ejemplo
monitorizar procesos, listas de archivos/datos o conexiones a internet, sin la necesidad de
repetir el mismo programa una y otra vez.

As la sintaxis del programa sera:

watch <comando>

Ese intervalo de tiempo en algunos casos puede ser demasiado corto o extenso, lo podemos
modificar fcilmente aadiendo la opcin -n seguido del tiempo en segundos

watch -n <segundos> <comando>

Lo que hace esta instruccin es mostrarnos como cambia la memoria cada segundo.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

MEMINFO

Por medio de este comando podemos visualizar todo lo relacionado a la memoria, dentro
podemos encontrar subrayados los que se miran con ms frecuencia, aunque haciendo uso
del agregado | grep MemFree nos dar el resultado de solo lo que pedimos.
ESCUELA POLITCNICA NACIONAL
FACULTAD DE INGENIERA DE SISTEMAS
INGENIERA DE SISTEMAS INFORMTICOS Y DE COMPUTACIN
LABORATORIO DE SISTEMAS OPERATIVOS PRCTICA No. 1 2B

DMIDECODE

Este comando sirve para determinar cuanta memoria ram soporta el equipo, en Ubuntu hay
que instalarlo con # apt-get install dmidecode y para que muestre cuanta ram soporta el
mother hacemos:

# dmidecode -t 16

IV. CONCLUSIONES

Todos los comandos mencionados son para trabajar desde la terminal y no tienen una
interfaz grfica de usuario. Cuando se traba en un escritorio con interfaz, es mucho
ms facil de utilizar una herramienta con interfaz grfica. Las herramientas ms
comunes son gnome-system-monitor para entornos GNOME y ksysguard para
entornos KDE.

El estudio de la memoria es de vital importancia al momento de administrar procesos,


un equipo o un programa, para o cual se puede usar comandos simples como los
estudiados en este informe. Esto nos ayudara a optimizar cualquier proceso que
vayamos a ejecutar o simplemente para monitorear uno ya lanzado.

V. REFERENCIAS

[1] Fundamentos de Sistemas Operativos, Mc-Graw Hill, Edicin 7ma, Silberschatz,


Galvin y Gagne.
[2] Sistemas Operativos Modernos, Pearson, Edicin 2da, Tanenbaum.
[3] Recuperados de: Notas de Sistemas Operativos, Top Graph, Edicin 2da, Sergio
Saade. https://lamiradadelreplicante.com/2012/05/17/ejecutar-programas-a-
intervalos-regulares-con-watch/

También podría gustarte