In addition to the topics for the first exam, these are all things I think are important to know for the final exam.
if tf = END then te = max(BEGIN, tr) else te = tf end next_tr = te + ps
Just like the basic sporadic server, but run aperiodic jobs when all periodic tasks are idle
Like the basic sporadic server, but replenish by adding es to current budget. Budget left over from before tr must be consumed before budget from after tr.
if (only jobs with di < tr + ps have run in (tr, t) then te = tr else te = t end
ds = next_tr = te + ps
if t > ds then ds = t + e / ûs es = e end
if aperiodic server backlogged then take next aperiodic job from queue ds = t + e / ûs es = e end
ds = max(t, ds) + e / ûs es = e
if aperiodic server backlogged then take next aperiodic job from queue ds = t + e / ûs es = e end
| Non-Preemptive Critical Section | Priority Inheritance Protocol | Priority Ceiling Protocol | Stack-Based Priority Ceiling | Preemption Ceiling | |
|---|---|---|---|---|---|
| Strategy | Allow only one job in a critical section at a time | When a job blocks waiting for a reasource, any lower priority jobs that need to run to release the resource inherit the first job's priority | Only jobs with priority higher than current ceiling can lock resources | Like priority ceiling, but block jobs unless they can run to completion without being blocked | Extend priority ceiling to EDF with low overhead |
| Jobs not using related resources blocked by current job | Y | N | N | N | N |
| Need prior knowledge of resource usage? | N | N | Y | Y | Y |
| Prevents deadlock? | Y | N | Y | Y | Y |
| Jobs block one time or less? | Y | N | Y | Y | Y |
| Avoidance blocking | N | N | Y | Y | Y |
| Blocking time with k self suspensions | bi,k(ss) + (k+1)max(bi(rc),bi(np)) | bi,k(ss) + max(k+1,vr)bi(rc) + min(k+1,vn)bi(rc) | bi,k(ss) + (k+1)bi(rc) + (k+1)bi(np) | ||
| Discipline | Acceptance | Scheduling Complexity | End-to-End Delay (k switches) | End-To-End Jitter | Buffer Space | Benefits / Comments |
|---|---|---|---|---|---|---|
| Priority Based | ||||||
| WFQ | O(1) | O(n) | &Mac178; E/u + k(e+1) | c×k | c×k | delay & throughput independent of other streams |
| Delay-EDD | O(1) | O(log n) | &Mac178; D | c×k | c×k | Schedule like EDF |
| Jitter-EDD | O(1) | O(log n) | &Mac178; D | c | c | buffer space independent of k |
| WRR Disciplines | ||||||
| Greedy WRR | O(1) | O(1) | pi + (k-1)RL | pi - ei + (k-1)(RL-1) | c×k | can use all available BW |
| S&G WRR (synch. frames) | O(1) | O(1) | pi + kRL | 2RL | 2wti | minimal buffer space; needs synchronized frames |
| S&G WRR | O(1) | O(1) | complicated | 2RL | 3wti | no synchronous frames; constant buffere size |
| BWRR | O(1) | O(1) | pi + (k-1)RL | (k-1)RL - wti +1 | 2wti | more jitter, but less buffer space than S&G WRR |
| Type | Size | Speed | Longevity | Ruggedness | Other |
| Disk | 20 GB to 500 GB | 8 ms - 15 ms access time; ~30 MB/s transfer |
3 to 5 years | vibration causes head crashes | big & cheap |
| FLASH | 256 Kbits to 1 Gbit | read: 100 to 200 ns; write: 1 ms to 20 ms; erase: 20 ms to 5 s |
10,000 to 100,000 erease cycles (or 20 years) | good | Must erase a large block at a time, lifetime is limited
Used in digital cameras, cell phones, etc |
| EEPROM | 16 kbits - 4 Mbits | 200 to 250 ns | 10,000 to 100,000 erase cycles (up to 10.5 years) | good | byte eraseable FLASH, but smaller and more expensive |
| BBU RAM | same as SRAM | same as SRAM | life of battery (5 to 10 years) | good | Battery only used when power is off, can be replaced when dead |