3.1 Procesos

1. Definición de proceso.
Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados. La unidad mínima de expedición y de asignación de recursos es el proceso.
2. Estados en los que puede estar un proceso.
• Listo. Tiene todo lo necesario para ejecutarse excepto el procesador.
• Suspendido. No está en memoria principal.
• Bloqueado. Está esperando un evento.
• Bloqueado y suspendido.
• Listo y suspendido.
¿Qué es un proceso?
• Instancia de un programa en ejecución, requiriendo para ello unos Recursos.
• Cuando un proceso se ejecuta pasa por distintos estados.
Posibles estados de un proceso:
1. Nuevo: El proceso acaba de crearse.
2. En ejecución: La CPU está ejecutando instrucciones del proceso.
3. Listo o preparado: El proceso espera a ser asignado a la CPU.
4. Bloqueado: El proceso espera a que ocurra un evento.
5. Finalizado: El proceso ha finalizado su ejecución.
¿Qué es el descriptor de un proceso?
Información asociada al proceso: Estado del proceso.
Información de identificación: Identificador del proceso, información del usuario.
Registros de CPU: Contador de programa, puntero de pila, registro de datos.
Información sobre planificación: Algoritmo de planificación, prioridad del proceso.
Direcciones de memoria: Dirección de inicio y fin del segmento de código, de datos y de pila.

  Creación de Procesos.

Elementos estructurales de un proceso.
• Propiedad de Recursos
• Memoria asignada.
• Canales y/o Dispositivos de I/O asignados.
• Archivos asignados.
Entidad de Ejecución
• Bloque de Control del Proceso (BCP).
• Estado del Proceso.
• Traza de ejecución (Programa en ejecución y su control).
Condiciones de trabajo en Multiprogramación
• Varios Procesos deben poder compartir recursos.
• Varios Procesos deben poder trabajar juntos en paralelo.
• Un Proceso debe poder "crear" otro Proceso.

 Comunicación entre Procesos.

La comunicación entre procesos, en inglés IPC (Interprocess Communication) es una función básica de los Sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. Normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación). Los protocolos desarrollados para internet son los mayormente usados: IP (capa de red), protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de archivos , protocolo de transferencia de hipertexto (capa de aplicación).
Los procesos pueden estar ejecutándose en una o más computadoras conectadas a una red. Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria compartida y llamadas de procediemientos remotos (RPC).    El método de IPC usado puede variar dependiendo del ancho de banda y latencia (el tiempo desde el pedido de información y el comienzo del envió de la misma) de la comunicación entre procesos, y del tipo de datos que están siendo comunicados.
La comunicación puede ser:Síncrona o asíncrona.
• Persistente (persisntent) o momentánea (transient).
• Directa o Indirecta.
• Simétrica o Asimética.
• Con uso de buffers explícito o automático.
• Envío por copia el mensaje o por referencia.
• Mensajes de tamaño fijo o variable.
• Síncrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otra tarea.
• Asíncrona: Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor.
• Persistente: El receptor no tiene que estar operativo al mismo tiempo que se realiza la comunicación, el mensaje se almacena tanto tiempo.
• Momentánea (transient): El mensaje se descarta si el receptor no está operativo al tiempo que se realiza la comunicación. Por lo tanto no será entregado.
• Directa: Las primitivas enviar y recibir explicitan el nombre del proceso con el que se comunican.
• Indirecta: La comunicación indirecta se implementa mediante puertos, en alguna bibliografía se lo denomina buzones.
• Simétrica: Todos los procesos pueden enviar o recibir. También llamada bidireccional para el caso de dos procesos.
• Asimétrica: Un proceso puede enviar, los demás procesos solo reciben. También llamada unidireccional.



No hay comentarios:

Publicar un comentario