lunes, 23 de septiembre de 2013

EL PROCESADOR

El procesador, también conocido como CPU o micro, es el cerebro del PC. Se encarga de hacer funcionar a las aplicaciones y el sistema operativo dando respuesta a las órdenes que le envías a través de los periféricos de entrada como el teclado o el ratón.
Físicamente, el micro, no es más que una pastilla de silicio. En un PC se coloca sobre la placa base en un conector que se denomina socket. En un laptop es normal que te lo encuentres soldado. La placa permite la conexión con los restantes dispositivos de tu equipo como son la memoria, la tarjeta gráfica o el disco duro usando para ello un conjunto de circuitos y chips denominado chipset.
Es uno de los elementos del PC que más ha evolucionado a lo largo del tiempo. Cada nueva generación ha permitido reducir el tamaño de los transistores que se encuentran en su interior permitiendo integrar un mayor número de bloques funcionales. Puedes ver los transistores como pequeños ladrillos que unidos dan forma al micro.
Estas mejoras han permitido aumentar la integración permitiendo incluir más bloques funcionales en su interior. En un principio fue el controlador de memoria, después la tarjeta gráfica y en un futuro muy cercano, pasaremos del concepto de procesador a lo que se denomina SOC, es decir, un chip con todos los elementos de la placa base integrados.
¿Qué partes internas tiene un procesador?
Ten en cuenta que no todos son iguales pero la mayoría de ellos incluyen entre otros elementos:
Núcleos. Un núcleo no es más que un procesador en miniatura. Tener varios integrados permite trabajar con más de una aplicación al mismo tiempo y además puedes acelerar ciertos tipos de procesamiento.
Cache. Uno de los sistemas más importantes dentro de un PC es su sistema de memoria el cual está compuesto por varios elementos. La memoria cache, interna al procesador, se usa para mejorar la velocidad de los accesos a la memoria RAM. Si un dato está en la cache ya no tendremos que ir a buscarlo y por lo tanto el procesado es mucho más rápido.
Esta organizada en varios niveles. Será tarea del micro dejar los datos que más se usen lo más cerca del micro.
Controlador de memoria. Al incorporar el controlador de memoria en el interior del procesador y quitarlo de la placa base se consigue que el acceso a la memoria RAM sea más eficiente. Esto tiene un inconveniente y es que sólo puedes usar el tipo de memoria para la que tu procesador esté preparado.
Tarjeta gráfica. Si integran este componente ya no hablamos de CPUs sino de APUs. Ya no estaríamos ante un micro convencional si no ante un hibrido entre procesador y tarjeta gráfica.
Otros elementos. Los micros han incorporado otros elementos que se encontraban antes sobre la placa base. Por ejemplo, el controlador de PCI Express, aumentando la velocidad con la que el micro es capaz de comunicarse con una tarjeta gráfica discreta.
¿Cómo funciona de forma interna un procesador?
El funcionamiento de un procesador se puede dividir en las siguientes etapas:
Se lee una instrucción de memoria. Para que te puedas hacer una idea de la complejidad de un procesador actual su conjunto de instrucciones está compuesto por más de mil diferentes y va creciendo con el tiempo. Se busca siempre mejorar las prestaciones.
Se buscan los datos necesarios. No todas las instrucciones son iguales y algunas necesitaran de datos, los cuales normalmente estarán en la memoria RAM, para poder llevar a cabo su trabajo. Si este es el caso hay que esperar a tenerlos disponibles. Es muy importante que el flujo de datos y de instrucciones sea lo más rápido posible para que no se produzcan bloqueos.
Se realiza la operación. Una vez que se tiene todo se ejecuta la operación, para esto puede ser necesario el trabajo de varios bloques dentro del propio procesador como puede ser la unidad aritmética lógica o la de punto flotante.
Se pasa a la siguiente instrucción. Que no es siempre es la que se encuentra a continuación en la memoria. Muchas instrucciones pueden cambiar el flujo del programa y permitir saltos o repetir ciertas acciones hasta que se cumpla una condición.
El procesador es el cerebro del sistema, encargado de procesar toda la información. Es el componente donde es usada la tecnología más reciente. Existen en el mundo sólo cuatro grandes empresas con tecnología para fabricar procesadores competitivos para computadoras: Intel (que domina más de un 70% del mercado), AMD, Vía (que compró la antigua Cyrix) e IBM, que fabrica procesadores para otras empresas, como Transmite.
Algunos de los modelos más modernos, y los cuales cuentan con la tecnología más avanzada de la actualidad son el Intel Core Sandy Bridge en sus variables i3, i5 e i7, el AMD Fusión y FX, los cuales pueden incorporar hasta 8 núcleos.

Los anteriormente mencionados cubren la mayoría de las necesidades en computadoras de escritorio, mientras que para dispositivos portátiles como celulares y tablets podemos contar con procesadores ARM, Atom, Tegra2 y Snapdragon. 



El procesador es el componente más complejo y frecuentemente más caro, pero él no puede hacer nada solo. Como todo cerebro, necesita de un cuerpo, que es formado por los otros componentes de la computadora, incluyendo la memoria, el disco duro, la placa de vídeo y de red, monitor, teclado y mouse.

Para que sirven los Coolers?

Generalmente los procesadores, debido a su estructura, y a la velocidad, calientan, y para evitar ese sobrecalentamiento, se usan los Coolers.
En las computadoras actuales la refrigeración de los procesadores es realizada a través de un disipador de calor, fabricado en aluminio o cobre, con un pequeño ventilador sobre el y un conducto de aire que extrae el aire caliente del gabinete.

En el siguiente video podremos observar las características de rendimiento de uno de los más novedosos procesadores de la actualidad, el AMD Fusion.


SO Distribuidos (INFORMACION A FONDO)




Sistemas Operativos Distribuidos

Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin
embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseño el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable.

Transparencia
El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara.
En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuario como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizarla a través de varios ordenadores.

Eficiencia
La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo.
Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un único procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres más rápidos en cada momento.
La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local.


Flexibilidad
Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micronúcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micronúcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario.


Núcleo monolítico
Como ejemplo de sistema operativo de núcleo monolítico está UNIX. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recompilación del núcleo.


Micronúcleo
La arquitectura de micronúcleo ofrece la alternativa al núcleo monolítico. Se basa en una programación altamente modular, y tiene un tamaño mucho menor que el núcleo monolítico. Como consecuencia, el refinamiento y el control de errores son más rápidos y sencillos. Además, la actualización de los servicios es más sencilla y ágil, ya que sólo es necesaria la recompilación del servicio y no de todo el núcleo. Como contraprestación, el rendimiento se ve afectado negativamente.
En la actualidad la mayoría de sistemas operativos distribuidos en desarrollo tienden a un diseño de micronúcleo. Los núcleos tienden a contener menos errores y a ser más fáciles de implementar y de corregir. El
sistema pierde ligeramente en rendimiento, pero a cambio consigue un gran aumento de la flexibilidad.


Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debería no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc.
Aunque este punto sería muy deseable, puede que las soluciones válidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseño.
La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.


Fiabilidad
Una de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas máquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle.
La forma más evidente de lograr la fiabilidad de todo el sistema está en la redundancia. La información no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos máquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idéntica de los archivos en otro equipo.
Otro tipo de redundancia más compleja se refiere a los procesos. Las tareas críticas podrían enviarse a varios procesadores independientes, de forma que el primer procesador realizaría la tarea normalmente, pero ésta pasaría a ejecutarse en otro procesador si el primero hubiera fallado.

Comunicación
La comunicación entre procesos en sistemas con un único procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexión física entre las distintas memorias de los equipos, la comunicación se realiza mediante la transferencia de mensajes. 

Tipos de SISTEMAS OPERATIVOS DISTRIBUIDOS





Sistemas Operativos Distribuidos
Un sistema operativo distribuido es la unión lógica de un grupo de sistemas operativos sobre una colección de nodos computacionales independientes, conectados en red, comunicándose y físicamente separados.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Chorus Solaris-MC Sprite Mach Amoeba Taos Spring 

HARDWARE de los Sistemas Operativos Distribuidos


ANTECEDENTES DE LOS SISTEMAS OPERATIVOS DISTRIBUIDOS


Esta es una LINEA DE TIEMPO de los SO DISTRIBUIDOS