viernes, 6 de mayo de 2016

Ecuación cuadrática con dos procesadores

Frecuentemente pensamos que cuando nos hablan de dos procesadores en un equipo éste va a ser el doble de veloz; sin embargo, esto no siempre es así. Para demostrarlo se realizará la solución de la ecuación cuadrática con dos procesadores, cada uno de los cuales intentará resolver la mitad de las suboperaciones de la ecuación:


Listado total de suboperaciones a realizar:

  1. b^2 = e
  2. 4a= h
  3. hc = j
  4. e-j = q
  5. q^(1/2) = w
  6. 2a= r
  7. w/r = t
  8. -b + t  ó -b - t
Si lo distribuímos entre los dos procesadores y teniendo en cuenta las dependencias en las operaciones tenemos que:

      Procesador 1         Procesador 2
  1. b^2 = e                  4a = h
  2. hc = j                     2a = r
  3. e-j= q
  4. q^(1/2) = w
  5. w/r = t
  6. -b+t                       -b-t 
Lo que demuestra que con dos procesadores en simultáneo no se reduce el tiempo de ejecución a la mitad ya que dependerá de las dependencias en la tarea a realizar

Algoritmos apropiativos y no apropiativos

No Apropiativo (Una vez que se le ha otorgado la cpu a un proceso, no le puede ser retirada)También conocido como cooperative multitasking. Una vez que el proceso pasa al estado de ejecución, continúa ejecutando hasta que termina, se bloquean en espera de una E/S o al solicitar algún servicio del sistema. Esta política de ejecución para terminación fue implementada en los primeros sistemas de lote (batch). 

Características 

  • Significa que los trabajos “largos” hacen esperar a los trabajos “cortos”.
  • Logra más equidad en el tratamiento de los procesos.
  • Logra hacer más predecibles los tiempos de respuesta puesto que los trabajos nuevos de prioridad alta no pueden desplazar a los trabajos en espera.

Apropiativo (Una vez que se le ha otorgado la cpu a un proceso, le puede ser retirada) 
Generalmente conocida como política de planificación por torneo. El proceso que se está ejecutando actualmente puede ser interrumpido y pasado al estado de listos por el sistema operativo. La decisión de sustituirlos por otro proceso puede llevarse a cabo cuando llega un nuevo proceso, cuando se produce una interrupción que lleva a un proceso bloqueado al estado listo o periódicamente, en función de una interrupción del reloj. 

Características
 
  • Es útil cuando los procesos de alta prioridad requieren atención rápida.
  • Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.
  • Tiene su costo en recursos, ya que el intercambio de contexto implica sobrecarga y además requiere mantener muchos procesos en el almacenamiento principal, en espera de la cpu, lo que también implica sobrecarga

Semáforos en sistemas operativos

Un semáforo es una variable especial (o tipo abastracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS.












Para comprender mejor cómo funcionan se deja el siguiente video: