Screen Version
School of Computer Science & Engineering
University of New South Wales

 Advanced Operating Systems 
 COMP9242 2002/S2 
next up previous
Next: Bibliography Up: 06-l4impl Previous: 06-l4impl

Subsections

Microkernel Implementation

MIPS address space

mips-am

L4 physical memory map


ram-kstat

Virtual TCB Array:




tcb-a



Two TCBs per (4kb) page:

tcb

TCB layout



   
  0: struct tcb *sndq_end, *wakeup_link, *busy_link,  
             *int_link;  
  1: unsigned long wfor; struct tcb *sndq_start;  
  unsigned long stack_pointer; udw_t asid;  
  2: void *gpt_pointer; unsigned long myself;  
  unsigned int fine_state, timeout; long recv_desc;  
  3: struct tcb *present_next, *child_task;  
  uhw_t rem_timeslice, timeslice;  
  ub_t mcp, bpad1, ctsp, tsp;  
  4: long wakeup;  
  struct tcb *soon_wakeup_link,  
             *late_wakeup_link, *sndq_next;  
  ...  
   

Kernel data layout

  
  0: dw_t stack_bottom;
  udw_t s0_save, *free_asid_list;
  tcb_t *wakeup_list;
  ...
  

Kernel stack:

stack-exc

Exception stack as set up by general exception handler (prior to k_ipc).

Kernel stack...

stack-rdy

Sender's kernel stack when switching to receiver (end of deliver).

Kernel stacks & TCBs

stacks

Accessing receiver's data during long IPC


Page fault handling


next up previous
Next: Bibliography Up: 06-l4impl Previous: 06-l4impl
Gernot Heiser 2002-09-05