File read and write operations

When user applications initiate read on a file with appropriate arguments, the underlying filesystem's read routine is invoked. Operations begin with a lookup into the file's data block map to locate the appropriate data disk sector to be read; it then allocates a page from the page cache and schedules disk I/O. On completion of I/O transfer, the filesystem moves requested data into the application's buffer and updates the file offset position in the caller's file descriptor structure.

Similarly, the write operation of the filesystem retrieves data passed from user buffer and writes it into the appropriate offset of file buffer in the page cache, and marks the page with the PG_dirty flag. However, when the write operation is invoked to append data at the end of the file, new data blocks might be required for the file to grow. The filesystem looks for free data blocks on disk, and allocates them for this file, before proceeding with write. Allocating new data blocks would need changes to the inode structure's data block map and allocation of new page(s) from page cache mapped to the new data blocks allocated.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.40.207