Sistemas Operativos

Description

Flashcards on Sistemas Operativos, created by Mayen on 10/01/2015.
Mayen
Flashcards by Mayen, updated more than 1 year ago
Mayen
Created by Mayen over 9 years ago
179
0

Resource summary

Question Answer
1. ¿Qué es un sistema operativo?¿Cuáles son sus principales objetivos? (Respuesta en sección 1.2.1) Un sistema operativo es una capa de software que gestiona de forma eficiente todos los dispositivos hardware de un computador y además suministra a los usuarios una interfaz cómoda con el hardware. Los principales objetivos de un sistema operativo son: Gestionar o administrar eficientemente los dispositivos hardware de un computador. Ofrecer a los usuarios una interfaz cómoda con el hardware que les facilite el uso del computador .
2.1. ¿Qué es un proceso? (Respuesta en sección 2.2 .1) Un programa es un archivo ejecutable que típicamente se encuentra almacenado en memoria secun- daria. Considerado como archivo, un programa es una entidad pasiva o estática. Cuando un programa es ejecutado se convierte en una entidad activa o dinámica denominada proceso que va pasando por dife- rentes estados y utilizando distintos recursos del computador. En conclusión, un proceso es un programa en ejecución.
2.2. ¿Cuál es la principal diferencia entre un proceso ejecutándose en primer plano y otro ejecutándose en segundo plano? (Respuesta en sección 2.2.1) Se dice que un proceso se ejecuta en primer plano (foreground) si los usuarios pueden interaccionar con el proceso durante su ejecución. Por el contrario se dice que un proceso se ejecuta en segundo plano (background) si un usuario no puede interaccionar con el proceso durante su ejecución.
2.3. ¿Qué regiones se diferencian en el espacio de direcciones de memoria lógica o virtual de un pro- ceso? (Respuesta en sección 2.2.2) De forma general se suelen distinguir al menos tres regiones: la región de código (también denominada región de texto), la región de datos y la región de pila. Adicionalmente pueden existir regiones de memoria compartida y regiones asociadas a librerías
2.4. ¿Qué información contiene un marco de la región de pila del espacio de direcciones de memorilógica de un proceso? (Respuesta en sección 2.2.2) Un marco de pila contiene usualmente la siguiente información: los parámetros de la función, sus variables locales y las direcciones almacenadas en diferentes registros especiales de la máquina, como por ejemplo, el contador del programa y el puntero de la pila.
2.5. Describir brevemente los tres tipos de procesos que se pueden distinguir. (Respuesta en sección 2.2 .3 • De usuario. asociados a la ejecución de programas invocados por los usuarios. Se ejecutan en modo usuario excepto cuando realizan llamadas al sistema que pasan a ser ejecutados en modo supervisor (realmente se ejecuta el sistema operativo pero en el nombre del proceso). Además se pueden ejecutar en primer plano o en segundo plano. • Demonio. no asociados a ningún usuario que realizan tareas periódicas relacionadas con la administracióndelsistema,se ejecutan en modo usuario excepto cuando realizan llamadas al sistema que se ejecutan en modo supervisor Además se suelen ejecutar en segundo plano. demonios en UNIX. en Windows se llaman servicios. Procesos del sistema operativo,o procesos del sistema. realizan tareas de administración del sistema operativo, como por ejemplo, el intercambio de procesos desde memoria principal a memoria secundaria. Se ejecutan normalmente en modo supervisor. Además se suelen ejecutar en segundo plano.
2.6. Describir brevemente cada uno de los principales estados en los que se puede encontrar un determinado proceso. (Respuesta en sección 2.2.4) • Nuevo. El proceso acaba de ser creado pero todavía no se encuentra preparado para ser ejecutado, puesto que aunque se le han asignado algunas estructuras de datos aún no se encuentra cargado en la memoria principal. • Preparado. El proceso está listo para ser ejecutado tan pronto como el planificador del sistema operativo lo considere oportuno. • Ejecutándose. El proceso está siendo ejecutado en el procesador. En un computador con un único procesador solo puede existir en un determinado instante de tiempo un único proceso en este estado. • Bloqueado. El proceso tiene que esperar hasta que se produzca un determinado evento, como por ejemplo, la finalización de una operación de E/ S. •Terminado. El proceso ha finalizado su ejecución.
2.7. ¿Qué representa un diagrama de transición de estados? (Respuesta en sección 2.2.4) Representa los estados de un proceso.
2.8. Enumerar y describir las principales estructuras de control del sistema operativo. (Respuesta en sección 2.3.1) La tabla de procesos es una estructura del sistema operativo que almacena información de control relevante sobre cada proceso existente. Las tablas de memoria contienen información sobre el espacio asignado y el espacio libre de la memoria principal y del área de intercambio. Tablas de E/S, con información sobre disponibilidad de dispositivos y quien lo usa. Tablas de archivos, con información sobre archivos abiertos por los procesos
2.9. Enumerar las acciones que debe realizar el sistema operativo para crear un proceso. (Respuesta en sección 2.3.2) Comprobar si el proceso puede ser creado. Asignar una nueva entrada de la tabla de procesos para el nuevo proceso. Reservar espacio en memoria para el proceso. Inicializar el bloque de control del proceso. Establecer los enlaces adecuados.
2.10. Enumerar y describir las principales causas que originan la creación de un proceso. (Respuesta en sección 2.3.2) .-Arranque del sistema operativo. Algunos son procesos que se ejecutan en segundo plano, como es el caso de los procesos demonio y los procesos del sistema. Otros son procesos que se ejecutan en primer plano, como por ejemplo, los intérpretes de comandos y los gestores de ventanas. Interacción del usuario con un intérprete de comandos o un entorno de ventanas. .- Inicio de un trabajo por lotes. Cada vez que se inicia un trabajo por lotes se crea un proceso asociado a la ejecución de dicho trabajo. .- Un proceso en ejecución invoca a una llamada al sistema para crear otro proceso. Una determinada tarea puede plantearse para ser realizada en varias fases independientes, cada una de las cuales puede ser realizada por un proceso. Así un proceso puede realizar llamadas al sistema para solicitar la creación de otros procesos que le ayuden en la realización de una tarea.
2.11. ¿Cuáles son las principales causas por las que un proceso finaliza? (Respuesta en sección 2.3.3) Cuando se produce una excepción en su ejecución. Cuando finaliza la tarea para la que ha sido creado En UNIX, llamada al sistema exit. En Windows llamada a ExitProcess. Cuando un proceso privilegiado detenga otro. En UNIX, llamada al sistema kill. En Windows, llamada al sistema TerminateProcess.
2.12. ¿Qué es un cambio de contexto o proceso? ¿Cuáles son las principales causas que motivan cambio de proceso? (Respuesta en sección 2.3.4) Una de las operaciones más frecuentes que debe realizar un sistema operativo es la interrupción de la ejecución de un proceso A para iniciar o continuar la ejecución de otro proceso B. A esta operación se le denomina cambio de proceso o cambio de contexto. Las causas: El proceso en ejecución pasa al estado bloqueado. La terminación voluntaria o forzada del proceso en ejecución. El sistema operativo termina de atender una interrupción y existe un proceso B en estado preparado con mayor prioridad que el proceso actual. El proceso en ejecución ha excedido el tiempo máximo de ejecución ininterrumpida.
2.13. ¿Qué es el tiempo de conmutación y de qué factores depende? (Respuesta en sección 2.3.4) El tiempo de conmutación es el tiempo que se tarda en completar todo el proceso debido a las limitaciones físicas de los componentes. La magnitud de este tiempo depende principalmente de factores asociados al hardware del computador como por ejemplo, la velocidad de lectura/escritura de memoria principal, el número de registros del procesador cuyo contenido hay que salvar o cargar, la velocidad del procesador y la existencia de instrucciones especiales en el repertorio del procesador para salvar o cargar todos los registros.
2.14. ¿Qué se entiende por sobrecarga del sistema? (Respuesta en sección 2.4) Se denomina sobrecarga del sistema, o simplemente sobrecarga (overhead), al tiempo que el procesador se encuentra ocupado ejecutando código del sistema operativo asociado a tareas y servicios de administración que no se pueden contabilizar a ningún proceso en particular.
2.15 Definir traza de ejecución. (Respuesta en sección 2.5.1) Traza de ejecución, hilo de control, hilo o hebra (thread). Hace referencia a las instrucciones que ejecuta el proceso durante su tiempo de vida.
2.16 Qué es un proceso multihilo? (Respuesta en sección 2.5.1) Los sistemas operativos modernos introducen el modelo de proceso multihilo: un proceso puede estar formado por múltiples hilos. Estos sistemas operativos utilizan los procesos como unidad de asignación del procesador que sigue una determinada traza de ejecución y tiene asignado una pila de usuario, espacio de almacenamiento y un bloque de control del hilo. Este bloque de control contiene el identificador numérico del hilo, el estado del hilo, su prioridad de ejecución y los valores de los registros. A un hilo se le llama a veces proceso ligero (lightweigth process)
2.17 Enumerar las ventajas y los inconvenientes de los procesos multihilos. (Respuesta en sección 2.5.2) Ventajas de procesos multihilos respecto de múltiples procesos: • Aumento del rendimiento del sistema. • Ahorro de recursos. • Comunicación más eficiente. • Mayor aprovechamiento de las arquitecturas multiprocesador. • Simplificación de la estructura de las aplicaciones. El principal inconveniente es la necesidad de sincronización de acceso a las estructuras de datos que comparten los hilos.
2.18 Enumerar las ventajas y los inconvenientes de los hilos a nivel de usuario . . (Respuesta en sección 2.5.4) • Portabilidad. Al no requerir la intervención del SO, sólo de la biblioteca de hilos que puede estar disponible para múltiples SO. • Mejora del rendimiento del sistema. Al realizarse toda la gestión de hilos en modo usuario. • Planificación independiente. Cada proceso puede emplear un algoritmo de planificación distinto y estos a su vez distintos del que emplee el sistema operativo. La principal desventaja se da en aquellos sistemas operativos que solo soportan un hilo a nivel de núcleo: cuando un hilo de un proceso entra en estado bloqueado, todo el proceso se bloquea: el sistema operativo desconoce la existencia de hilos de usuario. Otra desventaja es que cuando un hilo se está ejecutando no se puede planificar otro hilo de usuario del mismo proceso a no ser que el primero ceda voluntariamente el uso del procesador.
2.19 Enumerar las ventajas y los inconvenientes de los hilos a nivel de núcleo . . (Respuesta en sección 2.5.4) Ventajas: No precisan biblioteca de hilos. El sistema mantiene una única tabla de hilos. Si uno se bloquea se puede planificar otro del mismo o distinto proceso. En sistemas multiprocesador puede ejecutarse un hilo en cada procesador. Por otra parte, el principal inconveniente de los hilos del núcleo radica en que su gestión contribuye a la sobrecarga del sistema.
2.20 Describir las principales configuraciones en función del número y tipo de hilos soportados por un sistema operativo. (Respuesta en sección 2.5.5) • Múltiples hilos de usuario sin soporte de hilos del núcleo: El sistema planifica procesos, no hilos. La gestión de hilos la realiza una biblioteca de hilos. Cuando un hilo realiza una llamada al sistema, comienza a ejecutarse el SO. Si la llamada requiere el bloqueo del hilo, se bloquea el proceso completo. No pueden ejecutarse varios hilos al mismo tiempo, ya que sólo uno puede acceder al SO. • Un hilo del núcleo por cada hilo de usuario: No se precisa biblioteca de hilos, solo acceder a las utilidades de hilos del núcleo. Si un hilo de usuario se bloquea se puede planificar otro del mismo proceso. La planificación la realiza el SO. Debido a la sobrecarga, se limita el número de hilos que es posible crear. • Menor número de hilos del núcleo que hilos de usuario: Se requiere biblioteca de hilos para gestión de hilos de usuario. Los hilos de usuario se asocian a un número <= de hilos del núcleo. Es el programador de la aplicación quien se encarga de establecer el número de hilos del núcleo que necesita. Auna las ventajas de las dos configuraciones anteriores
3.1 Enumerar y describir brevemente los diferentes tipos de colas de procesos que mantiene un sistema operativo. (Respuesta en sección 3.2) • estado preparado. En ella se encuentran aquellos procesos que desean acceder al procesador para iniciar o continuar su ejecución.pueden existir varias colas • en el estado preparado en memoria secundaria. Contiene procesos que están a la espera de regresar a la memoria principal al estado preparado. • estado bloqueado. a la espera de poder volver al estado preparado tan pronto ocurra el evento por el que han entrado en el estado bloqueado. Esta cola no tiene por qué ser única. Una posibilidad es disponer de una cola por cada evento posible. Otra opción es disponer de colas por grupos de eventos asociados a algún recurso del sistema, si se trata de un dispositivo a dicha cola se le denomina cola del dispositivo. • estado bloqueado en memoria secundaria. Cola de trabajos por lotes: en memoria secundaria. a la espera de que el sist cree un nuevo proceso para atenderlo
3.2 En qué consiste la actividad del sistema operativo conocida como planificación de procesos? ¿Qué niveles de planificación se distinguen? (Respuesta en sección 3.2) Un proceso puede pasar por varias colas. La actividad de determinar cuándo se entra en una cola o se pasa a otra se denomina planificación de procesos y al componente que la realiza planificador. Se distinguen tres niveles de planificación: • Planificación a corto plazo, que decide qué proceso será ejecutado a continuación. • Planificación a medio plazo, de determina qué proceso en cola de memoria principal pasa a cola de memoria secundaria y viceversa. • Planificación a largo plazo, determina qué trabajo por lotes pasa a ser ejecutado mediante la creación de un proceso.
3.3 Qué función realiza el planificador a corto plazo? ¿Cuáles son sus componentes? Respuesta en sección 3.2.1) Planificación a corto plazo, que decide qué proceso será ejecutado a continuación. Desde el punto de vista lógico, todo planificador se puede dividir en tres componentes o elementos: • Encolador (enqueuer), encargado de incluir al proceso en la cola de procesos preparados y de asignarle una prioridad. • Conmutador de contexto (context switcher), encargado de guardar el contexto del proceso a ser desalojado y cargar el contexto del proceso a ser ejecutado. • Distribuidor o despachador (dispatcher), encargado de seleccionar un proceso de la cola de procesos preparados y cederle el control del procesador. El tiempo que transcurre entre la detención de un proceso y la ejecución de otro se llama tiempo de despacho. Algunos SO no permiten la expropiación de un proceso que se ejecuta en modo núcleo que está realizando una llamada al sistema. Estos sistemas se llaman de nucleo no expropiable.
3.4 Enumerar algunas circunstancias que requieran la invocación del planificador a corto plazo. Respuesta en sección 3.2.1) Algunas circunstancias que hacen necesaria una llamada al planificador a corto plazo son: • Cuando se ha terminado de crear un nuevo proceso hijo. • Cuando un proceso entra en estado bloqueado en espera de que se producza algún evento. • Cuando se termina de atender una interrupción. • Cuando un proceso finaliza.
3.5 ¿Qué tareas realiza el planificador a medio plazo? (Respuesta en sección 3.2.2) También conocido como planificador de memoria o intercambiador . Decide qué procesos de memoria principal se pasa a memoria secundaria y viceversa. Se ejecuta con menor frecuencia que el planificador a corto plazo. Puede ser invocado cuando queda espacio libre en la memoria principal o porque el número de procesos en el estado preparado cae por debajo de algún límite prefijado.
3.6 ¿Qué tareas realiza el planificador a largo plazo? (Respuesta en sección 3.2.3) También se denomina planificador de trabajos o planificador de admisión. Decide qué trabajolos pendientes en la cola trabajos por lotes será admitido para ser ejecutado. La admisión de un trabajo consiste en la creación de un proceso para el procesamiento de ditrabajo. El planificador a largo plazo permite regular el nivel de multiprogramación del sistema invocándolo cuando se termina un trabajo o tras cierto tiempo de inactividad del procesador.
3.7 ¿Qué es un proceso limitado por CPU? ¿Y un proceso limitado por E/S? (Respuesta en sección 3.2.3) A tener en cuenta es que la ejecución de un proceso comienza con una ráfaga de CPU, esto es, utilizando el procesador de forma continuada durante un cierto periodo de tiempo. Así nos podemos encontrar con procesos limitados por CPU, en los que éste se encuentra la mayor parte del tiempo utilizando la CPU y poco los recursos de E/S y los procesos limitados por E/S. El planificador debe intentar seleccionar los trabajos de forma que exista un equilibrio entre procesos de un tipo y de otro.
3.8 ¿Cuáles son los objetivos principales que debe cumplir la función de planificación de procesos? Respuesta en sección 3.3) • Equidad. Requisitos similares → tiempo de uso de los recursos similares. • Previsibilidad. Características similares → tiempo de ejecuciones similares. • Uso equilibrado de los recursos. Mantener todos los recursos ocupados / optimizados. • Proporcionalidad. Peticiones sencillas → mejor tiempo de respuesta que peticiones complejas
3.9 Definir los siguientes criterios de planificación del procesador: utilización del procesador o eficacia, productividad, tiempo de entrega o tiempo de estancia, tiempo de espera, tiempo de respuesta, plazo de finalización. (Respuesta en sección 3.4) • Utilización del procesador o eficacia. Porcentaje de tiempo del procesador activo. • Productividad (throghput) o rendimiento. Número de trabajos completados por u.t. (1 hora) • Tiempo de entrega (turnaround time), también denominado tiempo de retorno o tiempo de estancia. Tiempo desde que se lanza un proceso hasta que finaliza. • Tiempo de espera. Tiempo total de estancia en las colas de espera. • Tiempo de respuesta (response time). Tiempo desde que se lanza una orden hasta que se obtiene el resultado. • Plazo de finalización (deadline). Tiempo máximo que un proceso tiene para ser completado en un sistema de tiempo real.
3.10. Señalar los criterios principales considerados en la planificación del procesador dependiendo del tipo de sistema operativo. (Respuesta en sección 3.4) La elección de los criterios a optimizar depende del tipo de sistema operativo. En un sistema por lotes debe intentar maximizar la utilización del procesador y la productividad, uno de tiempo compartido el tiempo de respuesta y uno de tiempo real el tiempo de entrega. Normalmente, el planificador optimiza los valores medios de los criterios que considera. Es más importante minimizar la varianza en el tiempo de respuesta que minimizar el tiempo de respuesta promedio. Cuando se intentan optimizar varios criterios simultáneamente, se debe tener en cuenta que pueden ser incompatibles entre sí.
3.11. Definir planificación expropiativa y no expropiativa. Señalar sus principales diferencias y ventajas.(Respuesta en sección 3.5) Planificación del procesador no expropiativa (non preemptive) si permite que un proceso pueda estar ejecutándose en el procesador ininterrumpidamente. Planificación del procesador expropiativa (preemptive) si el proceso que se está ejecutando puede ser interrumpido en cualquier momento.
3.12. ¿Qué es un cuanto de ejecución? (Respuesta en sección 3.5) El tiempo máximo de ejecución ininterrumpida se denomina quantum (cuanto).
3.13. ¿Qué tipo de planificación, expropiativa o no expropiativa, es más recomendable para un sistema operativo por lotes? ¿Y para un sistema de tiempo compartido? (Respuesta en sección 3.5) En un sistema operativo por lotes es mejor la no expropiativa. En tiempo compartido es la expropiativa.
3.14. Describir el algoritmo de planificación del primero en llegar primero en ser servido. (Respuesta en sección 3.6.1) Sin duda el algoritmo de planificación más sencillo de entender y de programar es el algoritmo del primero en llegar - primero en ser servido o abreviadamente algoritmo FCFS (First-Come First-Served). Este algoritmo cede el uso del procesador al primer proceso que lo solicite, éste puede utilizarlo ininterrumpidamente hasta que termine o se bloquee en espera de un evento. En consecuencia el algoritmo es no expropiativo. La implementación de este algoritmo únicamente requiere una cola de procesos preparados con una organización del tipo primero en entrar - primero en salir es decir una cola FIFO (First Input - First out). Cuando un proceso entra en el estado preparado su bloque de control se enlaza al final de lacola. Asimismo cuando hay que escoger un nuevo proceso para ejecutar, se elige siempre al primer proceso de la cola. Una vez seleccionado es eliminado de la cola.
3.15. Describir el algoritmo de planificación de primero el proceso más corto. (Respuesta en sección 3.6.2 El algoritmo de primero el proceso más corto, abreviadamente algoritmo SJF (Shortest Jop First) o algoritmo SPN (shortest process next), es un algoritmo de tipo no expropiativo que selecciona para ser ejecutado al proceso con tiempo de procesamiento más corto. Si dos o más procesos tienen el mismo tiempo de procesamiento entonces se les aplica el algoritmo FCFS
3.16. Describir el algoritmo de planificación del proceso con menor tiempo restante. (Respuesta en sección 3.6.3) El algoritmo de a continuación el proceso con menor tiempo restante, abreviadamente algoritmo SRT (Shortest Remaining Time Next), es la versión expropiativa del algoritmo SJF. Este algoritmo siempre selecciona para ser ejecutado al proceso con menor tiempo restante de ejecución. Si mientras se está ejecutando en el procesador un proceso A llega a la cola de preparados un proceso B con menor tiempo restante de ejecución, el planificador expropia el procesador al proceso A y se lo cede al proceso B. El algoritmo SRT, al igual que SJF, se suele utilizar en sistemas por lotes. También requiere una estimación de los tiempos restantes de ejecución de la población de procesos. Además puede producir inanición a los procesos largos.
3.17. Describir el algoritmo de planificación de turno rotatorio. (Respuesta en sección 3.6.4) Round Robin o cíclico, similar al FCFS pero expropiatorio. • Asigna el uso ininterrumpido del procesador durante un periodo de tiempo determinado llamado cuanto, quantum o time slice. • Al finalizar el cuanto, se interrumpe el proceso actual y se ejecuta el siguiente en la cola. El proceso interrumpido pasa al final de la cola. • Si un proceso finaliza antes que su cuanto, se planifica el siguiente proceso preparado sin esperar a la finalización del cuanto. • Si finaliza el cuanto de un proceso y no existen procesos en cola, vuelve a planificarse el mismo proceso. • Elemento clave para el rendimiento del algoritmo es la elección del tamaño del cuanto. • Se recomienda un cuanto ligeramente mayor que el tiempo promedio de duración de una ráfaga de procesador. • Algoritmo diseñado para los sistemas de uso compartido. • El tiempo de respuesta promedio, el tiempo de retorno promedio y el tiempo de espera promedio pueden ser largos.
3.18. Describir el algoritmo de planificación basada en prioridades. (Respuesta en sección 3.6.5) El algoritmo de planificación basada en prioridades asigna a cada proceso en el momento de su creación una determinada prioridad de ejecución en la forma de un número entero positivo. Dependiendo de cada sistema, la máxima prioridad puede corresponder a un número pequeño, típicamente 0, o a un número grande. Siempre se planifica para ejecución al proceso de mayor prioridad. En caso de que varios procesos posean la misma prioridad éstos se deben planificar mediante otro algoritmo distinto, como por ejemplo, FCFS o SJF. Nótese que el algoritmo SJF se puede considerar como un algoritmo basado en prioridades, donde la prioridad más alta corresponde a los procesos de tiempo de servicio estimado más corto.
3.19. Describir el algoritmo de planificación basada en múltiples colas de prioridad. (Respuesta en sección 3.6.6) Se disponen varias colas cada una de las cuales dispone únicamente de procesos con un determinado nivel de prioridad o dentro de un rango de prioridades. • Siempre se ejecuta un proceso de la cola de mayor prioridad. • Sólo cuando esa cola se vacía, se ejecutan los de la siguiente cola. • Un proceso sólo puede pertenecer a una cola. • Para planificar cada cola puede usarse FCFS, SJF, etc. • Puede producirse inanición de los procesos de las colas de menor prioridad. Para evitarlo, puede asignarse a los procesos de cada cola un porcentaje de tiempo de procesador
3.20. Describir el algoritmo de planificación basada en múltiples colas de prioridad y realimentación. (Respuesta en sección 3.6.7) Se permite que un proceso pueda ir cambiando de cola de prioridad durante su existencia. • Requiere definir un mecanismo que regule cómo se modifica la prioridad de los procesos, esto es, cómo y cuándo se produce el paso de una cola a otra. • Un mecanismo puede consistir en reducir la prioridad del proceso en cada cuanto de ejecución hasta que llega a la cola de menor prioridad, donde se queda, siendo entonces esta cola de turno rotatorio. ◦ Con este mecanismo se favorecen los procesos nuevos y cortos frente a los viejos y largos. • Para evitarlo puede asignarse un cuanto de mayor tamaño conforme disminuye la prioridad de las colas. ◦ Esta técnica no evita completamente la inanición, por lo que puede combinarse con la de envejecimiento de procesos.
3.21. Describir el algoritmo de planificación por tiempo límite. (Respuesta en sección 3.6.8) En los sistemas de tiempo real estricto el tiempo de servicio de algunos procesos debe completarse en un determinado plazo o tiempo límite (deadline). • El planificador sólo admite en la cola de procesos preparados aquellos a los que pueda garantizar que su tiempo de servicio se atenderá dentro de su tiempo límite, en función de los tiempos de espera existentes en la cola. • Debe conocerse por adelantado el tiempo de servicio y deadline de cada proceso
3.22. Describir la planificación de hilos en función del tipo de hilo soportado por el sistema operativo. (Respuesta en sección 3.7) La planificación de hilos depende de los tipos de hilos soportados por el SO. • Si sólo se soportan hilos a nivel de usuario el SO no es consciente de su existencia, debiendo • Si se soportan hilos del núcleo el sistem operativo los planifica utilizando alguno de los métodos vistos anteriormente. ◦ El planificador debe tener en cuenta la sobrecarga que puede producir en el sistema el cambio de contexto entre hilos de distintos procesos.
4.1 Explicar cuándo se produce y en qué consiste el problema de la condición de carrera. (Respuesta en sección 4.2.2) El problema denominado condición de carrera (race condition) surge cuando múltiples procesos independientes se ejecutan concurrentemente y acceden para leer o escribir en un recurso compartido. En ese caso el resultado final de la ejecución depende del orden en que se hayan planificado los procesos.
4.2 ¿Qué es una sección crítica? (Respuesta en sección 4.2.3) Sección crítica o región crítica de un proceso es una instrucción o conjunto de instrucciones secuenciales de su código que requieren manipular un recurso compartido (variable, dato, fichero, ...) con otros procesos. Dentro del código de un proceso pueden existir varias regiones críticas.
4.3 ¿En qué consiste la exclusión mutua? ¿Qué problema permite resolver? (Respuesta en sección 4.2.4) 1) El uso de un recurso por parte de un proceso excluya su uso para los restantes. 2) La exclusión mutua así planteada resuelve las condiciones de carrera.
4.4 Explicar brevemente los problemas que puede producir el uso de la exclusión mutua si no se implementa correctamente. (Respuesta en sección 4.2.4) La exclusión mutua puede producir problemas como interbloqueos o inanición de procesos. • El interbloqueo o bloqueo mutuo de dos o más procesos se produce cuando dos procesos A y B necesitan dos recursos R1 y R2 para realizar una cierta función. Si A posee R1 y B posee R2, ambos se quedarán esperando por el recurso que necesitan; no pueden liberar el recurso que poseen porque están esperando el otro recurso para realizar la función correspondiente. • La inanición de un proceso se produce cuando este no puede progresar al necesitar un recurso al que nunca llega a acceder porque el sistema operativo siempre da prioridad a otros procesos.
4.5-¿Qué requisitos debe cumplir el mecanismo o técnica que se utilice para implementar la exclusión mutua? (Respuesta en sección 4.2.4) 1. Sólo un proceso puede estar a la vez en una sección crítica asociada a un recurso R. 2. No pueden realizarse suposiciones sobre la velocidad relativa y prioridad de ejecución de los procesos concurrentes. 3. Un proceso que no está ejecutando una sección crítica asociada a un recurso R no está impidiendo o bloqueando el uso de R a otros procesos. 4. Debe evitarse la inanición de procesos. Un proceso no debe permanecer en su sección crítica por tiempo ilimitado. 5. Si ningún proceso está en una sección crítica asociada a R, debe concederse rápidamente el acceso a esa sección crítica al proceso que lo solicite.
4.6. ¿Por qué se caracterizan las dos soluciones software a la exclusión mutua descritas en el texto? ¿Cuál es su principal inconveniente? (Respuesta en sección 4.2.5) 1) Ambas soluciones se caracterizan porque no presuponen el apoyo de sistema operativo o del hardware del computador para su implementación. 2) El principal inconveniente de ambas soluciones es que cualquier proceso que desea entrar en un sección crítica, si está siendo ejecutada por otro proceso, debe esperar a que éste termine mediante ejecución de un bucle que comprueba el valor de una condición basada en el valor de una o varias variables.
4.7. ¿Cómo se puede lograr la exclusión mutua usando un cerrojo y alternancia estricta? ¿Qué problemas presenta esta solución software? (Respuesta en sección 4.2.5) 1) Esta solución considera la existencia de una variable global de acceso que se usa como cerrojo y que puede tomar como valor el identificador numérico de un proceso. 2) Este método posee dos inconvenientes: la velocidad de ejecución se ve limitada por el proceso más lento. Además, si un proceso falla antes de cambiar el valor de la variable global el otro proceso quedará bloqueado indefinidamente.
4.8. ¿Qué acciones se realizan en la función acceso_sc del algoritmo de Peterson? ¿Y en la función salida_sc? (Respuesta en sección 4.2.5) 1) Cuando un proceso desea ejecutar una sección crítica debe invocar primero a la función acceso _ sc pasándole como parámetro el identificador numérico pid que tiene asociado dicho proceso. En este caso es 0 para el proceso A y 1 para el proceso B. 2) Cuando un proceso termina de ejecutar su sección crítica debe invocar a la función salida_sc, pasándole como parámetro el identificador numérico pid que tiene asociado dicho proceso. Esta función lo único que hace es desactivar la petición de uso del recurso por parte del proceso invocador; para lograrlo configura con el valor FALSE el elemento asociado al proceso invocador en el vector petición_ rec.
4.9. ¿Por qué el algoritmo de Peterson evita la posibilidad de interbloqueo de procesos? (Respuesta en sección 4.2.5) Se evita la posibilidad de interbloqueo al almacenarse en turno el valor del pid del otro proceso.
4.10. Cuando se utiliza el algoritmo de Peterson ¿puede un proceso monopolizar el uso de un recurso? (Respuesta en sección 4.2.5) Es una solución para el problema de garantizar completamente la exclusión mutua de un número arbitrario de procesos concurrentes. Por otra parte un proceso no puede monopolizar el uso de un recurso ejecutando repetidas veces sección crítica ya que siempre concede una oportunidad de entrar al otro proceso al ejecutar la instrucción turno=otro_pid.
4.11. ¿Cómo se garantiza la exclusión mutua mediante el uso de instrucciones máquina especiales? ¿Cuáles son sus principales inconvenientes? (Respuesta en sección 4.2.6) Uso de instrucciones máquina especiales que bloquean el uso del bus. Se caracterizan por ser atómicas, es decir, se ejecutan en un único ciclo de instrucción que no puede ser interrumpido. El principal inconveniente es que también hay que realizar una espera activa para comprobarel valor del cerrojo. También pueden producirse interbloqueos.
4.12. ¿Cómo se garantiza la exclusión mutua mediante el uso del bloqueo de las interrupciones? ¿Cuáles son sus principales inconvenientes? (Respuesta en sección 4.2.6) Bloqueo de las interrupciones. Antes de entrar en una región crítica, puede ejecutarse una instrucción especial que bloquea el mecanismo de interrupciones del sistema, restaurándolo al salir de la sección crítica. Pero el sistema se puede degradar bastante al no permitirse atender las interrupciones más prioritarias en el momento en que llegan, Además, se deja en manos del proceso la decisión de ceder el procesador, pudiéndose quedar el sistema colgado si este nunca lo devuelve. El inconveniente es que no sirve en el caso de multiprocesadores.
4.13. ¿Qué son los semáforos? (Respuesta en sección 4.3.1) Los semáforos son un mecanismo de sincronización de procesos concurrentes gestionado por los sistemas operativos que fue presentado por primera vez en [Dijkstra, 1965].
4.14. Describir el funcionamiento de las operaciones init _sem, wait _sem, signal_ sem cuando se aplican sobre un semáforo general y cuando se aplican sobre un semáforo binario. (Respuesta en sección 4.3.1) Semáforo general: •init _ sem (S ,N) se denotará la operación de inicialización del semáforo S con el valor N. • wait_sem disminuye en una unidad el valor del semáforo. S = S – 1. Si S se hace negativo, el proceso que ha llamado al semáforo pasa a la cola de procesos bloqueados asociada al semáforo. • signal_sem Incrementa en una unidad el valor del semáforo, S = S + 1. Si S es menor o igual a cero, se eliminar uno de los procesos bloqueados la cola y se pasa al estado preparado. Semáforobinario: •init _ sem (S ,N) al igual que en los generales se denotará la operación de inicialización del semáforo S con el valor N. • wait_sem(S). Si S = 0, el proceso pasa a cola de bloqueados, si S = 1, pone el semáforo a cero y continúa su ejecución. • signal_sem(S). Si la cola de bloqueados está vacía, pone el semáforo a 1 y continúa. Si no está vacía, se elimina un proceso de la cola de bloqueados y pasa al estado preparado.
4.15. ¿Cómo implementa el sistema operativo las operaciones sobre un semáforo? (Respuesta en sección 4.3.2) Las operaciones wait_sem y signal_sem son implementadas por el núcleo como primitivas o funciones atómicas, esto es, que se ejecutan como un único ciclo de instrucción que no puede ser interrumpido.
4.16. Describir cómo se usan los semáforos para obtener el acceso con exclusión mutua a un recurso. (Respuesta en sección 4.3.3) Simplemente hay que utilizar tantos semáforos como recursos distintos compartan, a través de regiones críticas, los procesos concurrentes.
4.17. Describir cómo se usan los semáforos para sincronizar procesos. (Respuesta en sección 4.3.3) En este caso basta con que el proceso que espera la ocurrencia de un suceso ejecute wait_sem para pasar al estado bloqueado. El proceso que lanza la operación ejecuta signal_sem para notificar que el suceso se ha producido, provocando que el proceso que espera prosiga su ejecución.
4.19. ¿Qué es un monitor? (Respuesta en sección 4.5.1) Un monitor, es un módulo software que consta de un conjunto de procedimientos, variables y estructuras de datos que posee la propiedad especial de que solo permite a un único proceso simultáneamente ejecutar alguno de sus procedimientos. Las variables contenidas en un monitor sólo son accedidas por los procedimientos del monitor y no por procedimientos externos.
4.20. ¿ Qué utilidad tienen las variables de condición de un monitor? ¿Tienen asociada algún tipo de cola? (Respuesta en sección 4.5.1) 1) Mediante el uso de las variables de condición se puede proporcionar la sincronización de procesos. 2) Cada variable de condición tiene asociada una cola de procesos bloqueados en espera de que se cumpla dicha condición.
4.21. Describir el funcionamiento de las operaciones wait _ mon y signal_mon de un monitor. (Respuesta en sección 4.5.1) • wait_mon(X). El proceso que realiza esta operación queda suspendido en la cola de procesos bloqueados asociada a la condición X. Al contrario que en los semáforos, esta operación siempre produce el bloqueo del proceso que la invoca. • signal_mon(X). Comprueba si en la cola de procesos bloqueados asociada a la variable X existe algún proceso. En ese caso, se desbloquea un proceso. Esta operación no opera sobre un contador. Si no hay ningún proceso en cola, esta operación no tiene ningún efecto y la señal de aviso se pierde. Según la propuesta de B. Hansen (1975) el proceso que invoca esta operación sale del monitor inmediatamente, siendo por tanto la sentencia final del procedimiento de un monitor.
4.22 Explicar qué sucede con un proceso que invoca una operación signa 1_mon según la solución de: a) Hoare. b) Hansen. c) Lampson y Redell. (Respuesta en sección 4.5.1) • El proceso invocador A de la operación signa1_mon se bloquea y se permite ejecutar en monitor al proceso B desbloqueado por dicha operación. Cuando B finalice un procedimiento o se bloquee en una condición entonces el proceso A se desbloqueará. Esta solución fue propuesta [Hoare, 1974]. • El proceso invocador de la operación signa 1_ mon sale del monitor inmediatamente. Luego esta operación aparecería como la sentencia final del procedimiento de un monitor. Esta solución propuesta por B. Hansen en 1975. • El proceso A invocador de la operación signa1_mon continua su ejecución hasta finalizar el procedimiento del monitor o bloquearse en una condición. Luego se retomará la ejecución proceso B desbloqueado por signa1_mon. Esta solución fue propuesta en [Lamport y Rede 1980].
4.23 Describir cómo se obtiene en un monitor el acceso con exclusión mutua a un recurso. (Respuesta en sección 4.5.3) Por su propia definición, un monitor garantiza implícitamente la exclusión mutua sobre recursos compartidos por varios procesos concurrentes. Simplemente hay que definir dentro del monitor los recursos compartidos.
4.24 Describir cómo se obtiene en un monitor la sincronización de procesos. (Respuesta en sección 4.5.3) Un monitor puede proporcionar la sincronización de procesos mediante el uso de las variables de condición y de las operaciones wait_mon y signa1_mon. Nótese que el protocolo sincronización se implementa dentro del propio monitor, en concreto, dentro de sus procedimientos no en los procesos como ocurría cuando se usaban semáforos, lo que facilita la comprobación de sincronización y la depuración de errores.
4.25 ¿Qué es el paso de mensajes? (Respuesta en sección 4.6.1) El paso de mensajes es un mecanismo de sincronización y comunicación entre procesos soportado por los sistemas operativos tanto de sistemas centralizados como distribuidos.
4.26 ¿Qué es un mensaje? ¿Cuáles son las dos operaciones básicas que se pueden realizar sobre un mensaje? (Respuesta en sección 4.6.1) 1) Un mensaje es un conjunto de información que puede ser intercambiada entre un proceso emisor y un proceso receptor. 2) Las operaciones básicas son: send (destino, mensaje) receive (fuente, mensaje)
4.27 ¿Cuáles son los aspectos básicos en el diseño del mecanismo de paso de mensajes? (Respuesta en sección 4.6.1) Los aspectos básicos a considerar son • La especificación de la fuente y el destino del mensaje. • El esquema de sincronización. • El formato del mensaje. • El medio de almacenamiento.
4.28 Explicar cómo se realiza la comunicación directa mediante paso de mensajes. (Respuesta en sección 4.6.2) Emisor y receptor del mensaje especifican explícitamente a qué proceso va dirigido o de quién se espera el mensaje. Otra posibilidad es que el receptor especifique implícitamente el proceso emisor del mensaje, pudiendo llegar éste de cualquier emisor.
4.29 Explicar cómo se realiza la comunicación indirecta mediante paso de mensajes. ¿Qué esquemas de difusión de mensajes posibilita? (Respuesta en sección 4.6.2) 1) En la comunicación indirecta el proceso emisor envía el mensaje a una estructura de datos compartí denominada buzón que se implementa como una cola de mensajes. Por su parte, el proceso receptor solicita recibir el mensaje de dicho buzón. Además previamente a las operaciones de emisión o recepción un proceso (emisor o receptor) tiene que solicitar mediante una llamada al sistema la creación del buzón. 2) • Un emisor – un receptor: para comunicación privada entre procesos. • Un emisor – varios receptores: para difundir determinada información entre varios procesos. • Varios emisores – un receptor: típico en aplicaciones cliente – servidor. • Varios emisores – varios receptores: varios servidores atienden concurrentemente a varios clientes. .
4.30 Describir el funcionamiento de un buzón que sea propiedad de: a) Un proceso. b) El sistema operativo. (Respuesta en sección 4.6.2) a) Si el buzón es propiedad de un proceso, entonces se implementa en el espacio de direcciones de dicho proceso. En este caso solo el proceso propietario puede recibir mensajes de dicho buzón. Cuando el proceso propietario finaliza entonces el buzón desaparece. Si algún proceso posteriormente envía mensajes a este buzón debe ser notificado de la no existencia del mismo. b) Si el buzón es propiedad del sistema operativo, entonces se implementa en el espacio de direcciones del núcleo, por lo que es independiente de cualquier proceso. En este caso el sistema operativo debe proporcionar llamadas al sistema para crear y borrar el buzón. El proceso que crea un buzón es considerado su propietario. Inicialmente solo el propietario puede leer mensajes del buzón pero privilegio se puede compartir con otros procesos mediante las llamadas al sistema adecuadas.
4.31 Enumerar los cuatro esquemas de sincronización posibles en el mecanismo de paso de mensajes. (Respuesta en sección 4.6.3) • Send con bloqueo. • Send sin bloqueo. • Receive con bloqueo. • Receive sin bloqueo
4.32 Describir las partes de un mensaje. (Respuesta en sección 4.6.4) De forma general un mensaje consta de dos partes: la cabecera del mensaje y el cuerpo del mensaje. La cabecera del mensaje contiene información de control del mensaje como por ejemplo: el tipo y la prioridad del mensaje, identificadores del destino y origen del mensaje, la longitud o tamaño del mensaje. punteros a otros mensajes de la cola de mensajes, etc. El cuerpo del mensaje contiene el contenido propiamente dicho del mensaje.
4.33 Describir las principales ventajas e inconvenientes relativas a que la longitud de un mensaje sea fija o variable. (Respuesta en sección 4.6.4) Los mensajes de longitud fija son más fáciles de implementar para un sistema operativo, ya que se almacenan en bufferes de tamaño fijo, lo que hace más sencilla y eficaz su asignación. Su principal desventaja es que complican a los programadores la creación de los procesos emisores, ya que los mensajes largos deben ser divididos y enviados en varios mensajes del tamaño de mensaje soportado, lo que puede producir problemas de secuenciamiento con los procesos receptores. Por el contrario, los mensajes de longitud variable facilitan al programador la programación de los procesos emisores. Sin embargo, su implementación a nivel del sistema operativo es más compleja, ya que ahora tiene que asignar trozos de memoria de tamaño variable, según el tamaño de cada mensaje, lo cual aumenta la sobrecarga y puede producir problemas de fragmentación de memoria.
4.34 Describir los mecanismos de mensajes posibles en función de la capacidad de las colas de mensajes. (Respuesta en sección 4.6.4) • Mecanismo de mensajes sin buffer , en el que los mensajes nunca pueden esperar y el proceso emisor se bloquea en espera de su recepción. • Mecanismo de mensajes con buffer, en el que los mensajes se almacenan en un buffer normalmente gestionado por un algoritmo de tipo FIFO.
4.35 Supuesto que se dispone de la operación send sin bloqueo, de la operación receive con bloqueo y que la comunicación es indirecta a través de un buzón. Describir cómo se puede obtener mediante o de mensajes: a) La sincronización de procesos.(Respuesta en sección 4.6.5) 1) Para conseguir la sincronización el proceso A debe ejecutar una operación receive cuando debe esperar por una acción que debe realizar el proceso B. Por su parte, el proceso B debe ejecutar una operación send cuando termine de ejecutar dicha acción. Si se ejecuta antes la operación receive del proceso A que la operación send del proceso B, entone el proceso A se quedará bloqueado a la espera de la recepción del mensaje. En caso contrario el proceso A continuará su ejecución, eso significa que el proceso B ya ha realizado la acción por la que iba esperar el proceso A, y en consecuencia no tiene necesidad de esperar.
4.35 Supuesto que se dispone de la operación send sin bloqueo, de la operación receive con bloqueo y que la comunicación es indirecta a través de un buzón. Describir cómo se puede obtener mediante o de mensajes:b) El acceso con exclusión mutua a un recurso. (Respuesta en sección 4.6.5) 2) La cola de mensajes se inicializa fuera del código de los procesos con un mensaje que no requiere tener ningún contenido y que se denotará como nulo. Un proceso que desea ejecutar su sección crítica primero debe ejecutar una operación receive para recibir un mensaje. Si el buzón está vacío entonces se bloquea hasta que llegue un mensaje a la cola. Cuando dicho evento ocurra entonces el proceso obtiene el mensaje (que se supone que se borra de cola) y puede sea entrar en su sección crítica. Cuando sale ejecuta una operación send para enviar el mensaje de nuevo a la cola, y permitir que otro proceso que estuviera bloqueado en la cola de mensajes pueda desbloquearse y acceder a su región crítica.
5.1. ¿Qué es un interbloqueo? (Respuesta en sección 5.2) De forma general puede definirse como aquella situación en la que un conjunto de procesos está bloqueado en espera de la liberación de uno o varios recursos que se encuentran asignados a otros procesos del mismo conjunto.
5.2 Enumerar y explicar las cuatro condiciones necesarias y suficientes para la existencia del interbloqueo. (Respuesta en sección 5.2) Para que se produzca el interbloqueo es necesario que se produzcan cuatro condiciones: 1. Exclusión mutua, por la que cada instancia de un recurso solo puede ser asignada a un proceso como máximo. 2. Retención y espera. Cada proceso retiene los recursos asignados mientras espera adquirir otros que necesita. 3. No existencia de expropiación. Si un proceso posee un recurso, no se le puede expropiar. 4. Espera circular, en la que una cadena de procesos se encuentra uno esperando la liberación de un recurso que posee el siguiente en la cadena y el último espera por el primero.
5.3 Enumerar las principales estrategias que puede implementar un sistema operativo para el trata-miento de los interbloqueos. (Respuesta en sección 5.2) Tres son las principales estrategias para el tratamiento de los interbloqueos: 1. Prevención de interbloqueos, impidiendo que alguna de las cuatro condiciones anteriores llegue a producirse. 2. Evitación de interbloqueos, examinando las consecuencias de asignar los recuros antes de hacerlo. 3. Detección y recuperación de interbloqueos, comprobando cada cierto tiempo la existencia de interbloqueos y actuando para eliminarlos de haberse producido.
5.4 ¿Cómo se construye un grafo de asignación de recursos? (Respuesta en sección 5.3) Cada proceso se representa con un círculo y cada recurso con un cuadrado. Cada instancia de un recurso se representa con un punto dentro del cuadrado. Si un proceso ha solicitado un recurso y se encuentra bloqueado se representa una flecha que sale del proceso hacia el recurso. Si un proceso tiene asignada una instancia de un recurso se representa una flecha desde la instancia del recurso hasta el proceso.
5.5 ¿Cómo se pueden detectar los interbloqueos en un grafo de asignación de recursos? (Respuesta en sección 5.3) El grafo de asignación de recursos puede utilizarse para detectar la presencia de interbloqueos, para ello debe suponerse que ya se cumplen las condiciones de exclusión mutua y no existencia de expropiación, las cuales quedan fijadas por el sistema operativo. En el grafo de asignación de recursos pueden detectarse visualmente, o usando algún algoritmo de análisis de grafos, la condición de espera circular y la condición de retención y espera.
5.6 ¿En qué consiste la estrategia de prevención de interbloqueos? (Respuesta en sección 5.4) La estrategia de prevención de interbloqueos consiste en eliminar la aparición de alguna de las cuatro condiciones necesarias y suficientes para que se produzca un interbloqueo: exclusión mutua, retención y espera, no existencia de expropiación y espera circular. Se analizan en las siguientes subsecciones cómo es posible eliminar cada una de estas condiciones y los inconvenientes que produce dicha eliminación.
5.7 ¿Es aconsejable eliminar la condición de exclusión mutua para prevenir el interbloqueo? (Respuesta en sección 5.4.1) Esta condición no puede eliminarse en recursos compartidos si se quiere garantizar la integridad y no corrupción.
5.8 Señalar los inconvenientes de la eliminación de la condición de retención y espera para prevenir el interbloqueo. (Respuesta en sección 5.4.2) Requiere el previo conocimiento de las necesidades. Puede degradar el rendimiento del sistema o provocar inanición si un proceso retiene un recurso y otros esperan a obtenerlo. Los recursos pueden verse infrautilizados.
5.9 Explicar cómo se consigue la eliminación de la condición de no existencia de expropiación en la estrategia de prevención de interbloqueo. (Respuesta en sección 5.4.3) La eliminación de la condición de no existencia de expropiación, se consigue permitiendo que el sistema operativo pueda expropiar a un proceso los recursos que retiene. La expropiación solo es posible en recursos para los cuales el sistema operativo puede salvar el estado en que se encontraban, para restaurarlo cuando el proceso expropiado consiga otra vez su uso. Este es el caso del procesador (cambio de contexto de un proceso) y la memoria principal (intercambio en memoria secundaria
5.10 Explicar una posible forma de eliminar la condición de espera con objeto de prevenir el interbloqueo. (Respuesta en sección 5.4.4) Puede eliminarse asignando un número a cada recurso y obligando a que los procesos sólo puedan solicitar los recursos en orden ascendente. La principal desventaja es que los recursos deben ser solicitados en ese orden y no cuando realmente se necesiten.
5.11 Explicar en qué consiste la estrategia de evitación de interbloqueos. (Respuesta en sección 5.5) Consiste en conceder sólo aquellas peticiones de recursos que tengan garantizado que no conducirán a un estado de interbloqueo.
5.12 ¿Qué es un estado seguro? ¿Y un estado inseguro? (Respuesta en sección 5.5.1) 1) Un estado se dice que es seguro si posibilita al menos una secuencia de asignación de recursos a los procesos que garantiza que estos puedan finalizar sin producirse interbloqueos. 2) Un estado inseguro no ofrece esa garantía, aunque no necesariamente tiene que conducir a un estado de interbloqueo.
5.13 Describir la técnica de denegación de asignación de recursos. (Respuesta en sección 5.5.2) Consiste en no conceder una petición de recurso si esta concesión puede conducir a un estado inseguro.
5.14 ¿Para qué se utiliza el algoritmo del banquero? 1) Este algoritmo asegura que el número de recursos asignados a todos los procesos nunca puede exceder del número de recursos del sistema. Además, nunca se puede hacer una asignación peligrosa, es decir asignar recursos de modo que no queden suficientes para satisfacer las necesidades de todos los procesos.
5.14 el algoritmo del banquero? ¿Cuáles son sus pasos? 2) Los pasos son: 1. Se parte de un estado inicial seguro Sk, con k = 0: Sk = {N, A, RE, RD} 2. Cuando un proceso solicita un recurso se simula su concesión y se crea un estado ficticio S' = {N', A', RE, R'D} 3. Se comprueba si S' es seguro. Si lo es, Sk+1 = S', en caso contrario se deniega la petición y se bloquea el proceso hasta que se le puedan conceder los recursos. 4. Volver al paso 2.
5.14 el algoritmo del banquero¿Qué inconvenientes presenta su uso? 3) En teoría el algoritmo del banquero es una técnica excelente para evitar los interbloqueos. Sin embargo, en la práctica realmente no se utiliza, ya que es difícil conocer por adelantado los recursos que van a necesitar los procesos durante su ejecución. Además dicho algoritmo parte de la suposición de que el número de procesos y de recursos existentes es fijo, lo cual no tiene por qué ser cierto.
5.15 Describir la técnica de denegación de la iniciación de un proceso. (Respuesta en sección 5.5.3) Esta técnica consiste en no iniciar un proceso si el número máximo de recursos que va a necesitar durante su ejecución puede conducir a un estado de interbloqueo. Esta técnica no es óptima, ya que supone que todos los procesos van a solicitar simultáneamente todas las instancias de recursos que van a necesitar.
5.16 ¿En qué consiste la estrategia de detección y recuperación de interbloqueos? Respuesta en sección 5.6) Esta estrategia consiste en no limitar las asignaciones de recursos a los procesos y comprobar periódicamente si se ha producido algún interbloqueo. En caso afirmativo, se emplea alguna técnica para recuperar el sistema del interbloqueo.
5.17 Enumerar los pasos del algoritmo de Coffman para la detección de interbloqueos. (Respuesta en sección 5.6.1) 1. Se marca cada proceso que tenga su fila en A a cero, dado que ese proceso no tiene ningún recurso asignado y, por tanto, no puede producir interbloqueo. 2. Se realiza la asignación X = RD, donde X es un vector auxiliar. 3. Para cada proceso i no marcado se comprueba Mi ≤X 4. Si no existe ningún i que cumpla la condición, el algoritmo finaliza. Si existe un proceso i que cumpla la condición se marca el proceso y se ejecuta hasta que finalice y libere los recursos, se realiza X = X + Ai (que incrementa los recursos disponibles con los liberados por el proceso i) y se vuelve al paso 3.
5.18 Describir algunas técnicas de recuperación del interbloqueo. (Respuesta en sección 5.6.3) • Recuperación mediante expropiación de recursos. Mediante algún criterio de selección se van expropiando recursos a algunos procesos y concediéndoselos a otros para conseguir salir del interbloqueo. • Recuperación mediante el retroceso de los procesos interbloqueados a algún punto de control previo. En cada punto de control se guarda el contexto de cada proceso. En caso de interbloqueo se restaura el contexto anterior. • Recuperación mediante aborto selectivo de procesos, estableciendo un criterio para ir abortando procesos (bloqueados o no). • Recuperación mediante el aborto de todos los procesos bloqueados. La solución más drástica pero la más utilizada.
5.19. Señalar las ventajas y los inconvenientes de las técnicas de detección y recuperación de interbloqueos. (Respuesta en sección 5.6.4) La detección y recuperación de interbloqueos permite una mayor concurrencia de procesos ya que no limita el número de asignaciones. Sin embargo, la detección introduce sobrecarga aunque puede limitarse con algoritmos eficaces. La recuperación sí produce elevada sobrecarga y desaprovechamiento de recursos. Es eficaz en sistemas con baja probabilidad de interbloqueos.
5.20. Explicar en qué consiste una estrategia mixta de tratamiento de interbloqueos. (Respuesta en sección 5.7.1) Estrategias mixtas, agrupando los recursos en diferentes clases, ordenando las clases para evitar la espera circular y utilizando para cada clase la estrategia más oportuna.
5.21. ¿En qué hipótesis se basa la estrategia de ignorar los interbloqueos? (Respuesta en sección 5.7.2) Se basan en la suposición de que la probabilidad de que se produzca un interbloqueo es pequeña y confían en el azar para que no se produzca. En el caso de que se produzca será el administrador del sistema el que se tenga que encargar de detectar el interbloqueo y recuperarlo.
6.1 Definir los siguientes conceptos: a) Espacio del núcleo. b) Espacio de usuario. (Respuesta en sección 6.2.1) a) Al espacio ocupado por el código, las estructuras de datos y la pila o pilas del núcleo del sistema operativo se le llama espacio del núcleo. El acceso al espacio del núcleo sólo puede realizarse en modo núcleo. b) Al espacio ocupado por la imagen de un proceso, es decir, a su espacio de direcciones de memoria lógica se denomina espacio de usuario. El acceso al espacio de usuario puede realizarse en modo núcleo o modo usuario.
6.2 ¿Qué es el área de intercambio en memoria secundaria? (Respuesta en sección 6.2.2) El sistema operativo reserva espacio en memoria secundaria para almacenar las imágenes de los procesos. A dicho espacio se le denomina área de intercambio.
6.3 ¿En qué consiste la operación de intercambio de procesos? (Respuesta en sección 6.2.2) Se denomina intercambio (swapping) a la operación de cargar la imagen de un proceso desde el área de intercambio a memoria principal y viceversa. Se habla de intercambio fuera de memoria principal (swapping out), al paso de la imagen desde el área de memoria principal al área de intercambio y de intercambio dentro de memoria principal (swapping in) al caso contrario.
6.4 ¿En qué casos se suele realizar la operación de intercambio fuera de memoria principal? ¿Y la operación de intercambio dentro de memoria principal? (Respuesta en sección 6.2.2) La operación de swapping out se suele realizar • Cuando se requiere espacio en memoria principal para cargar otros procesos. • Cuando otro proceso requiere de más espacio debido al crecimiento de su región de datos o de pila. • Cuando es necesario regular el grado de multiprogramación del sistema. La operación de swapping in suele realizarse • Cuando se desea aumentar el grado de multiprogramación. • Existe espacio en memoria principal para cargar más procesos. • Existe un proceso de mayor prioridad en el área de intercambio.
6.5 ¿Cuáles son las principales tareas del intercambiador? (Respuesta en sección 6.2.2) • Gestionar y asignar el espacio de intercambio. • Seleccionar procesos para ser intercambiados fuera de memoria principal. Se escogen primero aquellos procesos bloqueados con menor prioridad y mayor tiempo de residencia en memoria. A continuación se escogen los preparados con los mismos criterios anteriores. • Seleccionar procesos para ser intercambiados dentro de memoria principal. Se escogen aquellos procesos preparados para ejecución que lleven mayor tiempo de espera o con mayor prioridad.
6.6 ¿Qué dos razones justifican la existencia del área de intercambio? (Respuesta en sección 6.2.2) • Una operación de lectura y escritura en el área de intercambio es más rápida que en el sistema de archivos ya que no hay que traducir una ruta de acceso al archivo ni comprobar permisos de accesos. • La imagen de un proceso es una entidad dinámica, cuyo contenido suele diferir del contenido del archivo ejecutable conforme se va ejecutando el proceso. La imagen del proceso debe ser guardada para poder continuar con la ejecución del proceso sin tener que reiniciarla desde el principio.
6.7 Describir cómo se realiza la asignación de memoria en sistemas monoprogramados. (Respuesta en sección 6.3) En sistemas monoprogramados la memoria principal se divide en dos particiones. Una partición está reservada para contener permanentemente a aquellas partes del sistema operativo que deben estar siempre en memoria principal. Al conjunto de todas las partes del sistema operativo residentes en memoria principal se las denominada monitor del sistema operativo. La memoria principal no ocupada por el sistema operativo conforma otra partición que está disponible para almacenar de forma temporal a un proceso de usuario o a un proceso del sistema asociado a alguna parte no residente del sistema operativo. Puesto que solo puede estar cargado un proceso en la memoria principal, los procesos se ejecutan una a continuación de otro. Cuando un proceso finaliza, el sistema operativo puede cargar otro proceso en la única partición disponible para tal efecto.
6.8 ¿En qué consiste la técnica de particionarniento fijo? (Respuesta en sección 6.4.1) Consiste en dividir la memoria principal en un número fijo de N particiones que pueden ser de igual o diferente tamaño. Esta división puede realizarse manualmente al arrancar el sistema o de manera automática.
6.9 ¿Qué información contiene la tabla de descripción de particiones? (Respuesta en sección 6.4.1) Contiene la dirección física de comienzo (dirección base), el tamaño y el estado (libre o no) de cada partición.
6.10 ¿Qué desventajas presenta, el particionamiento fijo con particiones de igual tamaño? (Respuesta en sección 6.4.2) .-Limita el tamaño máximo de los procesos que se pueden cargar en memoria principal. Si un proceso tiene un espacio de direcciones lógicas mayor que el disponible en la partición no podrá cargarse. Esta limitación puede soslayarse si el proceso ha sido programado con la técnica de overlay o superposición, mediante la cual sólo una parte del proceso precisa que se encuentre en memoria. .-Fragmentación interna. Si el tamaño del espacio de direcciones lógicas es inferior al de la partición asignada existe un espacio libre no asignable a otros procesos.
6.11 ¿Qué ventajas e inconvenientes presenta el uso de una cola por partición? (Respuesta en sección 6.4.3) La ventaja que presenta esta forma de asignación de las particiones a los procesos es que intenta minimizar la fragmentación interna dentro de cada partición. Sin embargo, puede provocar que las partición de mayor tamaño se queden vacías mientras que las colas asociadas a particiones de menor tamaño e llenas de procesos esperando. Es decir, se está infrautilizando la memoria.
6.12 ¿Qué criterios de búsqueda se emplean con las particiones de distinto tamaño y una única cola de procesos? (Respuesta en sección 6.4.3) • Criterio del primer ajuste. Consiste en buscar el proceso más cercano a la cabecera de la cola cuyo tamaño sea igual o menor al de la partición libre. Este criterio de búsqueda produce búsquedas rápidas, sin embargo no minimiza la fragmentación interna. • Criterio del mejor ajuste. Busca en toda la cola al proceso de mayor tamaño que entre dentro de la partición. Este criterio de búsqueda minimiza la fragmentación interna; pero produce búsquedas más lentas al tener que buscar en toda la cola. Además discrimina a los procesos de pequeño tamaño, como suelen ser los asociados a tareas interactivas. Obviamente estos procesos deben ejecutarse rápidamente y no ser relegados continuamente por otros procesos de mayor tamaño. Una posible solución sería imponer un valor máximo de veces que un proceso puede ser discriminado.
6.13 ¿Qué desventajas presenta el particionarniento fijo con particiones de distinto tamaño? (Respuesta en sección 6.4.3) La técnica de particionamiento fijo con particiones de distinto tamaño presenta los mismos problemas que presentaba el uso de particiones de igual tamaño: la existencia de fragmentación interna y la limitación del tamaño máximo del espacio de direcciones lógicas del proceso que puede ser cargar en memoria. Sin embargo ambos problemas en el caso de particiones de tamaño variable son de magnitud menor que en el caso de particiones de tamaño fijo. Usando particiones de tamaño variable la fragmentación interna es más pequeña. Además es posible cargar procesos de mayor tamaño si se configura una partición lo suficientemente grande para contenerlos.
6.14 ¿Cómo se realiza la traducción de direcciones lógicas a físicas y la protección en la técnica de gestión de memoria mediante particionarniento fijo? (Respuesta en sección 6.4.4) La traducción de direcciones lógicas a direcciones físicas en la técnica de particionamiento fijo requiere el uso de dos registros: el registro base y el registro límite. Cuando un proceso es planificado, el sistema operativo carga en el registro base la dirección física de comienzo de la partición donde se aloja y en el registro límite la dirección lógica más alta del espacio de direcciones lógicas del proceso. Cuando se referencia una dirección se compara con el registro límite y si es igual o inferior a este se suma al registro base. Este mecanismo impide que se accedan a direcciones inferiores o superiores a las asignadas a su espacio lógico.
6.15 ¿Cuáles son las principales ventajas e inconvenientes de la técnica de gestión de memoria mediante particionamiento fijo? (Respuesta en sección 6.4.5) La principal ventaja es su facilidad de implementación, únicamente requiere de una tabla dedescripción de particiones y una o varias colas, lo que produce poca sobrecarga. Los principales inconvenientes son que provoca fragmentación interna, el tamaño máximo de unproceso y la limitación del grado de multiprogramación en función del número de particiones.
6.16. ¿En qué consiste la técnica de gestión de memoria denominada particionamiento dinámico? (Respuesta en sección 6.5.1) En el particionamiento dinámico el número de particiones no es fijo, sino que va variando con el tiempo. La memoria principal se divide en particiones, una zona contigua de memoria ocupada, y huecos, una zona contigua de memoria libre.
6.17. ¿Qué es la fragmentación externa? ¿Cómo se puede solucionar? (Respuesta en sección 6.5.1) a) Cuando un proceso debe ser cargado en memoria el sistema localiza un hueco del mismo tamaño o mayor que el proceso. Ese espacio define una partición y el espacio sobrante define un nuevo hueco. Conforme se van cargando procesos se van generando nuevos huecos cada vez más pequeños, en lo que se conoce como fragmentación externa. b) Una técnica para solucionar la fragmentación externa es la compactación de memoria, que consiste en agrupar todos los huecos y mover las particiones. El inconveniente es que se produce alta sobrecarga.
6.18. ¿Qué estructuras de datos debe mantener el sistema operativo para implementar el particionamiento dinámico? (Respuesta en sección 6.5.1) Estas estructuras pueden ser mapas de bits o listas enlazadas simples o dobles. Manteniendo una lista para huecos y otra para particiones asignadas es posible acelerar el proceso de búsqueda de hueco disponible.
6.19. Enumerar y describir brevemente algunos de los algoritmos de búsqueda más empleados en la asignación de memoria en el particionarniento dinámico. (Respuesta en sección 6.5.2) • Algoritmo del primer ajuste (first fit): Se asigna el primer hueco con un tamaño igual o mayor que S. Rápido, pero produce pequeños huecos al comienzo de la estructura de datos. • Algoritmo del siguiente ajuste (next fit): La búsqueda de un hueco de tamaño igual o mayor que S comienza donde se quedó la última búsqueda. Aunque se pensó para evitar los problemas del anterior, a la larga produce peores resultados. • Algoritmo del mejor ajuste (best fit): Se busca en toda la estructura de datos un hueco que sea igual o con el mínimo exceso posible del valor de S. Más lento, produce pequeños huecos no utilizables que obliga a compactar. • Algoritmo del peor ajuste (worst fit): Se busca el hueco más grande posible para intentar que los huecos que se generen sean aprovechables con posterioridad. Distintas simulaciones han demostrado que no es muy efectivo.
6.20. ¿Cómo se realiza la traducción de direcciones lógicas a físicas y la protección en la técnica de gestión de memoria mediante particionamiento dinámico? (Respuesta en sección 6.5.3) Al igual que en la técnica de particionamiento fijo, se utilizan dos registros dedicados denominados registro base y registro límite. Cuando se va a ejecutar un proceso el sistema operativo carga en el registro base la dirección física de inicio de la partición de memoria asociada al proceso y en el registro límite el tamaño de la partición. Cuando se haga referencia a una dirección lógica dentro del proceso se compara con el valor del registro límite. Si se excede, se lanza una excepción.
6.21. Señala las principales ventajas e inconvenientes de la técnica de particionamiento dinámico frente a la técnica de particionamiento fijo. (Respuesta en sección 6.5.4) Ventajas • Minimiza la fragmentación interna, que es como máximo cercana a una unidad de asignación • Permite ejecutar procesos de mayor tamaño. • Permite asignar fácilmente más espacio a procesos cuya región de datos o pila aumenta por encima del tamaño inicialmente asignado, reubicando el proceso o asignando un hueco contíguo. Los inconvenientes son • Estructuras de datos más complejas, que aumentan la sobrecarga del sistema. • Produce fragmentación externa, lo que reduce el aprovechamiento de la memoria.
6.22. ¿En qué consiste la paginación? (Respuesta en sección 6.6.1) La técnica de paginación consiste en dividir la memoria principal en bloques del mismo tamaño, Sp , denominados marcos de página o páginas físicas. El espacio de direcciones de un proceso también se divide en bloques del mismo tamaño Sp , denominados páginas o páginas lógicas.
6.23. Cuando se usa paginación ¿en qué campos se descompone una dirección física y una dirección lógica? ¿Cómo se puede determinar el tamaño de dichos campos? (Respuesta en sección 6.6.1) Una dirección física consta de dos campos: número de marco de página de f bits y el desplazamiento dentro del marco, de d bits. El tamaño del campo de número de marco de página se obtiene a partir del número de marcos de página existentes y el tamaño del campo desplazamiento a partir del tamaño de una página o de un marco de página expresado en unidades direccionables. Una dirección lógica consta de los campos de número de página, de p bits, y el desplazamiento dentro de la página, de d bits. El cálculo del tamaño de cada uno de estos campos es: min f { N MP ≤ } min d{ Sp ≤ } min p { N P ≤ } El tamaño de una dirección física es n = f + d, y el de una dirección lógica m= p + d. La longitud de una dirección lógica es menor o igual que la longitud de la dirección física.
6.24. Enumerar y describir brevemente las estructuras de datos que utiliza el sistema operativo para implementar la paginación. (Respuesta en sección 6.6.1) Tablas de páginas. A cada proceso se le asigna una. Cada entrada i de la tabla contiene el marco j donde se encuentra almacenada la página i del proceso y los permisos de acceso. • Tabla de marcos de página. Con tantas entradas como marcos de página tiene la memoria principal. Cada entrada j contiene su estado libre u ocupado, punteros para crear una lista de marcos libres y la ubicación en memoria secundaria de la copia de la página i contenida en el marco. • Lista de marcos libres. Consultada cuando hay que asignar espacio a los procesos. Cuando hay que asignar un marco se selecciona el primero de la lista. Los nuevos marcos libres se añaden por el final.
6.25. ¿Qué es la paginación simple? (Respuesta en sección 6.6.1) La técnica de paginación consiste en dividir la memoria principal en bloques del mismo tamaño, Sp , denominados marcos de página o páginas físicas. El espacio de direcciones de un proceso también se divide en bloques del mismo tamaño Sp , denominados páginas o páginas lógicas. Una página de un proceso se carga en un marco de página libre de memoria principal.
6.26. Describir la traducción de direcciones en paginación con un registro base. (Respuesta en sección 6.6.2) El hardware debe disponer de ciertos componentes donde cargar la información necesaria para realizar la traducción de instrucciones. Pueden ser: • Registro base, donde se almacena la dirección física de comienzo de la tabla de páginas. • Banco de registros, para almacenar una copia completa de la tabla de páginas. • Buffer de traducción de vista lateral (Translation Lookaside Buffer, TLB), una caché de alta velocidad donde guardar algunas entradas de la tabla de páginas.
6.27. Describir la traducción de direcciones en paginación con un banco de registros. (Respuesta en sección 6.6.2) Cuando se produce un cambio de contexto, el sistema operativo carga en el banco de registros una copia de la tabla de páginas del proceso que se va a ejecutar. De esta forma, en vez de localizar el número de marco donde se aloja la página en la tabla de páginas en memoria se accede a su copia en el banco de registros. Esta solución no precisa de ningún acceso a memoria, por lo que es más rápida, sin embargo sólo puede utilizarse si el tamaño de la tabla de páginas no excede del tamaño del banco de registros. El cambio de proceso se ve ralentizado al tener que cargar toda la tabla de páginas en el banco de registros desde la memoria
6.28. Describir la traducción de direcciones en paginación con un TLB. (Respuesta en sección 6.6.2) Un TLB es una memoria caché especial de alta velocidad con una capacidad de entre 8 y 4096 entradas. Cuando el procesador hace referencia a una dirección lógica DirL, primero se examina en paralelo todas las entradas del TLB y se verifica si alguna coincide con el número de página i a que hace referencia. Si se produce un acierto, se recupera el número de marco j de esa entrada para componer la dirección física DirF junto con el campo desplazamiento d. Si se produce un fallo, se acude a su búsqueda en la tabla de páginas en memoria como se realiza con el método de registro base y esa entrada se copia al TLB en una posición libre o, si está lleno, mediante algún algoritmo de reemplazo. Cuando se produce un cambio de proceso se carga en el registro base la dirección de la tabla de páginas y se limpia el TLB, que se irá cargando a medida que se vayan produciendo fallos en la búsqueda de entradas. El uso del TLB está a medio camino entre la solución de registro base y la de banco de registros.
6.29. ¿Qué es una tabla de páginas paginada? ¿Cuántos accesos a memoria requiere? (Respuesta en sección 6.6.3) Para evitar las tablas de páginas de gran tamaño estas se pueden descomponer, a su vez, en páginas, obteniendo una tabla de páginas paginada. De esta forma la tabla de páginas se fragmenta y puede ubicarse en memoria principal de forma no contigua.
6.30. ¿Qué es una tabla de páginas invertida? (Respuesta en sección 6.6.4) Una tabla de páginas invertida tiene asociada una entrada por cada marco j de memoria principal, vez de una entrada por cada página i de un proceso. De ahí el nombre de tabla invertida. En consecuencia el número de entradas de la tabla de páginas invertida es fijo y es igual al número de marcos. No depende por tanto, del número de procesos que haya en el sistema o del número de páginas en que se divida espacio virtual de estos procesos.
6.31. ¿Cómo se realiza la protección en la técnica de paginación? (Respuesta en sección 6.6.5) En la gestión de memoria mediante paginación, la protección se implementa a nivel de página. Cada entrada ide la tabla de páginas de un proceso contiene un campo de uno o varios bits que permiten determinar el tipo de acceso permitido sobre dicha página: w, rw, x, etc. En caso de intento de violación se lanza una excepción. También se incorpora un registro límite donde se carga el número de páginas de que consta el proceso.
6.32. ¿Cómo se implementa la compartición de páginas? (Respuesta en sección 6.6.6) El espacio lógico de un proceso puede dividirse en las regiones de código, datos y pila. En paginación simple, todas las páginas deben estar cargadas en memoria. En sistemas de tiempo compartido, multiples usuarios pueden estar ejecutando el mismo programa de manera simultánea. Si el programa posee código reentrante, no modificable, se puede ahorrar espacio en memoria cargando sólo una imagen de ese proceso y compartiéndola entre todos los usuarios. Se utiliza un contador de referencias que lleva la cuenta del número de instancias activas. Se elimina de memoria cuando el contador se hace cero.
6.33. Enumerar las ventajas y los inconvenientes de la paginación simple. (Respuesta en sección 6.6.7) La paginación simple presenta varias ventajas • No produce fragmentación externa. • Produce una sobrecarga pequeña, la gestión de las estructuras de datos no requiere de mucho tiempo de procesador. • No precisa de intervención humana para la definición de las particiones. • Permite compartición de código común entre varios procesos. La principal desventaja es que produce fragmentación interna, de término medio, media página por proceso. La paginación es invisible al programador, lo que puede ser considerado tanto como una ventaja como un inconveniente.
6.34. ¿En qué consiste la segmentación? (Respuesta en sección 6.7.1) La segmentación es un esquema para implementar espacios de direcciones virtuales.
6.35. ¿Cuáles son los campos de que consta la dirección lógica de un segmento? ¿Cómo se puede determinar su tamaño? (Respuesta en sección 6.7.1) Una dirección lógica consta de dos campos: el número de segmento, de s bits, y el desplazamiento dentro del segmento, de d bits. En un proceso se pueden tener direcciones lógicas de diferente tamaño, si bien el campo número de segmento tendrá siempre la misma longitud, el campo desplazamiento depende del número de unidades direccionables que existan en ese segmento en concreto. El tamaño s del campo número de segmento se obtiene a partir del número total de segmentos Ns de que consta un proceso X, resolviendo la siguiente desigualdad: min s { N s ≤ } Por su parte el tamaño mínimo d del campo desplazamiento dentro de un segmento se obtiene a partir de : mind{Ns≤ }
6.36. ¿Qué es la segmentación simple? (Respuesta en sección 6.7.1) La segmentación simple es una técnica de gestión de la memoria que soporta los elementos en los que se descompone el código de un programa. Básicamente, el compilador divide el programa en segmentos. Cada segmento es una entidad lógica conocida por el programador y asociada a una determinada estructura de datos o módulo. Cada segmento, código principal, subrutinas, datos, pila... tiene su propio espacio de direcciones lógicas. Cuando el sistema operativo crea un proceso asociado a un determinado programa, asigna a cada segmento un identificador numérico positivo h, el número del segmento.
6.37 ¿Qué información contiene una tabla de segmentos? (Respuesta en sección 6.7.1) Contiene la dirección física base de cada segmento y su longitud, además de otros datos como permisos, ubicación en memoria secundaria, etc.
6.38. Describir la traducción de direcciones en segmentación con un registro base. (Respuesta en sección 6.7.2) Si se dispone de un registro base, en cada cambio de contexto el sistema carga en ese registro la dirección física de comienzo de la tabla de segmentos, DirF0, obtenida del bloque de control del proceso. Para llegar a una dirección física DirFa partir de una dirección lógica DirL se siguen estos pasos: • Se suman el campo número de segmento h de la dirección lógica y DirF0para obtener la dirección DirF1de la entrada h de la tabla de segmentos. • Se accede a DirF1y se lee la dirección física base y la longitud del segmento h. • Se compara el campo desplazamiento con la longitud del segmento, lanzando una excepción si se supera el tamaño. • Si el desplazamiento es menor que la longitud se suma la dirección física base del segmento h al desplazamiento indicado en DirL para obtener la dirección física DirFequivalente.
6.39. ¿Cómo se implementa la protección en la técnica de segmentación? (Respuesta en sección 6.7.3) La protección del espacio de direcciones se implementa a nivel de segmento. En cada entrada hde la tabla de segmentos de un proceso se almacenan los permisos de acceso sobre dicho segmento. Adicionalmente suele haber un registro límite donde se almacena en cada cambio de contexto el número de segmentos de que consta el proceso que va a ser ejecutado
6.40 ¿Cómo se implementa la compartición de segmentos en la técnica de segmentación? (Respuesta en sección 6.7.4) Esta técnica permite que un segmento de código o datos sea compartido por más de un proceso. Para ello el sistema operativo mantiene una tabla con los segmentos cargados en memoria principal en la que se contabilizan las referencias que otros procesos realizan a estos segmentos. Cuando el contador de referencias se haga cero, el segmento puede ser eliminador de memoria principal.
6.41. Enumerar las ventajas y los inconvenientes de la segmentación simple. (Respuesta en sección 6.7.5) Como ventajas: • Produce una fragmentación interna despreciable, de como máximo cercana a una unidad de asignación. • Soporta la visión modular que el programador posse del programa. 48 Capítulo 6. Administración de memoria • Permite manejar con facilidad estructuras de datos que crecen. Si un segmento precisa de más espacio, tan solo hay que asignarle un hueco contiguo o reasignarlo a un hueco de mayor tamaño. • Facilita la protección y compartición de las distintas partes de un programa al asignarse un segmento independiente a cada una de ellas. Entre los inconvenientes, destacan: • Produce fragmentación externa, lo que reduce el aprovechamiento de la memoria y requiere el uso de compactación, aunque menor que el producido con la técnica del particionamiento dinámico. • Aumenta la sobrecarga del sistema debido a que las estructuras de datos y algoritmos son más complejos que en particionamiento dinámico.
6.42. ¿En qué consiste la técnica de segmentación con paginación? (Respuesta en sección 6.8) Mediante esta técnica se divide cada segmento de un proceso en un determinado número de páginas. Una dirección lógica se descompone en tres campos: número de segmento, de s bits, número de página, de p bits y desplazamiento, de d bits. Con la carga de un proceso en memoria principal, el sistema operativo crea una tabla de segmentos del proceso y varias tablas de páginas, una por segmento. La entrada de la tabla de segmentos no contiene la dirección física del segmento, sino la de la tabla de páginas asociada al segmento. Ahora, el campo longitud del segmento viene expresado en número de páginas.
7.1. ¿Qué ventajas e inconvenientes presenta el uso de memoria virtual? (Respuesta en sección 7.1) Ventajas: Permite aumentar el grado de multiprogramación del sistema,Además permite ejecutar proceso con un espacio de direcciones virtuales de tamaño superior al tamaño de la memoria física disponible para procesos. Reduce el número de operaciones de E/S para intercambiar un proceso bloqueado desde memoria principal a secundaria Inconvenientes: se debe diseñar con cuidado ya que el rendimiento del sistema se puede ver afectado. Por otra parte, requiere que el sistema operativo realice varias tareas
7.2. ¿Qué requisitos debe reunir el hardware de un computador para poder implementar la memoria virtual? (Respuesta en sección 7.1) La implementación de la memoria virtual requiere que el hardware del computador soporte el reinicio de las instrucciones de su repertorio. Además cuando se implementa la memoria virtual también se suele utilizar un componente hardware denominado unidad de gestión de memoria (Memory Managemeru Unit, MMU) que se encarga de realizar la traducción de una dirección virtual en una dirección física. Una MMU puede implementarse en un circuito integrado independiente o dentro del circuito integrado de procesador. Consta de registros, sumadores y comparadores. También puede tener un banco de registros o un TLB.
7.3. Describir brevemente el funcionamiento de la técnica de paginación por demanda. (Respuesta en sección 7.2.1) La técnica de paginación por demanda divide el espacio de memoria principal en bloques de igual tamaño, marcos de página, y el espacio de direcciones del proceso en bloques de igual tamaño, páginas. Para que un proceso se pueda ejecutar no es necesario que todas sus páginas se encuentren cargadas en memoria principal. Cuando se referencia una página no cargada se produce un fallo de página.
7.4. ¿Qué tareas debe realizar el sistema operativo cuando usa la técnica de paginación por demanda? (Respuesta en sección 7.2.1) • Reemplazamiento de páginas, en caso de que se produzca un fallo de página y no haya ningún marco libre, es necesario decidir qué marco hay que intercambiar a memoria secundaria. • Asignación de marcos de memoria principal. El sistema debe decidir cuántos marcos asignar inicialmente a cada proceso. • Control de carga, decidir el grado de multiprogramación del sistema. • Copia en memoria secundaria de páginas modificadas, en qué momento y de qué forma.
7.5. Enumerar y describir brevemente los campos que suele contener una entrada de la tabla de páginas de un proceso cuando se utiliza paginación por demanda. (Respuesta en sección 7.2.1) Número de marco de página. • Validez o presencia, que indica si la página es válida o no. • Protección, de uno a tres bits que indican los permisos de R, W y X. • Referenciada, un bit activo cuando la página es referenciada por una dirección virtual. • Modificada, un bit que indica si la página ha sido modificada y debe ser actualizada en memoria secundaria.
7.6. ¿Qué elementos hardware son necesarios para lograr el reinicio de instrucciones en la técnica de paginación por demanda? (Respuesta en sección 7.2.2) La arquitectura del computador debe poder reiniciar la instrucción desde su inicio, fase de búsqueda. Para ello, se suele disponer de un registro donde se almacena el valor del registro contador de programa CP antes de iniciar la fase de búsqueda.
7.7. En la técnica de paginación por demanda ¿qué eventos provocan que el sistema operativo tenga que acceder a la memoria secundaria para leer o escribir páginas de procesos? (Respuesta en sección 7.2.3) Cuando la referencia a una página i produce un fallo de página, el sistema operativo debe leer dicha página en memoria secundaria y copiarla en la memoria principal. También cuando se produce un fallo de página y no existen marcos libres en memoria principal el sistema operativo debe seleccionar una página para ser reemplazada. Si la página ha sido modificada o no existe una copia de la misma en el área de intercambio dicha página debe ser escrita allí.
7.8. ¿En qué localizaciones de memoria secundaria puede buscar el sistema operativa una página de un proceso? (Respuesta en sección 7.2.3) • Bloque de disco de un archivo ejecutable. Parte de las páginas en que se divide el espacio de direcciones, código y datos, son creadas por el sistema operativo a partir del archivo ejecutable del que es instancia el proceso. • Bloque de disco del área de intercambio, utilizada para el almacenamiento de las páginas de un proceso cuando se intercambia fuera y para el almacenamiento de las páginas que han sido seleccionadas para ser reemplazadas tras un fallo de página.
7.9. Señala las ventajas e inconvenientes de que el sistema operativo copie por adelantado en el área de intercambio todas las páginas del espacio de direcciones virtuales de un proceso. (Respuesta en sección 7.2.3) Ventaja es acelerar el tratamiento de los fallos de página.El inconveniente es el espacio de direcciones virtuales de un proceso puede aumentar su tamaño debido al crecimiento de la región de pila o de la región de datos.Otro problema que presenta la estrategia comentada es que consume bastante espacio del área de intercambio, ya que todas las páginas de un proceso son copiadas por adelantado en dicha área, independientemente de que se vayan a utilizar o no. Debe tenerse en cuenta que en un sistema con multiprogramación, en el área de intercambio estarían todas las páginas de todos los procesos.
7.10. ¿Qué significa que un marco esté bloqueado o pinchado? Señalar una situación donde se realice el bloque de marcos. (Respuesta en sección 7.2.4) Se dice que un marco de memoria está bloqueado pinchado (pinning) si su contenido no puede ser reemplazado. Este bloqueo resulta útil si el marco contiene información que conviene que no sea borrada, por ejemplo los marcos reservados para alojar el espacio del núcleo.
7.11. ¿Qué acciones realiza el sistema operativo para el tratamiento de un fallo de página? (Respuesta en sección 7.2.5) Si el bit de validez está desactivado se produce un fallo de página y se guarda en la pila el contenido del contador del programa y de los registros especiales y pasa el control al sistema operativo. Este guarda el contexto del proceso cuya ejecución produjo la excepción y comprueba que, se debe a un fallo. Intenta averiguar la dirección que produjo el fallo. Se comprueba que ésta sea legal, si no lo es se aborta el proceso. Si es legal, se consulta la lista de marcos libres y si no hay ninguno se invoca a un algoritmo de reemplazo para seleccionar un marco donde cargar la página que produjo el fallo. Si la página contenida en el marco elegido ha sido modificada, se planifica para ser copiada a disco duro y mientras tanto se bloquea el proceso y el marco para evitar que pueda ser seleccionado por otro proceso. Una vez que el marco está limpiose planifica la página a ser copiada de memoria al marco, se actualizan las tablas de página y se restaura el contador de programa y los registros, se carga su contexto y se sigue
7.12. ¿Qué afirma el principio de localidad de referencias? ¿Qué es una zona de localidad? (Respuesta en sección 7.3) Afirma que durante un determinado intervalo de tiempo de ejecución de un proceso éste referencia direcciones virtuales próximas entre sí, esto es, páginas cercanas. Este conjunto de páginas forma una zona de localidad del proceso.
7.13. ¿Qué es el conjunto de trabajo de un proceso? (Respuesta en sección 7.3) El conjunto de trabajo de un proceso en el instante ti de tiempo virtual es el conjunto de páginas distintas que el proceso ha referenciado en sus últimas δ referencias a memoria principal.
7.14. ¿Qué conclusiones se derivan del estudio del conjunto de trabajo de un proceso? (Respuesta en sección 7.3) Una página miembro de un conjunto de trabajo no debe ser seleccionada como página víctima para ser reemplazada ya que provocaría un nuevo fallo de página. • Un proceso debe tener asignados el suficiente número de marcos para poder tener cargado en memoria su conjunto de trabajo. En otro caso estará provocando continuamente fallos de página produciendo el fenómeno de sobrepaginación o trasiego (thrashing).
7.15. ¿Qué es la sobrepaginación? (Respuesta en sección 7.3) Un proceso debe tener asignados el suficiente número de marcos para poder tener cargado en memoria su conjunto de trabajo. En otro caso estará provocando continuamente fallos de página produciendo el fenómeno de sobrepaginación o trasiego (thrashing).
7.16. Definir los siguientes términos: a) Página víctima. b) Conjunto de marcos candidatos. (Respuesta en sección 7.4) a) El reemplazamiento de páginas consiste en seleccionar una página k cargada en un marco j de memoria principal para ser reemplazada por la página ia la que hacía referencia la dirección virtual que produjo el fallo de página. La página seleccionada para ser reemplazada se denomina página víctima. b) El conjunto de marcos candidatos hace referencia a los marcos de memoria principal donde se encuentran almacenadas las páginas candidatas a ser reemplazadas.
7.17. Señalar las diferencias entre las estrategias de reemplazamiento de páginas local y global. (Respuesta en sección 7.4) Estrategia de reemplazamiento de páginas local, cuando el conjunto de páginas candidatas a ser reemplazadas pertenecen al mismo proceso que provocó el fallo. • Estrategia de reemplazamiento de páginas global, cuando el conjunto de páginas candidatas está formado por todas las páginas cargadas en memoria principal en marcos no bloqueados. La estrategia de reemplazamiento local es más fácil de analizar, pero su implementación es más complicada y produce mayor sobrecarga.
7.18. ¿Qué criterios se tienen en cuenta para establecer el rendimiento de un algoritmo de reemplazamiento? (Respuesta en sección 7.4) La bondad de un algoritmo de reemplazamiento se analiza en función de su rendimiento, entendiendo como tal al número de fallos de página que permite evitar y al tiempo de procesador que requiere su ejecución, es decir, la sobrecarga que introduce al sistema. Lo deseable es que el algoritmo de reemplazamiento que utilice el sistema operativo minimice el número de fallos de página y produzca una sobrecarga mínima. El problema es que estos dos requisitos son opuestos, por lo que hay que tratar de llegar a un compromiso entre ambos.
7.19. ¿Qué es la anomalía de Belady? (Respuesta en sección 7.4) Es deseable que el algoritmo de reemplazamiento disminuya el número de fallos de página a medida que aumenta el número de marcos de página de la memoria principal. Si esto no sucede se dice que el algoritmo padece la anomalía de Belady . El algoritmo FIFO sufre de esta anomalía.
7.20. Describir el algoritmo de reemplazamiento óptimo, sus ventajas e inconvenientes. (Respuesta en sección 7.4.1) El algoritmo de reemplazamiento óptimo selecciona para ser reemplazada aquella página del conjunto de páginas candidatas a ser reemplazadas que tardará más en volver a ser referenciada por una dirección virtual. En consecuencia con este algoritmo, para un determinado número de marcos, se obtiene el menor número de fallos de página posibles. Es decir, minimiza el número de fallos de página, de ahí el calificativo de algoritmo óptimo. El problema que presenta este algoritmo es que no se puede implementar en la práctica ya que requiere conocer la cadena de direcciones virtuales futuras a las que hará referencia el procesador. Pese a este inconveniente el algoritmo de reemplazamiento óptimo sí que se utiliza como modelo con el que comparar al resto de algoritmos de reemplazamiento.
7.21. Describir el algoritmo de reemplazamiento LRU, sus ventajas e inconvenientes. (Respuesta en sección 7.4.2) El algoritmo de reemplazamiento de la página usada menos recientemente o algoritmo LRU (Least Recently Used) selecciona para ser reemplazada la página del conjunto de páginas candidatas que lleva más tiempo sin ser referenciada. Este algoritmo es bastante bueno pero de implementación compleja. Produce bastante sobrecarga.
7.22. Describir dos posibles implementaciones del algoritmo de reemplazamiento LRU. (Respuesta en sección 7.4.2) Suele implementarse mediante una lista en la que cada entrada contiene el número de página del conjunto de páginas a ser reemplazada. Cada vez que una página es referenciada se coloca al principio de la lista y al final la página menos referenciada, esto es, la candidata a ser sustituida. Cada vez que se referencia una dirección virtual la lista debe ser reordenada. Otra implementación se basa en un contador hardware que se incrementa cada vez que se referencia una dirección. En la tabla de páginas se añade un campo que almacena ese valor cuando una página es referenciada. De este modo, se selecciona para reemplazar la página que contenga el menor valor en ese campo.
7.23. Describir el algoritmo de reemplazamiento mediante envejecimiento. ¿Qué ventaja presenta este algoritmo frente al LRU? (Respuesta en sección 7.4.3) Se utiliza un registro de desplazamiento de n bits, inicialmente a cero. Cada cierto tiempo T el contenido del registro se desplaza a la derecha y se carga en el bit más significativo el bit referenciada,r , después este bit se pone a cero. De este modo, la página a ser reemplazada es la que tenga un menor valor en el registro. El tamaño del registro determina la edad máxima que puede registrarse, ya que en un registro de 8 bits, todos a cero, no se puede determinar si la página no se ha referenciado en un tiempo ≥ 8To se acaba de cargar. El algoritmo de reemplazamiento mediante envejecimiento (aging) es una aproximación al algoritmo LRU pero que introduce menor sobrecarga ya que puede implementarse de forma más eficiente.
7.24. Describir el algoritmo de reemplazamiento PIFO, sus ventajas e inconvenientes. (Respuesta en sección 7.4.4) El algoritmo de reemplazamiento FIFO selecciona para ser reemplazada aquella página del conjunto de páginas candidatas a ser reemplazadas que lleva más tiempo cargada en memoria principal. Para ello, el sistema mantiene una lista enlazada o cola FIFO en la que cada entrada contiene el número de página de una página del conjunto de páginas candidatas a ser reemplazadas. Cuando una página se carga en memoria se coloca al final de la lista. Así, la página que se encuentre en la cabeza de la lista indica la página que lleva más tiempo cargada en memoria y será la elegida para ser reemplazada. La gestión de este algoritmo requiere muy poco tiempo de proceso. Es el más sencillo de programar y de implementar, pero no tiene una buena tasa de aciertos y además padece la anomalía de Belady.
7.25. Describir el algoritmo de reemplazamiento de la segunda oportunidad. (Respuesta en sección 7.4.5) Es una variante del algoritmo FIFO que busca la página que lleva más tiempo cargada en memoria y no ha sido referenciada recientemente. Básicamente se consulta el bit referenciada, r, de la página que se encuentra al principio de la cola FIFO, si res cero, entonces es seleccionada para ser reemplazada. Si res 1, se pone a cero y se envía la página al final de la cola. Se obtiene un mejor rendimiento que con FIFO pero a costa de mayor sobrecarga, ya que hay que estar moviendo elementos en la cola.
7.26. Describir el algoritmo de reemplazamiento del reloj mejorado. (Respuesta en sección 7.4.5) Una forma de disminuir la sobrecarga es utilizar una lista o cola circular. • r = 0 y m = 0. Página no referenciada recientemente y no modificada, candidata ideal para ser reemplazada. • r = 0 y m = 1. Página no referenciada recientemente pero modificada. De ser elegida es preciso actualizar la página en la memoria de intercambio. • r = 1 y m = 0. Ha sido referenciada recientemente, por lo que no es buena candidata. • r = 1 y m = 1. Ha sido referenciada y modificada recientemente, por lo que es probable que vuelva a ser referenciada y, además, es preciso actualizarla en memoria de intercambio. Con estas premisas, el algoritmo del reloj busca en primer lugar, a partir de la posición del puntero, una página se busca una página con r = 0 y m = 0, si no se encuentra se busca entonces alguna con r = 0 y m = 1, pero actualiza todos los r = 1 y los pone a cero. Si no encuentra ninguna vuelve a buscar r = 0 m = 0, de no encontrarla por cuarta vez busca una página con r = 0 m = 1, con la seguridad de que ahora sí tendrá éxito ya que en la segunda ronda todos los r estan a 0
2. ¿Qué función tiene el núcleo de un sistema operativo? (Respuesta en sección 1.2.1) El núcleo (kernel) del sistema operativo oculta el hardware a los programadores de los siguientes niveles, suministrando un conjunto de instrucciones denominadas llamadas al sistema con el que los programas ubicados en los niveles superiores pueden solicitar los servicios del núcleo. Sobre el núcleo se sitúa el nivel formado por los programas de utilidades del sistema operativo
3. ¿Cuáles son los principales servicios de un sistema operativo? (Respuesta en sección 1.2.2) Ejecución de programa , Acceso a los dispositivos de E/ S, Manipulación del sistema de archivos , Comunicación y sincronización entre los programas, Detección y respuesta a errores(hard o soft), Protección y seguridad, Contabilidad(estadísticas de rendimiento, logs)
4. En qué consiste el procesamiento por lotes o batch? (Respuesta en sección 1.3.1) Con el fin de disminuir el tiempo de procesamiento desperdiciado, la solución que se adoptó de forma general fue el procesamiento por lotes o procesamiento batch, que consiste en agrupar en lotes los traba- jos con necesidades simi1ares, los cuales ahora se ejecutarían en el computador como un grupo
5. En qué consiste la técnica de multiprogramación? (Respuesta en sección 1.3.2) Mantener en la memoria principal varios trabajos simultáneamente. Si el trabajo que se está ejecutando actualmente en el procesador requiere la realización de una operación de E/S, mientras se completa dicha operación el procesador puede ejecutar otro trabajo. De esta forma se consigue aumentar el rendimiento del procesador. La multiprogramación requiere que el sistema operativo sea capaz de gestionar la memoria principal y la memoria secundaria. Además es necesario que disponga de un algoritmo de planificación de los. También es necesario que el hardware soporte mecanismos de protección de la memoria, E/S controlada por interrupciones y DMA.
6. Cuáles son los principales criterios para clasificar los sistemas operativos? Respuesta en sección 1,4) el número de usuarios que se pueden atender simultáneamente, el número de programas cargados en la memoria principal, los requisitos temporales de los programas a ejecutar y la finalidad del computador.
7. Qué es un sistema multiusuario? (Respuesta en sección 1,4.l) Un sistema operativo se dice que es multiusuario si puede atender simultáneamente a múltiples usuarios. Cada usuario trabaja con el sistema sin percibir que existen otro usuarios conectados. Ejemplos de sistemas operativos multiusuario son: UNIX, Windows Server y Linux. Por el contrario, un sistema operativo monousuario es aquél que solo puede atender a un único usuario simultáneamente. Ejemplos de sistemas operativos monousuario son: MS-DOS, Windows y Mac OS.
8. Qué es un sistema monoprogramado? (Respuesta en sección 1,4.2) En un sistema operativo monoprogramado o con monoprogramación, en la memoria principal del computador se almacena el sistema operativo y un único programa de usuario (ver Figura 1.2a), que tiene a su disposición todos los recursos del computador. El procesador ejecuta dicho programa ininterrumpi- damente desde su inicio hasta su finalización. Cuando finaliza dicho programa se carga otro programa en memoria que pasa a ser ejecutado. Un ejemplo de sistema operativo monoprogramado es MS-DOS
9. Qué define el grado de multiprogramación? (Respuesta en sección l.4.2) En un sistema operativo multiprogramado o con multiprogramación, en la memoria principal se almacenan (ver Figura] .2b), aparte del sistema operativo, varios programas, que deben compartir durante su ejecución los recursos del computador. Si un programa A está siendo ejecutado en el procesador, el sistema operativo puede interrumpir su ejecución para ejecutar otro programa B cargado en la memoria principal. Posteriormente, la ejecución del programa A puede ser reanudada. Se llama grado de multiprogramación al número de programas cargados en memoria principal. Si dicho grado es constante el número de programas que se cargan en memoria debe ser igual al número de programas que se eliminan de ella.
10. Cuáles son los requisitos de la multiprogramación? (Respuesta en sección l.4.2) Para implementar la multiprogramación, el sistema operativo debe ser capaz de gestionar el uso de los recursos del computador entre todos los programas. Para ello debe disponer de algoritmos de planificación, mecanismos de sincronización y mecanismos de asignación y protección de la memoria principal y de la memoria secundaria. También es necesario que el hardware soporte mecanismos de protección de la memoria, E/S controlada por interrupciones y DMA.
11. Cuáles son los beneficios de la multiprogramación? (Respuesta en sección l,4.2) En definitiva, el uso de la multiprogramación permite disminuir los tiempos de finalización de los pro- gramas y aumentar el uso de los recursos del sistema
12. Enumerar y describir brevemente los tipos de sistemas operativos que se pueden distinguir en función de los requisitos temporales de los programas que se van a ejecutar. Respuesta en sección l.4.3) Sistemas operativos por lotes o sistemas batch. En estos sistemas los trabajos se procesan agrupados en lotes de trabajos con necesidades similares Sistemas operativos de tiempo compartido o sistemas interactivos. Son sistemas multiusuario con multiprogramación donde cada usuario introduce desde su terminal una orden, bien mediante el uso del teclado o del ratón, y espera por la respuesta del sistema operativo Sistemas operativos de tiempo real. Son sistemas con multiprogramación que soportan aplicaciones de tiempo real, que son aquellas que reciben unas entradas procedentes de unos sensores externos, a través de unas tarjetas de adquisición de datos, y deben generar unas salidas en un tiempo de respuesta preestablecido Sistemas operativos híbridos. Son aquellos sistemas operativos con capacidad para soportar tanto trabajos por lotes como aplicaciones interactivas o incluso aplicaciones suaves de tiempo real
13. Cómo se realiza la gestión de memoria principal y de archivos en los sistemas operativos por lotes o batch? (Respuesta en sección 1.4.3) La memoria se suele dividir en dos regiones: una ocupada permanentemente por el sistema operativo y la otra por programas transitorios. Asimismo es sencilla la gestión de archivos, puesto que el acceso a los mismos se realiza de forma secuencial, lo que no requiere prácticamente de mecanismos de protección o de control de accesos concurrentes.
14. Cuáles son los requisitos de un sistema operativo de tiempo compartido? Respuesta en sección 1A.3) requieren un tiempo de respuesta pequeño, típicamente meno- res de un segundo, ya que en caso contrario el usuario pensará que el sistema es insensible a su acciones. Ejemplo de aplicaciones interactivas son: los intérpretes de comandos, los editores y las aplicaciones con GUI. Un sistema operativo de tiempo compartido debe disponer de un algoritmo de planificación que asegure un uso equitativo del procesador a todos los programas. También debe contar con mecanismos de protección de la memoria principal y de la memoria secundaria, así como con mecanismos de control de acceso concurrente a los archivos.
15. Qué tipo de algoritmo de planificación emplean los sistemas operativos de tiempo real? Respuesta en sección 1A.3) utilizan un algoritmo de planificación basado en prioridades de tipo expropiativo, de tal forma que el proceso más prioritario siempre consigue el uso de los recursos que necesita. La gestión de la memoria es menos exigente que en otros sistemas con multiprogramación, ya que muchos procesos residen permanentemente en memoria principal con el fin de lograr unos tiempos de respuesta rápidos. Además, el número de procesos suele ser está- tico y existe poco movimiento de programas entre la memoria primaria y la secundaria. Asimismo no suele ser necesaria la administración de archivos
16. Enumerar por orden las prioridades de ejecución de trabajos en un sistema operativo híbrido, y señalar algún ejemplo de sistema operativo de este tipo. (Respuesta en sección 1A.3) Normalmente se asigna a los trabajos por lotes una prioridad de ejecución más pequeña que a las aplicaciones interactivas, y a éstas una prioridad de ejecución menor que a las aplicaciones suaves de tiempo real. Así, los trabajos por lotes se ejecutan cuando el procesador no tiene que ejecutar aplicaciones interactivas, y éstas cuando no hay que ejecutar aplicaciones suaves de tiempo real. Ejemplos de sistemas operativos híbridos son UNIX y Linux.
17. Qué tipos de sistemas operativos se distinguen en función de la finalidad del computador?Respuesta en sección 1,4,4) Sistemas operativos para macrocomputadores, para servidores de red, para computadores personales, para computadores de mano, sistemas operativos integrados
18. Señalar las principales diferencias entre los sistemas operativos paralelo o multiprocesador, y los sistemas operativos distribuidos. (Respuesta en sección 1.4.5) multiprocesador: se ejecutan en sistemas informáticos con múltiples procesadores, los cuales comparten el bus y el reloj, y en ocasiones la memoria y los dispositivos de E/S. Son sistemas fuertemente acoplados. Más comun utilizan el multiprocesamiento simétrico, cada procesador utiliza una copia idéntica del sistema operativo. Dichas copias se comunican entre sí cuando resulta necesario. Las distribuciones modernas de UNIX, Linux y Windows Server soportan el multiprocesamiento simétrico . Distribuidos. se ejecutan en sistemas informáticos distribuidos, los cuales se implementan mediante redes de computadores cuyos procesadores no comparten ni reloj ni memoria, y que se comunican entre sí mediante buses de alta velocidad o líneas telefónicas. Son sistemas débilmente acoplados. En cada computador de la red se ejecuta un SO, que cooperan estrechamente para dar a los usuarios la ilusión de que solo existe un único SO. Ejemplos de sistemas distribuidos son Sprite, Mach, Chorus y la distribución de UNIX Solaris-Me.
19. Qué son las llamadas al sistema? (Respuesta en sección 1.5) Para poder usar los recursos hardware, los programas de .usuario deben solicitar su uso al sistema operativo mediante la realización de llamadas al sistema, que informan la interfaz entre los programas de usuario y el núcleo. Cada sistema operativo tiene su propio conjunto de llamadas al sistema.
20. ¿Cómo pueden invocar los programas de usuario a las llamadas al sistema? Respuesta en sección 1.5) Se invocan mediante el uso de librerias de llamadas al sistema o de forma directa.
21. Enumerar la secuencia de eventos que se producen cuando un programa de usuario invoca a una llamada al sistema. (Respuesta en sección 1.5) Cuando un programa de usuario invoca a una llamada al sistema se produce una trampa que provoca la conmutación hardware de modo usuario a modo supervisor y transfiere el control núcleo. El núcleo examina el identificador numérico de la llamada (cada llamada tiene asignado uno) y parámetros de la llamada para poder localizar y ejecutar a la rutina del núcleo asociada a la llamada al sistema. Cuando dicha rutina finaliza, almacena el resultado en algún registro y provoca la conmutación hardware de modo supervisor a modo usuario para que el proceso de usuario que invocó la llamada continúe su ejecución.
22. ¿En qué categorías se pueden agrupar las llamadas al sistema atendiendo a su finalidad? (Respuesta en sección 1.5) Control de programas en ejecución(procesos), administración de archivos o directorios, comunicaciones, gestión de dispositivos, gestión de información del sistema.
23. ¿Cuáles son los subsistemas o componentes principales del núcleo de un sistema operativo? (Respuesta en sección 1.6.1) Subsistemas de control de procesos, de administración de la memoria principal, de gestión de archivos, de E/S
24. ¿Qué factores definen la estructura del núcleo, y qué tipos se distinguen en función de éstos? (Respuesta en sección 1.6.2) La estructura del núcleo de un sistema operativo queda definida por el número de módulos en que se .compone y cómo se interrelacionan. Se distinguen principalmente los siguientes tipos de estructuras del núcleo: estructura monolítica o simple, estructura en módulos, estructura en capas y estructura extensible.
25. ¿Cómo funciona un núcleo con estructura monolítica? (Respuesta en sección 1.6.2) Todos los subsistemas y las estructuras de datos del núcleo están ubicadas en un único módulo lógico, en existiendo interfaces bien definidos entre los subsistemas. El software del núcleo está escrito como un conjunto de procedimientos. Típicamente el procedimiento principal invoca al de servicio requerido por una llamada al sistema. Y el de servicio invoca a los auxiliares que necesita.
26. Comparar la estructura monolítica con la estructura en módulos. (Respuesta en sección 1.6.2) La estructura en módulos o modular se caracteriza por la existencia de varios módulos que pue- den contener uno o varios subsistemas. Tanto los módulos como los subsistemas que contienen tienen una interfaz bien definida en términos de entradas, salidas y funciones que realizan. Además se pueden implementar como tipos de datos y objetos abstractos. Un núcleo con estructura modular es mucho más fácil de mantener y modificar que un núcleo con estructura monolítica. Sin embargo, su eficiencia suele ser menor.
27. ¿Por qué se caracteriza la estructura en capas? Se caracteriza porque el núcleo estar organizado en una jerarquía de capas, cada una de las cuales subyace sobre la anterior. Cada capa i se implementa como un objeto abstracto que encapsula una serie de estructuras de datos y la implementación de las operaciones que pueden manipularlas.
estructura en capas: 27. Cuáles son sus principales ventajas e inconvenientes? (Respuesta en sección 1.6.2) La principal ventaja de la estructura de capas, aparte de la sencillez de su diseño, es que simplifica el proceso de depuración y verificación del sistema operativo. Cuando se verifica y depura la capa i, se supone que el funcionamiento de la capa inferior i- 1 es correcto,ya que ha sido previamente depurada. La mayor dificultad de la estructura en capas se encuentra en definir adecuadamente los servicios cada capa, ya que se debe tener en cuenta que una capa solo puede utilizar los servicios ubicados en capas inferiores. Por otra parte, la estructura en capas suele ser menos eficiente que otras estructuras, que cada capa agrega un trabajo a la llamada original, lo que repercute en que la llamada al sistema emplea más tiempo en ser atendida que en un sistema sin estructura en capas.
28. Para el caso de un núcleo con estructura extensible explicar qué es y de qué tareas se encarga: a) El micronúcleo. b) Una extensión del núcleo. (Respuesta en sección 1.6.2) La estructura extensible se puede considerar como un caso especial de la estructura modular. Se caracteriza por la existencia de un módulo esencial denominado núcleo extensible o micronúcleo y varios módulos accesorios denominados extensiones del núcleo. El micronúcleo se encarga de realizar únicamente los servicios absolutamente esenciales del sistema operativo, aquellos que dependen de la arquitectura de la máquina y que son independientes del tipo de sistema operativo, como por ejemplo, la gestión de memoria a bajo nivel, la comunicación entre procesos, la gestión de la E/S y la gestión de las interrupciones. Dichos servicios se ejecutan en modo núcleo. Los servicios menos esenciales del sistema operativo, aquellos que son independientes de la arquitectura de la máquina y que dependen del tipo de sistema operativo, como por ejemplo la gestión de la memoria virtual, la administración de los sistemas de archivos o servicios de seguridad y protección, etc, se implementan como extensiones del núcleo y se ejecutan en modo usuario.
29. Señalar las principales ventajas y los inconvenientes de un núcleo con estructura extensible. (Respuesta en sección 1.6.2) Ventajas: manejabilidad, extensibilidad, fiabilidad, soporte simultáneo de múltiples sistemas operativo, portabilidad. La principal desventaja de un núcleo con estructura extensible es su menor rendimiento en comparación con otros tipos de estructuras. Entre las causas que contribuyen a este menor rendimiento destaca el uso del paso de mensajes como esquema de solicitud de servicios
Show full summary Hide full summary

Similar

Tema 4. Dificultad social por presentar deficiencia y discapacidad.
rbk_rod
Bloque I: La cultura, noción moderna
maya velasquez
Sistemas Operativos: Tema 1
Daniel Alvarez Valero
Tipos y clasificaciones de los Sistemas Operativos
octavioasr
Temario de la Selectividad para Extranjeros (UNED)
maya velasquez
Ortografía
Lenah Sanz
Repaso hasta el tema 15 Lengua Uned
Anna Karchevska
Tema 1. Infancia, adolescencia y juventud en Dificultad Social.
rbk_rod
20 preguntas sobre sistemas operativos
esmeraldameza100
Sistema Operativo
erik vega
TEMA 1. EL DERECHO ADMINISTRATIVO. Test 1
pher_2001