Administracion de Procesos en Linux

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 (