Oprating System Exceplaination Lab file (OS)

  Practical 1 

Aim: Multiplication of two numbers implement in c 

Discription: 

Get two integers a and b (using scanf statement) multiply a and b, then store the product in c (c=a*b) print the value of c (using printf statement) 

ALGORITHM: 

Step1 enter to value by user 

Step2 product them 

Step3 stop 

Source code: //Program to Multiplication of two numbers 

#include<stdio.h> 

int main() 

{ 

int num1,num2,product; 

printf("Enter two numbers:"); 

scanf("%d %d",&num1,&num2); 

product=num1*num2; 

printf("Product of two numbers: %d",product); 

return  0; 

} 

output/input 

 

 

 

Practical 2 

CPU SCHEDULINGALGORITHMS 

A). FIRST COME FIRST SERVE: 

AIM: To write a c program to simulate the CPU scheduling algorithm First Come First 

Serve (FCFS) 

DESCRIPTION: 

To calculate the average waiting time using the FCFS algorithm first the waiting 

time of the first process is kept zero and the waiting time of the second process is the 

burst time of the first process and the waiting time of the third process is the sum of the 

burst times of the first and the second process and so on. After calculating all the waiting 

times the average waiting time is calculated as the average of all the waiting times. FCFS 

mainly says first come first serve the algorithm which came first will be served first. 

ALGORITHM: 

Step 1: Start the process 

Step 2: Accept the number of processes in the ready Queue 

Step 3: For each process in the ready Q, assign the process name and the burst time Step 

4: Set the waiting of the first process as ‗0‘and its burst time as its turnaround time Step 

5: for each process in the Ready Q calculate 

a). Waiting time (n) = waiting time (n-1) + Burst time (n-1) b). 

Turnaround time (n)= waiting time(n)+Burst time(n) 

Step 6: Calculate 

a) Average waiting time = Total waiting Time / Number of process 

b) Average Turnaround time = Total Turnaround Time / Number of process 

Step 7: Stop the process 

SOURCE CODE: 

#include<stdio.h> 

#include<conio.h> 

void main() 

{ 

int bt[20], wt[20], tat[20], i, n; 

float wtavg, tatavg; 

//clrscr(); 

printf("\nEnter the number of processes -- "); 

scanf("%d", &n); 

for(i=0;i<n;i++) 

{ 

printf("\nEnter Burst Time for Process %d -- ", i); 

scanf("%d", &bt[i]); 

} 

wt[0] = wtavg = 0; 

tat[0] = tatavg = bt[0]; 

for(i=1;i<n;i++) 

{ 

wt[i] = wt[i-1] +bt[i-1]; 

tat[i] = tat[i-1] +bt[i]; 

wtavg = wtavg + wt[i]; 

tatavg = tatavg + tat[i]; 

} 

printf("\t PROCESS \tBURST TIME \t WAITING TIME\t TURNAROUND TIME\n"); 

for(i=0;i<n;i++) 

printf("\n\t P%d \t\t %d \t\t %d \t\t %d", i, bt[i], wt[i], tat[i]); 

printf("\nAverage Waiting Time -- %f", wtavg/n); 

printf("\nAverage Turnaround Time -- %f", tatavg/n); 

getch(); 

} 

 

 

 

 

 

 

 

 

 

INPUT 

Enter the number of processes -- 3 

Enter Burst Time for Process 0 -- 24 

Enter Burst Time for Process 1 -- 3 

Enter Burst Time for Process 2 -- 3 

OUTPUT 

PROCESS BURST TIME WAITING TIME TURNAROUND 

TIME 

P0 24 0 24 

P1 3 24 27 

P2 3 27 30 

Average Waiting Time-- 17.000000 

Average Turnaround Time -- 27.000000 

 

 

 

 

 

 

 

Practical 3  

SHORTEST JOB FIRST: 

AIM: To write a program to stimulate the CPU scheduling algorithm Shortest job first (NonPreemption) 

DESCRIPTION: 

To calculate the average waiting time in the shortest job first algorithm the sorting of the process 

based on their burst time in ascending order then calculate the waiting time of each process as 

the sum of the bursting times of all the process previous or before to that process. 

ALGORITHM: 

Step 1: Start the process 

Step 2: Accept the number of processes in the ready Queue 

Step 3: For each process in the ready Q, assign the process id and accept the CPU burst time 

Step 4: Start the Ready Q according the shortest Burst time by sorting according to lowest toDepartment of IT Page 3 

Operating Systems LAB 2019-2020 

highest burst time. 

Step 5: Set the waiting time of the first process as ‗0‘ and its turnaround time as its burst time. 

Step 6: Sort the processes names based on their Burt time 

Step 7: For each process in the ready queue, calculate 

a) Waiting time(n)= waiting time (n-1) + Burst time (n-1) 

b) Turnaround time (n)= waiting time(n)+Burst time(n) 

Step 8: Calculate 

a) Average waiting time = Total waiting Time / Number of process 

b) Average Turnaround time = Total Turnaround Time / Number ofprocess 

Step 9: Stop the process 

SOURCE CODE : 

#include<stdio.h> 

#include<conio.h> 

void main() 

{ 

int p[20], bt[20], wt[20], tat[20], i, k, n, temp; float wtavg, tatavg; 

//clrscr(); 

printf("\nEnter the number of processes -- "); scanf("%d", &n); 

for(i=0;i<n;i++) 

{ 

p[i]=i; 

printf("Enter Burst Time for Process %d -- ", i); scanf("%d", &bt[i]); 

} 

for(i=0;i<n;i++) for(k=i+1;k<n;k++) if(bt[i]>bt[k]) 

{ 

temp=bt[i]; bt[i]=bt[k]; bt[k]=temp; 

temp=p[i]; p[i]=p[k]; p[k]=temp; 

} 

wt[0] = wtavg = 0; 

tat[0] = tatavg = bt[0]; for(i=1;i<n;i++) 

{ 

wt[i] = wt[i-1] +bt[i-1]; 

tat[i] = tat[i-1] +bt[i]; wtavg = wtavg + wt[i]; tatavg = tatavg + tat[i]; 

} 

printf("\n\t PROCESS \tBURST TIME \t WAITING TIME\t TURNAROUND TIME\n"); 

for(i=0;i<n;i++) 

printf("\n\t P%d \t\t %d \t\t %d \t\t %d", p[i], bt[i], wt[i], tat[i]); printf("\nAverage Waiting Time-- %f", wtavg/n); 

printf("\nAverage Turnaround Time -- %f", tatavg/n); getch(); 

} 

 

INPUT: 

Enter the number of processes --4 

Enter Burst Time for Process 0 --6 

Enter Burst Time for Process 1 --8 

Enter Burst Time for Process 2 --7 

Enter Burst Time for Process 3 --3Department of IT Page 4 

Operating Systems LAB 2019-2020 

OUTPUT: 

PROCES 

S 

BURST 

TIME 

WAITING 

TIME 

TURNAROUND 

TIME 

P3 3 0 3 

P0 6 3 9 

P2 7 9 16 

P1 8 16 24 

Average Waiting Time -- 7.000000 

Average Turnaround Time --13.000000 

 

 

Comments

Popular Posts