\newpage
%===========================================================================
%       x.17 > openMosixview
%===========================================================================
\pagestyle{empty}
\begin{latexonly}
\ifpdf
 \begin{figure}[htbp]
% \includegraphics[bb = -250 220 0 0, scale=1]{./TuXes/tux-counting.png}
 \end{figure}
 \vspace{5in}
\else
 \begin{figure}
%       \includegraphics[-250,650][0,0]{./TuXes/tux-counting}
 \end{figure}
\fi
\hfill\line(1,0){400}
\end{latexonly}
\topmargin 1in
\section{OPENMOSIXVIEW}
\begin{latexonly}
\line(1,0){400}
\newpage
\end{latexonly}
\topmargin 0in
\pagestyle{fancy}
%========================cita===============================================
\begin{latexonly}
\hspace{1in}\textcolor{blue_omosix}{{\em ...when men were men and
wrote their own device drivers...}}

\hspace{4in}\textcolor{blue_omosix}{{\em Linus Torvalds}}
\vspace{0.5in}

\end{latexonly}
%===========================================================================
El entorno openMosixview es la siguiente versi\'on (y totalmente reescrita) de Mosixiew.

Es una interf\'\i cie gr\'afica (GUI) libre para la adminstraci\'on y mantenimiento de un cluster openMosix
que podemos bajarnos de la web del proyecto\footnote{{\tt \htmladdnormallink{http://www.openmosixview.com}{http://www.openmosixview.com}}}.

La {\em suite} openMosixview contiene 7 aplicaciones altamente \'utiles y eficaces tanto para la administraci\'on
como para la monitorizaci\'on del cluster.

\begin{itemize}
        \item {\bf openMosixview} principal aplicaci\'on de monitorizaci\'on y administraci\'on.
        \item {\bf openMosixprocs} aplicaci\'on para la administraci\'on de procesos.
        \item {\bf openMosixcollector} captura la informaci\'on del cluster proporcionada por los demonios.
        \item {\bf openMosixanalyzer} analizador de la informaci\'on capturada por openMosixcollector.
        \item {\bf openMosixhistory} historial de monitorizaci\'on de procesos del cluster.
        \item {\bf openMosixmigmon} visor que representa la migraci\'on de procesos.
        \item {\bf 3dmosmon} visor para monitorizaci\'on de datos en 3D.
\end{itemize}

Todos los componentes son accesibles desde la ventana de la aplicaci\'on
principal. Este entorno facilita la interacci\'on con el usuario puesto que le
permite ejecutar los comandos de consola m\'as comunes con unos pocos clicks de rat\'on.
%---------------------------------------------------------------------------------------------------------
\subsection{Instalaci\'on}
Requerimientos:
\begin{itemize}
        \item tener instaladas las librer\'\i as QT seg\'un marque la versi\'on,
        \item derechos de superusuario -{\em root}-,
        \item las herramientas de usuario de openMosix -{\em userland-tools}-.
\end{itemize}
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Instalaci\'on desde paquetes RPM}
Los paquetes RPM tienen como directorio de instalaci\'on la ruta {\em /usr/local/openMosixview-$<$versi\'on$>$}.
Tras bajar la \'ultima versi\'on de los paquetes RPM de openMosixview, habr\'a
que instalarlos como cualquier otro paquete, sea desde l'\i nea de comandos:

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt rpm -i openMosixview-$<$versi\'on$>$-$<$distribuci\'on$>$.rpm}}

\vspace{.1in}
Esto nos instalar\'a los ficheros binarios en el directorio {\em /usr/bin/}. Para desinstalarlos ejecutaremos

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt rpm -e openMosixview}}
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Instalaci\'on desde las fuentes}
Con la versi\'on en forma de {\em tarball} y
lo descomprimiremos -y desempaquetaremos- as\'\i :

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt tar -zxvf openMosixview-$<$versi\'on$>$.tar.gz }}

\vspace{.2in}
{\sc Script de Configuraci\'on Autom\'atico}

S\'olo ser\'a necesario entrar al directorio openMosixview y ejecutar:

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt ./setup [directorio\_de\_instalaci\'on\_qt\_$<$versi\'on$>$] }}

\vspace{.2in}
{\sc Compilaci\'on Manual}

Ser\'a necesario situar la variable QTDIR hacia el directorio de la distribuci\'on QT, por ejemplo:

\vspace{.1in} 
\hspace{1in}\colorbox{gray}{{\tt export QTDIR=/usr/lib/qt-2.3.0 (para bash)}}

\hspace{.8in}\'o

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt setenv QTDIR /usr/lib/qt-2.3.0 (para csh)}}

\vspace{.1in}
Tras lo qual tendr\'\i a que ejecutar con \'exito la configuraci\'on y la compilaci\'on:

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt ./configure}}

\hspace{1in}\colorbox{gray}{{\tt make}}

\vspace{.1in}
Luego ser\'a necesario hacer lo mismo en los subdirectorios de openMosixcollector, openMosixanalyzer, 
openMosixhistory and openMosixviewprocs, para poder disponer de los binarios ejecutables
de estas aplicaciones. Tras este procedimiento copiaremos todos los binarios a
{\em /usr/bin/} siguiendo:

\vspace{.1in}
\colorbox{gray}{{\tt cp openMosixview/openMosixview /usr/bin}}

\colorbox{gray}{{\tt cp openMosixviewproc/openMosixviewprocs/mosixviewprocs
    /usr/bin}}

\colorbox{gray}{{\tt cp
    openMosixcollector/openMosixcollector/openMosixcollector /usr/bin}}

\colorbox{gray}{{\tt cp openMosixanalyzer/openMosixanalyzer/openMosixanalyzer
    /usr/bin}}

\colorbox{gray}{{\tt cp openMosixhistory/openMosixhistory/openMosixhistory /usr/bin}}

\vspace{.1in}
y el script de iniciaci\'on de {\tt openMosixcollector} en el directorio de
iniciaci\'on\footnote{El directorio de destino puede variar seg\'un la
  distribuci\'on linux que usemos, de otra forma el directorio de iniciaci\'on
puede estar en {\em /etc/rc.d/init.d} .}:

\vspace{.1in}
\colorbox{gray}{{\tt cp openMosixcollector/openMosixcollector.init /etc/init.d/openMosixcollector}}

\vspace{.25in}
Ahora, si queremos que estas aplicaciones de monitorizaci\'on puedan
ejecutarse localmente en cualquier nodo, tendr\'an que copiarse los binarios a
cada nodo del cluster -en el directorio {\em /usr/bin/}
%---------------------------------------------------------------------------------------------------------
\subsection{Utilizando openMosixview}
\subsubsection*{Aplicaci\'on principal}

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -7 170 0 0, scale=.78]{./pics/omview1.png}
        \vspace{2in}
        \caption{openMosixview: Aplicaci\'on principal}
        \label{omv01}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview1}
        \caption{openMosixview: Aplicaci\'on principal}
        \label{omv01}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

La {\tt Figura \ref{omv01}} muestra la ventana de la aplicaci\'on. El usuario podr\'a interaccionar con el API de openMosix a trav\'es de sus
controles. Para cada nodo del cluster -cada fila-: una luz, un bot\'on, un
{\em speed-slider}, un n\'umero lcd, dos barras de progreso porcentual y un par de etiquetas.

Las luces de la izquierda nos muestran el ID del nodo y su estado. El fondo rojo significa que el nodo no se encuentra operativo, y verde lo contrario.

Si hacemos clic en el bot\'on que muestra la direcci\'on IP de un nodo habremos invocado al di\'alogo de configuraci\'on que nos mostrar\'a
los botones para ejecutar los comandos de {\tt mosctl} m\'as comunes
-ver secci\'on {\em Las herramientas de \'area de usuario} del cap\'\i tulo 5.

Con los {\em speed-sliders} podemos establecer la velocidad que considerar\'a
el cluster para cada nodo. Este par\'ametro se muestra num\'ericamente en el
{\em display} lcd dse su derecha. Hay que tener en cuenta que estos ajustes
tienen un efecto directo sobre el algoritmo de balanceo de carga de openMosix,
puesto que intervienen en la ponderaci\'on de velocidad que se debe considerar
para cada nodo. De esta manera los procesos migrar\'an m\'as f\'acilmente hacia un nodo cuya velocidad sea m\'as elevada.
Recordemos que este concepto de velocidad no tiene que ser el que realmente
posea la computadora, es simplemente el par\'ametro que queremos que openMosix considere para cada m\'aquina.

Las barras de progreso dan una idea general de la carga de cada nodo del cluster.
La primera se refiere a la carga del procesador y muestra un porcentaje que
ser\'a una aproximaci\'on del valor escrito por openMosix en el fichero {\em
  /proc/hpc/nodes/x/load}.
La segunda barra nos muestra la memoria utilizada en cada nodo. El box de la
izquierda nos muestra el total de memoria -en megabytes- que posee cada nodo.
Finalmente el \'ultimo box muestra el n\'umero de procesadores de cada nodo.

\vspace{.2in}
Hasta ahora se ha definido la interfaz para cada nodo en particular, no
obstante la misma aplicaci\'on muestra informaci\'on general del cluster.

El box {\em load-balancing efficiency} es un indicador de la eficiencia del algoritmo de balanceo de carga.
Un valor pr\'oximo al 100\% indica que la carga computacional ha podido
dividirse equitativamente entre los nodos; este es precisamente el fin que
persigue openMosix.

Bajo la barra de men\'us existen varios iconos que lanzan las dem\'as aplicaciones del entorno openMosixview.
Podemos utilizar los men\'us de {\tt collector-} y {\tt analyzer-} para
administrar openMosixcollector y openMosixanalyzer, respectivamente.

Estas dos partes de las aplicaciones openMosixview son muy adecuadas para
construir un historial del trabajo hecho -y la manera en como se ha hecho- en el
cluster. Cuando hagamos iniciado la captura de datos el led
etiquetado como {\tt openMosixcollector status} se mostrar\'a verde.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{La ventana de configuraci\'on}

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -100 325 0 0, scale=1]{./pics/omview2.png}
        \vspace{4.5in}
        \caption{openMosixview: Propiedades de los nodos}
        \label{omv02}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview2}
        \caption{openMosixview: Propiedades de los nodos}
        \label{omv02}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Esta ventana emergente de la {\tt Figura \ref{omv02}} aparecer\'a tras hacer
clic en el bot\'on de la IP de cualquier nodo, permite una f\'aci
configuraci\'on de la m\'aquina con dicha direcci\'on.

Todos los comandos que esta ventana invoca pueden ser ejecutados a trav\'es de
{\em rsh} o {\em ssh} en los
nodos remotos -y tambi\'en en el nodo local, evidentemente- siendo {\em root}
y sin necesidad de contrase\~{n}as.

Si hay instalado {\tt openMosixprocs} en los nodos remotos del cluster
podremos clicar en el bot\'on {\em remote proc-box} para invocar
openMosixprocs remotamente.

Se nos mostrar\'a en pantalla los par\'ametros [xhost+hostname] y ser\'an configurados para apuntar a nuestro nodo local.
Adem\'as el cliente es ejecutado en el remoto con {\em rsh} o {\em ssh}
(recordemos que tendr\'\i amos que tener copiados los binarios de openmsoxiprocs en el directorio /usr/bin de cada nodo).

openMosixprocs nos permitir\'a una administraci\'on de nuestros programas.

Si hemos entrado a nuestro cluster desde una estaci\'on de trabajo remota podremos introducir nuestro nombre de nodo local en la edit-box, debajo de la {\em remote proc-box}.
Luego openMosixprocs se nos mostrar\'a en nuestra estaci\'on de trabajo y no en el nodo del cluster donde hemos entrado (podemos configurar [xhost+clusternode] en nuestra estaci\'on de trabajo).
Podemos encontrar un historial en el combo-box as\'\i\ como el nombre de nodo que hayamos escrito.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Ejecuci\'on avanzada}
Si queremos iniciar trabajos en nuestro cluster el di\'alogo de {\em advanced execution} mostrado en la {\tt Figura 3} podr\'a ayudarnos para convertirlo a modo gr\'afico.

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -40 325 0 0, scale=1]{./pics/omview3.png}
        \vspace{4.5in}
        \caption{openMosixview: Ejecuci\'on avanzada}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview3}
        \caption{openMosixview: Ejecuci\'on avanzada}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Elegiremos el programa a iniciar con el bot\'on {\tt run-prog} (en File-Open-Icon) y especificaremos cu\'al y donde se encuentra el trabajo que 
queremos iniciar en este di\'alogo de ejecuci\'on. Hay diferentes opciones que se describen en la pr\'oxima tabla.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{La l\'\i nea de comandos}
Podremos especificar los argumentos a los que antes pod\'\i amos acceder gr\'aficamente a trav\'es de comandos en el {\em lineedit-widget} en la parte superior de la ventana, tal como se muestra en la {\tt Figura 3}.\\
\begin{table}
\begin{center}
\begin{tabular}{ | l | l | } \hline
no migration&    iniciar un proceso local que no migrar\'a \\ \hline
run home &  iniciar un proceso local \\ \hline
run on & iniciar un trabajo en el nodo que elijamos con "nodo-chooser"  \\ \hline
cpu job & iniciar un proceso cpu-intensivo en el nodo (nodo-chooser)  \\ \hline
io job  & iniciar un proceso IO-intensivo en el nodo (nodo-chooser)  \\ \hline
no decay & iniciar un proceso sin decay (nodo-chooser)  \\ \hline
slow decay & iniciar un proceso con decay lento (nodo-chooser)  \\ \hline
fast decay & iniciar un proceso con decay r\'apido (nodo-chooser)  \\ \hline
parallel & iniciar un proceso paralelo en todos o algunos nodos (special nodo-chooser)  \\ \hline
\end{tabular}
\caption{openMosixview: Condiciones de inicio avanzadas para procesos}
\end{center}
\end{table}
%---------------------------------------------------------------------------------------------------------
\subsubsection*{El host-chooser}
Para todas las tareas que ejecutemos de manera remota s\'olo tenemos que elegir un nodo que la hospede con el dial-widget. 
El ID de openMosix del nodo se nos muestra tambi\'en en forma de lcd. Luego pulsaremos {\em execute} para iniciar el trabajo.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{El host-chooser paralelo}
Podemos configurar el primer y el \'ultimo nodo con 2 spinboxes. 
Luego el comando ser\'a ejecutado en todos los nodos, desde el primero hasta el \'ultimo.
Podremos tambi\'en invertir esta opci\'on.
%---------------------------------------------------------------------------------------------------------
\newpage
\subsection{openMosixprocs}
\subsubsection*{Introducci\'on}
La ventana de procesos mostrada en la {\tt Figura 4} es muy \'util para la administraci\'on de los procesos de nuestro cluster.

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -55 425 0 0, scale=1]{./pics/omview4.png}
        \vspace{5.8in}
        \caption{openMosixprocs: Administraci\'on de procesos}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview4}
        \caption{openMosixprocs: Administraci\'on de procesos}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Deberemos instalar esta aplicaci\'on en cada nodo. La lista de procesos da una idea de lo que se est\'a ejecutando y donde.
La segunda columna informa del ID del nodo donde se est\'a ejecutando la tarea. Con un doble clic sobre cualquier proceso invocaremos la ventana para administrar su migraci\'on (siguiente figura).

Un {\tt '0'} significa 'local', los dem\'as valores significan 'remoto'. Los procesos migrados est\'an marcados con
un icono verde y a los procesos que no pueden migrar se les a\~{n}ade un cerradero.

Hay tambi\'en varias opciones para migrar el proceso remoto: enviarle las se\~{n}ales SIGSTOP y SIGCONT o simplemente cambiarle la prioridad, con el comando {\tt nice} por ejemplo.

Si hacemos clic en el bot\'on {\em manage procs from remote} invocaremos a una ventana emergente (llamada {\em remote-procs windows}) que nos mostrar\'a el proceso actualmente migrado hacia ese nodo.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{La ventana de migraci\'on}
El di\'alogo de la {\tt Figura 5} emerger\'a si clicamos sobre cualquier proceso en la ventana anterior.

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -75 400 0 0, scale=1]{./pics/omview5.png}
        \vspace{5.5in}
        \caption{openMosixprocs: La ventana de migrado de un proceso(1)}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview5}
        \caption{openMosixprocs: La ventana de migrado de un proceso(1)}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

La ventana openMosixview-migrator  muestra todos los nodos de nuestro cluster, arriba a la izquierda.
Esta ventana sirve para administrar un proceso (con informaci\'on adicional).

Si hacemos doble clic en un nodo migrar\'a a este nodo.

Tras breves instantes el icono del proceso cambiar\'a a verde, lo que significa que est\'a siendo ejecutado remotamente.

El bot\'on {\em home} envia un proceso a su nodo ra\'\i z.
Con el bot\'on {\em best} el proceso ser\'a enviado hacia el mejor nodo disponible en el cluster.

Esta migraci\'on se ve influenciada por la carga, velocidad, n\'umero de procesadores y su mayor o menor velocidad.
Con el bot\'on {\em kill} mataremos al proceso.

Para pausar un programa s\'olo tendremos que pulsar en el bot\'on etiquetado como SIGSTOP y para reanudarlo, en SIGCONT.

Con el slider de {\tt renice} podremos cambiar la prioridad de los procesos para una administraci\'on m\'as completa, as\'\i\ el valor -20 se traduce en una mayor
prioridad para terminar el trabajo, 0 le da prioridad normal y 20 le sit\'ua en una prioridad muy baja para tratarlo.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Administrando procesos remotamente}
El di\'alogo mostrado en la {\tt Figura 6} aparecer\'a si clicamos en el bot\'on {\em manage procs from remote}.

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -80 400 0 0, scale=1]{./pics/omview6.png}
        \vspace{5.5in}
        \caption{openMosixprocs: La ventana de migrado de un proceso(2)}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview6}
        \caption{openMosixprocs: La ventana de migrado de un proceso(2)}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Las pesta\~{n}as muestran los procesos que han migrado al nodo local.
De forma parecida a los 2 botones en la ventana de migrado, el proceso ser\'a enviado a su nodo ra\'\i z
si pulsamos {\em goto home node} y enviado al mejor nodo si pulsamos {\em goto best node}.
%---------------------------------------------------------------------------------------------------------
\subsection{openMosixcollector}
openMosixcollector es un {\em daemon} (demonio) que debe/puede ser invocado en cualquier miembro del cluster.

Genera un historial de la carga de cada nodo del cluster al directorio {\em /tmp/openMosixcollector/*}
Este historial puede servir de entrada para openMosixanalyser (explicado posteriormente) para ofrecer una vista general de la carga, memoria y
procesos en nuestro nodo durante un intervalo de tiempo.

Existe otro historial principal llamado {\em /tmp/openMosixcollector/cluster}

Y adicionalemnte a \'estos existen ficheros en los directorios donde se escriben los datos.

Al iniciar, openMosixcollector escribe su PID (ID del proceso) en {\em /var/run/openMosixcollector.pid}

El demonio de openMosixcollector reinicia cada 12 horas y guarda el actual historial a {\em /tmp/openMosixcollector[date]/*}
Estos {\em backups} se hacen automaticamente pero siempre podremos lanzarlos manualmente.

Hay una opci\'on que permite escribir un {\em checkpoint} al historial.
Estos {\em checkpoints} podemos verlos gr\'aficamente como una fina l\'\i nea azul vertical si analizamos el historial con openMosixanalyser.
Por ejemplo podemos poner un {\em checkpoint} cuando iniciamos cierto trabajo en el cluster y otro cuando \'este finaliza.

Aqu\'\i\ tenemos una referencia de los posibles argumentos para la consola:

{\tt openMosixcollector -d}      //inicia el collector como un daemon\\
{\tt openMosixcollector -k}      //detiene el collector\\
{\tt openMosixcollector -n}      //escribe un {\em checkpoint} en el historial\\
{\tt openMosixcollector -r}      //guarda el actual historial y empieza uno de nuevo\\
{\tt openMosixcollector}         //saca por la salida est\'andar una ayuda r\'apida\\

Podemos iniciar este demonio con su script de iniciaci\'on, que se encuentra en {\em /etc/init.d o en /etc/rc.d/init.d}
Hemos de tener un enlace simb\'olico a uno de los {\em runlevels} para un inicio autom\'atico.

La forma para analizar los historiales creados la describimos en la siguiente secci\'on, el openMosixanalyzer.
%---------------------------------------------------------------------------------------------------------
\subsection{openMosixanalyzer}
\subsubsection*{Una visi\'on general de la carga del sistema}
La siguiente figura nos muestra de forma gr\'afica la carga en el openMosixanalyzer.

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = 15 400 0 0, scale=1]{./pics/omview7.png}
        \vspace{5.5in}
        \caption{openMosixanalyzer. Historial de actividad de procesamiento del cluster}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview7}
        \caption{openMosixanalyzer. Historial de actividad de procesamiento del cluster}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Con el openMosixanalyzer tendremos un historial cont\'\i nuo de nuestro cluster.
Los historiales generados por openMosixcollector se mostrar\'an ahora de forma gr\'afica, adem\'as de cont\'\i nua, lo que nos permitir\'a ver la evoluci\'on del rendimiento y dem\'as par\'ametros de nuestro
cluster a trav\'es del tiempo.
openMosixanalyzer puede analizar los historiales a tiempo real (datos generados a tiempo real) y evidentemente
tambi\'en puede abrir antiguos {\em backups} con el menu File.

Los historiales ser\'an guardados en {\em /tmp/openMosixcollector/*} (y los backups los tendremos en \\
{\em /tmp/openMosixcollector[date]/*})
y s\'olo tendremos que abrir el historial principal del cluster para visualizar antiguos historiales de informaciones de carga.
(el campo [date] en los ficheros de backup se refiere a la fecha en que han sido guardados)

La hora de inicio del backup podemos verla en la parte superior.

Si utilizamos openMosixanalyzer para tratar historiales a tiempo real tendremos que activar el check {\em refresh} para que se actualice autom\'aticamente.

Las l\'\i neas que indican la carga son normalmente de color negro. Si la carga se incrementa a $>$75 las l\'\i neas se volver\'an rojas.\\
Estos valores se obtienen desde los ficheros {\em /proc/hpc/nodes/[openMosix ID]/*}

El bot\'on {\em Find-out} de cada nodo calcula diversos valores para las estad\'\i sticas.
Si lo clicamos abriremos una nueva ventana en la cual veremos las medias de la carga y memoria y algunas informaciones adicionales
(est\'aticas y din\'amicas) sobre el nodo en concreto.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Estad\'\i sticas sobre los nodos del cluster}

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -40 200 0 0, scale=1]{./pics/omview9.png}
        \vspace{2.8in}
        \caption{openMosixanalyzer. Estad\'\i sticas de los nodos}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview9}
        \caption{openMosixanalyzer. Estad\'\i sticas de los nodos}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Si hay {\em checkpoints} escritos en el historial (generado por openMosixcollector) podremos verlos traducidos como l\'\i neas azules verticales.
Esto permite comparar valores de carga a posteriori de forma f\'acil. V\'ease la {\tt Figura 8}.
%---------------------------------------------------------------------------------------------------------
\subsubsection*{Monitorizaci\'on de la memoria}

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = 15 400 0 0, scale=1]{./pics/omview8.png}
        \vspace{5.5in}
        \caption{openMosixanalyzer. Historial de actividad de memoria de nuestro cluster}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview8}
        \caption{openMosixanalyzer. Historial de actividad de memoria de nuestro cluster}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

La {\tt Figura 9} muestra las gr\'aficas de memoria proporcionadas por openMosixanalyzer

La filosof\'\i a de monitorizaci\'on de la memoria es id\'entica a la explicada anteriormente con la carga y evidentemente sirven tambi\'en para
poder ver como se ha comportado openMosix para administrar nuestros recursos de memoria, en este caso.

Igualmente podemos tener un monitorizaci\'on a tiempo real o abrir antiguos historiales.

Para mostrar sus gr\'aficas, openMosixnalyzer obtiene informaci\'on de estos ficheros

/proc/hpc/nodes/[openMosix-ID]/mem. \\
/proc/hpc/nodes/[openMosix-ID]/rmem. \\
/proc/hpc/nodes/[openMosix-ID]/tmem. \\

Los {\em checkpoints} se muestran de igual forma que en la carga, con fina l\'\i neas verticales de color azul.
%---------------------------------------------------------------------------------------------------------
\subsection{openMosixhistory}

\begin{latexonly}
\ifpdf
        \begin{figure}[htbp]
        \includegraphics[bb = -55 400 0 0, scale=1]{./pics/omview10.png}
        \vspace{5.5in}
        \caption{openMosixhistory. Un historial de los procesos ejecutados}
        \end{figure}
\else
\end{latexonly}
        \begin{figure}
        \centering
        \includegraphics{pics/omview10}
        \caption{openMosixhistory. Un historial de los procesos ejecutados}
        \end{figure}

\begin{latexonly}
\fi
\end{latexonly}

Con openMosixhistory podremos acceder a la lista de procesos ejecutados en el pasado, v\'ease {\tt Figura 10}.
Conseguiremos un lista de los procesos que se ejecutaron en cada nodo.
openMosixcollector guarda la lista de procesos de cada nodo cuando lo iniciamos y con el openMosixhistory podremos navegar en dicha informaci\'on
para ver el comportamiento que desarroll\'o nuestro cluster.

Podremos cambiar facilmente el tiempo de navegaci\'on con un {\em slider} situado en la parte superior, para as\'\i\  ajustar la ventana del pasado.

openMosixhistory puede analizar en tiempo real los historiales, y tambi\'en abrir antiguos de forma id\'entica a como lo hemos podido hacer
en los otros analizadores de datos explicados anteriormente.

Los historiales se obtienen nuevamente de {\em /tmp/openMosixcollector/*}
y s\'olo tendremos que abrir el historial principal para poder navegar en los ficheros de
informaci\'on sobre la carga dada tiempo atr\'as. 

El tiempo de inicio del monitorizaci\'on podemos verlo en la parte superior y tenemos 12 horas de vista.
%---------------------------------------------------------------------------------------------------------
\subsection{openMosixview + SSH2}
%
%el codigo fuente de esta \subsection{} ha estado aportado por Marcelo Stutz
%
 \textit {\textbf {Texto original Matthias Rechenburg. Todo error tipogr\'afico, gramatical, sem\'antico u ortogr\'afico 
env\'\i enlo al traductor: Marcelo ({\tt kuntx@kx99.hn.org}).}}

Usted puede leer la raz\'on por la que debe usar SSH en vez de RSH cada d\'\i a en el diario, cuando otro script-kiddy haya hackeado un 
sistema/red inseguro. Entonces se dar\'a cuenta que SSH es una
buena decisi\'on despu\'es de todo.
\begin{center}
\textbf{Libertad x seguridad = constante }\textmd{(sacado
de un grupo de noticias de seguridad.)}
\end{center}

Es por eso que es un poco dif\'\i cil de instalar SSH.
SSH es seguro incluso si usted lo usa para logarse 
sin usar contrase\~na. Seguidamente daremos una forma de como configuralo.\\

En principio es requerido que este corriendo el demonio del secure-shell.

Si no est\'a instalado inst\'alelo.

\hspace{1in}\colorbox{gray}{\texttt{rpm -i [sshd\_rpm\_package\_from\_your\_linux\_distribution\_cd]}}


Si no est\'a ya corriendo in\'\i cielo con:

\hspace{1in}\colorbox{gray}{\texttt{/etc/init.d/ssh start}}

Ahora usted debe generar en su computadora un par de llaves para el ssh hagalo con:

\hspace{1in}\colorbox{gray}{\texttt{ssh-keygen}}

Se le pedir\'a una frase de contrase\~na para ese par de llaves creado.
La frase de contrase\~na es normalmente m\'as larga que la contrase\~na 
incluso llegando quiz\'as a ser una oraci\'on completa. El par de llaves 
es encriptado con esa frase de contrase\~na y guardado en:\vspace{0.15in}\\ 
{\em root/.ssh/identity}{\tt //su llave privada}\vspace{0.1in}\\
{\em /root/.ssh/identity.pub}{\tt //su llave p\'ublica}\vspace{0.15in}\\
\textbf{!`!`No le entregue su llave privada a nadie!!}%\vspace{0.3in}

Ahora copie el contenido completo de 
{\em /root/.ssh/identity.pub} (su llave p\'ublica que deber\'\i a 
  tener una longitud de una l\'\i nea) en {\em /root/.ssh/authorized\_keys} al host remoto (tambi\'en 
  copie el contenido de {\em /root/.ssh/identity.pub} a su 
  (local){\em /root/.ssh/authorized\_keys} como usted hizo 
  con el nodo remoto, debido a que openMosixview 
  necesita logar al nodo local sin que se le pida 
  una contrase\~na.

  Si ahora usted se trata de conectar mediante ssh al 
  host remoto se le preguntar\'a por la frase de 
  contrase\~na de su llave p\'ublica respondiendo 
  correctamente deber\'\i a poder loguearse. ?`Cu\'al es la 
  ventaja entonces?\\
  La frase de contrase\~na es normalmente m\'as larga que 
  la contrase\~na.\vspace{0.15in}\\
  La ventaja usted la puede obtener usando el 
  ssh-agent. \'Este maneja la frase de contrase\~na durante 
  el ssh login: \texttt{ssh-agent}

  El ssh-agent es iniciado y entrega 2 variables de entorno
  Usted debe configurarlas (si no lo estan ya), escriba:\\

\texttt{echo \$SSH\_AUTH\_SOCK}\\
  y\\
\texttt{echo \$SSH\_AGENT\_PID}\vspace{0.15in}\\
para ver si han sido exportadas a su shell. Si esto 
no es as\'\i\ corte y p\'eguelas desde su terminal de la 
siguiente forma:\vspace{0.05in}\\
\begin{itemize}
        \item Para bash-shell:
\begin{verbatim}
SSH_AUTH_SOCK=/tmp/ssh-XXYqbMRe/agent.1065
export SSH_AUTH_SOCK
SSH_AGENT_PID=1066
export SSH_AGENT_PID
\end{verbatim}
        \item Para csh-shell:
\begin{verbatim}
setenv SSH_AUTH_SOCK /tmp/ssh-XXYqbMRe/agent.1065
setenv SSH_AGENT_PID 1066
\end{verbatim}
\end{itemize}
Con estas variables el demonio sshd remoto puede 
conectarse a su ssh-agent local usando el archivo 
socket en {\em /tmp} (en este ejemplo
{\em /tmp/ssh-XXYqbMRe/agent.1065}). El ssh-agent ahora 
puede darle la frase de contrase\~na al host remoto 
usando este socket (obviamente es una transferencia 
encriptada).

Usted apenas tiene que agregar su llave p\'ublica al 
ssh-agent con el comando ssh-add:

\hspace{1in}\colorbox{gray}{\texttt{ssh-add}\vspace{0.15in}}\\

Ahora usted debe poder logarse usando ssh al host 
remoto sin que se le pida contrase\~na alguna.
Usted puede (debe) agregar los comandos ssh-agent y 
ssh-add a su login profile:\vspace{0.15in}

\hspace{1in}\colorbox{gray}{\texttt{eval `ssh-agent`}\vspace{0.1in}}

\hspace{1in}\colorbox{gray}{\texttt{ssh-add}}

Con ello ser\'a iniciado cada vez que se loguee en su 
estaci\'on de trabajo local. 
Felicidades, le deseo que 
tenga logins seguros de ahora en m\'as con openMosixview.

Finalmente y ya para terminar con este COMO, hay una 
entrada en el men\'u de openmosixView que permite 
seleccionar con que trabajar rsh/ssh, act\'\i vela y 
usted prodr\'a usar openMosixview incluso en redes 
inseguras.Tambi\'en debe grabar esta configuraci\'on, (la 
posibilidad de grabar la configuraci\'on actual en 
openMosixview fue agregada a partir de la versi\'on 
0.7), porque toma datos de inicio del esclavo usando 
rsh \'o ssh ( como usted lo haya configurado). Si usted 
elige un servicio que no est\'a instalado correctamente 
openMosixview no funcionar\'a.\\

Si usted no se puede conectar mediante rsh a un 
esclavo sin que se le pida una contrase\~na usted no 
podr\'a usar openMosixview con RSH.\\ 

Si usted no se puede conectar mediante ssh a un 
esclavo sin que se le pida una contrase\~{n}a usted no 
podr\'a usar openMosixview con SSH.\\
Como creado por M. Rechenburg. Me olvid\'e de algo? 
Seguro. Env\'\i eme un mail seguramente ser\'a agregado.
%---------------------------------------------------------------------------------------------------------
\subsection{FAQ de openMosixview {\em -preguntas m\'as frecuentes}}

{\bf !`No puedo compilar openMosixview en mi equipo!}

Antes que nada, como ya se ha comentado, es fundamental disponer de las librer\'\i as QT$>$=2.3.x.

La variable de entorno {\em QTDIR} tiene que estar configurada en {\em QT-installation} como se describe en el fichero de instalaci\'on INSTALL.

En versiones anteriores a la 0.6 podemos ejecutar {\tt make clean} y borrar los dos ficheros:
\begin{verbatim}
/openmosixview/Makefile 
/openmosixview/config.cache
\end{verbatim}

y probar ahora de compilar otra vez ya que el autor, Matt Rechenburg, ha dejado los binarios y los objetos en estas versiones m\'as antiguas.

En caso de tener otro tipo de problemas podemos postear en la lista de correo o directamente informar al autor.

\vspace{0.3in}
{\bf ?`Puedo utilizar openMosixview con SSH?}

S\'\i\, desde la versi\'on 0.7 se ha incorporado soporte para SSH.\\
Tendr'\i amos que ser capaces de acceder con ssh a cada nodo del cluster sin contrase\~{n}a (lo mismo que es requerido para un acceso con rsh).

\vspace{0.3in}
{\bf He intentado iniciar openMosixview pero se me bloquea antes de iniciarse. ?`Qu\'e he hecho mal?}

No deberemos ejecutar openMosixview en {\em background}, esto es llamarlo desde la consola con el comando {\tt openMosixview\&}.

Tambi\'en puede darse el caso que no podamos acceder a \'el a trav\'es de rsh/ssh (dependiendo de lo que usemos) como root sin contrase\~{n}as.
Entonces deber\'\i amos probar el comando {\tt rsh hostname}  como root. No se nos deber\'\i a pedir ninguna contrase\~{n}a pero se nos mostrar\'a el shell para entrar nuestro login (nombre de usuario). 
Si estamos utilizando SSH el comando ser\'\i a {\tt ssh hostname}.

Tendremos que poder acceder como root en el sistema porque es el \'unico modo de poder ejecutar los comandos administrativos que openMosixview requiere.

Si s\'olo tuvi\'eramos instalado SSH en nuestro cluster, crearemos el fivhero {\em /root/.openMosixview} y escribiremos {\tt 1111} en \'el.

\'Este es el fichero de configuraci\'on principal y el \'ultimo {\tt 1} se refiere a utilizar ssh en lugar de rsh.

\vspace{0.3in}
{\bf El cliente {\em openMosixviewprocs/mosixview\_client} no funciona.}

El cliente openMosixview\_client se ejecuta por rsh (o ssh, lo que tengamos configurado) en el host remoto. Debe estar instalado en {\em /usr/bin/} en cada nodo.

\newpage
Si usamos RSH podemos probar

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt xhost +hostname}}

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt rsh hostname /usr/bin/openMosixview\_client -display nombre\_de\_host\_local:0.0}}

y si usamos SSH

\hspace{1in}\colorbox{gray}{{\tt xhost +hostname}}

\hspace{1in}\colorbox{gray}{{\tt ssh hostname /usr/bin/openMosixview\_client -display nombre\_de\_host\_local:0.0}}

Si esto funciona funcionar\'a tambi\'en en openMosixview.

\vspace{0.3in}
{\bf openMosixview genera un {\em segmentation fault}}

\hspace{0.5in}Puede que estemos utilizando versiones antiguas de openMosixview.

\vspace{0.3in}
{\bf ?`Por qu\'e los botones del di\'alogo openMosixview-configuration no est\'an preseleccionados? (automigraci\'on on/off, bloqueo on/off...)}

\hspace{0.5in}Ser\'\i a preferible que estuviesen preseleccionados, el problema se encuentra al obtener informaci\'on del nodo.

Tenemos que logar en cada nodo ya que esta informaci\'on no se encuentra dentro del cluster en s\'\i\ .

El estado de cada nodo se guarda en el directorio {\em /proc/hpc/admin/} de cada nodo.
