option
Cuestiones
ayuda
daypo
buscar.php

S0ftware Mix Preguntas

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
S0ftware Mix Preguntas

Descripción:
Preparación para los parciales de la asignatura

Fecha de Creación: 2025/10/26

Categoría: Personal

Número Preguntas: 45

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

¿Qué es un sistema operativo desde el punto de vista de "máquina abstracta"?. Un programa que solo gestiona hardware. Una biblioteca de funciones para programas. Una máquina ficticia que ofrece dispositivos virtuales como procesos y archivos. Un software que solo se usa en la nube.

¿En qué "ring" de privilegio de la CPU se ejecuta el kernel?. Ring 3. Ring 0. Ring -1. Ring 2.

Une los anillos (Ring) con su correspondiente: Ring 0. Ring 3. Ring 1 y 2.

Une los siguientes términos: Pseudoparalelismo. Paralelismo.

Si un proceso llama a fork(), ¿qué valor retorna en el proceso hijo?. El PID del hijo. El PID del padre. 0. -1 en caso de error.

¿Qué política de planificación puede provocar hambruna (starvation)?. FCFS (First Come First Serve). Round-Robin. SJF (Shortest Job Queue). Multilevel Feedback Queue.

¿Qué llamada al sistema se usa para esperar a que un proceso hijo termine?. wait. sleep. exit. kill.

echo $HOME. Muestra el contenido del directorio actual. Muestra la ruta del directorio personal del usuario. Crea un directorio llamado HOME. Muestra las variables de entorno. Muestra los procesos en ejecución.

cd /usr/bin echo $PWD. Muestra /bin. Muestra /usr. Muestra /usr/bin. Muestra /home/usuario. No muestra nada.

#include <stdio.h> int main(void) { int x = 3; printf("%d", x+++x); return 0; }. Imprime 6. Imprime 7. Imprime 3. No compila. Comportamiento indefinido.

int main(void) { char *s = "hola"; s[0] = 'H'; printf("%s", s); return 0; }. Imprime "Hola". Imprime "hola". No compila. Provoca violación de segmento al ejecutar. Imprime basura.

int x = 5; int main() { int x = 10; printf("%d", x); }. Imprime 5. Imprime 10. Error de compilación. Imprime 15.

void func() { static int x = 0; x++; printf("%d ", x); } int main() { func(); func(); func(); }. Imprime 0 0 0. Imprime 1 1 1. Imprime 1 2 3. Imprime 0 1 2.

int main() { int x; printf("%d", x); }. Imprime 0. Valor indeterminado. Error de compilación. NULL.

int main() { int x = 5, y = 3; printf("%d", x & y); }. Imprime 7. Imprime 1. Imprime 15. Imprime 0.

int main() { int i = 0; while(i < 3) { if(i == 1) continue; printf("%d", i); i++; } }. Imprime 0. Imprime 0 2. Imprime 0 1 2. Bucle infinito.

int main() { int i; for(i = 0; i < 5; i++) { if(i == 2) break; printf("%d", i); } }. Imprime 0 1. Imprime 0 1 2. Imprime 0 1 2 3 4. Imprime 1 2 3 4.

int main() { switch(2) { case 1: printf("Uno"); case 2: printf("Dos"); case 3: printf("Tres"); default: printf("Fin"); } }. Imprime "Dos". Imprime "DosTres". Imprime "DosTresFin". Imprime "Fin".

int main() { int x = 10; int *p = &x; *p = 20; printf("%d", x); }. Imprime 10. Imprime 20. Imprime una dirección de memoria. Da error.

int main() { int arr[] = {1, 2, 3}; int *p = arr; printf("%d", *(p + 1)); }. Imprime 1. Imprime 2. Imprime 3. Imprime la dirección de arr[1].

int main() { int x = 10; int *p = &x; int **q = &p; **q = 30; printf("%d", x); }. Imprime 10. Imprime 30. Imprime la dirección de p. Error.

int main() { char str[] = "Hola"; printf("%zu", sizeof(str)); }. Imprime 4. Imprime 5. Imprime 6. Depende del sistema.

int main() { char s1[10] = "Hola"; char s2[] = "Mundo"; strcat(s1, s2); printf("%s", s1); }. Imprime "HolaMundo". Imprime "Hola". Comportamiento indefinido. Error de compilacion.

void f(int *p) { static int x = 10; p = &x; } int main(void) { int y = 5; int *q = &y; f(q); printf("%d\n", *q); }. Imprime 5. Imprime 10. No compila. Imprime un valor indeterminado. Provoca violación de segmento.

int main() { int *p = malloc(sizeof(int)); *p = 5; free(p); printf("%d", *p); }. Imprime 5. Imprime 0. Error. Comportamiento indefinido.

int main() { int *p = malloc(sizeof(int)); *p = 5; printf("%d", *p); free(p); }. Imprime 5. Imprime la dirección de memoria a la que apunta p. Error de compilación. Valor aleatorio. Imprime basura.

int main() { int *p = malloc(10 * sizeof(int)); p[10] = 5; printf("%d", p[10]); }. Imprime 5. Imprime 0. No compila. Segmentation fault.

typedef struct { int x; int y; } Punto; int main() { Punto p = {1, 2}; Punto *q = &p; printf("%d", q->y); }. Imprime 1. Imprime 2. No compila. Imprime la dirección de p.y.

struct Punto { int x; int y; }; int main() { struct Punto p = {1, 2}; printf("%d", p.x); }. Imprime 1. Imprime 2. No compila. Imprime la dirección de p.

struct Coord { int x; int y; }; int main() { Coord c = {1, 2}; printf("%d", c.x); }. Imprime 1. No compila. Imprime 2. Imprime basura. Imprime la dirección de memoria de y.

typedef struct { int x; int y; } Punto; typedef struct { int x; int y; } Vector; int main() { Punto p = {1, 2}; Vector v = p; printf("%d", v.x); }. Imprime 1. No compila. Imprime 2. Imprime un valor aleatorio.

typedef struct Nodo { int valor; struct Nodo *siguiente; } Nodo; int main() { Nodo n1 = {10, NULL}; printf("%d", n1.valor); }. Imprime 10. No compila. No imprime nada (NULL). Imprime la dirección de n1.

¿Cuál declaración es correcta? struct A { int x; }; typedef struct B { int x; } B; int main() { struct A a1 = {5}; // Línea 1 A a2 = {5}; // Línea 2 struct B b1 = {5}; // Línea 3 B b2 = {5}; // Línea 4 }. Sólo la Línea 1. Línea 1 y Línea 4. Todas son correctas. Línea 2 y Línea 3. Ninguna es correcta.

int main(void) { int x = 5; int *p = &x; *p = *p + 1; printf("%d\n", x); }. Imprime 5. Imprime 6. Imprime 7. Error de compilacion. Comportamiento indefinido.

int main(void) { int *p; *p = 10; printf("%d\n", *p); }. Imprime 10. Imprime 0. Error de compilación. Violación de segmento. Comportamiento indefinido.

struct S { int x; }; int main(void) { struct S a = {5}; struct S b = a; b.x = 10; printf("%d\n", a.x); }. Imprime 5. Imprime 10. Imprime 0. Error de compilación. Comportamiento indefinido.

struct P { int x, y; }; int main(void) { struct P *p = malloc(sizeof(struct P)); p->x = 2; p->y = 3; printf("%d\n", p->x + p->y); free(p); }. Imprime 0. Imprime 5. Error de compilación. Comportamiento indefinido. Imprime 2.

struct P { int x, y; }; int main(void) { struct P *p = malloc(sizeof(struct P)); p->x = 2; p->y = 3; printf("%d\n", p->x + p->y); free(p); }. Imprime 3. Imprime 2. Imprime basura. Comportamiento indefinido. No compila.

int main(void) { int a[ ] = {1, 2, 3}; int *p = a; printf("%d\n", *(p++)); printf("%d\n", *p); }. Imprime 1 2. Imprime 2 3. Imprime 1 1. Error de compilación. Imprime basura.

int main(void) { int *p = malloc(3 * sizeof(int)); for (int i = 0; i < 3; i++) p[i] = i; printf("%d\n", *(p+2)); free(p); }. Imprime 0. Imprime 1. Imprime 2. Imprime 3. Error de compilación.

int main(void) { int x = 10; int *p = &x; int **q = &p; **q = 20; printf("%d\n", x); }. Imprime 10. Imprime 20. Error de compilación. Imprime basura. Comportamiento indefinido.

int main(void) { int x = 5; int *p = &x; printf("%d\n", *p++); }. Imprime 5. Imprime 6. Error de compilación. Comportamiento indefinido. Imprime basura.

Las llamadas al sistema: Se provocan a través de una interrupción software (trap) causada por un usuario. Proporcionan una interfaz de programación para invocar los servicios que ofrece el S.O. Normalmente tienen asociadas un número o índice para cada una de ellas, a partir del cual se mantiene una tabla indexada con las direcciones de las llamadas. Todas las anteriores.

S i se está ejecutando un mandato correspondiente a un editor de texto en modo texto como vi o emacs cuando se usa Ctrl-Z y posteriormente se ejecuta "bg": El mandato quedará planificado para volver a ejecutar el editor de textos cuando la carga del sistema lo permita. El mandato se ejecutará en primer plano, apareciendo de nuevo el editor de textos en la posición exacta en la que estaba cuando se pulsó Ctrl-Z. El mandato se ejecutará en primer plano y la Shell espera hasta su correcta finalización para mostrar el código de finalización del editor de textos. El mandato se ejecutará en segundo plano y la Shell no esperará a su finalización, imposibilitando entre otras cosas que se pueda salir del programa.

¿Cuántos procesos se crean en el siguiente fragmento de código? for (int i=0; i<3; i++) { pid = fork(); if (pid == 0) { exit(0); } }. 1, ya que al finalizar el padre por terminación en cascada se finalizaría su ejecución. 7. 3, creados cada uno por un proceso. 3, creados todos por el padre.

Denunciar Test