You are on page 1of 69

C INTERVIEW QUESTIONS

1. What does static variable mean?


Ans: Static variables are the variables which retain their values between the function calls. They
are initialized only once their scope is within the function in which they are defined.

2. What is a pointer?
Ans: Pointers are variables which stores the address of another variable. That variable may be a
scalar (including another pointer), or an aggregate (array or structure). The pointed-to object may
be part of a larger object, such as a field of a structure or an element in an array.

3. What are the uses of a pointer?


Ans: Pointer is used in the following cases
i) It is used to access array elements
ii) It is used for dynamic memory allocation.
iii) It is used in Call by reference
iv) It is used in data structures like trees, graph, linked list etc.

4. What is a structure?
Ans: Structure constitutes a super data type which represents several different data types in a
single unit. A structure can be initialized if it is static or global.

5. What is a union?
Ans: Union is a collection of heterogeneous data type but it uses efficient memory utilization
technique by allocating enough memory to hold the largest member. Here a single area of
memory contains values of different types at different time. A union can never be initialized.

6. What are the differences between structures and union?


Ans: A structure variable contains each of the named members, and its size is large enough to
hold all the members. Structure elements are of same size.
A union contains one of the named members at a given time and is large enough to hold the
largest member. Union element can be of different sizes.

7. What are the differences between structures and arrays?


Ans: Structure is a collection of heterogeneous data type but array is a collection of
homogeneous data types.
Array
1-It is a collection of data items of same data type.
2-It has declaration only
3-.There is no keyword.
4- array name represent the address of the starting element.
Structure
1-It is a collection of data items of different data type.
2- It has declaration and definition
3- keyword struct is used
4-Structure name is known as tag it is the short hand notation of the declaration.
8. In header files whether functions are declared or defined?
Ans: Functions are declared within header file. That is function prototypes exist in a header
file,not function bodies. They are defined in library (lib).

9. What are the differences between malloc () and calloc ()?


Ans: Malloc Calloc 1-Malloc takes one argument Malloc(a);where a number of bytes 2-memory
allocated contains garbage values
1-Calloc takes two arguments Calloc(b,c) where b no of object and c size of object
2-It initializes the contains of block of memory to zerosMalloc takes one argument, memory
allocated contains garbage values.
It allocates contiguous memory locations. Calloc takes two arguments, memory allocated
contains all zeros, and the memory allocated is not contiguous.

10. What are macros? What are its advantages and disadvantages?
Ans: Macros are abbreviations for lengthy and frequently used statements. When a macro is
called the entire code is substituted by a single line though the macro definition is of several
lines.
The advantage of macro is that it reduces the time taken for control transfer as in case of
function.
The disadvantage of it is here the entire code is substituted so the program becomes
lengthy if a macro is called several times.

11. Difference between pass by reference and pass by value?


Ans: Pass by reference passes a pointer to the value. This allows the callee to modify the
variable directly.Pass by value gives a copy of the value to the callee. This allows the callee to
modify the value without modifying the variable. (In other words, the callee simply cannot
modify the variable, since it lacks a reference to it.)

12. What is static identifier?


Ans: A file-scope variable that is declared static is visible only to functions within that file. A
function-scope or block-scope variable that is declared as static is visible only within that scope.
Furthermore, static variables only have a single instance. In the case of function- or block-scope
variables, this means that the variable is not “automatic” and thus retains its value across
function invocations.

13. Where is the auto variables stored?


Ans: Auto variables can be stored anywhere, so long as recursion works. Practically, they’re
stored on
the stack. It is not necessary that always a stack exist. You could theoretically allocate function
invocation records from the heap.

14. Where does global, static, and local, register variables, free memory and C Program
instructions get stored?
Ans: Global: Wherever the linker puts them. Typically the “BSS segment” on many platforms.
Static: Again, wherever the linker puts them. Often, they’re intermixed with the globals. The
only difference between globals and statics is whether the linker will resolve the symbols across
compilation units.Local: Typically on the stack, unless the variable gets register allocated and
never spills.Register: Nowadays, these are equivalent to “Local” variables. They live on the stack
unless they get register-allocated.

15. Difference between arrays and linked list?


Ans: An array is a repeated pattern of variables in contiguous storage. A linked list is a set of
structures scattered through memory, held together by pointers in each element that point to the
next element. With an array, we can (on most architectures) move from one element to the next
by adding a fixed constant to the integer value of the pointer. With a linked list, there is a “next”
pointer in each structure which says what element comes next.

16. What are enumerations?


Ans: They are a list of named integer-valued constants. Example:enum color { black , orange=4,
yellow, green, blue, violet };This declaration defines the symbols “black”, “orange”, “yellow”,
etc. to have the values “1,” “4,” “5,” … etc. The difference between an enumeration and a macro
is that the enum actually declares a type, and therefore can be type checked.

17. Describe about storage allocation and scope of global, extern, static, local and register
variables?
Ans:
Globals have application-scope. They’re available in any compilation unit that includes an
appropriate declaration (usually brought from a header file). They’re stored wherever the linker
puts them, usually a place called the “BSS segment.”
Extern? This is essentially “global.”
Static: Stored the same place as globals, typically, but only available to the compilation unit that
contains them. If they are block-scope global, only available within that block and its subblocks.
Local: Stored on the stack, typically. Only available in that block and its subblocks.
(Although pointers to locals can be passed to functions invoked from within a scope where that
local is valid.)
Register: See tirade above on “local” vs. “register.” The only difference is that
the C compiler will not let you take the address of something you’ve declared as “register.”

18. What are register variables? What are the advantages of using register variables?
Ans: If a variable is declared with a register storage class,it is known as register variable.The
register variable is stored in the cpu register instead of main memory.Frequently used variables
are declared as register variable as it’s access time is faster.

19. What is the use of typedef?


Ans: The typedef help in easier modification when the programs are ported to another machine.
A descriptive new name given to the existing data type may be easier to understand the code.

20. Can we specify variable field width in a scanf() format string? If possible how?
Ans: All field widths are variable with scanf(). You can specify a maximum field width for a
given
field by placing an integer value between the ‘%’ and the field type specifier. (e.g. %64s). Such a
specifier will still accept a narrower field width.
The one exception is %#c (where # is an integer). This reads EXACTLY # characters, and it is
the
only way to specify a fixed field width with scanf().

21. Out of fgets() and gets() which function is safe to use and why?
Ans: fgets() is safer than gets(), because we can specify a maximum input length. Neither one is
completely safe, because the compiler can’t prove that programmer won’t overflow the buffer he
pass to fgets ().

22. Difference between strdup and strcpy?


Ans: Both copy a string. strcpy wants a buffer to copy into. strdup allocates a buffer using
malloc().
Unlike strcpy(), strdup() is not specified by ANSI .

23. What is recursion?


Ans: A recursion function is one which calls itself either directly or indirectly it must halt at a
definite point to avoid infinite recursion.

24. Differentiate between for loop and a while loop? What are it uses?
Ans: For executing a set of statements fixed number of times we use for loop while when the
number of
iterations to be performed is not known in advance we use while loop.

25. What is storage class? What are the different storage classes in C?
Ans: Storage class is an attribute that changes the behavior of a variable. It controls the lifetime,
scope and linkage. The storage classes in c are auto, register, and extern, static, typedef.

26. What the advantages of using Unions?


Ans: When the C compiler is allocating memory for unions it will always reserve enough room
for the
largest member.

27. What is the difference between Strings and Arrays?


Ans: String is a sequence of characters ending with NULL .it can be treated as a one dimensional
array
of characters terminated by a NULL character.

28. What is a far pointer? Where we use it?


Ans: In large data model (compact, large, huge) the address B0008000 is acceptable because in
these
model all pointers to data are 32bits long. If we use small data model(tiny, small, medium) the
above address won’t work since in these model each pointer is 16bits long. If we are working in
a small data model and want to access the address B0008000 then we use far pointer. Far pointer
is always treated as a 32bit pointer and contains a segment address and offset address both of
16bits each. Thus the address is represented using segment : offset format B000h:8000h. For any
given memory address there are many possible far address segment : offset pair. The segment
register contains the address where the segment begins and offset register contains the offset of
data/code from where segment begins.

29. What is a huge pointer?


Ans: Huge pointer is 32bit long containing segment address and offset address. Huge pointers
are
normalized pointers so for any given memory address there is only one possible huge address
segment: offset pair. Huge pointer arithmetic is doe with calls to special subroutines so its
arithmetic slower than any other pointers.

30. What is a normalized pointer, how do we normalize a pointer?


Ans: It is a 32bit pointer, which has as much of its value in the segment register as possible.
Since
a segment can start every 16bytes so the offset will have a value from 0 to F. for normalization
convert the address into 20bit address then use the 16bit for segment address and 4bit for the
offset address. Given a pointer 500D: 9407,we convert it to a 20bitabsolute address
549D7,Which then normalized to 549D:0007.

31. What is near pointer?


Ans: A near pointer is 16 bits long. It uses the current content of the CS (code segment) register
(if
the pointer is pointing to code) or current contents of DS (data segment) register (if the pointer is
pointing to data) for the segment part, the offset part is stored in a 16 bit near pointer. Using near
pointer limits the data/code to 64kb segment.

32. In C, why is the void pointer useful? When would you use it?
Ans: The void pointer is useful because it is a generic pointer that any pointer can be cast into
and
back again without loss of information.

33. What is a NULL Pointer? Whether it is same as an uninitialized pointer?


Ans: Null pointer is a pointer which points to nothing but uninitialized pointer may point to
anywhere.

34. Are pointers integer?


Ans: No, pointers are not integers. A pointer is an address. It is a positive number.

35. What does the error ‘Null Pointer Assignment’ means and what causes this error?
Ans: As null pointer points to nothing so accessing a uninitialized pointer or invalid location
may cause an error.

36. What is generic pointer in C?


Ans: In C void* acts as a generic pointer. When other pointer types are assigned to generic
pointer,
conversions are applied automatically (implicit conversion).
37. Are the expressions arr and &arr same for an array of integers?
Ans: Yes for array of integers they are same.

38. IMP>How pointer variables are initialized?


Ans: Pointer variables are initialized by one of the following ways.
I. Static memory allocation
II. Dynamic memory allocation

39. What is static memory allocation?


Ans: Compiler allocates memory space for a declared variable. By using the address of operator,
the
reserved address is obtained and this address is assigned to a pointer variable. This way of
assigning pointer value to a pointer variable at compilation time is known as static memory
allocation.

40. What is dynamic memory allocation?


Ans: A dynamic memory allocation uses functions such as malloc() or calloc() to get memory
dynamically. If these functions are used to get memory dynamically and the values returned by
these function are assigned to pointer variables, such a way of allocating memory at run time is
known as dynamic memory allocation.

41. What is the purpose of realloc?


Ans: It increases or decreases the size of dynamically allocated array. The function realloc
(ptr,n) uses two arguments. The first argument ptr is a pointer to a block of memory for which
the size is to be altered. The second argument specifies the new size. The size may be increased
or decreased. If sufficient space is not available to the old region the function may create a new
region.

42. What is pointer to a pointer?


Ans: If a pointer variable points another pointer value. Such a situation is known as a pointer to a
pointer.
Example:
int *p1,**p2,v=10;
P1=&v; p2=&p1;
Here p2 is a pointer to a pointer.

43. What is an array of pointers?


Ans: if the elements of an array are addresses, such an array is called an array of pointers.

44. Difference between linker and linkage?


Ans: Linker converts an object code into an executable code by linking together the necessary
built in
functions. The form and place of declaration where the variable is declared in a program
determine the linkage of variable.
45. Is it possible to have negative index in an array?
Ans: Yes it is possible to index with negative value provided there are data stored in this
location. Even if it is illegal to refer to the elements that are out of array bounds, the compiler
will not produce error because C has no check on the bounds of an array.

46. Why is it necessary to give the size of an array in an array declaration?


Ans: When an array is declared, the compiler allocates a base address and reserves enough space
in
memory for all the elements of the array. The size is required to allocate the required space and
hence size must be mentioned.

47. What modular programming?


Ans: If a program is large, it is subdivided into a number of smaller programs that are called
modules or subprograms. If a complex problem is solved using more modules, this approach is
known as modular programming.

48. What is a function?


Ans: A large program is subdivided into a number of smaller programs or subprograms. Each
subprogram
specifies one or more actions to be performed for the larger program. Such sub programs are
called functions.

49. What is an argument?


Ans: An argument is an entity used to pass data from the calling to a called function.

50. What are built in functions?


Ans: The functions that are predefined and supplied along with the compiler are known as built-
in functions. They are also known as library functions.

51. Difference between formal argument and actual argument?


Ans: Formal arguments are the arguments available in the function definition. They are preceded
by
their own data type. Actual arguments are available in the function call. These arguments are
given
as constants or variables or expressions to pass the values to the function.

52. Is it possible to have more than one main() function in a C program ?


Ans: The function main() can appear only once. The program execution starts from main.

53. What is the difference between an enumeration and a set of pre-processor # defines?
Ans: There is hardly any difference between the two, except that #defines has a global effect
(throughout the file) whereas an enumeration can have an effect local to the block if desired.
Some advantages of enumeration are that the numeric values are automatically assigned whereas
in #define we have to explicitly define them. A disadvantage is that we have no control over the
size of enumeration variables.
54. How are Structure passing and returning implemented by the complier?
Ans: When structures are passed as argument to functions, the entire structure is typically
pushed on
the stack. To avoid this overhead many programmer often prefer to pass pointers to structure
instead of actual structures. Structures are often returned from functions in a location pointed to
by an extra, compiler-supported ‘hidden’ argument to the function.

55. IMP>what is the similarity between a Structure, Union and enumeration?


Ans: All of them let the programmer to define new data type.

56. Can a Structure contain a Pointer to itself?


Ans: Yes such structures are called self-referential structures.

57. How can we read/write Structures from/to data files?


Ans: To write out a structure we can use fwrite() as Fwrite( &e, sizeof(e),1,fp);Where e is a
structure
variable. A corresponding fread() invocation can read the structure back from file. calling
fwrite() it writes out sizeof(e) bytes from the address &e. Data files written as memory images
with fwrite(),however ,will not be portable, particularly if they contain floating point fields or
Pointers. This is because memory layout of structures is machine and compiler
dependent. Therefore, structures written as memory images cannot necessarily be read back by
programs running on other machine, and this is the important concern if the data files you’re
writing will ever be interchanged between machines.

58. Write a program which employs Recursion?


Ans: int fact(int n) { return n > 1 ? n * fact(n – 1) : 1; }

59.Write a program which uses Command Line Arguments?


Ans:

#include
void main(int argc,char *argv[])
{
int i;
clrscr();
for(i=0;i
printf(“\n%d”,argv[i]);
}

60. Difference between array and pointer?


Ans:
Array
1- Array allocates space automatically
2- It cannot be resized
3- It cannot be reassigned
4- sizeof (arrayname) gives the number of bytes occupied by the array.
Pointer
1-Explicitly assigned to point to an allocated space.
2-It can be sized using realloc()
3-pointer can be reassigned.
4-sizeof (p) returns the number of bytes used to store the pointer variable p.

61. What do the ‘c’ and ‘v’ in argc and argv stand for?
Ans: The c in argc(argument count) stands for the number of command line argument the
program is
invoked with and v in argv(argument vector) is a pointer to an array of character string that
contain the arguments.

62. IMP>what are C tokens?


Ans: There are six classes of tokens: identifier, keywords, constants, string literals, operators and
other separators.

63. What are C identifiers?


Ans: These are names given to various programming element such as variables, function,
arrays.It is a combination of letter, digit and underscore.It should begin with letter. Backspace is
not allowed.

64. Difference between syntax vs logical error?


Ans:
Syntax Error
1-These involves validation of syntax of language.
2-compiler prints diagnostic message.

Logical Error
1-logical error are caused by an incorrect algorithm or by a statement mistyped in such a way
that it doesn’t violet syntax of language.
2-difficult to find.

65. What is preincrement and post increment?


Ans: ++n (pre increment) increments n before its value is used in an assignment operation or any
expression containing it. n++ (post increment) does increment after the value of n is used.

66. Write a program to interchange 2 variables without using the third one.
Ans:
a ^= b; ie a=a^b
b ^= a; ie b=b^a;
a ^= b ie a=a^b;
here the numbers are converted into binary and then xor operation is performed.
You know, you’re just asking “have you seen this overly clever trick that’s not worth applying
on
modern architectures and only really applies to integer variables?”
67. What is the maximum combined length of command line arguments including the space
between adjacent arguments?
Ans: It depends on the operating system.

68. What are bit fields? What is the use of bit fields in a Structure declaration?
Ans: A bit field is a set of adjacent bits within a single implementation based storage unit that we
will call a “word”.
The syntax of field definition and access is based on structure.
Struct {
unsigned int k :1;
unsigned int l :1;
unsigned int m :1;
}flags;
the number following the colon represents the field width in bits.Flag is a variable that contains
three bit fields.

69. What is a preprocessor, what are the advantages of preprocessor?


Ans: A preprocessor processes the source code program before it passes through the compiler.
1- a preprocessor involves the readability of program
2- It facilitates easier modification
3- It helps in writing portable programs
4- It enables easier debugging
5- It enables testing a part of program
6- It helps in developing generalized program

70. What are the facilities provided by preprocessor?


Ans:
1-file inclusion
2-substitution facility
3-conditional compilation

71. What are the two forms of #include directive?


Ans:
1.#include”filename”
2.#include
the first form is used to search the directory that contains the source file.If the search fails in the
home directory it searches the implementation defined locations.In the second form ,the
preprocessor searches the file only in the implementation defined locations.

72. How would you use the functions randomize() and random()?
Ans:
Randomize() initiates random number generation with a random value.
Random() generates random number between 0 and n-1;

73. What do the functions atoi(), itoa() and gcvt() do?


Ans:
atoi() is a macro that converts integer to character.
itoa() It converts an integer to string
gcvt() It converts a floating point number to string

74. How would you use the functions fseek(), freed(), fwrite() and ftell()?
Ans:
fseek(f,1,i) Move the pointer for file f a distance 1 byte from location i.
fread(s,i1,i2,f) Enter i2 dataitems,each of size i1 bytes,from file f to string s.
fwrite(s,i1,i2,f) send i2 data items,each of size i1 bytes from string s to file f.
ftell(f) Return the current pointer position within file f.

The data type returned for functions fread,fseek and fwrite is int and ftell is long int.

75. What is the difference between the functions memmove() and memcpy()?
Ans: The arguments of memmove() can overlap in memory. The arguments of memcpy()
cannot.

76. What is a file?


Ans: A file is a region of storage in hard disks or in auxiliary storage devices.It contains bytes of
information .It is not a data type.

77. IMP>what are the types of file?


Ans: Files are of two types
1-high level files (stream oriented files) :These files are accessed using library functions
2-low level files(system oriented files) :These files are accessed using system calls

78. IMP>what is a stream?


Ans: A stream is a source of data or destination of data that may be associated with a disk or
other
I/O device. The source stream provides data to a program and it is known as input stream. The
destination stream eceives the output from the program and is known as output stream.

79. What is meant by file opening?


Ans: The action of connecting a program to a file is called opening of a file. This requires
creating
an I/O stream before reading or writing the data.

80. What is FILE?


Ans: FILE is a predefined data type. It is defined in stdio.h file.

81. What is a file pointer?


Ans: The pointer to a FILE data type is called as a stream pointer or a file pointer. A file pointer
points to the block of information of the stream that had just been opened.

82. How is fopen()used ?


Ans: The function fopen() returns a file pointer. Hence a file pointer is declared and it is
assigned
as
FILE *fp;
fp= fopen(filename,mode);
filename is a string representing the name of the file and the mode represents:
“r” for read operation
“w” for write operation
“a” for append operation
“r+”,”w+”,”a+” for update operation

83How is a file closed ?


Ans: A file is closed using fclose() function
Eg. fclose(fp);
Where fp is a file pointer.

84. What is a random access file?


Ans:
A file can be accessed at random using fseek() function
fseek(fp,position,origin);
fp file pointer
position number of bytes offset from origin
origin 0,1 or 2 denote the beginning ,current position or end of file respectively.

85. What is the purpose of ftell ?


Ans: The function ftell() is used to get the current file represented by the file pointer.
ftell(fp);
returns a long integer value representing the current file position of the file pointed by the
file pointer fp.If an error occurs ,-1 is returned.

86. What is the purpose of rewind() ?


Ans: The function rewind is used to bring the file pointer to the beginning of the file.
Rewind(fp);
Where fp is a file pointer.Also we can get the same effect by
feek(fp,0,0);

87. Difference between a array name and a pointer variable?


Ans: A pointer variable is a variable where as an array name is a fixed address and is not a
variable. A
pointer variable must be initialized but an array name cannot be initialized. An array name being
a constant value , ++ and — operators cannot be applied to it.

88. Represent a two-dimensional array using pointer?


Ans:
Address of a[I][j] Value of a[I][j]
&a[I][j]
or
a[I] + j
or
*(a+I) + j
*&a[I][j] or a[I][j]
or
*(a[I] + j )
or
*( * ( a+I) +j )

89. Difference between an array of pointers and a pointer to an array?


Ans:
Array of pointers
1- Declaration is: data_type *array_name[size];
2-Size represents the row size.
3- The space for columns may be dynamically

Pointers to an array
1-Declaration is data_type ( *array_name)[size];
2-Size represents the column size.

90. Can we use any name in place of argv and argc as command line arguments ?
Ans: yes we can use any user defined name in place of argc and argv;

91. What are the pointer declarations used in C?


Ans:
1- Array of pointers, e.g , int *a[10]; Array of pointers to integer
2-Pointers to an array,e.g , int (*a)[10]; Pointer to an array of into
3-Function returning a pointer,e.g, float *f( ) ; Function returning a pointer to float
4-Pointer to a pointer ,e.g, int **x; Pointer to apointer to int
5-pointer to a data type ,e.g, char *p; pointer to char

92. Differentiate between a constant pointer and pointer to a constant?


Ans:
const char *p; //pointer to a const character.
char const *p; //pointer to a const character.
char * const p; //const pointer to a char variable.
const char * const p; // const pointer to a const character.

93. Is the allocated space within a function automatically deallocated when the function
returns?
Ans: No pointer is different from what it points to .Local variables including local pointers
variables in a function are deallocated automatically when function returns.,But in case of a
local pointer variable ,deallocation means that the pointer is deallocated and not the block of
memory allocated to it. Memory dynamically allocated always persists until the allocation is
freed
or the program terminates.
94. Discuss on pointer arithmetic?
Ans:
1- Assignment of pointers to the same type of pointers.
2- Adding or subtracting a pointer and an integer.
3-subtracting or comparing two pointer.
4-incrementing or decrementing the pointers pointing to the elements of an array. When a pointer
to an integer is incremented by one , the address is incremented by two. It is done automatically
by the compiler.
5-Assigning the value 0 to the pointer variable and comparing 0 with the pointer. The pointer
having address 0 points to nowhere at all.

95. What is the invalid pointer arithmetic?


Ans:
i) adding ,multiplying and dividing two pointers.
ii) Shifting or masking pointer.
iii) Addition of float or double to pointer.
iv) Assignment of a pointer of one type to a pointer of another type ?

96. What are the advantages of using array of pointers to string instead of an array of
strings?
Ans:
i) Efficient use of memory.
ii) Easier to exchange the strings by moving their pointers while sorting.

97. Are the expressions *ptr ++ and ++ *ptr same?


Ans: No,*ptr ++ increments pointer and not the value pointed by it. Whereas ++ *ptr
increments the value being pointed to by ptr.

98. What would be the equivalent pointer expression foe referring the same element as
a[p][q][r][s] ?
Ans : *( * ( * ( * (a+p) + q ) + r ) + s)

99. Are the variables argc and argv are always local to main?
Ans: Yes they are local to main.

100. Can main () be called recursively?


Ans: Yes any function including main () can be called recursively.

101. IMP>Can we initialize unions?


Ans: ANSI Standard C allows an initializer for the first member of a union. There is no standard
way
of initializing any other member (nor, under a pre-ANSI compiler, is there generally any way of
initializing a union at all).

102. What’s the difference between these two declarations?


Ans: struct x1 { … };
typedef struct { … } x2;
The first form declares a structure tag; the second declares a typedef. The main difference is that
the second declaration is of a slightly more abstract type.its users don’t necessarily know that it
is a structure, and the keyword struct is not used when declaring instances of it.

103. Why doesn’t this code: a[i] = i++; work?


Ans: The subexpression i++ causes a side effect.it modifies i’s value.which leads to undefined
behavior since i is also referenced elsewhere in the same expression.

104.WHy doesn’t struct x { … };


x thestruct;
work?
Ans:
C is not C++. Typedef names are not automatically generated for structure tags.

105. Why can’t we compare structures?


Ans:
There is no single, good way for a compiler to implement structure comparison which is
consistent with C’s low-level flavor. A simple byte-by-byte comparison could founder on
random bits present in unused “holes” in the structure (such padding is used to keep the
alignment of later fields correct). A field-by-field comparison might require unacceptable
amounts of repetitive code for large structures.

106. How are structure passing and returning implemented?


Ans: When structures are passed as arguments to functions, the entire structure is typically
pushed on
the stack, using as many words as are required. Some compilers merely pass a pointer to the
structure, though they may have to make a local copy to preserve pass-by-value semantics.
Structures are often returned from functions in a location pointed to by an extra,compiler-
supplied “hidden” argument to the function. Some older compilers used a special,static location
for structure returns, although this made structure-valued functions non-reentrant, which ANSI C
disallows.

C++
1. What is a class?
Ans: The objects with the same data structure (attributes) and behavior (operations) are called
class.

2. What is an object?
Ans: It is an entity which may correspond to real-world entities such as students, employees,
bank account. It may be concrete such as file system or conceptual such as scheduling policies in
multiprocessor operating system.
Every object will have data structures called attributes and behavior called operations.
3. What is the difference between an object and a class?
Ans: All objects possessing similar properties are grouped into class.
Example :–person is a class, ram, hari are objects of person class. All have similar attributes like
name, age, sex and similar operations like speak, walk.

Class person
{
private:
char name[20];
int age;
char sex;
public: speak();
walk();
};

4. What is the difference between class and structure?


Ans: In class the data members by default are private but in structure they are by default public

5. Define object based programming language?


Ans: Object based programming language support encapsulation and object identity without
supporting some important features of OOPs language.
Object based language=Encapsulation + object Identity

6. Define object oriented language?


Ans: Object-oriented language incorporates all the features of object based programming
languages along with inheritance and polymorphism.
Example: – c++, java.

7. Define OOPs?
Ans: OOP is a method of implementation in which programs are organized as co-operative
collection of objects, each of which represents an instance of some class and whose classes are
all member of a hierarchy of classes united through the property of inheritance.

8. What is public, protected, and private?


Ans: These are access specifier or a visibility lebels .The class member that has been declared as
private can be accessed only from within the class. Public members can be accessed from outside
the class also. Within the class or from the object of a class protected access limit is same as that
of private but it plays a prominent role in case of inheritance

9. What is a scope resolution operator?


Ans: The scope resolution operator permits a program to reference an identifier in the global
scope that has been hidden by another identifier with the same name in the local scope.

10. What do you mean by inheritance?


Ans: The mechanism of deriving a new class (derived) from an old class (base class) is called
inheritance. It allows the extension and reuse of existing code without having to rewrite the code
from scratch.

11. What is abstraction?


Ans: The technique of creating user-defined data types, having the properties of built-in data
types and a set of permitted operators that are well suited to the application to be programmed is
known as data abstraction. Class is a construct for abstract data types (ADT).

12. What is encapsulation?


Ans: It is the mechanism that wraps the data and function it manipulates into single unit and
keeps it safe from external interference.

13. How variable declaration in c++ differs that in c?


Ans: C requires all the variables to be declared at the beginning of a scope but in c++ we can
declare variables anywhere in the scope. This makes the programmer easier to understand
because the variables are declared in the context of their use.

14. What are the c++ tokens?


Ans: c++ has the following tokens
I. keywords
II. Identifiers
III. Constants
IV. Strings
V. operators

15. What do you mean by reference variable in c++?


Ans: A reference variable provides an alias to a previously defined variable.
Data type & reference-name = variable name

16. What do you mean by implicit conversion?


Ans: Whenever data types are mixed in an expression then c++ performs the conversion
automatically.
Here smaller type is converted to wider type.
Example- in case of integer and float integer is converted into float type.

17. What is the difference between method overloading and method overriding?
Ans: Overloading a method (or function) in C++ is the ability for functions of the same name to
be defined as long as these methods have different signatures (different set of parameters).
Method overriding is the ability of the inherited class rewriting the virtual method of the base
class.

18. What are the defining traits of an object-oriented language?


The defining traits of an object-oriented language are:
encapsulation
inheritance
polymorphism
Ans:
Polymorphism: is a feature of OOPL that at run time depending upon the type of object the
appropriate method is called.

Inheritance: is a feature of OOPL that represents the “is a” relationship between different
objects (classes). Say in real life a manager is a employee. So in OOPL manger class is inherited
from the employee class.

Encapsulation: is a feature of OOPL that is used to hide the information.

19. What is polymorphism?


Ans: Polymorphism is the idea that a base class can be inherited by several classes. A base class
pointer can point to its child class and a base class array can store different child class objects.

20. What do you mean by inline function?


Ans: An inline function is a function that is expanded inline when invoked.ie. the compiler
replaces the function call with the corresponding function code. An inline function is a function
that is expanded in line when it is invoked. That is the compiler replaces the function call with
the corresponding function code (similar to macro).

21 What is the difference between a NULL pointer and a void pointer?


Ans: A NULL pointer is a pointer of any type whose value is zero. A void pointer is a pointer to
an object of an unknown type, and is guaranteed to have enough bits to hold a pointer to any
object. A void pointer is not guaranteed to have enough bits to point to a function (though in
general practice it does).

22. What is difference between C++ and Java?


Ans: C++ has pointers Java does not.
Java is platform independent C++ is not.
Java has garbage collection C++ does not.

23. What do you mean by multiple inheritance in C++ ?


Ans: Multiple inheritance is a feature in C++ by which one class can be of different types. Say
class teaching Assistant is inherited from two classes say teacher and Student.

24. What do you mean by virtual methods?


Ans: virtual methods are used to use the polymorphism feature in C++. Say class A is inherited
from class B. If we declare say function f() as virtual in class B and override the same function in
class A then at runtime appropriate method of the class will be called depending upon the type of
the object.

25. What do you mean by static methods?


Ans: By using the static method there is no need creating an object of that class to use that
method. We can directly call that method on that class. For example, say class A has static
function f(), then we can call f() function as A.f(). There is no need of creating an object of class
A.
26. How many ways are there to initialize an int with a constant?
Ans: Two.
There are two formats for initializers in C++ as shown in the example that follows. The first
format uses the traditional C notation. The second format uses constructor notation.
int foo = 123;
int bar (123);

27. What is a constructor?


Ans: Constructor is a special member function of a class, which is invoked automatically
whenever an instance of the class is created. It has the same name as its class.

28. What is destructor?


Ans: Destructor is a special member function of a class, which is invoked automatically
whenever an object goes out of the scope. It has the same name as its class with a tilde character
prefixed.

29. What is an explicit constructor?


Ans: A conversion constructor declared with the explicit keyword. The compiler does not use an
explicit constructor to implement an implied conversion of types. It’s purpose is reserved
explicitly for construction.

30 What is the Standard Template Library?


Ans: A library of container templates approved by the ANSI committee for inclusion in the
standard C++ specification. A programmer who then launches into a discussion of the generic
programming model, iterators, allocators, algorithms, and such, has a higher than average
understanding of the new technology that STL brings to C++ programming.

31. What problem does the namespace feature solve?


Ans: Multiple providers of libraries might use common global identifiers causing a name
collision when an application tries to link with two or more such libraries. The namespace
feature surrounds a library’s external declarations with a unique namespace that eliminates the
potential for those collisions. This solution assumes that two library vendors don’t use the same
namespace identifier, of course.

32. What is the use of ‘using’ declaration?


Ans: A using declaration makes it possible to use a name from a namespace

33. What is a template?


Ans: Templates allow us to create generic functions that admit any data type as parameters and
return a value without having to overload the function with all the possible data types. Until
certain point they fulfill the functionality of a macro. Its prototype is any of the two following
ones:
template function_declaration;
template function_declaration;
34. Differentiate between a template class and class template?
Ans:
Template class:
A generic definition or a parameterized class not instantiated until the client provides the needed
information. It’s jargon for plain templates.
Class template:
A class template specifies how individual classes can be constructed much like the way a class
specifies how individual objects can be constructed. It’s jargon for plain classes.

35. What is the difference between a copy constructor and an overloaded assignment
operator?
Ans: A copy constructor constructs a new object by using the content of the argument object. An
overloaded assignment operator assigns the contents of an existing object to another existing
object of the same class.

36. What is a virtual destructor?


Ans: The simple answer is that a virtual destructor is one that is declared with the virtual
attribute.

37. What is an incomplete type?


Ans: Incomplete type refers to pointers in which there is non availability of the implementation
of the referenced location or it points to some location whose value is not available for
modification.
Example:
int *i=0×400 // i points to address 400
*i=0; //set the value of memory location pointed by i.
Incomplete types are otherwise called uninitialized pointers.

38. What do you mean by Stack unwinding?


Ans: It is a process during exception handling when the destructor is called for all local objects
between the place where the exception was thrown and where it is caught.

39. What is a container class? What are the types of container classes?
Ans: A container class is a class that is used to hold objects in memory or external storage. A
container class acts as a generic holder. A container class has a predefined behavior and a well-
known interface. A container class is a supporting class whose purpose is to hide the topology
used for maintaining the list of objects in memory. When a container class contains a group of
mixed objects, the container is called a heterogeneous container; when the container is holding a
group of objects that are all the same, the container is called a homogeneous container

40. Name some pure object oriented languages?


Ans: Smalltalk, Java, Eiffel, Sather.

41. Name the operators that cannot be overloaded?


Ans: sizeof, ., .*, .->, ::, ?:
42. What is an adaptor class or Wrapper class?
Ans: A class that has no functionality of its own. Its member functions hide the use of a third
party software component or an object with the non-compatible interface or a non-object-
oriented implementation.

43. What is a Null object?


Ans: It is an object of some class whose purpose is to indicate that a real object of that class does
not exist. One common use for a null object is a return value from a member function that is
supposed to return an object with some specified properties but cannot find such an object.

44. What is class invariant?


Ans: A class invariant is a condition that defines all valid states for an object. It is a logical
condition to ensure the correct working of a class. Class invariants must hold when an object is
created, and they must be preserved under all operations of the class. In particular all class
invariants are both preconditions and post-conditions for all operations or member functions of
the class.

45. What is a dangling pointer?


Ans: A dangling pointer arises when you use the address of an object after its lifetime is over.
This may occur in situations like returning addresses of the automatic variables from a function
or using the address of the memory block after it is freed. Example: The following code snippet
shows this:
class Sample
{
public:
int *ptr;
Sample(int i)
{
ptr = new int(i);
}
~Sample()
{
delete ptr;
}
void PrintVal()
{
cout << “The value is ” << *ptr;
}
};
void SomeFunc(Sample x)
{
cout << “Say i am in someFunc ” << endl;
}
int main()
{
Sample s1= 10;
SomeFunc(s1);
s1.PrintVal();
}
In the above example when PrintVal() function is called it is called by the pointer that has been
freed by the destructor in SomeFunc.

46. Differentiate between the message and method?


Ans:
Message:
Objects communicate by sending messages to each other.
A message is sent to invoke a method.
Method
Provides response to a message and it is an implementation of an operation

47. How can we access protected and private members of a class?


Ans: In the case of members protected and private, these could not be accessed from outside the
same class at which they are declared. This rule can be transgressed with the use of the friend
keyword in a class, so we can allow an external function to gain access to the protected and
private members of a class.

48. Can you handle exception in C++?


Ans: Yes we can handle exception in C++ using keyword: try, catch and throw. Program
statements that we want to monitor for exceptions are contained in a try block. If an exception
occurs within the try block, it is thrown (using throw).The exception is caught, using catch, and
processed.

49. What is virtual function?


Ans: A virtual function is a member function that is declared within a base class and
redefined by a derived class .To create a virtual function, the function declaration in the base
class is preceded by the keyword virtual.

50. What do you mean by early binding?


Ans:Early binding refers to the events that occur at compile time. Early binding occurs when
all information needed to call a function is known at compile time. Examples of early binding
include normal function calls, overloaded function calls, and overloaded operators. The
advantage of early binding is efficiency.

51. What do you mean by late binding?


Ans: Late binding refers to function calls that are not resolved until run time. Virtual functions
are used to achieve late binding. When access is via a base pointer or reference, the virtual
function actually called is determined by the type of object pointed to by the pointer.

DATA STRUCTURES
1. What is data structure?
Ans: The logical and mathematical model of a particular organization of data is called data
structure. There are two types of data structure
i) Linear
ii) Nonlinear

2. What are the goals of Data Structure?


Ans: It must rich enough in structure to reflect the actual relationship of data in real world.
The structure should be simple enough for efficient processing of data.

3. What does abstract Data Type Mean?


Ans: Data type is a collection of values and a set of operations on these values. Abstract data
type refer to the mathematical concept that define the data type.
It is a useful tool for specifying the logical properties of a data type.
ADT consists of two parts
1) Values definition
2) Operation definition
Example:-The value definition for the ADT RATIONAL states that RATIONAL value consists
of two integers, second doesn’t equal to zero.
The operator definition for ADT RATIONAL includes the operation of creation (make rational)
addition, multiplication and test for equality.

4. What is the difference between a Stack and an Array?


Ans:
i) Stack is a ordered collection of items
ii) Stack is a dynamic object whose size is constantly changing as items are pushed and popped .
iii) Stack may contain different data types
iv) Stack is declared as a structure containing an array to hold the element of the stack, and an
integer to indicate the current stack top within the array.
ARRAY
i) Array is an ordered collection of items
ii) Array is a static object i.e. no of item is fixed and is assigned by the declaration of the array
iii) It contains same data types.
iv) Array can be home of a stack i.e. array can be declared large enough for maximum size of the
stack.

5. What do you mean by recursive definition?


Ans: The definition which defines an object in terms of simpler cases of itself is called recursive
definition.

6. What is sequential search?


Ans: In sequential search each item in the array is compared with the item being searched until a
match occurs. It is applicable to a table organized either as an array or as a linked list.

7. What actions are performed when a function is called?


Ans: When a function is called
i) arguments are passed
ii) local variables are allocated and initialized
ii) transferring control to the function

8. What actions are performed when a function returns?


Ans:
i) Return address is retrieved
ii) Function’s data area is freed
iii) Branch is taken to the return address

9. What is a linked list?


Ans: A linked list is a linear collection of data elements, called nodes, where the linear order is
given by pointers. Each node has two parts first part contain the information of the element
second part contains the address of the next node in the list.

10. What are the advantages of linked list over array (static data structure)?
Ans:
The disadvantages of array are
i) unlike linked list it is expensive to insert and delete elements in the array
ii) One can’t double or triple the size of array as it occupies block of memory space.

In linked list
i) each element in list contains a field, called a link or pointer which contains the address of the
next element
ii) Successive element’s need not occupy adjacent space in memory.

11. Can we apply binary search algorithm to a sorted linked list, why?
Ans: No we cannot apply binary search algorithm to a sorted linked list, since there is no way of
indexing the middle element in the list. This is the drawback in using linked list as a data
structure.

12. What do you mean by free pool?


Ans: Pool is a list consisting of unused memory cells which has its own pointer.

13. What do you mean by garbage collection?


Ans: It is a technique in which the operating system periodically collects all the deleted space
onto the free storage list.
It takes place when there is minimum amount of space left in storage list or when CPU is ideal.
The alternate method to this is to immediately reinsert the space into free storage list which is
time consuming.

14. What do you mean by overflow and underflow?


Ans: When new data is to be inserted into the data structure but there is no available space i.e.
free storage list is empty this situation is called overflow.
When we want to delete data from a data structure that is empty this situation is called
underflow.
15. What are the disadvantages array implementations of linked list?
Ans:
i) The no of nodes needed can’t be predicted when the program is written.
ii) The no of nodes declared must remain allocated throughout its execution

16. What is a queue?


Ans: A queue is an ordered collection of items from which items may be deleted at one end
(front end) and items inserted at the other end (rear end).
It obeys FIFO rule there is no limit to the number of elements a queue contains.

17. What is a priority queue?


Ans: The priority queue is a data structure in which the intrinsic ordering of the elements
(numeric or alphabetic)
Determines the result of its basic operation. It is of two types
i) Ascending priority queue- Here smallest item can be removed (insertion is arbitrary)
ii) Descending priority queue- Here largest item can be removed (insertion is arbitrary)

18. What are the disadvantages of sequential storage?


Ans:
i) Fixed amount of storage remains allocated to the data structure even if it contains less element.
ii) No more than fixed amount of storage is allocated causing overflow

19. What are the disadvantages of representing a stack or queue by a linked list?
Ans:
i) A node in a linked list (info and next field) occupies more storage than a corresponding
element in an array.
ii) Additional time spent in managing the available list.

20. What is dangling pointer and how to avoid it?


Ans: After a call to free(p) makes a subsequent reference to *p illegal, i.e. though the storage to
p is freed but the value of p(address) remain unchanged .so the object at that address may be
used as the value of *p (i.e. there is no way to detect the illegality).Here p is called dangling
pointer.
To avoid this it is better to set p to NULL after executing free(p).The null pointer value doesn’t
reference a storage location it is a pointer that doesn’t point to anything.

21. What are the disadvantages of linear list?


Ans:
i) We cannot reach any of the nodes that precede node (p)
ii) If a list is traversed, the external pointer to the list must be persevered in order to reference the
list again

22. Define circular list?


Ans: In linear list the next field of the last node contain a null pointer, when a next field in the
last node contain a pointer back to the first node it is called circular list.
Advantages – From any point in the list it is possible to reach at any other point
23. What are the disadvantages of circular list?
Ans:
i) We can’t traverse the list backward
ii) If a pointer to a node is given we cannot delete the node

24. Define double linked list?


Ans: It is a collection of data elements called nodes, where each node is divided into three parts
i) An info field that contains the information stored in the node
ii) Left field that contain pointer to node on left side
iii) Right field that contain pointer to node on right side

25. Is it necessary to sort a file before searching a particular item ?


Ans:
If less work is involved in searching a element than to sort and then extract, then we don’t go for
sort
If frequent use of the file is required for the purpose of retrieving specific element, it is more
efficient to sort the file.
Thus it depends on situation.

26. What are the issues that hamper the efficiency in sorting a file?
Ans: The issues are
i) Length of time required by the programmer in coding a particular sorting program
ii) Amount of machine time necessary for running the particular program
iii)The amount of space necessary for the particular program .

27. Calculate the efficiency of sequential search?


Ans: The number of comparisons depends on where the record with the argument key appears in
the table
If it appears at first position then one comparison
If it appears at last position then n comparisons
Average=(n+1)/2 comparisons
Unsuccessful search n comparisons
Number of comparisons in any case is O (n).

28. Is any implicit arguments are passed to a function when it is called?


Ans: Yes there is a set of implicit arguments that contain information necessary for the function
to execute and return correctly. One of them is return address which is stored within the
function’s data area, at the time of returning to calling program the address is retrieved and the
function branches to that location.

29. Parenthesis is never required in Postfix or Prefix expressions, why?


Ans: Parenthesis is not required because the order of the operators in the postfix /prefix
expressions determines the actual order of operations in evaluating the expression

30. List out the areas in which data structures are applied extensively?
Ans:
Compiler Design,
Operating System,
Database Management System,
Statistical analysis package,
Numerical Analysis,
Graphics,
Artificial Intelligence,
Simulation

31. What are the major data structures used in the following areas : network data model &
Hierarchical data model.
Ans:
RDBMS – Array (i.e. Array of structures)
Network data model – Graph
Hierarchical data model – Trees

32. If you are using C language to implement the heterogeneous linked list, what pointer
type will you use?
Ans: The heterogeneous linked list contains different data types in its nodes and we need a link,
pointer to connect them. It is not possible to use ordinary pointers for this. So we go for void
pointer. Void pointer is capable of storing pointer to any type as it is a generic pointer type.

33. Minimum number of queues needed to implement the priority queue?


Ans: Two. One queue is used for actual storing of data and another for storing priorities.

34. What is the data structures used to perform recursion?


Ans: Stack. Because of its LIFO (Last In First Out) property it remembers its ‘caller’ so knows
whom to return when the function has to return. Recursion makes use of system stack for storing
the return addresses of the function calls.
Every recursive function has its equivalent iterative (non-recursive) function. Even when such
equivalent iterative procedures are written, explicit stack is to be used.

35. What are the notations used in Evaluation of Arithmetic Expressions using prefix and
postfix forms?
Ans: Polish and Reverse Polish notations.

36. Convert the expression ((A + B) * C – (D – E) ^ (F + G)) to equivalent Prefix and


Postfix notations.
Ans: Prefix Notation:
^ – * +ABC – DE + FG
Postfix Notation:
AB + C * DE – – FG + ^

37. Sorting is not possible by using which of the following methods?


(a) Insertion
(b) Selection
(c) Exchange
(d) Deletion

Ans: (d) Deletion.


Using insertion we can perform insertion sort, using selection we can perform selection sort,
using exchange we can perform the bubble sort (and other similar sorting methods). But no
sorting method can be done just using deletion.

38. List out few of the Application of tree data-structure?


Ans:
The manipulation of Arithmetic expression,
Symbol Table construction,
Syntax analysis.

39. List out few of the applications that make use of Multilinked Structures?
Ans: Sparse matrix, Index generation.

40. in tree construction which is the suitable efficient data structure?


(A) Array (b) Linked list (c) Stack (d) Queue (e) none
Ans: (b) Linked list

41. What is the type of the algorithm used in solving the 8 Queens problem?
Ans: Backtracking

42. In an AVL tree, at what condition the balancing is to be done?


Ans: If the ‘pivotal value’ (or the ‘Height factor’) is greater than 1 or less than –1.

43. There are 8, 15, 13, 14 nodes were there in 4 different trees. Which of them could have
formed a full binary tree?
Ans: 15
In general:
There are 2n-1 nodes in a full binary tree.

By the method of elimination:


Full binary trees contain odd number of nodes. So there cannot be full binary trees with 8 or 14
nodes, so rejected. With 13 nodes you can form a complete binary tree but not a full binary tree.
So the correct answer is 15.
Note: Full and Complete binary trees are different. All full binary trees are complete binary trees
but not vice versa.

44. In RDBMS, what is the efficient data structure used in the internal storage
representation?
Ans: B+ tree. Because in B+ tree, all the data is stored only in leaf nodes, that makes searching
easier. This corresponds to the records that shall
be stored in leaf nodes.
45. One of the following tree structures, which is, efficient considering space and time
complexities?
a) Incomplete Binary Tree.
b) Complete Binary Tree.
c) Full Binary Tree.
Ans:
b) Complete Binary Tree.
By the method of elimination:
Full binary tree loses its nature when operations of insertions and deletions are done. For
incomplete binary trees,
extra property of complete binary tree is maintained even after operations like additions and
deletions are done on it.

46. What is a spanning Tree?


Ans: A spanning tree is a tree associated with a network. All the nodes of the graph appear on
the tree once. A minimum spanning tree is a spanning tree organized so that the total edge weight
between nodes is minimized.

47. Does the minimum spanning tree of a graph give the shortest distance between any 2
specified nodes?
Ans: No.
Minimal spanning tree assures that the total weight of the tree is kept at its minimum. But it
doesn’t mean that the distance between any two nodes involved in the minimum-spanning tree is
minimum.

48. Whether Linked List is linear or Non-linear data structure?


Ans: According to Storage Linked List is a Non-linear one.

DBMS
1.What is a Database?
Ans: A database is a collection of related data .A database is a logically coherent
collection of data with some inherent meaning.

2. What is DBMS?
Ans: Database Management system is a collection of programs that enables user to create and
maintain a database.
Thus a DBMS is a general purposed s/w system that facilitates the process of defining
constructing and manipulating a database for various applications. (Defining a data base involves
specifying the data types, structures and constraints for the data to be stored in the data database.
Constructing a data base is the process of storing data itself on some storage medium that is
controlled by DBMS. Manipulating a database includes such functions as querying the data base
to retrieve specific data, updating the database to reflect the changes in the mini-world.

3. What is a Catalog?
Ans: A catalog is a table that contain the information such as structure of each file ,
the type and storage format of each data item and various constraints on the data .
The information stored in the catalog is called Metadata . Whenever a request is
made to access a particular data, the DBMS s/w refers to the catalog to determine
the structure of the file.

4. What is data ware housing & OLAP?


Ans: Data warehousing and OLAP (online analytical processing ) systems are the
techniques used in many companies to extract and analyze useful information
from very large databases for decision making .

5. What is real time database technology?


Ans: These are all the techniques used in controlling industrial and manufacturing
processes.

6. What is program-data independence?


Ans: Unlike in the traditional file sys. the structure of the data files is stored in the
DBMS catalog separately from the access programs . This property is called
program-data independence.i.e. We needn’t to change the code of the DBMS if the
structure of the data is changed .Which is not supported by traditional file sys .

7. What is ORDBMS?
Ans: Object oriented RDBMS is a relational DBMS in which every thing is treated as
objects. User can define operations on data as a part of the database definition.

8. What is program-operation independence?


Ans: An operation is specified in two parts .
1. Interface (operation name and data types of its arguments).
2. Implementation (the code part)
The implementation part can be changed without affecting the interface. This is called
program-operation independence.

9. What is a view?
Ans: A view may be a subset of the database or it may contain virtual data that is
derived from the database files but is not explicitly stored .

10. What is OLTP?


Ans: Online transaction processing is an application that involve multiple database accesses
from different parts of the world . OLTP needs a multi-user DBMS s/w to ensure that concurrent
transactions operate correctly.

11. What is the job of DBA?


Ans: A database administrator is a person or a group responsible for authorizing access to the
database, for coordinating and monitoring its use, and for acquiring s/w and h/w resources as
needed.
12. Who are db designer?
Ans: Data base designers are responsible for identifying the data to be stored in the database and
for
choosing appropriate structure to represent and store this data .

13. What are different types of end users?


Ans:
1. Casual end-users
2. Naive or parametric end users
3. Sophisticated end users
4. Stand alone users.

14. What are the advantages of using a dbms?


Ans:
1. Controlling redundancy.
2. Restricting unauthorized access.
3. Providing persistent storage for program objects and data structures.
4. Permitting inferencing and actions using rules.
5. Providing multi-user interfaces.
6. Representing complex relationships among data.
7. Enforcing integrity constraints.
8. Providing backups and recovery.

15. What are the disadvantages of using a dbms?


Ans:
1. High initial investments in h/w, s/w, and training.
2. Generality that a DBMS provides for defining and processing data.
3. Overhead for providing security, concurrency control, recovery, and integrity functions.

16. What is a data model?


Ans: It is a collection of concepts that can be used to describe the structure of a database. It
provides necessary means to achieve this abstraction. By structure of a database we mean the
data types, relations, and constraints that should hold on the data.

17. What are different categories of data models?


Ans:
1. High-level or conceptual data models.
2. Representational data models.
3. Low-level or physical data models.
High level data models provide the concepts that are close to the way many users perceive data.
Representational data models are provide concepts that provide the concepts that may be
understood by end users but that are not too far removed from organization of data in the
database.
Physical data models describe the details of how data is stored in the computers.
18. What is schema?
Ans: The description of a data base is called the database schema , which is specified during
database design and is not expected to change frequently . A displayed schema is called schema
diagram .We call each object in the schema as schema construct.

19. What are types of schema?


Ans:
1. internal schema.
2. Conceptual schema.
3. External schemas or user views.

20. What is Data independency?


Ans: Data independency is defined as the capacity to change the conceptual schema without
having to change the schema at the next higher level. We can define two types of data
independence:
1. Logical data independence.
2. Physical data independence.
LDI is the capacity to change the conceptual schema without having to change external schemas
or application programs.
PDI is the capacity to change the internal schema without having to change conceptual (or
external) schemas.

21. What are different DBMS languages?


Ans:
1. DDL (Data definition language)
2. SDL (Storage definition language)
3. VDL (View definition language)
4. DML (Data manipulation language)

22. What are different types of DBMS?


Ans:
1. DBMS
2. RDBMS (Relational)
3. ORDBMS (Object Relational)
4. DDBMS (Distributed)
5. FDBMS (Federated)
6. HDDBMS (Homogeneous)
7. HDBMS (Hierarchical)
8. NDBMS (Networked)

23. What is an entity?


Ans: An entity is a thing in the real world with an independent existence.

24. What are attributes?


Ans: These are the particular properties that describe an entity.
25. What are diff. types of attributes?
Ans:
1. Composite Vs simple attributes.
2. Single valued Vs multi-valued attributes.
3. Stored Vs derived attribute.
4. Null valued attributes.
5. Complex attributes.

26. What is difference between entity set and entity type?

27. What is domain value or value set of an attribute?


Ans: It is the set of values that may be assigned to that attribute for each individual entities .

28. What is degree of a relationship?


Ans: The no of entities participating in that relation .

29. What is recursive relationship?


Ans: It is the relationship where both the participating entities belong to same entity type .

30. What are relationship constraints?


Ans:
1. Cardinality ratio.
2. Participation constraints.

31. What is Cardinality ratio?


Ans: The cardinality ratio for a binary relationship specifies the number of relationship instances
that an entity can participate in.

32. What is a Participation constraint?


Ans: The participation constraint specifies whether the existence of an entity depends on its
being related to another entity via the relationship type. This is of two types:
1. Total participation.
2. Partial participation.

33. What is a weak entity types?


Ans: The entity types that do not have key attributes of their own are called weak entity types.
Rests are called strong entity types .The entity that gives identity to a weak entity is called owner
entity. And the relationship is called identifying relationship. A weak entity type always has a
total participation constraint with respect to its identifying relationship.

34. What is an ER Diagram?


Ans:
This data model is based on real world that consists of basic objects called entities and of
relationship among these objects. Entities are described in a database by a set of attributes.
35. What is an EER?
Ans:
==

36. What is specialization?


Ans: It is the process of defining a set of subclasses of an entity type where each subclass
contain all the attributes and relationships of the parent entity and may have additional attributes
and relationships which are specific to itself.

37. What is generalization?


Ans: It is the process of finding common attributes and relations of a number of entities and
defining a common super class for them.

38. What are constraints on generalization and specialization?


Ans:
1. disjoint ness constraints.
2. Completeness constraints.
Disjointness constraint specifies that the subclasses of the specialization must be disjoint .i.e. an
entity can be a member of at most one of the subclasses of the specialization. The reverse of it is
overlapping.
Completeness constraint is a participation constraint which may be
1. Total
2. Partial
Total specialization constraint tells that each entity in the super class must be a member of some
subclass in the specialization. And partial specialization constraint allows an entity not to belong
to any of the subclasses .Thus we do have the following 4 types of constraints on specialization:
1. Disjoint, total
2. Disjoint, partial
3. Overlapping, total
4. Overlapping, partial

39. What is a ternary relationship?


Ans: A relationship with a degree 3 is called a ternary relationship.

40. What is aggregation and association?


Ans: Aggregation is an abstraction concept for building composite objects from their component
objects. The abstraction of association is used to associate objects from several independent
classes.

41. What is RAID Technology?


Ans: Redundant array of inexpensive (or independent) disks. The main goal of raid technology is
to even out the widely different rates of performance improvement of disks against those in
memory and microprocessor. Raid technology employs the technique of data striping to achieve
higher transfer rates.

42. What is Hashing technique?


Ans: This is a primary file organization technique that provides very fast access to records on
certain search conditions. The search condition must be an equality condition on a single field,
called hash field of the file.
1. Internal hashing
2. External hashing
3. Extendible hashing
4. Linear hashing
5. Partitioned hashing

43. What are different types of relational constraints?


Ans:
1. Domain constraints
2. Key constraints
3. Entity integrity constraints
4. Referential integrity constraints
Domain constraints specify that the value of each attribute must be an atomic value from the
domain of the attributes.
Key constraints tell that no two tuples can have the same combination of values for all their
attributes.
Entity integrity constraint states that no primary key value can be null.
Referential integrity constraints states that a tuple in one relation that refers to another relation
must refer to an existing tuple in that relation it is specified between two relations and is used to
maintain the consistency among tuples of the two relations.

44. What is difference between a super key, a key, a candidate key and a primary key?
Ans: A super key specifies a uniqueness constrain that no two distinct tuples in a state
can have the same value for the super key. Every relation has at least one default super key.
A key is a minimal super key or the subset of the super key which is obtained after
removing redundancy. A relation schema may have more than one key .In this case
each key is called a candidate key. One of the candidate key with minimum number
of attributes is chosen as primary key.

45. What is a foreign key?


Ans: A key of a relation schema is called as a foreign key if it is the primary key of
some other relation to which it is related to.

46. What is a transaction?


Ans: A transaction is a logical unit of database processing that includes one or more
database access operations.

47. What are the properties of transaction?


Ans:
1. Atomicity
2. Consistency preservation
3. Isolation
4. Durability (permanence)
48. What are the basic data base operations?
Ans:
1. Write_item(x)
2. Read_item(x)

49. What are the disadvantages of not controlling concurrency?


Ans:
1. Lost update problem
2. Temporary update(Dirty read) problem
3. Incorrect summary problem

50. What are serial, non serial?


Ans: A schedule S is serial if, for every transaction T participating in the schedule, all the
operations of T is executed consecutively in the schedule, otherwise, the schedule is called non-
serial schedule.

51. What are conflict serializable schedules?


Ans: A schedule S of n transactions is serializable if it is equivalent to some serial schedule of
the same n transactions.

52. What is result equivalent?


Ans: Two schedules are called result equivalent if they produce the same final state of the data
base.

53. What are conflict equivalent schedules?


Ans: Two schedules are said to be conflict equivalent if the order of any two conflicting
operations is the same in both schedules.

54. What is a conflict serializable schedule?


Ans: A schedule is called conflict serializable if it is conflict equivalent to some serial schedule.

55. What is view equivalence?


Ans: Two schedules S and S’ are said to be view equivalent if the following three conditions
hold :
1. Both S and S’ contain same set of transactions with same operations in them.
2. If any read operation read(x) reads a value written by a write operation or the original value of
x the same conditions must hold in the other schedule for the same read(x) operation.
3. If an operation write1(y) is the last operation to write the value of y in schedule S then the
same operation must be the last operation in schedule S’.

56. What is view serializable?


Ans: A schedule is said to be view serializable if it is view equivalent with some serial schedule.

57. What are the various methods of controlling concurrency?


Ans:
1. Locking
2. Time stamp
Locking data item to prevent multiple transactions from accessing the item concurrently.
A time stamp is a unique identifier for each transaction, generated by the system.

58. What is a lock?


Ans: A lock is a variable associated with a data item that describes the status of the item with
respect to the possible operations that can be applied to it.

59. What are various types of locking techniques?


Ans:
1. a binary lock
2. Shared/Exclusive lock
3. Two phase locking

60. What is a binary lock?


Ans: A binary lock can have two states or values:
1. locked (1)
2. unlocked(0)
If locked it cannot be accessed by any other operations, else can be.

61. What is shared or exclusive lock?


Ans: It implements multiple-mode lock. Allowing multiple accesses for read operations but
exclusive access for write operation.

62. Explain two phase locking?


Ans: All the locking operations must precede the first unlock operation in the transaction .It does
have two phases:
1. expanding phase (Locks are issued)
2. Shrinking phase (Locks are released)

63. What are different types of two phase lockings (2pl)?


Ans:
1. Basic
2. Conservative
3. Strict
4. Rigorous
this is the basic technique of 2pl described above.
Conservative 2pl requires a transaction to lock all the items it accesses before the transaction
begins its execution, by pre-declaring it’s read-set and write-set.
Strict 2pl guarantees that a transaction doesn’t release any of its exclusive locks until after it
commits or aborts.
Rigorous guarantees that a transaction doesn’t release any of its locks (including shared locks)
until after it commits or aborts.

64. What is a deadlock?


Ans: Dead lock occurs when each transaction T in a set of two or more transactions is waiting
for some item that is locked by some other transaction T’ in the set. Hence each transaction is in
a waiting queue, waiting for one of the other transactions to release the lock on them.

65. What are triggers?


Ans: Triggers are the PL/SQL blocks definining an action the database should take when some
database related event occurs. Triggers may be used to supplement declarative referential
integrity, to enforce complex business rules, or to audit changes to data.

OPERATING SYSTEM
1.What is an operating system?
Ans: An operating system is a program that acts as an intermediary between the user and the
computer hardware. The purpose of an OS is to provide a convenient environment in which user
can execute programs in a convenient and efficient manner.It is a resource allocator responsible
for allocating system resources and a control program which controls the operation of the
computer h/w.

2.What are the various components of a computer system?


Ans:
1. The hardware
2. The operating system
3. The application programs
4. The users.

3.What is purpose of different operating systems?


Ans:The machine Purpose Workstation individual usability &Resources utilization Mainframe
Optimize utilization of hardware PC Support complex games, business application Hand held
PCs Easy interface & min. power consumption

4.What are the different operating systems?


Ans:
1. Batched operating systems
2. Multi-programmed operating systems
3. timesharing operating systems
4. Distributed operating systems
5. Real-time operating systems

6.What is a boot-strap program?

7.What is BIOS?

8.Explain the concept of the batched operating systems?


Ans: In batched operating system the users gives their jobs to the operator who sorts the
programs according to their requirements and executes them. This is time consuming but makes
the CPU busy all the time.
9.Explain the concept of the multi-programmed operating systems?
Ans: A multi-programmed operating systems can execute a number of programs concurrently.
The operating system fetches a group of programs from the job-pool in the secondary storage
which contains all the programs to be executed, and places them in the main memory. This
process is called job scheduling. Then it chooses a
program from the ready queue and gives them to CPU to execute. When a executing program
needs some I/O operation then the operating system fetches another program and hands it to the
CPU for execution, thus keeping the CPU busy all the time.

10.Explain the concept of the timesharing operating systems?


Ans: It is a logical extension of the multi-programmed OS where user can interact with the
program. The CPU executes multiple jobs by switching among them, but the switches occur so
frequently that the user feels as if the operating system is running only his program.

11.Explain the concept of the multi-processor systems or parallel systems?


Ans: They contain a no. of processors to increase the speed of execution, and reliability, and
economy. They are of two types:
1. Symmetric multiprocessing
2. Asymmetric multiprocessing
In Symmetric multi processing each processor run an identical copy of the OS, and these copies
communicate with each other as and when needed.But in Asymmetric multiprocessing each
processor is assigned a specific task.

12.Explain the concept of the Distributed systems?


Ans: Distributed systems work in a network. They can share the network resources,communicate
with each other

13.Explain the concept of Real-time operating systems?


Ans: A real time operating system is used when rigid time requirement have been placed on the
operation of a processor or the flow of the data; thus, it is often used as a control device in a
dedicated application. Here the sensors bring data to the computer. The computer must analyze
the data and possibly adjust controls to
modify the sensor input.
They are of two types:
1. Hard real time OS
2. Soft real time OS
Hard-real-time OS has well-defined fixed time constraints. But soft real time operating systems
have less stringent timing constraints.

14.Define MULTICS?
Ans: MULTICS (Multiplexed information and computing services) operating system was
developed from 1965-1970 at Massachusetts institute of technology as a computing utility. Many
of the ideas used in MULTICS were subsequently used in UNIX.

15.What is SCSI?
Ans: Small computer systems interface.
16.What is a sector?
Ans: Smallest addressable portion of a disk.

17.What is cache-coherency?
Ans: In a multiprocessor system there exist several caches each may containing a copy of same
variable A. Then a change in one cache should immediately be reflected in all other caches this
process of maintaining the same value of a data in all the caches s called cache-coherency.

18.What are residence monitors?


Ans: Early operating systems were called residence monitors.

19.What is dual-mode operation?


Ans: In order to protect the operating systems and the system programs from the malfunctioning
programs the two mode operations were evolved:
1. System mode.
2. User mode.
Here the user programs cannot directly interact with the system resources, instead they request
the operating system which checks the request and does the required task for the user programs-
DOS was written for / intel 8088 and has no dual-mode. Pentium provides dual-mode operation.

20.What are the operating system components?


Ans:
1. Process management
2. Main memory management
3. File management
4. I/O system management
5. Secondary storage management
6. Networking
7. Protection system
8. Command interpreter system

21.What are operating system services?


Ans:
1. Program execution
2. I/O operations
3. File system manipulation
4. Communication
5. Error detection
6. Resource allocation
7. Accounting
8. Protection

22.What are system calls?


Ans: System calls provide the interface between a process and the operating system. System
calls for modern Microsoft windows platforms are part of the win32 API, which is available for
all the compilers written for Microsoft windows.
23.What is a layered approach and what is its advantage?
Ans: Layered approach is a step towards modularizing of the system, in which the operating
system is broken up into a number of layers (or levels), each built on top of lower layer. The
bottom layer is the hard ware and the top most is the user interface.The main advantage of the
layered approach is modularity. The layers are
selected such that each uses the functions (operations) and services of only lower layer. This
approach simplifies the debugging and system verification.

24.What is micro kernel approach and site its advantages?


Ans: Micro kernel approach is a step towards modularizing the operating system where all
nonessential components from the kernel are removed and implemented as system and user level
program, making the kernel smaller.The benefits of the micro kernel approach include the ease
of extending the operating system. All new services are added to the user space and consequently
do not require modification of the kernel. And as kernel is smaller it is easier to upgrade it. Also
this approach provides more security and reliability since most services are running as user
processes rather than kernel’s keeping the kernel intact.

25.What are a virtual machines and site their advantages?


Ans: It is the concept by which an operating system can create an illusion that a process has its
own processor with its own (virtual) memory. The operating system implements virtual machine
concept by using CPU scheduling and virtual memory.

1. The basic advantage is it provides robust level of security as each virtual machine is isolated
from all other VM. Hence the system resources are completely protected.
2. Another advantage is that system development can be done without disrupting normal
operation. System programmers are given their own virtual machine, and as system development
is done on the virtual machine instead of on the actual
physical machine.
3. Another advantage of the virtual machine is it solves the compatibility problem.
EX: Java supplied by Sun micro system provides a specification for java virtual machine.

26.What is a process?
Ans: A program in execution is called a process. Or it may also be called a unit of work. A
process needs some system resources as CPU time, memory, files, and i/o devices to accomplish
the task. Each process is represented in the operating system by a process control block or task
control block (PCB).Processes are of two types:
1. Operating system processes
2. User processes

27.What are the states of a process?


Ans:
1. New
2. Running
3. Waiting
4. Ready
5. Terminated
28.What are various scheduling queues?
Ans:
1. Job queue
2. Ready queue
3. Device queue

29.What is a job queue?


Ans: When a process enters the system it is placed in the job queue.

30.What is a ready queue?


Ans: The processes that are residing in the main memory and are ready and waiting to execute
are kept on a list called the ready queue.

31.What is a device queue?


Ans: A list of processes waiting for a particular I/O device is called device queue.

32.What is a long term scheduler & short term schedulers?


Ans: Long term schedulers are the job schedulers that select processes from the job queue and
load them into memory for execution. The short term schedulers are the CPU schedulers that
select a process form the ready queue and allocate the CPU to one of them.

33.What is context switching?


Ans: Transferring the control from one process to other process requires saving the state of the
old process and loading the saved state for new process. This task is known as context switching.

34.What are the disadvantages of context switching?


Ans: Time taken for switching from one process to other is pure over head. Because the system
does no useful work while switching. So one of the solutions is to go for threading when ever
possible.

35.What are co-operating processes?


Ans: The processes which share system resources as data among each other. Also the processes
can communicate with each other via interprocess communication facility generally used in
distributed systems. The best example is chat program used on the www.

36.What is a thread?
Ans: A thread is a program line under execution. Thread sometimes called a light-weight
process, is a basic unit of CPU utilization; it comprises a thread id, a program counter, a register
set, and a stack.

37.What are the benefits of multithreaded programming?


Ans:
1. Responsiveness (needn’t to wait for a lengthy process)
2. Resources sharing
3. Economy (Context switching between threads is easy)
4. Utilization of multiprocessor architectures (perfect utilization of the multiple processors).
38.What are types of threads?
Ans:
1. User thread
2. Kernel thread
User threads are easy to create and use but the disadvantage is that if they perform a blocking
system calls the kernel is engaged completely to the single user thread blocking other processes.
They are created in user space.Kernel threads are supported directly by the operating system.
They are slower to create and manage. Most of the OS like Windows NT, Windows 2000,
Solaris2, BeOS, and Tru64 Unix support kernel threading.

39.Which category the java thread do fall in?


Ans: Java threads are created and managed by the java virtual machine, they do not easily fall
under the category of either user or kernel thread……

40.What are multithreading models?


Ans: Many OS provide both kernel threading and user threading. They are called multithreading
models. They are of three types:
1. Many-to-one model (many user level thread and one kernel thread).
2. One-to-one model
3. Many-to –many
In the first model only one user can access the kernel thread by not allowing multi-processing.
Example: Green threads of Solaris.The second model allows multiple threads to run on parallel
processing systems. Creating user thread needs to create corresponding kernel thread
(disadvantage).Example: Windows NT, Windows 2000, OS/2.The third model allows the user to
create as many threads as necessary and the corresponding kernel threads can run in parallel on a
multiprocessor.
Example: Solaris2, IRIX, HP-UX, and Tru64 Unix.

41.What is a P-thread?
Ans: P-thread refers to the POSIX standard (IEEE 1003.1c) defining an API for thread creation
and synchronization. This is a specification for thread behavior, not an implementation. The
windows OS have generally not supported the P-threads.

42.What are java threads?


Ans: Java is one of the small number of languages that support at the language level for the
creation and management of threads. However, because threads are managed by the java virtual
machine (JVM), not by a user-level library or kernel, it is difficult to classify Java threads as
either user- or kernel-level.

43.What is process synchronization?


Ans: A situation, where several processes access and manipulate the same data concurrently and
the outcome of the execution depends on the particular order in which the access takes place, is
called race condition. To guard against the race condition we need to ensure that only one
process at a time can be manipulating
the same data. The technique we use for this is called process synchronization.
44.What is critical section problem?
Ans: Critical section is the code segment of a process in which the process may be changing
common variables, updating tables, writing a file and so on. Only one process is allowed to go
into critical section at any given time (mutually exclusive).The critical section problem is to
design a protocol that the processes can use to
co-operate. The three basic requirements of critical section are:
1. Mutual exclusion
2. Progress
3. bounded waiting
Bakery algorithm is one of the solutions to CS problem.

45.What is a semaphore?
Ans: It is a synchronization tool used to solve complex critical section problems. A semaphore is
an integer variable that, apart from initialization, is accessed only through two standard atomic
operations: Wait and Signal.

46.What is bounded-buffer problem?


Ans: Here we assume that a pool consists of n buffers, each capable of holding one item. The
semaphore provides mutual exclusion for accesses to the buffer pool and is initialized to the
value 1.The empty and full semaphores count the number of empty and full buffers, respectively.
Empty is initialized to n, and full is initialized to 0.

47.What is readers-writers problem?


Ans: Here we divide the processes into two types:
1. Readers (Who want to retrieve the data only)
2. Writers (Who want to retrieve as well as manipulate)
We can provide permission to a number of readers to read same data at same time.But a writer
must be exclusively allowed to access. There are two solutions to this problem:
1. No reader will be kept waiting unless a writer has already obtained permission to use the
shared object. In other words, no reader should wait for other readers to complete simply because
a writer is waiting.
2. Once a writer is ready, that writer performs its write as soon as possible. In other words, if a
writer is waiting to access the object, no new may start reading.

48.What is dining philosophers’ problem?


Ans: Consider 5 philosophers who spend their lives thinking and eating. The philosophers share
a common circular table surrounded by 5 chairs, each belonging to one philosopher. In the center
of the table is a bowl of rice, and the table is laid with five single chop sticks. When a
philosopher thinks, she doesn’t interact with her colleagues.
From time to time, a philosopher gets hungry and tries to pick up two chop sticks that are closest
to her .A philosopher may pick up only one chop stick at a time. Obviously she can’t pick the
stick in some others hand. When a hungry philosopher has both her chopsticks at the same time,
she eats without releasing her chopsticks. When she is finished eating, she puts down both of her
chopsticks and start thinking again.
49.What is a deadlock?
Ans: Suppose a process request resources; if the resources are not available at that time the
process enters into a wait state. A waiting process may never again change state, because the
resources they have requested are held by some other waiting processes. This situation is called
deadlock.

50.What are necessary conditions for dead lock?


Ans:
1. Mutual exclusion (where at least one resource is non-sharable)
2. Hold and wait (where a process hold one resource and waits for other resource)
3. No preemption (where the resources can’t be preempted)
4. circular wait (where p[i] is waiting for p[j] to release a resource. i= 1,2,…n
j=if (i!=n) then i+1
else 1 )

51.What is resource allocation graph?


Ans: This is the graphical description of deadlocks. This graph consists of a set of edges E and a
set of vertices V. The set of vertices V is partitioned into two different types of nodes P={p1,p2,
…,pn}, the set consisting of all the resources in the system, R={r1,r2,…rn}.A directed edge Pi?
Rj is called a request edge; a directed edge Rj?
Pi is called an assignment edge. Pictorially we represent a process Pi as a circle, and each
resource type Rj as square.Since resource type Rj may have more than one instance, we represent
each such instance as a dot within the square.When a request is fulfilled the request edge is
transformed into an assignment edge. When a process releases a resource the assignment edge is
deleted. If the cycle involves a set of resource types, each of which has only a single instance,
then a deadlock has occurred. Each process involved in the cycle is deadlock.

52.What are deadlock prevention techniques?


Ans:
1. Mutual exclusion : Some resources such as read only files shouldn’t be mutually
exclusive. They should be sharable. But some resources such as printers must be
mutually exclusive.
2. Hold and wait : To avoid this condition we have to ensure that if a process is
requesting for a resource it should not hold any resources.
3. No preemption : If a process is holding some resources and requests another
resource that cannot be immediately allocated to it (that is the process must wait),
then all the resources currently being held are preempted(released autonomously).
4. Circular wait : the way to ensure that this condition never holds is to impose a
total ordering of all the resource types, and to require that each process requests
resources in an increasing order of enumeration.

53.What is a safe state and a safe sequence?


Ans: A system is in safe state only if there exists a safe sequence. A sequence of processes is a
safe sequence for the current allocation state if, for each Pi, the resources that the Pi can still
request can be satisfied by the currently available resources plus the resources held by all the Pj,
with j
54.What are the deadlock avoidance algorithms?
Ans: A dead lock avoidance algorithm dynamically examines the resource-allocation state to
ensure that a circular wait condition can never exist. The resource allocation state is defined by
the number of available and allocated resources, and the maximum demand of the process.There
are two algorithms:
1. Resource allocation graph algorithm
2. Banker’s algorithm
a. Safety algorithm
b. Resource request algorithm

55. What are the basic functions of an operating system?


Ans : Operating system controls and coordinates the use of the hardware among the various
applications programs for various uses. Operating system acts as resource allocator and manager.
Since there are many possibly conflicting requests for resources the operating system must
decide which requests are allocated resources to operating the computer system efficiently and
fairly. Also operating system is control program which controls the user programs to prevent
errors and improper use of the computer. It is especially concerned with the operation and
control of I/O devices.

56.Explain briefly about, processor, assembler, compiler, loader, linker and the functions
executed by them.
Ans :
Processor:–A processor is the part a computer system that executes instructions .It is also called a
CPU
Assembler: — An assembler is a program that takes basic computer instructions and converts
them into a pattern of bits that the computer’s processor can use to perform its basic operations.
Some people call these instructions assembler language and others use the term assembly
language.
Compiler: — A compiler is a special program that processes statements written in a particular
programming language and turns them into machine language or “code” that a computer’s
processor uses. Typically, a programmer writes language statements in a language such as Pascal
or C one line at a time using an editor. The file that is created contains what are called the source
statements. The programmer then runs the appropriate language compiler, specifying the name of
the file that contains the source statements.
Loader:–In a computer operating system, a loader is a component that locates a given program
(which can be an application or, in some cases, part of the operating system itself) in offline
storage (such as a hard disk), loads it into main storage (in a personal computer, it’s called
random access memory), and gives that program control of the compute
Linker: — Linker performs the linking of libraries with the object code to make the object code
into an executable machine code.

57. What is a Real-Time System?


Ans : A real time process is a process that must respond to the events within a certain time
period. A real time operating system is an operating system that can run real time processes
successfully
58. What is the difference between Hard and Soft real-time systems?
Ans : A hard real-time system guarantees that critical tasks complete on time. This goal requires
that all delays in the system be bounded from the retrieval of the stored data to the time that it
takes the operating system to finish any request made of it. A soft real time system where a
critical real-time task gets priority over other tasks and retains that priority until it completes. As
in hard real time systems kernel delays need to be bounded

59. What is virtual memory?


Ans : A virtual memory is hardware technique where the system appears to have more memory
that it actually does. This is done by time-sharing, the physical memory and storage parts of the
memory one disk when they are not actively being used

60. What is cache memory?


Ans : Cache memory is random access memory (RAM) that a computer microprocessor can
access more quickly than it can access regular RAM. As the microprocessor processes data, it
looks first in the cache memory and if it finds the data there (from a previous reading of data), it
does not have to do the more time-consuming reading of data

61.Differentiate between Complier and Interpreter?


Ans : An interpreter reads one instruction at a time and carries out the actions implied by that
instruction. It does not perform any translation. But a compiler translates the entire instructions.

62.What are different tasks of Lexical Analysis?


Ans : The purpose of the lexical analyzer is to partition the input text, delivering a sequence of
comments and basic symbols. Comments are character sequences to be ignored, while basic
symbols are character sequences that correspond to terminal symbols of the grammar defining
the phrase structure of the input

63. Why paging is used?


Ans : Paging is solution to external fragmentation problem which is to permit the logical address
space of a process to be noncontiguous, thus allowing a process to be allocating physical
memory wherever the latter is available.

64. What is Context Switch?


Ans : Switching the CPU to another process requires saving the state of the old process and
loading the saved state for the new process. This task is known as a context switch.Context-
switch time is pure overhead, because the system does no useful work while switching. Its speed
varies from machine to machine, depending on the memory speed, the number of registers which
must be copied, the existed of special instructions(such as a single instruction to load or store all
registers).

65. Distributed Systems?


Ans : Distribute the computation among several physical processors.
Loosely coupled system – each processor has its own local memory; processors communicate
with one another through various communications lines, such as high-speed buses or telephone
lines
Advantages of distributed systems:
->Resources Sharing
->Computation speed up – load sharing
->Reliability
->Communications

66.Difference between Primary storage and secondary storage?


Ans :
Main memory: – only large storage media that the CPU can access directly.
Secondary storage: – extension of main memory that provides large nonvolatile storage capacity.

67. What is CPU Scheduler?


Ans :
->Selects from among the processes in memory that are ready to execute, and allocates the CPU
to one of them.
->CPU scheduling decisions may take place when a process:
1.Switches from running to waiting state.
2.Switches from running to ready state.
3.Switches from waiting to ready.
4.Terminates.
->Scheduling under 1 and 4 is nonpreemptive.
->All other scheduling is preemptive.

68. What do you mean by deadlock?


Ans : Deadlock is a situation where a group of processes are all blocked and none of them can
become unblocked until one of the other becomes unblocked.The simplest deadlock is two
processes each of which is waiting for a message from the other

69. What is Dispatcher?


Ans :
->Dispatcher module gives control of the CPU to the process selected by the short-term
scheduler; this involves:
Switching context
Switching to user mode
Jumping to the proper location in the user program to restart that program
Dispatch latency – time it takes for the dispatcher to stop one process and start another running.

70. What is Throughput, Turnaround time, waiting time and Response time?
Ans :
Throughput – number of processes that complete their execution per time unit
Turnaround time – amount of time to execute a particular process
Waiting time – amount of time a process has been waiting in the ready queue
Response time – amount of time it takes from when a request was submitted until the first
response is produced, not output (for time-sharing environment)
71. Explain the difference between microkernel and macro kernel?
Ans :Micro-Kernel: A micro-kernel is a minimal operating system that performs only the
essential functions of an operating system. All other operating system functions are performed by
system processes.
Monolithic: A monolithic operating system is one where all operating system code is in a single
executable image and all operating system code runs in system mode.

72.What is multi tasking, multi programming, multi threading?


Ans :
Multi programming: Multiprogramming is the technique of running several programs at a time
using timesharing.It allows a computer to do several things at the same time. Multiprogramming
creates logical parallelism.
The concept of multiprogramming is that the operating system keeps several jobs in memory
simultaneously. The operating system selects a job from the job pool and starts executing a job,
when that job needs to wait for any i/o operations the CPU is switched to another job. So the
main idea here is that the CPU is never idle.
Multi tasking: Multitasking is the logical extension of multiprogramming .The concept of
multitasking is quite similar to multiprogramming but difference is that the switching between
jobs occurs so frequently that the users can interact with each program while it is running. This
concept is also known as time-sharing systems. A time-shared operating system uses CPU
scheduling and multiprogramming to provide each user with a small portion of time-shared
system.
Multi threading: An application typically is implemented as a separate process with several
threads of control. In some situations a single application may be required to perform several
similar tasks for example a web server accepts client requests for web pages, images, sound, and
so forth. A busy web server may have several of clients concurrently accessing it. If the web
server ran as a traditional single-threaded process, it would be able to service only one client at a
time. The amount of time that a client might have to wait for its request to be serviced could be
enormous.
So it is efficient to have one process that contains multiple threads to serve the same purpose.
This approach would multithread the web-server process, the server would create a separate
thread that would listen for client requests when a request was made rather than creating another
process it would create another thread to service the request.
So to get the advantages like responsiveness, Resource sharing economy and utilization of
multiprocessor architectures multithreading concept can be used

73. Give a non-computer example of preemptive and non-preemptive scheduling?


Ans : Consider any system where people use some kind of resources and compete for them. The
non-computer examples for preemptive scheduling the traffic on the single lane road if there is
emergency or there is an ambulance on the road the other vehicles give path to the vehicles that
are in need. The example for preemptive scheduling is people standing in queue for tickets.

74. What is starvation and aging?


Ans :
Starvation: Starvation is a resource management problem where a process does not get the
resources it needs for a long time because the resources are being allocated to other processes.
Aging: Aging is a technique to avoid starvation in a scheduling system. It works by adding an
aging factor to the priority of each request. The aging factor must increase the request’s priority
as time passes and must ensure that a request will eventually be the highest priority request (after
it has waited long enough)

75.Different types of Real-Time Scheduling?


Ans :Hard real-time systems – required to complete a critical task within a guaranteed amount of
time.
Soft real-time computing – requires that critical processes receive priority over less fortunate
ones.

76. What are the Methods for Handling Deadlocks?


Ans :
->Ensure that the system will never enter a deadlock state.
->Allow the system to enter a deadlock state and then recover.
->Ignore the problem and pretend that deadlocks never occur in the system; used by most
operating systems, including
UNIX.

77. What is a Safe State and its’ use in deadlock avoidance?


Ans :When a process requests an available resource, system must decide if immediate allocation
leaves the system in a safe state
->System is in safe state if there exists a safe sequence of all processes.
->Sequence is safe if for each Pi, the resources that Pi can still request can be satisfied by
currently available resources + resources held by all the Pj, with j
If Pi resource needs are not immediately available, then Pi can wait until all Pj have finished.
When Pj is finished, Pi can obtain needed resources, execute, return allocated resources, and
terminate.
When Pi terminates, Pi+1 can obtain its needed resources, and so on.
->Deadlock Avoidance Þ ensure that a system will never enter an unsafe state.

78. Recovery from Deadlock?


Ans :Process Termination:
->Abort all deadlocked processes.
->Abort one process at a time until the deadlock cycle is eliminated.
->In which order should we choose to abort?
Priority of the process.
How long process has computed, and how much longer to completion.
Resources the process has used.
Resources process needs to complete.
How many processes will need to be terminated?
Is process interactive or batch?
Resource Preemption:
->Selecting a victim – minimize cost.
->Rollback – return to some safe state, restart process for that state.
->Starvation – same process may always be picked as victim, include number of rollback in cost
factor.

79.Difference between Logical and Physical Address Space?


Ans :
->The concept of a logical address space that is bound to a separate physical address space is
central to proper memory management.
Logical address – generated by the CPU; also referred to as virtual address.
Physical address – address seen by the memory unit.
->Logical and physical addresses are the same in compile-time and load-time address-binding
schemes; logical (virtual) and physical addresses differ in execution-time address-binding
scheme

80. Binding of Instructions and Data to Memory?


Ans :Address binding of instructions and data to memory addresses can happen at three different
stages
Compile time: If memory location known a priori, absolute code can be generated; must
recompile code if starting location changes.
Load time: Must generate relocatable code if memory location is not known at compile time.
Execution time: Binding delayed until run time if the process can be moved during its execution
from one memory segment to another. Need hardware support for address maps (e.g., base and
limit registers).

81. What is Memory-Management Unit (MMU)?


Ans :Hardware device that maps virtual to physical address.
In MMU scheme, the value in the relocation register is added to every address generated by a
user process at the time it is sent to memory.
->The user program deals with logical addresses; it never sees the real physical addresses

82. What are Dynamic Loading, Dynamic Linking and Overlays?


Ans :
Dynamic Loading:
->Routine is not loaded until it is called
->Better memory-space utilization; unused routine is never loaded.
->Useful when large amounts of code are needed to handle infrequently occurring cases.
->No special support from the operating system is required implemented through program
design.
Dynamic Linking:
->Linking postponed until execution time.
->Small piece of code, stub, used to locate the appropriate memory-resident library routine.
->Stub replaces itself with the address of the routine, and executes the routine.
->Operating system needed to check if routine is in processes’ memory address.
->Dynamic linking is particularly useful for libraries.
Overlays:
->Keep in memory only those instructions and data that are needed at any given time.
->Needed when process is larger than amount of memory allocated to it.
->Implemented by user, no special support needed from operating system, programming design
of overlay structure is complex.

83. What is fragmentation? Different types of fragmentation?


Ans : Fragmentation occurs in a dynamic memory allocation system when many of the free
blocks are too small to satisfy any request.
External Fragmentation: External Fragmentation happens when a dynamic memory allocation
algorithm allocates some memory and a small piece is left over that cannot be effectively used. If
too much external fragmentation occurs, the amount of usable memory is drastically
reduced.Total memory space exists to satisfy a request, but it is not contiguous
Internal Fragmentation: Internal fragmentation is the space wasted inside of allocated memory
blocks because of restriction on the allowed sizes of allocated blocks.Allocated memory may be
slightly larger than requested memory; this size difference is memory internal to a partition, but
not being used Reduce external fragmentation by compaction
->Shuffle memory contents to place all free memory together in one large block.
->Compaction is possible only if relocation is dynamic, and is done at execution time.

84. Define Demand Paging, Page fault interrupt, and Trashing?


Ans :
Demand Paging: Demand paging is the paging policy that a page is not read into memory until
it is requested, that is, until there is a page fault on the page.
Page fault interrupt: A page fault interrupt occurs when a memory reference is made to a page
that is not in memory.The present bit in the page table entry will be found to be off by the virtual
memory hardware and it will signal an interrupt.
Trashing: The problem of many page faults occurring in a short time, called “page thrashing,”

85. Explain Segmentation with paging?


Ans : Segments can be of different lengths, so it is harder to find a place for a segment in
memory than a page. With segmented virtual memory, we get the benefits of virtual memory but
we still have to do dynamic storage allocation of physical memory. In order to avoid this, it is
possible to combine segmentation and paging into a two-level virtual memory system. Each
segment descriptor points to page table for that segment.This give some of the advantages of
paging (easy placement) with some of the advantages of segments (logical division of the
program).

86. Under what circumstances do page faults occur? Describe the actions taken by the
operating system when a page fault occurs?
Ans : A page fault occurs when an access to a page that has not been brought into main memory
takes place. The operating system verifies the memory access, aborting the program if it is
invalid. If it is valid, a free frame is located and I/O is requested to read the needed page into the
free frame. Upon completion of I/O, the process table and page table are updated and the
instruction is restarted

87. What is the cause of thrashing? How does the system detect thrashing? Once it detects
thrashing, what can the system do to eliminate this problem?
Ans : Thrashing is caused by under allocation of the minimum number of pages required by a
process, forcing it to continuously page fault. The system can detect thrashing by evaluating the
level of CPU utilization as compared to the level of multiprogramming. It can be eliminated by
reducing the level of multiprogramming.

UNIX
1. How are devices represented in UNIX?
Ans: All devices are represented by files called special files that are located in/dev directory.
Thus, device files and other files are named and accessed in the same way. A ‘regular file’ is just
an ordinary data file in the disk. A ‘block special file’ represents a device with characteristics
similar to a disk (data transfer in terms of blocks). A ‘character special file’ represents a device
with characteristics similar to a keyboard (data transfer is by stream of bits in sequential order).

2. What is ‘inode’?
Ans: All UNIX files have its description stored in a structure called ‘inode’. The inode contains
info about the file-size, its location, time of last access, time of last modification, permission and
so on. Directories are also represented as files and have an associated inode. In addition to
descriptions about the file, the inode contains pointers to the data blocks of the file. If the file is
large, inode has indirect pointer to a block of pointers to additional data blocks (this further
aggregates for larger files). A block is typically 8k.
Inode consists of the following fields:
File owner identifier
File type
File access permissions
File access times
Number of links
File size
Location of the file data

3. Brief about the directory representation in UNIX?


Ans: A Unix directory is a file containing a correspondence between filenames and inodes. A
directory is a special file that the kernel maintains. Only kernel modifies directories, but
processes can read directories. The contents of a directory are a list of filename and inode
number pairs. When new directories are created, kernel makes two entries named ‘.’ (refers to
the directory itself) and ‘..’ (refers to parent directory).
System call for creating directory is mkdir (pathname, mode).

4. What are the Unix system calls for I/O?


Ans: open(pathname,flag,mode) – open file
creat(pathname,mode) – create file
close(filedes) – close an open file
read(filedes,buffer,bytes) – read data from an open file
write(filedes,buffer,bytes) – write data to an open file
lseek(filedes,offset,from) – position an open file
dup(filedes) – duplicate an existing file descriptor
dup2(oldfd,newfd) – duplicate to a desired file descriptor
fcntl(filedes,cmd,arg) – change properties of an open file
ioctl(filedes,request,arg) – change the behaviour of an open file
The difference between fcntl anf ioctl is that the former is intended for any open file, while the
latter is for device-specific operations.

5. How do you change File Access Permissions?


Ans: Every file has following attributes:
owner’s user ID ( 16 bit integer )
owner’s group ID ( 16 bit integer )
File access mode word
‘r w x -r w x- r w x’
(user permission-group permission-others permission)
r-read, w-write, x-execute
To change the access mode, we use chmod(filename,mode).
Example 1:
To change mode of myfile to ‘rw-rw-r–’ (ie. read, write permission for user – read,write
permission for group – only read permission for others) we give the args as:
chmod(myfile,0664) .
Each operation is represented by discrete values
‘r’ is 4
‘w’ is 2
‘x’ is 1
Therefore, for ‘rw’ the value is 6(4+2).
Example 2:
To change mode of myfile to ‘rwxr–r–’ we give the args as:
chmod(myfile,0744).

6. What are links and symbolic links in UNIX file system?


Ans: A link is a second name (not a file) for a file. Links can be used to assign more than one
name to a file, but cannot be used to assign a directory more than one name or link filenames on
different computers.
Symbolic link ‘is’ a file that only contains the name of another file.Operation on the symbolic
link is directed to the file pointed by the it.Both the limitations of links are eliminated in
symbolic links.
Commands for linking files are:
Link ln filename1 filename2
Symbolic link ln -s filename1 filename2

7. What is a FIFO?
Ans: FIFO are otherwise called as ‘named pipes’. FIFO (first-in-first-out) is a special file which
is said to be data transient. Once data is read from named pipe, it cannot be read again. Also, data
can be read only in the order written. It is used in interprocess communication where a process
writes to one end of the pipe (producer) and the other reads from the other end (consumer).

8. How do you create special files like named pipes and device files?
Ans: The system call mknod creates special files in the following sequence.
1. kernel assigns new inode,
2. sets the file type to indicate that the file is a pipe, directory or special file,
3. If it is a device file, it makes the other entries like major, minor device numbers.
For example:
If the device is a disk, major device number refers to the disk controller and minor device
number is the disk.

9. Discuss the mount and unmount system calls ?


Ans : The privileged mount system call is used to attach a file system to a directory of another
file system; the unmount system call detaches a file system. When you mount another file system
on to your directory, you are essentially splicing one directory tree onto a branch in another
directory tree. The first argument to mount call is the mount point, that is , a directory in the
current file naming system. The second argument is the file system to mount to that point. When
you insert a cdrom to your unix system’s drive, the file system in the cdrom automatically
mounts to /dev/cdrom in your system.

10. How does the inode map to data block of a file?


Ans: Inode has 13 block addresses. The first 10 are direct block addresses of the first 10 data
blocks in the file. The 11th address points to a one-level index block. The 12th address points to
a two-level (double in-direction) index block. The 13th address points to a three-level(triple in-
direction)index block. This provides a very large maximum file size with efficient access to large
files, but also small files are accessed directly in one disk read.

11. What is a shell?


Ans: A shell is an interactive user interface to an operating system services that allows an user to
enter commands as character strings or through a graphical user interface. The shell converts
them to system calls to the OS or forks off a process to execute the command. System call results
and other information from the OS are presented to the user through an interactive interface.
Commonly used shells are sh,csh,ks etc.

12. Brief about the initial process sequence while the system boots up?
Ans: While booting, special process called the ‘swapper’ or ‘scheduler’ is created with Process-
ID 0. The swapper manages memory allocation for processes and influences CPU allocation. The
swapper inturn creates 3 children:
the process dispatcher, vhand and dbflush with IDs 1,2 and 3 respectively.
This is done by executing the file /etc/init. Process dispatcher gives birth to the shell. Unix keeps
track of all the processes in an internal data structure called the Process Table (listing command
is ps -el).

13. What are various IDs associated with a process?


Ans: Unix identifies each process with a unique integer called ProcessID. The process that
executes the request for creation of a process is called the ‘parent process’ whose PID is ‘Parent
Process ID’. Every process is associated with a particular user called the ‘owner’ who has
privileges over the process. The identification for the user is ‘UserID’. Owner is the user who
executes the process. Process also has ‘Effective User ID’ which determines the access privileges
for accessing resources like files.
getpid() -process id
getppid() -parent process id
getuid() -user id
geteuid() -effective user id

14. Explain fork() system call?


Ans: The `fork()’ used to create a new process from an existing process. The new process is
called the child process, and the existing process is called the parent. We can tell which is which
by checking the return value from `fork()’. The parent gets the child’s pid returned to him, but
the child gets 0 returned to him.

15. Predict the output of the following program code


main()
{
fork();
printf(“Hello World!”);
}
Ans: Hello World!Hello World!
Explanation:
The fork creates a child that is a duplicate of the parent process. The child begins from the
fork().All the statements after the call to fork() will be executed twice.(once by the parent
process and other by child). The statement before fork() is executed only by the parent process.

16. Predict the output of the following program code


main()
{
fork(); fork(); fork();
printf(“Hello World!”);
}
Ans: “Hello World” will be printed 8 times.
Explanation:
2^n times where n is the number of calls to fork()

17. List the system calls used for process management:


Ans: System calls Description
fork() To create a new process
exec() To execute a new program in a process
wait() To wait until a created process completes its execution
exit() To exit from a process execution
getpid() To get a process identifier of the current process
getppid() To get parent process identifier
nice() To bias the existing priority of a process
brk() To increase/decrease the data segment size of a process
18. How can you get/set an environment variable from a program?
Ans: Getting the value of an environment variable is done by using `getenv()’. Setting the value
of an environment variable is done by using `putenv()’.

19. How can a parent and child process communicate?


Ans: A parent and child can communicate through any of the normal inter-process
communication schemes (pipes, sockets, message queues, shared memory), but also have some
special ways to communicate that take advantage of their relationship as a parent and child. One
of the most obvious is that the parent can get the exit status of the child.

20. What is a zombie?


Ans: When a program forks and the child finishes before the parent, the kernel still keeps some
of its information about the child in case the parent might need it – for example, the parent may
need to check the child’s exit status. To be able to get this information, the parent calls `wait()’;
In the interval between the child terminating and the parent calling `wait()’, the child is said to be
a `zombie’ (If you do `ps’, the child will have a `Z’ in its status field to indicate this.)

21. What are the process states in Unix?


Ans: As a process executes it changes state according to its circumstances. Unix processes have
the following states:
Running : The process is either running or it is ready to run .
Waiting : The process is waiting for an event or for a resource.
Stopped : The process has been stopped, usually by receiving a signal.
Zombie : The process is dead but have not been removed from the process table.

22. What Happens when you execute a program?


Ans: When you execute a program on your UNIX system, the system creates a special
environment for that program. This environment contains everything needed for the system to
run the program as if no other program were running on the system. Each process has process
context, which is everything that is unique about the state of the program you are currently
running. Every time you execute a program the UNIX system does a fork, which performs a
series of operations to create a process context and then execute your program in that context.
The steps include the following:
Allocate a slot in the process table, a list of currently running programs kept by UNIX.
Assign a unique process identifier (PID) to the process.
iCopy the context of the parent, the process that requested the spawning of the new process.
Return the new PID to the parent process. This enables the parent process to examine or control
the process directly. After the fork is complete, UNIX runs your program.

23. What Happens when you execute a command?


Ans: When you enter ‘ls’ command to look at the contents of your current working directory,
UNIX does a series of things to create an environment for ls and the run it: The shell has UNIX
perform a fork. This creates a new process that the shell will use to run the ls program. The shell
has UNIX perform an exec of the ls program. This replaces the shell program and data with the
program and data for ls and then starts running that new program. The ls program is loaded into
the new process context, replacing the text and data of the shell. The ls program performs its
task, listing the contents of the current directory.

24. What is a Daemon?


Ans: A daemon is a process that detaches itself from the terminal and runs, disconnected, in the
background, waiting for requests and responding to them. It can also be defined as the
background process that does not belong to a terminal session. Many system functions are
commonly performed by daemons, including the sendmail daemon, which handles mail, and the
NNTP daemon, which handles USENET news. Many other daemons may exist. Some of the
most common daemons are:
init: Takes over the basic running of the system when the kernel has finished the boot process.
inetd: Responsible for starting network services that do not have their own stand-alone daemons.
For example, inetd usually takes care of incoming rlogin, telnet, and ftp connections.
cron: Responsible for running repetitive tasks on a regular schedule.

25. What is ‘ps’ command for?


Ans: The ps command prints the process status for some or all of the running processes. The
information given are the process identification number (PID),the amount of time that the
process has taken to execute so far etc.

26. How would you kill a process?


Ans: The kill command takes the PID as one argument; this identifies which process to
terminate. The PID of a process can be got using ‘ps’ command.

27. What is an advantage of executing a process in background?


Ans: The most common reason to put a process in the background is to allow you to do
something else interactively without waiting for the process to complete. At the end of the
command you add the special background symbol, &. This symbol tells your shell to execute the
given command in the background.
Example: cp *.* ../backup& (cp is for copy)

28. How do you execute one program from within another?


Ans: The system calls used for low-level process creation are execlp() and execvp(). The execlp
call overlays the existing program with the new one , runs that and exits. The original program
gets back control only when an error occurs. execlp(path,file_name,arguments..); //last argument
must be NULL A variant of execlp called execvp is used when the number of arguments is not
known in advance. execvp(path,argument_array); //argument array should be terminated by
NULL

29. What is IPC? What are the various schemes available?


Ans: The term IPC (Inter-Process Communication) describes various ways by which different
process running on some operating system communicate between each other. Various schemes
available are as follows: Pipes:
One-way communication scheme through which different process can communicate. The
problem is that the two processes should have a common ancestor (parent-child relationship).
However this problem was fixed with the introduction of named-pipes (FIFO).
Message Queues :
Message queues can be used between related and unrelated processes running on a machine.
Shared Memory:
This is the fastest of all IPC schemes. The memory to be shared is mapped into the address space
of the processes (that are sharing). The speed achieved is attributed to the fact that there is no
kernel involvement. But this scheme needs synchronization.
Various forms of synchronization are mutexes, condition-variables, read-write locks, record-
locks, and semaphores.

30. What is the difference between Swapping and Paging?


Ans: Swapping: Whole process is moved from the swap device to the main memory for
execution. Process size must be less than or equal to the available main memory. It is easier to
implementation and overhead to the system. Swapping systems does not handle the memory
more flexibly as compared to the paging systems.
Paging:
Only the required memory pages are moved to main memory from the swap device for
execution. Process size does not matter. Gives the concept of the virtual memory.
It provides greater flexibility in mapping the virtual address space into the physical memory of
the machine. Allows more number of processes to fit in the main memory simultaneously.
Allows the greater process size than the available physical memory. Demand paging systems
handle the memory more flexibly.

31. What is major difference between the Historic Unix and the new BSD release of Unix
System V in terms of Memory Management?
Ans: Historic Unix uses Swapping – entire process is transferred to the main memory from the
swap device, whereas the Unix System V uses Demand Paging – only the part of the process is
moved to the main memory. Historic Unix uses one Swap Device and Unix System V allow
multiple Swap Devices.

32. What is the main goal of the Memory Management?


Ans: It decides which process should reside in the main memory, Manages the parts of the
virtual address space of a process which is non-core resident, Monitors the available main
memory and periodically write the processes into the swap device to provide more processes fit
in the main memory simultaneously.

33. What is a Map?


Ans: A Map is an Array, which contains the addresses of the free space in the swap device that
are allocatable resources, and the number of the resource units available there.
This allows First-Fit allocation of contiguous blocks of a resource. Initially the Map contains one
entry – address (block offset from the starting of the swap area) and the total number of
resources. Kernel treats each unit of Map as a group of disk blocks. On the allocation and freeing
of the resources Kernel updates the Map for accurate information.

34. What scheme does the Kernel in Unix System V follow while choosing a swap device
among the multiple swap devices?
Ans: Kernel follows Round Robin scheme choosing a swap device among the multiple swap
devices in Unix System V.

35. What is a Region?


Ans: A Region is a continuous area of a process’s address space (such as text, data and stack).
The kernel in a ‘Region Table’ that is local to the process maintains region. Regions are sharable
among the process.

36. What are the events done by the Kernel after a process is being swapped out from the
main memory?
Ans: When Kernel swaps the process out of the primary memory, it performs the following:
Kernel decrements the Reference Count of each region of the process. If the reference count
becomes zero, swaps the region out of the main memory,Kernel allocates the space for the
swapping process in the swap device,Kernel locks the other swapping process while the current
swapping operation is going on,The Kernel saves the swap address of the region in the region
table.

37. Is the Process before and after the swap are the same? Give reason.
Ans: Process before swapping is residing in the primary memory in its original form. The
regions (text, data and stack) may not be occupied fully by the process, there may be few empty
slots in any of the regions and while swapping Kernel do not bother about the empty slots while
swapping the process out. After swapping the process resides in the swap (secondary memory)
device. The regions swapped out will be present but only the occupied region slots but not the
empty slots that were present before assigning. While swapping the process once again into the
main memory, the Kernel referring to the Process Memory Map, it assigns the main memory
accordingly taking care of the empty slots in the regions.

38. What do you mean by u-area (user area) or u-block?


Ans: This contains the private data that is manipulated only by the Kernel. This is local to the
Process, i.e. each process is allocated a u-area.

39. What are the entities that are swapped out of the main memory while swapping the
process out of the main memory?
Ans: All memory space occupied by the process, process’s u-area, and Kernel stack are swapped
out, theoretically. Practically, if the process’s u-area contains the Address Translation Tables for
the process then Kernel implementations do not swap the u-area.

40. What is Fork swap?


Ans: fork() is a system call to create a child process. When the parent process calls fork() system
call, the child process is created and if there is short of memory then the child process is sent to
the read-to-run state in the swap device, and return to the user state without swapping the parent
process. When the memory will be available the child process will be swapped into the main
memory.

41. What is Expansion swap?


Ans: At the time when any process requires more memory than it is currently allocated, the
Kernel performs Expansion swap. To do this Kernel reserves enough space in the swap device.
Then the address translation mapping is adjusted for the new virtual address space but the
physical memory is not allocated. At last Kernel swaps the process into the assigned space in the
swap device. Later when the Kernel swaps the process into the main memory this assigns
memory according to the new address translation mapping.

42. How the Swapper works?


Ans: The swapper is the only process that swaps the processes. The Swapper operates only in the
Kernel mode and it does not uses System calls instead it uses internal Kernel functions for
swapping. It is the archetype of all kernel process.

43. What are the processes that are not bothered by the swapper? Give Reason.
Ans: Zombie process: They do not take any up physical memory.Processes locked in memories
that are updating the region of the process.Kernel swaps only the sleeping processes rather than
the ‘ready-to-run’ processes, as they have the higher probability of being scheduled than the
Sleeping processes.

44. What are the requirements for a swapper to work?


Ans: The swapper works on the highest scheduling priority. Firstly it will look for any sleeping
process, if not found then it will look for the ready-to-run process for swapping. But the major
requirement for the swapper to work the ready-to-run process must be core-resident for at least 2
seconds before swapping out. And for swapping in the process must have been resided in the
swap device for at least 2 seconds. If the requirement is not satisfied then the swapper will go
into the wait state on that event and it is awaken once in a second by the Kernel.

45. What are the criteria for choosing a process for swapping into memory from the swap
device?
Ans: The resident time of the processes in the swap device, the priority of the processes and the
amount of time the processes had been swapped out.

46. What are the criteria for choosing a process for swapping out of the memory to the
swap device?
Ans: The process’s memory resident time,Priority of the process and the nice value.

47. What do you mean by nice value?


Ans: Nice value is the value that controls {increments or decrements} the priority of the process.
This value that is returned by the nice () system call. The equation for using nice value is:
Priority = (“recent CPU usage”/constant) + (base- priority) + (nice value) Only the administrator
can supply the nice value. The nice () system call works for the running process only. Nice value
of one process cannot affect the nice value of the other process.

48. What are conditions on which deadlock can occur while swapping the processes?
Ans: All processes in the main memory are asleep.All ‘ready-to-run’ processes are swapped out.
There is no space in the swap device for the new incoming process that are swapped out of the
main memory. There is no space in the main memory for the new incoming process.
49. What are conditions for a machine to support Demand Paging?
Ans: Memory architecture must based on Pages, The machine must support the ‘restartable’
instructions.

50. What is ‘the principle of locality’?


Ans: 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.

51. What is the working set of a process?


Ans: 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.

52. What is the window of the working set of a process?


Ans: 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.

53. What is called a page fault?


Ans: 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.

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

55. What are the bits that support the demand paging?
Ans: 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.
Page address
Age
Copy on write
Modify
Reference
Valid
Protection

56. How the Kernel handles the fork() system call in traditional Unix and in the System V
Unix, while swapping?
Ans: 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.

57. Difference between the fork() and vfork() system call?


Ans: 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.

58. What is BSS(Block Started by Symbol)?


Ans: 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.

59. What is Page-Stealer process?


Ans: 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.

60. Name two paging states for a page in memory?


Ans: The two paging states are:
The page is aging and is not yet eligible for swapping,
The page is eligible for swapping but not yet eligible for reassignment to other virtual address
space.

61. What are the phases of swapping a page from the memory?
Ans: Page stealer finds the page eligible for swapping and places the page number in the list of
pages to be swapped. Kernel copies the page to a swap device when necessary and clears the
valid bit in the page table entry, decrements the pfdata reference count, and places the pfdata
table entry at the end of the free list if its reference count is 0.

62. What is page fault? Its types?


Ans: Page fault refers to the situation of not having a page in the main memory when any
process references it. There are two types of page fault :
Validity fault,
Protection fault.

63. In what way the Fault Handlers and the Interrupt handlers are different?
Ans: Fault handlers are also an interrupt handler with an exception that the interrupt handlers
cannot sleep. Fault handlers sleep in the context of the process that caused the memory fault. The
fault refers to the running process and no arbitrary processes are put to sleep.

64. What is validity fault?


Ans: If a process referring a page in the main memory whose valid bit is not set, it results in
validity fault. The valid bit is not set for those pages:
that are outside the virtual address space of a process,
that are the part of the virtual address space of the process but no physical address is assigned to
it.
65. What does the swapping system do if it identifies the illegal page for swapping?
Ans: If the disk block descriptor does not contain any record of the faulted page, then this causes
the attempted memory reference is invalid and the kernel sends a “Segmentation violation”
signal to the offending process. This happens when the swapping system identifies any invalid
memory reference.

66. What are states that the page can be in, after causing a page fault?
Ans: On a swap device and not in memory, On the free page list in the main memory, In an
executable file, Marked “demand zero”, Marked “demand fill”.

67. In what way the validity fault handler concludes?


Ans: It sets the valid bit of the page by clearing the modify bit. It recalculates the process
priority.

68. At what mode the fault handler executes?


Ans: At the Kernel Mode.

69. What do you mean by the protection fault?


Ans: Protection fault refers to the process accessing the pages, which do not have the access
permission. A process also incur the protection fault when it attempts to write a page whose copy
on write bit was set during the fork() system call.

70. How the Kernel handles the copy on write bit of a page, when the bit is set?
Ans: In situations like, where the copy on write bit of a page is set and that page is shared by
more than one process, the Kernel allocates new page and copies the content to the new page and
the other processes retain their references to the old page. After copying the Kernel updates the
page table entry with the new page number. Then Kernel decrements the reference count of the
old pfdata table entry. In cases like, where the copy on write bit is set and no processes are
sharing the page, the Kernel allows the physical page to be reused by the processes. By doing so,
it clears the copy on write bit and disassociates the page from its disk copy (if one exists),
because other process may share the disk copy. Then it removes the pfdata table entry from the
page-queue as the new copy of the virtual page is not on the swap device. It decrements the
swap-use count for the page and if count drops to 0, frees the swap space.

71. For which kind of fault the page is checked first?


Ans: The page is first checked for the validity fault, as soon as it is found that the page is invalid
(valid bit is clear), the validity fault handler returns immediately, and the process incur the
validity page fault. Kernel handles the validity fault and the process will incur the protection
fault if any one is present.

72. In what way the protection fault handler concludes?


Ans: After finishing the execution of the fault handler, it sets the modify and protection bits and
clears the copy on write bit. It recalculates the process-priority and checks for signals.
73. How the Kernel handles both the page stealer and the fault handler?
Ans: The page stealer and the fault handler thrash because of the shortage of the memory. If the
sum of the working sets of all processes is greater that the physical memory then the fault
handler will usually sleep because it cannot allocate pages for a process. This results in the
reduction of the system throughput because Kernel spends too much time in overhead,
rearranging the memory in the frantic pace.

74. Explain different types of Unix systems.


Ans: The most widely used are: 1. System V (AT&T) 2. AIX (IBM) 3. BSD (Berkeley) 4.
Solaris (Sun) 5. Xenix ( A PC version of Unix)

75. Explain kernal and shell.


Ans: Kernal: It carries out basic operating system functions such as allocating memory,
accessing files and handling communications. Shell:A shell provides the user interface to the
kernal.There are 3 major shells : C-shell, Bourne shell , Korn shell

76. What is ex and vi ?


Ans: ex is Unix line editor and vi is the standard Unix screen editor.

77. Which are typical system directories below the root directory?
Ans: (1)/bin: contains many programs which will be executed by users (2)/etc : files used by
administrator (3)/dev: hardware devices (4)/lib: system libraries (5)/usr: application software
(6)/home: home directories for different systems.

78. Construct pipes to execute the following jobs?


Ans:
1. Output of who should be displayed on the screen with value of total number of users who have
logged in displayed at the bottom of the list.
2. Output of ls should be displayed on the screen and from this output the lines containing the
word ‘poem’ should be counted and the count should be stored in a file.
3. Contents of file1 and file2 should be displayed on the screen and this output should be
appended in a file.
From output of ls the lines containing ‘poem’ should be displayed on the screen along with the
count.
4. Name of cities should be accepted from the keyboard . This list should be combined with the
list present in a file. This combined list should be sorted and the sorted list should be stored in a
file ‘newcity’.
5. All files present in a directory dir1 should be deleted any error while deleting should be stored
in a file ‘errorlog’.

79.Explain the following commands?


$ ls > file1
$ banner hi-fi > message
$ cat par.3 par.4 par.5 >> report
$ cat file1>file1
$ date ; who
$ date ; who > logfile
$ (date ; who) > logfile

80. What is the significance of the “tee” command?


Ans: It reads the standard input and sends it to the standard output while redirecting a copy of
what it has read to the file specified by the user.

81. What does the command “ $who | sort –logfile > newfile” do?
Ans: The input from a pipe can be combined with the input from a file . The trick is to use the
special symbol “-“ (a hyphen) for those commands that recognize the hyphen as std input.
In the above command the output from who becomes the std input to sort , meanwhile sort opens
the file logfile, the contents of this file is sorted together with the output of who (rep by the
hyphen) and the sorted output is redirected to the file newfile.

82. What does the command “$ls | wc –l > file1” do?


Ans: ls becomes the input to wc which counts the number of lines it receives as input and instead
of displaying this count , the value is stored in file1.

83.Which of the following commands is not a filter man , (b) cat , (c) pg , (d) head
man A filter is a program which can receive a flow of data from std input, process (or filter) it
and send the result to the std output.

84. How is the command “$cat file2 “ different from “$cat >file2 and >> redirection
operators ?
Ans: is the output redirection operator when used it overwrites while >> operator appends into
the file.

85. Explain the steps that a shell follows while processing a command.
Ans: After the command line is terminated by the key, the shell goes ahead with processing the
command line in one or more passes. The sequence is well defined and assumes the following
order.
Parsing: The shell first breaks up the command line into words, using spaces and the delimiters,
unless quoted. All consecutive occurrences of a space or tab are replaced here with a single
space.
Variable evaluation: All words preceded by a $ are valuated as variables, unless quoted or
escaped.
Command substitution: Any command surrounded by back quotes is executed by the shell which
then replaces the standard output of the command into the command line.
Wild-card interpretation: The shell finally scans the command line for wild-cards (the characters
*, ?, [, ]).
Any word containing a wild-card is replaced by a sorted list of
filenames that match the pattern. The list of these filenames then forms the arguments to the
command.
PATH evaluation: It finally looks for the PATH variable to determine the sequence of directories
it has to search in order to hunt for the command.
86. What difference between cmp and diff commands?
Ans: cmp – Compares two files byte by byte and displays the first mismatch diff – tells the
changes to be made to make the files identical

87. What is the use of ‘grep’ command?


Ans: ‘grep’ is a pattern search command. It searches for the pattern, specified in the command
line with appropriate option, in a file(s).
Syntax : grep
Example : grep 99mx mcafile

88. What is the difference between cat and more command?


Ans: Cat displays file contents. If the file is large the contents scroll off the screen before we
view it. So command ‘more’ is like a pager which displays the contents page by page.

89. Write a command to kill the last background job?


Ans: Kill $!

90. Which command is used to delete all files in the current directory and all its sub-
directories?
Ans: rm -r *

91. Write a command to display a file’s contents in various formats?


Ans: $od -cbd file_name c – character, b – binary (octal), d-decimal, od=Octal Dump.

92. What will the following command do?


Ans: $ echo *
It is similar to ‘ls’ command and displays all the files in the current directory.

93. Is it possible to create new a file system in UNIX?


Ans: Yes, ‘mkfs’ is used to create a new file system.

94. Is it possible to restrict incoming message?


Ans: Yes, using the ‘mesg’ command.

95. What is the use of the command “ls -x chapter[1-5]”


Ans: ls stands for list; so it displays the list of the files that starts with ‘chapter’ with suffix ’1′ to
’5′, chapter1, chapter2, and so on.

96. Is ‘du’ a command? If so, what is its use?


Ans: Yes, it stands for ‘disk usage’. With the help of this command you can find the disk
capacity and free space of the disk.

97. Is it possible to count number char, line in a file; if so, How?


Ans: Yes, wc-stands for word count.
wc -c for counting number of characters in a file.
wc -l for counting lines in a file.
98. Name the data structure used to maintain file identification?
Ans: ‘inode’, each file has a separate inode and a unique inode number.

99. How many prompts are available in a UNIX system?


Ans: Two prompts, PS1 (Primary Prompt), PS2 (Secondary Prompt).

100. How does the kernel differentiate device files and ordinary files?
Ans: Kernel checks ‘type’ field in the file’s inode structure.

101. How to switch to a super user status to gain privileges?


Ans: Use ‘su’ command. The system asks for password and when valid entry is made the user
gains super user (admin) privileges.

102. What are shell variables?


Ans: Shell variables are special variables, a name-value pair created and maintained by the shell.
Example: PATH, HOME, MAIL and TERM

103. What is redirection?


Ans: Directing the flow of data to the file or from the file for input or output.
Example : ls > wc

104. How to terminate a process which is running and the specialty on command kill 0?
Ans: With the help of kill command we can terminate the process.
Syntax: kill pid
Kill 0 – kills all processes in your system except the login shell.

105. What is a pipe and give an example?


Ans: A pipe is two or more commands separated by pipe char ‘|’. That tells the shell to arrange
for the output of the preceding command to be passed as input to the following command.
Example : ls -l | pr
The output for a command ls is the standard input of pr.
When a sequence of commands are combined using pipe, then it is called pipeline.

106. Explain kill() and its possible return values.


Ans: There are four possible results from this call:
‘kill()’ returns 0. This implies that a process exists with the given PID, and the system would
allow you to send signals to it. It is system-dependent whether the process could be a zombie.
‘kill()’ returns -1, ‘errno == ESRCH’ either no process exists with the given PID, or security
enhancements are causing the system to deny its existence. (On some systems, the process could
be a zombie.)
‘kill()’ returns -1, ‘errno == EPERM’ the system would not allow you to kill the specified
process. This means that either the process exists (again, it could be a zombie) or draconian
security enhancements are present (e.g. your process is not allowed to send signals to
*anybody*).
‘kill()’ returns -1, with some other value of ‘errno’ you are in trouble! The most-used technique
is to assume that success or failure with ‘EPERM’ implies that the process exists, and any other
error implies that it doesn’t.
An alternative exists, if you are writing specifically for a system (or all those systems) that
provide a ‘/proc’ filesystem: checking for the existence of ‘/proc/PID’ may work.

You might also like