2.1.- DESCRIPCIÓN Y CONTROL DE PROCESOS
Proceso
Es un programa en ejecución.
Los procesos son gestionados por el sistema operativo,
De este modo, al comienzo de la ejecución del programa principal de un usuario
   se inicia la ejecución de un proceso.
¿Cuál es la manifestación de un proceso?
El proceso consta de memoria suficiente para resguardar los programas y los
    datos del proceso, además se lleva una cuenta de las llamadas a
    procedimientos y de todos los parámetros que pasan de procedimiento a
    procedimiento.
El S. O utiliza una estructura de datos llamada bloque de control la cual es la
    estructura de datos central y más importante de un S. O.
El conjunto de todos los PCB’s se guarda en una estructura del sistema
    operativo llamada tabla de procesos.
El bloque de control se divide en 3:
 Identificación del proceso.
 Información del proceso.
 Información del control del proceso.
Operaciones con procesos
 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)
2.2.- DEFINICIÓN DE PROCESOS
Cada proceso tiene asociado un espacio de direcciones , una lista de posiciones
   de memoria desde algún mínimo (usualmente 0) hasta algún máximo, que
   el proceso puede leer y escribir.
A cada proceso también asocia un conjunto de registros, que incluyen el
    contador del programa, el apuntador de la pila y otros registros, que incluyen
    el contador del programa, el apuntador de la pila y otros registros de
    hardware. Así como toda la demás información necesaria para ejecutar el
    programa.
Implantación de los procesos
La implementación del modelo de procesos se logra debido a que el sistema
    operativo almacena en una tabla denominada tabla de control de procesos
    información relativa a cada proceso que se esta ejecutando en el procesador.
    Cada línea de esta tabla representa a un proceso.
La información que se almacena es la siguiente:
 Identificación del proceso.
 Identificación del proceso padre.
 Información sobre el usuario y grupo.
 Estado del procesador.
 Información de control de proceso
 Información del planificador.
 Segmentos de memoria asignados.
 Recursos asignados.
 Comunicación entre procesos
2.3.- ESTADOS DE LOS PROCESOS
Durante su existencia, un proceso transita por varios estados. Los más
   importantes son:
Listo, en Ejecución y Bloqueado. Un proceso Listo es aquél que no está
    ejecutándose en un momento dado, pero que está preparado para ejecutar
    tan pronto como el S. O lo decida. Un proceso en Ejecución es aquél que
    esta ejecutándose en el procesador. En un sistema procesador puede haber
    más de un proceso en este estado. Un proceso bloqueado es el que está
    esperando a que termine algún suceso (como una operación de E/S).
2.4.- CONTROL DE PROCESOS
La mayoría de los procesadores dan soporte para dos tipos de ejecución por lo
   menos. Ciertas instrucciones pueden ejecutarse solo n modo privilegiado.
   Entre éstas están la lectura o modificación de registros de control (como la
   palabra de estado del programa), instrucciones primitivas de E/S e
   instrucciones relativas a la gestión de memoria. Además, se puede acceder a
   ciertas regiones de memoria.
El modo menos privilegiado a menudo se conoce como modo de usuario, ya que
    los programas de usuario ejecutan normalmente en este modo.
2.5.- PROCESOS E HILOS
Procesos
 Su estado de ejecución en un momento dado, esto es, los valores de los
  registros de la unidad central de procesamiento para dicho programa.
 Su memoria de trabajo, es decir, la memoria que ha reservado y sus
  contenidos.
 Los procesos son creados y destruidos por el sistema operativo, así como
  también este se debe hacer cargo de la comunicación entre procesos,
Hilos
 Es la unidad de procesamiento más pequeña que puede ser planificada por
  un sistema operativo.
 Un hilo es una característica que permite a una aplicación realizar varias
  tareas a la vez (concurrentemente). Los distintos hilos de ejecución
  comparten una serie de recursos tales como el espacio de memoria, los
  archivos abiertos, situación de autenticación, etc. Esta técnica permite
  simplificar el diseño de una aplicación que debe llevar a cabo distintas
  funciones simultáneamente.
 Es básicamente una tarea que puede ser ejecutada en paralelo con otra
  tarea.
2.6.- CONCURRENCIA, EXCLUSIÓN MUTUA Y
               SINCRONIZACIÓN
Concurrencia
Es el punto clave de la gestión de procesos y fundamental para el diseño de
   sistemas operativos. Comprende un gran numero de cuestiones de
   diseño, incluyendo la comunicación entre procesos, compartición y
   competencia por los recursos, sincronización de la ejecución de varios
   procesos.
Gestión de procesos
 Multiprogramación
 Multiproceso
 Proceso Distribuido
Puede presentarse en 3 contextos diferentes que son:
Varias aplicaciones: La multiprogramación se creo para permitir que el tiempo
de procesador de las maquinas fuese compartido dinámicamente entre varios
trabajos o aplicaciones activas.
Aplicaciones estructuradas: Estas pueden implementarse eficazmente como
un conjunto de procesos concurrentes.
Estructura del sistema operativo: Son aplicables a los programadores de
sistemas y se ha comprobado que algunos sistemas operativos están
implementados como un conjunto de procesos.
                              Exclusión mutua
 El uso adecuado de la concurrencia entre procesos exige la capacidad de
  definir secciones criticas y hacer cumplir la exclusión mutua.
 Una manera es dejar la responsabilidad a los procesos que deseen ejecutar
  concurrentemente, así pues tanto si son programas del sistema, como de
  aplicación, los procesos deben coordinarse unos con otros para ser cumplida
  la exclusión mutua, sin ayuda por parte del lenguaje de programación o del
  sistema operativo.
Soluciones por Software
 Para los procesos concurrentes que ejecuten en máquinas monoprocesador
  o multiprocesador con una memoria principal compartida.
Soluciones por hardware
Inhabilitación de interrupciones
 En una maquina monoprocesador, la ejecución de procesos concurrentes no
  puede superponerse, los procesos sólo pueden intercalarse, es mas un
  proceso continuara ejecutando hasta que solicite un servicio del sistema
  operativo o hasta que sea interrumpido.
2.7.- PRINCIPIOS GENERALES DE
                     CONCURRENCIA
En un sistema multiprogramado con un único procesador, los procesos se
   intercalan en el tiempo para dar la apariencia de ejecución simultánea.
   Aunque no se consigue un procesamiento paralelo real y aunque se produce
   una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la
   ejecución intercalada produce beneficios importantes en la eficiencia del
   procesamiento y en la estructura de los programas. En un sistema
   multiprocesador no solo es posible intercalar procesos, sino también
   superponerlos.

En el caso de un sistema monoprocesador, los problemas son consecuencia de
   una característica básica de los sistemas multiprogramadores: la velocidad
   relativa de ejecución de los procesos no puede predecirse y depende de las
   actividades de otros procesos, de la forma en que el sistema operativo trata
   las interrupciones y las políticas de planificación del sistema operativo. De
   aquí surgen las siguientes dificultades:
 Compartir recursos globales está lleno de riesgos.
 Para el sistema operativo resulta difícil gestionar la asignación óptima de
  recursos.
 Resulta difícil localizar un error de programación porque los resultaos no
  son, normalmente reproducibles.

                        Interacción entre procesos

Enumera tres niveles de conocimiento y las consecuencias de cada uno de
   ellos:
 Los procesos no tienen conocimiento de los demás: Estos son procesos
  independientes que no están pensados para operar juntos.
 Los procesos tienen un conocimiento indirecto de los otros: Los procesos no
  conocen necesariamente a los otros por sus identificadores de proceso, pero
  comparten el acceso a algunos objetos, como un buffer de E/S.
 Los procesos tienen un conocimiento directo de los otros: Los procesos son
  capaces de comunicarse con los demás por el identificador de proceso y
  están diseñados para trabajar conjuntamente en alguna actividad.
Competencia entre procesos por los recursos
Los procesos concurrentes entran en conflicto cuando compiten por el uso del
   mismo recurso. Es posible describir esta situación como sigue: dos o mas
   procesos necesitan acceder a un recurso durante el curso de su ejecución:
   ningún proceso es consciente de la existencia de los otros y no se ve
   afectado por su ejecución.
Cooperación entre procesos por comportamiento
El caso de cooperación por comportamiento comprende los procesos que
    interactúan con otros sin tener conocimiento explicito de ellos. Por
    ejemplo, varios procesos pueden tener acceso a variables.
Cooperación entre procesos por comunicación
Las interacciones entre los procesos son indirectas. En caso de competencia, los
   procesos están compartiendo recursos sin tener conocimiento de la
   existencia de otros procesos.
Exclusión mutua
Consiste en que un solo proceso excluye
 temporalmente a todos los demás para
 usar un recurso compartido de forma
 que garantice la integridad del sistema.
Exclusión mutua
 CONDICIONES DE LA EXCLUSIÓN MUTUA
Hay que garantizar la exclusión mutua entre los diferentes
  procesos a la hora de acceder al recurso compartido. No
  puede haber en ningún momento dos procesos dentro de
  sus respectivas secciones críticas.

 No se deben hacer suposiciones en cuanto a la velocidad
  relativa de los procesos en conflicto.
 Ningún proceso que esté fuera de su sección crítica debe
  interrumpir a otro para el acceso a la sección crítica.
 Cuando más de un proceso desee entrar en su sección
  crítica, se le debe conceder la entrada en un tiempo finito, es
  decir, que nunca se le tendrá esperando en un bucle que no
  tenga final.
Exclusión mutua

TIPOS DE SOLUCIONES DE EXCLUSIÓN MUTUA

Soluciones software.
Soluciones hardware.
Soluciones aportadas por el Sistema
 Operativo.
Exclusión mutua
Soluciones hardware.
 Las soluciones hardware se dividen en dos
 tipos:
  Optimistas.
 Consideran que lo mas probable es que no haya
  conflictos, y si los hay sea en número reducido, por lo que
  permiten cualquier acceso a la variable compartida. En
  caso de conflicto, mantienen la integridad del sistema
  descartando las actualizaciones.

Pesimistas.
 Bloquean todo aquello que pueda interferir.
 Actualizan la variable.
Exclusión mutua
EJEMPLO
Semáforos es un algoritmo de control de
  procesos

Que a su vez tiene varios tipos de
 semáforos los cuales se dividen en:
SEMÁFORO BINARIO

Un semáforo binario es un indicador de
  condición (S) que registra si un recurso
  está disponible o no. Un semáforo
  binario sólo puede tomar dos valores: O
  y 1.
Semáforo robusto:
Es el que se encarga de liberar los
  procesos
  que llevan mas tiempo bloqueados.
EJEMPLO:

wait (variable)
  begin
    while (variable)>=0 do {esperar}
    variable=variable-1
  end
signal (variable)
  begin
    variable=variable+1
  end
El semáforo se inicializa con el numero
  total de recursos disponibles (n) y las
  operaciones de espera y señal se
  diseñan de modo que se impida el
  acceso al recurso protegido por el
  semáforo cuando el valor de éste es
  menor o igual que cero
MONITORES
Los monitores son una herramienta de sincronización


Posee una estructura propia, es una colección de
  procedimientos, variables y estructuras de datos que
  se agrupan en un módulo especial.


Los procesos pueden llamar a los procedimientos de un
  monitor siempre que lo requieran, pero no pueden
  acceder directamente las estructuras de datos internas
  del monitor.


Implementan un nivel aún más alto de abstracción
  facilitando el acceso a recursos compartidos.
MONITORES

Componentes
Inicialización: contiene el código a ser
  ejecutado cuando el monitor es creado

Datos privados: contiene los
 procedimientos privados, que sólo
 pueden ser usados desde dentro del
 monitor y no son visibles desde fuera
MONITORES


Procedimientos del monitor: son los
  procedimientos que pueden ser llamados
  desde fuera del monitor.

Cola de entrada: contiene a los threads que han
 llamado a algún procedimiento del monitor
 pero no han podido adquirir permiso para
 ejecutarlos aún.
MONITORES


La sincronización se usan dos
 instrucciones:

wait (c): suspende la ejecución del proceso que llama
  bajo la condición c. El monitor está ahora disponible
  para ser usado por otros procesos.

signal(c): reanuda la ejecución de algún proceso
  suspendido después de un cwait bajo la misma
  condición. Si hay varios procesos, se elige uno de
  ellos; si no hay ninguno, no hace nada.
MENSAJES

Son una solución del sistema operativo
 que nos permitirán la sincronización de
 procesos y la comunicación entre
 ambos.

Es una cadena de texto transmitida de un
  proceso que envía el mensaje a un
  receptor
MENSAJES

Un mensaje puede tener código, texto, datos etc.

Suelen tener dos partes:

    - Cabecera (obligatoria):
  IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud
    - Cuerpo (optativo): Información adicional

Tenemos dos tipos de órdenes para gestionar mensajes
  (para enviar y recibir):

    - Enviar: send (destino, mensaje)
    - Recibir: receive (origen, mensaje)
MENSAJES
Propiedad de los buzones
Tenemos dos casos:
El proceso es el propietario. El buzón existe
  mientras existe el proceso y sólo el
  propietario puede leer datos del buzón
El propietario del buzón es el SO. La
  propiedad del buzón puede transmitirse
  entre procesos, lo que permite que varios
  procesos puedan leer.
MENSAJES
Casos habituales:

Envío bloqueante - Recepción bloqueante.
     Se usa cuando la sincronización ha de ser
  muy estricta.

Envío no bloqueante - Recepción bloqueante.
     Se usa para cuando el proceso emisor no
  necesita que el receptor haya recibido el
  mensaje para continuar. Ej: Servidor de correo

Envío no bloqueante - Recepción no bloqueante
PRINCIPIOS DE INTERBLOQUEO
PRINCIPIOS DE INTERBLOQUEO



El interbloqueo se puede definir como el bloqueo
   permanente de un conjunto de procesos que
   compiten por los recursos del sistema o bien se
   comunican unos con otros. A diferencia de otros
   problemas de la gestión concurrente de procesos, no
   existe una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades
  contradictorias de recursos por parte de dos o más
  procesos.
PRINCIPIOS DE INTERBLOQUEO

Ejemplo :

Interbloqueo de tráfico
Cuatro coches llegan aproximadamente en el mismo instante a
   un cruce de cuatro caminos. Los cuatro cuadrantes de la
   intersección son los recursos compartidos sobre los que se
   demanda control; por tanto, si los coches desean atravesar
   el cruce, las necesidades de recursos son las siguientes:

-     El coche que va hacia el norte necesita los cuadrantes 1
  y 2.
-     El coche que va hacia el oeste necesita los cuadrantes 2
  y 3.
-     El coche que va hacia el sur necesita los cuadrantes 3 y
  4.
-     El coche que va hacia el este necesita los cuadrantes 4 y
PRINCIPIOS DE INTERBLOQUEO
Acciones a Realizar en Interbloqueo
CONDICIONES PARA PRODUCIR UN INTERBLOQUEO

1- Condición de exclusión mutua: Cada recurso esta
   asignado a un único proceso o esta disponible.


2- Condición de posesión y espera: Los procesos que
   tienen, en un momento dado, recursos asignados
   con anterioridad, pueden solicitar nuevos recursos.


3- Condición de no apropiación: Los recursos
   otorgados con anterioridad no pueden ser forzados
   a dejar un proceso. El proceso que los posee debe
   liberarlos en forma explicita.
Puede no existir interbloqueo con solo estas tres
  condiciones. Para que se produzca interbloqueo, se
  necesita una cuarta condición:


4- Condición de espera circular (o circulo vicioso de
   espera): Debe existir una cadena circular de dos o
   mas procesos, cada uno de los cuales espera un
   recurso poseído por el siguiente miembro de la
   cadena.
PREVENCIÓN DE INTERBLOQUEO

- Los métodos indirectos que consisten en
   impedir la aparición de alguna de las tres
   condiciones necesarias para que se de
   el interbloqueo.

- Los métodos directos que consisten en
   evitar la aparición del circulo vicioso de
   espera.

Unidad 2 Sistemas Operativos

  • 3.
    2.1.- DESCRIPCIÓN YCONTROL DE PROCESOS Proceso Es un programa en ejecución. Los procesos son gestionados por el sistema operativo, De este modo, al comienzo de la ejecución del programa principal de un usuario se inicia la ejecución de un proceso. ¿Cuál es la manifestación de un proceso? El proceso consta de memoria suficiente para resguardar los programas y los datos del proceso, además se lleva una cuenta de las llamadas a procedimientos y de todos los parámetros que pasan de procedimiento a procedimiento. El S. O utiliza una estructura de datos llamada bloque de control la cual es la estructura de datos central y más importante de un S. O.
  • 4.
    El conjunto detodos los PCB’s se guarda en una estructura del sistema operativo llamada tabla de procesos. El bloque de control se divide en 3:  Identificación del proceso.  Información del proceso.  Información del control del proceso. Operaciones con procesos  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)
  • 5.
    2.2.- DEFINICIÓN DEPROCESOS Cada proceso tiene asociado un espacio de direcciones , una lista de posiciones de memoria desde algún mínimo (usualmente 0) hasta algún máximo, que el proceso puede leer y escribir. A cada proceso también asocia un conjunto de registros, que incluyen el contador del programa, el apuntador de la pila y otros registros, que incluyen el contador del programa, el apuntador de la pila y otros registros de hardware. Así como toda la demás información necesaria para ejecutar el programa. Implantación de los procesos La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.
  • 6.
    La información quese almacena es la siguiente:  Identificación del proceso.  Identificación del proceso padre.  Información sobre el usuario y grupo.  Estado del procesador.  Información de control de proceso  Información del planificador.  Segmentos de memoria asignados.  Recursos asignados.  Comunicación entre procesos
  • 7.
    2.3.- ESTADOS DELOS PROCESOS Durante su existencia, un proceso transita por varios estados. Los más importantes son: Listo, en Ejecución y Bloqueado. Un proceso Listo es aquél que no está ejecutándose en un momento dado, pero que está preparado para ejecutar tan pronto como el S. O lo decida. Un proceso en Ejecución es aquél que esta ejecutándose en el procesador. En un sistema procesador puede haber más de un proceso en este estado. Un proceso bloqueado es el que está esperando a que termine algún suceso (como una operación de E/S).
  • 8.
    2.4.- CONTROL DEPROCESOS La mayoría de los procesadores dan soporte para dos tipos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse solo n modo privilegiado. Entre éstas están la lectura o modificación de registros de control (como la palabra de estado del programa), instrucciones primitivas de E/S e instrucciones relativas a la gestión de memoria. Además, se puede acceder a ciertas regiones de memoria. El modo menos privilegiado a menudo se conoce como modo de usuario, ya que los programas de usuario ejecutan normalmente en este modo.
  • 9.
    2.5.- PROCESOS EHILOS Procesos  Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.  Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.  Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, Hilos  Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.
  • 10.
     Un hiloes una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.  Es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.
  • 13.
    2.6.- CONCURRENCIA, EXCLUSIÓNMUTUA Y SINCRONIZACIÓN Concurrencia Es el punto clave de la gestión de procesos y fundamental para el diseño de sistemas operativos. Comprende un gran numero de cuestiones de diseño, incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos. Gestión de procesos  Multiprogramación  Multiproceso  Proceso Distribuido Puede presentarse en 3 contextos diferentes que son:
  • 14.
    Varias aplicaciones: Lamultiprogramación se creo para permitir que el tiempo de procesador de las maquinas fuese compartido dinámicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Estas pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos. Exclusión mutua  El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones criticas y hacer cumplir la exclusión mutua.  Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, así pues tanto si son programas del sistema, como de aplicación, los procesos deben coordinarse unos con otros para ser cumplida la exclusión mutua, sin ayuda por parte del lenguaje de programación o del sistema operativo.
  • 15.
    Soluciones por Software Para los procesos concurrentes que ejecuten en máquinas monoprocesador o multiprocesador con una memoria principal compartida. Soluciones por hardware Inhabilitación de interrupciones  En una maquina monoprocesador, la ejecución de procesos concurrentes no puede superponerse, los procesos sólo pueden intercalarse, es mas un proceso continuara ejecutando hasta que solicite un servicio del sistema operativo o hasta que sea interrumpido.
  • 16.
    2.7.- PRINCIPIOS GENERALESDE CONCURRENCIA En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Aunque no se consigue un procesamiento paralelo real y aunque se produce una cierta sobrecarga en los intercambios de procesos de un sitio a otro, la ejecución intercalada produce beneficios importantes en la eficiencia del procesamiento y en la estructura de los programas. En un sistema multiprocesador no solo es posible intercalar procesos, sino también superponerlos. En el caso de un sistema monoprocesador, los problemas son consecuencia de una característica básica de los sistemas multiprogramadores: la velocidad relativa de ejecución de los procesos no puede predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones y las políticas de planificación del sistema operativo. De aquí surgen las siguientes dificultades:
  • 17.
     Compartir recursosglobales está lleno de riesgos.  Para el sistema operativo resulta difícil gestionar la asignación óptima de recursos.  Resulta difícil localizar un error de programación porque los resultaos no son, normalmente reproducibles. Interacción entre procesos Enumera tres niveles de conocimiento y las consecuencias de cada uno de ellos:  Los procesos no tienen conocimiento de los demás: Estos son procesos independientes que no están pensados para operar juntos.  Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros por sus identificadores de proceso, pero comparten el acceso a algunos objetos, como un buffer de E/S.  Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los demás por el identificador de proceso y están diseñados para trabajar conjuntamente en alguna actividad.
  • 18.
    Competencia entre procesospor los recursos Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso. Es posible describir esta situación como sigue: dos o mas procesos necesitan acceder a un recurso durante el curso de su ejecución: ningún proceso es consciente de la existencia de los otros y no se ve afectado por su ejecución. Cooperación entre procesos por comportamiento El caso de cooperación por comportamiento comprende los procesos que interactúan con otros sin tener conocimiento explicito de ellos. Por ejemplo, varios procesos pueden tener acceso a variables. Cooperación entre procesos por comunicación Las interacciones entre los procesos son indirectas. En caso de competencia, los procesos están compartiendo recursos sin tener conocimiento de la existencia de otros procesos.
  • 20.
    Exclusión mutua Consiste enque un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
  • 21.
    Exclusión mutua CONDICIONESDE LA EXCLUSIÓN MUTUA Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningún momento dos procesos dentro de sus respectivas secciones críticas.  No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.  Ningún proceso que esté fuera de su sección crítica debe interrumpir a otro para el acceso a la sección crítica.  Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.
  • 22.
    Exclusión mutua TIPOS DESOLUCIONES DE EXCLUSIÓN MUTUA Soluciones software. Soluciones hardware. Soluciones aportadas por el Sistema Operativo.
  • 23.
    Exclusión mutua Soluciones hardware. Las soluciones hardware se dividen en dos tipos: Optimistas.  Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones. Pesimistas.  Bloquean todo aquello que pueda interferir.  Actualizan la variable.
  • 24.
  • 26.
    Semáforos es unalgoritmo de control de procesos Que a su vez tiene varios tipos de semáforos los cuales se dividen en:
  • 27.
    SEMÁFORO BINARIO Un semáforobinario es un indicador de condición (S) que registra si un recurso está disponible o no. Un semáforo binario sólo puede tomar dos valores: O y 1. Semáforo robusto: Es el que se encarga de liberar los procesos que llevan mas tiempo bloqueados.
  • 28.
    EJEMPLO: wait (variable) begin while (variable)>=0 do {esperar} variable=variable-1 end signal (variable) begin variable=variable+1 end
  • 29.
    El semáforo seinicializa con el numero total de recursos disponibles (n) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero
  • 31.
    MONITORES Los monitores sonuna herramienta de sincronización Posee una estructura propia, es una colección de procedimientos, variables y estructuras de datos que se agrupan en un módulo especial. Los procesos pueden llamar a los procedimientos de un monitor siempre que lo requieran, pero no pueden acceder directamente las estructuras de datos internas del monitor. Implementan un nivel aún más alto de abstracción facilitando el acceso a recursos compartidos.
  • 32.
    MONITORES Componentes Inicialización: contiene elcódigo a ser ejecutado cuando el monitor es creado Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera
  • 33.
    MONITORES Procedimientos del monitor:son los procedimientos que pueden ser llamados desde fuera del monitor. Cola de entrada: contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.
  • 34.
    MONITORES La sincronización seusan dos instrucciones: wait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está ahora disponible para ser usado por otros procesos. signal(c): reanuda la ejecución de algún proceso suspendido después de un cwait bajo la misma condición. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.
  • 36.
    MENSAJES Son una solucióndel sistema operativo que nos permitirán la sincronización de procesos y la comunicación entre ambos. Es una cadena de texto transmitida de un proceso que envía el mensaje a un receptor
  • 37.
    MENSAJES Un mensaje puedetener código, texto, datos etc. Suelen tener dos partes: - Cabecera (obligatoria): IdProcesoEmisor, IdProcesoReceptor, Tipo, Longitud - Cuerpo (optativo): Información adicional Tenemos dos tipos de órdenes para gestionar mensajes (para enviar y recibir): - Enviar: send (destino, mensaje) - Recibir: receive (origen, mensaje)
  • 38.
    MENSAJES Propiedad de losbuzones Tenemos dos casos: El proceso es el propietario. El buzón existe mientras existe el proceso y sólo el propietario puede leer datos del buzón El propietario del buzón es el SO. La propiedad del buzón puede transmitirse entre procesos, lo que permite que varios procesos puedan leer.
  • 39.
    MENSAJES Casos habituales: Envío bloqueante- Recepción bloqueante. Se usa cuando la sincronización ha de ser muy estricta. Envío no bloqueante - Recepción bloqueante. Se usa para cuando el proceso emisor no necesita que el receptor haya recibido el mensaje para continuar. Ej: Servidor de correo Envío no bloqueante - Recepción no bloqueante
  • 40.
  • 41.
    PRINCIPIOS DE INTERBLOQUEO Elinterbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general. Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.
  • 42.
    PRINCIPIOS DE INTERBLOQUEO Ejemplo: Interbloqueo de tráfico Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes: - El coche que va hacia el norte necesita los cuadrantes 1 y 2. - El coche que va hacia el oeste necesita los cuadrantes 2 y 3. - El coche que va hacia el sur necesita los cuadrantes 3 y 4. - El coche que va hacia el este necesita los cuadrantes 4 y
  • 43.
  • 45.
    Acciones a Realizaren Interbloqueo CONDICIONES PARA PRODUCIR UN INTERBLOQUEO 1- Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible. 2- Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.
  • 46.
    Puede no existirinterbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición: 4- Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.
  • 47.
    PREVENCIÓN DE INTERBLOQUEO -Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se de el interbloqueo. - Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.