Vous êtes sur la page 1sur 9

EJERCICIOS PROPUESTOS PRIMER BIMESTRE

1. La pre-obtención es un método para superponer la E/S de un trabajo


con los cálculos de ese mismo trabajo. La idea es sencilla. Una vez que
termina una operación de lectura y el programa está a punto de comenzar
a trabajar con los datos se pide al dispositivo de e ntrada que inicie la
siguiente lectura de inmediato. Así, tanto la CPU como el dispositivo de
entrada están ocupados. Con suerte, para cuando el programa esté listo
para el siguiente dato, el dispositivo de entrada ya habrá terminado de
leerlo. Entonces, la CPU puede comenzar a procesar el dato recién leído
mientras el dispositivo de entrada comienza a leer el siguiente dato. Se
puede utilizar una idea similar para la salida. En este caso, el programa
crea datos que se colocan en un buffer hasta que un disp ositivo de salida
pueda aceptarlos. Compare el esquema de pre-obtención con el spooling,
en el que la CPU superpone la entrada de un programa a los cálculos y la
salida de otros programas.

La pre-obtención es una actividad basada en el modo usuario, mientras que el


spooling es una actividad basada en el sistema.

El Spooling es una manera mucho más eficaz de la superposición de operaciones de


E/S y de la CPU.

2. Explique como la distinción entre modo de monitor y modo de usuario


sirve como una forma rudimentaria de sistemas de protección (seguridad).

Mediante el establecimiento de un conjunto de instrucciones privilegiadas que se


pueden ejecutar sólo en el modo monitor, el sistema operativo se asegura de
controlar todo el sistema en todo momento.

3. ¿Qué diferencia hay entre una trampa y una interrupción? ¿Para qué
sirve cada función?

Una interrupción es un cambio de flujo de hardware generado dentro del sistema.


Un controlador de interrupción es convocado para hacer frente al motivo de la
interrupción, el control se devuelve al contexto interrumpido y a la instrucción.

Una trampa es una interrupción generada de software. Una interrupción puede ser
utilizada para señalar la culminación de una E/S y obviar la necesidad de un sondeo
de dispositivo. Una trampa se puede utilizar para llamar a las rutinas del sistema
operativo, o para detectar errores aritméticos.

4. ¿Para qué tipos de operaciones resulta útil el DMA? Explique o


argumente su respuesta.

El DMA es útil para la transferencia de grandes cantidades de datos entre la


memoria y los dispositivos. Elimina la necesidad de que la CPU participe en la
Página |2

transferencia, lo que permite la transferencia se complete con mayor rapidez y la


CPU pueda realizar otras tareas al mismo tiempo.

5. ¿Cuáles de las instrucciones siguientes deberían ser privilegiadas?


a. Establecer el valor de un temporizador
b. Leer el reloj
c. Borrar la memoria
d. Desactivar las interrupciones
e. Cambiar de modo usuario a modo de monitor .

Las siguientes instrucciones deben ser privilegiadas:

a. Establecer el valor de un temporizador.

b. Borrar la memoria.

c. Desactivar las interrupciones.

d. Cambiar de usuario a modo monitor

6. Algunos sistemas de computación no cuentan con un modo de


operación privilegiado en hardware. Considere si es posible construir un
sistema operativo seguro para estos computadores. Presente argumentos
para ambos puntos de vista: que es posible y que no lo es.

a. El software de interpretación para todos los programas de usuario (como BASIC,


APL y LISP). El intérprete de software que proporciona, en software, haría lo que el
hardware no proporciona.

b. Requerir que todos los programas sean escritos en lenguajes de alto nivel para que
todo el código objeto sea producido por el compilador. El compilador generaría (ya
sea en línea o en las llamadas a funciones) los controles de protección que el
hardware no encuentra.

7. Alguno de los primeros computadores protegían el sistema operativo


colocándolo en una partición de memoria que no podía ser modificada ni
por los programas de usuario ni por el sistema operativo mismo. Describa
dos problemas que podrían surgir con semejante esquema.

Los datos requeridos por el sistema operativo (contraseñas, controles de acceso, la


información contable, etc.) tendrían que ser almacenados o pasar a través de la
memoria sin protección y por lo tanto serían accesibles a usuarios no autorizados.

8. La protección del sistema operativo es cruci al para asegurar que el


sistema de computación opere correctamente. Esta es la justificación del
funcionamiento en modo dual, la protección de memoria y el
temporizador. Sin embargo, con el objeto de maximizar la flexibilidad,
también nos gustaría reducir al mínimo las restricciones de los usuarios.
La que sigue es una lista de operaciones que normalmente están

Sistemas Operativos
Página |3

protegidas. Indique el conjunto mínimo de instrucciones que debe


protegerse:
a. Cambio al modo de usuario
b. Cambio al modo monitor
c. Lectura de la memoria del monitor
d. Escritura en la memoria del monitor
e. Obtener una instrucción de la memoria del monitor
f. Desactivar las interrupciones del temporizador
g. Activar las interrupciones del temporizador

El conjunto mínimo de instrucciones que deben ser protegidas son:

a. Cambio al modo monitor

b. Lectura de la memoria del monitor

c. Escritura en la memoria del monitor

d. Activar las interrupciones del temporizador

9. ¿Cuándo son útiles los caches? ¿Qué problemas resuelven? ¿Qué


problemas causan? Si una caché puede hacerse tan grande como el
dispositivo para el cual está agilizando la transferencia de información
(por ejemplo, un caché tan grande como un disco). ¿Por qué no hacerlo
de ese tamaño y eliminar ese dispositivo?

Las cachés son útiles cuando dos o más componentes necesitan intercambiar datos, y
los componentes transfieren a velocidades diferentes. Las cachés resuelven el
problema de transferencia, proporcionando un búfer de velocidad intermedia entre
componentes. Si el dispositivo rápido encuentra los datos que necesita en la caché,
no es necesario esperar al dispositivo más lento. Los datos de la caché deben
mantener coherencia con los datos de los componentes. Si un componente tiene un
cambio de valor en sus datos, y el dato también se encuentra en la caché, la memoria
caché también se debe actualizar. Esto es un problema en sistemas multiprocesador,
donde más de un proceso puede tener acceso a un dato. Un componente puede ser
eliminado por una caché de igual tamaño, pero sólo si: a) la caché y el componente
tienen una capacidad de almacenamiento equivalente (es decir, si el componente
retiene sus datos cuando se quita la electricidad, el cache debe retener los datos), y b)
la memoria caché es asequible, ya que la velocidad de almacenamiento tiende a ser
más cara.

10. La escritura de un sistema operativo que pueda operar sin


interferencia por parte de programas de usuarios mal intencionados o no
depurados requiere ayuda del hardware. Cite tres apoyos de hardware
para escribir un sistema operativo, y describa la forma en que podrían
usarse en conjunto para proteger el sistema.

a. Monitor / Modo de usuario

b. Instrucciones privilegiadas
Sistemas Operativos
Página |4

c. Temporizador

d. Protección de memoria

PROBLEMAS DE LA ESTRUCTURA DE UN SISTEMA OPERATIVO

11. Mencione las cinco actividades principales de un sistema operativo en


lo que concierne a la gestión de procesos .

La creación y supresión de los procesos de usuario y del sistema

La suspensión y la reanudación de los procesos

La provisión de mecanismos de sincronización de procesos

La provisión de mecanismos para el proceso de comunicación

El establecimiento de mecanismos para el manejo de estancamientos.

12. Mencione las 3 actividades principales de un sistema operativo en lo


que concierne a la gestión de memoria.

Llevar un registro de qué partes de la memoria están siendo utilizados y por quién.

Decidir cuáles son los procesos que se cargan en la memoria cuando el espacio de
memoria disponible.

Asignar y liberar espacio de memoria según sea necesario.

13. Mencione 3 actividades principales de un sistema operativo en lo que


concierne a la gestión de almacenamiento secundario .

Gestión del espacio libre.

Asignación de almacenamiento

Programación del Disco (Disk Sheduling)

14. Mencione 5 actividades principales de un sistema operativo en lo que


concierne a la gestión de archivos .

La creación y eliminación de ficheros

La creación y eliminación de directorios

El soporte de directivas para manipular archivos y directorios

El mapeado de los archivos en dispositivos de almacenamiento secundario

Las copia de seguridad de archivos importantes.


Sistemas Operativos
Página |5

15. ¿Para qué sirve el intérprete de ordenes? ¿Por qué generalmente está
separado del núcleo?

Lee los comandos del usuario o desde un archivo de comandos y los ejecuta, por lo
general, para convertirlos en una o más llamadas al sistema. Generalmente no es
parte del núcleo.

16. Liste cinco servicios que un sistema operativo presta. Explique cómo
cada uno ofrece comodidad a los usuarios, y también en que caso sería
imposible que programas en el nivel de usuario proporcionaran esos
servicios.

Ejecución de programas. El sistema operativo carga el contenido (o secciones) de un


archivo en la memoria y comienza su ejecución. Un programa a nivel de usuario no
podía ser confiable para localizarlo en tiempo de CPU.

Operaciones de E/S. Discos, cintas, y otros dispositivos deben ser comunicados con
un nivel muy bajo. El usuario sólo necesita especificar el dispositivo y la operación a
realizar en la misma, mientras que el sistema convierte esa petición en los comandos
del dispositivo o controlador específico. Los programas a nivel de usuario no son
confiables para acceder a los dispositivos, y sólo tener acceso a ellos cuando son, de
otra manera, no utilizados.

Manipulación del sistema de archivos. Hay muchos detalles en la creación de


archivos, asignación, eliminación, y nomenclatura que los usuarios no deberían tener
que realizar. Los bloques de espacio en disco son utilizados por los archivos y deben
ser rastreados. Eliminar un archivo requiere eliminar la información de nombre de
archivo y liberar los bloques asignados. Las protecciones también deben ser revisadas
para asegurar el acceso de archivo correcto. Los programas de usuario no pueden
garantizar los métodos de protección, ni son de confianza para asignar/cancelar la
eliminación de archivos, de esto se encarga el sistema operativo.

Comunicaciones. El paso de mensajes entre sistemas requiere que dichos mensajes


se conviertan en paquetes de información, ser enviados a la controladora de red, y
ser transmitidos a través de un medio de comunicación, y vuelto a leer en el sistema
de destino. La ordenación y corrección de paquetes debe llevarse a cabo. Una vez
más, los programas de usuario no pueden tener el acceso a los dispositivos de red, o
poder recibir los paquetes destinados a otros procesos.

Detección de errores. La detección de errores se produce tanto a nivel de hardware y


software. A nivel de hardware, todas las transferencias de datos deben ser
inspeccionadas para asegurar que los datos no han sido dañados durante la
transferencia. Todos los datos sobre medios deben ser revisados para asegurarse de
que no han cambiado desde que fueron escritos. A nivel de software, los medios
deben comprobar la consistencia de datos, por ejemplo, si el número de bloques
asignados y no asignados de almacenamiento coinciden con el número total en el
dispositivo. Aquí, los errores son frecuentes en procesos independientes (por
ejemplo, la corrupción de datos en un disco), así que debe haber un programa global
(sistema operativo) que se encargue de todos estos tipos de errores. Además, al

Sistemas Operativos
Página |6

tener, el sistema operativo, errores procesados, los procesos no necesitan tener


código para detectar y corregir todos los errores posibles en un sistema.

17. ¿Para qué sirven las llamadas al sistema?

Las llamadas al sistema permiten a los programas de usuario, solicitar servicios del
sistema operativo.

18. ¿Para qué sirven los programas del sistema?

Los programas del sistema pueden considerarse como útiles paquetes de llamadas al
sistema. Estos proporcionan la funcionalidad básica para los usuarios no tengan que
escribir sus propios programas para resolver problemas comunes.

19. Mencione la principal ventaja del enfoque de capas en el diseño de


sistemas

Al igual que en todos los casos de diseño modular, el diseño de un sistema operativo
de forma modular tiene varias ventajas. El sistema es más fácil de depurar y
modificar, ya que los cambios sólo afectan a sectores limitados del sistema en lugar
de tocar todas las secciones del sistema operativo. La información se mantiene sólo
donde se necesita y es accesible sólo dentro de un área definida y limitada, por lo
que cualquier error que afecte a los datos debe limitarse a un módulo específico o
una capa.

20. Mencione la ventaja principal, para un diseñador de sistemas


operativos, de utilizar una arquitectura de máquina virtual. ¿Cuál sería
la principal ventaja para un usuario?

El sistema es fácil de depurar, y los problemas de seguridad son fáciles de resolver.


Las máquinas virtuales también proporcionan una buena plataforma para la
investigación del sistema operativo, ya que muchos sistemas operativos diferentes se
pueden ejecutar en un sistema físico.

21. ¿Por qué la separación de mecanismo y política es una propiedad


deseable?

El mecanismo y la política deben estar separados para garantizar que los sistemas
sean fáciles de modificar. Ninguna de las dos instalaciones del sistema son las
mismas, porque cada instalación puede querer ajustar el sistema operativo para
adaptarlo a sus necesidades. Con los mecanismos y la política separados, la política
se puede cambiar a voluntad, mientras que el mecanismo se mantiene sin cambios.
Este acuerdo establece un sistema más flexible.

22. Considere el sistema operativo experimental Synthesis, que tiene un


ensamblador incorporado al núcleo. A fin de optimizar el desempeño de
las llamadas al sistema, el núcleo en sambla rutinas dentro de su propio
espacio para minimizar el trayecto que la llamada al sistema d ebe seguir a
través del núcleo. Este enfoque es la antítesis del de capas, en el que el
camino a través del núcleo se extiende a fin de facilitar la construcción
Sistemas Operativos
Página |7

del sistema operativo. Comente el pro y el contra de este enfoque de


diseño del núcleo y de optimización del desempeño del sistema.

Synthesis es impresionante debido a la compilación “al vuelo” (on the fly).


Desafortunadamente, es difícil depurar problemas en el núcleo debido a la fluidez
del código. Además, dicha compilación es específica para ese sistema, haciendo de
“Synthesis” no portable (Una nueva compilación sería necesaria para cada
arquitectura.

PROCESOS:

23. Varios sistemas operativos de microcomputador populares ofrecen


poco o ningún soporte del procesamiento concurrente. Comente las
principales complicaciones que el procesamiento concurrente añade a un
sistema operativo.

Un método de tiempo compartido debe ser implementado para permitir a cada uno
de los procesos tener acceso al sistema. Este método implica el sobreseimiento de los
procesos que no renuncian voluntariamente a la CPU (mediante una llamada al
sistema, por ejemplo) y el núcleo se ralentiza (pues más de un proceso puede estar
ejecutando código del núcleo al mismo tiempo).

Los procesos y los recursos del sistema deben tener las protecciones y se deben
proteger el uno del otro. Cualquier proceso debe ser limitado en la cantidad de
memoria que puede utilizar y las operaciones que puede realizar en dispositivos
como los discos.

Se debe tener cuidado en el núcleo para evitar puntos muertos entre procesos, para o
que los procesos no están a la espera de los demás recursos asignados.

24. Describa las diferencias entre las planifica ción a corto plazo, mediano
y largo plazo.

A corto plazo: Selecciona trabajos en memoria, dichos trabajos deben estar listos
para ejecutarse, y, entonces se asigna la CPU a éstos.

A medio plazo: Utilizados especialmente en sistemas de tiempo compartido como un


nivel intermedio de programación. Un esquema de intercambio se lleva a cabo para
eliminar los programas de ejecución parcial de la memoria y restablecer más tarde
para continuar donde se quedaron.

A largo plazo: Determina qué trabajos se ponen en la memoria para su


procesamiento.

La principal diferencia está en la frecuencia de su ejecución. El corto plazo debe


seleccionar un nuevo proceso con bastante frecuencia. A largo plazo se utiliza con
menos frecuencia, ya que se encarga de colocar trabajos en el sistema, y podría
esperar un tiempo por un trabajo, antes de que se admita a otro.

Sistemas Operativos
Página |8

25. Un computador DECSYSTEM-20 tiene múltiples conjuntos de


registros. Describa las acciones de una conmutación de contexto si el
contexto nuevo ya está cargado en uno de los conjuntos de los registros.
¿Qué más debe suceder si el contexto nuevo está en la memoria, no en un
conjunto de registros, y todos los conjuntos de registros están ocupados?

El puntero actual registro de la CPU se cambia al puntero que contiene el nuevo


contexto, que lleva muy poco tiempo. Si el contexto está en la memoria, uno de los
contextos en un conjunto de registro debe ser elegido y ser trasladado a la memoria,
y el nuevo contexto se debe cargar de la memoria en el sistema. Este proceso toma
un poco más de tiempo que en sistemas con un conjunto de registros.

26. Cite las dos ventajas que tienen los hilos sobre los procesos múltiples.
¿Qué desventaja importante tienen ? Sugiera una aplicación que se
beneficiaría del uso de hilos y una que no se beneficiaría.

Los hilos son muy baratos al crearlos y destruirlos, y utilizan muy pocos recursos,
mientras existen. Tienen tiempo de uso de CPU por instantes, pero no tienen
espacios de memoria separados. Desafortunadamente, los hilos deben sincronizarse
entre sí para no dañar los datos compartidos. Cualquier programa que pueda hacer
más de una tarea a la vez, podría beneficiarse de la multitarea. Por ejemplo, un
programa que lee la entrada, la procesa, y la presenta tiene tres hilos, uno para cada
tarea.

27. ¿Qué recursos se consumen cuando se crea un hilo? ¿En que difieren
de los que se consumen cuando se crea un proceso?

Un contexto debe ser creado, incluyendo un conjunto de registros de instrucciones


para el almacenamiento durante el intercambio de contexto, una pila local para
registrar los argumentos de llamada al procedimiento, los valores de retorno, las
direcciones de retorno, y el almacenamiento local de subprocesos. La creación de un
proceso resulta en que la memoria es asignada para las instrucciones de programa y
datos, así como el almacenamiento en forma de hilo. El código también se puede
cargar en la memoria asignada.

28. Describa las acciones del núcleo cuando conmuta el contexto:


a. Entre hilos
b. Entre procesos

a. El contexto del hilo ha de ser guardado (registros y cuentas si se da el caso), y el


contexto de otro subproceso debe ser cargado.

b. Lo mismo que (a), más el contexto de memoria se deben almacenar, y el del


siguiente proceso se debe cargar.

29. ¿Qué diferencia hay entre los hilos en el nivel de usuario y los
apoyados por el núcleo? ¿En qué circunstancias es un tipo “mejor” que el
otro?

Sistemas Operativos
Página |9

Los hilos a nivel de usuario no tienen el soporte del núcleo, por lo que son muy
fáciles de crear, destruir y cambiar entre sí. Sin embargo, si uno se bloquea, todos los
hilos lo harán.

Los hilos del núcleo son más caros porque las llamadas al sistema son necesarias
para crear y destruir, entonces el núcleo debe programarse. Estos hilos son más
poderosos, porque son programados de forma independiente y pueden bloquearse de
forma individual.

Sistemas Operativos