CUESTIONARIO SHELL
![]() |
![]() |
![]() |
Título del Test:![]() CUESTIONARIO SHELL Descripción: Sistemas operativos |




Comentarios |
---|
NO HAY REGISTROS |
¿Cuáles de las siguientes señales se consideran "señales de terminal" ignoradas por el proceso shell? Selecciona una o más de una: SIGTSTOP. SIGTTIN. SIGINT. SIGABRT. SIGTTOU. SIGCHLD. SIGCONT. Cuando en nuestro shell ejecutamos: > cat & Selecciona una: Cat obtiene el terminal, ya que lo utiliza como entrada estándar. El proceso creado para la ejecución del cat finalizará de forma abrupta. Como hemos lanzado a ejecutar cat en segundo plano e intenta leer del terminal, se suspende. Cat comienza a ejecutarse en primer plano. En el contexto de un sistema Unix, ¿qué pareja de términos, relacionados con el estado de un job, no encajan? Selecciona una: SLEEP - SUSPEND. RUNNING - RUNNABLE. STOPPED - SUSPENDED. BLOCK - SLEEP. ¿Por qué bloquearemos la señal SIGCHLD al modificar la lista de jobs de un shell? Selecciona una: Porque la lista suele estar ubicada en la pila del programa (stack). Porque la señal es una acción asíncrona que puede modificar a su vez la lista. Porque así lo define el estándar POSIX. Porque la lista no suele ser una variable compartida. La primitiva POSIX sigprocmask(...) sobre una señal... Selecciona una: ... restablece el comportamiento por defecto de la señal SIGPROCMASK. ... bloquea el proceso cuando recibe la señal en cuestión. ... bloquea la señal, de manera que cuando llega queda pendiente. ... provoca que se ignore dicha señal. En lenguaje C, se quiere replicar una cadena "cmd" que contiene un comando, ¿qué opciones de las siguientes son correctas? Selecciona una o más de una: char copia[256]; copia = strdup(cmd);. char *copia[256]; strcpy(copia, cmd);. char copia[256]; strcpy(copia, cmd);. char *copia; copia = strdup(cmd);. char *copia; strcpy(copia, cmd);. Ejecutando la línea de compilación gcc -O3 helloworld.c Selecciona una: se generará un ejecutable denominado a.out si no hay errores. se generará un ejecutable 03.out si no hay errores. se generará un ejecutable denominado helloworld si no hay errores. no sabemos el nombre del fichero ejecutable creado. Deseamos compilar el programa "programa.c": #include "math.h" main(){ ...} Si math.h está en el directorio /usr/local/include, debermos compilar como: Selecciona una: gcc -I/usr/local/include programa.c. gcc -L/usr/local/include programa.c. gcc -lmath programa.c. gcc -g programa.c. 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; ... } Selecciona una o más de una: 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. Con printf("%p\n", &p) y con printf("%p\n", &v) se imprime el mismo valor por pantalla. ¿Cuál de las siguientes llamadas a la función waitpid no bloquea al proceso llamante? Selecciona una: wpid = waitpid (pid, &status, WNONBLOCKING);. wpid = waitpid (pid, &status, 0);. wpid = waitpid (pid, &status, WUNTRACED);. wpid = waitpid (pid, &status, WUNTRACED|WNOHANG);. ¿Qué proceso lidera un grupo de procesos de terminal? Selecciona una: Aquél que llegó primero al grupo. Aquél que se ejecute a mayor velocidad. Aquél cuyo padre tenga mayor prioridad (nice). Aquél cuyo pid coincida con el identificador del grupo. 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: Selecciona una: A que no se está utilizando un planificador de tiempo compartido. 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. Un ejecutable compilado con la opción -g, se caracteriza fundamentamente por: Selecciona una: Ser un ejecutable con optimización media. Ser un ejecutable con optimización máxima. Ser un ejecutable generado estáticamente. Ser un ejecutable con información de depuración (para gdb por ejemplo). 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? Selecciona una: 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 driver del Terminal. El shell. |