This Project has been done by Diman Zad Tootaghaj and Farshid Farhat This project implements a parallel file server and synchronization related problems. Clients (CLs) and file servers (FSs) know the (IP,PORT) of meta-data manager (MM). Therefore file servers export their (IP,PORT) to MM, and MM imports them to any connected CL. We put predefined MM’s (IP,PORT) in config.h files of all projects (PFS_client, PFS_MM, and PFS_server). Our codes don’t have any warnings and all warnings are related to test codes! We added one function at the beginning of the test codes called “initialize(argc, argv);”! It’s necessary to initialize the client to make sockets with MM & FSs. For modularity it was better to separate initialization step from pfs_create (not inside this function), because it may call pfs_create multiple times. All ‘w’ in test codes should be changed to “w”! Also I put “argc=2;argv=”1”;” at the beginning just for debugging the code that could be omitted and compile again. Also it is assumed that the test-c1.c is first executed and then test-c2.c, test-c3.c, test2.c and test3.c can be run, because test-c1.c creates the pfs_file1 that can be used by other test codes. Also “file” string inside all test codes was changed to “pfs_file1” to be compatible with the first test code (test-c1.c).