Sunteți pe pagina 1din 59

POSIX, HILOS y Procesos

Programa: Conjunto de instrucciones que una computadora puede interpretar o ejecutar.

Normalmente, los programas son escritos usando un lenguaje de alto nivel y guardados en un archivo de texto para ser posteriormente interpretados o compilados, de modo que se obtiene un cdigo de nivel intermedio (por ejemplo, bytecodes de java) o un cdigo mquina (ejecutables). Un programa compilado y guardado en un archivo ejecutable puede ser ejecutado en el entorno del Sistema Operativo para el que ha sido diseado. El mapa de memoria de un programa en ejecucin depender del Sistema Operativo para el que se ha compilado. El mapa de memoria conceptual de un programa depende del compilador y del tipo de compilacin con el que se trabaja. El mapa conceptual de un programa en C es el siguiente:
Pila Montn
Variables globales Cdigo del programa

Mantiene las direcciones de vuelta para las llamadas a funciones. Mantiene las variables locales.

Regin de memoria libre que puede usar el programa mediante las funciones de asignacin dinmica.

1. Concepto de proceso

Concepto de proceso (I)

Proceso: Programa en ejecucin. Unidad de procesamiento gestionada por el SO El SO mantiene para cada proceso una serie de estructuras de informacin que permiten identificar sus caractersticas y los recursos asignados. Una parte bsica de esta informacin se encuentra en el BCP (bloque de control de proceso). El SO mantiene una tabla con los BCPs de todos los procesos Informacin asociada a cada proceso: Contenido de los segmentos de memoria donde residen el cdigo y los datos (core image o imagen de memoria) Contenido de los registros del modelo de programacin (PC, estado, etc.) Contenido del BCP

Concepto de proceso (II)

Ya que los procesos encargados de arrancar el SO son los primeros en ejecutar, se va creando una jerarqua de procesos como la indicada a continuacin
Proc. Inic.

Inicio Shell

Inicio

Inicio Shell Proceso A

Inicio

Dem. Impr.

Dem. Com..

Editor Proceso B Proceso E Proceso F

Proceso D

Proceso C

Concepto de proceso (III)


Para referirse a las relaciones entre procesos se emplean los trminos padre, hijo, hermano, etc. Cuando un proceso A solicita al SO la creacin de un nuevo proceso (B), se dice que A es padre de B y que B es hijo de A. UNIX mantiene explcitamente una estructura jerrquica de procesos.
El entorno del proceso consiste en un conjunto de variables que se le pasan al nuevo proceso en el momento de su creacin. Est formado por una tabla de pares NOMBRE-VALOR (nombre de variable, valor de variable). Algunos ejemplos de variables de entorno son: (USAR EL COMANDO env) PATH=/usr/local/bin:/usr/bin TERM=xterm HOME=/home/fc2 PWD=/home/fc2/documentos

Concepto de proceso (IV)

Los procesos forman grupos, con diferentes propiedades. El conjunto de procesos creados a partir de un shell puede forman un grupo. Tambin puede ser un grupo el conjunto de procesos asociados a un usuario o a un terminal. Algunos servicios del SO pueden operar selectivamente sobre todos los procesos de un grupo.

Proceso
El sistema operativo consiste en un conjunto de programas que permiten la manipulacin de los recursos hardware del sistema, as como su gestin. Cuando un programa se ejecuta, el intrprete de comandos resuelve el nombre del programa, dicho nombre corresponde normalmente a un archivo ejecutable cuya informacin est contenida en un dispositivo de almacenamiento secundario. Dicha informacin es volcada a la memoria, las direcciones relativas son resueltas y se convierten en direcciones absolutas, los registros almacenan los valores de las direcciones de los diferentes segmentos del programa: pila, datos, cdigo, contador de programa, etc. El sistema operativo sigue ejecutndose junto con el programa: sistemas monotarea y sistemas multitarea.

Sistema operativo

CP Intrprete de comandos Programa Control retorna cuando programa finaliza

Programa

Interpretacin del comando

Multitarea (I) 2.1. Introduccin


Dependiendo del nmero de procesos y usuarios que pueden ejecutar simultneamente, un SO puede ser: Monotarea (monoproceso): slo un proceso en cada instante Multitarea (multiproceso) Monousuario N procesos Multiusuario (tiempo compartido)
1 1 N usuarios ms de 1 Monoproceso Monousuario ms de 1 Multiproceso Monousuario Multiproceso Multiusuario

Multitarea (II) 2.2. Base de la multitarea


La multitarea se basa en las siguientes caractersticas: a) Paralelismo real entre operaciones de E/S y uso del procesador: cuando un proceso realiza una operacin de E/S se pasa a ejecutar otro b) Alternancia en los procesos en fases de E/S y procesamiento: aprovechar las fases de realizacin de operaciones de E/S de unos procesos para ejecutar otros c) Memoria principal capaz de almacenar varios procesos
Procesamiento Entrada/salida Tiempo

Multitarea (III)

Proceso A

Proceso B

Procesamiento Entrada/salida Listo

Proceso C Procesador

SO

Tiempo Proceso Nulo

Estado de los procesos (I) 4.1. Introduccin


No todos los procesos activos de un sistema multitarea estn en la misma situacin. Se distinguen tres estados bsicos: a) Ejecucin. En este estado slo est el proceso que est siendo ejecutado. El estado del proceso reside en los registros del procesador b) Bloqueado. A la espera de que ocurra un evento. Situacin tpica: un proceso solicita una operacin de E/S. Hasta que no finalice la operacin el proceso queda bloqueado. El estado del proceso reside en su BCP c) Listo. Puede entrar en ejecucin en cuanto lo considere oportuno el planificador (mdulo del SO que decide qu proceso pasar a ejecutarse). El estado del proceso reside en su BCP

Estado de los procesos (II)


Adems de los estados bsicos tambin pueden estar:

a) Suspendido. Para disminuir el grado de multiprogramacin efectivo el SO puede retirar a un proceso sus marcos de pgina, alojndolo en la zona de intercambio (usualmente disco). El objetivo de esta operacin es dejar suficiente memoria para los procesos no suspendidos, de forma que el conjunto residente no provoque hiperpaginacin a) En espera. Los procesos entran en el sistema porque lo solicita otro proceso o al estar prevista su ejecucin batch. Es usual disponer de una lista de procesos batch en espera, para ser ejecutados en cuanto se pueda. El SO analiza dicha lista y lanza la ejecucin de los procesos a medida que dispone de los recursos necesarios.

Estado de los procesos (III)


Ejecucin
an Pl a ific do
do mi u s on c o

Exit
Es pe r ap

or

E/ S

mp Tie

Listo
Recuperado del disco

Fin E/S

Bloqueado

Expulsado al disco

Entra al sistema

Expulsado al disco

Procesos por lotes en espera

Listo y suspendido

Fin E/S

Bloqueado y suspendido

Zona de intercambio

Memoria

Multitarea (IV)
Estado de los procesos. Un proceso puede encontrarse en diferentes situaciones, que cambian a medida que se modifican sus necesidades. Los estados bsicos en que pueden encontrarse un proceso son: listo, ejecucin y bloqueado
Termina

Ejecucin

Nuevo

Listo

Final E/S

Bloqueado

Procesos
Los procesos son los programas en tiempo de ejecucion Son jerarquicos todos son hijos menos init init es el padre de todos los procesos El shell hace un fork por cada proceso que es invocado Si muere el padre muere el hijo Se pueden controlar los procesos de manera absoluta

Estado de los procesos (IV) 4.2. Cambio de contexto


El cambio de contexto implica: a) Salvar el estado del procesador en el BCP
Registros especiales

Tabla de procesos
BCP Proceso A Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso B Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso N Estado (registros) Informacin de identificacin Informacin de Control

Registros generales

PC SP Estado

Estado de los procesos (V)


b) Ejecucin de la rutina de tratamiento de interrupcin del SO (slo cuando se produce una interrupcin)

Como consecuencia del cambio de contexto puede producirse un cambio en el estado de algunos procesos, aunque no necesariamente.
Ejemplo: Proceso A bloqueado esperando el final de una operacin de disco y llegue una interrupcin (seal de final). Si la interrupcin indica el final de la operacin esperada, el SO cambia el estado del proceso a listo o ejecucin. Es decir, hay cambio de estado.

Ejemplo: Proceso A en ejecucin y se produce una interrupcin de teclado, asociada al proceso B. Se produce el cambio de contexto, pero B sigue bloqueado y A sigue en estado de ejecucin.

Multitarea (V)

Planificador (scheduler). Forma parte del ncleo del SO. Entra en ejecucin cada vez que se activa el SO y tiene por misin seleccionar el proceso que se ejecutar a continuacin. Activador (dispatcher). Tambin forma parte del SO y se encarga de poner en ejecucin el proceso seleccionado por el planificador.

Multitarea (VI) 2.3. Ventajas de la multitarea


Las ms importantes son: a) Facilita la programacin. Las aplicaciones pueden organizarse en varios procesos, beneficiando as la modularidad. b) Prestar buen servicio, al poder atender a varios usuarios de forma eficiente, interactiva y simultnea. c) Aprovechar los tiempos muertos que los procesos pasan esperando la conclusin de operaciones de E/S. d) Aumentar el uso de la CPU, al aprovechar los tiempos de bloqueo de unos procesos en la ejecucin de otros.

Multitarea (VII) 2.4. Grado de multiprogramacin y necesidades de MP


Grado de multiprogramacin: nmero de procesos activos mantenidos por el SO. A ms procesos activos, mayor probabilidad de encontrar en cada instante uno en situacin de ser ejecutado. A ms procesos activos mayores necesidades de memoria.
En un sistema sin memoria virtual los procesos activos han de residir plenamente en MP. En este caso, el grado de multiprogramacin est severamente limitado por el tamao de los procesos y por la memoria disponible. En este caso, a ms procesos mayor grado de uso de la CPU (procesos siempre en MP).

Multitarea (VIII)

Proceso A Proceso B Proceso C SO Memoria principal Cada proceso reside totalmente en M.p

Utili zaci n del pr ocesador

100%

0%

Grado de multiprogramacin

Multitarea (IX)
En sistemas con memoria virtual la situacin es ms compleja. Los procesos slo tienen en MP su conjunto residente (pginas que estn en MP), por lo que podramos tener ms procesos cargados en MP. Si se aumenta demasiado el nmero de procesos, el conjunto residente de cada uno se hace muy pequeo. Al disminuir el conjunto residente ya no representa adecuadamente al futuro conjunto de trabajo (pginas en uso), por lo que se producirn muchos fallos de pgina. Los fallos de pgina consumen mucho tiempo del procesador, ya que el SO ha de tratar el fallo, y tiempo de E/S, ya que es necesaria una migracin de pginas. Al crecer el nmero de fallos de pgina el sistema dedica ms tiempo a resolver los fallos de pgina que a realizar las tareas de los programas (hiperpaginacin).

Multitarea (X)
Marcos de pgina por proceso

Al aumentar el nivel de multiprogramacin a cada proceso le tocan menos marcos de pgina

Nivel de Multiprogramacin

100 %
% Utilizacin de UCP

100 %
% Utilizacin de UCP

Limitado por el dispositivo de paginacin

Limitado por el dispositivo de paginacin

Nivel de Multiprogramacin MEMORIA PEQUEA

Nivel de Multiprogramacin MEMORIA GRANDE

Sistemas multitarea
Se pueden ejecutar varias tareas simultneamente (varios procesos). Versiones de Windows a partir del 95, Unix, Minix, Linux, etc. Es necesaria la planificacin de procesos. Posibilidad de crear entornos de programacin concurrente en el espacio de usuario. Por ejemplo, planificacin en mquina virtual de JAVA.
Espacio de usuario

Kernel S.O.
Hardware

Espacio de usuario Kernel S.O. Hardware Microkernel (Organizacin por capas): MINIX Monoltico : LINUX Espacio de usuario Kernel S.O. Hardware

Sistemas multitarea
Si existen varios procesadores, y el S.O. es capaz de distribuir la carga computacional entre los mismos, hablamos de un sistema operativo multiprocesamiento. Dos tipos de sistemas multitarea: Memoria compartida Memoria distribuida

Sistemas multitarea de memoria compartida


La memoria es un recurso compartido por todos los procesos HILOS en java o en POSIX. Los procesos en memoria compartida son instancias de un programa que realizan tareas sobre datos comunes.

Memoria compartida
Pr1P1 Pr2P1 Pr2P2 Pr3P3

Planificador

S.O.

Programa 1

Programa 2

Sistema operativo LINUX


Creacin de procesos pesados: fork(). Posibilidad de crear procesos ligeros (threads) usando libreras adecuadas: POSIX Threads. Los procesos creados con fork() tienen un espacio de direccionamiento propio. Slo comparten el cdigo. Los hilos creados con Pthreads comparten una parte del espacio de direccionamiento adems del cdigo, teniendo un contador de programa especfico as como el espacio de pila, donde se almacenan llamadas y variables locales entre otras cosas.

Memoria compartida
H1

H2

H3

H4

H5 H6

H7

Planificacin posible en espacio de usuario

Pr1P1

Pr2P1

Pr2P2

Pr3P3

Planificador

S.O.

Programa 1

Programa 2

Informacin de los procesos (I)

3.1. Estado del procesador


El estado del procesador queda definido por el contenido de sus registros: registros generales, contador del programa, puntero de pila, registros de estado, registros especiales (RIED) Cuando un proceso se ejecuta el estado del procesador responde a su ejecucin, y se almacena directamente en los registros del procesador. Cuando el proceso deja de ejecutarse esta informacin pasa a almacenarse en el bloque de control de proceso (BCP). La rutina del SO que trata las interrupciones, en primer lugar, salva el estado del procesador en el BCP del proceso interrumpido.

Informacin de los procesos (II)

3.2. Imagen de memoria de un proceso


La imagen de memoria de un proceso est constituida por los espacios de memoria que est autorizado a usar (los que el SO le ha asignado). Algunas cuestiones a tener en cuenta son:
a) El proceso slo puede tener informacin en su imagen de memoria. Si intenta un acceso a una posicin de memoria fuera de ella, el hardware de proteccin lo detectar y generar la excepcin correspondiente. Esta excepcin activa la ejecucin del SO, quien tomar la opcin oportuna (generalmente abortar el proceso) b) Dependiendo del ordenador, la imagen de memoria se refiere a memoria virtual o memoria fsica. Esto es transparente al proceso

Informacin de los procesos (III)


c) Los procesos suelen necesitar asignacin dinmica de espacio. Por tanto, la imagen debe adaptarse a sus necesidades, creciendo o decreciendo El SO es el responsable de asignar memoria a los procesos. Para ello emplea diferentes mtodos:

a) Un nico segmento de tamao fijo. Suele restringirse su uso a sistemas sin memoria virtual. Este espacio no puede variar de tamao. Como consecuencia, un proceso podra ejecutar su memoria durante la etapa de ejecucin b) Un nico segmento de tamao variable. Solucin no empleada c) Nmero variable de segmentos con tamao variable. Puede haber tantos segmentos como necesite el proceso. Es la solucin ms flexible y la adoptada normalmente por los SSOO modernos.

Informacin de los procesos (IV) Cdigo o texto. Programa mquina que ha de ejecutar el proceso. Informacin fija, sobre la que slo se realizan operaciones de lectura Datos. Al permitir asignacin dinmica de memoria podra variar su tamao Pila. A travs del puntero de pila los programas usan una estructura de pila residente en MP. En ella se almacenan, por ejemplo, los bloques de activacin de los procedimientos llamados. Se trata de una estructura dinmica: crece y decrece segn avanza la ejecucin del proceso.

Informacin de los procesos (V)


N fijo de segmentos de tamao variable N variable de segmentos de tamao variable

PILA PROCESO DATOS TEXTO


N variable de segmentos de tamao variable Memoria virtual Cdigo RIED

PROCESO

Memoria principal

Datos

Tamao Tabla de pginas Una tabla de pginas por proceso

Disco

Pila

Informacin de los procesos (VI) 3.3. Informacin del BCP


El BCP contiene la informacin bsica de los procesos, entre la que destaca:

a) Informacin de identificacin (usuario, grupo, proceso, proceso padre) b) Estado del procesador: valores iniciales del procesador o valores correspondientes al momento en que el proceso dej de ejecutar c) Informacin de control del proceso: Informacin de planificacin y estado: estado del proceso, evento que espera (si est bloqueado), prioridad, etc Descripcin de los segmentos de memoria asignados al proceso Recursos asignados: archivos abiertos, puertos de comunicacin, etc

Informacin de los procesos (VIII) 3.4. Tablas del SO


El SO mantiene una serie de tablas que describen a los procesos y a los recursos del sistema.
Registros especiales

Mapa de memoria del Proceso A


Mapa de memoria del Proceso B

Registros generales

Mapa de memoria del Proceso C Tablas SO Mapa de

Tablas del sistema operativo


-Tabla de procesos BCP Proceso A BCP Proceso B BCP Proceso C - Estado (registros) - Estado (registros) - Estado (registros) - Identificacin - Identificacin - Identificacin - Control - Control - Control - Tabla de memoria - Tabla de E/S - Tabla de ficheros

PC SP Estado

Memoria

Informacin de los procesos (IX) Toda la informacin referente a los diferentes procesos se almacenan en tablas (procesos, memoria, E/S y ficheros) La informacin asociada a cada proceso se encuentra parcialmente dentro y fuera del BCP dependiendo de: Eficiencia: acelerar los accesos. Comparticin de informacin: si una informacin ha de ser compartida por varios procesos no debe incluirse en el BCP, ya que es de acceso restringido al proceso dueo.

Informacin de los procesos (X)


a) Tabla de procesos: La tabla de procesos est formada por una lista de estructuras de BCP. b) La tabla de E/S incluye informacin relativa a los perifricos y operaciones de E/S. Los SSOO suelen mantener una cola para cada dispositivo, donde se almacenan las operaciones pendientes de ejecucin, as como la operacin actualmente en curso. c) Tabla de memoria: Estructura de rbol donde se almacenan las tablas de memoria de cada uno de los procesos d) Tabla de ficheros: Matriz donde se almacenan los punteros a los ficheros abiertos por cada uno de los procesos.

Informacin de los procesos (XI)


La formacin de un proceso es el proceso por el que se completan todas las informaciones que lo describen. El SO realiza: a) Asignacin de espacio de memoria ( normalmente espacio virtual en varios segmentos). b) Seleccionar BCP libre en la tabla de procesos c) Rellenar BCP con informacin de identificacin del proceso, descripcin de memoria asignada, valores de los registros, etc d) Carga del segmento de texto, con el cdigo. e) Carga del segmento de datos inciales del fichero objeto. e) Inicializacin de la pila en el segmento de pila. Inicialmente incluye el entorno del proceso y los parmetros pasados en la invocacin del programa correspondiente. Una vez hecho esto, el proceso puede marcarse como listo, de forma que el planificador, cuando lo considere oportuno, pase a ejecutarlo.

Procesos ligeros (I) 5.1. Introduccin


Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Proceso

Procesos ligeros

HILOS (Thread) - Definicin


Unidad de Traza de Ejecucin que comparte con otras un conjunto de Recursos.

DOS
Un Proceso, Un Hilo Un Proceso, Mltiples Hilos

UNIX
Mltiples Procesos, un Hilo por Proceso Traza de Ejecucin Mltiples Procesos Mltiples Hilos

Windows Linux Solaris Mac OS OS/2

38

Ejemplos de Aplicaciones Multihilo


Web browser Un Hilo decodifica la pgina y la presenta en Pantalla. Un Hilo toma los datos de la pgina de Internet. Procesador de Texto. Un Hilo despliega en Pantalla la interfaz. Un Hilo toma los datos del Teclado. Un Hilo revisa la ortografa. Servidor Web Un Hilo acepta peticiones de los clientes. Para cada peticin recibida se crea un Hilo que la atiende. Usa muchos Hilos para atender en paralelo a muchos clientes.
39

Procesos ligeros (II)


Los procesos ligeros permiten realizar funciones cuya ejecucin puede lanzarse en paralelo. Cada proceso ligero contiene informacin propia que no comparte con otros procesos ligeros. Las informaciones propias se refieren esencialmente al contexto de ejecucin: contador del programa, pila, registros y estado del proceso ligero (ejecutando, listo, bloqueado).

Todos los procesos ligeros de un mismo padre comparten el espacio de direcciones de memoria: cdigo, datos, pilas, etc. Por tanto, no existe un mecanismo de proteccin de memoria entre procesos ligeros.

Procesos hijos e Hilos


P1 crea P2 BCP P1 BCP P2 BCP H1.P1 BCP H2.P1 H1 crea H2

Imagen P1

Imagen P1

Imagen P2
P2 es Hijo de P1

H1 y H2 son Hilos de P1 Y comparten los recursos. H2 es Hijo de H1

41

Ejecucin tpica de un Proceso


Espacio de Direcciones del Proceso Traza de ejecucin
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033

Recursos
I/O asignados Archivos Puertos Lmites de Memoria

Control- BCP
PID (identificador) Estado Program Counter

PC

Pila Datos

(v. locales)

Heap

(v. globales)

Constantes

Cdigo De Programa

42

Ejecucin de Hilos en un Proceso


Espacio de Direcciones virtuales del Proceso P Trazas de ejecucin
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033

Recursos de P
BCP de P y BCH0

H1 y H2 son Hilos creados por el Proceso P. El Proceso P define el espacio de direcciones. El Proceso P es dueo de los recursos que pueden usar y compartir H1 y H2. Los Hilos H1 y H2 comparten el espacio de direcciones.

BCH de H1 BCH de H2 Pila de H1


Memoria de Datos de P
(v. locales)

SP
1

PC
0

SP
2

Pila H2

(v. locales)

PC
1

SP
0

BCP: Bloque de Control del Proceso. Contiene el identificador del Proceso (PID), el estado de P, PC, SP, lista de Hilos activos, etc. BCH1: Bloque de Control del Hilo 1. Contiene el estado de H1, PC1, SP1, etc. El Hilo H0 es el Hilo por defecto de P, creado para la funcin main() del Programa.

Pila H0

(v. locales)

PC
2

Heap (v. globales) Constantes Cdigo de Programa de P

43

Diferencia Hilo/Proceso
Permiten paralelismo dentro de un Proceso Aplicacin. Comunicacin privada entre varios Hilos del mismo proceso, sin solicitar intervencin del S.O. Mayor eficiencia en el cambio de un Hilo a otro, que de un Proceso a otro. Mayor eficiencia en la creacin de un Hilo que en la creacin de un Proceso Hijo. Un Proceso Multihilo puede recuperarse de la muerte de un Hilo, pues conoce los efectos de esta, y toma su espacio de memoria. Cuando un Proceso muere todos sus Hilos tambin, pues los recursos de Proceso son tomados por el Sistema Operativo.

44

Procesos ligeros (III) 5.2. Estado de los procesos ligeros


Un proceso ligero puede estar ejecutando, listo o bloqueado.

Proceso

Bloqueado por comunicacin Bloqueado por acceso a disco Activo

Procesos ligeros

Dinmica de estados de Procesos/Hilos


El estado del Proceso P es la combinacin de los estados de sus Hilos. Cuando cualquiera de los Hilos est en estado Ejecutando, el estado de P ser Ejecutando. Si ningn Hilo est en Ejecutando, si alguno est en Listo, el estado de P ser Listo. El estado de P es Bloqueado slo si todos sus Hilos estn en estado Bloqueado.
Estado Ejecutando Estado Listo Estado Bloqueado

H1

H2

Proceso P

46

Procesos ligeros (V) 5.3. Paralelismo


Los procesos ligeros permiten paralelizar una aplicacin.
Procedimiento 1 P Espera en E/S Procedimiento 2 F P Espera en E/S F Ejecucin

serie

Procedimiento 1 P Espera en E/S F

Procedimiento 2 P Espera en E/S F

Ejecucin paralela
Procesamiento

Procesos ligeros (VI)


Cuando un programa puede dividirse en procedimientos que se pueden ejecutar de forma independiente, el mecanismo de los procesos ligeros permite el lanzamiento simultneo de todos ellos. De esta forma, se aprovecha al mximo el uso del procesador. El uso de procesos ligeros permite: a) Separacin de tareas. Cada tarea se puede encapsular en un proceso ligero independiente b) Facilitar la modularidad, al dividir tareas complejas en subtareas c) Aumentar la velocidad de ejecucin del trabajo, al aprovechar los tiempos de bloqueo de unos procesos en la ejecucin de otros El paralelismo, unido a la comparticin de memoria, permite la programacin concurrente.

Procesos ligeros (VIII)


Los principios bsicos a aplicar son: a) Hay variables globales compartidas entre varios procesos ligeros. b) Para ordenar el acceso a los datos se emplean tcnicas de sincronizacin, para impedir que un proceso ligero pueda acceder a los datos mientras otro lo est usando Aplicacin tpica de los procesos ligeros: diseo de procesos servidores paralelos. Varias posibilidades: a) Proceso ligero distribuidor y trabajadores b) Procesos ligeros iguales c) Procesos ligeros por fases

Procesos ligeros (IX)


a) Proceso ligero distribuidor cuya funcin es recibir rdenes y pasarlas a otros procesos ligeros (trabajadores). El esquema puede contemplar un proceso trabajador por cada solicitud de servicio (morir al finalizar su trabajo), o bien procesos ligeros que reciben peticiones, las realizan y quedan a la espera. Ms eficiente.
Distribuidor Trabajador

Ncleo Puerto

S o lic it u d e s

Procesos ligeros (X)


b) Disponer de un conjunto de procesos ligeros iguales: todos ellos pueden recibir rdenes. Al llegar una peticin se encamina a un proceso ligero, que la trata y completa la tarea, y se dispone a esperar nuevas peticiones

Trabajador

Ncleo Puerto

S o l ic it u d e s

Procesos ligeros (XI)


c) Cada trabajo se divide en una serie de fases, encargndose de cada una de ellas un proceso ligero especializado. El esquema permite tratar tantas solicitudes como fases tenga la cadena. Segmentacin (pipe-line)

Trabajador

Ncleo Puerto

S o lic it u d e s

PROCESOS EN LINUX Cada proceso en el momento de su creacin se le asocia un nmero nico que lo identifica del resto. Adems a un proceso estn asociadas otras informaciones tales como: El usuario que lo ejecuta. La hora en que comenz. La lnea de comandos asociada. Un estado. Ejemplos: sleep, running, zombie, stopped, etc. Una prioridad que indica la facilidad del proceso para acceder a la CPU. Oscila entre -20 y 19, donde -20 es la mayor prioridad. La terminal donde fue invocado, para el caso de que este asociado a alguna terminal.

Para ver los procesos y sus caractersticas se emplea el comando ps. Una salida tpica de este comando es:
PID TTY 1035 pts/0 1831 pts/0 TIME CMD 00:00:14 bash 00:00:00 ps

Como puede apreciarse para cada proceso se muestra su ID, la terminal donde se invoc, el tiempo de CPU que se le ha asignado hasta el momento y el comando que lo desencaden.

COMANDO PS x : muestra todos los procesos del usuario actual sin distincin de terminal. Adems muestra procesos en BG. a : muestra todos los procesos de todos los usuarios. f : muestra las relaciones jerrquicas entre los procesos. e : muestra el entorno de cada proceso. l : utiliza un formato ms largo (muestra ms informacin). u : utiliza un formato orientado a usuario.

ESTADO DE LOS PROCESOS EN LINUX


D R uninterruptible sleep (usualmente I/O) Corriendo (on run queue)

S
T W

sleeping ( sea que se encuentra dormido )


traced or stopped ( representa un proceso detenido ) Paging (Pginando)

X
Z

dead ( representa un proceso muerto )


zombie (representa un proceso zombie). Este representa aquellos, cuyos procesos padres han muerto dejando el proceso hijo atrs. Cuando esto ocurre no es una buena seal.

TIPOS DE PROCESOS EN LINUX


Procesos de sistema, o bien procesos asociados al funcionamiento local de la mquina y del kernel, o bien procesos (denominados daemons) asociados al control de diferentes servicios, ya sean locales, o de red, porque se ofrece el servicio (actuamos de servidor) o se recibe el servicio (actuamos de clientes). Generalmente asociados con ROOT Procesos del usuario administrador: en caso de actuar como root, los procesos interactivos o aplicaciones lanzadas tambin aparecern como procesos asociados al usuario root.

Procesos de usuarios del sistema: asociados a la ejecucin de sus aplicaciones, ya sea tareas interactivas en modo texto o en modo grfico.

EJERCICIO Analice la Salida de los siguientes comandos, identifique cual es el funcionamiento de cada columna y cual es la diferencias entre cada comando ps aux |more ps fea |more ps -el |grep R pstree -p top

S-ar putea să vă placă și