miércoles, 29 de agosto de 2012

Foro de Sistemas Operativos

Sistemas Operativos

jueves, 23 de agosto de 2012

Conceptos Basicos

1.1 Conceptos Básicos

 Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos.

 Comienza a trabajar cuando en memoria se carga un programa especifico y aun antes de ello, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.

 Multitarea

El término multitarea se refiere a la capacidad del Sistema Operativo para correr más de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar Sistema Operativo multitarea, el primero requiere de la cooperación entre el Sistema Operativo y los programas de aplicación.Los programas son escritos de tal manera que periódicamente inspeccionan con el
Sistema Operativo para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el Sistema Operativo de las computadoras de Machintosh y DOS corriendo Windows de Microsoft.


 El segundo método es el llamada multitarea con asignación de prioridades. Con este esquema el Sistema Operativo mantiene una lista de procesos (programas) que están corriendo. Cuando se inicia cada proceso en la lista el Sistema Operativo le asigna una prioridad. En cualquier momento el Sistema Operativo puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el Sistema Operativo también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente.Con multitarea de asignación de prioridades el Sistema Operativo puede sustituir en cualquier momento el proceso que está corriendo y reasignar el tiempo a una tarea de más prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea.

Multiusuario

Un Sistema Operativo multiusuario permite a más de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el Sistema Operativo también debe ser capaz de efectuar multitareas.
Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción.
Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.UnixUnix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo:



  • Mediante Módems.
  • Mediante conexión de terminales a través de puertos seriales
  • Mediante Redes.
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 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.



 1.2 Características de desarrollo en aplicaciones modernas
  • 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.

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.

Medios de comunicación.

El cable par trenzado:
Es de los más antiguos en el mercado y en algunos tipos de aplicaciones es el más común. Consiste en dos alambres de cobre o a veces de aluminio, aislados con un grosor de 1 mm aproximadamente. Los alambres se trenzan con el propósito de reducir la interferencia eléctrica de pares similares cercanos. Los pares trenzados se agrupan bajo una cubierta común de PVC (Policloruro de Vinilo) en cables multipares de pares trenzados (de 2, 4, 8, hasta 300 pares).Un ejemplo de par trenzado es el sistema de telefonía, ya que la mayoría de aparatos se conectan a la central telefónica por medio de un par trenzado. Actualmente, se han convertido en un estándar en el ámbito de las redes LAN como medio de transmisión en las redes de acceso a usuarios.

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.


Fibra Óptica:
A partir de 1970, cables que transportan luz en lugar de una corriente eléctrica. Estos cables son mucho más ligeros, de menor diámetro y repetidores que los tradicionales cables metálicos. Además, la densidad de información que son capaces de transmitir es también mucho mayor. Una fibra óptica, el emisor está formado por un láser que emite un potente rayo de luz, que varía en función de la señal eléctrica que le llega. El receptor está constituido por un fotodiodo, que transforma la luz incidente de nuevo en señales eléctricas.

La comunicación por medio de una red se lleva a cabo en dos diferentes categorías: la capa física y la capa lógica.

La capa física incluye todos los elementos de los que hace uso un equipo para comunicarse con otros equipos dentro de la red, como, por ejemplo, las tarjetas de red, los cables, las antenas, etc.

La comunicación a través de la capa física se rige por normas muy rudimentarias que por sí mismas resultan de escasa utilidad. Sin embargo, haciendo uso de dichas normas es posible construir los denominados protocolos, que son normas de comunicación más complejas, capaces de proporcionar servicios que resultan útiles.

Los protocolos son un concepto muy similar al de los idiomas de las personas. Si dos personas hablan el mismo idioma, es posible comunicarse y transmitir ideas.

La razón más importante sobre por qué existe diferenciación entre la capa física y la lógica es sencilla: cuando existe una división entre ambas, es posible utilizar un número casi infinito de protocolos distintos, lo que facilita la actualización y migración entre distintas tecnologías.

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.

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
3) El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.

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.3 Características de un sistema operativo moderno

Funciones de los sistemas operativos modernos.

1.- Aceptar todos los trabajos y conservarlos hasta su finalización.

2.- Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.

3.- Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.

4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.

5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos

.6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después).

7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.

8.- Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.

9.- Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos.

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 (gestionar a través del kernel). 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.