UNIX Memory Management - Interview Questions II


Q. What are conditions on which deadlock can occur while swapping the processes?
1.    All processes in the main memory are asleep.
2.    All "ready-to-run" processes are swapped out.
3.    There is no space in the swap device for the new incoming process that are swapped out of the main memory.
4.    There is no space in the main memory for the new incoming process.

Q. What are conditions for a machine to support Demand Paging?
1.    Memory architecture must based on Pages,
2.    The machine must support the 'restartable' instructions.

Q. What is "the principle of locality"?
It's the nature of the processes that they refer only to the small subset of the total data space of the process. i.e. the process frequently calls the same subroutines or executes the loop instructions.

Q. What is the working set of a process?
The set of pages that are referred by the process in the last "n", references, where "n" is called the window of the working set of the process.

Q. What is the window of the working set of a process?
The window of the working set of a process is the total number in which the process had referred the set of pages in the working set of the process.

Q. What is called a page fault?
Page fault is referred to the situation when the process addresses a page in the working set of the process but the process fails to locate the page in the working set. And on a page fault the kernel updates the working set by reading the page from the secondary device.

Q. What are data structures that are used for Demand Paging?
Kernel contains 4 data structures for Demand paging. They are,
1.    Page table entries,
2.    Disk block descriptors,
3.    Page frame data table (pfdata),
4.    Swap-use table.

Q. What are the bits that support the demand paging?
Valid, Reference, Modify, Copy on write, Age. These bits are the part of the page table entry, which includes physical address of the page and protection bits.

Q. How the Kernel handles the fork() system call in traditional Unix and in the System V Unix, while swapping?
Kernel in traditional Unix, makes the duplicate copy of the parent's address space and attaches it to the child's process, while swapping. Kernel in System V Unix, manipulates the region tables, page table, and pfdata table entries, by incrementing the reference count of the region table of shared regions.

Q. Difference between the fork() and vfork() system call?
During the fork() system call the Kernel makes a copy of the parent process's address space and attaches it to the child process.
But the vfork() system call do not makes any copy of the parent's address space, so it is faster than the fork() system call. The child process as a result of the vfork() system call executes exec() system call. The child process from vfork() system call executes in the parent's address space (this can overwrite the parent's data and stack ) which suspends the parent process until the child process exits.

Q. What is BSS(Block Started by Symbol)?
A data representation at the machine level, that has initial values when a program starts and tells about how much space the kernel allocates for the un-initialized data. Kernel initializes it to zero at run-time.

Q. What is Page-Stealer process?
This is the Kernel process that makes rooms for the incoming pages, by swapping the memory pages that are not the part of the working set of a process. Page-Stealer is created by the Kernel at the system initialization and invokes it throughout the lifetime of the system. Kernel locks a region when a process faults on a page in the region, so that page stealer cannot steal the page, which is being faulted in.

Comments