= Opgaver til M9

The following single-CPU-realtime system is to executed on a Real Time Operating System (RTOS) with preemptive FP scheduling and  immediate ceiling:

1. 4 alarms with mimimum interarrival time: 10 min., execution time 10 mS.
2. 1 user input with minimum interarrival time 1/4 sec. and mean interarrival time 2 sec., execution time 10 mS.
3. 1 network input with minimum interarrival time 10 mS, and mean interarrival time 10 sec., execution time 30 mS.
4. 1 real-time control of time critical system, sampling time 100 mS, execution time 10 mS.
5. 1 real-time control of time critical system, sampling time 1 sec. execution time 10 mS.
6. 1 screen clock, update frequency 1/10 1/sec.., execution time 20 mS.
7. User input and 2. realtime control share a common datastructure; accesstime 10 mS.

Suggest:

- Deadlines for all tasks
- A fixed priority order
- The use of aperiodic/sporadic servers for some tasks

Check feasibility of your design w.r.t. deadlines.

== Løsning

____
_Deadlines for all tasks_
____

- *T1* det er vigtigt at den handle hurtigt på denne alarm.
    Derfor skal den have 50 mSec.
- *T2* dette er rimelig soft, så derfor behøver man ikke en meget lav deadline.
    Her kunne man lade deadline være 1.2 sekundter.
- *T3* dette er igen soft men det kommer ret hurtigt.
    Event kan events komme ret hurtigt så en deadline på 0.3 s vil give mening.
- *T4* vil have en deadline samme som periode på 100 ms.
- *T5* vil have en på 1 sec.
- *T6* vil have en på 10 sec.

____
_A fixed priority order_
____

Her er der flere der har deadlines under period, så derfor vil DMA give mening.

(T1, T4, T3, T5, T2, T6)

____
_The use of aperiodic/sporadic servers for some tasks_
____

*T3* og *T4* giver mening at køre med _sporadic server_ eftersom de har en minimum interval time.

____
_Check feasibility of your design w.r.t. deadlines._
____

Her regner jeg completion time ud for hver task.

----
C1 = 10
----

Dette er feasable.

----
C4 = 10 + ceil(C4/(1000 * 60 * 10)) * 10
----

image::M9f1.png[]

Denne er feasable da 20 ms er under deadline og næste periode.

----
C3 = 30 + ceil(C3/(1000 * 60 * 10)) * 10 + ceil(C3/100) * 10
----

image::M9f2.png[]

Her kan man se at den ikke er færdig før min, så der kan komme queing.
Tilgengeld er den højere end mean periode, så derfor må den komme på plads efter noget tid.

----
C5 = 10 + ceil(C5/(1000 * 60 * 10)) * 10 + ceil(C5/100) * 10 + ceil(C5/(10*1000)) * 30 + 10
----

image::M9f3.png[]

Denne er også feasable.

----
C2 = 10 + ceil(C2/(1000 * 60 * 10)) * 10 + ceil(C2/100) * 10 + ceil(C2/(10*1000)) * 30 + ceil(C2/1000) * 10
----

image::M9f4.png[]

Dette er også feasable.

----
C6 = 20 + ceil(C6/(1000 * 60 * 10)) * 10 + ceil(C6/100) * 10 + ceil(C6/(10*1000)) * 30 + ceil(C6/1000) * 10 + ceil(C6/2000) * 10
----


image::M9f5.png[]

Dette er også feasable

