Preguntas de final Flashcards
Son largas las respuestas, cuanto mas te acerques a la respuesta dada mejor
¿Cuándo ocurre Hiperpaginacion (thrashing)?
Ocurre cuando el sistema invierte mas tiempo (ciclos de reloj) implementando mecanismos de paginación que en la propia ejecución en proceso
¿Qué consecuencias tiene la Hiperpaginacion?
Provoca grandes problemas de rendimiento e incrementa también el tiempo efectivo de acceso a memoria y no se llega a realizar ningún trabajo útil porque los recursos serán invertidos en mecanismos de paginación
¿En que se basan los algoritmos de reemplazo (tanto local como globalmente) compartiendo o no frames?
Están basados en los principios de localidad:
Localidad temporal: Si es un momento una posición de memoria es referenciada es muy probable que la misma posición sea referenciada nuevamente en un futuro cercano
Localidad espacial: Si es una posición de memoria referenciada en un momento concreto es probable que las localidades cercanas a ella también serán referenciadas pronto
¿Cuáles son los algoritmos de reemplazo? Explique cada uno
FIFO: Guarda en orden de carga las paginas, de modo que se usa la primera que fue cargada
Segunda chance: Es como FIFO pero cuando se saca una pagina se verifica un bit de referencia, si esta en 1, se pone en 0 y se vuelve a colocar en la cola. Si estaba en 0 se saca. Cada vez que la MMU(unidad de gestión de memoria) accede a una pagina, fija su bit de referencia en 1. Para esto se requiere soporte para bit de referencia
LRU: La estrategia consiste en llevar al disco la pagina que ha permanecido por mas tiempo sin ser accedida. Es costosa en cuanto a recursos ya que se debe mantener una lista enlazada con las paginas ordenadas y al momento de ser referenciada una pagina, esta debe cambiar de lugar el orden de la lista(costoso)
Optimo: Tiene como finalidad retirar la pagina que vaya a ser referenciada mas tarde, para ello se requiere predecir la pagina, lo cual es imposible. Se utiliza este modelo para comparar, ya que aquel algoritmo que se acerque a los resultados del optimo será el mejor
NRU: Cuando una pagina es referenciada, se fija el bit de referencia para esa pagina del mismo modo que ocurre cuando esta pagina es modificada. La modificación puede ser realizada por hardware o software. Cuando una pagina debe ser reemplazada, el sistema operativo divide las paginas en 4 categorias:0(No Referenciada, No Modificada),1(NR,M), 2(R,NM), 3(R,M)
¿Qué es la paginación por demanda?¿Como funciona?
La paginación por demanda es un sistema de paginación con el cual, además de las ventajas de la paginación convencional, se busca disminuir los tiempos de respuesta y aumentar la cantidad de programas en memoria. Para lograr estos objetivos se hace uso del paginador, el cual carga a memoria solo las páginas que serán utilizadas por el programa en ejecución, de esta manera se logra un menor tiempo de carga y un ahorro en cuanto a espacio utilizado por dicho programa, ya que, por un lado, no necesitamos que todo el programa este en memoria para comenzar su ejecución mientras que, por otra parte, al no estar el programa completo en memoria, disminuimos considerablemente el espacio que éste ocupa.
Ya que el paginador solo busca las páginas que se necesitan para ejecutar algún programa, debemos agregar un bit que nos diga si las referencias de memoria son válidas o no, de lo contrario, al no encontrar una página no podríamos diferenciar si el paginador aún no la carga o si esta es realmente una referencia inválida. El proceso que se sigue es el siguiente:
1. Se intenta leer la página requerida
2. Si la página requerida ya esta en memoria, simplemente se lee.
3. Si no está en memoria, revisa si la referencia es válida (mediante el bit, el hardware).
4. Si la referencia es inválida, se aborta (se genera un trap al SO).
5. Si la referencia es válida, se intenta cargar la página.
6. Cuando la página sea cargada, se reintenta la instrucción.
Al buscar una página, si ésta no está en memoria, necesitará ser cargada. A este proceso se le llama fallo de página
¿Cómo sabe el SO donde encontrar las paginas de una proceso?
Por una tabla de paginas que indican donde están las paginas del proceso
La paginación por demanda utiliza un intercambiador perezoso que se encarga de siempre intercambiar una pagina lo antes posible
V o F
F
La paginación por demanda utiliza un intercambiador perezoso que se encarga de siempre intercambiar una pagina lo mas tarde posible
¿Como se hace para diferenciar las paginas necesarias de las que no lo son?¿
Se necesita un tipo de hardware para solucionar el problema, como el bit de validez.
La tabla de paginas puede marcar una entrada como invalida a través de dicho bit y el valor del bit de modificado
Quien mantiene las tablas de paginas y quien las utiliza?
las tablas son mantenidas por el sistema operativo y utilizadas por el MMU
El hardware que es capaz de soportar la paginación por demanda, también soporta paginación y swapping
V o F
V
¿Qué es la partición swap?
Es el espacio que se utiliza para mover una pagina a memoria secundaria y de esa forma liberar la memoria principal para cargar otros procesos. Mientras no haga falta, el proceso extraído de memoria puede continuar en disco. Cuando sea necesario, el sistema vuelve a hacer un intercambio
¿Qué es la TLB?
cache de ultimas paginas referenciadas. Administradas por la MMU( unidad de gestion de memoria) para reducir lectura en memoria principal
¿Qué es el MMU ?
Se encarga de traducir dirección virtuales a direcciones reales. Realiza la protección de la memoria y genera una interrupción cuando se hace referencia a una pagina que no esta en memoria
Mientras el proceso se ejecute y acceda a paginas que se encuentren en memoria, la ejecución se llevara a cabo normalmente
V o F
V
¿Qué ocurre cuando se trata de acceder a una pagina invalida?
El hardware de paginación, al traducir una dirección mediante la tabla de paginas detectara que el bit de paginas invalidas esta activado, provocando una interrupción dirigida al sistema operativo.
Esta interrupción se produce como resultado de que el sistema operativo no ha cargado anteriormente en memoria la pagina deseada
¿Cómo es el procedimiento para tratar los fallos de pagina? Describa paso a paso
1-Se comprueba una tabla interna correspondiente al proceso (en su PCB), para determinar si la referencia era un acceso de memoria valido o invalido
2- Si la referencia era invalida: Se termina el proceso. SI era valida: entonces si todavía no había sido cargada a memoria, se carga
3-Se busca un marco libre
4-Se ordena una operación de disco para leer la pagina deseada en el marco recién asignado
5-Una vez completada la lectura de disco, modificamos la tabla interna que se mantiene con los datos del proceso y la tabla de paginas para indicar que dicha pagina se encuentre ahora en memoria
6-Se reinicia la instrucción que fue interrumpida. El proceso podrá acceder a la pagina como si siempre hubiese estado en memoria
¿Cuáles son los estados de un proceso? Describa cada estado
-Nuevo: El usuario “dispara el proceso”. Un proceso es creado por otro proceso: su proceso padre. En este estado se crean las estructuras asociadas y el proceso queda en la cola de procesos nuevos, normalmente en espera de ser cargado en memoria
-Listo/preparado: El scheduler de largo plazo elige el proceso para cargarlo en memoria. El proceso solo necesita que se le asignen CPU.
Esta en la cola de procesos listos. Es el loader quien lo carga
-En ejecución: El scheduler de corto plazo lo eligió para asignarle CPU. Tendrá la CPU hasta que se termine su quantum o hasta que necesite que se produzca un evento (E/S)
-En espera: El proceso necesita que se cumpla el evento esperado para continuar. El evento puede ser una E/S solicitada o una señal de otro proceso. Sigue en memoria pero no tiene la CPU. Al cumplirse el evento pasara al estado de listo
¿Cuáles son los componentes mínimos de un proceso?
El código, los datos, y el stack(una en modo usuario y otra en modo kernel)
¿Qué es el PCB?¿Que información contiene?¿Es importante?
Es la estructura mas importante de un proceso. Es utilizado por la SO para obtener informacion del proceso, es lo primero que se crea y lo ultimo que se destruye. La PCB siempre se encuentra en memoria y contiene:
-El identificador del proceso (PID)
-El identificador del padre (PPID)
-Estado del proceso
-Contador del programa
-Valores de registro de CPU(se utilizan en el context switch)
-Espacio de direcciones de memoria
-Prioridad(se utiliza cuando se usa un scheduling con prioridad)
-Lista de recursos asignados
-Datos del propietario(usuario)
-Permisos asignados
-Signals pendientes a ser servidos
-Grupo al que pertenece
¿Qué es la memoria virtual?¿Que ventaja trae?
El termino memoria virtual se refiere a la abstracción de la memoria física en memoria lógica(como lo ve el proceso). La técnica de memoria virtual permite que se ejecuten procesos que no están completamente alojados en memoria.
La ventaja mas notable es que los programas pueden ser mas grandes que la memoria física. Esto permite a los programadores despreocuparse de dicha limitación
¿Qué es la segmentación?
La segmentación es una técnica de gestión de memoria que pretende acercas mas al punto de vista del usuario
¿Cuáles son los componentes necesarios para llevar a cabo la segmentación por demanda? Describa para que es cada componente
-Partición de intercambio(swap): es el espacio que se utiliza para mover un segmento a memoria secundario y de esa forma liberar memoria principal para cargar otros procesos. Mientras no haga falta el proceso extraído de memoria, se queda en disco, caso contrario se pasa a RAM
-Tabla de segmentos: traducir direcciones virtuales en direcciones reales. Para ellos el procesador posee una tabla de segmentos
-MMU: traduce direcciones virtuales a reales consultando la tabla de segmentos
-Hardware de segmentación: indica si se hizo referencia a un segmento en memoria, si no esta en memoria generar una excepcion
En la organización segmentada ¿Por cuales componentes esta compuesto un proceso?
-segmento de código
-segmento de datos
-segmento de pila
-segmento de sistema, invisible para la aplicación, donde reside el núcleo
¿Qué es un sistema de archivo ?
Un sistema de archivos permite realizar una abstracción de los dispositivos físicos de almacenamiento para que sean tratados a nivel lógico, como una estructura mas sencilla que la estructura de su arquitectura de hardware