diff --git a/Fork_and_Wait/forking_wait.c b/Fork_and_Wait/forking_wait.c new file mode 100644 index 0000000000000000000000000000000000000000..c1f1b667a5ea1d0a7baabd179e875bf732c6333c --- /dev/null +++ b/Fork_and_Wait/forking_wait.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <time.h> +#include <sys/types.h> +#include <sys/wait.h> +#include "matrix.h" + +#define DIMENSION 1000 + +int main(void){ + + pid_t piet= fork(); + if(piet == (pid_t)0){ + // child + printf("Child starts...\n"); + long long *matrixA = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); + long long *matrixB = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); + long long *matrixC = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); + srand (time( NULL)); + initializeMatrix(matrixA, DIMENSION, DIMENSION); + initializeMatrix(matrixB, DIMENSION, DIMENSION); + multiplyMatrices(matrixA, matrixB, matrixC, DIMENSION, DIMENSION, DIMENSION); + free(matrixA); + free(matrixB); + free(matrixC); + printf("Child finish...\n"); + + }else{ + // parent + int status = -1; + int seconds = 0; + while(status == -1){ + waitpid(piet, &status, WNOHANG); + printf("Parent waits since: %d\n", seconds++); + sleep(1); + } + } + + return 0; +} diff --git a/Multithreaded_Search/main b/Multithreaded_Search/main new file mode 100755 index 0000000000000000000000000000000000000000..8685f1b6b7b252f7bb488d4ac01a05573f641c6f Binary files /dev/null and b/Multithreaded_Search/main differ diff --git a/Priority/main b/Priority/main deleted file mode 100755 index 8a379b43b98d21c11e78b9a4e3ef06de39ede524..0000000000000000000000000000000000000000 Binary files a/Priority/main and /dev/null differ diff --git a/Priority/priority.c b/Priority/priority.c index a796fd7e0b63b0a2513f636bd2c016721e7f3924..516514c8efe3be1701fe5c2ea72702dcf0e4dc51 100644 --- a/Priority/priority.c +++ b/Priority/priority.c @@ -37,9 +37,9 @@ int main(void){ pthread_t threads[THREADS]; param_t *parameters = malloc(sizeof(param_t)); - parameters->matrixA = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); + parameters->matrixA = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); parameters->matrixB = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); - parameters->matrixC = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); + parameters->matrixC = (long long*)malloc(DIMENSION * DIMENSION * sizeof(long long)); initializeMatrix(parameters->matrixA, DIMENSION, DIMENSION); initializeMatrix(parameters->matrixB, DIMENSION, DIMENSION);