📚 Nota: El texto citado en cursiva corresponde a contenido extraído directamente del apunte.
1- Definición y Funciones
- ¿Cómo se define un Sistema Operativo (SO) según el apunte 1?
“Un sistema operativo es una colección organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar al computador y proporcionan un entorno para la ejecución de programas… El SO actúa como interfaz entre los usuarios/aplicaciones y el hardware de un sistema informático.”
En otras palabras, el SO es la capa intermedia que traduce las peticiones de los programas y de los usuarios en acciones concretas sobre el hardware (CPU, memoria, dispositivos de E/S). Sin él, cada programa tendría que gestionar directamente los recursos físicos, lo que sería impracticable y propenso a errores.
b. Mencione y describa brevemente tres funciones clave de los sistemas operativos.
| Función (apunte) | Explicacion (ChatGPT) |
|---|---|
| Control de recursos – Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse. | El SO mantiene una tabla de recursos (por ejemplo, tablas de procesos, descriptores de archivos, estructuras de memoria) y asegura que varios procesos puedan usar esos recursos sin interferir entre sí. Cuando dos procesos solicitan la misma impresora, el SO decide quién la usa primero y cuándo la libera. |
| Manejo de dispositivos de E/S – Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas. | Cada dispositivo tiene un controlador que el kernel conoce. El SO recibe las peticiones de lectura/escritura de los programas, coloca los datos en buffers, programa interrupciones y garantiza la consistencia de los datos. Esto permite que el usuario copie un archivo a un USB sin preocuparse por los detalles eléctricos del puerto. |
| Secuencia de tareas (planificación) – El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después). | El planificador (scheduler) asigna “quantums” de tiempo de CPU a los procesos según políticas (prioridad, round‑robin, etc.). Cuando un proceso termina su quantum o queda bloqueado esperando I/O, el scheduler selecciona el siguiente proceso listo, manteniendo el procesador ocupado la mayor parte del tiempo. |
2- Características Generales
- De las características mencionadas en el texto, ¿cuál se relaciona con la capacidad del SO para adaptarse y añadir nuevas funcionalidades sin afectar el servicio existente?
“Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.”
Esta característica indica que el SO está pensado para evolucionar, los desarrolladores pueden agregar módulos, actualizar controladores o introducir nuevas APIs sin necesidad de apagar el sistema o interrumpir a los usuarios. En la práctica, esto se logra mediante arquitecturas modulares, kernel dinámico y mecanismos de actualización en caliente.
b. Explique la característica del SO de “Encargado de administrar el hardware”.
“El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.”
Esto significa que el SO orquesta el uso del hardware: asigna tiempo de CPU, reserva bloques de memoria, controla el acceso a discos y dispositivos de entrada/salida, y protege el hardware de usos conflictivos o dañinos. Sin esta gestión, los procesos podrían sobrescribir la memoria de otros, bloquear dispositivos o incluso dañar físicamente componentes por uso indebido.
3- Clasificación de los Sistemas Operativos:
- ¿Cuál es la principal diferencia entre un Sistema Operativo Monotareas y uno de multiprogramación o multitarea?
-
Monotareas:
“Los sistemas operativos monotarea son más primitivos… solo pueden manejar un proceso en cada momento… cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.”
-
Multiprogramación/Multitarea:
“Es el modo de funcionamiento… mediante el cual una computadora procesa varias tareas al mismo tiempo… la unidad central de procesamiento (UCP) siempre tiene alguna tarea que ejecutar, aprovechando al máximo su utilización.”
En resumen, la monotarea permite una única actividad activa, sin embargo la multitarea mantiene varios procesos en memoria simultáneamente, alternando su ejecución para que el CPU nunca quede ocioso.
**b. Explique el concepto de “multitarea de tiempo compartido” y cómo se diferencia de otros tipos de multitareas, como la “conmutación de contextos”.
-
Multitarea de tiempo compartido:
“Cada tarea recibe la atención del microprocesador durante una fracción de segundo… el usuario percibe que cada proceso tiene su propia máquina dedicada.”
Aquí el scheduler reparte intervalos de tiempo (time slots) a cada proceso de forma cíclica, creando la ilusión de que cada usuario posee un sistema exclusivo.
-
Conmutación de contextos:
“La conmutación de contextos (context switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero sólo se está procesando la aplicación que se encuentra en primer plano”.
La conmutación de contextos es simplemente el mecanismo que guarda el estado del proceso actual (registros, punteros de pila, etc.) y restaura el estado del siguiente proceso. En la multitarea de tiempo compartido, la conmutación ocurre a intervalos regulares para repartir equitativamente el CPU; en otros esquemas (p. ej., multitarea cooperativa) la conmutación depende de que el proceso ceda voluntariamente el control.
4- Sistemas por Usuario y por Propósito:
- ¿Cuál es la principal distinción entre un Sistema Operativo Monousuario y uno Multiusuario?
-
Monousuario:
“Los sistemas monousuarios son aquellos que atienden a un solo usuario a la vez, por limitaciones técnicas; son sistemas simples, con poca necesidad de gestión de recursos; no requieren gran seguridad, ya que no hay más de un usuario accediendo”.
-
Multiusuario:
“Es todo lo contrario a monousuario… sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos; requieren mecanismos de control de recursos y seguridad (para que los usuarios no interfieran entre sí); son más complejos, porque gestionan prioridades, procesos y accesos”.
La diferencia esencial radica en cuántas sesiones activas pueden coexistir: un SO monousuario brinda todos los recursos a un único usuario; un SO multiusuario implementa aislamiento, contabilidad y protección para que varios usuarios trabajen al mismo tiempo sin interferir.
b. Mencione dos ejemplos de entornos de aplicación para los Sistemas Operativos de tiempo real y explique su objetivo principal.
| Entorno (apunte) | Ejemplo citado | Objetivo principal (ChatGPT) |
|---|---|---|
| Control de tráfico aéreo | No se menciona un nombre concreto, pero el texto habla de “control de tráfico aéreo”. | Garantizar que cada mensaje de radar, instrucción a la torre o actualización de ruta se procese dentro de un plazo estricto (milisegundos), evitando retrasos que pudieran comprometer la seguridad de los vuelos. |
| Control de refinerías /industria | “Control de refinerías”, “control de laminadores”, “control de edificios”, etc. | Mantener ciclos de control precisos (por ejemplo, abrir cerrar válvulas, regular temperatura) en tiempo real para evitar fallos catastróficos, maximizar la eficiencia y cumplir con normas de seguridad. |
En ambos casos, el objetivo es respuesta determinística y ultra‑rápida a eventos externos, de modo que el sistema nunca falle en cumplir su deadline crítico.
5- Sistemas de Red y Distribuidos:
- Describa qué son los Sistemas Operativos de Red y cuál es su objetivo fundamental.
“Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.”
Su objetivo fundamental es proveer un entorno donde los recursos (archivos, impresoras, bases de datos, etc.) sean accesibles desde cualquier nodo conectado, como si estuvieran localmente disponibles. Esto facilita la colaboración, la centralización de datos y la gestión de recursos a escala empresarial o institucional.
b. ¿Qué es un Sistema Operativo Distribuido y cuál es la diferencia entre un sistema “fuertemente acoplado” y uno “débilmente acoplado”?
“Un sistema operativo distribuido es aquel que hace funcionar un conjunto de computadoras interconectadas como si fueran un único sistema, compartiendo recursos y tareas de manera transparente para el usuario”.
-
Fuertemente acoplado:
“Los procesadores comparten memoria y reloj, trabajan muy coordinados (sistemas multiprocesadores).”
- Los nodos tienen memoria compartida y un reloj sincronizado, lo que permite que los procesos accedan a datos comunes con latencias bajas.
-
Débilmente acoplado:
“Cada procesador tiene su propia memoria y reloj, comunicándose mediante una red (sistemas de red).”
- Cada nodo opera independientemente, comunicándose mediante mensajes (p. ej., RPC, sockets). La latencia es mayor y la coherencia de datos se maneja explícitamente.
La diferencia esencial es si los procesadores comparten o no recursos de bajo nivel (memoria, reloj), lo que determina la complejidad de la programación y el rendimiento de la distribución.
6- Sistemas Paralelos y Arquitectura UNIX/LINUX
- ¿Cuál es el propósito de un Sistema Operativo Paralelo?
“Su propósito es ejecutar programas sin tener que atenderlos en forma interactiva, es decir, aprovechar al máximo los recursos de un sistema para ejecutar tareas de forma simultánea”.
En otras palabras, el objetivo es explotar varios núcleos o CPUs simultáneamente, permitiendo que diferentes hilos o procesos se ejecuten en paralelo y reduzcan el tiempo total de cómputo. Esto es crucial en aplicaciones de alto rendimiento (simulaciones científicas, renderizado, análisis de datos masivos).
b. Según la arquitectura UNIX/LINUX, ¿qué es el “Kernel” y cuáles son sus dos componentes principales?
“El Kernel… muestra varios módulos y las relaciones entre ellos. En particular, se muestra el subsistema de archivos en la parte izquierda y el subsistema de control de procesos en la parte derecha, los dos mayores componentes del Kernel.”
- Kernel: Núcleo del SO que controla directamente el hardware y ofrece servicios básicos (gestión de memoria, planificación, E/S).
- Dos componentes principales:
- Subsistema de archivos –> gestiona todo lo relacionado con archivos y dispositivos de almacenamiento.
- Subsistema de control de procesos –> maneja la creación, planificación, sincronización y terminación de procesos, además de la gestión de memoria asociada.
7- Módulos del Kernel de UNIX/LINUX
- ¿Qué función tiene el “subsistema de archivos” en la arquitectura del Kernel?
“Controla los archivos, asigna espacio a los archivos, administra el espacio libre, controla el acceso a los archivos, etc.”
Este módulo mantiene la estructura jerárquica del sistema de ficheros, asigna bloques de disco, lleva contabilidad de espacio libre, verifica permisos y protege la integridad de los datos mediante buffers y cachés. Cada llamada de apertura, lectura o escritura pasa por este subsistema antes de llegar al controlador físico.
b. ¿Cuál es la responsabilidad del “módulo de planificador o sheduler”?
“El módulo de planificador o ‘scheduler’ se encarga de asignar el procesador a los diferentes procesos, diciendo qué tareas se ejecutan, en qué orden y por cuánto tiempo, para optimizar el uso de los recursos del sistema”.
En esencia, el scheduler decide qué proceso obtiene el próximo quantum de CPU, aplicando políticas (prioridad, round‑robin, tiempo real, etc.). Cuando un proceso agota su quantum o queda bloqueado, el scheduler elige el siguiente proceso listo, asegurando una distribución justa y eficiente del tiempo de procesamiento.
8- Interacción y Gestión
- ¿Cómo interactúan los programas de usuario con el Kernel del sistema operativo UNIX/LINUX, según el diagrama y la descripción?
“Los programas de usuario se comunican con el Kernel mediante llamadas al sistema y librerías, que traducen esas órdenes al lenguaje que entiende el SO”.
Los programas usan bibliotecas de tiempo de ejecución (p. ej., libc) que envuelven las system calls (open, read, fork, exec, etc.). Cuando una aplicación invoca una de esas funciones, la biblioteca prepara los parámetros, cambia al modo privilegiado y transfiere el control al kernel, que ejecuta la operación solicitada (acceso a disco, creación de proceso, etc.) y devuelve el resultado al proceso de usuario.
b. ¿Qué sucede cuando un proceso de mayor prioridad solicita recursos en un Sistema Operativo de tiempo real?
“En un sistema de tiempo real, si un proceso de mayor prioridad pide recursos, interrumpe al que estaba corriendo y se queda con ellos (recursos), para garantizar respuesta inmediata”.
El planificador preemptivo del SO de tiempo real interrumpe inmediatamente al proceso de menor prioridad que esté usando esos recursos, le quita el CPU (y, si es necesario, libera otros recursos) y le otorga el control al proceso de mayor prioridad. Esta expropiación garantiza que los deadlines críticos se cumplan, evitando que procesos menos importantes bloqueen recursos esenciales.
Posts Relacionados
Otros apuntes que podrían interesarte de esta materia