miércoles, 17 de noviembre de 2010

UNIDAD 2 Gestión del procesador, comunicación y sincronización de datos(2da parte)


Bloqueos mutuos o deadlocks

Bueno hoy hablaremos sobre los bloqueos mutuos también conocido como deadlocks o interbloqueo que es cuando tenemos demasiados procesos que compiten por recursos finitos, puede darse una situación en la que un proceso está bloqueado esperando por un recurso que nunca se liberará, porque lo posee otro proceso también bloqueado.A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los bloqueos mutuos.

En el siguiente ejemplo que vemos arriba es uno de los más comunes para entender lo que es el bloqueo mutuo. Cuatro autos en una intersección de caminos que cada uno bloquea al otro, por lo que existe un interbloqueo que no tiene por tanto una solución sencilla ya que para que cada uno se pueda mover se ha de mover el de delante suya.

Métodos para manejar bloqueos mutuos

No hacer absolutamente nada

Los bloqueos mutuos son evidentemente indeseables. Los recursos retenidos por los procesos bajo bloqueo mutuo no están disponibles para otros procesos, y los procesos en deadlock no pueden avanzar. Pero si un bloqueo mutuo se produce, en promedio, cada diez años y en cambio el sistema se cae todos los días por fallas en el hardware o en el sistema operativo, entonces el problema de los bloqueos mutuos es irrelevante.

Detección y recuperación

Una posibilidad es monitorear cada cierto tiempo el estado del grafo de recursos.
Si se detecta un ciclo, se matan todos los procesos del ciclo , o se van matando procesos del ciclo hasta que no queden ciclos. Es un método drástico, pero mejor que nada.

Prevención

Exclusión mutua.
Hay recursos que son intrínsecamente no compatibles, de modo que no se puede descartar la exclusión mutua.
No expropiación.
Esta condición se puede eliminar imponiendo expropiación. Si un proceso P tiene recursos y solicita otro que está ocupado, se le pueden expropiar a P los que ya tiene, o bien expropiarle al otro proceso el recurso que P necesita. Es aplicable a cierta clase de recursos (cuyo estado se puede almacenar y luego recuperar), pero no a otros como registros de base de datos o impresoras.
Retención y espera.
Podemos impedir esta condición exigiendo que los procesos soliciten de una vez, al comienzo, todos los recursos que van a necesitar. Si uno o más recursos no están disponibles, el proceso se bloquea hasta que pueda obtenerlos todos. Inconvenientes: muchos procesos no pueden saber de antemano qué y cuántos recursos necesitarán. Subutilización de recursos, ya que quedan retenidos de principio a fin de la ejecución



jueves, 30 de septiembre de 2010

II Unidad: Gestión del procesador, comunicación y sincronización de datos.

Primero partiremos diciendo lo que es un proceso en un sistema operativo, un proceso es un programa en ejecución y pueden ser cooperantes (procesos que interactúan entre si) e independientes (no interactúan).
Los procesos se pueden encontrar en los siguientes estados: nuevo, ejecutándose, en espera, listo y terminado.
Los sistemas operativos poseen una planificación de procesos y es esto el medio por el cual se elige que proceso ejecutar y existen varios medios de planificación los cuales explicaremos ahora:
Planificación round- robin:
En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.
Planificación por prioridad:
Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados.
Colas múltiples:
Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar y en donde el trabajo más corto primero. El problema de este método es que los procesos mas largos a veces no son ejecutados ya que llegan cada vez procesos mas cortos que el y tiene que esperar que se desocupe ese proceso.
Los principales objetivos de la planificación de los procesos son los siguientes:
1. Equidad, todos los procesos deben poder ejecutarse
2. Eficacia, mantener ocupada la cpu un 100% del tiempo
3. Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
4. Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados
5. Rendimiento, maximizar el número de tareas procesadas por hora.




¿Que son los procesos ligeros?
Los procesos ligeros son programas en ejecución que básicamente son procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada. Dentro de esta información privada podemos encontrar:

1) Contador de programa
2) Pila
3) Registros.
4) Estado del proceso ligero.
5) Variables globales.
6) Archivos abiertos
7) Señales
8) Semáforos.
9) Contabilidad.

miércoles, 1 de septiembre de 2010

5ta Generacion de Computadoras

Como ya todos sabemos existe varias generaciones de computadores y este análisis se centrara en la quinta generación, y aunque no existe aun acuerdo en si esta generación es la actual en la que nos encontramos o si existe ya una sexta generación de ordenadores nosotros tomaremos esta quinta generación como la ultima.


La quinta generación nace a finales de los años 80 y se extiende hasta nuestros días, esta generación quería como principal avance lograr en los ordenadores la IA (inteligencia artificial) donde se esta intentando crear hardware y software para que los ordenadores puedan aprender de procesos anteriormente realizados y aplicarlos en nuevas actividades tal y como un humano lo hace.

Las características principales de esta generación son:

Inteligencia Artificial: trata de aplicar los procesos del pensamiento humano usados en la solución de problemas a la computadora.

Robótica: Los robots estan siendo diseñados con inteligencia
artificial, para que puedan responder de mejor forma a situaciones no predefinidas

Sistemas expertos: Se refieren a una aplicación de inteligencia artificial que usa una base de conocimiento de la experiencia humana para ayudar a la resolución de problemas.


En esta generación se han hecho múltiples avances en la tecnología de computadores ya que contrariamente a lo sucedido en antiguas generaciones es en esta donde los avances tecnológicos se hacen mas rápidamente y en un muy corto plazo se logra sacar un computador con el doble de potencia de su predecesor haciendo la tecnología cada vez mas renovable. Es en esta quinta generación donde por ejemplo nacen los ordenadores multiprocesos capaces de tener varios microprocesadores para que los equipos puedan realizar procesos paralelos. También aquí se establece el DVD como estándar para almacenar datos, imágenes y sonidos, reemplazando así a sus predecesores como los cd’s y disquetes. Es aquí donde también crece la Internet y la World Wide Web que esta presente en casi cada hogar del mundo y que se ha hecho una gran herramienta para las empresas y para la comunicación a distancia dejando casi de lado lo que es el teléfono ya que a través de esta se puede transmitir la imagen y la voz.