logo

Crowdly

SISTEMAS OPERATIVOS

Looking for SISTEMAS OPERATIVOS test answers and solutions? Browse our comprehensive collection of verified answers for SISTEMAS OPERATIVOS at moodle.uam.es.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Dado el siguiente código, ¿cuándo se ejecuta la sentencia fprintf(stdout, "Fin del programa\n");?

void manejador_SIGALRM(int sig) {

printf("\nEstos son los numeros que me ha dado tiempo a contar\n");

}

int main(void) {

struct sigaction act;

long int i;

sigemptyset(&(act.sa_mask));

act.sa_flags = 0;

act.sa_handler = manejador_SIGALRM;

if (sigaction(SIGALRM, &act, NULL) < 0) {

perror("sigaction");

exit(EXIT_FAILURE);

}

if (alarm(10)) {

fprintf(stderr, "Existe una alarma previa establecida\n");

}

sleep(2);

sigsuspend(&(act.sa_mask));

fprintf(stdout, "Fin del programa\n");

exit(EXIT_SUCCESS);

}

0%
0%
0%
100%
View this question

¿Cuál es la principal ventaja de

sigsuspend

frente a

pause?

0%
0%
0%
100%
View this question
En POSIX existen dos tipos básicos de semáforos.....
0%
100%
0%
0%
View this question

Dado el siguiente código C, ¿se bloque alguna señal durante la ejecución de la función handler?

#include <signal.h>

#include <stdio.h>

#include <stdlib.h>

#include <sys/types.h>

#include <unistd.h>

/* Handler function for the signal SIGINT. */

void handler(int sig) {

printf("Signal number %d received\n", sig);

fflush(stdout);

}

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());

sleep(9999);

}

}

0%
100%
0%
0%
View this question

Si se desea dejar pasar solo 1 proceso en una zona crítica, ¿cómo

debería ser la iniciaización del semáforo?

0%
0%
100%
0%
View this question

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);

}

0%
0%
0%
100%
View this question

Cuando se ejecuta una llamada a

sem_open:

0%
0%
100%
0%
View this question

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

SIGALRM

, de modo que se pretende usar la

función

alarm

para que el programa

finalice. ¿Qué secuencia de llamadas al sistema (en el orden

especificado) se deberá usar?

0%
0%
0%
0%
View this question

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?

0%
100%
0%
0%
View this question

Una de las señales más utilizadas para interrumpir un proceso

es

SIGINT

. ¿Cómo se puede enviar esta

señal a un proceso que se está ejecutando por terminal?

100%
0%
0%
0%
View this question

Want instant access to all verified answers on moodle.uam.es?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!