Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SO: organización de archivos

144 views

Published on

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.

Published in: Education
  • Be the first to comment

  • Be the first to like this

SO: organización de archivos

  1. 1. Sistemas Operativos I Organización de archivos Angel Vázquez-Patiño angel.vazquezp@ucuenca.edu.ec Departamento de Ciencias de la Computación Universidad de Cuenca 11 de abril de 2016
  2. 2. 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
  3. 3. Organización de archivos
  4. 4. Concepto de archivo Organización de archivos Control de acceso Sistemas de archivos remotos
  5. 5. Concepto de archivo Organización de archivos Control de acceso Sistemas de archivos remotos
  6. 6. 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)
  7. 7. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  8. 8. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  9. 9. 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())
  10. 10. Operaciones con archivos ● Escribir: (fwrite()) ● Reposicionar: apuntador (fseek()) Operaciones no son únicas. Depende del SO. Analogía
  11. 11. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  12. 12. 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)
  13. 13. 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
  14. 14. 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
  15. 15. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  16. 16. 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
  17. 17. 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
  18. 18. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  19. 19. 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
  20. 20. 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 le especifica como argumento al archivo en cuestión
  21. 21. 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
  22. 22. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  23. 23. 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
  24. 24. Estructura de los archivos y métodos de acceso ● Acceso aleatorio – SQLite – Seek() – Eficiencia
  25. 25. Estructura de los archivos y métodos de acceso ● Acceso relativo a índice – Tamaño variable
  26. 26. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  27. 27. 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
  28. 28. Concepto de archivo Operaciones con archivos Tablas de archivos abiertos Acceso concurrente: bloqueo de archivos Tipos de archivo Estructura de los archivos y métodos de acceso Archivos especiales Transferencias orientadas a bloques
  29. 29. 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).
  30. 30. 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
  31. 31. Concepto de archivo Organización de archivos Control de acceso Sistemas de archivos remotos
  32. 32. Organización de archivos ● Decenas de miles de archivos ● Organización
  33. 33. Organización de archivos Evolución del concepto de directorio Operaciones con directorios Montaje de directorios
  34. 34. Organización de archivos Evolución del concepto de directorio Operaciones con directorios Montaje de directorios
  35. 35. Evolución del concepto de directorio ● Es común identificar directorios jerárquicos ● No siempre fue así
  36. 36. Evolución del concepto de directorio Convenciones de nomenclatura ● Unix (MacOS, Android): / ● Windows: ● MacOS (antes): :
  37. 37. 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
  38. 38. 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)
  39. 39. Evolución del concepto de directorio Directorios estructurados en árbol ● Jerarquía ilimitada ● Nacen las search path
  40. 40. Evolución del concepto de directorio Directorio como grafo dirigido ● En Unix se implementa por dos mecanismos 1)Enlaces duros 2)Enlaces simbólicos
  41. 41. Evolución del concepto de directorio
  42. 42. Evolución del concepto de directorio ● Dos entradas especiales en todo directorio para mantener navegabilidad 1) . 2) ..
  43. 43. Evolución del concepto de directorio Ubicación actual: usr2 Referenciar a test.c ../usr1/test.c
  44. 44. Organización de archivos Evolución del concepto de directorio Operaciones con directorios Montaje de directorios
  45. 45. 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()
  46. 46. Operaciones con directorios Recorrido de directorios ● Diferencias de referenciación, archivos planos, estructura jerárquica ● Pueden haber ciclos infinitos
  47. 47. Operaciones con directorios Recorrido de directorios
  48. 48. Operaciones con directorios Recorrido de directorios ● Por ejemplo para respaldar /home/jose/proyecto
  49. 49. 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).
  50. 50. Organización de archivos Evolución del concepto de directorio Operaciones con directorios Montaje de directorios
  51. 51. 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
  52. 52. Montaje de directorios ● En sistemas Unix ● Puntos de montaje
  53. 53. Montaje de directorios ● En sistemas Windows ● Cada volumen identificado tiene su propio identificador de volumen
  54. 54. Montaje de directorios
  55. 55. Concepto de archivo Organización de archivos Control de acceso Sistemas de archivos remotos
  56. 56. Control de acceso ● Qué puede y que no puede hacerse ● Usuarios y clases de usuarios (grupos) ● Muchos esquemas, tres se analizarán
  57. 57. Control de acceso Sistemas FAT Modelo tradicional Unix Listas de control de acceso
  58. 58. Control de acceso Sistemas FAT Modelo tradicional Unix Listas de control de acceso
  59. 59. 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
  60. 60. 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
  61. 61. 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)
  62. 62. Control de acceso Sistemas FAT Modelo tradicional Unix Listas de control de acceso
  63. 63. 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
  64. 64. 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
  65. 65. Modelo tradicional Unix Ejemplo Vea http://goo.gl/vLYPCZ
  66. 66. 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 comandos chmod y chattr
  67. 67. Control de acceso Sistemas FAT Modelo tradicional Unix Listas de control de acceso
  68. 68. Listas de control de acceso ● Desventaja del modelo Unix – El administrador debe indicar los permisos ● Windows derivados de NT
  69. 69. Listas de control de acceso
  70. 70. 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?
  71. 71. Concepto de archivo Organización de archivos Control de acceso Sistemas de archivos remotos
  72. 72. 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
  73. 73. Sistemas de archivos remotos Network File System (NFS) Common Internet File System (CIFS) Sistemas de archivos distribuidos: Andrew File System
  74. 74. Sistemas de archivos remotos Network File System (NFS) Common Internet File System (CIFS)
  75. 75. Sistemas de archivos remotos Network File System (NFS) Common Internet File System (CIFS) Sistemas de archivos distribuidos: Andrew File System
  76. 76. Network File System (NFS) ● Sun Microsystems ● 1984, parte de su sistema operativo (SunOS, luego Solaris) ● Gracias al éxito, implementada en todo sistema Unix
  77. 77. 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
  78. 78. 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
  79. 79. 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
  80. 80. 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
  81. 81. Sistemas de archivos remotos Network File System (NFS) Common Internet File System (CIFS) Sistemas de archivos distribuidos: Andrew File System
  82. 82. Common Internet File System (CIFS) ● Equivalente NFS en Windows (primero como SMB) ● Para tener acceso a un volumen – NET USE W:servidordirectorio – 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
  83. 83. Sistemas de archivos remotos Network File System (NFS) Common Internet File System (CIFS) Sistemas de archivos distribuidos: Andrew File System
  84. 84. 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
  85. 85. Términos importantes ● Enlaces duros y simbólicos ● Operaciones con directorios ● Montaje de directorios ● Control de acceso en sistemas basados en Unix
  86. 86. 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
  87. 87. 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
  88. 88. 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.

×