Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
14Activity
0 of .
Results for:
No results containing your search query
P. 1
Unidad 5-Coordinacion y Sincronizacion de Procesos - Copia

Unidad 5-Coordinacion y Sincronizacion de Procesos - Copia

Ratings: (0)|Views: 2,877|Likes:
Published by Julio Yu Wu

More info:

Published by: Julio Yu Wu on Jul 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/04/2013

pdf

text

original

 
Colegio Universitario “Francisco de Miranda”Unidad Curricular:: SISTEMAS OPERATIVOSModulo: SISTEMAS OPERATIVOS IIApuntes Recopilados por: Profesor Bernardo Gonzalez Rojas
UNIDAD 4: COORDINACION Y SINCRONIZACION DEPROCESOS.
TEMA Nº 1: CONCURRENCIA.1.1. Introducción.
Los conceptos claves en los que se basan los sistemas operativos modernos son el de proceso y el de hilo. Lostemas fundamentales de diseño de sistemas operativos están relacionados con la gestión de procesos:
Multiprogramación:Es la gestión de varios procesos dentro de un sistema monoprocesador. La mayoría delos computadores personales, estaciones de trabajo, sistemas monoprocesador y sistemas operativosactuales de estas máquinas, tales como Windows 7, OS/2 y el Sistema 7 de Macintosh dan soporte a lamultiprogramación. Los sistemas operativos como UNIX y LINUX incorporan multiprogramación desistemas monoprocesador compartidos.
Multiproceso
:
Es la gestión de varios procesos dentro de un sistema multiprocesador. Hasta no hacemucho, los sistemas multiprocesador se utilizaban únicamente en grandes sistemas, computadorescentrales y minicomputadores. Los sistemas operativos como MVS y VMS dan soporte de multiproceso.Más recientemente, el multiproceso ha empezado a ganarse la aprobación de los servidores y lasestaciones de trabajo. Windows NT es un ejemplo de un sistema operativo diseñado para estos entornos.
Proceso distribuido
:
Es la gestión de varios procesos que ejecutan en sistemas de computadores múltiplesy remotas.
1.2. Definición.
La concurrencia es el punto clave de los tres campos anteriores y fundamentales para el di-seño de sistemasoperativos. La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicaciónentre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos yasignación del tiempo de procesador a los procesos. Se verá que estas cuestiones no solo surgen en entornos demulti-procesadores y proceso distribuido, sino incluso en sistemas multiprogramados con un solo procesador.La concurrencia puede presentarse en tres contextos diferentes:
 
Varias aplicaciones
:
La multiprogramación se creó para permitir que el tiempo de procesador de lamáquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.
 
Aplicaciones estructuradas:Como ampliación de los principios del diseño modular y la programaciónestructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesosconcurrentes.
 
Estructura del sistema operativo
:
Las mismas ventajas de estructuración son aplicables a losprogramadores de sistemas y se ha comprobado que algunos sistemas operativos están implementadoscomo un conjunto de procesos.
1.3. Ejemplo Concurrencia.
Para ilustrar estos conceptos y comparar losmétodos presentados en este tema, se usan dosproblemas clásicos de concurrencia. En primer lugar, se presentará el problema delproductor/consumidor como ejemplo típico. El tematermina con el problema de los lectores/escritores.En un sistema multiprogramado con un únicoprocesador, los procesos se intercalan en el tiempo
Página 1 de 15
 
Colegio Universitario “Francisco de Miranda”Unidad Curricular:: SISTEMAS OPERATIVOSModulo: SISTEMAS OPERATIVOS IIApuntes Recopilados por: Profesor Bernardo Gonzalez Rojas
para dar la apariencia de ejecución simultánea(figura 1.1).Figura 1.1 - IntercalaciónAunque no se consigue un proceso paralelo real yaunque se produce una cierta sobrecarga en losintercambios de procesos de un sitio a otro, laejecución intercalada produce beneficiosimportantes en la eficiencia del procesamiento y enla estructuración de los programas.En un sistema con varios procesadores, no solo esposible intercalar los procesos, sino tambnsuperponerlos (figura 1.2).Figura 1.2 – Intercalación y SuperposiciónA primera vista, podría parecer que la intercalación y la superposición representan formas de ejecución muydiferentes y que introducen problemas distintos. De hecho, ambas técnicas pueden contemplarse como ejemplosde proceso concurrente y ambas plantean los mismos problemas. En el caso de un sistema monoprocesador, losproblemas creados por la multiprogramación parten del hecho de que la velocidad relativa de ejecución de losprocesos no puede predecirse. Depende de la actividad de otros procesos, de la forma en que el sistema operativotrata las interrupciones y de las políticas de planificación. Así surgen las siguientes dificultades:
i.-
La compartición de recursos globales está llena de riesgos. Por ejemplo, si dos procesos hacen uso al mismotiempo de la misma variable global y ambos llevan a cabo tanto lecturas como escrituras sobre la variable, elorden en que se ejecuten las lecturas y escrituras es crítico. En el siguiente apartado se ofrece un ejemplo deeste problema.
ii.-
Para el sistema operativo resulta difícil asignar los recursos de forma óptima. Por ejemplo, el proceso A puedesolicitar el uso de un canal de E/S en particular y suspenderse antes de hacer uso del canal. Si el sistemaoperativo bloquea el canal e impide su uso por parte de otros procesos, se tiene una cierta ineficiencia.
iii.-
Resulta difícil localizar un error de programación porque los resultados no son normalmente reproducibles.Todas las dificultades anteriores se presentan también en los sistemas multiprocesador, ya que también en ellos esimpredecible la velocidad relativa de ejecución de los procesos. Un sistema multiprocesador debe solucionar,además, los problemas originados por el hecho de que varios procesos puedan estar ejecutando a la vez. Sinembargo, los problemas son, fundamentalmente, los mismos que en el caso anterior.
1.4.- Labores del Sistema Operativo.
¿Qué elementos de gestión y diseño surgen por causa de la concurrencia? Se pueden enumerar los siguientes:
i.-
El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de bloques de control de procesos, como se describió en la unidad anterior.
ii.-
El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursosse incluyen:
Tiempo de procesador:Es función de la planificación.
Memoria:La mayoría de los sistemas operativos emplean esquemas de memoria virtual.
Archivos .
Dispositivos de E/S
.
iii.-
El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias nointencionadas de otros procesos. Esto supone emplear técnicas relativas a la memoria, archivos ydispositivos de E/S, que se estudian en los capítulos correspondientes.
Página 2 de 15
 
Colegio Universitario “Francisco de Miranda”Unidad Curricular:: SISTEMAS OPERATIVOSModulo: SISTEMAS OPERATIVOS IIApuntes Recopilados por: Profesor Bernardo Gonzalez Rojas
iv.-
Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza laejecución con respecto a otros procesos concurrentes.Para comprender cómo se puede abordar la independencia de la velocidad, hace falta estudiar las formas en lasque los procesos pueden interactuar.
1.4.1.- Competencia entre procesos por los recursos
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso. Básicamente, esposible describir esta situación como sigue. Dos o más procesos necesitan acceder a un recurso durante el cursode su ejecución. Cada proceso no es consciente de la existencia de los otros y no se ve afectado por su ejecución.De aquí se obtiene que cada proceso debe dejar tal y como esté el estado de cualquier recurso que utilice. Comoejemplos de recursos se tienen a los dispositivos de E/S, la memoria, el tiempo de procesador y el reloj.No hay intercambio de información entre los procesos en competencia. Sin embargo, la ejecución de un procesopuede influir en el comportamiento de los procesos que compiten. En particular, si dos procesos desean acceder aun único recurso, el sistema operativo le asignará el recurso a uno de ellos y el otro tendrá que esperar. Por tanto,el proceso al que se niega el acceso se retrasará. En el peor caso, el proceso bloqueado puede que no consiganunca acceder al recurso y, por tanto, no terminará con éxito nunca.
1.4.2.-Cooperación entre procesos por compartición
El caso de cooperación por compartición comprende a los procesos que interactúan con otros sin tener conocimiento explicito de ellos. Por ejemplo, varios procesos pueden tener acceso a variables compartidas,archivos o bases de datos compartidas. Los procesos pueden emplear y actualizar los datos compartidos sin hacer referencia a los otros procesos, pero son conscientes de que estos otros pueden tener acceso a los mismos datos.Así pues, los procesos deben cooperar pasa asegurar que los datos que se comparten se gestionancorrectamente. Los mecanismos de control deben garantizar la integridad de los datos compartidos.
1.4.3.- Cooperación entre procesos por comunicación
En los dos primeros casos expuestos, cada proceso posee su propio entorno aislado, que no incluye a los otrosprocesos. Las interacciones entre los procesos son indirectas. En ambos casos, existe compartición. En caso decompetencia, los procesos están compartiendo recursos sin tener conocimiento de la existencia de otros procesos.En el segundo caso, están compartiendo valores y, aunque cada proceso no tiene conocimiento explicito de losotros, si es consciente de la necesidad de conservar la integridad de los datos. Cuando los procesos cooperan por comunicación, en cambio, los distintos procesos participan en una labor común que une a todos los procesos. Lacomunicación es una manera de sincronizar o coordinar las distintas actividades.Normalmente, la comunicación puede caracterizarse por estar formada por mensajes de algún tipo. Las primitivaspara enviar y recibir mensajes pueden venir dadas como parte del lenguaje de programación o por el núcleo delsistema operativo.
TEMA N° 2 SEMAFOROS.2.1. Introducción.
Se vuelven a considerar ahora los mecanismos que se usan en el sistema operativo y en los lenguajes deprogramación para dar soporte a la concurrencia. En este tema se trataran los semáforos. En las dos siguientessecciones se discutirá sobre los monitores y el paso de mensajes.El primer gran avance en la resolución de los problemas de procesos concurrentes llegó en
1965,
con el tratado deDijkstra sobre la cooperación entre procesos secuénciales, Dijkstra estaba interesado en el diseño de un sistemaoperativo como un conjunto de proce
sos
secuénciales cooperantes y en el desarrollo de mecanismos eficientes yfiables para dar soporte a la cooperación. Los procesos de usuario podrán utilizar estos mecanismos en tanto queel procesador y el sistema operativo los hagan disponibles.El principio fundamental es el siguiente: Dos o más procesos pueden cooperar por medio de simples señales, deforma que se pueda obligar a detenerse a un proceso en una posición determinada hasta que reciba una señal
Página 3 de 15

Activity (14)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
cheo68 liked this
Ricardo Cordero liked this
Jaren Escorche liked this
Josmedin liked this
Karlos Flores liked this
Williams Perez liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->