logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Build a Rate Monotonic Scheduler with four threads Threads T1 through T4 Thread T1 has a period of 1 unit Thread T2 has a period of 2 units Thread T3 has a period of 4 units Thread T4 has a period of 16 units

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Project Requirements

•   Build a Rate Monotonic Scheduler with four threads

  • Scheduler details:

    • Threads T1 through T4

    • Thread T1 has a period of 1 unit

    • Thread T2 has a period of 2 units

    • Thread T3 has a period of 4 units

    • Thread T4 has a period of 16 units

    • A unit shall be anywhere from 10-100 ms (depending on operating system options)

    • Each thread will execute the same doWork method but run it a different number of times:

      • Thread T1 executes doWork 100 times

      • Thread T2 executes doWork 200 times

      • Thread T3 executes doWork 400 times

      • Thread T4 executes doWork 1600 times

Project Requirements

•   Scheduler shall have a major frame period of 16 units of time

  • Program shall start scheduler and four threads that are to be scheduled

    • Scheduler needs to be woken up by a periodic source (signal/timer/etc) and it shall schedule the threads

    • The program shall run for 10 periods and then terminate, but not before printing out how many times each thread ran

•   Each thread shall increment a dedicated counter each time it runs

  • The scheduler shall be able to identify if a thread has missed its deadline and keep track of how many times it happens

 

 

Project Requirements

  • The following test cases shall be demonstrated

    • Nominal case with no overruns

    • Failed case where the doWork function is called as many times as required to lead to an overrun condition in T2 – what happens to other threads?

    • All results are printed out at the completion of the run to not effect the timing

    • When an overrun condition occurs, the scheduler shall not schedule the thread and skip a period

Project Requirements

  • doWork function will do the following:

    • Will multiply the content of each cell of a 10x10 matrix starting with column 0 followed by 5, then 1 followed by 6, etc

1       3     5      7     9     2     4      6     8     10

Column order of execution

Hints

•   Remember that you have a scheduler that is orchestrating everything else – separate thread

  • Priorities are essential – remember rules of RMS

  • Semaphores needed for synchronization

  • May need mutex to protect shared data between scheduler and threads – remember priority inversion

  • You need to use processor affinity on all your threads (including the scheduler)

  • For the overrun conditions, you should not schedule the thread that has missed its deadline

    • You will be skipping it for that execution period

•   You can initially use a sleep( ) or similar function to set the timing on your scheduler until you work out the synchronization with the other threads and then replace with a timer

project Artifacts

  • Demonstrate by outputting the counters for each thread that shows how many times each one ran and how many times an overrun occurred per thread

    • Can be printed to the screen or sent to a file

  • Students must turn in the following:

    • Source code

    • Output of the program

    • A brief design description that explains the design, how were the threads synchronized and dispatched

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

655 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

846 Answers

Hire Me
expert
Husnain SaeedComputer science

892 Answers

Hire Me
expert
Atharva PatilComputer science

817 Answers

Hire Me