mecanismo de sincronización de procesos

8

Click here to load reader

Upload: julio-izaguirre

Post on 22-Jan-2018

105 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Mecanismo de sincronización de procesos

Universidad de Carabobo

Facultad de Ciencia de la Educación

Departamento de Informática

Mecanismo de Sincronización de

Procesos

Participante:

Izaguirre julio

C.I: 16.579.280

Sección 90

Bárbula, 05 junio de 2016

Page 2: Mecanismo de sincronización de procesos

Proceso de un S.O:

Un proceso es una abstracción que hace referencia a cada caso de ejecución de un programa. Un

proceso no tiene por qué estar siempre en ejecución y la vida de un proceso pasa por varias fases, incluyendo la ejecución.

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de lo siguiente:

• Crear y destruir procesos

• Parar y reanudar procesos

• Ofrecer mecanismos para que los procesos puedan comunicarse y se sincronicen

TIPOS DE PROCESOS POR UN S.O

Existen dos tipos de procesos:

modo kernel.

modo usuario.

Los primeros son más lentos por las llamadas al sistema que realizan, sin embargo, son más seguros.

Cuando hablamos de los procesos de usuario, podemos decir que el sistema operativo podría no ser

multiproceso, ya que se vale de librerías (como pthread) para hacer un multiplexado y dar la apariencia de trabajar como multiproceso.

Podría pensarse en otra clasificación, como son:

los procesos en primer plano.

Procesos en segundo plano.

Los primeros interactúan con el usuario, es decir, el usuario proporciona los datos que el proceso

utilizará.

Los segundos, son creados para tareas bien definidas y no necesitan la intervención del usuario, por ejemplo, se puede tener un proceso en segundo plano para revisar la temperatura del disco duro

constantemente, éstos también son conocidos como demonios

Tipos de procesos

Podemos clasificarlos en función de distintos criterios.

Según su diseño:

Reutilizables: se cargan en memoria cada vez que se usan. Los programas de usuario suelen ser de este tipo.

Reentrantes: se carga una sola copia del código en memoria. Cada vez que se usan se crea un nuevo

proceso con su zona de datos propia, pero compartiendo el código.

Según su acceso a CPU y recursos:

Page 3: Mecanismo de sincronización de procesos

Apropiativos: acceden a los recursos y sólo los abandonan de forma voluntaria (mediante instrucción CPU).

No Apropiativos: permiten a otros procesos apropiarse de los recursos que ahora poseen.

Según su permanencia en memoria:

Residentes: tienen que permanecer en memoria durante toda su evolución (desde creación hasta

terminación).

Intercambiables (swappable): es lo más normal. El SO puede decidir llevarlos a disco a lo largo de su

evolución.

Según su nivel de privilegio (no en todos los SO):

Privilegiados: se ejecutan en modo supervisor.

No privilegiados: los que normalmente ejecuta el usuario.

Según su propietario:

Procesos de usuario: son los diseñados por los usuarios. Se ejecutan en modo no

Procesos del sistema: son los que forman parte del SO (de E/S, de planificación de otros procesos,

etc.).

Los dispositivos de e/s permiten a la CPU relacionarse con el mundo exterior: teclados, pantallas,

impresoras, discos.

Sistema de comunicaciones

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva

ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.

Los servicios básicos de comunicación son:

a. crear: el proceso solicita la creación del mecanismo

b. enviar o escribir: el proceso emisor envía información al proceso receptor c. recibir o leer: el proceso receptor recibe información d. destruir: el proceso solicita la destrucción del mecanismo de comunicación

La comunicación puede ser síncrona y asíncrona:

a. síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar

el servicio enviar mientras el receptor ejecuta recibir.

b. asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la

solicite.

Page 4: Mecanismo de sincronización de procesos

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red para realizar una misma tarea. Es decir, hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y

crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Información del estado de E/S: Esta información incluye, solicitudes pendientes de E/S, dispositivos

de E/S asignados al proceso, etc.

Órdenes de E/S: Proporciona servicios de lectura, escritura y modificación del estado de los

periféricos.

Los programas de usuario se comunican con el sistema operativo y le solicitan el servicio mediante las llamadas al sistema. A cada una de estas llamadas le corresponde un procedimiento de la biblioteca que pueden llamar los programas del usuario.

Este procedimiento pone los parámetros de la llamada al sistema en un lugar específico como pueden

ser los registros de la máquina, para después ejecutar una función llamada TRAP para iniciar el sistema operativo. Cuando el sistema operativo recupera el control después del TRAP, examina los parámetros para ver si son válidos, en ese caso, desarrolla el trabajo solicitado. Al terminar, el sistema operativo

coloca un código de estado en un registro, para indicar si tuvo éxito o fracaso.

Unidades de entrada: dispositivos que sirven para introducir en el computador los datos e

instrucciones. Transforman las informaciones de entrada en señales binarias de naturaleza eléctrica. Ejemplos: un teclado, un digitalizador, INTERNET, una lectora de tarjetas de crédito, etc.

Unidades de salida: son dispositivos a través de los cuales se obtienen los resultados de los programas ejecutados por el computador. Transforman las señales eléctricas binarias en caracteres escritos o gráficos que son visualizados. Ejemplos: un monitor de video, una impresora, INTERNET, etc.

Buses:

El bus del sistema es un conjunto de líneas eléctricas (cable o pista en el circuito impreso) que conectan la información al CPU con los diferentes elementos o periféricos. Estos puedes ser de 8-16-32-64-128 bits.

Page 5: Mecanismo de sincronización de procesos

Bus son las pistas conectan al CPU con la memoria RAM y oros circuitos de control, el bus de teclado y mouse y una parte de ese bus sale al exterior de la placa madrea través del circuito correspondiente

por ejemplo bus IDE de los discos duros y unidades de CD o DVD, otro bus es el serial ATA o ATA2

conecta a los discos a una velocidad mayor, otro bus es el USB

Tipos de Buses por su Tecnología:

Bus Interno

Mueve los datos entre los componentes del micro procesador.

Bus Externo

Este se usa para comunicar el micro procesador y otras partes, como periféricos y memoria.

Tipos de buses por uso:

Bus de Datos Este bus es bidireccional ya que fluyen hacia o desde el CPU. Pueden ser de E/S

Bus de Dirección:

Estos son unidireccional ya que la información fluye en una sola dirección al CPU este a los elemento de E/S.

Bus de Control: Este conjunto de señales se usa para sincronizar las actividades de transiciones con los sistemas

periféricos del sistema. R/W, INT, RESET, Bus RQ. La señal más importante en el bus de

Page 6: Mecanismo de sincronización de procesos

control son las del cronometro, que generan los intervalos de tiempo durante el cual se realizan las operaciones y están depende del microprocesador.

Significado de siglas de los Buses

Bus ISA (INDUSTRY ESTÁNDAR ARQUITECTURE) Bus PSI (PERIPHERICAL COMPONENT INTERCONECT) Bus AGP (PUERTO AVANZADO DE GRAFICOS)

Bus SATA (ACCESORIO SERIAL TECNOLOGIA AVANZADA) Bus USB (BUS UNIVERSAL EN SERIE)

Qué es Sincronización de Procesos

Sincronización es el funcionamiento coordinado en la resolución de una tarea encomendada.

Es la coordinación y cooperación de un conjunto de procesos para asegurar la comparación de recursos

de cómputo. Es necesaria para prevenir y corregir errores de sincronización debido al acceso concurrente a recursos compartidos, como las estructuras de datos o dispositivos de E/S de procesos.

La sincronización entre procesos permite intercambiar señales de tiempo (arranque /parada) Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajos determinadas circunstancia la ejecución de un proceso

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

Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Un hilo modifica un dato en la memoria, los otros hilos acceden e ese dato modificado inmediatamente.

Page 7: Mecanismo de sincronización de procesos

Tipos de sincronización del S.O

Señales

Tuberías

Semáforos

Mutex y variables condicionales

Pasos de mensajes

Que es una Sección Crítica Es una programación concurrente a la porción de código de un programa de ordenador en la que se

accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un proceso o hilo en ejecución.

El problema de la sección crítica

Éste es uno de los problemas que con mayor frecuencia aparece cuando se ejecutan procesos

concurrentes. Si son cooperantes como independientes. Considérese un sistema compuesto por n procesos {P1, P2,..., PN} en el que cada uno tiene un fragmento de código, que se denomina sección

crítica. Dentro de la sección crítica, los procesos pueden estar accediendo y modificando variables comunes, registros de una base de datos, un archivo, en general cualquier recurso compartido. La característica más importante de este sistema es que cuando un proceso se encuentra ejecutando

código de la sección crítica, ningún otro proceso puede ejecutar en su sección.

Para resolver el problema de la sección crítica es necesario utilizar algún mecanismo desincronización que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el código de la sección crítica y su funcionamiento básico es el siguiente:

Comunicación y sincronización de procesos. Cada proceso debe solicitar permiso para entrar en la sección crítica mediante algún fragmento de código, que se denomina de forma genérica entrada en la sección crítica.

Cuando un proceso sale de la sección crítica debe indicarlo mediante otro fragmento de código, que se denomina salida de la sección crítica. Este fragmento permitirá que otros

procesos entren a ejecutar el código de la sección crítica. La estructura general, por tanto, de cualquier mecanismo que pretenda resolver el problema de la sección crítica es la siguiente:

Entrada en la sección crítica

Código de la sección crítica

Salida de la sección crítica

Cualquier solución que se utilice para resolver este problema debe cumplir los tres requisitos

siguientes:

Exclusión mutua: si un proceso está ejecutando código de la sección crítica, ningún otro proceso lo podrá hacer. Progreso: si ningún proceso está ejecutando dentro de la sección crítica, la decisión de qué

proceso entra en la sección se hará sobre los procesos que desean entrar. Los procesos que no quieren entrar no pueden formar parte de esta decisión. Además, esta decisión debe

realizarse en tiempo finito.

Page 8: Mecanismo de sincronización de procesos

Espera acotada: debe haber un límite en el número de veces que se permite que los demás procesos entren a ejecutar código de la sección crítica después de que un proceso haya efectuado una solicitud de entrada y antes de que se conceda la suya.

¿Qué es 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.

Un proceso esta interbloqueado si está esperando por un evento determinado que nunca va a ocurrir. 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.

El bloqueo es permanente hasta que el sistema realice una operación extraordinaria, como puede ser matar a uno o más procesos u obligar a uno o más procesos a retrasar su ejecución. El interbloqueo

puede involucrar a recursos tanto consumibles como reutilizables. Un recurso consumible es aquel que se destruye al ser adquirido por un proceso; por ejemplo los mensajes, la información de los buffers de e/s. Un recurso reutilizable es aquel que no se destruyó o se desgasto con el uso como ser un canal de

e/s o zona de memoria.

Condiciones para que se cumpla (Interbloqueo):

Deben darse tres condiciones para que pueda producirse un ínter bloqueo:

1. Exclusión Mutua: Solo un proceso puede usar un recurso cada vez. 2. Retención y Esperar: Un proceso puede retener unos recursos asignados mientras espera que se

le asignen otros. 3. No Apropiación: Ningún proceso puede ser forzado a abandonar un recurso que retenga. En la mayoría de los casos, estas condiciones son bastantes necesarias. Por ejemplo, la exclusión mutua

hace falta asegurar la consistencia de resultados y la integridad de la base de datos. La apropiación no se puede aplicar arbitrariamente, y cuando se encuentran involucrados recursos de datos debe estar

acompañada de un mecanismo de recuperación y reanudación, que devuelva un proceso y sus recursos a un estado previo adecuado, desde el que el proceso pueda finalmente repetir sus acciones.

4. Círculo Vicioso de Espera: existe una cadena cerrada de procesos, cada uno de los cuales retiene, al menos, un recurso que necesita el siguiente proceso de la cadena.

Las tres primeras condiciones son necesarias, pero no suficientes, para que exista ínter bloqueo. La cuarta condición es, una consecuencia potencial de las tres primeras. Dado que se producen las tres primeras condiciones, puede ocurrir una secuencia de eventos que desemboque en un círculo vicioso de

espera irresoluble. Un circulo de espera irresoluble es, la definición de ínter bloqueo. En resumen, las cuatro condiciones en conjunto constituyen una condición necesaria y suficiente para

el ínter bloqueo.