1 / 22

Procesos

Procesos. M.C. Juan Carlos Olivares Rojas. Agenda. Modelo e Implantación de Procesos Comunicación entre Procesos Ejemplos de Comunicación entre Procesos Planificación de un Proceso. Agenda. Procesos Cooperativos Implementación de Procesos Threads. Modelo e Implantación de Procesos.

kane-cobb
Télécharger la présentation

Procesos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesos M.C. Juan Carlos Olivares Rojas

  2. Agenda • Modelo e Implantación de Procesos • Comunicación entre Procesos • Ejemplos de Comunicación entre Procesos • Planificación de un Proceso

  3. Agenda • Procesos Cooperativos • Implementación de Procesos • Threads

  4. Modelo e Implantación de Procesos • Un proceso es un programa en ejecución. • Todos los procesos tienen asociados un espacio de direcciones en memoria, registros y el contador de programas. • De acuerdo a la arquitectura de Von Neuman un programa para poderse ejecutar necesita estar en memoria.

  5. Modelo e Implantación de Procesos • El espacio de direcciones se compone además de direcciones para almacenar datos, código, la pila y el heap (montículo). • Toda la información de los procesos en los SOs se guardan el PCB (Process Control Block) que es un arreglo o lista ligada que indica la descripción de cada uno de los procesos.

  6. Modelo e Implantación de Procesos • Los procesos tienen asignados un identificador de procesos (PID), el cual es la forma en que el SO trabaja con los procesos. • Los procesos se ejecutan de manera secuencial pero pueden realizar bifurcaciones, motivo por el cual se necesita el contador de programa. • Los programas pueden tener asignado distintas prioridades para darle más jerarquías.

  7. Modelo e Implantación de Procesos • La finalidad del administrador de procesos es realizar una buena administración (planificación) del tiempo de CPU de la computadora a fin de ejecutar más programas de manera más eficiente. • Otra de las características básicas que presenta un proceso es el estado en el cual se encuentra. Existen tres estados básicos en proceso: Ejecución, Listo y Bloqueado.

  8. Modelo e Implantación de Procesos • Un proceso está en ejecución cuando tiene acceso real al tiempo de CPU. • Un proceso está listo cuando se puede ejecutar, es decir, por algún motivo se suspendió para dejar ejecutar otro proceso • Un proceso está bloqueado cuando está en espera de algún recurso (E/S) o de que ocurra un evento.

  9. Modelo e Implantación de Procesos • Otros modelos de estados de procesos incluyen otros estados como el de nacimiento, inactivo y diferencia entre bloqueado y en espera. • Dentro de un CPU un y sólo un proceso puede estar ejecutándose al mismo tiempo. • Los procesos se pueden dormir, despertar y ser asesinados antes de tiempo.

  10. Comunicación entre Procesos • Los procesos en algunos SOs pueden crear otros procesos llamados subprocesos, teniendo una jerarquía de procesos padre e hijos. • Estos procesos pueden trabajar de manera cooperativa para la resolución de un problema muy particular. Para ello necesitan comunicarse entre sí y a lo que a nivel de SO se llama IPC (Inter Process Communication).

  11. IPC • La parte más importante de la comunicación entre procesos es sin duda la transferencia de mensajes entre los diversos procesos. • La transferencia de mensajes puede llevarse acabo en base a dos primitivas, enviar y recibir, que se pueden aplicar a casi cualquier recurso como a los archivos (leer y escribir).

  12. IPC • La comunicación entre procesos IPC se debe dar a través del kernel del Sistema Operativo. • Tanto Windows como Linux y otros Sistemas Operativos implementan IPC pero lo hacen de manera particular. • Los IPC de sistemas *X son los más comunes y estandarizados. A continuación se describirá algo de IPC en Linux.

  13. IPC *X #include <sys/types.h> pid_t pid; hijo = getpid(); Padre = getppid(); Grupo = getpgrp(); Un subprocesos se crea con la instrucción fork()

  14. IPC *X • Existen otros tipos de usuarios y grupos los cuales son extendidos, es decir, no actúan como los usuarios reales. uid_t getuid(); /*usuario real*/ uid_t geteuid(); /*usuario extendido*/ gid_t getgid(); gid_t getegid(); • Los subprocesos tienen una jerarquía muy marcada.

  15. IPC *X //Validación de subprocesos if (pid == -1) perror(“Error al crear proceso”); else { if (pid == 0) /*Proceso hijo*/ else /*Proceso padre*/ }

  16. Ejemplos de Comunicación entre Procesos • La principal problemática que se presenta consiste en las condiciones de competencia de los procesos. Por ejemplo, compartir una impresora. Si varios procesos pudieran acceder a la impresora se tendrían problemas de inconsistencias al momento de imprimir. • A continuación se describirán algunos problemas de IPC para dar solución en la próxima unidad.

  17. Ejemplos de IPC • El problema del productor-consumidor: dos procesos comparte un mismo recurso compartido. El problema se presenta cuando el proceso productor produce más de lo que el buffer compartido puede soportar y cuando el proceso consumidor quiere consumir un valor del buffer cuando esta vació. • Este tipo de problemas se puede presentar en casos similares como el de la impresora.

  18. Planificación de un Proceso

  19. Procesos Cooperativos

  20. Implementación de Procesos

  21. Threads • Los hilos son procesos ligeros a diferencia de los procesos hijos, los hilos sólo replican el segmento de código, por lo que comparten datos entre otros hilos haciendo mejor uso de la memoria. • La problemática con los hilos es que cada sistema operativo implementa sus hilos de manera distinta. Por ejemplo existen los hilos POSIX, los hilos C de Mach, los hilos en Windows, etc.

  22. ¿Preguntas, dudas y comentarios?

More Related