SO: organización de archivos

88
Sistemas Operativos I Organización de archivos Angel Vázquez-Patiño [email protected] Departamento de Ciencias de la Computación Universidad de Cuenca 11 de abril de 2016

Transcript of SO: organización de archivos

Page 1: SO: organización de archivos

Sistemas Operativos I

Organización de archivos

Angel Vázquez-Patiñ[email protected]

Departamento de Ciencias de la ComputaciónUniversidad de Cuenca

11 de abril de 2016

Page 2: SO: organización de archivos

Organización de archivos

● Se comprende rasgos de un directorio jerárquico

● Es necesario analizar la semántica● Abstracción de sistemas de archivos a

sobrevivido a todas las generaciones● Información cruda -> archivos -> directorios● Formato pertinente al tipo de información que

representa

Page 3: SO: organización de archivos

Organización de archivos

Page 4: SO: organización de archivos

Concepto de archivoOrganización de archivos

Control de accesoSistemas de archivos remotos

Page 5: SO: organización de archivos

Concepto de archivoOrganización de archivos

Control de accesoSistemas de archivos remotos

Page 6: SO: organización de archivos

Concepto de archivo

● Tipo de datos abstracto (como interfaz orientada a objetos)

● Para el usuario, unidad lógica mínima● Volumen

– Directorio● Archivo

● Identificados por una ruta (path)

Page 7: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 8: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 9: SO: organización de archivos

Operaciones con archivos

● Borrar● Abrir: verificar si existe o puede ser creado

(fopen()).– Descriptor de archivo: ientifica la relación entre el proceo

y el archivo en cuetión

– Las operaciones se realizan sobre el descriptor de archivo, no con su nombre o ruta

● Cerrar: (fclose())

● Leer: Pedazo a pedazo (fread() readline())

Page 10: SO: organización de archivos

Operaciones con archivos

● Escribir: (fwrite())

● Reposicionar: apuntador (fseek())

Operaciones no son únicas. Depende del SO.

Analogía

Page 11: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 12: SO: organización de archivos

Tablas de archivos abiertos

● SO y procesos mantienen tablas de archivos abiertos

● Presenta al proceso por medio del descriptor de archivo

● SO hace– Conteo de usuarios del archivo

– Modos de acceso: puede negar operaciones (inconsistencias)

Page 13: SO: organización de archivos

Tablas de archivos abiertos

● SO y procesos mantienen tablas de archivos abiertos

● Presenta al proceso por medio del descriptor de archivo

● SO hace– Ubicación en disco: para evitar que cada proceso

tenga que consultar las tablas de disco

– Información de bloqueo: cuando los modos de acceso del archivo requieran protección mutua

Page 14: SO: organización de archivos

Tablas de archivos abiertos

● SO y procesos mantienen tablas de archivos abiertos● Presenta al proceso por medio del descriptor de

archivo● Proceso necesita

– Descriptor de archivo: relación nombre de archivo abierto - identificador numérico que maneja el proceso. Un archivo abierto por varios procesos tendrá descriptores de archivo distintos en cada uno de ellos

– Permisos

Page 15: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 16: SO: organización de archivos

Acceso concurrente: bloqueo de archivos

● Nomenclatura– Compartido, shared lock: <=> bloqueo para lectura

– Exclusivo, exclusive lock: para un solo proceso

● Mecanismos de bloqueo– Mandatory locking: SO restringe acceso a todos los

demás procesos

– Advisory locking: manejado cooperativamente entre procesos

Page 17: SO: organización de archivos

Acceso concurrente: bloqueo de archivos

● No todos los SO implementan las cuatro combinaciones (compartido mandatorio, o compartido consultivo, exclusivo mandatorio y exclusivo consultivo)

● Windows: bloqueo obligatorio● Unix: bloqueo consultivo● E.g., compilación archivo LaTeX mientras el

archivo PDF está abierto

Page 18: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 19: SO: organización de archivos

Tipos de archivo

● Tres estrategias para que el SO reconozca el tipo de un archivo

● Extensión Windows (e.g. problema troyanos)● Números mágicos: Unix, huellas digitales

– GIF, archivo inicia con GIF87a o GIF89a

– PostScript, %!

– PDF, %PDF

Page 20: SO: organización de archivos

Tipos de archivo

● Tres estrategias para que el SO reconozca el tipo de un archivo

● Extensión Windows (e.g. problema troyanos)● Números mágicos: Unix, huellas digitales

– Caso especial, hashbang (#!), como ejecutable usando como intérprete al comando indicado inmediatamente después

SO invoca al programa/usr/bin/bash, y leespecifica como argumentoal archivo en cuestión

Page 21: SO: organización de archivos

Tipos de archivo

● Tres estrategias para que el SO reconozca el tipo de un archivo

● Extensión Windows (e.g. problema troyanos)● Números mágicos: Unix, huellas digitales● Metadatos externos

– Apple separaba en dos forks (diferente en la actualidad)

– 1) data fork

– 2) resource fork, información del archivo

Page 22: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de acceso

Archivos especialesTransferencias orientadas a bloques

Page 23: SO: organización de archivos

Estructura de los archivos y métodos de acceso

● Acceso secuencial– Típicamente se emplea este mecanismo de lectura

para leer a memoria código (programas o bibliotecas) o documentos, sean enteros o fracciones de los mismos

Page 24: SO: organización de archivos

Estructura de los archivos y métodos de acceso

● Acceso aleatorio– SQLite

– Seek()

– Eficiencia

Page 25: SO: organización de archivos

Estructura de los archivos y métodos de acceso

● Acceso relativo a índice– Tamaño variable

Page 26: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 27: SO: organización de archivos

Archivos especiales

● Abstracción de archivo, fácil manejo y compresión● Se comenzó a usar para otras cosas● Unix, todo es un archivo

– Archivo estándar

– Objetos del sistema de archivos: información acerca del sistema de archivos

– Dispositivos

– Comunicación entre procesos: intercambio de información entre procesos

Page 28: SO: organización de archivos

Concepto de archivo

Operaciones con archivosTablas de archivos abiertos

Acceso concurrente: bloqueo de archivosTipos de archivo

Estructura de los archivos y métodos de accesoArchivos especiales

Transferencias orientadas a bloques

Page 29: SO: organización de archivos

Transferencias orientadas a bloques

● Un sistema de archivos es la representación que se da a un conjunto de archivos y directorios sobre un dispositivo de bloques (i.e. para cualquier transferencia desde o hacia él, responderá con un bloque de tamaño predefinido)

● Todas las transferencias de datos desde cualquiera de los discos serán de un múltiplo del tamaño de bloques, definido por el hardware (típicamente 512 bytes).

Page 30: SO: organización de archivos

Transferencias orientadas a bloques

● Al leer solamente un registro de 75 bytes (e.g.), el SO lee el bloque completo y probablemente lo mantiene en un caché en la memoria principal

● Si en vez de una lectura, la operación fue una escritura, y el sector a modificar no ha sido leído aún a memoria (o fue leído hace mucho), el sistema tendrá que leerlo nuevamente, modificarlo en memoria, y volver a guardarlo a disco

Page 31: SO: organización de archivos

Concepto de archivoOrganización de archivos

Control de accesoSistemas de archivos remotos

Page 32: SO: organización de archivos

Organización de archivos

● Decenas de miles de archivos● Organización

Page 33: SO: organización de archivos

Organización de archivos

Evolución del concepto de directorioOperaciones con directorios

Montaje de directorios

Page 34: SO: organización de archivos

Organización de archivos

Evolución del concepto de directorioOperaciones con directorios

Montaje de directorios

Page 35: SO: organización de archivos

Evolución del concepto de directorio

● Es común identificar directorios jerárquicos● No siempre fue así

Page 36: SO: organización de archivos

Evolución del concepto de directorio

Convenciones de nomenclatura● Unix (MacOS, Android): /● Windows: \● MacOS (antes): :

Page 37: SO: organización de archivos

Evolución del concepto de directorio

Sistema de archivos plano● Debido al limitado espacio de almacenamiento● Y no se tenían concepto de separación,

permisos y privilegios● Aún no ha desaparecido, Amazon S3: objetos y

cubetas.● Sistemas que simulaban “ramas” con etiquetas

Page 38: SO: organización de archivos

Evolución del concepto de directorio

Directorios de profundidad fija● Un solo nivel● Raíz: MFD (master file directory)● Directorios derivados: UFD (user file directory)

Page 39: SO: organización de archivos

Evolución del concepto de directorio

Directorios estructurados en árbol● Jerarquía ilimitada● Nacen las search path

Page 40: SO: organización de archivos

Evolución del concepto de directorio

Directorio como grafo dirigido● En Unix se implementa por dos mecanismos

1)Enlaces duros

2)Enlaces simbólicos

Page 41: SO: organización de archivos

Evolución del concepto de directorio

Page 42: SO: organización de archivos

Evolución del concepto de directorio

● Dos entradas especiales en todo directorio para mantener navegabilidad

1) .2) ..

Page 43: SO: organización de archivos

Evolución del concepto de directorio

Ubicación actual: usr2Referenciar a test.c../usr1/test.c

Page 44: SO: organización de archivos

Organización de archivos

Evolución del concepto de directorioOperaciones con directorios

Montaje de directorios

Page 45: SO: organización de archivos

Operaciones con directorios

● También tipos de datos abstractos con algunas operaciones definidas

● Abrir y cerrar: opendir(), closedir()● Listado de archivos: readdir()● Buscar un elemento● Crear, eliminar o renombrar un elemento: fopen(), remove() y rename()

Page 46: SO: organización de archivos

Operaciones con directorios

Recorrido de directorios● Diferencias de referenciación, archivos planos,

estructura jerárquica● Pueden haber ciclos infinitos

Page 47: SO: organización de archivos

Operaciones con directorios

Recorrido de directorios

Page 48: SO: organización de archivos

Operaciones con directorios

Recorrido de directorios● Por ejemplo para respaldar /home/jose/proyecto

Page 49: SO: organización de archivos

Operaciones con directorios

Recorrido de directorios● Solución

– Indexado basado en i-nodo (número único por volumen)– Identifica sin ambigüedad a cada archivo

si el i-nodo de jose fuera 105, al consultar a los miembros de miembros, el sistema encontrará que su primer entrada apunta al i-nodo 105, por lo cual la registraría sólo como un apuntador a datos ya archivados, y continuaría con la segunda entrada del directorio (pedro).

Page 50: SO: organización de archivos

Organización de archivos

Evolución del concepto de directorioOperaciones con directorios

Montaje de directorios

Page 51: SO: organización de archivos

Montaje de directorios

● Para usar un directorio● Montar: ubicarlo en algún punto del árbol de

archivos visible al sistema y usuario● Razones (distintos sistemas de archivos)

– Distintos medios físicos

– Diferentes usos esperados

– Abstracciones de sistemas no-físicos

– Razones administrativas

Page 52: SO: organización de archivos

Montaje de directorios

● En sistemas Unix● Puntos de montaje

Page 53: SO: organización de archivos

Montaje de directorios

● En sistemas Windows● Cada volumen identificado tiene su propio

identificador de volumen

Page 54: SO: organización de archivos

Montaje de directorios

Page 55: SO: organización de archivos

Concepto de archivoOrganización de archivos

Control de accesoSistemas de archivos remotos

Page 56: SO: organización de archivos

Control de acceso

● Qué puede y que no puede hacerse● Usuarios y clases de usuarios (grupos)● Muchos esquemas, tres se analizarán

Page 57: SO: organización de archivos

Control de acceso

Sistemas FATModelo tradicional Unix

Listas de control de acceso

Page 58: SO: organización de archivos

Control de acceso

Sistemas FATModelo tradicional Unix

Listas de control de acceso

Page 59: SO: organización de archivos

Sistemas FAT

● File Allocation Table● Uno de los más usados● Simple y para dispositivos limitados

– Volúmenes de 150 KB a 10s de GB

● En cada entrada de un directorio FAT el byte número 12 guarda información para el control de acceso

Page 60: SO: organización de archivos

Sistemas FAT

● En cada entrada de un directorio FAT el byte número 12 guarda información para el control de acceso– Oculto

– Sólo lectura

– Sistema: fragmentación. Indica al SO que no debe mover ni fragmentar el archivo

– Archivado: MS-DOS. Cuando se modificaba el atributo se retiraba

Page 61: SO: organización de archivos

Sistema FAT

● El byte fue extendido en algunos casos para más necesidades

● En MS-DOS no se hacía diferencia entre lectura y ejecución– MS-DOS basa su ejecución en la extensión

– Sistema concebido como monousuario (sin sentido condicionar a sólo lectura)

Page 62: SO: organización de archivos

Control de acceso

Sistemas FATModelo tradicional Unix

Listas de control de acceso

Page 63: SO: organización de archivos

Modelo tradicional Unix

● Unix: un usuario puede ser de uno o más grupos● Cada objeto describe sus permisos de acceso

por 9 bits, y con el identificador de su usuario y grupo propietarios

● Tres grupos (de tres bits cada uno):1)Usuario (rwx; lectura, escritura y ejecución)

2)Grupo

3)Otros

Page 64: SO: organización de archivos

Modelo tradicional Unix

● El bit anterior a los 9 que controlan el acceso:● - archivo normal

● d directory

● l link

● s sockets

● p pipes

● b dispositivos de bloque

Page 65: SO: organización de archivos

Modelo tradicional Unix

Ejemplo

Vea http://goo.gl/vLYPCZ

Page 66: SO: organización de archivos

Modelo tradicional Unix

● Para directorios el mismo sistema de permisos– Escritura: quiénes pueden crear o eliminar archivos

dentro del directorio

– Lectura: quiénes pueden ver la lista de archivos

– Ejecución: quiénes pueden entrar al directorio

Vea los comandoschmod y chattr

Page 67: SO: organización de archivos

Control de acceso

Sistemas FATModelo tradicional Unix

Listas de control de acceso

Page 68: SO: organización de archivos

Listas de control de acceso

● Desventaja del modelo Unix– El administrador debe indicar los permisos

● Windows derivados de NT

Page 69: SO: organización de archivos

Listas de control de acceso

Page 70: SO: organización de archivos

Listas de control de acceso

Desventajas● Todos los permisos guardados junto con el i-nodo

(acceso ligeramente mayor)● Más difícil presentar listado compacto y completo de

permisos de archivos (complejo para administrador)● Ambigüedades: política de resolución a priori. E.g.,

usuario de dos grupos, para un grupo aprobación de escritura y para el otro grupo no, ¿qué hacer?

Page 71: SO: organización de archivos

Concepto de archivoOrganización de archivos

Control de accesoSistemas de archivos remotos

Page 72: SO: organización de archivos

Sistemas de archivos remotos

● Principal y primeros usos de red: transferencia de archivos (programas parecidos a ftp)

● Mediados 80s: implícito y automático, sistemas de archivos sobre red

● SO: presentar como si archivos fueran locales

Page 73: SO: organización de archivos

Sistemas de archivos remotos

Network File System (NFS)Common Internet File System (CIFS)

Sistemas de archivos distribuidos: Andrew File System

Page 74: SO: organización de archivos

Sistemas de archivos remotos

Network File System (NFS)

Common Internet File System (CIFS)

Page 75: SO: organización de archivos

Sistemas de archivos remotos

Network File System (NFS)Common Internet File System (CIFS)

Sistemas de archivos distribuidos: Andrew File System

Page 76: SO: organización de archivos

Network File System (NFS)

● Sun Microsystems● 1984, parte de su sistema operativo (SunOS,

luego Solaris)● Gracias al éxito, implementada en todo sistema

Unix

Page 77: SO: organización de archivos

Network File System (NFS)

● Funciona sobre RPC (Remote Procedure Call)● Comparable con DCE/RPC, DCOM, SOAP y

XML-RCP● Permite al programador delegar un servicio el

manejo de las conexiones de red– Persistencia de sesiones

– Limitar su atención a una conexión virtual establecida

Page 78: SO: organización de archivos

Network File System (NFS)

● Motivación para creación: aprovechar el HW ya común en dicha época, centralizar administración

● Ofrecer las facilidades para contar con redes donde hubiera un servidor de archivos, y donde las estaciones de trabajo tuvieran únicamente una instalación básica, y el entorno de usuario completo estuviera disponible en cualquiera de las estaciones

Page 79: SO: organización de archivos

Network File System (NFS)

● Cumple una semántica Unix– Montar y usar como local

– Todo el resto se maneja como si fueran archivos locales

● Protocolo ligero: no implementa cifrado ni verificaciones adicionales

● Sun ofrecía NIS (Network Information System)– Autenticación y listas de usuarios

Page 80: SO: organización de archivos

Network File System (NFS)

● Desventaja sin NIS– Permisos según identificador numérico de usuario

– El mismo usuario en diferentes sistemas tiene distintos identificadores

– Autenticación por IP, usurpación de identidad

Page 81: SO: organización de archivos

Sistemas de archivos remotos

Network File System (NFS)Common Internet File System (CIFS)

Sistemas de archivos distribuidos: Andrew File System

Page 82: SO: organización de archivos

Common Internet File System (CIFS)

● Equivalente NFS en Windows (primero como SMB)● Para tener acceso a un volumen

– NET USE W:\\servidor\directorio

– Aparecerá directorio en el equipo conocido como servidor en el árbol Mi PC

● Implementación en Unix, SAMBA– Ingeniería inversa

– Implementación de referencia

Page 83: SO: organización de archivos

Sistemas de archivos remotos

Network File System (NFS)Common Internet File System (CIFS)

Sistemas de archivos distribuidos: Andrew File System

Page 84: SO: organización de archivos

Sistemas de archivos distribuidos: Andrew File System

● Los dos sistemas anteriores están basados en Cliente-Servidor

● AFS pretende que todos los clientes se compartan información entre sí (robustez)

● Autenticación con tickets Kerberos– Pide archivo, copia local

– Guardar, aviso a los demás usuarios del archivo

● Cambios no visibles de inmediato

Page 85: SO: organización de archivos

Términos importantes

● Enlaces duros y simbólicos● Operaciones con directorios● Montaje de directorios● Control de acceso en sistemas basados en

Unix

Page 86: SO: organización de archivos

Revisar

● Wolf, G., Ruiz, E., Bergero, F., Meza, E., 2015. Fundamentos de Sistemas Operativos, 1st ed. Universidad Nacional Autónoma de México, México D.F., México. Ejercicios del capítulo 6.

● Enlaces duros y simbólicos en Unix● Control de acceso en GNU/Linux● Montaje de directorios

Page 87: SO: organización de archivos

Trabajos de investigación

● Sistemas de archivos distribuidos

● Se entrega● Documento de máximo dos páginas● Presentación oral de máximo 20 minutos

Page 88: SO: organización de archivos

Fuente

● Wolf, G., Ruiz, E., Bergero, F., Meza, E., 2015. Fundamentos de Sistemas Operativos, 1st ed. Universidad Nacional Autónoma de México, México D.F., México.