CVM Threading System Adding EDF Scheduling: Supporting Dynamic Priority Scheme over Static Priority System Insik Shin
Java thread / Linux pthread One-to-one mapping between Java thread and Linux pthread Java Threadspthreads Java Application CVMLinux
Priority Scheduling Linux pthreads are scheduled according to their fixed priorities, and Java threads are also scheduled by priority-based scheduling. Java Threads pthreads Priority Scheduler priority Java Application priority
Adding EDF Scheduling Adding EDF scheduling into CVM threading scheduling on top of pthread priority scheduling Java Threads pthreads Priority Scheduler priority Java Application priority DEADLINE priority
Deadline to Priority Mapping We need to develop a mapping from the deadline of a Java thread to the priority of its corresponding pthread. Java priority 10 pthread priority 10 Java priority 15 pthread priority 15 Java deadline 10 pthread priority ??
Deadline to Priority Mapping We preserve the order of Java priorities in the order of pthread priorites. Java priority 10 pthread priority 10 Java priority 15 pthread priority 15
Deadline to Priority Mapping Assume each real-time Java thread is given its deadline. Java priority 10 with deadline 20 pthread priority 10 Java priority 15 with deadline 10 pthread priority 15 Java priority 20 with deadline 30 pthread priority 20 If there is no deadline for a thread, we assume its deadline is infinite.
Deadline to Priority Mapping Assign a priority to a Java thread s.t. it has a lower priority than a thread with an earlier deadline and a higher priority than a thread with a later deadline. Java priority 10 with deadline 20 pthread priority 10 Java priority 15 with deadline 10 pthread priority 15 Java priority 20 with deadline 30 pthread priority 20 Java deadline 15 pthread priority 18