Os Lab
Os Lab
#include <stdio.h>
void fcfs(int processes[], int n, int burst_time[]) {
int waiting_time[n], turnaround_time[n];
float total_wt = 0, total_tat = 0;
int main() {
int processes[] = {1, 2, 3};
int burst_time[3];
fcfs(processes, 3, burst_time);
return 0;
}
OUTPUT:--------
Enter Burst Times for Processes 1, 2, 3:
Burst Time for Process 1: 53
Burst Time for Process 2: 3
Burst Time for Process 3: 8
Process Burst Time Waiting Time Turnaround Time
P1 5 0 5
P2 3 5 8
P3 8 8 16
#include <stdio.h>
int main() {
int processes[] = {1, 2, 3}, burst_time[3];
printf("Enter Burst Times for Processes 1, 2, 3:\n");
for (int i = 0; i < 3; i++) scanf("%d", &burst_time[i]);
sjf(processes, 3, burst_time);
return 0;
}
OUTPUT
Enter Burst Times for Processes 1, 2, 3:
Burst Time for Process 1: 6
Burst Time for Process 2: 2
Burst Time for Process 3: 8
Process Burst Time Waiting Time Turnaround Time
P2 2 0 2
P1 6 2 8
P3 8 8 16
#include <stdio.h>
while (1) {
int done = 1;
for (int i = 0; i < n; i++) {
if (rem_time[i] > 0) {
done = 0;
int exec_time = (rem_time[i] > quantum) ? quantum : rem_time[i];
time += exec_time;
rem_time[i] -= exec_time;
if (rem_time[i] == 0) wt[i] = time - burst_time[i];
}
}
if (done) break;
}
int main() {
int processes[] = {1, 2, 3}, burst_time[3], quantum;
for (int i = 0; i < 3; i++) {
printf("Burst Time for P%d: ", processes[i]);
scanf("%d", &burst_time[i]);
}
printf("Time Quantum: ");
scanf("%d", &quantum);
#include <stdio.h>
int main() {
int p, r, i, j, count = 0;
printf("Enter number of processes and resources: ");
scanf("%d %d", &p, &r);
OUTPUT
#include <stdio.h>
int main() {
int pages[30], frames[10] = {-1}, n, f, faults = 0, index = 0;
if (!found) {
frames[index] = pages[i];
index = (index + 1) % f;
faults++;
}
printf("Frames: ");
for (int j = 0; j < f; j++) if (frames[j] != -1) printf("%d ", frames[j]);
printf("\n");
}
#include<stdio.h>
#include<string.h>
int main() {
int nf = 0, i = 0, ch;
char mdname[10], fname[10][10], name[10];
do {
printf("Enter file name: ");
scanf("%s", name);
return 0;
}
OUTPUT
Directory: MyDir
Files:
file1
file2
IMPLEMENT SHARED MEMORY AND IPC
#include <stdio.h>
#include <sys/msg.h>
#include <string.h>
struct msg_buffer {
long msg_type;
char msg_text[100];
} message;
int main() {
int msgid = msgget(7, IPC_CREAT | 0666); // Create message queue
if (msgid < 0) return perror("msgget failed"), 1;
return 0;
}
OUTPUT
#include <stdio.h>
int main() {
int n, b[20], sb[20], c[20][20];
printf("Filename\tStart Block\tLength\n");
for (int i = 0; i < n; i++) printf("%d\t\t%d\t\t%d\n", i + 1, sb[i] - b[i], b[i]);
int x;
printf("Enter file number: ");
scanf("%d", &x);
printf("File: %d\nLength: %d\nBlocks: ", x, b[x - 1]);
for (int i = 0; i < b[x - 1]; i++) printf("%4d", c[x - 1][i]);
return 0;
}
OUTPUT
Enter no. of files: 2
Blocks & start for file 1: 3 5
Blocks & start for file 2: 2 10
Filename Start Block Length
1 5 3
2 10 2
Enter file number: 1
File: 1
Length: 3
Blocks: 5 6 7
indexed file allocation
#include <stdio.h>
int main() {
int n, m[20], sb[20], x;
printf("Enter no. of files: ");
scanf("%d", &n);
printf("\nFile\tIndexed\n");
for (int i = 0; i < n; i++)
printf("%d\t%d\n", i + 1, sb[i]);
return 0;
}
Output
File Indexed
1 0
2 5
3 15
Shell programming
Output
calculate_factorial() {
echo "Enter a number to find its factorial:" $ ./factorial.sh
read num Enter a number to find its factorial:
fact=1 5
while [ $num -gt 1 ]; do Factorial of the given number is 120
fact=$((fact * num))
num=$((num - 1))
done