Search This Blog

Monday 19 November 2012

Operating System Viva Questions

Operating System Viva Questions


Q.1 What is operating System?
Operating system is a set of programs which provides interface between the user and the hardware.

Q.2 Types of Operating System?
Classes of Operating System:-
       i. Batch Processing Systems
       ii. Multi Programming Systems
       iii. Times Sharing Systems
       iv. Real Time Systems
       v. Distributed Systems

Q.3 Difference between Multi-tasking and Multi-Programming?
Multi-Programming is a concept where CPU switches to another job after completion the first job. In Multi-Programming main memory contains number of jobs simultaneously.

Multi-Tasking is logical extension of Multi-Programming where CPU switches from job to job in a particular time interval.

Q.4 What is paging? Why it is used?
Paging is a memory management scheme. In Paging, each process consists of fixed-size components called pages. The size of a page is defined by the hardware of a computer. Paging is used to solve the memory allocation problem for processes.

Q.5 What is fragmentation? What are its types?
Fragmentation occurs in dynamic memory allocation system when many of the free blocks are too small to satisfy a request.
Types of fragmentation:-

       i. External Fragmentation
       ii. Internal Fragmentation

Q.6 What is Turnaround time, Response time, waiting time and through put?
Turnaround time: The time from submission of a job to the time when results become available to user.
Response time: The time when the process gets first response from the system.
Waiting time: The amount of time a process has been waiting in the ready queue.
Throughput: The average number of jobs, programs, processes subrequests completed by a system in unit time.

Q.7 What is context switch?
The task of saving the current state of the process on PCB (Process Control Block) and restoring or resuming some another process. Context switch may be because of some interrupts (Hardware/Software Failure).

Q.8 What are the reasons for process termination?
A process usually terminates when it finishes its task.
There may few other reasons as well:
a) When the task assigned to the process is no longer required.
b) When parent process is exiting and operating system doesn’t allow the child process to continue its work.

Q.9 What are process states?

New: The process is being created.

Running: Instructions are being executed.

Waiting: The process is waiting for some event to occur (such as an I/O completion or reception of a signal).

Ready: The process is waiting to be assigned to a processor.

Terminated: The process has finished execution.


Q.10 What is thread?
An execution of a program that uses the resource of a process is called thread.

Q.11 What is the difference between thread and process?
A thread differs from process in various ways few of them are as follows:

a) A process can contain more than on thread.
b) No resource is allocated to a thread.
c) Processes are heavily dependent on system resources but a thread requires minimal amount of resources.
d) Threads can easily communicate easily while process can’t communicate so easily.
e) Threads are easy to create but processes are not that state forward.

Q.12 What is spooling and buffering?
Buffering is a method of overlapping the computation of a job with its execution. It temporarily stores input or output data in an attempt to better match the speeds of two devices such as a fast CPU and a slow disk drive. If, for example, the CPU writes information to the buffer, it can continue in its computation while the disk drive stores the information.

With spooling, the disk is used as a very large buffer. Usually complete jobs are queued on disk to be completed later. A typical example is the spooler for a printer. When a print job is issued, the spooler takes care of it, sending it to the printer if it is not busy, or storing it on disk otherwise.

The main difference between buffering and spooling is that the latter allows the I/O of one job to overlap the computation of another. Buffering only allows the I/O of a job to overlap with its own computation.

Q.13 What is a system call?
System calls allow user-level processes to request services of the operating system.

System calls provide an interface between the process and the operating system. System calls allow user-level processes to request some services from the operating system which process itself is not allowed to do. In handling the trap, the operating system will enter in the kernel mode, where it has access to privileged instructions, and can perform the desired service on the behalf of user-level process.

Q.14 What are different types of scheduling?
Scheduling can be classified in following types:-

· Long term scheduling: which determines which programs are admitted to the system for execution and when, and which ones should be exited.

· Medium term scheduling: which determines when processes are to be suspended and resumed;

· Short term scheduling (or dispatching): which determines which of the ready processes can have CPU resources, and for how long.

Taking into account the states of a process, and the time scale at which state transition occur, we can immediately recognize that dispatching affects processes

running;
ready;
blocked;

the medium term scheduling affects processes

ready-suspended;
blocked-suspended;

the long term scheduling affects processes

new;
exited

Q.15 How system detect thrashing?
It can be detected by evaluating the level of CPU utilization as compared to the level of multiprogramming.

Q.16 What is booting?
When we start our Computer then there is an operation which is performed automatically by the Computer which is known as Booting.

Q.17 What is Process Control Block?
A process in an operating system is represented by a data structure known as a process control block (PCB) or process descriptor. The PCB contains important information about the specific process including-
       · The current state of the process i.e., whether it is ready, running, waiting, or whatever.
       · Unique identification of the process in order to track "which is which" information.
       · A pointer to parent process.
       · Similarly, a pointer to child process (if it exists).
       · The priority of process (a part of CPU scheduling information).
       · Pointers to locate memory of processes.
       · A register save area.
       · The processor it is running on.

The PCB is a certain store that allows the operating systems to locate key information about a process. Thus, the PCB is the data structure that defines a process to the operating systems.

Q.18 What is interrupt? When it occurs and its types?
When a Process is executed by the CPU and when a user Request for another Process then this will create disturbance for the Running Process. This is also called as the Interrupt.

Interrupts can be generated by User, Some Error Conditions and also by Software’s and the hardware’s.

Types of Interrupts
Generally there are three types o Interrupts those are Occurred For Example
1) Internal Interrupt
2) Software Interrupt.
3) External Interrupt.

Q.19 What is synchronization?
Synchronization refers to one of two distinct but related concepts: synchronization of processes, and synchronization of data. Process synchronization refers to the idea that multiple processes are to join up or handshake at a certain point, in order to reach an agreement or commit to a certain sequence of action. Data synchronization refers to the idea of keeping multiple copies of a dataset in coherence with one another, or to maintain data integrity. Process synchronization primitives are commonly used to implement data synchronization.

Q.20 What is deadlock? When does it occur?
Deadlock is a situation in which processes wait for other processes’ action indefinitely.
User processes share a computer system’s resources. If a resource requested by some process Pi is currently allocated to process Pj, Pi has to wait until Pj releases the resource. Such waits sometimes cause a deadlock.

Q.21 What are the Condition of Deadlock detection, prevention and avoidance?
Deadlock handling approaches:-

Deadlock detection- The kernel analyzes the resource state to check whether a deadlock exists. If so, it aborts some process(es) and allocates the resources held by them to other processes so that the deadlock ceases to exist.

Deadlock Prevention- The kernel uses a resources allocation policy that ensures that the four conditions of resource deadlocks (Non-shareable resources, No preemption, Hold and Wait, Circular waits) do no arise simultaneously. It makes deadlock impossible.

Deadlock Avoidance- The kernel analyzes the allocation state to determine whether granting a resource request can lead to a deadlock in the future. Only request that can’t lead to a deadlock are granted, others are kept pending until they can be granted. Thus, deadlock do not rise.

Q.22 What is page fault and how it occurs?
In memory hierarchy when RAM needs some data, it search for particular page in page memory and if that page is not found then occurs a fault which is called page fault.
Page fault occurs when desired page is not found in page memory.

Q.23 How many types of schedulers?
Long term scheduler or job scheduler and Short term scheduler or CPU scheduler.

Q.24 What are the election algorithms?
When coordinator stops responding to the request of processes then process assumes that coordinator has failed and initiates election algorithm. The election algorithm chooses the highest-priority non failed process as a new coordinator and announces its id to all non failed processes.

Q.25 What is kernel?
Kernel is the core of OS. It controls operations of the computer and provides a set of functions and services to use the CPU, memory, and other resources of the computer.

Q.26 What is inter-process communication?
Inter-process communication (IPC) is a mechanism which allows cooperation processes to exchange and share data while their execution.

There are two fundamental models-
· Message Passing
· Shared Memory


Q.27 What is critical section problem?
A critical section is a section of code when a common variable or data is to be accessed by a set of variable or processes.
When such cooperating processes access such common variable or data, the process is said to be in critical section which usually creates a problem.

Q.28 What is starvation?
Starvation is a situation in which a process indefinitely waits for a resource.

Q.29 What is a safe state in deadlock?
A state is said to be safe if a system can allocate a resource to each process in some order and still avoid deadlock.

Q.30 What is a semaphore?
A semaphore is hardware or a software tag variable whose value indicates the status of a common resource. Its purpose is to lock the resource being used. A process which needs the resource will check the semaphore for determining the status of the resource followed by the decision for proceeding.

Q.31 What is dispatcher?
Dispatcher is a component involved in CPU scheduling. Dispatcher is a module that gives control of CPU to the process selected by a scheduler for swapping, context switching and resuming a user program.

Q.32 What is RPC?
RPC stands for Remote Procedure Call.
A process calls a procedure that is located in different computer system. It invokes a procedure that is executed in another computer in the distributed system.

Wednesday 3 October 2012

Disk Scheduling in Operating System

The operating system is responsible for using hardware efficiently — for the disk drives, this means having a fast access time and disk bandwidth.
Access time has two major components

Seek time is the time for the disk are to move the heads to the cylinder containing the desired sector.

Rotational latency is the additional time waiting for the disk to rotate the desired sector to the disk head.

Minimize seek time
Seek time » seek distance

Disk bandwidth is the total number of bytes transferred, divided by the total time between the first request for service and the completion of the last transfer.

Several algorithms exist to schedule the servicing of disk I/O requests.
We illustrate them with a request queue (0-199).

 98, 183, 37, 122, 14, 124, 65, 67
Head pointer 53 

Sunday 5 August 2012

Garbage Collection

In the Java programming language, dynamic allocation of objects is achieved using the new operator. An object once created uses some memory and the memory remains allocated till there are references for the use of the object. When there are no references for an object, it is assumed to be no longer needed and the memory occupied by the object can be reclaimed.There is no explicit need to destroy an object as java handles the de-allocation automatically. The technique that accomplishes this is known as Garbage Collection.Programs that do not de-allocate memory can eventually crash when there is no memory left in the system to allocate. These programs are said to have memory leaks.

In Java,Garbage collection happens automatically during the lifetime of a java program, eliminating the need to de-allocate memory and avoiding memory leaks.In C language, it is the programmer’s responsibility to de-allocate memory allocated dynamically using free() function.
Note : All objects are created in Heap Section of memory. More on this in a later tutorial.
Step 1) Copy the following code into a editor


Step 2) Save, Compile and Run the code. As shown in the diagram , two objects and two reference variables are created.



java-garbage-collection
Figure: Object Creation after compiling and executing above code

Step 3) Uncomment line # 20,21,22. Save , compile & run the code.
Step 4) As show in diagram below, two reference variables are pointing to the same object.
java-garbage-collection-1
Figure: View of objects after performing step 3
Step 5) Uncomment line # 23 & 24. Compile , Save & Run the code
Step 6) As show in diagram below , s2 becomes null , but s3 is still pointing to the object and is not eligible for garbage collection.
java-garbage-collection-3
Figure: S2 pointing to null after execution of 23 line
Step 7) Uncomment line # 25 & 26 . Save , Compile & Run the Code
Step 8) At this point there are no references pointing to the object and becomes eligible for garbage collection. It will be removed from memory and there is no way of retrieving it back.
java-garbage-collection-4
Figure: S2 and S3 becomes eligible for garbage collection

Garbage Collection Important Points to Note:


1) If you want to make your object eligible for Garbage Collection , assign its reference variable to null.
2) Primitive types are not objects. They cannot be assigned null.
java-primitive-data-type
Primitive Types can't be set to null



Monday 30 July 2012

Core Java Interview Questions

Question: What is transient variable?
Answer: Transient variable can't be serialize. For example if a variable is declared as transient in a Serializable class and the class is written to an ObjectStream, the value of the variable can't be written to the stream instead when the class is retrieved from the ObjectStream the value of the variable becomes null.

Question: Name the containers which uses Border Layout as their default layout?
Answer: Containers which uses Border Layout as their default are: window, Frame and Dialog classes.
 

Question: What do you understand by Synchronization?
Answer: Synchronization is a process of controlling the access of shared resources by the multiple threads in such a manner that only one thread can access one resource at a time. In non synchronized multithreaded application, it is possible for one thread to modify a shared object while another thread is in the process of using or updating the object's value. Synchronization prevents such type of data corruption.
Example: Synchronizing a function:
public synchronized void Method1 () {
   // Appropriate method-related code.
}
E.g. Synchronizing a block of code inside a function:public myFunction (){
  synchronized (this) {
  // Synchronized code here.
   }
}
 

Question: What is Collection API?
Answer: The Collection API is a set of classes and interfaces that support operation on collections of objects. These classes and interfaces are more flexible, more powerful, and more regular than the vectors, arrays, and hashtables if effectively replaces.
Example of classes: HashSet, HashMap, ArrayList, LinkedList, TreeSet and TreeMap.
Example of interfaces: Collection, Set, List and Map.
 

Question: Is Iterator a Class or Interface? What is its use?
Answer: Iterator is an interface which is used to step through the elements of a Collection.


Question: What is similarities/difference between an Abstract class and Interface?
Answer:  Differences are as follows:

Interfaces provide a form of multiple inheritances. A class can extend only one other class.
Interfaces are limited to public methods and constants with no implementation. Abstract classes can have a partial implementation, protected parts, static methods, etc.
    A Class may implement several interfaces. But in case of abstract class, a class may extend only one abstract class.
    Interfaces are slow as it requires extra indirection to to find corresponding method in in the actual class. Abstract classes are fast.

Similarities:

    Neither Abstract classes or Interface can be instantiated.
     

Question: How to define an Abstract class?
Answer: A class containing abstract method is called Abstract class. An Abstract class can't be instantiated.
Example of Abstract class:

abstract class testAbstractClass {
  protected String myString;
  public String getMyString() {
  return myString;
  }
  public abstract string anyAbstractFunction();
}


Question: How to define an Interface?
Answer: In Java Interface defines the methods but does not implement them. Interface can include constants. A class that implements the interfaces is bound to implement all the methods defined in Interface.
Example of Interface:

public interface sampleInterface {
  public void functionOne();

  public long CONSTANT_ONE = 1000;
}


Question: Explain the user defined Exceptions?
Answer: User defined Exceptions are the separate Exception classes defined by the user for specific purposed. An user defined can created by simply sub-classing it to the Exception class. This allows custom exceptions to be generated (using throw) and caught in the same way as normal exceptions.
Example:
class myCustomException extends Exception {
   // The class simply has to exist to be an exception
}
 

Question: Explain the new Features of JDBC 2.0 Core API?
Answer: The JDBC 2.0 API includes the complete JDBC API, which includes both core and Optional Package API, and provides inductrial-strength database computing capabilities.
New Features in JDBC 2.0 Core API:

 Scrollable result sets- using new methods in the ResultSet interface allows programmatically move the to particular row or to a position relative to its current position
·         JDBC 2.0 Core API provides the Batch Updates functionality to the java applications.
·         Java applications can now use the ResultSet.updateXXX methods.
·         New data types - interfaces mapping the SQL3 data types
·         Custom  mapping of user-defined types (UTDs)
·         Miscellaneous features, including performance hints, the use of character streams, full precision for java.math.BigDecimal values, additional security, and support for time zones in date, time, and timestamp values.

 

Question: Explain garbage collection?
Answer: Garbage collection is one of the most important feature of Java. Garbage collection is also called automatic memory management as JVM automatically removes the unused variables/objects (value is null) from the memory. User program cann't directly free the object from memory, instead it is the job of the garbage collector to automatically free the objects that are no longer referenced by a program. Every class inherits finalize() method from java.lang.Object, the finalize() method is called by garbage collector when it determines no more references to the object exists. In Java, it is good idea to explicitly assign null into a variable when no more in use. I Java on calling System.gc() andRuntime.gc(),  JVM tries to recycle the unused objects, but there is no guarantee when all the objects will garbage collected.


Question: How you can force the garbage collection?
Answer: Garbage collection automatic process and can't be forced.


Question: What is OOPS?
Answer: OOP is the common abbreviation for Object-Oriented Programming.


Question: Describe the principles of OOPS.
Answer: There are three main principals of oops which are called Polymorphism, Inheritance and Encapsulation.


Question: Explain the Encapsulation principle.
Answer: Encapsulation is a process of binding or wrapping the data and the codes that operates on the data into a single entity. This keeps the data safe from outside interface and misuse. One way to think about encapsulation is as a protective wrapper that prevents code and data from being arbitrarily accessed by other code defined outside the wrapper.


Question: Explain the Inheritance principle.
Answer: Inheritance is the process by which one object acquires the properties of another object.


Question: Explain the Polymorphism principle.
Answer: The meaning of Polymorphism is something like one name many forms. Polymorphism enables one entity to be used as as general category for different types of actions. The specific action is determined by the exact nature of the situation. The concept of polymorphism can be explained as "one interface, multiple methods".


Question: Explain the different forms of Polymorphism.
Answer: From a practical programming viewpoint, polymorphism exists in three distinct forms in Java:

  • ·         Method overloading
  • ·         Method overriding through inheritance
  • ·         Method overriding through the Java interface




Question: What are Access Specifiers available in Java?
Answer: Access specifiers are keywords that determines the type of access to the member of a class. These are:

  • ·         Public
  • ·         Protected
  • ·         Private
  • ·         Defaults
 

Question: Describe the wrapper classes in Java.
Answer: Wrapper class is wrapper around a primitive data type. An instance of a wrapper class contains, or wraps, a primitive value of the corresponding type.

Following table lists the primitive types and the corresponding wrapper classes:

Primitive
Wrapper
boolean
  java.lang.Boolean
byte
  java.lang.Byte
char
  java.lang.Character
double
  java.lang.Double
float
  java.lang.Float
int
  java.lang.Integer
long
  java.lang.Long
short
  java.lang.Short
void
  java.lang.Void




Question: Read the following program:

public class test {
public static void main(String [] args) {
  int x = 3;
  int y = 1;
   if (x = y)
   System.out.println("Not equal");
  else
  System.out.println("Equal");
 }
}

What is the result?
   A. The output is ?Equal?
   B. The output in ?Not Equal?
   C. An error at " if (x = y)" causes compilation to fall.
   D. The program executes but no output is show on console.
Answer: C

Question: what is the class variables ?
Answer: When we create a number of objects of the same class, then each object will share a common copy of variables. That means that there is only one copy per class, no matter how many objects are created from it. Class variables or static variables are declared with the static keyword in a class, but mind it that it should be declared outside outside a class. These variables are stored in static memory. Class variables are mostly used for constants, variable that never change its initial value. Static variables are always called by the class name. This variable is created when the program starts i.e. it is created before the instance is created of class by using new operator and gets destroyed when the programs stops. The scope of the class variable is same a instance variable. The class variable can be defined anywhere at class level with the keyword static. It initial value is same as instance variable. When the class variable is defined as int then it's initial value is by default zero, when declared boolean its default value is false and null for object references. Class variables are associated with the class, rather than with any object.

Question: What is the difference between the instanceof and getclass, these two are same or not?
Answer: instanceof is a operator, not a function while getClass is a method of java.lang.Object class. Consider a condition where we use
if(o.getClass().getName().equals("java.lang.Math")){ }
This method only checks if the classname we have passed is equal to java.lang.Math. The class java.lang.Math is loaded by the bootstrap ClassLoader.
This class is an abstract class.
This class loader is responsible for loading classes. Every Class object contains a reference to the ClassLoader that defines. getClass() method returns the runtime class of an object. It fetches the java instance of the given fully qualified type name. The code we have written is not necessary, because we should not compare getClass.getName().
The reason behind it is that if the two different class loaders load the same class but for the JVM, it will consider both classes as different classes so, we can't compare their names. It can only gives the implementing class but can't compare a interface, but instanceof operator can.
The instanceof operator compares an object to a specified type. We can use it to test if an object is an instance of a class, an instance of a subclass, or an instance of a class that implements a particular interface.
We should try to use instanceof operator in place of getClass() method. Remember instanceof opeator and getClass are not same.
Try this example; it will help you to better understand the difference between the two.

interface one{
}

class Two implements one {
}
class Three implements one {
}

public class Test {
public static void main(String args[]) {
one test1 = new Two();
one test2 = new Three();
System.out.println(test1 instanceof one); //true
System.out.println(test2 instanceof one); //true
System.out.println(Test.getClass().equals(test2.getClass())); //false
}
}