Qué es un sistema operativo — ejercicios tipo examen con tu portátil, la multiprogramación medida en milisegundos y los tipos de sistemas (y la marca de más que me restó puntos)
En el test de autoevaluación del campus me salió una pregunta de respuesta múltiple: «¿Cuáles son logros históricos de los sistemas operativos?». Marqué la multiprogramación, la memoria virtual, los sistemas de archivos… y, ya lanzado, «procesadores multinúcleo», porque sonaba moderno y potente. Resultado: una pregunta que tenía casi bien se quedó en la mitad. Los multinúcleo son un avance del hardware, no del SO, y en las de respuesta múltiple cada marca incorrecta resta. Desde entonces, antes de marcar, me hago una pregunta: «¿esto lo inventó el sistema operativo?».
Este artículo es la pareja práctica de la teoría de Qué es un sistema operativo. Aquí no hay código que escribir: hay un cuestionario interactivo con los formatos del examen de IC2 (única, múltiple que penaliza, verdadero o falso, huecos, relacionar, ordenar, respuesta corta y un cálculo de multiprogramación), preguntas de desarrollo con su respuesta modelo, un dibujo con todo el tema y el chuletario para repasar la noche antes. Todas las preguntas son originales: cubren lo mismo que el examen, con otra redacción y otros datos. Si vienes del tema anterior, también tienes los ejercicios de Direccionamiento IP y subredes.
Tabla de Contenidos
Cómo usar este artículo
- Repasa la teoría primero (al menos el resumen y los dibujos de las capas, la multiprogramación y la paginación).
- Haz el cuestionario sin mirar nada. Pulsa «Comprobar» en cada pregunta: verás si aciertas y la explicación de por qué la correcta lo es y por qué fallan las otras.
- Apunta los fallos y vuelve a la parte de la teoría que toque. Las de respuesta múltiple penalizan como en el examen: si dudas, no marques.
- Escribe tú las de desarrollo antes de desplegar la respuesta modelo y compárala con la lista de «lo que se valora». Termina con el chuletario.
Las preguntas que empiezan por «¿Cómo se llama…?» o «¿Cuáles eran las siglas…?» son de respuesta corta: no tendrás opciones donde apoyarte. Esas definiciones hay que saberlas de memoria.
Cuestionario: Qué es un sistema operativo
Treinta y dos preguntas que recorren todo el tema en el orden de la teoría: definición y papeles, el SO como interfaz y las llamadas al sistema, el gestor de recursos, la multiprogramación (con un cálculo), los hitos y los tipos de sistemas. Tu nota sale sobre 10 al final.
¿Cuál de estas frases describe mejor qué es un sistema operativo?
- El software que gestiona el hardware del ordenador y ofrece un entorno en el que se ejecutan las aplicaciones
- El conjunto de aplicaciones que vienen instaladas al comprar el ordenador
- La parte del hardware que pone en marcha la CPU al encender
- El programa que traduce el código fuente a instrucciones máquina
Solución
Respuesta: El software que gestiona el hardware del ordenador y ofrece un entorno en el que se ejecutan las aplicaciones
El SO está en medio: por debajo tiene el hardware, que gestiona y coordina, y por encima las aplicaciones, a las que ofrece un entorno de ejecución. Las trampas habituales le dan la vuelta (el software que gestiona las aplicaciones y da un entorno al hardware) o lo confunden con el hardware o con una aplicación.
¿Cuáles son objetivos de un sistema operativo? Marca todos los correctos.
- Administrar de forma eficiente los recursos del ordenador
- Hacer más fácil la interacción con el ordenador
- Proporcionar un entorno para ejecutar las aplicaciones
- Facilitar que el software y el hardware puedan evolucionar
- Sustituir a las aplicaciones del usuario
- Conseguir que el hardware no necesite memoria
Solución
Respuesta: Administrar de forma eficiente los recursos del ordenador · Hacer más fácil la interacción con el ordenador · Proporcionar un entorno para ejecutar las aplicaciones · Facilitar que el software y el hardware puedan evolucionar
Los cuatro objetivos de los apuntes: administrar eficientemente los recursos, facilitar la interacción, dar un entorno a las aplicaciones y facilitar la evolución del software y del hardware (si cambias el disco, tus programas no tienen que cambiar). Recuerda que en esta pregunta cada marca incorrecta resta.
¿Cómo se llama la parte del sistema operativo que está en ejecución en todo momento mientras el ordenador está encendido?
Solución
Respuesta: núcleo
Es el núcleo (kernel). Los programas del sistema, como el shell o el explorador de archivos, vienen con el SO pero no son parte del núcleo: se abren y se cierran como cualquier otro programa.
Relaciona cada papel del sistema operativo con lo que hace.
| Policía de tráfico | |
| Facilitador | |
| Gobierno |
Definiciones:
- Da a cada uno una parte de los recursos cuando la necesita y define interfaces estándar para compartirlos
- Organiza los recursos, resuelve los conflictos cuando varios los piden y protege frente a errores y usos no deseados
- Ofrece una máquina extendida que oculta los detalles del hardware para que programar sea más sencillo
- Traduce el código fuente de los programas a instrucciones máquina
Solución
- Policía de tráfico → Organiza los recursos, resuelve los conflictos cuando varios los piden y protege frente a errores y usos no deseados
- Facilitador → Ofrece una máquina extendida que oculta los detalles del hardware para que programar sea más sencillo
- Gobierno → Da a cada uno una parte de los recursos cuando la necesita y define interfaces estándar para compartirlos
Tres metáforas del mismo SO. Policía: orden, conflictos y protección. Facilitador: la máquina extendida que hace la vida fácil al programador. Gobierno: reparto de recursos e interfaces estándar. La opción sobrante describe un compilador.
Indica si cada afirmación es verdadera o falsa.
- Los programas del sistema, como el shell, vienen con el SO pero no forman parte del núcleo.
- El navegador web forma parte del sistema operativo.
- No existe una única definición de sistema operativo aceptada por todo el mundo.
- El SO hace por sí mismo el trabajo útil del usuario, como redactar un documento.
Solución
- V — Los programas del sistema, como el shell, vienen con el SO pero no forman parte del núcleo.
- F — El navegador web forma parte del sistema operativo.
- V — No existe una única definición de sistema operativo aceptada por todo el mundo.
- F — El SO hace por sí mismo el trabajo útil del usuario, como redactar un documento.
El navegador es una aplicación: usa el SO, pero no es el SO. Y el SO no realiza trabajo productivo para el usuario: lo hacen las aplicaciones, y el SO les reparte los recursos para que puedan hacerlo. Sobre la definición, los propios apuntes avisan de que no hay una aceptada universalmente.
¿Por qué necesita el sistema operativo administrar los recursos?
- Porque hay más demanda que recursos: los procesos compiten por la CPU, la memoria o el disco
- Porque los procesos son escasos y los recursos compiten por ellos
- Porque el hardware no puede ejecutar ninguna instrucción sin un SO
- Porque cada usuario necesita tener su propio hardware
Solución
Respuesta: Porque hay más demanda que recursos: los procesos compiten por la CPU, la memoria o el disco
Lee despacio: los recursos son escasos y los procesos compiten por ellos. La opción con las palabras intercambiadas es la trampa clásica.
Sobre el sistema operativo visto como interfaz, ¿qué afirmaciones son correctas?
- Oculta detalles incómodos del hardware
- Añade características que el hardware no tiene por sí mismo
- Se puede ver como una capa que envuelve al hardware
- Se puede ver como una capa que envuelve a las aplicaciones
- Reduce el número de instrucciones que tiene la CPU
Solución
Respuesta: Oculta detalles incómodos del hardware · Añade características que el hardware no tiene por sí mismo · Se puede ver como una capa que envuelve al hardware
La visión de interfaz: una capa alrededor del hardware que ofrece una máquina abstracta (o extendida) más cómoda, ocultando lo incómodo y añadiendo lo que falta (archivos, procesos, ventanas…).
¿Cuáles de estas son interfaces que ofrece un sistema operativo?
- Un intérprete de comandos (CLI o shell)
- Una interfaz gráfica de ventanas (GUI)
- Una interfaz natural por voz o por tacto (NUI)
- Una API de llamadas al sistema para los programas
- El compilador de C
- El procesador de textos
Solución
Respuesta: Un intérprete de comandos (CLI o shell) · Una interfaz gráfica de ventanas (GUI) · Una interfaz natural por voz o por tacto (NUI) · Una API de llamadas al sistema para los programas
CLI, GUI, NUI y API son las cuatro caras de la interfaz del SO. Los programas de usuario, por útiles que sean, no son interfaces del SO.
Abres una terminal, escribes ls y aparece la lista de archivos. ¿Qué nombre recibe normalmente el programa que interpreta lo que tecleas?
Solución
Respuesta: shell
Es el shell (intérprete de comandos, la CLI). En unos SO va dentro del núcleo y en otros es un programa del sistema; bash es un shell concreto.
¿Para quién es cada interfaz? Relaciona cada tipo de usuario con el entorno que le ofrece el SO.
| Usuarios en general | |
| Administradores | |
| Desarrolladores |
Definiciones:
- Entorno de administración
- Entorno de compilación
- Entorno de ejecución
- Interfaz de programación
Solución
- Usuarios en general → Entorno de ejecución
- Administradores → Entorno de administración
- Desarrolladores → Interfaz de programación
Quien usa el ordenador necesita ejecutar programas; quien lo administra, configurarlo; quien programa, una API (las llamadas al sistema).
Relaciona cada beneficio de poner una interfaz entre los programas y el hardware con su ejemplo.
| Usabilidad | |
| Seguridad | |
| Portabilidad | |
| Interoperabilidad | |
| Mantenibilidad |
Definiciones:
- Dos sistemas que usan la misma interfaz pueden intercambiar información
- Los programas no pueden aprovechar directamente los puntos débiles del hardware
- Guardar un archivo con un clic es más cómodo que mover el cabezal del disco
- El hardware va más rápido cuando hay una interfaz delante
- El mismo programa funciona con un disco SSD o con uno mecánico
- Se mejora el SO sin obligar a reescribir los programas de usuario
Solución
- Usabilidad → Guardar un archivo con un clic es más cómodo que mover el cabezal del disco
- Seguridad → Los programas no pueden aprovechar directamente los puntos débiles del hardware
- Portabilidad → El mismo programa funciona con un disco SSD o con uno mecánico
- Interoperabilidad → Dos sistemas que usan la misma interfaz pueden intercambiar información
- Mantenibilidad → Se mejora el SO sin obligar a reescribir los programas de usuario
Son los beneficios de los apuntes (el sexto, productividad, es la suma de todos). La interfaz no hace el hardware más rápido: añade una capa, así que si acaso cuesta un poco.
¿Qué es una llamada al sistema?
- Un servicio público del núcleo que un programa pide a través de la API del SO, normalmente mediante una biblioteca
- Una instrucción con la que el programa escribe directamente en el disco sin pasar por el SO
- Una orden que el usuario escribe en el shell
- Un aviso del teclado a la CPU cuando pulsas una tecla
Solución
Respuesta: Un servicio público del núcleo que un programa pide a través de la API del SO, normalmente mediante una biblioteca
El SO ofrece a desarrolladores y procesos un conjunto de servicios públicos accesibles mediante una API: eso son las llamadas al sistema. Normalmente no se invocan a pelo, sino a través de las bibliotecas del sistema (libc en C).
Completa la explicación de la llamada n = write(fd, buffer, size).
El argumento ____ es el descriptor que indica en qué archivo o dispositivo se escribe; ____ señala la zona de memoria donde están los datos; ____ dice cuántos bytes hay que escribir, y n recibe el número de bytes ____.
Palabras:
- size
- pid
- path
- fd
- leídos
- escritos
- buffer
Solución
El argumento fd es el descriptor que indica en qué archivo o dispositivo se escribe; buffer señala la zona de memoria donde están los datos; size dice cuántos bytes hay que escribir, y n recibe el número de bytes escritos.
Son los tres parámetros de write() y su resultado. Que devuelva los bytes escritos importa: puede escribir menos de los que pediste y tu programa debería comprobarlo.
¿Cuáles de estos son hitos (logros históricos) de los sistemas operativos?
- Multiprogramación
- Memoria virtual
- Sistemas de archivos
- Control de acceso concurrente
- Procesadores multinúcleo
- Lenguajes de alto nivel
- Pantallas táctiles
Solución
Respuesta: Multiprogramación · Memoria virtual · Sistemas de archivos · Control de acceso concurrente
Los hitos del SO son ideas del propio software: multiprogramación, paginación, memoria virtual, sistemas de archivos, interfaz uniforme con la E/S, control de acceso concurrente y protección y seguridad. Lo que es hardware o lenguajes no cuenta.
VS Code necesita 400 MB, pero solo 150 MB están en la RAM; el resto se queda en el disco y se trae cuando hace falta. ¿Qué hito del SO lo permite?
- La memoria virtual
- La paginación
- La memoria caché
- El sistema de archivos
Solución
Respuesta: La memoria virtual
Clave para no confundirlas: paginación = trocear en páginas y colocarlas en huecos distintos de la memoria principal; memoria virtual = no hace falta tenerlo todo en memoria principal, porque la secundaria sirve de extensión.
El SO divide un programa en trozos del mismo tamaño y los coloca en huecos de la memoria principal que no están juntos. ¿Cómo se llama esta técnica?
- Paginación
- Memoria virtual
- Multiprogramación
- Interfaz uniforme con la E/S
Solución
Respuesta: Paginación
Trozos iguales (páginas) en huecos no contiguos de la memoria principal: paginación. Si en el enunciado aparece la memoria secundaria o la caché, desconfía.
Completa el texto sobre la interfaz uniforme con la E/S.
El SO ofrece a los ____ la misma API para trabajar con cualquier dispositivo. Por dentro, cada dispositivo tiene su ____ (driver), que trabaja sin que el usuario final lo note. Así el mismo código sirve para periféricos distintos, con lo que se gana ____, y como se puede prohibir el acceso directo a los dispositivos, hay más ____.
Palabras:
- manejador
- administradores
- portabilidad
- desarrolladores
- compilador
- integridad
- rendimiento
- seguridad
Solución
El SO ofrece a los desarrolladores la misma API para trabajar con cualquier dispositivo. Por dentro, cada dispositivo tiene su manejador (driver), que trabaja sin que el usuario final lo note. Así el mismo código sirve para periféricos distintos, con lo que se gana portabilidad, y como se puede prohibir el acceso directo a los dispositivos, hay más seguridad.
Es la independencia del dispositivo: abstracción de los detalles de cada periférico, portabilidad, adaptación a periféricos futuros y seguridad. Tu programa hace write() igual sobre un pendrive que sobre un SSD.
Spotify y el navegador quieren usar a la vez la tarjeta de sonido en un modo exclusivo; el SO se la da a uno y hace esperar al otro. ¿Qué hito del SO es este?
- El control de acceso concurrente
- La multiprogramación
- La memoria virtual
- El tiempo real
Solución
Respuesta: El control de acceso concurrente
El control de acceso concurrente existe precisamente porque hay recursos que no pueden usar varios procesos a la vez. En el Tema 8 (concurrencia) verás cómo se implementa.
Completa los criterios que debe cumplir la política de gestión de recursos.
La política debe ____ el rendimiento del sistema, repartir con ____ (sin acaparamientos ni ____ de los procesos perjudicados) y garantizar la seguridad: confidencialidad, ____ y disponibilidad.
Palabras:
- optimizar
- justicia
- eficacia
- velocidad
- inanición
- integridad
- precisión
- rapidez
Solución
La política debe optimizar el rendimiento del sistema, repartir con justicia (sin acaparamientos ni inanición de los procesos perjudicados) y garantizar la seguridad: confidencialidad, integridad y disponibilidad.
Rendimiento, justicia y seguridad (CIA). Ojo: entran en conflicto. Si le das toda la CPU al compilador para que acabe antes (rendimiento), Spotify se queda sin turno (justicia).
Relaciona cada elemento de la seguridad (CIA) con la situación que lo protege.
| Confidencialidad | |
| Integridad | |
| Disponibilidad |
Definiciones:
- El portátil arranca en menos de diez segundos
- Nadie más puede leer los apuntes que guardas en tu carpeta
- El campus virtual sigue funcionando la noche antes de la entrega
- El PDF descargado llega igual que el original, sin corromperse
Solución
- Confidencialidad → Nadie más puede leer los apuntes que guardas en tu carpeta
- Integridad → El PDF descargado llega igual que el original, sin corromperse
- Disponibilidad → El campus virtual sigue funcionando la noche antes de la entrega
Confidencialidad = privacidad; integridad = la información no se corrompe ni se degrada; disponibilidad = el sistema sigue dando servicio. Arrancar rápido es rendimiento, no seguridad.
¿Qué tiene que decidir una política de gestión de recursos?
- A qué proceso se le da cada recurso, cuánto, en qué momento y durante cuánto tiempo
- A qué usuario se le da cada recurso y cuánto dinero cuesta
- Qué programas se pueden instalar en el ordenador
- Qué hardware hay que comprar cuando falta memoria
Solución
Respuesta: A qué proceso se le da cada recurso, cuánto, en qué momento y durante cuánto tiempo
Las políticas reparten recursos entre procesos: a cuál, cuánto, cuándo y cuánto tiempo. Cambiar «proceso» por «usuario» es una trampa típica.
¿Qué gestiona el sistema operativo? Marca todo lo correcto.
- Los procesos
- La memoria
- Los archivos y el almacenamiento masivo
- Los dispositivos de entrada/salida y la caché
- La protección y la seguridad
- El código fuente de las aplicaciones
- El diseño de los circuitos de la placa base
Solución
Respuesta: Los procesos · La memoria · Los archivos y el almacenamiento masivo · Los dispositivos de entrada/salida y la caché · La protección y la seguridad
La lista de los apuntes: procesos, memoria, archivos, almacenamiento masivo, caché, dispositivos de E/S y protección y seguridad. Los Temas 6 a 11 son uno a uno estos gestores.
Sobre la multiprogramación en un ordenador con una sola CPU, ¿qué es cierto?
- Cuando un proceso se bloquea esperando su E/S, la CPU ejecuta instrucciones de otro
- La CPU y los dispositivos de E/S trabajan al mismo tiempo, y se terminan más trabajos en menos tiempo
- También se conoce como multitarea
- Los procesos se ejecutan en paralelo real dentro de la única CPU
- Hace falta un procesador con varios núcleos
- El usuario decide a mano qué proceso usa la CPU en cada momento
Solución
Respuesta: Cuando un proceso se bloquea esperando su E/S, la CPU ejecuta instrucciones de otro · La CPU y los dispositivos de E/S trabajan al mismo tiempo, y se terminan más trabajos en menos tiempo · También se conoce como multitarea
La idea: aprovechar las esperas de E/S. Los procesos se ejecutan de forma concurrente (entrelazados), no en paralelo. Mira el simulador de la teoría: con el mismo trabajo de CPU, de un 39 % a un 74 % de uso.
Dos programas en un portátil con una CPU. A: CPU 30 ms, E/S 30 ms, CPU 30 ms. B: CPU 20 ms, E/S 20 ms, CPU 20 ms. Empieza A; cada E/S va a su propio dispositivo. Calcula el tiempo total, la CPU ocupada y el uso de la CPU (redondeado a entero) sin y con multiprogramación.
| Modo | Tiempo total (ms) | CPU ocupada (ms) | Uso de CPU (%) |
|---|---|---|---|
| Uno detrás de otro | |||
| Multiprogramada |
Solución
| Modo | Tiempo total (ms) | CPU ocupada (ms) | Uso de CPU (%) |
|---|---|---|---|
| Uno detrás de otro | 150 | 100 | 67 |
| Multiprogramada | 110 | 100 | 91 |
La CPU ocupada no cambia: 30 + 30 + 20 + 20 = 100 ms en los dos casos.
Uno detrás de otro: A tarda 30 + 30 + 30 = 90 ms y después B tarda 20 + 20 + 20 = 60 ms; total 150 ms y uso 100 / 150 = 66,7 % ≈ 67 %.
Multiprogramada (el dibujo es la CPU): A usa la CPU de 0 a 30 y se va a su E/S hasta 60. B entra de 30 a 50 y se va a su E/S hasta 70. De 50 a 60 la CPU queda libre: los dos esperan su E/S. A vuelve de 60 a 90; B, listo desde 70, espera y entra de 90 a 110. Total 110 ms y uso 100 / 110 = 90,9 % ≈ 91 %.
Completa las cuestiones nuevas que aparecen en un sistema multiprogramado (y que no existen sin multiprogramación).
Cuando la CPU queda libre, hay que elegir a qué proceso se le da: es la ____ de la CPU. Los procesos compiten por el consumo de la ____, y hay que garantizar la ____ de las zonas privadas de cada uno. Además aparecen conflictos al acceder a la vez a los recursos y el riesgo de ____ (deadlock).
Palabras:
- caché
- interbloqueo
- impresión
- planificación
- compilación
- memoria
- paginación
- protección
Solución
Cuando la CPU queda libre, hay que elegir a qué proceso se le da: es la planificación de la CPU. Los procesos compiten por el consumo de la memoria, y hay que garantizar la protección de las zonas privadas de cada uno. Además aparecen conflictos al acceder a la vez a los recursos y el riesgo de interbloqueo (deadlock).
Con un solo programa no hay a quién elegir, ni con quién compartir la memoria, ni nadie que pueda pisarte. Con varios aparecen planificación, reparto y protección de la memoria, conflictos e interbloqueos.
Tienes VS Code instalado y lo abres dos veces, con dos ventanas independientes. ¿Cuántos programas y cuántos procesos de VS Code hay?
- Un programa y dos procesos
- Dos programas y dos procesos
- Un programa y un proceso
- Ningún programa y dos procesos
Solución
Respuesta: Un programa y dos procesos
Programa = colección de instrucciones (entidad pasiva). Proceso = programa en ejecución (entidad activa). Un mismo programa puede dar lugar a varios procesos. (En la práctica VS Code crea además procesos auxiliares, pero la idea es esta.)
Relaciona cada tipo de sistema con su característica.
| Procesamiento por lotes | |
| Tiempo compartido | |
| Tiempo real | |
| Multiusuario | |
| Distribuido |
Definiciones:
- Un único programa que se ejecuta para siempre sin SO
- Los procesos se turnan en la CPU en rodajas cortas para dar interactividad
- Distingue perfiles de acceso con privilegios distintos
- Varios ordenadores en red que se usan como si fueran uno solo
- Ejecuta trabajos uno tras otro sin que el usuario intervenga
- Cada tarea tiene que terminar antes de un plazo fijado
Solución
- Procesamiento por lotes → Ejecuta trabajos uno tras otro sin que el usuario intervenga
- Tiempo compartido → Los procesos se turnan en la CPU en rodajas cortas para dar interactividad
- Tiempo real → Cada tarea tiene que terminar antes de un plazo fijado
- Multiusuario → Distingue perfiles de acceso con privilegios distintos
- Distribuido → Varios ordenadores en red que se usan como si fueran uno solo
Lotes: secuencial y desasistido. Tiempo compartido: rodajas de tiempo e interactividad. Tiempo real: plazos. Multiusuario: perfiles y privilegios. Distribuido: muchos equipos en red usados como uno.
Verdadero o falso sobre los tipos de sistemas.
- Los primeros sistemas operativos, a principios de los años 50, eran de procesamiento por lotes.
- En un sistema por lotes, el usuario interactuaba con su programa mientras se ejecutaba.
- Un móvil que usa una sola persona puede ejecutar varias apps a la vez: es multitarea sin ser multiusuario.
- Un sistema de tiempo real crítico, como el que controla un avión, suele apoyarse en la memoria virtual para tener más memoria.
- Servicios como Dropbox tienen características de sistema distribuido, aunque no exista un sistema distribuido universal.
Solución
- V — Los primeros sistemas operativos, a principios de los años 50, eran de procesamiento por lotes.
- F — En un sistema por lotes, el usuario interactuaba con su programa mientras se ejecutaba.
- V — Un móvil que usa una sola persona puede ejecutar varias apps a la vez: es multitarea sin ser multiusuario.
- F — Un sistema de tiempo real crítico, como el que controla un avión, suele apoyarse en la memoria virtual para tener más memoria.
- V — Servicios como Dropbox tienen características de sistema distribuido, aunque no exista un sistema distribuido universal.
En los lotes no había interacción: ese fue el avance del tiempo compartido. Los sistemas de tiempo real críticos suelen prescindir de lo que hace impredecibles los tiempos, como la memoria virtual (traer una página del disco tarda). Y multitarea ≠ multiusuario.
Relaciona cada sigla de los multiprocesadores con su significado.
| SMP | |
| AMP | |
| UMA | |
| NUMA |
Definiciones:
- Un procesador con un único núcleo y sin memoria propia
- Cualquier tarea puede ejecutarse en cualquier procesador
- Los procesadores se especializan: por ejemplo, uno ejecuta el SO y los demás los procesos de usuario
- Todos los procesadores comparten una memoria con el mismo tiempo de acceso
- Cada procesador tiene su memoria; acceder a la de otro es más lento
Solución
- SMP → Cualquier tarea puede ejecutarse en cualquier procesador
- AMP → Los procesadores se especializan: por ejemplo, uno ejecuta el SO y los demás los procesos de usuario
- UMA → Todos los procesadores comparten una memoria con el mismo tiempo de acceso
- NUMA → Cada procesador tiene su memoria; acceder a la de otro es más lento
SMP/AMP hablan de cómo se reparten las tareas (simétrico o asimétrico); UMA/NUMA, de cómo se accede a la memoria (uniforme o no).
¿Para qué sirven las máquinas virtuales? Marca los usos correctos.
- Crear entornos protegidos y aislados entre sí
- Escribir y probar aplicaciones para un hardware que no tienes
- Seguir usando sistemas antiguos, como juegos de consolas con un emulador
- Conseguir independencia de la plataforma, como hace Java
- Ejecutar los programas más rápido que en la máquina real
- Dejar de necesitar cualquier hardware físico
Solución
Respuesta: Crear entornos protegidos y aislados entre sí · Escribir y probar aplicaciones para un hardware que no tienes · Seguir usando sistemas antiguos, como juegos de consolas con un emulador · Conseguir independencia de la plataforma, como hace Java
Una máquina virtual emula por software una máquina física. Ventaja: no necesitas el sistema original. Inconveniente: va más lenta.
¿Cuáles eran las siglas del primer lenguaje con el que se daban órdenes a un sistema operativo por lotes?
Solución
Respuesta: JCL
JCL, Job Control Language: con él se describía cada trabajo del lote (qué programa, qué datos, qué hacer con la salida).
Tu programa guarda los apuntes con write(). Ordena lo que pasa, de principio a fin.
- El manejador del dispositivo escribe los bytes en el disco
- El núcleo comprueba el descriptor y los permisos
- Tu proceso llama a write() de la biblioteca del sistema
- La biblioteca prepara los argumentos y hace la llamada al sistema
- write() devuelve a tu proceso el número de bytes escritos
Solución
Orden correcto:
- Tu proceso llama a write() de la biblioteca del sistema
- La biblioteca prepara los argumentos y hace la llamada al sistema
- El núcleo comprueba el descriptor y los permisos
- El manejador del dispositivo escribe los bytes en el disco
- write() devuelve a tu proceso el número de bytes escritos
Tu programa nunca toca el disco: pide y espera. Biblioteca → núcleo (que comprueba antes de hacer nada) → manejador del dispositivo → resultado de vuelta. Es la interfaz del SO en acción.
En el cálculo de multiprogramación (pregunta 24), sumar también la E/S a la «CPU ocupada». La CPU ocupada son solo las ráfagas de CPU (100 ms en los dos modos); la E/S la hacen los dispositivos. Lo único que cambia entre los dos modos es el tiempo total.
Para separar paginación y memoria virtual (preguntas 15 y 16), busca en el enunciado la palabra disco o memoria secundaria: si está, es memoria virtual; si todo ocurre en la memoria principal, es paginación.
Preguntas de desarrollo
En el examen de IC2 hay preguntas escritas. Estas cuatro cubren lo que más se presta a desarrollar en este tema. Escribe tu respuesta en la caja (o en papel) y después compara con la respuesta modelo y la lista de lo que se valora.
Explica qué es un sistema operativo y describe sus dos visiones principales: como interfaz y como gestor de recursos.
Solución
Respuesta modelo:
Un sistema operativo es el software que gestiona el hardware de un ordenador y proporciona un entorno de ejecución a las aplicaciones de los usuarios. Se sitúa entre el hardware y las aplicaciones, y su parte central, el núcleo, está en ejecución en todo momento.
Como interfaz, el SO es una capa que envuelve al hardware y ofrece una máquina abstracta o extendida: oculta los detalles incómodos del hardware y añade características que este no tiene, como archivos o procesos. Ofrece interfaces a cada tipo de usuario (GUI y NUI, CLI o shell, y la API de llamadas al sistema), y con ello gana usabilidad, seguridad, portabilidad, interoperabilidad, mantenibilidad y productividad.
Como gestor de recursos, el SO actúa de árbitro: los recursos son escasos y los procesos compiten por ellos, así que decide a qué proceso le da cada recurso, cuánto, cuándo y durante cuánto tiempo. Sus políticas buscan rendimiento, justicia y seguridad (confidencialidad, integridad y disponibilidad), criterios que entran en conflicto.
Lo que se valora:
- Definición correcta: gestiona el hardware y da un entorno de ejecución a las aplicaciones
- Situar al SO entre el hardware y las aplicaciones y mencionar el núcleo
- Visión de interfaz: máquina extendida, ocultar y añadir, tipos de interfaz y algún beneficio
- Visión de gestor: recursos escasos, procesos que compiten, qué decide la política
- Los criterios (rendimiento, justicia, seguridad) y que entran en conflicto
Una buena respuesta no se queda en la definición: explica las dos visiones con un ejemplo de cada una.
¿Qué es la multiprogramación? Explica por qué mejora el uso de la CPU y qué problemas nuevos debe resolver el sistema operativo cuando la usa.
Solución
Respuesta modelo:
La multiprogramación (o multitarea) consiste en tener varios procesos cargados en memoria a la vez para que, cuando uno se bloquea esperando una operación de E/S, la CPU ejecute instrucciones de otro. Con una sola CPU los procesos no se ejecutan en paralelo, sino de forma concurrente: entrelazan su ejecución.
Mejora el uso de la CPU porque rellena los huecos que dejan las esperas de E/S: la CPU y los dispositivos trabajan al mismo tiempo y se terminan más trabajos en menos tiempo. Por ejemplo, tres programas con 140 ms de CPU tardan 360 ms uno detrás de otro (39 % de uso) y 190 ms multiprogramados (74 %).
A cambio, aparecen problemas que no existen con un solo programa: elegir a qué proceso se da la CPU cuando queda libre (planificación), repartir la memoria entre procesos, proteger la zona privada de cada uno (y la del propio SO), resolver los conflictos al acceder a la vez a los recursos y evitar los interbloqueos.
Lo que se valora:
- Definición: varios procesos en memoria y cambio de proceso cuando uno espera E/S
- Distinguir concurrencia (entrelazado) de paralelismo
- Por qué mejora: CPU y E/S en paralelo, más trabajos en menos tiempo (mejor con un ejemplo)
- Problemas nuevos: planificación, memoria, protección, conflictos e interbloqueo
Si das números, que cuadren: la CPU ocupada no cambia, lo que baja es el tiempo total.
Explica la diferencia entre paginación y memoria virtual, y por qué ambos fueron hitos de los sistemas operativos.
Solución
Respuesta modelo:
La paginación divide un programa en trozos pequeños del mismo tamaño, las páginas, que se pueden colocar en zonas diferentes de la memoria principal, que también está dividida en trozos de ese tamaño. Así un programa no necesita un hueco contiguo enorme: aprovecha los huecos libres que haya.
La memoria virtual va un paso más allá: el programa no necesita estar cargado entero en memoria principal para ejecutarse. Las partes que no se usan se quedan en el almacenamiento secundario (el disco), que hace de extensión de la memoria principal, y se traen cuando hacen falta.
Las dos son hitos porque permitieron ejecutar más programas y más grandes con la misma memoria, y lo resuelven automáticamente, sin que el usuario ni el programador tengan que intervenir.
Lo que se valora:
- Paginación: trocear en páginas y repartirlas en huecos no contiguos de la memoria principal
- Memoria virtual: no hace falta cargar todo; la memoria secundaria como extensión
- No confundir la memoria secundaria con la caché ni mezclar las dos ideas
- Por qué son hitos: más y mayores programas, de forma transparente
La pista para no mezclarlas: la paginación solo habla de la memoria principal; la memoria virtual mete en juego el disco.
Compara los sistemas por lotes, los de tiempo compartido y los de tiempo real: qué buscaba cada uno y cómo reparte el tiempo de CPU.
Solución
Respuesta modelo:
Los sistemas por lotes fueron los primeros (principios de los años 50). Su objetivo era automatizar la ejecución de trabajos y aumentar el uso del procesador: los trabajos se agrupaban en lotes y se ejecutaban uno detrás de otro, sin intervención del usuario. Las tareas se describían con JCL, y a finales de los 60 se les añadió multiprogramación.
Los de tiempo compartido (inventados en los 50 y comercializados en los 60) buscaban la interactividad: cada proceso recibe una pequeña rodaja de tiempo periódica y los procesos se turnan en la CPU. Si la rodaja es de pocos milisegundos, el usuario no nota las pausas y además el sistema se puede compartir entre muchos usuarios.
Los de tiempo real buscan que cada tarea termine dentro de un plazo prefijado (control industrial, multimedia), con algoritmos de planificación especiales. En los críticos, como un sistema empotrado de un coche, un plazo incumplido es un fallo, y suelen prescindir de servicios que hacen impredecibles los tiempos, como la memoria virtual.
Lo que se valora:
- Lotes: primeros, secuencial y desasistido, JCL, objetivo de uso de CPU
- Tiempo compartido: rodajas, turnos, interactividad y compartición entre usuarios
- Tiempo real: plazos, planificación especial, críticos sin memoria virtual
- Comparar el objetivo de cada uno, no solo describirlos por separado
Una tabla de tres columnas (objetivo, reparto de la CPU, ejemplo) en el examen también vale si la acompañas de un par de frases.
En una pregunta de desarrollo no basta con la definición. Lo que sube la nota es relacionar: por qué la multiprogramación necesita protección de memoria, o por qué un sistema de tiempo real crítico renuncia a la memoria virtual.
Todo el tema en un dibujo
Antes del chuletario, el mapa completo. Si puedes explicar cada caja con tus palabras y poner un ejemplo de tu portátil, tienes el tema:
En el centro, el sistema operativo. Arriba a la izquierda, qué es (gestiona el hardware, da un entorno a las aplicaciones, su núcleo siempre se ejecuta, y los tres papeles). Arriba a la derecha, la interfaz (CLI, GUI, NUI, API y las llamadas al sistema, con sus beneficios). Abajo, el gestor de recursos (qué gestiona, la política y sus criterios en conflicto) y los tipos de sistemas. En medio, los hitos, que unen todo: la multiprogramación obliga a gestionar mejor la memoria y la CPU, y la paginación y la memoria virtual son la respuesta.
Chuletario: Qué es un sistema operativo
Lo esencial en 30 segundos
- SO: software que gestiona el hardware y da un entorno de ejecución a las aplicaciones. El núcleo (kernel) es lo único que se ejecuta siempre.
- Dos visiones: como interfaz (máquina extendida que envuelve al hardware) y como gestor de recursos (árbitro entre procesos que compiten).
- Proceso = programa en ejecución (activo); programa = instrucciones (pasivo).
- Multiprogramación: si un proceso espera E/S, la CPU ejecuta otro. Concurrencia, no paralelismo.
- Paginación = trocear en la memoria principal; memoria virtual = no cargarlo todo, el disco como extensión.
Si te preguntan…
| Si te preguntan… | Responde… | Trampa típica |
|---|---|---|
| Qué es un SO | Gestiona el hardware y da un entorno a las aplicaciones | Darle la vuelta: «gestiona las aplicaciones y da un entorno al hardware» |
| Por qué administra recursos | Los recursos son escasos y los procesos compiten | «Los procesos son escasos y los recursos compiten» |
| Qué decide la política | A qué proceso, cuánto, cuándo y cuánto tiempo | Cambiar proceso por usuario |
| Criterios de la política | Rendimiento, justicia, seguridad (CIA); en conflicto | Pensar que se pueden maximizar todos |
| Qué envuelve la capa del SO | El hardware | Decir el software o las aplicaciones |
| Nombre de la CLI | Shell (intérprete de comandos) | — |
| Qué son las llamadas al sistema | Servicios públicos del núcleo pedidos mediante la API y las bibliotecas | Confundirlas con órdenes del shell o con interrupciones |
| Hitos del SO | Multiprogramación, paginación, memoria virtual, archivos, E/S uniforme, acceso concurrente, protección | Multinúcleo, lenguajes de alto nivel, pantallas táctiles |
| Primer lenguaje de los lotes | JCL | — |
| Multiusuario frente a multitarea | No son lo mismo: puede haber multitarea sin multiusuario | Tratarlos como sinónimos |
Los tipos de sistemas en una tabla
| Tipo | Palabra clave | Detalle de examen |
|---|---|---|
| Por lotes | Secuencial y desasistido | Los primeros (años 50); JCL; multiprogramación a finales de los 60 |
| Tiempo compartido | Rodajas e interactividad | Inventado en los 50, comercializado en los 60; compartir entre usuarios |
| Tiempo real | Plazos | Los críticos prescinden de la memoria virtual |
| Multiusuario | Perfiles y privilegios | Permisos, cuotas, prioridades |
| SMP / AMP | Quién ejecuta qué | Cualquier tarea en cualquier CPU / especialización |
| UMA / NUMA | Dónde está la memoria | Compartida / distribuida por procesador |
| Distribuido | Muchos equipos que parecen uno | No hay uno universal; la nube, la web |
| Máquina virtual | Emulación por software | Ventaja: sin el sistema original. Inconveniente: más lenta |
Plantilla del cálculo de multiprogramación
Con los datos de la pregunta 24 (A: 30-30-30; B: 20-20-20, en ms):
| Modo | Tiempo total | CPU ocupada | Uso de la CPU |
|---|---|---|---|
| Uno detrás de otro | 90 + 60 = 150 ms | 30 + 30 + 20 + 20 = 100 ms | 100 / 150 ≈ 67 % |
| Multiprogramada | 110 ms (A 0-30, B 30-50, libre 50-60, A 60-90, B 90-110) | 100 ms | 100 / 110 ≈ 91 % |
Pasos: suma las ráfagas de CPU (no cambian), dibuja la línea de la CPU dando el turno al siguiente proceso listo cada vez que uno se va a su E/S, apunta cuándo vuelve cada uno y divide CPU ocupada entre tiempo total.
Si dudas entre dos opciones…
| Si dudas entre… | Fíjate en… |
|---|---|
| Paginación y memoria virtual | ¿Aparece el disco o la memoria secundaria? Entonces es memoria virtual |
| Multiprogramación y tiempo compartido | La multiprogramación aprovecha las esperas de E/S; el tiempo compartido reparte rodajas de tiempo para dar interactividad |
| Interfaz y gestor de recursos | Interfaz = ocultar y añadir (máquina extendida); gestor = repartir y arbitrar |
| Núcleo y programas del sistema | El núcleo está siempre en ejecución; los programas del sistema (shell, explorador) se abren y se cierran |
| Confidencialidad e integridad | ¿Lo puede leer quien no debe? Confidencialidad. ¿Se ha corrompido? Integridad |
Antes de entregar, pregúntate
- ¿He leído si la pregunta habla de procesos o de usuarios, de recursos o de procesos? Las trampas cambian una palabra.
- En las de respuesta múltiple, ¿cada opción que marco la inventó de verdad el SO o es del hardware? Si dudo, no la marco.
- ¿Distingo paginación de memoria virtual y multiusuario de multitarea?
- En el cálculo, ¿la CPU ocupada es la misma en los dos modos y he dividido entre el tiempo total correcto?
Con esto terminas el primer tema de sistemas operativos. Si alguna pregunta se te ha atascado, vuelve a la teoría de Qué es un sistema operativo. En el próximo tema bajamos al hardware que sostiene al SO: E/S, interrupciones, jerarquía de memorias y protección.
Sigue aprendiendoTodos los artículos de Sistemas operativos¿Te ha servido este artículo? Así puedes apoyar SergioLearns →

