Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administracin de Dispositivos
SO-C28
Sistema de E/S
El control de los dispositivos de E/S es uno de los aspectos principales en todo diseo de un SO. Dada la amplia variedad de dispositivos, en funcin y velocidad, se necesitan diversos mtodos para controlarlos Estos mtodos forman el Subsistema de E/S del kernel. Estos mtodos separan la complejidad de controlar dispositivos E/S del resto del kernel.
Conflictos
La tecnologa de los dispositivos de E/S muestran tendencia a dos conflictos
Incremento en la estandarizacin de hardware y software Incremento de una amplia variedad de dispositivos de E/S
Para englobar los detalles y rarezas de los diferentes dispositivos, el kernel de un S.O. est estructurado para utilizar mdulos manejador-dispositivo (device-driver) Los manejadores de dispositivos presentan una interfaz uniforme de acceso al dispositivo al subsistema de E/S, de las misma manera que las llamadas al sistema proveen una interfaz estndar entre la aplicacin y el S.O.
Hardware de E/S
El hardware que opera el SO se puede clasificar
Dispositivos de almacenamiento Dispositivos de transmisin Dispositivos de interfaz-hombre
Un dispositivo se comunica con un sistema computacional enviando seales a travs de un cable o el aire. El dispositivo se comunica con la computadora por medio de un punto de conexin (puerto)
Conceptos
Bus
Si uno o ms dispositivos usan un conjunto comn de cables, la conexin es llamada bus Un bus es un conjunto de cables y un protocolo rgido que especifica el conjunto de mensajes que pueden ser enviados por el cable
Bus
Los buses son muy utilizados en las arquitecturas de computadoras
PCI Bus de expansin SCSI bus
Un controlador es una coleccin de dispositivos electrnicos que operan un puerto, un bus o un dispositivo Un controlador de puerto serial es un controlador de dispositivo simple
Es un chip en la computadora que controla las seales en los cables de un puerto serial
Controladores
En contraste, un controlador de bus SCSI no es simple
Esto es por que el protocolo SCSI es complejo. El controlador de bus de SCSI frecuentemente se implementa como una tarjeta de circuitos separada (adaptador de host) que se conecta a la computadora Tpicamente contiene un procesador, microcdigo y memoria privada que permiten procesar los mensajes SCSI
El procesador se comunica con el controlador leyendo y escribiendo patrones de bits en esos registros Una manera en que ocurre esta comunicacin es por medio del uso especial de instrucciones de E/S que especifican la transferencia de un byte o palabra a una direccin de puerto de E/S
CPU-E/S
Las instrucciones de E/S activan las lneas de bus para seleccionar el dispositivo correcto y mover informacin dentro o fuera del registro del dispositivo Alternativamente, el controlador de dispositivo puede soportar correspondencia de memoria de E/S (memory-mapped I/O)
En este caso, los registro de control del dispositivo son asociados dentro del espacio de direcciones del procesador Entonces el CPU ejecuta peticiones de E/S utilizando instrucciones estndar de transferencia de datos para leer y escribir a los registros del controlador de dispositivo
Ejemplo, el controlador de grficos tiene puertos de E/S para operaciones de control bsicas, pero el controlador tiene una regin de memory-mapped mayor para mantener los contenidos de las pantallas El proceso enva la salida a la pantalla al escribir los datos en la regin de memory-mapped. El controlador genera las imgenes de la pantalla basado en el contenido de esta memoria
Puerto de E/S
Un puerto de entrada/salida consiste generalmente de 4 registros llamados
Estado, control, entrada de datos y salida de datos
Registro de estado
Contiene bits que pueden ser ledos por el host. Estos bits indican el estado del puerto, por ejemplo, si el comando actual se ha completado, si un byte est disponible para lectura del registro de entrada de datos y si ha habido un error
Puerto de E/S
Registro del control
El registro de control puede ser escrito por el host para iniciar un comando o para cambiar el modo de un dispositivo Por ejemplo, un cierto bit en el registro de control de un puerto serial escoge entre comunicacin full duplex o half duplex , otro bit estable el chequeo de paridad, establece la velocidad, etc.
Registro de entrada
El registro de entrada de datos es ledo por el host para obtener la entrada de informacin
Registro de salida
Es escrito por el host para enviar informacin de salida
Repaso
Sistema de E/S
Conjunto de mtodos y funciones para controlar los diversos dispositivos de E/S Manejador de dispositivo Hardware de e/s
Bus Puerto Controlador
Encuesta (Polling)
El protocolo completo para la interaccin entre CPU y controlador puede ser complejo, pero la fase inicial (saludo) es simple Ejemplo
Suponga que dos bits se utilizan para coordinar la relacin productor-consumidor entre el controlador y el CPU El controlador indica su estado por medio del bit ocupado en el registro de estado. Entonces el controlador establece el bit ocupado cuando est ejecutando un comando y lo limpia cuando est listo para el siguiente comando
El CPU sealiza sus comandos va el bit comando-listo en el registro del comando. El CPU establece este bit cuando un comando est listo para ejecutarse por el controlador
Ejemplo (cont)
1. 2. 3. 4. 5. El CPU lee continuamente el bit ocupado hasta que se limpia El CPU establece el bit de escritura en el registro de comando y escribe un byte en el registro de salida de datos El CPU establece el bit de comando-listo Cuando el controlador nota que el bit comando-listo est en 1, establece su bit ocupado El controlador lee el registro de comando y atiende el comando write. Lee el registro de salida de datos para obtener el byte y realiza la operacin E/S al dispositivo El controlador limpia el bit de comando-listo, limpia el bit de error y el registro de estado para indicar que el dispositivo de E/S opera exitosamente y limpia el bit ocupado para indicar que ha finalizado
6.
Interrupcin
La operacin bsica de encuesta es eficiente, si el controlador y el dispositivos son rpidos
Pero ineficiente cuando se intenta repetidamente
En este caso es ms eficiente preparar al controlador de hardware para notificar al CPU cuando el dispositivo est listo para el servicio Al mecanismo de hardware que permite a un dispositivo notificar al CPU es llamado interrupcin
Interrupcin
El mecanismo bsico de interrupcin funciona de la siguiente manera
El hardware de CPU tiene un medio (cable) llamado la lnea de peticin de interrupcin la cual es sensada por el CPU despus de cada ejecucin de instruccin Cuando el CPU detecta que un controlador ha emitido un seal en la lnea de peticin de interrupcin, el CPU guarda cierta informacin del estado y salta a la rutina del manejador de interrupciones en una direccin fsica de la memoria
Interrupcin
El manejador de interrupciones determina qu ocasion la interrupcin, realiza el procesamiento necesario y ejecuta una instruccin para regresar de la interrupcin y devolver al CPU al estado de ejecucin en el que se encontraba. Decimos que un controlador de dispositivo crea una interrupcin al enviar una seal en la lnea de peticin de interrupcin El CPU cacha la interrupcin y dispara al manejador de interrupciones
Interrupciones
En los S.O. modernos se necesitan caractersticas del manejo de interrupciones ms sofisticadas
Ej. Se necesita la capacidad de retardar una interrupcin durante un procesamiento crtico Se necesita una forma eficiente de activar el manejador de interrupciones apropiado para un dispositivo, sin encuestar a todos los dispositivos para saber cul gener la interrupcin Se necesitan interrupciones de multiniveles, para que el S.O. pueda distinguir entre interrupciones de alta y baja prioridad y pueda responder con diferentes grados de urgencia
En el hardware moderno, estas caractersticas se proporcionan por medio del CPU y por un hardware controlador de interrupciones
Interrupciones
La mayora de los CPU tiene dos lneas de peticiones de interrupciones
Una es interrupcin no ocultable (nonmaskable), reservada para eventos como por ej. errores de memoria no recuperables Ocultable (maskable), puede ser apagada por el procesador antes de ejecutar secuencias de instrucciones crticas que no debe ser interrumpidas
Las interrupciones ocultables son utilizadas por los controladores de dispositivos para solicitar un servicio
Interrupciones
El mecanismo de la interrupcin toma una direccin un nmero que selecciona (indica) una rutina especfica de manejo de interrupcin- de un conjunto pequeo En la mayora de las arquitecturas est direccin es un corrimiento en una tabla llamada el vector de interrupciones
Este vector contiene las direcciones de memoria de manejadores de interrupciones especializados
El propsito de un vector de interrupciones es reducir la necesidad de un solo manejador de interrupciones que busque de todas las fuentes posibles de interrupciones para determinar cul necesita servicio
Interrupciones
En la prctica, sin embargo, las computadoras tiene ms dispositivos (y por lo tanto manejadores de interrupciones) que elementos de direcciones en el vector de interrupciones Una manera comn de resolver este problema es utilizar la tcnica de encadenamiento de interrupciones, en la cual cada elemento del vector de interrupciones apunta al inicio de una lista de manejadores de interrupciones Cuando se genera una interrupcin, los manejadores en la lista correspondiente se llaman uno por uno, hasta que se encuentra a uno que puede servir la peticin
Repaso
Mecanismos de comunicacin entre el CPU y el dispositivo de E/S
Encuesta (Polling) Interrupciones
Lnea de peticin de interrupciones
Ocultables y No ocultables
Vector de interrupciones
Contiene las direcciones de los manejadores de interrupciones
Niveles de prioridad
Interfaz de E/S
Cada dispositivos de E/S es accedido a travs de un conjunto estandarizado de funciones (interfaz) Las diferencias son englobadas en mdulos del kernel llamados manejadores de dispositivo (device driver) Los manejadores de dispositivos estn diseado especficamente para cada dispositivo
Compartido o dedicado
Un dispositivo compartido puede ser utilizado concurrentemente por varios procesos o hilos Un dispositivo dedicado no
Calendarizacin E/S
Calendarizar un conjunto de peticiones de E/S significa determinar un buen orden para ejecutarlas La calendarizacin mejora el rendimiento global del sistema
Permite el acceso compartido a los dispositivos entre los procesos Reduce el tiempo promedio de espera para completar una operacin de E/S
Ejemplo:
Suponga que el brazo de un disco esta cerca del inicio y tres aplicaciones quieren leer del disco La aplicacin 1 solicita informacin cerca del final del disco, la 2 pide informacin al principio del disco y la 3 pide informacin de en medio del disco
Calendarizacin E/S
Los desarrolladores de S.O. implementan la calendarizacin al establecer una cola de peticiones por cada dispositivo El calendarizador de E/S rearregla el orden de las colas para mejorar la eficiencia global y el tiempo promedio de espera
Entonces una forma de que el subsistema de E/S mejora la eficiencia es calendarizando las operaciones de E/S. Otra forma es utilizando espacio de almacenamiento en memoria o disco con tcnicas como buffering, caching y spooling
Buffering
Un bfer es un rea de memoria que almacena datos mientras son transferidos entre dos dispositivos o entre un dispositivo y una aplicacin Buffering se debe a tres razones
1. Tratar el problema de la diferencia de velocidad entre un productor y un consumidor de datos
Ej. Suponga que un modem recibe un archivo para guardarlo en disco. El modem un mucho ms lento que el disco. Entonces se crea un buffer en memoria para almacenar los bytes recibidos por el mdem
Buffering
Doble buffer
Dado que el disco no escribe instantneamente y el mdem necesita un lugar para seguir guardando la informacin que recibe entonces se utilizan dos buffers
2. Para adaptar dispositivos que tienen diferentes tamaos de datos por transmitir
Ej. En redes de computadoras se utilizan bfer para almacenar paquetes pequeos que forman parte de uno mayor
3. Para dar soporte de copias semnticas (respaldos de buffer) a las aplicaciones de E/S
Caching
Cache es un regin de memoria rpida que mantiene copias de datos.
La diferencia entre buffer y cach es que un buffer puede mantener la nica copia existente de un dato mientras que la cach por definicin solo mantiene una copia en un medio de almacenamiento ms rpido de un dato que reside en otra parte
No obstante que cache y buffer son funciones distintas, a veces una misma regin de memoria se puede utilizar para ambos propsitos
Spooling
Un spool es un bfer que mantiene informacin dirigida a un dispositivo
Ej. Una impresora solo puede imprimir un trabajo a la vez, no obstante las aplicaciones desean poder imprimir concurrentemente pero sin obtener una impresin mezclada El S.O. soluciona este problema interceptando todas las salidas para la impresora Cada salida de una aplicacin es spooled en un archivo de disco. Cuando una aplicacin termina de imprimir, el sistema de spool enva el archivo correspondiente de spool para imprimir a la impresora
Reservacin de dispositivo
Otra manera de lidiar con el acceso concurrente a los dispositivos es proporcionar facilidades explcitas de coordinacin Entonces los S.O. proporcionan soporte para un acceso exclusivo al dispositivo
Permiten a un proceso asignar un dispositivo en ocio y liberar un dispositivo cuando ya no es utilizado Otros limitan al dispositivo a manejar solamente un trabajo a la vez Otros proporcionan funciones que permiten a los procesos coordinar el acceso exclusivo entre ellos mismos
Control de errores
Dispositivos y transferencias de E/S pueden fallar por muchas razones, ya sea temporales o permanentes Los S.O. frecuentemente manejan de manera eficiente las fallas temporales
Sobrecarga de la red resend() Falla de lectura de disco retry()
Desafortunadamente, si un componente importante sufre una falla permanente es muy probable que el S.O. no se recupere
Repaso
Interfaz de E/S
Capa de manejadores de dispositivos
Subsistema de entrada/salida
Calendarizacin, Buffering, Caching, Spooling, Reservaciones de dispositivo, Control de errores
Reservacin de dispositivo
Otra manera de lidiar con el acceso concurrente a los dispositivos es proporcionar facilidades explcitas de coordinacin Entonces los S.O. proporcionan soporte para un acceso exclusivo al dispositivo
Permiten a un proceso asignar un dispositivo en ocio y liberar un dispositivo cuando ya no es utilizado Otros limitan al dispositivo a manejar solamente un trabajo a la vez Otros proporcionan funciones que permiten a los procesos coordinar el acceso exclusivo entre ellos mismos
Control de errores
Dispositivos y transferencias de E/S pueden fallar por muchas razones, ya sea temporales o permanentes Los S.O. frecuentemente manejan de manera eficiente las fallas temporales
Sobrecarga de la red resend() Falla de lectura de disco retry()
Desafortunadamente, si un componente importante sufre una falla permanente es muy probable que el S.O. no se recupere
Estructura de Almacenamiento
Estructura de almacenamiento
El sistema de archivos puede ser visto lgicamente en diferente niveles En uno de estos niveles se encuentras los algoritmos de calendarizacin de disco, formateo de disco, manejo de los sectores de arranque, bloques daados y espacio de swapeo.
Estructura de disco
Los discos proporcionan la mayor parte de almacenamiento secundario hoy en da. Antes lo fueron las cintas magnticas pero el acceso era mucho ms lento. Es por esto que las cintas son utilizadas como respaldo, para almacenar informacin muy poco utilizada Las unidades de discos modernos son vistos como un arreglo unidimensional de bloques lgicos, donde un bloque lgico es la unidad ms pequea de transferencia. El tamao comn de un bloque es de 512B
Estructura de disco
No obstante, algunos discos pueden ser formateados a bajo nivel para escoger un tamao de bloque diferente como por ejemplo 1024B. Los bloques lgicos de un arreglo unidimensional son arreglados en sectores del disco de manera secuencial.
Sector 0 es el primer sector en la primera pista (track) del cilindro ms externo
El direccionamiento contina con el resto de las pistas de ese cilindro y luego contina con los cilindros internos
Utilizando esta secuencia, se puede convertir, en teora, un nmero lgico de bloque en una direccin de disco que consiste de un nmero de cilindro, un nmero de pista dentro de ese cilindro y un nmero de sector dentro de esa pista
Estructura de disco
En la prctica es difcil realizar este traduccin
La mayora de los discos tiene sectores defectuosos, pero el direccionamiento (correspondencia) oculta esto utilizando otros sectores dispersos El nmero de sectores por pista no es constante en todos las unidades. Por Ej. Unidades que utilizan CLV (Constant Lineal Velocity) la densidad de bits por pista es uniforme. Mientras ms lejana este la pista del centro mayor es su longitud y mayor nmero de sectores contiene.
Mientras nos movemos de las pistas externas hacia las internas disminuye el nmero de los sectores por pista La unidad incrementa su velocidad de rotacin conforme la cabeza se mueve hacia el centro del disco, para mantener la misma tasa de transferencia de informacin
Estructura de disco
De manera alternativa, la velocidad de rotacin del disco puede permanecer constante y la densidad de los bits decrementar de las pistas interiores hacia las exteriores
Este mtodo es utilizado en los discos duros y se conoce como CAV (Constant Angular Velocitiy)
Disco magntico
Calendarizacin FCFS
Es la forma ms sencilla de calendarizacin
Este algoritmo es justo pero generalmente no proporciona el servicio ms rpido Considere, por ej., una cola de disco con las peticiones de E/S para los bloques en los cilindros
98,183,37,122,14,124,65,67
Si inicialmente la cabeza del disco est en el cilindro 53 entonces se mover al cilindro 98, 183, 37, 122, para un total del 640 cilindros
Calendarizacin FCFS
Calendarizacin SSTF
Entonces, parece razonable servir las peticiones que estn ms cerca de la posicin actual de la cabeza
Sobre esta suposicin trabaja Shortest-Seek-Time First (SSTF) Este algoritmo selecciona la peticin que tiene el menor tiempo de bsqueda de la posicin actual Con este esquema, en nuestro ejemplo se termina con un movimiento total de 236 cilindros
Calendarizacin SSTF
Calendarizacin SCAN
En este algoritmo el brazo de disco empieza en un extremos del disco y se mueve hacia el otro extremo
Va sirviendo las peticiones conforme alcanza los diferentes cilindros hasta que llega al extremo final Al llegar, el movimiento de la cabeza de disco es revertido y continua sirviendo las peticiones La cabeza de disco continuamente escanea conforme se mueve hacia delante y hacia atrs
Calendarizacin SCAN
Calendarizacin C-SCAN
Calendarizacin Circular SCAN
Entonces cuando el brazo alcanza el final del disco, entonces empieza por el principio de nuevo
Calendarizacin C-SCAN
Sistemas Operativos
SO-C32
Deadlock (Bloqueos)
La implementacin de semforos con una cola de espera puede resultar en una espera mutua indefinida
Cuando ocurre esta espera mutua se dice que los procesos estn bloqueados (deadlocked) P0 P1 wait(S); wait(Q); wait(Q); wait(S); signal(S); signal(Q); signal(Q) signal(S);
67
Starvation
Se dice que un conjunto de procesos est en un estado de bloqueo cuando cada proceso en el conjunto espera un evento que solo puede ser causado por otros proceso en el mismo conjunto
Un problema relacionado con el bloqueo es la inanicin (starvation), es decir, cuando los procesos esperan indefinidamente dentro de un semforo
68
Bloqueo
Cuando varios procesos compiten por un nmero finito de recursos, puede surgir una situacin en la que un proceso solicite un recurso y ste no se encuentre disponible en ese momento, en cuyo caso el proceso pasar a un estado de espera.
Tal vez suceda que algunos procesos en espera nunca cambien nuevamente su estado, debido a que los recursos que han solicitado estn retenidos por otros procesos tambin en espera. Esta situacin se denomina bloqueo mutuo.
69
Bloqueo
Un proceso debe solicitar un recurso antes de usarlo y liberarlo despus de usarlo. Un proceso puede solicitar tantos recursos como requiera para llevar a cabo su tarea asignada. Obviamente, el nmero de recursos solicitados no puede exceder el nmero total de recursos disponibles en el sistema. En otras palabras, un proceso no puede solicitar tres impresoras si el sistema slo tiene dos. Si se hace tal solicitud, ser rechazada
70
Ejemplo de Bloqueo
Para ilustrar un estado de bloqueo mutuo, consideramos un sistema que tiene tres unidades de cinta. Suponga que existen tres procesos, cada uno reteniendo a una de estas unidades de cintas. Si cada proceso ahora solicita otra unidad de cinta, los tres procesos estarn en un estado de bloqueo mutuo. Cada uno est esperando al evento tape drive is released (unidad de cinta est liberada), el cual slo puede ser ocasionado por uno de los otros procesos que estn en espera.
71
Bloqueos
Los bloqueos mutuos son indeseables Los procesos nunca terminan de ejecutarse y los recursos del sistema estn inmovilizados
72
Bloqueos
Una situacin de bloqueo mutuo puede surgir si se presentan simultneamente las siguientes cuatro condiciones en un sistema:
Exclusin mutua Retencin y espera No apropiacin Espera circular
73
74
Espera circular. Debe existir un conjunto de procesos en espera, tal que P0 est esperando un recurso que est retenido por P1, P1 y estos esperen por un recurso retenido por P2,..., Pn-1 espere un recurso retenido por Pn, Pn est esperando un recurso retenido por P0
75
Retencin
Peticin
Bloqueo Mutuo
No hacer nada. Deteccin y recuperacin Evitar por medio de la asignacin de los recursos Prevencin (negando alguna de las cuatro condiciones)
Disponibles 1 0 2 0
Sistemas Operativos
Administracin de Informacin
Clase 32
Administracin de la Informacin
Sistema de Archivos
Concepto de archivo
Para la mayora de los usuarios el sistema de archivos es la parte ms visible de un SO. El sistema de archivos consiste de
Coleccin de archivos. Almacenan informacin relacionada Estructura de directorio. Organiza y provee informacin sobre todos los archivos del sistema Particiones. Separan fsica o lgicamente colecciones de archivos
Concepto de archivo
Los sistemas de cmputo pueden almacenar informacin en diferentes medios
El SO entonces debe proporcionar una vista lgica uniforme del almacenamiento de la informacin
El SO abstrae las propiedades fsicas de los dispositivos de almacenamiento para definir una unidad lgica de almacenamiento llamado archivo. El SO establece correspondencia entre los archivos y los dispositivos.
Archivo
Un archivo es una coleccin de informacin relacionada con un nombre y que es almacenada en memoria secundaria Desde el punto de vista del usuario un archivo es la pieza ms pequea de almacenamiento secundario lgico
Los datos no pueden ser escrito a memoria secundaria a menos que estn dentro de un archivo
En general un archivo es una secuencia de bits, bytes, lneas o registros y el significados de stos lo define el creador del archivo y el usuario
Estructura de un archivo
Un archivo posee una cierta estructura definida de acuerdo a su tipo
Un archivo de texto es una secuencia de caracteres organizados en lneas y posiblemente en pginas Un archivo fuente es una secuencia de subrutinas y funciones (texto secuencial) Un archivo objeto es una secuencia de bytes organizados bloques entendibles para el creador de enlaces (linker) del sistema. Un archivo ejecutable es una serie de secciones de cdigo que el cargador puede traer a la memoria y ejecutar
Atributos de un archivo
Un archivo posee ciertos atributos que varan entre SO pero tpicamente son
Nombre. El nombre de archivo utilizado para la conveniencia de sus usuarios y mediante el cual es referido el archivo. Identificador. Es una etiqueta, normalmente un nmero que identifica al archivo dentro del sistema de archivos. No entendible por el usuario Tipo. Esta informacin es necesaria para aquellos sistemas que permiten diferentes tipos de archivos. Ubicacin. Es un apuntador al dispositivo y a la ubicacin del archivo en ese dispositivo. Tamao. Es el tamao actual del archivo en bytes, palabras o bloques. Proteccin. Informacin de control de acceso que determina quin puede leer, escribir, ejecutar, etc. Hora, fecha e identificacin del usuario. Informacin que se mantiene para la creacin, ltima modificacin y ltima apertura.
Atributos de un archivo
La informacin sobre todos los archivos se mantiene en la estructura de directorio que tambin reside en la memoria secundaria Un registro de directorio consiste del nombre de un archivo y un identificador nico. El identificador localiza los otros atributos del archivo.
Estas operaciones bsicas se pueden combinar para realizar otras operaciones sobre archivos
Para evitar esta constante bsqueda, muchos sistemas requieren de que se ejecute la llamada al sistema open antes de que el archivo empiece a utilizarse activamente
El SO mantiene una pequea tabla que contiene informacin de todos los archivos abiertos, llamada tabla de archivos abiertos. Cuando se requiere de una operacin en un archivo, se especifica al archivo por medio del ndice de esta tabla y ya no se requiere de la bsqueda. Cuando ya no se utiliza al archivo entonces se cierra y el SO elimina su registro de la tabla
La llamada al sistema open toma el nombre del archivo y busca en el directorio y agrega el registro a la tabla de archivos abiertos La llamada al sistema open tambin puede recibir informacin de control de acceso. Este control es cotejado con los permisos del archivo Si la peticin es vlida, se abre el archivo, la llamada regresa un apuntador al registro de la tabla de archivos abiertos. Este apuntador y no el nombre del archivo es el que se utiliza en la operaciones de E/S
Operaciones en archivos
En sistemas tipo linux, diferentes usuarios pueden acceder a un mismo archivo abierto al mismo tiempo
Para esto el SO utiliza dos niveles de tablas internas
Una tabla por proceso Una tabla para todo el sistema
La tabla para el proceso mantiene todos los archivos que un proceso ha abierto. Se almacena informacin con relacin al uso que el proceso hace del archivo. La tabla para todo el sistema contiene informacin independiente del proceso, p. ej.: la ubicacin del archivo en el disco, fechas de acceso, tamao de archivo. Cada registro de la tabla para el proceso apunta al registro correspondiente en la tabla para todo el sistema
Operaciones en archivos
Normalmente, la tabla de archivos abiertos tambin contiene un contador abierto asociado a un archivo Este contador indica el nmero de procesos que han abierto el mismo archivo
Cada operacin close decrementa el contador y cuando alcanza el 0 entonces el archivo ya no est en uso Entonces se remueve el registro de ese archivo se remueve de la tabla de archivos abiertos
Derechos de acceso Cada proceso abre un archivo en cierto modo de acceso. Esta informacin se almacena en la tabla por proceso de tal manera el SO puede permitir o negar peticiones de E/S subsecuentes.
Tipos de archivos
Cuando se desarrolla o disea un SO se debe considerar si debe reconocer y dar soporte a tipos de archivos Si un SO reconoce un tipo de archivo puede operar sobre el archivo de una manera razonable Una tcnica comn para implementar tipos de archivos es incluir el tipo de archivo como parte del nombre.
Tipos de archivos
Entonces el nombre de un archivo se divide en dos partes separadas de un carcter especial
El nombre La extensin
El usuario y el SO pueden decir slo con el nombre de qu tipo de archivo se trata. An cuando el SO slo distinga unos cuantos tipos de archivo (por sus extensiones) las aplicaciones pueden reconocer las extensiones en las que estn interesadas
No obstante el SO no soporta dichas extensiones
Tipos de archivos
En el SO Macintosh cada archivo tiene un tipo. Tambin cada archivo contiene el nombre del programa que lo cre
Este atributo es establecido por el SO cuando se ejecuta la llamada al sistema create, entonces s es implementado y soportado por el sistema
De esta manera cuando se abre el archivo se puede llamar a la aplicacin que la cre para acelerar el trabajo.
Tipos de archivos
Sistemas Operativos
Clase 33
Repaso
Sistema de Archivos
Coleccin de archivos Estructura de directorio Particiones
Archivo
Estructura Atributos. Nombre, identificador, tipo, ubicacin, tamao, proteccin Operaciones. Crear, escribir, leer, mover, truncar
Archivos abiertos
Tabla de archivos abiertos
Por proceso Del sistema
Mtodos de acceso
Cuando se utiliza la informacin almacenada en los archivos sta debe ser accedida y despus cargada a la memoria Este acceso puede hacerse de diferente maneras Algunos sistemas soportan una sola forma de acceder a un archivo, pero algunos otros soportan diferentes maneras de hacerlo
Escoger el correcto para una aplicacin
Acceso secuencial
Este es el mtodo de acceso ms simple La informacin en el archivo se procesa en orden, registro tras registro
Este mtodo de acceso es muy comn
El acceso secuencial esta basado en el modelo de cinta de un archivo y funciona bien tanto en dispositivos de acceso secuencial como de acceso aleatorio
Acceso directo
Otro mtodo de acceso al contenido de un archivo es el acceso directo o acceso relativo Un archivo est hecho de registros lgicos de longitud fija que permiten a los programas leer y escribir registros rpidamente sin algn orden en particular
Para el acceso directo, el archivo es visto como una secuencia numerada de registros o bloques
Permite la lectura y escritura arbitraria de bloques
Acceso directo
Los archivos de acceso directo son ideales para el acceso inmediato a grandes cantidades de informacin
Ej. Las bases de datos son de este tipo
Con el acceso directo, las operaciones sobre archivos deben ser modificados para incluir el nmero de bloque como un parmetro
Entonces se tiene read n donde n es el nmero de bloque, en lugar de read next. Otra manera es dejar read next y write next y agregar la operacin position file to n (la posicin en el archivo)
Acceso directo
El nmero de bloque proporcionado por el usuario al SO normalmente es un nmero de bloque relativo Un nmero de bloque relativo es un ndice con relacin al inicio del archivo
Entonces el primer bloque relativo es el 0, el siguiente es 1
El uso de nmeros de bloque relativos permite al SO decidir dnde el archivo debe ser almacenado (problema de asignacin) y ayuda a evitar que el usuario acceda a porciones del sistema de archivos que no le pertenezca
ndices de acceso
Se pueden construir otros mtodos basado en el acceso aleatorio Estos mtodos implican la construccin de un ndice del archivo
El ndice apunta a los diferentes bloques del archivo
Para buscar un registro del archivo se busca primero en el ndice y se utiliza el apuntador para acceder directamente al archivo
Ejemplo de ndices
ndices de acceso
Con archivos muy grandes el archivo ndice puede ser muy grande para mantenerse en memoria Una solucin es crear un ndice para el archivo ndice
El ndice primario contiene apuntadores a los archivos del ndice secundario, los cuales a su vez apuntan a los datos
Estructura de directorio
Los sistemas de archivos pueden ser muy grandes y para administrar toda esa informacin es necesario organizarlos En primer lugar los discos se pueden dividir en particiones (minidiscos o volmenes)
Normalmente un disco tiene al menos una particin, la cual es una estructura de bajo nivel en donde residen los archivos y directorios Algunas veces se crean varias particiones en un solo disco y otras veces los sistemas permiten crear particiones ms grandes que un slo disco
Estructura de directorio
Entonces, el usuario solo necesita conocer la estructura lgica de archivo y del directorio En consecuencia las particiones pueden ser vistas como discos virtuales Adems, para ayudar en la organizacin, las particiones mantienen informacin de los archivos que contiene
Esta informacin se mantiene en los registros del directorio de dispositivo o la tabla de contenidos del volumen
Estructura de directorio
El directorio de dispositivo (o simplemente directorio) registra informacin de todos los archivos en esa particin
Nombre Tipo Direccin Longitud Actual Longitud Mxima ltimo acceso ltima actualizacin ID del propietario Informacin de proteccin
El directorio puede ser visto como una tabla de smbolos que traduce el nombre de archivo en registros de directorios
Estructura de directorio
El directorio de dispositivo (o simplemente directorio) registra informacin de todos los archivos en esa particin
Nombre Tipo Direccin Longitud Actual Longitud Mxima ltimo acceso ltima actualizacin ID del propietario Informacin de proteccin
El directorio puede ser visto como una tabla de smbolos que traduce el nombre de archivo en registros directorios
119
120
Punto de montaje
Normalmente un punto de montaje es un directorio vaco en el cual se agregar el sistema de archivo montado Despus el S.O. verifica que el dispositivo contenga un sistema de archivos vlido
Esto se logra preguntndole al manejador de dispositivo que lea el directorio del dispositivo y verificando que el directorio tenga el formato esperado
Por ltimo, el SO apunta en su estructura de directorio que un sistema de archivos fue montado en el punto de montaje especificado
121
122
Compartir archivos
Una caracterstica deseable en un sistema de archivos es que el SO permita compartirlos
El usuario no debe estar conciente de las dificultades que esto representa
La problemtica empieza en SO multiusuarios y el compartir archivos Una vez que se logra esto, el reto es extender el compartir archivos entre diferentes sistemas de archivos, incluyendo sistemas remotos
123
Compartir archivos
SO multiusuarios
El SO debe permitir a los usuarios tener acceso a los archivos de otros usuarios por defecto o requiere que el usuario explcitamente d acceso a sus archivos Para implementar el compartimento y la proteccin la mayora de los SO han evolucionado desarrollado los conceptos de propietario y grupo Los SO implementan los atributos del propietario manejado una lista de nombres de usuario y los asocia a los identificadores de usuario
124
Compartir archivos
Sistemas de archivos remotos
Con el uso de las redes de computadoras un recursos obvio para compartir es la informacin Existen diferente maneras de transferir informacin en forma de archivos
FTP (File Transfer Protocol) DFS (Distributed File Systems)
Permiten montar sistemas de archivos remotos en sistemas locales
125
Crear algoritmos y estructuras de datos que establecen las correspondencias entre el sistema de archivos lgico a los dispositivos de almacenamiento secundario
126
127
128
130
En disco, el sistema de archivos puede contener informacin acerca de cmo iniciar un SO almacenado, el nmero totales de bloques, el nmero y la ubicacin de bloques libres, la estructura de directorio.
131
Estructuras en disco
Bloque de control de arranque.
Obtiene informacin necesaria para que el sistema pueda iniciar un SO de esta particin Si el disco no contiene un SO este bloque puede estar vaco. Este bloque normalmente se ubica en el primer bloque de una particin En UFS se le llama el bloque de inicio En NTFS se le llama el sector de arranque de la particin
132
Estructuras en disco
Bloque de control de la particin Contiene detalles de la particin, ej. El nmero de bloques en la particin, el tamao de los bloques, contador y apuntador de bloques libres, contador y apuntador de FCB En UFS se le llama superbloque En NTFS se le llama Tabla de Archivo Maestra La estructura de directorios se utiliza para organizar archivos
Un FCB es necesario tambin. En UFS se le llama inode En NTFS esta informacin se almacena en la Tabla de Archivo Maestra
133
Estructuras en memoria
La informacin en memoria se utiliza tanto para la administracin del sistema de archivos como para la mejora del rendimiento va cach. Las estructuras pueden ser:
Tabla de particiones.
Que contiene informacin acerca de cada particin que ha sido montada
Estructura de directorios
Que mantiene la informacin de directorios recientemente accedidos
134
Estructuras en memoria
Tabla de archivos abiertos de todo el sistema
Contiene una copia del FCB de cada archivo abierto
135
Es importante conocer ambos mtodos ya que tienen un efecto importante en la eficiencia, funcionamiento y confiabilidad de un sistema de archivos
136
Listas lineales
Este es el mtodo ms sencillo. Consiste en utilizar un arreglo lineal de nombres de archivos con apuntadores a bloques de datos Una lista lineal de registros de un directorio necesita de una bsqueda lineal para encontrar un registro particular
Este mtodo es simple de programar pero consume mucho tiempo en sus bsquedas
Para crear un archivo debemos buscar en la lista primero para ver que no exista Entonces se crea un nuevo registro Para eliminar un registro sucede lo mismo
137
Tablas hash
Otra estructura de datos que ha sido utilizada para implementar un directorio es una tabla hash En este mtodo una lista lineal almacena los registro del directorio y la tabla hash toma un valor generado del nombre del archivo y regresa un apuntador al registro de ese archivo en la lista Se deben prever las colisiones, ya que dos nombres de archivos pueden apuntar al mismo registro El problema principal con las tablas hash son su tamao y la dependencia de la funcin hash
138
Mtodos de asignacin
Cmo asignar espacio a los archivos de tal manera que el espacio en disco sea utilizado eficientemente y adems los archivos puedan accederse rpidamente Son tres mtodos de asignacin que estn en amplio uso
Contigua Enlazada Indizada
139
Asignacin contigua
Este mtodo requiere que cada archivo ocupe un conjunto contiguo de bloques en el disco
Las direcciones en el disco definen un arreglo lineal. Con este arreglo y asumiendo que un solo proceso accede al disco, leer el bloque b y luego el bloque b+1 no requiere el desplazamiento de la cabeza lectora
Se requiere del movimiento cuando se desea leer del ltimo sector de un cilindro al primer sector del siguiente cilindro Entonces el nmero de movimientos de bsquedas requerido para acceder a archivos asignados continuamente es mnimo
140
Asignacin contigua
La asignacin contigua de un archivo est definida por la direccin inicial de disco y la longitud (nmero de bloques) Si el archivo tiene un longitud de n bloques y comienza en la direccin b entonces el archivo ocupa b, b+1, b+2. ,b+n-1 Los registros del directorio para cada archivo indican la direccin del bloque inicial y la longitud del rea asignada a ese archivo Tanto el acceso secuencial como aleatorio pueden ser
implementados con asignacin contigua
141
Asignacin contigua
142
Asignacin contigua
Este mtodo tiene algunos problemas Encontrar espacio para un archivo nuevo Es necesaria la utilizacin de un administrador de espacio libre El problema de la asignacin de espacio de disco contiguo es una aplicacin del problema genrico de la asignacin de memoria dinmica Mejor ajuste y primer ajuste
143
Asignacin enlazada
Soluciona los problemas de la asignacin contigua
Cada archivo es una lista enlazada de bloques de disco Los bloques pueden estar dispersos por todo el disco El directorio contiene un apuntador al primer y ltimo bloque del archivo Cada bloque contiene un apuntador el siguiente bloque Estos apuntadores no estn disponibles para el usuario Entonces si cada bloque es de 512bytes y el apuntador requiere 4 bytes el usuario ve bloques de 508 bytes
144
Asignacin enlazada
Para crear un archivo se crea un nuevo registro en el directorio Cada registro del directorio tiene un apuntador al primer bloque del disco del archivo Este apuntador se inicializar a nulo para indicar un archivo vaco. El tamao del archivo se establece a 0 Escribir en el archivo causa que se busque un bloque libre para ser asignado por medio del sistema manejador de espacio libre Para leer el archivo se van leyendo la informacin siguiendo los apuntadores de bloque en bloque
145
Asignacin enlazada
No existe fragmentacin externa y cualquier bloque libre puede ser utilizado para satisfacer una peticin. El tamao del archivo no necesita establecerse cuando ste se crea
146
Asignacin enlazada
Desventajas
El principal problema es que slo puede ser utilizado efectivamente en archivos de acceso secuencial Para encontrar el i-simo bloque de un archivo debemos empezar por el inicio y seguir los apuntadoras hasta llegar al bloque i. Cada acceso a un apuntador requiere la lectura del disco y a veces la bsqueda del bloque
Otra desventaja es el espacio requerido para los apuntadores Si un apuntador requiere 4bytes de un bloque de 512 un porcentaje del disco se utiliza slo para apuntadores y no para informacin
147
Asignacin enlazada
Una solucin a este problema es formar grupos de bloques llamados clusters y asignar clusters en lugar de bloques
Los apuntadores ocupan un espacio todava mucho menor Adems permite que la correspondencia de espacio lgico a fsico sea simple Mejora el rendimiento total del disco (menor tiempo de bsqueda) El costo es la fragmentacin interna
Desventajas
Qu pasa si se pierde o daa un apuntador. Un error en el SO o una falla fsica del disco
148
FAT
149
Asignacin indizada
Asignacin enlazada resuelve Fragmentacin externa, declaracin de tamaos Problema con el acceso directo Asignacin indizada resuelve el problema de acceso directo tomando todos los apuntadores y almacenndolos en un solo bloque: el bloque ndice Cada archivo tiene su propio bloque ndice, el cual es un arreglo de direcciones de bloques de disco El registro i-simo del bloque ndice apunta al bloque i-simo del archivo El directorio contiene la direccin del bloque ndice
150
Asignacin indizada
Para leer el bloque i-simo se utiliza el apuntador en el isimo registro del bloque ndice para encontrar el bloque deseado Cuando se crea un archivo todos los apuntadores del bloque ndice son puestos a nulo Cuando se escribe el primer i-simo bloque, se debe obtener un bloque libre del manejador de espacio libre y su direccin se pone en el i-simo registro del bloque ndice Este mtodo soporta el acceso directo sin sufrir de fragmentacin externa
151
Asignacin indizada
152
Asignacin indizada
No obstante, la asignacin indizada destina espacio de disco a los apuntadores y esta sobrecarga suele ser mayor que en asignacin enlazada Un archivo con dos o tres bloques Este lleva a preguntar qu tan grande debe ser el bloque ndice Se desea que ste sea tan pequeo como sea posible Sin embargo si es muy pequeo probablemente no tenga espacio suficiente para todos los apuntadores de un archivo grande Esquema de enlazado, ndice multinivel, esquema combinado
153
Esquema de enlazado
El bloque ndice normalmente est en un bloque de disco Puede ser ledo y escrito sin problema Para permitir archivos grandes se enlazan varios bloques ndices Ej. Un bloque ndice puede contener el encabezado con el nombre del archivo y un conjunto de las primeras 100 direcciones de bloques. La siguiente direccin es nulo (archivo pequeo) o apunta a otro bloque ndice (archivo grande)
154
ndice multinivel
Una variante de la representacin enlazada es usar en un primer nivel un bloque que apunte a un conjunto de bloques ndices en un segundo nivel Para acceder a un bloque el SO utiliza el ndice de primer nivel para encontrar el bloque ndice de segundo nivel y utiliza ste para encontrar la informacin.
Este esquema puede continuar a ms niveles segn el tamao del archivo
155
Esquema combinado
156
Proteccin de archivos
Cuando se almacena informacin en un sistema se debe procurar Confiabilidad y proteccin Confiabilidad En S.O. va en el sentido de evitar daos fsicos Se logra creando copias de archivos, ya sea de manera automtica y/o peridica.
157
Tipos de acceso
La proteccin es el resultado natural de permitir el acceso a los archivos Se requiere de un acceso controlado Los mecanismos de proteccin proporcionan acceso controlado limitando los tipos de accesos a archivos que pueden hacerse Se pueden controlar diferentes operaciones Leer, escribir, ejecutar, agregar, eliminar, listar, renombrar, copiar, editar
158
Control de acceso
La manera ms comn de tratar el problema de la proteccin es controlar el acceso segn el usuario
Esto se logra utilizando una lista de control de acceso
La ventaja es que permite metodologas complejas de acceso Su principal desventaja es el tamao que puede adquirir la lista
159
Control de acceso
Propietario Quien crea el archivo
Grupo Grupo de usuarios que comparten el archivo y necesitan el mismo tipo de acceso
Universo (otros) Todos los dems usuarios en el sistema
160
ejemplo
Modos de acceso: read, write, execute Tres clases de usuario RWX a) owner access 7 111 RWX b) group access 6 110 RWX c) public access 1 001
161