Formelsamling för TDDC47 Realtids- och processprogrammering Institutionen för Datavetenskap, Linköpings universitet 2010 Notation for Algorithms Assignment is denoted by “=”. Comparison (equality) is denoted by “==”. Semaphore wait(S) if S > 0 then S = S-1 else suspend the process calling wait(S) signal(S) if some process P has been suspended by an earlier wait(S), then wake up P Banker’s safety algorithm 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish[i] = false for i = 1,2, …, n. 2. Find an i such that both: (a) Finish[i] == false (b) Needi Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish[i] = true go to step 2. 4. If Finish[i] == true for all i, then the system is in a safe state. Formelsamling för TDDC47 Realtids- och processprogrammering Institutionen för Datavetenskap, Linköpings universitet Deadlock detection algorithm 1. Let Work and Finish be vectors of length m and n, respectively. Initialize: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi 0 then Finish[i] = false else Finish[i] = true 2. Find an index i such that both: (a) Finish[i] == false (b) Requesti Work If no such i exists, go to step 4. 3. Work = Work + Allocationi Finish[i] = true go to step 2. 5. If Finish[i] == false for some i, 1 i n then the system is in deadlock state. Moreover, if Finish[i] == false, then Pi is deadlocked 2010 Formelsamling för TDDC47 Realtids- och processprogrammering Institutionen för Datavetenskap, Linköpings universitet Notation for Processes C B D n T R J = Worst-case execution time = Worst-case blocking time = Relative deadline = Number of processes = Period = Worst-case response time = Release jitter Schedulability test for Rate Monotonic: Ci n(21 / n 1) i 1 Ti n Schedulability test Earliest Deadline First: Ci 1 i 1 i n T Response time analysis wi Ci Bi Ri wi J i wi J j C j T Pjhp ( Pi ) j hp(Pi) is the set of processes with a higher priority than process Pi. Worst case execution time analysis Atomic operations (assignments, expressions, statements): WCET(atom) = φ(atom) /* time to execute ”atom” */ Sequence: WCET(S1; S2) = WCET(S1) + WCET(S2) Selection: WCET (if E then S1 else S2) = WCET(E) + max(WCET(S1), WCET(S2)) Iteration: WCET (while E do S) = WCET(E) + Nmax*(WCET(S)+WCET(E)) 2010 Formelsamling för TDDC47 Realtids- och processprogrammering Institutionen för Datavetenskap, Linköpings universitet Timing Analysis of CSMA/CR B = blocking time C = transmission time of entire frame T = period bit = transmission time of one bit w = response time for the first bit of a frame to be sent R = total response time J = Jitter t = Longest busy interval lp(m) = set of frames with lower priority than m. hp(m) = set of frames with higher priority than m. hep(m) = set of frames with higher or equal priority than m. n = number of bytes in message (data field) Rm max ( Rm (q)) q 0..Qm 1 Rm (q) J m wm (q) q Tm Cm wm (q) Bm q C m (with wm (q ) J j bit C j T jhp ( m ) j wm (q ) Bm Cm q ) 0 t Jm Qm m Tm t J j tm Bm m Cj Tj jhep (m ) (with 34 8n 1 C m 8n 47 bit 4 Bm max (C j ) jlp ( m ) 0 t m Cm ) 2010