Шукаєте відповіді та рішення тестів для SISTEMAS OPERATIVOS? Перегляньте нашу велику колекцію перевірених відповідей для SISTEMAS OPERATIVOS в moodle.uam.es.
Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!
Dado el siguiente código C, ¿qué sucede si se le envía al proceso la señal SIGUSR1
?
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
sigset_t set, oset;
/* Mask to block signals SIGUSR1 and SIGUSR2. */
sigemptyset(&set);
sigaddset(&set, SIGUSR1);
sigaddset(&set, SIGUSR2);
/* Blocking of signals SIGUSR1 and SIGUSR2 in the process. */
if (sigprocmask(SIG_BLOCK, &set, &oset) < 0) {
perror("sigprocmask");
exit(EXIT_FAILURE);
}
printf("Waiting signals (PID = %d)\n", getpid());
printf("SIGUSR1 and SIGUSR2 are blocked\n");
pause();
printf("End of program\n");
exit(EXIT_SUCCESS);
}
Cuando se ejecuta una llamada a sem_open
:
Se desea ejecutar un programa ya existente y limitar su tiempo de ejecución a una hora. Se conoce que el programa no gestiona la señal , de modo que se pretende usar la función para que el programa finalice. ¿Qué secuencia de llamadas al sistema (en el orden especificado) se deberá usar?SIGALRM
alarm
Supón que tienes un proceso en el que se define una alarma utilizando alarm()
y luego se quiere añadir una llamada a sleep()
. ¿Cuál de las siguientes afirmaciones es correcta?
Una de las señales más utilizadas para interrumpir un proceso es . ¿Cómo se puede enviar esta señal a un proceso que se está ejecutando por terminal?SIGINT
Se desea crear un proceso hijo que mande una señal al padre tras realizar su trabajo. El padre debe establecer un manejador vacío para la señal y esperar a la señal en el código principal. ¿Qué secuencia de llamadas al sistema se debe realizar (en el orden especificado) para que no haya ninguna condición de carrera?
Dado el siguiente código C, ¿en qué parte del código se realiza realmente la gestión de la señal?
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
static volatile sig_atomic_t got_signal = 0;
/* Handler function for the signal SIGINT. */
void handler(int sig) { got_signal = 1; }
int main(void) {
struct sigaction act;
act.sa_handler = handler;
sigemptyset(&(act.sa_mask));
act.sa_flags = 0;
if (sigaction(SIGINT, &act, NULL) < 0) {
perror("sigaction");
exit(EXIT_FAILURE);
}
while (1) {
printf("Waiting Ctrl+C (PID = %d)\n", getpid());
if (got_signal) {
got_signal = 0;
printf("Signal received.\n");
}
sleep(9999);
}
}
¿Cómo se hace referencia a una señal en C?
La función sem_unlink
se puede usar:
Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!