logo

Crowdly

Browser

Add to Chrome

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 C, ¿cuántos semáforos serían necesarios para garantizar que se impriman siempre los números en orden?

#include <fcntl.h>

#include <semaphore.h>

#include <stdio.h>

#include <stdlib.h>

#include <sys/stat.h>

#include <sys/wait.h>

#include <unistd.h>

int main(void) {

pid_t pid;

pid = fork();

if (pid < 0) {

perror("fork");

exit(EXIT_FAILURE);

}

if (pid == 0) {

printf("1\n");

printf("3\n");

} else {

printf("2\n");

printf("4\n");

wait(NULL);

exit(EXIT_SUCCESS);

}

}

0%
0%
0%
0%
View this question

Dado el siguiente código C, ¿cuándo se imprimirá el mensaje "Signal number 2 received"?

#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

Dado el siguiente código C, ¿qué sucede cuando el proceso recibe la señal SIGINT?

#include <fcntl.h>

#include <semaphore.h>

#include <signal.h>

#include <stdio.h>

#include <stdlib.h>

#include <sys/stat.h>

#include <sys/wait.h>

#include <unistd.h>

#define SEM_NAME "/example_sem"

int main(void) {

sem_t *sem = NULL;

struct sigaction act;

if ((sem = sem_open(SEM_NAME, O_CREAT | O_EXCL, S_IRUSR | S_IWUSR, 0)) ==

SEM_FAILED) {

perror("sem_open");

exit(EXIT_FAILURE);

}

sigemptyset(&(act.sa_mask));

act.sa_flags = 0;

/* The handler for SIGINT is set. */

act.sa_handler = SIG_IGN;

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

perror("sigaction");

exit(EXIT_FAILURE);

}

printf("Starting wait (PID=%d)\n", getpid());

sem_wait(sem);

printf("Finishing wait\n");

sem_unlink(SEM_NAME);

}

0%
0%
0%
0%
View this question

Se crea un semáforo binario en un programa en C con la siguiente inicialización:

sem_t *sem = sem_open("/mi_semaforo", O_CREAT, 0644, 0);

Dado este semáforo, ¿qué ocurre si un proceso ejecuta sem_wait(&sem); inmediatamente después de la inicialización?

100%
0%
0%
0%
View this question

¿A qué proceso y que tipo de señal envía la función alarm después de que se cumpla el tiempo especificado por parámetro?

0%
0%
0%
0%
View this question

¿Qué operaciones realiza la operación Up en los semáforos?

View this question

Si en la función sigprocmask() aplicamos el método SIG_UNBLOCK ¿qué se está indicando sobre la señales definidas en la máscara?

0%
0%
View this question

¿Qué utilidad el campo (*sa_handler) en la estructura sigaction a la hora de capturar una señal?

View this question

¿Qué operaciones realiza la operación Down en los semáforos?

View this question

Cuando se usa la instrucción sigaction para capturar una señal, ¿qué señales quedan bloqueadas?

0%
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!

Browser

Add to Chrome