Deber Primer Bimestre

EJERCICIOS PROPUESTOS PRIMER BIMESTRE 1. La pre-obtención es un método para superponer la E/S de un trabajo con los cálc

Views 169 Downloads 24 File size 67KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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