lunes, 19 de mayo de 2008

Sistemas Operativos





Introducción:

Desde su creación, las computadoras digitales han utilizado un sistema de codificación de instrucciones en sistema de numeración binaria. En el origen de la historia (hace unos cuarenta años), los sistemas operativos no existían y la introducción de un programa para ser ejecutado se convertía en un increíble esfuerzo que solo podía ser llevado a cabo por muy pocos expertos. El tiempo era muy corto para realizar los programas y Se buscaron medios más elaborados para manipular la computadora.

Definición de Sistema Operativo: Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden.

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario. además se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones

El sistema operativo es el programa o software mas importante de un ordenador. Para que funcionen los otros programas cada ordenador de uso general debe de tener dicho sistema el cual cumple funciones o tareas básicas tales como

Interfaz de usuario

Es la parte del sistema operativo que permite comunicarse con él de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.

Administración de recursos

Sirven para administrar los recursos de hardware y de redes de un sistema informativo, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.

Administración de archivos

Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tarea

Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.

Servicio de soporte

Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple, los sistemas operativos de Microsoft, y las implementaciones de software libre, como Linux o BSD producidas por empresas, universidades, administraciones públicas, organizaciones sin fines de lucro o comunidades de desarrollo.

Estos servicios de soporte suelen consistir en:

*Actualización de versiones.

*Mejoras de seguridad.

*Inclusión de alguna nueva utilidad

*Controladores para manejar nuevos periféricos

*Corrección de errores de software.

Clasificación de los Sistemas Operativos

Multiusuario: permite que dos a mas usuarios utilicen sus programas al mismo tiempo como hay muchos sistemas operativos que permiten a millares de usuario al mismo tiempo.

Multiprocesador:: soporta abrir un mismo programa en mas de un CPU.

Multitarea: permite que varios programas se ejecutaran al mismo tiempo.

Como funciona y utiliza un sistema operativo

Los sistema operativos proporciona una plataforma de software encima de la cual otros programas, llamados aplicaciones. Los sistema operativo mas utilizados en los PC son DOS, OS/2, y Windows y actualmente Linux

Un sistema operativo interactúa con el sistema operativo a través de un sistema de comando, por ejemplo el sistema operativo DOS contiene comando como copiar y pegar los cuales sirven para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por un parte del sistema operativo llamados procesadores de comando o interprete de la línea de comando. Las interfaces graficas permiten que utilices los comandos señalados y pinchados en el objeto que aparecen en la pantalla.

Los sistemas operativo mas conocidos y buscados por el usuario son:

DOS : que quiere decir Disk Operating System (Sistema Operativo de Disco), el mas conocido por los nombres de PC-DOS y MS-DOS el ultimo creado por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS. La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesadores Intel.

Windows 3.1 Microsoft hace un sistema operativo que tuviera una interfaz grafica amigable para el usuario que dicho sistema tuviera iconos en la pantalla que representaban archivos y programas, a los cuales se puede accesar al darles doble clic con el puntero del mouse cabe destacar que todas las aplicaciones de Windows se parecen y es muy fácil aprender a utilizarlo.

Windows 95; 1995, Microsoft introdujo una nueva versión del SO (Sistema Operativo) anterior la mejora incluyo soporte multitareas y arquitectura de 32 bits, para asi lograr que corriera mas rápido las aplicaciones.

Windows NT: esta versión se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o mas computadores.

OS/2: este fue realizado por IBM. Tiene soporte de 32 bits y su interfaz es muy buena, el problema que presenta es que no se le a dado el apoyo en cuanto a aplicaciones.

Mac OS: este SO es tan amigable para el usuario que cualquier persona puede usarlo en muy poco tiempo por otro lado es muy bueno para organizar archivo y usarlos de manera eficaz este fue creado por Apple Computer, Inc.

UNIX: el SO fue creado por los laboratorios Bell de AT&T en 1969 y ahora usado como un súper carretera de la información, este SO es multiusuario y multitarea que corre en diferentes computadoras esto quiere decir que muchos usuarios pueden estar usando una misma computadora por medio de terminales o usar muchas de ellas.

Llamadas al Sistema Operativo

Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.

Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga el mismo interfaz. Para ello:

Las llamadas correspondientes deben tener el mismo formato.

Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior.

Modos de ejecución en un CPU

Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:

Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones.

Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.

Llamadas al Sistema

Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación.

Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y la recuperación del modo anterior en el retorno).

Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido, distintas de las que se usan para las llamadas de función.

Bibliotecas de interfaz de llamadas al sistema

Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación.

La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema.

Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:

Algún dispositivo de E/S necesita atención.

Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.

Según los dos casos anteriores tenemos las interrupciones y la excepciones:

Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.

Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:

Crear y destruir los procesos.

Parar y reanudar los procesos.

Ofrecer mecanismos para que se comuniquen y sincronicen.

Gestión de la memoria principal

La memoria es una gran tabla de palabras o bytes que se referencia cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

Conocer qué partes de la memoria están utilizadas y por quién.

Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.

Asignar y reclamar espacio de memoria cuando sea necesario.

Gestión del almacenamiento secundario

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:

Planificar los discos.

Gestionar el espacio libre.

Asignar el almacenamiento.

El sistema de E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

Sistema de archivos

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc... El SO es responsable de:

Sistemas de protección

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:

Distinguir entre uso autorizado y no autorizado.

Especificar los controles de seguridad a realizar.

Forzar el uso de estos mecanismos de protección.

Sistema de comunicaciones

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Intérprete de órdenes

El shell del sistema es el principal componente del SO que utiliza el usuario. Este uso se realiza siempre directa o indirectamente a través del intérprete. Generalmente incorpora un lenguaje de programación para automatizar las tareas.

Hay dos tipos de intérpretes de órdenes:

Alfanuméricos: las órdenes se expresan mediante un lenguaje específico usando las cadenas de caracteres introducidas por el terminal.

Gráficos: normalmente las órdenes se especifican por medio de iconos y otros elementos gráficos.

Programas de sistema

Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

Manipulación y modificación de archivos.

Información del estado del sistema.

Soporte a lenguajes de programación.

Comunicaciones.


Interrogantes:

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. 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. El objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. Con sus propias palabras ¿como definiría sistema operativo? y ¿Cuales de las funciones que cumple el sistema operativo son de mayor importancia para usted?