Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONTROL DE PROCESOS
Kevin perez
Dina Meza
Juan Meza
COMUNICACIÓN ENTRE PROCESOS O IPC
La comunicación entre procesos es una función básica de los sistemas operativos que 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.
Las técnicas de IPC están divididas dentro de métodos para: paso de mensajes, sincronización, memoria
compartida y llamadas de procedimientos remotos (RPC).
La comunicación entre procesos puede estar motivada por la competencia o el uso de recursos compartidos
o porque varios procesos deban ejecutarse sincronizadamente para completar sus tareas.
Para que puedan realizarse ambos tipos de interacciones, es necesario que el sistema
operativo provea de servicios para posibilitar la comunicación entre procesos.
El sistema operativo provee mínimamente dos primitivas, "enviar" y "recibir", normalmente
llamadas send y receive. Asimismo, debe implementarse un enlace de comunicación
entre los procesos de la comunicación (pipe). Este enlace puede ser unidireccional o
multidireccional según permita la comunicación en uno o en varios sentidos.
TIPOS DE COMUNICACIÓN
• - Síncrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del
receptor antes de realizar cualquier otro ejercicio.
• 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 como sea necesario para poder ser
entregado (por ejemplo, un e-mail).
• 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” especifican el nombre del proceso con el que se
comunican.
LAS OPERACIONES BÁSICAS SEND Y RECEIVE
• Ejemplo:
• send(P, mensaje); envía un mensaje al proceso P (P es el proceso destino).
receive (Q, mensaje); espera la recepción de un mensaje por parte del proceso Q (Q es el proceso fuente).
• durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la
CPU.
Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU.
Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algún
evento que le permita poder proseguir su ejecución.
TRANSICIONES DE ESTADO
• De ejecución á Bloqueado: al iniciar una operación de E/S, al realizar una operación WAIT sobre un
semáforo a cero
• De ejecución á Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la
CPU lleva demasiado tiempo ejecutándose continuamente (agota su cuanto) el sistema operativo decide
que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.
• De Listo á en ejecución: cuando lo requiere el planificador de la CPU .
• De Bloqueado á Listo: se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo,
termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el
proceso, no habiendo otros procesos bloqueados en el semáforo.
DIAGRAMA DE ESTADOS DE UN PROCESO
BLOQUE DE CONTROL DE PROCESOS (PCB)
Es una estructura de dato que contiene información asociada con cada proceso.
• Estado de Proceso
• Contador de Programa
• Registros de CPU
• Información de planificación de CPU
• Información de administración de memoria
• Información contable
• Información de estado E/S
PCB: Process Control Block
OPERACIONES CON PROCESOS
Los sistemas que administran procesos deben ser capaces de realizar ciertas operaciones sobre y con los procesos. Tales operaciones
incluyen:
-crear y destruir un proceso
-suspender y reanudar un proceso
-cambiar la prioridad de un proceso
-bloquear y "desbloquear" un proceso
-Planificar un proceso (asignarle la CPU)
- permitir que un proceso se comunique con otro (a esto se denomina comunicación entre procesos).
• Este planificador está presente en algunos sistemas que admiten además de procesos interactivos
trabajos por lotes. Usualmente , se les asigna una prioridad baja a los trabajos por lotes,
utilizándose estos para mantener ocupados a los recursos del sistema durante períodos de baja
actividad de los procesos interactivos.
• El objetivo primordial del planificador a largo plazo es el de dar al planificador de la CPU una
mezcla equilibrada de trabajos, tales como los limitados por la CPU (utilizan mucho la CPU) o la
E/S. Así, por ejemplo, cuando la utilización de la CPU es baja, el planificador puede admitir más
trabajos para aumentar el número de procesos listos y, con ello, la probabilidad de tener algún
trabajo útil en espera de que se le asigne la CPU.
PLANIFICACIÓN A MEDIO PLAZO
• El planificador a corto plazo se ejecuta cuando ocurre un suceso que puede conducir a la
interrupción del proceso actual o que ofrece la oportunidad de expulsar de la ejecución al
proceso actual en favor de otro. Como ejemplos de estos sucesos se tienen:
• El caso más simple de interbloqueo sería el de un sólo proceso que espera la ocurrencia de un evento y, sin
embargo, el sistema no incluye la posibilidad de señalar dicha ocurrencia. Es muy difícil detectar los bloqueos
mutuos de esta naturaleza. La mayor parte de los bloqueos mutuos implican una competencia entre varios
procesos por varios recursos.
• Holt (1972) utilizó grafos dirigidos para representar situaciones de interbloqueo. Estos grafos tienen dos tipos de
nodos : procesos, que se representan con círculos, y recursos, representados por cuadrados. Si in proceso está
utilizando un recurso, previamente solicitado y concedido, se traza un arco desde el nodo del recurso
(cuadrado) hasta el proceso (círculo).
INTERBLOQUEO Y COMO EVITARLO.
• El sistema operativo no está obligado a ejecutar los procesos en ningún orden en particular. En
concreto, si la concesión de un recurso a un proceso determinado puede provocar interbloqueo,
el sistema operativo es muy libre de suspender al proceso y no atender su petición hasta que esté
seguro de que esto no conduce a una situación problemática.
•Gracias