@article {Simula.ND.8,
	title = {Assessment of Linux{\textquoteright} Data Path Components for Download and Streaming},
	journal = {International Journal of Software Engineering and Knowledge Engineering},
	volume = {17},
	number = {4},
	year = {2007},
	month = {August},
	pages = {456-481},
	abstract = {Distributed multimedia streaming systems are increasingly popular due to technological advances, and numerous streaming services are available today. On servers or proxy caches, there is a huge scaling challenge in supporting thousands of concurrent users that request delivery of high-rate, time-dependent data like audio and video, because this requires transfers of large amounts of data through several sub-systems within a streaming node. Unnecessary copy operations in the data path can therefore contribute significantly to the resource consumption of streaming operations. Despite previous research, off-the-shelf operating systems have only limited support for data paths that have been optimized for streaming. Additionally, system call overhead has grown with newer operating systems editions, adding to the cost of data movement. Frequently, it is argued that these issues can be ignored because of the continuing growth of CPU speeds. However, such an argument fails to take problems of modern streaming systems into account. The dissipation of heat generated by disks and high-end CPUs is a major problem of data centers, which would be alleviated if less power-hungry CPUs could be used. The power budget of mobile devices, which are increasingly used for streaming as well, is tight, and reduced power consumption an important issue. In this paper, we prove that these operations consume a large amount of resources, and we therefore revisit the data movement problem and provide a comprehensive evaluation of possible streaming data I/O paths in the Linux 2.6 kernel. We have implemented and evaluated several enhanced mechanisms and show how to provide support for more efficient memory usage and reduction of user/kernel space switches for content download and streaming applications. In particular, we are able to reduce the CPU usage by approximately 27\% compared to the best approach without kernel modifications, by removing copy operations and system calls for a streaming scenario in which RTP headers must be added to stored data for sequence numbers and timing.},
	author = {Halvorsen, P{\r a}l and Tom Anders {Dalseng} and Griwodz, Carsten}
}
@inproceedings {Halvorsen.2005.1,
	title = {Assessment of Data Path Implementations for Download and Streaming},
	journal = {International Conference on Distributed Multimedia Systems (DMS)},
	year = {2005},
	month = {september},
	pages = {228-233},
	publisher = {Knowledge Systems Institute},
	type = {Conference},
	address = {3420 Main Street, Skokie, IL 60076, USA},
	abstract = {Distributed multimedia streaming systems are increasingly popular due to technological advances, and numerous streaming services are available today. On servers or proxy caches, there is a huge scaling challenge in supporting thousands of concurrent users that request delivery of high-rate, time-dependent data like audio and video, because this requires transfers of large amounts of data through several sub-systems within a streaming node. Since the speed increase for memory accesses does not follow suite with the CPU speed, copy operations can be a severe limiting factor on the streaming performance of off-the-shelf operating systems, which still have only limited support for data paths that have been optimized for streaming despite previous research proposals. We observe furthermore that while CPU speed continues to increase, system call overhead has grown as well, adding to the cost of data movement. In this paper, we therefore revisit the data movement problem and provide a comprehensive evaluation of possible streaming data I/O paths in Linux 2.6 kernel. We have implemented and evaluated enhanced mechanisms and show how to provide support for more ef cient memory usage and reduction of user/kernel space switches for streaming applications.},
	isbn = {1-891706-17-9},
	author = {Halvorsen, P{\r a}l and Tom Anders {Dalseng} and Griwodz, Carsten},
	editor = {Chang, Shi-Kuo and Arndt, Timothy}
}
