Anda di halaman 1dari 5

Sistemas Operativos I

Solución Primer Parcial


Ingeniería en Informática
Fecha: 23/05/2015
Total: 100 puntos - Mínimo de aprobación: 40 puntos
Duración: 3 horas - sin material de consulta
Ejercicio 1 (40 puntos)
Indique la respuesta correcta. Solo hay una respuesta correcta, en caso de existir más de una
opción correcta, seleccionar la opción que las agrupa.
1) Para que la traducción o interpretación sea práctica, los lenguajes L0 y L1 deben:
a) No ser muy diferentes.
b) Ser demasiado diferentes.
c) Ser iguales.
d) Ninguna de las anteriores.
2) En la arquitectura de la máquina de Von Neumman:
a) Sus componentes estaban interconectados a través de un bus.
b) La memoria tenía 1024 palabras de 20 bits cada una.
c) Cada palabra podía contener dos instrucciones o un entero con signo.
d) Ninguna de las anteriores.
3) Los SO realizan tareas básicas como:
a) Reconocimiento de la conexión de mouse, teclado, etc.
b) Enviar información a la pantalla.
c) Gestionar archivos y directorios en el disco.
d) Todas las anteriores.
4) Estados de un Proceso:
a) Los estados Listo y Ejecución son los dos estados posibles de un Programa en ejecución.
b) El estado Listo es el estado inicial de un Proceso.
c) Un proceso está en estado Listo, si está esperando que se le asigne tiempo de CPU.
d) Todas las anteriores.
5) Un hilo de ejecución de un proceso:
a) Siempre comparte datos con hilos de otros procesos.
b) Comparte el espacio de direcciones con otros hilos del mismo proceso.
c) Puede quedar residente en memoria luego de finalizado el proceso que lo contenía.
d) Las opciones a) y b).
6) Para tener una solución adecuada a la exclusión mutua, los procesos deben cumplir:
a) Nunca dos procesos pueden encontrarse simultáneamente en sus secciones críticas.
b) No se hacen suposiciones acerca de las velocidades relativas de los procesos o del
número de CPU.
c) Ningún proceso suspendido fuera de la sección crítica debe bloquear a otros procesos.
d) Todas las anteriores.
7) En los hilos:
a) Es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un
proceso a otro.
b) Es propio de cada hilo el contador de programa, el stack o pila de ejecución y el estado de
la CPU.
c) Son independientes entre sí, e interactúan solo a través de mecanismos de comunicación
dados por el sistema operativo.
d) Las opciones a) y b).

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa
1
2 Sistemas Operativos I – Solución Primer Parcial Curso 2015

8) Referente al uso de los recursos, es menos restrictivo la implementación de:


a) La prevención que la evasión de bloqueos.
b) La detección que la evasión de bloqueos.
c) La prevención que la detección de bloqueos.
d) Ninguna de las anteriores.
9) Son algoritmos de planificación:
a) Long Job First (LJF).
b) Last In First Out (LIFO).
c) Round Robin.
d) Todas las anteriores.
10) Cada dispositivo de E/S contiene:
a) Un controlador.
b) Un driver.
c) El propio dispositivo de E/S.
d) Las opciones a) y c).

Ejercicio 2 (60 puntos)


Responda las siguientes preguntas:
1. ¿Qué es una máquina virtual? Describa una máquina multinivel contemporánea.
Solución:
Una Máquina Virtual es una computadora hipotética que nos permite programar en un lenguaje
de nivel superior al lenguaje de la máquina real.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa
2
Sistemas Operativos I – Solución Primer Parcial Curso 2015 3

2. Describa los componentes de la máquina de Von Neuman y su funcionamiento.


Solución:
La máquina tenía cinco componentes o partes básicas: memoria, unidad artmético lógica,
unidad de control y dispositivo de entrada y salida. La memoria constaba de 4096 palabras,
cada una de las cuales contenía 40 bits que podían ser 0 o 1. Cada palabra contenía dos
instrucciones de 20 bits o bien un entero con signo de 40 bits. Ocho bits de cada instrucción
estaban dedicados a indicar el tipo de instrucción y 12 bits se dedicaban a especificar una de
las 4096 palabras de memoria. Dentro de la unidad de aritmética lógica había un registro interno
especial de 40 bits llamado acumulador. Una instrucción típica sumaba una palabra de la
memoria al acumulador o almacenaba el contenido del acumulador en memoria.

3. ¿Qué es un bus de datos? ¿Cuántos buses de datos tienen los sistemas computacionales?
¿Cuál es la función de cada uno?
Solución:
El bus de datos es un sistema digital que permite conectar y comunicar los distintos
componentes de la computadora (CPU, memoria, almacenamiento secundario y dispositivos de
E/S). Casi todos los sistemas tienen dos o más buses:
• Frontside bus - Bus principal, comunica el procesador con la memoria y los buses
periféricos.
• Backside bus - Comunica en forma exclusiva, el procesador con la memoria.
• Bus periférico - Comunica los distintos dispositivos de E/S con el bus principal.
4. ¿Qué es un proceso? ¿Qué se define en el sistema operativo para manipular información de un
proceso? ¿Qué información del proceso se almacena?
Solución:
Un proceso es un programa en ejecución. Cada proceso tiene asociado un espacio de
direcciones de memoria, en el cual se almacenan, el programa ejecutable, los datos del
programa y su pila o stack. También hay asociados a cada proceso un conjunto de recursos
(registros- contador de programa; puntero a la pila entre ellos, lista de archivos abiertos, lista de
procesos relacionados).
El sistema operativo crea para cada proceso una estructura que agrupa toda la información que
el sistema operativo necesita conocer respecto a un proceso particular. A esta estructura se la
llama Bloque de Control del Proceso (PCB, sus siglas en inglés).
Información del PCB:
• Identificador del proceso (process identificator – PID, son sus siglas en inglés).
• Estado del proceso - ej: listo, en espera, bloqueado.
• Contador de programa - dirección de la próxima instrucción a ejecutar.
• Valores de registros de CPU. Se utilizan en el cambio de contexto.
Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa
3
4 Sistemas Operativos I – Solución Primer Parcial Curso 2015

• Espacio de direcciones de memoria.


• Prioridad según el algoritmo de planificación de CPU.
• Lista de recursos asignados (incluyendo descriptores de archivos y puertos abiertos).
• Estadísticas del proceso.
• Datos del propietario (owner).
• Permisos asignados.
5. ¿Qué es un hilo? ¿Cuáles son sus características? Dar un ejemplo de una aplicación que use hilos.
Solución:
Un hilo de ejecución, es la unidad de procesamiento más pequeña que puede ser planificada
por un sistema operativo. Permite a una aplicación o proceso realizar varias tareas a la vez (en
forma concurrente). Los distintos hilos de ejecución comparten una serie de recursos tales
como el espacio de memoria, los archivos abiertos, autenticación, etc. Esta técnica permite
simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones
simultáneamente.
Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en
conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo
proceso compartan los recursos hace que cualquiera de estos hilos pueda modificarlos. Es
propio de cada hilo el contador de programa, el stack o pila de ejecución y el estado de la CPU
(incluyendo los valores de los registros). El proceso sigue en ejecución mientras al menos uno
de sus hilos de ejecución siga activo. En el momento en el que todos los hilos de ejecución
finalizan, el proceso no existe más y todos sus recursos son liberados.
Los hilos se distinguen de los tradicionales procesos en que los procesos son independientes
entre sí, e interactúan solo a través de mecanismos de comunicación dados por el sistema.
Generalmente muchos hilos comparten recursos de forma directa. En muchos de los sistemas
operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del
mismo proceso, que cambiar de un proceso a otro. Este característica se debe a que los hilos
comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes,
no lo hacen.
Ejemplo de aplicación que utiliza hilos - aplicación de planilla electrónica:
• Hilo 1: Interfaz para ingreso de datos y visualización de los mismos.
• Hilo 2: programa que realiza los cálculos de las fórmulas establecidas en la planilla.
• Hilo 3: Respaldo automático de los datos que manipula la planilla.
6. ¿Qué es un deadlock? ¿Cuáles son las condiciones necesarias para que se produzca?
Solución:
Si un conjunto de procesos esta en estado de espera por recursos y nunca cambia de estado
porque los recursos por los que espera estan siendo utilizados por otros procesos en estado de
espera tenemos un deadlock. Si se presentan simultáneamente las cuatro siguientes
condiciones el sistema esta en deadlock:
• Exclusión mutua: Por lo menos un proceso que tenga otorgado un recurso en forma
exclusiva.
• Uso y espera: Debe existir al menos un proceso que este haciendo uso de un recurso y
que este esperando por otros recursos asignados a otros procesos.
• No interrupción: Los recursos no pueden ser retirados al proceso. Si un proceso hace uso
de un recurso no le podra ser retirado hasta que voluntariamente el proceso lo libere.
• Espera circular: Debe existir un conjunto de procesos {P1 ..... Pn} tal que P1 espera por
un recurso utilizado por P2, ......, Pn espera por un recurso utilizado por P1.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa
4
Sistemas Operativos I – Solución Primer Parcial Curso 2015 5

7. ¿Cuáles son las áreas en la investigación de bloqueos? Describir una de ellas indicando una
estrategia aplicada en esa área.
Solución:
Las 4 áreas de investigación de bloqueos son:
• Prevención de bloqueos.
• Evasión de bloqueos.
• Detección de bloqueos.
• Recuperación de bloqueos.
Describimos en detalle la primera de ellas: Prevención de bloqueos.
La estrategia consiste en anular alguna de las cuatro condiciones necesarias para que se
produzca un bloqueo:
• Exclusión mutua: No puede ser anulada porque existen recursos que deben ser
usados en modalidad exclusiva.
• Uso y espera: La alternativa sería hacer que todos los procesos solicitaran todos los
recursos que habrán de utilizar antes de utilizarlos al momento de su ejecución lo cual
seria muy ineficiente.
• No interrupción: Para anular esta condición cuando un proceso solicita un recurso y este
es negado el proceso deberá liberar sus recursos y solicitarlos nuevamente con los
recursos adicionales. Hay que tener en cuenta que hay recursos que no pueden ser
interrumpidos.
• Espera circular: Consiste en que el sistema operativo numere en forma exclusiva los
recursos y obligue a los procesos a solicitar recursos en forma ascendente. El problema
de esta implementación es que limita a la aplicación.
8. ¿En qué consiste la planificación de CPU? Describir dos algoritmos de planificación de CPU.
Solución:
Consiste en un algoritmo del sistema operativo que determina que proceso hará uso de la CPU.
El objetivo general de un algoritmo de scheduling es el de distribuir el trabajo llevado a cabo por
el sistema maximizando en alguna medida la satisfacción del usuario. Describimos dos
algoritmos a continuación de tiempo compartido:
• Mecanismo Round-Robing (robo de ciclos): Está especialmente diseñado para
sistemas en tiempo compartido. Se trata de asignar un determinado tiempo para la
ejecución de cada proceso.(quantum de tiempo). Suele tener un valor entre 10 y 100
milisegundos. Es un mecanismo de bajo nivel. Cuando se interrumpe un proceso pasa a
la cola de espera.
• Algoritmo de expulsión anticipada (preemption): Consiste en quitar el tiempo de
procesador a un proceso cuando llega otro con “más derecho”. Dados dos procesos, uno
fuera con 10 segundos de tiempo presupuestado y otro ejecutándose con 15 segundos
de tiempo presupuestado, si el tiempo de ejecución es de 3 segundos, el proceso es
expulsado anticipadamente. En cambio, no sucedería si hubiera consumido 8 seg.

Este material es de uso exclusivo para los cursos impartidos por Universidad de la Empresa
5

Anda mungkin juga menyukai