Introduction to Operating Systems

Ankur Kulhari

What is an operating system? Before moving ahead, I would like to ask you “what comes in your mind regarding Operating System?” some of them can be: Windows Ubuntu A complected software Buttons and icons Desktop Folders Media player and so on….. Operating system An operating system is a program which provides you: An interface through which you can use …

Process Management: Operating Systems

Ankur Kulhari

What is a process A program in execution is called as a process. A process is an active entity, means it can be a cause of change in system’s state/data/elements. when does a program becomes a process A program is a file stored on secondary storage which contains, set of instruction written for some specific purpose. When this program is …


Pointer in C/C++

Avinash Pandey

A pointer is a constant or variable that contains an address of another variable of same type and in future, same address can be used to access the variable. Syntax for pointer declaration: So, using above syntax we can declare any type (built-in or derived) of pointer variable. In following figure, three built-in type of pointer variable has been created …

fork() system call – Operating System

Ankur Kulhari

When a process invokes/calls fork() function, a new process is created which has the same address space. As the address space is copied => PC (program counter) will also has the same value as old process has. That means the newly created process (also called as child process) will start executing from the instruction, parent process is currently executing => …

2-Dimensional (2 D) Array: memory aspect

Ankur Kulhari

A 2-D array can be logically think of array of arrays as shown below: Let’s have a program to understand 2-D array better: output a=0x7ffd8da57dc0 &a=0x7ffd8da57dc0 a[0]=0x7ffd8da57dc0 &a[0][0]=0x7ffd8da57dc0 a[1]=0x7ffd8da57dc8 &a[1][0]=0x7ffd8da57dc8 a[2]=0x7ffd8da57dd0 &a[2][0]=0x7ffd8da57dd0 Note: these values may vary, as the allocated memory location may change every time when a program is executed. The memory view of above program can be analyzed …

Link List

Link List: from memory aspect

Ankur Kulhari

The idea of link list can be understood better with the following example: Suppose Initially there is no data in the memory (RAM): Now in our program we have written following statement: Considering, our compiler takes 2 Bytes to store an integer value, after allocating memory to this data variable, memory may look like: In fig. 2, 2 bytes means …


Array: memory aspect

Ankur Kulhari

An array can be defined as finite collection of homogeneous data, stored in contiguous memory locations. Where, finite: means the number of elements to be stored in array has to be predefined finite number. homogeneous: all the elements of the array should be of same type (i.e. int, char, float etc.). contiguous: all the elements of the array should be …

Binary Tree

Ankur Kulhari

Binary tree is a rooted tree with following constraints: Every node can have at most two children. (zero, one and two) The two children of each node are called the left child and right child corresponding to their positions. A node can have only a left child or only a right child or it can have no children at all. …