jueves, 25 de agosto de 2011


 CONCURRENCIA.
Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación.



Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes , es necesario que tengan alguna relación entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información o recursos compartidos, por ejemplo: en un sistema de un procesador , la multiprogramación es una condición necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.
Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades necesiten actuar entre sí ya sea para utilizar información en común o para cualquier otra cosa.

3.2.1.1 BENEFICIOS DE LA CONCURRENCIA
·        Trata de evitar los tiempos muertos de la UCP
·        Comparte y optimiza el uso de recursos
·        Permite la modularidad en las diferentes etapas del proceso
·        Acelera los cálculos
·        ·        Da mayor comodidad
3.2.1.2 DESVENTAJAS DE LA CONCURRENCIA
Inanición e interrupción de procesos
Ocurrencia de bloqueos
Que dos o más procesos requieran el mismo recurso (no apropiativo)
SERIABILIDAD
Consiste en asegurarse que los cambios siguen un orden adecuado.
Es la propiedad q garantiza que un plan de ejecución concurrente es equivalente al secuencial
.
Formas de planificar la seriabilidad:
1. por conflicto

2. por visión

· Por simplicidad solo se consideran las operaciones de lectura y escritura. No se consideran las operaciones de cálculo sobre los datos obtenidos.
Seriabilidad por conflicto
· Eliminar conflictos entre dos o mas transacciones
· Operaciones sobre los mismos datos en mas de una transacción.
· Tipos de operaciones:
* T1: lectura y T2: lectura
* No hay conflicto

* T1: lectura y T2: escritura ó T1: escritura y T2: lectura

* Conflicto: hay que respetar el orden

* T1: escritura y T2: escritura

* Conflicto: el orden afecta al valor final de la BD

· Se dice que hay conflicto cuando se consideran operaciones sobre los mismos datos en dos transacciones diferentes
· Un plan de ejecución se puede transformar en otro cambiando de orden las instrucciones y manteniendo la seriabilidad
· Todos estos planes son equivalentes al plan secuencial.
Seriabilidad por visión
· Se basa en definir una regla de equivalencia menos estricta que la de conflicto.
· Pero basándose solo en las operaciones de lectura y escritura.
· Se puede considerar como un refinamiento de la equivalencia por conflicto.
Pruebas de seriabilidad
· Hacer la prueba de seriabilidad después de ejecutar el plan es un poco tarde.
· El objetivo es desarrollar un protocolo de control de concurrencia que asegure la seriabilidad.
· No suele analizar el grafo de precedencia.
· Lo habitual es imponer restricciones que aseguren la seriabilidad del plan.
· Las pruebas sirven para ayudar a comprender los protocolos de control de concurrencia.
Teoría de la seriabilidad

Una calendarización (schedule), también llamado una historia, se define sobre un conjunto de transacciones T = { T1, T2, ..., Tn } y especifica un orden entrelazado de la ejecución de las operaciones de las transacciones. La calendarización puede ser especificada como un orden parcial sobre T.

Ejemplo 6.1. Considere las siguientes tres transacciones:
T1: Read( x )
T2: Write( x )
T3: Read( x )

Write( x )
Write( y )
Read( y )

Commit
Read( z )
Read( z )

Commit
Commit

Una calendarización de las acciones de las tres transacciones anteriores puede ser:

H1 = { W2(x), R1(x), R3(x), W1(x), C1, W2(y), R3(y), R2(z), C2, R3(z), C3 }

¨ Dos operaciones Oij(x) y Okl(x) (i y k no necesariamente distintos) que accesan el mismo dato de la base de datos x se dice que están en conflicto si al menos una de ellas es una escritura. De esta manera, las operaciones de lectura no tienen conflictos consigo mismas. Por tanto, existen dos tipos de conflictos read-write (o write-read) y write-write. Las dos operaciones en conflicto pueden pertenecer a la misma transacción o a transacciones diferentes. En el último caso, se dice que las transacciones tienen conflicto. De manera intuitiva, la existencia de un conflicto entre dos operaciones indica que su orden de ejecución es importante. El orden de dos operaciones de lectura es insignificante
.
vv

martes, 16 de agosto de 2011

sistemas operativos



Institution Tecnológico Superior de Nochistlán

Sistemas operativos

María Cristina Muñoz Sandoval

3er semestre
15-agosto-2011




Clasificación de los Sistemas Operativos.
Sistema Operativo Multitareas.
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicación que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicación. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicación esta esperando información del usuario), y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Sistema Operativo Manotearas.
Los sistemas operativos manotearas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Secuencia por Lotes.
La secuencia por lotes o procesamiento por lotes en microcomputadoras, es la ejecución de una lista de comandos del sistema operativo uno tras otro sin intervención del usuario. En los ordenadores más grandes el proceso de recogida de programas y de conjuntos de datos de los usuarios, la ejecución de uno o unos pocos cada vez y la entrega de los recursos a los usuarios. Procesamiento por lotes también puede referirse al proceso de almacenar transacciones durante un cierto lapso antes de su envío a un archivo maestro, por lo general una operación separada que se efectúa durante la noche.
Los sistemas operativos por lotes (batch), en los que los programas eran tratados por grupos (lote) en ves de individualmente. La función de estos sistemas operativos consistía en cargar en memoria un programa de la cinta y ejecutarlo. Al final este, se realizaba el salto a una dirección de memoria desde donde reasumía el control del sistema operativo que cargaba el siguiente programa y lo ejecutaba. De esta manera el tiempo entre un trabajo y el otro disminuía considerablemente.
Tiempo Real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes.
Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro se necesitarían respuestas inmediatas para evitar una catástrofe.
Tiempo Compartido.
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario.