E/S y sistema de ficheros

Transcripción

E/S y sistema de ficheros
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
E/S y sistema de ficheros
1. Introducción
2. Objetivos de diseño en la E/S
3. Operaciones de E/S
4. Algunas técnicas para optimizar la E/S
5. Sistema de ficheros
6. Consideraciones de protección y seguridad
Bibliografía
Silberschatz and Galvin
Sistemas Operativos. Conceptos fundamentales.
Parte III: Administración de almacenamiento
Tanembaum
Operating Systems. Design and implementation.
Chap. 1.3.2: Files
Chap. 1.4.3: System Calls for File Management
Chap. 3.2: Principles of I/O software
Chap. 5: File systems (5.1, 5.2, 5.4, 5.5)
~marisa/pub/iosf_slides.pdf
~marisa/pub/iosf_slides.ps
Introducció als Sistemes Operatius
1
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
El SO es gestor de los dispositivos
• Proteger los dispositivos del posible maluso por parte de los usuarios
• son recursos caros y escasos
• complejos de utilizar
• Facilitar a los usuarios la programación de trabajos
• esconder las diferentes etapas
• esconder las diferentes características
Introducció als Sistemes Operatius
2
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
El SO es gestor de la Entrada/Salida
• Los dispositivos son escasos y caros, complejos de utilizar en general
• La información es lo más valioso de un sistema
• permitir que persista
• facilitar la organización y recuperación
• proteger el acceso
Introducció als Sistemes Operatius
3
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Componentes de la gestión de la E/S
• E/S: comunicación con los dispositivos
• Objetivos de diseño
• Operaciones de E/S
• SF: estructura lógica de mantenimiento y organización de la información
• Organización del SF (visión estática)
• Operaciones sobre el SF (visión dinámica)
• Protección
Introducció als Sistemes Operatius
4
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Características diferenciales de los dispositivos
TECLADO
RED
Unidad transferen.
1 carácter
Veloc. transferen.
2000 car/s
Representac. datos
SCAN-CODE
Oper. permitidas
HARD-DISK
CD-ROM
IMPRESORA
53 b (ATM c)
2.352 bytes
132 car
100 Mbits/s
150 Kbytes/s
30 líneas/s
(grab) lectura
escritura
Modalidad trabajo
Códigos de error
Introducció als Sistemes Operatius
5
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Objetivo de diseño en la E/S
Independencia de los dispositivos
• Desligar las operaciones del dispositivo al que van dirigidas
• Con la máxima eficiencia posible
Principios de diseño
• Uniformidad en las operaciones
• Utilización de dispositivos virtuales
Un mismo programa puede cambiar de dispositivos sin modificar su código
Introducció als Sistemes Operatius
6
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Uniformidad en las operaciones
• Llamadas genéricas:
conjunto reducido de operaciones lo suficientemente generales que sirvan
para todos los dispositivos del sistema (ej.: leer(), escribir(),...)
• Llamadas específicas:
conjunto de operaciones propias del dispositivo físico al que están asociadas.
La llamada al sistema que hace el programa es una llamada genérica y las
llamadas a módulos y rutinas internas del SO son, a partir de un cierto nivel,
específicas.
Introducció als Sistemes Operatius
7
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Uniformidad en las operaciones
leer()
void leer()
int leer_teclado()
int leer_fichero()
leer()
Introducció als Sistemes Operatius
8
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Dispositivos virtuales
• Los programas trabajan con dispositivos virtuales, no físicos
• Cambiar de dispositivo de trabajo es redireccionar el dispositivo virtual
• Existen operaciones de vincular/desvincular dispositivo virtual-físico
• Nombre del dispositivo virtual:
• lo da el usuario: nombre lógico
• lo da el sistema: canal virtual
Introducció als Sistemes Operatius
9
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Dispositivos virtuales
Posibles operaciones y momentos de vínculo:
asignar(fisico,virtual) / desasignar(virtual)
abrir(fisico,virtual,modo) / cerrar(virtual)
ejecutar_programa(fichero,input, output...) / fin_programa()
Herencia:
Por defecto, un proceso hijo hereda los vínculos del proceso padre (ej.: UNIX)
Permite la redirección de canales sin modificar el código de los programas.
Introducció als Sistemes Operatius
10
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Un ejemplo: UNIX
Redirección a través de una pipe
$ who | wc -l
stdin
who
stdout
wc -l
stdout
Redirección a través de la salida estándar
$ who > fichero
who
stdout
Introducció als Sistemes Operatius
11
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Operaciones de E/S
Etapas en una llamada al sistema de E/S
• Petición del servicio por parte del programa (llamada al sistema)
• contestación del dispositivo (servicio de la interrupción, generalmente)
El modo de realizar el servicio completo, determina la semántica de la operación
- e/s síncrona, o
- e/s asíncrona
Introducció als Sistemes Operatius
12
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Operaciones de E/S síncronas
• Cuando se ejecuta la siguiente instrucción de la llamada, ésta ha terminado
• Mientras se lleva acabo toda la operación, el proceso permanece bloqueado
• inicio de la multiprogramación: aprovechar ese tiempo
• No tiene sentido hablar de “escritura síncrona”
leer()
tiempo de
espera (bloqueo)
inicio_servicio():
verificar parámetros
comprobar operación
lanzar la E/S (bajo nivel, controlador,...)
rutina_servicio_int()
recoger servicio...
mirar estado
devolver resultado
Introducció als Sistemes Operatius
13
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Operaciones de E/S asíncronas
• El SO toma nota de la petición y devuelve el control al programa
• El programa continúa y no se sabe en qué momento finaliza la operación
• Es necesaria una operación de sincronización
• para tener la certeza de utilizar un dato correcto
• Es necesario un identificador de la petición
• Un mismo programa puede tener varias peticiones pendientes
• El orden de finalización de las peticiones, dependerá de las políticas de servicio
• prioridad a trabajos más cortos (ej.: impresoras, red)
• acceso a sectores cercanos del cabezal de disco
• prioridad de operación (escribir en pantalla versus echo de lectura),...
Introducció als Sistemes Operatius
14
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Operaciones de E/S asíncronas
leer()
el programa
continua su
ejecución
inicio_servicio():
verificar parámetros
comprobar operación
lanzar la E/S (bajo nivel, controlador,...)
vuelta al programa
rutina_servicio_int()
mirar estado
devolver resultado
Introducció als Sistemes Operatius
recoger servicio...
15
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Operaciones de E/S asíncrona
id1 = read(0,&buf,1);
id2 = read(5,&reg,tam_reg);
.............
res = io_wait(id2);
.............
res = io_wait(id1);
Ejemplo en UNIX
fcntl(pip[0],O_NDELAY,1);
while (0 = read(pip[0],&reg,tam_reg))
{
................
};
Introducció als Sistemes Operatius
16
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Algunas técnicas para optimizar la E/S
• Buffering:
eliminar o reducir el tiempo de espera de los procesos por una E/S
• SPOOLING:
eliminar la espera por un dispositivo no compartible
Introducció als Sistemes Operatius
17
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Buffering
• Separar la petición de servicio de la operación de E/S, anticipando ésta
• Se hace la operación directamente sobre memoria (buffer)
• El SO se encarga de finalizar la operación
• Ejemplo: teclado (interrupciones type ahead)
• Se eliminan los picos en las peticiones de servicio
BUFFER
leer()
“A”
.....
no hay que esperar al
dispositivo, porque ya
está el dato en memoria
Introducció als Sistemes Operatius
se pulsa una tecla
antes de que la pida
el proceso
18
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Spooling
• Un dispositivo no compartible sólo puede ser utilizado por un proceso
• SPOOL: Simultaneous Peripheral Operations On Line
• Dar la apariencia a los procesos de trabajar cada uno con un dispositivo propio
• Se evita la espera por el dispositivo
• Ejemplo: impresión de ficheros
A
imprimir()
no se envía a la
impresora, sino
a un fichero en
disco (dispositivo compartible)
B
imprimir()
C
imprimir()
Introducció als Sistemes Operatius
la impresora estará
imprimiendo un fichero
de modo no compartible
19
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Utilización del buffering
• Dentro del Sistema Operativo:
• Se copia en unidades de transferencia de los dispositivos.
• En la librería del lenguaje:
• Se retarda una llamada al sistema hasta completar la unidad de transferencia.
read()
read()
petición al dispositivo
transferencia bloque disco
buffer
la siguiente lectura no necesita acceder al
dispositivo (no se hace E/S)
Introducció als Sistemes Operatius
20
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Utilización del buffering
scanf()
read()
petición al dispositivo
copia del buffer en el proceso
scanf()
transferencia bloque disco
buffer
la siguiente lectura no necesita
hacer ninguna llamada al sistema
Introducció als Sistemes Operatius
21
FIB Primavera 00
E/S Y SISTEMA DE FICHEROS
Correspondencia de servicios
• Una llamada a una función de librería:
- Una llamada al sistema
- Ninguna llamada al sistema (buffering)
- Varias llamadas al sistema
• Una llamada al sistema:
- Una transferencia de E/S
- Ninguna transferencia de E/S
- Varias transferencias de E/S
Introducció als Sistemes Operatius
22
FIB Primavera 00
SISTEMA DE FICHEROS
Algunas definiciones
• FICHERO: colección de bits con un nombre, almacenado en un medio.
• REGISTRO (record): grupo de bytes o palabras tratados como unidad lógica
• una línea de texto,
• un array de números, ...
R. de longitud fija: contienen datos exclusivamente, que han de adaptarse
al tamaño determinado.
R. de longitud variable: tienen una cabecera con información, o bien una
marca especial al final.
Introducció als Sistemes Operatius
23
FIB Primavera 00
SISTEMA DE FICHEROS
Algunas definiciones (y 2)
• BLOQUE (block): grupo de bits tratado como unidad por rutinas de bajo nivel
y/o el disco. También se conocen como registros físicos.
• BLOQUEO: transferencia de un grupo de registros como unidad, por eficiencia
(a veces, por necesidad).
Implícito: el software de bajo nivel mapea los registros de un fichero en
bloques físicos, de modo transparente a los programas (ej. UNIX).
Explícito: los programas pueden ver el bloqueo y seleccionarlo (OS/360)
Introducció als Sistemes Operatius
24
FIB Primavera 00
SISTEMA DE FICHEROS
Acceso a los ficheros
• ENTRADA: lectura del fichero sin modificación.
• SALIDA: generación de un fichero.
• ACTUALIZACIÓN: modificación de información del fichero.
• AÑADIR: se extiende el fichero a partir del final.
- Pueden hacerse combinaciones entre ellas:
• leer y actualizar, etc.
Introducció als Sistemes Operatius
25
FIB Primavera 00
SISTEMA DE FICHEROS
Patrón de acceso a los ficheros
• SECUENCIAL: un registro tras otro (es el más frecuente).
• DIRECTO O ALEATORIO: un registro concreto.
• INDEXADO O POR CLAVE: un registro a partir de un valor.
La mayoría de los SO permiten la mayoría de tipos de ficheros y patrones
de acceso.
Introducció als Sistemes Operatius
26
FIB Primavera 00
SISTEMA DE FICHEROS
Más definiciones
• SISTEMA DE FICHEROS: Mecanismo que permite acceder a un fichero por un
nombre.
f(nombre) = fichero
Es lo que se conoce como espacio de nombres
• Además, concierne al SF:
- la protección,
- la fiabilidad y
- la gestión del disco (medio de almacenamiento)
Está relacionado con el formateo del disco
Introducció als Sistemes Operatius
27
FIB Primavera 00
SISTEMA DE FICHEROS
Más definiciones (y 2)
• DIRECTORIO: estructura de datos que proporciona la información necesaria
para el mapeo nombre-fichero.
• DESCRIPTOR DE FICHERO: estructura de datos para localizar dónde están los
datos de un fichero.
Los directorios y descriptores de ficheros contienen otra información que
varía de sistema a sistema.
Introducció als Sistemes Operatius
28
FIB Primavera 00
SISTEMA DE FICHEROS
Asignación en disco
El descriptor de fichero contiene información para hacer el mapeo bloque lógicobloque físico, permitiendo que los ficheros sean independientes del dispositivo
y de la posición.
Características:
- La mayoría de los ficheros son pequeños,
- la mayor parte de espacio la ocupan ficheros grandes,
- la mayor parte de la E/S es de los ficheros grandes.
Por tanto, el rendimiento de los ficheros grandes es importante:
- el coste por fichero ha de mantenerse bajo,
- el acceso aleatorio ha de ser razonablemente rápido,
- el crecimiento de un fichero ha de ser fácil y eficiente.
Introducció als Sistemes Operatius
29
FIB Primavera 00
SISTEMA DE FICHEROS
Diseño de un Sistema de Ficheros
• Modelo para el usuario (Sistema Lógico de ficheros)
• Correspondencia del modelo
Dispositivo físico
S
L
F
SISTEMA DE
D
FICHEROS
F
• El SLF es lo que vemos
Introducció als Sistemes Operatius
30
FIB Primavera 00
SISTEMA DE FICHEROS
Sistema “lógico” de ficheros
• Definición de un fichero y sus atributos
• Operaciones permitidas sobre un fichero
• Estructura de directorio
CARACTERÍSTICAS BÁSICAS DE UTILIZACIÓN
• Referencia mediante nombre simbólico (espacio de nombres)
• Ocultación de las características de los dispositivos
• Operaciones (creación, borrado, lectura, escritura,...)
• Alta fiabilidad
• Compartición y protección
Introducció als Sistemes Operatius
31
FIB Primavera 00
SISTEMA DE FICHEROS
Asignación en disco
• La información se asigna en bloques de tamaño fijo
- coincide con la unidad -o múltiplo- de L/E
- la numeración de los bloques depende del dispositivo
(ej. CARA, PISTA, SECTOR)
1
Introducció als Sistemes Operatius
2
3
32
FIB Primavera 00
SISTEMA DE FICHEROS
Asignación en disco
• Contigua
- fragmentación externa
- crecimiento de un fichero
- compactar
DIRECTORIO
doc
1
2
resum
13
Introducció als Sistemes Operatius
3
fff
10
ARCHIVO
INICIO LONG.
doc
1
2
fff
10
2
resum
13
3
11
33
FIB Primavera 00
SISTEMA DE FICHEROS
Asignación en disco
• Enlazada
- acceso secuencial
- espacio para un puntero en cada bloque de datos
- fiabilidad (dañar un bloque es perder el puntero al resto)
doc
1
2
3
DIRECTORIO
10
13
Introducció als Sistemes Operatius
11
ARCHIVO
INICIO
doc
1
FIN
3
34
FIB Primavera 00
SISTEMA DE FICHEROS
Asignación en disco
• Indexada
- cada fichero tiene un bloque de índices
- bloques de punteros
- tamaño del fichero (número de índices)
DIRECTORIO
ARCHIVO
doc
doc
1
2
Introducció als Sistemes Operatius
18
3
10
13
B. DE INDICES
11
18
1
13
10
3
-1
35
FIB Primavera 00
SISTEMA DE FICHEROS
UNIX
• Asignación de disco indexada (i-nodes)
• Bloques libres enlazados.
Bloques de datos (y índices)
Boot
area
Introducció als Sistemes Operatius
Superblock
Lista de
i-nodes
36
FIB Primavera 00
SISTEMA DE FICHEROS
Superblock
• Fecha de creación.
• Tamaño en bloques del sistema de ficheros (!no área de swapping!)
• Tamaño en bloques de la lista de inodes.
• Número de bloques libres y de inodes.
• Puntero a primer bloque libre.
• Bit map de inodes.
Introducció als Sistemes Operatius
37
FIB Primavera 00
SISTEMA DE FICHEROS
Inodes
• Dispositivo en el que se encuentra.
• Número de links (nombres) del fichero.
• uid y gid del propietario.
• Tamaño del fichero.
• Tiempos de creación, último acceso, última modificación (versión).
• 10 punteros a bloques de datos (acceso directo).
• 1 puntero a un bloque de punteros (indirección).
• 1 puntero a un bloque de punteros a bloques de punteros (doble indirección).
• 1 puntero con triple indirección.
El tamaño del fichero afecta a su tiempo de acceso!!
Introducció als Sistemes Operatius
38
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Un ejemplo: UNIX
• Sistema de ficheros jerárquico con una única raíz.
• Espacio de nombres único para ficheros y dispositivos.
• Un fichero (i-node) puede tener varios nombres (paths o links).
• Todos los accesos son secuenciales.
• Todas las operaciones se realizan con buffering (buffer cache de disco)
Introducció als Sistemes Operatius
39
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Sistema jerárquico
• Existe un único directorio raíz: “/”
• Se montan diversos (sub)sistemas de ficheros para poder acceder a sus ficheros.
/
fs0
usr
sys
dev
etc
bin
fs0 fs1
fs1
/
local
Introducció als Sistemes Operatius
adm
mount /dev/fs1 /usr
users
bin
40
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Espacio de nombres único
• Unix permite cuatro tipos de ficheros:
• ordinarios (datos, ejecutables, de comandos,...)
• directorios (qué inode corresponde a cada nombre)
• dispositivos (información sobre modo de acceso, tipo,...)
• especiales (FIFOS, sockets, streams, soft-links,...)
• Todos los ficheros se nombran igual: a través del path
/
usr
sys
dev
etc
bin
dsk
local
adm
users
ana
bin
cp vi
res.doc
/dev/dsk
/usr/bin/vi
/usr/users/ana/res.doc
/etc
Introducció als Sistemes Operatius
41
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Nombres de un fichero
• El nombre de un fichero puede darse de modo
- absoluto (desde la raíz), o
- relativo (desde el directorio actual, u otro intermedio)
• Un fichero puede tener diferentes nombres (path distintos)
- hard link: contabilizado en el i-node del fichero
- soft link: fichero especial con el path absoluto al fichero
/
sys
usr
local
adm
dev
etc
bin
dsk
users
soft-link
bin
ana pepe
res.doc
ff
hard-link
tabla de i-nodes
Introducció als Sistemes Operatius
42
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
El fichero UNIX: el i-node
• Su número es local al SF: desde 1 hasta el máximo formateado.
• Tiene toda la información sobre el fichero y los punteros de acceso a sus datos.
• Cada fichero puede tener más de un nombre (path).
• A cada fichero corresponde un único i-node.
• en el i-node está el número de links (paths) que apuntan a ese fichero.
/usr/users/ana/res.doc
/usr/users/pepe/ff
inode 23
links 2
uid ana
gid iso
tamaño 380
.......
punteros
i-node
• Borrar un fichero es borrar su path
• decrementar el número de links del i-node
• si no quedan más nombres al fichero, borrar de disco
Introducció als Sistemes Operatius
43
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Hard versus soft link
• Hard link: diversos nombres para un mismo fichero
- el path ha de estar en el mismo SF (el número de inode es local)
- toda modificación desde un nombre es visible automáticamente al resto
• el inode es único
• Soft link:referencia a otro fichero
- permite “atravesar” diferentes SF y referenciar a cualquier fichero
- tiene un inode propio, diferente al del fichero referenciado
• montar en un directorio diferente
• borrar el fichero original....
- es útil para ficheros estables, software de sistema
Introducció als Sistemes Operatius
44
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Operaciones de E/S en UNIX
• Las llamadas al sistema trabajan con canales virtuales.
• Cada proceso tiene una tabla de canales propia, en su PCB (Process Control Block)
• Un canal se conoce también como descriptor de fichero.
• Cuando se abre un fichero (open):
- se realiza el mapeo canal virtual- fichero
- se trae a memoria la información del fichero (i-node)
- se inicializa el puntero de L/E.
- se actualiza la TC, la TFA, la in-core inode table.
proceso 1
TFA (open table)
links ptro L/E acceso i-node
2
10
rw
7
r
in-core inode table
opens
2
T.C.
proceso 2
1
T.C.
• Al crear un proceso, se incrementa el número de links de la TFA
Introducció als Sistemes Operatius
45
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Buffer cache
• Zona de memoria donde se mantienen lógicamente algunos bloques de disco
• Cuando se accede a disco, si el bloque está en memoria, no se va a disco
• Cada 30 s se hace una actualización al disco (también de la in-core inode table)
• programa update
• llamada al sistema sync()
• Mejora el rendimiento de la E/S
• acceso a disco: orden de milisegundos
• acceso a memoria: orden de microsegundos
• Políticas de mantenimiento de memoria cache (write-behind)
• Peligro de corrupción del SF cuando el sistema falla
• Tamaño habitual puede ser un 10% de la memoria física
Introducció als Sistemes Operatius
46
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Llamadas al sistema
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
int open(const char *path, int oflag[,mode_t mode])
int creat(const char *path,mode_t mode)
int open(path,O_WRONLY | O_CREAT | O_TRUNC, mode)
• Ejemplo:
fd = open(“entrada”, O_RDONLY)
TFA (open table)
proceso 1
links ptro L/E acceso i-node
2
1
10
rw
0
r
~marisa
1
entrada
fd
T.C.
in-core i. t.
• fd es el menor descriptor de fichero libre para ese proceso.
• El número de canales abiertos por proceso es limitado (config.).
• En DEC OSF/1, el mínimo es 64.
Introducció als Sistemes Operatius
47
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
#include <unistd.h>
ssize_t read(int fildes,void *buffer,size_t nbytes)
ssize_t write(int fildes,void *buffer,size_t nbytes)
• Ejemplo:
res = read(fd,&c,sizeof(char))
r
ptro
L/E
(comprobar que el
modo de acceso está
permitido)
fd
2 bytes
bloque de
datos
Introducció als Sistemes Operatius
48
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Otras llamadas al sistema
#include <unistd.h>
int pipe(int filedes[2])
• Ejemplo:
res= pipe(&pp);
proc 1
pp[0]
pp[1]
r
w
ptr L/E
TFA
ptr L/E
leer de la pipe
escribir en
la pipe
• No es visible en el espacio de nombres
• Se hereda de padres a hijos (copia de la tabla de canales)
int mknod(const char *path, int mode, dev_t device)
Introducció als Sistemes Operatius
49
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Otras llamadas al sistema
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
int dup(int filedes )
• Ejemplo:
1
r
ptro
L/E
r
ptro
L/E
fd
i = dup(fd);
2
fd
i
• Se asigna el primer descriptor de fichero libre.
• Útil en la redirección de los canales estándar.
Introducció als Sistemes Operatius
50
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Otras llamadas al sistema
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fildes, off_t offset, int whence)
WHENCE = SEEK_SET
WHENCE = SEEK_CUR
WHENCE = SEEK_END
• Permite emular acceso directo a los ficheros.
• No extiende el tamaño del fichero (posteriores escrituras)
• Las constantes SEEK_SET... están definidas en unistd.h
SEEK_CUR
SEEK_SET
+
Introducció als Sistemes Operatius
-
puntero
de L/E
SEEK_END
+
-
+
51
FIB Primavera 00
SISTEMA DE FICHEROS DE UNIX
Otras llamadas al sistema
int ioctl(int fildes, int request, /* arg */ ...)
int fcntl(int fildes, int cmd, /* arg */ ...)
int link(const char *existing, const char *new)
int unlink(const char *path)
int chmod(const char *path, mode_t mode)
int mkdir(const char *path, mode_t mode)
int rmdir(const char *path)
Introducció als Sistemes Operatius
52
FIB Primavera 00
PROTECCION Y SEGURIDAD
Fiabilidad del sistema de ficheros
• El Sistema de Ficheros está en uso constante.
• Los datos almacenados en los ficheros pueden ser más importantes que el propio
sistema.
• Es importante proporcionar:
• FIABILIDAD (la información está disponible y es precisa)
• ROBUSTEZ (los errores se detectan y corrigen en lo posible)
Redundancia
Backups (totales e incrementales)
Introducció als Sistemes Operatius
53
FIB Primavera 00
PROTECCION Y SEGURIDAD
Backups (copias de seguridad)
• TOTAL
Copia periódica de los ficheros en cinta u otro medio de almacenamiento.
• INCREMENTAL
Copia de los ficheros que han sido modificados desde el último backup
total.
La frecuencia de backups depende del tipo de trabajo de los usuarios.
Introducció als Sistemes Operatius
54
FIB Primavera 00
PROTECCION Y SEGURIDAD
Protección de ficheros
Definición:
Mecanismo para activar y permitir sólo determinados accesos a ficheros.
• OBJETIVO:
Evitar destrucciones o modificaciones accidentales.
Evitar acciones maliciosas.
Restringir el acceso a los ficheros.
• ELEMENTOS:
Identificación de usuarios.
Determinación de autorizaciones.
Control de acceso.
Introducció als Sistemes Operatius
55

Documentos relacionados