Conceptos Esenciales de Sistemas Operativos y Hardware Informático


Capítulo 1: Introducción a los Sistemas Operativos

1. ¿Cómo usar una computadora sin sistema operativo? ¿Cuáles son sus dos principales funciones?

Sin un sistema operativo, un usuario que desee interactuar con la computadora necesitaría conocer detalles muy específicos sobre el hardware, lo que ralentizaría su trabajo y aumentaría las posibilidades de errores. Las dos características principales de un sistema operativo son la facilidad de acceso a los recursos del sistema y la distribución organizada y protegida de dichos recursos.

2. Explicar el concepto de máquina virtual. ¿Cuál es la gran ventaja en el uso de este concepto?

La computadora puede ser vista como una máquina de capas, donde inicialmente existen dos: el hardware (Nivel 0) y el sistema operativo (Nivel 1). De esta forma, el usuario percibe la máquina únicamente a través del sistema operativo, como si el hardware no existiera. Esta perspectiva se denomina máquina abstracta virtual o máquina modular virtual. La principal ventaja de este concepto es que simplifica, fiabiliza y hace más eficiente la interacción entre el usuario y la computadora.

3. Definir el concepto de una serie de niveles o capas.

El concepto de niveles o capas en una computadora se refiere a su organización como una máquina con múltiples estratos, cada uno con funcionalidades específicas. Estos niveles son necesarios para que el usuario pueda ejecutar sus diversas aplicaciones. Cuando un usuario trabaja en uno de estos niveles, no necesita conocer la existencia de las otras capas subyacentes. Esto hace que la interacción entre el usuario y la computadora sea simple, confiable y eficiente.

4. ¿Qué tipos de sistemas operativos existen?

  • Sistemas monoprogramables (o de una sola tarea)
  • Sistemas multiprogramables (o multitarea)
  • Sistemas multiprocesador

5. ¿Por qué decimos que hay una subutilización de los recursos en sistemas monoprogramables?

Decimos que hay una subutilización de recursos en los sistemas monoprogramables porque solo permiten la ejecución de un programa a la vez. Dado que un único programa no utiliza todas las características del sistema por completo durante su ejecución, se produce inactividad y, en consecuencia, una subutilización de algunos recursos.

6. ¿Cuál es la gran diferencia entre los sistemas multiprogramables y los sistemas monoprogramables?

La principal diferencia radica en la gestión de recursos. Los sistemas monoprogramables se caracterizan por dedicar el procesador, la memoria y los periféricos exclusivamente a la ejecución de un único programa. En contraste, en los sistemas multiprogramables (o multitarea), los recursos computacionales son compartidos entre diferentes usuarios y aplicaciones. Mientras que en los sistemas monoprogramables solo un programa utiliza los recursos disponibles, en los multiprogramables, diversas aplicaciones comparten estos recursos.

7. ¿Cuáles son las ventajas de los sistemas multiprogramables?

Las ventajas de utilizar sistemas multiprogramables son la reducción del tiempo de respuesta de las solicitudes procesadas en el entorno y la optimización de los costos al distribuir los recursos del sistema entre diferentes aplicaciones.

8. ¿Un sistema de usuario único puede ser un sistema multiprogramable? Dé un ejemplo.

Sí, un sistema de usuario único puede ser multiprogramable. Esto ocurre cuando un solo usuario interactúa con el sistema, pero puede tener varias aplicaciones abiertas y ejecutándose simultáneamente. Un ejemplo de esto es Windows NT.

9. ¿Qué tipos de sistemas multiprogramables existen?

  • Sistemas por lotes
  • Sistemas de tiempo compartido
  • Sistemas de tiempo real

10. ¿Cuál es la característica distintiva del procesamiento por lotes? ¿Qué aplicaciones pueden ser procesadas en tal entorno?

La característica distintiva del procesamiento por lotes es que no requiere la interacción del usuario con la aplicación durante su ejecución. Todas las entradas y resultados de la aplicación se gestionan a través de algún tipo de memoria secundaria, generalmente archivos en disco. Ejemplos de aplicaciones adecuadas para este entorno incluyen: cálculos numéricos complejos, compilaciones de programas, generación de informes, copias de seguridad y, en general, cualquier tarea donde la interacción con el usuario no sea necesaria.

11. ¿Cómo funcionan los sistemas de tiempo compartido? ¿Cuáles son las ventajas de su uso?

Los sistemas de tiempo compartido (o time-sharing) permiten que varios programas se ejecuten dividiendo el tiempo del procesador en pequeños intervalos, conocidos como rebanadas de tiempo (o time-slice). La principal ventaja de su uso es que cada usuario percibe tener un escritorio dedicado, dando la impresión de que todo el sistema está exclusivamente a su disposición.

12. ¿Cuál es la gran diferencia entre los sistemas de tiempo compartido y los sistemas de tiempo real? ¿Qué aplicaciones son adecuadas para sistemas en tiempo real?

La gran diferencia es el factor tiempo de respuesta. En los sistemas de tiempo real, los tiempos de respuesta deben ser estrictamente limitados y garantizados. Aplicaciones adecuadas para sistemas en tiempo real incluyen: control de procesos industriales (como la vigilancia de refinerías de petróleo), control de tráfico aéreo y sistemas de plantas de energía nuclear.

13. ¿Cuáles son los sistemas con múltiples procesadores y cuáles son las ventajas de su utilización?

Los sistemas con múltiples procesadores se caracterizan por tener dos o más CPU conectadas y operando conjuntamente. La ventaja principal de este tipo de sistema es que permite la ejecución simultánea de varios programas o, incluso, la división de un mismo programa en partes para ejecutarse concurrentemente en más de un procesador.

14. ¿Cuál es la gran diferencia entre los sistemas fuertemente acoplados y débilmente acoplados?

La principal diferencia radica en la compartición de recursos y la autonomía. En los sistemas fuertemente acoplados, varios procesadores comparten una única memoria física y dispositivos de entrada/salida, siendo gestionados por un solo sistema operativo. Por otro lado, los sistemas débilmente acoplados se caracterizan por tener dos o más sistemas informáticos conectados a través de líneas de comunicación. Cada sistema funciona de forma independiente, con su propio sistema operativo y gestionando sus propios recursos (CPU, memoria, dispositivos de entrada/salida).

15. ¿Qué es un sistema SMP? ¿Cuál es la diferencia con un sistema NUMA?

Un sistema SMP (Symmetric Multiprocessing) es aquel donde el tiempo de acceso a la memoria principal por parte de varios procesadores es uniforme. En contraste, en los sistemas NUMA (Non-Uniform Memory Access), existen varios conjuntos de procesadores y memoria principal interconectados, y el tiempo de acceso a la memoria principal varía en función de su ubicación física respecto al procesador que la solicita.

16. ¿Qué es un sistema débilmente acoplado? ¿Cuál es la diferencia entre sistemas operativos de red y sistemas operativos distribuidos?

Los sistemas débilmente acoplados se caracterizan por tener dos o más sistemas informáticos conectados a través de líneas de comunicación. Cada sistema funciona de manera independiente, con su propio sistema operativo y gestionando sus propios recursos (CPU, memoria y dispositivos de entrada/salida). La diferencia entre sistemas operativos de red y sistemas operativos distribuidos es que un sistema operativo de red permite a un host compartir sus recursos (como una impresora o un directorio) con otros hosts de la red. En cambio, en los sistemas operativos distribuidos, el sistema operativo oculta los detalles de los hosts individuales y los trata como una única entidad, similar a un sistema fuertemente acoplado, proporcionando una visión unificada de los recursos.

Capítulo 2: Conceptos Fundamentales de Hardware y Software

1. ¿Cuáles son las unidades funcionales de un sistema informático?

  • El procesador (o Unidad Central de Procesamiento – CPU)
  • La memoria principal
  • Los dispositivos de entrada/salida (E/S)

2. ¿Cuáles son los componentes de un procesador y cuáles son sus funciones?

Un procesador consta de la Unidad de Control (UC), la Unidad Aritmético-Lógica (ALU) y los registros. La Unidad de Control (UC) se encarga de gestionar y coordinar las actividades de todos los componentes de la computadora, como la escritura de datos en discos o la obtención de instrucciones de la memoria. La Unidad Aritmético-Lógica (ALU), como su nombre indica, es responsable de realizar operaciones lógicas (como comparaciones y tests) y aritméticas (como sumas y restas).

3. ¿Cómo se organiza la memoria principal de una computadora?

La memoria principal se organiza en unidades de acceso denominadas celdas, donde cada celda contiene un número específico de bits. Actualmente, la gran mayoría de las computadoras utilizan el byte (8 bits) como tamaño estándar de celda.

4. Describir los ciclos de lectura y escritura de la memoria principal.

Ciclo de Lectura:

Durante el ciclo de lectura, la CPU almacena en el Registro de Dirección de Memoria (MAR) la dirección de la celda que se desea leer y genera una señal de control para la memoria principal, indicando que se debe realizar una operación de lectura. El contenido de la celda (o celdas) identificada por la dirección en el MAR se transfiere al Registro de Búfer de Memoria (MBR).

Ciclo de Escritura:

Durante el ciclo de escritura, la CPU almacena en el MAR la dirección de la celda donde se registrará la información y, en el MBR, la información que se desea grabar. La CPU genera una señal de control a la memoria principal, indicando que se debe realizar una operación de escritura, y la información contenida en el MBR se transfiere a la celda de memoria direccionada por el MAR.

5. ¿Cuál es el número máximo de celdas direccionables en arquitecturas con un Registro de Dirección de Memoria (MAR) de 16, 32 y 64 bits?

  • Para un MAR de 16 bits: 216 celdas
  • Para un MAR de 32 bits: 232 celdas
  • Para un MAR de 64 bits: 264 celdas

6. ¿Cuáles son la memoria volátil y la memoria no volátil?

La memoria volátil requiere estar constantemente alimentada para mantener su información, la cual se pierde al cortar la energía. Por el contrario, la memoria no volátil retiene su información incluso sin alimentación eléctrica.

7. Conceptualizar caché y presentar las principales ventajas en su uso.

La memoria caché es una memoria volátil de alta velocidad con una capacidad de almacenamiento limitada. El tiempo de acceso a los datos que contiene es significativamente menor que si estuvieran en la memoria principal. El propósito principal de usar la caché es minimizar la disparidad entre la velocidad a la que el procesador ejecuta las instrucciones y la velocidad a la que accede a los datos en la memoria principal, mejorando así el rendimiento general del sistema.

8. ¿Cuáles son las diferencias entre la memoria principal y memoria secundaria?

La memoria principal es un dispositivo de almacenamiento, generalmente volátil, donde se almacenan las instrucciones y datos utilizados directamente por el procesador durante la ejecución de un programa. La memoria secundaria, por otro lado, es un dispositivo no volátil con una mayor capacidad de almacenamiento, pero con un tiempo de acceso más lento a sus datos.

9. Diferenciar las funciones básicas de los dispositivos de E/S.

Las funciones básicas de los dispositivos de Entrada/Salida (E/S) se pueden diferenciar en dos grupos principales:

  • Dispositivos de almacenamiento secundario: Se utilizan para almacenar datos de forma persistente. Ejemplos incluyen discos duros y cintas magnéticas. Se caracterizan por tener una capacidad de almacenamiento mucho mayor que la memoria principal y un costo relativamente bajo, aunque su tiempo de acceso es considerablemente superior al de la memoria principal.
  • Dispositivos de interfaz usuario-máquina: Facilitan la comunicación entre el usuario y la computadora. Ejemplos incluyen teclados, ratones, monitores de vídeo, impresoras y plotters.

10. Explique los buses de memoria en procesadores, los buses de E/S y el backplane.

  • Los buses de memoria en procesadores son de corta longitud y alta velocidad, optimizados para la transferencia rápida de información entre los procesadores y las memorias.
  • Los buses de E/S son de mayor longitud, más lentos y permiten la conexión de una variedad de dispositivos periféricos.
  • El backplane (o bus de fondo) tiene la función de integrar estos dos tipos de buses, permitiendo la comunicación entre todos los componentes del sistema.

11. ¿Cómo la técnica de segmentación (pipelining) mejora el rendimiento de los sistemas informáticos?

Permite que el procesador ejecute múltiples instrucciones en paralelo, dividiendo su procesamiento en diferentes etapas.

12. Compare las arquitecturas de procesadores RISC y CISC.

Compare las arquitecturas de procesadores RISC (Reduced Instruction Set Computer) y CISC (Complex Instruction Set Computer). (Para una comparación detallada, consulte la Tabla 2.3 del libro de texto).

13. Conceptualice la técnica de evaluación comparativa (benchmarking) y cómo se lleva a cabo.

La técnica de benchmarking permite el análisis comparativo del rendimiento entre diferentes sistemas informáticos. En este método, se ejecuta un conjunto estandarizado de programas (benchmarks) en cada sistema a evaluar, y se compara su tiempo de ejecución. La selección de estos programas debe ser cuidadosa para reflejar diversos tipos de aplicaciones y cargas de trabajo.

14. ¿Por qué el código objeto generado por un traductor (compilador/ensamblador) no es directamente ejecutable?

Esto se debe a que un programa puede llamar a subrutinas o funciones externas (de bibliotecas, por ejemplo). En este caso, el traductor no tiene la capacidad de asociar el programa principal con las direcciones de memoria de esas subrutinas externas. Esta función es realizada por el enlazador (o linker).

15. ¿Por qué la ejecución de programas interpretados es más lenta que la de programas compilados?

Es más lenta porque, al no haber una generación previa de código ejecutable binario, las instrucciones de un programa interpretado deben ser traducidas línea por línea (o bloque por bloque) cada vez que el programa se ejecuta, lo que añade una sobrecarga de procesamiento constante.

16. ¿Cuáles son las funciones principales del enlazador (linker)?

  • Resolver todas las referencias simbólicas entre los diferentes módulos de un programa (por ejemplo, conectar llamadas a funciones con sus definiciones).
  • Asignar y reservar memoria para la ejecución del programa, combinando los módulos en un único archivo ejecutable.

17. ¿Cuál es la función principal del cargador (loader)?

La función principal del cargador es cargar un programa ejecutable desde el almacenamiento secundario a la memoria principal para que pueda ser ejecutado por el procesador.

18. ¿Cuáles son las facilidades que ofrece un depurador (debugger)?

Un depurador proporciona al usuario diversas funcionalidades para la detección y corrección de errores en programas, tales como:

  • Seguimiento de la ejecución de un programa instrucción por instrucción (step-by-step).
  • Permitir la visualización y modificación del contenido de las variables en tiempo de ejecución.
  • Establecer puntos de interrupción (breakpoints) dentro del programa, de modo que la ejecución se detenga automáticamente en esos puntos.
  • Especificar puntos de control (watchpoints) para que el programa envíe un mensaje o se detenga cuando el contenido de una variable específica se modifica.

19. Mencione otros comandos disponibles en los lenguajes de control de los sistemas operativos.

(Respuesta abierta, ejemplos pueden incluir comandos de gestión de archivos, procesos, red, etc.)

20. Explique el proceso de activación o arranque (boot) del sistema operativo.

Inicialmente, el código del sistema operativo reside completamente en la memoria secundaria (como discos duros o unidades de estado sólido). Cada vez que una computadora se enciende, el sistema operativo debe ser cargado desde la memoria secundaria a la memoria principal. Este procedimiento es realizado por un pequeño programa, conocido como cargador de arranque (bootloader), que se encuentra en un bloque específico del disco (el bloque de arranque).

Referencia: Sistema Operativo Arquitectura – 3ª Edición – M/Maia

Autores: Soluciones a los ejercicios – Versión 3.1 (Enero/2004)

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *