Cuestiones
ayuda
option
Mi Daypo

TEST BORRADO, QUIZÁS LE INTERESEShell - Test - Sistemas Operativos

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del test:
Shell - Test - Sistemas Operativos

Descripción:
E.T.S.I. Informática

Autor:
Hola
(Otros tests del mismo autor)

Fecha de Creación:
09/06/2022

Categoría:
Informática

Número preguntas: 24
Comparte el test:
Facebook
Twitter
Whatsapp
Comparte el test:
Facebook
Twitter
Whatsapp
Últimos Comentarios
No hay ningún comentario sobre este test.
Temario:
¿Cuál de las siguientes llamadas a la función waitpid no bloquea al proceso llamante? wpid = waitpid (pid, &status, WUNTRACED); wpid = waitpid (pid, &status, 0); wpid = waitpid (pid, &status, WNONBLOCKING); wpid = waitpid (pid, &status, WUNTRACED|WNOHANG);.
¿Por qué bloquearemos la señal SIGCHLD al modificar la lista de jobs de un shell? Porque la lista suele estar ubicada en la pila del programa (stack) Porque así lo define el estándar POSIX Porque la lista no suele ser una variable compartida Porque la señal es una acción asíncrona que puede modificar a su vez la lista.
¿Qué proceso lidera un grupo de procesos de terminal? Aquél que se ejecute a mayor velocidad Aquél cuyo padre tenga mayor prioridad (nice) Aquél que llegó primero al grupo Aquél cuyo pid coincida con el identificador del grupo.
Un ejecutable compilado con la opción -g, se caracteriza fundamentamente por: Ser un ejecutable con optimización media Ser un ejecutable con información de depuración (para gdb por ejemplo) Ser un ejecutable con máxima optimización Ser un ejecutable generado estáticamente.
En el contexto de un sistema Unix, ¿qué pareja de términos, relacionados con el estado de un job, no encajan? BLOCK - SLEEP SLEEP - SUSPEND RUNNING - RUNNABLE STOPPED - SUSPENDED.
¿Cuáles de las siguientes señales se consideran "señales de terminal" ignoradas por el proceso shell? SIGCHLD SIGINT SIGCONT SIGTSTOP SIGTTIN SIGTTOU SIGABRT.
En lenguaje C, se quiere replicar una cadena "cmd" que contiene un comando, ¿qué opciones de las siguientes son correctas? char *copia[256]; strcpy(copia, cmd); char *copia; strcpy(copia, cmd); char copia[256]; strcpy(copia, cmd); char copia[256]; copia = strdup(cmd); char *copia; copia = strdup(cmd);.
Cuando en nuestro shell ejecutamos: > cat & Como hemos lanzado a ejecutar cat en segundo plano e intenta leer del terminal, se suspende. El proceso creado para la ejecución del cat finalizará de forma abrupta. Cat comienza a ejecutarse en primer plano Cat obtiene el terminal, ya que lo utiliza como entrada estándar.
Suponiendo que ya se ha ejecutado el siguiente fragmento de un programa en C, selecciona las opciones correctas: #include <stdio.h> int main(int argc, char *argv[]) { int v[3] = {7, 8, 9}; int *p = 0; p = v; . . . } Con printf("%p\n",p) y con printf("%p\n",v) se imprime el mismo valor por pantalla Con printf("%p\n",p) y con printf("%p\n",&v[0]) se imprime el mismo valor por pantalla Con printf("%d,%d,%d\n",p[0], p[1], p[2]); en pantalla obtendríamos: 9, 8, 7 Con printf("%p\n", &p) y con printf("%p\n", &v) se imprime el mismo valor por pantalla.
Cuando se pulsa la combinación de teclas Control+C se envía una señal para detener todos los procesos del grupo de procesos en primer plano. ¿quién envía esta señal SIGINT? El driver del Terminal El proceso en ejecución dentro del grupo de procesos de primer plano El lider de la sesión al que pertenece el terminal El shell.
Deseamos compilar el programa "programa.c": #include "math.h" main(){ ...} Si math.h está en el directorio /usr/local/include, debermos compilar como: gcc -L/usr/local/include programa.c gcc -g programa.c gcc -lmath programa.c gcc -I/usr/local/include programa.c.
La primitiva POSIX sigprocmask(...) sobre una señal... ... restablece el comportamiento por defecto de la señal SIGPROCMASK ... provoca que se ignore dicha señal ... bloquea la señal, de manera que cuando llega queda pendiente ... bloquea el proceso cuando recibe la señal en cuestión.
Ejecutando la línea de compilación gcc -O3 helloworld.c se generará un ejecutable 03.out si no hay errores no sabemos el nombre del fichero ejecutable creado se generará un ejecutable denominado helloworld si no hay errores se generará un ejecutable denominado a.out si no hay errores.
En el código de un shell con control de procesos encontramos que las siguientes sentencias de código se ejecutan tanto en el shell como en los hijos individuales: ... setpgid (pid, pgid); if (foreground) tcsetpgrp (shell_terminal, pgid); ... Ello es debido: A las posibles condiciones de carrera causadas por la concurrencia entre procesos A que el proceso padre debe recuperar el terminal siempre que un hijo termine A que el shell tiene mayor prioridad de planificación A que no se está utilizando un planificador de tiempo compartido.
En Unix, suponga un proceso que ha establecido una serie de manejadores de señales usando la función signal() y a continuación invoca execve(...) sin error, comenzando a ejecutar el programa indicado en los parametros de execve() Todos los manejadores de señales son reseteados a valores por defecto salvo los que estén ignorados (SIG_IGN) que seguirán ignorados Todos los manejadores de señales son reseteados a valores por defecto (SIG_DFL) Se mantienen los manejadores de señales establecidos previamente.
En UNIX, qué valor obtiene en la variable ret_val un proceso que ejecuta la sentencia C: pid_t ret_val = fork(); Siempre obtiene en la variable ret_val el identificador del proceso CHILD generado. Obtiene en la variable ret_val un cero si no hubo error durante la ejecución de fork(). Obtiene en la variable ret_val un entero positivo que indica el tipo de error y que puede ser usado por perror(retval) para producir un mensaje de error. Ninguna de la anteriores es cierta.
Considérese el siguiente fragmento de código C ejecutado por un proceso, al que denominaremos PARENT, en un sistema tipo UNIX: ... mypdi1=fork(); mypdi2=fork(); mypdi3=fork(); En total, ¿a cuántos procesos da lugar la ejecución de este fragmento de código (sin contar al proceso PARENT)?.
La gestión de la creación de threads requiere más tiempo que la gestión de la creación del mismo número de procesos. Verdadero Falso.
Para que la señal SIGCONT llegue a todo un grupo de procesos con pgrp=2120, tendremos que utilizar en nuestro programa: killpg(2120, SIGCONT) sigsend(2120,SIGCONT) kill(-2120, SIGCONT) signal(2120, SIGCONT).
En la llamada a pthread_create uno de los parámetros es el nombre del fichero ejecutable cuyo código va a empezar a ejecutar el thread una vez sea creado Verdadero Falso.
Cuando se pulsa Control+Z mientras se ejecuta una tarea en primer plano, el shell debe suspender a la tarea de primer plano enviándole la señal correspondiente Verdadero Falso.
Cuando se crea un proceso CHILD con fork(), automáticamente el sistema operativo le asigna su propio grupo de procesos, diferente al del proceso PARENT. Verdadero Falso.
Los threads pertenecientes a un mismo proceso tienen acceso compartido a las variables globales de su proceso, lo que facilita el trabajo colaborativo entre ellos. Verdadero Falso.
Considérese el siguiente fragmento de código C, donde "ls" corresponde con el nombre de un ejecutable correcto, que podemos lanzar sin errores: execlp("ls", "ls", NULL); Si el ejecutable "ls" no estuviera en la ruta de búsqueda (PATH), la llamada a execlp ...: ... provocaría que el proceso hijo muera inmediatamente ... fallaría, esto es, devolvería un código de error ... intentaría ejecutar el comando "ls" interno al shell ... provocaría que el proceso llamante muera inmediatamente.
Denunciar test Consentimiento Condiciones de uso