miércoles, 29 de agosto de 2012

Tabla de Sistemas Operativos

A continuación se muestra una tabla muy completa con diferentes sistemas operativos y sus características.


1.3 Características de un sistema operativo moderno


Funciones de los sistemas operativos modernos.

  • Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús.
  • Administrar los dispositivos de hardware en la computadora. Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc.). El SO sirve de intermediario entre los programas y el hardware.
  • Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.
  • Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema"
Algunas caracteristicas de los SO son tan comunes que hoy en día son impresindibles

Características de los sistemas operativos modernos.


En general, se puede decir que un Sistema Operativo tiene las siguientes características:

  • Conveniencia: Un Sistema Operativo hace más conveniente el uso de una computadora.
  • Eficiencia: Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar: Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware: El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos: El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red: El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

1.2.3 Proceso Asíncrono



Es una señal generada por un proceso que requiere atención por parte de otro proceso independientemente de lo que estén haciendo.

Desde hace algún tiempo se ha descubierto que los procesos asíncronos son muy adecuados en muchas circunstancias de procesamiento. A medida que se van encontrando situaciones reales para las cuales este tipo de procesamiento es adecuado, se descubren nuevas ventajas y nuevas desventajas.


Una de las desventajas más importantes consiste en que los procesos asíncronos, a diferencia de los procesos sincrónicos necesitan dejar un rastro de ejecución y además una interfaz administrativa para consultar y tomar decisiones.

Esta administración adicional hace menos factible el uso de procesamiento asíncrono, pero muchas veces esta funcionalidad adicional ofrece una mayor flexibilidad, facilita el monitoreo y permite conocer el estado o la evolución del servicio.

El procesamiento asíncrono es una buena alternativa para ciertas soluciones, como todo, debe aplicarse donde realmente tenga sentido, si no es así puede tener un efecto no deseado como ejemplos puede ser el complicar la interacción en el usuario y el sistema, demorar un proceso que requiere información en línea y agregar complejidad administrativa.

1.2.2 Concurrencia




La concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.


Los temas fundamentales del diseño de sistemas operativos están relacionados con la gestión de procesos e hilos:

  • Multiprogramación: consiste en la gestión de varios procesos dentro de un sistema mono-procesador.
  • Multiprocesamiento: consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
  • Procesamiento distribuido: consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.

La concurrencia es fundamental en todas estas áreas y para el diseño sistemas operativos. La concurrencia comprende un gran número de cuestiones de diseño, incluida la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.

Gracias a la concurrencia podemos realizar varias tareas al mismo tiempo en un SO

Labores del sistema operativo


Elementos de gestión y diseño que surgen por causa de la concurrencia:
  1. El sistema operativo debe seguir a los distintos procesos activos
  2. El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen:
  • Tiempo de procesador
  • Memoria
  • Archivos
  • Dispositivos de E/S
  1. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.

1.2.1 Comunicación en red


1.2.1 Comunicación en red


El crecimiento de las redes locales a mediados de los años ochenta hizo que cambiase nuestra forma de comunicarnos con las computadoras y la forma en que las computadoras se comunicaban entre sí. La importancia de las LAN reside en que en un principio se puede conectar un número pequeño de computadoras que puede ser ampliado a medida que crecen las necesidades.
Uno de los primeros SO ampliamente distribuidos con capacidad para trabajar en red fue Windows 3.11 for Worgroups

Medios de comunicación

El cable par trenzado


Lo que se denomina cable de Par Trenzado consiste en dos alambres de cobre aislados, que se trenzan de forma helicoidal, igual que una molécula de DNA. De esta forma el par trenzado constituye un circuito que puede transmitir datos.

Esto se hace porque dos alambres paralelos constituyen una antena simple. Cuando se trenzan los alambres, las ondas de diferentes vueltas se cancelan, por lo que la radiación del cable es menos efectiva. Así la forma trenzada permite reducir la interferencia eléctrica tanto exterior como de pares cercanos.

Un cable de par trenzado está formado por un grupo de pares trenzados, normalmente cuatro, recubiertos por un material aislante.




El cable coaxial


El cable coaxial tenía una gran utilidad en sus inicios por su propiedad idónea de transmisión de voz, audio y video, además de textos e imágenes.Se usa normalmente en la conexión de redes con topología de Bus como Ethernet y ArcNet, se llama así porque su construcción es de forma coaxial. La construcción del cable debe de ser firme y uniforme, porque si no es así, no se tiene un funcionamiento adecuado.

Elementos del cable coaxial

Fibra Óptica


La fibra óptica es el material que constituye la base de las modernas redes de telecomunicaciones de alta capacidad. Una fibra óptica no es más que un larguísimo filamento de vidrio, tan fino que es perfectamente flexible, debidamente protegido por una camisa plástica. A traves de estos haces se transmiten, mediante un láser acoplado, señales luminosas que se detectan en el destino.

Pero evidentenente, para tener una gran capacidad de transmisión a larga distancia, la fibra debe tener unas características muy particulares. La fabricación de fibra óptica es un proceso de alta tecnología. Tengamos en cuenta que el grosor estándar de la fibra es 125 micras (aproximadamente el doble que un cabello humano) y el núcleo es de unas 8 micras (en fibras monomodo, que son las usadas para comunicaciones a larga distancia). Y evidentemente, es crítico mantener la pureza y la regularidad del núcleo.

Todo ello convierte la fabricación de fibra en un proceso complicado. Sin embargo, el fundamento es sencillo (y es una idea brillante). Se trata de construir grandes tubos de vidrio que reproducen a escala macroscópica la estructura de la fibra. Estos tubos se llaman preformas. Posteriormente, la preforma se va fundiendo y estirando hasta que obtenemos un filamento alargado cuyo fino diámetro reproduce a escala microscópica la preforma original.

El proceso de fabricación de las preformas no es en absoluto sencillo ya que evidentemente no estamos hablando de simple vidrio, sino de unas características muy concretas y una extrema pureza. Un modo de fabricación de preformas es el que mostramos en el siguiente vídeo del Discovery Channel (hay un grave error de doblaje, cuando dice ‘silicona’ en realidad quiere decir ‘sílice’, en inglés silica).



1.2 Características de desarrollo en aplicaciones modernas


Continuando con los conceptos básicos podemos encontrar algunos tipos de aplicaciones modernas que incluyen:
  • Base de datos
  • Win/Web
  • Internet/Intranet/Extranet
  • Web services
  • SOA
  • BMP
  • BI
  • Multiplataforma (incluyendo nuevos aparatos)
  • Dispositivos Móviles
  • Funcionamiento conectado o desconectado
  • Usuarios no entrenados

Las aplicaciones modernas del la computación empiezan desde, aproximadamente, el año 1960 con la creación del disco flexible, el código ASCII y el sistema DOS. Sin embargo estas solo son las bases para la comunicación actual; ya que estos eran solo el principio para lo que ahora utilizamos frecuentemente, como los sistemas de almacenamiento información, lo que ahora son las unidades USB, celulares, etc., anotaciones hechas en Word, Excel, Word Pad, etc., búsqueda que se realizan en foros, encartas, paginas de búsqueda como Wikipedia, etc.) y con ello complementar nuestras tareas cotidianas como lo son las investigaciones, proyectos, e incluso los pasatiempos. También esta sección se remonta del clásico juego llamado "pacman" que ha evolucionado ahora con los juegos on line o algunas consolas, tales como el X-Box, Play Station y Nintendo. Actualmente también se utiliza la computación como un medio de comunicación con el Chat, el correo electrónico, foros y otros medios más. Y aun existen incontables medios más profesionales que ayudan a lo que ahora son los profesionistas como en el caso de la arquitectura e ingeniería el Archicad, Autocad y programas más complejos.


Hoy en día fácilmente podemos reconocer las marcas mas importantes que dominan el mercado del software

1.1 Conceptos Básicos


A continuación se definirán algunos conceptos básicos que se utilizaran durante las siguientes unidades.

Sistema Operativo


Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema.


El objetivo es mantener al usuario alejado de los componentes mas complicados, en este caso el hardware

En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes.

Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador.
Los sitemas operativos mas usados son MacOSX, Linux y Windows

Multitarea


Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

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.

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).

Multiproceso


Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente.Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.

Los sistemas operativos modernos permiten utilizar varios CPU simultaneamente para optimizar el rendimiento y trabajar como una sola unidad

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:

  • Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella.
  • Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los Sistema Operativo tienen que ser rediseñados o diseñados desde el principio para trabajar en un ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles.

Temario


Temario


Unidad I

Tema: Introducción
1.1 Conceptos basicos
1.2 Características de desarrollo en aplicaciones modernas o Base de datos
1.3 Características de un sistema operativo moderno

Unidad II

Tema: Comunicación en los sistemas operativos distribuidos.
2.1 Comunicacion: comunicación con cliente - servidor, comunicación con llamada a procedimiento remoto, comunicación en grupo, tolerancia a fallos.
2.2 Sincronización: relojes físicos, relojes lógicos, usos de la sincronización.
2.3 Nominación: características y estructuras, tipos de nombres, resolución y distribución, servidores y agentes de nombre, mapeo de direcciones, mapeo de rutas, modelo de Terry.
2.4 Comunicación de procesos a través del paso de mensajes en sistemas distribuidos.

Unidad III

Tema: Procesos y procesadores en sistemas operativos distribuidos.
3.1 Conceptos básicos de procesos y procesadores.
3.2 Métodos de distribución de carga(hilos, tareas, procesos).
3.3 Modelos de procesadores: de estación de trabajo, de pila de procesadores, híbrido.
3.4 Asignación de procesadores: modelo y algoritmos con sus aspectos de diseño e implantación.
3.5 Coplanificación.
3.6 Tolerancia a fallos: nivel proceso, nivel almacenamiento.
3.7 Esquemas de seguridad en sistemas distribuidos.
3.8 Sistemas operativos distribuidos en tiempo real.
3.9 Balanceo de carga en sistemas distribuidos.

Unidad IV

Tema: Memoria compartida distribuida(MCD).
4.1 Configuraciónes de memoria compartida distribuida: de circuitos, basada en bus, anillo o con conmutador.
4.2 Modelos de consistencia: estricta, casual, secuencia, débil, de liberación, y de entrada.
4.3 Memoria compartida distribuida en base a paginas: diseño, replica, granulada, consustencia, propietario, y copias.
4.4 Memoria compartida distribuida en base a variables.
4.5 Memoria compartida distribuida en base a objetos.
4.6 Administradores memorias en clusters.

Unidad V

Tema: Usos y tendencias de los sistemas operativos distribuidos.
5.1 Administración de  sistemas operativos distribuidos: instalación, configuración y control.
5.2 Instalación de clusters.
5.3 Estándares de administración en sistemas operativos distribuidos.
5.4 Computo de alto rendimiento a bajo costo.
5.5 Súper computo basado en clustering como solución a la necesidad de alto procesamiento en la nueva  era.
5.6 Tendencias de la investigación.
5.7 Sistemas distribuidos como infraestructura para el soporte de las empresas en las TI.