/3-C-apps-about-POSIX

Developed for POSIX (Portable Operating System Interface) during 2019, when I was taught OS in college.

Primary LanguagePython

Linux POSIX Projects

These projects are made for POSIX and implement the following:

-Listing directory contents.
-Identifying and parsing section files.
-Working with sections.
-Sections filtering.
-Create a Process Hierarchy.
-Synchronizing threads from the same process.
-Create a Threads Barrier.
-Synchronizing threads from different processes.
-Pipe Based Connection.
-Ping Request.
-Request to Create a SHM: Shared Memory Region.
-Write to Shared Memory Request.
-Memory-Map File Request.
-Read From File Offset Request.
-Read From File Section Request.
-Read From Logical Memory Space Offset Request.

Getting Started

  • You can find each project's description(Chapter 1) and requirements(Chapter 2) in the .pdf file attached to it.
  • You may take a quick look over the code written in the .c files.

In order to manually test any project you need to:

1) Download the .rar file and extract it;
2) Open a new terminal in that directory and write: 
   2.1)"gcc -Wall a1.c -o a1" for 1st.
   2.2)"gcc -Wall a2.c a2_helper.c -o a2 -lpthread" for 2nd.
   2.3)"gcc -Wall a3.c -o a3" for 3rd.
3) Run "python tester.py" to test it.
4) If you want more details while testing, open tester.py and change verbose to true before step3.

Python Test Scores

Each project was tested with a similar python file. Below I have attached the results of those passed tests.

File System Module

File System Module

Processes, Threads and Synchronization

Processes, Threads and Synchronization

Inter Process Communication

Inter Process Communication