Os Expt
Os Expt
./operation
1A.OPEN C:
#include<stdio.h>
#include<fcntl.h>
#include<errno.h>
int main()
if(fd == -1)
perror("Program");
return 0;
1B.READ C:
#include<unistd.h>
int main()
char buff[20];
read(0,buff,10);
write(1,buff,10);
}
1A.WRITE C:
#include<unistd.h>
int main()
1B.CLOSE C:
#include<stdio.h>
#include<fcntl.h>
#include<errno.h>
int main()
if(fd == -1)
perror("Program");
return 0;
ps axl | head -n 10
2B.DISPLAYING PROCESSES WITH HIGHEST MEMOEY USAGE
who -u
who -u | wc-
whoami
uname
pwd
who -u
who -u | wc-
4.FCFS
#include<stdio.h>
int main()
int n,bt[30],wait_t[30],turn_ar_t[30],av_wt_t=0,avturn_ar_t=0,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
printf("P[%d]:",i+1);
scanf("%d",&bt[i]);
wait_t[0]=0;
for(i=1;i<n;i++)
wait_t[i]=0;
for(j=0;j<i;j++)
wait_t[i]+=bt[j];
for(i=0;i<n;i++)
turn_ar_t[i]=bt[i]+wait_t[i];
av_wt_t+=wait_t[i];
avturn_ar_t+=turn_ar_t[i];
printf("\nP[%d]\t\t%d\t\t\t%d\t\t\t\t%d",i+1,bt[i],wait_t[i],turn_ar_t[i]);
av_wt_t/=i;
avturn_ar_t/=i;
return 0;
./a.out
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
int main(void) {
if(pid == 0) {
exit(EXIT_SUCCESS);
wait(NULL);
else {
return EXIT_SUCCESS;
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
pid_t p = fork();
if(p<0){
perror("fork fail");
exit(1);
return 0;
}
6.PRODUCER CONSUMER
./a.out
#include <stdio.h>
#include <stdlib.h>
int mutex = 1;
int full = 0;
void producer()
--mutex;
++full;
--empty;
data++;
++mutex;
void consumer()
--mutex;
--full;
++empty;
data--;
++mutex;
int main()
{
int n, i;
scanf("%d", &n);
switch (n)
case 1:
producer();
else
break;
case 2:
consumer();
else
{
printf("The Buffer is empty! New data cannot be consumed!");
break;
case 3:
exit(0);
break;
7.BANKER’s ALGORITHM
./a.out
#include <stdio.h>
int main() {
if your process or resources are greater than 5 and 3, then increase the size of the array */
if (p > 5 || c > 3) {
return 1;
scanf("%d", &alc[i][j]);
printf("Enter the max resources required for all processes (%dx%d matrix):\n", p, c);
scanf("%d", &max[i][j]);
scanf("%d", &available[i]);
printf("%d\t", need[i][j]);
printf("\n");
done[i] = 0;
}
return 0;
8.MVT
FOR OUTPUT USE gcc mvt.c
./a.out
#include <stdio.h>
int main() {
char ch = 'y';
scanf("%d", &ms);
temp = ms;
scanf("%d", &mp[i]);
} else {
break;
}
// Output memory allocation details
printf("\n\nPROCESS\tMEMORY ALLOCATED");
printf("\n%d\t%d", i + 1, mp[i]);
return 0;
./a.out
#include<stdio.h>
int main()
int pageFaults = 0;
int frames;
int m, n, s, pages;
scanf("%d",&frames);
scanf("%d",&pages);
int incomingStream[pages];
for(m=0;m<pages;m++){
scanf("%d",&incomingStream[m]);
for(m=0;m<frames;m++){
temp[m] = -1;
for(m=0;m<pages;m++){
s = 0;
for(n=0;n<frames;n++){
if(incomingStream[m] == temp[n]){
s++;
pageFaults--;
pageFaults++;
temp[m] = incomingStream[m];
temp[(pageFaults-1)%frames] = incomingStream[m];
printf("\n");
printf("%d\t\t\t",incomingStream[m]);
for(n=0;n<frames;n++){
if(temp[n]!=-1){
printf(" %d\t\t\t",temp[n]);
else{
printf(" - \t\t\t");
}
}
return 0;