Check out the new USENIX Web site. next up previous
Next: Overview of Rhino Up: Overview of SPIN Previous: Use of Extensions in

   
SPIN's Approach to Transactional Memory

Rhino is implemented as an in-kernel extension. This design makes it possible to overcome the operating system deficiencies described in Section 1.1. For example, Figure 1 (b) shows page fault handling in Rhino. By placing the page fault handler inside the kernel space, Rhino can process a write detection event with two user-kernel crossings and zero context switches.

Extensions also reduce the IPC overhead that exists in client-server systems. Typical IPC involves argument copying, context switching to the server (assuming the server runs on the client machine), writing back of results, and context switching back to the client. In Rhino, context switches are eliminated, since the extension is in the kernel address space and shared by all user-space applications.

Another example of the benefits of SPIN's extension approach is buffer management. Rhino maps the database buffer directly onto an application's address space. It cooperates with the virtual memory extension to swap buffer pages directly to a database file rather than to a disk, thus solving the double paging problem.


next up previous
Next: Overview of Rhino Up: Overview of SPIN Previous: Use of Extensions in
Yasushi Saito
1998-04-27