A virtual network interface approach for end-host operating systems
This review focuses on a research paper that examines how network applications and operating systems interact. [1] The researchers argue that operating systems cannot control traditional computer networks or hold them accountable. The researchers then demonstrate potential problems and their solution – a virtual network interface (VIF) approach for end-host operating systems [1].
This report does not go through details on how to implement and validate the usage of VIF. Instead, it tries to present the researchers’ concepts for building a layered operating system that provides network applications with more efficient performance. To make this research easier to understand, this paper first discusses existing problems in network control. Then, it illustrates the proposal for solving network control problems.
While today’s operating systems serve standalone computers and networks, the operating systems do very little to differentiate between them, the researchers say. As a result, operating systems often fail to process network information in the most efficient way. Like the authors say, “Most of the work in this area remains domain-specific and without a general scheme for providing network controls as an OS service.” Figure 1 (a) illustrates the inefficient process involving a network and an operating system. Each Virtual Machine (VM) directly talks to network interface (cylinder at bottom). Suppose 10 concurrent users access this network interface, and the OS provides no way to control them. This means, among other things, low-priority jobs may occupy resources before high-priority jobs. For example, on a Web server, some requests only need an HTTP process with low resource allocation, but the operating system’s network control may erroneously assign them a high-streaming process. The poor assignments dramatically degrade network performance.
Takashi Okumura, Daniel Mosse, Masaki Minami, and Osamu Makamura [1] propose a virtual network interface for solving these problems. Figure 1 (b) illustrates a virtual interface between VM and a network interface. Each VM has its own process interface (cylinder at bottom of each VM). These virtual interfaces determine who and what to do with each process based on the request of network. The virtual interface allocates a HTTP process request if it detects a low-level request. Similarly, the virtual interface allocates a streaming-dedicated process if the coming signal is a high-level request. The VIF finally transfers each customized process to the network interface. Instead of responding with a common process for each request, the network interface allocates a different process for each request. This methodology greatly improves resource allocation.
(a) (b)
Figure 1: Conceptual Overview of the Mechanism [1] Page 3 Fig.1
Thomas [3] presents another system called GLUnix. GLUnix is a layered operating system, which supports a network of workstations. He says, “GLUnix was designed to provide transparent remote execution, support for interactive parallel and sequential jobs, load balancing, and backward compatibility for existing application binaries.” There are two types of process in the network system: sequential and parallel. The sequential process is a list process instances executed in an order. The parallel process is a collection of process instances executed concurrently. GLUnix provides a user-level layer to manage these processes successfully. First, it extracts the interactive sequential and parallel processes through intelligent job placement. Second, it groups these processes as two individual processes. Finally, GLUnix sends these two processes to network system. Because GLUnix builds the processing strategy, the network system does not need to figure out which processes need to execute in sequential or parallel mode. Instead, it just executes them. This greatly reduces communication traffic between network and operating system. GLUnix consists of three components: a per-cluster master, a per-node daemon and a per-application library. GLUnix master primarily focuses on job placement. GLUnix daemon is a listener for the master, gathering and detecting each node’s performance information and sending feedback to the master. GLUnix library provides a GLUnix service interface for processing users’ requests. Thomas emphasizes that GLUnix works very well on sequential and parallel jobs placement.
The interesting thing is that although both VIF and GLUnix implement the layered interface solution to address the network control issues, their approaches and targets are different. VIF helps to solve process optimistic issues, which means it allocates the most economic resource for each process request. The GLUnix daemon acts as the process listener, providing centralized management of processes. This management makes it possible for the GLUnix system to dramatically improve the performance of interactive sequential and parallel programs because all processes are ready to execute.
This author agrees that the layered network interface is an easy and effective way to solve operating system support network control problem, but VIF may create problems. For example, consider what happens when VIF receives 10,000 requests simultaneously. The VIF interface provides 10,000 instances to process these requests. In other words, the more requests sought, the more instances created. Of course, all of these instances greatly impact the system resource allocation and memory-leaking might occur.
In conclusion, this paper reviewed two ways a system might provide a layered system interface to give operating systems better network control. One methodology called VIF provides request specified process layer to fulfill network control. The other methodology called GLUnix provides a different layer proposal – the listener, which provides an intelligent process interface.
Reference:
1. “Operating System Support for Network Control: a virtual network interface approach for end-host OSs” Takashi Okumura; Daniel Mosse; Masaki Minami; and Osamu Makamura; 2002.
http://www.asahikawa.wide.ad.jp/taka/research/iwqos2002.pdf
2. Modern Operating Systems, 2nd Edition, Tanenbaum, Andrew S., Prentice Hall, Upper Saddle River, N.J., 2001, pages 867 -897.
3. “GLUnix: Layered Operating System Support for Network of Workstations” Thomas Anderson; 1996-1997.
http://www.ucop.edu/research/micro/96_97/96_006.pdf