Fundamentos de Sistemas Operativos: Componentes, Tipos, Servicios y UNIX
Clasificado en Informática
Escrito el en español con un tamaño de 7,53 KB
Componentes del Sistema Informático
- Hardware: Proporciona los recursos de computación básicos (CPU, memoria, dispositivos de E/S).
- Sistema Operativo (S.O.): Controla y gestiona la utilización del hardware entre distintos programas de aplicación de distintos usuarios.
- Programas de Aplicación: Definen cómo se deben emplear los recursos del sistema para resolver los problemas de cálculo de los usuarios.
- Usuarios: Personas, máquinas u otras computadoras que interactúan con el sistema.
El Sistema Operativo (S.O.)
Es el programa que actúa como intermediario entre el usuario y el hardware de la computadora.
Funciones Principales:
- Ejecutar programas del usuario y facilitar el empleo de la computadora en la resolución de problemas.
- Utilizar el hardware de forma eficiente.
Tipos de Sistemas Operativos
Sistemas Monotarea o Multitarea
Permiten ejecutar un programa o varios a la vez, respectivamente. En los sistemas multitarea, se divide el tiempo de CPU entre las tareas activas. Requieren una gestión de memoria sofisticada para que los programas no interfieran entre ellos. Suelen ser de uso compartido: la CPU reparte su tiempo entre los trabajos cargados en la memoria (sistemas informáticos interactivos).
Sistemas Monousuario y Multiusuario
Permiten acceder simultáneamente al sistema informático a uno o a varios usuarios, respectivamente.
Sistemas Operativos Distribuidos
Hacen que ordenadores conectados en red trabajen de forma cooperativa, presentándose al usuario como un único sistema.
Sistemas de Tiempo Real
Su principal objetivo es garantizar un tiempo de respuesta rápido ante eventos externos. Son cruciales en control de procesos industriales, robótica, etc.
Sistemas Empotrados (Embebidos)
Están diseñados para máquinas pequeñas con recursos limitados, como las PDAs, smartphones o electrodomésticos inteligentes. Ejemplos: Windows CE, Android, iOS.
Servicios del Sistema Operativo
Gestión de Procesos y Planificación de CPU
Un proceso es un programa en ejecución. Un proceso necesita recursos que comprenden tiempo de CPU, memoria, archivos y dispositivos de E/S. El sistema operativo es responsable de las siguientes actividades en lo que respecta a la gestión de procesos:
- Creación y eliminación de procesos.
- Suspensión y reanudación de procesos.
- Provisión de mecanismos para la sincronización y comunicación entre procesos.
- Manejo de interbloqueos (deadlocks).
- Planificación de CPU: Decidir qué proceso en memoria obtiene la CPU cuando esta queda libre.
Gestión de Memoria Principal
La memoria principal es un recurso vital que debe ser gestionado cuidadosamente. Es responsabilidad del S.O.:
- Conocer qué partes de la memoria están siendo utilizadas y por quién.
- Decidir qué procesos (o partes de ellos) cargar en memoria cuando haya espacio disponible.
- Asignar y liberar espacio de memoria según sea necesario.
En un sistema monoprogramado, la memoria principal se divide básicamente en dos partes: una para el sistema operativo y otra para el programa en ejecución. La gestión de memoria resulta mucho más compleja y vital en un sistema multiprogramado, donde varios procesos deben coexistir en memoria.
Gestión de E/S (Entrada/Salida)
El S.O. gestiona la comunicación con los dispositivos de hardware a través de sus controladores. Incluye:
- Un sistema de gestión de buffers: Un buffer es un área de memoria temporal donde se almacenan datos mientras se transfieren entre dos dispositivos o entre un dispositivo y una aplicación.
- Un sistema de gestión de caché: Una caché es una región de memoria más rápida que la memoria principal, que contiene copias de datos recientemente utilizados. El acceso a la caché es más eficiente que el acceso al almacenamiento original.
- Una interfaz genérica de controladores de dispositivos.
Gestión de Archivos
Un archivo es una colección de información relacionada, definida por su creador. El S.O. es responsable de:
- Permitir al usuario realizar operaciones como crear, eliminar, leer, escribir y manipular archivos y directorios.
- Ubicar los archivos y directorios en los dispositivos de almacenamiento secundario (discos duros, SSDs).
- Garantizar la validez de los datos y minimizar la pérdida de información.
- Optimizar el rendimiento, mejorando la productividad del sistema y el tiempo de respuesta al usuario.
Protección y Seguridad
La protección abarca los mecanismos destinados a controlar el acceso de programas, procesos o usuarios a los recursos del sistema, de acuerdo con los privilegios que se definan. La seguridad defiende el sistema contra ataques internos y externos.
UNIX: Un Caso de Estudio
UNIX es un influyente sistema operativo multiusuario y multitarea. Sus componentes y características clave incluyen:
Kernel o Núcleo
Siempre reside en memoria y constituye la esencia del sistema operativo. Gestiona los recursos del sistema.
Programas del Sistema
Proporcionan servicios importantes al usuario, como editores de texto, compiladores, intérpretes de comandos, etc.
Planificador (Scheduler)
Gestiona la asignación de tiempos de CPU a los procesos, concediendo un intervalo determinado (quantum) a cada uno de ellos de forma rotatoria u mediante otros algoritmos.
Comunicación entre Procesos (IPC)
Aunque los procesos no tienen necesidad intrínseca de comunicarse, UNIX proporciona mecanismos para que puedan hacerlo (pipes, colas de mensajes, memoria compartida, etc.).
Gestión de Memoria
El S.O. permite la coexistencia de varios procesos a la vez en la memoria operativa del sistema, utilizando técnicas como la paginación y la segmentación.
Sistema de Ficheros
El S.O. define una estructura jerárquica de directorios que contienen archivos y otros directorios, comenzando desde el directorio raíz (/).
Sistema de E/S
Gestiona el acceso a los dispositivos de entrada/salida. En UNIX, estos dispositivos son tratados, en la medida de lo posible, como un tipo especial de archivo, simplificando su manejo.
Protección
El S.O. gestiona las posibles interferencias entre diferentes usuarios. Para ello, identifica a cada usuario por un nombre y una contraseña. Existe un superusuario (root) que administra el sistema y tiene permisos totales.
Interfaz de Llamadas al Sistema (API)
Los servicios de UNIX están disponibles para todos los programas de nivel de usuario a través de un conjunto bien definido de funciones conocidas como llamadas al sistema.
Intérprete de Comandos o Shell
Es un programa especial que actúa como interfaz entre el usuario y el kernel. Es un lector de líneas de texto que interpreta y ejecuta los comandos que teclea el usuario. Existen varios shells disponibles (sh, bash, csh, ksh, zsh). Normalmente, hay al menos tantos procesos shell como usuarios conectados. El shell también es un potente lenguaje de scripting de alto nivel.