Procesos en Linux.

Procesos en Linux. Todo programa en ejecución es un proceso. Cada proceso se identifica con un PID (Process IDentification). Concurrencia es el avance simultáneo de procesos de múltiples usuarios. #ps --> Permite ver una instantánea de los procesos del sistema. #top --> Permite observar los procesos con cierta periodicidad. “init” es es último proceso ancestro (padre de los padres), cuyo PID es 1. PPID --> Número de proceso padre. #pstree --> Permite ver la jerarquía de los procesos del sistema. Estructura de un proceso en Linux. Un proceso en Linux está estructurado en dos zonas de memoria: 1) Zona del usuario --> 3 primeros gigabytes de las direcciones lógicas. 2) Zona del núcleo --> 4to. gigabyte. La zona del núcleo de Linux está mapeada en todos los procesos del sistema. Los dos modos del procesador que utiliza Linux son: 1) El código de la zona núcleo se ejecuta como modo supervisor. 2) El código en la zona usuario en modo usuario. En todo sistema operativo un proceso se representa por una estructura de datos donde se almacena toda la información importante --> tabla de procesos.[1] Proceso es un programa en ejecución en un sistema informático. Procesos y Threads (hilos de ejecución). Para ejecutar varias cosas a la vez, hay dos opciones: 1) Se puede crear un nuevo proceso. 2) Se puede crear un nuevo hilo de ejecución. Un proceso en Unix (y por tanto en Linux) es totalmente independiente de otros procesos. Dentro de un proceso pueden haber varios hilos de ejecución, que comparten la misma zona de memoria. Por ejemplo: Si un hilo toca una variable, todos los demás hilos de la misma zona de memoria se verán afectados por este cambio. Un proceso es más costoso de lanzar, ya que se necesita crear una copia de toda la memoria de nuestro programa. Los hilos son más ligeros. Los hilos son más complejos de programar que los procesos, puesto que comparten memoria y recursos entre los hilos de la misma zona de memoria. Se recomienda usar procesos, cuando una vez lanzado el hijo, no se requiere comunicación con él. Se recomienda en cambio usar hilos, cuando se comparten y actualizan los datos.[2] Definición de proceso. Los componentes de un proceso son: 1) Código 2) Datos 3) Pila, etc. Ejemplo: - Un compilador C no es un proceso. - Un compilador C ejecutándose será un proceso para el sistema operativo. Los procesos se crean mediante llamadas al sistema. ¿Por qué múltiples procesos? 1) Se aprovechan mejor los recursos físicos. 2) El rendimiento aumenta. El bloque de control de procesos almacena: 1) Estado actual del proceso. 2) Identificación unívoca del proceso. 3) Prioridad del proceso. 4) Puntero a la zona de memoria asignada. 5) Puntero a los archivos abiertos. 6) Punteros a los recursos asociados. 7) Area de salvaguarda de registros. 8) Un puntero al siguiente PCB (Process Control Block ó Bloque de Control de Procesos). En Linux el PCB se conoce como task_struct.[3] [1] http://futura.disca.upv.es/~eso/es/t3-procesos-en-linux/gen-t3-procesos-en-linux.html [2] http://www.geocities.com/chuidiang/procesos/procesoshilos.html [3] http://209.85.165.104/search?q=cache:T0e1zqRIoDIJ:atc1.aut.uah.es/~arqui/Trps/Concepto_de_proceso.ppt+procesos+Linux+concepto&hl=es&gl=bo&ct=clnk&cd=1

Comentarios

Entradas populares