Unix Kernel Support For Files
Unix Kernel Support For Files
TEAM MEMBERS
KHUSBHU D LAVANYA K P KEERTI PRIYA K KARTHIKA T BHANUPRAKASH 1CD09CS036 1CD09CS038 1CD09CS035 1CD09CS034 1CD09CS033
INTRODUCTION
In computing, the kernel is the main
actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources.
file to read or write ,it does following: 1. The Kernel will search the process File Descriptor table and look for the first unused entry. If an entry is found the entry will be designated to reference the file.
2. The Kernel will scan the File Table in its Kernel space to find an unused entry that can be assigned to reference the file. 3. If an unused entry is found, the following events will occur: a. The processs File Descriptor Table entry will be set to point to file table entry. b. The File Table entry will be set to point to the Inode Table entry.
c.
The File Table entry will contain the current file pointer of the open file. This is an offset from the beginning of the file where the next read or write operation will occur. d. The file table entry will contain an open mode that specifies that the file is opened for read-only, write-only, or read and write, etc.
e. The reference count in the File Table entry is set to 1.The reference count keeps track of how many file descriptors from any process are referencing the entry. f. The reference count of the in-memory Inode of the file is increased by 1.This count specifies how many file table entries are pointing to that Inode.
If either 1 or 2 points fails , the open function will return with a -1 failure status, and no file descriptor table or file table entry will be allocated.
xyz
rc=2 w, rc=1
abc
Above fig shows a processs file descriptor table(FDT), the kernel file table(FT), and the Inode table(IT) after the process has opened three files: xyz-for read-only, abc-for read-write, and abc-again for write only. Where as: rc=reference count r =read-only rw=read-write w=write-only
specifies how many file table entries are pointing to the file Inode record. If the count is not zero, it means that one or more processes are currently opening the file for access.
write) data from the file, it will use the descriptor as the first argument to read(or write) system call.
The kernel will use the file descriptor to
index the processs file descriptor table to find the pointer to the file table entry of the opened file.
compatible with the files open mode, the kernel will use the pointer specified in the file table entry to access the files Inode record(as stored in the Inode table).
When a process calls the close function to
1. The Kernel sets the corresponding file descriptor table entry to be unused. 2. It decrements the reference count in the corresponding file table entry by 1.if the reference count is still non-zero, goto step 6. 3. The file table entry is marked as unused. 4. The reference count in the corresponding file Inode table entry is decrement by 1. If the reference count is still non-zero, goto step 6.
5. If the hard-link count of the Inode is not zero, it returns to the caller with a success status. Otherwise it marks the Inode table entry as unused and deallocates all the physical disk storage of the file, as all the file path names have been removed by some process. 6. It returns to the process with a 0(success)status.
THANKYOU