mà đơn giản chỉ cần gọi hai dòng trình tự trước đó cho thấy. Sau khi người gọi đã kết thúc với bộ đệm, một cuộc gọi được thực hiện để brelse (), trong đó có bộ đệm và đặt nó ở mặt sau của freelist. Điều này đảm bảo rằng bộ đệm miễn phí lâu đời nhất sẽ được bố trí đầu tiên. | 162 UNIX Filesystems Evolution Design and Implementation i_dinode. After a file is opened the disk inode is read from disk into memory and stored at this position within the incore inode. Unlike the SVR4 page cache where all files effectively share the virtual address window implemented by the segmap driver in AIX each open file has its own 256MB cache backed by a file segment. This virtual window may be backed by pages from the file that can be accessed on a future reference. The gnode structure contains a number of fields including a reference to the underlying file segment g_type. This field specifies the type of file to which the gnode belongs such as a regular file directory and so on. g_seg. This segment ID is used to reference the file segment that contains cached pages for the file. g_vnode. This field references the vnode for this file. g_filocks. For record locks there is a linked list of filock structures referenced by this field. g_data. This field points to the in-core inode corresponding to this file. Each segment is represented by a Segment Control Block that is held in the segment information table as shown in Figure . When a process wishes to read from or write to a file data is accessed through a set of functions that operate on the file segment. File Access in AIX The vnode entry points in AIX are similar to other VFS vnode architectures with the exception of reading from and writing to files. The entry point to handle the read S and write S system calls is vn_rdwr_attr through which a uio structure is passed that gives details on the read or write to perform. This is where the differences really start. There is no direct equivalent of the vn_getpage vn_putpage entry points as seen in the SVR4 VFS. In their place the filesystem registers a strategy routine that is called to handle page faults and flushing of file data. To register a routine the vm_mounte function is called with the strategy routine passed as an argument. Typically this routine