UT04 Procesos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

UT04 -- PROCESOS

INTRODUCCIÓN

Linux es un sistema multiusuario y multitarea .

Multiusuario : varias personas pueden usar simultáneamente la misma computadora.

Multitarea: Linux puede trabajar en varias tareas a la vez.

Gestionar varios usuarios y llevar a cabo la multitarea son trabajos del sistema operativo.

La mayoría de los sistemas sólo disponen de una C.P.U., una M.P. RAM, uno o varios discos

duros y varios dispositivos de E/S. Todos ellos han de ser gestionados y compartidos por

varios usuarios. En este caso el Sistema Operativo "Crea la ilusión de que cada usuario

dispone de un sistema informático propio".

Tal y como se comentó antes, cuando un usuario realiza una petición, linux le hace creer que

toda la atención del sistema está dedicada a él.

En realidad, el sistema puede manejar cientos de peticiones, desde el instante en que alguien

pulsa <enter> responde al comando correspondiente.

Linux supervisa una lista de tareas, conocida también como cola, ,pendientes de ser

realizadas, incluyendo tareas de usuario, tareas del sistema operativo, tareas en segundo

plano…

Linux planifica espacios de tiempo del sistema para cada una de ellas.

Linux trabaja durante un tiempo con una tarea de la cola, la abandona para comenzar otra y

así sucesivamente, después vuelve a retomar otra tarea que abandonó… y continúa con estos

ciclos hasta que finaliza una tarea y la suprime de la cola.

PROCESOS EN SEGUNDO PLANO

Puesto que linux es un sistema operativo multitarea existen varias formas de ejecutar

comandos, “a la vez”. La forma más sencilla, le permite ejecutar un comando en segundo

plano, al mismo tiempo que se ejecuta un comando en primer plano.

Un proceso se pone en segundo plano mediante el símbolo &. Ejemplo:

pip@linux:~>man ls &

El comando pasa a ejecutarse en segundo plano dejando libre el prompt para que pip pueda

ejecutar otros comandos.

Aparece un número : PID, que es el de identificación del proceso

Para devolver la ejecución a primer plano debemos ejecutar fg.


Si tenemos varios procesos en segundo plano debemos poner fg nombre_proceso, es decir

indicamos cual de los procesos será devuelto a primer plano.

INFORMACIÓN SOBRE EL ESTADO DE LOS PROCESOS: MONITORIZACIÓN DE LOS

PROCESOS, comando ps

El comando ps es el más utilizado para obtener información sobre los procesos.

Este comando toma una instantánea de los procesos del sistema.

ps sin parámetros (Solo nos ofrece un pequeño informe de los procesos asociados a nuestro

terminal)

mike@linux:~> ps

La información que nos da es:

PID TTY TIME CMD

4183 tty1 00:00:00 bash

10293 tty1 00:00:00 ps

PID : Número de identificación de proceso


TTY: Número de terminal, cuando el proceso no está asociado a ningún terminal, nos aparece
una interrogación.
TIME: Tiempo de ejecución (de CPU) asociado a cada proceso en segundos
CMD: Command, procesos que se están ejecutando, uno es el shell que comienza cuando te
identificas y termina cuando te desconectas.

pip@linux:~> ps –f

UID PID PPID C STIME TTY TIME CMD

pip 2940 2748 0 22:40 Tty1 00:00:00 bash

pip 3100 2940 1 22:42 Tty1 00:00:00 ps -f

UID: Identificación del usuario propietario, el que creó el proceso

PID: Identificación del Proceso

PPID: Identificación del proceso padre

C: Cantidad de CPU que un proceso ha usado recientemente

STIME: Tiempo de inicio del proceso

Queremos ver los procesos de un usuario determinado, estando como root, o con cualquier

otro usuario:

ps --user anamar –f
ps -aux | grep usuario

ps –e : Se nos informa de todos los procesos que hay en el sistema.

ps –l información similar a top ( -l, formato largo)

COMANDO top

Este comando proporciona una lista de información de procesos y se actualiza cada 5


segundos.
<q> para salir
<h> Muestra la pantalla de salida
<k> Para matar un proceso, nos pedirá el PID
<n> Cambia el número de procesos a visualizar en pantalla, nos pedirá un número
<u> Visualizar por usuario.

Ejemplo:
pip@linux...$top
Luego seleccionamos el usuario que queramos con <u>

La información es sobre los procesos del sistema cuyo usuario es root, también se refleja el
mismo proceso top, cuyo propietario puede ser pip, anamar…
PID USER PRI NI VIRT RES SHARE STAT %CPU %MEM TIME CMD

1465 pip 17 0 1028 1028 836 R 0,7 0,6 0:01 top

1 root 9 0 520 520 452 S 0,0 0,3 0:04 init

….

380 root 9 0 592 592 496 S 0,0 0,3 0:00 syslogd

PRI: Priority; Prioridad del proceso.

NICE: Prioridad de Tiempo compartido. Valor más positivo indica menos tiempo de CPU y

valor negativo más prioridad.

RES: Tamaño de la parte del proceso que actualmente reside en memoria. Da una

aproximación de cuanta memoria RAM el proceso está usando.

SHR: Shared Memory (en KB). Memoria compartida.

STAT: Estado de los procesos

R: (RUN) Proceso en ejecución o preparado para ejecutarse.

S: (SLEEP) Proceso dormido a la espera de algún evento, espera de E/S por ejemplo.

(abro la calculadora, está sleep, en espera de entrada de datos)

W: (SWAPPED) Proceso no se encuentra en Memoria principal


Z: (ZOMBIE) El proceso ha terminado, y queda parado hasta que finalice su proceso

padre.

T: (STOPED) Proceso parado, debe recibir CONT (SEÑAL DE CONTINUACIÓN ) del

proceso padre (proceso parado con control z)

%CPU : Porcentaje de CPU utilizada, por el proceso desde la última actualización, de la tabla

que nos presenta estos datos.

%MEM : Porcentaje de memoria usada (RSS/memoria total)

TIME: Tiempo total de CPU utilizada desde el inicio. Cuanto tiempo e CPU ha consumido el

proceso desde que se inició su ejecución.

CMDLINE: Línea de comando que inició el proceso

VALOR NICE

El valor nice de un proceso indica lo “agradable” que dicho proceso resulta para los demás

procesos. Cuanto más agradable (alto, valor +) sea nice, menos intenso será el uso que dicho

proceso haga de los recursos del sistema. Cuanto menos agradable (bajo) sea nice, más

intenso será el uso que dicho proceso haga de los recursos del sistema.

Se puede decir que un valor bajo en NICE, se traduce a PRI alta.

Dos formas de cambiar el valor NICE.

A) Cuando es lanzado el proceso al sistema

Ejemplo : nice –n 5 top

B) Una vez que el proceso ha sido lanzado

Ejemplo: renice 10 1245

Solo un usuario propietario puede aumentar el valor nice, de sus procesos, nunca disminuir

(lógicamente afecta a los demás, negativamente). Solo root puede disminuir el valor nice.

Ejemplo:

Ahora vamos a comprobar que aumentando un valor NICE de un proceso, disminuimos su valor

PRI. Para ello, abriremos una consola como root y ejecutamos el comando top en segundo

plano:

Linux:~#top &

[1] 6032

Ejecutamos, ps –l , redireccionando la salida a un fichero fich.

Linux:~# ps –l > fich


Aumentamos el valor NICE a 5, del proceso top

Linux:~# renice 5 6032

Volvemos a ejecutar , ps –l adicionando la salida al fichero fich y comparamos.

Linux:~# ps –l >> fich

La prioridad de top inicialmente es de 80, y el valor NICE es de 0.

Después de ejecutar renice, la prioridad es de 85.

COMANDO KILL

Señales

Cuando se envía una señal a un proceso, este puede actuar de dos maneras: si el proceso

dispone de una rutina específica para esa señal, llamada manejador o handler, la utiliza , en

caso contrario, el kernel utiliza el manejador por defecto para esa señal.

Hay dos señales, KILL Y STOP. La señal de KILL hace que el proceso que la recibe sea

destruido. Un proceso que recibe la señal de STOP suspende su ejecución hasta que reciba la

señal CONT (18)

El usuario puede enviar señales a los procesos mediante el comando kill, que debe su nombre,

principalmente, a que se usa para mandar la señal 15, que indica al proceso que debe terminar

su ejecución, es decir que termine por si mismo

Sintáxis

Kill [-señal] PID

(Kill a secas es como kill -15)

Existen procesos que están diseñados para ignorar la señal 15, con lo cual tendremos que

utilizar la señal -9.

No siempre que detengamos un proceso superior se detienen los hijos.

[-señal] se puede especificar por su número o por su nombre simbólico. (Las que vamos a

utilizar son aparte de la 15, la -19 (parar) y la -18 (continuar después de parar).

Ejemplo para listar las señales:

Kill -l

Ejemplo:

Como root vamos a parar el proceso bash de un usuario y volverlo a reanudarlo, para ello abre

una terminal con usuario y otra como root.

Debemos conocer el PID del proceso a parar


Linux:~# ps -aux | grep usuario

bash de pop (por ejemplo el PID es 3575)

Linux:~# kill -19 3575

(Parando el proceso, prueba a poner algún comando en la sesión del usuario)

Linux:~# kill -18 3575

(Aquí estamos reanudándolo)

Y ahora vamos a matar el proceso bash del usuario

Linux:~# kill -9 3575

También podría gustarte