real time systems resource access protocols
play

Real-Time Systems Resource Access Protocols WS 2016/17 Problems: - PowerPoint PPT Presentation

Real-Time Systems Resource Access Protocols WS 2016/17 Problems: Priority Inversion Assumptions: Jobs use resources in a mutually exclusive manner Preemptive priority-driven scheduling Fixed task priorities 1 processor


  1. Real-Time Systems Resource Access Protocols WS 2016/17

  2. Problems: Priority Inversion Assumptions: • Jobs use resources in a mutually exclusive manner • Preemptive priority-driven scheduling • Fixed task priorities • 1 processor Declaration for the following slides 
 Busy waiting and priority inversion L(R) U(R) H ready 
 L ready mutex := 0 L preempted mutex = 1? H L WS 2016/17 Real-Time Systems: Resource Access Protocols 2

  3. 
 
 
 
 
 
 
 
 
 
 
 
 Problems: Priority Inversion Semaphores and priority inversion L: s.V() 
 H ready 
 H: s.P() 
 H ready 
 L ready 
 H active 
 H blocked 
 H active 
 H completes 
 L active L: s.P() L ready L active L ready H: s.V() L active H L M: medium-prioritized job (not using s) L: s.P() H ready H: s.P() M ready M completes H M L WS 2016/17 Real-Time Systems: Resource Access Protocols 3

  4. Problems: Timing Anomalies 0 5 10 15 J 1 J 2 J 3 Reduction of resource usage of J3 by 1.5: 0 5 10 15 J 1 J 2 J 3 WS 2016/17 Real-Time Systems: Resource Access Protocols 4

  5. Problems: Deadlocks • exclusive resources • non-preemptive resources • sequential acquire • cyclic wait-condition WS 2016/17 Real-Time Systems: Resource Access Protocols 5

  6. Assumptions and Notations 1 processor, preemptive priority-driven scheduling, 
 jobs are not self-suspending • R 1 ,…, R r resources; nonpreemptable, exclusive • L(R k ), U(R k ) acquire/release of R k ; release: LIFO ↑ R k ↓ R k • J 1 ,…, J n jobs • J h , J l job of high/low priority • p 1 ,…, p n assigned priorities (highest priority: 1); 
 w.l.o.g.: J i ordered according to priorities • p i (t) current priority of J i WS 2016/17 Real-Time Systems: Resource Access Protocols 6

  7. Assumptions and Notations Jobs conflict with one another 
 ● operate with a common resource Jobs contend for a resource 
 ● one job requests the resource that another job already owns Blocked job 
 ● scheduler does not grant the requested resource Priority inversion 
 ● J l executes while J h is blocked WS 2016/17 Real-Time Systems: Resource Access Protocols 7

  8. Priority Inheritance Protocol for preemptive priority-driven scheduling Sha et al., 1990 Basic Priority-Inheritance Protocol • (1) Scheduling Rule • A ready job J is scheduled according to its current priority p(t); 
 at release time t : p(t) := p . • (2) Allocation Rule • J requests R at time t . • (a) R free: R is allocated to J until J releases R. • (b) R not free: request is denied, J is blocked. • (3) Priority-Inheritance Rule • When J becomes blocked by J l , then J l inherits the current priority of J, i.e. p l (t) := p(t). • J l executes at this priority until it releases R at time t ″ . • Now the priority of J l returns to its previous priority: 
 p l (t ″ ) := p l (t ′ ) t ′ : time when J l acquires R. WS 2016/17 Real-Time Systems: Resource Access Protocols 8

  9. Priority Inheritance – Example • 2 jobs: no e ff ect! • 3 jobs: H ready H: s.P() M ready H M L WS 2016/17 Real-Time Systems: Resource Access Protocols 9

  10. Priority Inheritance – Properties Properties • Priority inheritance is transitive. • No unbounded uncontrolled priority inversion. • Priority inheritance does not reduce the blocking times as small as possible. WS 2016/17 Real-Time Systems: Resource Access Protocols 10

  11. Priority Inheritance – Properties J 1 S R R,S J 2 S S J 3 R R J 1 J 2 S J 3 R J 1 J 2 J 3 R WS 2016/17 Real-Time Systems: Resource Access Protocols 11

  12. Priority Inheritance – Properties Priority inheritance does not prevent deadlocks. J 1 S R 💤 J 2 R S WS 2016/17 Real-Time Systems: Resource Access Protocols 12

  13. Priority Ceilings – Notations Sha/Rajkumar/Lehoczky, 1990 • Assumptions and Notations • 1 processor, preemptive priority-driven scheduling 
 no self-suspension • Assigned priorities p i are fixed 
 priorities: natural numbers, 1 highest, Ω lowest priority • The resources required by all jobs are known a priori • P(R) priority ceiling of R 
 highest priority of all jobs that require R ˆ • P(t) priority ceiling of the system at time t 
 highest priority ceiling of all resources that are in use at time t WS 2016/17 Real-Time Systems: Resource Access Protocols 13

  14. Basic Priority-Ceiling Protocol • (1) Scheduling Rule • At release time t rel of J: p(t rel ) := p • (2) Allocation Rule • J requests R at time t • (a) R held by another job: request denied, J blocks (“on R ”) • (b) R free: ˆ • ( α ) p(t) ≻ P(t): R is allocated to J • ( β ) otherwise: R is allocated to J only if J is the job holding the 
 ˆ resource(s) R ′ with P(R ′ ) = P(t), otherwise J blocks • (3) Priority-Inheritance Rule • When J becomes blocked by J l , J l inherits J ’s current priority p(t) • J l (preemptively) executes at this priority until it releases every resource whose priority ceiling is at least p(t) • At that time, J l ’s priority returns to p l (t ′ ) 
 ( t ′ : time when it was granted the resource) WS 2016/17 Real-Time Systems: Resource Access Protocols 14

  15. 
 
 
 Basic Priority-Ceiling Protocol – Properties • Di ff erence to priority inheritance: three ways to blocking • direct: 
 J h R J l • inheritance: 
 J h R J l J • ceilings: 
 J h X J l R free! • Deadlocks can never occur • There can be no transitive blocking WS 2016/17 Real-Time Systems: Resource Access Protocols 15

  16. 
 
 
 Basic Priority-Ceiling Protocol – Example • A job can be blocked for at most one resource request • Computation of blocking time – Example: 
 J 1 0.8 J 2 R J 1 J 2 J 3 J 4 1 S J 3 0.2 J 4 WS 2016/17 Real-Time Systems: Resource Access Protocols 16

  17. Stack-Based Priority-Ceiling Protocol • Further Assumptions • Common run-time stack for all jobs (no self-suspension) • Stack space of an active job is on the top of the stack (preemption) • Stack space is freed when the job completes • Protocol ˆ • (0) P(t) = Ω , when all R are free, 
 ˆ P(t) is updated whenever a resource is allocated or freed • (1) Scheduling Rule ˆ • After J is released, it is blocked until p ≻ P(t) • Priority-driven scheduling based on assigned priorities (!) • (2) Allocation Rule • Whenever a job requests a resource, it is granted the resource (!) • Properties • When a job begins execution, all resources it will ever need are free • Both protocols result in the same longest blocking time of a job • Deadlocks cannot occur WS 2016/17 Real-Time Systems: Resource Access Protocols 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend