This project consists of 3 phases :
- Scheduler
- HPF (Highest Priority First)
- SRTN (Shortest Remaining Time Next)
- RR (Round Robin)
- Memory Management
- Buddy Algorithm
- Producer-Consumer
- 2-Level Priority Queue:
- First level: each node represents a linked list that is sorted with the priority.
- Second level: each linked list in the first level is a list of all processes have the same priority sorted by the arrival time.
- Circular Queue:
- The name “Circular” demonstrates the way we are dealing with it. We pop a process, then give it its quantum then push it at the end of the queue.
- Optimizes the round robin algorithm as each insert – select – delete is O(1).
- Array of linked lists for memory
- each list represents the memory blocks with the size of this list - sizes of lists are multiples of 2 till 2 power 10 (1024 -memory size ).
- Semaphores
- Message Queues
- Shared Memory
- Signals
-
Refer to OS-Report for more details about the used methodologies and input/output samples.
-
-
- Add your custom testcase in processes.txt - For random testcases run: $ gcc test_generator.c -o test_generator.out $ ./test_generator.out
$ cd Scheduler $ make $ make run
-
Log Files
- Refer to Scheduler Performance
- Refer to Scheduler Log
-
$ cd Memory/Scheduler
$ make
$ make run
- Log Files
- Refer to Memory Log
$ cd Phase3
$ make
$ ./producer.out
$ ./concumer.out
- Ahmed Magdy
- Mohamed Monsef
- Menna Mahmoud
- Nada Abdelmaboud