Presentation is loading. Please wait.

Presentation is loading. Please wait.

Resource Access Protocols 張軒彬助理教授 中興大學資訊科學系. 嵌入式即時作業系統 2 Outline Priority Inversion Priority Inheritance Protocol.

Similar presentations


Presentation on theme: "Resource Access Protocols 張軒彬助理教授 中興大學資訊科學系. 嵌入式即時作業系統 2 Outline Priority Inversion Priority Inheritance Protocol."— Presentation transcript:

1 Resource Access Protocols 張軒彬助理教授 中興大學資訊科學系

2 嵌入式即時作業系統 2 Outline Priority Inversion Priority Inheritance Protocol

3 嵌入式即時作業系統 3 Resource A resource is any software structure –A variable, a memory area, a file, etc. A resource may be shared or private. Exclusive resource –A shared resource that is protected against concurrent access A piece of code executed under mutual exclusion to guarantee exclusive resource accesses is called critical section

4 嵌入式即時作業系統 4 Priority Inversion A high-priority job can experience two kinds of blocking –Bounded For example, a high-priority job waits for the executions of a low- priority job to acquire a resource The blocking time is no longer than that of the critical section where the lower priority job owns the resources Necessary to ensure resource consistence –Unbounded When a third job preempts the low-priority job during the inversion, thus delaying the high-priority job even more Would lead to uncontrolled blocking and cause high-priory job miss its deadline Have to be solved

5 嵌入式即時作業系統 5 An Example of Priority Inversion: Bounded normal execution critical section J1 blocked J 1 J 2 t1t2 Example of blocking on an exclusive resource. Priority of J 1 > Priority of J 2

6 嵌入式即時作業系統 6 An Example of Priority Inversion: Unbounded An example of priority inversion. t7t6t5t4t3t2t1t0 J 3 J 2 J 1 J 1 blocked critical section normal execution J1 and J3 share an exclusive resource Priority: J1 > J2 > J3

7 嵌入式即時作業系統 7 Priority Inversion (Cont.) Solution –Disallow preemption during the execution of all critical sections Only appropriate for very short critical sections because it may create unnecessary blocking –Priority Inheritance Protocol –Priority Ceiling Protocol

8 嵌入式即時作業系統 8 Priority Inheritance Protocol When a job T i is blocked by a lower priority job T k, T i transmits its priority to the T k. –In general, a job inherits the highest priority of the jobs blocked by it. Priority inheritance is transitive; –If J 3 blocks J 2, and J 2 blocks J 1, then J 3 inherits the priority of J 1 via J 2.

9 嵌入式即時作業系統 9 Example P3 P1 Example of Priority Inheritance Protocol. t7t6t5t4t3t2t1t0 J 3 J 2 J 1 critical section normal executionPriority: J1 > J2 > J3 J1 and J3 share an exclusive resource Direct blocking Push-through blocking

10 嵌入式即時作業系統 10 Example Direct blocking –Occurs when a higher-priority job tries to acquire a resource already held by a lower-priority job –Necessary to ensure the consistency of the shared resource Push-through blocking –Occurs when a medium-priority job is blocked by a lower- priority job that has inherited a higher priority from a job it directly blocks –Necessary to avoid unbounded priority inversion

11 嵌入式即時作業系統 11 Priority Inheritance Protocol (Cont.) Unsolved problems –Chained blocking The blocking duration for a job can still be substantial because a chain of blocking can be formed –Deadlock The protocol does not prevent deadlocks

12 嵌入式即時作業系統 12 Chained Blocking Example of chained blocking. aa J 3 bb J 2 ba J 1 critical section normal execution Priority: J1 > J2 > J3 J1 and J3 share an exclusive resource a J1 and J2 share an exclusive resource b

13 嵌入式即時作業系統 13 Chained Blocking (Cont.) From previous slide –J 1 is blocked for the duration of two critical sections Once to wait J 3 to release resource a Then to wait J 2 to release resource b –This is called chain blocking In the worst case, if J 1 accesses n distinct resource that have been locked by n lower-priority jobs –J 1 will be blocked for the duration of n critical sections

14 嵌入式即時作業系統 14 Deadlock t5 t4 t3t2t1 bb J 2 a J 1 critical section normal execution J 1J 2 wait(S b ) wait(S a ) signal(S b ) signal(S a ) wait(S a ) signal(S b ) wait(S b ) signal(S b ) Example of deadlock. Blocked on Sb Blocked on Sa

15 嵌入式即時作業系統 15 Deadlock (Cont.) Two jobs that use two semaphores in a nested fashion but in reverse order J 1 is blocked on S b at time t 4. Then, J 2 is blocked on S a at time t 5 –Deadlock

16 嵌入式即時作業系統 16 Deadlock (Cont.) Notably, the deadlock does not depend on the Priority Inheritance Protocol –But is caused by an erroneous use of semaphores –The deadlock problem can be solved by the mechanisms introduced in the Operating System E.g., impose an total ordering on the resource access

17 嵌入式即時作業系統 17 Reference Giorgio C. Buttazzo, “Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications,” Kluwer Academic Publishers, 1997 Jane W. S. Liu, “Real-Time Systems,” Prentice Hall, 2002


Download ppt "Resource Access Protocols 張軒彬助理教授 中興大學資訊科學系. 嵌入式即時作業系統 2 Outline Priority Inversion Priority Inheritance Protocol."

Similar presentations


Ads by Google