Está en la página 1de 161

Sistemas Operativos

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

Bus tpico de una PC

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

Interaccin con el procesador


Cmo puede el procesador enviar comandos y datos a un controlador para lograr la transferencia de E/S?
La respuesta corta es que el controlador tiene uno o ms registros para datos y seales de control

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

Memory mapped I/O


Algunos sistemas utilizan ambos esquemas
PC usan instrucciones E/S para controlar algunos dispositivos y memory-mapped I/O para controlar otros

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

Interaccin con el procesador


Registros del controlador Controlador soporta memory-mapped

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

Ciclo de E/S guiado por 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

Tabla de vectores de eventos de Intel

Prioridad en las interrupciones


El mecanismo de interrupciones implementa un esquema con niveles de prioridades de interrupciones Este mecanismo permite al CPU retrasar el manejo de las interrupciones de prioridad baja sin apagar todas las interrupciones (lnea ocultable) y esto hace posible a una interrupcin de prioridad alta preempt la ejecucin de una interrupcin de prioridad baja

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

Manejador de interrupciones Caractersticas deseables (Controlador de Interrupciones)


Retardo de algunas interrupciones Identificacin eficiente de quin genera la interrupcin Prioridades entre interrupciones

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

Estructura de E/S de kernel

Capa de manejador de dispositivo


El propsito de la capa de manejadores de dispositivos es ocultar las diferencias entre los controladores de dispositivo del subsistema de E/S del kernel As las llamadas al sistema de E/S encapsulan el comportamiento de los dispositivos en unas cuantas clases que ocultan las diferencias de hardware a las aplicaciones. De esta manera se simplifica la tarea del desarrollador de S.O. Tambin se beneficia a los desarrolladores de hardware ya que disean nuevos dispositivos que son compatibles con una interfaz controladora existente o escriben los manejadores de dispositivos que son la interfaz de un nuevo hardware hacia los S.O.

Capa de manejador de dispositivo


De esta manera, nuevos perifricos se pueden integrar a una computadora sin tener que esperar a que el desarrollador de S.O. desarrolle el cdigo de soporte El problema es que cada SO tiene sus propios estndares para la interfaz manejadora de dispositivos En consecuencia un dispositivo puede tener mltiples manejadores, por ejemplo, manejadores para MS-DOS, Win9X, WINNT, etc.

Caractersticas de los dispositivos de E/S


Flujo de carcter o bloque.
Un dispositivo de flujo de carcter transfiere bytes uno a uno Mientras que un dispositivo de bloque enva bloques de bytes como una unidad

Acceso secuencial o aleatorio.


Un dispositivo secuencial transfiere informacin en un orden fijo determinado por el dispositivo Mientras que el usuario de un dispositivo de acceso aleatorio puede indicar al dispositivo buscar en cualquier ubicacin de almacenamiento disponible

Caractersticas de los dispositivos de E/S


Sncrono o asncrono.
Un dispositivo sncrono es aquel que realiza transferencia de datos con tiempos de respuesta predecibles. Un dispositivo asncrono muestra tiempos de respuesta irregulares o impredecibles

Compartido o dedicado
Un dispositivo compartido puede ser utilizado concurrentemente por varios procesos o hilos Un dispositivo dedicado no

Caractersticas de los dispositivos de E/S


Velocidad de operacin
El rango de velocidad de un dispositivo vara de un cuantos bytes por segundo a unos cuantos gigabytes por segundo

Lectura escritura, solo lectura o solo escritura


Algunos dispositivos realizan tanto lectura como escritura, pero otros solo soportan informacin en una sola accin

Caractersticas de los dispositivos de E/S

Subsistema de E/S del kernel


El kernel ofrece muchos servicios relacionados con E/S El subsistema de E/S del kernel provee los servicios ms comunes
Calendarizacin Buffering Caching Spooling Reservaciones de dispositivo Control de errores

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

Caractersticas de los dispositivos de E/S


Flujo o caracter, acceso secuencial o aleatorio, sncrono o asncrono, compartido o dedicado, velocidad de operacin, lectura-escritura, solo lectura o solo escritura.

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 del disco


Una de las responsabilidades del S.O. es utilizar el hardware de manera eficiente
Cuando se trata de discos esto implica tener un tiempo de acceso rpido y ancho de banda bueno

El tiempo de acceso tiene dos componentes


Tiempo de bsqueda. Es el tiempo que le toma al brazo del disco mover la cabeza hacia el cilindro que contiene el sector deseado La latencia de rotacin. El tiempo de espera adicional para que el disco rote el sector deseado hacia la cabeza del disco

Calendarizacin del disco


El ancho de banda es el total de bytes transferidos entre el tiempo total que transcurre desde la primera peticin hasta que se realiza la ltima transferencia Se pueden mejorar tanto el tiempo de acceso como el ancho de banda mediante la calendarizacin de las peticiones de E/S en un buen orden

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

Es un algoritmo diseado para proporcionar un tiempo de espera uniforme


La idea es en lugar de atender de ltimo el otro extremo (SCAN) se empieza por ellos en el extremo opuesto (crculo)

Entonces cuando el brazo alcanza el final del disco, entonces empieza por el principio de nuevo

Calendarizacin C-SCAN

Calendarizacin LOOK y C-LOOK

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

Impiden que otros trabajos puedan incluso iniciar.

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

Condiciones para bloqueo


Exclusin mutua. Al menos un recurso debe estar retenido en un modo no compartido; es decir, slo un proceso a la vez puede usar el recurso. Si otro proceso solicita dicho recurso, el proceso solicitante debe esperar hasta que el recurso haya sido liberado. Retencin y espera. Debe existir un proceso que est reteniendo por lo menos un recurso y est esperando adquirir recursos adicionales que en ese momento estn siendo retenidos por otros procesos.

74

Condiciones para bloqueo


No apropiacin. Los recursos no pueden ser apropiados; es decir, un recurso slo puede ser liberado voluntariamente por el proceso que lo est reteniendo, una vez que dicho proceso ha completado su tarea.

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

Modelado del bloqueo


Grafos de asignacin de recursos

Retencin

Peticin

Bloqueo Mutuo

Estrategias para bloqueo mutuo


Se emplean cuatro estrategias para el manejo del bloqueo mutuo:

No hacer nada. Deteccin y recuperacin Evitar por medio de la asignacin de los recursos Prevencin (negando alguna de las cuatro condiciones)

Estrategias para bloqueo mutuo


1. No hacer nada.
El Algoritmo del avestruz Asumir que el problema no existe. Determinar que tan frecuente ocurre y que tan grave es un bloqueo mutuo.

Estrategias para bloqueo mutuo


2. Deteccin y recuperacin
El sistema vigila las peticiones y liberaciones de los recursos y se determina si contiene un ciclo. Si encuentra un ciclo, se termina uno de los proceso del ciclo. Si no se rompe el ciclo, se contina as hasta que no exista el bloqueo. Una variacin es: determinar si hay bloqueo durante un tiempo al trmino del tiempo se eliminan los procesos bloqueados, rompiendo el ciclo.

Estrategias para bloqueo mutuo


3. Prevencin del bloqueo mutuo
Imponer restricciones para que el bloqueo no se pueda dar. Si no se satisface alguna de las 4 condiciones, el bloqueo no se dar. Exclusin mutua. Si no se asigna un recurso en forma exclusiva. Retencin y espera: Se pide que todos los procesos indiquen los recursos que van a usar antes de empezar. O, para obtener un recurso, deber devolver los que tiene asignados. No expropiacin. Quitar el recurso. Eliminar la espera circular. Para obtener un recurso debe devolver los que tiene. O, numerar los recursos para obtenerlos en orden ascendente.

Estrategias para bloqueo mutuo


4. Evitar los bloqueos Estados seguros. Se asigna el recurso, si el estado asegura que alguno de los procesos podr terminar. El algoritmo del banquero.
Recursos existentes (E) Recursos disponibles (D) Recursos Asignados (A) Los recursos se van asignando a los procesos si la asignacin no lleva a un estado inseguro.

Estrategias para bloqueo mutuo


Recursos Disponibles 10 Estados: Proc Sol Max Asig1 Asig2 Asig3 A 0 6 1 1 1 B 0 5 1 3 2 C 0 4 2 2 2 D 0 7 2 2 4

Estrategias para bloqueo mutuo


Estados: Existentes 6 3 4 2 Mximo Asignados Necesita A 4 1 1 1 3 0 1 1 1 1 0 0 B 0 2 1 2 0 1 0 0 0 1 1 2 C 4 2 1 0 1 1 1 0 3 1 0 0 D 1 1 1 1 1 1 0 1 0 0 1 0 E 2 1 1 0 0 0 0 0 2 1 1 0 5 3 2 2

E (6342) A (5322) D (1020)

Disponibles 1 0 2 0

Estrategias para bloqueo mutuo


Estados: Existentes 6 3 4 2 Asignados A 3 0 1 1 B 0 1 0 0 C 1 1 1 0 D 1 1 0 1 E 0 0 0 0 Asignados 5 3 2 2 Disponibles 1 0 2 0

Necesarios 1 1 0 0 0 1 1 2 3 1 0 0 0 0 1 0 2 1 1 0 Si se asigna a: A1? C1? E3? D3? B3?

E (6342) A (5322) D (1020)

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.

Operaciones de los archivos


Un archivo es un tipo de dato abstracto. El SO provee de llamadas al sistema para crear, escribir, leer, mover, eliminar y truncar archivos. Otras operaciones comunes son: anexar nueva informacin al final de un archivo y renombrar un archivo

Estas operaciones bsicas se pueden combinar para realizar otras operaciones sobre archivos

Operaciones de los archivos


La mayora de las operaciones involucran la bsqueda en el directorio del registro asociado al nombre del archivo

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

Operaciones de los archivos


Algunos sistemas abren implcitamente el archivo cuando se llama la primera vez. Se cierra automticamente cuando termina el proceso que lo abri.
La mayora requiere que el programador explcitamente abra el archivo antes de usarlo.

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

Informacin asociada a un archivo abierto


Apuntador de archivo.
En sistemas que no incluyen un corrimiento como parte de las llamadas al sistema read y write, el sistema debe mantener la ltima ubicacin de lectura-escritura por medio de un apuntador posicin-actual-del archivo. Este apuntador es nico para cada proceso operando en el archivo y por lo tanto debe mantenerse separado de los atributos del archivo en el disco

Contador abierto de archivo


Conforme los archivos se cierran, los SO deben actualizar sus registros de la tabla de archivos abiertos Debido a que varios procesos pueden abrir un archivo, el sistema debe esperar a que se cierre por completo el archivo antes de remover su registro en la tabla de archivos abiertos.

Informacin asociada a un archivo abierto


Ubicacin del archivo en el disco La mayora de las operaciones en archivos requieren que el sistema modifique datos en ellos. La informacin necesaria para localizar el archivo en el disco se mantiene en memoria para evitar leerla del disco para cada operacin

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

Contador abierto Apuntador de archivo Ubicacin en memoria secundaria Derechos de acceso

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

La mayora de las operaciones en un archivo son read y write


Read. Lee la siguiente porcin del archivo y avanza automticamente el apuntador de archivo quien lleva el registro de la ubicacin de E/S Write. Agrega al final del archivo y se mueve al nuevo final del archivo

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

Organizacin de un Sistema de Archivos

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

Operaciones en los directorios


Bsqueda de archivo Creacin de archivos Eliminacin de archivo Listado de directorio Renombrar archivos Recorrido del sistema de archivo

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

Montando sistemas de archivos


De la misma manera que un archivo debe ser abierto antes de usarlo, un sistema de archivos debe ser montado antes de ser utilizado por los procesos del sistema Especficamente, la estructura de directorio puede ser construida considerando particiones mltiples, las cuales deben estar montadas para hacerlas disponibles dentro del espacio de nombres del sistema de archivos El procedimiento de montaje es directo, se le proporciona al S.O. el nombre del dispositivo y la ubicacin dentro de la estructura de archivo en la cual se agrega el sistema de archivos (punto de montaje)

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

Montaje de Sistema de archivo

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

Estructura del sistema de archivos


Un sistema de archivos tiene dos consideraciones en el diseo
Definir la apariencia del sistema de archivos para el usuario
Archivos, Atributos de archivos, operaciones sobre un archivo

Crear algoritmos y estructuras de datos que establecen las correspondencias entre el sistema de archivos lgico a los dispositivos de almacenamiento secundario
126

Estructura del sistema de archivos

127

Estructura del sistema de archivos


Control de E/S. Consiste de los manejadores de dispositivos y de interrupciones para transferir informacin entre la memoria principal y el disco Un manejador de dispositivo puede verse como una traductor, cuya entrada son comandos de alto nivel y sus salidas son instrucciones de hardware de bajo nivel especficas que son utilizadas por el controlador de hardware.

128

Estructura del sistema de archivos


Sistema de archivos bsico Necesita solamente generar comandos genricos para el manejador de dispositivo apropiado para leer o escribir bloques fsicos en el disco
Mdulo de organizacin de archivos Maneja archivos y sus bloques lgicos y fsicos. Conociendo el tipo de asignacin de archivos y la ubicacin del mismo, traduce direcciones de bloques lgicos a direcciones de bloques fsicos para que el sistema bsico de archivos pueda transferir. Incluye un manejador de espacio libre, que lleva un registro de los bloques no asignados y proporciona stos al mdulo de organizacin de archivos cuando se lo solicita.
129

Estructura del sistema de archivos


Sistema de archivos lgico Maneja informacin de informacin (metadatos) Incluye todo de la estructura del sistema de archivos excluyendo el contenido. Administra la estructura de directorio para proporcionar la informacin necesaria al mdulo de organizacin de archivos. Mantiene la estructura del archivo por medio de los bloques de control de archivo (FCB) ste contiene informacin acerca del archivo, incluyendo la del propietario, permisos y ubicacin del contenido del archivo. Es responsable de la proteccin y la seguridad.

130

Implementacin del sistema de archivos


Se utilizan diferentes estructuras en disco y en memoria para implementar un sistema de archivos.
stas pueden varias de sistema a sistema pero existen algunos principios generales.

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

Tabla de archivos abiertos del proceso


Contiene un apuntador al registro apropiado en la tabla de archivos abiertos de todo el sistema

135

Implementacin del directorio


Existen dos mtodos principales para implementar un directorio
Listas lineales Tablas hash

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

Sufre de fragmentacin externa


Cmo saber el espacio inicial requerido para un archivo

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

El archivo puede continuar creciendo mientras existan bloques libres


En consecuencia no es necesario compactar

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

inode de Unix (UFS)

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

También podría gustarte