Core Requirements
${data.requirements.map(req => `
✓
`).join('')}
${req.title}
${req.text}
${data.title}
${data.intro}
${data.policy.title}
Preemptive: ${data.policy.preemptive}
Fixed-Priority: ${data.policy.fixedPriority}
${data.algorithm.title}
${data.algorithm.desc}
- RM Policy: ${data.algorithm.rmPolicy}
- Benefit: ${data.algorithm.benefit}
Note: ${data.algorithm.note}
${data.title}
${data.intro}
${data.tcb.title}
${data.tcb.desc}
// Task Control Block
struct TCB {
${data.tcb.fields.map(field => ` void* ${field.name}; // ${field.text}
`).join('')} };
struct TCB {
${data.tcb.fields.map(field => ` void* ${field.name}; // ${field.text}
`).join('')} };
${data.readyQueue.title}
${data.readyQueue.implementation}
-
${data.readyQueue.details.map(item => `
- ${item} `).join('')}
${data.readyQueue.benefit}
Ready Queue Diagram
Prio[0]
TCB_A
→
TCB_C
Prio[1]
null
Prio[2]
TCB_B
${data.title}
${data.intro}
${data.states[0].name}
${data.states[1].name}
${data.states[2].name}
${data.states[3].name}
${data.states[4].name}
Scheduled
Preempted
Event Wait
Event Ready
Suspend
Resume
${data.states.map((state, index) => `
`).join('')}
${state.name}
${state.desc}
${data.title}
${data.intro}
${data.scheduler.title}
${data.scheduler.desc}
-
${data.scheduler.steps.map(step => `
- ${step} `).join('')}
${data.contextSwitch.title}
${data.contextSwitch.desc}
Context Switch: Step-by-Step
Task A (pCurrentTask)
CPU Registers
↓
Stack A
Task B (pNextTaskToRun)
CPU Registers
↑
Stack B
${data.contextSwitch.steps.map((step, index) => `
${step.title}: ${step.text}
`).join('')}
${data.sysTick.title}
${data.sysTick.desc}
-
${data.sysTick.steps.map(step => `
- ${step} `).join('')}
${data.title}
${data.intro}
${data.problem.title}
${data.problem.desc}
Task H (Blocked)
Task M (RUNNING)
Task L (Ready)
Task H (High Prio): Blocked, waiting for mutex held by Task L.
Task M (Medium Prio): RUNNING, preempting Task L.
Task L (Low Prio): Ready, but starved by Task M.
${data.title}
${data.intro}
${data.plans.map(plan => `
`).join('')}
${plan.title}
-
${plan.items.map(item => `
- ${item} `).join('')}
