SopTercerParcial-2K11
|
|
Título del Test:
![]() SopTercerParcial-2K11 Descripción: Unidad 4, 5 y 7 |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Funciones del administrador de memoria: Registra que parte de la memoria está libre y ocupada. Asigna y libera espacio de memoria para los procesos. Administra el intercambio entre la memoria y el disco. Supervisa la velocidad del procesador y ajusta la frecuencia según la carga. Administra exclusivamente la caché de CPU y decide qué datos deben permanecer allí. Que es la monoprogramación ?. Cuando hay un solo proceso en memoria. Cuando varios procesos comparten la memoria pero solo uno usa la CPU a la vez. Cuando el sistema ejecuta múltiples procesos, pero todos pertenecen al mismo usuario. Cuando varios programas residen en memoria, pero solo uno puede acceder al disco. Que es la multiprogramación?. Varios procesos en memoria al mismo tiempo. Permite un mejor uso del CPU mientras otros procesos esperan E/S. Cuando varios usuarios comparten el mismo proceso en memoria. Cuando el sistema ejecuta un proceso entero antes de cargar el siguiente. La multiprogramacion con particiones fijas es que cada proceso ocupa una partición de tamaño fija. Verdadero. Falso. La multiprogramacion con particiones variables es que el tamaño de la partición se adapta al proceso. Verdadero. Falso. Que es el intercambio?. Llevamos el proceso completo al disco cuando no se ejecuta, para liberar RAM. Se copian únicamente las páginas modificadas del proceso al disco para acelerar el acceso. Se mueve solo la pila del proceso al disco mientras el código permanece en memoria. Se intercambia el contenido del buffer de E/S con memoria principal para evitar bloqueos. Cuales son los comandos y archivos de Linux asociados al intercambio?. /proc/swaps. /etc/fstab. dd. mkswap. sync. swapon. swapoff. Respecto al espacio de direcciones: Cada proceso tiene su propio espacio de direcciones. Conjunto de direcciones que puede usar un proceso para direccionar la memoria. Conjunto de direcciones físicas reales donde está almacenado el proceso. Conjunto de direcciones que todos los procesos utilizan de forma simultánea. Área de memoria que el sistema operativo reserva para guardar el código del kernel. Dentro del espacio de direcciones tenemos: Registro BASE. Registro LIMITE. Reubicacion. Registro de Segmento. Registro de Direccionamiento Físico. Registro de Desplazamiento Automático. Respecto a la multiprogramacion con particiones variables: El número y tamaño de procesos cambia durante la ejecución (es dinámica). Las particiones se van creando a medida que llegan los procesos y se adaptan al tamaño de esos procesos. Todas las particiones se crean al inicio del sistema y permanecen igual durante toda la ejecución. El tamaño de cada partición se calcula según la prioridad del proceso y no según su tamaño. Cada proceso comparte su partición con otros procesos para optimizar el uso de memoria. Las tecnicas de administracion de memoria son Mapa de bits y Listas enlazadas. Verdadero. Falso. Limitaciones de las técnicas de multiprogramación con particiones fijas o variables: Los procesos deben estar cargados completamente y de forma contigua en RAM. No se pueden ejecutar programas más grandes que la memoria física. El grado de multiprogramación depende de la cantidad de procesos que entran en RAM. El sistema puede ejecutar procesos más grandes que la memoria mediante paginación interna. El grado de multiprogramación depende de la velocidad del procesador y no de la RAM. Características de la memoria virtual: Técnica de administración de memoria mediante la cual el SO reserva un espacio en el disco para usarlo como si fuese memoria RAM. El SO crea para cada proceso un espacio de direcciones virtual en disco. Permite ejecutar programas cuyo tamaño sea mayor a la memoria física disponible. Se aumenta el grado de multiprogramación. La memoria virtual asigna direcciones físicas idénticas para todos los procesos para simplificar el acceso. La implementación de memoria virtual depende únicamente de técnicas de compresión de datos para ahorrar espacio. Respecto a la paginacion: El programa se divide en trozos del mismo tamaño llamados páginas. Las páginas se almacenan en disco y se van llevando a memoria a medida que se necesitan. En la RAM, las páginas se almacenan en marcos para páginas. Las páginas pueden tener distintos tamaños según el proceso y su estructura lógica. Los marcos en RAM suelen ser más grandes que las páginas, para reducir la fragmentación interna. El fallo de página. La MMU genera un trap al sistema operativo. La MMU detecta que la pagina no esta en memoria. El TLB se encuentra en la MMU y consulta antes de acceder a la memoria. Cuando ocurre un fallo de página, el proceso continúa ejecutándose mientras el SO carga la página faltante. El fallo de página ocurre cuando la página solicitada no existe en el archivo ejecutable del programa. Respecto a la tabla de páginas. Es una función donde el número de página virtual es un argumento y el número de marco físico es el resultado. Su objetivo es asociar páginas virtuales a los marcos de página. Cada proceso tiene su propia tabla de páginas. El tamaño de la tabla de páginas depende de su tamaño y del tamaño de las páginas. El tamaño de la tabla de páginas depende exclusivamente del tamaño de la memoria física disponible. La tabla de páginas se ubica únicamente en el TLB para acelerar todas las traducciones. La tabla de páginas contiene: Bit P/A. Bit R (referencia). Bit M (modificación). Bits de protección. Bit de caché. Numero de pagina. Numero de marco de pagina. Bit de prioridad. Respecto al TLB - Transalation Lookaside Buffer. Memoria asociativa (búfer de traducción adelantada). Su objetivo es acelerar la traducción de direcciones virtuales a físicas sin pasar por la tabla de páginas. Ubicado en el interior de la MMU. Almacena el contenido completo de todas las páginas para evitar accesos a memoria. Reemplaza completamente a la tabla de páginas cuando está lleno. Respecto a la tabla de páginas multinivel. Su objetivo es eliminar la necesidad de tener la tabla de páginas cargada completa en memoria RAM todo el tiempo. Se usa en sistemas con direcciones de 32 o 64 bits. Reduce el número de fallos de página al almacenar todas las páginas más usadas en el nivel superior. Permite que todos los procesos compartan una única tabla de páginas física para ahorrar memoria. Respecto a la tabla de páginas invertidas. Usada en arquitecturas de 64 bits. Permite tener una entrada por cada marco de página ubicado en memoria RAM. Se ahorra gran cantidad de memoria RAM. Genera complejidad en la traducción de direcciones virtuales a físicas. La tabla invertida mantiene una entrada por cada página virtual del proceso, reduciendo el tiempo de traducción. Necesidad de los algoritmos de reemplazo de páginas: Cuando se produce un fallo de página y la memoria está llena, se debe desalojar una página de RAM para hacer espacio para la nueva. Se debe analizar el bit M de la página a desalojar. Se debe analizar qué página conviene extraer de memoria para minimizar fallos futuros. Cuando ocurre un fallo de página, se deben cargar todas las páginas del proceso para evitar fallos posteriores. El reemplazo de página ocurre solo cuando el sistema operativo decide reorganizar la memoria por motivos de eficiencia. Los tipos de algoritmos de reemplazo de paginas son: NRU (Not Recently Used). Optimo. FIFO. Segunda oportunidad. De reloj. LRU ilimitado. Round Robin. Respecto al algoritmo de reemplazo de páginas óptimo. Mejor algoritmo de reemplazo de páginas pero imposible de implementar. Se elimina de memoria la página que será referenciada dentro de muchas instrucciones. Se usa para evaluar el resto de los algoritmos de reemplazo de páginas. Solo funciona cuando la tabla de páginas está completa y cargada en RAM. Se implementa fácilmente en hardware mediante la MMU y el TLB. El algoritmo de reemplazo NRU: Clasifica las páginas en 4 categorías según los bits R y M. El bit R lo pone la MMU al acceder; el bit M al escribir. El algoritmo selecciona primero las páginas con R=0 y M=0. Es un reemplazo simple y rápido, pero no óptimo. Selecciona siempre la página con el bit M = 1 para reducir el tiempo de escritura en disco. Siempre elige la página con menor número de marco físico para garantizar ordenamiento. Respecto a la protección de memoria: Solo accede a su propio espacio de direcciones. Se utiliza el registro de límite para la longitud del programa. Si la dirección excede la base + límite, se genera un error. Si la dirección accedida no existe, el sistema operativo intenta corregirla automáticamente sin generar error. La protección se logra únicamente mediante el uso del TLB sin necesidad de registros base y límite. Respecto al algoritmo de reemplazo de páginas FIFO. Si se produce un fallo de página, retiramos la página más antigua. Una limitación es que se pueden llegar a extraer páginas de mucho uso. selecciona la página menos recientemente usada para minimizar los fallos de página. Ordena las páginas según su frecuencia de acceso y elimina la menos usada. Respecto al algoritmo de reemplazo de páginas de segunda oportunidad. Surge como solución a FIFO. Antes de extraer la página, analizamos el bit R: si R=0 se retira; si R=1 se limpia el bit y se coloca al final. Las páginas de mucho uso van a permanecer siempre en la memoria RAM. Selecciona siempre la página menos modificada para reducir escrituras en disco. Si el bit R es 1, la página se reemplaza inmediatamente para evitar que se vuelva obsoleta. Respecto al algoritmo de reemplazo de páginas del reloj. Las páginas se mantienen en una lista circular como un reloj. Algoritmo de reemplazo de páginas más usado. Reemplaza siempre la página con el bit M = 1 para reducir el tiempo de actualización. Requiere que las páginas estén ordenadas por dirección virtual para funcionar correctamente. Modelo de conjunto de trabajo. Conjunto de páginas que usa un proceso en un momento determinado para reducir fallos de página. Conjunto de todas las páginas asignadas a un proceso desde que inició su ejecución. Conjunto de páginas que el sistema operativo reserva para un proceso antes de que comience a ejecutarse. Paginación con demanda: Las páginas se cargan a memoria RAM sólo cuando se necesitan. Verdadero. Falso. Localidad de referencia: Durante la ejecución, el proceso hace referencia sólo a una pequeña fracción de sus páginas. Verdadero. Falso. Sobrepaginado o thrashing: Cuando se producen demasiados fallos de página en relación a la cantidad de instrucciones que se ejecutan. Verdadero. Falso. Prepaginación: Cargar páginas antes de ejecutar el proceso para evitar fallos. Verdadero. Falso. Thrashing: Ocurre cuando hay muchos fallos de página seguidos. Verdadero. Falso. En la política de asignación de páginas: En la política local el proceso reemplaza sus propias páginas; solo usa sus marcos. En la política global el proceso puede reemplazar páginas de cualquier proceso. La política global es la que ajusta la cantidad de marcos por proceso. En la política local el sistema operativo reparte dinámicamente marcos entre procesos según su carga. En la política global, cada proceso recibe un número fijo de marcos que no cambia durante su ejecución. Respecto al tamaño de páginas: Página grande, hay mayor fragmentación interna en la última página. Página pequeña hay mejor aprovechamiento de la memoria, reduciendo la fragmentación interna. Página grande reduce la fragmentación interna porque cada página almacena más datos del proceso. Página pequeña aumenta la fragmentación interna porque se generan más marcos vacíos. Demonio de paginaicon: Proceso en segundo plano que garantiza la existencia de suficientes marcos libres en memoria RAM. Proceso encargado de ejecutar los algoritmos de reemplazo de páginas de manera directa dentro de la MMU. Proceso que copia todas las páginas del proceso al disco antes de que ocurra un fallo de página. Bloqueo de paginas en memoria: No eliminar páginas que están realizando operaciones de E/S. Mantener en memoria las páginas más antiguas para evitar su reemplazo por algoritmos como FIFO. Evitar que las páginas sean cargadas desde disco mientras el proceso no ha liberado todos sus marcos. Área de swap (intercambio): área del disco donde almacenamos la imagen de los procesos ejecutándose. Verdadero. Falso. Un segmento en la memoria es: Unidad lógica dentro de su propio espacio. Una parte lógica del programa de tamaño variable. Tiene su propio par base–límite para protección. Un bloque fijo de memoria física que todos los procesos comparten simultáneamente. Un bloque estático de memoria reservado en el momento de compilar el programa y que nunca varía de tamaño. La segmentacion: Técnica de administración de memoria virtual en la cual el programa se divide en partes de diferente tamaño llamadas segmentos. Técnica donde el programa se divide en bloques de tamaño fijo llamados páginas. Técnica que organiza la memoria en marcos de tamaño variable que se asignan dinámicamente a cada proceso. Ventajas segmentación: Cada segmento tiene un tipo de datos diferente. Cada segmento puede crecer o reducirse independientemente y puede tener un tipo de protección diferente. Facilita la compartición de procedimientos o datos entre procesos. El programador es consciente de que se está implementando la segmentación. Elimina toda la fragmentación externa al dividir la memoria en segmentos variables. Obliga a que todos los segmentos estén contiguos en memoria física para mejorar el rendimiento. En la comparación entre paginación y segmentación: La paginación puede generar fragmentación interna. La paginación tiene tamaño fijo. La segmentación tiene tamaño variable. La segmentación puede generar fragmentación externa. La segmentación respeta la estructura lógica del programa (código, datos, pila). La paginación es transparente al programador. La paginación genera fragmentación externa porque las páginas deben ubicarse contiguamente en memoria. La segmentación utiliza marcos de tamaño fijo para asignar segmentos de forma eficiente. Respecto a las interrupciones: Señales recibidas por el procesador para indicar que debe interrumpir la ejecución actual y ejecutar un código para manejar la situación. Es una suspensión temporal de la ejecución del proceso para ejecutar la rutina de atención. Son generadas por dispositivos de E/S. Son ejecutadas únicamente por el sistema operativo cuando necesita terminar un proceso. IRQ (Interrupt request). Línea única asignada a un dispositivos para comunicarse con el procesador. Registro interno del CPU donde se almacenan todas las interrupciones pendientes. Número de proceso que debe ejecutarse cuando ocurre una interrupción. Respecto a las Interrupciones. Mientras se realiza una operación de E/S el procesador debe esperar su finalización. Mejoran la eficiencia del procesamiento. Permiten que el procesador ejecute otras instrucciones mientras se realiza una operación de E/S. Obligan al procesador a detener todas sus tareas hasta completar la operación de E/S. Empeoran la eficiencia del sistema porque obligan al procesador a atender cada evento inmediatamente. Tipos de Interrupciones: Interrupción de programas. Interrupción de reloj (timer). Interrupciones de E/S. Interrupciones externas o de hardware. Interrupciones de memoria virtual. Interrupciones de sincronización. Enfoques Interrupciones Múltiples. Las interrupciones se tratan secuencialmente. Se definen prioridades para procesar las interrupciones. Con interrupciones múltiples, el procesador ignora las interrupciones de menor prioridad hasta que se reinicia el sistema. En interrupciones múltiples, el manejador selecciona siempre la interrupción que llegó primero, sin importar su prioridad. Tipos de dispositivos de E/S. Dispositivos de bloque (discos, SSD, pendrive). Dispositivos de carácter (teclado, mouse, impresora, terminal). Dispositivos de página. Dispositivos de buffer fijo. Dispositivos de red (placas de red). Categorías de dispositivos de E/S: Legibles para el usuario. Legibles para la máquina. De comunicación. De supervisión. De traducción. Técnicas de comunicación de E/S: E/S programada. E/S dirigida por interrupciones. Acceso directo a memoria (DMA). E/S síncrona por swapping. El manejador de interrupciones se encarga de: Procesar la interrupción. Guardar el contexto del proceso interrumpido. Determinar qué controlador generó la interrupción. Desbloquear el controlador que inició la operación. Actualizar las colas del planificador si es necesario. Restaurar el contexto y reanudar la ejecución. Ajustar la velocidad del procesador para sincronizarla con el dispositivo que generó la interrupción. Ejecutar directamente la operación de E/S pendiente sin involucrar al controlador correspondiente. Acceso directo a la memoria (DMA). El procesador envía una petición de transferencia de un bloque de datos al módulo de DMA, que controla el intercambio de datos entre la RAM y un módulo de E/S. El procesador controla directamente cada byte de la transferencia, mientras el módulo de DMA solo verifica errores. El módulo de DMA copia los datos a la memoria caché del CPU antes de enviarlos a la RAM. Manejadores (driver) de dispositivos: Software mediante el cual el núcleo de la computadora se comunica con el hardware. Programa de usuario encargado de ejecutar instrucciones en nombre del hardware cuando el kernel está ocupado. Manejadores de dispositivo del núcleo: Controladores de dispositivos genéricos cargados con el SO en memoria como parte del SO. Controladores instalados por el usuario en modo aplicación para extender las funciones del kernel. Manejadores de dispositivos en modo usuario: Los activan los usuarios durante su sesión en una PC. Son módulos que permiten que cualquier proceso ejecute instrucciones privilegiadas sobre el dispositivo. ¿Cuáles son los tipos de manejadores de dispositivos?. Manejadores del núcleo. Manejadores específicos del dispositivo. Manejadores en modo usuario. Manejadores de interrupciones del procesador. Que es un Buffer?. Espacio de memoria temporal donde se guardan datos mientras se transfieren. Área del disco donde se almacenan datos de forma permanente. Espacio de memoria permanente donde se guardan datos mientras se transfieren. Organización física de los discos duros: Pistas → círculos concéntricos. Sectors → divisiones de las pistas. Clusters → agrupaciones de sectores. Pistas → divisiones radiales del disco. Parámetros de rendimiento del Disco Duro: Tiempo de búsqueda. Retardo de giro o rotacional. Tiempo de transferencia. Frecuencia del cabezal lector. Tiempo de encendido. RAID (Redundant Array of Independent Disks): Tecnología que usa múltiples discos en paralelo para mejorar rendimiento y/o redundancia. Tecnología que permite que un único disco actúe como varios discos virtuales. Técnica que permite que el CPU acceda directamente al disco sin pasar por el SO. La técnica de buffer doble se caracteriza por: Optimizar la operación de E/S. Permitir que mientras un buffer se llena, el otro se vacía. Asignación de dos buffers: uno en uso y otro preparado. Reduce el tiempo de espera entre CPU y dispositivo. Copiar los datos dos veces para asegurar integridad. Transferencia Sin buffer: La CPU espera directamente al dispositivo de E/S; no hay almacenamiento intermedio. El dispositivo almacena datos en caché automáticamente. La transferencia la realiza siempre el DMA. Transferencia con buffer único: Un solo buffer temporal entre CPU y dispositivo para amortiguar la diferencia de velocidad. Permite leer y escribir simultáneamente sin espera. Usa memoria secundaria como área de buffer. Respecto a la transferencia con buffer circular: Se asignan a la operación 3 o más buffers intermedios del sistema. Permite que las operaciones de E/S se ejecuten a la misma velocidad que el proceso. Reemplaza completamente la necesidad del controlador de E/S. Utiliza memoria secundaria para rotar los buffers. Respecto al RAID 0: Sin redundancia. Cada disco se divide en bandas y los datos se distribuyen entre todos los discos. Atiende peticiones en paralelo. Mejora el tiempo de espera de solicitudes de E/S. No protege contra fallos. Implementa la copia espejo de todos los datos para máxima seguridad. Reduce el rendimiento porque los datos deben escribirse secuencialmente en un solo disco. Respecto al RAID 1: Los discos se duplican en espejo. Alta disponibilidad (si un disco falla, el otro sigue). Las lecturas se pueden hacer desde cualquiera de los discos (mejora rendimiento). Las escrituras se hacen en ambos discos. Usa paridad para reconstruir datos en caso de fallos. No mejora la disponibilidad porque todos los discos deben funcionar juntos. Respecto al RAID 3: Paridad intercalada a nivel de bits. Los datos se dividen en bandas muy pequeñas. Usa un solo disco redundante (bit de paridad). Se ejecuta 1 petición por vez (no orientado a transacciones). Acceso paralelo para cada solicitud de E/S. Distribuye la paridad entre todos los discos para evitar cuellos de botella. No utiliza paridad y por lo tanto no tolera fallos. Respecto al RAID 5: Paridad distribuida e intercalada a nivel de bloque. Usa bandas grandes. La paridad está distribuida: elimina el cuello de botella del disco de paridad. La paridad se calcula entre las bandas de todos los discos. Usa un único disco dedicado exclusivamente para almacenar toda la paridad. Es el nivel de RAID más lento en lectura debido a la necesidad de reconstrucción permanente. Respecto al RAID 6: Usa bandas grandes. Paridad dual distribuida e intercalada a nivel de bloque. Realiza dos cálculos distintos de paridad. Las dos bandas de paridad se distribuyen entre todos los discos. Requiere 2 discos adicionales al total de discos de usuario. Alta disponibilidad (tolera la falla de dos discos). No implementa paridad y se basa únicamente en espejado para asegurar datos. Requiere solo un disco adicional para almacenar toda la paridad del sistema. La caché de disco tiene como propósito: Servir como memoria intermedia rápida entre CPU y disco. Reducir el tiempo de acceso a datos frecuentes. Mantener en memoria los bloques más usados. Disminuir la carga sobre el disco físico. Almacenar todos los datos del disco permanentemente. Reemplazar la memoria RAM cuando esta se llena. La estrategia de reemplazo de bloque en caché incluyen: LRU (Least Recently Used). LFU (Least Frequently Used). Por frecuencia o uso (general). FIFO. MRU (Most Randomly Used). La arquitectura de clusters: Balanceo de carga. Balanceo de carga. Migración transparente. Presentar al usuario una imagen única del sistema. Mejora el rendimiento y la escalabilidad. No permite migración de procesos entre nodos para evitar inconsistencias. Cada nodo funciona totalmente aislado sin compartir recursos. Componentes proceso Cliente-Servidor: Clientes. Servidores. Red. Kernel. Sistema de archivos. Clasificacion clases de aplicaciones cliente/servidor. Procesamiento basado en el host. Procesamiento basado en el servidor. Procesamiento cooperativo. Procesamiento basado en el cliente. Procesamiento basado en la memoria virtual. Procesamiento orientado al kernel. Respecto al Middleware: Es un Software intermedio que conecta clientes y servidores en sistemas distribuidos heterogéneos. Permite interoperabilidad entre distintas plataformas y fabricantes. Brinda modularidad y capacidad de combinar plataformas y aplicaciones. Componentes: APIs y protocolos estándar entre la aplicación, el software de comunicaciones y el SO. Software que reemplaza completamente al sistema operativo del servidor. Sistema que obliga a todos los nodos a usar el mismo lenguaje de programación. Las primitivas del paso de mensajes son send y receive: Vardadero. Falso. Respecto al servicio fiable: Garantiza la entrega de los datos usando un protocolo de transporte fiable. Realiza comprobación de errores y acuse de recibo. Si los mensajes llegan desordenados, se ordenan y se retransmiten. Entrega los datos sin necesidad de confirmación para reducir el tiempo de transmisión. Solo garantiza que los primeros y últimos mensajes lleguen, no los intermedios. Respecto al servicio No fiable: Rápido pero sin confirmación de recibo. Solo se envía el mensaje por la red sin usar un protocolo de transporte fiable. Garantiza la entrega de todos los paquetes con acuse de recibo. Retransmite los mensajes perdidos para asegurar consistencia. Primitivas bloqueantes vs No bloqueantes: Bloqueantes: el proceso espera hasta confirmar la transmisión o recepción. No bloqueantes: el proceso continúa ejecutándose mientras se gestiona el mensaje. Bloqueantes: permiten que el proceso avance sin esperar la respuesta. No bloqueantes: detienen al proceso hasta terminar la comunicación. Tipos de conexiones o enlaces: Conexión no persistente: la conexión se libera apenas se devuelven los valores de la RPC. Conexión persistente: la conexión se mantiene después del fin de la RPC, abierta para futuras llamadas. Conexión no persistente: mantiene el canal abierto indefinidamente aunque no haya RPC. Conexión persistente: se cierra automáticamente después de cada solicitud. |





