Xen-Arm creates a page table for each guest when constructing a guest domain to support virtual memory systems. However, some real-time OSes do not use a virtual memory system but physical memory itself. They are designed to run over the limited resources for their characteristics as a SW on embedded systems.
We mapped the physical memory allocated for a real-time guest OS to the same virtual memory statically. Real- time guest OS runs as it looks physical memory but isolated by a page table provided by the hypervisor. This approach is simple and needs no modifications of guest OS to use the virtual memory systems. RTOS guest views the memories as physical ones in Figure 1.

Real-time kernel makes use of scheduling algorithm for real-time tasks to meet their deadlines. Some of them, such as the EDF [2](Earliest Deadline First) algorithm, need to know the physical time to decide which task to run. Thus the real-time kernel should have precise current time information.
Implementation for time managements of real-time kernel is usually accomplished by a timer interrupt. When the timer interrupt delivered, kernel updates its time and uses it for scheduling tasks. RTOS running over Xen hypervisor receives an event for a timer interrupt only when they are running. It is not a physical interrupt but virtual one sent by the hypervisor. Thus it cannot trace the real time while the guest is not running as depicted in Figure 3.

At t2, RTOS guest consider it receives a timer for t1. Thus its scheduler does not make a correct decision to guarantee the real-time supports. We needed to change the tick timer handler of RT guest. It should update the time passed while other guests’ running. Xen provides physical time information via shared info area for guest OS to use it. However, Xen-Arm does not update it precisely in current version. Thus we modified a function ==
void update_dom_time(struct vcpu *v)== correctly to provide them.