TEORÍA DE SISTEMAS OPERATIVOS Gabriel Astudillo Muñoz ALMACENAMIENTO JERARQUÍA DE MEMORIA Tiempo de acceso Capacidad PROBLEMA La mayoría de aplicaciones necesitan almacenar y recuperar información. Un proceso puede almacenar una cantidad limitada de esta en su propio espacio de direcciones en memoria RAM Algunas veces varios procesos necesitan acceder a la misma información simultáneamente.
ALMACENAMIENTO ALMACENAMIENTO Estructuras de datos (Archivos, Directorios) Estructuras de datos (Archivos, Directorios) Sistema de archivos Sistema de archivos Hardware (Discos, CD, Flash, etc) Hardware (Discos, CD, Flash, etc) ARCHIVOS Los procesos almacenan la información en medios externos, en unidades denominadas archivos. La información almacenada en los archivos: debe ser persistente no puede depender de la creación y terminación de un proceso TIPOS DE ARCHIVOS Archivos regulares: Información del usuario, programas, etc Directorios Archivo de sistema para el mantenimiento de una estructura del sistema de archivos Archivos especiales de caracteres Tienen relación con E/S y se utilizan para modelar dispositivos seriales de E/S Archivos especiales de bloque Modelamiento de disco
TIPOS DE ARCHIVOS EXTENSIONES Las extensiones de archivos existen para que el usuario o ciertas aplicaciones puedan determinar con que programa abrirlos o ejecutarlos. Pertenecen al nombre, no a la estructura misma del archivo. ARCHIVOS REGULARES: ACCESO Secuencial Los bytes de un cierto archivo, se leen desde el principio hasta el final. Los bytes o registros pueden leerse en cualquier orden Aleatorio DIRECTORIOS Es un archivo que contiene información de otros archivos. DIRECTORIOS: ESTRUCTURA Árbol invertido Unix
DIRECTORIOS: ESTRUCTURA Árbol invertido Document and Settings C:\ Files Programs Windows Windows DIRECTORIOS RUTAS Es la forma de identificar el archivo que se quiere acceder Ruta Absoluta: Ruta que va desde el directorio raíz hasta el archivo. Ruta relativo: All users Administrator system32 etc Ruta que va desde el directorio de trabajo actual, hasta el archivo requerido. Download kernel32.dll host.conf Directorios especiales:. : directorio actual archivo.exe tarea1.xls.. :directorio padre DIRECTORIOS RUTAS DIRECTORIOS RUTAS Ruta absolutas: /usr/bin/bash : Ruta relativa: / especifica que el archivo bash se encuentra en el directorio /usr/bin c:\windows\system32\kernel32.dll: Estando en /home/wbishop :../../usr/bin/bash Estando en /usr/share: bin usr share home wbishop especifica que el archivo kernel32.dll se encuentra en el directorio c:\windows\system32../bin/bash bash
ALMACENAMIENTO SISTEMAS DE ARCHIVOS Estructuras de datos (Archivos, Directorios) Sistema de archivos Idea básica: Bloques Lógicos Ver el dispositivo de almacenamiento masivo como un arreglo de BLOQUES. 1[KiB] 2[KiB] 4[KiB] pero Datos se almacenan físicamente en sectores de 512 [Bytes] (Discos Magneticos) Hardware (Discos, CD, Flash, etc) bloque 2[KiB] sector 512[B] ALMACENAR DATOS DEL ARCHIVO NODOS 42/.%%20,562.,&0*7.*890:-.; ÍNDICE Método actual: Nodos índices (I-Nodos) Datos Dueño Tipo Tamaño Permisos 1 5 6 7 10 15 13 18 Metadatos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bloques de Disco!"#$%&'#!(()!(()*+,%-.,&/0*12,-3
NODOS ÍNDICE Ejemplo Bloques de 4[KiB] y punteros de 32[bits] 42/.%%20,562.,&0*7.*890:-.; IMPLEMENTACIÓN SISTEMA DE ARCHIVOS 12 punteros directos permiten direccionar 48[KiB] de datos. 42/.%%20,562.,&0*7.*890:-.; Puntero a tabla de 1 er nivel permite direccionar 4[MiB] de datos. 2/.%%20,562.,&0*7.*890:-.;!"#$%&'#!(()!(()*+,%-.,&/0*12,-3 Puntero a tabla de 2 do nivel: 4[GiB] Puntero a tabla de 3 er nivel:4[tib]!tamaño máximo de un archivo: 4[TiB]+4[GiB]+4[MiB]+48[KiB]!"#$%&'#!(()!(()*+,%-.,&/0*12,-3 &'#!(()!(()*+,%-.,&/0*12,-3 IMPLEMENTACIÓN SISTEMA DE ARCHIVOS IMPLEMENTACIÓN SISTEMA DE ARCHIVOS Contiene información de todo el sistema de archivos de una partición: Nº total de i-nodos Tamaño total (en bloques) Nº total de bloques libres Nº total de i-nodos libres Tamaño del bloque Tamaño del i-nodo Tipo de archivo Tamaño del archivo en Bytes, Tamaño del archivo en Bloques Dueño del archivo Marcas tiempo (Creación, última modificación y último acceso) 12 punteros directos 1 puntero de primer nivel, 1 puntero de segundo nivel, 1 puntero de tercer nivel
IMPLEMENTACIÓN SISTEMA DE ARCHIVOS La información del superbloque deben ser de rápido acceso. Se mantienen en memoria Cada cierto tiempo son actualizadas en disco. Pueden haber inconsistencias. El tiempo de revisión es proporcional al tamaño del sistema de archivos. Solución: Sistema de archivos tipo journaling IMPLEMENTACIÓN SISTEMA DE ARCHIVOS Journal: básicamente es una bitácora. Funcionamiento Se registran los cambios que se realizarán Se realizan los cambios Se marcan los cambios como realizados Recuperación Revisar últimas modificaciones Se solucionan inconsistencias IMPLEMENTACIÓN SISTEMA DE ARCHIVOS ALMACENAMIENTO FAT32, NTFS ext2, ext3, ext4 xfs, raiserfs UFS, UFS2 FFS, FFS2 etc Procesos VFS NTFS FAT32 EXT3 Drivers User Kernel Estructuras de datos (Archivos, Directorios) Sistema de archivos Controller Hardware Hardware (Discos, CD, Flash, etc)
ACCESO AL HW Aplicación ACCESO AL HW Aplicación Software Drivers Drivers Parte Electrónica Controller Controller Parte Mecánica Mecanismos Mecanismos ACCESO AL HW ACCESO AL HW Aplicación Drivers Un controlador de disco convierte el flujo de bits que lee desde el dispositivo de bloques en un bloque de dato que ensambla en su propio buffer Proceso Driver Buffer Controller Controller Dispositivo de bloques Mecanismos
ALMACENAMIENTO Estructuras de datos (Archivos, Directorios) CARACTERÍSTICAS Capacidad de Almacenamiento Velocidad de rotación (RPM) Sistema de archivos Hardware (Discos, CD, Flash, etc) HARDWARE DE ALMACENAMIENTO Memoria Cache Mayor Velocidad, Mayor transferencia de datos. Mayor ruido, Mayor calentamiento. CARACTERÍSTICAS Tiempo de acceso Es el tiempo medio necesario que tarda el dispositivo en acceder a los datos que necesitamos. Interfaz Medio físico o protocolo que se utiliza para acceder al disco ATA( PATA, SATA), SCSI, Serial SCSI, etc Tasa de transferencia Cache a disco Cache a Host DISCOS DUROS (MECÁNICOS): ESTRUCTURA Se organiza en: Platos, caras, pistas y sectores. Cilindros (agrupación de pistas verticales)
DISCOS DUROS (MECÁNICOS): DESEMPEÑO Tiempo de acceso ~ tiempo de posicionamiento (Tpos) DISCOS DUROS (MECÁNICOS): DESEMPEÑO Tiempo de acceso ~ tiempo de latencia (Tlat). ~ velocidad de rotación. Formato de entrega: Tpos Promedio: 10[ms] Tpos Pista a Pista: 1[ms] Formato de entrega: Tlat giro completo: 10[ms] Tlat promedio: 5[ms] Tpos Radio Completo: 20[ms] DISCOS DUROS (MECÁNICOS): DESEMPEÑO Ejemplo Se tiene un disco duro que gira a 12000 [rpm]. 100 sectores por pista. El tiempo medio de posicionamiento es de 1 [ms]. Determine el tiempo que transcurre hasta que se lee el último byte de un archivo que está almacenado en 5 sectores consecutivos de una pista y en otros 3 sectores consecutivos en otra pista. Hint: Determinar Tiempo de búsqueda de un sector Tiempo de lectura de un sector INTERFAZ ATA ATA (Advanced Technology Attachment) Protocolo que controla los dispositivos de almacenamiento masivos (Discos Duros) Tipos Parallel ATA (PATA) Serial ATA (SATA) Ata Over Ethernet (AoE) ATAPI Protocolo que controla dispositivos ópticos de almacenamiento.
INTERFAZ IDE (PATA) Tasas de transferencia ( dispositivo a host) DISCOS DUROS INTERFAZ IDE (PATA) 2 canales IDE en cada placa madre 2 dispositivos IDE por cada canal 80 pines Por cada canal: 1 dispositivo MASTER Medio físico Canal IDE 1 dispositivo SLAVE No se puede iniciar un segundo requerimiento en el mismo canal hasta que el primero se complete. INTERFAZ IDE (PATA) Conexiones físicas SERIAL ATA (SATA) Tasa de transferencia SATA rev. 1 SATA rev. 2 SATA rev. 3 AKA SATA 1 SATA-150 SATA 2 SATA-300 SATA 3 SATA-600 Frecuencia [MHz] 1500 3000 6000 Tasa de transferencia [GBs] 1.5 3.0 6.0
SERIAL ATA (SATA) Arquitectura Punto a Punto. SERIAL ATA (SATA) Multiplicadores No hay protocolos de detección de colisiones. Cada dispositivo SATA tiene un ID único. Conexión Hot-Plug. Fuente: Wikipedia SERIAL ATA (SATA) Conexiones físicas EVOLUCIÓN IBM3340: ~70[MiB] IBM350: ~4[MiB] IBM3380: ~1[GiB] (1980)
EVOLUCIÓN EVOLUCIÓN ~5[MiB] (1980) ~420[MiB] (1996) ~190[MiB] ~3[TiB] (2010) EVOLUCIÓN EVOLUCIÓN http://www.intel.com/go/ssd http://newsroom.intel.com/community/intel_newsroom/blog/2011/03/28/intelannounces-third-generation-ssd-intel-solid-state-drive-320-series