Examen Sustitutorio de Sistemas Operativos
Sistemas Operativos
Es un programa que actúa como intermediario entre el usuario y el hardware del computador.
Funciones
- Facilita el uso del ordenador.
- Gestiona y mantiene archivos.
- Protege los datos.
- Contabiliza los recursos.
Línea de Comandos (CMD)
CMD: Es una interfaz de línea de comandos que permite realizar acciones avanzadas utilizando comandos de texto.
Dir: Muestra una lista de archivos y subdirectorios en un directorio.
Sintaxis del comando DIR (Ejemplo)
DIR [unidad:][ruta][archivo] [/A[[:]atributos]] [/B] [/C] [/D] ...
Hardware
Componentes de Entrada y Salida
Componentes de entrada: Son aquellos equipos y componentes que permiten ingresar información a la computadora (ej. teclado, ratón, micrófono).
Componentes de salida: Son aquellos que reciben información de la computadora para mostrarla al usuario (ej. monitor, impresora, altavoces).
Procesos de un Sistema Operativo
Recursos Gestionados
Principales recursos que gestiona el sistema operativo:
- Gestión del procesador
- Gestión de memoria
- Gestión de entrada y salida (E/S)
- Gestión de archivos
Bloqueos Mutuos (Interbloqueos)
En un sistema operativo, el bloqueo mutuo (o interbloqueo) es el bloqueo permanente de un conjunto de procesos en ejecución, donde cada proceso espera un recurso que está retenido por otro proceso en el mismo conjunto.
Todos los interbloqueos surgen debido a las necesidades concurrentes de recursos por parte de los procesos.
Algoritmos para Evitar Bloqueos Mutuos
- Algoritmo del Banquero
- Grafo de Asignación de Recursos
- Algoritmo de Seguridad
- Algoritmo de Solicitud de Recursos
Recuperación de Bloqueos
Ocurre cuando un algoritmo de detección identifica la existencia de un bloqueo mutuo.
Acciones tras la detección:
- Informar al operador del bloqueo para que lo trate manualmente.
- Permitir que el sistema se recupere automáticamente.
Existen dos opciones principales para romper un bloqueo:
- Abortar procesos: Finalizar uno o más procesos involucrados en el ciclo de bloqueo.
- Apropiación de recursos: Quitar recursos asignados a algunos procesos bloqueados y dárselos a otros para romper la dependencia.
Prevención de Bloqueos
Se busca asegurar que al menos una de las condiciones necesarias para el bloqueo no se cumpla:
- Eliminar la exclusión mutua: Permitir que los recursos sean compartidos (no siempre es posible).
- Eliminar la condición de posesión y espera: Hacer que los procesos soliciten *todos* los recursos que necesitarán antes de empezar, o que liberen los que tienen antes de pedir más.
- Permitir la expropiación (apropiación): Si un proceso que tiene recursos solicita otro que no puede obtenerse inmediatamente, se le pueden quitar los recursos que ya posee.
- Evitar la espera circular: Imponer un orden total en la solicitud de tipos de recursos.
Condiciones Necesarias para el Bloqueo Mutuo
- Exclusión Mutua: Al menos un recurso debe mantenerse en modo no compartible; solo un proceso puede usar el recurso a la vez.
- Retención y Espera: Un proceso debe estar reteniendo al menos un recurso y esperando para adquirir recursos adicionales que están actualmente en posesión de otros procesos.
- No Apropiación: Los recursos no pueden ser expropiados; un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene.
- Espera Circular: Debe existir un conjunto de procesos en espera tal que cada proceso en el conjunto espera un recurso retenido por otro proceso en el conjunto.
Estado de un Sistema (en relación a bloqueos)
Se define por el número de recursos disponibles, los recursos asignados a cada proceso y las demandas máximas de los procesos.
- Estado Seguro: Existe una secuencia de asignación de recursos a todos los procesos que permite que terminen sin causar un bloqueo. El sistema puede garantizar que no ocurrirá un interbloqueo.
- Estado Inseguro: No se puede garantizar que se evitará un bloqueo. El sistema *podría* entrar en un estado de bloqueo si los procesos solicitan recursos de una manera específica.
Administración de la Memoria
Consiste en gestionar la jerarquía de memoria, incluyendo la carga y descarga de procesos en la memoria principal para su ejecución. El sistema operativo interactúa con la Unidad de Gestión de Memoria (MMU), un componente de hardware que traduce las direcciones lógicas (generadas por la CPU) en direcciones físicas (ubicaciones reales en la memoria).
Misión
- Saber qué partes de la memoria están en uso y cuáles están libres.
- Asignar memoria a los procesos cuando la necesiten y liberarla cuando terminen.
- Gestionar el intercambio (swapping) entre la memoria principal y el almacenamiento secundario (disco) cuando la memoria principal es insuficiente.
Objetivos
- Ofrecer a cada proceso un espacio de direcciones lógico propio.
- Proporcionar protección entre los espacios de memoria de los procesos.
- Permitir que los procesos compartan memoria de forma controlada.
- Maximizar la utilización de la CPU y el rendimiento general del sistema.
Requisitos
- Reubicación: Capacidad de cargar y descargar procesos en diferentes partes de la memoria física.
- Protección: Impedir que un proceso acceda a la memoria de otro proceso o del sistema operativo sin autorización.
- Compartición: Permitir que varios procesos accedan a la misma porción de memoria.
- Organización Lógica: Reflejar la visión del programador de la memoria (ej. segmentos).
- Organización Física: Gestionar la memoria física (RAM) y la memoria secundaria (disco).
Técnicas de Administración de Memoria
Asignación Contigua
Se asigna a cada proceso un bloque único y contiguo de memoria física.
Particiones Estáticas (o Fijas)
La memoria se divide en particiones de tamaño fijo al inicio. Un proceso se carga en una partición lo suficientemente grande.
Desventajas
- Fragmentación Interna: Se malgasta espacio dentro de una partición si el proceso es más pequeño que la partición asignada.
- Limitación del tamaño del proceso: Un programa no puede ejecutarse si es más grande que la partición más grande disponible.
Particiones Dinámicas
Las particiones se crean dinámicamente según las necesidades. Se busca un hueco (espacio libre) adecuado para ubicar un nuevo proceso. Algoritmos comunes para seleccionar el hueco:
- Mejor Ajuste (Best Fit): Elige el hueco más pequeño que sea lo suficientemente grande.
- Primer Ajuste (First Fit): Elige el primer hueco encontrado que sea lo suficientemente grande.
- Próximo Ajuste (Next Fit): Similar al Primer Ajuste, pero comienza la búsqueda desde donde terminó la última vez.
Desventajas
- Fragmentación Externa: Se generan muchos huecos pequeños no utilizables entre las particiones ocupadas.
- Necesidad de Compactación: Para solucionar la fragmentación externa, los procesos pueden necesitar ser reubicados en memoria para juntar los huecos libres, lo cual es costoso.
Asignación No Contigua
Se permite que un proceso ocupe secciones de memoria física no adyacentes.
Paginación: Divide el espacio de direcciones lógico en bloques de igual tamaño (páginas). La memoria física se divide en bloques del mismo tamaño (marcos de página). Cualquier página puede cargarse en cualquier marco disponible.
Segmentación: Divide el espacio de direcciones lógico en bloques de diferentes tamaños (segmentos), que corresponden a unidades lógicas (código, datos, pila). Cada segmento se mapea a un espacio contiguo en memoria física.
Memoria Virtual
Es una técnica que permite ejecutar procesos que no residen completamente en la memoria física (RAM). Utiliza el almacenamiento secundario (disco) para simular un espacio de memoria mucho más grande que la memoria física disponible. Es una abstracción gestionada por el SO y la MMU.
¿Por qué es interesante usarla? Permite ejecutar programas más grandes que la memoria física y tener más programas en memoria simultáneamente. Aunque el almacenamiento secundario tiene un costo por bit más bajo que la RAM, el acceso a los datos en el disco es mucho más lento.
¿Se puede desactivar? Generalmente sí (configurando el archivo de paginación o swap a tamaño cero), pero no es recomendable, ya que puede causar inestabilidad o fallos si la memoria física se agota.
Virtualización
Es la creación de una versión virtual (basada en software) de un recurso tecnológico (servidor, almacenamiento, red, sistema operativo) en lugar de una versión física.
Ventajas
- Aumenta la seguridad y facilita la recuperación: Copias de seguridad (backups) y restauración más sencillas. Aislamiento entre máquinas virtuales.
- Fácil manejo y migración: Una máquina virtual puede ser trasladada (migrada) fácil y rápidamente a otro servidor físico.
- Consolidación de servidores: Ejecutar varios sistemas operativos y aplicaciones en una sola plataforma de hardware físico.
- Entornos de prueba y desarrollo: Crear entornos aislados sin afectar el sistema principal.
Tipos de Sistemas Operativos
(Contenido no proporcionado en el documento original)
Cloud Computing (Computación en la Nube)
Es un modelo que permite el acceso bajo demanda a través de la red a un conjunto compartido de recursos informáticos configurables (ej., redes, servidores, almacenamiento, aplicaciones, servicios). Permite almacenar archivos e información y ejecutar aplicaciones en Internet.
Ventajas
- Escalabilidad y Flexibilidad: Ajuste de recursos según la demanda.
- Modelo de pago por uso: Generalmente se paga solo por los recursos consumidos.
- Accesibilidad: Acceso desde cualquier lugar con conexión a Internet.
- Actualizaciones y Mantenimiento: Gestionados por el proveedor.
- Colaboración: Facilita compartir recursos y trabajar en equipo.
Modelos de Servicio Cloud: SaaS (Software como Servicio)
Es un modelo de distribución de software donde las aplicaciones son alojadas por un proveedor y puestas a disposición de los usuarios a través de Internet (normalmente vía navegador web).
Ejemplo: Aplicaciones de correo web (Gmail), suites ofimáticas online (Google Docs, Microsoft 365), software CRM (Salesforce), programas de facturación online.