Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porElvira Castro del Río Modificado hace 7 años
1
Universidad Abierta Interamericana Ingeniería en Sistemas Informáticos
QNX - Administración de Procesos Grupo N°1
2
QNX - Administración de Procesos
Responsabilidades 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)
3
Un 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
4
QNX - Administrador de Procesos
Primitivas para crear procesos fork () crea una imagen exacta del proceso creador exec () reemplaza la imagen del proceso creador spawn() crea un proceso nuevo, hijo del proceso creado Item heredado fork() exec() spawn() ID proceso no si no Abrir archivos si opcional opcional UID, GID real si si si ID de sesión si si opcional Prioridad si si opcional Trabado archivos no si no
5
QNX - Administración de Procesos
Ciclo 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
6
QNX- 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.
7
QNX - Administración de Procesos
Estado 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
8
QNX - Administración de Procesos
Transacciones de los procesos 1- Proceso envía mensaje 2- Proceso 2 recibe mensaje 3- Proceso 2 responde mensaje 4- Proceso espera mensaje 5- Proceso recibe mensaje 6- Señal desbloquea proceso 7- Señal intenta desbloquear proceso 8- Proceso 2 recibe mensaje con señal 9- Proceso espera muerte de proceso hijo 10- Muere hijo, o señal desbloquea proceso 11- SIGSTOP seteado en proceso 12- SIGCONT seteado en proceso 13- Proceso muere 14- 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 WAIT blocked DEAD (zombie) RECEIVE REPLY SEND SIGNAL 2 1 3 4 5 6 7 8 9 10 11 12 14 13 15 16
9
QNX- 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 procesos Las 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
10
QNX - 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 segundos delay() para medir en milisengudos
11
QNX - 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()
12
QNX - Administración de Procesos
Manejo de Interrupciones Reacciona 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 posible interrupqnx_hint_attach () establece interrupción qnx_hint_detach() remueve la interrupción
13
Grupo N°1 Marcos Pryce-Jones Marcelo D’Urso Ana Montagna
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.