Cuestionario para el Examen ExtraOrdinario de Sistemas Operativos 2006 - A 1.- ¿Qué es un sistema operativo? 2.- ¿Qué es el Kernel? 3.- ¿Cuáles son los objetivos que debe cumplir un sistema operativo? 4.- Mencione como han evolucionado los sistemas operativos a través de las generaciones de computadoras. 5.- ¿Qué es una capa del sistema operativo? 6.- ¿Cuál es la principal ventaja del enfoque de capas? 7.- ¿En que sistema operativo se uso por primera vez el diseño por capas? 8.- Mencione las capas del sistema Venus y The. 9.- Explique lo que es una maquina virtual. 10.- ¿Cuáles son los modos de operación agregados al hardware para proteger al sistema operativo? 11.- ¿Qué es el bit de modo? 12.- Explique las diferencias entre los dos tipos de bit de modo. 13.- ¿Con qué otras denominaciones conocemos al “Modo Supervisor”? 14.- ¿En que modo inician las computadoras cuando son encendidas para cargar el sistema operativo? 15.- Explique el enfoque de capas desde el punto de vista de la modularidad y su relación con la programación orientada a objetos. 16.- ¿Qué es un proceso? R.- Es la ejecución de un programa individual. También se le llama tarea. 17.- ¿Qué es el estado de un proceso? 1 R.- Esta definido en parte por la actividad actual de ese proceso. 18.- ¿Cuáles son los estados de un proceso? R.- Son 5: Nuevo: El proceso se acaba de crear. En ejecución: Se están ejecutando instrucciones. Pendiente: El proceso está esperando que ocurra algún suceso. Listo: El proceso está esperando que se le asigne a un procesador. Terminado: El proceso terminó su ejecución 19.- ¿Qué es el Bloque de Control de Proceso? R.- Es el Bloque de Control de Tarea que contiene elementos de información: a) b) c) d) e) f) g) Estado del proceso (Cualquiera de los 5 estados) Contador de programa (indica la dirección del siguiente proceso a ejecutar) Registros (acumuladores, registros índices, etc.). Información de planificación de CPU. Información de gestión de memoria. Información contable. Información de E/S 20.- ¿Para qué sirve la suspensión de procesos? R.- Cuando se pasa un proceso al estado de suspendido y se transfiere a disco, el espacio que se libera de la memoria principal puede utilizarse entonces para traer otro proceso. Un proceso suspendido no está disponible de inmediato para ejecución. 21.- Menciona las estructuras de control de procesos. R.- Ubicación de los procesos. Atributos del proceso. 22.- ¿Cuáles elementos contiene una imagen de proceso? R.- Datos de usuario. Programa de usuario. Pila del sistema. Bloque de control de proceso. 23.- Menciona los elementos que constituyen la información de un PCB (bloque de 2 control de proceso). R.A.- Identificación de proceso Identificadores. B.- Información de estado del procesador Registros visibles para el usuario. Registros de control y de estado. Punteros de pila. C.- Información del control del proceso Información de planificación y de estado. Estructuración de datos. Comunicación entre procesos. Privilegios de los procesos. Gestión de memoria. Propiedad de los recursos y utilización. 24.- Listé las funciones básicas del Kernel de un Sistema Operativo. R.A) Gestión de procesos. Creación y terminación de los procesos. Planificación y expedición de los procesos. Cambio de procesos. Sincronización de procesos y soporte para la comunicación entre procesos. Gestión de los bloques de control de procesos. B) Gestión de memoria Asignación de espacios de direcciones de los procesos. Intercambio. Gestión de páginas y segmentos. C) Gestión de E/S. Gestión de buffer. Asignación de canales de E/S y dispositivos a los procesos. D) Funciones de soporte. Tratamiento de interrupciones Contabilidad. Supervisión. 25.- Explica el concepto modos de ejecución. R.- La mayoría de los procesadores dan soporte para modos de ejecución por lo menos. Ciertas instrucciones pueden ejecutarse sólo en modo privilegiado. Entre éstas están la lectura o modificación de registros de control, instrucciones primitivas de E/S, etc. Además, se puede acceder a ciertas regiones de memoria sólo en el modo más 3 privilegiado. Al modo menos privilegiado se le conoce como modo de usuario, ya que los programas de usuario ejecutan normalmente en ese modo. 26.- Explica el concepto de cambio de contexto. R.- En el ciclo de interrupción, el procesador comprueba si se ha producido alguna interrupción, si hay alguna pendiente, el procesador hace lo siguiente: * Salva el contexto del programa que está ejecutándose. **Asigna al contador de programa el valor de la dirección de comienzo de un programa de tratamiento de la interrupción. 27.- ¿Cuál es la clave de la Multiprogramación? R.- En la planificación de procesos, ya que mediante esto, siempre o casi siempre un proceso estará en ejecución. 28.- ¿Cuál es el propósito de la planificación? R.- Consiste en asignar los procesos al procesador o procesadores para que sean ejecutados a los largo del tiempo, de forma tal que cumplan objetivos del sistema. 29.- Mencione la planificación a largo plazo. R.- Decisión de añadir procesos al conjunto de procesos a ejecutar. 30.- Mencione la planificación a medio plazo. R.- Decisión de añadir procesos al conjunto de procesos que se encuentran parcial o completamente en la memoria. 31- Mencione la planificación a corto plazo. R.- Decisión sobre que solicitud de E/S pendiente será tratada por un dispositivo de E/S disponible. 32.- Explique el algoritmo de FIFO. R.- También es conocido como FCFS = First – Come, First – Served; de “primero en llegar, primero en ser servido” o “servicio por orden de llegada”. La implementación de la política FCSF es fácil con una cola FIFO, cuando un proceso ingresa en la cola de procesos listos, y si la CPU queda libre, entonces, se asigna al proceso que esta en la cola, acto seguido, el proceso en ejecución se saca de la cola, sin embargo, el tiempo de espera promedio cuando se adopta la política FCFS suele ser muy largo. 4 33.- Defina los siguientes términos: TCPU, TE, Quantum, SJF, FIFO, FCFS, SPF, RR. R. TCPU = Tiempo de CPU. TE = Tiempo de ejecución Quantum = Cuanto de tiempo o porción de tiempo. SJF = Shortest Job First = Primero el más corto. FIFO: First In, First Out = Primero en Llegar… Primero en ser atendido e irse. FCFS = First Come, First Served = Primero en llegar, Primero en ser atendido. SPF = Short Process First = Primero el más corto. RR = Round Robin 34.- Explique el algoritmo SPF. R.- Asocia a cada proceso un TCPU. Cuando la CPU queda disponible, se asigna al proceso cuya siguiente TCPU sea más corta, si hay dos procesos cuyas TCPU tengan el mismo tamaño, entonces, se les aplica a esos dos procesos en particular el algoritmo de de FCFS, para romper el empate.- Lo normal es que cuando se ejecute un proceso, se termine, pero, si el procesador asigna un TE de menor tamaño al TCPU, entonces el algoritmo se modifica mediante esto: “Primero el que tenga menor tiempo restante”; y suele ocurrir cuando procesos que se bloquean, pasan al estado de pendiente y entonces el texto del algoritmo sería así: “Primero el más corto, hasta que no hayan pendientes”. 35.- Explique el algoritmo por Turno Circular. R.- Es conocido también como Round Robin (RR) y se diseño especialmente para los sistemas de tiempo compartido, es similar al FCFS, pero, con la propiedad de conmutación entre procesos, y así es como funciona: Los procesos nuevos se añaden al final de la cola.- El planificador de la CPU escoge el primer proceso de la cola, ajusta un temporizador de modo que interrumpa después de un quantum y despacha al proceso. 36.- Explique el algoritmo de Prioridades. R.- Se asocia a cada proceso una prioridad y la CPU se asigna al proceso que tiene la prioridad más alta.- Los procesos con la misma prioridad se planifican con FCFS para romper el empate. Los tres tipos de prioridades que se manejan son: A = Alta = Primero en ejecutar. M = Media = Siguiente en ejecutar. B = Baja = Último en ejecutar. 5 37.- ¿Cuál es el algoritmo mejorado en donde se mezclan dos algoritmos en uno solo? R.- Quantum – Prioridades = RR – Prioridades = Round Robin – Prioridades 38.-Menciona los requisitos para la gestión de memoria. R. Reubicación: Se debe poder mover un programa de una región a otra de memoria principal sin invalidar las referencias a memoria del programa. Protección: Cada proceso debe protegerse contra interferencias no deseadas de otros procesos, tanto accidentales como intencionados. Las exigencias de protección de memoria pueden ser satisfechas por el procesador (hardware) en vez de por el sistema operativo (software). Comparticiòn: Cualquier mecanismo de protección que se implemente debe tener flexibilidad de permitir el acceso de varios procesos a la misma zona de memoria principal. Organización lógica. Organización física. 39.-Explica la diferencia entre fragmentación interna y externa. R.La fragmentación interna es el fenómeno en el que se malgasta el espacio interno de una partición cuando el bloque de datos cargado sea más pequeño que dicha partición; y la fragmentación externa se refiere al hecho de que la memoria externa se fragmenta cada vez más hasta que llega un momento en el que su rendimiento decae. 40.- ¿Cuál es la ventaja de utilizar segmentación simple en lugar de paginación simple? R.Que la segmentación simple no tiene fragmentación interna. 41.- Menciona las diferencias en el uso de particiones fijas y variables. R.En la partición fija, la memoria principal se divide en un conjunto de particiones fijas durante la generación del sistema. Un proceso se puede cargar en una participación mayor o de igual tamaño. Tiene un empleo ineficiente de la memoria debido a la fragmentación interna pero es sencilla de implementar y tiene poca sobrecarga del sistema operativo. En la partición dinámica las particiones se crean dinámicamente, de forma que cada proceso se carga en una partición de exactamente el mismo tamaño que el proceso. No hay fragmentación interna y tiene un uso más eficiente de la memoria principal pero tiene un uso ineficiente del procesador debido a la necesidad de compactación para contrarrestar la fragmentación externa. 6 42.- Describe el proceso de compactación y cuando debe ser utilizado. R.De vez en cuando el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque. Consume tiempo por lo que desperdicia tiempo del procesador. Necesita de la reubicación dinámica. Debe ser utilizado para superar la fragmentación interna. 43.- Explica las ventajas de utilizar memoria virtual. R.Permite un alto grado de multiprogramación muy efectiva, un gran espacio virtual para el proceso y releva al usuario de las rígidas e innecesarias restricciones de la memoria principal. 44.- ¿A que se refiere el concepto thrashing? R.Cuando el sistema operativo lleva a la memoria un fragmento, debe expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata. El thrashing o hiperpaginación se da cuando existen demasiados intercambios de fragmentos. El procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. 45.- ¿Cuál es la función del TLB (Traslation Lookaside Buffer)? R.Es el buffer de traducción adelantada. Esta caché funciona igual que una memoria caché y contiene aquellas entradas de la tabla de páginas usadas hace menos tiempo. 46.- Explica la importancia del tamaño de página. R.Cuanto menor sea el tamaño de página, menor será la cantidad de fragmentación interna y mayor será el número de páginas que se necesitan por proceso, lo cual quiere decir que una gran parte de las tablas de páginas de los procesos activos deban estar en memoria virtual, no en memoria principal. 47.- Explica la paginación y la segmentación simple. R.En la paginación simple, la memoria principal se encuentra particionada en trozos iguales de tamaño fijo y del mismo tamaño que los de memoria. En tal caso, los trozos del proceso, conocidos como páginas, pueden asignarse a trozos libres de memoria, conocidos como marcos de páginas. En la segmentación simple el programa y sus datos asociados se dividen en un conjunto de segmentos. No es necesario que todos los segmentos de todos los programas tengan la misma longitud, aunque existe una longitud máxima de segmento. 7 48.- Explica el uso de paginación y segmentación combinadas resaltando las ventajas de esta asociación. R.En esta combinación, el espacio de direcciones de un usuario se divide en varios segmentos según el criterio del programador. Cada segmento se vuelve a dividir en varias páginas de tamaño fijo, que tienen la misma longitud que un marco de memoria principal. Si el segmento tiene menor longitud que la página, el segmento ocupará solo una página. 49.- Define la implementación de políticas de protección y compartición. R.Puesto que cada entrada de la tabla de segmentos incluye la longitud, además de la dirección base, un programa no podrá acceder por descuido a una posición de memoria principal más allá de los límites de un segmento. Para conseguir la compartición, es posible que un segmento se referencia en las tablas de segmentos de más de un proceso. Este mecanismo también es valido en un sistema de paginación, pero como la estructura de páginas de programas y datos no es visible al programador, es más difícil la especificación de los requisitos de protección y seguridad. 50.- ¿Cuales son las áreas de decisión de las que depende el diseño de un gestor de memoria? R. Si se emplean o no técnicas de memoria virtual. El uso de paginación, segmentación o ambas. Los algoritmos empleados para los diversos problemas de la gestión de memoria. 51.- Menciona las políticas involucradas en el diseño del gestor de memoria, explica tres de ellas. R. Políticas de lectura(fetch): Está relacionada con la decisión de cuándo se debe cargar una página en memoria principal. Existen dos alternativas más comunes: Paginación por demanda: Se trae una página a memoria principal solo cuando se hace referencia a una posición en dicha página. Paginación previa: Se cargan otras distintas a las demandadas debido a un fallo de página. 8 Políticas de ubicación: Tiene que ver con determinar donde va a residir una parte de un proceso en memoria principal. Políticas de reemplazo: Trata de la selección de la página a reemplazar en memoria principal cuando se debe cargar una nueva página. 52.- Explica los problemas de Dekker al elaborar el algoritmo de exclusión mutua y la solución correcta. R.En el primer intento, un problema fue que los procesos debían alternarse de manera estricta en el uso de las secciones críticas y otra fue que si un proceso fallaba, el otro proceso se bloqueaba permanentemente. En el segundo, la solución propuesta falla porque un proceso puede cambiar su estado después de que el otro proceso lo ha verificado. En el tercero, los procesos se interbloqueaban. En el cuarto, cualquier cambio en la velocidad relativa de los dos procesos rompería el ciclo y permitiría a una entrar en la sección crítica. En la solución correcta se tiene que poner un orden en la actividad de los dos procesos para evitar el problema de la “cortesía mutua”. Se usa una variable para indicar que proceso tiene prioridad para exigir la entrada a la sección crítica. (Esta variable es la llamada “Turno”) 53.- Haz una comparación de ventajas y desventajas de las técnicas para solucionar la exclusión mutua. R.1. Las soluciones por software suelen tener un alto coste y el riesgo de errores lógicos en el programa es también alto. 2. Las soluciones por hardware suponen el uso de instrucciones especiales de la máquina; estos métodos reducen la sobrecarga, pero son aún ineficientes porque emplean espera activa. 3. Las características dentro del sistema operativo contienen dos técnicas: Semáforos Paso de mensajes 54.- Cuales son los requisitos para la exclusión mutua? R.- 9 Solo un proceso de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido debe tener permiso para entrar en ella en un instante dado. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los demás. Un proceso no debe solicitar acceso a una sección crítica para después ser demorado indefinidamente; no puede permitirse el interbloqueo. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar a la suya debe poder hacerlo sin retraso. No se puede hacer suposiciones sobre la velocidad relativa de los procesos o su número. Un proceso permanece en su sección crítica solo por un tiempo finito. 55.- Explica la diferencia entre Multiprogramación, Multiproceso y distribuido. R. Multiprogramación: Es la gestión de varios procesos de un monoprocesador. Multiproceso: Es la gestión de varios procesos dentro de un multiprocesador. Proceso distribuido: Es la gestión de varios procesos que ejecutan en de computadores múltiples y remotas. Proceso sistema sistema sistemas 56.- Explica los términos inanición e interbloqueo. R. Interbloqueo: Es el bloqueo de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. El bloqueo es permanente hasta que el sistema operativo realice alguna operación extraordinaria. Inanición: Cuando por exceso de cortesía un proceso no se ejecuta. 57.- Explica el funcionamiento de la instrucción comparar y fijar. R.La instrucción examina el valor de su argumento. Si el valor es 0, lo cambia por 1 y devuelve cierto. En otro caso, el valor no se modifica y se devuelve falso. La función Comparar y Fijar se ejecuta inmediatamente en su totalidad, es decir, no está sujeta a interrupciones. 58.- Explica los tres tipos de interacción entre procesos. R. Los procesos no tienen conocimiento de los demás: Son procesos independientes que no están pensados en operar juntos. 10 Los procesos tienen un conocimiento indirecto de otros: Los procesos no conocen necesariamente a los otros por su nombre, pero comparten el acceso a algunos objetos mostrando cooperación. Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los demás por el nombre y están diseñados para trabajar conjuntamente mostrando cooperación. 59.- ¿Cuál es el principio fundamental de los semáforos? R.Dos o más procesos pueden cooperar por medio de simples señales, de forma que se pueda obligar a detenerse a un proceso en una posición determinada hasta que reciba una señal especifica. Los semáforos son una herramienta básica, pero potente y flexible para hacer cumplir la exclusión mutua y coordinar procesos, pero es muy difícil construir un programa correcto. Para transmitir una señal en un semáforo S, los procesos ejecutan la primitiva signal(s) (Señal) y para recibir una señal se usa wait(s) (Espera) 60.- ¿Que son los monitores? R.Son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos y son más fáciles de controlar. 61.- ¿Qué es un monitor con señales y cuales son sus características? R.Es un módulo de sistema operativo que consta de uno o más procedimientos, una secuencia de inicialización y unos datos locales. Sus características son las siguientes: Las variables de datos locales están solo accesibles para los procedimientos del monitor y no para procedimientos externos. Un proceso entra al monitor invocando a uno de sus procedimientos. Solo un proceso puede estar ejecutando en el monitor en un instante dado; cualquier otro proceso que haya invocado al monitor quedará suspendido mientras espera a que el monitor esté disponible. 62.- ¿Qué es el paso de mensajes? R.Cuando los procesos interactúan unos con otros, se deben de satisfacer dos requisitos básicos, la sincronización y la comunicación; el paso de mensajes es el método posible para ofrecer ambas funciones. 11 Su funcionalidad real es por medio de estas dos primitivas: Send (destino, mensaje) y Receive (origen, mensaje). En la comunicación un proceso envía información en forma de un mensaje a otro proceso designado como destino. Un proceso recibe información ejecutando la primitiva Receive, que indica el proceso emisor(origen) y el mensaje. Con respecto a la sincronización, el receptor no puede recibir un mensaje hasta que sea enviado por otro proceso. Además, hace falta especificar que le sucede a un proceso después de ejecutar una primitiva send o receive. 63.- Cuales son los dos tipos de direccionamiento y explícalos? R. Direccionamiento directo: La primitiva send incluye una identificación específica del proceso destino. La primitiva receive se puede gestionar de dos formas: a) Designe explícitamente el proceso emisor. b) En ocasiones lo anterior es imposible ya que no se puede especificar el proceso origen por anticipado. Direccionamiento indirecto: En este caso, los mensajes no se envían directamente del emisor al receptor, sino en una estructura de datos compartida formada por colas que pueden guardar mensajes temporalmente. 64.- Explica los tres tipos de dirección. R. Dirección lógica: Es una referencia a una posición de memoria independiente de la asignación actual de datos a memoria. Dirección relativa: Es un caso particular de la dirección lógica. Dirección física: O dirección absoluta. Es una posición real de la memoria principal. 65.- Qué es el conjunto residente? R.Es el proceso (fragmento) que realmente está en memoria. 66.- Menciona las dos características con las cuales no es necesario que todas las páginas o segmentos estén cargadas en memoria en un instante dado. R.1. Todas las referencias a memoria dentro de un proceso son direcciones lógicas que se traducen dinámicamente y direcciones físicas durante su ejecución. Es decir, un proceso puede cargarse y descargarse de memoria principal de forma que ocupe regiones diferentes en instantes diferentes a lo largo de su ejecución. 2. Un proceso puede dividirse en varias partes y no es necesario que estas partes se encuentren contiguos en memoria principal durante la ejecución. 12