Symbolic links also allow links to directories. Suppose a page is copied from one process P1 to another process P2. P1 and P2 can share the page until one of them actually modifies the page, at which point each process needs its own copy. When either process writes to the page, a protection fault occurs and a separate copy is created for the writing process. When a process forks a child process, the program's code and data segments and other data need to be copied to the child.
Fragmentation occurs when the blocks of a file are allocated randomly across the disk.
This is bad because seek operations will have to be performed frequently before being able to access the next file block. Frequent seeking reduces the disk throughput since no data is transferred during a seek. FFS uses several techniques to reduce fragmentation, i.e. to allocate file blocks contiguously as much as possible. Inodes are kept close to their file data blocks by allocating both from the same cyclinder group. In order to allocate file data blocks contiguously, FFS keeps a bitmap of free blocks on a per-cylinder group basis, which makes it easier to locate groups of contiguous free blocks.