27 May
Gestión de Procesos
Sincronización de Procesos
¿Qué se entiende por sincronización de procesos?
La sincronización de procesos es un método para solucionar problemas de competencia y gestionar el acceso a una sección crítica entre procesos. Su objetivo es asegurar el uso organizado de recursos compartidos, evitando que más de un proceso acceda a la vez a la sección crítica.
¿En qué tipos de procesos se puede dar la sincronización?
Esto se puede dar en procesos multihilo o procesos cooperativos.
¿Qué se entiende por Condición de Carrera?
Una Condición de Carrera (Race Condition) ocurre cuando el resultado de una operación depende del orden de ejecución de los procesos, es decir, de cuál llega primero o de su secuencia de acceso a un recurso compartido.
¿Qué soluciones se plantean para resolver este inconveniente?
Para resolver las condiciones de carrera se pueden usar:
- Semáforos: Soluciones a nivel de sistema operativo.
- Monitores: Soluciones a nivel de lenguajes de alto nivel o compilador.
Interbloqueo (Deadlock)
¿Qué se entiende por Interbloqueo o Deadlock?
Un interbloqueo (o deadlock) se produce cuando un grupo de procesos queda bloqueado indefinidamente, esperando recursos que otros procesos del mismo grupo ya poseen, sin posibilidad de continuar su ejecución. Un ejemplo común es cuando el proceso A retiene el recurso X y espera el recurso Y, mientras que el proceso B retiene el recurso Y y espera el recurso X.
¿En qué tipo de procesos se pueden dar los interbloqueos?
Los interbloqueos se pueden dar en procesos concurrentes que compiten por recursos no compartibles, cuando cada proceso espera un recurso retenido por otro.
¿Cuáles son las condiciones necesarias para que se dé un Interbloqueo?
Para que ocurra un interbloqueo, deben cumplirse estas cuatro condiciones simultáneamente:
- Exclusión Mutua: Un recurso solo puede ser usado por un proceso a la vez, evitando accesos simultáneos.
- Retención y Espera: Un proceso mantiene al menos un recurso mientras espera la asignación de otros recursos que están siendo retenidos por otros procesos.
- No Apropiación: Un recurso solo puede ser liberado voluntariamente por el proceso que lo posee, después de haber completado su tarea.
- Espera Circular: Se forma un ciclo en el que cada proceso espera un recurso retenido por el siguiente proceso en el ciclo.
Ejemplo gráfico de espera circular:
P1 → R1 → P2 → R2 → P3 → R3 → P1
¿Cómo prevenir los interbloqueos según la política de «Que no ocurra»?
La política de prevención de interbloqueos busca eliminar una o más de las cuatro condiciones necesarias:
- Evitar Exclusión Mutua: Hacer que los recursos sean compartibles cuando sea posible (aunque esto no siempre es factible para todos los recursos).
- Evitar Retención y Espera: Solicitar todos los recursos necesarios antes de comenzar la ejecución, o liberar los recursos ya tomados si no se pueden obtener los nuevos.
- Evitar No Apropiación: Permitir que los recursos puedan ser expropiados (quitados) a un proceso si es necesario, y luego reasignados.
- Evitar Espera Circular: Imponer un orden total en la solicitud de recursos, de modo que un proceso solo pueda solicitar recursos en un orden ascendente predefinido.
Describa los métodos generales para tratar los interbloqueos.
Existen varias estrategias para manejar los interbloqueos:
- Prevención: Se eliminan una o más de las condiciones necesarias para que ocurra un interbloqueo (ejemplo: evitar la espera circular imponiendo un orden estricto de asignación de recursos).
- Evitación: Se emplean algoritmos (como el Algoritmo del Banquero de Dijkstra) que solo asignan recursos si el sistema puede permanecer en un estado seguro, es decir, si existe una secuencia de ejecución de procesos que permita a todos terminar sin interbloqueo.
- Detección y Recuperación: Se monitorea el sistema en busca de ciclos de espera y, en caso de detectarlos, se aplican medidas para romper el interbloqueo (ejemplo: terminar procesos, expropiar recursos).
- Ignorar el problema: Estrategia utilizada en muchos sistemas operativos (como Windows), donde se asume que los interbloqueos son raros y se deja la recuperación en manos del usuario (ejemplo: reinicio del equipo).
Gestión de Memoria
Conceptos Fundamentales de Memoria
Defina qué es la memoria principal y la memoria periférica.
- Memoria Principal (RAM): Es un espacio de almacenamiento volátil y de alta velocidad donde residen los programas y datos que están en ejecución activa.
- Memoria Periférica (Almacenamiento Secundario): Incluye dispositivos como Discos Duros (HDD), Unidades de Estado Sólido (SSD) o USB. Es un almacenamiento no volátil que conserva los datos a largo plazo, incluso sin energía.
¿Qué se entiende por espacio de direcciones y espacio de direccionamiento?
- Espacio de Direcciones: Es el rango de direcciones de memoria (lógicas o físicas) que un proceso puede acceder o referenciar.
- Espacio de Direccionamiento: Se refiere a la capacidad total de un sistema para acceder a una dirección de memoria específica, determinado por el número de bits utilizados para las direcciones.
Defina los 3 momentos en donde se pasa de una Dirección Lógica a una Dirección Física.
La traducción de direcciones lógicas (generadas por la CPU) a direcciones físicas (reales en la memoria) puede ocurrir en tres momentos:
- Tiempo de Compilación: Si la ubicación del programa en memoria es conocida de antemano, el compilador puede generar código con direcciones físicas absolutas.
- Tiempo de Carga: Si la ubicación del programa no se conoce hasta el momento de la carga, el cargador reubica las direcciones lógicas sumando un desplazamiento base.
- Tiempo de Ejecución: Es el método más común y flexible. La traducción se realiza dinámicamente durante la ejecución del programa, utilizando hardware especializado como la MMU.
Asignación de Memoria y Paginación
Describa la asignación contigua de memoria, qué problema tiene y qué metodología apareció para solucionarlo.
- Asignación Contigua: Es una técnica donde se reserva un bloque continuo de memoria principal para cada proceso.
- Problema: Genera fragmentación externa, que son pequeños huecos de memoria libres dispersos que, aunque sumen un tamaño considerable, no son lo suficientemente grandes como para alojar un nuevo proceso, resultando en memoria inutilizada.
- Solución: La Paginación. Esta metodología divide la memoria física en bloques de tamaño fijo llamados marcos de página (frames) y los procesos en bloques del mismo tamaño llamados páginas. Esto permite que el espacio de direcciones físicas de un proceso no sea contiguo, eliminando la fragmentación externa.
Explicar en pocas palabras qué es la paginación simple.
La paginación simple es una técnica de gestión de memoria donde la memoria física se divide en marcos de página de tamaño fijo, y los procesos se dividen en páginas del mismo tamaño. Las páginas de un proceso pueden cargarse en cualquier marco de página disponible en la memoria física, sin necesidad de ser contiguas.
¿Por qué las Tablas de Páginas pasaron de la MMU a la RAM?
Las Tablas de Páginas (TP) siempre residen en la Memoria Principal (RAM). La confusión puede surgir porque la MMU (Unidad de Administración de Memoria) es el hardware que accede y utiliza estas tablas para realizar la traducción de direcciones. Las tablas de páginas crecieron demasiado en tamaño para ser almacenadas en registros internos de la MMU o CPU, por lo que su ubicación natural es la RAM.
¿Qué función cumple la PTBR?
El Registro Base de la Tabla de Páginas (PTBR) almacena la dirección base de la tabla de páginas del proceso actualmente en ejecución en la memoria principal. Esto permite que la MMU acceda a la tabla de páginas rápidamente para realizar las traducciones de direcciones.
¿Qué hardware se incorporó para mejorar la velocidad en la paginación?
Para mejorar la velocidad de traducción de direcciones en la paginación, se incorporó la TLB (Translation Lookaside Buffer). La TLB es una caché de alta velocidad que almacena las traducciones de direcciones lógicas a físicas más recientes y frecuentemente utilizadas, reduciendo la necesidad de acceder a la tabla de páginas en la RAM para cada traducción.
¿Qué es la MMU – definición? ¿Maneja todo tipo de administración de memoria?
La MMU (Memory Management Unit) es un componente de hardware que se encarga de la administración de memoria. Su función principal es transformar las direcciones lógicas (virtuales) generadas por la CPU en direcciones físicas reales en la memoria. La MMU se centra principalmente en la gestión de la memoria virtual y la paginación, aunque sus principios pueden aplicarse a otras formas de administración de memoria.
¿Qué pasó cuando las tablas de página crecieron?
Cuando las tablas de páginas crecieron significativamente (debido a espacios de direcciones virtuales muy grandes), se hizo ineficiente tener una única tabla lineal. Para solucionar esto, se empezaron a usar métodos como la paginación jerárquica (o paginación multinivel). Este método funciona como un índice de tomos y dentro de los tomos los índices a cada página del libro, reduciendo la cantidad de memoria necesaria para almacenar la tabla de páginas completa en un solo bloque contiguo.
Sistemas de Archivos
Archivos y Directorios
Defina qué es un archivo y qué es un directorio.
- Archivo: Es la unidad lógica de almacenamiento que contiene datos organizados en un sistema operativo. Puede ser de texto, binario, multimedia, ejecutable, etc.
- Directorio: Es una estructura especial dentro del sistema de archivos que organiza y almacena referencias a archivos y a otros subdirectorios, creando una jerarquía.
¿Cuáles son las características de un archivo (nombrar no menos de 6), qué nombre reciben las mismas?
Las características de un archivo se conocen como sus atributos. Los más comunes incluyen:
- Nombre: Identificador único del archivo dentro de su directorio.
- Extensión: Sufijo que indica el formato o tipo de archivo (ej:
.txt
,.exe
,.jpg
). - Tamaño: Espacio que ocupa el archivo en disco (en bytes, KB, MB, etc.).
- Fecha y Hora de Creación/Modificación/Último Acceso: Marcas de tiempo que registran eventos importantes.
- Ubicación: Ruta o puntero a la ubicación física del archivo en el sistema de archivos.
- Permisos de Acceso: Derechos de lectura, escritura y ejecución para diferentes usuarios o grupos.
- Tipo: Categorización interna del sistema operativo (ej: archivo de texto, binario, directorio, dispositivo).
- Propietario: Usuario que creó o posee el archivo.
¿Qué define el tipo de archivo?
El tipo de archivo se define por varios factores:
- La extensión del nombre del archivo (ej:
.txt
,.png
,.mp3
). - Su estructura interna (cabecera y formato de almacenamiento de los datos).
- Los metadatos almacenados por el sistema de archivos (atributos de tipo).
¿Qué tipos de archivos maneja un Sistema Operativo?
Un sistema operativo maneja diversos tipos de archivos, entre ellos:
- Archivos de Datos: Contienen información generada por el usuario o aplicaciones (ej: documentos de texto, imágenes, hojas de cálculo).
- Archivos de Programas: Contienen código ejecutable o scripts (ej:
.exe
,.sh
,.py
). - Archivos de Sistema: Esenciales para el funcionamiento del SO (ej: archivos de configuración, logs, bibliotecas dinámicas).
- Archivos de Dispositivos: Representan interfaces a dispositivos de hardware (ej: impresoras, discos).
- Archivos Temporales: Almacenamiento intermedio para operaciones en curso.
¿Cómo se divide la estructura interna de un archivo?
La estructura interna de un archivo generalmente se divide en:
- Encabezado (Cabecera): Contiene metadatos sobre el archivo, como su nombre, tipo, tamaño, permisos, fechas y otra información de control.
- Cuerpo (Datos): Es la parte principal del archivo, donde se almacena la información real (texto, código, píxeles, etc.).
- Cola (Pie): Puede contener información de control adicional, sumas de verificación (checksums) o marcas de fin de archivo.
¿Cómo es la estructura de un archivo ISAM?
Un archivo ISAM (Indexed Sequential Access Method) es un tipo de archivo diseñado para permitir tanto el acceso secuencial como el acceso directo indexado. Su estructura típica incluye:
- Registros Ordenados: Los datos se almacenan en registros ordenados por una clave primaria, facilitando el acceso secuencial.
- Índices Primarios y Secundarios: Se utilizan índices para permitir búsquedas rápidas de registros específicos. El índice primario se basa en la clave principal, y los secundarios en otras claves.
- Área de Desbordamiento: Un área separada para almacenar registros nuevos o modificados que no encajan en el orden secuencial original, para mantener la eficiencia de las operaciones de inserción y actualización.
Nombre los métodos de acceso a archivos vistos en clase.
Los métodos comunes de acceso a archivos son:
- Acceso Secuencial: Los datos se leen o escriben en el orden en que aparecen en el archivo, desde el principio hasta el final (ej: archivos de texto, logs).
- Acceso Directo (o Aleatorio): Permite acceder directamente a cualquier posición específica dentro del archivo, sin necesidad de leer los datos anteriores (ej: bases de datos, archivos de registros).
- Acceso Indexado: Combina el acceso secuencial con el uso de índices para localizar rápidamente registros específicos, y luego acceder a ellos secuencialmente o directamente desde ese punto (ej: archivos ISAM).
Deja un comentario