Simulador EGEL Ingeniería Computacional

💻 Programación y software base

Programación y software base

Los paradigmas definen cómo se estructura el código. El paradigma imperativo describe pasos secuenciales que modifican estado; el funcional se apoya en funciones puras e inmutabilidad; el lógico se basa en reglas (p. ej. Prolog); y el orientado a objetos se sustenta en cuatro pilares: abstracción, encapsulamiento, herencia y polimorfismo. Domina tipado, ámbito (scope) y manejo de memoria: las variables locales y los marcos de activación de las llamadas se guardan en la pila (stack), mientras que la memoria reservada dinámicamente con malloc/new vive en el montón (heap). Al trazar código dado en texto, sigue el flujo instrucción por instrucción anotando el valor de cada variable segun su ámbito.

En sistemas operativos, memoriza estas fórmulas de planificación de CPU para calcular tiempos:

Para memoria virtual y paginación, la dirección lógica se divide en número de página (p) y desplazamiento (d); los bits de offset = log2(tamaño de página), es decir una página de 2^n bytes usa n bits. El TLB es una caché de traducciones página→marco y el tiempo de acceso efectivo es EAT = (1 − p) × ma + p × t_fallo_de_página. El algoritmo OPT/MIN reemplaza la página que no se usará por más tiempo: mínimo de fallos pero irrealizable; la anomalía de Belady afecta a FIFO (algoritmos que no son de pila), donde más marcos pueden aumentar los fallos. La fragmentación interna es desperdicio dentro del bloque asignado (asignado > solicitado) y la externa se elimina con paginación, pues los marcos no requieren ser contiguos.

En sincronización, un interbloqueo (deadlock) exige las cuatro condiciones de Coffman a la vez: exclusión mutua, retención y espera, no expropiación y espera circular; los semáforos y mutex previenen condiciones de carrera. Recuerda que compilación, ligado (linking) y ejecución son fases distintas del ciclo de un programa.

Practica el banco completo y haz simulacros gratis

Preguntas de muestra (35)

1. ¿Cuál paradigma de programación describe un programa como una secuencia de instrucciones que modifican el estado del programa mediante asignaciones a variables, ejecutadas en orden por la computadora?

  1. Funcional
  2. Imperativo
  3. Orientado a objetos
  4. Lógico

El paradigma imperativo define la ejecución como una secuencia de sentencias que cambian el estado mediante asignaciones; el funcional evita el estado mutable, el orientado a objetos organiza el estado en objetos y el lógico expresa reglas declarativas (como en Prolog). (Sebesta, Concepts of Programming Languages, cap. Paradigmas de programación.)

2. ¿Cuál paradigma de programación organiza el código en unidades que combinan datos (atributos) y comportamiento (métodos), llamadas clases, a partir de las cuales se instancian objetos?

  1. Funcional
  2. Imperativo
  3. Orientado a objetos
  4. Lógico

El paradigma orientado a objetos agrupa datos y comportamiento en clases que se instancian como objetos; el imperativo y el funcional no requieren esta organización en clases, y el lógico se basa en reglas y hechos. (Booch, Object-Oriented Analysis and Design.)

3. ¿Cuál paradigma de programación trata el cómputo como la evaluación de funciones matemáticas, evita las variables mutables y privilegia las funciones puras sin efectos secundarios?

  1. Imperativo
  2. Orientado a objetos
  3. Lógico
  4. Funcional

El paradigma funcional modela el cómputo como evaluación de funciones matemáticas puras, sin estado mutable, lo que lo distingue del imperativo (asignaciones), del orientado a objetos (clases) y del lógico (reglas). (Sebesta, Concepts of Programming Languages, cap. Programación funcional.)

4. ¿Cuáles son los cuatro pilares fundamentales en los que se sustenta el paradigma orientado a objetos?

  1. Abstracción, encapsulamiento, herencia y polimorfismo
  2. Abstracción, modularidad, recursión e inmutabilidad
  3. Encapsulamiento, concurrencia, herencia y recursión
  4. Herencia, polimorfismo, iteración y modularidad

El paradigma orientado a objetos se sustenta en abstracción, encapsulamiento, herencia y polimorfismo; modularidad, recursión, inmutabilidad y concurrencia son relevantes en otros contextos pero no son los cuatro pilares clásicos de la POO. (Sebesta, Concepts of Programming Languages; Booch, Object-Oriented Analysis and Design.)

5. Una clase CuentaBancaria oculta la representación interna de su saldo y solo permite modificarlo a través de los métodos depositar() y retirar(), sin exponer el atributo directamente al código externo. ¿Qué pilar de la programación orientada a objetos ejemplifica principalmente esta práctica?

  1. Abstracción
  2. Encapsulamiento
  3. Herencia
  4. Polimorfismo

El encapsulamiento consiste en ocultar el estado interno de un objeto y controlar su acceso mediante métodos; la abstracción se refiere a exponer solo las características esenciales de una entidad, sin implicar necesariamente restricción de acceso. (Booch, Object-Oriented Analysis and Design.)

6. La clase Figura define un método area(); las clases Circulo y Cuadrado heredan de Figura y cada una implementa su propia versión de area(), de modo que al invocar area() sobre una referencia de tipo Figura se ejecuta la versión correspondiente al objeto real en tiempo de ejecución. ¿Qué pilar de la programación orientada a objetos permite este comportamiento?

  1. Herencia
  2. Encapsulamiento
  3. Polimorfismo
  4. Abstracción

El polimorfismo permite que una misma llamada a un método se comporte distinto según el tipo real del objeto en tiempo de ejecución; la herencia solo permite reutilizar y extender la clase base, sin por sí sola seleccionar la versión a ejecutar. (Booch, Object-Oriented Analysis and Design.)

7. ¿Cuál es una característica central del paradigma funcional que lo distingue claramente del paradigma imperativo?

  1. Los programas se organizan como una jerarquía de clases que heredan atributos y métodos
  2. Las instrucciones se ejecutan secuencialmente modificando variables globales en cada paso
  3. Los datos y el comportamiento se encapsulan juntos dentro de objetos instanciables
  4. Las funciones puras no modifican variables externas ni dependen de un estado mutable compartido

El paradigma funcional se basa en funciones puras que no dependen de ni modifican un estado mutable compartido; las otras opciones describen rasgos del paradigma imperativo y del orientado a objetos. (Sebesta, Concepts of Programming Languages, cap. Programación funcional.)

8. Se tiene el siguiente fragmento de código escrito en estilo imperativo: entero total = 0 para i = 1 hasta 4 hacer total = total + i si i == 3 entonces total = total * 2 fin_para ¿Cuál es el valor final de la variable total al terminar la ejecución del ciclo?

  1. 12
  2. 16
  3. 20
  4. 10

Trazando el ciclo: total vale 1, 3, 6 (se duplica a 12 al cumplirse i==3) y finalmente 16 al sumar i=4; 12 omite la última suma, y 20 y 10 corresponden a aplicar la duplicación en un momento u orden incorrecto. (Sebesta, Concepts of Programming Languages, cap. Paradigma imperativo (control de flujo y asignación).)

9. En un lenguaje funcional se define la función recursiva factorial(n) = 1 si n = 0; en otro caso, factorial(n) = n × factorial(n − 1). Al invocar factorial(4), ¿cuántas llamadas recursivas adicionales a la función factorial se generan en total, sin contar la invocación inicial?

  1. 3
  2. 5
  3. 4
  4. 2

factorial(4) genera las llamadas a factorial(3), factorial(2), factorial(1) y factorial(0), es decir 4 llamadas adicionales; contar 3 omite la llamada que alcanza el caso base, y contar 5 incluiría erróneamente la invocación inicial. (Sebesta, Concepts of Programming Languages, cap. Programación funcional (recursión).)

10. Un equipo debe modelar un sistema de inventario con entidades como Producto, Almacén y Pedido, cada una con atributos propios y comportamientos que se reutilizan y especializan (por ejemplo, ProductoPerecedero especializa a Producto agregando fecha de caducidad). ¿Qué paradigma de programación resulta más adecuado para modelar este sistema?

  1. Funcional puro
  2. Orientado a objetos
  3. Imperativo puro
  4. Lógico

Modelar entidades con atributos, comportamiento y jerarquías de especialización corresponde naturalmente a clases, herencia y polimorfismo del paradigma orientado a objetos, más que a un estilo funcional o puramente imperativo. (Booch, Object-Oriented Analysis and Design.)

11. ¿Cuál de las siguientes NO es una característica típica del paradigma funcional?

  1. Tratamiento de las funciones como valores de primera clase que se pasan como argumento
  2. Ausencia de efectos secundarios en la ejecución de las funciones puras del programa
  3. Modificación directa de variables globales compartidas como mecanismo principal de control
  4. Preferencia por la recursión en lugar de iteración con contadores mutables como técnica

Modificar directamente variables globales compartidas es un rasgo del paradigma imperativo; el paradigma funcional privilegia funciones puras, funciones de primera clase y recursión en lugar de estado mutable. (Sebesta, Concepts of Programming Languages, cap. Programación funcional.)

12. ¿Cómo se calcula el tiempo de retorno (turnaround time) de un proceso en un sistema operativo?

  1. Como la ráfaga de CPU menos el tiempo de espera en la cola de listos
  2. Como el instante de finalización del proceso menos el instante de llegada
  3. Como el instante en que el proceso recibe la CPU por primera vez menos el instante de llegada
  4. Como el tiempo total de espera dividido entre el número de procesos en el sistema

El tiempo de retorno se define como finalización menos llegada, e incluye todo el tiempo transcurrido en ejecución y en espera; las otras opciones corresponden a las fórmulas de espera, respuesta y un promedio del sistema. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU.)

13. El proceso P1 llega a la cola de listos en el instante 3 y finaliza su ejecución en el instante 15. ¿Cuál es su tiempo de retorno (turnaround time)?

  1. 15
  2. 18
  3. 12
  4. 9

El tiempo de retorno es finalización menos llegada: 15 − 3 = 12; 15 ignora el instante de llegada, 18 suma en vez de restar y 9 aplica una resta incorrecta. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU.)

14. ¿Cuál fórmula define correctamente el tiempo de espera (waiting time) de un proceso?

  1. Instante de finalización menos el instante de llegada
  2. Instante de primera ejecución menos el instante de llegada
  3. Ráfaga total de CPU menos el tiempo de retorno
  4. Tiempo de retorno menos la ráfaga total de CPU del proceso

El tiempo de espera equivale al tiempo de retorno menos la ráfaga total de CPU, es decir, el tiempo en la cola de listos sin ejecutarse; las otras fórmulas corresponden a turnaround, respuesta y una resta invertida incorrecta. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU (Scheduling Criteria).)

15. El proceso P2 tiene un tiempo de retorno de 20 unidades y una ráfaga total de CPU de 14 unidades. ¿Cuál es su tiempo de espera?

  1. 6
  2. 14
  3. 20
  4. 34

El tiempo de espera es tiempo de retorno menos ráfaga de CPU: 20 − 14 = 6; 14 confunde el resultado con la ráfaga misma, 20 con el turnaround y 34 surge de sumar en vez de restar. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU (Scheduling Criteria).)

16. En un sistema interactivo de tiempo compartido, interesa medir cuánto tarda un proceso desde que llega a la cola de listos hasta que recibe la CPU por primera vez, sin importar cuándo termine de ejecutarse por completo. ¿Qué métrica de planificación describe esta medición?

  1. Tiempo de retorno (turnaround time)
  2. Tiempo de respuesta (response time)
  3. Tiempo de espera (waiting time)
  4. Tiempo de servicio (service time)

El tiempo de respuesta se mide desde la llegada hasta la primera vez que el proceso obtiene la CPU, a diferencia del turnaround, que se mide hasta la finalización completa del proceso. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU (Scheduling Criteria).)

17. ¿Por qué se considera óptimo el algoritmo de planificación SJF (trabajo más corto primero) frente a otros algoritmos de planificación de CPU?

  1. Porque garantiza que ningún proceso sufra inanición bajo ninguna circunstancia
  2. Porque asigna la CPU en el orden estricto de llegada de los procesos
  3. Porque produce el menor tiempo de espera promedio para un conjunto dado de procesos
  4. Porque utiliza un cuanto de tiempo fijo para expropiar procesos en ejecución

SJF minimiza el tiempo de espera promedio para un conjunto dado de procesos; sin embargo, no elimina la inanición de procesos largos, y las otras opciones describen FCFS y Round Robin. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. CPU Scheduling (Shortest-Job-First Scheduling).)

18. En una cola de listos con planificación FCFS, un proceso con una ráfaga de CPU de 50 unidades llega primero, seguido de cinco procesos con ráfagas de solo 2 unidades cada uno. Aunque estos últimos son muy cortos, deben esperar a que el proceso largo termine antes de ejecutarse. ¿Qué fenómeno de planificación ejemplifica esta situación?

  1. Inversión de prioridades
  2. Anomalía de Belady
  3. Espera circular
  4. Efecto convoy

El efecto convoy ocurre en FCFS cuando procesos cortos quedan detrás de un proceso largo que llegó antes, elevando el tiempo de espera promedio; las otras tres son fenómenos reales pero de otros contextos (sincronización, memoria y deadlocks). (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. CPU Scheduling (First-Come, First-Served).)

19. Un administrador de sistemas configura un planificador Round Robin con un cuanto de tiempo extremadamente grande, mayor que la ráfaga de CPU de casi todos los procesos del sistema. ¿Qué consecuencia tiene esta configuración sobre el comportamiento del planificador?

  1. Se producen cambios de contexto excesivos que degradan seriamente el rendimiento del sistema
  2. El planificador termina comportándose como FCFS, ya que cada proceso agota su ráfaga antes de que expire el cuanto
  3. Se garantiza el menor tiempo de espera promedio posible entre todos los algoritmos de planificación existentes
  4. Se favorece artificialmente a los procesos con ráfagas de CPU muy cortas sobre los demás procesos

Con un cuanto muy grande, cada proceso completa su ráfaga antes de que se agote el cuanto, por lo que Round Robin degenera en FCFS; el efecto contrario, exceso de cambios de contexto, ocurre cuando el cuanto es muy pequeño. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. CPU Scheduling (Round-Robin Scheduling).)

20. ¿Cuáles son las cuatro condiciones de Coffman que deben cumplirse simultáneamente para que ocurra un interbloqueo (deadlock)?

  1. Exclusión mutua, expropiación, retención y espera, y prioridad estática
  2. Espera circular, expropiación, inanición y exclusión mutua
  3. Exclusión mutua, retención y espera, no expropiación y espera circular
  4. Retención y espera, no expropiación, espera circular e inanición

Las cuatro condiciones necesarias y simultáneas para un interbloqueo son exclusión mutua, retención y espera, no expropiación y espera circular; las demás combinaciones incluyen conceptos reales de otros temas que no forman parte de las condiciones de Coffman. (Coffman, Elphick & Shoshani (1971), System Deadlocks; Silberschatz, Operating System Concepts, cap. Deadlocks.)

21. Para prevenir interbloqueos, un sistema operativo obliga a cada proceso a solicitar de una sola vez todos los recursos que necesitará antes de comenzar su ejecución, en lugar de solicitarlos progresivamente mientras retiene los que ya obtuvo. ¿Cuál de las cuatro condiciones de Coffman se elimina con esta política?

  1. Exclusión mutua
  2. No expropiación
  3. Espera circular
  4. Retención y espera

Al solicitar todos los recursos de una sola vez, un proceso nunca retiene unos mientras espera otros, eliminando la condición de retención y espera (hold and wait); las demás condiciones de Coffman no se ven afectadas por esta política. (Coffman, Elphick & Shoshani (1971), System Deadlocks; Silberschatz, Operating System Concepts, cap. Deadlocks.)

22. Dos hilos de un mismo proceso ejecutan concurrentemente una función que declara una variable local entera y también incrementa un contador reservado en el montón (heap) y compartido entre ambos hilos. Un desarrollador observa que los valores de la variable local nunca se corrompen entre hilos, pero el contador compartido sí presenta resultados inconsistentes. ¿Cuál es la explicación más adecuada para esta diferencia?

  1. Cada hilo posee su propia pila (stack) para las variables locales, y el montón (heap) es compartido entre los hilos del proceso
  2. Los hilos de un mismo proceso no comparten regiones de memoria entre sí durante su ejecución
  3. El montón (heap) se duplica automáticamente para cada hilo, evitando así condiciones de carrera entre ellos
  4. La pila (stack) es compartida entre los hilos, por lo que las variables locales también se corrompen entre sí

Cada hilo tiene su propia pila para variables locales y marcos de activación, mientras que el montón es una región compartida por todos los hilos del proceso, lo que explica por qué el contador en el heap se corrompe por condiciones de carrera y las variables locales no. (Tanenbaum & Bos, Modern Operating Systems, cap. Memory Management; Silberschatz, Operating System Concepts (address space layout).)

23. ¿Cuál de las siguientes afirmaciones describe correctamente una diferencia entre un proceso y un hilo (thread) dentro de un sistema operativo?

  1. Cada hilo de un proceso posee su propio espacio de direcciones, completamente separado del de los demás hilos
  2. Los hilos de un proceso comparten su espacio de direcciones y recursos, mientras que cada proceso tiene el suyo propio
  3. En los sistemas operativos actuales, un proceso equivale a un único hilo de ejecución, por lo que los términos son intercambiables
  4. Los procesos comparten automáticamente toda su memoria con los demás procesos que se ejecutan en el sistema

Los hilos de un mismo proceso comparten el espacio de direcciones y los recursos abiertos del proceso, mientras que cada proceso posee su propio espacio de direcciones independiente; confundir proceso con hilo, o suponer que los procesos comparten memoria entre sí por defecto, son errores conceptuales comunes. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Threads & Concurrency.)

24. En el paradigma orientado a objetos, ¿qué principio consiste en ocultar los atributos internos de una clase y permitir su manipulación únicamente a través de métodos públicos definidos por la interfaz de la clase?

  1. Herencia
  2. Encapsulamiento
  3. Polimorfismo
  4. Abstracción

El encapsulamiento restringe el acceso directo al estado interno de un objeto, exponiendo solo los métodos públicos necesarios; la abstracción, en cambio, se refiere a mostrar solo los detalles esenciales sin implicar necesariamente control de acceso. (Booch, Object-Oriented Analysis and Design, cap. Fundamentos de la POO)

25. ¿Qué mecanismo de la programación orientada a objetos permite que una clase (subclase) adquiera automáticamente los atributos y métodos definidos en otra clase (superclase), favoreciendo la reutilización de código?

  1. Polimorfismo dinámico
  2. Encapsulamiento de datos
  3. Herencia simple
  4. Sobrecarga de métodos

La herencia establece una relación superclase-subclase que reutiliza atributos y métodos ya definidos; la sobrecarga de métodos, en cambio, define varias versiones de un método dentro de la misma clase. (Sebesta, Concepts of Programming Languages, cap. Soporte para la programación orientada a objetos)

26. Considere el siguiente pseudocódigo orientado a objetos: la clase Figura define un método area() sin una implementación útil; la clase Circulo, que extiende Figura, redefine area() como 3.1416 multiplicado por el radio al cuadrado; la clase Cuadrado, que también extiende Figura, redefine area() como el lado al cuadrado. Se crea un arreglo de referencias de tipo Figura que contiene un objeto Circulo y un objeto Cuadrado, y se invoca figura.area() para cada elemento del arreglo. Cada llamada ejecuta la implementación correspondiente a la clase real del objeto en tiempo de ejecución. ¿Qué principio de la POO permite este comportamiento?

  1. Polimorfismo
  2. Herencia
  3. Encapsulamiento
  4. Abstracción

Aunque la herencia hace posible que Circulo y Cuadrado compartan el tipo Figura, es el polimorfismo el que permite que la llamada figura.area() se resuelva dinámicamente según la clase real de cada objeto. (Sebesta, Concepts of Programming Languages, cap. Soporte para la programación orientada a objetos)

27. En una subclase se define un método con el mismo nombre, los mismos parámetros y el mismo tipo de retorno que un método ya existente en la superclase, sustituyendo su comportamiento cuando se invoca sobre un objeto de la subclase. ¿Cómo se denomina esta técnica?

  1. Sobrecarga de métodos
  2. Redefinición de métodos
  3. Encapsulamiento de atributos
  4. Herencia múltiple de clases

La redefinición (sobreescritura u overriding) sustituye la implementación heredada manteniendo idéntica firma, habilitando el polimorfismo en tiempo de ejecución; la sobrecarga, en cambio, define métodos con el mismo nombre pero distinta firma dentro de la misma clase. (Sebesta, Concepts of Programming Languages, cap. Soporte para la programación orientada a objetos)

28. En una clase que representa una cuenta bancaria, el atributo saldo se declara como privado y solo puede modificarse mediante un método depositar() que valida que el monto sea positivo antes de aplicarlo. ¿Qué principio de la POO se está aplicando al restringir el acceso directo al atributo saldo?

  1. Encapsulamiento
  2. Abstracción
  3. Herencia
  4. Polimorfismo

Declarar el atributo como privado y controlar su modificación mediante un método validador es una aplicación directa del encapsulamiento, que protege la integridad del estado interno del objeto. (Booch, Object-Oriented Analysis and Design, cap. Fundamentos de la POO)

29. En una relación de herencia entre dos clases, ¿cómo se denomina la clase que hereda los atributos y métodos, es decir, la que se define a partir de otra clase ya existente?

  1. Subclase o clase derivada
  2. Superclase o clase base
  3. Clase abstracta
  4. Clase de interfaz

La subclase (o clase derivada) es la que hereda de la superclase (o clase base); confundir ambos términos es un error común al describir la dirección de la relación de herencia. (Booch, Object-Oriented Analysis and Design, cap. Fundamentos de la POO)

30. Un lenguaje orientado a objetos permite que una clase herede simultáneamente de dos superclases distintas, y ambas superclases definen un método con la misma firma. ¿Qué problema clásico de diseño surge en este escenario?

  1. Fragilidad de clase base
  2. Sobrecarga de operadores
  3. Herencia múltiple ambigua
  4. Polimorfismo paramétrico

Cuando dos superclases aportan un método con idéntica firma, el compilador no puede determinar cuál implementación heredar, situación conocida como ambigüedad de herencia múltiple o 'problema del diamante'. (Sebesta, Concepts of Programming Languages, cap. Soporte para la programación orientada a objetos)

31. ¿Cuál de las siguientes acciones NO corresponde a una aplicación correcta del principio de encapsulamiento en el diseño de una clase?

  1. Declarar los atributos como privados dentro de la clase
  2. Exponer los atributos únicamente a través de métodos getter y setter
  3. Validar los datos de entrada dentro de los métodos setter
  4. Permitir el acceso directo a los atributos desde fuera de la clase

Permitir el acceso directo a los atributos desde fuera de la clase anula el propósito del encapsulamiento, que exige controlar el acceso al estado interno exclusivamente mediante métodos de la propia clase. (Booch, Object-Oriented Analysis and Design, cap. Fundamentos de la POO)

32. Una clase abstracta declara un método sin proporcionar su implementación, obligando a que cada subclase concreta lo implemente según su propia lógica interna. ¿Qué concepto de la POO se ve reforzado directamente por este mecanismo?

  1. Prohibición de instanciar directamente
  2. Encapsulamiento de atributos
  3. Polimorfismo en tiempo de ejecución
  4. Herencia de comportamiento

Al forzar que cada subclase provea su propia implementación del método declarado, la clase abstracta habilita el polimorfismo: la misma llamada ejecutará código distinto según la subclase concreta. (Sebesta, Concepts of Programming Languages, cap. Soporte para la programación orientada a objetos)

33. ¿Cuál de los siguientes paradigmas de programación se basa en el uso de funciones puras y la inmutabilidad de los datos, en contraste con el paradigma orientado a objetos, que organiza el software en clases con estado encapsulado?

  1. Paradigma orientado a objetos
  2. Paradigma lógico
  3. Paradigma imperativo
  4. Paradigma funcional

El paradigma funcional se distingue por evitar el estado mutable y basarse en funciones puras, a diferencia del paradigma lógico, que se basa en reglas y hechos (como Prolog). (Sebesta, Concepts of Programming Languages, cap. Paradigmas de programación)

34. En la planificación de CPU, ¿cómo se calcula el tiempo de retorno (turnaround time) de un proceso?

  1. Tiempo de retorno menos ráfaga de CPU
  2. Tiempo de finalización menos tiempo de llegada
  3. Primera ejecución menos tiempo de llegada
  4. Tiempo de llegada menos tiempo de finalización

El tiempo de retorno se obtiene restando el instante de llegada al instante de finalización del proceso; la primera opción corresponde en realidad a la fórmula del tiempo de espera. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU (definición de turnaround time))

35. ¿Qué fórmula permite obtener el tiempo de espera (waiting time) de un proceso en un esquema de planificación de CPU?

  1. Tiempo de retorno menos ráfaga de CPU
  2. Tiempo de finalización menos tiempo de llegada
  3. Primera ejecución menos tiempo de llegada
  4. Ráfaga de CPU menos tiempo de retorno

El tiempo de espera equivale al tiempo de retorno menos la ráfaga total de CPU del proceso; la segunda opción corresponde a la fórmula del tiempo de retorno, no a la del tiempo de espera. (Silberschatz, Galvin & Gagne, Operating System Concepts, cap. Planificación de CPU (Scheduling Criteria))

Comienza gratis