OS_LAB_11_I200958
OS_LAB_11_I200958
Task1:
Solution:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int main() {
int num_threads = 5;
pthread_t threads[num_threads];
ScreenShot:
Task2:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
struct ArrayData {
int *array;
int length;
};
void* calculate_sum(void* arg) {
struct ArrayData *data = (struct ArrayData*)arg;
int sum = 0;
int main() {
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(array[0]);
pthread_join(thread, NULL);
return 0;
}
Screenshot:
Task3:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
struct ArrayData {
int *array;
int length;
};
pthread_exit(sum);
}
int main() {
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(array[0]);
pthread_t thread;
int *result;
free(result);
return 0;
}
Screenshot:
Task4:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
struct ArrayData {
int *array;
int length;
};
*max_value = data->array[0];
for (int i = 1; i < data->length; i++) {
if (data->array[i] > *max_value) {
*max_value = data->array[i];
}
}
return max_value;
}
int main() {
int array[] = {3, 2, 9, 7, 6};
int length = sizeof(array) / sizeof(array[0]);
pthread_t thread;
int *result;
free(result);
return 0;
}
Screenshot: