Conceptos Esenciales de Sistemas Operativos: DMA, Gestión de E/S, Protección y Criptografía de Clave Pública
Clasificado en Informática
Escrito el en español con un tamaño de 4,81 KB
Acceso Directo a Memoria (DMA): Concepto, Uso y Ventajas
El Acceso Directo a Memoria (DMA) es un procesador de propósito especial que se encarga de descargar parte de las tareas de Entrada/Salida (E/S) programada (PIO), evitando así sobrecargar a la CPU principal. Para iniciar una transferencia DMA, el host describe un bloque de comando DMA en la memoria. Este bloque contiene un puntero al origen de una transferencia, un puntero al destino de la transferencia y un contador del número de bytes que hay que transferir. La CPU escribe la dirección de este bloque en la controladora DMA. Esta controladora se encarga de operar el bus de memoria, colocando direcciones en el bus para realizar las transferencias sin ayuda de la CPU.
Diferenciación entre Buffering y Caché en el Subsistema de E/S del Núcleo
En el subsistema de Entrada/Salida (E/S) del núcleo, es fundamental distinguir entre buffering y caché:
- Un búfer es un área de memoria que almacena datos mientras se están transfiriendo entre dos dispositivos o entre un dispositivo y una aplicación. El almacenamiento en búfer se realiza por varias razones:
- Para una adaptación de velocidades entre el productor y el consumidor de un flujo de datos.
- Para la adaptación entre dispositivos que tengan diferentes tamaños de transferencia de datos.
- Para soportar la semántica de copia de E/S de las aplicaciones.
- Una caché es una región de memoria rápida que alberga copias de ciertos datos. El acceso a la copia almacenada en caché es más eficiente que el acceso al original.
La principal diferencia es que un búfer puede almacenar la única copia existente de un elemento de datos, mientras que una caché almacena simplemente, en un dispositivo de almacenamiento más rápido, una copia de un elemento que reside en otro lugar.
Protección en Sistemas Operativos: Objetivos y Mecanismos
Objetivos de la Protección
Los objetivos de la protección en sistemas operativos son:
- Impedir una violación maliciosa e intencionada de una restricción de acceso por parte de un usuario.
- Garantizar que cada componente del programa activo en un sistema utilice los recursos del sistema solo de ciertas formas que sean coherentes con las políticas establecidas.
Mecanismos de Protección
Para lograr estos objetivos, se utilizan diversos mecanismos:
Matriz de Acceso
Las filas de la matriz representan dominios y las columnas representan objetos. Cada entrada de la matriz está compuesta por un conjunto de derechos de acceso.
Lista de Control de Acceso (ACL)
Es una lista asociada con cada archivo que especifica los nombres de usuario y los tipos de acceso que se permiten para cada uno. Cuando un usuario solicita acceder a un archivo concreto, el sistema operativo (SO) comprueba la lista de acceso asociada con dicho archivo. Su principal problema es la longitud.
Lista de Capacidades
Es una lista de objetos junto con las operaciones permitidas sobre esos objetos. Cada objeto se representa mediante su dirección o nombre físico, denominada capacidad. Para ejecutar una operación sobre un objeto, el proceso ejecuta la operación especificando la capacidad para el objeto como parámetro. La simple posesión de la capacidad significa que el acceso está permitido.
Criptografía de Clave Pública: Autenticación y Protección de Mensajes
El uso del mecanismo de clave pública es fundamental para dos funciones principales: (1) identificar al remitente y (2) proteger el mensaje.
Algoritmos de Autenticación
Un algoritmo de autenticación consta de:
- K: Claves.
- M: Mensajes.
- A: Autenticadores.
- Una función S(k): Para generar autenticadores a partir de los mensajes.
- Una función V(k): Para verificar autenticadores.
La propiedad de autenticación establece que, para un mensaje m, una computadora puede generar un autenticador a, tal que V(k)(m,a) = true solo si posee S(k). Así, una computadora que posea S(k) podrá generar autenticadores para los mensajes de modo que otra que posea V(k) pueda verificarlos.
Funciones Hash
Una función hash crea un pequeño bloque de datos de tamaño fijo, denominado valor hash, a partir de un mensaje dado. Las funciones hash toman un mensaje en bloques de n bits y generan un valor hash de n bits. No debe ser factible calcular un m2 ≠ m1 tal que H(m1)=H(m2). En estas condiciones, si H(m1)=H(m2), sabemos que m1=m2 y, por lo tanto, el mensaje no ha sido modificado.