Está en la página 1de 15

Prctica de Procesos

Administracin de Sistemas Operativos

Francisco Javier Gaviln Escriche 2A

Prctica de Procesos

Francisco Javier Gaviln Escriche

Indice
Objetivos..........................................................................................................................................2 Punto 1 .............................................................................................................................................4 Punto 2 .............................................................................................................................................4 Punto 3 .............................................................................................................................................6 Punto 4 .............................................................................................................................................6 Punto 5 ...........................................................................................................................................11 Punto 6 ...........................................................................................................................................12 Punto 7 ...........................................................................................................................................13 Punto 8 ...........................................................................................................................................14

Prctica de Procesos

Francisco Javier Gaviln Escriche

Objetivos
1. Estudia la orden uptime:

Cunto tiempo lleva en marcha el sistema? Cuntos usuarios hay trabajando? Qu orden ofrece en su cabecera la misma informacin que uptime?

2. La orden pstree muestra el rbol de procesos que hay en ejecucin. Comprueba haciendo uso de la orden ps -la y de los valores PID y PPID mostrados para cada proceso, que efectivamente los procesos son padre e hijo. 3. En muchos casos nos interesar cortar columnas. Recuerda el uso de tr y cut. Por ejemplo, cmo funciona esta instruccin?
ps aux | tr -s | cut -f 2,11 -d

4. Crea el fichero /tmp/bucle con el siguiente contenido:


#!/bin/bash echo nada > /dev/null exec /tmp/bucle

Ejecuta la orden top en una terminal y comprueba el estado del sistema, a continuacin lanza /tmp/bucle en otra. Observa cmo cambia el estado del sistema al lanzar el script. En una tercera terminal, comprueba con ps los procesos en ejecucin. Usando la combinacin de teclas Control-Z para el proceso bucle. Una vez parado comprueba que la informacin mostrada por top va cambiando, hasta llegar un momento en el que no muestra informacin sobre dicho proceso. Fjate que ha aumentado el nmero de procesos parados. Reinicia el proceso con la orden fg y comprueba que vuelve a aparecer la informacin sobre el proceso. Observa si mientras est en ejecucin ese proceso cambia la carga media del sistema. Por qu aparece siempre el proceso bucle con el mismo PID si se lanza a s mismo una y otra vez durante su ejecucin? Cambia la velocidad de referesco de top a 2s. Desde el top, cambia la prioridad del proceso, dndole un valor menor, por ejemplo 10. Usando la orden nice lanza otro proceso bucle con la prioridad de 5. Observa que la CPU se le asignar ms al segundo bucle lanzado, que tiene ms prioridad, que al primero que se ejecut, que tiene menos prioridad. Asigna mediante renice una prioridad de 19 al bucle que lanzaste con prioridad 5. Cmo afecta esto a la ejecucin de los dos procesos? Desde el top mata el bucle con prioridad 10. Fjate que ahora, a pesar de que el que queda tiene prioridad 19, se le asigna ms de la CPU que antes. Haciendo uso de la orden kill, para el proceso bucle que an queda en ejecucin. Despu s usando tambi n kill rean dalo y finalmente elim nalo.

Prctica de Procesos

Francisco Javier Gaviln Escriche

5. Estudia el uso que se hace de la CPU, con mpstat, y el uso de memoria, con vmstat, que estn haciendo en este momento los procesos en ejecucin. Para que el sistema tenga tareas a realizar y acceso al disco al mismo tiempo, ejecuta la siguiente orden: find / -type f -exec cat {} > /dev/null \; 6. Prueba las opciones de ulimit. Ten en cuenta que una vez establecido un lmite con ulimit no es posible establecer un nuevo lmite mejor, para cambiar a un valor mejor es necesario finalizar ese intrprete de rdenes. Recuerda que los valores establecidos son por intrprete de rdenes.

Limita el nmero de ficheros abiertos a 2. A continuacin ejecuta la orden ls. Qu est sucediendo? Limita el tamao del fichero core a 2K. Limita el nmero de procesos en ejecucin a 1. Ejecuta a continuacin una orden, por ejemplo, ps. Qu est sucediendo? Qu podemos hacer para que tengan efecto siempre sobre cierto usuario? (Pista: ficheros profile).

7. Ordenes: at, atq, atrm. (Para poder recibir un correo cuando una orden programada con at se ejecute es necesario que est en ejecucin el demonio sendmail).

Si el demonio atd no est en ejecucin, lnzalo para poder hacer este ejercicio. Programa con la orden at un ls / dentro de unos minutos. Comprueba cmo te avisa de que la orden ha sido ejecutada. Programa con la orden at un ls /tmp > $HOME/salidatmp dentro de unos minutos. Comprueba cmo te avisa de que la orden ha sido ejecutada. Utiliza la orden atq para averiguar que hay en la cola y atrm para eliminar trabajos que hayan sido encolados.

8. Con la orden free averigua el estado de la memoria principal y de intercambio del sistema en este momento.

Prctica de Procesos

Francisco Javier Gaviln Escriche

Punto 1
Estudia la orden uptime: Cunto tiempo lleva en marcha el sistema?

Lleva conectado 23 minutos al sistema Cuntos usuarios hay trabajando? Como se puede ver en la imagen estn trabajando 2 usuarios, aunque con la orden who podramos concretar quienes son. Qu orden ofrece en su cabecera la misma informacin que uptime? El comando TOP

Aunque tambin con la orden w puede visualizarse en pantalla el tiempo que lleva cada usuario conectado al sistema.

Punto 2
La orden pstree muestra el rbol de procesos que hay en ejecucin. Comprueba haciendo uso de la orden ps la y de los valores PID y PPID mostrados para cada proceso, que efectivamente los procesos son padre e hijo. En un terminal lanzado un gedit con gedit & y me indica lo siguiente:

Prctica de Procesos

Francisco Javier Gaviln Escriche

Ahora hacemos un ps la para ver los procesos que estn en marcha en el sistema y como vemos por ejemplo el PID de gedit es 1859 y PPID (numero que hace mencin a su proceso padre) es 1806, si buscamos cual es en el sistema su proceso padre vemos que bash tiene el PID 1806.

Ahora mediante un pstree en otro terminal comprobamos que el proceso bash es el padre del proceso gedit

Prctica de Procesos

Francisco Javier Gaviln Escriche

Punto 3
En muchos casos nos interesar cortar columnas. Recuerda el uso de tr y cut. Por ejemplo, cmo funciona esta instruccin? ps aux | tr -s | cut -f 2,11 -d

Ps aux Listarte los procesos de todos los usuarios Tr s elimina los espacios en blanco duplicados Cut f Corta la informacin por las columnas que nos interesa obtener informacin

Punto 4
Crea el fichero /tmp/bucle con el siguiente contenido: #!/bin/bash echo nada > /dev/null exec /tmp/bucle

Ejecuta la orden top en una terminal y comprueba el estado del sistema, a continuacin lanza /tmp/bucle en otra. Observa cmo cambia el estado del sistema al lanzar el script. En una tercera terminal, comprueba con ps los procesos en ejecucin.

Prctica de Procesos

Francisco Javier Gaviln Escriche

Primero lanzamos el comando top, despus vamos a lanzar el proceso con un sh /tmp/bucle (si no funciona dar permisos a la carpeta tmp), acto seguido volvemos a consultar el top y vemos como se ha ejecutado el bucle y est ejecutndose como un proceso.

Usando la combinacin de teclas Control-Z para el proceso bucle. Una vez parado comprueba que la informacin mostrada por top va cambiando, hasta llegar un momento en el que no muestra informacin sobre dicho proceso. Fjate que ha aumentado el nmero de procesos parados.

Una vez que paramos con CTRL+Z se detiene el bucle y aumenta el nmero de procesos parados Reinicia el proceso con la orden fg y comprueba que vuelve a aparecer la informacin sobre el proceso.

Prctica de Procesos

Francisco Javier Gaviln Escriche

Observa si mientras est en ejecucin ese proceso cambia la carga media del sistema.

Si aumenta

Por qu aparece siempre el proceso bucle con el mismo PID si se lanza a s mismo una y otra vez durante su ejecucin?

Aparece siempre con el mismo PID debido a que lo que hacemos es parar el proceso y no matarlo. Cambia la velocidad de refresco de top a 2s.

Cuando estemos ejecutando el comando top le damos a la tecla d y acto seguido le metemos el tiempo de refresco que sern 2 segundos.

Desde el top, cambia la prioridad del proceso, dndole un valor menor, por ejemplo 10.

Ejecutando el top le damos a la r y metemos el PID del proceso (en este caso el PID perteneciente al bucle anterior es el 11403)

Prctica de Procesos

Francisco Javier Gaviln Escriche

Ahora establecemos para que tenga prioridad 10

Y ms tarde vemos como el NI ha aumentado a 10

Usando la orden nice lanza otro proceso bucle con la prioridad de 5.

En un terminal introducimos la siguiente orden:

Prctica de Procesos

Francisco Javier Gaviln Escriche

Observa que la CPU se le asignar ms al segundo bucle lanzado, que tiene ms prioridad, que al primero que se ejecut, que tiene menos prioridad.

En el comando top ejecutado anteriormente se puede observar cmo se ha creado un nuevo proceso llamado bucle con el NI a 5 Asigna mediante renice una prioridad de 19 al bucle que lanzaste con prioridad 5. Cmo afecta esto a la ejecucin de los dos procesos?

Desde el top mata el bucle con prioridad 10. Fjate que ahora, a pesar de que el que queda tiene prioridad 19, se le asigna ms de la CPU que antes.

En la pantalla con el comando top ejecutado le damos a la k y nos pedir el nmero de PID que queremos matar, justo despus le metemos el nmero 15 para que mate el proceso y listo. Haciendo uso de la orden kill, para el proceso bucle que an queda en ejecucin. Despus , usando tambi n kill rean dalo y, finalmente, elim nalo.

Kill -19 Para parar el proceso Kill -18 Para reanudar el proceso Posteriormente con un Kill -9 matamos el proceso.
10

Prctica de Procesos

Francisco Javier Gaviln Escriche

Punto 5
Estudia el uso que se hace de la CPU, con mpstat, y el uso de memoria, con vmstat, que estn haciendo en este momento los procesos en ejecucin. Para que el sistema tenga tareas a realizar y acceso al disco al mismo tiempo, ejecuta la siguiente orden: find / -type f -exec cat {} > /dev/null \; Primero tenemos que instalar sisstat

Ahora lo que vamos a hacer es un mpstat y vmstat del sistema antes de ejecutar la orden del enunciado y otro justamente despus para ver los cambios que se han producido. Antes:

11

Prctica de Procesos

Francisco Javier Gaviln Escriche

Despus:

Punto 6
Prueba las opciones de ulimit. Ten en cuenta que una vez establecido un lmite con ulimit no es posible establecer un nuevo lmite mejor, para cambiar a un valor mejor es necesario finalizar ese intrprete de rdenes. Recuerda que los valores establecidos son por intrprete de rdenes. Limita el n mero de ficheros abiertos a 2. A continuacin ejecuta la orden ls. Qu est sucediendo?

Limita el tamao del fichero core a 2K.

ulimit -c 2 nombre_del_archivo_core Limita el nmero de procesos en ejecucin a 1. Ejecuta a continuacin una orden, por ejemplo, ps. Qu est sucediendo?

Pues que limitamos el nmero de procesos abiertos a 1 mediante la orden ulimit n 1 Qu podemos hacer para que tengan efecto siempre sobre cierto usuario? (Pista: ficheros profile).

Mediante el uso de un script en el .profile del usuario que queramos le indicaremos mediante un ulimit el nmero de procesos que queramos tener abiertos simultneamente.

12

Prctica de Procesos

Francisco Javier Gaviln Escriche

Punto 7
Ordenes: at, atq, atrm. (Para poder recibir un correo cuando una orden programada con at se ejecute es necesario que est en ejecucin el demonio sendmail). Si el demonio atd no est en ejecucin, lnzalo para poder hacer este ejercicio.

Programa con la orden at un ls / dentro de unos minutos. Comprueba cmo te avisa de que la orden ha sido ejecutada.

Una vez tengamos la orden ls / puesta en el terminal AT tendremos que darle a CTRL+D

Programa con la orden at un ls /tmp > $HOME/salidatmp dentro de unos minutos. Comprueba cmo te avisa de que la orden ha sido ejecutada.

Comprobacin que se ha creado el archivo salidatmp:

13

Prctica de Procesos

Francisco Javier Gaviln Escriche

Utiliza la orden atq para averiguar que hay en la cola y atrm para eliminar trabajos que hayan sido encolados.

Punto 8
Con la orden free averigua el estado de la memoria principal y de intercambio del sistema en este momento.

14