Fundamentos de los Sistemas Operativos: Conceptos, Evolución y Arquitecturas Clave
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,77 KB
Introducción a los Sistemas Operativos
¿Qué es un Sistema Operativo?
Un Sistema Operativo (SO) es la interfaz de comunicación entre el usuario y los dispositivos electrónicos (Hardware), y controla la ejecución de los programas.
Objetivos de un Sistema Operativo
Los principales objetivos de un SO son:
- Comodidad
- Eficiencia
- Capacidad de evolución
Niveles de un Sistema Informático
Un sistema informático se puede estructurar en los siguientes niveles:
- Hardware
- Sistema Operativo (SO)
- Utilidades
- Programas de aplicación
Servicios Fundamentales del Sistema Operativo
El SO provee diversos servicios esenciales, tales como:
- Creación de programas: Incluye editores y depuradores.
- Ejecución de programas: Carga, ejecución y gestión de la finalización de programas.
- Acceso a los dispositivos de E/S: Manejo de la comunicación con periféricos.
- Acceso controlado a los archivos: Gestión del sistema de archivos, permisos y protección.
- Acceso al sistema, detección y respuesta a errores: Control de acceso y manejo de fallos.
- Contabilidad: Registro del uso de recursos.
Conceptos Clave
Núcleo (Kernel)
El núcleo o kernel es la parte central de un Sistema Operativo que reside permanentemente en la memoria principal. Incluye las funciones más críticas y utilizadas con mayor frecuencia.
Monitores
Los monitores eran sistemas sencillos de procesamiento por lotes. Consistían en software que controlaba la secuencia de programas en ejecución; al finalizar un programa, el control volvía al monitor para cargar el siguiente.
JCL (Job Control Language)
El JCL (Lenguaje de Control de Trabajos) es un tipo especial de lenguaje de programación de control. Se empleaba para dar instrucciones al monitor, especificando, por ejemplo, qué compilador utilizar y qué datos procesar.
Evolución y Tipos de Procesamiento
Características del Hardware Relevantes
Algunas características del hardware cruciales para los Sistemas Operativos incluyen:
- Protección de memoria
- Temporizador
Monoprogramación
En la monoprogramación, el procesador debe esperar a que una instrucción de Entrada/Salida (E/S) termine antes de poder continuar con la siguiente tarea o instrucción.
Multiprogramación
La multiprogramación permite que, cuando un trabajo necesite esperar una operación de E/S, el procesador pueda cambiar a otro trabajo que esté listo para ejecutarse, mejorando la utilización de la CPU.
Tiempo Compartido
Los sistemas de tiempo compartido utilizan la multiprogramación para gestionar múltiples tareas interactivas simultáneamente, dando a cada usuario la impresión de tener acceso exclusivo al sistema.
Logros Principales en el Desarrollo de Sistemas Operativos
Los avances significativos en el diseño de SO incluyen mejoras en:
- Gestión de procesos
- Gestión de memoria
- Seguridad y protección de la información
- Planificación y gestión de recursos
- Estructura del sistema
El Proceso: Unidad Fundamental de Ejecución
Definición de Proceso
Un proceso es una instancia de un programa en ejecución. Es la entidad que puede ser asignada al procesador y ejecutada por él.
Componentes de un Proceso
Un proceso típicamente consta de:
- Un programa ejecutable (código).
- Los datos asociados necesarios para el programa (variables, espacio de trabajo).
- El contexto de ejecución del programa (estado del procesador, punteros, etc.).
Dificultades en el Diseño de Software de Sistema
El diseño de software de sistema, especialmente en entornos concurrentes, presenta desafíos como:
- Sincronización incorrecta entre procesos o hilos.
- Fallos de exclusión mutua, llevando a condiciones de carrera.
- Funcionamiento no determinista del programa, dificultando la depuración.
- Interbloqueos (deadlocks), donde dos o más procesos se esperan mutuamente indefinidamente.
Características de los Sistemas Operativos Modernos
Los SO contemporáneos suelen incorporar las siguientes características:
-
Arquitectura de micronúcleo (Microkernel): Asigna solamente unas pocas funciones esenciales al núcleo (como la gestión de espacios de direcciones, comunicación entre procesos y planificación básica), mientras que otros servicios se ejecutan como procesos de usuario.
- Espacio de direcciones: Gestión de la memoria virtual para cada proceso.
- Comunicación entre procesos (IPC - Inter-Process Communication): Mecanismos para que los procesos intercambien datos y se sincronicen.
- Planificación básica: Algoritmos para decidir qué proceso o hilo se ejecuta a continuación.
-
Multihilos (Multithreading): Un proceso se puede dividir en múltiples hilos de ejecución que pueden ejecutarse concurrentemente, compartiendo los recursos del proceso.
- Hilo: Es la unidad de trabajo más pequeña que se puede planificar (expedir) para su ejecución por el sistema operativo.
- Proceso (en contexto multihilo): Un conjunto de uno o más hilos y los recursos asociados (memoria, archivos).
- Multiproceso Simétrico (SMP - Symmetric Multiprocessing): Sistemas con múltiples procesadores que comparten la misma memoria principal y dispositivos de E/S. El SO puede ejecutar procesos o hilos en cualquier procesador disponible.
- Sistema Operativo Distribuido: Gestiona recursos en múltiples computadoras conectadas en red, proporcionando la ilusión de un único espacio de memoria principal y secundaria. A menudo se utiliza para implementar sistemas de archivos distribuidos.
- Diseño Orientado a Objetos: Utiliza principios de la programación orientada a objetos para estructurar el SO, lo que puede facilitar la modularidad, extensibilidad y personalización sin comprometer la integridad del sistema.
Ejemplo: Componentes del Ejecutor de Windows 2000 (W2K)
El ejecutor de Windows 2000 (Executive) incluye varios componentes clave, tales como:
- Administrador de E/S
- Administrador de Objetos
- Administrador de procesos/hilos
- Administrador de memoria virtual
- Administrador de caché
- Módulos para gráficos y ventanas
- Servicios de llamadas a procedimiento local (LPC) / remoto (RPC)
- Monitor de Referencia de Seguridad
Sistemas UNIX Modernos y Derivados
Algunos ejemplos de sistemas operativos modernos basados o inspirados en UNIX incluyen:
- Solaris (especialmente versiones 2.x y posteriores)
- Linux
- BSD (como FreeBSD, OpenBSD, NetBSD, derivados de 4.4BSD)
- System V Release 4 (SVR4)
Arquitectura General de UNIX
La arquitectura típica de un sistema UNIX se compone de las siguientes capas:
- Hardware
- Núcleo (Kernel)
- Interfaz de llamadas al sistema (System Call Interface)
- Bibliotecas de sistema y órdenes (comandos) UNIX