Administración de Procesos

13
Universidad Abierta Universidad Abierta Interamericana Interamericana Ingeniería en Sistemas Ingeniería en Sistemas Informáticos Informáticos QNX - Administración de Procesos Grupo N°1 Grupo N°1

description

Administración de Procesos

Transcript of Administración de Procesos

Page 1: Administración de Procesos

Universidad Abierta InteramericanaUniversidad Abierta InteramericanaIngeniería en Sistemas InformáticosIngeniería en Sistemas Informáticos

QNX - Administración de Procesos

Grupo N°1Grupo N°1

Page 2: Administración de Procesos

Grupo N°1Grupo N°122

QNX - Administración de ProcesosQNX - Administración de ProcesosResponsabilidades del Administrador de Procesos (AP)

– El AP trabaja muy cerca del Microkernel para proveer los servicios esenciales del S.O.

– Comparten el mismo espacio de memoria – Utiliza las primitivas del Microkernel para comunicarse con los otros

procesos

– Es responsable de:– Crear nuevos procesos– Administrar los recursos fundamentales asociados al proceso

(via mensajes)

Page 3: Administración de Procesos

Grupo N°1Grupo N°133

Un verdadero MicrokernelUn verdadero Microkernel

El microkernel lleva a cabo cuatro servicios:

– comunicación entre procesos

– comunicación a bajo nivel de redes

– scheduling de procesos

– dispatching de interrupciones

Page 4: Administración de Procesos

Grupo N°1Grupo N°144

QNX - Administrador de ProcesosQNX - Administrador de Procesos

Primitivas para crear procesosfork () crea una imagen exacta del proceso creadorexec () reemplaza la imagen del proceso creadorspawn() crea un proceso nuevo, hijo del proceso creado

Item heredado fork() exec() spawn()ID proceso no si noAbrir archivos si opcional opcionalUID, GID real si si siID de sesión si si opcionalPrioridad si si opcionalTrabado archivos no si no

Page 5: Administración de Procesos

Grupo N°1Grupo N°155

QNX - Administración de ProcesosQNX - Administración de ProcesosCiclo de vida de un proceso Creación

– ubicar el ID del proceso– establecer la información que define el entorno del proceso

Carga– es realizada por el “loader thread”– el thread corre bajo el ID del nuevo proceso– el AP puede manejar otros requerimientos mientras realiza la carga

Ejecución– comienza a competir con otros procesos por el uso de los recursos

del CPU.– la muerte de un proceso padre no causa automáticamente la muerte

del proceso hijo

Page 6: Administración de Procesos

Grupo N°1Grupo N°166

QNX- Administración de ProcesosQNX- Administración de Procesos

Finalización– Puede ser de dos maneras:

– por una señal – por pedido explícito del programa (exit)

– Involucra dos etapas:

1) Un “termination thread” se corre en el administrador de procesos. Este corre con el mismo ID que el proceso a ser terminado y se encarga de la plena finalización del proceso.

2) Al haber finalizado el “terminiation thread” es enviada una notificación al proceso padre.

Page 7: Administración de Procesos

Grupo N°1Grupo N°177

QNX - Administración de ProcesosQNX - Administración de ProcesosEstado de los procesos

– READY está listo para usar el CPU– SEND.BLOCKED– RECEIVE.BLOCKED– REPLY.BLOCKED– SIGNAL.BLOCKED– SEMAPHORE.BLOCKED– HELD recibe una señal de Stop. No puede utilizar el CPU. Se libera por una

señal de Continuar o por otra señal de finalizacion– WAIT.BLOCKED esta a la espera del estado de uno o más procesos hijos– DEAD el proceso ha terminado pero no puede enviar su mensaje de exit a su

padre. La memoria que ocupa, es liberada

Page 8: Administración de Procesos

Grupo N°1Grupo N°188

QNX - Administración de ProcesosQNX - Administración de Procesos

Transacciones de los procesos1- Proceso envía mensaje2- Proceso 2 recibe mensaje3- Proceso 2 responde mensaje4- Proceso espera mensaje5- Proceso recibe mensaje6- Señal desbloquea proceso7- Señal intenta desbloquear proceso8- Proceso 2 recibe mensaje con señal9- Proceso espera muerte de proceso hijo10- Muere hijo, o señal desbloquea proceso11- SIGSTOP seteado en proceso12- SIGCONT seteado en proceso13- Proceso muere14- Proceso padre espera terminación, se Termina o espera terminación.15- Proceso llama semwait() en un semáforo no positivo.16- Otro proceso llama sempost() o una señal Desmascarada es enviada

HELD

READY

WAITblocked

DEAD(zombie)

RECEIVEblocked

REPLYblocked

SENDblocked

SIGNALblocked

2

1

3

45

6

78

9

10

11 12

WAITblocked

14

13

15

16

Page 9: Administración de Procesos

Grupo N°1Grupo N°199

QNX- Administración de ProcesosQNX- Administración de Procesos

Determinar el estado de los proceso– qnx_psinfo() el estado de un proceso– qnx_soinfo() el estado de un proceso del SO

Nombres simbólicos de los procesosLas aplicaciones pueden dividirse en procesos cooperadores. Estos procesos generan una comunicación confiable, ya que guardan el ID de los otros procesos.Los procesos adquieren un nombre simbólico que pueden registrar en el AP del nodo dónde se ejecutan.QNX soporta nombres locales y nombres globales ( a través de toda la red)– qnx_name_attach () asigna un nombre– qnx_name_locate () localiza un proceso por su nombre

Page 10: Administración de Procesos

Grupo N°1Grupo N°11010

QNX - Administración de ProcesosQNX - Administración de Procesos

Timing Administración del Timing

– El sistema es mantenido por el SO. – Está basado en la UTC (Universal Time Coodrinated)0 hs 0 min 0 seg - Enero 1 de 1970

Facilidades del Timing– Los procesos pueden hacer pausas por segundos o milisengundos.– También pueden crear sus propios Timers.

sleep() para medir en segundosdelay() para medir en milisengudos

Page 11: Administración de Procesos

Grupo N°1Grupo N°11111

QNX - Administración de ProcesosQNX - Administración de Procesos

Timing Crear relojes

– Pueden ser uno o más, dependiendo de la configuración del SO.timer_create()

Armar relojes– Intervalos absolutos (reemplazan): basados en la UTC– Intervalos relativos (agregan): basados en el valor acutal del reloj

intervaltimer_settime() Resolution de 500 microseg a 50 miliseng

qnx_ticksize() Reading verifica el estado del reloj

timer_gettime()

Page 12: Administración de Procesos

Grupo N°1Grupo N°11212

QNX - Administración de ProcesosQNX - Administración de Procesos

Manejo de InterrupcionesReacciona a las interrupciones de hardware y maneja el nivel más bajo de transferencia de datos entre la computadora y los dispositivos externos

Características:–entra por una llamada externa (en lenguaje C)–se ejecuta en el contexto en que está embebido el proceso–tiene habilitada la opción de interrupción–no habla directamente con la interrupción 8259 del hard–debe ser lo más corto posibleinterrupqnx_hint_attach () establece interrupciónqnx_hint_detach() remueve la interrupción

Page 13: Administración de Procesos

Grupo N°1Grupo N°11313

Grupo N°1Grupo N°1

Marcos Pryce-JonesMarcos Pryce-JonesMarcelo D’UrsoMarcelo D’UrsoAna MontagnaAna Montagna