lunes, 10 de septiembre de 2012

B.-Identificación de un Sistema Operativo


Identificación de un Sistema Operativo


Definición
Un sistema operativo es un programa (software) encargado de poner en funcionamiento el ordenador, puesto que gestiona los procesos básicos del sistema. Así mismo se encarga de gestionar para el usuario el hardware.

El sistema operativo comienza a trabajar en cuanto se enciende el ordenador y es completamente fundamental para que el usuario trabaje con él. Los sistemas operativos realizan tareas básicas y, sin ellos, el ordenador no funcionaría. Así, por ejemplo, el sistema operativo reconoce la conexión del teclado, organiza y ordena los archivos, controla la impresora, la pantalla, etc. Es como un policía de tráfico pues, se encarga
De que los programas no interfieran entre ellos.

Sobre el sistema operativo se instalan los programas que vaya a usar el usuario. Los programas, también llamados aplicaciones son muy diversos.

Funciones del sistema operativo

El sistema operativo cumple varias funciones:
Administración del procesador: el sistema operativo administra la distribución del procesador entre los distintos programas por medio de un algoritmo de programación. El tipo de programador depende completamente del sistema operativo, según el objetivo deseado.
Gestión de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio de memoria asignado para cada aplicación y para cada usuario, si resulta pertinente. Cuando la memoria física es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho más lenta.
Gestión de entradas/salidas: el sistema operativo permite unificar y controlar el acceso de los programas a los recursos materiales a través de los drivers (también conocidos como administradores periféricos o de entrada/salida).
Gestión de ejecución de aplicaciones: el sistema operativo se encarga de que las aplicaciones se ejecuten sin problemas asignándoles los recursos que éstas necesitan para funcionar. Esto significa que si una aplicación no responde correctamente puede "sucumbir".
Administración de autorizaciones: el sistema operativo se encarga de la seguridad en relación con la ejecución de programas garantizando que los recursos sean utilizados sólo por programas y usuarios que posean las autorizaciones correspondientes.
Gestión de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios.
Gestión de la información: el sistema operativo proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo.
Componentes del sistema operativo

El sistema operativo está compuesto por un conjunto de paquetes de software que pueden utilizarse para gestionar las interacciones con el hardware. Estos elementos se incluyen por lo general en este conjunto de software:
El núcleo, que representa las funciones básicas del sistema operativo, como por ejemplo, la gestión de la memoria, de los procesos, de los archivos, de las entradas/salidas principales y de las funciones de comunicación.
El intérprete de comandos, que posibilita la comunicación con el sistema operativo a través de un lenguaje de control, permitiendo al usuario controlar los periféricos sin conocer las características del hardware utilizado, la gestión de las direcciones físicas, etcétera.
El sistema de archivos, que permite que los archivos se registren en una estructura arbórea.
Monousuario
En este tipo de sistema solo hay un único usuario que trabaja con el ordenador y tiene disponibles todos los recursos del sistema para el mismo. Si otro usuario quiere utilizar el sistema ha de esperar a que termine el primero para utilizarlo.
Los ejemplos más claros de sistemas operativos monousuarios pueden ser: DOS (Disk Operating System), Windows XP, Windows 2000, etc.

 Uniprocesador.

Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.

Sistemas Operativos de Red

Son aquellos sistemas que mantienen a dos o más equipos unidos a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos de hardware y software.

También sistema operativo de red (Network Operating System) es un componente software de una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos del ordenador en una red de equipos. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red. Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede añadir al propio sistema operativo del equipo o integrarse con él. Netware de Novell es el ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos sistema operativos para gestionar conjuntamente las funciones de red y las funciones individuales.


Características
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.
Funciones
 Funciones de los sistemas operativos.
·         Aceptar todos los trabajos y conservarlos hasta su finalización.
·         Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
·         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.
·         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.
·         Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
·         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).
·         Protección: Evitar que las acciones de un usuario afecten el trabajo que está realizando otro usuario.
·         Multiacceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
·         Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos
En un entorno de red podemos diferenciar claramente dos componentes:

     Ø  Clientes.- Equipos normalmente configurados con sistemas operativos mono puesto, que se conectan y validan al servidor para poder empezar a trabajar en la red.
     Ø  Servidores.- Equipos configurados con operativos de red que proporcionan recursos a los clientes y el software de red del cliente permite que estos recursos estén disponibles para los equipos clientes. La red del sistema operativo del cliente están coordinados de  forma que todos los elementos de la red funcionen correctamente.
Multiprocesadores
La técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma paralela para obtener un poder de cálculo mayor que el obtenido al usar un procesador de alta tecnología o al aumentar la disponibilidad del sistema (en el caso de fallas del procesador).
Si el sistema informático cuenta con dos o más procesadores, existen sistemas operativos capaces de gestionar varios procesadores a la vez, de esta forma se aprovecha mejor la capacidad del equipo en la ejecución de procesos entre varios procesadores.
Las siglas SMP (multiprocesamiento simétrico  o multiprocesador simétrico) hacen referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria compartida.
·         MultiProceso Simetrico (SMP, Symetrical MultiProcessing): En el cual el sistema operativo utiliza los procesadores por igual alternando el uso de los mismos de forma simultánea.
·         MultiProceso Asimétrico (AMP, Asymetrical MultiProcessing): El sistema reparte las tareas que están realizando los procesadores, determinando que procesos ejecuta cada procesador.
Un sistema de multiprocesadores debe tener capacidad para gestionar la repartición de memoria entre varios procesadores, pero también debe distribuir la carga de trabajo.
Multitareas
Es la capacidad de un sistema operativo para ejecutar varios procesos al mismo tiempo corriendo sobre un procesador o sobre varios. Quienes hayan experimentado con sistemas MS-DOS durante la década del 80 recordarán su incapacidad para realizar este tipo de actividades, algo que fue superado con los primeros Windows de Microsoft, aunque la multitarea era común en otros sistemas operativos muchos años antes, tal es el caso de Unix y derivados.
Las multitareas se dividen en nulas, cooperativas, preferentes y reales.
  • ·         Nulas:
 Estamos hablando de un sistema operativo que, a pesar de carecer de esta característica, puede imitar del alguna forma el comportamiento en espacio de usuario o utilizando algunos trucos. Tal como mencionamos MS-DOS es un ejemplo típico en este sentido.

  • ·         Cooperativo:
Los procesos que corren en el espacio de usuario van cediendo el procesador al sistema operativo en intervalos regulares, siendo un esquema complicado y un tanto arcaico porque si uno de los procesos quedaría congelado sin ceder el procesador al sistema, todo el sistema operativo quedaría congelado también. Encontraremos ejemplos de multitareas cooperativas en los sistemas Microsoft Windows desde su inicio hasta la versión 95.

  • ·         Preferente:
Se comportan de otra manera: en este caso es el sistema operativo mismo el que administra el procesador o los procesadores, mientras los procesos están esperando ejecutarse, repartiendo para cada uno un tiempo de utilización. Siendo el resultado final prácticamente igual al que se obtendría si estuviesen realmente corriendo al mismo tiempo, sin embargo cada proceso utiliza el procesador durante períodos cortos de tiempo. Como ejemplos podemos citar los sistemas de tipo Unix: GNU/Linux, FreeBSD, VMS, AmigaOS, y también Windows NT.

  • ·         Real:
Si el hardware posee más de un procesador, entonces puede existir multitarea de tipo real, con cada proceso corriendo al mismo tiempo en cada CPU.

Multiusuario
En los sistemas operativos antiguos, la idea de multiusuario guarda el significado original de que éste puede utilizarse por varios usuarios al mismo tiempo, permitiendo la ejecución concurrente de programas de usuario. Aunque la idea original de tiempo compartido o el uso de terminales tontas no es ya el más utilizado. Esto debido a que los ordenadores modernos pueden tener múltiples procesadores, o proveer sus interfaces de usuario a través de una red, o en casos especiales, ya ni siquiera existe un solo ordenador físico proveyendo los servicios, sino una federación de ordenadores en red o conectados por un bus de alta velocidad y actuando en concierto para formar un cluster. Desde el principio del concepto, la compartición de los recursos de procesamiento, almacenaje y periféricos facilita la reducción de tiempo ocioso en el (o los) procesador(es), e indirectamente implica reducción de los costos de energía y equipamiento para resolver las necesidades de cómputo de los usuarios.
Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones y los sistemas tipo Unix como Linux, Free BSD y Mac OS X. En la familia de los sistemas operativos Microsoft Windows, desde Windows 95 hasta la versión Windows 2000, proveen soporte para ambientes personalizados por usuario, pero no admiten la ejecución de múltiples sesiones de usuario mediante el entorno gráfico.
 Las versiones de Windows 2000 server y Windows 2003 server ofrecen el servicio Terminal Server el cual permite la ejecución remota de diferentes sesiones de usuario.

Marco teórico
Sistema multiusuario, es aquel que distintos usuarios pueden trabajar a la vez en nuestro sistema. La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en ocasiones también puede aplicarse a programas de ordenador de otro tipo. En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente. En los sistemas operativos antiguos, la idea de multiusuario guarda el significado original de que éste puede utilizarse por varios usuarios al mismo tiempo, permitiendo la ejecución concurrente de programas de usuario. Aunque la idea original de tiempo compartido o el uso de terminales tontas no es ya el más utilizado.
Tipos de sistemas operativos
Los sistemas operativos pueden ser clasificados de distintas formas o tipos:
A) Según la administración de tareas:
- Monotarea: este tipo de sistemas operativos son capaces de manejar un programa o realizar una sola tarea a la vez. Son los más antiguos. Por ejemplo, si el usuario está escaneando, la computadora no responderá a nuevas indicaciones ni comenzará un proceso nuevo.

- Multitarea: esta característica es propia de los S.O. más avanzados y permiten ejecutar varios procesos a la vez, desde uno o varios ordenadores, es decir que los pueden utilizar varios usuarios al mismo tiempo. Esto se puede realizar por medio de sesiones remotas una red o bien, a través de terminales conectadas a una computadora.

B) Según la administración de usuarios:

- Monousuario: Sólo pueden responder a un usuario por vez. De esta manera, cualquier usuario tiene acceso a los datos del sistema. Existe un único usuario que puede realizar cualquier tipo de operación.

- Multiusuario: esta característica es propia de aquellos S.O. en los que varios usuarios pueden acceder a sus servicios y procesamientos al mismo tiempo. De esta manera, satisfacen las necesidades de varios usuarios que estén utilizando los mismos recursos, ya sea memoria, programas, procesador, impresoras, scanner, entre otros.

Ejemplos:
 Algunos ejemplos de sistemas operativos para computadoras son: DOS; Windows 3.1, 95/98/Me, NT/2000, WindowsXP; Unix / Linux; VMS; MAC/OS X
 Para dispositivos móviles los S.O. más populares son: Symbian, Palm OS, Android, BlackBerry OS, Windows Mobile, iOS, entre otros.


Sistemas Operativos por su Estructura  
Según, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuación se describen las distintas estructuras que presentan los actuales sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.
Estructura Monolítica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las características fundamentales de este tipo de estructura son:
• Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.
• Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.
• Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.

Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.
Estructura Jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.

Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utilizó con fines didácticos. Se puede pensar también en estos sistemas como si fueran `multicapa'. Multics y Unix caen en esa categoría.
En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o "rings".
En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.

Máquina Virtual
.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario.

Cliente-Servidor (Microkernel).

El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales.
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma.

Sistemas Operativos por la Forma de Ofrecer sus Servicios

Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo accesa a los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.

Sistema Operativo de Red.
Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee acezar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/código en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas. Hidalgo%. En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos Distribuidos

Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario accesa en forma transparente.
Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios.
Los avances tecnológicos en las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras más o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando así una máquina virtual en la red que exceda en poder a un mainframe. El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuido.
Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad (debido a que los problemas a resolver son inherentemente distribuidos) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto. En el segundo caso, supóngase que se tienen en una gran empresa varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en espejo ( mirror ) a través de la red, de manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris- MC, Mach, Chorus, Spring, Amoeba, Taos, etc.




















Referencias



No hay comentarios:

Publicar un comentario