Principios Básicos


-Un Sistema Operativo es una parte importante de cualquier sistema de computación. 
Un sistema de computación puede dividirse en cuatro componentes: el hardware, el Sistema Operativo, los programas de aplicación y los usuarios. 

-El hardware (Unidad Central de Procesamiento(UCP),memoria y dispositivos de entrada/salida (E/S)) proporciona los recursos de computación básicos. 
Los programas de aplicación (compiladores, sistemasde bases de datos, juegos de video y programas para negocios) definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios.


Interacción entre el SO con el resto de las partes




Concepto y definición de Sistemas Operativos

Existen diversas definiciones de lo que es un Sistema Operativo, pero no hay una definición exacta, es decir una que sea estándar; a continuación se presentan algunas:

1. Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones
2. Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
3. 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. 

-En resumen, se podría decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:

  • Gestionar el hardware: Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina.
  • Facilitar el trabajo al usuario: Permite una comunicación con los dispositivos de la máquina.

-El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en elprocesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado.




Características de los sistemas Operativos


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.

  • Técnicas de recuperación de errores.

  • Evita que otros usuarios interfieran: El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.

  • Generación de estadísticas.

  • Permite que se puedan compartir el hardware y los datos entre los usuarios.




Componentes de un 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 comando, 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.



Funciones

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.




Clasificación


-Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba. A continuación se mostrarán diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus características:

Sistemas Operativos por lotes:
-Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie.
 Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.

-Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.

-Algunas otras características con que cuentan los Sistemas Operativos por lotes son:

  • Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.

  •  Permiten poca o ninguna interacción usuario/programa en ejecución.

  • Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.

  • No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.

  • Conveniente para programas de largos tiempos de ejecución 

  • Se encuentra en muchos computadores personales combinados con procesamiento serial.

Sistemas Operativos de tiempo real:
-Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.

Dichos sistemas de aplican en campos como: 
  1. Control de trenes.
  2. Telecomunicaciones.
  3. Sistemas de fabricación integrada.
  4. Producción y distribución de energía eléctrica.
  5. Control de edificios.
  6. Sistemas multimedia.
-Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.

Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:

  • Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos.

  • Se utlizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.

  • Objetivo es proporcionar rápidos tiempos de respuesta.

  • Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.

  • Proceso se activa tras ocurrencia de suceso, mediante interrupción.

  •  Proceso de mayor  prioridad expropia recursos.

  • Por tanto generalmente se utliza planificación expropiativa basada en prioridades.

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea):
-Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.

-Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.

-Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:

  • Mejora productividad del sistema y utilización de recursos.

  • Multiplexa recursos entre varios programas.

  • Generalmente soportan múltiples usuarios (multiusuarios).

  •  Proporcionan facilidades para mantener el entorno de usuarios inndividuales.

  • Requieren validación de usuario para seguridad y protección.

  • Proporcionan contabilidad del uso de los recursos por parte de los usuarios.


Sistemas Operativos de tiempo compartido:
-Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.

-Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.

-Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
-Características de los Sistemas Operativos de tiempo compartido:

  • Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.

  • Dan la ilusión de que cada usuario tiene una máquina para  sí.

  • La Mayoría utilizan algoritmo de reparto circular.

  • Evitan monopolización del sistema asignando tiempos de procesador (time slot).



Sistemas Operativos distribuidos:

-Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el usuario. 

-Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

-Características de los Sistemas Operativos distribuidos:

  • Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .

  • Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.

  • Objetivo clave es la transparencia.

  • Generalmente proporcionan medios para la compartición global de recursos.


Sistemas Operativos de red:
-Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (fisico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.

-Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.



Sistemas Operativos paralelos:
-En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.

-Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.