Preguntas de final Flashcards

Son largas las respuestas, cuanto mas te acerques a la respuesta dada mejor

1
Q

¿Cuándo ocurre Hiperpaginacion (thrashing)?

A

Ocurre cuando el sistema invierte mas tiempo (ciclos de reloj) implementando mecanismos de paginación que en la propia ejecución en proceso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué consecuencias tiene la Hiperpaginacion?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿En que se basan los algoritmos de reemplazo (tanto local como globalmente) compartiendo o no frames?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuáles son los algoritmos de reemplazo? Explique cada uno

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es la paginación por demanda?¿Como funciona?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo sabe el SO donde encontrar las paginas de una proceso?

A

Por una tabla de paginas que indican donde están las paginas del proceso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

La paginación por demanda utiliza un intercambiador perezoso que se encarga de siempre intercambiar una pagina lo antes posible
V o F

A

F
La paginación por demanda utiliza un intercambiador perezoso que se encarga de siempre intercambiar una pagina lo mas tarde posible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Como se hace para diferenciar las paginas necesarias de las que no lo son?¿

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quien mantiene las tablas de paginas y quien las utiliza?

A

las tablas son mantenidas por el sistema operativo y utilizadas por el MMU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

El hardware que es capaz de soportar la paginación por demanda, también soporta paginación y swapping
V o F

A

V

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es la partición swap?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es la TLB?

A

cache de ultimas paginas referenciadas. Administradas por la MMU( unidad de gestion de memoria) para reducir lectura en memoria principal

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es el MMU ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

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

A

V

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué ocurre cuando se trata de acceder a una pagina invalida?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cómo es el procedimiento para tratar los fallos de pagina? Describa paso a paso

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cuáles son los estados de un proceso? Describa cada estado

A

-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

18
Q

¿Cuáles son los componentes mínimos de un proceso?

A

El código, los datos, y el stack(una en modo usuario y otra en modo kernel)

19
Q

¿Qué es el PCB?¿Que información contiene?¿Es importante?

A

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

20
Q

¿Qué es la memoria virtual?¿Que ventaja trae?

A

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

21
Q

¿Qué es la segmentación?

A

La segmentación es una técnica de gestión de memoria que pretende acercas mas al punto de vista del usuario

22
Q

¿Cuáles son los componentes necesarios para llevar a cabo la segmentación por demanda? Describa para que es cada componente

A

-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

23
Q

En la organización segmentada ¿Por cuales componentes esta compuesto un proceso?

A

-segmento de código
-segmento de datos
-segmento de pila
-segmento de sistema, invisible para la aplicación, donde reside el núcleo

24
Q

¿Qué es un sistema de archivo ?

A

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

25
¿Cuáles son las características de un sistema de archivos UNIX?
-Poseer estructura jerárquica -Realizar un tratamiento consistente de los datos de los archivos -Poder crear y borrar archivos -Permitir un crecimiento dinámico de los archivos -Proteger los datos de los archivos -Tratar a los dispositivos periféricos como archivos
26
¿Cómo esta compuesto un filesystem Unix
-Bloque de booteo para el sistema operativo -Superbloque: información de como se compone el Filesystem(tamaño, espacio libre, etc.) -Tabla de Inodos: tabla correspondiente a cada uno de los archivos que se encuentran en el filesystem -Bloques de datos: contiene los bloques a los que hace referencia cada i-nodo Esta organizado a nivel lógico en forma de árbol invertido con un nodo principal conocido como el nodo raíz ("/")
27
¿Cómo es la estructura de datos del filesystem?
Posee 3 tablas: -La tabla de descriptores( punteros a la tabla de archivos) -Tabla de i-nodos: Es una copia en memoria de la lista que hay en el disco sumando a la información adicional -Tabla de archivos abiertos por el usuario y el kernel
28
¿Qué es y que contiene la tabla de archivos abiertos por el usuario y el kernel?
Es una estructura global del kernel y en ella hay una entrada por cada archivo distinto del kernel o de los procesos del usuario que tenga abierto. Cuenta también con punteros a la tabla de i-nodos, cuenta de referencia, Modo de apertura y desplazamiento
29
¿Qué sucede al crear un nuevo archivo?Describa los pasos de creacion del archivo y que sucede en el filesystem
1-Se obtiene el inodo a partir del nombre 2-Si el archivo no existía, asignar el inodo libre y crear la entrada en el directorio padre si ya existía: a)Si el acceso no esta permitido: truncar el archivo si queremos permisos de escritura y liberar todos sus bloques de datos 3-Asignar una entrada en la tabla de archivos cuenta de referencia = 1 4-Asignar una entrada en la tabla de descriptores de archivos
30
¿Qué sucede al abrir un archivo?
1-Acceso al inodo->traer copia a memoria(opcional porque ya puede estar en memoria) 2-El kernel busca en el sistema de archivos el archivo pasado como parámetro 3-Si el archivo no existe o no se tienen permisos-> Error 4-Se obtiene una copia del inodo en memoria 5-Asigna una entrada en la tabla de archivos: a)puntero del inodo b)desplazamiento= "0" o bien, desplazamiento= tamaño archivo 6-Si el nodo es igual a 0-TRUNC entonces liberar los bloques del archivo(disco) y establecer el tamaño de archivo (en inodo) a cero 7-Asignar una entrada en la tabla de descriptores de archivos de usuario
31
¿Cómo se modelan los dispositivos E/S?¿Para que?
UNIX modela los dispositivos de E/S como si fueran archivos, de esta forma las operaciones sobre archivos se utilizan sobre periféricos
32
¿Qué es un driver?¿que pueden hacer?
Es software con la capacidad de que el sistema operativo y el hardware se comuniquen entre si, la informacion de esta se coloca en el kernel y tiene acceso a instrucciones privilegiadas. Para cada fichero especial (que representa un dispositivo) hay un driver, cada driver tiene un mayor number que lo identifica, y si el fichero cubre varios dispositivos entonces tiene varios minor numbers. Los drivers pueden invocar procedimientos del kernel para asignar memoria, administrar temporizadores, controlar DMA,etc.
33
¿Qué ocurre cuando un driver necesita acceder a un bloque de disco?
Primero se verifica si esta en la cache de buffers, se toma el bloque evitando el acceso a disco, si el bloque no se encuentra en la cache , se lee de disco, se escriben en dicha cache y se lleva a donde se necesite
34
¿Para que es una system call?
Proporcionan los medios para que una aplicación de usuario pida al sistema operativo que realice tareas reservadas del sistema operativo, en nombre del programa del usuario
35
¿Cuáles son los modos de ejecución de una aplicación?
Modo usuario: Cuando el sistema informativo esta ejecutando una aplicación de usuario Modo Kernel: Cuando una aplicación de usuario solicita un servicio del sistema operativo a través de una system call, debe pasar a modo kernel para satisfacer dicha solicitud
36
¿Cuáles son las pilas que se utilizan por cada modo de ejecución? Describa que hace cada una
Pila modo Usuario: contiene argumentos, variables totales y otros datos relativos a funciones que se ejecutan en modo Usuario, es dinámica Pila modo kernel: contiene los frames de las funciones que se ejecutan en modo kernel(estas funciones son las llamadas al sistema) son estáticas.
37
¿Qué sucede al efectuarse una system call?
Cuando se ejecuta una system call , el hardware la trata como una excepción que efectúa una transferencia a una posición especifica del vector de interrupción, dicha posición indica la dirección de la primera instrucción de la rutina de atención de la interrupción dada
38
Durante el proceso de booteo ¿Cómo se dan los cambios de modo de ejecución?
Cuando arranca el sistema, el hardware inicia en modo kernel. Después de que el SO se carga, se cambia a modo usuario y se cargan las aplicaciones de usuario.
39
Suponiendo que un proceso ejecuta la System Call "fork()", describa eventos y actividades que se suceden hasta que el nuevo proceso comienza su ejecución (tener en cuenta planificadores, dispatcher, etc) (CORE)
1. El proceso de Usuario llama a una Syscall (fork en este caso). 2. Se guarda en el stack del usuario los parámetros de la syscall y se lanza una interrupción. 3. Se cambia a modo Kernel. 4. Se guarda el PC (Program Counter: indica la dirección de la siguiente instrucción a ejecutar) y el PSW (Program Status Word: indica el estado del programa actual) en la pila del usuario. 5. Se carga en el PC la dirección de la subrutina que atiende la interrupción. 6. Se sacan los parámetros de la SysCall de la pila del usuario para ver que llamada tiene que atender. 7. Se guarda la dirección de la pila del usuario en el PCB del proceso y se pasa a utilizar la pila del kernel. 8. Se guardan los parámetros de la Syscall en la pila del kernel y se ejecuta la SysCall. 9. Si la SysCall bloquea el proceso se ejecuta el short term scheduler para que un nuevo proceso tome la cpu y esta no quede ociosa. a. Se da el context switch b. se guarda en la pila la dirección que el HW dejo previo a que el proceso seleccionado sea suspendido. 10. Más allá de que se haya bloqueado o no el proceso, quien ahora tengo el control de la CPU va a cambiar el modo a User Mode. 11. Ejecutar la sentencia RET para obtener de la pila la dirección de retorno a ejecutar. 12. Se obtienen de la pila el PSW y PC y se continúa la ejecución del proceso actual.
40
¿Cómo se puede asegurar que un proceso no se adueñe de la cpu?
Para asegurar que el sistema operativo mantiene el control sobre la CPU y una aplicación no monopolice la CPU, se puede utilizar un temporizador que puede configurarse para interrumpir la ejecución cada cierto periodo especifico. Usualmente se utiliza un temporizador variable ( reloj de frecuencia fija y contador). El sistema operativo configura el contador, cada vez que el reloj avanza, el contador decrementa.
41
¿Qué es el working set?
Es una técnica la cual consiste en examinar las referencias de pagina mas recientes dentro de esa ventana de trabajo ( en el parámetro) las cuales conforman mi conjunto de trabajo. Si una pagina esta siendo usada en forma activa se va a encontrar en el conjunto. Si ya no esta siendo utilizada será eliminada del conjunto en el tiempo dado por el parámetro en relaciona su ultima referencia
42