Using C language and ptheads library, we created a program in which by taking a directory path, it first creates processes for the first level subdirectories and then creates threads for the other subdirectories inside them. Using multi-threading, we improved the performance of our program. These threads and processes count the number of files existing, identify the name and path for the smallest and largest file along with the how many files do we have of the same type (pdf, txt, pptx, etc) and also uses synchronization and shared memory methods.
This was an Operating System course midterm project for our university.