Actividad
Introducción a los Sistemas Operativos
Los sistemas operativos son el software más importante con el que contamos en las computadoras para poder realizar gestión y control de toda la información que almacenamos y procesamos, permitiendo una comunicación directa entre el hombre y la máquina. Relaciona las componentes de software con las componentes físicas para lograr un procesamiento eficiente sin errores y ofreciendo también una gama de aplicaciones con las que el usuario puede realizar diferentes tareas.
Una de las definiciones para el Sistema Operativo: Es un software que permite administrar los recursos de un computador: memoria, procesadores (llamados también microprocesadores), controlar los dispositivos físicos de la computadora (impresoras, teclados, mouses, tarjetas de video sonido y de red, entre otras; dispositivos de comunicación datos y dispositivos multimedia. También se considera como una plataforma sobre la cual se montan o instalan y ejecutan las demás aplicaciones ejemplo Encarta, paquete de office, graficadores, lenguajes de programación, manejadores de bases de datos, programas de audio y video.
Los Sistemas Operativos se definen también como una máquina virtual, es decir, se presenta al usuario (el que trabaja con la computadora, puede ser en una estación de trabajo), para que sea más fácil la programación y como un controlador de los recursos, la labor del sistema operativo es la de proporcionar el control de los procesadores, memorias y dispositivos de Entrada y Salida, como el teclado, impresora, ratón, monitor, discos duros, y discos flexibles, entre otros.
1. ¿Qué es un sistema operativo y cuál es su función principal dentro de un sistema informático?
Un sistema operativo es el conjunto de programas básicos que gestionan y coordinan todos los recursos de un sistema informático, tanto de hardware (procesador, memoria, dispositivos de entrada y salida, almacenamiento) como de software (aplicaciones y servicios). Su función principal es actuar como intermediario entre el usuario y la computadora, permitiendo que las aplicaciones se ejecuten de forma segura y eficiente. Para ello, el sistema operativo administra la memoria, organiza los archivos, controla los dispositivos y reparte el tiempo de uso del procesador entre los distintos programas en ejecución.
2. ¿Cómo actúa el sistema operativo como intermediario entre el usuario, las aplicaciones y el hardware?
El sistema operativo (SO) es el puente que conecta al usuario y las aplicaciones con el hardware del ordenador. Cuando el usuario da una orden (por ejemplo, abrir un programa), el SO interpreta esa orden y se la comunica al hardware de forma que este pueda ejecutarla de manera segura y eficiente. A su vez, el SO gestiona la memoria, el procesador y los dispositivos de entrada y salida, y devuelve al usuario los resultados de las operaciones a través de las aplicaciones.
En resumen, el sistema operativo:
- Traduce las acciones del usuario a instrucciones para el hardware.
- Ofrece una base común para que las aplicaciones funcionen.
- Controla y organiza el uso de los recursos físicos del sistema.
3. ¿Cuáles son las principales funciones de administración de recursos que realiza un sistema operativo?
Un sistema operativo (SO) actúa principalmente como un administrador de recursos (resource manager), encargado de gestionar de manera eficiente, justa y segura los componentes de hardware de una computadora para que las aplicaciones y los usuarios puedan utilizarlos sin interferirse.
Investigue específicamente la administración de:
Procesador.
El procesador es el recurso más crítico y limitado del sistema. El SO se encarga de repartir el tiempo de la CPU entre los distintos programas en ejecución mediante un concepto clave llamado planificación (scheduling).
Planificación de procesos: Decide qué proceso usa la CPU, en qué orden y durante cuánto tiempo, utilizando algoritmos (como Round Robin, FIFO, o por prioridades) para garantizar la equidad y evitar que un proceso acapare todo el procesador.
Cambio de contexto (Context Switch): Gestiona la interrupción de un proceso en ejecución para guardar su estado actual y cargar el estado del siguiente proceso, logrando la ilusión de que la computadora hace muchas cosas al mismo tiempo (multitarea).
Sincronización y comunicación: Proporciona mecanismos para que los procesos compartan datos de forma segura sin generar conflictos (condiciones de carrera) o bloqueos mutuos (deadlocks).
Memoria.
La memoria principal es donde residen los programas y los datos que la CPU necesita procesar de forma inmediata. El SO optimiza su uso para que múltiples aplicaciones quepan y funcionen de manera fluida.
Asignación y liberación: Asigna bloques de memoria a los programas cuando se inician y los libera cuando terminan para evitar fugas de memoria (memory leaks).
Memoria virtual: Implementa técnicas (como la paginación) para usar parte del disco duro o SSD como una extensión de la RAM, permitiendo ejecutar programas que superan el tamaño de la memoria física disponible.
Protección y aislamiento: Garantiza que el espacio de memoria de un programa o del propio sistema operativo esté aislado, evitando que un error o código malicioso en una aplicación sobrescriba datos de otra.
Dispositivos.
Los dispositivos periféricos (teclado, mouse, monitor, discos, impresoras) son muy variados y operan a velocidades diferentes. El SO oculta la complejidad del hardware al software de aplicación.
Controladores de dispositivos (Drivers): Utiliza software especializado para comunicarse directamente con el hardware, traduciendo las órdenes genéricas del SO en instrucciones específicas para cada fabricante.
Gestión de colas y buffering: Almacena temporalmente los datos en búferes y gestiona colas de espera cuando un dispositivo está ocupado (por ejemplo, al mandar documentos a imprimir), optimizando el rendimiento.
Independencia de dispositivos: Permite que las aplicaciones realicen operaciones de lectura y escritura de forma uniforme, sin importar si interactúan con un disco duro, una memoria USB o la red.
Información/archivos.
El almacenamiento secundario físico (discos duros, SSDs) está compuesto por bloques dispersos y sectores complejos. El SO transforma esa estructura física en un modelo lógico comprensible para el usuario.
Sistemas de archivos: Organiza la información en una estructura jerárquica de archivos y directorios (carpetas), mapeando nombres lógicos a ubicaciones físicas en el disco.
Control de acceso y permisos: Administra la seguridad de la información, definiendo qué usuarios o procesos tienen autorización para leer, modificar, escribir o ejecutar determinados archivos.
Gestión de espacio libre: Realiza un seguimiento de los sectores o clústeres disponibles en el almacenamiento para asignar nuevo espacio de manera eficiente y minimizar la fragmentación de los archivos.
Explique qué ocurriría si el sistema operativo no realizara correctamente cada función.
4. ¿Qué es el Kernel y por qué se considera el núcleo fundamental de un sistema operativo?
Explique qué recursos administra y cómo se relaciona con los procesos.
El Kernel (o núcleo) es el programa central y la pieza de software más importante de un sistema operativo. Es el primer programa que se carga en la memoria RAM después del gestor de arranque (bootloader) y permanece ejecutándose allí durante todo el tiempo que la computadora está encendida. Actúa como el puente invisible y obligatorio entre el software (las aplicaciones que utilizas) y el hardware físico.
¿Por qué se considera el núcleo fundamental?
Se le llama el "núcleo fundamental" porque tiene control total y absoluto sobre todo lo que ocurre en el sistema.
Para garantizar la estabilidad y la seguridad, los procesadores modernos dividen su funcionamiento en dos estados principales:
Modo Usuario (User Mode): Donde se ejecutan las aplicaciones normales (navegadores, videojuegos, editores de texto). Aquí los permisos son muy restringidos; un programa no puede tocar el hardware directamente ni acceder a la memoria de otro programa.
Modo Kernel (Kernel Mode): El estado de máximo privilegio donde reside y opera el Kernel. Desde aquí, tiene acceso sin restricciones a toda la memoria y a todas las instrucciones de la CPU.
Si el Kernel falla o se corrompe, todo el sistema operativo colapsa (esto es lo que causa la famosa "Pantalla Azul de la Muerte" en Windows o el Kernel Panic en Linux/macOS).
5. ¿Qué es un proceso y cuál es la diferencia entre un programa y un programa en ejecución?
Investigue además qué información necesita el sistema operativo para controlar un proceso.
¿Qué es un proceso?
En el contexto de los sistemas operativos, un proceso es, fundamentalmente, un programa en ejecución. Es una entidad activa que representa el trabajo que la computadora está realizando en un momento dado.
Cuando haces doble clic en un ícono para abrir una aplicación (como el navegador web o un editor de texto), el sistema operativo crea un proceso. Este proceso no solo contiene el código de la aplicación, sino también el estado actual de su ejecución, los valores en los registros de la CPU, la memoria RAM que se le ha asignado para funcionar y los permisos de acceso que tiene.
La diferencia: Programa vs. Programa en ejecución (Proceso)
Para entender la diferencia, es útil usar la analogía de una receta de cocina:
El programa es la receta escrita en el libro: es una lista estática de instrucciones que por sí sola no hace nada.
El proceso (programa en ejecución) es el acto de cocinar: eres tú leyendo la receta, reuniendo los ingredientes en la mesa, utilizando los utensilios y siguiendo los pasos.
6. ¿Qué es un hilo y qué relación existe entre procesos e hilos?
Construya un ejemplo utilizando una aplicación cotidiana, como un navegador, videojuego o editor de texto.
¿Qué es un hilo?
Un hilo (o thread, en inglés), también conocido como "hilo de ejecución" o "proceso ligero", es la unidad de procesamiento más pequeña y básica que puede ser planificada y ejecutada por el sistema operativo.
En términos sencillos, es una única secuencia de instrucciones que se ejecuta de forma independiente dentro del contexto de un programa.
Relación entre procesos e hilos
La relación principal entre un proceso y un hilo es de contenedor y trabajador. Mientras que el proceso es el entorno general, los hilos son los encargados de realizar el trabajo real.
7. ¿Qué es una llamada al sistema y para qué sirve?
Una llamada al sistema (System Call o syscall) es el mecanismo formal y estandarizado que utiliza un programa informático para solicitar un servicio directamente al Kernel del sistema operativo.
¿Para qué sirve?
Como vimos anteriormente, los programas comunes se ejecutan en un "Modo Usuario" restringido. No pueden tocar el disco duro, reservar memoria física, comunicarse por red ni apagar la computadora por su cuenta. La llamada al sistema sirve como una frontera de seguridad y traducción. Cuando un programa necesita realizar una de estas acciones, invoca una syscall; el procesador cambia al "Modo Kernel", el sistema operativo verifica si la petición es segura y permitida, la ejecuta, y finalmente le devuelve el resultado al programa.
Análisis de las llamadas solicitadas
En un entorno Linux, como Fedora, el uso de estas interfaces es el pilar de cómo interactúan las aplicaciones con el sistema, ya sea al administrar servicios desde la terminal o al compilar código.
Nota técnica para desarrolladores: Algunas de las funciones de tu lista son llamadas al sistema nativas puras (estándar POSIX), mientras que otras (fopen, fclose) son funciones de la biblioteca estándar de C que actúan como "envoltorios" (wrappers) de alto nivel para facilitar el uso de las verdaderas syscalls (open, close).
Llamada Categoría Descripción y Funcionamiento
fork Procesos Es la forma principal de crear procesos. Cuando un programa invoca fork, el sistema operativo crea un clon exacto del proceso actual. El proceso original se convierte en el "Padre" y el nuevo en el "Hijo". A partir de ese momento, ambos se ejecutan de forma independiente.
kill Señales Aunque su nombre sugiere "matar", su función real es enviar una señal a un proceso específico. Si bien la señal por defecto (SIGTERM o SIGKILL) se usa para terminar un proceso forzosamente, también puede usarse para pausarlo, reanudarlo o pedirle que recargue su configuración.
signal Señales Le permite a un proceso configurar cómo debe reaccionar cuando recibe una señal (como las enviadas por kill). Por ejemplo, un programa puede usar signal para atrapar la orden de cierre (cuando el usuario presiona Ctrl+C) y ejecutar una rutina de guardado de emergencia antes de cerrarse, en lugar de terminar abruptamente.
wait Procesos Se utiliza para sincronizar procesos. Un proceso padre invoca wait para pausar su propia ejecución hasta que uno de sus procesos hijos haya terminado. Esto evita que el hijo se convierta en un proceso "zombi" (un proceso que terminó pero cuyo estado aún no ha sido recogido por el padre).
create Archivos En sistemas UNIX/POSIX, históricamente se refiere a creat(). Se utiliza para crear un archivo nuevo en el disco o para truncar (vaciar) un archivo existente a una longitud de cero, estableciendo al mismo tiempo sus permisos de lectura/escritura iniciales.
fopen Archivos (Librería C) Abre un archivo y lo asocia con un "flujo de datos" (stream). A diferencia de la syscall de bajo nivel open, fopen reserva un búfer de memoria para hacer la lectura y escritura más eficiente, facilitando el manejo de texto y datos para el programador.
fclose Archivos (Librería C) Cierra el flujo de datos abierto previamente por fopen. Es crucial porque obliga al sistema a vaciar los búferes (escribiendo en el disco cualquier dato que haya quedado pendiente en la RAM) y libera los recursos de memoria asociados a ese archivo.
8. ¿Qué es un Shell o intérprete de comandos y qué importancia tiene para la interacción con el sistema operativo?
El Shell (que en inglés significa "caparazón" o "envoltura") es un programa informático que proporciona una interfaz de usuario para acceder a los servicios del sistema operativo.
Mientras que el Kernel es el núcleo invisible que se comunica directamente con el hardware, el Shell es la capa visible y exterior que interactúa con el usuario. Su función principal es leer las instrucciones de texto que el usuario escribe, interpretarlas y traducirlas en llamadas al sistema (syscalls) para que el Kernel las ejecute. Una vez que el sistema operativo termina la tarea, el Shell recibe los resultados y los muestra en la pantalla de la terminal.
Importancia para la interacción con el sistema operativo
Aunque hoy en día la mayoría de los usuarios interactúan con sus computadoras mediante una Interfaz Gráfica de Usuario (GUI) usando el ratón y ventanas, el Shell (interfaz de línea de comandos o CLI) sigue siendo una herramienta fundamental, especialmente para desarrolladores y administradores de sistemas, por las siguientes razones:
Mayor control y precisión: Permite ejecutar tareas complejas o acceder a configuraciones profundas del sistema operativo que las interfaces gráficas a menudo ocultan o no soportan.
Automatización (Scripting): Los comandos pueden agruparse en archivos de texto llamados scripts (por ejemplo, archivos .bat en Windows o .sh en Linux). Esto permite automatizar tareas repetitivas, como hacer copias de seguridad o configurar servidores, ejecutando cientos de instrucciones en un segundo.
Eficiencia de recursos: A diferencia de una interfaz gráfica, el Shell consume una cantidad mínima de memoria RAM y poder de procesamiento.
Administración remota: Es el estándar de oro para administrar servidores a través de la red (por ejemplo, mediante SSH). Al transmitir únicamente texto sin formato, funciona perfectamente incluso con conexiones a internet muy lentas.
Comparativa de comandos: Windows vs. Linux
Aunque el propósito de interactuar con el sistema es el mismo, la sintaxis y los comandos varían dependiendo de si usas la consola de Windows (Símbolo del sistema / CMD) o un Shell de Linux (como Bash o Zsh).
A continuación, se comparan los comandos solicitados y sus equivalentes en ambos entornos:
Acción a realizar Comando en Windows (CMD) Comando en Linux (Bash/Zsh) Explicación del comportamiento
Listar contenido dir ls Muestra una lista de los archivos y carpetas que se encuentran dentro del directorio actual.
Limpiar pantalla cls clear Borra todo el texto anterior de la terminal para dejar la pantalla limpia, facilitando la lectura de nuevos comandos.
Ver archivo de texto type cat Imprime todo el contenido de un archivo de texto directamente en la consola sin tener que abrir un editor externo.
Modificar permisos icacls (o attrib) chmod Cambia los atributos o permisos de un archivo o directorio, definiendo quién puede leerlo, escribirlo o ejecutarlo.
9. ¿Cómo se clasifican los sistemas operativos según su estructura?
La arquitectura interna de un sistema operativo define cómo se organizan sus componentes, cómo se comunican entre sí y qué nivel de privilegios tienen. A medida que el software y el hardware han evolucionado, han surgido diferentes formas de estructurar estos sistemas.
A continuación, se explican las cuatro clasificaciones principales:
1. Estructura Monolítica
En un sistema monolítico, el sistema operativo completo (gestión de memoria, planificación de CPU, controladores de dispositivos, sistemas de archivos) se compila y ejecuta como un único y enorme bloque de código dentro del espacio del Kernel.
Funcionamiento: Todos los componentes comparten la misma memoria y pueden comunicarse entre sí directamente llamando a sus funciones, sin intermediarios.
El gran riesgo: Dado que todo opera con los máximos privilegios, un error en cualquier parte (por ejemplo, un controlador de video defectuoso) puede hacer colapsar el sistema entero.
2. Estructura Jerárquica (o por capas)
Para solucionar el desorden del diseño monolítico, esta estructura divide el sistema operativo en una jerarquía de capas concéntricas o niveles.
Funcionamiento: La capa 0 es el hardware físico y la capa superior es la interfaz de usuario. La regla de oro es que una capa solo puede utilizar las funciones y servicios de la capa inmediatamente inferior a ella, ocultando la complejidad a las capas superiores.
El desafío: Aunque es un diseño muy limpio, es menos eficiente, ya que una petición de una aplicación de usuario tiene que atravesar múltiples capas (y sufrir múltiples validaciones) antes de llegar al hardware.
3. Máquina Virtual
El concepto de máquina virtual no busca construir un sistema operativo tradicional, sino separar la lógica de multiprogramación del sistema operativo en sí.
Funcionamiento: El corazón del sistema (a menudo llamado hipervisor o monitor de máquina virtual) se ejecuta directamente sobre el hardware. Su única misión es crear múltiples copias "virtuales" e idénticas del hardware subyacente.
Aislamiento: Sobre cada una de estas copias virtuales se puede instalar un sistema operativo distinto. Para estos sistemas "invitados", parece que tienen acceso total a una computadora real, aunque en realidad están compartiendo los recursos físicos.
4. Cliente-Servidor (Modelo Microkernel)
Esta arquitectura es una tendencia moderna que busca reducir el Kernel a su mínima expresión (Microkernel).
Funcionamiento: Traslada la mayor cantidad posible de funciones (sistemas de archivos, gestión de red, controladores) fuera del Kernel y las ejecuta como procesos de usuario normales, llamados "servidores". Las aplicaciones comunes actúan como "clientes".
Interacción: Si un cliente necesita leer un archivo, envía un mensaje al "servidor de archivos". El Microkernel solo actúa como el cartero que transporta los mensajes de forma segura entre clientes y servidores. Si el servidor de archivos falla, simplemente se reinicia; el sistema completo no se cae.
Cuadro Comparativo
Estructura Características Principales Ventajas Destacadas Posibles Aplicaciones
Monolítica Un solo bloque de código masivo; todos los servicios operan en Modo Kernel. Máximo rendimiento y velocidad, ya que la comunicación interna es directa y sin intermediarios. Sistemas que requieren alto rendimiento: Linux (servidores, escritorios, Android), MS-DOS antiguo.
Por capas (Jerárquica) Organización en niveles; cada nivel depende exclusivamente del inferior. Fácil depuración y mantenimiento (modularidad y encapsulamiento estricto). Sistemas experimentales o históricos como Multics, y arquitecturas de red (como el modelo OSI).
Máquina Virtual Un hipervisor divide y emula el hardware para múltiples sistemas invitados. Aislamiento perfecto y seguridad; permite ejecutar múltiples SO incompatibles a la vez. Computación en la nube (AWS, Azure), servidores empresariales (VMware, Proxmox), entornos de prueba de software.
Cliente-Servidor Microkernel minimalista; servicios clave se ejecutan como procesos de usuario. Extrema confiabilidad y seguridad; la falla de un servicio no detiene al sistema completo. Sistemas en tiempo real críticos, aviónica, automóviles (ej. QNX), y sistemas operativos distribuidos.
10. ¿Qué diferencias existen entre un sistema operativo monousuario y uno multiusuario?
La diferencia fundamental entre un sistema operativo monousuario y uno multiusuario radica en la capacidad del sistema para gestionar de forma simultánea, segura e independiente las cuentas, los procesos y los archivos de varias personas en una misma máquina o red.
A continuación, se detalla cada clasificación con sus respectivos ejemplos:
Sistema Operativo Monousuario
Está diseñado para que los recursos de la computadora (procesador, memoria, disco) estén a disposición de una sola persona a la vez.
En su concepción más pura, estos sistemas asumen que quien está sentado frente al teclado es el dueño absoluto de la máquina. Por lo tanto, carecen de mecanismos complejos para proteger archivos; si el sistema está encendido, el usuario puede ver, modificar o borrar cualquier archivo almacenado.
Ejemplo clásico - MS-DOS: El sistema operativo de disco de Microsoft de los años 80 y principios de los 90. Cuando encendías la computadora, entrabas directamente a la línea de comandos. No había pantalla de inicio de sesión ni contraseñas.
Ejemplo de transición - Windows 95 y 98: Aunque permitían crear diferentes "perfiles" para que cada miembro de la familia tuviera su propio fondo de pantalla, a nivel interno seguían siendo monousuario. No había verdadera seguridad: un usuario podía entrar fácilmente a la carpeta del otro y borrar sus documentos.
Sistema Operativo Multiusuario
Está diseñado para permitir que múltiples usuarios accedan y utilicen los recursos de la computadora al mismo tiempo (o de forma alterna), manteniendo una separación estricta y segura entre ellos.
El sistema operativo se encarga de asignar a cada usuario un espacio privado. Si el "Usuario A" ejecuta un programa que falla y consume toda la memoria, el sistema protege los procesos del "Usuario B" para que pueda seguir trabajando sin problemas. Además, implementa un sistema rígido de permisos (lectura, escritura, ejecución) sobre los archivos.
Ejemplo empresarial - Servidores Linux (o Unix): Un servidor web basado en distribuciones de Linux (como Fedora, Ubuntu o Debian) puede tener a cientos de usuarios conectados simultáneamente a través de internet o redes locales usando terminales SSH. Cada usuario puede compilar código o ejecutar comandos sin interferir ni ver lo que hacen los demás, a menos que un administrador (root) les dé permiso.
Ejemplo de escritorio - Windows 10/11 y macOS: Aunque habitualmente los usamos una persona a la vez en casa, su arquitectura interna es multiusuario (basada en Windows NT y Unix, respectivamente). Mientras tú usas tu cuenta principal, el sistema puede estar ejecutando en segundo plano actualizaciones o servicios bajo otros usuarios del sistema aislados por seguridad, y puedes cambiar de sesión sin tener que cerrar tus programas.
Característica Monousuario Multiusuario
Acceso concurrente Solo una persona puede usar los recursos. Varias personas (decenas o miles) pueden usar el sistema a la vez.
Seguridad de archivos Inexistente o muy básica (todos ven todo). Estricta. Basada en permisos, dueños y grupos.
Aislamiento de procesos No es necesario aislar por usuario. Crítico. Un usuario no puede matar los procesos de otro.
Complejidad del Kernel Ligero y sencillo. Complejo, requiere gestión constante de identificadores de usuario (UIDs).
11. ¿Cuál es la diferencia entre un sistema monotarea y uno multitarea?
La diferencia fundamental entre un sistema operativo monotarea y uno multitarea radica en la capacidad del procesador para gestionar múltiples programas en ejecución al mismo tiempo.
Sistema Monotarea: Solo es capaz de ejecutar un programa a la vez. Cuando una aplicación se abre, toma el control total del procesador y de la pantalla. Para utilizar otra herramienta, el usuario está obligado a cerrar la primera para poder abrir la segunda. (Ejemplo histórico: el antiguo MS-DOS o los primeros teléfonos celulares).
Sistema Multitarea: Permite tener múltiples programas abiertos y funcionando aparentemente al mismo tiempo. El sistema operativo utiliza algoritmos de planificación para repartir fracciones de segundo del procesador entre todas las aplicaciones abiertas tan rápido que el usuario percibe que todo funciona simultáneamente. (Ejemplo moderno: Windows, macOS, Linux, Android, iOS).
Situación Cotidiana: Preparando un informe
Para entender la diferencia, imagina que necesitas hacer un informe académico y quieres escuchar música mientras trabajas.
En un entorno Monotarea:
Enciendes la computadora y abres tu reproductor de música. La música empieza a sonar. Sin embargo, cuando intentas abrir tu procesador de textos para empezar a escribir, el sistema te lo impide. Para poder escribir, tienes que cerrar el reproductor de música (quedándote en silencio) y luego abrir el procesador de textos.
Si de repente necesitas calcular un porcentaje para tu informe, debes guardar el documento, cerrar el procesador de textos, abrir la aplicación de la calculadora, anotar el resultado en un papel físico, cerrar la calculadora, y finalmente volver a abrir tu documento para continuar.
En un entorno Multitarea:
Enciendes la computadora y abres el reproductor de música. Mientras la canción sigue sonando en segundo plano, abres tu procesador de textos y comienzas a escribir. Al mismo tiempo, tienes un navegador web abierto buscando información y una calculadora a un lado de la pantalla. El sistema operativo gestiona la CPU, la RAM y el audio para que escuches música, escribas y navegues por internet sin interrupciones.
Cuadro Resumen
Característica Sistema Monotarea Sistema MultitareaEjecución Un solo programa a la vez. Varios programas al mismo tiempo.
Uso de la CPU 100% dedicada a la aplicación actual. Compartida entre todos los procesos activos.
Eficiencia del usuario Baja (requiere abrir y cerrar aplicaciones constantemente). Alta (permite flujos de trabajo paralelos).
Gestión de Memoria Sencilla, ya que no hay competencia por los recursos. Compleja, requiere aislamiento y protección entre programas.
12. ¿Qué diferencia existe entre un sistema uniproceso y uno multiproceso?
Explique también la diferencia entre multiproceso simétrico y asimétrico.
13. ¿Qué diferencia existe entre un sistema operativo de red y un sistema operativo distribuido?
Investigue las características de ambos y explique en qué situaciones empresariales sería conveniente utilizar cada uno.
El documento señala que los sistemas distribuidos buscan integrar recursos como impresoras, memoria, procesos y CPU de manera transparente para el usuario.
14. ¿Qué es la planificación de procesos y cuáles son los principales algoritmos ?
Investigue y explique:
- Round Robin.
- Planificación por prioridades.
- Colas múltiples.
- Primero el trabajo más corto.
- Planificación en dos niveles.
15. ¿Cómo administra un sistema operativo la memoria y qué problemas busca solucionar mediante intercambio, paginación y memoria virtual?
Investigue:
- Particiones fijas.
- Particiones variables.
- Intercambio.
- Paginación.
- Memoria virtual.
- Relación entre memoria RAM y procesos.
