option
Cuestiones
ayuda
daypo
buscar.php

PSP-UT 1

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
PSP-UT 1

Descripción:
Programación multiproceso.

Fecha de Creación: 2026/02/01

Categoría: Otros

Número Preguntas: 59

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Cómo se define un proceso en el contexto del sistema operativo según el texto?. Un programa almacenado en disco. Un programa en ejecución. Un conjunto de subprocesos. Un programa en fase de compilación.

En un sistema operativo con una única CPU, ¿cuál es el mecanismo utilizado para dar la sensación de que varios procesos se ejecutan simultáneamente?. La alternancia muy rápida en la ejecución de los procesos en la CPU. La división del proceso en múltiples hilos (threads). La clonación de la CPU mediante software. La virtualización de los procesos.

¿Qué es el BCP (Bloque de Control de Proceso)?. La memoria RAM asignada al proceso. Una estructura de datos que almacena toda la información sobre un proceso. El contador de programa. El código ejecutable del programa.

Según el texto, ¿cuál de los siguientes elementos NO es parte de la información almacenada en el BCP?. La información contable del tiempo de CPU consumido. El identificador único del proceso (PID). La dirección IP de la máquina que lo ejecuta. Información de planificación de CPU, como la prioridad.

Al ejecutar el comando ps en Linux, ¿qué representa la columna TIME?. La duración restante que el proceso tiene asignada. La cantidad total de tiempo de CPU que el proceso ha utilizado desde que nació. La hora de inicio del proceso. El tiempo real transcurrido desde que nació el proceso.

En la salida del comando ps -f, ¿qué representa el campo PPID?. El PID del padre de cada proceso. El porcentaje de recursos de CPU utilizado por el proceso. El procesador que el proceso tiene asignado. El nombre de usuario que ejecuta el proceso.

¿Qué indica el campo RSS en la salida detallada del comando ps -AF?. El tamaño virtual de la imagen del proceso. El tamaño de la parte residente del proceso en memoria en kilobytes. El procesador que el proceso tiene actualmente asignado. El porcentaje de CPU utilizado por el proceso.

¿Qué comando se utiliza en la línea de comandos de DOS en sistemas Windows para ver los procesos que se están ejecutando?. listproc. system-monitor. ps. tasklist.

¿Cuál es la combinación de teclas más habitual para acceder al Administrador de tareas de Windows?. [ALT + F4]. [Windows + R]. [CTRL + Alt + Supr]. [CTRL + ESC].

¿Qué provoca la transición de un proceso del estado "En ejecución" al estado "Bloqueado"?. El sistema operativo le otorga un tiempo de CPU. El agotamiento del tiempo de CPU asignado por el sistema operativo. La ocurrencia de un evento externo esperado. La espera de la ocurrencia de un evento externo (ej. operación de E/S).

¿Cuál es la característica principal del estado "Listo"?. El proceso está parado temporalmente y listo para ejecutarse cuando se le dé oportunidad. El proceso no puede hacer nada hasta que ocurra un evento externo. El proceso ha finalizado su ejecución. El proceso está usando el procesador.

¿Qué evento hace que un proceso pase del estado "Bloqueado" al estado "Listo"?. La finalización de otro proceso. El agotamiento del tiempo asignado. El sistema le otorga un tiempo de CPU. La ocurrencia del evento externo que se esperaba.

¿Qué transición de estado se produce cuando el sistema operativo le quita la CPU a un proceso porque se le acabó el tiempo asignado?. De Bloqueado a Listo. De Listo a Ejecución. De Ejecución a Bloqueado. De Ejecución a Listo.

¿Qué librería estándar de C contiene la función system()?. unistd.h. signal.h. stdio.h. stdlib.h.

¿Por qué se recomienda no usar la función system() desde un programa con privilegios de administrador?. Porque es más eficiente utilizar execl(). Porque solo funciona en sistemas Windows. Porque solo funciona en sistemas Windows. Porque se pueden emplear valores extraños para variables de entorno y comprometer la integridad del sistema.

¿Cuál es la consecuencia principal de una llamada exitosa a la función execl() en el proceso llamante?. Devuelve el PID del nuevo proceso creado. Se pausa la ejecución del proceso llamante hasta que el nuevo termine. Sustituye el proceso llamante por el proceso nuevo.

La lista de argumentos que se pasan a la función execl() debe finalizar obligatoriamente con: Un puntero nulo ((char *) NULL). El PID del proceso. El path del programa. El path del programa.

En el ejemplo execl ("/bin/ls", "ls", "-l", (char *) NULL);, ¿qué representa el segundo argumento "ls" (correspondiente a arg0)?. El path completo del programa. El primer argumento real del comando. Simplemente, un valor nulo. El nombre del programa a ejecutar.

Dado el comportamiento de execl(), ¿cuál será el mensaje final en pantalla al ejecutar el siguiente código? C printf("Ejemplo de uso de exec(): Los archivos en el directorio son:\n"); execl ("/bin/ls", "ls", "-1", (char *) NULL); printf("¡¡¡ Esto no se ejecuta !!!\n");. Se muestran los archivos, y el mensaje "¡¡¡ Esto no se ejecuta !!!" no se ejecuta. Se muestran los archivos, y luego "¡¡¡ Esto no se ejecuta !!!". El programa falla antes de mostrar cualquier mensaje. Solo se muestra "Ejemplo de uso de exec(): Los archivos en el directorio son:".

Al llamar a la función fork(), ¿qué se crea en relación con el proceso padre?. Un nuevo proceso hijo, copia exacta en código y datos, salvo PID y memoria. Un hilo que comparte código y datos con el padre. Un proceso hijo que debe cargarse desde disco. Un enlace simbólico al proceso padre.

Si la función fork() se ejecuta sin errores, ¿qué valor devuelve al proceso hijo?. -1. 0. El PID asignado al proceso hijo. El PID del proceso padre.

Si la función fork() se ejecuta sin errores, ¿qué valor devuelve al proceso padre?. El PID asignado al proceso hijo. -1. El PID del proceso padre. 0.

Si el proceso hijo modifica el valor de una variable después de llamar a fork(), ¿se refleja ese cambio en la misma variable del proceso padre?. Sí, porque ambos procesos comparten la misma memoria de variables. No, pero el cambio se refleja en la variable del abuelo. Sí, si y solo si la variable es global. No, porque el proceso hijo tiene una copia independiente de las variables del padre.

¿Qué función se utiliza para obtener el identificador del proceso que realiza la llamada (el proceso actual)?. fork(void). getid(void). getppid(void). getpid(void).

¿Cuál es la forma más básica de utilizar la función wait() y cuál es su objetivo principal?. wait(0) para que el hijo se ejecute antes que el padre. wait(NULL) para que el proceso padre espere la finalización del proceso hijo. wait(-1) para que el padre termine inmediatamente. wait(PID) para que el padre pause al proceso hijo.

En un pipe() para comunicación, si el flujo de información va del hijo al padre, ¿cuál descriptor debe cerrar el padre?. El padre no necesita cerrar ningún descriptor. Ambos descriptores (fd[0] y fd[1]). El descriptor de escritura (fd[1]). El descriptor de lectura (fd[0]).

En el ejemplo de pipe() donde el hijo envía el mensaje al padre, ¿qué descriptor (fd index) utiliza el hijo para realizar la operación de escritura?. Depende de la llamada a write(). fd[1]. fd[0]. fd[-1].

¿Cuál es el comando de la línea de comandos de Linux para crear un fichero FIFO?. pipe. mkfifo. touch. creatfifo.

En el ejemplo de sincronización, si el proceso hijo espera una señal de respuesta del padre, ¿qué función utiliza el hijo para bloquearse temporalmente hastaque le llegue una señal?. pause(). sleep(). kill(). signal().

¿Cuáles son las dos clases principales del paquete java.lang utilizadas para la gestión de procesos en Java?. ProcessBuilder y Process. File y IOException. System y Runtime. Thread y Runnable.

¿Cuál es la misión principal de una instancia de la clase ProcessBuilder?. Sincronizar dos procesos. Representar el proceso en ejecución y sus flujos de E/S. Iniciar múltiples hilos de ejecución dentro de un proceso. Gestionar una colección de atributos del proceso, como el comando y el directorio de trabajo.

¿Qué método de la clase ProcessBuilder se debe invocar para crear e iniciar una nueva instancia de Process?. execute(). run(). start(). create().

Para leer lo que un comando ejecutado por un subproceso escribió en su salida normal (stdout), ¿qué método de la clase Process debe usar el proceso padre?. getInputStream(). exitValue(). getErrorStream(). getOutputStream().

¿Qué método de la clase Process provoca que el proceso actual (padre) espere a que el subproceso finalice?. waitFor(). destroy(). isAlive(). exitValue().

Por defecto, ¿a dónde son redirigidas todas las operaciones de Entrada/Salida (E/S) del subproceso?. Al proceso padre. A un fichero de logs. A una terminal o consola independiente. A la memoria compartida del sistema.

¿Cuál es la causa potencial de los bloqueos en un subproceso mencionada en el texto?. El tamaño de búfer limitado para los flujos de entrada y salida estándar. La interrupción por una señal externa. Un bucle infinito en el código. La falta de llamadas a waitFor().

¿Cómo se representa el comando que se invoca y sus argumentos dentro de un objeto ProcessBuilder?. Un arreglo de bytes. Un único String con el comando completo. Una lista de cadenas separadas por comas. Un objeto File con la ruta del ejecutable.

¿Qué método de la clase Process permite comprobar si el subproceso está actualmente activo (vivo)?. checkStatus(). isAlive(). exitValue(). getStatus().

¿Qué devuelve el método command() de la clase ProcessBuilder sin parámetros?. El programa que se quiere ejecutar como una cadena. El directorio de trabajo actual. Todos los argumentos del objeto ProcessBuilder en una List<String>. Las variables de entorno del proceso.

¿Qué método de ProcessBuilder permite establecer la fuente de entrada estándar del subproceso a un fichero?. redirectOutput(File file). redirectError(File file). directory(File dir). redirectInput(File file).

¿Qué método de la clase ProcessBuilder devuelve las variables de entorno del objeto en una estructura Map?. getEnv(). getEnvironment(). command(). environment().

Para ejecutar comandos de Windows que no tienen un ejecutable (como DIR), ¿qué comando es necesario utilizar como parte de la lista de argumentos deProcessBuilder?. explorer.exe. attrib.exe. CMD.EXE.

¿Qué argumento debe usarse con CMD si se desea que el intérprete de comandos finalice después de ejecutar un comando?. /D. /E. /C. /K.

Si un programa Java (subproceso) finaliza correctamente sin incluir System.exit(), ¿qué valor por defecto devuelve el método waitFor()?. 1. 0. NULL. -1.

Si se redirige la entrada estándar a un fichero usando redirectInput(), ¿qué devolverá el método Process.getOutputStream()?. Un error de IOException. Un descriptor de fichero al proceso. Una secuencia de salida nula. La secuencia de salida normal del proceso.

El atributo redirectErrorStream de ProcessBuilder tiene inicialmente el valor false. ¿Qué significa esto?. Se redirige automáticamente el error a un fichero. La salida de error se descarta. La salida estándar y de error se fusionan en una sola corriente. La salida estándar y de error se envían a dos corrientes separadas.

Según el texto, la diferencia clave entre un programa y un proceso es que un programa es algo: Una actividad asíncrona. Un conjunto de hilos de ejecución. Activo, con recursos asignados. Pasivo, un conjunto de instrucciones almacenado.

¿Cuál es la diferencia entre la ejecución concurrente y la ejecución simultánea o paralela?. La concurrencia es entre hilos y el paralelismo es entre procesos. La concurrencia se da en sistemas multiprocesador y el paralelismo en monoprocesador. El paralelismo siempre ocurre en sistemas fuertemente acoplados. La concurrencia implica solapamiento o intercalado, mientras que el paralelismo es la ejecución simultánea real.

Una de las principales diferencias entre hilos (threads) y procesos es que los hilos: Comparten el espacio de memoria del proceso. Tardan más tiempo en crearse. Generalmente poseen espacios de memoria de trabajo independientes. Requieren la intervención del núcleo del sistema para su comunicación.

En la comparación entre procesos e hilos, ¿qué se indica sobre los cambios de estado de los hilos?. El estado de los hilos nunca cambia. Los cambios de estado en los hilos son más costosos. El costo es idéntico al de los procesos. Los cambios de estado en los hilos son menos costosos porque pertenecen al mismo proceso.

¿Cuál es la razón principal para que una clase implemente la interfaz Runnable en lugar de heredar de la clase Thread?. Se utiliza cuando una clase ya deriva de otra (ej. un Applet). Runnable no requiere la implementación del método run(). Runnable es más eficiente. Thread no funciona en todas las plataformas.

Para ejecutar la aplicación NOTEPAD de Windows, ¿cuál es la línea de código ProcessBuilder correcta. ProcessBuilder pb = new ProcessBuilder("NOTEPAD");. ProcessBuilder pb = new ProcessBuilder("CMD", "/C", "NOTEPAD");. ProcessBuilder pb = new ProcessBuilder("NOTEPAD").start();. Process pb = new ProcessBuilder("NOTEPAD").run();.

En el Ejemplo2.java, ¿qué método de InputStream se utiliza para leer la salida generada por el comando carácter a carácter?. read(). available(). nextChar(). readLine().

Si el programa Java a ejecutar se encuentra en el directorio D:\PSP, ¿cómo se debe definir el objeto File para establecer el directorio de trabajo enProcessBuilder (sin usar la clase ProcessBuilder.Redirect)?. File directorio = new File(".\\PSP");. File directorio = new File("/PSP");. File directorio = new File("D:\\PSP");. File directorio = new File("D:/PSP");.

Si en el Ejemplo2.java se cambia el comando por uno erróneo (DIRR), ¿qué valor se obtendrá al final en la variable exitVal recogida por p.waitFor()?. 0. 32512. 1. -1.

Para enviar una cadena al stream de entrada de un subproceso (Ej. DATE), ¿qué se debe hacer inmediatamente después de escribir los bytes (os.write(...)) paraasegurar que la información se envíe?. Llamar a p.waitFor(). Vaciar el buffer de salida (os.flush()). Convertir la cadena a String.valueOf(). Cerrar el stream (os.close()).

Para enviar una cadena ("Hola Manuel") al stream de entrada de un programa Java que utiliza br.readLine(), ¿cómo debe terminar la cadena enviada parasimular la pulsación de [Intro]?. Con el carácter de nueva línea ("\n"). El programa readLine() lo detecta automáticamente. Con un tabulador ("\t"). Con un espacio al final ("Hola Manuel ").

Al utilizar la clase ProcessBuilder.Redirect, ¿qué valor de redirección se utiliza para indicar que el proceso debe escribir en un fichero?. Redirect.to(File). Redirect.INHERIT. Redirect.from(File). Redirect.appendTo(File).

Al utilizar la clase ProcessBuilder.Redirect, ¿qué valor de redirección se utiliza para indicar que la salida del proceso se debe añadir al objeto Fileespecificado?. Redirect.to(File). Redirect.from(File). Redirect.appendTo(File). Redirect.INHERIT.

Denunciar Test