ADMINISTRACIÓN DE PROCESOS EN LINUX Ingeniería de sistemas 20 DE MAYO DE 2014 UNIVERSIDAD AUTONOMA DEL CARIBE Sistemas
Views 158 Downloads 6 File size 532KB
ADMINISTRACIÓN DE PROCESOS EN LINUX Ingeniería de sistemas
20 DE MAYO DE 2014 UNIVERSIDAD AUTONOMA DEL CARIBE Sistemas operativos II
ADMINISTRACIÓN DE PROCESOS EN LINUX
UNIVERSIDAD AUTÓNOMA DEL CARIBE FACULTAD DE INGENIERÍA
PROGRAMA DE INGENIERÍA DE SISTEMAS
TRABAJO ANÁLISIS ADMINISTRACIÓN DE PROCESOS EN LINUX
BARRANQUILLA – ATLÁNTICO 2014
Fundamentos y comandos
ADMINISTRACIÓN DE PROCESOS EN LINUX ÍNDICE 1 Introducción…………………………………………………………………………………………1 2 Árbol de procesos PID………………………………………………………………………….1 3 Comandos de procesos………………………………………………………1
y
visualización
de
3.1 ps………………………………………………………………………………………………...1 3.2 top………………………………………………………………………………………………..3 3.3 pstree……………………………………………………………………………………………3 3.4 kill………………………………………………………………………………………………...4 3.5 killall……………………………………………………………………………………………...5 3.6 jobs……………………………………………………………………………………………....5 4 Lanzar proceso………………………………………………………………………………..5
un
4.1 En plano…………………………………………………………………………………5
primer
4.2 En plano………………………………………………………………………………5
segundo
5 Formas de detener proceso………………………………………………………………….6
un
6 ESTADO ARTE……………………………………………………………………………..6
DEL
6.1 Estados y transiciones de un proceso……………………………………………………….6 6.2 Estructuras de datos del sistema para la gestión de procesos…………………………...6 6.3 Organización de la sistema…………………………………………………….6 6.4 Manipulación del contexto proceso……………………………………………………6 6.5 Manipulación ……………………6
del
espacio
de
direcciones
6.6 Llamadas al sistema procesos………………………………………….6
para
Fundamentos y comandos
de
un la
memoria
del
de
un
proceso.
Algoritmos.
gestión
de
ADMINISTRACIÓN DE PROCESOS EN LINUX 6.7 Terminación y espera por la terminación de procesos. EXIT y WAIT……………………6 6.8 Dormir (sleep) y despertar (wakeup) procesos……………………………………………..6 6.9 Llamadas a otros exec…………………………………..7
programas.
6.10 Variables de entorno archivos…………………………………..7
y
Familia
de
Parámetros
6.11 Sincronización de Linux……………………………………………………….7
funciones
relativos
a
procesos
en
6.12 Señales y funciones tiempo………………………………………………………………7 7 ESTADOS Y TRANSICIONES PROCESO……………………………………………7
de DE
UN
7.1 Modo kernel privilegiado)……………………………………………………………...8
(modo
7.2 usuario……………………………………………………………………………………8 7.3 Ciclo de Vida de Estados……………………………..8
un
Proceso
en
Linux.
Modo
Conjunto
7.4 Información planificación…………………………………………………………………..8
de de
7.5 Identificadores………………………………………………………………………………….8 7.6 Comunicación entre ……………………………………………………………….8
procesos.
7.7 Tiempos temporizadores…………………………………………………………………….8
y
7.8 Sistema archivos……………………………………………………………………………9
de
7.9 Memoria virtual…………………………………………………………………………………9 7.10 Contexto específico procesador………………………………………………………...9
del
LOS ESTADOS DE EJECUCIÓN DE UN PROCESO LINUX SON LOS SIGUIENTES: 7.1.1 En (TASK_RUNNING)…………………………………………………………..9 7.1.2 (TASK_RUNNING)…………………………………………………………………….9
Fundamentos y comandos
Ejecución Listo
ADMINISTRACIÓN DE PROCESOS EN LINUX 7.1.3 (TASK_INTERRUPTIBLE)………………………………………………….9
Interrumpible
7.1.4 No interrumpible (TASK_UNINTERRUPTIBLE)………………………………………….9 7.1.5 (TASK_STOPPED)…………………………………………………………………9
Parado
7.1.6 Zombie (TASK_ZOMBIE)…………………………………………………………………...9 7.1.7 Estructura de Datos Procesos………………………………..9
Para
8 ORGANIZACIÓN DE SISTEMA…………………………………………9
LA
la
Administración MEMORIA
de DEL
8.1 Asignación memoria………………………………………………………………………10
de
8.2 Regiones………………………………………………………………………………………10 8.3 Descripción Regiones…………………………………………………………………….11
de
8.4 Páginas y Tablas Páginas………………………………………………………………..11
de
8.5 Organización de Kernel…………………………………………………………11 8.6 Espacio de direcciones proceso…………………………………………..12
la
Memoria
virtuales
8.7 Colaboración del hardware operativo……………………………………….....12
de y
sistema
8.8 Tripletas de registros kernel……………………………………………………………..12 9 CONTEXTO DE UN TIPOS……………………………………………………12
del
PROCESO
9.1 Ejecución de proceso……………………………………………………………………..13 9.2 MANIPULACIÓN DEL PROCESO………………………………….13
CONTEXTO
9.3 Interrupciones y Tratamiento………………………………………………..13
un
Y un
DE
UN
Excepciones.
9.4 Interfaz de Llamadas al Sistema (Algoritmo sys_call)……………………………………14 9.5 Recuperación de llamada…………………………………………………………………15
Fundamentos y comandos
la
ADMINISTRACIÓN DE PROCESOS EN LINUX 9.6 Manipulación Del Espacio Proceso……………………………….15
de
9.7 Llamadas Al Sistema Procesos………………………………………..16
para
9.8 Acciones más Importantes fork…………………………………….16
del
Direcciones la Kernel
de Gestión
al
Llamar
Un de a
10 Conclusión……………………………………………………………………………………..17 11 Bibliografía……………………………………………………………………………………..18
Fundamentos y comandos
ADMINISTRACIÓN DE PROCESOS EN LINUX 1 Introducción Un proceso es un programa o un comando en curso de ejecución 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 más 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 PID Todo proceso ejecutado en un sistema Unix se identifica por un número único, el Process Identifier o PID, que el sistema almacena en una tabla de procesos para la gestión de tareas. El número PID asignado a un proceso lo da el núcleo de Linux al iniciar el programa y no existe forma de predecirlo. Además, un número de PID no se libera automáticamente cuando el programa que ejecuta el proceso se cierra. De esta forma se evita el riesgo de enviar una señal 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 ejecución 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 código 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 visualización de procesos 3.1 ps Función: Permite ver la lista de procesos del sistema, presentando una imagen simplificada de las estructuras del núcleo que administran los procesos. Extrae toda la información del pseudo-sistema de archivos /proc en el que el núcleo coloca toda la información respecto al estado del sistema en curso de ejecución. Es un comando con muchas opciones, que se pueden ver solicitando la ayuda del comando o en el manual. La información 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.
Fundamentos y comandos
ADMINISTRACIÓN DE PROCESOS EN LINUX 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 proceso PPID Identificador del proceso padre RSS Cantidad de memoria RAM utilizada, en KB. STIME Fecha de lanzamiento del proceso. STAT Estado del proceso, que está compuesto por tres caracteres:
Primer carácter, que indica el estado del proceso: Running (en ejecución), sTopped (para-do), Sleeping (en espera de procesador), Device (dormido en espera de recurso) y Zombie (terminado). Segundo carácter, que indica si el proceso se ha movido al espacio de paginación: si apa-rece una W se ha movido. Tercer carácter, que indica la prioridad. Una N indica poca prioridad y un símbolo de menor que (