Sistemas operativos – Introducción

Un computador sin software es una máquina sin utilidad, necesita programas que le permitan gestionar bases de datos, realizar complicados cálculos matemáticos, ayudar a diseño, procesar imágenes, comunicarse con otros computadores que puedan estar ubicados en cualquier parte del mundo, etc. Pero un computador es un sistema complejo que se compone de procesadores, memoria central, discos, terminales, conexiones de red, dispositivos de Entrada/Salida, etc. La gestión de todos estos elementos y su utilización correcta es una labor ardua y compleja. Si esta gestión la tuvieran que realizar los propios programas de aplicación, que pueden estar ejecutándose simultáneamente, es muy probable que los programadores se vieran desbordados por la dificultad.

Desde hace tiempo, se vio la necesidad de distinguir dos tipos de programas:

  • Los programas de sistema
  • Los programas de aplicación

Los programas de sistema se encargan de controlar las operaciones propias del computador, mientras que los programas de aplicación son los que resuelven algún tipo de problema específico. De todo el conjunto de programas de sistema, el más importante sin duda es el sistema operativo, cuyo objetivo es que el computador pueda utilizar de manera eficiente y cómoda, proporcionando un caparazón a la máquina que permite dar la visión de una máquina virtual, con la que el usuario es capaz de comunicarse mediante una interfaz.

Capas de un sistema operativo

En la imagen anterior podemos ver un diagrama que representa un sistema informático a nivel conceptual. En la parte más inferior se encuentra el hardware, donde se incluye el procesador, la memoria y el resto de periféricos, como por ejemplo los discos duros.

El sistema operativo oculta toda la complejidad del hardware y proporciona una interfaz adecuada para usar el sistema. Actúa de intermediario, ya que los programadores y los programas de aplicación pueden utilizar los recursos del sistema de una forma fácil. Los programadores emplean otro tipo de programas de sistema, como por ejemplo compiladores, depuradores o editores.

¿Qué es un sistema operativo?

En términos generales no hay una definición de sistema operativo completamente adecuada y que sea aceptada de forma universal. Un sistema operativo no es más que una programa que controla la ejecución de otros programas y aplicaciones y actúa como interfaz entre el usuario del sistema y el hardware de la máquina. Sus objetivos son:

  1. Ser cómodo para los usuarios: El sistema operativo hace que el computador sea fácil de utilizar. Los usuarios realmente ven una máquina virtual o extendida, que es bastante mas sencilla de programar y de utilizar que la máquina desnuda.
  2. Ser eficiente: El sistema operativo gestiona los recursos del sistema de la forma más eficiente posible. Su función es la de gestor de recursos.

El sistema operativo como máquina virtual

Utilizar el hardware directamente es difícil. Por ejemplo, si necesitamos almacenar información en un disquete, hay que manejar unas 16 instrucciones en lenguaje ensamblador, y donde cada instrucción puede tener una docena de parámetros diferentes. Esta serie de instrucciones hay que empaquetarlas en un registro de 8 bytes, devolviéndose después un registro e 7 bytes con los estados y los campos de errores. Para realizar una escritura hay que verificar si el motor está en funcionamiento, si no lo está, dar la orden para que lo esté, esperar a que funcione a la velocidad adecuada, dar las órdenes de posicionamiento del brazo de lectura en el sector y pista adecuados, y por fin, ordenar la escritura. Tanto el programador, como el usuario final, no desean enfrentarse a estas complejas situaciones, sino que desea una abstracción sencilla y fácil de entender. Por ejemplo, ver al disco como si fuese un conjunto de archivos, de forma que al escribir algo, sólo hay que indicar el nombre del archivo.

Para ocultar toda esta problemática de hardware está el sistema operativo, de forma que el programador y el usuario ven una abstracción de este hardware que se les presenta como una máquina virtual que entiende ordenes mediante un lenguaje más cercano al humano. De esta forma, el sistema operativo debe proporcionar servicios para las operaciones siguientes:

  1. Creación de programas: Existen otros programas del sistema, como los depuradores, los editores y los enlazadores, que no son parte del sistema operativo en sí, pero que son accesibles a través de él.
  2. Ejecución de programas: Para poder ejecutar un programa se tiene que realizar una serie de funciones previas, tales como cargar el código y los datos del programa en la memoria principal, inicializar los dispositivos E/S y preparar los recursos necesarios para la ejecución. Estas tareas las gestiona el sistema operativo.
  3. Operaciones de entrada/salida: Un programa puede requerir una operación E/S sobre un periférico, pero cada periférico tiene sus peculiaridades y un controlador de dispositivo específico con un conjunto de instrucciones propio. Es el sistema operativo el encargado de hacer que todas las tareas de lectura, escritura y comunicación con los periféricos funcionen.
  4. Manipulación y control del sistema de archivos: El sistema operativo necesita comunicarse con el controlador del dispositivo de almacenamiento (disco duro, memoria extraíble, etc), debe reconocer el sistema de archivos y la estructura de almacenamiento de los datos, para así proporcionar mecanismos adecuados para el control y protección de los mismos.
  5. Detección de errores: En un sistema informático, hay una gran cantidad de posibles errores, tanto el hardware como del software. Errores como: Error en un periférico, fallos en la transmisión de los datos, errores de cálculo en un programa, divisiones entre cero, desbordamiento de memoria, violaciones de permisos, etc. Éstos pueden ocurrir en cualquier momento, y el sistema operativo debe ser capaz de detectarlos y solucionarlos, o en su defecto reducir el impacto sobre el resto de aplicaciones del sistema.
  6. Control de acceso al sistema: En sistemas de acceso compartido o en sistemas públicos, el sistema operativo debe controlar el acceso al mismo, vigilando quién accede y a qué recursos. Por eso ha de estar dotado de mecanismos de protección de recursos e implementar una política de seguridad óptima, de forma que no pueda acceder quién no esté autorizado. Actualmente, y debido a la gran conectividad de dispositivos, este aspecto cobra un papel importante.
  7. Elaboración de informes estadísticos: Es de gran utilidad para un administrador de sistemas, conocer el grado de utilización de los recursos y los distintos parámetros del sistema, como por ejemplo, el tiempo de respuesta. De esta forma se pueden prever necesidades futuras o realizar una configuración adecuada del sistema con el objetivo de obtener un mejor rendimiento.

El sistema operativo como gestor de recursos

Una función primordial del sistema operativo es proporcionar a los programas que compiten por los recursos del sistema, una asignación ordenada y controlada de los procesadores, la memoria y los periféricos. La CPU dedicará gran parte de su tiempo a ejecutar programas según lo planifique el sistema operativo, éste también controlará el acceso a los recursos del sistema. Esto requiere que el propio sistema operativo ceda el control del procesador a otra tarea y cuando lo recupere posteriormente, debe preparar la siguiente tarea que va a ejecutarse en el procesador.

Anuncios
Publicado en Sistemas operativos, Varios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Sobre mi…

Soy Técnico en Explotación de Sistemas Informáticos y Técnico Superior en Administración de Sistemas Informáticos en Red. Actualmente estudiando el Grado de Ingeniería Informática en la Universidad de Córdoba (España).

Enamorado de la ciencia en general y de la computación en particular.

Música: Heavy, Rock, Celta, New Age, Electrónica, etc...
Libros:Isaac Asimov, Richard Dawkins, Stephen Hawking, Carl Sagan...

Estoy interesado en la programación de videojuegos. Políticamente de izquierdas, escéptico y ateo. En definitiva, mala gente.

Sígueme en Twitter

Introduce tu dirección de correo electrónico para seguir este Blog y recibir las notificaciones de las nuevas publicaciones en tu buzón de correo electrónico.

Únete a otros 24 seguidores

Usa Linux Mint
The Bit Developer Box
A %d blogueros les gusta esto: