140 likes | 328 Views
M étodos para implementación de archivos que tiene Windows y Linux. Danny Castro. Sistemas de Archivos. Concepto simple Implementa abstracción para accesar almacenamiento secundario Abstracción : archivos Proporciona organización lógica para accesar archivos en directorios
E N D
Métodos para implementación de archivos que tiene Windows y Linux. Danny Castro
Sistemasde Archivos • Conceptosimple • Implementaabstracciónparaaccesaralmacenamientosecundario • Abstracción : archivos • Proporcionaorganizaciónlógicaparaaccesararchivos en directorios • Normalmentedirectorioimplementadocomoárboles • Proporciona a usuariosmecanismos de protección y compartición de archivos • Debeproporcionarsemántica de consistenciaparapermitiraccesocompartido
Archivos • Archivoesunacolección de datos con algunaspropiedades • Contenido, tamaño, dueño, últimafecha de modificación, protección, etc • Archivospuedentenertiposentendibles • Sistema de archivos: archivo simple, directorio, enlace • Otraspartes del SO, aplicaciones o bibliotecas • Ejecutable, biblioteca, códigofuente, etc • Típicamente, tipospuedenincluidos en nombre • En Windows, tipoincluido en nombre • En unix, tipoespecificado en los dos primeros bytes del archivo (magic numbers) o caracteresiniciales
Operacionessobrearchivos • create(name) • open(name, mode) • read(fd, buf, len) • write(fd, buf, len) • sync(fd) • seek(fd,pos) • close(fd) • unlink(name) • rename(old, new)
Directorios • Organizararchivos en sistema • Útilparausuarios • Útilparasistema de archivos y usuariosparabuscar y accesararchivos • Mayoría de sistemas de archivossoportanmúltiplesniveles de directorios • Con jerarquía de nombres • Mayoriasoportdirectorio actual y anterior • Rutasabsolutas y relativas • $cd /home/alumnos/pedro (absoluto) • $cdtareas (relativo a dir actual)
Implementacióndirectorios • Normalmente un directorio es sólo un archivo con metadata • con lista de archivos y atributos contenidos en actual directorio • Lista (nombre archivo, atributos archivo) • Atributos pueden ser • Tamaño, protección, dueño, tiempo de creación, tiempo de última modificación, ubicación en disco, etc
Implementación de Sistemas de Archivos • Componentes de SA • Administración de disco • Como organizarcolección de bloques de discos en archivos • Nombres • Usuariosidentificansusarchivosmediantenombres, abstrayéndose de como se almacenaninternamente (#cilindro, pista y sectores). Uso de nombresparaarchivos y directorios • Protección • Como se protege la información de archivos en el sistema entre distintosusuarios y sistema • Confiabilidad/durabilidad/Rendimiento • Cuandosistema se cae, se pierdeinformación en Memoria (caches), pero se deseaqueinformación de archivos no se pierda
Implementación de Sistemas de Archivo • Estructuras en Disco y Memoriaparaimplementar SA • En disco • Bloque Control de Buteo (Boot Control Block) • Informaciónparabutear SO de partición (siexiste en partición). Unix : Boot block, NTFS : Partition Block Sector • Bloque de Control de Partición (Partition Control Block) • Detalles de partición: Tamañobloque, contador y punteros de bloqueslibres, contador y punteros de FCBs. Unix Superblock, NTFS : Tabla de ArchivoMaestra (Master File Table). En Unix/linuxllamado superblock • Estructura de Directorios a usar • FCB (File Control Block) • Contieneinformación de archivo: dueño, tamaño, permisos, punteros a bloques de disco, etc • Unix Inodo, NTFS, info guardada en Tabla de ArchivoMaestra
Implementación de Sistemas de Archivos • Estructuras en Memoria • Tabla de Particiones • Tabla con informaciónacerca de cadapartición • Estructura de directorios • Tabla de directoriosaccesadosrecientemente con suinformación • Tabla de ArchivosAbiertos a nivel de Sistema (TAAS) • Contienecopia de los FCBs de cadaarchivo, y otrainformacioncomonúmero de Procesosquetienearchivoabierto • Tabla de ArchivosAbiertos a nivel de Proceso (TAAP) • Contienepuntero a entrada a tabla de archivosabiertos de sistema
MBR T particionesParticiónParticiónPartición Boot Superblock EspaciolibreInodes Dir. Root Archivos y block directorios Particiones de disco Caso Unix/linux • Cadapartición • boot block, puedesubirsistemacargandoprogramaresidenteaqui • Superblock. Especifica los límites de lasáreassiguientes, contienepunteros a listas de inodoslibres y bloques de archivoslibres • Area de inodos. Contienedescriptores (inodos) paracadaarchivo en el disco. Todos los inodes son del mismotamaño • Dir root. Inodo y directorio root • Archivos y directorios. Bloques de se usanpara • Unaparticiónpuedeusarsepara un sistema de archivos o como area de swapping ( en estecasoessólobloquespararespaldo)
Proceso de buteoCaso Unix/linux • CPU ejecutacódigoresidente en ROM BIOS (Read Only Memory Basic Input Output System) • Códigoverifica y prepara HW de sistema • Cargaprograma (master boot program o boot loader) ubicado en sector 0 (Master Boot Record) de disco • En linuxpuede ser lilo o grub, los quepermitenelegirunapartición a subir • Contieneprogramaejecuta SO en partición • Estos boot loaders están en MBR o en primer sector de parciciónactiva • Con programasLilo o Grub esposibledefinirvariasparticiones con diferentes SOs • Aunquetambiensirvenparausar el mismosistema de archivosperoidentificardiferentes SO (asociados a diferenteslinux kernels)
Sistema de Archivos Unix (UFS) • Sistema de Archivos original en Unix (1970) • Disco dividido en particiones • Unapartición: grupo de cilindrosadyacentes • Un sistema de archivospuederesidir en unapartición • BIOS define sector de buteo (boot sector) paraestar en cabeza 0, cilindro 0, sector 1 • Master Boot Record (MBR) usadoparabutearcomputador • Sabe de boot loader y tabla de particiones • Tabla de partición • Define direcciones de inicio y fin de cadapartición • Unaparticiónesmarcadacomoactiva • Cuandosistemasube • BIOS ejecuta MBR • MBR localizaparticiónactiva y ejecutabloque de buteo
Para queusarparticiones? • Dividir el disco para diversos propósitos • Tener diversos SOs cargados uno en cada partición • SOs y sistemas de archivos pueden ser usados en forma independiente • Respaldos o cualquier uso que quiera darle el usuario
Crear, Abrir y Usar un Archivo • Crear • SO busca en bloque de control de particiónpor un puntero de un FCB no usado • SO sumapuntero de FCB en la estructura del directorio. • Abrir • Buscarsiarchivoestaabierto en TAAS, si no estaBuscar en directoriospornombre de archivo • Copiarinformación de FCB a la TAAS • Sumarunaentradapara el archivo en la TAAP, quecontienepuntero a TAAS • SA retorna descriptor de archivo o handle a procesoque lo abre • Usar • Escribir, buscar el bloque de control de particiónporpunteros a bloques de disco vacíos • Leer. buscar en FCB bloques a leer