RSS Feed for Operating System Interview QuestionsCategory: Operating System Interview Questions

How to identify the difference between the kernel object and user object? »

The easiest way to determine whether an object is a kernel object is to examine the function that creates the object. Almost all functions that create kernel objects have a parameter that allows you to specify security attribute information.

Which is the data member common to all the kernel object and what is the use of it? »

The usage count is one of the data members common to all kernel object types

How does the kernel object outlive the process that created it? »

If your process calls a function that creates a kernel object and then your process terminates, the kernel object is not necessarily destroyed. Under most circumstances, the object will be destroyed; but if another process is using the kernel object your process created, the kernel knows not to destroy the object until the other process [...]

How owns the Kernel Object? »

Kernel objects are owned by the kernel, not by a process

If we cannot alter these Kernel Object structures directly, how do our applications manipulate these kernel objects? »

The answer is that Windows offers a set of functions that manipulate these structures in well-defined ways. These kernel objects are always accessible via these functions. When you call a function that creates a kernel object, the function returns a handle that identifies the object.

User can access these kernel objects structures? »

Kernel object data structures are accessible only by the kernel

What is a kernel object? »

Each kernel object is simply a memory block allocated by the kernel and is accessible only by the kernel. This memory block is a data structure whose members maintain information about the object. Some members (security descriptor, usage count, and so on) are the same across all object types, but most are specific to a [...]

What are kernel objects? »

Several types of kernel objects, such as access token objects, event objects, file objects, file-mapping objects, I/O completion port objects, job objects, mailslot objects, mutex objects, pipe objects, process objects, semaphore objects, thread objects, and waitable timer objects.