domingo, 19 de abril de 2015


MULTIPROCESO

Que es?
Es la facultad del S.O. para utilizar varios procesadores físicos en el equipo, repartiendo el tratamiento de los procesos del S.O. y las aplicaciones.

TIPOS DE MULTIPROCESO
  • Multiproceso asimétrico : Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como apoyo para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.
  • Multiproceso simétrico : Cuando se trabaja de manera simétrica, el sistema operativo y las aplicaciones tiene sus peticiones de ejecución distribuidas en los distintos procesadores.
LAS CAPACIDADES FUNDAMENTALES DEL MULTIPROCESO SON:
- Equilibrio de cargas    de E/ S. 
-
 Equilibrio de carga     del procesador. 
-
 Reconfiguración.



PARALELISMO
El paralelismo se basa en la informática, es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en el paralelo.
Aplicaciones
El empleo de la computación paralela se convierte cada día en mas grandes y rápida, muchos problemas considerados anteriormente muy largos y costosos se han podido solucionar. El paralelismo se ha utilizado para muchas temáticas diferentes, desde bioinformática para hacer plegamientos de proteínas, hasta economía para hacer simulaciones en matemáticas financieras.

Aplicaciones comerciales. Las aplicaciones para sistemas en paralelo se están expandiendo al ganar impulso el mercado de aplicaciones comerciales estratégicas y entrar en sus fases iniciales el mercado de servidores video.

- Proceso de rendimiento global. Tanto los usuarios técnicos como los comerciales están evaluando los sistemas en paralelo como motores de rendimiento global o throughput.

- Escalamiento para gestión de capacidad. En el mercado comercial, los usuarios están explorando el paralelismo como una forma de ofrecer una gestión de la capacidad optimizada y de bajo riesgo.

- Impulso del software. Los vendedores de software están comenzando a mostrar un mayor interés en desarrollar aplicaciones paralelas como consecuencia de que cierto número de vendedores de hardware importantes están suministrando productos de proceso en paralelo o han anunciado estrategias para penetrar en este mercado.
Tipos de paralelismo Informática
1.       Nivel bit
Se basa en el tamaño de la palabra que es capaz de manejar el procesador:
8 bits
16 bits
32 bits
64 bits .....
Mientras más grande el tamaño de la palabra menos instrucciones ejecuta el procesador para realizar una operación determinada.
2. Nivel instrucción
Mecanismos de la arquitectura son utilizados entonces para ejecutar este tipo de paralelismo:

*      Pipelining
*      Superscalar
*      Ejecución desordenada
*      Ejecución especulativa
*      Renombramiento de registros
*      Predicción de precedencia de memoria
*      Predicción de ramificaciones del flujo

3. Nivel de Datos
Este tipo de paralelismo se enfoca en la distribución de los datos entre varios procesadores.
Se conoce también como paralelismo a nivel de lazos (loop-level paralelism).

4. Nivel tarea
Ø  En este caso un programa paralelo que ejecuta cálculos distintos sobre el mismo conjunto de datos o sobre datos diferentes.
Ø  El paralelismo funcional generalmente no escala con el tamaño del problema.
Ø  El paralelismo o procesamiento paralelo ha sido empleado durante muchos años, sobre todo para la computación de alto rendimiento. Teniendo en cuenta las generaciones de procesadores y sus características.
Obtener distintos resultados a partir de un mismo conjunto de datos, por ejemplo:

ü  Para un matriz hallar
ü  El determinante
ü  La traspuesta
ü  La inversa
ü   
Desventajas
·         Requieren de un gran número de ciclos de procesamiento o acceso a una gran cantidad de datos.
·         Encontrar un hardware y un software que permitan brindar estas utilidades comúnmente proporciona inconvenientes de costos, seguridad y disponibilidad.
Ventajas
Ø  Brinda a las empresas, instituciones y usuarios en general el beneficio de la velocidad
Ø  Ventajas competitiva, parvee una mejora de los tiempos para la producción de nuevos productos y servicios.
Ø  Colaboración y flexibilidad operacional
Clasificación de los sistemas paralelos  en los sistemas informáticos
*      SISD es un término que se refiere a una arquitectura en la que un sólo procesador, un uniprocesador, ejecuta un sólo flujo de instrucciones, para operar sobre datos almacenados en una única memoria.

*      SIMD: es una técnica empleada para conseguir paralelismo a nivel de datos.
*      MISD: es un tipo de arquitectura de computación paralela donde muchas unidades funcionales realizan diferentes operaciones en los mismos datos. Las arquitecturas segmentadas pertenecen a este tipo, aunque un purista podría decir que los datos son diferentes después de ser procesados por cada etapa en el pipeline.
*      MIMD: es una técnica empleada para lograr paralelismo . Las máquinas que usan MIMD tienen un número de procesadores que funcionan asíncronos e independientemente. En cualquier momento, cualquier procesador puede ejecutar diferentes instrucciones sobre distintos datos.
*      FLUJO DE CONTROL: Las instrucciones se van ejecutando según el orden en el que se encuentran en memoria.
*      FLUJO DE DATOS: el flujo de ejecución es conducido por los datos; una instrucción será ejecutada cuando los operandos estén disponibles.
*      REDUCCION: la ejecución se realiza por demanda, una instrucción será ejecutada cuando otra necesite sus resultados. Son una clase de las de flujo de datos.

sábado, 18 de abril de 2015


INANICIÓN DE LOS SISTEMAS

Es un problema relacionado con los sistemas
multitarea, donde a un proceso o un hilo de ejecución se le deniega siempre el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.

COMPARACION CON INTERBLOQUEO
    La inanición es una situación similar al interbloqueo, pero las causas son diferentes. En el interbloqueo, dos procesos o dos hilos de ejecución llegan a un punto muerto cuando cada uno de ellos necesita un recurso que es ocupado por el otro. En cambio, en este caso, uno o más procesos están esperando recursos ocupados por otros procesos que no se encuentran necesariamente en ningún punto muerto.

EJEMPLOS:


SEMÁFOROS

Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
 Los semáforos que fueron introducidos inicialmente por Dijkstra (1968). Son componentes de muy bajo nivel de abstracción, de fácil comprensión y con una gran capacidad funcional. Por el contrario, son unos componentes que por su bajo nivel de abstracción resultan muy peligrosos de manejar y frecuentemente son causa de muchos errores.

viernes, 17 de abril de 2015


HILOS Y HEBRAS

Que es?
Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo con otra tarea.
Para que sirven?
Un hilo es una característica que permite a una aplicación realizar varias tareas a la vez. 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, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.
DIFERENCIAS ENTRE HILOS Y HEBRAS


VENTAJAS 





BLOQUEO MUTUO

QUE ES BLOQUEO MUTUO?
Es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.


4 CONDICIONES NECESARIAS
  • CONDICIÓN DE EXCLUSIÓN MUTUA: EXISTENCIA DE AL MENOS DE UN RECURSO COMPARTIDO POR LOS PROCESOS, AL CUAL SÓLO PUEDE ACCEDER UNO SIMULTÁNEAMENTE.
  • CONDICIÓN DE RETENCIÓN Y ESPERA: LOS PROCESOS MANTIENEN LOS RECURSOS QUE YA LES HABÍAN SIDO ASIGNADOS MIENTRAS ESPERAN RECURSOS ADICIONALES.
  • CONDICIÓN DE NO EXPROPIACIÓN: LOS RECURSOS NO PUEDEN SER EXPROPIADOS POR LOS PROCESOS, ES DECIR, LOS RECURSOS SÓLO PODRÁN SER LIBERADOS VOLUNTARIAMENTE POR SUS PROPIETARIOS.
  • CONDICIÓN DE ESPERA CIRCULAR: EXISTE UNA CADENA CIRCULAR DE PROCESOS EN QUE CADA UNO MANTIENE A UNO O MÁS RECURSOS QUE SON REQUERIDOS POR EL SIGUIENTE EN LA CADENA.
7 CASOS DE BLOQUEO MUTUO.
un bloqueo mutuo suele ocurrir cuando recursos no compartibles como archivos, impresoras o escaneres, se asignan trabajos que requieren de otros recursos compatibles: recursos que han sido bloqueados por otros trabajos.
también puede ocurrir en recursos compartibles como discos y bases de datos.
CASO 1:Bloqueos mutuos en solicitudes de archivos Se les permite solicitar y retener archivos durante la duración de su ejecución,puede ocurrir un bloqueo.

Caso 2: Bloqueos Mutuos En Bases De Datos.
  • Un bloqueo mutuo también puede ocurrir si dos procesos tienen acceso a un base de datos y bloquean registros.
  • Es una técnica utilizada para garantizar la integridad de los datos.
  • El usuario bloquea a los demás usuarios mientras trabaja en la base de datos.  
    Caso 3 Bloqueos Mutuos En La Asignación De Dispositivos Dedicados 
  •       Todos los trabajos están esperando que termine   otra tarea y que libere su unidad de cinta, un hecho que no pasara.
  •     El uso de un grupo de dispositivos dedicados puede bloquear el sistema.      
    Caso 4 Bloqueos En La Asignación Múltiple De Dispositivos.
  • Pueden ocurrir cuando varios procesos solicitan y retienen varios dispositivos dedicados mientras otros procesos actúan.
  • Los bloqueos mutuos no están restringidos a procesos que compiten por el mismo tipo de dispositivo.
    Caso 5 Bloqueos Mutuos En Operaciones Periféricas Simultaneas En Línea.
  • Instalar un dispositivo de alta velocidad, un disco entre ella y la CPU.
  • El disco acepta salidas de varios usuarios y actúa como un área de almacenamiento temporal para todas las salidas.
  • Una impresora puede aceptarlas operaciones periféricas simultaneas en línea.
Caso 6 Bloqueos Al Compartir Discos.
Los discos están diseñados para ser compartidos por lo que no es raro que dos procesos usen tareas diferentes del mismo disco.
Sin Controles para regular el uso de la unidad de disco, procesos en competencia  podrían evitar comandos conflictivos y bloquear el sistema.
Caso 7 Bloqueos Mutuos En Una Red.
Una Red cogestionada, que ha llenado un porcentaje grande de su buffer de E/S se puede bloquear totalmente.
Si no se tiene protocolos para controlar el flujo de mensajes a través de la red.

 CICS / RISC 

ARQUITECTURAS CISC

La microprogramación es una característica importante y esencial de casi todas las arquítecturas CISC.
Como por ejemplo:
Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.
La microprogramación significa que cada instrucción de máquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador.
En la década de los sesentas la micropramación, por sus características, era la técnica más apropiada para las tecnologías de memorias existentes en esa época y permitía desarrollar también procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones.
Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj (al menos uno por microinstrucción).

ARQUITECTURAS RISC

Buscando aumentar la velocidad del procesamiento se descubrió en base a experimentos que, con una determinada arquitectura de base, la ejecución de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser mas eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnología de encapsulado.
Debido a que se tiene un conjunto de instrucciones simplificado, éstas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcódigo y la necesidad de decodificar instrucciones complejas.
En investigaciones hechas a mediados de la década de los setentas, con respecto a la frecuencia de utilización de una instrucción en un CISC y al tiempo para su ejecución, se observó lo siguiente:
- Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecución de un programa.
- Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos de ejecución más cortos.
Las características esenciales de una arquitectura RISC pueden resumirse como sigue:
  • Estos microprocesadores siguen tomando como base el esquema moderno de Von Neumann.
  • Las instrucciones, aunque con otras características, siguen divididas en tres grupos:a) Transferencia.
    b) Operaciones.
    c) Control de flujo.
  • Reducción del conjunto de instrucciones a instrucciones básicas simples, con la que pueden implantarse todas las operaciones complejas.
  • Arquitectura del tipo load-store (carga y almacena). Las únicas instrucciones que tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor número de acceso a memoria.
  • Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un control implantado por hardware (con un diseño del tipo load-store), casi todas las instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la reorganización de la ejecución de instrucciones por medio de un compilador.
  • Pipeline (ejecución simultánea de varias instrucciones). Posibilidad de reducir el número de ciclos de máquina necesarios para la ejecución de la instrucción, ya que esta técnica permite que una instrucción puede empezar a ejecutarse antes de que haya terminado la anterior.