Herramientas de usuario

Herramientas del sitio


es:sistema_operativo

1.Introducción

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. Además de ofrecer un entorno común para la ejecución de aplicaciones de índole muy diversa, ofrece una interfaz de comunicación con el usuario.

Los sistemas operativos pueden ser clasificados de la siguiente forma:

  • Multiusuario: Permite que dos o más usuarios utilicen los recursos del sistema concurrentemente.
  • Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
  • Multi-thread: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
  • Tiempo Real: Responde a las entradas inmediatamente. Se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, el sistema mostrará un fallo. Para garantizar este comportamiento, se utilizan modelos y algoritmos deterministas. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real, sin embargo, otros, como QNX si.
  • Distribuido: maneja un grupo de nodos independientes que pueden realizar tareas en paralelo, de manera transparente al usuario; quien solo ve un único ordenador.
  • Embebido: son aquellos que están diseñados para operar en pequeños ordenadores, como por ejemplo PDAs o diferentes equipos industriales. Están diseñados para trabajar en ambientes más hostiles (como por ejemplo entornos de fabricación), por lo que son mucho más robustos. Por ejemplo, Windows CE y Minix 3.

Un sistema operativo, entre otras cosas se encarga de:

  • Realizar el interfaz sistema-aplicación/usuario.
  • Compartir los recursos de Hardware entre los usuarios.
  • Permitir a los usuarios compartir sus datos entre ellos.
  • Prevenir que las actividades de un usuario no interfieran en las de los demás usuarios.
  • Calendarizar los recursos de los usuarios.
  • Facilitar el acceso a los dispositivos de E/S.
  • Recuperarse de fallos o errores, o en su defecto detectarlos antes de que ocurran.
  • Llevar el control sobre el uso de los recursos.

2.- Evolución histórica de los sistemas operativos

La perspectiva histórica de los sistemas operativos, ha ido íntimamente ligada a la arquitectura de la máquina sobre la que se ejecuta, por tanto, su evolución ha ido en paralelo.

El primer sistema operativo fue creado en 1956, para un ordenador IBM 704 y su única tarea era la concatenación de ejecuciones de programas cuando estos finalizaban.

En la década de los sesenta, es cuando empiezan a surgir los conceptos íntimamente ligados a los sistemas operativos, como son las multitareas, los multiusuarios y los sistemas en tiempo real. El objetivo era reducir al máximo el tiempo ocioso del ordenador. Es en este punto cuando surge UNIX, que ha sido la base para la gran mayoría de sistemas operativos posteriores.

La aparición de los ordenadores personales en la década de los setenta y los ochenta hace que los sistemas operativos empiecen a enfocarse hacia otras áreas hasta entonces ignoradas, como son la interfaz con el usuario. Hasta entonces se basaba en ejecución por lotes o línea de comandos. Paralelamente al desarrollo de Unix se crea el lenguaje de programación C, que hereda parte de su filosofía, sobretodo en los temas relativos a entrada y salida e interrupciones del sistema. En los ochenta nacen sistemas operativos como MacOS, MS-DOS y Windows.

A partir de la década de los 90, surge Linux, que tras liberar su núcleo, se une con GNU, formando el sistema operativo GNU/Linux, que con los años ha ido ganando adeptos.

En los últimos años, conceptos en los que no se había enfatizado, debido a limitaciones tecnológicas, están cobrando fuerza, como es la computación distribuida, haciendo que diferentes sistemas operativos estén basados en dicha arquitectura. El auge de internet y en especial el “cloud computing” o computación en la nube, ha llevado a desarrollar diferentes plataformas y sistemas operativos que trabajen nativamente en internet. Paralelamente, el desarrollo de tecnología móvil ha propiciado la aparición de sistemas operativos con núcleos más ligeros, como pueden ser Android o Windows Mobile.

3.- Partes de un sistema operativo

3.1 Gestión de procesos

El sistema operativo se encarga de crear y destruir procesos (programas en ejecución que necesita unos determinados recursos) y ofrecer mecanismos para sincronizarlos. Algunos sistemas operativos ofrecen mecanismos para detectar (o evitar) la presencia de bloqueos entre los diferentes procesos concurrentes.

Como muchos sistemas operativos son multitarea, pero solo disponen de una CPU (o en su defecto de un número menor al número de tareas o threads), este modulo se encarga de repartir el tiempo de ejecución entre los procesos. El encargado de llevar a cabo dicho reparto es el scheduler (o programador de tareas), que puede utilizar diferentes algoritmos.

3.2 Gestión de la memoria principal

Este módulo se encarga de ofrecer a los diferentes procesos la información almacenada en memoria que en cada momento soliciten. El control de la memoria caché se realiza mediante hardware, y es el sistema operativo el que se encarga de realizar la paginación (traducción de direcciones físicas a direcciones lógicas) e indicar al sistema cuándo debe cargar o descargar páginas de memoria.

3.3 Gestión del almacenamiento persistente y entrada salida.

El sistema operativo se encarga de gestionar los diferentes volúmenes de almacenamiento persistente. Dicho control se puede realizar tanto por hardware (mediante tarjetas que realizan diferentes agregaciones, como puede ser los diferentes esquemas RAID) o mediante el propio SO.

Por otra parte, también gestiona los diferentes búferes de entrada y salida, tanto de dispositivos de almacenamiento como de otros periféricos.

3.4 Sistema de archivos

El sistema operativo se encarga de realizar ciertas operaciones sobre el sistema de archivos (si dicho sistema lo requiere, como por ejemplo el sistema NTFS) y asignar los permisos a los diferentes archivos.

También puede ejecutar copias de seguridad y establecer la propiedad de los mismos.

3.5 Otros módulos

Adicionalmente, un sistema operativo lo completan diferentes módulos de seguridad (para discernir entre usuarios autorizados y no autorizados), módulos de red, módulos gestores de recursos alternativos y diferentes módulos del sistema que ofrecen soporte a los lenguajes de programación (como pueden ser las llamadas al sistema, las interrupciones, las interfaces de comunicaciones o socket, las primitivas de sincronización o semáforos, entre otros elementos).

AUTOR: VÍCTOR MEDEL GRACIA

/var/www/html/lefispedia/data/pages/es/sistema_operativo.txt · Última modificación: 2020/01/08 18:24 (editor externo)