logo

Crowdly

Written 2: Obligatory Synchronization and Multithreading Programming Questions (...

✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.

Written 2: Obligatory Synchronization and Multithreading Programming Questions (27 marks)

Note: This question involves coding so it may better to not spend too long working on it without reading the other questions! Also part a and b are separate questions.

Part a 18 marks) 

Suppose the Memory Management Unit stores records of each processes' base and limit value per Unit 5A. These structures are stored in three different queues: an OS process queue, a high priority queue, and a low priority queue.

Write pseudocode to find the average allocated memory of all processes. Pseudocode is fine as well as using shorthand like "<insert all relevant headers>" or changing functions to be easier to deal with.

You may assume the following struct is used or develop your own: 

struct node{

   int base;

   int limit; 

   int process_id;

   node* next; //A link to the next node

   node* back; //A link to the previous node.

}

Part b 9 marks)

The nuclear reactor that powers Wombat OS' machine learning core has three processes that manages its runtime. You are asked to ensure that process 1 runs its statement 1 (e.g., initialize the reactor) first, then process 2 runs statement 2 (e.g., fill the reactor with water), then process 3 run statement 3 (e.g., run the reactor) using synchronization tools. Any out of sequence running of these statements would result in an explosion (e.g., Statement 3 runs before Statement 1).  No justification for your code is necessary but it may help for marking. Pseudocode is fine as well as notation like

P1:

   dothing(value) //Do a thing related to unit 4.

   S1 //This run statements 1

More questions like this

Want instant access to all verified answers on learn.twu.ca?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!

Browser

Add to Chrome