Conceptos Esenciales de Sistemas Operativos: Sincronización, Memoria y Archivos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 13,26 KB
Sincronización de Procesos: Conceptos Esenciales
¿Qué se entiende por sincronización de procesos?
Es el mecanismo que coordina procesos concurrentes que comparten recursos o datos, asegurando resultados consistentes.
¿Qué tipos de procesos requieren sincronización?
Procesos cooperativos, aquellos que comparten datos y afectan o son afectados por otros procesos.
¿Qué es una condición de carrera?
Ocurre cuando múltiples procesos acceden simultáneamente a un recurso compartido, y el resultado depende del orden de ejecución.
¿Qué solución se propone para la condición de carrera?
Se propone el uso de semáforos, monitores o algoritmos como el de Peterson. A nivel de hardware, se utilizan instrucciones atómicas como Test-and-Set.
¿Qué es una sección crítica?
Es la porción del código donde se accede a recursos compartidos, permitiendo que solo un proceso esté en ella para evitar conflictos.
¿Qué condiciones debe cumplir una solución para el problema de la sección crítica?
- Exclusión mutua: Solo un proceso puede estar en la sección crítica a la vez.
- Progreso: Si no hay procesos en la sección crítica, los que deseen entrar deben poder hacerlo.
- Espera limitada: Garantizar que todos los procesos tengan la oportunidad de entrar.
¿Qué son los semáforos y monitores?
- Semáforos: Variables que sincronizan procesos mediante operaciones como wait y signal.
- Monitores: Estructuras que encapsulan el acceso a recursos compartidos, garantizando exclusión mutua de forma implícita.
¿Qué significa “espera activa”?
Es una técnica ineficiente donde un proceso espera continuamente en un bucle (busy-waiting) hasta que el recurso esté disponible.
Interbloqueos (Deadlocks): Conceptos y Estrategias
¿Qué es un deadlock (interbloqueo)?
Es una situación en la que un grupo de procesos queda bloqueado porque cada uno espera un recurso que otro del grupo posee.
¿En qué tipo de procesos se pueden dar los interbloqueos?
Se dan en procesos cooperativos que comparten recursos y dependen entre sí.
Si consideramos la política de “Que no ocurra”, ¿cómo se pueden prevenir los interbloqueos?
- Prevenir exclusión mutua: Diseñar recursos que puedan compartirse.
- Prevenir retención y espera: Solicitar todos los recursos al mismo tiempo.
- Prevenir no apropiación: Permitir que los procesos liberen recursos cuando no puedan continuar.
- Prevenir espera circular: Asignar un orden global a los recursos y exigir que los procesos los soliciten en ese orden.
¿Qué se entiende por “Espera Circular”?
Es una condición en la que cada proceso espera un recurso que otro proceso del mismo grupo tiene, formando un ciclo.
Ejemplo de Espera Circular:
- Proceso A espera el recurso R1 (retenido por el Proceso B).
- Proceso B espera el recurso R2 (retenido por el Proceso A).
¿Qué se entiende por “Exclusión Mutua”?
Es la garantía de que solo un proceso puede acceder a un recurso compartido a la vez, evitando conflictos y asegurando la integridad de los datos.
Administración de Memoria: MFT, MVT y Paginación Simple
¿Qué es la administración de memoria MFT y MVT?
- MFT (Multiprogramación con Particiones Fijas): Divide la memoria principal en particiones fijas predeterminadas. Cada partición aloja un solo proceso, lo que genera fragmentación interna.
- MVT (Multiprogramación con Particiones Variables): Divide la memoria en particiones dinámicas según las necesidades del proceso, lo que genera fragmentación externa.
¿Qué diferencia hay entre fragmentación externa e interna?
- Fragmentación Interna: Espacio no utilizado dentro de una partición asignada.
- Fragmentación Externa: Espacio desperdiciado entre particiones debido a su tamaño variable.
¿Qué es la paginación simple?
Es una técnica que divide la memoria lógica en páginas y la física en marcos del mismo tamaño. Esto elimina la fragmentación externa.
¿Qué datos contiene la tabla de páginas y dónde reside?
Contiene el número de página lógica y el marco físico correspondiente. Reside en RAM y usa la TLB para mejorar la velocidad.
¿Qué es la MMU y qué administra?
La MMU (Unidad de Gestión de Memoria) traduce direcciones lógicas a físicas, administra la paginación, segmentación y memoria virtual.
¿Por qué las tablas de página se movieron de la MMU a la RAM?
Se movieron debido al aumento del tamaño de las tablas y de la complejidad de los procesos.
¿Qué función cumple la PTBR?
El PTBR (Page Table Base Register) apunta al inicio de la tabla de páginas en la memoria RAM, facilitando a la MMU localizar rápidamente la tabla de un proceso.
¿Qué hardware fue necesario incorporar para mejorar la velocidad de los cálculos de las direcciones físicas?
La TLB (Translation Lookaside Buffer), una caché asociativa que almacena las entradas más recientes de las tablas de página.
Memoria Virtual: Funcionamiento y Beneficios
¿Qué es la memoria virtual y dónde reside?
Es un esquema que permite ejecutar procesos que no están completamente cargados en la RAM, utilizando el disco duro como almacenamiento secundario para las partes inactivas.
¿Qué beneficios tiene la memoria virtual?
- Permite ejecutar procesos más grandes que la memoria física.
- Incrementa la multiprogramación.
- Reduce la fragmentación externa.
¿Qué es la ‘página víctima’?
Es una página en la RAM seleccionada para ser reemplazada cuando no hay marcos libres.
¿Qué hacen los sistemas operativos para evitar quedarse sin marcos libres?
Aplican estrategias como el presacrificio, liberando páginas menos usadas para mantener un mínimo de marcos disponibles.
¿Qué es la hiperpaginación (thrashing) y cómo se previene?
- Es una situación donde el sistema pasa más tiempo gestionando fallos de página que ejecutando procesos.
- Se previene asignando suficientes marcos según el criterio de localidad.
¿Por qué los tamaños de página no son iguales en la actualidad?
Los tamaños varían para optimizar recursos:
- Páginas pequeñas (4 KB) para procesos pequeños.
- Páginas grandes (MB) para archivos multimedia.
Paginación Bajo Demanda y Algoritmos de Reemplazo
¿Qué es la paginación bajo demanda?
Es una técnica donde las páginas se cargan en RAM solo cuando son necesarias, optimizando el uso de memoria.
¿Cómo funciona el algoritmo de reemplazo FIFO?
Reemplaza la página más antigua en memoria cuando ocurre un fallo de página.
¿Qué sucede al asignar más marcos a un proceso con FIFO?
En algunos casos, puede aumentar los fallos de página debido a la anomalía de Belady.
Archivos y Directorios: Definiciones y Características
¿Qué es un archivo y qué es un directorio?
- Archivo: Es un conjunto de datos almacenados en un sistema de archivos. Puede contener información en diversos formatos como texto, imágenes, audio o programas ejecutables.
- Directorio: Es una estructura del sistema de archivos que organiza y almacena archivos y otros subdirectorios.
¿Cuáles son las características de un archivo?
- Identificación única por nombre y extensión.
- Tamaño específico en bytes.
- Fecha de creación, modificación y acceso.
- Permisos de lectura, escritura y ejecución.
- Ubicación dentro del sistema de archivos.
¿Qué nombres reciben los archivos en los sistemas operativos?
- En Windows: nombre.extension (Ejemplo: documento.txt).
- En Linux/Unix: Sensibles a mayúsculas y minúsculas (config.conf no es lo mismo que CONFIG.conf).
- En MacOS: Similar a Unix, con soporte para metadatos adicionales.
¿Qué define el tipo de un archivo?
- La extensión del archivo (.txt, .jpg, .mp3).
- El encabezado del archivo (firmas mágicas que identifican formatos).
- Metadatos almacenados en el sistema de archivos.
¿Qué tipos de archivos maneja el sistema operativo y qué métodos de acceso existen?
Tipos de archivos:
- Archivos de texto (.txt, .csv).
- Archivos binarios (.exe, .dll).
- Archivos multimedia (.jpg, .mp3).
- Archivos comprimidos (.zip, .tar.gz).
Métodos de acceso:
- Secuencial: Lectura en orden, como en archivos de texto.
- Directo: Acceso inmediato a una posición específica, útil en bases de datos.
- Indexado: Uso de índices para localizar datos rápidamente.
Interbloqueos: Condiciones y Métodos de Tratamiento
¿Qué se entiende por interbloqueo?
Un interbloqueo (deadlock) ocurre cuando un conjunto de procesos se encuentra en espera mutua de recursos, impidiendo su ejecución.
¿Cuáles son las condiciones necesarias para que haya interbloqueo?
Para que ocurra un interbloqueo, deben cumplirse estas cuatro condiciones simultáneamente:
- Exclusión mutua: Solo un proceso puede usar un recurso a la vez.
- Retención y espera: Un proceso mantiene un recurso mientras espera otro.
- No apropiación: Un recurso solo puede ser liberado voluntariamente.
- Espera circular: Existe un ciclo en el que cada proceso espera un recurso retenido por el siguiente.
¿Cuáles son los métodos para tratar los interbloqueos?
- Prevención: Se eliminan una o más condiciones de interbloqueo (ejemplo: evitar la espera circular imponiendo un orden estricto de asignación de recursos).
- Evitación: Se emplean algoritmos como el del Banco de recursos de Dijkstra, donde solo se asignan recursos si el sistema sigue en un estado seguro.
- Detección y recuperación: Se monitorea el sistema en busca de ciclos y, en caso de detectarlos, se eliminan procesos para liberar recursos.
- Ignorar el problema: Estrategia utilizada en sistemas como Windows, donde se deja en manos del usuario (reinicio del equipo).
Estrategias para evitar interbloqueos
- Analizar los procesos y su demanda de recursos.
- Aplicar una estrategia de prevención o evitación (orden de asignación, solicitud de recursos al inicio).
- Implementar un sistema de recuperación en caso de que ocurra un interbloqueo.
Memoria Principal y Periférica: Conceptos y Asignación
¿Qué es la memoria principal y la memoria periférica?
- Memoria Principal (RAM): Espacio de almacenamiento volátil donde residen los procesos en ejecución.
- Memoria Periférica (Disco Duro, SSD, USB): Almacenamiento no volátil que conserva datos a largo plazo.
¿Qué se entiende por espacio de direcciones y espacio de direccionamiento?
- Espacio de direcciones: Rango de direcciones de memoria accesibles por un proceso.
- Espacio de direccionamiento: La capacidad de un sistema para acceder a una dirección de memoria específica.
Momentos clave en la traducción de direcciones lógicas a físicas
- Generación de direcciones: El programa usa direcciones lógicas generadas por el compilador.
- Traducción en la MMU: La unidad de gestión de memoria (MMU) convierte la dirección lógica en dirección física.
- Búsqueda en la tabla de páginas: Si la dirección no está en RAM, se consulta la tabla de páginas.
- Carga en memoria: Si ocurre un fallo de página, se trae desde el almacenamiento secundario.
- Acceso físico: Se ejecuta la instrucción con la dirección física final.
Asignación contigua de memoria: Problemas y soluciones
- Asignación contigua: Los procesos deben ocupar un bloque continuo de memoria.
- Problema: Genera fragmentación externa, dejando espacios desperdiciados entre procesos.
- Solución: Se usa paginación (división en marcos de tamaño fijo) o segmentación paginada (división lógica con páginas más pequeñas).