Respuesta a Ejercicios Libros

Capítulo 3 Estructuras de un sistema operativo 2.1 Cual es el propósito de las llamadas de sistema? R: Las llamadas de s

Views 128 Downloads 0 File size 405KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • PIO
Citation preview

Capítulo 3 Estructuras de un sistema operativo 2.1 Cual es el propósito de las llamadas de sistema? R: Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento de servicios del sistema operativo 2.2 Cuales son las 5 principales actividades de un sistema operativos en lo que concierne la gestión de procesos. R: a. b. c. d.

La creación y la eliminación de tanto usuario u procesos de sistema La suspensión y la reanudación de procesos La provisión de mecanismos para procesos de sincronización La provisión de mecanismos para el manejo de deadlock

2.3 Cuales son las tres principales actividades de un sistema operativo en lo que concierne el manejo de memoria. R. a. . Mantiene registro de las partes de la memoria que están siendo actualmente utilizadas. b. Decide cuales son los procesos que van a ser cargados en la memoria cuando el espacio de memoria pase a estar disponible. c. Asigna y des-asigna espacios de memoria a medida que sean necesarios. 2.4 Cuales son las tres principales actividades de un sistema operativo concerniendo el manejo del almacenamiento secundario: R: a. Manejo de espacio disponible b. Asignación de almacenamiento c. Programación (Scheduling) de disco 2.5 Para qué sirve el interprete de órdenes? ¿Por qué está generalmente separado del núcleo? R: Lee los comandos desde el usuario desde un archivo de comandos y los ejecuta, generalmente convirtiéndolos en más de una llamada a sistema. Generalmente no es parte del kernel debido a que el intérprete de órdenes está sujeto a cambios.

2.9 Liste 5 servicios provistos por el sistema operativo. Explique cómo cada uno provee conveniencia al usuario. Explique también los casos en los cuales sería imposible para los programas a nivel de usuario proveer estos servicios.

R: a. Ejecución de programas. EL sistema operativo carga los contenidos (o secciones) de un archivo en la memoria y comenzar su ejecución. Un programa a nivel usuario no podría ser confiado para asignar correctamente el tiempo de CPU. b. Operaciones de E/S Discos, cintas, líneas seriales y otros dispositivos que deben ser comunicados con un muy bajo nivel. El usuario necesita solamente especificar el dispositivo y la operación para operar en el, mientras el sistema convierte ese requerimiento en el dispositivo o en los comandos específicos de controladores. Programas a nivel de usuario no pueden ser confiados en el acceder solamente a los dispositivos, estos deberían tener accesos solamente cuando no están en uso. c. Manipulación de archivos-sistemas. Existen muchos detalles en la creación de archivos, la eliminación de archivos, asignación y nombrar estos archivos. Estas acciones los usuarios no deberían realizar. Bloques de espacio de discos son utilizados por archivos y deberían ser rastreados. Eliminar un archivos requiere remover el nombre del archivos de información y liberar los bloques asignados. Las protecciones pertinentes también deben ser revisadas para asegurar un debido acceso a archivos. Los programas a nivel de usuario no podrían ni asegurar métodos de protección ni tampoco podrían ser confiados en asignar bloques libres ni tampoco reasignar bloques de eliminación de archivos. d. Comunicación: Mensajes que se transmiten entre sistemas requieren que estos mismos sean convertidos en paquetes de información, enviados desde el controlador de red, transmitido a través de medios de comunicación y re ensamblados por sistemas de destinación. La orden de paquetes y datos de corrección pueden tomar lugar. Nuevamente, programas a nivel de usuario pueden no coordinar el acceso al dispositvo de red, o bien pueden recibir paquetes destinados para otros propósitos. e. Detección de errores: La detección de errores ocurre tanto a niveles de hardware y software. A nivel de hardware, todos los datos transferidos deben ser inspeccionados para asegurar los que estos datos no hayan sido corrompidos en el tránsito. Todos los medios de datos deben ser chequeados para asegurarse de que no cambien desde que estos fueron escritos en el medio. En el nivel de software, los medios deben ser chequeados para encontrar consistencia de datos, por ejemplo, tanto si los números de asignación y desasignación de bloques de almacenamiento coincida con el total de números en el dispositivo. En estos casos, los errores son frecuentemente independientes del proceso (como por ejemplo la corrupción de datos en un disco),es por esto que debe existir un programa global (el sistema operativo) que maneja los tipos de errores. También, por tener errores de procesos por el sistema operativo, los procesos no deben contener código para captar y corregir todos los posibles errores en un sistema.

2.10 ¿Para qué sirven las llamadas de sistema? R. Las llamadas de sistema permiten a los procesos a nivel de usuario hacer un requerimiento de servicios del sistema operativo.

2.11 Cuales son las principales ventajas del enfoque del micro-kernel al sistema? R: Los beneficios típicamente incluyen: a. Agregar un nuevo servicio no requiere modificar el kernel. b. Es más seguro mientras más operaciones se realizan en modo usuario que en modo Kernel. c. Un diseño y una funcionabilidad más simple típicamente conlleva a un sistema operativo más confiable. 2.12 ¿Por qué algunos sistemas operativos se almacenan en el sistema de firmware y otros en discos? R. Para algunos dispositivos, como celulares, un disco con un sistema de archivos puede no estar disponible para el dispositivo. En esta situación, el sistema operativo debe ser almacenado en firmware.

Capítulo 4: Procesos 4.1 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. R. – Un método de tiempo compartido debe ser implementado para permitir a cada proceso a tener acceso al sistema. Este método involucra el derecho a prioridad a procesos que no voluntariamente dejarían de utilizar la CPU (Utilizando llamados a sistema) y el Kernel volviendo a entrar (Más de un proceso puede estar ejecutando código kernel concurrentemente) - procesos y recursos del sistema deben tener protección y deben estar protegidos de cada uno. Cualquier proceso dado debe estar limitado en la cantidad de memoria que puede usar y las operaciones que puede realizar en los dispositivos como discos - Se debe tener cuidado en el kernel para prevenir deadlocks entre procesos, para que los procesos no estén esperando los recursos asignados entre si. 4.2 Describa las diferencias entre la planificación a corto plazo, mediano plazo y largo plazo. R. -Corto plazo (Planificador de CPU (CPU scheduler)- Selecciona desde trabajos en memoria, aquellos trabajos que están listos para ejecutar, y asigna la CPU a ellos. -Mediano plazo. Utilizado especialmente con sistemas de tiempo compartido como un organizador de nivel intermedio. Un esquema de swapping es implementado para renovar parcialmente programas que estén corriendo en la memoria y reinstaurarlos más tarde para continuar donde quedaron. -Largo plazo (Planificador de trabajo (Job Scheduler))- Determina cuales trabajos son llevados a la memoria para ser procesados. 4.3 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 registros. ¿Qué más debe suceder si el contexto nuevo está en la memoria, no en un conjunto de registro, y todos los conjuntos de registro están ocupados? R. El registro actual de punteros de la CPU es cambiado para apuntar al set que contenga el nuevo contexto, el cual toma muy poco tiempo. Si el contexto está en memoria, uno de los contextos en el set de registros debe estar escogido y movido en la memoria, y el nuevo contexto debe estar cargado desde la memoria al set. Este proceso lleva más tiempo que en los sistemas con un solo set de registro, dependiendo en cómo un objetivo a ser reemplazado es escogido. 4.4 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.

R. Los hilos son muy baratos de crear y destruir, además de que utilizan muy pocos recursos mientras existen. Sin embargo, si utilizan tiempo de CPU, pero no tienen espacios de memoria completamente separados. Desafortunadamente hilos tienen que “confiar” entre ellos para no dañar datos compartidos. Por ejemplo, un hilo podría destruir datos que todos los demás hilos podrían depender, mientras que el mismo no podría ocurrir entre procesos a no ser que haya utilizado una función del sistema que les permita compartir datos. Cualquier programa que pueda hacer más de una tarea a la vez podría beneficiarse de la multitarea. Por ejemplo, un programa que lea dispositivos de entrada, los procese y los “libere” podría tener 3 hilos, uno para cada tarea. Procesos “de una sola forma de pensar” no podrían beneficiarse de multiples hilos; por ejemplo, un programa que muestre la hora del día. 4.5 ¿Qué recursos se consumen cuando se crea un hilo? ¿En qué difieren de los que se consumen cuando se crea un proceso? R. Un contexto debe ser creado, incluido un registro de un set direcciones de almacenamiento durante cambios de contexto, y un stack local para registrar los procedimientos de llamada de argumentos, retornar valores, retornar direcciones y el almacenamiento local de hilos. Un proceso de creación resulta en memoria siendo asignado para programas de instrucciones y datos, como también almacenamiento de hilos. El código también puede ser asignado en memorias asignadas. 4.6 Describa las acciones del núcleo cuando conmuta el contexto a. Entre hilos b. Entre procesos. R. a. El contexto entre hilos debe ser salvado (Registro y contabilidad en caso de ser apropiado), y otros contextos de hilos también tienen que ser cargados. b. Lo mismo que en a, pero también se agrega que el contexto de memoria debe ser almacenado y el del proceso siguiente debe ser cargado. 4.7 ¿Qué diferencias 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? R. Los hilos a nivel de usuario no tienen soporte del kernel, por lo tanto son muy baratos de crear, destruir y hacerles “switch”. Sin embargo, si uno se bloquea, todo el proceso se bloquea también. Los hilos que tienen soporte del kernel son más caros debido a que se necesita una llamada al sistema para que puedan ser creados y destruidos y el kernel debe programarlos. Son más poderosos porque son programados y bloqueados individualmente. 4.8 el algoritmo de productores y consumidores correcto que se presentó en la sección 4.4 sólo permite que n-1 buffers estén llenos en cualquier momento. Modifique el algoritmo para permitir que todos los buffers se aprovechen al máximo. R. sin respuesta.

Preguntas de repaso: 1. Qué es un proceso? R. Un programa en ejecución. 2. Qué es PCB? (Ver Figura)

R: Proceso de control de bloqueo. Contiene varias estructuras de datos 3 Haga una lista de algunas de las colas típicas de un sistema. R. Ready, Run, I/O

4. Cómo son estás colas típicamente implementadas? R. Colas FIFO, Arboles, Listas enlazadas. 5. Cuantas colas de dispositivos existen en un sistema? R. Una para cada dispositivo. 6. Qué hace el planificador a largo plazo? R. Determina qué trabajos pertenecen en la mezcla actual de trabajos que e están ejecutando y los que están esperando 7. Qué hace el planificador de corto plazo? R: Determina cual de los trabajos actuales debería correr en la próxima ráfaga de CPU 8. Que planificador debe trabajar muy rápido con el fin de que no se gaste tiempo significante de la CPU? ¿Cuál puede ser lento? R. EL que tiene que ser rápido es el de corto plazo, y el que puede ser lento es el de largo plazo. 9. Cual es el grado de multiprogramación R. no caché.

10. Cuando se invoca al controlador de largo plazo? R. Cuando un trabajo es completado, o cuando un grado no se ha alcanzado. 11. Verdadero o falso: El planificador de largo plazo selecciona un grupo de trabajos ligados a dispositivos de E/S o un grupo de trabajo ligado a la CPU para actividades subsecuentes. Explique R. Falso. Se selecciona. Un mix de tareas para utilización eficiente de la máquina. 12. Qué es tiempo compartido? Qué tipo de planificación tiene involucrada? R. Tiempo compartido es cuando muchos usuarios de forma interactiva usan un sistema “simultáneamente”, cada usuario tiene una parte del tiempo de CPU, después de que otroas usuarios hayan conseguido su parte. Utiliza planificación de tiempo medio. 13. Explique el sentido de: “Tiempo compartido depende de la retroalimentación negativo de usuarios para operaciones rápidas” R. Usuarios que son impacientes con respuestas de largo tiempo se desconectarán, resultando en que hayan menos usuarios en el sistema con un tiempo de respuesta mayor. 14. Qué es swapping? R. Copiar un proceso que está fuera de la memoria a un disco o tambor, permitiendo así que se desocupe espacio para otros procesos activos. Una vez que el espacio se vuelva a ampliar se volverán a copiar en la memoria. 15. Qué es el cambio de contexto. R. EL tiempo que se necesita para cambiar de una tarea a otra. 16. Describa 5 implementaciones del mecanismo de creación de nuevos procesos. R. a. Ejecución contínua de los padres. b. Los padres no se ejecutan hasta que los hijos terminen c. Padres e hijos comparten todas las variables. d. Los hijos comparten solamente un subset de variables de los padres. e. Padres e hijos no comparten recursos en común. 17. Describa el problema productor/consumidor R. El consumidor no se le permite utilizar un resultado hasta que el productor lo haya creado, y al productor no se le permite de crear resultados si el buffer está completo. 18. De ejemplos de pares productor/consumidor

R. Compilador/enlazador, enlazador/cargador, lector de tarjetas/Impresora de línea 19. Cómo se implementa un arreglo circular= R. ni un brillo

Capítulo 5 planificación de CPU 5.1 Un algoritmo de planificación de la CPU determina un orden para la ejecición de sus proceos. Si hay que planificar n procesos, en un procesador ,¿Cuántos planes distintos puede haber? Deduzca una fórmula en términos den. R: n! (n factorial = n × n –1 × n –2 × ... × 2 × 1). 5.2 Defina la diferencia entre planificación expropiativa y no expropiativa. Explique por qué es poco probable que se use una planificación no expropitiva estricta en un centro de cómputo. R. PLanificación expropiativa permite al proceso ser interrumpido a la mitad de su ejecución, sacando la CPU y asignadola a otro proceso. Planificación expropiativa asegura que el proceso renuncie al control de la CPU solamente cuando ha finalizado con su ráfaga de CPU actual. 5.3 Considere el conjunto de procesos siguiente (la duración de la ráfaga de CPU s en milisegundos): Proceso

Tiempo de ráfaga

Prioridad

P1

10

3

P2

1

1

P3

2

3

P4

1

4

P5

5

2

Se supone que los procesos llegaron en el orden P1,P2, P3, P4, P5 todos en el instante 0. a. Dibuje cuatro diagramas de Gantt que ilustren la ejecución de estos procesos empleando planificación FCFS, SJF, una técnica por prioridad no expropiativa (un número de prioridad más bajo implica una priodidad más alta) y RR (quantum = 1) b. Calcule el tiempo de retorno para cada proceso con cada uno de los algoritmos de planificación de la parte a. c. Calcule el tiempo de espera para cada uno de los algoritmos de planificación de la parte a. d. ¿Cuál de los planes de la parte a da pie al tiempo de espera promedio más bajo (considerando todos los procesos)? R. Sin respuesta 5.4 5.5

R. a. En efecto, este proceso tendrá un incremento en su prioridad debido a que al recibir tiempo más a menudo estará recibiendo un trato preferencial. b. La ventaja es que a tareas más importantes se le podría asignar más tiempo, en otras palabras, mayor prioridad en el tratamiento. La consecuencia, desde luego, es que tareas más pequeñas sufrirán. c. Asignandole más tiempo a los procesos que merezcan mayorprioridad, en otras palabras, tener dos o más quantums posibles en la planificación RR 5.6¿Qué ventaja tendría definir quantums de tiempo de diferente tamaña en distitnso niveles de un sistema de colas multinivel? R. Procesosque necesiten prestación de servicios frecuentemente, por ejemplo, procesos interactivos como los editores, pueden estar en una cola con un quantum mayor, requiriendo menores cambios de contexto para completar su proceso, haciendo así más eficiente el uso del computador. 5.7 Considere el siguiente algoritmo de planificación por prioridad extrapropiativo basado en prioridades que cambian dinámicamente. Un número de prioridad mayor implica una prioridad más alta. Mientras un proceso está esperando la CPU (en la cola de procesos listos, pero no ejecutándose), su prioridad cambia con una rápidez alfa, cuando se está ejecutnado, su prioridad cambia con rapidez beta. Todos los procesos reciben una prioridad de 0 cuando ingresan en la cola de procesos listos. Los parámetros alfa y beta pueden ajustarse para dar muchos algoritmos de planificación distitnos. a. Qué algoritmo se obtiene si beta>alfa>0? b. Qué algoritmo se obtiene si alfa