Administracion de Procesos en Linux

31
ADMINISTRACIÓN DE PROCESOS EN LINUX Ingeniería de sistemas 20 DE MAYO DE 2014 UNIVERSIDAD AUTONOMA DEL CARIBE Sistemas operativos II

description

Administracion de procesos en linux muy bien detallados

Transcript of Administracion de Procesos en Linux

ADMINISTRACIN DE PROCESOS EN LINUX

ADMINISTRACIN DE PROCESOS EN LINUXIngeniera de sistemas

UNIVERSIDAD AUTNOMA DEL CARIBEFACULTAD DE INGENIERA

PROGRAMA DE INGENIERA DE SISTEMAS

TRABAJOANLISIS ADMINISTRACIN DE PROCESOS EN LINUX

BARRANQUILLA ATLNTICO2014

NDICE1 Introduccin12 rbol de procesos y PID.13 Comandos de visualizacin de procesos13.1 ps...13.2 top..33.3 pstree33.4 kill...43.5 killall...53.6 jobs....54 Lanzar un proceso..54.1 En primer plano54.2 En segundo plano55 Formas de detener un proceso.66 ESTADO DEL ARTE..66.1 Estados y transiciones de un proceso.66.2 Estructuras de datos del sistema para la gestin de procesos...66.3 Organizacin de la memoria del sistema.66.4 Manipulacin del contexto de un proceso66.5 Manipulacin del espacio de direcciones de un proceso. Algoritmos. 66.6 Llamadas al sistema para la gestin de procesos.66.7 Terminacin y espera por la terminacin de procesos. EXIT y WAIT66.8 Dormir (sleep) y despertar (wakeup) procesos..66.9 Llamadas a otros programas. Familia de funciones exec..76.10 Variables de entorno y Parmetros relativos a archivos..76.11 Sincronizacin de procesos en Linux.76.12 Seales y funciones de tiempo77 ESTADOS Y TRANSICIONES DE UN PROCESO77.1 Modo kernel (modo privilegiado)...87.2 Modo usuario87.3 Ciclo de Vida de un Proceso en Linux. Conjunto de Estados..87.4 Informacin de planificacin..87.5 Identificadores.87.6 Comunicacin entre procesos. .87.7 Tiempos y temporizadores.87.8 Sistema de archivos97.9 Memoria virtual97.10 Contexto especfico del procesador...9LOS ESTADOS DE EJECUCIN DE UN PROCESO LINUX SON LOS SIGUIENTES:7.1.1 En Ejecucin (TASK_RUNNING)..97.1.2 Listo (TASK_RUNNING).97.1.3 Interrumpible (TASK_INTERRUPTIBLE).97.1.4 No interrumpible (TASK_UNINTERRUPTIBLE).97.1.5 Parado (TASK_STOPPED)97.1.6 Zombie (TASK_ZOMBIE)...97.1.7 Estructura de Datos Para la Administracin de Procesos..98 ORGANIZACIN DE LA MEMORIA DEL SISTEMA98.1 Asignacin de memoria108.2 Regiones10 8.3 Descripcin de Regiones.118.4 Pginas y Tablas de Pginas..118.5 Organizacin de la Memoria Kernel118.6 Espacio de direcciones virtuales de un proceso..128.7 Colaboracin del hardware y sistema operativo.....128.8 Tripletas de registros del kernel..129 CONTEXTO DE UN PROCESO Y TIPOS129.1 Ejecucin de un proceso..139.2 MANIPULACIN DEL CONTEXTO DE UN PROCESO.139.3 Interrupciones y Excepciones. Tratamiento..139.4 Interfaz de Llamadas al Sistema (Algoritmo sys_call)149.5 Recuperacin de la llamada159.6 Manipulacin Del Espacio de Direcciones de Un Proceso.159.7 Llamadas Al Sistema para la Gestin de Procesos..169.8 Acciones ms Importantes del Kernel al Llamar a fork.1610 Conclusin..1711 Bibliografa..18

1 IntroduccinUn proceso es un programa o un comando en curso de ejecucin en sistema operativo. Como Linux puede llevar a cabo varios procesos al mismo tiempo se dice que es multitarea o multiproceso.Los procesos pueden llevarse a cabo por una orden nuestra o ejecutarse de forma permanente en el sistema mediante un demonio o daemon, que no es ms un proceso ejecutado en segundo plano que est pendiente de todo lo que sucede en el sistema y reacciona a ello. As, hay demonios para el servidor Web Apache o el planificador de tareas.

2 rbol de procesos y PIDTodo proceso ejecutado en un sistema Unix se identifica por un nmero nico, el Process Identifier o PID, que el sistema almacena en una tabla de procesos para la gestin de tareas. El nmero PID asignado a un proceso lo da el ncleo de Linux al iniciar el programa y no existe forma de predecirlo. Adems, un nmero de PID no se libera automticamente cuando el programa que ejecuta el proceso se cierra. De esta forma se evita el riesgo de enviar una seal a otro proceso cuando el proceso destinario termina de otra manera, entre el momento de uso del comando ps para identificar el PID y el momento de ejecucin del comando kill.Los programas utilizan dos comandos para crear procesos: fork y exec. La primera orden permite que un proceso cree un clon de s mismo, la segunda usa ese clon para ejecutar el cdigo de otro programa en su lugar. De ello resulta un parentesco entre procesos. As, se habla de procesos hijos y padres.Todo proceso tiene que tener obligatoriamente un padre, salvo el primer proceso del sistema: init. Este es pues el antecesor de todos los procesos del sistema y su PID es 1.

3 Comandos de visualizacin de procesos3.1 psFuncin:Permite ver la lista de procesos del sistema, presentando una imagen simplificada de las estructuras del ncleo que administran los procesos. Extrae toda la informacin del pseudo-sistema de archivos /proc en el que el ncleo coloca toda la informacin respecto al estado del sistema en curso de ejecucin. Es un comando con muchas opciones, que se pueden ver solicitando la ayuda del comando o en el manual. La informacin mostrada por este comando es:%CPU Porcentaje de tiempo de procesador utilizado desde el lanzamiento del comando.%MEM Porcentaja de uso de la memoria disponible.CMD Nombre del comando que origin el proceso.GID Identidad del grupo bajo el cual se ejecuta el proceso.NI Nivel de prioridad del proceso.PID Identificador del procesoPPID Identificador del proceso padreRSS Cantidad de memoria RAM utilizada, en KB.STIME Fecha de lanzamiento del proceso.STAT Estado del proceso, que est compuesto por tres caracteres: Primer carcter, que indica el estado del proceso: Running (en ejecucin), sTopped (para-do), Sleeping (en espera de procesador), Device (dormido en espera de recurso) y Zombie (terminado). Segundo carcter, que indica si el proceso se ha movido al espacio de paginacin: si apa-rece una W se ha movido. Tercer carcter, que indica la prioridad. Una N indica poca prioridad y un smbolo de menor que (