SlideShare a Scribd company logo
OS LAB MANUAL

                MURALI




         OS Lab Manual


Operating Systems

                K.MURALI

    COMPUTER SCIENCE AND ENGINEERING

    GUDLAVALLERU ENGINEERING COLLEGE




               CSE ROCKS
OS LAB MANUAL

                                            MURALI

1) Simulate the following CPU scheduling algorithms
     a) FCFS
     b) SJF
     c) Priority
     d) Round Robin

a) FCFS:
AIM : A program to simulate the FCFS CPU scheduling algorithm

PROGRAM:

#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
char pn[10][10],t[10];
int arr[10],bur[10],star[10],finish[10],tat[10],wt[10],i,j,n,temp;
int totwt=0,tottat=0;
//clrscr();
printf("Enter the number of processes:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter the Process Name, Arrival Time & Burst Time:");
scanf("%s%d%d",&pn[i],&arr[i],&bur[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(arr[i]<arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
temp=bur[i];
bur[i]=bur[j];
bur[j]=temp;
strcpy(t,pn[i]);
strcpy(pn[i],pn[j]);
strcpy(pn[j],t);
}
}


                                                                     4




                                           CSE ROCKS
OS LAB MANUAL

                                          MURALI

}
for(i=0;i<n;i++)
{
if(i==0)
star[i]=arr[i];
else
star[i]=finish[i-1];
wt[i]=star[i]-arr[i];
finish[i]=star[i]+bur[i];
tat[i]=finish[i]-arr[i];
}
printf("nPName Arrtime Burtime WaitTime Start TAT Finish");
for(i=0;i<n;i++)
{
printf("n%st%3dt%3dt%3dt%3dt%6dt%6d",pn[i],arr[i],bur[i],wt[i],star[i],tat[i],finis
h[i]);
totwt+=wt[i];
tottat+=tat[i];
}
printf("nAverage Waiting time:%f",(float)totwt/n);
printf("nAverage Turn Around Time:%f",(float)tottat/n);
getch();
return 0;
}
OUTPUT:

Input:

Enter the number of processes: 3
Enter the Process Name, Arrival Time & Burst Time: p1 2 4
Enter the Process Name, Arrival Time & Burst Time: p2 3 5
Enter the Process Name, Arrival Time & Burst Time: p3 1 6

Output:

PName Arrtime Burtime WaitTime                  Srart TAT Finish
p3    1     6 0   1 6 7
p1    2    4 5  7 9 11
p2    3    5 8  11 13 16

Average Waiting Time: 4.3333333
Average Turn Around Time: 9.33333333




                                         CSE ROCKS
OS LAB MANUAL

                                          MURALI

b) SJF:
AIM: A program to simulate the SJF CPU scheduling algorithm

PROGRAM:

#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
int et[20],at[10],n,i,j,temp,st[10],ft[10],wt[10],ta[10];
int totwt=0,totta=0;
float awt,ata;
char pn[10][10],t[10];
clrscr();
printf("Enter the number of process:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter process name, arrival time & execution time:");
flushall();
scanf("%s%d%d",pn[i],&at[i],&et[i]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(et[i]<et[j])
{
temp=at[i];
at[i]=at[j];
at[j]=temp;
temp=et[i];
et[i]=et[j];
et[j]=temp;
strcpy(t,pn[i]);
strcpy(pn[i],pn[j]);
strcpy(pn[j],t);
}
}
for(i=0;i<n;i++)
{
if(i==0)
st[i]=at[i];
else
st[i]=ft[i-1];




                                         CSE ROCKS
OS LAB MANUAL

                                            MURALI

wt[i]=st[i]-at[i];
ft[i]=st[i]+et[i];
ta[i]=ft[i]-at[i];
totwt+=wt[i];
totta+=ta[i];
}
awt=(float)totwt/n;
ata=(float)totta/n;
printf("nPnametarrivaltimetexecutiontimetwaitingtimettatime");
for(i=0;i<n;i++)
printf("n%st%5dtt%5dtt%5dtt%5d",pn[i],at[i],et[i],wt[i],ta[i]);
printf("nAverage waiting time is:%f",awt);
printf("nAverage turnaroundtime is:%f",ata);
getch();
}

OUTPUT:


Input:

Enter the number of processes: 3
Enter the Process Name, Arrival Time & Burst Time: 1 4 6
Enter the Process Name, Arrival Time & Burst Time: 2 5 15
Enter the Process Name, Arrival Time & Burst Time: 3 6 11

Output:

Pname   arrivaltime executiontime          waitingtime tatime
1      4     6    0 6
3     6     11    4 15
2 5 15 16 31

Average Waiting Time: 6.6667
Average Turn Around Time: 17.3333




                                                                          7




                                           CSE ROCKS
OS LAB MANUAL

                                          MURALI

c) Priority:

AIM: A program to simulate the priority CPU scheduling algorithm

PROGRAM:

#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
int et[20],at[10],n,i,j,temp,p[10],st[10],ft[10],wt[10],ta[10];
int totwt=0,totta=0;
float awt,ata;
char pn[10][10],t[10];
clrscr();
printf("Enter the number of process:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter process name,arrivaltime,execution time & priority:");
flushall();
scanf("%s%d%d%d",pn[i],&at[i],&et[i],&p[i]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(p[i]<p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
temp=at[i];
at[i]=at[j];
at[j]=temp;
temp=et[i];
et[i]=et[j];
et[j]=temp;
strcpy(t,pn[i]);
strcpy(pn[i],pn[j]);
strcpy(pn[j],t);
}
}
for(i=0;i<n;i++)
{




                                         CSE ROCKS
OS LAB MANUAL

                                            MURALI

if(i==0)
{
st[i]=at[i];
wt[i]=st[i]-at[i];
ft[i]=st[i]+et[i];
ta[i]=ft[i]-at[i];
}
else
{
st[i]=ft[i-1];
wt[i]=st[i]-at[i];
ft[i]=st[i]+et[i];
ta[i]=ft[i]-at[i];
}
totwt+=wt[i];
totta+=ta[i];
}
awt=(float)totwt/n;
ata=(float)totta/n;
printf("nPnametarrivaltimetexecutiontimetprioritytwaitingtimettatime");
for(i=0;i<n;i++)
printf("n%st%5dtt%5dtt%5dtt%5dtt%5d",pn[i],at[i],et[i],p[i],wt[i],ta[i]);
printf("nAverage waiting time is:%f",awt);
printf("nAverage turnaroundtime is:%f",ata);
getch();
}

OUTPUT:
Input:

Enter the number of processes: 3
Enter the Process Name, Arrival Time, execution time & priority: 1 2 3 1
Enter the Process Name, Arrival Time, execution time & priority: 2 4 5 2
Enter the Process Name, Arrival Time, execution time & priority: 3 5 6 3

Output:

Pname   arrivaltime executiontime          priority     waitingtime      tatime
1      2     3      1    0     3
2     4     5      2   1    6
3   5  6         3  5   11


Average Waiting Time: 2.0000
Average Turn Around Time: 6.6667




                                           CSE ROCKS
OS LAB MANUAL

                                        MURALI

d) Round Robin:
AIM: A program to simulate the Round Robin CPU scheduling algorithm

PROGRAM:

#include<stdio.h>
#include<conio.h>
void main()
{
int et[30],ts,n,i,x=0,tot=0;
char pn[10][10];
clrscr();
printf("Enter the no of processes:");
scanf("%d",&n);
printf("Enter the time quantum:");
scanf("%d",&ts);
for(i=0;i<n;i++)
{
printf("enter process name & estimated time:");
scanf("%s %d",pn[i],&et[i]);
}
printf("The processes are:");
for(i=0;i<n;i++)
printf("process %d: %sn",i+1,pn[i]);
for(i=0;i<n;i++)
tot=tot+et[i];
while(x!=tot)
{
for(i=0;i<n;i++)
{
if(et[i]>ts)
{
x=x+ts;
printf("n %s -> %d",pn[i],ts);

et[i]=et[i]-ts;
}

else
if((et[i]<=ts)&&et[i]!=0)
{
x=x+et[i];
printf("n %s -> %d",pn[i],et[i]);
et[i]=0;}
}




                                       CSE ROCKS
OS LAB MANUAL

                                           MURALI

}
printf("n Total Estimated Time:%d",x);
getch();
}
OUTPUT:

Input:

Enter the no of processes: 2
Enter the time quantum: 3

Enter the process name & estimated time: p1 12
Enter the process name & estimated time: p2 15


Output:
p1 -> 3
p2 -> 3
p1 -> 3
p2 -> 3
p1 -> 3
p2 -> 3
p1 -> 3
p2 -> 3
p2 -> 3

Total Estimated Time: 27




                                          CSE ROCKS
OS LAB MANUAL

                                          MURALI

2) Simulate the MVT and MFT.

MVT:
AIM: A program to simulate the MVT.

PROGRAM:

#include<stdio.h>
#include<conio.h>
void main()
{
int m=0,m1=0,m2=0,p,count=0,i;
clrscr();
printf("enter the memory capacity:");
scanf("%d",&m);
printf("enter the no of processes:");
scanf("%d",&p);
for(i=0;i<p;i++)
{
printf("nenter memory req for process%d: ",i+1);
scanf("%d",&m1);
count=count+m1;
if(m1<=m)
{
if(count==m)
printf("there is no further memory remaining:");
printf("the memory allocated for process%d is: %d ",i+1,m);
m2=m-m1;
printf("nremaining memory is: %d",m2);
m=m2;
}
}
else
{
printf("memory is not allocated for process%d",i+1);
}
printf("nexternal fragmentation for this process is:%d",m2);
}
getch();

}




                                         CSE ROCKS
OS LAB MANUAL

                                           MURALI

OUTPUT:

Input:

Enter the memory capacity: 80
Enter no of processes: 2
Enter memory req for process1: 23

Output:

The memory allocated for process1 is: 80
Remaining memory is: 57
External fragmentation for this process is: 57
Enter memory req for process2: 52
The memory allocated for process2 is: 57
Remaining memory is: 5
External fragmentation for this process is: 5




                                          CSE ROCKS
OS LAB MANUAL

                                     MURALI

MFT:
AIM: A Program to simulate the MFT

PROGRAM:

#include<stdio.h>
#include<conio.h>
int main()
{
int m,p,s,p1;
int m1[4],i,f,f1=0,f2=0,fra1,fra2,s1,pos;
clrscr();
printf("Enter the memory size:");
scanf("%d",&m);
printf("Enter the no of partitions:");
scanf("%d",&p);
s=m/p;
printf("Each partn size is:%d",s);
printf("nEnter the no of processes:");
scanf("%d",&p1);
pos=m;
for(i=0;i<p1;i++)
{
if(pos<s)
{
printf("nThere is no further memory for process%d",i+1);
m1[i]=0;
break;
}
else
{
printf("nEnter the memory req for process%d:",i+1);
scanf("%d",&m1[i]);
if(m1[i]<=s)
{
printf("nProcess is alloca ted in partition%d",i+1);
fra1=s-m1[i];
printf("nInternal fragmentation for process is:%d",fra1);
f1=f1+fra1;
pos=pos-s;




                                   CSE ROCKS
OS LAB MANUAL

                                    MURALI

}
else
{
printf("nProcess not allocated in partition%d",i+1);
s1=m1[i];
while(s1>s)
{
s1=s1-s;
pos=pos-s;
}
pos=pos-s;
fra2=s-s1;
f2=f2+fra2;
printf("nExternal Fragmentation for this process is:%d",fra2);
}
}
}
printf("nProcesstallocatedmemory");
for(i=0;i<p1;i++)
printf("n%5dt%5d",i+1,m1[i]);
f=f1+f2;
printf("nThe tot no of fragmentation is:%d",f);
getch();
return 0;
}




                                   CSE ROCKS
OS LAB MANUAL

                                             MURALI

OUTPUT:

Input:

Enter the memory size: 80
Enter the no of partitions: 4
Each partition size: 20
Enter the number of processes: 2
Enter the memory req for process1: 18

Output:

Process1 is allocated in partn1
Internal fragmentation for process1 is: 2
Enter the memory req for process2: 22
Process2 is not allocated in partn2
External fragmentation for process2 is: 18

Process         memory               allocated
1             20   18
2                  20                        22

The tot no of fragmentation is: 20




                                           CSE ROCKS
OS LAB MANUAL

                                            MURALI

3) Simulate all Page Replacement Algorithms
   a) FIFO
   b) LRU

a) FIFO:
AIM: A program to simulate FIFO Page Replacement Algorithm

PROGRAM:

#include<stdio.h>
#include<conio.h>
void main()
{
int a[5],b[20],n,p=0,q=0,m=0,h,k,i,q1=1;
char f='F';
clrscr();
printf("Enter the Number of Pages:");
scanf("%d",&n);
printf("Enter %d Page Numbers:",n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++)
{if(p==0)
{
if(q>=3)
q=0;
a[q]=b[i];
q++;
if(q1<3)
{
q1=q;
}
}
printf("n%d",b[i]);
printf("t");
for(h=0;h<q1;h++)
printf("%d",a[h]);
if((p==0)&&(q<=3))
{
printf("-->%c",f);
m++;
}
p=0;
for(k=0;k<q1;k++)




                                           CSE ROCKS
OS LAB MANUAL

                                    MURALI

{
if(b[i+1]==a[k])
p=1;
}
}
printf("nNo of faults:%d",m);
getch();
}
OUTPUT:

Input:

Enter the Number of Pages: 12
Enter 12 Page Numbers:
232152453252

Output:

2 2-> F
3 23-> F
2 23
1 231-> F
5 531-> F
2 521-> F
4 524-> F
5 524
3 324-> F
2 324
5 354-> F
2 352-> F

No of faults: 9




                                   CSE ROCKS
OS LAB MANUAL

                                         MURALI

b) LRU:
AIM: A program to simulate LRU Page Replacement Algorithm

PROGRAM:

#include<stdio.h>
#include<conio.h>
void main()
{
int g=0,a[5],b[20],p=0,q=0,m=0,h,k,i,q1=1,j,u,n;
char f='F';
clrscr();
printf("Enter the number of pages:");
scanf("%d",&n);
printf("Enter %d Page Numbers:",n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++)
{if(p==0)
{
if(q>=3)
q=0;
a[q]=b[i];
q++;
if(q1<3)
{
q1=q;
//g=1;
}
}
printf("n%d",b[i]);
printf("t");
for(h=0;h<q1;h++)
printf("%d",a[h]);
if((p==0)&&(q<=3))
{
printf("-->%c",f);
m++;
}
p=0;
g=0;
if(q1==3)
{
for(k=0;k<q1;k++)
{




                                        CSE ROCKS
OS LAB MANUAL

                                    MURALI

if(b[i+1]==a[k])
p=1;
}
for(j=0;j<q1;j++)
{
u=0;
k=i;
while(k>=(i-1)&&(k>=0))
{
if(b[k]==a[j])
u++;
k--;
}
if(u==0)
q=j;
}
}
else
{
for(k=0;k<q;k++)
{
if(b[i+1]==a[k])
p=1;
}
}
}
printf("nNo of faults:%d",m);
getch();
}




                                   CSE ROCKS
OS LAB MANUAL

                                   MURALI

OUTPUT:

Input:

Enter the Number of Pages: 12
Enter 12 Page Numbers:
232152453252

Output:

2   2-> F
3   23-> F
2   23
1   231-> F
5   251-> F
2   251
4   254-> F
5   254
3   354-> F
2   352-> F
5   352
2   352

No of faults: 7




                                  CSE ROCKS
OS LAB MANUAL

                                             MURALI

4) Simulate Paging technique of Memory Management.

AIM: A program to simulate Paging technique of memory management.

PROGRAM:

#include<stdio.h>
#include<conio.h>
main()
{
int np,ps,i;
int *sa;
clrscr();
printf("enter how many pagesn");
scanf("%d",&np);
printf("enter the page size n");
scanf("%d",&ps);
sa=(int*)malloc(2*np);
for(i=0;i<np;i++)
{
sa[i]=(int)malloc(ps);
printf("page%dt address %un",i+1,sa[i]);
}
getch();
}

OUTPUT:

Input:

Enter how many pages: 5
Enter the page size: 4

Output:

Page1 Address: 1894
Page2 Address: 1902
Page3 Address: 1910
Page4 Address: 1918
Page5 Address: 1926




                                         CSE ROCKS

More Related Content

TXT
Programs for Operating System
LPU
 
DOCX
Lab manual operating system [cs 502 rgpv] (usefulsearch.org) (useful search)
Make Mannan
 
DOCX
Os lab file c programs
Kandarp Tiwari
 
PDF
Cn os-lp lab manual k.roshan
riturajj
 
DOCX
DAA Lab File C Programs
Kandarp Tiwari
 
PDF
System Software /Operating System Lab Report
Vishnu K N
 
PDF
design and analysis of algorithm Lab files
Nitesh Dubey
 
DOC
Daa practicals
Rekha Yadav
 
Programs for Operating System
LPU
 
Lab manual operating system [cs 502 rgpv] (usefulsearch.org) (useful search)
Make Mannan
 
Os lab file c programs
Kandarp Tiwari
 
Cn os-lp lab manual k.roshan
riturajj
 
DAA Lab File C Programs
Kandarp Tiwari
 
System Software /Operating System Lab Report
Vishnu K N
 
design and analysis of algorithm Lab files
Nitesh Dubey
 
Daa practicals
Rekha Yadav
 

What's hot (18)

DOCX
Solutionsfor co2 C Programs for data structures
Lakshmi Sarvani Videla
 
DOCX
Data Structures Using C Practical File
Rahul Chugh
 
DOCX
ADA FILE
Gaurav Singh
 
DOCX
DataStructures notes
Lakshmi Sarvani Videla
 
PDF
C programms
Mukund Gandrakota
 
DOCX
C programs
Lakshmi Sarvani Videla
 
PDF
c-programming-using-pointers
Sushil Mishra
 
PDF
C Prog. - Strings (Updated)
vinay arora
 
PDF
Cpd lecture im 207
Syed Tanveer
 
DOCX
Cpds lab
praveennallavelly08
 
PDF
C Prog - Strings
vinay arora
 
DOC
C basics
MSc CST
 
PDF
C Programming lab
Vikram Nandini
 
PDF
C Prog. - Structures
vinay arora
 
DOCX
C lab manaual
manoj11manu
 
DOCX
Practical File of C Language
RAJWANT KAUR
 
PPTX
Double linked list
raviahuja11
 
Solutionsfor co2 C Programs for data structures
Lakshmi Sarvani Videla
 
Data Structures Using C Practical File
Rahul Chugh
 
ADA FILE
Gaurav Singh
 
DataStructures notes
Lakshmi Sarvani Videla
 
C programms
Mukund Gandrakota
 
c-programming-using-pointers
Sushil Mishra
 
C Prog. - Strings (Updated)
vinay arora
 
Cpd lecture im 207
Syed Tanveer
 
C Prog - Strings
vinay arora
 
C basics
MSc CST
 
C Programming lab
Vikram Nandini
 
C Prog. - Structures
vinay arora
 
C lab manaual
manoj11manu
 
Practical File of C Language
RAJWANT KAUR
 
Double linked list
raviahuja11
 
Ad

Similar to Os lab 1st mid (20)

DOCX
Operating system labs
bhaktisagar4
 
PDF
Unix Programs
Griffinder VinHai
 
DOCX
Data structure new lab manual
SANTOSH RATH
 
DOCX
Lab loop
Manode Boonpeng
 
PDF
System Software/Operating Sytems lab report
Vishnu K N
 
DOCX
Assignment no39
Jay Patel
 
PDF
22-SE-77 OS_lab_labotary assignmnet#2.pdf
EngTariq2
 
DOCX
Lab9 LRU and FIFO.docx
PremaJain2
 
DOC
'C' language notes (a.p)
Ashishchinu
 
DOC
Daapracticals 111105084852-phpapp02
Er Ritu Aggarwal
 
TXT
Bankers Algo Implementation
Deepak Agarwal
 
DOCX
Network lap pgms 7th semester
DOSONKA Group
 
DOCX
Let us C (by yashvant Kanetkar) chapter 3 Solution
Hazrat Bilal
 
DOCX
Cd practical file (1) start se
dalipkumar64
 
DOCX
C file
simarsimmygrewal
 
DOCX
SaraPIC
Sara Sahu
 
DOCX
Hargun
Mukund Trivedi
 
Operating system labs
bhaktisagar4
 
Unix Programs
Griffinder VinHai
 
Data structure new lab manual
SANTOSH RATH
 
Lab loop
Manode Boonpeng
 
System Software/Operating Sytems lab report
Vishnu K N
 
Assignment no39
Jay Patel
 
22-SE-77 OS_lab_labotary assignmnet#2.pdf
EngTariq2
 
Lab9 LRU and FIFO.docx
PremaJain2
 
'C' language notes (a.p)
Ashishchinu
 
Daapracticals 111105084852-phpapp02
Er Ritu Aggarwal
 
Bankers Algo Implementation
Deepak Agarwal
 
Network lap pgms 7th semester
DOSONKA Group
 
Let us C (by yashvant Kanetkar) chapter 3 Solution
Hazrat Bilal
 
Cd practical file (1) start se
dalipkumar64
 
SaraPIC
Sara Sahu
 
Ad

Recently uploaded (20)

PPTX
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
PPTX
CDH. pptx
AneetaSharma15
 
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
PPTX
Care of patients with elImination deviation.pptx
AneetaSharma15
 
PPTX
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
PPTX
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
PDF
Virat Kohli- the Pride of Indian cricket
kushpar147
 
PDF
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
PPTX
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
PPTX
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
PPTX
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
PDF
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PPTX
Virus sequence retrieval from NCBI database
yamunaK13
 
DOCX
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
PPTX
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
PPTX
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
PPTX
Gupta Art & Architecture Temple and Sculptures.pptx
Virag Sontakke
 
How to Close Subscription in Odoo 18 - Odoo Slides
Celine George
 
CDH. pptx
AneetaSharma15
 
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
Care of patients with elImination deviation.pptx
AneetaSharma15
 
Sonnet 130_ My Mistress’ Eyes Are Nothing Like the Sun By William Shakespear...
DhatriParmar
 
CARE OF UNCONSCIOUS PATIENTS .pptx
AneetaSharma15
 
Virat Kohli- the Pride of Indian cricket
kushpar147
 
Biological Classification Class 11th NCERT CBSE NEET.pdf
NehaRohtagi1
 
Artificial Intelligence in Gastroentrology: Advancements and Future Presprec...
AyanHossain
 
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
Cleaning Validation Ppt Pharmaceutical validation
Ms. Ashatai Patil
 
BÀI TẬP TEST BỔ TRỢ THEO TỪNG CHỦ ĐỀ CỦA TỪNG UNIT KÈM BÀI TẬP NGHE - TIẾNG A...
Nguyen Thanh Tu Collection
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
Virus sequence retrieval from NCBI database
yamunaK13
 
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
PROTIEN ENERGY MALNUTRITION: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
Five Point Someone – Chetan Bhagat | Book Summary & Analysis by Bhupesh Kushwaha
Bhupesh Kushwaha
 
A Smarter Way to Think About Choosing a College
Cyndy McDonald
 
Gupta Art & Architecture Temple and Sculptures.pptx
Virag Sontakke
 

Os lab 1st mid

  • 1. OS LAB MANUAL MURALI OS Lab Manual Operating Systems K.MURALI COMPUTER SCIENCE AND ENGINEERING GUDLAVALLERU ENGINEERING COLLEGE CSE ROCKS
  • 2. OS LAB MANUAL MURALI 1) Simulate the following CPU scheduling algorithms a) FCFS b) SJF c) Priority d) Round Robin a) FCFS: AIM : A program to simulate the FCFS CPU scheduling algorithm PROGRAM: #include<stdio.h> #include<string.h> #include<conio.h> main() { char pn[10][10],t[10]; int arr[10],bur[10],star[10],finish[10],tat[10],wt[10],i,j,n,temp; int totwt=0,tottat=0; //clrscr(); printf("Enter the number of processes:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("Enter the Process Name, Arrival Time & Burst Time:"); scanf("%s%d%d",&pn[i],&arr[i],&bur[i]); } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(arr[i]<arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; temp=bur[i]; bur[i]=bur[j]; bur[j]=temp; strcpy(t,pn[i]); strcpy(pn[i],pn[j]); strcpy(pn[j],t); } } 4 CSE ROCKS
  • 3. OS LAB MANUAL MURALI } for(i=0;i<n;i++) { if(i==0) star[i]=arr[i]; else star[i]=finish[i-1]; wt[i]=star[i]-arr[i]; finish[i]=star[i]+bur[i]; tat[i]=finish[i]-arr[i]; } printf("nPName Arrtime Burtime WaitTime Start TAT Finish"); for(i=0;i<n;i++) { printf("n%st%3dt%3dt%3dt%3dt%6dt%6d",pn[i],arr[i],bur[i],wt[i],star[i],tat[i],finis h[i]); totwt+=wt[i]; tottat+=tat[i]; } printf("nAverage Waiting time:%f",(float)totwt/n); printf("nAverage Turn Around Time:%f",(float)tottat/n); getch(); return 0; } OUTPUT: Input: Enter the number of processes: 3 Enter the Process Name, Arrival Time & Burst Time: p1 2 4 Enter the Process Name, Arrival Time & Burst Time: p2 3 5 Enter the Process Name, Arrival Time & Burst Time: p3 1 6 Output: PName Arrtime Burtime WaitTime Srart TAT Finish p3 1 6 0 1 6 7 p1 2 4 5 7 9 11 p2 3 5 8 11 13 16 Average Waiting Time: 4.3333333 Average Turn Around Time: 9.33333333 CSE ROCKS
  • 4. OS LAB MANUAL MURALI b) SJF: AIM: A program to simulate the SJF CPU scheduling algorithm PROGRAM: #include<stdio.h> #include<conio.h> #include<string.h> void main() { int et[20],at[10],n,i,j,temp,st[10],ft[10],wt[10],ta[10]; int totwt=0,totta=0; float awt,ata; char pn[10][10],t[10]; clrscr(); printf("Enter the number of process:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("Enter process name, arrival time & execution time:"); flushall(); scanf("%s%d%d",pn[i],&at[i],&et[i]); } for(i=0;i<n;i++) for(j=0;j<n;j++) { if(et[i]<et[j]) { temp=at[i]; at[i]=at[j]; at[j]=temp; temp=et[i]; et[i]=et[j]; et[j]=temp; strcpy(t,pn[i]); strcpy(pn[i],pn[j]); strcpy(pn[j],t); } } for(i=0;i<n;i++) { if(i==0) st[i]=at[i]; else st[i]=ft[i-1]; CSE ROCKS
  • 5. OS LAB MANUAL MURALI wt[i]=st[i]-at[i]; ft[i]=st[i]+et[i]; ta[i]=ft[i]-at[i]; totwt+=wt[i]; totta+=ta[i]; } awt=(float)totwt/n; ata=(float)totta/n; printf("nPnametarrivaltimetexecutiontimetwaitingtimettatime"); for(i=0;i<n;i++) printf("n%st%5dtt%5dtt%5dtt%5d",pn[i],at[i],et[i],wt[i],ta[i]); printf("nAverage waiting time is:%f",awt); printf("nAverage turnaroundtime is:%f",ata); getch(); } OUTPUT: Input: Enter the number of processes: 3 Enter the Process Name, Arrival Time & Burst Time: 1 4 6 Enter the Process Name, Arrival Time & Burst Time: 2 5 15 Enter the Process Name, Arrival Time & Burst Time: 3 6 11 Output: Pname arrivaltime executiontime waitingtime tatime 1 4 6 0 6 3 6 11 4 15 2 5 15 16 31 Average Waiting Time: 6.6667 Average Turn Around Time: 17.3333 7 CSE ROCKS
  • 6. OS LAB MANUAL MURALI c) Priority: AIM: A program to simulate the priority CPU scheduling algorithm PROGRAM: #include<stdio.h> #include<conio.h> #include<string.h> void main() { int et[20],at[10],n,i,j,temp,p[10],st[10],ft[10],wt[10],ta[10]; int totwt=0,totta=0; float awt,ata; char pn[10][10],t[10]; clrscr(); printf("Enter the number of process:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("Enter process name,arrivaltime,execution time & priority:"); flushall(); scanf("%s%d%d%d",pn[i],&at[i],&et[i],&p[i]); } for(i=0;i<n;i++) for(j=0;j<n;j++) { if(p[i]<p[j]) { temp=p[i]; p[i]=p[j]; p[j]=temp; temp=at[i]; at[i]=at[j]; at[j]=temp; temp=et[i]; et[i]=et[j]; et[j]=temp; strcpy(t,pn[i]); strcpy(pn[i],pn[j]); strcpy(pn[j],t); } } for(i=0;i<n;i++) { CSE ROCKS
  • 7. OS LAB MANUAL MURALI if(i==0) { st[i]=at[i]; wt[i]=st[i]-at[i]; ft[i]=st[i]+et[i]; ta[i]=ft[i]-at[i]; } else { st[i]=ft[i-1]; wt[i]=st[i]-at[i]; ft[i]=st[i]+et[i]; ta[i]=ft[i]-at[i]; } totwt+=wt[i]; totta+=ta[i]; } awt=(float)totwt/n; ata=(float)totta/n; printf("nPnametarrivaltimetexecutiontimetprioritytwaitingtimettatime"); for(i=0;i<n;i++) printf("n%st%5dtt%5dtt%5dtt%5dtt%5d",pn[i],at[i],et[i],p[i],wt[i],ta[i]); printf("nAverage waiting time is:%f",awt); printf("nAverage turnaroundtime is:%f",ata); getch(); } OUTPUT: Input: Enter the number of processes: 3 Enter the Process Name, Arrival Time, execution time & priority: 1 2 3 1 Enter the Process Name, Arrival Time, execution time & priority: 2 4 5 2 Enter the Process Name, Arrival Time, execution time & priority: 3 5 6 3 Output: Pname arrivaltime executiontime priority waitingtime tatime 1 2 3 1 0 3 2 4 5 2 1 6 3 5 6 3 5 11 Average Waiting Time: 2.0000 Average Turn Around Time: 6.6667 CSE ROCKS
  • 8. OS LAB MANUAL MURALI d) Round Robin: AIM: A program to simulate the Round Robin CPU scheduling algorithm PROGRAM: #include<stdio.h> #include<conio.h> void main() { int et[30],ts,n,i,x=0,tot=0; char pn[10][10]; clrscr(); printf("Enter the no of processes:"); scanf("%d",&n); printf("Enter the time quantum:"); scanf("%d",&ts); for(i=0;i<n;i++) { printf("enter process name & estimated time:"); scanf("%s %d",pn[i],&et[i]); } printf("The processes are:"); for(i=0;i<n;i++) printf("process %d: %sn",i+1,pn[i]); for(i=0;i<n;i++) tot=tot+et[i]; while(x!=tot) { for(i=0;i<n;i++) { if(et[i]>ts) { x=x+ts; printf("n %s -> %d",pn[i],ts); et[i]=et[i]-ts; } else if((et[i]<=ts)&&et[i]!=0) { x=x+et[i]; printf("n %s -> %d",pn[i],et[i]); et[i]=0;} } CSE ROCKS
  • 9. OS LAB MANUAL MURALI } printf("n Total Estimated Time:%d",x); getch(); } OUTPUT: Input: Enter the no of processes: 2 Enter the time quantum: 3 Enter the process name & estimated time: p1 12 Enter the process name & estimated time: p2 15 Output: p1 -> 3 p2 -> 3 p1 -> 3 p2 -> 3 p1 -> 3 p2 -> 3 p1 -> 3 p2 -> 3 p2 -> 3 Total Estimated Time: 27 CSE ROCKS
  • 10. OS LAB MANUAL MURALI 2) Simulate the MVT and MFT. MVT: AIM: A program to simulate the MVT. PROGRAM: #include<stdio.h> #include<conio.h> void main() { int m=0,m1=0,m2=0,p,count=0,i; clrscr(); printf("enter the memory capacity:"); scanf("%d",&m); printf("enter the no of processes:"); scanf("%d",&p); for(i=0;i<p;i++) { printf("nenter memory req for process%d: ",i+1); scanf("%d",&m1); count=count+m1; if(m1<=m) { if(count==m) printf("there is no further memory remaining:"); printf("the memory allocated for process%d is: %d ",i+1,m); m2=m-m1; printf("nremaining memory is: %d",m2); m=m2; } } else { printf("memory is not allocated for process%d",i+1); } printf("nexternal fragmentation for this process is:%d",m2); } getch(); } CSE ROCKS
  • 11. OS LAB MANUAL MURALI OUTPUT: Input: Enter the memory capacity: 80 Enter no of processes: 2 Enter memory req for process1: 23 Output: The memory allocated for process1 is: 80 Remaining memory is: 57 External fragmentation for this process is: 57 Enter memory req for process2: 52 The memory allocated for process2 is: 57 Remaining memory is: 5 External fragmentation for this process is: 5 CSE ROCKS
  • 12. OS LAB MANUAL MURALI MFT: AIM: A Program to simulate the MFT PROGRAM: #include<stdio.h> #include<conio.h> int main() { int m,p,s,p1; int m1[4],i,f,f1=0,f2=0,fra1,fra2,s1,pos; clrscr(); printf("Enter the memory size:"); scanf("%d",&m); printf("Enter the no of partitions:"); scanf("%d",&p); s=m/p; printf("Each partn size is:%d",s); printf("nEnter the no of processes:"); scanf("%d",&p1); pos=m; for(i=0;i<p1;i++) { if(pos<s) { printf("nThere is no further memory for process%d",i+1); m1[i]=0; break; } else { printf("nEnter the memory req for process%d:",i+1); scanf("%d",&m1[i]); if(m1[i]<=s) { printf("nProcess is alloca ted in partition%d",i+1); fra1=s-m1[i]; printf("nInternal fragmentation for process is:%d",fra1); f1=f1+fra1; pos=pos-s; CSE ROCKS
  • 13. OS LAB MANUAL MURALI } else { printf("nProcess not allocated in partition%d",i+1); s1=m1[i]; while(s1>s) { s1=s1-s; pos=pos-s; } pos=pos-s; fra2=s-s1; f2=f2+fra2; printf("nExternal Fragmentation for this process is:%d",fra2); } } } printf("nProcesstallocatedmemory"); for(i=0;i<p1;i++) printf("n%5dt%5d",i+1,m1[i]); f=f1+f2; printf("nThe tot no of fragmentation is:%d",f); getch(); return 0; } CSE ROCKS
  • 14. OS LAB MANUAL MURALI OUTPUT: Input: Enter the memory size: 80 Enter the no of partitions: 4 Each partition size: 20 Enter the number of processes: 2 Enter the memory req for process1: 18 Output: Process1 is allocated in partn1 Internal fragmentation for process1 is: 2 Enter the memory req for process2: 22 Process2 is not allocated in partn2 External fragmentation for process2 is: 18 Process memory allocated 1 20 18 2 20 22 The tot no of fragmentation is: 20 CSE ROCKS
  • 15. OS LAB MANUAL MURALI 3) Simulate all Page Replacement Algorithms a) FIFO b) LRU a) FIFO: AIM: A program to simulate FIFO Page Replacement Algorithm PROGRAM: #include<stdio.h> #include<conio.h> void main() { int a[5],b[20],n,p=0,q=0,m=0,h,k,i,q1=1; char f='F'; clrscr(); printf("Enter the Number of Pages:"); scanf("%d",&n); printf("Enter %d Page Numbers:",n); for(i=0;i<n;i++) scanf("%d",&b[i]); for(i=0;i<n;i++) {if(p==0) { if(q>=3) q=0; a[q]=b[i]; q++; if(q1<3) { q1=q; } } printf("n%d",b[i]); printf("t"); for(h=0;h<q1;h++) printf("%d",a[h]); if((p==0)&&(q<=3)) { printf("-->%c",f); m++; } p=0; for(k=0;k<q1;k++) CSE ROCKS
  • 16. OS LAB MANUAL MURALI { if(b[i+1]==a[k]) p=1; } } printf("nNo of faults:%d",m); getch(); } OUTPUT: Input: Enter the Number of Pages: 12 Enter 12 Page Numbers: 232152453252 Output: 2 2-> F 3 23-> F 2 23 1 231-> F 5 531-> F 2 521-> F 4 524-> F 5 524 3 324-> F 2 324 5 354-> F 2 352-> F No of faults: 9 CSE ROCKS
  • 17. OS LAB MANUAL MURALI b) LRU: AIM: A program to simulate LRU Page Replacement Algorithm PROGRAM: #include<stdio.h> #include<conio.h> void main() { int g=0,a[5],b[20],p=0,q=0,m=0,h,k,i,q1=1,j,u,n; char f='F'; clrscr(); printf("Enter the number of pages:"); scanf("%d",&n); printf("Enter %d Page Numbers:",n); for(i=0;i<n;i++) scanf("%d",&b[i]); for(i=0;i<n;i++) {if(p==0) { if(q>=3) q=0; a[q]=b[i]; q++; if(q1<3) { q1=q; //g=1; } } printf("n%d",b[i]); printf("t"); for(h=0;h<q1;h++) printf("%d",a[h]); if((p==0)&&(q<=3)) { printf("-->%c",f); m++; } p=0; g=0; if(q1==3) { for(k=0;k<q1;k++) { CSE ROCKS
  • 18. OS LAB MANUAL MURALI if(b[i+1]==a[k]) p=1; } for(j=0;j<q1;j++) { u=0; k=i; while(k>=(i-1)&&(k>=0)) { if(b[k]==a[j]) u++; k--; } if(u==0) q=j; } } else { for(k=0;k<q;k++) { if(b[i+1]==a[k]) p=1; } } } printf("nNo of faults:%d",m); getch(); } CSE ROCKS
  • 19. OS LAB MANUAL MURALI OUTPUT: Input: Enter the Number of Pages: 12 Enter 12 Page Numbers: 232152453252 Output: 2 2-> F 3 23-> F 2 23 1 231-> F 5 251-> F 2 251 4 254-> F 5 254 3 354-> F 2 352-> F 5 352 2 352 No of faults: 7 CSE ROCKS
  • 20. OS LAB MANUAL MURALI 4) Simulate Paging technique of Memory Management. AIM: A program to simulate Paging technique of memory management. PROGRAM: #include<stdio.h> #include<conio.h> main() { int np,ps,i; int *sa; clrscr(); printf("enter how many pagesn"); scanf("%d",&np); printf("enter the page size n"); scanf("%d",&ps); sa=(int*)malloc(2*np); for(i=0;i<np;i++) { sa[i]=(int)malloc(ps); printf("page%dt address %un",i+1,sa[i]); } getch(); } OUTPUT: Input: Enter how many pages: 5 Enter the page size: 4 Output: Page1 Address: 1894 Page2 Address: 1902 Page3 Address: 1910 Page4 Address: 1918 Page5 Address: 1926 CSE ROCKS