1 / 17

Resource Access Protocols

Resource Access Protocols. 張軒彬助理教授 中興大學資訊科學系. Outline. Priority Inversion Priority Inheritance Protocol. Resource. A resource is any software structure A variable, a memory area, a file, etc. A resource may be shared or private. Exclusive resource

leone
Download Presentation

Resource Access Protocols

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • Priority Inversion • Priority Inheritance Protocol

  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. 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. An Example of Priority Inversion: Bounded Priority of J1 > Priority of J2

  6. An Example of Priority Inversion: Unbounded normal execution Priority: J1 > J2 > J3 critical section J1 and J3 share an exclusive resource J 1 blocked J 1 J 2 J 3 t0 t1 t2 t3 t4 t5 t6 t7 An example of priority inversion.

  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. Priority Inheritance Protocol • When a job Ti is blocked by a lower priority job Tk, Titransmits its priority to the Tk. • In general, a job inherits the highest priority of the jobs blocked by it. • Priority inheritance is transitive; • If J3 blocks J2, and J2 blocks J1, then J3 inherits the priority of J1 via J2.

  9. Example normal execution Priority: J1 > J2 > J3 J1 and J3 share an exclusive resource critical section Direct blocking J 1 Push-through blocking J 2 J 3 t0 t1 t2 t3 t4 t5 t6 t7 P1 P3 P3 Example of Priority Inheritance Protocol.

  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. 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. Chained Blocking normal execution Priority: J1 > J2 > J3 J1 and J3 share an exclusive resource a critical section J1 and J2 share an exclusive resource b J 1 a b J 2 b b J 3 a a Example of chained blocking.

  13. Chained Blocking (Cont.) • From previous slide • J1 is blocked for the duration of two critical sections • Once to wait J3 to release resource a • Then to wait J2 to release resource b • This is called chain blocking • In the worst case, if J1 accesses n distinct resource that have been locked by n lower-priority jobs • J1will be blocked for the duration of n critical sections

  14. Deadlock J 1 J 2 normal execution critical section Blocked on Sb wait(S a) wait(S b) J 1 a wait(S b) wait(S a) Blocked on Sa J 2 b b signal(S b) signal(S b) t1 t2 t3 t4 t5 signal(S a) signal(S b) Example of deadlock.

  15. Deadlock (Cont.) • Two jobs that use two semaphores in a nested fashion but in reverse order • J1 is blocked on Sb at time t4. Then, J2 is blocked on Sa at time t5 • Deadlock

  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. 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

More Related