Gestión de Procesos en Sistemas Operativos


Gestión de procesos

proceso es una representación de la ejecución de un programa y su entorno de ejecución. Proceso demonio es un proceso que se ejecuta permanentemente en el sistema. Los datos de identificación de un proceso incluyen: PID (número único que identifica el proceso, el primer proceso se llama init o systemd) PPID (número del proceso padre, cada proceso puede iniciar otros procesos, procesos hijos) UID y GID (número de usuario y grupo correspondiente a la cuenta de usuario que inicia el proceso) Duración y prioridad del proceso (tiempo de ejecución consumido desde la última invocación) Directorio de trabajo activo (al iniciarse el proceso, se configura el directorio actual del proceso) Ficheros abiertos (existe una tabla con los ficheros abiertos que al principio solo se encuentran tres representantes: 0,1,2, con cada apertura de proceso, la tabla se rellena)

Listas procesos

PS comandos: ps: muestra el estado de los procesos en curso que el usuario ha iniciado. ps -f: muestra más info. ps -e: se tiene info de todos los procesos. ps -u: precisa 1a lista de 1 o varios usuarios separados por una coma. -G: es lo mismo pero para los grupos. -t: para terminales. -p: para unos PID determinados. ps -l: ofrece info técnica. La salida generada por ps comienza con una línea de encabezado que muestra el significado de cada columna Información importante mostrada: Nombre de usuario: Nombre del usuario que ejecuta el programa 1D del proceso: ID del proceso (PID) asociado al proceso TTY: Código utilizado para identificar un terminal, no todos los procesos tienen números de TTY (programas X y demonios). Tiempo de CPU: 1. Medidas: TIME y %CPU 2. TIME: cantidad total de tiempo de CPU consumido 3. %CPU: porcentaje de tiempo de CPU que utiliza el proceso en el momento de ejecutar ps. Prioridad de la CPU: 1. Columna NI: códigos de prioridad 2. Valor por defecto: O 3. Valores positivos: prioridad reducida 4. Valores negativos: prioridad incrementada. Uso de la memoria:

  • Encabezados: RSS, %MEM, SHARE
  • RSS: tamaño del conjunto residente (memoria utilizada por el programa y su información)
  • %MEM: porcentaje de memoria que utiliza el programa
  • SHARE: memoria compartida con otros procesos (bibliotecas compartidas)

Comando: última columna suele ser el comando utilizado para iniciar el proceso. Campo STAT: indica el estado del proceso. Pueden ser: R: Proceso en curso de ejecución. T: Proceso parado. Se puede reiniciar. S: Proceso dormido, proceso en ejecución pero sin actividad por el momento. D: Proceso dormido en espera de un recurso. Los procesos en este estado no se pueden interrumpir. Z: Proceso terminado. Sigue terminado hasta q su padre lo note y recupere su codigo. <: Alta prioridad. N: Baja prioridad. L: Tiene páginas bloqueadas en memoria. S: Lider de sesión. +: Está en el grupo de procesos en primer plano.

Más comandos

ps l: ver el campo sat. pstree -Agu: visualiza listado de procesos en forma de arbol. ps -N: se niega el efecto de cualquier opcion que se haya especificado.

Ejecución en segundo plano

– El Shell es un proceso que crea un nuevo proceso para ejecutar cada comando insertado. – Por defecto, se espera al final de la ejecución del comando anterior para iniciar el siguiente. – El comportamiento puede ser modificado, permitiendo la inserción de nuevos comandos sin esperar al final de la ejecución del anterior, utilizando el ampersand «&» – El proceso iniciado en segundo plano no debería esperar ser otro Shell, para evitar confusión entre este comando y el propio Shell. – El proceso iniciado no debería mostrar resultados en pantalla para evitar conflictos con los del Shell. Si no añadimos el & no podemos insertar un nuevo comando. sleep 10 &: indica el PID del proceso que se ejecuta en 2do plano.

Jobs (procesos asociados a la sesión)

Muestra info sobre los procesos en curso de ejecución asociados con la sesión actual. Proporciona los nums de ID de las tareas. Asegura q todos los programas han finalizado antes de salir.

fg: devuelve el proceso a primer plano en el terminal. bg: devuelve 1a tarea a un estado de ejecución pero en segundo plano parada de un proceso /señales: 3 formas de detener un proceso: 1. ctrl + z | ctrl + / | comando kill. -s: envía la señal especificada al proceso. Se puede especificar como un número o como un nombre. 1 (SINGHUP): el padre manda un hang up a todos sus hijos. 2 (sigint): interrupción del proceso pedido. 9 sigkill: señal q ns puede ignorar. 15 sigterm: señal mandada x defecto x el comando kill. el comando kill solo destruye procesos q pertenecen al usuario q lo ejecuta. Stop: suspende un proceso. cont: se reactiva un proceso. hup: reinicia el proceso. nohup: ejecuta un programa q se sigue ejecutando a pesar de q se cierre.killall (opciones) nombre: destruye un proceso en base a su nombre. proceso zombis: Cuando un proceso hijo finaliza, manda una señal SIGCHLD a su proceso padre. Si el padre termina antes q los hijos, estos se convierten en procesos zombis. Administrar las prioridades de los procesos: nice (inicia un programa con una prioridad específica) y renice (altera la prioridad de un programa en ejecución.). Se puede usar nice de 3 maneras: 1. indicando prioridad de un guion. 2. -n, 3. –adjustment=. renice [-n prioridad] -p -g -u ID. incrementar prioridad de todos procesos varios usuarios: renice -n -valor -u usuario1 usuario2. prioridad proceso 2 usuarios: renice -n -valor -p pidproceso1 pidproceso2. top: nos hace saber canto tiempo de CPU consumen varios procesos. –d retardo: especifica el retardo entre actualizaciones q suelen ser 5 segs. –p pid: monitorizamos procesos específicos. –n iter: se le puede decir a top q muestre un número concreto de actualizaciones. h y ?: muestran info ayuda. k: se puede destruir el proceso. q: esta opción sale de top. r: cambia la prioridad del proceso. s: cambia la velocidad de actualización de los datos mostrados. P: los datos se ordenan x el uso del CPU. m: los datos mostrados se ordenan x uso de memoria. uptime: averigua la carga media actual mediante el comando.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *