- AboutThis should describe the systems research collaboration, and present the overall research goals of the new group.
- PeopleHere are the different labs in the SRC…
- PublicationsA page where you will find categorized publications!
- ProjectsA page where you will find our projects
- ResourcesVarious resources for prospective students, current students, alumni. Maybe put something here about life in NYC and at Columbia…
Department of Computer Science, Columbia University Technical Report , CUCS-034-99, December 1999
Stackable file systems promise to ease the development of file systems. Operating system vendors, however, resist making extensive changes to support stacking, because of the impact on performance and stability. Existing file sys- tem interfaces differ from system to system and they sup- port extensibility poorly. Consequently, extending file sys- tem functionality across platforms is difficult. We propose a new language, FiST, to describe stackable file systems. FiST uses operations common to file system interfaces. From a single description, FiSTâ€™s compiler pro- duces file system modules for multiple platforms. The gen- erated code handles many kernel details, freeing developers to concentrate on the main issues of their file systems. This paper describes the design, implementation, and eval- uation of FiST. We extended file system functionality in a portable way without changing existing kernels. We built several file systems using FiST on Solaris, FreeBSD, and Linux. Our experiences with these examples shows the fol- lowing benefits of FiST: average code size over other stack- able file systems is reduced ten times; average development time is reduced seven times; performance overhead of stack- ing is 1â€“2%.
Proceedings of the 1999 USENIX Annual Technical Conference, June 1999
Extending file system functionality is not a new idea, but a desirable one nonetheless[6, 14, 18]. In the several years since stackable file systems were first proposed, only a handful are in use[12, 19]. Impediments to writing new file systems include the complexity of operating systems, the difficulty of writing kernel-based code, the lack of a true stackable vnode interface, and the challenges of porting one file system to another operating system. We advocate writing new stackable file systems as ker- nel modules. As a starting point, we propose a portable, stackable template file system we call Wrapfs (wrapper file system). Wrapfs is a canonical, minimal stackable file sys- tem that can be used as a pattern across a wide range of operating systems and file systems. Given Wrapfs, devel- opers can add or modify only that which is necessary to achieve the desired functionality. Wrapfs takes care of the rest, and frees developers from the details of operating sys- tems. Wrapfs templates exist for several common operat- ing systems (Solaris, Linux, and FreeBSD), thus alleviating portability concerns. Wrapfs can be ported to any operating system with a vnode interface that provides a private data pointer for each data structure used in the interface. The overhead imposed by Wrapfs is only 5â€“7%. This paper describes the design and implementation of Wrapfs, explores portability issues, and shows how the im- plementation was achieved without changing client file sys- tems or operating systems. We discuss several examples of file systems written using Wrapfs.
Ph.D. Thesis, Department of Electrical Engineering, Stanford University, June 1999
Multimedia applications are becoming ubiquitous. Unlike conventional interactive and batch applications, these applications often have real-time requirements. As multimedia applications are integrated with conventional non-real-time applications in the general- purpose computing environment, the problem arises of how to support the resulting mix of activities. A key question is how does the operating system schedule processor cycles to enable applications with and without real-time requirements to co-exist and run effectively? To address this question, we have created SMART, a Scheduler for Multimedia And Real- Time applications. SMART explicitly supports the time constraints of real-time applications, and provides dynamic feedback to these applications to allow them to adapt their performance based on the availability of processor cycles. It is unique in its ability to make efficient use of processor cycles in meeting real-time requirements under a dynamically varying system load, even in the absence of admission control policies when the system is overloaded. SMART integrates support for real-time and non-real-time applications. This allows it to provide uniform controls that allow users to prioritize or proportionally allocate processor cycles across all applications, regardless of whether or not they have real-time requirements. SMART achieves this behavior by reducing this complex resource management problem into two decisions. One based on importance determines the overall resource allocation for each activity. The other based on urgency determines when each activity is given its allocation. SMART provides a common importance attribute for both real-time and conventional activities based on priorities and weighted fair queueing. SMART then uses an earliest-deadline urgency mechanism to order when activities are serviced, allowing iv real-time activities to make the most efficient use of their resource allocations to meet their time constraints. A bias on batch activities accounts for their ability to tolerate more varied service latencies. This improves performance for interactive and real-time activities during periods of transient overload. We have implemented SMART in a commercial operating system and measured its performance against other schedulers in executing applications with and without real-time requirements, including continuous media, interactive, and batch applications. Our results demonstrate SMART's ability to provide superior performance for multimedia applications.
Proceedings of the 8th International Workshop on Network and Operating System Support for Digital Audio and Video, July 1998
Due to the limitations of current operating systems in sup- porting multimedia applications, much work has been done to provide resource management mechanisms to address this problem. As processor cycles are often the most over- subscribed and critical resource, most of this work has focused on uniprocessor scheduling. However, hardware platforms are moving to multiprocessor systems, and little work has been done to address the problem of supporting multimedia applications in a multiprocessor context. This paper proposes a new multiprocessor scheduler designed to meet the requirements of multimedia applications. We present an overview of the scheduling algorithm, describe its implementation in a commercial operating system, and discuss directions for future work.
Proceedings of the 16th ACM Symposium on Operating Systems Principles, October 1997
Real-time applications such as multimedia audio and video are increasingly populating the workstation desktop. To support the exe- cution of these applications in conjunction with traditional non-real- time applications, we have created SMART, a Scheduler for Multi- media And Real-Time applications. SMART supports applications with time constraints, and provides dynamic feedback to applica- tions to allow them to adapt to the current load. In addition, the sup- port for real-time applications is integrated with the support for conventional computations. This allows the user to prioritize across real-time and conventional computations, and dictate how the pro- cessor is to be shared among applications of the same priority. As the system load changes, SMART adjusts the allocation of resources dynamically and seamlessly. SMART is unique in its ability to automatically shed real-time tasks and regulate their exe- cution rates when the system is overloaded, while providing better value in underloaded conditions than previously proposed schemes. We have implemented SMART in the Solaris UNIX operating sys- tem and measured its performance against other schedulers in exe- cuting real-time, interactive, and batch applications. Our results demonstrate SMARTâ€™s superior performance in supporting multi- media applications.
Proceedings of the IEEE International Conference on Multimedia Computing and Systems, June 1997
Multimedia applications have dynamic and adaptive real- time requirements. Current scheduling practice, as typified by UNIX System V Release 4, lacks the necessary infor- mation and interfaces to meet these requirements. To address this problem, we have created the SMART (Sched- uler for Multimedia And Real-Time) interface. It explicitly accounts for application-specific time constraints and pro- vides dynamic feedback from the scheduler to applications to allow them to adapt to the system loading condition. This paper describes the design of the interface and its implementation in the Solaris UNIX operating system to provide an effective SVR4-conformant full featured envi- ronment for supporting multimedia applications.
Technical Report CSL-TR-97-721, April 1997
Project Technical Report SML-96-0213, July 1996
Technical Report CSL-TR-96-697, June 1996
Proceedings of the 15th ACM Symposium on Operating Systems Principles, December 1995
To effectively support multimedia applications, we have created SMART (Scheduler for Multimedia And Real-Time). SMART manages resources so that time con- straints can be satisfied whenever possible, and provides graceful degradation when the system is overloaded. At the same time, it does not simply allow real-time activi- ties to monopolize the processor to the starvation of con- ventional activities, but rather it manages resources so that all classes of activities, with and without time con- straints, can co-exist and share the processor effectively.