Está en la página 1de 5

Primer Certamen ELO321 18/04/2017

Teoría de Sistemas Operativos


Nombre: ...............................Pauta............................... RUT:................................

Parte I (30 puntos)


(Correcta 2 punto, incorrecta -0,5, omitida 0 punto)

1. Qué es un Sistema Operativo?


a) Hardware de la computadora. que actúa como intermediario del usuario.
b) Un programa que actúa como intermediario entre un usuario de una computadora y el
hardware de la computadora.
c) Programas de usuario y facilitar la solución de problemas de usuario.
d) Hardware que proporciona recursos informáticos básicos.

2. El sistema informático se puede dividir en los siguientes componentes:

a) Hardware, Sistema operativo, Programas de aplicación y Usuarios


b) Hardware, Sistema operativo, Programas de aplicación y Servidores
c) Hardware, Firmware Sistema operativo y Programas de aplicación.
d) Sistema operativo, Programas de aplicación y Usuarios

3. En la Operación del Sistema Computacional:


a) Cada controlador de dispositivo no tiene un búffer.
b) Un sistema operativo es controlado por pooling.
c) Los dispositivos de E/S y la CPU pueden ejecutarse simultáneamente.
d) Las interrupciones son atendidas por los mismos controladores..

4. Timesharing (multitasking) es:


a) Posibilidad que los usuarios pueden interactuar con cada trabajo mientras se está
ejecutando.
b) Extensión física en la que la CPU cambia los trabajos con tanta frecuencia que los
usuarios pueden interactuar con cada trabajo mientras se está ejecutando.
c) Extensión lógica en la que la CPU pueden interactuar con cada trabajo mientras se está
ejecutando.
d) Extensión lógica en la que la CPU cambia los trabajos con tanta frecuencia que los
usuarios pueden interactuar con cada trabajo mientras se está ejecutando.

5. Un Proceso:
a) Es un programa en ejecución.
b) Es una entidad pasiva.
c) Ejecuta las instrucciones paralelamente.
d) Son solo del sistema operativo.
Primer Certamen ELO321 18/04/2017
Teoría de Sistemas Operativos
Nombre: ...............................Pauta............................... RUT:................................

6. Llamada a Sistema:
a) Se accede principalmente a los programas a través del Sistema Operativo.
b) Se accede principalmente a los programas a través de una Interfaz de Programación de
Aplicación (API)
c) Se accede principalmente a los programas a través del Kernel
d) Solo accede a los programas a través una máquina Virtual.

7. Tres métodos generales utilizados para pasar parámetros al sistema operativo:


a) Parámetros en los registros, parámetros en dispositivo I/O y parámetros colocados o
empujados en la pila.
b) Parámetros en los registros, Parámetros almacenados en memoria y Parámetros
colocados o empujados en la pila.
c) Parámetros en los registros, parámetros en dispositivo I/O y parámetros en interfaz de
red.
d) Parámetros en dispositivo I/O, parámetros colocados o empujados en la pila y parámetros
en interfaz de red.

8. Programa se convierte en proceso cuando:


a) El archivo ejecutable se compila.
b) El archivo ejecutable se almacena en disco.
c) El archivo ejecutable se carga en la memoria.
d) El archivo ejecutable se cargas sus datos.

9. Los estado de un proceso son:


a) New, Running, Waiting, Stop y Terminated.
b) New, Running, Waiting, Ready y Terminated.
c) New, Running, Waiting, Suspend y Terminated.
d) New, Running, Waiting y Terminated.

10. El bloque de control de procesos (PCB) tiene información sobre:


a) Estado de dispositivos de I/O, contador de programa y registros del la CPU.
b) Estado del proceso, contador de programa, registros del la CPU entre otros.
c) Estado del proceso y registros del la CPU.
d) Solo el estado del proceso.
Primer Certamen ELO321 18/04/2017
Teoría de Sistemas Operativos
Nombre: ...............................Pauta............................... RUT:................................

11. El Planificador de procesos:


a) Genera archivos de registro que contienen información de error.
b) Proporciona el sistema de archivos, programación de CPU, administración de memoria y
otras funciones.
c) Intercambia información, en la misma computadora o entre computadoras a través de una
red
d) Selecciona entre los procesos disponibles para la siguiente ejecución en la CPU

12. En un cambio de Contexto, cuando la CPU cambia a otro proceso:


a) El sistema solo debe cargar el estado guardado para el nuevo proceso
b) Contexto de un proceso se representa en el PCB
c) El sistema solo ejecuta el nuevo proceso.
d) Genera un nuevo proceso hijo.
13. En la creación de un proceso se puede hacer uso de la llamada a sistema fork():
a) Los padres y los hijos comparten algunos los recursos.
b) Los padres y los hijos ejecutan simultáneamente.
c) Hijo no es el duplicado del padre.
d) El padre solo puede crear un solo hijo.

14. Los Hilos en Java pueden crearse mediante:


a) La implementación de la interface Thread.
b) La implementación de la interface Runnable y/o extendiendo la clase Thread.
c) La implementación de la interface Thread y/o extendiendo la clase Runnable.
d) Extendiendo la clase Runnable.

15. Con respecto a Hilos indique cual es falsa:


a) Los kernels son generalmente multihilos
b) La creación de hilos es ligera que los procesos.
c) Puede simplificar el código, aumentar la eficiencia
d) Los hilos se ejecutan fuera de la aplicación.
Primer Certamen ELO321 18/04/2017
Teoría de Sistemas Operativos
Nombre: ...............................Pauta............................... RUT:................................

Parte II (10 Puntos)


¿Qué recursos se utilizan cuando se crea un Proceso? ¿Cómo difieren de los utilizados cuando se
crea un hilo?

Respuesta:

La creación de un proceso requiere la asignación de un bloque de control de proceso (PCB),


una estructura de datos bastante grande. El PCB incluye un mapa de memoria, una lista de
archivos abiertos y variables de entorno. La asignación y gestión del mapa de memoria suele
ser la actividad que consume más tiempo.

Crear un hilo de usuario o de kernel implica asignar una estructura de datos pequeña para
contener un conjunto de registros, pila y prioridad.

Parte III (20 puntos)


Implemente en Lenguaje Java un hilo que tenga como parámetro un número entero y que
la salida a consola muestre la suma de todos los enteros hasta el número indicado por el
parámetro. Luego genere el código para levantar tres hilos con los parámetros 3,6 y 7
respectivamente. Utilice los prototipos siguientes:

Solución:
class MiHilo implements Runnable { public class Hilos {
private int numero; public static void main(String[] args) {
Thread hilo1 = new Thread(new MiHilo(3));
public MiHilo(int numero){ Thread hilo2 = new Thread(new MiHilo(5));
this.numero = numero; Thread hilo3 = new Thread(new MiHilo(6));
}
hilo1.start();
public void run() { hilo2.start();
int sum = 0; hilo3.start();
for (int i = 0; i <= numero; i++) }
sum += i; }
System.out.println(
"Suma numero: " + numero + ":" + sum);
}

} 10 puntos 10 Puntos
Primer Certamen ELO321 18/04/2017
Teoría de Sistemas Operativos
Nombre: ...............................Pauta............................... RUT:................................

Parte IV (40 puntos)


Dado el siguiente código en donde se utiliza la llamada a sistema fork() para generar nuevos
procesos y su resultado:
#include <sys/types.h> Salida al ejecutar el código
#include <stdio.h>
#include <unistd.h> Proceso:0 PID_1 8376, PID_2: 8375
int main() Proceso:1 PID_1 8377, PID_2: 8376
{ Proceso:2 PID_1 8378, PID_2: 8377
pid_t pid[3]; Hijo Completado
int e; Hijo Completado
Proceso:2 PID_1 8379, PID_2: 8376
for(e = 0; e < 3; e++) { Hijo Completado
pid[e] = fork(); Hijo Completado
Proceso:1 PID_1 8380, PID_2: 8375
if (pid[e] < 0) { Proceso:2 PID_1 8381, PID_2: 8380
fprintf(stderr, "Fork Falla\n"); Hijo Completado
return 1; Hijo Completado
} Proceso:2 PID_1 8382, PID_2: 8375
else if (pid[e] == 0) { Hijo Completado
printf("Proceso:%d PID_1 %d, PID_2: %d\n", e, getpid(), getppid());
}
else {
wait(NULL);
printf("Hijo Completado\n");
}
}
return 0;
}

a) Qué entrega las llamadas getpid() y getppid()


getpid() entrega el identificador de proceso actual (5 puntos)
getppid() entrega el identificador de proceso padre (5 puntos)

b) Explique brevemente porqué aparecen solo un “Proceso 0…”, dos “Proceso 1...” y cuatro
“Proceso 2 ...” en la salida de la ejecución.
La llamada fork(9 se encuentra ubicada en un bucle for para e igual a 0,1,2. Por cada
iteración hay una llamada fork que crea un proceso hijo desde ese punto. La iteración e= 0
el proceso padre( salida Proceso 0) e hijo continua con e igual a 1,2(dos salida Proceso 1,
Proceso 2); para e igual a 1 proceso padre e hijo continua con e igual a 2 (dos salidas
Proceso 2 ). (15 Puntos)

c) A partir de la salida construya un árbol de procesos. (15 puntos)


PID
8375

PID PID
8376 8382
PID
PID 8380
8377
PID PID
PID 8379 8381
8378

También podría gustarte