Resumen Tema 2: Sistemas Operativos (PDF)

Summary

Este documento resume el tema 2 sobre sistemas operativos. Se define el sistema operativo y se describen diferentes tipos de sistemas operativos según su estructura, número de usuarios y tareas. También se estudia la gestión de procesos.

Full Transcript

1. Definición de sistema operativo El sistema operativo es un conjunto de programas que actúan como interfaz del “hardware” del ordenador y que controlan la ejecución del resto de programas. Las características fundamentales que debe ofrecer cualquier sistema operativo son: - Adaptabilidad: Capaci...

1. Definición de sistema operativo El sistema operativo es un conjunto de programas que actúan como interfaz del “hardware” del ordenador y que controlan la ejecución del resto de programas. Las características fundamentales que debe ofrecer cualquier sistema operativo son: - Adaptabilidad: Capacidad para ajustarse a cambios en software y hardware, normalmente a través de actualizaciones. - Facilidad de uso: Debe ser intuitivo y accesible, teniendo en cuenta el propósito del sistema informático. - Eficiencia: Optimización en el uso de recursos limitados (como procesadores, RAM, y almacenamiento), gestionando de manera efectiva las solicitudes de usuarios y programas. 2. Tipos de sistemas operativos. 2.1. Sistemas operativos por su estructura 2.1.1. Estructura monolítica Esta estructura consiste en un único programa que integra un conjunto de rutinas entrelazadas, permitiendo que cada rutina llame a cualquier otra. 2.1.2. Estructura jerárquica o multicapa Con el crecimiento de las necesidades de los usuarios, se organizó el software dividiendo el sistema operativo en partes más pequeñas y definidas, cada una con interfaces claras con los demás componentes. 2.1.3. Estructura cliente-servidor o microkernel Este enfoque moderno se basa en un núcleo que facilita la comunicación entre procesos clientes y servidores. Los procesos pueden desempeñar ambos roles, lo que ofrece flexibilidad. El núcleo se encarga solo de funciones básicas como memoria y entrada/salida. 2.1.4. Kernel Híbrido Combina elementos de arquitecturas monolíticas y microkernel, buscando sus ventajas. Tiene un diseño de microkernel, pero una implementación monolítica que ofrece estabilidad y buen rendimiento. A diferencia de los microkernel, incluye controladores de dispositivos y servicios de comunicación entre procesos en su espacio de kernel. Los sistemas operativos actuales no se pueden definir en una arquitectura claramente definica, aunque si se puede decir que sean tendentes a una de ellas. Por ejemplo: Mac OS: híbrido Windows de la familia NT: híbrido Ubuntu: monolítico. 2.2. Sistemas operativos por sus servicios 2.2.1 Por el Número de Usuarios Monousuario: Soportan solo un usuario a la vez. Ejemplos: MS-DOS, Windows 9x, ME, MAC OS. Multiusuario: Soportan múltiples usuarios simultáneamente. Ejemplos: UNIX, GNU/Linux, Windows Server, MAC OS X. 2.2.2 Por el Número de Tareas Monotarea: Permiten la ejecución de una sola tarea por usuario. Ejemplos: MS- DOS, Windows 3.x, 95 (simulando multitarea). Multitarea: Permiten la ejecución de varias tareas simultáneamente. Ejemplos: MAC OS, UNIX, Linux, Windows 98, 2000, XP, Vista, 7 y 10. 2.2.3 Por el Número de Procesadores Monoprocesador: Manejan un solo procesador. Ejemplos: MS-DOS, MAC OS. Multiproceso: Manejan múltiples procesadores. Pueden operar de forma: Asimétrica: Un procesador actúa como maestro, distribuyendo la carga a los demás (esclavos). Simétrica: Los procesos se distribuyen equitativamente entre todos los procesadores. 2.3 Sistemas Operativos por su Interconexión 2.3.1 Aislados No pueden comunicarse ni interactuar con otros ordenadores. 2.3.2 De Red Pueden interactuar con otros ordenadores para intercambiar información, transferir archivos y ejecutar comandos remotos. Requieren conocimiento de la sintaxis de comandos y ubicación de recursos. 2.3.3 Distribuidos Integran recursos de varios ordenadores en una única máquina virtual, permitiendo acceso transparente a los usuarios. 3. Gestión de procesos 3.1 Definición de proceso: Un programa (concepto estático) es una secuencia de instrucciones escritas en un lenguaje, mientras que un proceso (concepto dinámico) es una instancia de ejecución de dicho programa. En sistemas multiusuario, un mismo programa puede tener muchos procesos simultáneos. El sistema operativo utiliza los procesos para gestionar el procesador a través de técnicas como la multiprogramación o el tiempo compartido, ya que el proceso es la unidad planificable, o de asignación de la CPU. 3.2 Estados de un proceso Un proceso puede atravesar varios estados durante su ciclo de vida: Nuevo: Recién creado, aún no admitido por el sistema operativo. En ejecución: Está usando la CPU. Listo: Preparado para ejecutarse, espera a que el sistema lo asigne a la CPU (organizado en colas de espera). Bloqueado: No puede ejecutarse hasta que ocurra un evento (como Entrada/Salida); también organizado en colas de espera. Listo y suspendido: Preparado para ejecutarse, pero está en memoria secundaria por falta de memoria principal (en colas de espera). Bloqueado y suspendido: No ejecutable hasta que ocurra un evento, además está en memoria secundaria. Terminado: Proceso finalizado o fallido. 3.3 Transiciones de estado de un proceso Ejemplos de eventos que generan cambios de estado: Ejecución → Bloqueado: Cuando el proceso necesita realizar una operación de entrada/salida. Ejecución → Listo: Cuando el proceso supera su tiempo asignado en la CPU y el sistema operativo lo reemplaza. Listo → Ejecución: Cuando el sistema operativo selecciona el proceso para ocupar la CPU. Bloqueado → Listo: Cuando finaliza la operación de entrada/salida que causó el bloqueo. 3.4 Planificación de procesos La planificación de procesos define cómo el sistema operativo asigna la CPU a los procesos y durante cuánto tiempo. 3.4.1 Objetivos de la planificación 1. Imparcialidad: Todos los procesos son tratados por igual y obtienen su turno de ejecución. 2. Productividad: Completar la mayor cantidad de procesos en el menor tiempo posible. 3. Rapidez de respuesta: Responder rápidamente a los usuarios interactivos. 3.4.2 Variables clave en la planificación Instante de entrada: Momento en que el proceso entra al estado listo por primera vez. Instante de salida: Momento en que el proceso finaliza. Tiempo de espera: Duración en que el proceso estuvo inactivo en estado listo. Tiempo de CPU: Tiempo en que el proceso estuvo ejecutándose. Tiempo de respuesta: Tiempo total desde que el proceso entra hasta que finaliza. Fórmula: Tiempo de respuesta = Tiempo de CPU + Tiempo de espera = Instante de salida – Instante de entrada. 3.4.3. Algoritmos de planificación de procesos 3.4.3.1. FIFO (First Input First Output) También conocido como FCFS (First Come First Served), atiende procesos en el orden de llegada. Es justo pero ineficiente, con tiempos de espera altos, especialmente para procesos cortos. 3.4.3.2. SJF (Shortest Job First, Primero el Trabajo más Corto) Selecciona el proceso con menor tiempo estimado de ejecución, reduciendo los tiempos de espera y retorno. Requiere estimaciones previas y puede provocar inanición en procesos largos si continuamente llegan procesos cortos. 3.4.3.3. SRTF (Shortest Remainder Time First, Primero el Tiempo Restante más Corto) Prioriza el proceso con menor tiempo restante. Si un proceso nuevo tiene menor tiempo que el actual, toma la CPU. Mejora tiempos de espera, pero aumenta la sobrecarga y puede causar inanición en procesos largos. 3.4.3.4. RR (Round Robin, Rueda de Tiempo) Este algoritmo asigna la CPU en intervalos de tiempo fijos, llamados quantum. Los procesos se despachan en orden FIFO, y si un proceso agota su quantum, se coloca al final de la cola. Es adecuado para sistemas de tiempo compartido, garantizando tiempos de respuesta razonables. Sin embargo, un quantum demasiado grande lo convierte en FIFO, y uno demasiado pequeño aumenta la sobrecarga, reduciendo el rendimiento. 3.4.3.5. Algoritmos con prioridades Los procesos se ejecutan según su prioridad. Esto mejora los tiempos de respuesta críticos, pero puede causar inanición en procesos de baja prioridad. Apropiativa: El nuevo proceso interrumpe al actual. No apropiativa: El nuevo proceso espera su turno. 3.4.3.5.1. FIFO con prioridades no apropiativo 3.4.3.5.2. FIFO con prioridades apropiativo 3.4.3.6. Colas multinivel Los procesos se clasifican en colas según sus características (tareas del sistema, interactivas, por lotes) y se atienden según la prioridad. Para evitar inanición, los procesos que no terminan en colas de alta prioridad se mueven a colas de menor prioridad. 4. Gestión de memoria La gestión de memoria asigna memoria física limitada a los procesos en un entorno multiproceso. Sus funciones incluyen: Determinar qué proceso debe recibir memoria. Establecer cuánta memoria necesita un proceso y su ubicación. Controlar el acceso a las direcciones de memoria de cada proceso. Gestionar el intercambio de procesos entre la memoria principal y secundaria. Minimizar el desperdicio de memoria y el coste de gestión. La memoria se divide en partes: Asignación contigua: El proceso ocupa bloques contiguos. Asignación no-contigua: El proceso ocupa bloques no contiguos (como paginación y segmentación). 4.1. Particiones estáticas La memoria se divide en zonas de tamaño fijo o variable para que cada una ejecute un proceso. Esta división se realiza al inicio y no cambia. Fragmentación interna: Sucede cuando una partición es más grande que el proceso, dejando memoria sin usar. Fragmentación externa: Ocurre cuando no hay una partición lo suficientemente grande para un proceso, dejando espacio inutilizable. 4.2. Particiones dinámicas La memoria se divide de manera flexible según las necesidades de cada proceso. A medida que los procesos entran y salen, se crean particiones en los espacios libres. Esto reduce la fragmentación interna, pero aún puede haber fragmentación externa, ya que no siempre hay suficiente espacio libre para los procesos entrantes. 4.2.1. Compactación Cuando la memoria se fragmenta en bloques pequeños, se pueden mover los bloques asignados para crear espacios más grandes. Esto mejora la utilización de la memoria, pero es costoso en tiempo y requiere actualizar las direcciones de memoria. 4.3. Paginación La memoria se divide en páginas lógicas de tamaño fijo, y la memoria física en marcos de página. Las páginas pueden estar en cualquier marco, eliminando la fragmentación externa, pero puede haber fragmentación interna si la última página no se llena completamente. 4.4. Segmentación La memoria se divide en segmentos de tamaños variables (como código o datos), y cada segmento ocupa un espacio contiguo en la memoria. Los segmentos pueden estar dispersos, y se utiliza una tabla de segmentos para traducir las direcciones. 4.5. Segmentación paginada Combina segmentación y paginación, donde cada segmento se divide en páginas. Esto mejora la protección y el uso de memoria, pero la traducción de direcciones es más compleja. 5. Gestión de memoria virtual La memoria virtual permite que el sistema operativo simule una memoria más grande de la que realmente tiene disponible. Esto permite ejecutar más procesos de los que caben en la memoria física y manejar procesos que requieren más memoria de la instalada. Cuando un proceso necesita acceso a una parte de su espacio de direcciones que no está en memoria, esta se recupera del disco, reemplazando las páginas no necesarias. 5.1. Definición de memoria virtual La memoria virtual crea la ilusión de un espacio de direcciones mayor al disponible físicamente, permitiendo a los procesos acceder a más memoria. Solo las partes necesarias del proceso se cargan en la memoria principal, mientras que el resto reside en el disco. 5.2. Algoritmos de reemplazo de páginas Cuando no hay marcos libres en memoria para cargar nuevas páginas, se deben aplicar algoritmos de reemplazo de páginas, que seleccionan qué página de memoria se debe intercambiar. Algunos algoritmos son: Óptimo: Reemplaza la página que no será usada por más tiempo. LRU (Least Recently Used): Reemplaza la página que ha sido referenciada hace más tiempo. FIFO (First Input First Output): Reemplaza la página que lleva más tiempo en la memoria. 6. Gestión de entrada-salida La gestión de E/S permite tratar los dispositivos de manera uniforme, respetando sus características. 6.1. Problemas asociados 1. Asincronía: Las operaciones de E/S son asíncronas, lo que significa que la CPU no sabe cuánto tardará en completarse. 2. Velocidades diversas: Los dispositivos tienen velocidades muy diferentes, lo que complica la gestión. 3. Comunicaciones variadas: Los dispositivos pueden usar comunicación serie o paralela, y tener diferentes comandos y errores. 6.2. Evolución histórica 1. Control directo de la CPU: Inicialmente, la CPU controlaba directamente todos los dispositivos, lo que no era eficiente. 2. Controlador de E/S: Se introdujo un módulo para aislar a la CPU, pero aún con gestión programada. 3. Interrupciones: La CPU mandaba la orden de E/S y continuaba ejecutando otros procesos hasta que el dispositivo interrumpía cuando terminaba. 4. DMA: El DMA permitió transferencias directas entre dispositivos y memoria sin intervención de la CPU. 5. Procesadores de E/S: Se crearon procesadores dedicados a E/S para liberar a la CPU. 6. Memoria independiente: Los procesadores de E/S se dotaron de memoria propia, liberando más recursos de la CPU. 7. Gestión de discos duros Los discos duros almacenan información no volátil y funcionan como memoria secundaria. Están compuestos por discos con pistas y sectores, organizados en clústeres y cilindros. 7.1. Algoritmos de acceso a disco La gestión de solicitudes de E/S busca ser eficiente y equitativa, con tiempos de respuesta predecibles. 7.1.1. FIFO Procesa las solicitudes en orden de llegada, pero puede generar un movimiento innecesario del cabezal. 7.1.2. SSTF Atiende la solicitud más cercana, reduciendo el movimiento, pero puede causar inanición de algunas peticiones. 7.1.3. SCAN El cabezal recorre el disco de un extremo a otro, invirtiendo dirección al llegar al final. Es eficiente, pero puede tener tiempos de espera altos. 7.1.4. C-SCAN Similar a SCAN, pero al llegar al final el cabezal regresa sin atender en el trayecto de vuelta, mejorando la uniformidad de tiempos de espera. 7.1.5. LOOK El cabezal no va hasta el final del disco, solo hasta la última solicitud en cada dirección, lo que reduce el tiempo de espera. 7.1.6. C-LOOK Es como C-SCAN, pero el cabezal no llega al final, solo hasta la última solicitud, y luego regresa al inicio. 8. Gestión de ficheros El sistema de ficheros es responsable de organizar los archivos en el almacenamiento secundario, como discos duros, pendrives y archivos en red. Su función principal es proporcionar un almacenamiento que sea tanto privado como compartido, permitiendo a los usuarios gestionar la información de manera eficiente. Entre las operaciones que debe soportar un sistema de ficheros se incluyen la creación, modificación, eliminación, renombrado y traslado de archivos, así como las operaciones sobre los datos de los archivos, como leer, escribir, actualizar o eliminar información. Además, debe garantizar el control de acceso a los archivos compartidos, la transferencia de datos entre archivos y la posibilidad de cifrar y descifrar la información. Los objetivos clave en la implementación de un sistema de ficheros incluyen: 1. Optimización del rendimiento: El sistema debe permitir un acceso rápido a los archivos sin ralentizar el funcionamiento general del sistema. 2. Fácil actualización: Las operaciones de modificación de archivos deben ser sencillas para los usuarios y las aplicaciones. 3. Economía de almacenamiento: Se debe minimizar el desperdicio de espacio en disco, evitando la fragmentación de los archivos. 4. Mantenimiento sencillo: El sistema debe proporcionar una interfaz estandarizada para el acceso a los archivos, ocultando los detalles técnicos complejos. 5. Fiabilidad: Debe garantizar la correcta lectura y escritura de los datos, minimizando el riesgo de pérdida o destrucción de la información. 6. Seguridad y permisos: En sistemas multiusuario, es fundamental proteger los archivos de un usuario contra el acceso no autorizado mediante permisos de lectura, escritura o ejecución. 7. Control de concurrencia: Se debe gestionar el acceso simultáneo a los archivos, bloqueando temporalmente los archivos en uso para evitar conflictos durante su modificación. Parte 2 – Virtualización La virtualización es una tecnología que permite crear máquinas virtuales, que son entornos aislados que simulan un sistema operativo completo. El objetivo de los sistemas operativos es abstraer los programas del hardware real. La virtualización avanza un paso más al permitir que un sistema operativo (SO) se ejecute sobre una máquina virtual, que se comporta como una máquina física, aunque solo comparte ciertos recursos con el SO anfitrión. Conceptos clave: Anfitrión: El sistema operativo real que ejecuta el software de virtualización y gestiona los recursos para las máquinas virtuales. Huésped: El sistema operativo instalado dentro de la máquina virtual, que utiliza los recursos asignados por el anfitrión. Requisitos de hardware: Se necesita un ordenador potente, con al menos 2 GB de RAM, suficiente espacio en disco y un procesador capaz de dividir su tiempo entre los diferentes sistemas operativos. Ventajas de la virtualización: Ahorro de costes: Reduce la necesidad de múltiples máquinas físicas. Entornos de prueba: Permite crear sistemas aislados para probar programas sin afectar al sistema real. Seguridad: Crea entornos aislados para proteger sistemas y datos sensibles. Compatibilidad: Facilita la ejecución de programas incompatibles con el sistema operativo principal. Eficiencia: Mejora la administración de recursos y reduce el tiempo de inactividad de los sistemas. Soluciones de virtualización: 1. VirtualBox: Plataforma gratuita y fácil de usar para crear máquinas virtuales en Windows, Mac y Linux. 2. VMware: Solución más avanzada, con varias opciones como VMware Converter, VMware Player y VMware Workstation, cada una adaptada a diferentes necesidades de virtualización, desde uso personal hasta empresarial.

Use Quizgecko on...
Browser
Browser