Frank Miller, George Apostolopoulos, and Satish Tripathi. University of Maryland. College Park, MD ffwmiller, georgeap,

Similar documents
Reducing Router-Crossings in a Mobile Intranet. Ibrahim Korpeoglu Rohit Dube Satish K. Tripathi. University of Maryland. College Park, MD 20742

Protocol Architecture for Multimedia Applications over ATM. Networks. IBM Thomas J. Watson Research Center. Yorktown Heights, NY 10598

Application. Protocol Stack. Kernel. Network. Network I/F

Chapter 20: Multimedia Systems

Chapter 20: Multimedia Systems. Operating System Concepts 8 th Edition,

Reducing Router-Crossings in a Mobile Intranet. Rohit Dube Ibrahim Korpeoglu Satish K. Tripathi

The latency of user-to-user, kernel-to-kernel and interrupt-to-interrupt level communication

Number of bits in the period of 100 ms. Number of bits in the period of 100 ms. Number of bits in the periods of 100 ms

T H. Runable. Request. Priority Inversion. Exit. Runable. Request. Reply. For T L. For T. Reply. Exit. Request. Runable. Exit. Runable. Reply.

Process/ Application NFS NTP SMTP UDP TCP. Transport. Internet

A LynxOS device driver for the ACENic Gigabit Ethernet Adapter

Multiplexed Serial Wireless Connectivity for Palmtop Computers

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Exploring the Performance Impact of. QoS Support in TCP/IP Protocol Stacks. Robert Engely, Dilip Kandlury, Ashish Mehraz, and Debanjan Sahay.

Exploiting In-Kernel Data Paths to Improve I/O Throughput and CPU Availability. Kevin Fall Joseph Pasquale

Pupa: A Low-Latency Communication System for Fast Ethernet. Manish Verma Tzi-cker Chiueh? Silicon Graphics Inc.

A System Software Structure for Distributed Multimedia Systems

Performance of HTTP and FTP Applications over Local Area Ethernet and ATM Networks Edwin Law A thesis submitted in conformity with the requirements fo

Networking Performance for Microkernels. Chris Maeda. Carnegie Mellon University. Pittsburgh, PA March 17, 1992

G Robert Grimm New York University

LRP: A New Network Subsystem Architecture for Server Systems. Rice University. Abstract

Department of Computer Engineering University of California at Santa Cruz. File Systems. Hai Tao

IO-Lite: A Unified I/O Buffering and Caching System

Java Virtual Machine

A Content Delivery Accelerator in Data-Intensive Servers

Why Study Multimedia? Operating Systems. Multimedia Resource Requirements. Continuous Media. Influences on Quality. An End-To-End Problem

On the Performance Impact of. Supporting QoS Communication in TCP/IP Protocol Stacks

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Design and Evaluation of a Socket Emulator for Publish/Subscribe Networks

Chapter 4 Communication

Chapter 8: Virtual Memory. Operating System Concepts

Disks and I/O Hakan Uraz - File Organization 1

Operating System Support for Multimedia. Slides courtesy of Tay Vaughan Making Multimedia Work

Last Class: RPCs and RMI. Today: Communication Issues

March 6, 2000 Applications that process and/or transfer Continuous Media (audio and video) streams become

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA

Network Level Framing in INSTANCE. Pål Halvorsen, Thomas Plagemann

The Design and Implementation of a High-Speed User-Space Transport Protocol

director executor user program user program signal, breakpoint function call communication channel client library directing server

The SpaceWire Transport Protocol. Stuart Mills, Steve Parkes University of Dundee. International SpaceWire Seminar 5 th November 2003

Multimedia Applications Require Adaptive CPU Scheduling. Veronica Baiceanu, Crispin Cowan, Dylan McNamee, Calton Pu, and Jonathan Walpole

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY

Resource Containers. A new facility for resource management in server systems. Presented by Uday Ananth. G. Banga, P. Druschel, J. C.

I/O CHARACTERIZATION AND ATTRIBUTE CACHE DATA FOR ELEVEN MEASURED WORKLOADS

EEC-682/782 Computer Networks I

MA5400 IP Video Gateway. Introduction. Summary of Features

T H E TOLLY. No March StreamGroomer Module 200 Flow Regulator and StreamGroomer Manager (SGM) Transactions per second

Client (meet lib) tac_firewall ch_firewall ag_vm. (3) Create ch_firewall. (5) Receive and examine (6) Locate agent (7) Create pipes (8) Activate agent

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

TCP/IP Stack Introduction: Looking Under the Hood!

Adaptive Methods for Distributed Video Presentation. Oregon Graduate Institute of Science and Technology. fcrispin, scen, walpole,

TECHNICAL RESEARCH REPORT

Submitted for publication

Acknowledgment packets. Send with a specific rate TCP. Size of the required packet. XMgraph. Delay. TCP_Dump. SlidingWin. TCPSender_old.

Real-Time Protocol (RTP)

PCnet-FAST Buffer Performance White Paper

Tema 0: Transmisión de Datos Multimedia

ignored Virtual L1 Cache HAC

Much Faster Networking

Chapter 13: I/O Systems

TECHNICAL RESEARCH REPORT

TCP over Wireless Networks Using Multiple. Saad Biaz Miten Mehta Steve West Nitin H. Vaidya. Texas A&M University. College Station, TX , USA

COT 4600 Operating Systems Fall Dan C. Marinescu Office: HEC 439 B Office hours: Tu-Th 3:00-4:00 PM

Measuring MPLS overhead

over the Internet Tihao Chiang { Ya-Qin Zhang k enormous interests from both industry and academia.

DESIGN SPECIFICATION (Rev 1.2) CVI BROADCAST VIDEO SYSTEM

Robert Grimm. legal rights are dened in a global access matrix, called. with a le, and the corresponding DTE matrix

CCNA R&S: Introduction to Networks. Chapter 10: The Application Layer

OPERATING SYSTEM. Chapter 9: Virtual Memory

A Scalable Multiprocessor for Real-time Signal Processing

100 Mbps DEC FDDI Gigaswitch

CS307: Operating Systems

Linux Operating System

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

The Linux ATM software (device driver and utilities) was developed and is supported by Werner Almsberger in Switzerland as part of the Linux-ATM API s

Using Time Division Multiplexing to support Real-time Networking on Ethernet

Multimedia. Sape J. Mullender. Huygens Systems Research Laboratory Universiteit Twente Enschede

Chapter 9: Virtual Memory

19: Networking. Networking Hardware. Mark Handley

Multimedia Operating System (2)

Device-Functionality Progression

Chapter 12: I/O Systems. I/O Hardware

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Global Scheduler. Global Issue. Global Retire

CSCI-GA Operating Systems. Networking. Hubertus Franke

Network Implementation

Design and Implementation of an RSVP based Quality of Service. Architecture for Integrated Services Internet

Operating Systems Design Exam 2 Review: Spring 2012

Cluster quality 15. Running time 0.7. Distance between estimated and true means Running time [s]

IO-Lite: A Unied I/O Buering and Caching System. Rice University. disk accesses and reducing throughput. Finally,

Implementing XNS Protocols for 4.2bsd Introduction We have implemented the Internet Datagram Protocol (IDP) and the Sequenced Packet Protocol (SPP) of

Computer Networks with Internet Technology William Stallings. Chapter 2 Protocols and the TCP/IP Protocol Suite

Throughput in Mbps. Ethernet e+06 1e+07 Block size in bits

Receive Livelock. Robert Grimm New York University

Shared Address Space I/O: A Novel I/O Approach for System-on-a-Chip Networking

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

Design Overview of the FreeBSD Kernel CIS 657

Design and Performance Evaluation of a New Spatial Reuse FireWire Protocol. Master s thesis defense by Vijay Chandramohan

Investigators at Microsoft Research, for example, have recently written a position paper advocating their assertion that \it is time to reexamine the

Design Overview of the FreeBSD Kernel. Organization of the Kernel. What Code is Machine Independent?

Transcription:

Simple Input/Output Streaming in the Operating System Frank Miller, George Apostolopoulos, and Satish Tripathi Mobile Computing and Multimedia Laboratory Department of Computer Science University of Maryland College Park, MD 20742 ffwmiller, georgeap, tripathig@cs.umd.edu November 13, 1996 1 Introduction On-demand multimedia applications can impose Quality-of-Service (QoS) parameters on streaming data transfers performed by operating systems. For multimedia servers, high performance in the form of low latency and high throughput are also necessary. This work seeks to improve the performance of simple data streaming between hardware devices with QoS in the context of general-purpose operating systems. Simple streaming refers to moving data from one device to another without transforming (e. g. compressing) the data during the transfer. A transfer model originates data at a source device, traverses a transfer path, and delivers data to a destination device. In this work, we our interested in sources that are les on a mass storage device being served to a destination network adapter. For these transfers, the path must necessarily include the le system and network protocol stack. Streams are partitioned into burst and periodic streams. Burst streams transfer data from source to destination as quickly as possible, one packet after another. FTP and HTTP le transfers fall into this category. There are typically no QoS parameters associated with this type of stream but they will be present in a general-purpose environment. Periodic streams transfer data based on some frequency, e. g. a frame rate for video. These streams impose Quality-of-Service (QoS) parameters like bounded delay and delay variance (i. e. jitter). In traditional operating systems such as 4.4BSD [1], input/output (I/O) subsystems implement an environment that supports streaming through applications. System calls are provided to allow user applications to read data from and write data to devices. When an application program executes a read() system call on a le, data is transferred from the disk to a buer in the kernel and then to the application. A subsequent write() system call to a network socket results in data being copied to an mbuf in the kernel and then to an network device. For applications that stream data using read() and write() in succession, such as FTP and web servers and more recently, on-demand audio and video servers, the cross domain data copies and number of system calls reduce potential performance. A new operating system kernel and input/output subsystem have been designed and implemented to address simple streaming applications. The specic aim of the operating system is to support high-performance, concurrent, simple data streaming in the context of a general-purpose operating system environment. This goal is addressed with the stream() system call which allows exible control over kernel data streaming. Section 2 discusses the design and implementation of the operating system and 1

the stream() system call. Section 3 presents comparative measurements for a simple streaming application executing on (in its current form) and BSD. Section 4 presents conclusions and future work. 2 Design and Implementation is designed around the need to add support for simple kernel streams to the general purpose operating system environment. In order to support concurrent, deterministic streaming, the following design elements have been incorporated. Multi-threaded The kernel is multi-threaded to support scheduled concurrent activity within the kernel. Currently, each stream has a thread allocated to perform data transfers, however, a necessary optimization will unify stream processing under a single thread. Real-time To support threads that delay and jitter constraints, a fully preemptable, statically prioritized kernel design is implemented. General-purpose computing loads are supported on a time available basis using lower priority values. Unied I/O Programming Interface While the stream() system call could be designed to explicitly handle endpoints with dierent programming interfaces, such as sockets [5], a more elegant design unies the interface to all the endpoints using the le system name space. Unied Buer Pool In order to avoid data copies between dierent buer pool types, a unied buer pool to be used by block device drivers, le systems, and the protocol stack will be utilized. 2.1 I/O Subsystem Architecture Access to all I/O elements, les, device drivers, and network protocols is through the global le system interface using le system path name conventions. Underlying this interface are specic le system and network protocol implementations and direct access to the device drivers. Figure 1 illustrates the key architectural dierences between BSD and. When a path name is presented to the le system, the mount table is consulted to determine on which le system the path corresponds. The prex is then stripped o and the remaining path is passed to the specic le system implementation. Table 1 describes how the udpfs le system implementation utilizes path name conventions to provide access to protocol communications endpoints. Specic le systems and network protocols utilize a common buer pool. The aim is to allow the stream() system call to pass references to buers between specic le system implementations, reducing the number of data copies. This portion of the work requires signicant eort to rework the use of buers in the specic le system implementations, including the network protocols. This eort is under way. 2.2 Implementation Status currently runs on IBM PC-compatibles. The kernel, several device drivers, the generic le system interface, and a DOS-compatible specic le system implementation have been written from scratch and are up and running. The DEC Tulip PCI Ethernet adapter device driver has been ported from FreeBSD. The UDP/IP/ICMP/ARP protocol stack has been ported from XINU [2]. A simple text based, virtual console user interface has been developed and is in place to allow system monitoring and debugging. The network device driver and protocol stacks have been recently ported and still have some minor bugs that have prevented measurements under load at the time of this writing. However, is capable of streaming data from the hard disk to the ethernet. The next section describes our initial observations of the system's performance. 3 Performance The focus of performance measurements is to determine the supported concurrent streaming load 2

BSD Process Process User Kernel User Kernel Thread File System Sockets File System DOS UDP/IP DOS UDP/IP Buffer Cache mbufs Buffer Cache Device Drivers Device Drivers IDE Ethernet IDE Ethernet Figure 1: The I/O Architectures for BSD and Table 1: UDP File Name Conventions File Mode File Name (/net/udp) Description O RDONLY /4000 Open local port 4000 for reading O WRONLY /2592 Open port 2592 on local host /128.8.130.115/2592 Open port 2592 on foreign host with O RDWR /2592 Open port 2592 on local host and pick an arbitrary local port number for reading /4000/2592 Open port 2592 on on local host and local port 4000 for reading /128.8.130.115/2592 Open port 2592 on foreign host with and pick an arbitrary local port number for reading /4000/128.8.130.115/2592 Open port 2592 on foreign host with and local port 4000 for reading 3

for a given hardware platform. Measurements would span burst only loads to periodic only loads to a mixture of burst and periodic loads. While a large set of measurements has been taken for BSD, the stability of our current implementation has not allowed us to complete the same set of measurements for at this time. However, is capable of streaming data from the hard disk to the ethernet. Figure 2 presents an initial set of comparison measurements for BSD and. BSDi, version 2.1 and were used as servers with a BSDi, version 2.1 platform serving as client for both streaming tests. Both servers were run on an IBM PC/350 with 75Mhz Pentium, 16 Mbytes main memory, 256 Kbyte second level cache, 810 Mbyte EIDE hard drive and SMC Etherpower 10 BaseT PCI Ethernet Adapter. A 110 Mbyte MPEG-1 encoded video 1 resident on a DOS le system partition was used as the source le for all streams. Each server ran a single periodic stream that read a 1 Kbyte packet from the le just described and wrote the packet to a UDP port at a rate of 30 packets per second (i. e. a period of approximately 33,333 microseconds). Such a stream models the transmission of a small (perhaps 320x200) MPEG video. Figure 2 gives the latency of each of the rst 10,000 (of approximately 106,000) packets. Latency was measured from the beginning of each period to the end of the UDP write. There are two points to observe. First, the BSD gures display a set of diagonal patterns of points due to diculty implementing the realtime loop. The usleep() call used to implement the delay required to wait for the beginning of the next period is highly inaccurate. This is not suprising, BSD is not intended to be a real-time system. Second, the DOS le system implementation does not currently use a buer cache. Each open le descriptor stores a single cluster from the disk and when it is exhausted, reads the next cluster. Despite this implementation deciency, the system displays remarkably good raw performance. 1 This video is an MPEG-1 encoding of approximately the rst 20 minutes of the James Bond move, \Live and Let Die". 4 Related Work The design of the stream() system call was heavily inuenced by Kevin Fall's work at UCSD [3, 4]. The splice() system call was proposed for addition to the UNIX I/O subsystem. The idea was to supplement what was termed a memory-oriented I/O (MIO) model with a kernel based peer-to-peer I/O (PPIO) model. These terms are equivalent to the push-pull and stream models, respectively, described in this work. The UCSD work demonstrated that signicant performance improvements can be achieved when cross-address space data copies and system calls are reduced. Our work seeks to improve on this result by supporting QoS parameters. 5 Conclusion While a signicant amountof work has been done already, much remains. Most important is the design and development of the unied buer cache. There are a number of issues to be addressed. What policy should be used for ushing buers from the cache? Some global information about which buers (being used by dierent specic le systems) can be freed and reused will be necessary. How are diering buer size needs handled? Dierent specic le system implementations will have dierent optimal buer sizes. For example, the BSD FFS implementation transfers data from disk in blocks of 2048 bytes, ethernet packets used in Internet protocol stacks are limited to 1500 bytes, ATM cells are only 53 bytes. Some investigation into how to manage buers with respect to these dierent buer size needs is necessary. How is prepending of data to a buer handled without data copies? BSD mbufs handle this problem quite well. A similar approach may be necessary for buers as well. There is a need for more determinism in the end system operating systems performing streaming data transfers due to impending QoS requirements. With this in mind, this work 4

BSD 35000 35000 30000 30000 Packet Latency (microseconds) 25000 20000 15000 10000 Packet Latency (microseconds) 25000 20000 15000 10000 5000 5000 0 0 2000 4000 6000 8000 10000 Packet Number 0 0 2000 4000 6000 8000 10000 Packet Number Figure 2: Sample Stream Transmission Traces attempts to provide improved QoS under load for streaming applications running in a generalpurpose operating system environment. Comparisons to BSD are relevant since it is used heavily in the current Internet environment. It appears from the scant initial measurements presented here and those we have taken that were not presented, that more attention to QoS parameters will be required if multimedia applications like on-demand audio and video are to be supported eciently. References [1] McKusick, M., Bostic, K., Karels, M., and Quarterman, J., The Design and Implementation of the 4.4BSD Operating System, Addison- Wesley, 1996. [2] Comer, D. and Stevens, D., Internetworking with TCP/IP: Volume II, Prentice-Hall, 1994. [3] Fall, K. and Pasquale, J., \Improving Continuous-Media Playback Performance With In-Kernel Data Paths", Proceedings of the IEEE International Conference on Multimedia Computing and Systems (ICMCS), pp. 100-109, 1994. [4] Fall, K., A Peer-to-Peer I/O System in Support of I/O Intensive Workloads, Ph. D. Thesis, University of California/San Diego, 1994. [5] Stevens, W. R., TCP/IP Illustrated, Volume 2 - The Implementation, Addison-Wesley, 1994. 5