Here you will get list of 60+ commonly asked operating system interview questions and answers. These OS questions are helpful for freshers as well as experienced.
1. What is
operating system?
Operating system can be
defined as an interface between user’s program and hardware.
2. What is
main purpose of operating system?
The main purpose of OS is to
manage hardware and software resources and provides common services for our
programs. It provides a suitable platform to execute our program (jobs).
3. What are
different types of operating system?
There are generally two types
of operating system which are as follows:
- Batch Operating System.
- Multi-programming
Operating System
Now this Multi-programming
Operating System can be broadly classified as:
- Multitasking
Operating System
- Multiprocessing Operating
System
- Real Time Operating
System
4. What are
different components of operating system?
The main components of
operating system are:
- Kernel
- Process Management
- File System
- Memory Management
- I/O Management
Thus operating system is not
an individual component but it has may sub components as stated above which makes
our job easier.
5. What are
the goals of OS?
Basically, there are two goals
of Operating System, those are:
- Primary: Convenience
- Secondary: Efficiency
6. Explain
the different types of Operating System?
- Batch Operating System:
In this type of Operating
System all the jobs are submitted to computer at once and are executed in the
order of submission without any preemption (means no job can be taken out until
they complete).
- Multi-programming
Operating System
It’s an extension of Batch OS
where several jobs would be in the main memory at once and would be executed in
some order for some specified amount of time.
Now we will look into its sub
types:
- Multi-tasking Operating
System:
In this type of Operating
System more than one task are executed simultaneously on a single processor
machine. In fact, there is a switching of CPU among the processes (jobs) at a
very sharp pace that it seems to done parallel to the end user.
- Multiprocessing Operating
System:
It is the ability of an operating
system to execute more than one process simultaneously on a multi-processor
machine. In this, a computer uses more than one CPU at a time.
- Real Time Operating
System:
In such operating System there
is a specified time allotted for each job. It’s useful in critical application
like military, satellite etc.
7. What is
kernel?
Kernel is the core part of the
Operating System responsible for managing the communication between the
software (user level applications) and the hardware (CPU, disk memory etc.).
The main tasks of the kernel are:
- Process management
- Device management
- Memory management
- Interrupt handling
- I/O communication
- File system etc.
8. What are
different types of kernel?
We have three important types
of kernel named:
- Monolithic Kernel:
It can be seen as a whole
kernel that is full-fledged kernel, with all the services running.
Example: UNIX
- Micro Kernel:
It is kernel with a limited
service that is with some important services running.
Example: QNX-real time OS
- Hybrid Kernel:
It combines the aspect of both
monolithic as well as micro kernel.
Example: Microsoft NT kernel
9. What is
user space and kernel space?
These are two important region
of a memory.
User space: It is a region of
memory where normal user processes run (i.e. everything other than Kernel).
Kernel space: It is a region
of memory where code of kernel resides and executes. It is considered to be
privileged part of a memory invoked by system calls. It is also known as System
space.
10. What is
process?
A running program is called as
a process or it’s an active instance of program that is under execution.
A process is an entity created
by Operating system to execute the program.
In Linux, we can use “ps”
command to see running process.
Example: Any .exe in windows OS
is a process like skype.exe etc
11. What are
different type of process?
There are two types of process
that is (i) user space process and (ii) Kernel space process.
12. What is
difference between a program and a process?
A program is a set
of instructions that are to perform a designated task, whereas
the process is an operation which accepts the given instructions and
perform the task as per the code, called ‘execution of instructions.
Thus, a program is a passive
entity residing at secondary memory and a process is an active entity residing
in the main memory.
13. Explain
the different states of a process?
A process can go through
following states in its life cycle:
- New: This is the first state when a process is created or just started. It resides in secondary memory.
- Ready: This state signifies that the process is ready to be assigned to the processor that is ready to execute.
- Running: This state signifies that process has been given to the processor and its instruction are getting executed.
- Waiting: This state signifies that a process is waiting for some kind of resource or an event be it a user input or waiting for any file to become available.
- Terminated: The process can be terminated
normally or abnormally. Normal termination means that
process has done with its complete execution whereas abnormal means that
process has been terminated without completing its task.
Note: Any process has to go minimum four states (new->ready->running->terminated).
14. Which is
the first process to be created by OS?
Init process is the first
process to be created by OS. It provides the environment for the other process
to be created later.
15. How are
process identified?
Any process can be identified
by a term called its id that is process id (pid).
16. What is
fork ()?
Fork is a system call which is
responsible for creating a copy of a current process. The current process is
termed as parent process and the created process is termed as child process.
On success it returns Pid of
the child process to parent’s process and Zero is returned to child process.
17. What is
system call?
It’s like a way by which any
user level program asks for the services offered by a kernel.
It acts as an interface
between a process and the operating system.
18. What is
program counter?
It a pointer which points to
the next instruction to be executed by a compiler.
19. What are
the different attributes of a process?
Some of the important
attributes of a process are:
- Process id (Pid)
- Parent process id (PPid)
- Process state
- Scheduling parameter
- Program counter and
different registers.
This is also referred as
context of a process.
20. What is
Process control Block (PCB)?
It is like a data structure
which hold all information (attributes) of a process.
21. What are
different section of a process?
There is four important
section of a process as stated below:
- Stack: contains local variables,
returns address
- Heap: Dynamically
allocated memory via malloc, calloc, realloc
- Data: contains global and
the static variables
- Code or text: contains
code, program counter and content of processor’s register.
Note:
- Stack and the Heap
section are extensible that is stack can grow down and heap can grow up.
- It is in the same order
as mentioned above.
22. What is context
switching?
It is switching of a processor
from one process/thread to another. It is also called Task switch or process
switch.
23. What is
inode?
Inode is a data structure
which holds all the attributes of a file. It is also called index number.
Some of the attributes of file
are:
- File type
- Permission
- File size
- Time when last it is
modified
Note: Please while reading
thread concept, try to relate all this with process, thread will have its own,
all those attributes as that of a process like its id(tid), scheduling
parameter/policy etc. and concept like context switching, different
section etc. Thus, try to relate all thread’s concept with that of a process.
24. What is
thread?
Thread is a concurrent unit of
execution within a process. A process can have multiple threads where each
thread can perform a different task independently, thus increasing the
efficiency of a process. A process always has one thread by default called main
thread which is executed first.
Example:
- Word processor, a
background thread may check spelling and grammar while a foreground thread
processes user input (keystrokes).
- Web server – Multiple
threads allow for multiple requests to be served simultaneously, without
having to service requests sequentially.
25. State
the benefits of a thread?
Some of the common advantages
associated with threads are:
- Responsiveness: A process with thread are said to be more responsiveness than a process without thread because even if one thread is blocked or waiting for some resources the other thread still continue to function.
- Lighter: A thread is considered to be lighter than a process in terms of resource sharing and run time overhead. Most of the resource of a process are shared by all its thread making it lighter.
- Throughput: It improves the throughput of a multi threaded application, multiprocessor environment.
- Economy: Creating and managing thread is much faster (context switching is faster) than performing same task for processes.
26. State
the disadvantages associated with thread?
- Robustness: It’s not as robust as process since if any one thread is terminated abnormally, it leads to entire process termination. Thus, many RTOS (Real Time Operating System) application uses processed over threads.
- Increased Complexity: It is more complex than a process in terms of synchronization overhead.
27. What is
difference between a process and a thread?
Process |
Thread |
Process is used for
heavyweight task |
Threads are used for small
task(lightweight) |
Processes are less
responsive than threads |
Threads are more responsive
than process |
Processes are more robust
than threads |
Threads are less robust |
Each process will have its
own address space. |
Threads are within a process
thus share same address space(memory) |
Processes have less synchronization
overhead since all have separate address space(memory) |
Since they share same
address space, synchronization is more overhead than process |
28. What are
different types of threads?
There are two types of
threads:
- User level thread: java thread
- Kernel level thread:
POSIX thread.
29. What is
scheduler?
It is one of the components of
kernel responsible for scheduling that is deciding when to run which process.
30. What are
different types of scheduler?
There are three types of scheduler:
- Long Term scheduler: It is also called job scheduler responsible for selecting processes from queue (job pool/secondary memory) and loading them to main memory for execution.
- Short term scheduler: It is also called CPU scheduler responsible for selecting a process among processes that are ready to execute and allocate CPU to one of them. This is nothing but a change of state of process from ready to running state. It is also called dispatcher.
- Medium term scheduler: It is also called swapper responsible for swapping a process from main memory to secondary memory in case if some high priority process needs to be given chance for execution. It reduces the degree of multi-programming (many processes in main memory).
31. What is
preemptive and non-preemptive scheduling algorithm?
A scheduling algorithm
is pre-emptive if, once a process has been given the CPU can take
away. The strategy of allowing processes that are logically run able to be
temporarily suspended is called Pre-emptive Scheduling and allowing
the process to run till completion is called non-pre-emptive scheduling.
32. What are
different types of scheduling algorithm?
There are four different types
of scheduler:
- First come First serve (FCFS):
First came process is served first
- Round Robin (RR): Each
process is given a quantum amount of time
- Shortest job first (SJF):
Process with lowest execution time is given first preference
- Priority scheduling (ps):
Priority value called (nice value) is used for selecting process. Its
value is from 0 to 99. 0 being max and 99 being least.
33. What are
different performance metric for scheduler?
There are five performance metrics
for scheduler, those are as follows:
- CPU Utilization: Percentage of time that the CPU is doing useful work (I.e. not being idle). 100% is perfect.
- Wait time: Average time a process spends for its turn to get executed.
- Throughput: Number of processes completed / time unit.
- Response Time: Average time elapsed from when process is submitted until useful output is obtained.
- Turnaround Time: Average time elapsed from when process is submitted to when it has completed.
34. What is
daemon process?
A daemon process is one which
runs at the background unlike the other foreground processes without the
intervention of the user. It ends with “d”.
Example: crond is a daemon
process in Linux operating system which is responsible for scheduling of an
event like sending packets statistics at every 1 hours to server can be done
with the help of crond daemon process.
35. What are
different types of process in Linux?
There are three different
types of process in Linux, those are:
- Interactive-Foreground
- Batch
- Daemon-Background
36. What is
deadlock?
A deadlock is a situation
where two or more process or threads sharing the same resource are effectively
preventing each other from accessing the resource. In simple terms the resource
needed by one process/threads are being used by others and so on, thus none of
the process can continue executing leading to deadlock.
37. What are
the conditions required for deadlock to happen?
There are four conditions
required for deadlock which are stated below
Mutual Exclusion: At least one
resource is held in a non-sharable mode that is only one process at a time can
use the resource. If another process requests that resource, the requesting
process has to wait till it is released.
Hold and Wait: There must
exist a process that is holding at least one resource and is waiting to acquire
additional resources that are currently being held by other processes.
No Pre-emption: Resources
cannot be pre-empted; that is, a resource can only be released after the
process has completed its task.
Circular Wait: There must
exist a set {p0, p1,…..pn} of waiting processes such that p0 is waiting
for a resource which is held by p1, p1 is waiting for a resource which is
held by p2,…, pn-1 is waiting for a resource which is held by pn and
pn is waiting for a resource which is held by p0.
Note: All the four conditions
mentioned above has to be satisfied for deadlock to happen.
38. What is
race condition?
Race condition is an
undesirable situation where two or more threads/process are trying to access
and change the value of data shared by them and the outcome of the operation
depends upon the order in which the execution happens.
Thus, it lead to data
inconsistency and loss of its value as both threads are racing to change/access
the shared data.
Example:
Assume x =5;
Thread 1
x =x+1;
write x;
Thread 2
x=x+10;
write x;
Assume just before first write
the first thread is suspended and control comes to second thread thus it
increments the value of x by 10 and writes the value that is now x becomes 15.
In this case we can see that
value of x depends upon the order in which the thread executes and the first
value of x is lost that x=x+1=5+1=6. Thus, there is clear inconsistency among
the value of x because of race condition. Here x is the shared variable among
both the threads upon which both are racing to access/update its value. To
avoid such inconsistencies, we need a proper synchronization mechanism like
semaphore, mutex.
39. What is
Zombie process?
A zombie process also called
defunct process is one which has completed its execution and is in terminated
state but still has entry in the process table. It is denoted by “Z”. It shows
that still the resources held by process are not freed upon termination.
It is dangerous because at one
point of time system may run out of memory.
40. What is
synchronization?
As the name suggest it means a
proper co-ordination among processes while running in terms of resources. It
means sharing system resources by a process in such a way that concurrent
access to shared data is handled thereby minimizing the chance of inconsistent
data as we saw in Race condition.
41. What are
different synchronization mechanism?
Some of the common
synchronization mechanism are:
- Semaphore
- Mutex
42. What is
semaphore?
Semaphore is one of the
simplest synchronization mechanisms used to control access to a common resource
by multiple processes in a concurrent system such as a multi-programming
operating system.
It’s a variable with a value
range between 0 to N where N = maximum resources -1;
43. What are
different types of semaphore?
There are two types of
semaphore, those are:
- Binary Semaphore: Semaphore which can have only two values either 0 or 1. It is also called Boolean semaphore controlling/protecting just one resource.
- Counting Semaphore: Semaphore whose value can be in the range of 0 to n where n =max -1; where max is nothing but the maximum resource. When number of resources a semaphore protects is greater than 1, it’s called counting semaphore.
44. How is
synchronization achieved by semaphore or What are different operations
performed on semaphore variables?
There are two operations which
are performed on semaphore which helps in synchronization, those are:
- Wait: If the semaphore value is not negative, decrement the value by 1.
- Signal: Increments the value of semaphore by 1.
For example:
Say the value of semaphore
variable is initialized by 1 and if one process tries to use the shared
variable, it decrements the value by 1 and access it. In the meantime, if other
process attempts to access it, it finds the semaphore variable 0 thus has to
wait till the first process completes its task and increments the value back to
1.
Thus, form the above
explanation we can see that there is a proper synchronization (controlling one
process form another) avoiding any race condition.
45. What is Mutex?
Mutex is a locking mechanism
which allows only one process to access the resource at a time.
It stands for mutual exclusion
and ensure that only one process can enter the critical section at a time.
46. What is
critical section of code?
As the name suggest it is that
section or part of code which has variables or other resources which is being
shared by two process, and if allowed to access may lead to race condition. To
avoid this we need a Mutex which ensures only one process can enter the
critical section of code at a time.
47.
Differentiate between semaphore and Mutex?
Below stated are some
important difference held between Mutex and semaphore
Semaphore |
Mutex |
It is a synchronization mechanism |
It is a locking mechanism |
A Semaphore controls access to a shared pool of resources. It
provides operations to Wait () until one of the resources in the pool
becomes available, and Signal () when it is given back to the pool. |
A Mutex controls access to a single shared resource. |
The other process can also the release the lock held by others |
The process which has acquired the lock can only release the lock |
48. What do
you mean by virtual memory?
Virtual memory is a memory
management scheme used by operating system which allows a system to compensate
for the shortage of physical memory.
Virtual address space is
increased using active memory in RAM and inactive memory in hard disk drives
(HDDs) to form contiguous addresses that hold both
the application and its data.
49. What do
you mean by logical and physical address?
Logical Address: It can be defined as an address generated by CPU, later these addresses are mapped to physical address with the help of mechanism called paging.
Physical Address: It is nothing but the actual address that belongs to main memory where our program resides for execution.
50. What is
paging?
The mapping from virtual to
physical address is done by the memory management unit (MMU) which is a
hardware device and this mapping is known as paging technique.
It ensures that the physical
address of space to be non-contiguous. In this the virtual memory is divided
into fixed size pages and the physical memory is divided into equal size called
page frames.
51. What is
the size of each page?
The size of page is 4k.
52. What is
demand paging?
It is quite similar to a
paging system with swapping where pages are loaded into main memory only on
demand, till then the processes reside in secondary memory.
For any process to execute,
its pages are loaded into main memory, thus the entire page is not brought into
main memory rather the pages are loaded only on demand not in advance. This is
referred as demand paging.
Example:
We have a process responsible
for database function like insert, query, delete and thus it should be
understood that this process is divided into pages say one page for each
function and at certain point of time, it needs to perform query so there is no
point in loading the entire process (pages) rather just the page related to
query function.
53. What is
page fault?
As the name suggest, we are
looking for certain page in main memory and it is not found, its termed as page
fault else page hit.
54. What is
page replacement algorithm and name it?
As above we have seen that
there might be situation of page fault, in that case we need to bring that page
from secondary memory to main memory but if there is no room for new page in
the main memory, some page from the main memory has to be replaced with new
page form secondary memory. This is called page replacement and one of the
common algorithms is Least Recently Used (LRU) that is replace the page that
has been unused for longest time.
55. What is
cache?
Cache memory is a high-speed memory in
the CPU that is used for faster access to data. It provides the processor with
the most frequently requested data
56. What is
TLB?
It is a hardware cache
responsible for speeding up the translation of logical address to physical
address that is mapping between logical and physical address.
It contains the page table
entries which is most recently used, thus before looking into main memory for
page, TLB is searched if not found main memory lookup is done for required
page.
57. What is
fragmentation and state its types?
As we saw above that there is
frequent swapping of page in and out form memory, the free space in main memory
is broken into small pieces. It happens after sometime the processes cannot be
allocated to memory blocks considering their small size and memory blocks
remains unused. This problem is called fragmentation.
There are two types of
fragmentation:
- Internal fragmentation: Memory block assigned to process is bigger. Some portion of memory is left unused, as it cannot be used by another process.
- External fragmentation: Total memory space is enough to satisfy a request or to reside a process in it, but they are not contiguous, so it cannot be used.
58. What is
IPC and state some of them?
IPC means inter process
communication- process to process notification, process to process
synchronization which allows a programmer to coordinate activities among
different program processes that can run concurrently in an operating system
Some of the common IPC
mechanism are:
- Message Queue: A queue of messages that is maintained between processes used for exchange for messages and other important information among processes.
- Shared Memory: In this memory (page) is shared among the processes in user space and one process can write into it and other can read.
- Pipe: A pipe is a
technique for passing information from one program process to another.
Basically, a pipe passes a parameter such as the output of one
process to another process which accepts it as input.
Example:
ps –ef | grep “skype”
What it does that the output
of “ps –ef” is given as an input to “grep” command with the help of pipe and
“ps” is used in Linux to get the running process on system and “grep” is used
for search.
- Signal: Signals come under IPC mechanisms that are used for notification – notification can be process to process – notification can be system to process.
Kill is the command by which
one process can send a signal to other.
Syntax: kill
<signal_name> <process_id>
Example:
1) Kill SIGINT 1234
2) Kill SIGQUIT 1234
Each signal has its own
number.
Signal Name |
Signal Number |
Description |
SIGINT |
2 |
Issued if the user sends an interrupt signal (Ctrl + C) |
SIGQUIT |
3 |
Issued if the user sends a quit signal (Ctrl + D |
59. State the purpose of a signal?
Signals serves two important
purposes:
- To make a process aware that
a specific event has occurred
- To force a process to
execute a signal handler (customized/user) function included in user’s
code.
60. What is
interrupt?
An interrupt is a
signal to the processor which can be generated by hardware or a software indicating
an event that needs immediate attention. An interrupt indicates the
processor to a high-priority condition requiring the interruption of the
current task
61. What is
starvation and aging?
Starvation: Starvation is a resource management problem where a process is denied of resource or service for a long time or has been repeatedly denied services.
Aging: This is a solution to starvation which involves gradually increasing the priority of processes that wait in the system for a long time.
The aging factor must increase
the requests priority as time passes and must ensure that a request will
eventually be the highest priority request (after it has waited long enough)
and gets the chance to execute.
Note: It’s not same as deadlock.
No comments:
Post a Comment