Implementation of directories :

ICS 143 12 Implementation of directories what information to keep in each entry
only symbolic name and pointer to descriptor
needs an extra disk access to descriptor
all descriptive information
directory can become very large
how to organize entries within directory
fixed-size array of slots or a linked list
easy insertion/deletion
search is sequential
hash table
B-tree

Distributed file systems :

ICS 143 22 Distributed file systems directory structures differentiated by:
global/local naming:
single global structure or different for each user
location transparency:
does the path name reveal anything about machine or server
location independence
when a file moves between machines, does its path name change

Global directory structure :

ICS 143 23 Global directory structure combine local directory structures under a new common root
Figure 10-14(a,b)
problem: using “/” for new root invalidates existing local names
solution (Unix United):
use “/” for local root
use “..” to move to new root
Example: reach u1 from u2:
../../../S1/usr/u1 or /../S1/usr/u1
names are not location transparent

Local directory structures :

ICS 143 24 Local directory structures mounting
subtree on one machine is mounted over a directory on another machine
contents of original directory invisible during mount
structure changes dynamically
each user has own view of FS
Figure 10-14c

Shared directory substructure :

ICS 143 25 Shared directory substructure each machine has local file system
one subtree is shared by all machines
Figure 10-14d

Implementing DFS :

ICS 143 30 Implementing DFS stateless versus stateful server
stateful: maintain state of open files
Figure 10-16a
client passes commands and data between user process and server
problem when server crashes:
state of open files is lost
client must restore state when server recovers